在使用了几个月 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 安装的命令。