使用时ls
目录是非常难以阅读的海军蓝色,所以我想更改它们。
我读到我需要设置LS_COLORS
但对我来说它没有做任何事情。
这是我尝试过的:LS_COLORS="dir=0;35"
然后ls --color=auto
但目录仍然是海军蓝的。
另外,当我打开一个新会话时LS_COLORS
没有任何价值,ls
但仍然以彩色打印。
我还需要设置另一个变量吗?我怎样才能改变颜色?
编辑:我没有export
变量。这使得无法ls
阅读其内容
答案1
您还需要导出变量。如果未导出变量,则任何新的子进程将无法看到它们。
export
只需在变量声明之前添加,如下所示export LS_COLORS="di=0;35"
:
然而,所有变量将在每次会话后被删除,并且需要在每个新会话开始时重新设置。要自动执行此操作(假设您使用的是 bash),只需将该行添加到文件中,~/.bashrc
因为每次启动新的 bash 会话时都会运行该文件。
答案2
你也可以很容易地将海军蓝变成任何一种蓝色和setvtrgb
。该--help
选项说明:
对于 RED、GREEN 和 BLUE,FILE 应该正好是 3 行以逗号分隔的十进制值。
要播种有效的文件: cat /sys/module/vt/parameters/default_{red,grn,blu} > FILE
然后编辑 FILE 中的值。
该三行文件如下所示:
000, 250,120,200, 64,190, 50, 170,85, 240, 85,220, 80,232, 55, 220
000, 100,186,140,128,120,190, 170,85, 60,211,210,150, 85,222, 220
000, 40,120, 20,200,190,160, 170,85, 30, 85, 80,255,212,222, 220
您不能有注释,但空白是可以的。它有助于!
您可以从上到下读取 RGB 值。 16 种颜色从左到右排列。
蓝色是(64,128,200)。粗体蓝色是 (80,150,255)。最初的海军蓝类似于 (0,0,225)。我只是添加了绿色和一点红色。
这是我定义(和导出!)LS_COLORS 的方式。(dircolors -p
查找代码。)
LS_COLORS="fi=01;37:di=01;34:ex=01;32:ln=37\
:or=01;30:mi=00:mh=31\
:pi=33:so=43;30:do=35\
:bd=35;01:cd=35\
:su=37;41:sg=30;43:ca=30;41\
:tw=07;34:ow=30;44:st=30;44"
export LS_COLORS
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
答案3
您可以使用该命令打印默认值dircolor -p
,更改目录的当前颜色(DIR 01;34
=蓝色)sed
并使用此输出作为该dircolors
命令的输入。
LS_COLORS
这将打印变量和命令的修改值export LS_COLORS
:
dircolors <(dircolors -p | sed 's/DIR 01;34/DIR 01;35/')
如果您正在使用bash
,您可以将此输出附加到您的~/.bashrc
并获取修改后的~/.bashrc
:
dircolors <(dircolors -p | sed 's/DIR 01;34/DIR 01;35/') >> ~/.bashrc
. ~/.bashrc