Après avoir eu un serveur de piraté j’ai pu voir les commande qu’avait passé le pirate, sans pouvoir savoir exactement quand il les avait utilisées (Il n’avait pas nettoyé l’historique). J’ai donc cherché sur Internet une solution sans trouver grand chose pour Bash.
Cette modification est totalement anodine pour le système et ne peut entraîner de perte de donnée.
Après avoir acheter un livre sur Bash j’ai trouvé mon bonheur. Il faut absolument avoir la version 3.0 ou plus de bash. Ubuntu Dapper Drake et les version suivante intègre d’office une version supérieur à la 3.0.
motarion@cyber-workstation:~$ bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
Pour activer la date dans l’historique il suffit de lancer la commande suivante:
export HISTTIMEFORMAT="%Y/%m/%d @ %T "
Voici le résultat:
456 2009/04/18 @ 13:58:32 ping free.fr
457 2009/04/18 @ 13:58:35 ls
458 2009/04/18 @ 13:58:48 spas
459 2009/04/18 @ 13:58:55 history
Attention: cette modification n’est pas persistente et si vous fermez le SHELL actuel la modification sera perdue!
Pour rendre cette modification persistente il y a deux solutions:
- Modifier le fichier .bashrc de chaque utilisateur
- Modifier la configuration Globale de Bash
I – Pour la première solution, il faut savoir que les nouveaux utilisateur ne profiteront pas de la modification. Si vous êtes le seul à vous connecter dans ce cas c’est la solution la plus simple. Lancez l’éditeur de texte que vous préférez puis copier la ligne suivante en fin de fichier:
export HISTTIMEFORMAT="%Y/%m/%d @ %T "
Édition du fichier:
nano .bashrc
II – La seconde solution permet de l’activer pour tout le système, même pour les nouveaux utilisateurs:
sudo nano /etc/bash.bashrc
Puis copiez en fin de fichier la commande suivante:
HISTTIMEFORMAT="%Y/%m/%d @ %T "
Vous pourrez alors constater que la modification est active pour tous les nouveaux Shell que vous ouvrirez.
PS: Cette astuce fonctionne aussi sur Debian depuis la version Etch bien que le chemin de configuration de bash puisse changer.
12 responses to “BASH – Rajouter la date dans l’historique des commandes”
Bonjour,
Comment on fais par la suite pour voir l’historique des commandes ?????
Merci
Pour voir l’historique des commandes tapés dans le Shell, il suffit d’utiliser la commande “history”. Attention toutefois la liste peut être longue 😉
Autant utiliser “history | less” s’il y a trop d’entrées.
Bonsoir,
astuce très intéressante, merci.
Merci, ça fait plaisir 🙂
[…] Go here to see the original: BASH – Rajouter la date dans l’historique des commandes […]
On remarque que ça ne fonctionne qu’après la modif. Les commandes précédentes dans l’historique sont datées de la date de la première commande “datée”.
On peut voir l’effet dans le fichier .bash_history :
————–
cd /etc/
ls
vi bash.bashrc
sudo vi bash.bashrc
#1240126142
h
#1240126149
history
#1240129316
less .bash_history
En effet j’avais remarqué ça et je n’ai pas pensé à le préciser! Merci 😉
Merci pour l’astuce. On peut faire la même chose pour “root” (utile quand on est sous Debian et autres distribs sans sudo).
Éditer le fichier en tant que “root” (su + passwrd) :
~/.bashrc
@+
Ah yes sympas merci 🙂
Merci beaucoup pour ce billet!
j’ai toujours voulu avoir un rappel des dates de lancement de commande (sans jamais vraiment chercher), maintenant c’est le cas 😉
Super, juste ce que je recherchais , merci !
De rien !
J’ai aussi galéré pour trouver et mon bouquin sur Bash m’a bien aidé.