Where is bash's history stored?
If I run history
, I can see my latest executed commands.
But if I do tail -f $HISTFILE
or tail -f ~/.bash_history
, they do not get listed.
Is the file locked in any temporary location?
The list of commands is stored in memory while bash is running They are written into .bash_history
on exit .
When an interactive shell exits, the last $HISTSIZE lines are copied from the history list to the file named by $HISTFILE
If you want to force the command history to be written out, you can use the history -a
command, which will.
Append the new history lines (history lines entered since the beginning of the current Bash session) to the history file.
There is also a -w
option.
Write out the current history to the history file.
which may suit you more depending on exactly how you use your history.
If you want to make sure that they're always written immediately, you can put that command into your PROMPT_COMMAND
variable.
export PROMPT_COMMAND='history -a'