Improve bash history, add persistent history file

This commit is contained in:
Andrew R. M 2025-04-04 17:42:35 +00:00
parent 4ed509fee6
commit 912f5aa0b5
2 changed files with 25 additions and 6 deletions

View File

@ -24,7 +24,7 @@ export HISTSIZE=-1
#{- SHELL OPTIONS -}#
# Append history to $HISTFILE when bash exits, instead of overwriting it
shopt -s histappend
#shopt -s histappend
# Attempt to preserve multi-line commands in history with embedded newlines
shopt -s cmdhist lithist

View File

@ -23,12 +23,31 @@ export PS4="${blue}#${no_color} "
#{- HISTORY -}#
#shopt -s histappend
#export PROMPT_COMMAND="history -a; histroy -c; history -r; $PROMPT_COMMAND"
PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"
# PROMPT_COMMAND="echo hist1; history; history -n; echo hist2; history; history -w; echo hist3; history; history -c; echo hist4; history; history -r; echo hist5; history; $PROMPT_COMMAND"
export HISTFILE="$HOME/.history/bash"
export HISTTIMEFORMAT="%F %T "
export HISTCONTROL="erasedups:ignoreboth"
export HISTFILESIZE=-1
export HISTSIZE=-1
export HISTCONTROL="ignoreboth:erasedups"
shopt -s histappend
export PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"
export PERSISTENT_HISTFILE="${HOME}/.persistent_history"
log_bash_persistent_history()
{
local rc=$?
[[
$(history 1) =~ ^\ *[0-9]+\ +([^\ ]+\ [^\ ]+)\ +(.*)$
]]
local date_part="${BASH_REMATCH[1]}"
local command_part="${BASH_REMATCH[2]}"
if [ "$command_part" != "$PERSISTENT_HISTORY_LAST" ]
then
echo $date_part "|" "$rc" "|" "$command_part" >> "${PERSISTENT_HISTFILE}"
export PERSISTENT_HISTORY_LAST="$command_part"
fi
}
PROMPT_COMMAND="log_bash_persistent_history; $PROMPT_COMMAND"
#{- SOURCING -}#