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

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.