I run Ubuntu 12.04, and for some reason bash does not keep my command history. the ~/.bash_history file contains only 3 commands that I typed a few months ago.

How can I fix this?

EDIT: here's the relevant content of my .bashrc:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
  • Check your bash history settings in .bashrc. – jokerdino Oct 24 '12 at 15:18
  • @jokerdino thx, I edited the question. It's the standard settings (I didn't touch them). – yohbs Oct 24 '12 at 15:25
  • What is the output of "echo $SHELL"? – Aaron Oct 24 '12 at 15:25
  • @BryceAtNetwork23 /bin/bash – yohbs Oct 24 '12 at 15:26
  • 3
    Another thing to try is to check the permissions of ~/.bash_history – reverendj1 Oct 24 '12 at 16:48

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 magically when you do sudo bash a lot!

  • Wow, I completely gave up on this and forgot about it... +1 and accept. – yohbs May 17 '13 at 19:04
  • Yeah this apparently happens when you do sudo bash a lot! :-) – mahatmanich May 22 '13 at 14:58
  • Should user:user be replaced with the actual user name? Should both? Or just one? – Kvothe Feb 25 at 9:46
  • hi @Kvothe the first user from user:user is your username. $whoami (check) the second user from user:user is your user group. when you do ls -als in a dir you will always see both user and group. For your personal user the group and user should be identical if not specified otherwise ... – mahatmanich Feb 25 at 9:51
  • Thanks. For me $whoami does not return anything. For the ls -als part you mean the two entries before the file size? – Kvothe Feb 25 at 9:54

Assuming you're using gnome-terminal??, if so maybe check the permissions on .bash_history. It should be -rw-r--r--

To do so in a terminal ls -la |grep .bash, all 3 files should have the above permissions. Otherwise try deleting .bash_history, restart & see if a history is then written

Note that the history is only written once the terminal is closed or quit.


As commented above, this can be fixed with root->user ownership changes. Initial permissions may be from -rw-r--r-- or any other variation and root ownership.

In my case I only had .bash_history owned by root but it is all of .bash_* that must be owned by user.

  • 2
    Welcome to ask ubuntu :) This is a 3 years old answered question and the solution you mentioned already exists in another answer .. just vote it up :) – storm May 24 '16 at 9:58

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.