Cómo establecer la cantidad de comandos que el historial recuerda

15

Estoy usando bash Para examinar mi historial de comandos, estoy llamando al historycomando que creo que está llamando al programa Gnu del mismo nombre. (No sé si hay una mejor manera específica de bash).

En mi .bashrc actualmente tengo una línea export PROMPT_COMMAND='history -a'para preservar el historial de mis múltiples sesiones de bash que estoy ejecutando.

Si hago historia, actualmente solo veo 524 entradas. ¿Es esto configurable? Me gustaría aumentar esto a un número mucho mayor, digamos 2000.

Gilles
fuente

Respuestas:

19

En primer lugar, history es la forma específica de bash, ninguno mejor. El historycomando es un bash incorporado como puedes ver ejecutando

$ type history 
history is a shell builtin

Ahora, el número de comandos que recuerda está controlado por la HISTSIZEvariable. Para establecerlo en un número mayor, agregue esta línea a su .profile(para .bashrcsaber por qué este es un lugar mejor para él que , vea aquí ):

export HISTSIZE=2000

De ahora en adelante, historydevolverá los últimos 2000 comandos que ejecutó.

terdon
fuente
5

man bashdice:

HISTSIZE: el número de comandos para recordar en el historial de comandos

Pero hay una Readlinevariable de a:history-size

Establezca el número máximo de entradas de historial guardadas en la lista de historial. Si se establece en cero, las entradas del historial existentes se eliminan y no se guardan nuevas entradas. Si se establece en un valor inferior a cero, el número de entradas del historial no está limitado. Por defecto, el número de entradas del historial no está limitado.

Se puede establecer history-sizecon HISTSIZE=1000, bind 'set history-size 1000'o con la línea siguiente en su ~/.inputrc:set history-size 1000

Ejemplos :

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-sizedisponibles desde bash-4.0-alpha: CAMBIOS

Evgeny Vereshchagin
fuente
2

La HISTSIZEvariable dicta cuántos comandos se mantienen en el historial de ejecución y HISTFILESIZEdetermina cuántos comandos del historial de ejecución se guardan una vez que el shell sale.

Bratchley
fuente