¿Cómo obtener un historial de comandos infinito en bash?

¿Cómo obtener un historial de comandos infinito en bash?

Lo configuré export HISTSIZE=99999999999999, pero ¿es esa la mejor manera? No sé si puede ocurrir un desbordamiento. Estoy buscando una forma probada y confiable de eliminar los límites del historial de comandos.

Respuesta1

Ciertamente así esno(bien) documentado y supongo que el 99% de los usuarios de bash en este plan configuran HISTSIZE en un número muuuy grande.

En GNU, el historial de bash se maneja a través de la poderosa biblioteca readline. La biblioteca tiene la opción de limitar el tamaño del historial ("sofocar" en la jerga de línea de lectura) o no y bash simplemente establece el historial de línea de lectura en sofocado/sin sofocar. Si observa, por ejemplo, GNU bash versión 4.2, archivo variables.c, línea 4443, función void sv_histsize (char*), encontrará este comentario (y todo el proceso de asfixia/desahogamiento en la función que sigue):

/* Qué hacer después de que cambien las variables HISTSIZE o HISTFILESIZE.
Si hay un valor para este HISTSIZE (y es numérico), entonces reprime el historial. De lo contrario, si NO hay valor para esta variable,
desactive el historial. Si el nombre es HISTFILESIZE y su valor es
numérico, trunque el archivo histórico para que no contenga más de esa cantidad
de líneas. */

Entonces esto debería funcionar:

export HISTSIZE=""

Y también esto (si te sientes desafiante):

export HISTSIZE="GOTCHA"

Espero que esto ayude.

información relacionada