デフォルトの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
どうしたの?なぜすべてのコマンドが失われるのですか?
PATH
変数を台無しにしたことは明らかです。 (現在のPATH
には、一般的なユーティリティが配置されている場所は含まれていません。)
試してください:
PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
export PATH
または、zshを「リセット」するには、シェルへの完全なパスを指定します。
exec /bin/zsh
または
exec /usr/bin/zsh
Sublimeテキストなどの優れたテキストエディターを使用して、.zshrc
ファイルを開きます(ホームディレクトリにある必要があります。表示されない場合は、開くときにファイルフォルダーを右クリックし、「隠しファイルを表示」オプションを選択してください) )。
記載されている場所を見つける:export PATH=a-bunch-of-paths-separated-by-colons:
これを行末、引用符の前に挿入します::$HOME/.local/bin
そしてそれはあなたのために働くはずです。
最初にこれを端末に入力することで、これが最初に機能するかどうかをテストできます:export PATH=$HOME/.local/bin:$PATH
これを端末に入力した後にエラーが消え、端末が正常に機能する場合、上記の解決策は機能します。見つからない場合は、参照エラーがあるフォルダー(見つからないもの)を見つけ、上記のPATHをPATH-TO-THAT-FOLDERに置き換える必要があります。
〜/ .zsh構成ファイルに、エイリアスを含むbashパスファイルへのパスを含めます。私の場合、〜/ .zshの中に "source〜/ .bash_profile"という行が含まれていました。
/ usr/local/bin /にシンボリックリンクを作成できます
Sudo ln -s $HOME/.composer/vendor/bin/Homestead /usr/local/bin/Homestead
私にとっては、端末を再起動するだけで問題は解決したようです。
私が好きなら、2つのターミナルアプリがあります。1つはデフォルトのシェルとしてbashを使用するデフォルトのターミナルで、もう1つはシェルとしてzshを使用するiTerm 2です。 bashのiTerm 2でコマンドとzshの両方を使用するには、以下を実行する必要があります。
ITerm 2で、設定(またはコマンド)に移動します。次に、profileタブに移動し、command。下の写真でわかるように、commandオプションを選択して、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を再度開くだけで完了です!
端末設定の一般タブを開き、コマンド(完全なパス)を/bin/bash
にデフォルトに変更してから、~/.zshrc
ファイルを編集することで問題を修正しました。
export PATH="all your path inside the quotes"
... PATH="
の間に空白を入れずにファイルを保存します。
ファイルを保存した後、コマンドで/bin/zsh
を変更するか、デフォルトを選択します
...そしてターミナルを再起動すると、zshシェルが再び動作するはずです!
私の場合、誤って最初の行でコメントされたコードのコメントが外されていました。
# If you come from bash you might have to change your $PATH.
ハッシュが削除されました。追加して元に戻した後は正常に動作しました。
誰かがこれが役立つと思うように、私はこれをここに投稿しました。それはちょうど行の始まりであり、私がやったように誤って削除される可能性があるためです。そして、いくつかの方法を試しても解決策がないようです。
他の人が言ったように、変更を加えた後にターミナルを再起動するだけで、〜/ .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
}
キーワードコードを使用して、コマンドラインからプログラムを開くことができました。
ターミナルを再起動することも私にとっての秘trickでした。
ITerm2またはmacOSのネイティブターミナルを使用せずに.zshrcファイルを編集する方法は、別のアプリケーションでターミナルを使用することです。たとえば、VSCodeの一部として端末を使用し、ファイルを見つけて編集することができました。
私のために働いたzshをアンインストールして再インストールします:
Sudo yum remove zsh
Sudo yum install -y zsh