Shell のコマンド実行回数を数える
Posted by yoosee on Debian at 2008-04-19 22:00 JST
1
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カラムの通常形式で全履歴を出力させるオプションはあるのかな。