4.3. パイプとリダイレクト

4.3. パイプとリダイレクト

4.3.1. 標準入出力

Linuxのコマンドは、標準入力、標準出力、標準エラー出力を処理するように作成されてる。 ストリームはデータの入出力に伴うデータの流れを指し、ディスプレイ出力、キーボード入力等すべてがこれに抽象化されている。

ストリームとしての基本的なインタフェースは以下の通り。

番号(ファイルディスクリプタ)入出力名デフォルト
0標準入力キーボード
1標準出力画面(端末)
2標準エラー出力画面(端末)

4.3.2. パイプ

パイプ\|標準出力を標準入力につなぐやつもののこと。 使用例は以下の通り。

ls | wc -l 
書式説明
コマンド1コマンド2
コマンド1 2>&1コマンド2
コマンド1tee ファイル

teeコマンド

teeコマンドは標準入力から読み込んでファイルに書き込み、次のコマンドへ実行結果を引き渡せられるもの。 使用例は以下の通り。

オプション-aでファイルに追記する。

ls -l | tea data.txt

4.3.3. リダイレクト

リダイレクトを使用することでコマンドの実行結果を画面上ではなくファイルに保存することが可能。

リダイレクト説明
>出力のリダイレクト
»出力をファイルに追記
<入力のリダイレクト
«入力終端文字の指定
2>エラー出力をファイルに設定し、コマンドを実行
2>&1標準出力とエラー出力をファイルに設定し、コマンドを実行

4.3.4. ヒアドキュメント

ヒアドキュメントは<<EOFで始まる特定の文字列(この例ではEOF)が現れるまで標準入力から入力を受け付けるもの。