環境
zsh
zsh以外でも同じだと思います
何が起きた?
zsh関係の設定をしていると突如terminalを開いてもコマンドを受け付けなくなった。
どこかの記事で再起動したらなおるみたいなことが書いてあったが全く直らなかった。
なぜ起きたのか?
私の場合デフォルトで使っていたterminal
をカスタマイズしようとしいたところ、参考記事にてmac標準搭載のzshではなくbrew
管理のzshを使った方が良いという情報を目にしたので、その設定をしていました。
brew
経由でinstallしたところまでは良かったのですが、サイトの掲載者と私とではbrewのinstall先が違いました。
サイト掲載者はusr/local....
私はopt/homebrew....
これに気づかず、使用するログインshell
をusr/local...
に変更してしまったためエラーが起きました。
そんなところにzsh
はないですよ?ってことですね。
どうやって解決したか?
terminal
が動かないとなると、ログインSHELL
を再度変更することもできなそうですが、Macに搭載されているSHELL
は一種類ではありません。
完全に無反応になってしまったterminalを開いて上のMac上部のメニュー欄から シェル > 新規コマンドを開きます
/bin/sh
を入力して sh
でターミナルを新規で立ち上げます。
立ち上げたターミナルでログインSHELL
を正しいPATHに変更することで解決しました。
ちなみに使えるSHELLは/etc/shells
に記載されているものです。そこから好きなものを選んでください。新しくSHELLを追加した際もこちらにpathを記述します。
他にどんなケースが考えられるか?
今回私のケースはログインSHELLのpathをまちがえていることで発生しました。
他の理由で発生することもあると思います。
例えば~/.zshrc
の記述にタイポ(打ち間違い)がある等
その場合は怪しそうなファイルを一度Desktopに移してから再度terminalを立ち上げてみてください。
おまけ
なぜだかわかりませんが、terminalとiterm2ではログインSHELLが変更されていたのに、vscodeのターミナルには変更が反映されずずっとエラーが出ていました。
Mac自体を再起動することで解決しました.
エラーと戦ったわけですが、なんか途中で楽しくなってきた自分がいました笑
参考