Shell のコマンド実行回数を数える
Posted by yoosee on Debian at 2008-04-19 22:00 JST1 Shell History | Weboo! Returns.
このネタは定期的に出てくるけど、自分では書いたことが無かった気がするので試しに。awk の切り出しは extended history で保存している都合で、切り出しカラムを $2 から $4 に変えている。直近1000回。
% history-all|tail -1000|awk '{a[$4]++ } END{for(i in a){print a[i] " " i}}' |sort -rn|head 95 lv 59 ls 51 edic 50 ruby 48 cd 43 rm 40 mv 38 sudo 33 jdic 32 w3medic, jdic はそれぞれ dic コマンドを 英和・和英 で起動するための alias。
普段使っているzshでは 横着プログラミング 第3回: 履歴マニア にあるように過去の履歴をひたすら蓄積しているので、その約2万回分でカウント。
% history-all|awk '{a[$4]++ } END{for(i in a){print a[i] " " i}}' |sort -rn|head 1431 lv 1212 google 1062 sudo 960 ls 860 edic 694 w3m 688 cd 657 rm 614 mv 569 grepなんだかやけに sudo が多いような…。
ちなみに google と言うのはコマンドラインから w3m に google 検索パラメータを投げるだけのプログラム。
#!/usr/bin/perl my $arg = join("+", @ARGV); my $q=`echo $arg | nkf -w`; system("w3m \"http://www.google.com/search?lr=lang_ja&q=$q\"");コンソール上で生活していると、これが意外と便利。
自分も extended history で保存しているんですが, history -1000 でいけませんか?
w3m活用しているんですね。最後のスクリプト参考にさせてもらいます。
確かに history -1000 でも行けますね。history-all の方は history -E 1 にaliasされているので extended 形式での出力になったようです。2カラムの通常形式で全履歴を出力させるオプションはあるのかな。