有没有办法改变Linux上TTY控制台中使用的颜色?


14

通过“ALTER颜色”,我的意思是这样的变化从黑色#000000#111111,并通过“TTY控制台”,我的意思是,当你这样做你会得到什么Ctrl+ Alt+ F1X11平台,而不是一个终端仿真器像xtermurxvt

我使用的是Arch Linux,但我认为它与提供TTY的程序有关(agetty我认为)更多。


终端不能以十六进制颜色进行操作-它们使用的颜色代码类似于“ / etc / shell-colors”中的颜色代码。
new123456

1
@ new123456-我在下面的任何地方都没有任何名为“ shell-colors”的文件/
Austin Hyde

嗯 您未在此处声明您的发行版本-我正在运行Zenwalk,因此您发行的版本可能会有所不同。搜索color in bash以获取所有转义符的列表。
2011年

2
@ new123456-我确实提到我正在使用Arch,并且我没有在寻找bash逃逸序列以获取颜色(例如\e[0;30m黑色),而是在寻找一种为每种命名颜色自定义实际颜色的方法。
奥斯丁·海德

1.对不起-我先看一下标签;)2.只是信息,不完全与问题相关,但与领域相关。
new123456 2011年

Answers:


3

setterm这个命令是你在找什么。

setterm -foreground black -background white

编辑

不可以,无法按照您的要求更改颜色名称。在curses,terminfo或终端本身中,没有以任何方式引用它们。您可以通过编辑内核源代码并重新编译来更改颜色索引的定义(我认为是0-15)。


不,那不是我想要的。我想更改颜色的定义,而不是前景色和背景色。
奥斯丁·海德

13

这是完全可能的,这是我在Arch设置中所做的事情。

您可以在shell脚本中放入类似的内容,并使其在登录时运行:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0151515" # Black
    echo -en "\e]P1ac4142" # Red
    ...
    echo -en "\e]PEac4142" # Bright Cyan
    echo -en "\e]PFac4142" # Bright White
    clear # Clear artifacts
fi

\e]P0\e]PF(16进制),你需要设置16个(8个半亮,8颗)的颜色转义序列。之后,您要放置所需的替换颜色,例如151515


似乎在bash fwiw的ubuntu 16.04中不起作用
G Gordon Worley

2

这是我所知道的最好的命令:

setterm -clear all -foreground green -bold -store

据我所知,您只能有8种不同的颜色。通过在basic 8之前使用Bright可能还会更多?

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.