LinuxやMacを使っていると、ターミナルで使う「シェル(shell)」という言葉を目にします。中でもよく登場するのが bash と zsh。
でも…
- 「どっちを使えばいいの?」
- 「何が違うの?」
- 「自分のシェルはどっち?」
と疑問に思っている方も多いのではないでしょうか?
この記事では、bashとzshの違いをわかりやすく比較しながら、初心者でも理解できるように解説します。
MacやUbuntuを使い始めた方にもおすすめの内容です!
そもそも「シェル」って何?

シェル(shell)とは、ユーザーとOS(カーネル)の間を仲介する「コマンドを受け付けるソフトウェア」です。
ざっくり言うと:
- ターミナルは「画面」(コマンドを表示する窓)
- シェルは「中身」(命令を解釈・実行するプログラム)
シェルの種類にはいくつかありますが、代表的なのがこの2つ:
- bash(Bourne Again SHell)
- zsh(Z SHell)
bashとzshの基本的な違いまとめ
項目 | bash | zsh |
---|---|---|
歴史 | 1989年に登場 | 1990年にbashをベースに開発 |
標準シェル | Ubuntuや多くのLinuxで標準 | macOS(Catalina以降)で標準に |
補完機能 | そこそこ(タブ補完) | 超強力(オプション補完、補完候補一覧など) |
プロンプトカスタマイズ | 標準的 | 高機能で柔軟 |
テーマやプラグイン | 基本なし | oh-my-zshなどで豊富に管理可能 |
学習コスト | やや低い | やや高い(慣れれば便利) |
互換性 | 非常に高い | bashとほぼ互換性あり(一部構文が異なる) |
初心者にとっての使いやすさ比較

bashの特徴
- 学習コストが低い
- シンプルで素直
- Linux全般で動作保証されている
- 多くのスクリプトがbash向けに書かれている
→ 初学者が最初に覚えるには最適
zshの特徴
- 入力補完が超便利(ファイル名やディレクトリ補完が直感的)
- カスタマイズ性が高くておしゃれ
- oh-my-zshで機能追加も簡単
- 履歴管理が賢い(同じコマンドを重複して表示しないなど)
- スペルミスを自動修正してくれる
→ ターミナルを頻繁に使う人や、開発者には非常に快適
自分の使っているシェルを確認する方法
ターミナルで以下を入力:
echo $SHELL
表示される結果:
/bin/bash # bashを使っている場合
これで現在のデフォルトシェルがわかります。
現在アクティブなシェルを確認する別の方法:
ps -p $$
シェルを切り替える方法(zsh <-> bash)

zshに変更したい場合:
chsh -s $(which zsh)
bashに戻したい場合:
chsh -s $(which bash)
一時的に別のシェルを使う場合:
ターミナルで単に起動したいシェル名を入力するだけです:
zsh # bashからzshに一時的に切り替え
または
bash # zshからbashに一時的に切り替え
bashとzshの具体的な違い

入力補完機能
bash:
- 基本的なタブ補完がある
- 複数候補がある場合は、タブを2回押すと一覧表示
zsh:
- 強力なコマンド補完(オプションやサブコマンドも自動補完)
- 候補をインタラクティブに選択可能(矢印キーで選べる)
設定ファイル
bash:
.bashrc
:対話型シェル用の設定.bash_profile
:ログイン時に読み込まれる設定
zsh:
.zshrc
:メインの設定ファイル.zprofile
、.zlogin
、.zshenv
など複数の設定ファイルがある
コマンド履歴
bash:
- 基本的な履歴機能あり(上矢印キーで呼び出し)
- 日時などのメタデータは保存されない
zsh:
- 共有履歴(複数のターミナルで履歴を共有)
- 重複除去機能(同じコマンドを一度だけ表示)
- 履歴検索が高機能(
Ctrl+R
での検索がより使いやすい)
oh-my-zshとは?
zsh
を強力にカスタマイズできるzsh専用フレームワークです。
oh-my-zshでできること
- テーマの適用(見た目がかっこよくなる)
- プラグイン導入(git連携、zコマンドなど)
- プロンプト表示の改善(現在のGitブランチ表示など)
- エイリアスの充実
インストール例(1行コマンド)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
どちらを選べばいい? 使い分けのポイント

bashがおすすめな場合
- Linuxの学習を始めたばかりの初心者
- シンプルさと互換性を重視する人
- シェルスクリプトを書く必要がある人(互換性)
- SSHで様々なサーバーに接続することが多い人
zshがおすすめな場合
- ターミナルを頻繁に使う開発者
- カスタマイズを楽しみたい人
- 生産性を上げたい人
- MacOSユーザー(既にデフォルト)
まとめ
bashとzshの違いまとめ
比較ポイント | bash | zsh(+oh-my-zsh) |
---|---|---|
初心者向き | ◎ | ◯(カスタマイズ好きなら◎) |
自動補完 | △ | ◎(オプション補完も充実) |
カスタマイズ性 | △ | ◎(テーマやプラグイン多数) |
標準サポート | Linux全般 | macOS標準、Linuxでも対応可能 |
スクリプト互換性 | ◎ | ○(ほぼ互換だが一部違い) |
学習曲線 | 緩やか | やや急(慣れるとかなり便利) |
どちらを使っても基本的なコマンドは同じですが、「どんな環境で」「どれだけ使うか」によって選ぶシェルは変わってきます。
- 迷ったらまずは bash(シンプルで広く使われている)
- ターミナルを快適にしたいなら zsh + oh-my-zsh(高機能でカスタマイズ性が高い)
あなたの使い方に合ったシェルを選んで、効率的なターミナルライフを楽しんでください!
最後に、どちらのシェルを使うにしても、基本的なコマンドラインの知識はほぼ共通です。
まずはコマンドの基本を覚えることに集中して、徐々にシェルの違いや特徴を探っていくとよいでしょう。
コメント