Blog Linux Avante

Histórico do Bash: como mostrar um carimbo de data/hora quando cada comando foi executado

3 de fevereiro de 2020

Histórico de timestamps Bash

Quer adicionar um carimbo de data/hora ao lado de cada comando de seu histórico do Bash? Isso pode ser feito usando a variável Bash HISTTIMEFORMAT.

O Bash mantém um histórico dos comandos que você digita, que podem ser acessados digitando history. Por padrão, você vê um número seguido pelos comandos que usou recentemente:

$ history

1889  cd Cloaker/
1890  ./Cloaker.run
1891  sudo apt upgrade
1892  sudo apt autoremove
1893  history

Com a ajuda da variável Bash HISTTIMEFORMAT, você pode mostrar a data e a hora em que cada comando foi executado. Isso pode ser útil em várias ocasiões, incluindo para lembrar quais comandos você executou em um período de tempo específico, para desfazer várias operações e assim por diante.

É importante notar que, se esta variável for definida, os registros de data e hora são gravados no arquivo de histórico, portanto, são preservados nas sessões de shell. Portanto, na primeira vez em que ativá-lo, você não verá a data e a hora corretas para os comandos usados anteriormente.

Outro aprimoramento do histórico do Bash de que você pode gostar: HSTR facilita a pesquisa de seu histórico de comandos Bash ou Zsh

Defina o histórico do Bash para mostrar um carimbo de data/hora para o seu histórico de comandos (apenas para a sessão de terminal atual) usando este comando:

Comandos para usar no terminal

HISTTIMEFORMAT="%F %T "

Este comando é apenas para esta sessão, então você pode ver como fica e opcionalmente configurar o formato de data e hora (veja abaixo).

Agora digite history e você verá o carimbo de data/hora para os comandos de histórico do Bash:

$ history

2027  2019-07-12 13:02:31 sudo apt update
2028  2019-07-12 13:02:33 history
2029  2019-07-12 13:03:35 HISTTIMEFORMAT="%F %T "
2029  2019-07-12 13:03:38 man date
2030  2019-07-12 13:03:55 history

Exportamos HISTTIMEFORMAT com o seguinte carimbo de data/hora:

  • %F: data completa (ano-mês-dia)
  • %T: tempo (hora: minutos: segundos)

Há um espaço após %T e antes de ", de modo que há um espaço em seu histórico do Bash entre o momento em que o comando foi executado e o próprio comando. Sem ele, os dois não seriam separados.

Você pode personalizar a data e a hora. Use HISTTIMEFORMAT="%Y/%m/%d %T " para mostrar a data como ano (4 dígitos) -mês-dia e a hora como hora (00..24): minutos: segundos. Mostre a data como mês/dia/ano (2 dígitos) com %m/%d/%y. Quer mostrar a hora como 00..12 seguido por AM/PM, em vez de 00..24? Use %I:%M:%S %p como formato de hora. Consulte o comando de data para saber como formatar a data e a hora.

Agora é hora de exportar HISTTIMEFORMAT de seu arquivo ~/.bashrc para torná-lo padrão para todas as novas sessões de terminal para seu usuário. Você pode abrir o arquivo ~/.bashrc com um editor de texto e colar export HISTTIMEFORMAT="%F %T " (ou algum outro formato de data e hora) na parte inferior e salvar o arquivo ou pode executar este comando para gravá-lo no ~/.bashrc:

Comandos para usar no terminal

echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc

Execute este comando apenas uma vez, porque ele adiciona export HISTTIMEFORMAT="%F %T " a ~/.bashrc cada vez que você o executa.

Depois disso, tudo o que resta é a origem do arquivo ~/.bashrc para que a sessão de terminal atual use as novas configurações (ou você pode abrir um novo terminal e ele irá selecionar automaticamente as novas configurações de HISTTIMEFORMAT):

Comandos para usar no terminal

source ~/.bashrc

Lembre-se: na primeira vez que você habilitar carimbos de data/hora para o histórico do Bash, você não verá nenhuma data/hora para os comandos usados anteriormente. Apenas os comandos executados depois de habilitar os carimbos de data/hora para o histórico do Bash mostrarão uma data e hora no início da linha.

Acho que você também vai gostar: z.lua - Uma maneira mais rápida de mudar de diretório (comando do cd que aprende à medida que você o usa)

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.
Propaganda