今日のコマンド@パイプ
予想通り?今日はパイプについてです。。
リダイレクションがコマンドの標準出力の内容を
指定したファイルに書き込むのに対し、パイプは
標準出力を別のコマンドで再処理するための
つなぎの役目を果たします。
$ cat /var/log/maillog
上記を実行するとものすごい量のメールログの
最後の部分が1ページ分(画面に収まる分)が表示されます。
頭の方を見ようとするとスクロールしなくてはいけません。
そこで | (パイプ)を使って頭から表示させてみます。
頭の10行だけなら
$ cat /var/log/maillog | head
ですが、順番に全部見たい場合は less を
使います。
lessコマンドはページャーコマンドと呼ばれ
画面上で1ページずつ進ませて表示できます。
$ cat /var/log/maillog | less
最初の1ページが表示されるの次のページに
進みたいときはスペースキー、前に戻りたい
ときはBキーを押下します。
Enterをタイプすると1行ずつ進みます。
終了したいときはQキーです。
このようにパイプはメールログの標準出力を
1ページずつ表示するためにlessコマンドに
渡しているのです。
oba-q.comのメールサーバーから送ったメールが
届かなかった時の調査で、oba-q.comと記載のある
行だけを表示したいときは
$ cat /var/log/maillog | grep oba-q.com
とします。
更にメールログでは正常に送信された時はstatus=sent、
なにかの理由で送信されなかった時はstatus=deferred
という項目が記載されます。
ですから
$ cat /var/log/maillog | grep oba-q.com | grep status=deferred
とすれば送れなかった部分が表示されます。
送った日付や時間でもフィルタがかけられます。
このようにパイプを重ね複数の処理が可能です。
どぉでもよい?ノウハウ
$ cat /var/log/maillog | grep oba-q.com
でなくとも
$ cat /var/log/maillog|grep oba-q.com
でも大丈夫です。
スペースキー2回分お得です。(笑
ワイルドカード・リダイレクション、そして
パイプを操れるようになるともうビギナーから
卒業でしょう。
最近のコメント