CentOS 中存在哪些配置(在 Ubuntu 中不存在),该配置显示远程终端会话的 user@hostname?

CentOS 中存在哪些配置(在 Ubuntu 中不存在),该配置显示远程终端会话的 user@hostname?

我们的服务器安装了标准的“基本服务器”CentOS 6.7,桌面安装了 Ubuntu 14.04。

从我的 Ubuntu 桌面,当我 ssh 到远程服务器(即:ssh 到 CentOS 实例)时,我的终端选项卡显示user@hostname:path

但是,当我 ssh 进入远程桌面(即:ssh 进入另一个 Ubuntu 实例)时,我的终端选项卡显示my_user@my_host:path.也就是说,它显示了我所在的本地用户和本地主机名以及本地路径事先的ssh 进入删除桌面。

我已经覆盖了PS1Ubuntu 和 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

即使我未设置我的本地PROMPT_COMMAND,然后 ssh 进入 CentOS,我user@hostname:path在选项卡中显示,但当 ssh 进入 Ubuntu 时什么也没有显示。

所以我的结论是,CentOS 正在做一些事情来在我的选项卡中显示该信息,而 Ubuntu 没有这样做。

问题:

CentOS 中存在但 Ubuntu 中不存在的哪些配置显示user@hostname:path远程终端会话?

答案1

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 文件中进行任何此类配置更改,这就是终端标题栏未更改的原因。

相关内容