13.10. パイプとページャ

Linuxでは、パイプによってあるコマンドの標準出力を別のコマンドの 標準入力に接続することができます。

以前に紹介している lsを考えてみましょう。 lsに多くの使用可能なオプションがあります。しかし ディレクトリの内容が速くスクロールしてそれを確認できない場合は どうしたら良いでしょうか。

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

ls -al /etc

どうすれば、出力が画面から走り去って行く前に、確実に見ることが できるのでしょうか。

1つの方法は、標準出力をlessと呼ばれる ユーティリティにパイプします。lessユーティリティは、 1度に1ページ(または1画面)ずつ情報を表示することができます。

コマンドをパイプするには、縦棒の(|)を 使用します。

ls -al /etc | less

これで、/etcの内容を一度に一画面ずつ 表示できます。画面を前進するには [Space]キーを押して、 画面を戻るには、[B]キーを押し、終了するには、 [Q]キー押します。別の方法として、矢印キーを使用して less内で移動することができます。

テキストファイルの標準出力を検索するには、less 使って[/]を押し、ファイル内で検索したい キーワードをタイプします。例えば、

/Linux

ティップヒント
 

起動メッセージを正確に読み取りたい場合は、シェルプロンプト でdmesg | lessとタイプします。そうすると ファイルを1ページずつ読み取ることができます。矢印キーを使用して ファイル内を移動します。標準出力をさがすには、[/]を 押して検索する単語をタイプします。

パイプはファイルのある特定の行だけを書き出すのに使用する こともできます。次のようにタイプします。

grep coffee sneakers.txt | lpr

これを使用すると、sneakers.txtファイル の中の「coffee」と言う字がある行をすべて書き出します( grep についての詳細情報は 項13.11.3をお読み下さい)。

13.10.1. moreコマンド

morelessの主な相違は、 lessでは矢印キーを使用して前進や後退をするのに 対してmoreでは[スペース]キーと [B]キーで前進と後進をします。

/etcのディレクトリの内容を ls moreを使用して、表示してみましょう。

ls -al /etc | more

図 13-10. lsの出力を moreにパイプ

テキストファイルの出力を検索するには、more を使用して、[/]を押し、ファイル内で検索したい キーワードをタイプします。例えば、

/foo

[Spacebar] を使用してページを前進します。 終了するには、[q]を押します。