Edit : Une autre solution beaucoup plus propre m'a été proposée pour réaliser exactement la même chose :

export HISTFILE=/dev/null

Après ceci, l'écriture de l'historique des commandes par Bash aura lieu dans /dev/null, ce qui revient à écrire dans le vide.


Comme vous devez le savoir, le shell Bash conserve un historique des dernières commandes que l'utilisateur a entré dans son terminal. Cela permet de garder une trace de ce qui a été fait, chose particulièrement importante sur un serveur, surtout si plusieurs personnes travaillent sur la même machine avec le même compte. La liste des commandes est stockée par défaut dans le fichier ~/.bash_history et il est possible d'afficher cette liste avec la commande history.

Cependant, il peut arriver de ne pas vouloir que Bash enregistre les dernières commandes tapées dans l'historique, par exemple dans le cas où l'on a entré son mot de passe en clair sans prendre garde à ce que l'on faisait. Étant donné que Bash ne met à jour le fichier ~/.bash_history qu'au moment de sa fermeture, la solution est de forcer l'arrêt de son processus avant qu'il ne puisse le faire :

kill -9 $$

$$ est un alias pour le PID du processus courant, à savoir Bash. Cette commande va donc envoyer un signal SIGKILL au processus courant de Bash, l'empêchant de mettre à jour l'historique des commandes. Cependant, il ne faut pas faire appel à la commande history entre temps car elle met à jour le fichier ~/.bash_history avant de l'afficher.

Attention bien sûr à ne pas abuser de cette méthode. Seuls certains cas précis justifient son utilisation.