I've never coloured my bash prompt before, but after a quick googling I'm running:

PS1='\[\033[0;31m\]\u@\H:\[\033[0;33m\]\w\$\[\033[00m\] '

giving me red username/host followed by yellow working directory.

Further googling has suggested to me that the colours available are fairly limited.

#   This file echoes a bunch of colour codes to the 
#   terminal to demonstrate what's available.  Each 
#   line is the color code of one forground color,
#   out of 17 (default + 16 escapes), followed by a 
#   test use of that color on all nine background 
#   colors (default + 8 escapes).

T='gYw'   # The test text

echo -e "\n                 40m     41m     42m     43m\
     44m     45m     46m     47m";

for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
           '  36m' '1;36m' '  37m' '1;37m';
  do FG=${FGs// /}
  echo -en " $FGs \033[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";

Which shows red/green/yellow/blue/pink/cyan/white, with bold variants.

However, if I run ls, the output is much more appealing, with nice pastelly-shades. .gz files, for example show as a slightly orangey-pastelly pinky red, #d74646 / rgb(215,70,70)

How can I access colours like that for my prompt. And if I can't - why can't I?

This is all using CentOS viewed via PuTTY 0.73 from my Windows 10 laptop.

Thank you!

  • 3
    Does this answer your question?
    – terdon
    Nov 18, 2020 at 10:45
  • Absolutely, yes, thank you.
    – Codemonkey
    Nov 18, 2020 at 12:05
  • 2
    Great! Closing as a dupe then.
    – terdon
    Nov 18, 2020 at 12:09


Browse other questions tagged .