正如How can I detect if the shell is controlled from SSH?提出來的,如果任一$SSH_CLIENT
或$SSH_TTY
設置的變量,這意味着你通過SSH連接。
如果你是一個基於Debian的系統(如Ubuntu),您可以編輯您.bashrc
到這樣的事情,以達到預期的效果(注意,字符串PS1
設置爲has to be defined with double quotes,而不是單引號作爲它是默認情況下):
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
if [ "$color_prompt" = yes ]; then
host="@\[\033[1;34m\]\h\[\033[00m\]"
else
host="@\h"
fi
fi
if [ "$color_prompt" = yes ]; then
PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]${host}:\[\033[01;34m\]\w\[\033[00m\]\$ "
else
PS1="${debian_chroot:+($debian_chroot)}\u${host}:\w\$ "
fi
unset host
unset color_prompt force_color_prompt
導致以下:
旁註:這些更改應在通過SSH連接到的服務器上進行.bashrc
(或.profile
,取決於分發)。將它們設置在您自己的本地Bash配置文件中對連接到其他遠程服務器時顯示的內容沒有影響。
查看關於如何檢測會話是本地還是通過ssh的問題:http://unix.stackexchange.com/questions/9605/how-can-i-detect-if-the-shell-is-從ssh – dogbane