【原因】fishは悪くない、悪いのは自分
zshからfishにデフォルトのshellを変えようと
brew install fish
の後に、ネットから拾ってきたコピペで
% echo /opt/homebrew/bin/fish | sudo tee -a /etc/shells
% chsh -s /opt/homebrew/bin/fish
のコマンドを実行したらなんと見事、次の起動時からIterm2もterminalも起動後にすぐに落ちてしまい何もできない文鎮となってしまいました。なんのコマンドも打てません。打つ手なし。
原因は、homebrewのinstall先が
/opt/homebrew/
とは限らないってオチ。
下記のコマンドを実行してみるとわかるのですが、brewのinstall先は
$ brew --prefix
/usr/local
で/usr/local配下であることがわかります。
※おそらくPCの設定をした時期によると思うのですが2019年ぐらいはこれがデフォルトのダウンロード場所だった。
つまり、/opt/homebrew/bin/fishという存在しないfishを実行しようとしてiTerm2とterminalが起動しなくなってしまいました。そりゃ、shellを起動できないんだから何もできない文鎮アプリに。
/etc/shellsに書かれたこのパスを正しい値に直してあげればいいのですが
/opt/homebrew/bin/fish
terminal動きません。。。
が、
terminalの裏技でGUIからシェルを指定して起動できます。
terminalを起動して「シェル」タブの→「新規コマンド」で
/bin/sh(/bin/zchなど存在するshellならなんでも)
と入力して実行してください。
これでterminalが起動して上記のpathの修正ができましたね。めでたしめでたし