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:
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
:
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
):
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)
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
Bash History: How To Show A Timestamp (Date / Time) When Each Command Was Executed