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:
- Bash history loss when using histappend
- How to prevent Bash from altering history?
- What determines what shows up in the bash history command?
- How do I keep my bash history across sessions?
- save bash history, regularly
None seemed to address my issue, including the answer below from the very person which had their question answered from the supposed duplicate.