在MAC中总是得到zsh:命令没有找到:

我正在使用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

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

对于重置shell,我只是在.zshrc中添加了这个,工作正常

eval "$(rbenv init -)"
export PATH="$PATH:$HOME/.rvm/bin"
export PATH="/opt/homebrew/bin:$PATH"
export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.6.3p62/bin:$PATH"
722482 次浏览

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

试一试:

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

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

exec /bin/zsh

exec /usr/bin/zsh

对我来说,重启我的终端似乎就能解决这个问题。

  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- to - that - folder替换上面的PATH。

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

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

enter image description here

export PATH="all your path inside the quotes"

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

enter image description here

保存文件后,更改命令中的/bin/zsh或选择default enter image description here

...并重新启动终端,您应该有您的ZSH shell再次工作!

正如其他人所说,在您做了更改之后,简单地重新启动终端应该重置您对~/所做的更改。zshrc中。例如,在添加功能后打开visual studio:

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
}

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

可以在/usr/local/bin/目录下创建符号链接

sudo ln -s $HOME/.composer/vendor/bin/homestead /usr/local/bin/homestead

在你的~/。ZSH配置文件包含到包含别名的bash路径文件的路径。在我的例子中,它包含了“source ~/”行。Bash_profile”在~/的内部。zsh。

卸载和重新安装zsh为我工作:

sudo yum remove zsh
sudo yum install -y zsh

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

在iTerm 2上,转到首选项(或命令,)。然后转到< em >概要文件< / em >选项卡,下到< < em >命令/ em >。如下图所示,你需要选择< < em >命令/ em >选项并粘贴zsh shell的路径(要找到路径,你可以做which zsh)。

enter image description here

在这一点上,你将有zsh作为你的默认shell仅用于iTerm 2,你将有bash作为默认mac终端应用程序的全局默认shell。接下来,我们仍然缺少zsh中的bash命令。因此,要做到这一点,你需要进入你的bash(你的命令在那里工作),并从env中获取PATH变量(使用这个命令来做:env | grep PATH)。

一旦你有了这个,转到你的iTerm 2,并将你的路径粘贴在“send text at start”上 选择。< / p >
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear

只要重新打开iTerm 2,我们就搞定了!

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

在我的例子中,注释代码在第一行就没有注释是错误的。

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

散列被移除。添加回去后工作很好。

我只是把这个贴在这里,所以有人可能会觉得这很有用。因为它只是行首,可能会像我那样被错误删除。在尝试了几种方法后,似乎没有解决方案。

我的解决方案:

改回bash:

source .bashrc

下一个:

echo $PATH

复制:

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

返回到zsh:

source .zsh

开放.zshrc:

粘贴:

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

重启终端

最好的解决方案工作为我永久改变路径

打开查找器→进入“/Users/ /usr/local/bin”文件夹

用TextEdit打开.zshrc

.zshrc是隐藏文件,所以通过命令+shift+取消隐藏它。新闻

删除文件内容和类型

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

并保存

现在

zsh: command not found消失

如果您使用的是macOS,请尝试执行此步骤

如果你在~/.bash_profile中编写了导出PATH的代码,那么不要错过第一步

步骤1:

  • 当你的终端打开时,确保.bash_profile被加载,检查你的~/.bashrc~/.zshrc(如果你使用zsh),是否有类似source ~/.bash_profile的代码?如果没有,你可以手动添加代码source ~/.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 PATH rm -rf /usr/local/bin/code
  • 打开Visual Studio code .app;
  • CMD+Shift+P然后选择"Shell Command: Instal "code" command in PATH"
  • 重新启动你的Mac并运行code -v检查,它应该工作

在我的例子中,我使用的是小写变量path !

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

当我在我的ubuntu上安装ZSH时,我遇到了类似的问题,当我尝试执行ec节点或其他命令时,我得到了错误Zsh:命令未找到节点

我的解决方案是打开我的~/.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

然后我又关闭了我的终端,就这样。

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

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

exit and Save 然后在shell

 source ~/.zshrc

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

< >强从 首选屏幕前 < / p >

< >强 首选屏幕后 < / p >

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

我通过重新安装和/或在~/.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 -)"

要永久修复它,你应该去你根目录下的.zshrc文件。你可以:

  1. cd返回到根目录
  2. code .从你的VS Code打开目录,以便能够轻松地编辑你的.zshrc文件
  3. 点击VS Code中的.zshrc文件
  4. (1)如果您之前没有对这个文件做过任何修改,它应该如下图所示:

$(rbenv init -)"

导出路径=“路径:美元$ HOME / .rvm / bin"

=出口路径“/ opt /组装/ bin: PATH"美元;

(2)如果你确实做了任何改变,比如添加一些新的PATH,那么只需删除该PATH。 在我的情况下,我曾经有一个自制路径,所以我删除了它。因此,现在它看起来与步骤4 (1)中相同

适用于macOS 12 Monterey:

你可以手动编辑.zshrc文件,并恢复你对PATH所做的更改。

  • 打开TextEdit应用程序。

  • 进入文件夹:cmd + shift + g

  • < p >类型:~/

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

  • < p >选择:.zshrc

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

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

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

别忘了刷新。