【まとめ】unix便利コマンド

・ある特定ディレクトリ配下のディスク容量を食っているランキング


(例)/data ディレクトリの容量食ってるランキング10

du /data|sort -nr|head -n 10

・grep結果の最初の数行を出力

(例)アクセスログでBiduspiderからのアクセス10件
cat access.log | grep -i Baiduspider | head -10

・再帰grep

(例1)文字列"xxx"が入ったC言語ソースをカレントディレクトリ配下全部探す
find . -name "*.c" | xargs grep xxx
find . -name "*.c" -exec grep xxx {} \;
(例2)文字列"yyy"が入ったcsvファイル行をカレントディレクトリ配下全部探す。
  ただしcsvファイルはgzip圧縮されているかもしれない
find . -name "*.csv.gz"-or -name "*.csv" | xargs zgrep yyy

・出現回数降順ソートによるランキング

(例1)IPアドレスの出現回数ランキング10(IPアドレスはアクセスログの1番目の項目とする)
cat access.log | awk '{print $1;}' | sort | uniq -c | sort -nr
(例2)圧縮された 〃
zcat access.log.gz | awk '{print $1;}' | sort | uniq -c | sort -nr

・awkによる集計関連

(例1)アクセスログ最後尾のレスポンスタイムから平均レスポンスタイムを求める
zcat access.log | awk '{print $NF}' | awk 'BEGIN {total=0} {total += $1} END {print total/NR}'
(例2)アクセスログのレスポンスコード500台の数を集計する
zgrep -o "1\" 50[0-4] " accesslog.gz | awk '{sum[$2]+=1};END{for(key in sum) {print key, sum[key]}}'



・BASIC認証を乗り越えてHTTPダウンロードする

(例)BASIC認証(ユーザ名:usr、パスワード:pass )のかかったサイトからxmlファイルを取得するwget -O --http-user=usr --http-passwd=pass http://hogehoge.jp/feed.xml

(例)BASIC認証(ユーザ名:usr、パスワード:pass )のかかったサイトのHTMLを取得する
curl --user usr:pass "http://hogehoge.jp/"

・vimの自動改行を抑制

:set tw=0
:set textwidth=0

・vi(vim)の文字コード変更

(例1)shift-jisで表示
:e ++enc=shift-jis
(例2)cp932で表示
:e ++enc=cp932
(例3)utf-8で表示
:e ++enc=utf8
(例4)eucで表示
:e ++enc=euc-jp
(例5)ファイルを開くときに最初から文字コードを指定する
vi -c ":e ++enc=utf8" feed.xml