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, 2012 at 15:18
  • @jokerdino thx, I edited the question. It's the standard settings (I didn't touch them).
    – yohbs
    Oct 24, 2012 at 15:25
  • What is the output of "echo $SHELL"?
    – Aaron
    Oct 24, 2012 at 15:25
  • @BryceAtNetwork23 /bin/bash
    – yohbs
    Oct 24, 2012 at 15:26
  • 3
    Another thing to try is to check the permissions of ~/.bash_history
    – reverendj1
    Oct 24, 2012 at 16:48

3 Answers 3


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, 2013 at 19:04
  • Yeah this apparently happens when you do sudo bash a lot! :-) May 22, 2013 at 14:58
  • Should user:user be replaced with the actual user name? Should both? Or just one?
    – Kvothe
    Feb 25, 2021 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 ... Feb 25, 2021 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, 2021 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, 2016 at 9:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .