Récupérer l'historique de la ligne de commande Linux par date

20

Je veux voir ce que j'ai tapé sur ma ligne de commande bash un certain jour il y a une semaine. Existe-t-il un moyen de récupérer l'historique de la ligne de commande? Quelque chose comme ci-dessous, peut-être?

> history --include-date | grep 2012-02-27`
aaa
la source
pas s'il n'était pas déjà activé: cyberciti.biz/faq/unix-linux-bash-history-display-date-time
RobotHumans
si vous utilisez zsh:history -E
Vahid

Réponses:

32

Par défaut, Historyenregistre l'heure à laquelle vous avez exécuté une commande, mais ne l'affiche pas. La raison en est que lorsque vous exécutez la Historycommande, elle recherche une variable d'environnement appelée HISTTIMEFORMAT, qui lui indique comment formater l'heure. Si la valeur est nullou non définie, par défaut, elle ne s'affiche à aucun moment.

Un exemple avec un peu de temps

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

Mais ce n'est pas tout. Puisque le HISTTIMEFORMATprend des strftimevaleurs (que vous pouvez trouver ici btw), vous pouvez faire toutes sortes de choses magiques. Mais pour ce que vous voulez faire, les travaux suivants fonctionnent.

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

De plus, si vous voulez que votre HISTTIMEFORMAT persiste, pensez à l’ajouter à votre goût bashrc;

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

Vous verrez les modifications lorsque vous ouvrirez un nouvel onglet dans le terminal ou lorsque vous vous déconnecterez et vous connecterez.

qweet
la source