bash 中的 CLICOLOR 和 LS_COLORS

bash 中的 CLICOLOR 和 LS_COLORS

我在 .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:或=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 并不影响它。

迪=04;94

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

  • 我应该怎么做才能将目录颜色设置为浅蓝色(94)?
  • CLICOLOR 和 LS_COLORS 是什么?为什么着色在没有 LS_COLORS 的情况下也能工作?

答案1

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

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

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

答案2

CLICOLOR 和 LS_COLORS 是什么?为什么着色在没有 LS_COLORS 的情况下也能工作?

CLICOLOR将打开或关闭颜色。LS_COLORS不是必需的,并且可以让您自定义颜色。

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

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

答案3

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

相关内容