[画像のクリックで拡大表示]

 ユーザーがキーボードからコマンドラインに入力したコマンドを解釈してその実行を制御するプログラムを,コマンド・インタプリタと言います。Shell(シェル)は,LinuxなどUNIX系OSで使われるコマンド・インタプリタです。

 シェルの役割は,ユーザーが入力したコマンドを解釈して,正しいコマンドであればそれを実行します。正しくないコマンドの場合はそのようにユーザーに知らせます(図1)。正しいコマンドの場合は,シェル自身が処理したり,コマンドを処理するプログラムを起動したりします。

 シェルには,上で述べた(1)ユーザーが入力したコマンドの解釈と実行を対話的に行うモードのほかに,(2)シェル・スクリプトと呼ばれるプログラムを非対話的に解釈して実行するモードがあります。

 伝統あるプログラムだけにシェルの種類はさまざまです。Bourneシェル(Bシェル)とCシェル(コマンド名は「csh」)に大別できます。ベル研究所が配布したUNIXの標準シェルがBシェル,BSD UNIXの標準シェルがCシェルだったこともあって,両シェルは併存したまま現在に至っています。

 Fedora CoreなどのLinuxディストリビューションでは,Bシェルの機能を拡張した「bash(Bourne Again Shell)」がデフォルト(初期設定)のシェルになっています。コマンド名「sh」は,bashへのシンボリック・リンクです。また,Cシェルの機能拡張版がtcshで,Fedora Coreではコマンド名「csh」はtcshへのシンボリック・リンクです。