Existe-t-il une taille maximale pour le fichier d'historique bash?

17

Puis-je augmenter la taille de l'historique des commandes dans bash?

Notez que j'utilise un ordinateur Red Hat Linux dans le département d'astrophysique de premier cycle ici (donc je n'ai pas autant de privilèges).

InquilineKea
la source

Réponses:

15

Au lieu de spécifier des nombres, vous pouvez faire

unset HISTSIZE 
unset HISTFILESIZE
shopt -s histappend

dans ce cas, seule la taille de votre disque (et votre "plus grande limite de fichiers", si votre système d'exploitation ou FS en a une) est la limite.

Cependant, sachez que cela ralentira de plus en plus bash. voir ce document BashFAQ et l'article debian-administration (lien d'origine mort, regardez dans un miroir: archive.is et archive.org ) pour des techniques qui évoluent mieux.

Philomath
la source
Vous devrez peut-être aussi augmenter history-sizevotre inputrc.
Chris Down
Avertissement: comme indiqué [ unix.stackexchange.com/a/76129/78713 ((() ci-dessous) , cela peut faire en sorte que Bash hérite des valeurs par défaut et, si votre .bash_historytaille est supérieure à celles-ci, la tronque.
Chris Povirk
8

Vous pouvez utiliser logrotate pour conserver les anciennes entrées. Il vous permet, par exemple, de définir des limites de taille qui déclencheront l'archivage. Il est normalement exécuté à partir d'un cronjob quotidien, mais vous pourriez tout aussi bien l'invoquer à partir de votre .bash_logoutscript.

rozcietrzewiacz
la source
Cela me semble être l'approche la plus durable, car la suppression des limites de taille aura, à long terme, des impacts sur les performances. Bien que je ne sois pas sur, j'atteindrai le seuil de sitôt, je crains que cela ne prenne un certain temps pour commencer à remarquer de tels impacts. Btw, pensez à ajouter la configuration que vous définissez et la commande optionnelle bash logout à ajouter.
Balmipour
Le lien est en panne. Peut-être modifier pour pointer vers un autre lien avec les mêmes informations prévues?
Dr Beco
7

@Philomath, la suppression de ces variables d'environnement ne fonctionne pas du tout pour moi! Pour moi, cela fait que bash utilise ses valeurs par défaut intégrées (il semble) de tronquer .bash_history à environ 9 Ko.

Ce qui fonctionne pour moi est le suivant dans mon .bashrc:

export HISTSIZE=
export HISTFILESIZE=
shopt -s histappend
zenaan
la source