Existe-t-il un moyen d'avoir dans le fichier .bash_history, listé :le répertoire où la commande a été tapée, la date, et la commande ?
Réponse acceptée :
Commande de l'historique indiquant le répertoire :NON ! 🙁
Commande d'historique indiquant la date :OUI ! 🙂
C'est parce que (d'après man history
):
The history list is an array of history entries. A history entry is declared as follows: typedef void * histdata_t; typedef struct _hist_entry { char *line; char *timestamp; histdata_t data; } HIST_ENTRY;
Donc, rien sur le répertoire où la commande a été tapée.
Pour connaître l'heure exacte à laquelle une commande a été exécutée, consultez l'help history
:
If the $HISTTIMEFORMAT variable is set and not null, its value is used as a format string for strftime(3) to print the time stamp associated with each displayed history entry. No time stamps are printed otherwise.
Donc, tout ce que vous avez à faire est de définir $HISTTIMEFORMAT
quelque chose comme ça dans le shell actuel :
export HISTTIMEFORMAT="%F %T "
Pour le définir de manière permanente, exécutez la commande suivante :
echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
La commande ci-dessus ajoutera une nouvelle ligne (export HISTTIMEFORMAT="%F %T "
) à la fin de votre ~/.bashrc
fichier.
Maintenant, la sortie de history
ressemblera à ceci :
...
1613 2013-11-13 13:00:15 cat .bash_history
1614 2013-11-13 13:01:04 man history
1615 2013-11-13 13:11:58 help history
1616 2013-11-13 13:19:07 ls
1617 2013-11-13 13:19:09 cd
1618 2013-11-13 13:19:15 history