it-swarm.cn

bash中的CLICOLOR和LS_COLORS

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

 export CLICOLOR = 1 
 export 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进行着色?
51
prosseek

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

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

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

54

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

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

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

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

11
Stefan Lasiewski

如果您想要适用于所有系统的ls包装脚本,请抽象化这些颜色差异等。请参见: http://www.pixelbeat.org/scripts/l

4
Pádraig Brady