Obtenga el historial de los 10 comandos principales utilizados

Obtenga el historial de los 10 comandos principales utilizados

¿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 10se 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

información relacionada