Bash

在 konsole 中更改 bash 中的提示顏色

  • February 13, 2017

我通過像這樣更改PS1變數來更改控制台中提示的顏色:.bashrc

PS1="${debian_chroot:+($debian_chroot)}$COLOR_USER\u@$COLOR_HOST\h:$COLOR_PWD\w>$COLOR_ORDER"

COLOR_……是變數。

但它會被控制台配色方案覆蓋。如何阻止控制台覆蓋我的.bashrc設置?

在終端中執行的應用程序(例如 shell)向終端發送轉義序列以更改後續輸出的外觀。更改字元屬性的轉義序列where代表兩個字元序列(可以在 bash 中寫為),而Pm是確定要更改什麼的序列。CSI *Pm* m``CSI``ESC [``$'\e['

大概您的配置使用 8 種標準顏色,即$COLOR_USER類似於$'\e[31m'獲得紅色文本。標準顏色的外觀可由終端自由選擇。如果您在 Konsole 中使用主題,它可能會隨意調整顏色。好的主題只會選擇一個不錯的陰影,但一些 Konsole 主題會完全改變它們。

您可以使用轉義序列,通過其紅-綠-藍分量指定顏色:(其中PrPgPb分別是紅-綠-藍分量,範圍為 0 到 255)。Konsole 會尊重這一點。例如,要獲取紅色的使用者名:CSI 3 8 ; 2 ; *Pr* ; *Pg* ; *Pb* m

COLOR_USER=$'\e[38;2;128;0;0m'

或者,使用尊重應用程序指定顏色的顏色主題,而不是完全弄亂它們。

引用自:https://unix.stackexchange.com/questions/344413