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