
¿Hay alguna forma de descubrir los 10 comandos más utilizados en la historia? Aquí los 10 principales significan los comandos que he usado la mayor parte del tiempo, es decir, los comandos cuyo recuento usado es mayor que otros.
Respuesta1
Una línea:
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
Salida de ejemplo:
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
EsteEl sitio proporciona un poco más de información.
Respuesta2
Yo mismo tengo un pequeño script para comprobar cuáles son los N comandos principales que he estado usando últimamente:
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
}
Entonces al decirlo mylast 10
se muestra el top 10.
Esto se hace revisando el historial y almacenando el segundo campo en in awk
, de modo que se pueda realizar un seguimiento del recuento a través de una matriz.
Salida de muestra:
$ mylast 5
248 git
107 python
93 grep
71 awk
52 less