zshにコマンドが見つかりません


138

zshデフォルトのbashの代わりにzシェル()を使用していますが、何か問題が発生して、以前は機能していたすべてのコマンドが認識されなくなりました。

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

どうしたの?なぜすべてのコマンドが失われるのですか?

回答:


218

PATH変数を台無しにしてしまったことは明らかです。(現在のPATH場所には、一般的なユーティリティが配置されている場所は含まれていません。)

試してください:

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

または、zshを「リセット」するには、シェルへの完全なパスを指定します。

exec /bin/zsh

または

exec /usr/bin/zsh

17
Catalinaにアップグレードしたとき、zshシェルに切り替えたところ、パスがめちゃくちゃになり、使用しているサードパーティのアプリを実行できなくなりました。.zshrcファイルを変更して「export PATH = <<私のビンの場所>>」を追加し、exec / bin / zshを実行するだけで、すべて問題はありませんでした。
ロバートウォルターズ

18

〜/ .zsh設定ファイルに、エイリアスを含むbashパスファイルへのパスを含めます。私の場合、〜/ .zshの中に「source〜/ .bash_profile」という行が含まれていました。


1
本当にありがとう、それは私のためにそれを解決しました。Catalinaにアップグレードしてzshシェルに切り替えた後、問題が発生しました。
neiya

1
~/.zshファイルがありません。代わりにそれを入れなければなりませんでした/etc/zshrc
チェイスロバーツ

14
  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に置き換える必要があります。


ああ、そこに私の間違いがあり、zshは明らかに私のPATH設定を「無視」しました。私はbashから、ホームフォルダー内のディレクトリの先頭にを付けていました~。したがって、zshの$HOME場合は、例のように変数を使用する必要があります。
lalilulelost

7

/ usr / local / bin /にシンボリックリンクを作成できます

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

どうもありがとう。私は問題を抱えていましたが、この回答から、自分が$HOME相対パスを使用および提供していないことに気付きました。$HOME私の問題を修正したフルパスを使用しています。
tasomaniac

多くの単純な使用例の+1:実行可能ファイルを1つだけ追加したい場合は、シンボリックリンクを追加する方法があります。新しいフォルダーで複数の実行可能ファイルを管理$PATHする場合は、その使用例でに追加することをお勧めします。
David Bodow


4

端末設定の一般タブを開き、コマンド(完全パス)/bin/bashをデフォルトに変更してから~/.zshrcファイルを編集することで問題を修正しました。

ここに画像の説明を入力してください

export PATH="all your path inside the quotes"

... PATH="とファイルの間に空白を入れずに保存します。

ここに画像の説明を入力してください

ファイルを保存した後/bin/zsh、コマンドでを変更するか、デフォルトを選択します ここに画像の説明を入力してください

...そしてターミナルを再起動すると、zshシェルが再び機能するはずです!


4

私が好きなら、2つのターミナルアプリがあります。1つはデフォルトシェルとしてbashを使用するデフォルトのターミナルで、もう1つはzshをシェルとして使用するiTerm 2です。コマンドとzshの両方をbashからiTerm 2で使用するには、以下を実行する必要があります。

iTerm 2で、設定(またはコマンド)に移動します。次に、プロファイルタブに移動し、コマンドに移動します。下の図でわかるように、コマンドオプションを選択し、zshシェルのパスを貼り付ける必要があります(パスを見つけるには、を実行できますwhich zsh)。

ここに画像の説明を入力してください

この時点で、iTerm 2の場合のみ、デフォルトのシェルとしてzshがあり、デフォルトのMac端末アプリのグローバルなデフォルトシェルとしてbashがあります。次に、zshのbashからのコマンドがまだありません。したがって、これを行うには、bash(コマンドが機能している場所)に移動し、envからPATH変数を取得する必要があります(これを行うには、次のコマンドを使用します:) env | grep PATH

それができたら、iTerm 2に移動して、「開始時にテキストを送信」オプションにパスを貼り付けます。

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

iTerm 2を再び開くだけで完了です。


「最初にテキストを送信する」にエクスポートを追加したのは、誰かのために、iTerm 2を再び開くたびにパスが常に以前の状態にリセットされるためです。これは、これを修正する良い方法です。
カミルB

3

私の解決策:

に戻りますbash

source .bashrc

次:

echo $PATH

これをコピー:

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

に戻るzsh

source .zsh

オープン.zshrc

そして貼り付けます:

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

端末を再起動する


1

私の場合、コメントされたコードが誤って最初の行でコメント解除されていました。

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

ハッシュが削除されました。追加後、正常に機能しました。

私はこれをここに投稿したので、誰かがこれを参考にするかもしれません。それは単に行の始まりであり、私がしたように誤って削除される可能性があるためです。そして、いくつかの方法を試しても解決策はないようです。


1

永続的な変更パスのための私にとって最善の解決策

Finderを開く->フォルダ/ Users / / usr / local / binに移動

TextEditで.zshrcを開く

.zshrcは隠しファイルなので、command + shift +で再表示します。押す

ファイルの内容とタイプを削除する

エクスポートPATH =〜/ usr / bin:/ bin:/ usr / sbin:/ sbin:$ PATH

そして保存する

zsh:コマンドが見つかりませんでした



0

他の人が言ったように、変更を加えた後に端末を再起動するだけでリセットされ、〜/ .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
}

キーワードコードを使用して、コマンドラインからプログラムを開くことができました。


0

macOS上のiTerm2またはネイティブターミナルを使用せずに.zshrcファイルを編集する方法は、別のアプリケーションでターミナルを使用することです。たとえば、ターミナルをVSCodeの一部として使用し、ファイルを見つけて編集することができました。


-1

私のために働いたzshをアンインストールして再インストールしました:

sudo yum remove zsh
sudo yum install -y zsh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.