命令行:z 已安装但找不到命令

命令行:z 已安装但找不到命令

在使用了几个月 Mac OS 上的原装终端后,我最近安装了 iTerm2 和 ZSH(带有 oh-my-zsh)。

我听说过一个叫“z”的工具,我用 brew 安装了它brew install z。我用了一个晚上,没有问题。后来它停止工作了,说zsh: command not found: z。我尝试再次安装它,结果遇到了Warning: z-1.8 already installed

这怎么解释?它已安装但找不到命令?我该如何恢复此功能?

谢谢!

答案1

可以通过 检查 Homebrew 公式安装的文件列表brew list -f <formula_name>。在本例中,输出应该类似

> brew list -f z
/usr/local/Cellar/z/1.9/etc/profile.d/z.sh
/usr/local/Cellar/z/1.9/INSTALL_RECEIPT.json
/usr/local/Cellar/z/1.9/README
/usr/local/Cellar/z/1.9/share/man/man1/z.1

请注意,在这种情况下没有命令(甚至没有bin),只有z.sh。这是有道理的,因为z是一个 shell 工具,必须作为函数导入到 shell 中才能获取和设置 shell 环境;作为外部命令运行根本无法提供足够深入的集成。因此,您必须将源代码导入z.sh到 shell 中,可能在.bash_profile.bashrc或中.zshrc

通常,需要安装后交互才能使用的 Homebrew 配方将在警告中列出说明,这些说明将在安装后显示,或通过 手动检索brew info <formula_name>。在这种情况下,

> brew info z
<irrelevant info omitted>
==> Caveats
For Bash or Zsh, put something like this in your $HOME/.bashrc or $HOME/.zshrc:
  . `brew --prefix`/etc/profile.d/z.sh

当然,你应该谨慎对待这个建议,并使用更现代、更人性化、更易读的 shell 语法:

source "$(brew --prefix)/etc/profile.d/z.sh"

或者

source /usr/local/etc/profile.d/z.sh

如果你知道你的 Homebrew 安装在/usr/local.

答案2

在 Mac osx 中使用 iterm2 和 zsh 时只需输入:

第一的:

vim ~/.zshrc

并添加此行(或仅添加 z)

plugins=(
    git
    z
)

退出

:x!

就是这样。

答案3

我相信 Brew 会安装一些东西,/usr/local/bin而不是/usr/bin为了避免需要 root 权限。通常这需要添加到您的$PATH(查找应用程序和脚本的默认目录) - 特别是如果您更改了 shell。添加后,您应该可以再次访问所有 Brew 安装的命令。

相关内容