Quiero que mi .bash_history
archivo sea ilimitado. Por ejemplo, siempre puedo regresar y ver cómo construí / configuré algo, o qué fue ese ingenioso comando, o cómo algún comando rompió algo hace semanas. ¿Cómo cambio esta configuración?
350
Respuestas:
Establezca
HISTSIZE
yHISTFILESIZE
en .bashrc a una cadena vacía:En bash 4.3 y versiones posteriores también puedes usar
HISTSIZE=-1 HISTFILESIZE=-1
:fuente
HISTSIZE= HISTFILESIZE=
resultados en deshabilitar completamente el historial de bash, al menos para mí.HISTSIZE=-1 HISTFILESIZE=-1
deshabilitó mi historial, mientras queHISTSIZE= HISTFILESIZE=
hice el truco. CentOS 7 aquí.HISTSIZE= HISTFILESIZE=
que deberíasexport HISTSIZE=
export HISTFILESIZE=
Después de muchas iteraciones grandes y feas y casos extraños a lo largo de los años, ahora tengo una sección concisa de mi .bashrc dedicada a esto.
Primero, debe comentar o eliminar esta sección de su .bashrc (predeterminado para Ubuntu). Si no lo hace, ciertos entornos (como ejecutar
screen
sesiones) seguirán truncando su historial:En segundo lugar, agregue esto al final de su .bashrc:
Nota: cada comando se escribe inmediatamente después de ejecutarse, por lo que si accidentalmente pega una contraseña, no puede simplemente "matar -9 %%" para evitar la escritura del historial, deberá eliminarla manualmente.
También tenga en cuenta que cada sesión de bash cargará el archivo de historial completo en la memoria, pero incluso si su archivo de historial crece a 10 MB (lo que llevará mucho, mucho tiempo) no notará mucho efecto en el tiempo de inicio de bash.
fuente
HISTFILESIZE=
y enHISTSIZE=
blanco en lugar de -1, y asegúrese de no tener ninguna otra declaración de esos parámetros en un .bashrc o .bash_profile o .profile..bashrc
, tuve esa configuración después en otro archivo cargado por .bashrc ..., ¡ahora funciona! ¡gracias!cat ~/.bash_history >>~/.bash_eternal_history
HISTFILESIZE
(y posiblementeHISTSIZE
) tendrá un efecto inmediato no puede exagerarse .Como Jörg Beyer mencionó anteriormente,
HISTSIZE
yHISTFILESIZE
son clave.Además, definitivamente debe consultar la variable ambiental
HISTCONTROL
, que le permite hacer cosas interesantes como no almacenar comandos de historial duplicados (HISTCONTROL=erasedups
). No tiene sentido tener un historial ilimitado si tiene que navegar a través de cientos de líneascd ..
o similares.Enlaces: aquí , y trabajando con bash history . Las preguntas frecuentes de bash Variable también valen la pena .
fuente
Ctrl-r
personajesCtrl-o
Ctrl-o
Ctrl-o
Ctrl-o
. Es por eso que mantengo duplicados en la historia.Ctrl-o
para qué sirve ?Ctrl-o
ejecuta el comando en el indicador y muestra de inmediato el comando justo después del anterior en el historial. Una ventaja es que después de usarCtrl-r
para encontrar un comando antiguo (posiblemente usando las flechas hacia arriba y hacia abajo para moverse a los comandos vecinos en el historial), es suficiente mantenerCtrl
presionado y presionaro
varias veces para ejecutar nuevamente una serie anterior de comandos, incluso en bucle infinito si tu quieres. Ver también GNU Readline - WikipediaHay (al menos) dos entornos relevantes aquí:
Creo que podemos estar de acuerdo en que el término ilimitado es a menudo el mismo que muy grande (¿o tiene almacenamiento ilimitado de archivos?). Tan solo establezca los valores muy grandes.
fuente