4.3. パイプとリダイレクト
4.3.1. 標準入出力
Linuxのコマンドは、標準入力、標準出力、標準エラー出力を処理するように作成されてる。 ストリームはデータの入出力に伴うデータの流れを指し、ディスプレイ出力、キーボード入力等すべてがこれに抽象化されている。
ストリームとしての基本的なインタフェースは以下の通り。
| 番号(ファイルディスクリプタ) | 入出力名 | デフォルト | 
|---|---|---|
| 0 | 標準入力 | キーボード | 
| 1 | 標準出力 | 画面(端末) | 
| 2 | 標準エラー出力 | 画面(端末) | 
4.3.2. パイプ
パイプ\|は標準出力を標準入力につなぐやつもののこと。
使用例は以下の通り。
ls | wc -l | 書式 | 説明 | 
|---|---|
| コマンド1 | コマンド2 | 
| コマンド1 2>&1 | コマンド2 | 
| コマンド1 | tee ファイル | 
teeコマンド
teeコマンドは標準入力から読み込んでファイルに書き込み、次のコマンドへ実行結果を引き渡せられるもの。 使用例は以下の通り。
オプション-aでファイルに追記する。
ls -l | tea data.txt4.3.3. リダイレクト
リダイレクトを使用することでコマンドの実行結果を画面上ではなくファイルに保存することが可能。
| リダイレクト | 説明 | 
|---|---|
| > | 出力のリダイレクト | 
| » | 出力をファイルに追記 | 
| < | 入力のリダイレクト | 
| « | 入力終端文字の指定 | 
| 2> | エラー出力をファイルに設定し、コマンドを実行 | 
| 2>&1 | 標準出力とエラー出力をファイルに設定し、コマンドを実行 | 
4.3.4. ヒアドキュメント
ヒアドキュメントは<<EOFで始まる特定の文字列(この例ではEOF)が現れるまで標準入力から入力を受け付けるもの。