パイプの使い方

最近、過去の雑誌を整理し、内容の復習を兼ねていろいろと
実行してみました
今回は、基本に立ち返り
パイプの使い方です
参考にした雑誌は、日経Linux 2008-9
です

パイプを使うことで、過去のログなどを効率的にみることができます
とくに、一番使うのが history コマンドと grep コマンドの組み合わせを
よく使います
使い方は
$ histroy | grep ssh

サーバー構築の続きを行うときに使います
今回は、3つの機能をパイプでつなげて見ました
$cat -n /etc/services | head -n 50 | tail -n 10
とします
これは、最初に
cat -n を使ってファイルに番号を振り分け
次に
head -n 50
で、先頭から50文字のみ表示にして
最後に
tail -n 10
で最後から10行だけ表示
という使い方になります
サーバーのファイル設定を失敗してしまい、
エラーメッセージがでたときなどに、こういう組み合わせを
使い、その箇所だけをみるということもできます
例えば、
300行~400行にエラーとなったときに、
$cat -n /etc/httpd/conf/httpd.conf | head -n 400 | tail -n 400
とすると、その場所を表示できます
また、シェルスクリプトでよくある記述としては
2>&1
というものがありますが、
これは標準出力と、標準エラー出力先を同じにするという意味になります
2は、標準エラー出力
1は、標準出力

という意味になります
よく使われるのは、行き先を /dev/null
と設定する方法です
/dev/null にすると。そのデータを破棄します
これを使った例がありました
$ find /usr/ -name “*.txt” 2>&1 > /dev/null | cat -n
もっとも、これを一般ユーザで実行しても、権限がないので
閲覧はできません
この動きを解説すると
最初に
find コマンドで /usr/ の中から .txt の拡張子のファイルを見つけます
次に、
標準出力のデータを /dev/null で破棄
そして標準エラー出力のデータに番号をつけて表示
という処理になります
パイプを使うと、grep コマンドで探すときに
さらに詳しく検索も可能になります
grep コマンドの使い方は
grep 探したい文字 ファイルパス
という使い方をします
$ grep www /etc/service
とすると、www を含む行を、/etc/service
の中から探します
これを
$ grep www /etc/service | grep tcp
とすれば
www と tcp を含む行を表示するようになります

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です