まとめ
- 公式の案内、 zsh を Mac のデフォルトシェルとして使う – Apple サポート を試す。
- シェル確認
echo $SHELL
は、 tmux を起動していない状態で試すこと!
発端
macOS を Mojave から Catalina へとアップグレードしました。リリースされてからしばらく躊躇していましたけれども、それというのもデフォルトシェルが bash から zsh へと変更になったからでした。リリース当時は bash を使って 調べ物 をしていましたので、タイミングが悪く、今、ようやく zsh へと向き合えるようになりました。
bash をベースとした環境を、 dotfiles にまとめていましたので、これを見直さなければなりません。そのような楽しみ、もしくは面倒に時間が必要なことも、すぐに取りかかれない理由でした。
コマンドラインから zsh への変更を試みるも失敗。
macOS Catalina へアップグレード後、初めてターミナルを起動すると次のように出力されていました。
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
$
zsh への切り替え方法を案内いただけましたので、素直に従います。
$ chsh -s /bin/zsh
Changing shell for oki2a24.
Password for oki2a24:
chsh: no changes made
$
$ echo $SHELL
/bin/bash
$
ダメでした><。
使用できるシェルのリストを確認してみたところ、 /bin/zsh
はございましたので、コマンド自体は良さそうです。
$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
$
システム環境設定の「ユーザとグループ」パネルから zsh への変更を試みる
zsh を Mac のデフォルトシェルとして使う – Apple サポート の "システム環境設定の「ユーザとグループ」パネルから" の方法でやってみました。
以下、手順の転載です。
- Apple メニュー >「システム環境設定」の順に選択し、「ユーザとグループ」をクリックします。
- 鍵のアイコン をクリックし、アカウント名とパスワードを入力します。
- 左側にあるユーザのリストで自分のユーザ名を「control」キーを押しながらクリックし、「詳細オプション」を選択します。
- 「ログインシェル」メニューからシェルを選択し、「OK」をクリックして変更内容を保存します。
ターミナルを再起動し、確認してみました。何か、ダメなように思えます。
Last login: Mon Nov 18 07:55:37 on ttys001
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
$
$ cat $SHELL
?????h? H__PAGEZEROx__TEXT??__text__TEXTa?__stubs__TEXT?&D??__stub_helper__TEXT?*,?*?__const__TEXT2[Q2__cstring__TEXTk?G^k?__unwind_info__TEXT??
??__eh_frame__TEXT??(???__DATA_CONST??__got__DATA_CONST????__const__DATA_CONST??X???__DAT`__la_symbol_ptr__DAT?__data__DATA?X__common__DATA??__bss__DATAp@5H__LINKEDITP?I"?0?????
... 略 ...
macOS をクリーンインストールする
ダメでしたので、最後の手段として、 macOS Catalina をクリーンインストールしました。
当然、これで使えるようになりました。
$ echo $SHELL
/bin/zsh
$
echo $SHELL
が変になる原因
tmux 上で echo $SHELL
したことが原因だったようです。 prefix + d
で tmux から抜け、再度試してみたところ、無事に /bin/zsh
と表示されました。。。
おわりに
Zsh に切り替えるためになんと OS の再インストールまでしてしまいました。。。それも、振り返ってみるとおそらく必要なかったです><。ですけれども、原因もわかりましたし、次はもっとスムースにできると思います。
以上です。