Customize the colors of your Terminal in Mac OS X

This post explains how you can change the color of the Terminal prompt in Mac OS X.
It also covers how to activate the Terminal color layout, a very useful feature that displays different colors depending on the character of the file or folder.

Change the color of the Terminal prompt

To change the color of the Terminal prompt to a green color, open or create the file ~/.bash_profile and write:

#PS1='[\u@\h \W]\$ ‘  # Default
PS1=’\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] ‘

where the first line is a comment indicating the default value, and

  • \e[1;31m indicates Red color
  • \u @ \h \W indicates the format of the prompt: user@host path.
  • \e[0m indicates format text reset

You can find more information about these special characters in this link. To activate these changes open and close the terminal, or run

source ~/.bash_profile

Activate colors in your Terminal

Activate colors is very easy. You only need to open the ~/.bash_profile file and add the following line:

export CLICOLOR=1

Save the file, and activate the changes like before.

Change the colors of your Terminal

Now, let’s learn how we can configure our Terminal to obtain the colors of the figure.

Terminal custom colors

Colors can be changed using the LSCOLORS variable in the ~/.bash_profile. By default is set to

LSCOLORS=exfxcxdxbxegedabagacad

where the string exfxcxdxbxegedabagacad is a concatenation of pairs of the format TB, where T is the text color and B is the Background color.

The order of these pairs correspond to:

  1. directory
  2. symbolic link – special kind of file that contains a reference to another file or directory.
  3. socket – special kind of file used for inter-process communication.
  4. pipe – special file that connects the output of one process to the input of another.
  5. executable
  6. block special – a kind of device file.
  7. character special – a kind of device file.
  8. executable with setuid bit set (setuid is a short for set user ID upon execution).
  9. executable with setgid bit set (setgid is a short for set group ID upon execution).
  10. directory writable to others, with sticky bit – only the owner can rename or delete files.
  11. directory writable to others, without sticky bit – any user with write and execution permissions can rename or delete files.

And the different letters correspond to:

  • a black
  • b red
  • c green
  • d brown
  • e blue
  • f magenta
  • g cyan
  • h light grey
  • x default color

The same letters in uppercase indicate Bold.

The Terminal default colors, described by exfxcxdxbxegedabagacad, and ordered by file type / text color / background color, are:

  1. ex –> directory / blue / default
  2. fx –> symbolic link / magenta / default
  3. cx –> socket / green / default
  4. dx –> pipe / brown / default
  5. bx –> executable / red / default
  6. eg –> block special / blue / cyan
  7. ed –> character special / blue / brown
  8. ab –> executable with setuid / black / red
  9. ag –> executable without setuid / black / cyan
  10. ac –> directory with sticky / black / green
  11. ad –> directory without sticky / black / brown

You can change the colors of your terminal by creating a new concatenated string, like
GxFxCxDxBxegedabagaced, and writing in the .bash_profile file the following line:

export LSCOLORS=GxFxCxDxBxegedabagaced

Enjoy the new Terminal layout! 😉

Don’t forget to g+1 if useful! Thanks!

Google+TwitterLinkedInFacebookReddit

Please, add +Marina Mele in your comments. This way I will get a notification email and I will answer you as soon as possible! :-)