コマンドの実行
- シェル(shell)
入力されたコマンドを解釈し、実行を依頼するプログラムをshellと呼んでいる。ログインすると、予め決められたshellが呼び出され、作業が開始される。
shellへファイルからコマンド群を読み込ませることにより一連の作業を行なわせることもできる。
shellはコマンド・インタープリタであり、プログラム機能を有しており、コマンド群をプログラムとして shellへ与えることもできる。(shell programming参照)
- コマンド(command)
コマンドには shell command と通常の command がある。
shell command は shellが直接に実行するコマンドである。
多数のコマンドはそれ以外のコマンドであり、ファイルシステム内にファイルとして置かれている。このとき、ファイル名がそのままコマンド名となっている。
- どのファイルを実行するか
それが shell command でなければ、シェル変数 path に記述されているディレクトリを順に検索し、最初に見つかったファイルを実行する。
(環境変数を参照のこと)
- どのファイルが実行されるかを調べるコマンド
と入力すると、コマンド command に対して、どのファイルを実行することになるかが表示される。
- 例:
コマンド date を入力すると、shell は決められたルールに従い、ファイル date を捜し出し、オペレーティング・システムに実行を依頼する。
ファイル date 内には、現在の日時を取得する方法と、それを表示する方法が記述されており、 date とコマンドを入力することにより、現在の日付と時刻が表示される。
- 入出力先の変更 (redirection)
コマンドやプログラムの実行時に通常のデータなどの入力はキーボードから行なわれる。また、出力は画面に書き出される。
また、エラーがあるとメッセージが画面に書き出される。
このような入出力を標準入力、標準出力、エラー出力と呼んでいる。
このような入出力の先をファイルに割り当てる方法を以下に述べる。
-
標準入力の変更
とすることで、キーボードの変わりに、file からデータを入力することができる。
は file へ出力を書き出す。また、
command < file1 > file2
とすると、標準入出力として、file1 からの入力と、file2 への出力を指示することになる。
- パイプ
あるコマンドの出力を次のコマンドの入力とする機能をパイプと呼ぶ。
とコマンドを'|'で区切って並べると、commad1 の出力を command2 が入力として受け取ることになる。3つ以上のコマンドをパイプでつなぐこともできる。
| command < file |
fileからデータを読み込む |
| command > file |
fileへ書き出す |
| command >> file |
fileへ追加出力(書き足す) |
| command >& file |
標準出力とエラー出力をファイルへ書き出す |
| command >>& file |
標準出力とエラー出力をファイルへ書き足す |
| command1 | command2 |
command1 の標準出力を command2 の標準入力へ |