Responder:
Todo lo que necesitas hacer es configurar HISTSIZE
tu perfil de bash ( ~/.bash_profile
). Puedes dejarlo sin HISTFILESIZE
configurar . Esto configurará tanto el historial en memoria como 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 solo establece el historial máximo almacenado en el archivo cuando inicia una sesión. HISTSIZE es lo que determina cuántas líneas se guardan al final de una sesión. Si HISTFILESIZE es más grande que su HISTSIZE, nunca se verá más que su HISTSIZE porque el archivo se sobrescribe cada vez con comandos HISTSIZE ( a menos que la historia conjunto de datos anexados, pero eso es un tema aparte: mirar hacia arriba histappend
en la cáscara incorporado comandos para eso) .
Esta es la razón por la que no ves ningún efecto. Con HISTSIZE predeterminado (probablemente 500), su archivo de historial siempre se sobrescribe con los comandos $ HISTSIZE más recientes. Todo lo antiguo (que podría hacer crecer la lista más allá de $ HISTSIZE) se borra.
Para la mayoría de los casos, no es necesario establecer HISTFILESIZE independientemente de HISTSIZE.
HISTSIZE determina cuántas líneas se escribirán en el archivo de historial. La lista de comandos se trunca al salir, antes de escribir en el archivo de historial, manteniendo N líneas más recientes. Por defecto, esta lista sobrescribe el archivo de historial.
HISTFILESIZE determina qué tan grande puede ser el archivo de historial (en líneas). El archivo se trunca al inicio, manteniendo N líneas más recientes. Además, el archivo de historial se trunca potencialmente cada vez que se establece HISTFILESIZE.
Finalmente, aunque parece no estar documentado, BASH establece HISTFILESIZE en función de HISTSIZE si HISTSIZE está configurado durante el inicio. He probado esto en macOS y algunas variedades de Ubuntu, y el comportamiento es consistente. Si configura HISTSIZE en un archivo de inicio ( no a través de la línea de comando de ninguna manera), HISTFILESIZE se configurará para que coincida. (Pruébelo usted mismo: establezca HISTSIZE en algún valor arbitrariamente grande en .bash_profile, salga y comience una nueva terminal, echo $HISTSIZE $HISTFILESIZE
y luego encontrará que coinciden).
Como resultado, no hay ninguna razón para tocar HISTFILESIZE a menos que desee valores diferentes, y los casos de uso para tener valores diferentes son raros (y generalmente implican más configuraciones de personalización del historial para obtener algo útil).