BETA

[zsh] macOS Catalina で default shell をbash から zshに変更してみた

投稿日:2019-10-24
最終更新:2019-10-24

macOS でデフォルトのログインshellをzshに変更する

先日VS Code を使っていたら、なんかmacOS の標準shellがzshになりましたよー
的なダイアログが出て、せっかくなのでVS Code上でTerminal を開くときzshが使われるようにしました。
後で調べてみたらzshがbashの上位互換らしいということがわかったので、
どうせならOSのデフォルトshell自体もzshに変更してみようと思い、
実際に変更した過程を備忘録として残しておきます。

参考にしたサイト

Catalinaでデフォルトシェルが「zsh」に変わる、bashとの違いは?
Use zsh as the default shell on your Mac
Macのターミナルで最初のコンピューター名・ユーザー名を消す

実際に行ったこと

デフォルトshellの変更

まずはいつも通りTerminal(bash)を開いて以下のコマンドを打ちます

~ $ chsh -s /bin/zsh   

chshは change shell ってことかな?
詳細はApple supportで確認できます
とりあえずこれでTerminalを再起動すればzshになっているはずです。

[email protected] ~ %  

bashでは$だったのが%に変わりましたね

例によってPromptに表示されるuser name, mac nameは不要なので消す

bash のときもやったけど、完全に忘れていたので調べました

どうやらPS1という環境変数を設定すれば良いらしく、デフォルトでは以下のようになっていました。

[email protected] ~ % echo $PS1  
%[email protected]%m %1~ %#   
[email protected] ~ %  

PS1を変更すると表示も変わります

[email protected] ~ % PS1="%1~ %# "  
~ %  

しかしこのままではTerminalを再起動したときに元に戻ってしますので、スクリプトをファイルに書かないといけないようです

man command でzshについて詳細を調べられるとApple supportに記載があったので

~ % man zsh  

と入力するといろんな情報が出てきます
最後の方に

FILES  
       $ZDOTDIR/.zshenv  
       $ZDOTDIR/.zprofile  
       $ZDOTDIR/.zshrc  
       $ZDOTDIR/.zlogin  
       $ZDOTDIR/.zlogout  
       ${TMPPREFIX}*   (default is /tmp/zsh*)  
       /etc/zshenv  
       /etc/zprofile  
       /etc/zshrc  
       /etc/zlogin  
       /etc/zlogout    (installation-specific - /etc is the default)  

という部分があり、おそらくzsh login(Tereminal起動)時に
.zshenv ~ .zlogout の5つのファイルを(もしあれば)読み込んでくれるということだと思います

いったんTerminalを再起動して、
bashの時と同じように.zshrcに設定書き込んでいきたいので以下のコマンドを打ちます

~ % echo 'PS1="%1~ %# "' >> .zshrc  

これは.zshrcが存在すれば最後の行にPS1="%1~ %# "を追加し、存在しなければ作成した上でPS1="%1~ %# "を書き込んでくれます。

再起動するとしっかりと

~ %   

というふうになっていたのでこれで終了です。
お疲れ様でした。
shell scriptに関してはあまり詳しくないし、OSの根幹なのでいじると怖いイメージがあったのですが、案外あっさりしているのかもしれませんね。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!