よく使うLinuxコマンド

grep - テキスト・文字列を操作するコマンド

指定した文字列がテキスト内の存在した場合、その行を抽出する

■よく使う形(例)

※apacheのアクセスログから、FireFoxでアクセスされたリストを出力する。

# grep Firefox /var/log/apache/access_log

 221.95.88.49 - - [11/Feb/2007:14:34:35 +0900] "GET / HTTP/1.1" 301 241 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"
 221.95.88.49 - - [11/Feb/2007:14:34:35 +0900] "GET /index.php HTTP/1.1" 200 14765 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"

※apacheのアクセスログから、LINUXというディレクトリ下にあるhtmlファイルをアクセスしたログを抽出する。

# grep '.*/LINUX/.*\.html' access_log

 61.197.192.138 - - [08/Feb/2007:09:55:39 +0900] "GET /LINUX/intro/check.html HTTP/1.1" 301 255 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)"
 61.197.192.138 - - [08/Feb/2007:10:05:29 +0900] "GET /LINUX/reference/vmstat.html HTTP/1.1" 301 255 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)"

※catコマンドと組み合わせて、apacheのアクセスログの件数(行数)を調べる。

# cat access_log | grep "" -c

1042949

sedコマンドとよく似た使い方(正規表現やオプション指定等)ができる。

■主なオプション

オプション 機能説明
-n 文字列(または文字列パターン)に合致した行と行番号を表示する。
-v 文字列(または文字列パターン)に合致しない行を表示する。
-i 大文字小文字の区別をしないで検索。
-f ファイルから検索パターンを読み込んで検索する。
※その他、オプションは多数ありますが、専門のコマンドリファレンスやmanコマンド等でご確認下さい。