Linux講座にようこそ。このページは「Linuxの使い方 - 第2章 シェルの基本機能」です。

Linuxの使い方

2. シェルの基本機能(1/2)

2.1 概要

シェルとカーネル
【図2-1】シェルとカーネル
複数のシェルが同時に存在できますし、異なるシェルの混在も可能です

UNIX系OSの大きな特徴として、シェルと呼ばれるユーザー・インターフェースがあります。シェルの基本機能はキーボードから入力されたコマンドを受け取り、それを解析し、カーネルの機能を使って実行することです。このような機能はどのOSにもありますが、UNIXシェルの特徴はカーネルから独立している点にあります。

カーネルからシェルを見た場合、1つのアプリケーションプログラムとなります。このことにより、複数のシェルが同時に存在できますし、さらに異なるシェルの混在もできます。

シェルは表2-1に示すように多くの種類がありますので、使用者の好みのシェルを選んで使用できます。なお、Linuxディストリビューションの多くは標準シェルとしてBashを採用しています。

【表2-1】シェル一覧(代表的なもの)
名称説明
Bシェル
(Bourneシェル)
Steven Bourne氏が開発したシェルで、UNIXの標準的なシェルとなっています。
CシェルBill Joy氏が開発したシェルで、Bシェルよりも高機能でジョブ制御やエイリアス等の機能を持っています。名前の由来はBシェルの次に作られたからとか、文法がC言語に似ているからとか云われています。
Kシェル
(Kornシェル)
David Korn氏が開発したシェルで、IEEE1003.2 POSIXシェル標準への準拠が強化されています。Kシェルは商用プロダクトです。
Bash
(Bourne Again Shell)
GNUシステム用の標準シェルとしてBrian Fox氏やChet Ramey氏が開発したシェルで、機能的にはKシェルとよく似ていますがBashはオープンソースです。

このように、いくつかのシェルがあり機能も異なりますが、UNIXシェルの特徴である、次の基本的な機能は上記の全てのシェルが持っています。

  • 入出力先を簡単に切替えることができるリダイレクション機能
  • 複数のコマンドを接続し連続的に実行するパイプライン機能
  • 予めファイルにコマンドを記述しておき、ファイル名を指定することでコマンドを実行するシェルスクリプト

UNIX系OSのコマンドはコマンド・ファイル(1つのコマンドが1つのコマンド・ファイルに対応)として存在しているものと、シェル組み込みの2種類があります。

コマンド・ファイルは/bin/や/usr/bin/等の複数の場所(ディレクトリ)に用意されており、コマンド実行時にシェルが探し出して実行します。一方、シェル組み込みのコマンドはシェル機能の一部として実装されています。

通常、このことは意識する必要はありませんが、manコマンドでコマンドの仕様を調べるときに、シェル組み込みのコマンドはシェルの名前を指定することになります。例えば、後程説明するcdやpwdコマンドを調べる場合は、次のようになります。

$ man bash ← シェルがBashの場合

この講座ではLinuxの標準シェルであるBashの説明を行います。そして、ここでは上記特徴のうち、リダイレクションとパイプラインとその他の説明を行い、シェルスクリプトに付いては別途行います。