How do I see what my most used linux command are?
I would like to know which command I use the most on the command line. I would like to know so I can improve my use of the command line. If I know which command I use the most, I can then read more about them try and figure out better ways to use them.
I know history keeps a list of all the previous commands I typed. How would I process it to see a list of the top 10 or 20 most used commands.
I just saw this post on http://linux.byexamples.com/
Basically you use a simple one line awk script
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
A full explanation can be found at the link above.
Example of out put on my machine is:
1 211 21.1% ls
2 189 18.9% sudo
3 58 5.8% man
4 52 5.2% cd
5 43 4.3% ping
6 40 4% apropos
7 34 3.4% less
8 22 2.2% cat
9 18 1.8% which
10 18 1.8% aspell
awk '{print $1}' ~/.bash_history | sort | uniq -c | sort -n
The awk command will print the first string from ~/.bash_history (not showing command options or arguments), then sort will order all lines alphabetically, then "uniq -c" will remove duplicated lines (your typed commands) and count them, and the last sort will order your commands by the count number returned by uniq.