Verlauf der 10 am häufigsten verwendeten Befehle abrufen

Verlauf der 10 am häufigsten verwendeten Befehle abrufen

Gibt es eine Möglichkeit, die 10 am häufigsten verwendeten Befehle im Verlauf herauszufinden? Top 10 bedeutet hier die Befehle, die ich am häufigsten verwendet habe, d. h. die Befehle, die häufiger verwendet werden als andere.

Antwort1

Eine Linie:

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

Beispielausgabe:

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

DasDie Site bietet etwas mehr Informationen.

Antwort2

Ich selbst habe ein kleines Skript, um zu überprüfen, welches die N am häufigsten verwendeten Befehle sind, die ich in letzter Zeit verwendet habe:

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
}

Es werden also mylast 10die Top 10 angezeigt.

Dies geschieht, indem der Verlauf durchgegangen wird und das zweite Feld in gespeichert wird awk, sodass die Anzahl über ein Array verfolgt werden kann.

Beispielausgabe:

$ mylast 5
248 git
107 python
93 grep
71 awk
52 less

verwandte Informationen