我知道有人问过类似的问题:
虽然我并没有真正理解答案,也无法真正让它发挥作用。
但是,我尝试了一些不同的东西。我决定阅读手册页ls
,它提到了在处理ls
命令时可以设置的不同环境变量。如果转到该-G
选项,它会说要查看CLICOLOR
环境变量。我做到了,并且将您链接到LSCOLORS
环境变量的文档。我去了它,它提到:
“这个变量的值描述了当使用 CLICOLOR 启用颜色时,哪个属性使用什么颜色。这个字符串是格式 fb 对的串联,其中 f 是前景色,b 是背景色。“
它还提到 LSCOLORS 的默认值是“exfxcxdxbxegedabagacad”,并且每个部分都指定了 ls 命令中某些特定事物的颜色。例如,示例中的第一对 ex 指定目录的颜色。第二个 fx 符号链接的颜色等... e 表示蓝色, x 表示默认“前景”。
1)首先这是什么意思:“当颜色启用 CLICOLOR 时”?
2)“前景”是什么意思?
ls
无论我想要什么,命令都必须使用什么环境变量来为输出着色?
我也试过:
ls --color
Run Code Online (Sandbox Code Playgroud)
但它给我带来了以下错误:
ls: illegal option -- - usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
Run Code Online (Sandbox Code Playgroud)
当我这样做时发生了同样的错误ls --color=auto
:它本身也会引发错误。我不知道为什么,也不确定是因为 iTerm2 还是 OS X 或者为什么会发生这种情况。它似乎适用于其他系统......
在尝试回答我自己的问题时,我尝试了一些不同的方法,并通过实验解决了所有问题。
1) 我猜测“启用 CLICOLOR”意味着将其设置为 1(即 true),因为一旦我将该变量设置为 1,LSCOLOR 就开始工作。
2) 在这种情况下,“前景”是指突出显示将应用的背景。例如,第一对的 bc 意味着它将目录的字符着色为红色,而背景/突出显示为绿色。例如,如果您的环境变量是: export LSCOLORS="bCfxcxdxbxegedabagacad"
然后做 ls 显示如下:
显然,为了使这个工作 ls 命令必须别名为 ls -G (或者每次都执行 ls -G )并且你必须在你的 .bashrc 或你使用的任何 shell rc 文件中有以下几行:
export CLICOLOR=1
export LSCOLORS="gxfxcxdxbxegedabagacad"
Run Code Online (Sandbox Code Playgroud)
现在您可以根据 man ls 文件的指定更改 LSCOLORS。
可能有不同的方法来完成这项工作,但这就是它在 iTerm2 上的 OS X Mavericks 中的 Unix 上对我的工作方式。
归档时间: |
|
查看次数: |
7530 次 |
最近记录: |