ex | fx | cx |
directory | symbolic link | socket |
dx | bx | |
pipe | executable | |
eg | ed | ab |
block special | character special | executable with setuid bit set |
ag | ac | ad |
executable without setuid / black / cyan | directory with sticky / black / green | directory without sticky / black / brown |
Now, let’s learn how we can configure our Terminal to obtain the colors of the figure.
Colors can be changed using the LSCOLORSvariable in the ~/.zsh_profile. By default is set to
LSCOLORS=exfxcxdxbxegedabagacad
where the string exfxcxdxbxegedabagacad is a concatenation of pairs of the format TB, where T is the text color and B is the Background color.
The order of these pairs correspond to:
- directory
- symbolic link – special kind of file that contains a reference to another file or directory.
- socket – special kind of file used for inter-process communication.
- pipe – special file that connects the output of one process to the input of another.
- executable
- block special – a kind of device file.
- character special – a kind of device file.
- executable with setuid bit set (setuid is a short for set user ID upon execution).
- executable with setgid bit set (setgid is a short for set group ID upon execution).
- directory writable to others, with sticky bit – only the owner can rename or delete files.
- directory writable to others, without sticky bit – any user with write and execution permissions can rename or delete files.
And the different letters correspond to:
- a black
- b red
- c green
- d brown
- e blue
- f magenta
- g cyan
- h light grey
- x default color
The same letters in uppercase indicate Bold.
The Terminal default colors, described by exfxcxdxbxegedabagacad, and ordered by file type / text color / background color, are:
- ex –> directory / blue / default
- fx –> symbolic link / magenta / default
- cx –> socket / green / default
- dx –> pipe / brown / default
- bx –> executable / red / default
- eg –> block special / blue / cyan
- ed –> character special / blue / brown
- ab –> executable with setuid / black / red
- ag –> executable without setuid / black / cyan
- ac –> directory with sticky / black / green
- ad –> directory without sticky / black / brown
You can change the colors of your terminal by creating a new concatenated string, like
GxFxCxDxBxegedabagaced, and writing in the .bash_profile file the following line:
export LSCOLORS=GxFxCxDxBxegedabagaced
Enjoy the new Terminal layout!