Quiero que mi .bash_historyarchivo 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
HISTSIZEyHISTFILESIZEen .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=-1deshabilitó 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
screensesiones) 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_historyHISTFILESIZE(y posiblementeHISTSIZE) tendrá un efecto inmediato no puede exagerarse .Como Jörg Beyer mencionó anteriormente,
HISTSIZEyHISTFILESIZEson 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-rpersonajesCtrl-oCtrl-oCtrl-oCtrl-o. Es por eso que mantengo duplicados en la historia.Ctrl-opara qué sirve ?Ctrl-oejecuta 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-rpara encontrar un comando antiguo (posiblemente usando las flechas hacia arriba y hacia abajo para moverse a los comandos vecinos en el historial), es suficiente mantenerCtrlpresionado y presionarovarias 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