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/zshzshの便利なプラグイン
zshではプラグインをインストールすることで、ターミナルを更に便利にカスタマイズできるようです。bashの時は「とにかくデフォルト」という感じだったのですが、zshではかなり自分好みのターミナルにできそうです。
ひとまず、気になったプラグインをまとめておきました(また試して記事にします)。
| プラグイン名 | プラグイン内容 |
|---|---|
| oh-my-zsh | 設定フレームワーク |
| prezto | oh-my-zshの後発プラグイン |
| tig | Gitブラウザ |
| tmux | 端末多重化 |
| zsh-autosuggestions | 補完機能をより強力にする |
| peco | 補完機能をより強力にする |
| zsh-completions | 補完機能をより強力にする |



高速なzshのプラグインマネージャー「Zplugin」の導入方法
ウインドウを画面の上にドラッグしたときに、Mission Controlが起動するのを無効化する方法
Orbital 2と修飾キーの同時押しで、別のショートカットキーを発火させる方法
メニューアイコンにあるアプリの強制終了方法(アクティビティモニタ)
ウインドウリサイズ系のアプリMagnet・ShiftIt・BetterTouchToolの比較
Google Chromeの別アカウントとのブックマークを同期する「TeamSync Bookmarks」
データベースの操作がGUIで分かりやすく操作できるSequel Proの最低限の使い方
Mac起動時に「Default Folder X は Finder のツールバーにボタンを追加しました」というダイアログが表示される場合の対処法
「EvernoteSpotlightは、キーチェーン内の”Evernote”に保存されている機密情報を使用しようとしています」というダイアログボックスを非表示にする方法
Apple Watchの余計な通知を来ないようにして快適にする方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
AppCleanerでMacアプリを関連ファイルごと完全に削除する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う