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`
Par défaut, History
enregistre l'heure à laquelle vous avez exécuté une commande, mais ne l'affiche pas. La raison en est que lorsque vous exécutez la commande History
, celle-ci recherche une variable d'environnement appelée HISTTIMEFORMAT
qui lui indique comment formater l'heure. Si la valeur est null
ou non définie, alors, par défaut, aucune heure n'est indiquée.
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 [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
....
Mais ce n'est pas tout. Puisque HISTTIMEFORMAT
prend strftime
valeurs (que vous pouvez trouver ici btw), vous pouvez faire toutes sortes de choses magiques. Mais pour ce que vous voulez faire, ce qui suit fonctionne.
[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 même, si vous souhaitez que votre HISTTIMEFORMAT persiste, envisagez de l’ajouter à votre bashrc
like so;
echo 'HISTTIMEFORMAT="variables here"' >> ~/.bashrc
Vous verrez les modifications lorsque vous ouvrez un nouvel onglet dans le terminal ou que vous vous déconnectez et entrez.