dircolors:全局修改颜色设置


40

我了解显示彩色输出的ls用途dircolorsdircolors具有与文件扩展名关联的默认颜色数据库,可以使用以下命令进行打印

dircolors --print-database

man dir_colors我了解,系统范围的数据库应位于中/etc/DIR_COLORS。但是该文件在我的系统(Debian)上不存在。如何修改系统范围的颜色设置dircolorsdircolors --print-database没有文件时,命令从哪里获取设置。

我知道用户可以在~/.dircolors其设置中包含用户特定的文件,但这不适合我,因为我需要为每个人更改设置。

第二个问题是,是否可以将8位颜色用于dircolors。我的航站楼是xterm-256color

Answers:


36

ls从环境变量获取颜色设置LS_COLORSdircolors只是生成此环境变量的便捷方法。要使此环境变量在整个系统范围内生效,请将其放入外壳程序的启动文件中。

对于bash,您可以将其输入/etc/profile

# `dircolors` prints out `LS_COLORS='...'; export LS_COLORS`, so eval'ing
# $(dircolors) effectively sets the LS_COLORS environment variable.

eval "$(dircolors /etc/DIR_COLORS)"

对于zsh,您可以将其放入/etc/zshrc或安排在启动时zsh阅读/etc/profile。您的发行版可能已经zsh这样做了。我只是想指出这一点dircolors,真正适合每个人的设置取决于他们使用的shell。

至于从何处dircolors获取其设置,当您不指定文件时,它仅使用一些内置默认值。

您可以xterm在dircolors文件中使用的256个颜色转义码,但请注意,它们仅适用于xterm兼容的终端。例如,它们将无法在Linux文本控制台上运行。

256个颜色转义码的格式适用38;5;colorN于前景色和48;5;colorN背景色。因此,例如:

.mp3  38;5;160                   # Set fg color to color 160      
.flac 48;5;240                   # Set bg color to color 240
.ogg  38;5;160;48;5;240          # Set fg color 160 *and* bg color 240.
.wav  01;04;05;38;5;160;48;5;240 # Pure madness: make bold (01), underlined (04), blink (05), fg color 160, and bg color 240!

1
您能否解释一下我如何使用256个颜色转义码?假设我要更改以下内容,.mp3 00;36以使用xterm-256颜色图表upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg中的color126
2013年

1
当然,请参阅我的编辑。
马特2013年

8

dircolors --print-database没有文件时,命令从哪里获取设置。

按照手册,它在没有文件的情况下使用预编译的数据库。

如果指定了文件,则dircolors读取该文件以确定用于哪些文件类型和扩展名的颜色。否则,将使用预编译的数据库。有关这些文件格式的详细信息,请运行' dircolors --print-database'。

为了更改每个人的设置,您可以创建一个/etc/dircolors文件并将以下内容添加到/etc/bashrc

d=/etc/dircolors
test -r $d && eval "$(dircolors $d)"

7

Linux使用dircolors设置控制台背景色:

您的dircolors文件控制在控制台上通过ls出现的单词的颜色。查找此.dircolors文件以进行分发,该链接提供了帮助:

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/profile.html

对于Fedora 17上的我来说,我的dircolors文件是: /etc/DIR_COLORS

复制/etc/DIR_COLORS到您的/home/el/.dircolors目录。如果不存在,请创建它。

编辑/home/el/.dircolors,查找文本“ dir”。

更改此:

DIR 01;34   # directory

对此:

DIR 01;36   # directory

保存并关闭并重新启动外壳。目录从黑色的深蓝色(不可读)到黑色的明亮蓝绿色(可读)。


2
-1:/etc/DIR_COLORS在OP发行版中没有Debian。他已经知道了~/.dircolors,这不是问题所在
MestreLion
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.