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 HISTSIZE, nunca verá más que HISTSIZE porque el archivo se sobrescribe con los comandos HISTSIZE ( a menos que configure el historial para anexar, pero ese es un tema aparte: busque histappend
en comandos incorporados del shell para eso).
Esta es la razón por la que no estás viendo ningún efecto. Con HISTSIZE por defecto (probablemente 500) su archivo histórico siempre se sobrescribe con los comandos $ HISTSIZE más recientes. Cualquier cosa anterior (que potencialmente podría hacer crecer la lista más allá de $ HISTSIZE) se elimina.
Para guardar 10 millones de líneas, solo necesitas configurar HISTSIZE en tu ~/.bash_profile
:
HISTSIZE=10000000
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 histórico. La lista de comandos se trunca al salir, antes de escribir en el archivo histórico, manteniendo N las líneas más recientes. De forma predeterminada, esta lista sobrescribe el archivo histórico.
HISTFILESIZE determina el tamaño del archivo de historial (en líneas). El archivo se trunca al inicio, manteniendo N las líneas más recientes. Además, el archivo histórico se trunca potencialmente cuando se establece HISTFILESIZE.
Finalmente, aunque parece no estar documentado, BASH establece HISTFILESIZE basándose en HISTSIZE si HISTSIZE está configurado durante el inicio. He probado esto en macOS, y algunas variedades de Ubuntu, y el comportamiento es consistente. Si establece HISTSIZE en un archivo de inicio ( no a través de la línea de comandos por cualquier medio), HISTFILESIZE se configurará para que coincida. (Pruébelo usted mismo: establezca HISTSIZE en un valor arbitrariamente grande en .bash_profile, salga e inicie un nuevo terminal, luego echo $HISTSIZE $HISTFILESIZE
y los encontrará coincidiendo).
Como resultado, no hay razón para tocar HISTFILESIZE a menos que desee diferentes valores, y los casos de uso para tener diferentes valores son raros (y generalmente implican más configuraciones de personalización de historial para obtener algo útil).