今更ながら、Catalinaでシェルをbashからzshに変えました。
すでにいろいろな方が変更手順を残していますが、私の場合、ちょっとだけ事例としては出てこなかったことがあったので、記録として残しておきます。
Catalinaにアップグレードしてから、ターミナルを開くと「デフォルトシェルはzshになったからね。chsh -s /bin/zsh
で変えといてよ。詳しくはchsh -s /bin/zsh
見てね」と言われます。
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.
変更してから分かったのですが「https://support.apple.com/kb/HT208050」に移行方法とか書いてありましたね。
注意書きはしっかり読めってことでした。
以下、私がbashからzshに変更した手順です
zshの確認をしてみます。
Air00:~$ which zsh
/bin/zsh
Air00:~$ zsh --version
zsh 5.7.1 (x86_64-apple-darwin19.0)
/binの中にアップルさんが用意してくれているので、HomeBrewとかでわざわざ入れる必要はありません。
brewで入れてもいいのですが、自分で管理するのが面倒なので、OSに入っているものを使います。
bashの設定ファイル「.bashrc」と「.bash_profile」はそのままzshに持っていけるというので、zshように書き出します。
cpで別名コピーでもかまいません。
Air00:~$ cat ~/.bash_profile >> ~/.zprofile
Air00:~$ cat ~/.bashrc >> ~/.zshrc
ほいでもって、ターミナルを立ち上げた時のメッセージに従って、シェルを変えます。
Air00:~$ chsh -s /bin/zsh
Changing shell for hogehoge.
Password for hogehoge:
これでログインし直します。
ログインし直してターミナルを立ち上げると、こんなエラーが
/etc/bashrc:8: command not found: shopt
/etc/bashrc_Apple_Terminal:172: parse error near `;'
/etc/bashrc:8: command not found: shopt
/etc/bashrc_Apple_Terminal:172: parse error near `;'
update_terminal_cwd:11: unrecognized modifier `i'
\h:\W$
bashrcが変だ、と。
いやいやzshなんだからbashrcが変だって、変でしょ?
それにプロンプト表示も変です。
「.zprofile」の中に「bashrc」というこんな記載が残っているので、
if [ -f /etc/bashhrc ]; then
. /etc/bashrc
fi
vimで開いて「:s/bashrc/zshrc/g」とかで書き換えます。
同じように「.zshrc」の中にもbashrcという記載があるので書き換えます。
これでターミナルを立ち上げるたびに怒られなくなりましたが、プロンプトの表示がまだこれです。
\h:\W$
これは元々.bashrcの中でプロンプトの記載を
PS1='\h:\W$ '
「コンピュータ名:デフォルトディレクトリ」のように変更していたのですが、これがzshと違うとのことなので、このように変更します。
PS1='%m:%~$
これでプロンプトが
Air00:~$ echo $SHELL
/bin/zsh
と、以前と同じように表示されました。
.bashrcとかをいろいろカスタマイズしているので、まだまだ微調整が必要だと思いますが、ひとまず移行は完了。