Macのデフォルトシェルをbashからzshへ変更する方法
今までデフォルトだったからという理由でずっとbashを使っていたのですが、WWDC19の発表でmacOS 10.15 Catalinaでデフォルトシェルがbashからzsh(Z Shell)に変わることが判明しました。
そうなってくるとあえてbashを使う意味もないなと思い、今のうちからzshに変更して色々試しておこうと思いました。
zshの特徴
もともとzshはスゴイと聞いてはいたのですが、そこまでターミナルをガッツリ使っているわけではないので放置してきましたが、zshはbashが提供する機能に加えてプラスアルファの機能が組み込まれているようです。
Zshは、Bashが提供する機能に加え、初心者と上級者の両方のCLIユーザーにとって便利な機能が数多く組み込まれています。
Zshは数々の優れた機能を提供しており、Bashに対する欠点はほぼなく、便利に利用できます。
オープンソースのBashとZshを比較
- コマンドの補完機能がついている
- プラグインを導入することで更に便利にカスタマイズできる
zshのインストール方法
zshのインストール
zshはHomebrewを使って導入します。Homebrewをまだインストールしていない方は、過去記事を参考にインストールを行なってください。
インストールしている場合は、下記のコマンドでzshをインストールします。
$ brew install zsh
これでzshのインストールはできました。
ただ、ターミナルはbashを使用する設定のままなので、zshを使用する設定に変更します。
シェルの切り替え
/etc/shells
のファイルを開いて最終行に下記の1文を追加します。
/usr/local/bin/zsh
管理者権限が必要なファイルなので保存時にMacのログインパスワードを入力する必要があります。
自分の場合はVisual Studio Codeで開いて編集しました。
保存できたら下記のコマンドを入力してデフォルトのシェルをzshに変更します。
$ chsh -s /usr/local/bin/zsh
あとはターミナルを再起動すれば、今まで「$」だった記号が「%」に切り替わっているはずです。
権限の設定
ターミナルを立ち上げたときに下記のエラーが表示される場合は権限の設定をする必要があります。
Ignore insecure directories and continue [y] or abort compinit [n]? y
下記の2つのコマンドを入力すればOKです。
$ chmod 755 /usr/local/share/zsh/site-functions
$ chmod 755 /usr/local/share/zsh
zshの便利なプラグイン
zshではプラグインをインストールすることで、ターミナルを更に便利にカスタマイズできるようです。bashの時は「とにかくデフォルト」という感じだったのですが、zshではかなり自分好みのターミナルにできそうです。
ひとまず、気になったプラグインをまとめておきました(また試して記事にします)。
プラグイン名 | プラグイン内容 |
---|---|
oh-my-zsh | 設定フレームワーク |
prezto | oh-my-zshの後発プラグイン |
tig | Gitブラウザ |
tmux | 端末多重化 |
zsh-autosuggestions | 補完機能をより強力にする |
peco | 補完機能をより強力にする |
zsh-completions | 補完機能をより強力にする |