Bシェル(Bourne Shell)とは、UNIX系OSで使われるシェル(コマンドを受け付けてOSに伝えるプログラム)の元祖にあたるものです。1979年にAT&Tベル研究所のスティーブン・ボーン氏が開発したことから、その名字をとって「Bourne Shell」と呼ばれ、コマンドはshで実行します。
現実世界でいえば、シェルはレストランのホール係のような存在です。客(利用者)の注文を聞き取り、厨房(OSの中核部分)へ正確に伝え、出来上がった料理を運んでくる。Bシェルはその最初期に確立された「接客マニュアル」であり、以降のシェルはすべてこのやり方を土台に発展しました。
Bシェルの役割と特徴
シェルの仕事は、入力された文字列を解釈してプログラムを起動し、結果を返すことです。Bシェルは対話的な操作だけでなく、一連の処理を書き並べて自動実行する「シェルスクリプト」の実行環境としても設計されました。主な特徴は次のとおりです。
- 制御構文を備える:if文やfor文、while文、case文を使い、条件分岐や繰り返しを記述できます。
- リダイレクトとパイプ:コマンドの出力をファイルへ流したり(>)、別のコマンドの入力へ渡したり(|)できます。
- 変数と環境変数:値を名前に入れて使い回し、他のプログラムへ引き渡せます。
- 軽量で高速:機能を絞っているため動作が軽く、システムの起動処理にも適しています。
一方、コマンド履歴の呼び出しやエイリアス(別名定義)といった対話操作を快適にする機能は備えておらず、日常の作業用としては後発のシェルに置き換えられていきました。
主なシェルの系統
シェルは大きくBシェル系とCシェル系に分かれ、現在使われているものの多くはBシェル系の子孫です。
| シェル | 系統 | 特徴 |
|---|---|---|
| sh(Bシェル) | Bシェル系 | すべての原型。機能は最小限だが軽量で互換性が高い。 |
| bash | Bシェル系 | Bシェルを拡張したGNU版。Linuxの標準として最も普及。 |
| zsh | Bシェル系 | 補完機能が強力。近年のmacOSの既定シェル。 |
| csh / tcsh | Cシェル系 | C言語風の文法を採用。対話機能を先行して取り入れた。 |
bashという名前は「Bourne-Again SHell(生まれ変わったボーンシェル)」に由来し、名称からもBシェルの後継であることが示されています。
今もBシェルが重要な理由
普段の操作でBシェルを直接使う機会は減りましたが、その存在感は今も大きいままです。理由は移植性の高さにあります。bash特有の書き方を避けてBシェルの範囲だけで書いたスクリプトは、UNIX系であればほぼどの環境でもそのまま動くためです。
スクリプトの1行目に#!/bin/shと書けば「Bシェルの文法で動かす」という宣言になり、サーバーの起動スクリプトや配布用のインストーラーなど、環境を選ばない確実さが求められる場面で今も選ばれています。なお、多くのLinuxでは/bin/shの実体がdashやbashへのリンクになっており、Bシェル互換モードで動作します。

コメント