Wir werden die Datensätze aus der .bash_historyDatei verwenden, um dies zu tun. Mit dem nächsten Befehl erhalten Sie eine Liste aller Befehle, damit Sie sie am häufigsten verwenden:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr
Wenn Sie nur Top 10 wollen, müssen Sie headbei dem obigen Befehl hinzufügen :
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
Um ein bestimmtes Top zu erhalten, zum Beispiel Top 5, verwenden Sie headmit der -n 5Option:

Wenn Sie möchten, dass die Liste in umgekehrter Reihenfolge rangezeigt wird (oben mit den selten verwendeten Befehlen), verwenden Sie oprion nicht für den zweiten Schritt sort:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n
Und schließlich, um eine Liste mit den Befehlen zu erhalten, die zum Beispiel einmal verwendet wurden, verwenden Sie grep ' 1 '(ändern Sie 1mit der gewünschten Nummer):
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '
Um mit sudoBefehlen (wie sudo vim foo) umzugehen , verwenden Sie anstelle des {print $3}Befehls awk:
{if($3 ~ /sudo/) print $4; else print $3}
Der gesamte Befehl würde also so aussehen:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr
Beispielsweise:
$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
284 vim
260 git
187 find
174 man
168 echo
149 rm
134 awk
115 pac
110 sudo
102 l
$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr | head
298 vim
260 git
189 find
174 man
168 echo
153 rm
134 awk
115 pac
102 l
95 cd
Sie können den Sprung in Zählungen für sehen vim, rmusw.