Main Tutorials

Add color to the bash terminal in Mac OS X

By default, the bash terminal in Mac OSX looks plain.

bash with no color

bash terminal, profile = Homebrew

1. Add Color To Bash

To make the bash terminal console more colorful, you need to create or edit a ~/.bash_profile file, and configure the LSCOLORS value.

See following example to show you how to create a new .bash_profile and put it in your home directory.


$touch ~/.bash_profile
$ echo "export CLICOLOR=1" >> ~/.bash_profile
$ echo "export LSCOLORS=GxFxCxDxBxegedabagaced" >> ~/.bash_profile
$ cat ~/.bash_profile
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

2. LSCOLORS Explanation

To understand what is LSCOLORS, type man ls and read the LSCOLORS explanation.


The color designators are as follows:

                           a     black
                           b     red
                           c     green
                           d     brown
                           e     blue
                           f     magenta
                           g     cyan
                           h     light grey
                           A     bold black, usually shows up as dark grey
                           B     bold red
                           C     bold green
                           D     bold brown, usually shows up as yellow
                           E     bold blue
                           F     bold magenta
                           G     bold cyan
                           H     bold light grey; looks like bright white
                           x     default foreground or background

Note that the above are standard ANSI colors.  The actual display may
differ depending on the color capabilities of the terminal in use.

The order of the attributes are as follows:

                           1.   directory
                           2.   symbolic link
                           3.   socket
                           4.   pipe
                           5.   executable
                           6.   block special
                           7.   character special
                           8.   executable with setuid bit set
                           9.   executable with setgid bit set
                           10.  directory writable to others, with sticky bit
                           11.  directory writable to others, without sticky bit

The default is "exfxcxdxbxegedabagacad", i.e. blue foreground and
default background for regular directories, black foreground and red
background for setuid executables, etc.

In this example, value LSCOLORS=GxFxCxDxBxegedabagaced, means directory = Gx (bold cyan foreground and default background).

Reference

  1. lscolors generator
  2. COLORS-Lscolors

About Author

author image
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

Subscribe
Notify of
1 Comment
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Alessansro
1 year ago

Good guy! You just point out that “touch” is a way to make it permanent while EXPORT is transient.