Sur la page man de bash on peut lire ceci concernant la variable HISTCONTROL :

HISTCONTROL
 Une liste de valeurs, séparées par des  deux-points,  commandant
 la  façon  dont  les  commandes  sont  sauvegardées dans la file
 d’historique.  Si  la  liste  des  valeurs  contient  la  valeur
 ignorespace,  les  lignes  commençant par une espace ne sont pas
 sauvegardées dans la file  d’historique.  La  valeur  ignoredups
 conduit  à ne pas sauvegarder une ligne correspondant exactement
 à la ligne de commande précédente. La présence de ignoreboth est
 un  condensé pour ignorespace et ignoredups. La valeur erasedups
 conduit à retirer de la  file  d’historique  toutes  les  lignes
 précédant la ligne courante et lui correspondant avant que cette
 ligne y soit sauvegardée. Toute valeur qui ne fait pas partie de
 la  liste  ci-dessus est ignorée. Si HISTCONTROL est inexistante
 ou si elle ne contient  pas  une  valeur  correcte,  toutes  les
 lignes   lues   par   l’analyseur   de   l’interpréteur   seront
 sauvegardées dans la  file  d’historique,  selon  la  valeur  de
 HISTIGNORE.  La  seconde  ligne  et les suivantes d’une commande
 multiligne  ne  sont  pas  testées   et   sont   ajoutées   dans
 l’historique indépendamment de la valeur de HISTCONTROL.


Voici quelques test pour ce rendre compte du comportement de l’historique en fonction de la valeur de HISTCONTROL.


HISTCONTROL = ignoredup

En mode ignoredup on tape cd temp / cd .. / cd temp / cd ..

Contenu de l’historique :

539  cd temp
540  cd ..
541  cd temp
542  cd ..


Par contre si on tape on tape cd temp /cd downloads / cd .. / cd .. on aura :

544  cd temp
545  cd downloads/
546  cd ..

Les commandes identiques consécutives sont regroupées


HISTCONTROL = erasedup

En mode erasedups on tape cd temp / cd .. / cd temp / cd ..

Contenu de l’historique :

550  cd temp
551  cd ..


Qu’une seule ligne cd temp et cd .. a été gardé (les dernières) toutes les précédentes préalablement présentes/tapés (539-541, 544, 546) ont été supprimées.


HISTCONTROL = ignorespace

En mode ignorespace on saisie cd temp et cd .. précédé d’un espace

Contenu de l’historique :

552  cd temp

La commande cd … (précédée d’un espace) n’apparait pas


HISTCONTROL = ignoreboth

ignoreboth est un condensé pour ignorespace et ignoredups


Mon Choix

HISTCONTROL=erasedups:ignorespace

Les commentaires sont fermés.