When you perform ls
in a bash shell, sometimes there are colours to indicate different resource types, and you can enable/control this with the --color
argument.
But neither the man page nor Google is providing an answer to the question:
What do these colours indicate by default, and how do I display what the current system uses?
UPDATE:
Thanks everyone for answers so far, however to make it easier to pick a winner, can anyone go a step further and provide a method to output descriptions in the colours they apply to.
Hmmm... my example doesn't work when posted (only when previewed), so if you preview this code it'll show what I mean...
<ul style="list-style:none; background:black; margin:0;padding:0.5em; width:10em">
<li style="color:blue">directory</li>
<li style="color:aqua">symbolic link</li>
<li style="color:#A00000;">*.tar files</li>
<li style="color:white">...</li>
</ul>
Thanks.
Hence, Linux has specific color codes for different file types to distinguish them from each other for better viewing by the user. As a Linux administrator you don't have to memorize all the color code's, but you do need to remember some color codes that you use on a daily basis.
You need to pass --color option to the ls command on Linux. If you are using OS X or BSD based system pass -G option to the ls command. The syntax is as follows to turn on or off colors.
The colors are defined by the $LS_COLORS
environment variable. Depending on your distro, it is generated automatically when the shell starts, using ~/.dircolors
or /etc/DIR_COLORS
.
Edit:
To list color meanings, use this script:
eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')
{
IFS=:
for i in $LS_COLORS
do
echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
done
}
Running the command dircolors -p
will print all default colour settings.
See http://linux.about.com/library/cmd/blcmdl1_dircolors.htm.
You should be able to see the list of mappings in /etc/DIR_COLORS. You can override that by creating .dir_colors in your home directory.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With