bash 中的 CLICOLOR 和 LS_COLORS

pro*_*eek 55 colors bash settings display-settings

我在 .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 的情况下着色有效?

Gil*_*il' 60

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

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

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

  • 谢谢你的回答,你能教我 Exfxcxdxbxegedabagacad 是什么意思吗? (5认同)
  • @DanCat 我不知道。`tree` 和 `ls` 是不相关的实用程序,没有理由将一个设置应用于另一个。你应该把它作为一个单独的问题来问。 (2认同)
  • 对于懒人(像我一样),这里有一个 LSCOLORS 生成器 https://geoff.greer.fm/lscolors/ (2认同)

Ste*_*ski 12

CLICOLOR 和 LS_COLORS 是什么?为什么在没有 LS_COLORS 的情况下着色有效?

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

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

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


Pád*_*ady 6

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