シェルとは何か?

シェル(Shell)とは、ユーザーの入力(コマンド)を受け取り、OS(オペレーティングシステム)に伝えて実行するインタプリタ(翻訳・実行プログラム)です。

名前の由来は「殻(から)」で、OS の核(カーネル)を包む外側の層という意味です。

📌

ターミナルとシェルの違い:
ターミナルは「画面・入出力を担うアプリ」で、シェルは「コマンドを解釈・実行するプログラム」です。ターミナルを起動すると、その中でシェルが動いています。

主なシェルの種類

シェルにはいくつかの種類があり、それぞれ特徴が異なります。

シェル名特徴Mac での状況
bash長年 Linux/Mac の標準。多くのスクリプトで使われるmacOS Catalina (2019) まで標準
zshbash 互換でありつつ補完・テーマが強力macOS Catalina 以降の標準
fishユーザーフレンドリーな補完・シンタックス強調任意でインストール

Mac の標準シェル「zsh」

2019年の macOS Catalina から、Mac のデフォルトシェルは zsh(ズィーシェル)に変わりました。

zsh の主な特徴:

  • bash とほぼ同じコマンドが使える(互換性が高い)
  • 強力なタブ補完(コマンド・ファイル名・引数まで補完)
  • コマンド履歴の共有(複数のタブで履歴を共有)
  • プロンプトのカスタマイズが豊富

現在のシェルを確認する

% echo $SHELL
/bin/zsh

/bin/zsh と表示されれば zsh を使っています。/bin/bash なら bash です。

コマンドが実行される仕組み

ターミナルにコマンドを入力して Enter を押すと、次の流れで処理されます。

  1. ターミナルが入力を受け取る
  2. シェル(zsh)がコマンドを解析する
  3. シェルが PATH を検索してコマンドの実体(プログラムファイル)を探す
  4. 見つかったプログラムを OS が実行する
  5. 結果をターミナルに表示する
💡

which コマンド名 でコマンドの実体ファイルの場所を確認できます。例:which node/usr/local/bin/node

シェルの設定ファイル

シェルには設定ファイルがあり、起動時に自動で読み込まれます。

ファイル用途
~/.zshrczsh の設定(alias、関数、PATH など)
~/.bash_profilebash のログイン時設定
~/.bashrcbash の起動時設定

例えば Homebrew をインストールすると、自動で ~/.zshrc に PATH の設定が追記されます。

設定ファイルを反映させる

% source ~/.zshrc

設定ファイルを編集した後は source コマンドで変更を反映させます。ターミナルを再起動しても同じ効果があります。

環境変数とは

シェルには環境変数という、シェル全体で参照できる設定値を保存する仕組みがあります。

# 環境変数を確認する
% echo $HOME
/Users/username

% echo $PATH
/usr/local/bin:/usr/bin:/bin

# 環境変数を一覧表示する
% env

Claude Code の API キーも環境変数として設定します(ANTHROPIC_API_KEY)。

この記事のまとめ
  • シェルはコマンドを解釈・実行するプログラム(ターミナルとは別物)
  • Mac の標準シェルは zsh(macOS Catalina 以降)
  • bash と zsh は基本的なコマンドはほぼ同じ
  • 設定ファイル ~/.zshrc でシェルの動作をカスタマイズできる
  • 環境変数はシェル全体で参照できる設定値(API キーもここに保存)