Recupere el historial de la línea de comandos de Linux por fecha

Respuestas:

32

De forma predeterminada, Historyregistra el momento en que ejecutó un comando, pero no lo muestra. La razón de esto es cuando ejecuta el Historycomando, busca una variable de entorno llamada HISTTIMEFORMAT, que le indica cómo formatear el tiempo. Si el valor se establece nullo no, entonces, de manera predeterminada, no se muestra en ningún momento.

Un ejemplo con algo de tiempo

[qweet@superbox ~]$ export HISTTIMEFORMAT='%F %t '
[qweet@superbox ~]$ history
    1  2012-03-06        su -
    2  2012-03-06        jbach@mobiletribe.net
    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
....

Pero eso no es todo. Dado que los valores de las HISTTIMEFORMATtomas strftime(que puedes encontrar aquí por cierto), puedes hacer todo tipo de cosas mágicas. Pero para lo que quieres hacer, lo siguiente funciona.

[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
 ...

Además, si desea que su HISTTIMEFORMAT persista, considere agregarlo a su bashrcgusto;

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

Verá los cambios cuando abra una nueva pestaña en el terminal, o cuando cierre la sesión y vuelva a iniciarla.

qweet
fuente