Afficher l’ensemble des commandes précédemment tapées dans un terminal, grâce à history.
en tapant simplement :
history
N’afficher que les 10 dernières entrées
history | tail
Supprimer une ligne gênante
history -d 421 (numéro de la ligne)
Vider l’historique
history -c
Rechercher dans l’historique
Le raccourci clavier Ctrl+R permet de rentrer en mode de recherche dans l’historique. Le prompt ressemble alors à ça :
(reverse-i-search)`':
Reste alors de rentrer les premiers caractères de la commande à rechercher pour que le prompt vous propose les commandes les plus récentes correspondant à vos frappes,
puis "Enter" quand vous avez retrouvé la bonne commande.
Ajouter la date d'exécution des commandes à l'historique Bash
Pour rajouter cette information, éditez le fichier .bashrc
de l'utilisateur :
vi ~/.bashrc
Ajouter à la fin du fichier cette ligne :
export HISTTIMEFORMAT="%d/%m/%Y %T "
- %d : numéro du jour
- %m : numéro du mois
- %Y : année sur 4 chiffres (%y pour l'avoir sur 2 chiffres seulement)
- %T : heure complète
Enregistrez votre fichier et fermez-le. Pour finir, déconnectez-vous du terminal et rouvrez une session.
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 :
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 »
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