Tuesday, September 22, 2009

Color Your OS X Command Prompt

Edit

~/.bash_profile

and add the following two lines:

export CLICOLOR=1

export LSCOLORS=ExFxCxDxBxegedabagacad



The new ls command does not use the same old --color=auto argument. If you want to set up the color labeling again, put the following in your ~/.tcshrc file (if you are using tcsh as your default shell):

setenv TERM "xterm-color"

setenv CLICOLOR "true"

setenv LSCOLORS "exfxcxdxbxegedabagacad"

The TERM variable can be set in the Terminal Preferences also, but it won't turn on the color labeling until you add at least the CLICOLOR variable to your .tcshrc file.


Read the rest of the hint for more on color definitions.


The colors can be set with the LSCOLORS variable. 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 in the LSCOLORS variable is 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

They are set in pairs, foreground (f) then background (b), i.e. fbfbfbfbfbfbfbfbfbfbfb for all 11 settings. The default is exfxcxdxbxegedabagacad, i.e. blue foreground and default background for regular directories, black foreground and red background for setuid executables, etc.

No comments:

Post a Comment