web-dev-qa-db-fra.com

Comment obtenir l'historique des commandes infinies dans bash?

J'ai mis export HISTSIZE=99999999999999 mais est-ce la meilleure façon? Je ne sais pas si un débordement pourrait se produire. Je recherche un moyen testé et fiable de supprimer les limites de l'historique des commandes.

53
user55542

il est en effet non (bien) documenté et je suppose que 99% des utilisateurs de bash sur ce système planifié définissent HISTSIZE sur un très grand nombre.

Dans le GNU _historique, l’historique est géré par la puissante bibliothèque readline. La bibliothèque a la possibilité de limiter ou non la taille de l'historique ("stifle" dans le jargon readline) et bash définit simplement l'historique readline sur étouffé/non étouffé. Si vous regardez par exemple GNU version bash 4.2, fichier variables.c, ligne 4443, fonction void sv_histsize (char *), vous trouverez ce commentaire (et l’ensemble étouffant/unstifling dans la fonction suivante):

/ * Que faire après le changement des variables HISTSIZE ou HISTFILESIZE.
S'il existe une valeur pour cet HISTSIZE (et qu'elle est numérique), étouffez l'historique. Sinon, s'il n'y a pas de valeur pour cette variable,
Unstifle l'histoire. Si name est HISTFILESIZE et que sa valeur est
numérique, tronque le fichier d'historique pour qu'il ne contienne plus que cela
lignes. * /

Donc, cela devrait faire l'affaire:

export HISTSIZE=""

Et aussi ceci (si vous vous sentez provocant):

export HISTSIZE="GOTCHA"

J'espère que cela t'aides.

68
Epikuros