題 有沒有辦法改變Linux上TTY控制台使用的顏色?


通過“改變顏色”,我的意思是改變黑色 #000000 至 #111111,以及“TTY控制台”,我的意思是你所做的事情 按Ctrl+Alt鍵+F1 來自X11,而不是像終端模擬器那樣 xterm 要么 urxvt

我正在使用Arch Linux,但我認為它更多地與提供TTY的程序有關(agetty, 我認為)。


11
2017-07-23 03:12


起源


終端不能以十六進制顏色運行 - 它們使用顏色代碼,如“/ etc / shell-colors”中的顏色代碼。 - new123456
@ new123456 - 我的任何地方都沒有任何名為“shell-colors”的文件 / - Austin Hyde
呵呵。你沒有在這裡陳述你的發行版 - 我正在運行Zenwalk,所以你的發行可能會有所不同。搜索 color in bash 獲取所有逃脫的列表。 - new123456
@ new123456 - 我確實提到過我使用Arch,而且我不是在尋找顏色的bash轉義序列,比如 \e[0;30m 對於黑色,我正在尋找一種方法來定制每種命名顏色的實際顏色。 - Austin Hyde
1.抱歉 - 我先查看標籤;)2。只是信息,與問題不完全相關但與域名相關。 - new123456


答案:


setterm這個 命令就是你要找的。

setterm -foreground black -background white

編輯

不,沒有辦法根據您的要求更改顏色的名稱。它們在curses,terminfo或終端本身的任何地方都沒有被引用。您可以通過編輯內核源代碼並重新編譯來更改顏色索引的定義(我認為0-15)。


2
2017-07-23 05:53



不,那是 不 我正在尋找什麼。我想更改顏色的定義,而不是前景和背景顏色。 - Austin Hyde


這完全是可能的,這是我在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


11
2018-06-13 19:00



似乎沒有在bash fwiw的ubuntu 16.04中工作 - G Gordon Worley III


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

setterm -clear all -foreground green -bold -store

你只能有8種不同的顏色。 也許更多的是通過在基本8前使用明亮。


0
2017-07-24 21:58