Created
May 14, 2018 06:14
-
-
Save thomaslaurenson/ae72d4b4ec683f5a1850d42338a9a4ab to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Custom history configuration | |
# Run script using: | |
# chmod u+x better_history.sh | |
# sudo su | |
# ./better_history.sh | |
echo ">>> Starting" | |
echo ">>> Loading configuration into /etc/bash.bashrc" | |
echo "HISTTIMEFORMAT='%F %T '" >> /etc/bash.bashrc | |
echo 'HISTFILESIZE=-1' >> /etc/bash.bashrc | |
echo 'HISTSIZE=-1' >> /etc/bash.bashrc | |
echo 'HISTCONTROL=ignoredups' >> /etc/bash.bashrc | |
echo 'HISTIGNORE=?:??' >> /etc/bash.bashrc | |
echo '# append to history, dont overwrite it' >> /etc/bash.bashrc | |
echo 'shopt -s histappend' >> /etc/bash.bashrc | |
echo '# attempt to save all lines of a multiple-line command in the same history entry' >> /etc/bash.bashrc | |
echo 'shopt -s cmdhist' >> /etc/bash.bashrc | |
echo '# save multi-line commands to the history with embedded newlines' >> /etc/bash.bashrc | |
echo 'shopt -s lithist' >> /etc/bash.bashrc | |
echo '# After each command, append to the history file and reread it' >> /etc/bash.bashrc | |
echo 'export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$"\n"}history -a; history -c; history -r"' >> /etc/bash.bashrc | |
# Reload BASH for settings to take effect | |
echo ">>> Reloading BASH" | |
exec "$BASH" | |
echo ">>> Finished. Exiting." |
The blog is not working anymore, but Wayback Machine has a copy: https://web.archive.org/web/20210520231125/https://www.thomaslaurenson.com/blog/2018-07-02/better-bash-history/
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for your blog post on
bash history
, and this script.I'm still evaluating, but as of now, I wonder if your
PROMPT_COMMAND
is, uh... "a universally good thing"?Here's why: At times, I keep 2 or 3 SSH sessions open to hosts where I use
bash
as the interactive shell. I use these sessions for different purposes; e.g. one session may be used for script development, while another is used for support...man whatever
& that sort of thing. Working this way, a unique session history has advantages. For me,PROMPT_COMMAND='history -a'
is all I really want while I am working - I don't need a "merged" history from other sessions. This of course is personal; it depends on one's use case or workflow.So that's it - just a comment with another point of view.