Comment définir le nombre de commands d'historique des commands

J'utilise bash. Pour parcourir l'historique de mes commands, j'appelle la command history qui, je crois, appelle le programme Gnu du même nom. (Je ne sais pas s'il y a un meilleur moyen spécifique de bash).

Dans mon .bashrc j'ai actuellement une export PROMPT_COMMAND='history -a' ligne export PROMPT_COMMAND='history -a' pour préserver l'historique de mes sessions bash multiples que je cours.

Si je fais de l'histoire, je ne vois actuellement que 524 inputs. Est-ce configurable? Je voudrais augmenter cela à un nombre beaucoup plus grand dire 2000.

Tout d'abord, l' history est la façon spécifique bash, rien de mieux. La command history est un bash embedded comme vous pouvez le voir en exécutant

 $ type history history is a shell builtin 

Maintenant, le nombre de commands mémorisées est contrôlé par la variable HISTSIZE . Pour le mettre en plus grand nombre, ajoutez cette ligne à votre .profile (pour cela, il vaut mieux que .bashrc , voir ici ):

 export HISTSIZE=2000 

A partir de maintenant, l' history renverra les 2000 dernières commands que vous avez exécutées.

Oui, l' man bash dit:

HISTSIZE – Le nombre de commands à mémoriser dans l'historique des commands

Mais il y a une variable de Readline : history-size

Définissez le nombre maximal d'inputs d'historique enregistrées dans la list d'historique. S'il est défini sur zéro, les inputs d'historique existantes sont supprimées et aucune nouvelle input n'est enregistrée. S'il est défini sur une valeur inférieure à zéro, le nombre d'inputs d'historique n'est pas limité. Par défaut, le nombre d'inputs d'historique n'est pas limité.

Vous pouvez définir la history-size de l' HISTSIZE=1000 avec HISTSIZE=1000 , bind 'set history-size 1000' ou avec la ligne suivante dans votre ~/.inputrc : set history-size 1000

Exemples :

 HISTSIZE=1000 bind 'set history-size 0' echo $HISTSIZE # prints 1000 bind -v | grep history-size # prints set history-size 0 history # prints nothing bind 'set history-size 0' HISTSIZE=1000 echo $HISTSIZE # prints 1000 bind -v | grep history-size # prints set history-size 1000 history # prints 13 echo $HISTSIZE\n14 bind -v | grep history-size\n15 history 

history-size disponible depuis bash-4.0-alpha : CHANGES

La variable HISTSIZE détermine le nombre de commands conservées dans l'historique en cours d'exécution et HISTFILESIZE détermine le nombre de commands de l'historique en cours d'exécution enregistrées à la sortie du shell.