Here are some useful ways to enhance your operating system shell environment. The first will give you a permanent bash history that’s up to date and doesn’t require a logout to update command history, nor does it get reset. The second are some PS1 enhancement examples that have been useful to me. This should work on both Linux or OSX, and is aimed towards the Bash shell – let’s get started.
Bash Eternal History
The history command is very useful, it gives you a nice narrative on commands entered in your shell however it’s fairly limited in that saving history is only committed once your TTY exits. Also history functionality has a limited size.
You can increase the history size (and filesize) via a ~/.bashrc variable however:
export HISTSIZE=10000000 export HISTFILESIZE=10000000
Keep it Permanently
I use the these lines in my ~/.bashrc to keep a permanent copy of all the commands run on my system along with increasing the histfilesize and histsize variable above.
export HISTTIMEFORMAT="%s " PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND ; }"'echo $$ $USER \ "$(history 1)" >> ~/.bash_eternal_history'
Now every command you type everywhere as your user is recorded. As you can see I’ve had mine a while.
ls -lah .bash_eternal_history -rw-r--r--. 1 wfoster wfoster 4.5M Mar 8 18:14 .bash_eternal_history
Customize your Shell
You can also take advantage of shell PS1 variables, the customization I use shows current working directory and time and adds some additional color. Experiment and find something you like.
export TERM="xterm-color" C1="\[\033[0;31m\]" C2="\[\033[1;30m\]" C3="\[\033[0m\]" C4="\[\033[0;36m\]" export PS1="${C2}(${C1}\u${C2}@${C4}\h${C2}) - (${C4}\A${C2}) - (${C4}\w${C2})\n${C2}-${C1}=>>${C3}"
Before Settings:
After Settings:
What kind of customizations do you use in your shell environment? If you have any tips or suggestions or find these tips useful leave a comment below.
Clever trick on the eternal bash history. I’ve had a hack I’ve used for years that never quite worked and I never quite had the time to fix it. Now I don’t have to. :-)
LikeLiked by 1 person