Bシェル(Bourne Shell)

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シェル互換モードで動作します。

あわせて知っておきたい用語

  • シェル
    利用者の入力を解釈してOSに橋渡しするプログラムの総称です。Bシェルはその原型にあたります。
  • bash
    Bシェルを大幅に拡張した後継のシェルです。Linuxで標準的に使われています。
  • シェルスクリプト
    コマンドを並べて自動実行させるファイルのことです。定型作業の自動化に使われます。
  • UNIX
    Bシェルが生まれたOSです。LinuxやmacOSの源流にあたります。

コメント

タイトルとURLをコピーしました