Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I don't know if this is expected, but my history is not saved across sessions. This is to say, if I close the window, then when I open it again, the history is empty. How can I persist it across sessions ?

Here are the outputs of the commands you asked:

 set -o | grep history
history         on

$ grep -i history ~/.bashrc ~/.bash_profile ~/etc/bash.bashrc ~/etc/profile ~/.profile
/cygdrive/c/cygwin/home/car/.bashrc:# Make bash append rather than overwrite the history on disk
/cygdrive/c/cygwin/home/car/.bashrc:# History Options
/cygdrive/c/cygwin/home/car/.bashrc:# Don't put duplicate lines in the history.
/cygdrive/c/cygwin/home/car/.bashrc:# export PROMPT_COMMAND="history -a"
grep: /cygdrive/c/cygwin/home/car/etc/bash.bashrc: No such file or directory
grep: /cygdrive/c/cygwin/home/car/etc/profile: No such file or directory
/cygdrive/c/cygwin/home/car/.profile:if [ "x$HISTFILE" == "x/.bash_history" ]; then
/cygdrive/c/cygwin/home/car/.profile:  HISTFILE=$HOME/.bash_history

$ ls -la ~/ | grep history -> no output

$ echo $HISTFILE 
~/.bash_history
$ echo $HISTSIZE
500
$ echo $HISTFILESIZE 
500

After the edits described in the answer below, I now get:

grep -i hist .bashrc
# Make bash append rather than overwrite the history on disk
shopt -s histappend
# History Options
# Don't put duplicate lines in the history.
export HISTCONTROL="ignoredups"
# (added) A new shell gets the history lines from all previous shells
PROMPT_COMMAND='history -a'
# HISTIGNORE is a colon-delimited list of patterns which should be excluded.

I am still unable to have a history saved across sessions. I read the following questions:

None seemed to address my issue, including the answer below from the very person which had their question answered from the supposed duplicate.

share|improve this question
    
Also see my question here and the questions it links to. Try the suggestions in them and ask again if you still have problems. In the emantime, voting to close as a duplicate. –  terdon Apr 18 '13 at 12:39
    
edit: set -o | grep history shows the history is on, echo $HISTFILE shows ~/.bash_history, echo $HISTSIZE and $HISTFILESIZE both show 500. But the history is still not persisted across sessions –  Car981 Apr 18 '13 at 13:05
    
The $HISTFILE is set to ~/.bash_history, but there is no .bash_history file in ~. How can this be ? –  Car981 Apr 18 '13 at 13:20
    
Please edit your question to add new information rather than commenting. Include the output of these commands: set -o | grep history, grep -i history ~/.bashrc ~/.bash_profile ~/etc/bash.bashrc ~/etc/profile ~/.profile and ls -la ~/ | grep history. –  terdon Apr 18 '13 at 13:41
    
Try setting a specific history file, add this line to your ~/.bashrc: export HISTFILE="~/history". Does that make a difference? –  terdon Apr 19 '13 at 12:38
add comment

2 Answers 2

OK I found out what's wrong. I can't close the window, I have to type 'exit' for it to close gracefully.

share|improve this answer
add comment

Well, it looks like your ~/.bashrc does not have the necessary options. Make sure these lines are in your ~/.bashrc:

# Make Bash append rather than overwrite the history on disk:
shopt -s histappend
# A new shell gets the history lines from all previous shells
PROMPT_COMMAND='history -a'
# Don't put duplicate lines in the history.
export HISTCONTROL=ignoredups
share|improve this answer
    
It still doesn't work. See edit for an update of the new output result. –  Car981 Apr 18 '13 at 15:21
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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