usr - set default shell mac




在zsh上找不到命令 (8)

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

發生什麼了? 為什麼所有命令都丟失了?


  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為我工作:

sudo yum remove zsh
sudo yum install -y zsh

如果你喜歡我,你將有兩個終端app,一個是默認終端,bash作為默認shell,另一個是iTerm 2,zsh作為它的shell。 要從bash在iTerm 2中同時擁有命令和zsh,您需要執行以下操作:

在iTerm 2上,轉到首選項(或命令)。 然後轉到配置文件選項卡,然後轉到命令 。 正如您在下面的圖片中看到的,您需要選擇命令選項並粘貼zsh shell的路徑(要查找路徑,您可以執行which zsh )。

此時,您將把zsh作為默認shell僅用於iTerm 2,並且您將使用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,我們就完成了!


對我來說,重啟我的終端似乎解決了這個問題。


您可以在/ usr / local / bin /中創建符號鏈接

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

我通過打開終端首選項常規選項卡並將命令(完整路徑)更改為/bin/bash為默認值然後編輯~/.zshrc文件來修復此問題。

export PATH="all your path inside the quotes"

...在PATH="之間沒有任何空格並保存文件。

保存文件後,更改命令中的/bin/zsh或選擇默認值

...並重新啟動終端,你應該讓你的zsh shell再次運行!


編輯.zshrc文件而不通過iTerm2或macOS上的本機終端進行編輯的方法是在另一個應用程序中使用終端。 例如,我使用終端作為VSCode的一部分,並能夠找到並編輯該文件。


重啟終端也對我有所幫助。







zsh