Bash
在 konsole 中更改 bash 中的提示顏色
我通過像這樣更改
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 主題會完全改變它們。您可以使用轉義序列,通過其紅-綠-藍分量指定顏色:(其中Pr、Pg和Pb分別是紅-綠-藍分量,範圍為 0 到 255)。Konsole 會尊重這一點。例如,要獲取紅色的使用者名:
CSI 3 8 ; 2 ; *Pr* ; *Pg* ; *Pb* m
COLOR_USER=$'\e[38;2;128;0;0m'
或者,使用尊重應用程序指定顏色的顏色主題,而不是完全弄亂它們。