If that doesn't work for you, this might:
history 1 | awk '{print $2}' | awk 'BEGIN {FS="|"}{print $1}' | sort | uniq -c | sort -n | tail | sort -nr
What that doesn't give you is the command tree, for example "git commit" vs "git checkout". It just does "git".
[edit, added gem link] The gem is here https://github.com/paulmars/huffshell
import sys import collections tree = lambda: collections.defaultdict(lambda: [0, tree()]) def printtree(node, indent=0): padding = indent * ' ' for word, (count, child) in node.iteritems(): print "%s%s %d" % (padding, word, count) printtree(child, indent + 2) wordtree = tree() for line in sys.stdin: node = wordtree for word in line.split(): node[word][0] += 1 node = node[word][1] printtree(wordtree)
If that doesn't work for you, this might:
history 1 | awk '{print $2}' | awk 'BEGIN {FS="|"}{print $1}' | sort | uniq -c | sort -n | tail | sort -nr
What that doesn't give you is the command tree, for example "git commit" vs "git checkout". It just does "git".
[edit, added gem link] The gem is here https://github.com/paulmars/huffshell