Where is color of ls command defined?
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).