togatttiのエンジニアメモ

過度な期待はしないでください.

検索全般で役立つコマンド【find , xargs , grep】

業務でサーバーのログを見る機会が今後ありそうなので、便利なコマンドをおさらいしとこうと思う。ログ解析に限らず、何かと検索系の小技は役に立つはず。

 

find

findはファイルやディレクトリを検索してくれて、パスを導いてくれる。-nameオプションを指定して、直接名前を打つだけ。この使い方を覚えておくだけで、捗ること間違いない。

以下はapache設定のhttpd.confを探すとき。

他にもワイルドカードを使うことで、拡張子を指定してファイルを探せたりする。オプションは色々あるから調べてみるといい。

 

xargs

xargsは標準入力で得た結果、例えばfindの検索結果などを引数として扱う。パイプとの連続技を行うときによく見る。以下の例はfindで探したindex.phpを引数として、ls -laで所有者、パーミッションを表示している。 

 

応用すれば、特定のファイルをまとめて、mvしたり、rmもできる。取り返しがつかないことになるかもなので、初心者は早まらない方がいい。

grep

grepはファイル内の文字列検索をかけることができる。また、正規表現で指定できたり、オプションを使えば行数を表示できるので便利。

hello.cgiからhogehogeがある行を検索。

実行中のhttpdプロセスを表示。

 

3つ紹介した。またこれら3つの合わせ技もできる。cgi拡張子ファイルの中で、hogehogeが記載されているものを取得する場合。

 

検索コマンド3つを紹介した。

 

参考