Nous utiliserons les enregistrements du .bash_historyfichier pour ce faire. La commande suivante vous donnera une liste de toutes les commandes afin que vous les utilisiez le plus souvent:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr
Si vous ne voulez que le top 10, vous devez ajouter headà la commande ci-dessus:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
Pour obtenir un top spécifique, par exemple le top 5, utilisez headavec -n 5option:

Si vous voulez la liste dans l'ordre inverse (en haut avec les commandes rarement utilisées), n'utilisez pas roprion pour la seconde sort:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n
Et enfin pour obtenir une liste avec les commandes utilisées une fois par exemple, utilisez grep ' 1 '(changez 1avec le nombre souhaité):
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '
Pour traiter les sudocommandes (comme sudo vim foo), au lieu de simplement {print $3}dans la commande awk, utilisez:
{if($3 ~ /sudo/) print $4; else print $3}
Ainsi, la commande entière ressemblerait à:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr
Par exemple:
$ 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
Vous pouvez voir le saut en compte pour vim, rmetc.