Dre*_*rew 41 shell ubuntu zsh oh-my-zsh digital-ocean
我使用Ubuntu 14.04在Digital Ocean上托管了一个开发服务器.我将我的shell改为ZSH,并决定采用Agnoster主题.为了user@hostname停止显示,我DEFAULT_USER在我的.zshrc文件中设置.
由于某些原因在ubuntu服务器上,这是行不通的.主机名仍然显示,并且不会消失.我在我的Mac OSX上做的完全一样,它运行正常.
以下是一些截图:


有谁知道发生了什么?我甚至试过DEFAULT_USER="$USER@$HOST"没有运气.
如果我回到默认的Robby Russell主题,它的效果很好.

hch*_*baw 78
这是根据这个特点 ; 当我们正在进行时ssh,将显示主机名.
重写功能prompt_context或build_prompt上Agnoster主题将救援.~/.zshrc例如,在下面的片段下面放置一些片段.
# redefine prompt_context for hiding user@hostname
prompt_context () { }
Run Code Online (Sandbox Code Playgroud)
hqt*_*hqt 50
这是我前两个答案的版本.他们解释得很清楚.我会再次合并.
步骤1.打开您的.zshrc文件vim .zshrc
第2步.转到文件末尾.
粘贴此代码:
小心缩进你的代码
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
Run Code Online (Sandbox Code Playgroud)
参考链接:agnoster主题代码
希望这有帮助:)
Mun*_*shi 10
您可以DEFAULT_USER="[user name]"在.zshrc文件中设置,它将停止显示user@hostname在您的终端中.
为了获得[user name],输入id -un你的终端,它将输出[user name]值.
小智 6
我的配置在 ~/.oh-my-zsh/themes/agnoster.zsh-theme
prompt_context() {
# Custom (Random emoji)
emojis=("??" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "")
RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1))
prompt_segment black default "${emojis[$RAND_EMOJI_N]} "
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是macOS,则在文件中添加一行即可~/.zshrc在终端机中隐藏计算机名称:
# Where we specify the theme
ZSH_THEME="agnoster"
# Force yourself as the system's default user
DEFAULT_USER="$(whoami)"
Run Code Online (Sandbox Code Playgroud)
这将取消此处的"$user" != "$DEFAULT_USER"检查,从而在仍然为SSH连接显示计算机名称的同时将其隐藏在本地。