Bash
CentOS 中存在哪些配置,但 Ubuntu 中沒有,它顯示遠端終端會話的使用者@主機名?
我們的伺服器安裝了標準的“基本伺服器”CentOS 6.7,桌面安裝了 Ubuntu 14.04。
在我的 Ubuntu 桌面上,當我 ssh 到遠端伺服器(即:ssh 到 CentOS 實例)時,我的終端選項卡顯示
user@hostname:path
但是,當我 ssh 進入遠端桌面(即:ssh 進入另一個 Ubuntu 實例)時,我的終端選項卡顯示
my_user@my_host:path
. 也就是說,它顯示了我在ssh 進入刪除桌面之前所在的本地使用者和本地主機名以及本地路徑。我已經覆蓋
PS1
了 Ubuntu 和 CentOS 主機我有一個本地設置
PROMPT_COMMAND
,但在任何遠端 CentOS 或 Ubuntu 主機上都沒有。[local-ubuntu] $ echo $PROMPT_COMMAND [local-ubuntu] PROMPT_COMMAND=echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007" [remote-ubuntu] $ echo $PROMPT_COMMAND [remote-ubuntu] [remote-centos] $ echo $PROMPT_COMMAND [remote-centos]
我正在執行 GNOME 終端 3.6.2
[local-ubuntu] $ gnome-terminal --version [local-ubuntu] GNOME Terminal 3.6.2
即使我取消設置local
PROMPT_COMMAND
,然後 ssh 進入 CentOS,我user@hostname:path
也會顯示在選項卡中,但在 ssh 進入 Ubuntu 時什麼也沒有。所以我的結論是 CentOS 正在做一些事情來在我的選項卡中顯示 Ubuntu 沒有做的資訊。
問題:
CentOS 中存在哪些配置,但 Ubuntu 中沒有,顯示
user@hostname:path
遠端終端會話?
Redhat(以及擴展,Centos)預設設置
PROMPT_COMMAND
標題欄調整控制序列:% bash -xic : 2>&1 | egrep 'PROMPT|PS' ++ PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' ++ PS1='[\u@\h \W]\$ ' %
此設置可以
/etc/bashrc
在 Redhat 上的文件中找到:% grep 007 /etc/bashrc PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' % rpm -qf /etc/bashrc setup-2.8.14-20.el6_4.1.noarch %
Ubuntu 可能不會在全域 shell rc 文件中進行任何此類配置更改,這就是終端標題欄沒有更改的原因。