在zsh上找不到命令

Mal*_*loc 97 shell zsh osx-lion

我正在使用z Shell(zsh)而不是默认的bash,并且发生了错误,以至于不再识别以前工作的所有命令:

ls
zsh: command not found: ls

open -e .zshrc
zsh: correct 'open' to '_open' [nyae]? 
Run Code Online (Sandbox Code Playgroud)

我不知道如何重置zsh或如何解决这个问题.这是$PATH变量的内容:

echo $PATH
/Users/Malloc/bin/Sencha/Cmd/3.1.2.342:/usr/local/bin/mate
Run Code Online (Sandbox Code Playgroud)

我无法打开.bash_profile文件或.zshrc文件,似乎唯一的解决方法是重置zsh.有任何想法吗?

编辑:

我甚至试图zsh按照此线程中的指示进行重置,但总是command not found出错:

exec zsh
zsh: command not found: zsh
Run Code Online (Sandbox Code Playgroud)

发生什么了?为什么所有命令都丢失了?

dev*_*ull 146

很明显,你已经设法搞砸了你的PATH变量.(您当前PATH不包含常用实用程序所在的任何位置.)

尝试:

PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
export PATH
Run Code Online (Sandbox Code Playgroud)

或者,要"重置"zsh,请指定shell的完整路径:

exec /bin/zsh
Run Code Online (Sandbox Code Playgroud)

要么

exec /usr/bin/zsh
Run Code Online (Sandbox Code Playgroud)

  • 添加 `export PATH=/bin:/usr/bin:/usr/local/bin:${PATH}` 请求 ~/.zshrc 文件,保存文件后运行 `source ~/.zshrc` (7认同)
  • 当我升级到Catalina时,我切换到了zsh shell,这使我的路径混乱到无法执行我使用的任何第三方应用程序的地步。我只需要修改.zshrc文件并添加“ export PATH = <<我的垃圾箱的位置>>”,然后执行exec / bin / zsh,一切都很好。 (5认同)
  • 在蒙特利这行不通。使用此命令:`export PATH="/usr/local/bin:/usr/bin:bin:/usr/sbin:/sbin"`。我发现,我花了好几个小时寻找解决方案。:) (4认同)
  • @devnull @Robert Walters 我尝试了你的答案,但是当我尝试访问任何内容时,我仍然得到``zsh command not found```,有其他方法解决这个问题吗? (2认同)

Mil*_*vić 15

我通过重新安装和/或在文件末尾添加解决了我的问题~/.zshrc

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear
Run Code Online (Sandbox Code Playgroud)

Oh My Zsh 是通过在终端中运行以下命令之一来安装的。您可以通过命令行使用curl 或wget 安装它。

卷曲:

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

获取:

sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
Run Code Online (Sandbox Code Playgroud)


Jer*_*yal 13

适用于macOS 12 蒙特利:

您可以手动编辑.zshrc文件并恢复对PATH.

  • 打开TextEdit应用程序。

  • 转到文件夹:cmd + shift + g

  • 类型:~/

  • 查看隐藏文件:cmd + shift + .

  • 选择:.zshrc

  • 恢复更改、保存文件并重新打开终端。


Jer*_*rdy 12

  1. 使用像Sublime文本这样的优秀文本编辑器并打开.zshrc文件(应该在您的主目录中.如果您没有看到它,请确保在打开时右键单击文件夹并选择"显示隐藏文件"选项) .

  2. 找到它所说的地方: export PATH=a-bunch-of-paths-separated-by-colons:

  3. 在结束引号之前插入行的末尾: :$HOME/.local/bin

它应该适合你.

您可以先在终端中输入以下内容来测试这是否有效: export PATH=$HOME/.local/bin:$PATH

如果在将此类型输入终端并且终端功能正常后错误消失,则上述解决方案将起作用.如果没有,则必须找到引用错误所在的文件夹(找不到的东西),并用PATH-TO-THAT-FOLDER替换上面的PATH.

  • 啊哈,我的错误导致 zsh 明显“忽略”我的“PATH”设置。在 bash 中,我习惯于在主文件夹中的目录前加上“~”前缀。因此,对于 zsh 来说,我应该使用 `$HOME` 变量,就像您的示例中一样。 (2认同)

Vis*_*ish 9

我通过打开终端首选项常规选项卡并将命令(完整路径)更改/bin/bash为默认值然后编辑~/.zshrc文件来解决该问题。

在此处输入图片说明

export PATH="all your path inside the quotes"
Run Code Online (Sandbox Code Playgroud)

...PATH="和 save 文件之间没有任何空格。

在此处输入图片说明

保存文件后,更改/bin/zsh命令中的 或选择默认值 在此处输入图片说明

...并重新启动终端,您应该让 zsh shell 再次工作!


Lea*_*tro 8

我的解决方案:

改回bash

source .bashrc
Run Code Online (Sandbox Code Playgroud)

下一个:

echo $PATH
Run Code Online (Sandbox Code Playgroud)

复制这个:

/home/frank/.asdf/shims:/home/frank/....
Run Code Online (Sandbox Code Playgroud)

回到zsh

source .zsh
Run Code Online (Sandbox Code Playgroud)

打开.zshrc

并粘贴:

 export PATH=/home/frank/.asdf/shims:/home/frank/....
Run Code Online (Sandbox Code Playgroud)

重启终端


小智 7

对我来说,只是重新启动我的终端似乎解决了这个问题。


小智 7

在〜/ .zsh配置文件中,包含包含别名的bash路径文件的路径。在我的情况下,它在〜/ .zsh内包含“ source〜/ .bash_profile”行。

  • 我没有“~/.zsh”文件。相反,我必须将其放在“/etc/zshrc”中。 (3认同)
  • 相同,但在文件中挖掘:`~/.zshrc` (3认同)

9to*_*ios 7

最佳解决方案适用于我的永久更改路径

打开 Finder-> 转到文件夹 /Users/ /usr/local/bin

使用 TextEdit 打开 .zshrc

.zshrc 是隐藏文件,所以通过 command+shift+ 取消隐藏它。按

删除文件内容和类型

导出路径=~/usr/bin:/bin:/usr/sbin:/sbin:$PATH

并保存

现在

zsh:找不到命令消失了


小智 6

如果你像我一样,你将有两个终端应用程序,一个是默认终端,以 bash 作为默认 shell,另一个是 iTerm 2,以 zsh 作为其 shell。要从 bash 在 iTerm 2 中同时使用命令和 zsh,您需要执行以下操作:

在 iTerm 2 上,转到首选项(或命令 ,)。然后转到配置文件选项卡并转到命令。如下图所示,您需要选择命令选项并粘贴 zsh shell 的路径(要查找路径,您可以执行以下操作which zsh)。

在此输入图像描述

此时,您将仅将 zsh 作为 iTerm 2 的默认 shell,并将 bash 作为默认 mac 终端应用程序上的全局默认 shell。接下来,我们仍然缺少 zsh 中 bash 的命令。因此,要执行此操作,您需要继续执行 bash(您的命令可以在其中运行)并从 env 获取 PATH 变量(使用此命令来执行此操作:)env | grep PATH

完成后,转到 iTerm 2 并将您的路径粘贴到“开始时发送文本”选项上。

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear
Run Code Online (Sandbox Code Playgroud)

只需重新打开 iTerm 2,我们就完成了!


小智 5

您可以在/ usr/local/bin /中创建符号链接

sudo ln -s $HOME/.composer/vendor/bin/homestead /usr/local/bin/homestead
Run Code Online (Sandbox Code Playgroud)


Toh*_*eeb 5

在 MacOS BigSur 单击Terminal >> Preferences/bin/zsh更改为/bin/bash 关闭并重新打开终端

之前的偏好屏幕

首选项屏幕后

您现在可以返回 .zshrc 文件以恢复您所做的最后一次更改

  • 除了“-bash”之外仍然遇到同样的问题 (2认同)