Pregunta:
Si ejecuto el history
, puedo ver mis últimos comandos ejecutados.
Pero si hago tail -f $HISTFILE
o tail -f ~/.bash_history
, no aparecen en la lista.
¿El archivo se bloquea, hay una ubicación temporal o algo similar?
Respuesta:
Bash mantiene la lista de comandos internamente en la memoria mientras se ejecuta. Están escritos en .bash_history
al salir :
Cuando sale un shell interactivo, las últimas líneas $ HISTSIZE se copian de la lista del historial al archivo nombrado por $ HISTFILE
Si desea forzar la escritura del history -a
comandos, puede usar el comando history -a
, que hará lo siguiente:
Agregue las nuevas líneas de historial (líneas de historial ingresadas desde el comienzo de la sesión actual de Bash) al archivo de historial.
También hay una opción -w
:
Escriba el historial actual en el archivo de historial.
lo que puede ser más adecuado para ti dependiendo de cómo uses exactamente tu historial.
Si desea asegurarse de que siempre se escriban de inmediato, puede poner ese comando en su variable PROMPT_COMMAND
:
export PROMPT_COMMAND='history -a'