Ich habe gerade diesen Beitrag auf http://linux.byexamples.com/
gesehenGrundsätzlich verwenden Sie ein einfaches einzeiliges awk-Skript
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
Eine vollständige Erklärung finden Sie unter dem obigen Link.
Beispiel für die Ausgabe auf meinem Rechner ist:
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
awk '{print $1}' ~/.bash_history | sort | uniq -c | sort -n
Der Befehl awk gibt die erste Zeichenfolge aus ~/.bash_history aus (zeigt keine Befehlsoptionen oder Argumente an), dann sortiert sort alle Zeilen alphabetisch, dann entfernt "uniq -c" doppelte Zeilen (Ihre eingegebenen Befehle) und zählt sie und Die letzte Sortierung ordnet Ihre Befehle nach der von uniq zurückgegebenen Zählnummer.
Sie können den hash
verwenden Befehl in Ihrem Terminal, das einen Hash-Eintrag von jedem Befehl, den Sie verwenden, zusammen mit der Anzahl der Treffer speichert und basierend auf den Treffern aussortieren und verarbeiten kann.
Weitere Informationen finden Sie in diesem Artikel.