How to get top used Linux commands

Retrieving the top 10 used commands in Linux is simple using the history command.
What is the history command
The history command, as its name implies, is used to view previously executed commands. It’s API is minimal and easy to use.
How to view top used commands in Linux
Using a combination of history and awk, we can pull the top 10 commands like this:
1history |
2 awk '{CMD[$1]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' |
3 grep -v "./" |
4 sort -n -r |
5 head -n 10Output:
11842 26.4617% git
2520 7.47019% export
3389 5.58828% cd
4262 3.76383% sfdx
5257 3.692% npx
6254 3.6489% npm
7237 3.40468% nvim
8234 3.36159% aws
9227 3.26103% rm
10195 2.80132% poetryThe awk command is the magic sauce. The sort command is used to reverse sort the list then the head command prints the last 10 lines.
If you prefer aligned columns with a counter to the left, we can use nl and the column command:
1history |
2 awk '{CMD[$1]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' |
3 grep -v "./" |
4 column -c 3 -s " " -t |
5 sort -n -r |
6 nl |
7 head -n 10Output:
1 1 1842 26.4351% git
2 2 520 7.46269% export
3 3 389 5.58266% cd
4 4 262 3.76005% sfdx
5 5 257 3.68829% npx
6 6 254 3.64524% npm
7 7 237 3.40126% nvim
8 8 234 3.35821% aws
9 9 227 3.25775% rm
10 10 195 2.79851% poetryIn my case, git, export, and cd are my most used commands from the terminal.