Bash command history not working

The command history between sessions is not getting saved. I'm using guake and the history for the session is working fine.

I noticed that .bash_history had some commands I executed in sudo -s mode and tried the same again and all the commands while in the session got saved so I tried:

chmod 777 .bash_history

Now the old commands appear at the start of a session but no new commands are getting saved.

2

4 Answers

The commands are not visible because Bash saves history to the .bash_history file only after the shell quits, and this happens very rarely with Guake. There is a simple workaround to make Bash append the history (instead of overwriting the file) after every command

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
2

Related, typically how this gets broken is if you sudo a command before you have a .bash_history file, as then it'll get created owned by root instead of your user.

0

See for how to avoid losing history lines, and an explanation of the side-effects of doing so.

It could also be that root:root owns your .bash_history (ROOT SHOULDN'T BE THE OWNER, YOUR USER SHOULD BE THE OWNER!), in that case you need to:

#chown user:user .bash_history

This apparently could happen if you do sudo bash alot!

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like