How Do You Make the Bash Prompt Change Colors When Logged Into a Server?

If you are someone who access multiple servers throughout the work day, in that case being able to tell which one you are working currently with just at a glance based on a color scheme can be really useful.

The Remote Bash Prompts are set by remote ~/.bashrc, so you will still need to copy it to the remote servers. But, you can use a single ~/.bashrc for all hosts and set the Bash Prompt color depending on the host name:

Notes

  • Do not set the PS1 if it is not set already (which means that, if the shell is not interactive). Just testing to see if the PS1 is “non-empty” is a common way to find out if the shell is interactive or not and we don’t want to confuse programs that do that (that means a more accurate test is checking to see if $- contains i).
  • If you want this code to run when you are logging into a remote server, you should have one of these profile files always source ~/.bashrc (Here I am assuming you already know that).
  • In PS1, the escape codes must be enclosed with in \[…\].
  • \[033[m resets the foreground and background to their default values, so here:\w appears in the terminal background/foreground.
  • \[033[48;5;XXXm\033[38;5;YYYm sets background/foreground to XXX/YYY.
  • For a script that dumps the available colors, try colortest.
  • To check and see what the Bash Prompt would look like, use the: echo -e “<\033[48;5;16m\033[38;5;196mhost\033[m:dir>$ “

Related posts

Cracking the Code: Investigating Emerging Trends on Hacker Forums

Top Cybersecurity Threats Of This Year And How To Defend Against Them

The Rise of Open-Source AI: How Companies like Mistral AI are Shaping the Future