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] "