Linuxでよく使うコマンドをマイニング

何となく気になったので調べてみた。zshの設定で履歴は無限に取るようにしてるので、いまの履歴は

$ wc -l ~/.zsh_history
51699 /home/gorou/.zsh_history

と51699行。そこでワンライナーを書いて1〜30位までのよく使ったコマンドとそのトータルカウントをとってみた。本当はパイプでよく使うコマンドがあるからもうちょっと違うんだけど、まぁこんな感じで。

$ cat ~/.zsh_history|awk '{print $1}'|ruby -e "h = Hash.new(0);while s = gets;h[s.chomp] += 1;end;a = h.to_a.sort_by{|i| i[1]}.reverse;puts a[0..29].map{|i| i.join(': ')}.join(%Q[\n]);puts('total-count:: ' + a[0..29].map{|i|i[1]}.inject{|r,i| r+i}.to_s)"
cd: 9497
ls: 8325
vi: 4974
s: 2260
less: 2240
clear: 1515
svn: 1415
ll: 1229
rm: 1125
ruby: 949
findgrep: 750
mv: 739
cp: 698
wget: 628
./script/server: 551
exit: 511
cat: 429
w3m: 404
ps: 378
lv: 373
tar: 355
man: 345
chmod: 337
mkdir: 332
tail: 315
top: 299
irb: 284
sudo: 270
ln: 236
apt-cache: 234
total-count:: 41997

ワンライナーが汚いのはご愛敬で。結構あんがい思った通りの順番だなぁ。上位のsってのはsudoのalias、cleanってのはalias clear='echo -n '\''\033(B\033[H\033[J'\'で画面すっきりコマンド。./script/serverが案外上に入ってたのは驚いた。

んで上位30コマンドで80%をしめるのね。結構な割合だー。