Is there an easy way to change my Bash prompt to modify the colors and what text is displayed? I've heard that this is done in .bashrc, but I haven't found any nice, easy ways of modifying it. How are colors expressed in Bash?
How to customize .bashrc to configure command prompt?
bash;prompt
I once used to have those defined in my .bashrc:export e=\e[function cls          { echo -n ${e}H${e}J${e}0m; }function rcls         { echo -n ${e}H${e}J${e}S${e}H${e}J${e}0m${e}u${e}J; } # not quite yet !# rcls only works when no funny codes have been issued in between, i.e. the buffer is clean# below the current screen. And then there can be issues with the first line of the buffer.function bright       { echo -n ${e}1m; }function normal       { echo -n ${e}0m; }function colour       { echo -n ${e}$1;$2;$3m; }function black        { echo -n ${e}30m; }function bg_black     { echo -n ${e}40m; }function red          { echo -n ${e}31m; }function bg_red       { echo -n ${e}41m; }function green        { echo -n ${e}32m; }function bg_green     { echo -n ${e}42m; }function yellow       { echo -n ${e}33m; }function bg_yellow    { echo -n ${e}43m; }function blue         { echo -n ${e}34m; }function bg_blue      { echo -n ${e}44m; }function magenta      { echo -n ${e}35m; }function bg_magenta   { echo -n ${e}45m; }function cyan         { echo -n ${e}36m; }function bg_cyan      { echo -n ${e}46m; }function white        { echo -n ${e}37m; }function bg_white     { echo -n ${e}47m; }function c_up         { echo -n ${e}$1A; }function c_down       { echo -n ${e}$1B; }    # withinfunction c_right      { echo -n ${e}$1C; }function c_left       { echo -n ${e}$1D; }    # screenfunction c_pos        { echo -n ${e}$1;$2f; } # [Hf]function c_line       { echo -n ${e}$1d; }function screentop    { echo -n ${e}H; }      # [Hdf]function linetop      { echo -n ${e}G; }function buffertop    { echo -n ${e}u; }      # depends on other control characters ?function tab          { echo -n ${e}I; }function backtab      { echo -n ${e}Z; }function scrolldown   { echo -n ${e}$1T; }    # within screenfunction scrolldown_B { echo -n ${e}$1L; }    # scroll down below cursorfunction scrollup_B   { echo -n ${e}$1M; }    # scroll up below cursorfunction clear        { echo -n ${e}J; }      # delete to end of screenfunction cleanbuffer  { echo -n ${e}S; }      # copies first screen to bottom and clears                                                # everything else above the cursor.#function xxx { echo -n ${e}xxx; }export -f bright normal colourexport -f black bg_black red bg_red green bg_green yellow bg_yellowexport -f blue bg_blue magenta bg_magenta cyan bg_cyan white bg_whiteexport -f c_up c_down c_right c_left c_pos c_lineexport -f screentop linetop buffertop tab backtabexport -f scrolldown scrolldown_B scrollup_B clear cleanbufferYou can then use them for example with:PS1_init=\n$(bright)$(black)$(hostname):\w\n$(bg_blue)PS1_end=$(normal)$(bright)\n\! -> $(normal)$(clear)export PS1=$PS1_init'$(date)'$PS1_endThese may help you.The reason I made them into functions rather than variables is laziness. I just wanted to cut out on typing. Of course if you look for efficiency variables would be better.At the end of the day though these only fit certain terminals. So for any help consult your terminal documentation, not that of bash or any other shell for that matter.