Last active
November 7, 2024 12:13
-
-
Save ckabalan/7d374ceea8c2d9dd237d763d385cf2aa to your computer and use it in GitHub Desktop.
The Best Bash History Settings Ever
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
# /etc/profile.d/best_bash_history.sh | |
# Save 5,000 lines of history in memory | |
HISTSIZE=10000 | |
# Save 2,000,000 lines of history to disk (will have to grep ~/.bash_history for full listing) | |
HISTFILESIZE=2000000 | |
# Append to history instead of overwrite | |
shopt -s histappend | |
# Ignore redundant or space commands | |
HISTCONTROL=ignoreboth | |
# Ignore more | |
HISTIGNORE='ls:ll:ls -alh:pwd:clear:history' | |
# Set time format | |
HISTTIMEFORMAT='%F %T ' | |
# Multiple commands on one line show up as a single line | |
shopt -s cmdhist | |
# Append new history lines, clear the history list, re-read the history list, print prompt. | |
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND" |
@CaseOf Why's it important to check for interactive shell?
I see bind gives some errors if it's not interactive
I dont remember exactly but I think I did get an issue while trying to run a script in cron or something like this
Shouldn't all the variables be exported? It didn't work in my system until I exported everything
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It could be worth testing if it’s an interactive bash shell before loading vars in profile.d with something like: