Wie finde ich unter UNIX die am häufigsten verwendeten Befehle im Verlauf?
utilities
command-history
command
Swetha
quelle
quelle
Antworten:
Es kommt vielmehr darauf an, was Sie mit "Befehl" beabsichtigen. Aus einer Perspektive ist ein Befehl einfach eine ausführbare Datei, die über die Befehlszeile aufgerufen wird,
ls
undls -alh /tmp/foo/bar/*tar.bz
beide sind der Befehlls
. Eine andere Perspektive ist, dass ein Befehl die Summe seiner Teile ist, was bedeutet, dass das obige Beispiel zwei verschiedene Befehle sind.Wenn Sie ganz eindeutige Befehle in der Historie zählen möchten, können Sie Folgendes ausführen:
history | cut -d' ' -f4- | uniq -c | sort -n
Bitte beachten Sie, dass dies auf einem Debian-System getestet wurde. Die Ausgabesyntax Ihres Verlaufsbefehls kann geringfügig variieren. Passen Sie die Zahl '4' im Befehl an, um alternative Spalten auszuwählen.
Wenn Sie nur den ersten Befehl ohne Argumente berücksichtigen möchten, können Sie Folgendes ausführen:
history | cut -d' ' -f4- | cut -d' ' -f1 | uniq -c | sort -n
Um die folgenden Argumente, aber keine verketteten oder weitergeleiteten Befehle einzuschließen, können Sie Folgendes ausführen:
history | cut -d ' ' -f4- | cut -d'|' -f1 | uniq -c | sort -n
Bitte beachten Sie, dass jeder dieser Befehle die Anzahl der Befehle numerisch sortiert, wobei die höchste Frequenz zuletzt angezeigt wird.
quelle
sort
vorher eine zusätzliche hinzufügenuniq
, um eine genaue Zählung zu erhalten, da nur benachbarte Zeilen überprüft werden:history | cut -d' ' -f4- | cut -d' ' -f1 | sort | uniq -c | sort -n
Ich habe beide gesehen vucar und tok Antworten, sie sind sehr nützlich , aber man könnte die erstaunliche Tool
awk
zu:Wenn Sie eine Liste der Befehle auflisten möchten, die Sie am häufigsten verwenden:
So finden Sie den am häufigsten verwendeten Befehl:
für mich war es
vi
:quelle
Ein anderer Ansatz wäre die Verwendung der BSD-Prozessabrechnung , die auch unter Linux verfügbar ist (obwohl ich nicht weiß, ob sie standardmäßig aktiviert ist). Grundsätzlich werden alle Programme, die ausgeführt werden (und einige andere Maßnahmen, wie z. B. verbrauchte CPU-Zeit usw.), so lange überwacht, wie die Abrechnung aktiv ist. Von dort stehen unter anderem einige aggregierte Statistiken zur Verfügung: eine Art Liste aller Programme, die jemals auf dem System ausgeführt wurden, sortiert nach usw. Top-Anzahl der Verwendungen.
Die zu suchenden Befehle gelten
lastcomm
für das laufende Protokoll undsa
für die aggregierten Statistiken. Zurück zur ursprünglichen Frage: Unter der Annahme, dass für das betreffende System die Buchhaltung seit der Installation aktiviert war, wirdsa -n
eine Liste aller jemals auf dem System ausgeführten Befehle (für alle Benutzer) angezeigt, sortiert nach Häufigkeit. Bei Pipelines würde natürlich jeder Teil der Pipeline separat gezählt, da jeder Teil einen neuen Prozess umfasst, der gegabelt werden muss.Weitere Informationen finden Sie im Linux-Journal in einem Artikel , in dem die Funktionsweise erläutert wird. Ich selbst habe die Idee aus dem NetBSD-Handbuch erhalten . Viele der allgemeineren Verwaltungstipps sind nicht spezifisch für NetBSD, sondern gelten auch für andere Unix-Systeme.
quelle
Top 20 der am häufigsten verwendeten CLI-Befehle:
quelle
Sie können einen einzelnen Schnittbefehl verwenden:
quelle
Wenn es nur für die aktuelle Sitzung ist, dann
hash
ohne Argumente.quelle