Where is color of ls command defined?

by on December 1, 2004 · 7 comments· LAST UPDATED December 1, 2004

in

1) Configuration file for the ls color command is /etc/DIR_COLORS for Linux. You can modify those colours if you want.

2) Here is list of most common colors: (RHEL 3.x/FCx/RH and other linux distros)
Executable files: Green
* Normal file : Normal
* Directory: Blue
* Symbolic link : Cyan
* Pipe: Yellow
* Socket: Magenta
* Block device driver: Bold yellow foreground, with black background
* Character device driver: Bold yellow foreground, with black background
* Orphaned syminks : Blinking Bold white with red background
* Missing links ( - and the files they point to) : Blinking Bold white with red background
* Archives or compressed : Red (.tar, .gz, .zip, .rpm)
* Image files : Magenta (.jpg, gif, bmp, png, tif)

3) They are stored in special shell variable called LS_COLORS

4) You can customized them in /etc/DIR_COLORS or file pointed by shell variable COLORS.

5) To customized colors you must use special string combination:
FILE-TYPE Attribute codes: Text color codes:Background color codes

Where,

  • FILE-TYPE: is file type like DIR (for directories)
  • Attribute codes:
    • 00=none
    • 01=bold
    • 04=underscore
    • 05=blink
    • 07=reverse
    • 08=concealed
  • Text color codes:
    • 30=black
    • 31=red
    • 32=green
    • 33=yellow
    • 34=blue
    • 35=magenta
    • 36=cyan
    • 37=white
  • Background color codes:
    • 40=black
    • 41=red
    • 42=green
    • 43=yellow
    • 44=blue
    • 45=magenta
    • 46=cyan
    • 47=white

For example to define Bold Blue color for DIR file type, entry should look as follows:
DIR 01;34

6) Let us modify dir color on Red Hat (Fedora) Linux:

# vi /etc/DIR_COLORS

Modify DIR entry
From:

DIR 01;34 # default is Bold blue with black background

To:

DIR 01;34;41 # NEW default is Bold blue with RED background

Save file.

7) Logout and login again, Please note that if you have shell variable defined COLORS then use that file (use echo $COLORS to find it out).

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 7 comments… read them below or add one }

1 Anonymous March 3, 2006 at 7:52 pm

It’s not necessary to log in and out. Just run ‘eval `dircolors -b /etc/DIR_COLORS`’ (note the backticks)

flisespikker.no (norwegian+some english)

Reply

2 Anonymous October 17, 2006 at 4:49 pm

is it possible to temporarily disable colours? sometimes I just want white on black :)

Reply

3 AdamD January 26, 2007 at 5:36 pm

> ..disable colored ls

On RH, to enable colored ls, an alias is created ‘ls -> ls –color=tty’ SO … “/bin/ls” will display without colors

Reply

4 nana April 16, 2009 at 9:11 am

i want to know how to open green color type of file?

Reply

5 marsigliese November 26, 2009 at 5:21 pm

green color usually is for executable files
in LS_COLORS=”…..:ex=00;32:..”
ex is not a file extension
it is an ls attribute

you can execute theese files typing:
/path/to/file
or
./file if you are in the same directory

maybe you have some file type setted to 00;32
so if you want to know if it is executable type
ls -l

output:
….
-rwxr–r– 1 root root 18380 9 feb 2009 file
… | |
owner group
you can see 3 “rwx” positions
the first refers to the user owner of the file
the second to the group of the file
the third to all the users

you need the x (eXecutable) correspondent to your user (w writable, r readable)
if you can you can change it with chmod
chmod 777 file
1=001=–x
2=010=-w-
3=011=-wx
4=100=r–
5=101=r-x
6=110=rw-
7=111=rwx
or
chmod u+x
a) {u,g,o} user,group,others
b) +,- 1,0
c) {r,w,x}

omiting a) you intend ugo+x
omitting b) you intend u+rwx (i don’t know if does it works)

Reply

6 Dave Beaumont May 4, 2011 at 7:31 pm

Type: unalias ls
everything will be white

Reply

7 Vivek Kumar November 11, 2013 at 9:20 am

I don’t have access to /etc folder. How can I do the same for user account by which I have logged in?

Reply

Leave a Comment

Previous post:

Next post: