gpt4 book ai didi

bash - 如果远程运行,只在 bash 提示符中列出主机?

转载 作者:行者123 更新时间:2023-11-29 08:52:55 25 4
gpt4 key购买 nike

我正在尝试按照我的意愿修改我的 Bash 提示符;这是 $PS1 目前的样子(为了清晰起见,颜色被删掉了):

PS1='\u@\h:\w\$ '

结果是:

andreas@tablet-2710p-ubuntu:~$ 

如果我正在运行当前的 Bash session ,我能否调整提示以隐藏 @tablet-2710p-ubuntu 位(由 @\h 表示)< em>本地,而不是访问远程服务器?

为了可移植性,我也宁愿不对其进行硬编码(例如,只是替换任何出现的 tablet-2710p-ubuntu),以防以后更改主机名。

最佳答案

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

结果如下:

BASH: Hide host when running locally, show host when connecting over SSH

旁注:这些更改应该在您所在服务器上的 .bashrc(或 .profile,取决于发行版)上进行通过 SSH 连接。在您自己的本地 Bash 配置文件中设置它们不会影响您连接到其他远程服务器时显示的内容。

关于bash - 如果远程运行,只在 bash 提示符中列出主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23755274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com