I see from this history meme that a lot of people are still using prehistoric shells! Low numbers like 303 or even 24 total times for top execution? Now, my shell knows how to store data properly, so for example it doesn’t toss away your entire session if you don’t exit it cleanly, and has scaled so far with near-instant searches for a 20000+ history size.
My code:
import os,sys,sqlite3 c = sqlite3.connect(os.path.expanduser('~/.hotwire/state/history.sqlite')) cmds = map(lambda x: x[0].split(' ', 1)[0], c.execute('SELECT cmd FROM Commands')) stats = {} for cmd in cmds: count = stats.get(cmd, 0) stats[cmd] = count+1 cmds = stats.keys() cmds.sort(lambda a,b: cmp(stats[b],stats[a])) for cmd in cmds: print "%s: %s" % (cmd, stats[cmd])
Output:
cd: 2280 ls: 2003 ed: 1823 git: 1362 python: 1187 make: 817 svn: 751 sudo: 669 py: 543 cat: 442 rpm: 380 rm: 370 less: 366 cvs: 306