シェルとは?
シェルは、ユーザーとオペレーティング システム (OS) カーネル間のインターフェイスを提供するプログラムです。 OS は、ユーザーがログインするか、ターミナルまたはコンソール ウィンドウを開くと、各ユーザーのシェルを開始します。
カーネルは次のようなプログラムです:
- すべてのコンピュータ操作を制御します。
- すべての実行ユーティリティを調整します
- 実行中のユーティリティが互いに干渉したり、すべてのシステム リソースを消費したりしないようにする
- すべてのシステム プロセスをスケジュールおよび管理する
シェルは、カーネルとインターフェースすることにより、ユーザーがユーティリティとプログラムを実行する方法を提供します。
ユーザー環境
シェルは、初期化ファイルを使用してカスタマイズできるユーザー環境も提供します。これらのファイルには、次のようなユーザー環境特性の設定が含まれています。
- コマンドを見つけるためのパスを検索します。
- 新しいファイルに対するデフォルトの権限
- 他のプログラムが使用する変数の値
- カスタマイズできる値
さまざまなシェルとは?
次のセクションでは、主に UNIX/Linux オペレーティング システムで使用可能な OS シェルについて説明します。シェルの機能とそのデフォルト プロンプトについても説明します。
1.ボーンシェル
AT&T Bell Labs の Steve Bourne によって作成された Bourne シェル (sh) は、オリジナルの UNIX シェルです。そのコンパクトさと速度から、シェル プログラミングに適したシェルです。 Bourne シェルの欠点は、以前のコマンド (履歴) を呼び出す機能など、対話的に使用するための機能がないことです。 Bourne シェルには組み込みの算術式と論理式の処理もありません。
Bourne シェルは、Solaris OS のデフォルトのシェルです。これは、Solaris システム管理スクリプトの標準シェルです。 Bourne シェルの場合:
- コマンドのフルパス名は /bin/sh です および /sbin/sh .
- root 以外のユーザーのデフォルト プロンプトは $ です .
- root ユーザーのデフォルト プロンプトは # です .
2. Cシェル
C シェル (csh):
- Bill Joy によって書かれた UNIX 拡張機能です。 カリフォルニア大学バークレー校
- エイリアスなどのインタラクティブな使用のための組み込み機能 とコマンド履歴 .
- 組み込み演算などの便利なプログラミング機能が含まれています C に似た式の構文 .
C シェルの場合:
- コマンドのフルパス名は /bin/csh です .
- root 以外のユーザーのデフォルト プロンプトはホスト名 % です .
- root ユーザーのデフォルト プロンプトはホスト名 # です .
3.コーンシェル
Korn シェル (ksh):
- David Korn によって書かれました AT&T ベル研究所で
- Bourne シェルのスーパーセットです。
- Bourne シェルのすべてをサポートします。
- C シェルに匹敵するインタラクティブな機能を備えています。
- 組み込み演算などの便利なプログラミング機能が含まれています および C ライクな配列 、関数 、および文字列操作機能 .
- C シェルよりも高速です。
- Bourne シェル用に作成されたスクリプトを実行します。
Korn シェルの場合:
- コマンドのフルパス名は /bin/ksh です .
- root 以外のユーザーのデフォルト プロンプトは $ です .
- root ユーザーのデフォルト プロンプトは # です .
4. GNU Bourne-Again シェル
GNU Bourne-Again シェル (bash):
- Bourne シェルと互換性があります。
- Korn および C シェルの便利な機能を組み込みます。
- コマンドの呼び出しと編集のために自動的にマッピングされる矢印キーがあります。
GNU Bourne-Again シェルの場合:
- コマンドのフルパス名は /bin/bash です .
- root 以外のユーザーのデフォルトのプロンプトは bash-x.xx$ です . (x.xx はシェルのバージョン番号を示します。例:bash-3.50$)
- root ユーザーのデフォルト プロンプトは bash-x.xx# です . (x.xx はシェルのバージョン番号を示します。例:bash-3.50$#)
以下は、4 つのシェルすべてとその特性の簡単な比較です。
シェル | パス | デフォルトのプロンプト (root 以外のユーザー) | デフォルト プロンプト (ルート ユーザー) |
---|---|---|---|
ボーン シェル (sh) | /bin/sh および /sbin/sh | $ | # |
C シェル (csh) | /bin/csh | % | # |
コーンシェル (ksh) | /bin/ksh | $ | # |
GNU Bourne-Again シェル (Bash) | /bin/bash | bash-x.xx$ | bash-x.xx# |