allNix — Astuces, tuto, docs sur Linux et autres

Configurer l’historique de bash

configurer historique bash

L’historique de bash contient les commandes que vous avez entrées précédemment dans la session courante ou des  sessions passées.

Vous pouvez consulter votre historique de commandes via l’instruction : history

Taille de l’historique

Un certain nombre de variables d’environnement permettent de configurer votre historique bash, parmi elles : HISTSIZE et HISTFILESIZE.

  • HISTSIZE : le nombre de command à enregistrer dans l’historique, 500 par défaut. Souvent les distributions augmentent cette valeur à 5000.
  • HISTFILESIZE : indique le nombre maximum de lignes à enregistrer dans le fichier d’historique (.bash_history)

Commandes enregistrées

Une autre variable intéressante est  HISTCONTROL.

Cette variable va permettre d’ajuster la façon dont certaines commandes sont enregistrées. Par exemple erasedups permet de dédupliquer les commandes enregistrées dans l’historique et ignorespace permet de ne pas enregistrer les commands qui commencent par un espace.

Cette dernière option peut-être très pratique quand vous ne voulez pas enregistrer une commande dans votre historique.

Exemple :

HISTCONTROL=ignorespace

Horodatage de l’historique

Par défaut l’historique s’affiche comme ceci :

$ history

 288 cat .bash_history
 289 man history
 290 vim .bashrc
 291 echo $HISTTIMEFORMAT
 292 history

Je trouve très pratique de pouvoir ajouter la date et l’heure de la commande. Il faut spécifier le format d’affichage dans la variable HISTTIMEFORMAT. Le format est basé sur le format de la commande date.

Exemple :

$ export HISTTIMEFORMAT="%F %T "
$ history

 288 2018-02-28 11:03:26 cat .bash_history
 289 2018-02-28 11:06:28 man history
 290 2018-02-28 11:10:16 vim .bashrc
 291 2018-02-28 11:12:48 echo $HISTTIMEFORMAT
 292 2018-02-28 11:12:52 history
 293 2018-02-28 11:31:25 export HISTTIMEFORMAT="%F %T "
 294 2018-02-28 11:31:27 history

Effacer son historique

Pour effacer complètement son historique, utilisez la commande suivante :

$ history -c

L’option -c permet de vider l’historique actuel en mémoire

$ history -w

L’option -w permet d’écrire l’historique sur le disque (.bash_history)