始めに
1ヶ月くらい前にようやっと、デフォルトシェルをbash
からzsh
に変更したので、忘備録として、また、これから、zsh
に移行したい人のため、少しzsh
を導入するまでについてメモしたいと思います。
zsh
は「MacOS Catalina」から標準シェルとなりました。
私の場合、「使ってたアプリが使えなくなった」、「Bluetooth接続に問題あり」、といったCatalinaの不具合情報が飛び交ってたので、暫くはMojave
を使用していたのですが、リモートワークでディスプレイを増やしたい = 「Sidecar」がそのニーズを満たせるか試してみたい!ということで、アップデートしました。(まだまだ、アップデートしたくない!!という人もいるかもしれませんね。。。)
アップデート後、ターミナルを開いてみるとこんなメッセージが。。。
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/ja-jp/HT208050
毎回、メッセージ出るのも気になるし(表示させない方法もあります)、bashのバージョンも3(10年前のものでセキュリティ的にどうなの?)で古いままだし...ということで、zshに乗り換えました。
対象読者
- MacOSを
Catalina
にアップデートして、かつzsh
をデフォルトのシェルとして設定していない人
(これを機に乗り換えたいと思ってる人)
初めからCatalina
がデフォルトの人は、元々zsh
が標準のシェルになっているかと思います。
zshとは
正式名称はZ Shell
でズィーシェルと読みます。
bashとは完全に互換性があるわけではない点は要注意です。(ここに関しては勉強中...)
以下、Wikiの引用になりますが、作成されたのは大分昔のようです。
zsh の最初のバージョンは、1990年 [3] に、当時 プリンストン大学の学生であった Paul Falstad によって作成された。 zsh の名前は、当時プリンストン大学のティーチングアシスタントであったイェール大学教授 Zhong Shao のログイン名 "zsh" に由来して名付けられた
zshをインストール〜デフォルトシェルに設定する
インストールはHomebrewを使用して行ます。
$ brew install zsh
$ sudo sh -c "echo '/bin/zsh' >> /etc/shells"
$ chsh -s /bin/zsh
これで、zsh
がデフォルトシェルに変更されました。
因みに使用できるshellのパス一覧がみたい場合は以下コマンドで確認できます。
$ cat /etc/shells
1 # List of acceptable shells for chpass(1).
2 # Ftpd will not allow users to connect who are not using
3 # one of these shells.
4
5 /bin/bash
6 /bin/csh
7 /bin/dash
8 /bin/ksh
9 /bin/sh
10 /bin/tcsh
11 /bin/zsh
やっぱりbashに戻したい...という場合は
$ chsh -s /bin/bash
zshに慣れるまでは、bashとzshを併用したい場合の例
上記セクションで設定は完了しましたが、いきなりzsh
に移行するのが不安...という人もいるかと思います。
その場合、以下の3つにファイルを分けて、運用してみる方が安心かもしれません。
使用するファイルは以下の通り。
- .bash_profile
- .zlogin
- .common_setting(共通の設定を定義しておく)
.common_settings
というbash
とzsh
共通で読み込む設定ファイルを作成し、(ファイル名は任意)
.common_settings
があれば、読み込むという処理を書きます。
export PATH="$GOPATH/bin:$PATH"
export GOPATH="$HOME/go"
# alias setting
alias ls='ls -F'
alias la='ls -a'
alias ll='ls -l'
alias cp='cp -i'
COMMON_SETTINGS=$HOME/.common_setting
# 共通の設定ファイルが存在すれば、読み込む
if [ -e $COMMON_SETTINGS ]
then souce $COMMON_SETTINGS
fi
export PS1="$ "
# 以下にbash固有の設定を書く
COMMON_SETTINGS=$HOME/.common_settings
if [ -e $COMMON_SETTINGS ]
then source $COMMON_SETTINGS
fi
PROMPT="%~ %F{green}>%f%F{yellow}>%f%F{red}>%f "
# 以下にzsh固有の設定を書く
これで、bash
を使いながら、徐々にzsh
に慣れてく事もできるかなと思います。
まとめ
ここまでで一旦、zsh
の導入は完了です。
シェルの起動パターンや、bashにはない書き方もあるの、ある程度理解が進んだら、まとめてアウトプットしたいと思います。