Wir werden die Datensätze aus der .bash_history
Datei 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 head
bei 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 head
mit der -n 5
Option:
Wenn Sie möchten, dass die Liste in umgekehrter Reihenfolge r
angezeigt 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 1
mit der gewünschten Nummer):
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '
Um mit sudo
Befehlen (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
, rm
usw.