Historique des commandes

bash enregistre toutes vos commandes dans le fichier .bash_history de votre répertoire personnel. Plusieurs options et outils vous permettent d’en tirer le maximum.

Voyons d’abord comment le configurer. Quatre variables l’affectent:

HISTFILE: nom du fichier d’historique. Si la variable est vide, alors c’est ~/.bash_history. Si la variable n’est pas définie, alors il n’y aura pas d’historique.

HISTSIZE (ou HISTFILESIZE): définit le nombre de commandes que le fichier peut enregistrer. S’il y en a trop, les plus vieilles sont éliminées.

HISTCONTROL: définit les options:

  • ignoredups: ne pas enregistrer les duplicatas successifs.
  • ignorespace: ne pas enregistrer les commandes qui sont précédées d’une espace.
  • ignoreboth: activer ignoredups et ignorespace

HISTTIMEFORMAT: spécifie le format d’affichage de l’horodatage de la commande. Si le format n’est pas spécifié, l’horodatage n’est pas affiché. La syntaxe de spécification du format est identique à celle de la commande date. Exemple: HISTTIMEFORMAT=’%y/%m/%d %T ‘

Comment spécifier

Il y a au moins 3 façons:

  • interactivement: n’affecte que la fenêtre où la commande sera donnée.
    Exemple: HISTCONTROL=ignoredups
    Non-persistant (perdu après un redémarrage).
  • dans ~/.bashrc: n’affecte qu’un usager
    On peut éditer .bashrc ou faire echo HISTCONTROL=ignoredups >> ~/.bashrc
  • dans /etc/bashrc: affecte tous les usagers
    On peut éditer /etc/bashrc ou faire:
    echo HISTCONTROL=ignoredups >> /etc/bashrc

Comment afficher l’historique

La commande history permet d’afficher l’historique. Chaque ligne contiendra le numéro séquenciel, l’horodatage (si défini) et la commande. La commande history a plusieurs options dont une pour vider l’historique (voir man history).

On peut aussi afficher le contenu du fichier .bash_history mais, à ce moment, il n’y aura pas de numéro séquenciel ou d’horodatage. Il faut aussi noter que les commandes courantes seront ajoutées au fichier seulement lorsque la fenêtre sera fermée.

Comment utiliser l’historique

Il y a plusieurs façons:

  • Les flèches ⬆ et ⬇ permettent d’accéder séquentiellement aux commandes récentes.
  • ctrl-r cmd permet de chercher la plus récente cmd dans l’historique. Un ctrl-r supplémentaire accède à la cmd précédente. Les flèches ⬆ et ⬇ permettent d’obtenir la commande précédente ou suivante. Les fléches ⬅ ou ➡ permettent de sortir de la recherche.
  • La commande fc permet d’afficher ou d’éditer les dernières commandes:
    • fc                 permet d’éditer la dernière commande puis de l’exécuter
    • fc -3 -1     permet d’éditer les 3 dernières commandes puis de les exécuter.
    • fc -l            affiche les 16 dernières commandes
    • fc -l -3 -1 affiche les 3 dernières commandes
    • fc -s  [abc=def] cmd localise la dernière cmd, remplace abc par def partout dans la ligne puis l’exécute.

Cette dernière commande (fc -s) est très utile et plusieurs ont pris l’habitude de lui assigner un alias alias r=’fc -s’ dans .bashrc. Cela permet, par exemple:

cp ab25.txt ab25.org
r ab2=yz6 cp

La deuxième commande effectuera:     cp yz65.txt yz65.org

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *