HISTSIZE=-1
HISTFILESIZE=-1
export HISTCONTROL=ignoredups:erasedups
shopt -s histappend
PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"
Source: https://askubuntu.com/questions/15926/how-to-avoid-duplicate-entries-in-bash-history
Stick this in your
~/.bashrc
:
export HISTCONTROL=ignoredups
You could instead use ignoreboth
. This it shorthand for both ignorespaces
(commands starting with spaces) and ignoredups
(duplicates).
I prefer ignoredups
on its own as I find the default behaviour of ignoring commands with spaces at the front quite annoying when I copy a command off a website and it doesn’t get saved because I accidentally copied in a space too…. But to each their own.
Putting this in ~/.bashrc will apply @alvin’s solution across different sessions as wlell
HISTCONTROL=ignoredups:erasedups
shopt -s histappend
PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"