linux - xterm 终端中的颜色列表

标签 linux bash terminal debian xterm

我安装了一个最小的 debian,我试图自己设置一切,所以我试图通过给它一些颜色来调整我的默认终端 Xterm,经过一些研究我发现这可以通过编辑.Xresources 文件,所以我可以用 Hexa 代码 (#numbers) 或通过编辑 .bashrc 文件给出前 16 种颜色。 经过一番研究后,第二种解决方案似乎更加动态,因为我可以通过扩展名指定文件的颜色,问题是网上的所有文章都使用非常奇怪的颜色代码:

.gz  01;31
.bz2 01;31
.deb 07;31
.rpm 01;31
.jar 01;31

我想知道是否有办法使用 RGB 代码颜色或六色,这样我可以更灵活地处理我的目录和文件列表。

最佳答案

AFAIK,不支持 RGB,终端仿真器仅限于显示一组有限的颜色(如果我没记错的话,一个具有 64 种前景和背景组合的调色板)。如果易用性是您所关心的,您总是可以为预定义的颜色声明几个变量,例如:

readonly BLACK_FONT_BLACK_BACKGROUND='30;40'     
readonly BLACK_FONT_RED_BACKGROUND='30;41'       
readonly BLACK_FONT_GREEN_BACKGROUND='30;42'     
readonly BLACK_FONT_YELLOW_BACKGROUND='30;43'
...
readonly WHITE_FONT_CYAN_BACKGROUND='37;46'
readonly WHITE_FONT_WHITE_BACKGROUND='37;47'

然后像这样使用它们:

.gz  $BLACK_FONT_YELLOW_BACKGROUND

下表是前景和背景的颜色代码:

  Color   Foreground   Background
  -------------------------------
  black       30           40
  red         31           41
  green       32           42
  yellow      33           43
  blue        34           44
  magenta     35           45
  cyan        36           46
  white       37           47
  -------------------------------

如果手动生成所有颜色名称变量太繁琐,可以使用以下python脚本:

 colors = ['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white']; 
 index = 0
 for x in ["{0}_FONT_{1}_BACKGROUND='{2};{3}'".format(colors[i].upper(), colors[j].upper(), i + 30, j + 40) for i in xrange(0, 8) for j in xrange(0, 8)]: 
     print x.ljust(38) + "#" + str(index) 
     index += 1

关于linux - xterm 终端中的颜色列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32216351/

相关文章:

python - 使用 Python 比较目录和文本文件

bash - Jenkins 无法访问 shell 别名

打字时光标离开窗口(ncurses)

Linux shell命令将文本数据从一个文件复制到另一个

c++ - 从c++运行的过程有时会丢失选项

python - Linux - SIGSTOP 的原因以及如何处理它?

linux - 如何阻止 objcopy 填充部分

qt - QProcess 没有从 x-terminal-emulator 获得完成的信号

linux - 使用 SFTP 计算远程目录中的文件数量

linux - 目录的 rwx 中的 'x' 是什么意思?