概述
ls
命令是linux系统下运用的最多的命令之一,有时候我们希望ls
能彩色化输出,以区分文件、目录或不同文件类型,让我们一眼就能辨识出不同的文件类型。在Apple MacOS X或FreeBSD操作系统,我们并不用安装其他设置,只需要在执行ls
命令是指定-G
参数即可开启默认彩色化输出。
MacOS X ls命令开启彩色化输出
先man ls
看一下-G
参数的说明:
-G Enable colorized output. This option is equivalent to defining CLICOLOR in the environment.
就是说ls
指定-G
参数可以开启彩色化输出,相当于在环境变量中设置了CLICOLOR
。我们可以把-G
参数设置为ls
命令的默认参数,将如下内容添加到~/.bash_profile
文件末尾处:
alias ll='ls -l -G'
alias ls='ls -G'
添加之后执行source ~/.bash_profile
,再ls
看看是不是已经彩色化输出了?
我们没有指定设定任何颜色,但在终端,我们已经能够看到彩色化的输出,这是因为当我们指定了-G
参数后,环境变量中默认设置了CLICOLOR
,并且LSCOLORS
环境变量默认设置为了:
exfxcxdxbxegedabagacad
这是啥?继续往下看如何定制化彩色输出吧。
定制化彩色输出
这个时候,我们任然需要依靠这个"男人(man)",man ls
。手册中说明环境变量CLICOLOR
和LSCOLORS
会影响到ls彩色化输出。我们可以设置环境变量CLICOLOR
和LSCOLORS
来定制化彩色输出,同样在.bash_profile
文件末尾设置增加以下环境变量:
export CLICOLOR=1
export LSCOLORS= exfxcxdxbxegedabagacad
同样使之生效:source ~/.bash_profile
。
对于LSCOLORS
环境变量,其格式为fb
配对的11组字符串,其中f
是前景颜色(foreground color), b
是背景颜色(background color),支持的颜色指定如下:
Code | Meaning (Color) |
---|---|
a | Black |
b | Red |
c | Green |
d | Brown |
e | Blue |
f | Magenta |
g | Cyan |
h | Light grey |
A | Bold black, usually shows up as dark grey |
B | Bold red |
C | Bold green |
D | Bold brown, usually shows up as yellow |
E | Bold blue |
F | Bold magenta |
G | Bold cyan |
H | Bold light grey; looks like bright white |
x | Default foreground or background |
对于LSCOLORS=exfxcxdxbxegedabagacad
每组含义如下:
ls Attribute | Foreground color | Background color |
---|---|---|
directory | e | x |
symbolic link | f | x |
socket | c | x |
pipe | d | x |
executable | b | x |
block special | e | g |
character special | e | d |
executable with setuid bit set | a | b |
executable with setgid bit set | a | g |
directory writable to others, with sticky bit | a | c |
directory writable to others, without sticky bit | a | d |
所以,对于默认LSCOLORS的值:LSCOLORS=exfxcxdxbxegedabagacad
表示:蓝色前景,默认背景的目录;洋红前景,默认背景的链接文件;...
网友评论