export HISTCONTROL=ignoreboth:erasedups # no duplicate entries
export HISTSIZE=100000                  # big big history
export HISTFILESIZE=100000              # big big history
shopt -s histappend                     # append to history, don't overwrite it

# Save and reload the history after each command finishes
function _history_hook() {
   history -a; history -c; history -r
}
export PROMPT_COMMAND="$( \
    echo "$PROMPT_COMMAND" \
        | sed 's/;\ *$//; s/; _history_hook//g' \
    ); _history_hook"