bash中的CLICOLOR和LS_COLORS


48

我在.bashrc中有以下设置用于为列表着色。

导出CLICOLOR = 1
出口LS_COLORS ='no = 00:fi = 00:di = 00; 34:ln = 01; 36:pi = 40; 33:so = 01; 35:do = 01; 35:bd = 40; 33; 01: cd = 40; 33; 01:or = 40; 31; 01:ex = 01; 32:*。tar = 01; 31:*。tgz = 01; 31:*。arj = 01; 31:*。taz = 01; 31:*。lzh = 01; 31:*。zip = 01; 31:*。z = 01; 31:*。Z = 01; 31:*。gz = 01; 31:*。bz2 = 01; 31:*。deb = 01; 31:*。rpm = 01; 31:*。jar = 01; 31:*。jpg = 01; 35:*。jpeg = 01; 35:*。gif = 01; 35: * .bmp = 01; 35:*。pbm = 01; 35:*。pgm = 01; 35:*。ppm = 01; 35:*。tga = 01; 35:*。xbm = 01; 35:*。 xpm = 01; 35:*。tif = 01; 35:*。tiff = 01; 35:*。png = 01; 35:*。mov = 01; 35:*。mpg = 01; 35:*。mpeg = 01; 35:*。avi = 01; 35:*。fli = 01; 35:*。gl = 01; 35:*。dl = 01; 35:*。xcf = 01; 35:*。xwd = 01; 35:*。ogg = 01; 35:*。mp3 = 01; 35:*。wav = 01; 35:';

这个站点显示了颜色代码,我想将目录颜色更改为“浅色”。但是按照以下方式创建di不会影响它。

di = 04; 94

有趣的是,即使在注释掉LS_COLORS之后,只要具有CLICOLOR = 1,我就可以看到彩色输出。

  • 如何使目录颜色变为浅蓝色(94)?
  • CLICOLOR和LS_COLORS是什么?为什么不使用LS_COLORS进行着色?

Answers:


53

ls有几种不同的color实现,您已将其中一些混为一谈。

  • FreeBSDMac OS X上ls如果CLICOLOR设置了环境变量或-G在命令行中传递了环境变量,则会显示颜色。实际颜色是通过LSCOLORS环境变量配置的(如果未设置此变量,则使用内置默认值)。要以浅蓝色显示目录,请使用

    export LSCOLORS=Exfxcxdxbxegedabagacad
  • 对于GNU ls,例如在Linux上,ls如果--color在命令行上传递,则会显示颜色。实际颜色是通过LS_COLORS环境变量配置的,可以使用dircolors命令进行设置(如果未设置此变量,则使用内置默认值)。


5
感谢您的回答,您能教我Exfxcxdxbxegedabagacad的意思吗?
prosseek 2010年

@prosseek:请参阅我链接到的手册页。例如,前两个字符是目录的前景和背景,e表示深蓝色,E表示浅蓝色和x默认值。f在第三位置使符号链接变为洋红色,依此类推。
吉尔斯(Gillles)“所以-别再作恶了”

在这些同一行上,如何tree显示颜色?Tree在我的Debian机器上显示颜色,但在Mac上却不显示颜色。如上所述,存在颜色的环境变量。所以我的Mac会显示任何ls命令的颜色,但不会显示tree。我用brew安装了树。
DanCat

2
@DanCat我不知道。tree并且ls是不相关的实用程序,因此没有理由将一个设置应用于另一个。您应该将其作为一个单独的问题提出。
吉尔(Gilles)'所以

1
对于懒惰的人(像我一样),这是LSCOLORS生成器geoff.greer.fm/lscolors
udondan 18/09/12

11

CLICOLOR和LS_COLORS是什么?为什么不使用LS_COLORS进行着色?

CLICOLOR将打开或关闭颜色。LS_COLORS不需要,它将使您自定义颜色。

请注意,在某些操作系统(如MacOSX和FreeBSD)上,该值名为LSCOLORS,而不是LS_COLORS

我避免使用LS_COLORS设置颜色,因为那样的话,我需要在一百台不同的计算机和10种不同的Un * xes上应用相同的配色方案。相反,我在终端程序中修改了颜色,该颜色在大多数Unix主机上都起作用。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.