El historial de comandos de Bash no funciona

13

El historial de comandos entre sesiones no se guarda. Estoy usando guake y el historial de la sesión funciona bien.

Noté que .bash_history tenía algunos comandos que ejecuté en sudo -smodo e intenté lo mismo nuevamente y todos los comandos mientras estaba en la sesión se guardaron, así que intentéchmod 777 .bash_history

Ahora los comandos antiguos aparecen al comienzo de una sesión, pero no se guardan comandos nuevos

Gracias de antemano

v2r
fuente
2
Entonces ... ¿qué estás tratando de lograr exactamente? Parece que no estás haciendo una pregunta aquí: /
Thomas Ward
44
El modo 777 es innecesario, especialmente no tiene nada que ver con el indicador 'ejecutable' (el modo predeterminado es 600). El ~/.bash_historyse escribe cuando cierra la sesión (para acceder a los comandos más nuevos , puede usar el historycomando). Pero no veo el problema también ...
Onedinkenedi

Respuestas:

16

Los comandos no son visibles porque Bash guarda el historial en el archivo .bash_history solo después de que se cierra el shell, y esto ocurre muy raramente con Guake. Hay una solución simple para hacer que Bash agregue el historial (en lugar de sobrescribir el archivo) después de cada comando

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
Adam Byrtek
fuente
44
Pura asombrosa. Ojalá hubiera sabido sobre esto hace 5 años.
HDave
8

Relacionado, por lo general, cómo se rompe esto es si sudo un comando antes de tener un archivo .bash_history, ya que se creará propiedad de root en lugar de su usuario.

Khamer
fuente
2

También podría ser esa raíz: root posee su .bash_history (¡ROOT NO DEBE SER EL PROPIETARIO, SU USUARIO DEBE SER EL PROPIETARIO!), En ese caso necesita:

#chown user:user .bash_history

¡Esto aparentemente podría suceder si haces sudo bashmucho!

mahatmanich
fuente