Respuesta:
Todo lo que tiene que hacer es establecer HISTSIZE
en su perfil de bash ( ~/.bash_profile
). Puede dejar HISTFILESIZE
desactive . Esto configurará ambos el historial en memoria y el historial basado en archivos.
# Saves 10 million lines in memory and in the bash history file.
HISTSIZE=10000000
Explicación, información adicional.
El problema es que HISTFILESIZE sólo establece el máximo historial almacenado en el archivo cuando se inicia una sesión. El HISTSIZE es lo que determina cuántas líneas se guardan al final de una sesión. Si HISTFILESIZE es mayor que tu HISTSIZE, nunca verás más que tu HISTSIZE porque el archivo se está sobrescribiendo con los comandos HISTSIZE ( a menos que Si se configura el historial para que se añada, pero eso es un tema aparte: busque histappend
en comandos incorporados al shell para ello).
Esta es la razón por la que no ves ningún efecto. Con HISTSIZE por defecto (probablemente 500) tu archivo de historial siempre se sobrescribe con los comandos más recientes de $HISTSIZE. Cualquier cosa más antigua (que potencialmente podría hacer crecer la lista más allá de $HISTSIZE) es borrada.
En la mayoría de los casos no es necesario establecer HISTFILESIZE independientemente de HISTSIZE.
HISTSIZE determina el número de líneas que se escribirán en el archivo histórico. La lista de comandos se trunca al salir, antes de escribirse en el archivo histórico, manteniendo N líneas más recientes. Por defecto, esta lista sobrescribe el archivo histórico.
HISTFILESIZE determina el tamaño del archivo histórico (en líneas). El archivo se trunca al iniciarse, manteniendo N líneas más recientes. Además, el archivo histórico se trunca potencialmente cada vez que se establece HISTFILESIZE.
Por último, aunque parece no estar documentado, BASH establece HISTFILESIZE en función de HISTSIZE si éste se establece durante el arranque. He probado esto en MacOS, y en algunas variedades de Ubuntu, y el comportamiento es consistente. Si se establece el HISTSIZE en un archivo de lanzamiento ( no a través de la línea de comandos por cualquier medio), HISTFILESIZE se establecerá para que coincida. (Pruébelo usted mismo: establezca HISTSIZE a un valor arbitrariamente grande en .bash_profile, salga e inicie una nueva terminal, luego echo $HISTSIZE $HISTFILESIZE
y los encontrarás coincidentes).
Como resultado, no hay razón para tocar HISTFILESIZE a menos que quieras valores diferentes, y los casos de uso para tener valores diferentes son raros (y normalmente implican más ajustes de personalización del historial para obtener algo útil).