まず、|(パイプライン)について説明します。
|(パイプライン)は|(パイプライン)の前にあるコマンドを後へ渡す役割を持っています。
下記に具体的なコマンドを示して説明します。これは、catコマンドで読み込んだfileAの内容を|の後にあるgrepへ渡して、Microsoftというキーワードが含まれている行を表示するというコマンドになります。
このように|(パイプライン)は前のコマンドの出力結果を受け渡すことができ、複数のコマンドを組み合わせることができます。
次に<>(リダイレクト)について説明します。
Linuxでは特に指定がない場合、入力のことを「標準入力」、出力のことを「標準出力」といいます。標準入力とはLinuxの端末画面へ入力したコマンドや引数のことで、標準出力とは端末画面へ表示されるプログラムの出力結果のことです。また、エラーが発生した場合は「標準エラー出力」といいます。下記に標準入出力についてまとめた表を示します。
これら標準入力や出力の操作を行うのが<>(リダイレクト)という要素です。
下記にコマンドの具体例を示します。
ls -l > filelist
このコマンドは、ls -lコマンドの出力結果を「filelist」という名前をつけて保存します。通常であれば端末画面へ標準出力が表示されるのですが、出力先を<>(リダイレクト)によって変更することでファイル出力することも可能です。
次に示す例は、標準入力と標準出力を変更した場合になります。
grep "Azure" < Microsoft.txt > result.txt
これは、grepコマンドの入力として「Microsoft.txt」が使用され、その標準出力の結果を「result.txt」として保存するコマンドとなります。先ほどのコマンドでは標準出力のみ変更しましたが、このように標準入力も<>(リダイレクト)によって変更することができます。
コマンド実行時にエラーが発生することがあります。そのエラーメッセージを保存しておきたい場合にも<>(リダイレクト)は使えます。
例えば下記のような書式でコマンドを入力すると、保存できます。
エラーが発生したコマンド 2> ファイル名
今回は出力結果の操作を行うコマンド、|(パイプライン)と<>(リダイレクト)について説明しました。
どちらもよく使用されている要素なので、現場でも使えるようにしっかり勉強しようと思います。
参考URL・書籍
・LPICレベル1 Version4.0対応