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)
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
使用像Sublime文本这样的优秀文本编辑器并打开.zshrc文件(应该在您的主目录中.如果您没有看到它,请确保在打开时右键单击文件夹并选择"显示隐藏文件"选项) .
找到它所说的地方: export PATH=a-bunch-of-paths-separated-by-colons:
在结束引号之前插入行的末尾: :$HOME/.local/bin
它应该适合你.
您可以先在终端中输入以下内容来测试这是否有效: export PATH=$HOME/.local/bin:$PATH
如果在将此类型输入终端并且终端功能正常后错误消失,则上述解决方案将起作用.如果没有,则必须找到引用错误所在的文件夹(找不到的东西),并用PATH-TO-THAT-FOLDER替换上面的PATH.
我通过打开终端首选项常规选项卡并将命令(完整路径)更改/bin/bash为默认值然后编辑~/.zshrc文件来解决该问题。

export PATH="all your path inside the quotes"
Run Code Online (Sandbox Code Playgroud)
...PATH="和 save 文件之间没有任何空格。

保存文件后,更改/bin/zsh命令中的 或选择默认值

...并重新启动终端,您应该让 zsh shell 再次工作!
我的解决方案:
改回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
在〜/ .zsh配置文件中,包含包含别名的bash路径文件的路径。在我的情况下,它在〜/ .zsh内包含“ source〜/ .bash_profile”行。
最佳解决方案适用于我的永久更改路径
打开 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)
在 MacOS BigSur 单击Terminal >> Preferences 将/bin/zsh更改为/bin/bash 关闭并重新打开终端
您现在可以返回 .zshrc 文件以恢复您所做的最后一次更改