'ls'显示两个目录。通常,任何地方的目录在黑色背景上都是蓝色的。但是第一个是绿色的蓝色,无法读取。为什么是这样?如何在黑色上将它变成蓝色,或者在深色上使它至少变成浅色?在Konsole中,蓝色略深,可以读取,尽管可能更好。
#1 楼
除了根据文件的类型为文件着色(音频文件为青绿色,存档和压缩文件为亮红色,图像和视频为紫色),ls
还根据文件和目录的属性为它们着色:带有绿色背景的黑色文本表示该目录可被拥有用户和组之外的其他人写入,并且已设置了粘性位(
o+w, +t
)。除了拥有用户和组的用户之外,其他用户并没有设置粘性位(o+w, -t
)。Ask Ubuntu的Stephano Palazzo对不同的属性颜色做了非常有启发性的描述:
正如terdon所指出的,可以通过
dircolors
修改颜色设置。可以使用dircolors --print-database
访问不同的颜色设置列表。每行输出(例如
BLK 40;33;01
)的形式为: /> TARGET
表示着色规则的目标TEXT_STYLE
表示文本样式:00
=无01
=粗体04
=下划线05
=眨眼07
=反向,08
=隐藏FOREGROUND_COLOR
表示前景色:30
=黑色31
=红色32
=绿色33
=黄色34
=蓝色,35
=洋红色36
=青色37
=白色BACKGROUND_COLOR
表示背景颜色:40
=黑色41
=红色42
=绿色43
=黄色44
=蓝色,45
=洋红色46
=青色47
=白色字段可能从右边开始省略,例如
.tar 01;31
表示粗体和红色。XTerm和大多数其他现代终端仿真器支持256种颜色。
XTerm 256色背景颜色代码的形式为:
[TARGET] [TEXT_STYLE];[FOREGROUND_COLOR];[BACKGROUND_COLOR]
XTerm 256色背景颜色代码的形式为:
38;5;[FOREGROUND_COLOR]
其中
FOREGROUND_COLOR
和BACKGROUND_COLOR
均为0-255范围内的数字。下面的屏幕快照显示了16和256种颜色模式的颜色代码的完整列表:#2 楼
ls
的颜色可以代表权限,某些系统的默认设置是显示所有人都具有绿色背景的写许可权的目录:您可以更改颜色通过使用
$LS_COLORS
(来自dircolors
)编辑man ls
变量:您需要并将其保存为~/.dircolors
: Using color to distinguish file types is disabled both by default and
with --color=never. With --color=auto, ls emits color codes only when
standard output is connected to a terminal. The LS_COLORS environment
variable can change the settings. Use the dircolors command to set it.
该命令会将默认值打印到
~/.dircolors
中。然后,您需要编辑该文件并更改此行:dircolors -p > ~/.dircolors
例如,将其设置为红色背景上的黑色文本(请参见此处以获取颜色列表)代码):
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
您不需要所有默认值,也可以只用一行创建一个文件,重新定义您想要的文件更改。无论如何,一旦创建了文件,请使用以下文件加载它:
OTHER_WRITABLE 30;41 # dir that is other-writable (o+w) and not sticky
这是起作用的:
要自动执行此操作,请将上面的
eval
命令添加到您的~/.bashrc
文件中。评论
默认颜色似乎经常表明原始作者讨厌我们和我们的眼睛。
–kurtm
13-10-10在20:00
谢谢。为什么您有时写〜/ .dirname,有时写〜/ dircolors,有时写〜/ .dircolors?他们应该是一样的吗?
– Tim
15年3月26日在15:42
谢谢。为什么要评估“ $(dircolors〜/ dircolors)”;而不是更直接的方式,例如dircolors〜/ dircolors?
– Tim
15-10-22在15:27
@Tim,因为dircolors仅打印设置,因此需要评估它才能读取它们。
– terdon♦
2015年10月22日15:58
让他们读给谁听?
– Tim
15年10月22日在16:13
#3 楼
虽然所有技术答案都是正确的,但我认为这是一个非正式的警告,即您要慷慨地出示一些权利,或复制纵横交错的十字路口...(大多数情况下,我们都会这样做,以使事情一开始就起作用,嗯?)如何使其在黑色上呈蓝色,...?
一个很好的“绿色”恢复权利您最可能希望的是以下语句:
chmod -R a-x,o-w,+X thatGreenFolderWithSubfolders/
如果您了解大写+ X“特殊执行”的目的,那么最好理解它的作用,即参阅Wikipedia br />
只有与'+'
一起使用,并且通常与-R选项结合使用,才能为大目录树提供组访问权限而不对普通文件(例如文本文件)设置execute
权限,如果您仅使用“ chmod -R a + rx ...
,通常会发生
#4 楼
这是我用于更改颜色的3个步骤:首先,将默认颜色复制到文件中。然后修改该文件。您可以在其中找到一些颜色值,以及更多:
dircolors -p > ~/.dircolors
(源)
最后,将以下行添加到
~/.bashrc
文件中,以便在以下情况时自动加载颜色:您打开终端:Code Color
0 Default Colour
1 Bold
4 Underlined
5 Flashing Text
7 Reverse Field
31 Red
32 Green
33 Orange
34 Blue
35 Purple
36 Cyan
37 Grey
40 Black Background
41 Red Background
42 Green Background
43 Orange Background
44 Blue Background
45 Purple Background
46 Cyan Background
47 Grey Background
90 Dark Grey
91 Light Red
92 Light Green
93 Yellow
94 Light Blue
95 Light Purple
96 Turquoise
100 Dark Grey Background
101 Light Red Background
102 Light Green Background
103 Yellow Background
104 Light Blue Background
105 Light Purple Background
106 Turquoise Background
对于
~/.zshrc
:eval 'dircolors ~/.dircolors' > /dev/null
#5 楼
要快速解决此问题,(将其他可写文件变成nobg上的黄色):甚至更简单,要在nobg上进行nofg:LS_COLORS+=':ow=01;33'
要使更改永久生效,请将其附加到您的.profile中: br />
要查看与LS_COLORS不相关的规则,请执行以下操作:
要探索终端上的
33
颜色,请考虑使用如另一个答案(Thomas Nyman的答案)所述,
34
是前景x项256色的前缀,sed
是背景x项256色的前缀。并非所有终端都支持256色。也请参见-AskUbuntu上的ls不同的颜色是什么意思?-
评论
我发现将LS_COLORS + =':ow = 01; 33'放到〜/ .zshrc中有助于禁用git-repo中目录的颜色背景。这是在带有Pengwin-WSL发行版的Windows 10计算机上。现在,git-repo中的所有目录都是可读的。
–林丰
19年11月12日在1:21
#6 楼
那么这意味着如果您运行此文件夹,则该文件夹具有权限:сhmodog-w AULI
它将删除bgcolor:)
#7 楼
要解决此问题,请尝试在LS_COLORS中使用ow参数,例如:~LS_COLORS='fi=0:ln=5:pi=0:so=7:bd=5:cd=5:or=31:mi=0:ex=93:*.py=36:di=40:*.zip=33:*.tgz=33'
~ls -l
现在添加ow(
OTHER_WRITABLE
)选项Bamm !!
评论
如果希望通过.dir_colors更改颜色,则可以添加OTHER_WRITABLE 34; 43。感谢:gist.github.com/jmoz/280005/…
– Sridhar Sarnobat
20年1月24日在21:29
#8 楼
您可以在腻子中更改绿色的色调以使文本可读。打开腻子并转到Window \ Colours,
选择“ ANSI Green”,将其设置为较深的绿色(R:0 G:70 B:0)。
评论
Background_COLOR代码与FOREGROUND_COLOR不同;背景代码为40-47
– Ryan V. Bissell
2015年10月21日在18:55
38; 5;启动xterm 256色前景色代码。 48; 5;启动xterm 256色背景颜色代码。尽管结果相同,但我在dircolors输出中的青色是38; 5; 51而不是36。
–stevesliva
18-2-7在14:50
@stevesliva:感谢您的评论。我已经编辑了答案以正确指示背景颜色代码,并描述了256色前景色和背景颜色代码。
–托马斯·尼曼(Thomas Nyman)
18年2月22日在9:34
那么仅绿色前景是什么意思?就像我在这里吗?
– Chagai Friedlander
20年5月12日在11:22
@ChagaiFriedlander:可执行文件(请参阅图片底部)。
–托马斯·尼曼(Thomas Nyman)
20年5月12日,11:56