Recuperar o histórico da linha de comando do Linux por data

12

Eu quero ver o que digitei na linha de comando do bash em um determinado dia há uma semana. Existe uma maneira de recuperar o histórico da linha de comando? Algo como abaixo, talvez?

> history --include-date | grep 2012-02-27'
    
por aaa 06.03.2012 / 15:32

1 resposta

22

Por padrão, History registra a hora em que você executou um comando, mas não o exibe. A razão para isso é quando você executa o comando History , ele procura por uma variável de ambiente chamada HISTTIMEFORMAT , que informa como formatar o tempo. Se o valor for null ou não for definido, por padrão, ele não será exibido.

Um exemplo com algum tempo -

[qweet@superbox ~]$ export HISTTIMEFORMAT='%F %t '
[qweet@superbox ~]$ history
    1  2012-03-06        su -
    2  2012-03-06        [email protected]
    3  2012-03-06        mysql
    4  2012-03-06        ll
    5  2012-03-06        cd /opt/
    6  2012-03-06        ll
    7  2012-03-06        exit
    8  2012-03-06        ll
    9  2012-03-06        ls -lsa
   10  2012-03-06        cd ../
   11  2012-03-06        ll
   12  2012-03-06        ll
....

Mas isso não é tudo. Como o HISTTIMEFORMAT usa valores de strftime (os quais você pode encontrar aqui btw), pode fazer todo tipo de coisas mágicas. Mas para o que você quer fazer, os seguintes trabalhos.

[qweet@superbox ~]$ export HISTTIMEFORMAT='%F %T %t'
[qweet@superbox ~]$ history | grep -e "2012-03-06 14:48"
 1006  2012-03-06 14:48:05      export HISTTIMEFORMAT='%F %T %t'
 1007  2012-03-06 14:48:07      history
 ...

Além disso, se você quiser que seu HISTTIMEFORMAT persista, considere anexá-lo ao seu bashrc da mesma forma;

echo 'HISTTIMEFORMAT="variables here"' >> ~/.bashrc

Você verá as alterações quando abrir uma nova guia no terminal ou efetuar logout e entrada.

    
por 06.03.2012 / 15:50