BASH – Rajouter la date dans l’historique des commandes


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.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.