Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Pour avoir un peu d’intimité avec l’historique Bash

Avoir un peu d’intimité pour faire ses propres expériences c’est toujours bien. C’est pourquoi il peut être utile de mieux comprendre comment fonctionne le fichier d’historique bash sous Linux et savoir y effacer les machins un peu honteux, voire les lignes de commandes entrées par erreur avec des mots de passe en clair (bouuuuh, c’est pas bien).

D’abord, il faut savoir que l’historique contient uniquement vos propres commandes. Toutefois l’utilisateur root peut voir un historique global. Normal, c’est lui le patron ! Ce qui d’ailleurs est pratique pour savoir qui a fait quoi sur la machine.

Pour consulter votre historique, entrez simplement la commande :

En passant, je ne sais pas si vous avez vu mais l’hébergeur Hostinger propose des offres super intéressantes en matière d’hébergement web. C’est pas trop cher pour démarrer et s’auto-héberger. (Lien affilié)

history

Vous verrez alors les dernières commandes, numérotées.

Pour supprimer une ligne gênante, il suffit donc d’utiliser le paramètre -d comme ceci :

history -d 421

Et pour tout nettoyer :

history -c

Pour aller plus loin, si vous voulez voir la date et l’heure d’exécution de chaque commande, vous pouvez entrer cette commande export :

export HISTTIMEFORMAT=’%F %T ‘

%F équivaut à la date au format %Y-%m-%d et %T équivaut à l’heure au format (%H:%M:%S).

Puis refaites un « history »

Capture d'écran de l'historique de commande dans le terminal Bash

Si vous remarquez beaucoup de commandes parasites, vous pouvez aussi indiquer à history de ne pas en tenir compte et de ne pas les logger. Pour cela, utilisez le paramètre export comme ceci avec la commande concernée. Par exemple si je veux masquer tout les « ls -l », les commandes pwd et la commande history elle-même, il suffit de faire :

export HISTIGNORE=’ls -l:pwd:history’

Et pour remettre ça à zéro tout cela, il suffit de laisser un HISTIGNORE vide ou avec des commandes différentes.

export HISTIGNORE= »

Ou faire un

unset export HISTIGNORE

Ensuite, si vous voulez ignorer les commandes dupliquées dans le fichier, il faut faire un :

export HISTCONTROL=ignoredups

Et comme ci-dessus, pour remettre à zéro le paramètre, faites un

unset HISTCONTROL

Maintenant si certains de ces paramètres vous plaisent vous pouvez les configurer pour qu’ils soient permanents. Éditez ou créez le fichier .bash_profile et ajoutez y les paramètres voulus:

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export HISTCONTROL=ignoredups
export HISTIGNORE=’ls -l:pwd:history’

PATH=$PATH:$HOME/bin
export PATH

Enfin, pour désactiver le logging des commandes, vous pouvez aussi ajouter dans le fichier .bash_profile le paramètre

export HISTSIZE=0

Notez que si vous l’ajoutez au niveau du fichier /etc/profile, ce sera désactivé pour tous les users sur tout le système. Je ne le recommande pas spécialement, mais si vous opérez un serveur qui nécessite un bon niveau de confidentialité, c’est utile.

Enfin, pour consulter l’historique d’un utilisateur précis, il suffit d’aller voir le .bash_history qui se trouve dans son répertoire home comme ceci :

cat /home/UTILISATEUR/.bash_history

Voilà…

Si vous voyez d’autres trucs à rajouter, n’hésitez pas, les commentaires sont ouverts.


Les articles du moment