Useremo i record dal .bash_history
file 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 head
al 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 head
con l' -n 5
opzione:
Se si desidera l'elenco in ordine inverso (in alto con i comandi usati raramente), non usare r
oprion 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 1
con il numero desiderato):
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '
Per gestire i sudo
comandi (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
, rm
ecc