カテゴリー
Apple

zsh を Mac のデフォルトシェルにするまでの記録

まとめ

発端

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 サポート の "システム環境設定の「ユーザとグループ」パネルから" の方法でやってみました。

以下、手順の転載です。

  1. Apple メニュー  >「システム環境設定」の順に選択し、「ユーザとグループ」をクリックします。
  2. 鍵のアイコン をクリックし、アカウント名とパスワードを入力します。
  3. 左側にあるユーザのリストで自分のユーザ名を「control」キーを押しながらクリックし、「詳細オプション」を選択します。
  4. 「ログインシェル」メニューからシェルを選択し、「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 の再インストールまでしてしまいました。。。それも、振り返ってみるとおそらく必要なかったです><。ですけれども、原因もわかりましたし、次はもっとスムースにできると思います。

以上です。

コメントを残す