Dizem que uma imagem vale mais que mil palavras, por isso, antes de te explicar algo, vou te mostrar qual é o resultado do comando que vou dar depois:
Observe como no canto superior direito vemos o dia da semana (sol, domingo), o mês (dezembro), o dia (22) assim como a hora, minuto, segundo e ano.
É algo que se atualiza em tempo real, ou seja, a cada segundo que a informação é atualizada, e estará sempre no canto superior direito do terminal.
Isto é algo útil porque, podemos estar editando um arquivo com nano ou vi, podemos estar instalando qualquer tipo de serviço ou gerenciando qualquer que seja, e não precisaremos parar o que fazemos, executar data no terminal para saber a data ou tempo, com essa dica que vou mostrar para vocês, vamos sempre mantê-la em mente.
Para conseguir isso em um terminal, vamos colocar o seguinte:
while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &
Isso, como tal, não é um simples comando ou instrução, mas sim uma união deles ... vamos lá, um script também pode ser. Explicar é um pouco complexo, mas farei o meu melhor 🙂
- enquanto dorme 1; faça : Isso significa que a cada segundo o seguinte será executado
- tput sc : Significa que a posição atual será salva, ou seja, a posição do que virá a seguir será salva, não será necessário especificá-la uma vez.
- tput copo 0$ (($ (tput cols) -29)) : Isso pode parecer complicado, mas não é tão difícil. Basicamente, é isso que a posição diz, ou seja, o canto superior direito. O parâmetro cup especifica o espaço vertical que existirá, já que colocamos 0, então significa "logo acima, no topo". Uma vez definida a posição vertical, podemos ver a posição horizontal, que é atendida pelo resto dos parâmetros, que resumindo ... calcula as colunas existentes e certifica-se de que está bem no lado certo. Se desejar, mude o número 29 para outros e você notará a diferença.
- dados : Bem, isso é simples, a data nos mostra as informações que vemos ... dia, mês, hora, etc.
- tput rc : Eles são tput sc salvamos a posição, agora com tput rc restauramos.
- feito : Aqui terminamos tudo, o que começamos com o tempo.
Como podem ver, o terminal é sem dúvida um espaço maravilhoso, se um comando não faz exatamente o que queremos ... podemos juntar vários deles e conseguir o que queremos. Veja cada comando como uma ferramenta, uma ferramenta (martelo) não pode nos tornar uma bela estátua, porém, juntando esta ferramenta (martelo) com outras (madeira e cinzel) podemos chegar ao resultado dos sonhos 🙂
Ah, aliás ... se você quiser que isso apareça sempre no terminal sem ter que executá-lo toda vez que abrir um console, você deve colocá-lo em .bashrc, ou seja:
echo "while sleep 1;do tput sc;tput cup 0 \$((\$(tput cols)-29));date;tput rc;done &" >> $HOME/.bashrc
Depois se você quiser removê-lo, execute o seguinte:
sed -i "s/while sleep 1/#while sleep 1/" $HOME/.bashrc
Bem, nada mais a acrescentar, espero que tenha sido útil para você
lembranças
mais forte,
echo "enquanto dorme 1; do tput sc; tput cup 0 \ $ ((\ $ (tput cols) -29)); date; tput rc; done &" >> $ HOME / .bashrc
Obrigado mas não funciona para mim ... Nem no Konsole nem no Yakuake fiz tudo como está no post. 🙁
Desculpe ... foi minha culpa ... agora que reiniciei FUNCIONA !!!
Achei estranho que não funcionasse, porque while… date e tput são comandos do pacote Bash 😀
Não sei ... aconteceu algo estranho ... colocou em um terminal:
echo "durante o sono 1; do tput sc; tput cup 0 $ (($ (tput cols) -29)); date; tput rc; done &" >> $ HOME / .bashrc
E o resultado foi:
bash: /home/ghermain/.bashrc: linha 115: erro sintático próximo ao elemento `do 'inesperado
bash: /home/ghermain/.bashrc: linha 115: `PS1 = '$ {debian_chroot: + ($ debian_chroot)} [33 [01; 34m] u [33 [01; 32m] @ [33 [01; 32m] h [33 [00m]: [33 [01; 34m] w [33 [00m] $ 'durante o sono 1; do tput sc; tput cup 0 64; data; tput rc; feito &'
Então copiei diretamente os comandos que você deu para o .bashrc no final e recebo várias linhas com a data e a hora.
Exclua todas as linhas que você colocou no arquivo .bashrc na data e manualmente coloque a linha de novo sem usar o eco que se não der um erro
Muito interessante!
Obrigado por ler 🙂
Há muito tempo procuro maneiras de "decorar" o terminal bacana, mas eficiente, e esse comando é muito bom, não tão barroco quanto outras soluções, mas quando digito um comando longo há alguma confusão. O comando come a data e então a data parece comer o comando. Alguém sabe se existe alguma maneira que o prompt apareça por padrão uma linha abaixo?
Enfim, obrigada!
Excelente dica 🙂
Obrigado mano 😀
Obrigado pela dica amigo, funciona corretamente. Saudações.
Obrigado por nos ler 🙂
Otimo 😀
Ou você pode criar um alias e usá-lo quando necessário 😀
Interessante, vou tentar mais tarde
Muito bom
Você poderia fazer um post explicando como instalar o zsh no Debian / Ubuntu / Mint / Elementary e como configurar os temas?
Uff, eu nunca usei zsh, desculpe 🙁
KZKG ^ Gaara quando vc faz o comando dá um erro porque suponho que tenta reconhecer os $ que não tem valor, para que não os interprete, colocando-os \ está fixo.
echo "while sleep 1;do tput sc;tput cup 0 \$((\$(tput cols)-29));date;tput rc;done &" >> $HOME/.bashrc
Acho que assim não haverá problema, corrija antes que eu cometa um erro. Bom post, vou usar. Saudações.
Uff certo, erro meu 😀
Já consertei no post, muito obrigado pela correção 🙂
Eu modifiquei e deixei assim
enquanto dorme 1; do tput sc; tput cup 0 $ (($ (tput cols) -16)); data + »% R% d /% m /% Y»; tput rc; concluído &
Mostra apenas Hora: Minutos Data com formato DD / MM / AAAA
Excelente amigo trabalhei 100 obrigado