99

How can I get the bash to look colored like this?

colored-bash

  • daniel451 how come you have answered for your own question within the same timings. – kva Nov 16 '17 at 14:20
  • 4
    @kva Answering your own question at the same time as posting is encouraged across the Stack Exchange network. – CJ Dennis Jan 19 '18 at 4:38
  • Related: askubuntu.com/questions/123268/…. It explains how individual parts of the prompt can be coloured differently. – FreezingFire Dec 1 '18 at 10:48
146

Open ~/.bashrc in text editor and uncomment line:

#force_color_prompt=yes

to be:

force_color_prompt=yes

save then execute source ~/.bashrc

| improve this answer | |
  • Doesn't exactly answer the question, but I like this result better (less distracting). – James Hirschorn Oct 1 '16 at 18:27
  • I think it does answer. why not ? – To Kra Oct 25 '16 at 6:14
  • Here is what mine looks like after your method: !2016-10-25 16:12:15.png Not exactly as in the question. – James Hirschorn Oct 25 '16 at 20:19
  • 1
    Is force_color_prompt=yes the intended way of enabling colors? To me forcing sounds like a workaround. – Jaakko Jan 14 '18 at 11:09
  • 1
    I hope I didn't sound disrespectful with my comments, I'm just trying to understand how it was meant to work. For example, above those lines you mention, there's a different way of enabling colors, xterm-color|*-256color) color_prompt=yes;; Which makes me think that the colors could automatically enable if you had correct value in TERM variable. – Jaakko Mar 26 at 18:02
68

I came up with this solution:

  • open ~/.bashrc in an editor
  • copy this and add it at the end of .bashrc file:

    PS1='\[\033[1;36m\]\u\[\033[1;31m\]@\[\033[1;32m\]\h:\[\033[1;35m\]\w\[\033[1;31m\]\$\[\033[0m\] '
    
  • save the file and restart bashrc:

    source ~/.bashrc
    

For a full list of available colors and further options look up these links:

| improve this answer | |
4

A version that is a bit more 'general' - should work with a varied environment:
(depends on terminfo)

Insert this in your $HOME/.bashrc:

function fgtab {
  echo "tput setf/setb - Foreground/Background table"
  for f in {0..7}; do
    for b in {0..7}; do
      echo -en "$(tput setf $f)$(tput setb $b) $f/$b "
    done
    echo -e "$(tput sgr 0)"
  done
}

# The prompt in a somewhat Terminal -type independent manner:
cname="$(tput setf 3)"
csgn="$(tput setf 4)"
chost="$(tput setf 2)"
cw="$(tput setf 6)"
crst="$(tput sgr 0)"
PS1="\[${cname}\]\u\[${csgn}\]@\[${chost}\]\h:\[${cw}\]\w\[${csgn}\]\$\[${crst}\] "

Then execute source ~/.bashrc.

After that, fgtab will display a color table with numbers. Those numbers are for tput setf n and tput setb n where 'n' is the number, 'f' stands for 'foreground' and 'b' stands for 'background' color.

tput sgr 0 will reset foreground and background colors to default.

And as you can see, changing the colors used for the prompt becomes really easy (just edit the same number in $HOME/.bashrc as you wish).

Add an $(tput setb n) in $cname if you wish to have ALL of the prompt with background n.

| improve this answer | |
0

If you are using Termux then you can Install zshell which will change everything in your terminal, You can read this post fo the installation.https://www.learntermux.tech/2020/02/how-to-install-z-shell-best-theme-for-TERMUX-2020.html

| improve this answer | |
  • 1
    It is good to add the details of the answer from the link in your answer in case the link ever goes down. – gman Feb 15 at 14:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.