我正在尝试修改我的Bash提示符;这就是$PS1
目前所看到的方式(为了清晰起见,编辑了颜色):
PS1='\u@\h:\w\$ '
结果是:
andreas@tablet-2710p-ubuntu:~$
如果我正在运行当前的Bash会话本地而不是访问远程,我是否可以调整提示以隐藏@tablet-2710p-ubuntu
位(由@\h
表示)服务器
我还宁愿不对它进行硬编码(例如,只是替换任何出现的tablet-2710p-ubuntu
)以便于移植,以及以后更改主机名。
答案 0 :(得分:8)
如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
结果如下:
附注:这些更改应在您要将连接到.bashrc(或.profile
,具体取决于分发)上进行>通过SSH。在您自己的本地Bash配置文件中设置它们对连接到其他远程服务器时显示的内容没有影响。
答案 1 :(得分:5)
你想要下面这样的东西吗? :
if [ "$SSH_CONNECTION" ]; then
PS1='\u@\h:\w\$ '
else
PS1='\u:\w\$ '
fi