macOSでのBash活用法:Zshから切り替えるには?
これまでの記事で、Bashの基本からWindowsでBashを使うためのWSL導入までを学んできました。今回は、macOSユーザーの皆さんに向けて、ターミナル環境をさらに快適にするための知識を深掘りします。macOSを愛用するWebクリエイターの方なら、ターミナルを開いたときに見慣れない「zsh」という文字が表示されて、「あれ、Bashじゃないの?」と戸惑った経験があるかもしれません。
そう、macOS Catalina(2019年リリース)以降、Macの標準シェルはBashからZsh (Z Shell) へと変更されました。Zshは非常に高機能で優れたシェルですが、世の中のチュートリアルやサーバーの多くは依然としてBashを基準にしています。そのため、「学習のためにBash環境を整えたい」「サーバーと全く同じシェルで作業したい」と考える方も少なくありません。
この記事では、そんなmacOSユーザーの皆さんのために、以下の点を分かりやすく解説します。
- ZshとBashの基本的な違いは何か?
- macOSに最新版のBashを安全にインストールする方法
- いつでも好きな時に、標準シェルをZshからBashへ(またはその逆へ)切り替える方法
この記事を読み終えれば、あなたはmacOSのターミナル環境を自由にカスタマイズし、プロジェクトに応じて最適なシェルを使い分ける知識を身につけているはずです!
ZshとBash、何が違うの?
まず、ZshとBashはどちらも「シェル」の一種であり、私たちがOSに命令を伝えるための対話プログラムであるという点は共通しています。基本的なコマンド(ls, cd, mkdirなど)の多くは、どちらのシェルでも全く同じように使えます。
では、なぜAppleは長年標準だったBashからZshへ切り替えたのでしょうか?主な違いと理由を見てみましょう。
- Bash (Bourne-Again SHell): 長年にわたりLinuxやmacOSの標準として君臨してきた、いわば「シェルの王道」。安定性と互換性に優れ、情報量も圧倒的に多いのが特徴です。
- Zsh (Z Shell): Bashを拡張する形で開発された、よりモダンで高機能なシェル。強力な補完機能(コマンドの候補表示)、スペル訂正、豊富なテーマによるカスタマイズ性などが魅力です。
- 切り替えの背景: AppleがZshに切り替えた大きな理由の一つに、ライセンスの問題があります。Bashの新しいバージョン(v4.0以降)はGPLv3というライセンスを採用していますが、Appleはこのライセンスの条件を避けたかったため、macOSに搭載されているBashは非常に古いバージョン3.2のままでした。一方、Zshはより自由なライセンスを採用しており、最新版を搭載することができたのです。
結論として、ZshはBashの上位互換に近い存在ですが、互換性は100%ではありません。サーバー環境や既存のスクリプトに合わせてBashを使いたい、というニーズは今なお根強く存在します。
ステップ1: 最新版のBashをインストールする
macOSに標準で入っているBashは、前述の通り非常に古いバージョンです。まずは、Homebrewを使って最新版のBashをインストールしましょう。Homebrewは、macOS用の便利なパッケージ管理ツールです。
ターミナルを開き、以下のコマンドを実行してBashをインストールします。(Homebrew自体のインストールがまだの方は、先にそちらを済ませてください)
brew install bash
これにより、macOS標準の/bin/bashとは別に、Homebrew管理下の新しいBashがインストールされます。(通常は /usr/local/bin/bash や /opt/homebrew/bin/bash)
バージョンの確認
インストール後、新旧のBashのバージョンを比べてみましょう。まず、macOS標準の古いBashのバージョンを確認します。
$ /bin/bash --version
GNU bash, version 3.2.57(1)-release ...
次に、Homebrewでインストールした新しいBashのバージョンを確認します。(パスはご自身の環境に合わせてください)
$ /opt/homebrew/bin/bash --version
GNU bash, version 5.2.15(1)-release ...
バージョン5系の新しいBashがインストールされていることがわかりますね!
ステップ2: 標準シェルをBashに切り替える
新しいBashをインストールしただけでは、ターミナルを新しく開いたときに使われるシェルはまだZshのままです。これを、先ほどインストールした新しいBashに変更する手順を見ていきましょう。
2-1. 新しいBashを許可されたシェルの一覧に追加する
セキュリティのため、macOSではユーザーが標準シェルとして設定できるプログラムが/etc/shellsというファイルにリストアップされています。まず、このファイルにHomebrewでインストールしたBashのパスを追記する必要があります。
以下のコマンドを実行してください。パスワードの入力を求められたら、お使いのMacのログインパスワードを入力します。
sudo sh -c 'echo /opt/homebrew/bin/bash >> /etc/shells'
2-2. chshコマンドで標準シェルを変更する
許可リストへの追加が完了したら、chsh (change shell) というコマンドを使って、あなたのログインシェルを新しいBashに変更します。
chsh -s /opt/homebrew/bin/bash
このコマンド実行後、ターミナルを完全に終了して、新しく開き直してください。これで、次回からターミナルはBashで起動するようになります。
ステップ3: 確認と元に戻す方法
新しいターミナルウィンドウを開いたら、本当にシェルがBashに変わったか確認してみましょう。以下のコマンドを実行します。
$ echo $SHELL
/opt/homebrew/bin/bash
HomebrewでインストールしたBashのパスが表示されれば、切り替えは成功です!
Zshに戻したくなったときは
もしZshの機能が恋しくなったり、元に戻したくなったりした場合も簡単です。同じようにchshコマンドで、Zshのパスを指定するだけです。
chsh -s /bin/zsh
この後、ターミナルを新しく開き直せば、見慣れたZshのプロンプトに戻っています。
まとめ
お疲れ様でした!今回はmacOSユーザー向けに、標準のZshから最新版のBashへ標準シェルを切り替える方法を解説しました。これで、あなたのMacはWeb開発の現場で広く使われているBash環境とほぼ同じになり、学習や作業がよりスムーズに進められるようになります。
ZshとBashは、どちらも一長一一ある優れたツールです。どちらか一方が絶対的に正しいということはありません。大切なのは、それぞれの特徴を理解し、プロジェクトの要件や自分の好みに合わせて、いつでも環境をスイッチできる知識を持つことです。今日の記事で、あなたはその力を手に入れました!
さて、Bash環境が整ったところで、次はBashの基本的なコマンドを一つひとつじっくりと学んでいきましょう。次の記事では、ファイル操作の基本である`cd`や`ls`などを詳しく解説します。これはBashを使う上での基礎体力となる部分なので、ぜひ続けてご覧ください。