命令行:z已安装但无法找到该命令


5

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

我听说过一个名为“z”的工具并通过brew安装它brew install z。我用它一晚没问题。后来它停止了工作,说zsh: command not found: z。我再次尝试安装它,并得到了满足Warning: z-1.8 already installed

这有什么意义?它已安装,但找不到命令?我怎么能恢复这个功能?

谢谢!


brew list -f z查看为z公式安装的所有文件。
4ae1e1 2015年

对不起,我怎么处理这个命令的结果呢?这对我有什么用?
Fabio Bracht 2015年

事实上,如果你运行我给你的命令,你会发现没有z安装这样的命令。您将拥有/usr/local/Cellar/z/1.9/etc/profile.d/z.sh(或者在您的情况下为1.8;您似乎已经过时了公式定义)。你应该遵循警告部分brew info z,其中说For Bash or Zsh, put something like this in your $HOME/.bashrc or $HOME/.zshrc: . `brew --prefix`/etc/profile.d/z.sh
4ae1e1 2015年

哦,顺便说一句,你不应该使用过时的语法。替换brew --prefix/usr/local,或者至少把它包装$()代替。
4ae1e1 2015年

谢谢!这对我有用!如果您想将此作为实际答案而不是评论发布,我一定会赞成并接受作为正确答案。
Fabio Bracht 2015年

Answers:


14

可以通过检查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


PS通过“更现代和人类可读的shell语法”我正在与POSIX shell进行比较...不幸的人编写与shell无关的shell工具被困在POSIX上,但我们其他人知道我们正在使用更好的东西不得不遵守这一点。
4ae1e1 2015年

2

在Mac osx与iterm2与zsh刚刚放:

第一:

vim ~/.zshrc

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

plugins=(
    git
    z
)

退出

:x!

而已。


1
把它放在哪里?输入吗?什么时候?每次登录?它有什么作用?请不要回复评论; 编辑  你的答案,使其更清晰,更完整。
斯科特

0

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


看起来已经添加了。当我回应我的$ PATH时,我明白了/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin,好像在那里。
Fabio Bracht 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.