パイプ

ここで、配管の話をするつもりはありません。Linux では、パイプによって 1 つのコマンドの標準出力を別のコマンドの標準入力に接続します。

ls コマンドの説明に戻ってみましょう。ls では数多くのオプションを利用することができますが、ディレクトリの内容をユーザが見るには、流れが早過ぎないでしょうか?

/etc ディレクトリの内容を表示しましょう。

ls -al /etc

どのような方法を使用すれば、出力が画面から走り抜けて行く前に、しっかりと見ることができるのでしょうか?

1 つの方法は、出力を less と呼ばれるユーティリティにパイプすることです。lessは、ページャの一種で (moreと同様)、一度に 1 ページ (または 1 つの画面) を参照することができます。

コマンドをパイプするには、垂直バー (|) を使用します ( Figure 15-15 を参照してください)。

ls -al /etc | less

一度に 1 つの画面分の内容を参照することができます。次の画面に移動するには、[Space] キーを押します。前の画面に移動するには [B] キーを押します。終了するには [Q] キーを押します。

起動メッセージの読み方: 起動メッセージをもっとしっかりと読みたいですか?シェルプロンプトで、[dmesg | less] と入力します。一度に 1 つの画面分の内容を読むことができます。前に進むには、[Space] キーを押し、終了するには [Q] キーを押します。

Figure 15-15. ls から less への出力のパイプ

実際には、パイプの機能について説明する前にパイプを使用しました。

以前に man ページについて触れたときに、以下のコマンドを man ページの印刷に使用しました。

man ls | col -b | lpr

ここでは、man ls の出力を col という名前のフィルタに送り、-b オプションによってプリンタ用にテキストをフォーマットし、その出力を lpr コマンドによってプリンタに送っています。

まとめ: パイプ処理により、1 つのコマンドの出力を別のコマンドの入力として送ることができます。例えば、ls -al /etc | more は、ls コマンドの出力を more ユーティリティとパイプすることで、より参照しやすくします。