Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I have the following setup in .bashrc for coloring of listings.

export CLICOLOR=1
export LS_COLORS='no=00:fi=00:di=00;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:';

This site shows the code for colors, and I want to change the directory color to `light color'. But making di as follows doesn't affect it.

di=04;94

The interesting thing is that even after my commenting out LS_COLORS, I can see colored output as long as I have CLICOLOR=1.

  • What should I do to make directory color to Light blue (94)?
  • What's it for CLICOLOR and LS_COLORS? Why coloring works without LS_COLORS?
share|improve this question
add comment

3 Answers

up vote 14 down vote accepted

There are several different implementations of color for ls, and you've conflated some of them.

  • On FreeBSD and Mac OS X, ls shows colors if the CLICOLOR environment variable is set or if -G is passed on the command line. The actual colors are configured through the LSCOLORS environment variable (built-in defaults are used if this variable is not set). To show directories in light blue, use

    export LSCOLORS=Exfxcxdxbxegedabagacad
    
  • With GNU ls, e.g. on Linux, ls shows colors if --color is passed on the command line. The actual colors are configured through the LS_COLORS environment variable, which can be set with the dircolors command (built-in defaults are used if this variable is not set).

share|improve this answer
1  
Thanks for the answer, could you teach me what Exfxcxdxbxegedabagacad means? –  prosseek Oct 8 '10 at 18:28
    
@prosseek: See the man pages I've linked to. For example, the first two characters are the foreground and background for directories, e means dark blue, E means light blue, and x means default. f in the third position makes symbolic links magenta, and so on. –  Gilles Oct 8 '10 at 18:49
add comment

If you want a wrapper script for ls that works on all systems, abstracting away these color differences etc. see: http://www.pixelbeat.org/scripts/l

share|improve this answer
add comment

What's it for CLICOLOR and LS_COLORS? Why coloring works without LS_COLORS?

CLICOLOR will turn colors on or off. LS_COLORS is not necessary, and will let you customize the colors.

Note that on some distros (Like MacOSX and FreeBSD), the value is LSCOLORS not LS_COLORS.

I avoid setting the color using LS_COLORS, because then I need to apply that same color scheme on a hundred different computers and 10 different Un*xes. Instead, I modify the color in my Terminal progra,, which works the same on most Unix hosts.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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