Certaines commandes devraient être supprimées de l’historique de votre bash, pour des raisons de confidentialité, de sécurité, ou encore de clarté.

Par exemple, est-ce utile de voir dans son historique des commandes telles que pwd, ls sans argument, clear ou encore exit ?

N’est-ce pas dangereux d’avoir des commandes destructrices dans l’historique, telles que rm ?

En cas d’intrusion sur votre machine, n’est-ce pas dangereux que l’historique contienne des commandes ssh ou encore scp, donnant ainsi à l’intrus, les noms d’hôtes de vos serveurs distants ?

Le shell bash propose des mécanismes pour gérer cela. Il suffit d’éditer le fichier ~/.bash_profile, d’ajouter le contenu suivant puis de relancer son shell.

# & permet d'éviter d'historiser deux commandes successives identiques.
export HISTIGNORE="&:ls:bg:fg:exit:pwd:clear:history:rm:ssh:scp"

# une commande qui commence par un espace n'est pas enregistrée dans l'historique, hyper pratique.
# les commandes dupliquées sont effacées de l'historique, même si non consécutives.
export HISTCONTROL="ignorespace:erasedups"

En bonus, étant donné qu’on parle d’historique, j’aime bien également augmenter sa taille pour ne perdre aucune commande précédemment exécutée. Et j’affiche la date dans un format plus lisible lors de l’exécution de la commande history.

# 500000 commandes enregistrées dans l'historique, ça devrait tenir un moment.
export HISTSIZE=500000
export HISTFILESIZE=500000

# format de l'heure affichée par la commande history.
export HISTTIMEFORMAT="[%a %d %b %Y %T] "