web-dev-qa-db-ja.com

zshで見つからないコマンド

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

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をリ​​セットすることです。何か案は?

編集:

this thread に示されているようにzshをリ​​セットしようとしましたが、常にcommand not foundエラーが発生しました:

exec zsh
zsh: command not found: zsh

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

75
Malloc

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

試してください:

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

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

exec /bin/zsh

または

exec /usr/bin/zsh
120
devnull
  1. Sublimeテキストなどの優れたテキストエディターを使用して、.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に置き換える必要があります。

9

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

5
dsteplight

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

Sudo ln -s $HOME/.composer/vendor/bin/Homestead /usr/local/bin/Homestead
5
Adel Kihal

私にとっては、端末を再起動するだけで問題は解決したようです。

3
Darion Miller

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

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

enter image description here

この時点で、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を再度開くだけで完了です!

2
Kamil B

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

enter image description here

export PATH="all your path inside the quotes"

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

enter image description here

ファイルを保存した後、コマンドで/bin/zshを変更するか、デフォルトを選択します enter image description here

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

2
Vish

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

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

ハッシュが削除されました。追加して元に戻した後は正常に動作しました。

誰かがこれが役立つと思うように、私はこれをここに投稿しました。それはちょうど行の始まりであり、私がやったように誤って削除される可能性があるためです。そして、いくつかの方法を試しても解決策がないようです。

0

他の人が言ったように、変更を加えた後にターミナルを再起動するだけで、〜/ .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
}

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

0
Nathan Minarik

ターミナルを再起動することも私にとっての秘trickでした。

0
Sergio Acosta

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

0
Ramboo19

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

Sudo yum remove zsh
Sudo yum install -y zsh
0
Geek