我可以在我的PS1提示中使用什么颜色代码?
我在PS1的提示中使用了几种颜色,如
\033]01;31\] # pink
\033]00m\] # white
\033]01;36\] # bold green
\033]02;36\] # green
\033]01;34\] # blue
\033]01;33\] # bold yellow
我在哪里可以找到我可以使用的颜色代码的列表?
我查看了https://unix.stackexchange.com/questions/74024/colorize-bash-console-color,但它没有回答我关于实际代码列表的问题。
如果有一个更可读的表格就更好了。
另请参见https://unix.stackexchange.com/a/127800/10043
132
3
这些是[ANSI转义序列][1];那个链接是一个颜色代码的图表,但在那个维基百科页面上还有其他有趣的东西。 并非所有这些都能在(例如)普通的Linux控制台中工作。
这是不正确的。
0
将终端重置为其默认值(可能是白色)。 白色前景的实际代码是37。 另外,结尾处的转义闭合括号(]
)不是颜色序列的一部分(见下面最后几段关于它们在设置提示符方面的作用的解释)。注意,一些GUI终端允许你指定一个自定义的颜色方案。这将影响输出。
有[这里有一个列表][2],它增加了7种我以前没有见过的前景和7种背景颜色,但它们似乎是有效的。
此外,如果你有一个256色的GUI终端(我想现在大多数都是),你可以应用这个图表中的颜色。
![xterm 256色图][3]
选择这些的ANSI顺序,使用左下角的数字,开始是
38;5;
代表前景,48;5;
代表背景,然后是颜色编号,所以例如。给我的是棕褐色的浅橙色(意思是,色表是大致上的近似)。
你可以看到这个图表中的颜色1,因为它们会相当容易地出现在你的终端。
输出结果是不言自明的。
有些系统通过
/etc/profile'中的一些shell代码将$TERM变量设置为
xterm-256color',如果你在一个256色的终端上。 在其他系统中,你应该能够配置你的终端来使用这个。 这将使TUI应用程序知道有256种颜色,并允许你在~/.bashrc
中添加类似的东西。注意,当你在提示符中使用颜色转义序列时,你应该用转义(``前缀)的方括号把它们括起来,像这样。
注意,颜色序列内部的`[''没有被转义,但包围的部分被转义了。 后者的目的是向shell表明,包围的序列不计入提示符的字符长度。 如果这个计数是错误的,当你向后滚动历史记录时就会发生奇怪的事情,例如,如果它太长,最后滚动的字符串的多余长度会出现在你的提示符上,你将无法退格到它(它被忽略的方式与提示符相同)。
还要注意的是,如果你想在每次使用提示符时都包括命令的输出(而不是在设置提示符时只有一次),你应该把它设置成一个带单引号的字面字符串,例如。
如果你喜欢使用bash的特殊的
d
或D{format}
提示符转义,这不是问题的主题,但可以在man bash
的PROMPTING
下找到,这不是一个好例子。 还有其他一些有用的转义,如w
表示当前目录,u
表示当前用户,等等。这个图表的主要部分,颜色16-231(注意它们不是按数字顺序排列的)是一个6×6×6的RGB颜色立方体。 "颜色立方体"是指RGB颜色空间可以用一个三维数组来表示(一个轴代表红色,一个轴代表绿色,一个轴代表蓝色)。 这里的立方体中的每种颜色都可以表示为6×6×6数组中的坐标,图表中的索引是这样计算的:
看起来至少有一部分名单是这样的。
根据https://wiki.archlinux.org/index.php/Color_Bash_Prompt
另一个脚本就像TAFKA 'goldilocks'发布的用于显示颜色的脚本,对于参考目的来说可能更实用一点。
这对你所使用的终端来说应该是正确的尺寸。对于这个目的来说,这有点夸张,但现在你可以通过参数来控制它的显示方式的许多方面。希望它们都是不言自明的。