
Existe alguma maneira de descobrir os 10 comandos mais usados na história? Aqui, os 10 principais significam comandos que usei na maior parte do tempo, ou seja, os comandos cuja contagem usada é maior do que outros.
Responder1
Uma linha:
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
Exemplo de saída:
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
Essesite fornece um pouco mais de informações.
Responder2
Eu mesmo tenho um pequeno script para verificar quais são os N principais comandos que tenho usado ultimamente:
mylast () {
re='^[0-9]+$'
if ! [[ $1 =~ $re ]] ; then
echo "error: $1 not a number" >&2
else
history | awk '{a[$2]++} END {for (i in a) print a[i], i}' | sort -rn | head -n $1
fi
}
Então, ao dizer mylast 10
isso, mostra o top 10.
Isso é feito percorrendo o histórico e armazenando o segundo campo em in awk
, para que a contagem possa ser rastreada por meio de um array.
Exemplo de saída:
$ mylast 5
248 git
107 python
93 grep
71 awk
52 less