更改 .bashrc 中的 sh 顏色

更改 .bashrc 中的 sh 顏色

我正在嘗試更改我連接到的外殼的顏色油灰

當我輸入這個

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h:\w\$ '

我得到了我想要的。一切都是綠色的它僅適用於 root 用戶,因此我可以將 root 與其他用戶區分開來。

但是,當我輸入這段程式碼時(不含“導出”)在 中/root/.bashrc,當我使用命令將當前 shell 更改為 bash 時,我得到了這種效果bash

例子:

例子

如何使我的 shell 變綠,而無需每次連接時切換到“bash”,即如何將其應用到預設 shell?

這裡使用Debian 8.3(Jessie)

答案1

問題是~/.bashrc登入 shell 不會讀取它,因此透過 SSH 登入獲得的 shell 也不會讀取它。

正如您已經注意到的,~/.profile是由登入 shell 讀取的,因此這是設定顏色的一種方法,但它不會影響 MOTD。

在 Debian 上,MOTD 儲存在/etc/motd;這是一個命令,它將在文件的開頭和結尾附加正確的轉義序列:

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd; printf '\e[0m' | sudo tee -a /etc/motd

螢幕截圖

開始時將\e[0;32m顏色設為綠色,\e[0m最後將重設所有屬性;這樣 MOTD 的改變不會影響之後印刷的內容;如果您不想在最後重置屬性(影響 MOTD 之後列印的內容),只需刪除最後一個命令:

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd

相關內容