シェル
出典: Wikipedio
|
プライバシー・ポリシー Wikipedioについて 免責事項
シェル (shell) はオペレーティングシステム (OS) の機能の一部であり、ユーザーからの指示を受けて解釈し、プログラムの起動や制御などを行うプログラムである。
目次 |
概要
シェル(殻)という名称は、OSの機能を実装している中心核部分(カーネル)の外層として動作することからきている。通常、シェルはコマンドラインインタフェース (CUI) を持つが、グラフィカルユーザインタフェース (GUI) を持つものは特にグラフィカル・シェルと呼ぶ。
シェルはUNIXで使用される呼称であり、より一般的にはコマンドインタプリタと呼ぶ。しかしUNIXの普及やMS-DOSなど他のOSでも使用されたことにより現在では一般的な名称となっている。ただし通常「シェル」と言った場合はPOSIX系のオペレーティングシステムにおけるシェルを指すことが多い。一方「コマンドインタプリタ」の名称で呼ばれる場合は単に「コマンドを解釈する者」の意であり、OSのユーザインタフェースとしての意味合いは失われていることが多い。
UNIXライクなオペレーティングシステムではシェルがユーザプログラムとして実装されており、また好きなシェルを差し替えて使用することができ、このことはUNIX発表当時においてはUNIXの特徴の一つとなっていた。
シェルの機能
一般的なシェルの機能は以下のとおり(すべてのシェルが装備しているわけではない)。
- プログラム名(プログラム出力)を指定してアプリケーションを起動する。
- プログラムを終了する、フォアグラウンド・バックグラウンドを切り替える(ジョブコントロール)。
- プログラムの出力をファイルに出力する(リダイレクト)、他のプログラムの入力とする(パイプ)。
- プログラムの動作環境の設定に使用する環境変数、シェル変数の設定・参照。
- 入力コマンドライン中の特別な記法で指定した部分をファイル名としてパターンマッチさせて展開する機能(ワイルドカードの展開)。
- 入力履歴を呼び出す(コマンド入力ヒストリ)。
- コマンドに別名をつける(エイリアス)。
- 繰り返しコマンドを実行したり、条件に応じて実行させたりするための制御構造。
- 入力時のファイル名などの補完機能
- まとまった一連の入力をシェルスクリプトとして実行する。バッチ処理とも呼ばれる。
シェルスクリプト
シェルの特徴は、コマンドラインの指示のための変数や制御構造を持っており、ある種のプログラミング言語と呼べる。たとえば、複数のファイルに対する処理をBourne Shellでは以下のように記述できる。
このシェルスクリプトはカレントディレクトリー上の.txtというサフィックスを持つファイルのバックアップを作る。
<source lang="bash">
- !/bin/sh
for file in *.txt do
cp "$file" "$file.bak"
done </source>
このような処理はコマンドラインとして入力することもできるが、ファイルに保存してシェルスクリプトとして実行することができる。
UNIX/Linuxにおけるシェル
- sh系
- Bourne Shell(sh)
- Korn Shell(ksh)
- Standalone Shell(sash)
- Bourne Again Shell(bash) ※Linuxの標準シェル
- Z Shell(zsh)
- Almquist Shell(ash)
- csh系
- C Shell(csh) ※BSD及びBSDの子孫 (FreeBSD 4.1-RELEASE以降を除く) の標準シェル
- TENEX C Shell(tcsh) ※FreeBSD 4.1-RELEASE以降の標準シェル
- グラフィカルシェル
- その他
- Friendly interactive shell(fish)
- Restricted Shell(rsh)
- Scheme Shell(scsh)
DOS/Windows環境のシェル
- コマンドラインシェル
- COMMAND.COM
- cmd.exe
- Windows PowerShell
- NYAOS
- dosshell
- KI-Shell
- Services for UNIX導入により使えるシェル
- Korn Shell (ksh)
- TENEX C Shell (tcsh)
- グラフィカルシェル
Mac OSのシェル
- グラフィカルシェル
関連項目
外部リンク
da:Unix-skal de:Unix-Shell en:Unix shell es:Shell de UNIX fr:Shell Unix hu:Unix rendszerhéj ko:유닉스 셸 nn:Unix-skal no:Unix-skall ru:Командная оболочка UNIX th:เชลล์ยูนิกซ์ uk:Командна оболонка Unix zh:Unix shell