243

我使用的是 z Shell ( zsh) 而不是默认的 bash,但发生了一些错误,以至于不再识别所有曾经工作的命令:

ls
zsh: command not found: ls

open -e .zshrc
zsh: correct 'open' to '_open' [nyae]? 

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

echo $PATH
/Users/Malloc/bin/Sencha/Cmd/3.1.2.342:/usr/local/bin/mate

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

编辑:

我什至尝试按照此线程zsh中的说明进行重置,但总是出现错误:command not found

exec zsh
zsh: command not found: zsh

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

4

23 回答 23

382

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

尝试:

PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
export PATH

或者,对于“重置”zsh,指定 shell 的完整路径:

exec /bin/zsh

或者

exec /usr/bin/zsh
于 2013-08-25T12:04:49.567 回答
25

在您的 ~/.zsh 配置文件中包含包含别名的 bash 路径文件的路径。就我而言,它在 ~/.zsh 中包含“source ~/.bash_profile”行。

于 2016-10-04T16:15:36.633 回答
19
  1. 使用像VS Code这样好的文本编辑器并打开你的.zshrc文件(应该在你的主目录中。如果你没有看到它,请务必在打开时右键单击文件夹并选择“显示隐藏文件”选项) .

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

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

它应该适合你。

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

如果您在终端中键入此内容后错误消失并且您的终端正常运行,则上述解决方案将起作用。如果没有,您必须找到您的参考错误所在的文件夹(未找到的东西),并将上面的 PATH 替换为 PATH-TO-THAT-FOLDER。

于 2014-10-24T16:41:54.427 回答
15

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

偏好屏幕之前

之后的偏好屏幕

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

于 2021-03-24T16:07:08.320 回答
9

我的解决方案:

改回bash

source .bashrc

下一个:

echo $PATH

复制这个:

/home/frank/.asdf/shims:/home/frank/....

回到zsh

source .zsh

打开.zshrc

并粘贴:

 export PATH=/home/frank/.asdf/shims:/home/frank/....

重启终端

于 2020-03-15T20:34:05.633 回答
9

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

在此处输入图像描述

export PATH="all your path inside the quotes"

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

在此处输入图像描述

保存文件后,更改/bin/zsh命令或选择默认值 在此处输入图像描述

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

于 2016-03-15T02:48:42.113 回答
8

对我来说,重新启动终端似乎可以解决问题。

于 2014-07-16T15:16:53.280 回答
8

为我提供永久更改路径的最佳解决方案

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

使用 TextEdit 打开 .zshrc

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

删除文件内容和类型

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

并保存

现在

zsh:找不到命令

于 2020-07-03T07:40:44.373 回答
8

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

sudo ln -s $HOME/.composer/vendor/bin/homestead /usr/local/bin/homestead
于 2016-08-05T12:40:21.753 回答
5

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

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear

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

卷曲:

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

wget:

sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
于 2021-04-20T19:25:37.430 回答
4

如果您喜欢我,您将拥有两个终端应用程序,一个是默认终端,以 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

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

于 2018-07-25T18:32:22.157 回答
2

要永久修复它,您应该转到.zshrc根目录中的文件。你可以做:

  1. cd返回到您的根目录
  2. code .从您的 VS Code 打开目录以便能够轻松地编辑您的.zshrc文件
  3. .zshrc从您的 VS 代码中单击文件
  4. (1) 如果您之前没有对该文件进行任何更改,它应如下所示:

eval "$(rbenv init -)"

导出 PATH="$PATH:$HOME/.rvm/bin"

出口 PATH="/opt/homebrew/bin:$PATH"

或者

(2) 如果您确实进行了任何更改,例如添加一些新的 PATH,那么只需删除该 PATH。就我而言,我曾经也有一个自制路径,所以我删除了它。因此,现在它看起来与步骤4 (1)中的相同。

于 2021-10-29T14:32:55.530 回答
1

您需要创建 .zprofile 文件并写入其中

cd /
touch .zprofile
vim .zprofile
//Put Your Path

退出并保存,然后将此代码运行到 shell

 source ~/.zshrc
于 2021-03-09T18:27:57.320 回答
0

就我而言,这是错误的,注释的代码在第一行没有注释。

# If you come from bash you might have to change your $PATH.

哈希已被删除。添加回来后工作正常。

我刚刚在这里发布了这个,所以有人可能会觉得这很有帮助。因为它只是行的开头,可能会像我一样被错误地删除。在尝试了几种方法后似乎没有解决方案。

于 2019-03-14T17:17:55.597 回答
0

当我在我的 ubuntu 上安装 ZSH 时遇到了类似的问题,当我尝试执行节点或其他命令时,我收到错误zsh: command not found node 。

我的解决方案是打开我的~/.zshrc文件并在其上编写下一个代码:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

然后我关闭并重新打开了我的终端,就是这样。

于 2021-01-31T21:30:53.227 回答
0

适用于macOS 12 蒙特雷:

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

  • 打开TextEdit应用程序。

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

  • 类型:~/

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

  • 选择:.zshrc

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

于 2021-12-26T12:11:47.077 回答
0

重新启动终端也对我有用。

于 2015-12-06T17:11:18.810 回答
-1

对于 macOS,必须添加source $HOME/.bash_profile.zshrc文件中。

  1. $ code ~/.zshrc.zshrc在 VSCode 上打开文件)
  2. source $HOME/.bash_profile在文件顶部添加并保存。
  3. $ source ~/.zshrc刷新.zshrc

不要忘记刷新。

于 2022-01-03T17:47:49.030 回答
-1

无需通过 iTerm2 或 macOS 上的本机终端即可编辑 .zshrc 文件的一种方法是在另一个应用程序中使用终端。例如,我将终端用作 VSCode 的一部分,并且能够找到并编辑该文件。

于 2018-09-19T21:44:11.333 回答
-1

正如其他人所说,在您进行更改后只需重新启动终端应该重置并且您对 ~/.zshrc 文件所做的更改。例如添加功能以打开视觉工作室后:

function code {  
    if [[ $# = 0 ]]
    then
        open -a "Visual Studio Code"
    else
        local argPath="$1"
        [[ $1 = /* ]] && argPath="$1" || argPath="$PWD/${1#./}"
        open -a "Visual Studio Code" "$argPath"
    fi
}

我能够使用关键字代码从命令行打开程序。

于 2016-03-31T18:46:37.120 回答
-1

如果您使用的是 macOS,请尝试按照此步骤操作

如果您编写代码以导出 PATH~/.bash_profile则不要错过第 1 步

步骤1:

  • 确保.bash_profile在您的终端打开时加载,检查您的~/.bashrc~/.zshrc(如果您使用的是 zsh),是否有类似的代码source ~/.bash_profilesource ~/.bash_profile如果没有,您可以在其中添加代码手动添加
  • 还要确保此代码在您的.bash_profile>export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin如果它不在那里,则将该代码添加到其中

9月2日:

  • 确保"Visual Studio Code.app"在正确的位置 >"/Applications""/Users/$(whoami)/Applications"
  • 删除旧安装的 vs-code PATHrm -rf /usr/local/bin/code
  • 打开“Visual Studio Code.app”
  • CMD+Shift+P然后选择"Shell Command: Instal "code" command in PATH"
  • 重新启动您的 Mac 并通过运行它来检查code -v,它应该可以工作
于 2020-11-02T08:14:55.390 回答
-1

就我而言,我使用的path是小写的变量!

因此,/etc/profile.d我正在运行一个使用变量的脚本path。因为它是小写的,所以我从没想过它会与实际的变量 PATH 混淆。请小心,不要path在脚本中使用该变量。

于 2020-11-14T17:38:07.610 回答
-2

卸载并重新安装 zsh 对我有用:

sudo yum remove zsh
sudo yum install -y zsh
于 2018-05-18T20:52:30.123 回答