FFFT

主にwebプロダクト開発に関連する話をつらつらと

bashからzshに3分移行 ~ MacOS catalinaからデフォルトシェルがbashからzshに ~

Macを使っている方は、catalinaからデフォルトシェルがbashからzshに変わりましたね。(今更感ありますが...)
後述しますが、訳あってmojaveからcatalinaにアップグレードを数ヶ月前に行いました。
ターミナルアプリ(自分はiTerm2)を起動する度に The default interactive shell is now zsh. To update your account to use zsh, please run chsh -s /bin/zsh と警告が出るのでいい加減やるかと思い、zshに移行したので簡単に最低限の手順を残しておきます。
まだ移行されてない方が少しでも時間をかけずに移行作業を行うための参考にしていただけたら幸いです。

なお、zshへの移行はもちろんマストではないので、「俺はそのままbash使ってくんだよ。警告うぜぇな。」という場合は下記のコマンドを叩くと次回の起動から警告表示がされなくなります。

$ echo "export BASH_SILENCE_DEPRECATION_WARNING=1" >> ~/.bash_profile

ターミナルアプリを一度閉じて、再起動して確認してみてください。

zshに移行するぜ」という方は以下の手順を実行しましょう。

警告文に記載のとおり、chsh -s /bin/zsh を実行

これでシェルがbashからzshに変わります。
次にbashの設定ファイルの情報をzshに引き継がせます。

デフォルト環境変数などの情報をまとめたbashログイン時に実行されるファイル群をzsh用に変換(と言いつつただのコピー)

$ cat ~/.bash_profile >> ~/.zprofile
$ cat ~/.bashrc >> ~/.zshrc
$ source ~/.zprofile
$ source ~/.zshrc

上記は最低限であり、その他bashで使っていた設定ファイルがあれば、移行・反映してください。

zshはそのままだと補完機能がかなり弱いため、補完機能を強化する専用のライブラリを入れる

github.com

$ brew install zsh-completions

これを入れると「bashより補完機能全然良いやん。」ってなりました。
ここまでやれば自分は一旦十分という感じ。

最後に、自分は業務の中でzipファイルを解凍することが週何度かあるので、「catalinaのzipファイルを解凍するバグが解消されるまでアップグレードしない!」と思ってたんですが、あまりにもこのバグのFIXに時間がかかっているので「もうzipファイルの解凍はサードパーティのソフト使うか」となりました。10.15.3でも直ってなのですが、本日10.15.4にアップデートしたら直った!
f:id:keyama4:20200415094349p:plain
ついに上記のエラーを見ることがなくなりました。嬉しい。