为什么当我 ssh 到一台服务器时显示 bash 而另一台服务器显示我的用户名?

为什么当我 ssh 到一台服务器时显示 bash 而另一台服务器显示我的用户名?

所以在工作中我有两个可以ssh访问的网络服务器。

两者都是 RHEL 6.5

当我登录其中一个时,它显示:

[username@ldvweb01 /]$ 

当我登录另一台时,它显示:

-bash-4.1$ 

当它显示第一个时,我发现它更优雅。我如何在两者之间切换?谁可以给我解释一下这个?


运行后echo $PS1这些是结果

-bash-4.1$ echo $PS1
\s-\v\$

[appadmin@ldvcatweb01 /]$ echo $PS1
[\u@\h \W]\$

检查两个主目录之间的差异后。我发现home目录下没有.bashrcor 。.bash_profile

所以我从以前的服务器复制了那些。

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions

我猜它只是从中提取默认的 bash 设置/etc

感谢你的帮助。

答案1

bash 提示符由环境变量配置PS1。您可以通过添加来获得您想要的提示

export PS1="[\u@\h \W]\$ "

到您的.bashrc文件(位于用户的主目录中)。

您可以在提示中使用的特殊字符的完整列表可以在官方 Bash 文档

答案2

假设两台机器上的登录 shell 都是 bash,则PS1环境变量不同。该变量决定提示的格式。

您可以使用echo $PS1查看PS1第一台计算机上的设置,然后使用export PS1=...在第二台计算机上将其设置为相同的值。要使此更改永久生效,您应该将该export命令添加到您的.bashrc文件(或者可能是您的.profile文件,该文件由登录 shell 提供 - 这取决于您的配置。)

编辑:根据您的评论,要在第二台计算机上获得与第一台计算机上完全相同的提示,您需要执行以下命令

export PS1="[\u@\h \W]\$"

您可以将其永久化,如前所述。

答案3

您的主文件夹在每个系统上可能不相同。您可以检查每个服务器上的脚本.bashrc是否已处理。.bash_profile对于提示,您需要将其包含export PS1="\u@\h \w> "在 bash 登录脚本 (.bash_profile) 中

您可能希望将主目录放在 NFS 挂载上,以便能够在每个系统上看到类似的环境。

相关内容