【问题标题】:ZSH: Hide computer name in terminalZSH:在终端中隐藏计算机名
【发布时间】:2015-10-29 04:48:09
【问题描述】:

如何在使用终端时在提示中隐藏计算机名称?

目前它同时显示用户名和计算机名,如下所示:

删除anwarchoukah@anwars-mbp 可以节省一些空间,因为我知道自己是谁:)

【问题讨论】:

  • superuser.com 提出这个问题。你有更多的变化来回答那里
  • 转到您的~/.oh-my-zsh/themes 文件夹,打开您正在使用的主题,注释掉包含prompt_context 或类似内容的行。或者尝试从主题文件中删除$USER@%m
  • 谢谢@MaxPeng!你应该把它作为一个完整的答案......
  • @MaxPeng 真棒!非常感谢)
  • 谢谢@MaxPeng!这对我有用!,最好的答案

标签: zsh prompt


【解决方案1】:

感谢 Wes Bos 的精彩视频系列 Command Line Power User,我设法找到了答案。这很简单。 ZSH 主题中设置了类似的东西。

打开.zshrc,将主题从ZSH_THEME="agnoster"(我正在使用的)更改为其他主题。

Wes Bos 制作了一个名为 Cobalt2 的可爱主题,这正是我想要的 :)

我现在把它改成了ZSH_THEME="cobalt2"

【讨论】:

  • 这里假设你使用 ZSH_THEME,这不是修改提示所必需的。
  • 在命令行方面我完全是菜鸟,但我正在努力学习。您的评论暗示有更好的方法。你有机会扩展它吗?
  • zsh 主题所做的其中一件事是设置参数PS1 的值(或者可能是PROMPT;它们是同义词)。该值是显示为您的主要提示的值。请参阅man zshmisc,尤其是“简单提示符转义”部分,了解各种特殊字符序列出现在PS1 的值中时是如何显示的。
  • @chepner - 做到了 - 足以让我知道从哪里开始。谢谢!
【解决方案2】:

打开.zshrc,找到export PS1或者export PROMPT这一行。

删除用于主机名的变量,可以是 %m 或 %M。

Zsh on Archlinux wiki

您可以使用颜色,也可以在右侧显示提示(或一些信息)。

【讨论】:

  • 通过添加 PS1="%1d %& # " 将显示您当前的工作目录
【解决方案3】:
  1. 步骤 1. 将您的 .zshrc 文件由 vim .zshrc 生成

  2. 第 2 步。转到文件末尾。

  3. 粘贴此代码:

再次小心缩进你的代码

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

编辑 - 解释这是做什么的

这将从提示符 IF 中删除 machine@user 名称: - 您没有以默认用户身份登录 - 您不在 ssh 客户端 shell 中

对于大多数人来说,不需要,但如果您经常 ssh 到其他机器并打开多个终端(例如远程系统管理员类型的工作),那么这非常有用,所以当您查看终端时,您知道您是哪台机器和用户以该终端内的身份登录。

如果您不需要/管理这种类型的复杂性,请使用其他答案之一来修改您的导出提示/PS1 值。

* 警告 *

如果您使用的是自定义 shell 或主题,这可能不起作用,尽管提示将不再显示您的计算机和用户名,但它会继续抛出错误:

prompt_context:2: command not found: prompt_segment

例如,您可以看到这个(非常受欢迎的)powerlevel9k 它不起作用。这是因为 Powerlevel9k 主题使用了它自己的魔力,您只需在 ~/.zshrc 文件中添加命令即可获得相同的结果,例如:

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context)

关于here的更多信息。

【讨论】:

  • 谢谢。试了几个小时。您的解决方案帮助了我。
  • 我想删除主机并只显示用户,效果很好
【解决方案4】:

尝试将export DEFAULT_USER="$(whoami)" 添加到您的.zshrc 文件中

【讨论】:

  • 最佳和快速的答案!谢谢
  • 是的,这是最有效和最快速的答案。这应该被接受为答案
  • 请注意,这将隐藏用户名和主机名(提示为空)。这是可行的,因为只有当 DEFAULT_USER 变量与 USER 变量不同时才会填充提示,因此将两者设置为相同会隐藏提示。
  • 你可以用$USER代替"$(whoami)"
  • 感谢您的提示!我没有使用$USERwhoami,而是将其设置为我的正常登录用户,现在我只有在进入另一个帐户时才能获得user@host。这对我来说是完美的!
【解决方案5】:

只需将其添加到您的 ~/.zshrc 文件中:

export DEFAULT_USER=\`whoami`

【讨论】:

    【解决方案6】:

    ~/.zshrc 文件中的DEFAULT_USER 设置为您的常规用户名。您可以通过在终端中执行 whoami 来获取您的确切用户名值。 像这样的:

    export DEFAULT_USER=username
    

    【讨论】:

      【解决方案7】:

      只需将prompt_context() {} 添加到.zshrc

      【讨论】:

      • 如果您以其他用户身份登录,这是有问题的,因为您现在不知道您在哪个用户中
      【解决方案8】:

      在 MacOS 10.15 Catalina 上:

      1. 在文本编辑器中打开文件/private/etc/zshrc
      2. 找到评论:# Default prompt
      3. 修改如下所示的行:PS1="%n@%m~ %& # "
      4. 保存文件。系统将提示您输入密码以保存。
      5. 加载一个新的终端窗口。

      例如,您可以:

      • 删除 "%n@%m" 以删除用户名和计算机名
      • 去掉"%n"去掉用户名
      • 去掉"%m"去掉机器名

      【讨论】:

      • 需要使用sudo命令修改文件。我使用 'sudo nano /private/etc/zshrc' 输入您的密码,然后您就可以在终端中编辑该文件。成功保存更改后,关闭旧终端并启动新终端,您将看到更改。
      • 如果您想要一个最小的终端用户名,请按照上面的步骤并在下面的# Default 提示部分中使用以下内容:PS1="%#"
      • 通过添加 PS1="%1d %& # " 将显示当前工作目录
      【解决方案9】:

      也许这会帮助你 [打开 Profile => Shell ]

      PS1="~ $: ";clear;
      

      【讨论】:

        【解决方案10】:

        我喜欢这种方法(在我的 Mac 上)

        放入.zshrc

        PS1="%n$ "
        

        终端看起来像

        用户名$

        【讨论】:

          【解决方案11】:

          如果您使用的是 PowerLevel9k 主题,则有一个变量 POWERLEVEL9K_CONTEXT_TEMPLATE 可以更改您的主机名和计算机名的视图。

          默认选项是%n@%m

          • %n -> 用户名
          • %m -> 机器名

          隐藏主机名:

          1. 使用sudo nano ~/.zshrc打开.zshrc文件

          2. 添加行 POWERLEVEL9K_CONTEXT_TEMPLATE="%n" 在.zshrc 文件的末尾

          3. 保存文件。

          【讨论】:

            【解决方案12】:

            安装Oh My Zsh 对我来说是最简单的解决方案:

            https://ohmyz.sh/

            一个衬垫安装:

            sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

            结果:

            【讨论】:

            • 兄弟加油!您在此处使用 OMZ 上的默认主题,即 robbyrussell,此主题设置会为您进行更改。人们想知道其他主题或没有主题的这些变化!
            • 嘿,我不是 100% 明白,你愿意解释更多吗:)
            • 嘿,没问题,伙计。我的意思是,删除username@machinename 是一项任务。安装 OMZ 会自动为您执行此操作,因为它使用了一个主题,我在上面提到过,并且该主题具有此属性,它会为您隐藏它们。但这对于包中的其他主题可能是一个挑战。例如。 OP 要求的是agnoster。没关系,这就是我如何实现期望的改变,在下面的答案中。
            【解决方案13】:

            不幸的是,.zshrc 的任何更改都不适合我。 机器:Mac M1,大苏尔 11.4

            所以这是有效的。

            我导航到 ZSH 主题的安装位置,在 TextEdit 中打开我的主题 agnoster,并修改了选择显示内容的配置,默认情况下为 $username@%m

            注意:%m 这里是机器名。

            这是 delta 的屏幕截图。黄色是我所做的,绿色是github versionagnoster 主题的默认设置。

            瞧,这行得通。现在对我来说,它只是按照我的意图显示机器名称。

            希望对您有所帮助。许多链接和 SOF 帖子只是让我点击了该解决方案。

            【讨论】:

              【解决方案14】:

              如果您使用的是 Powerlevel10k,那么您可以运行 p10k configure 并稍微配置一下输出。

              我的用户名和计算机名在通过后消失了。与这里的其他解决方案相比,它感觉不那么 hacky。

              【讨论】:

                猜你喜欢
                • 2014-06-25
                • 2017-06-21
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-12-14
                • 2014-03-22
                • 2012-05-01
                相关资源
                最近更新 更多