¿Cómo guardar el historial del terminal manualmente?

33

Tengo entendido que el archivo de historial se actualiza cuando el terminal sale. Pero a veces mi computadora se bloquea y el terminal no sale limpiamente, y luego pierdo esos comandos de mi historial, lo cual es molesto. ¿Cómo puedo hacer que se vacíe de inmediato, para que las entradas sigan allí incluso si mi computadora tiene una crisis? En este momento estoy usando esta solución, pero creo que debería haber una mejor manera.

Estoy usando gnome-terminal en Ubuntu 12.10.

wim
fuente

Respuestas:

17

Las respuestas en el enlace que proporcionó desde el sitio de Superusuarios no deben verse necesariamente como 'soluciones' al historycomportamiento predeterminado del comando. El bash shell tiene un comportamiento por defecto sensato y listo para usar.

Recomiendo encarecidamente leer ¿Cómo puedo evitar perder las líneas del historial? para una explicación de lo que historyestán haciendo estas modificaciones . Además, hay algunas preocupaciones razonables para tener en cuenta por qué este no es el comportamiento predeterminado del historycomando.

  • rendimiento: dado que está guardando todos los comandos de cada ventana history -a, el .bash_historyarchivo puede crecer bastante y requerir mayores recursos para cargar el shell bash. Esto puede dar como resultado tiempos de inicio más largos (para sus sesiones de terminal, no el inicio general del sistema, per se).

  • organización: (del artículo anterior) "los comandos de historial de shells interactivos simultáneos (para un usuario determinado) se entrelazarán. Por lo tanto, el historial no es una lista secuencial garantizada de comandos, ya que se ejecutaron en un único shell".

Si le preocupa asegurar más el bash shell y el. bash_historyarchivo a través de la auditoría, eche un vistazo a este artículo: ¿Cómo registro el historial o "seguro" bash contra la eliminación del historial?

En ocasiones (por ejemplo, un sistema inestable o falla de energía), he encontrado útiles los siguientes comandos.

Agregue las siguientes líneas a su ~/.bashrcarchivo:

unset HISTFILESIZE
HISTSIZE=3000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND

shopt -s histappend

Asegúrese de obtener su .bashrcarchivo usando el comandosource ~/.bashrc

Kevin Bowen
fuente