Useremo i record dal .bash_historyfile per fare questo. Il prossimo comando ti fornirà un elenco di tutti i comandi in modo da utilizzarli più spesso:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr
Se si desidera solo la top 10, è necessario aggiungere headal comando sopra:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
Per ottenere un top specifico, ad esempio il top 5, utilizzare headcon l' -n 5opzione:

Se si desidera l'elenco in ordine inverso (in alto con i comandi usati raramente), non usare roprion per il secondo sort:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n
E infine per ottenere un elenco con i comandi utilizzati una volta, ad esempio, utilizzare grep ' 1 '(cambia 1con il numero desiderato):
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '
Per gestire i sudocomandi (come sudo vim foo), anziché semplicemente {print $3}nel comando awk, utilizzare:
{if($3 ~ /sudo/) print $4; else print $3}
Quindi l'intero comando sarebbe simile a:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr
Per esempio:
$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
284 vim
260 git
187 find
174 man
168 echo
149 rm
134 awk
115 pac
110 sudo
102 l
$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr | head
298 vim
260 git
189 find
174 man
168 echo
153 rm
134 awk
115 pac
102 l
95 cd
Si può vedere il salto di conteggi per vim, rmecc