チップス

シェルは Linux とユーザとの対話を受け持つプログラム


シェル (shell) はオペレーティングシステム (OS) の機能の一部であり、ユーザーからの指示を受けて解釈し、プログラムの起動や制御などを行うプログラムのことです。

シェルの概要 (wikipediaから)

シェル(殻)という名称は、OSの機能を実装している中心核部分(カーネル)の外層として動作することからきている。通常、シェルはコマンドラインインタフェース (CUI) を持つが、グラフィカルユーザインタフェース (GUI) を持つものは特にグラフィカル・シェルと呼ぶ。

シェルはUNIXで使用される呼称であり、より一般的にはコマンドインタプリタと呼ぶ。しかしUNIXの普及やMS-DOSなど他のOSでも使用されたことにより現在では一般的な名称となっている。ただし通常「シェル」と言った場合はPOSIX系のオペレーティングシステムにおけるシェルを指すことが多い。一方「コマンドインタプリタ」の名称で呼ばれる場合は単に「コマンドを解釈する者」の意であり、OSのユーザインタフェースとしての意味合いは失われていることが多い。

UNIXライクなオペレーティングシステムではシェルがユーザプログラムとして実装されており、また好きなシェルを差し替えて使用することができ、このことはUNIX発表当時においてはUNIXの特徴の一つとなっていた。

いろいろなシェル

シェル (殻) とは変わった呼び方ですが、UNIX/Linux の一番外側をくるむというイメージから付いたといわれています。ユーザが入力した文字列をコマンドとして実効するのもシェルの仕事の一部です。UNIX/Linux のシェルは sh系の Bourne Shell(sh)、Korn Shell、Standalone Shell(ksh)、Boune Again Shell(bsash Linux標準シェル)、Z Shell(zsh)や csh系の C Shell(csh)、TENEX C Shell(tcsh FreeBSDの標準シェル)、グラフィカルシェルの Nautilus (GNOME標準)、Konqueror (KDE標準)など種類が多く存在します。

sh (Bourne シェル)
 UNIX普及の最初期から存在したシェル。対話的な機能が貧弱なため、現在では対話的に使われることはあまりありません。ただ、バッチ機能は強力で現在でもシェルスクリプトを記述するために広く使われています。

csh (C シェル)
 BSD に期限をモツ対話機能重視型のシェルで、代替シェルの草分けです。上位互換の tcsh が現れたため、このシェルを使う人は減っています。

ksh (Korn シェル)
 Bourne シェル上位互換のシェル。csh 風のジョブコントロールを取り入れるなど各種の機能強化が図られています。得にコマンドライン編集機能が便利です。

bash (Bourne Again シェル)
 GNU のシェル。Bourne シェルをベースに csh や ksh の機能を取り入れ、コマンドライン編集屋履歴検索機能などの拡張がされています。

tch
 csh を基本に、コマンドライン編集、強力な補完とスペル補正、ビジュアルな履歴検索などの機能拡張が行われている。csh に代わって広く使われています。

zsh (Z シェル)
 bash、ksh、tcsh からそれぞれの便利な機能を取り入れ、さらに独自の機能を加えた超高機能シェル。構文の基本は sh ですが、csh 構文の一部と独自の構文を加えて機能強化を図っています。対話利用の為の機能も非常に強力で、より正規表現に近い便利なファイル名パターン、簡単に定義してコマンドラインからも利用できる関数、補完候補の制御のほか、複数行に渡るコマンドラインの編集も極めて容易になっています。

現在使用されているシェルを知る

$ echo $SHELL
/bin/bash

使用可能なシェルを知る時は /etc/shells ファイルを見る

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash

参考URL 感謝です。

業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎


   チップス