guardar el historial de bash regularmente

9

He configurado bash para guardar el historial en un archivo. Hace esto cada vez que bash sale [correctamente]. Como a veces bash no sale correctamente, el historial se pierde.

Entonces, la pregunta es ¿puedo configurar bash para guardar el historial más regularmente?


Estoy ejecutando Debian Gnu (versión 6, Squeeze) con un kernel de Linux.

versión bash: GNU bash, versión 4.1.5 (1) -release (i486-pc-linux-gnu)

ctrl-alt-delor
fuente

Respuestas:

8

guarda esto en tu bash_profile o bashrc

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

d4v3y0rk
fuente
¿Sigue siendo una respuesta válida? En mi sistema, hay una entrada shopt -s histappenddebajo /etc/bash/bashrc. Aún así, cualquier salida impura de shells en ejecución pierde su historial de línea de comando.
Nikos Alexandris
-1

Es posible que su $ HISTFILE sea propiedad de root. Suponiendo que está utilizando bash como su shell de inicio de sesión. Aquí se explica cómo verificar:

$ [ -z $HISTFILE ] && echo need to set HISTFILE || ls -l $HISTFILE
-rw------- 1 root root 36639 May 21 19:48 /home/joeb/.bash_history

El valor predeterminado para HISTFILE debe ser ~ / .bash_history, si ve el error "necesita configurar HISTFILE" o si $ HISTFILE no es ~ / .bash_history, debe verificar ~ / .profile o ~ / .bash_profile o ~ /. bashrc para asegurarse de que no se está configurando o restableciendo incorrectamente.

Normalmente, solo es propiedad de root, así que solo reinícielo:

$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history

Cerrar sesión y luego iniciar sesión.

$ history

Debería mostrar el último conjunto de comandos ingresados ​​antes de que el archivo fuera propiedad de root, seguido de los comandos ingresados ​​después de que se cambió la propiedad del archivo.

éxito centrado
fuente
3
Dado que OP dice que el historial se guarda cuando bash sale normalmente, su problema no tiene nada que ver con los permisos. Quizás su respuesta aún podría ser útil para alguien que tiene problemas con el historial de bash.
Dmitry Grigoryev