GNU/Linux >> LINUX-Kenntnisse >  >> Linux

12 Beispiele für Ausgabeformatoptionen für UNIX-/Linux-Zeitbefehle

Der Linux-Zeitbefehl ist hilfreich, um die von einem Befehl benötigte Zeit zu ermitteln.

Mit dem Linux-Zeitbefehl können Sie herausfinden, wie viel Zeit für die Ausführung eines Befehls, eines Shell-Skripts oder eines anderen Programms benötigt wurde.

Standardmäßig führt der Zeitbefehl den angegebenen Befehl oder das Programm aus. Nach der Ausführung zeigt es die Statistiken und die Ressourcennutzung für den Standardfehler an.

Der Time-Befehl bietet mehrere Befehlszeilenoptionen und verschiedene Formatoptionen, wie in diesem Tutorial erklärt

1. Beispiel für die Verwendung eines einfachen Zeitbefehls

Zeitbefehlssyntax:

$ time [-options] <command arg1 arg2 ..>

Zum Beispiel wird der Zeitbefehl ohne Option auf den Schlafbefehl ausgeführt.

$ /usr/bin/time sleep 2
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+172minor)pagefaults 0swaps

Lassen Sie uns nun einige wichtige Befehlszeilenoptionen dieses Befehls verstehen.

2. Schreibe die Ausgabe der Zeitstatistik in eine Datei mit der Option -o

Diese Option beschränkt das Senden der Befehlsergebnisse auf Standardfehler, schreibt die Ergebnisse jedoch in die Ausgabedatei. Diese Option überschreibt die angegebene Datei.

Hier ist ein Beispiel:

$ /usr/bin/time -o time.txt sleep 2

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps

3. Zeitstatistikausgabe mit der Option -a

an eine vorhandene Datei anhängen

Diese Option ermöglicht das Anhängen der Zeitbefehlsausgabe an die Datei. Es wird zusammen mit der Option -o verwendet. Diese Option vermeidet das Überschreiben des Inhalts der Ausgabedatei, indem die Ausgabe des Zeitbefehls an die angegebene Ausgabedatei angehängt wird.

Hier ist ein Beispiel:

$ /usr/bin/time -a -o time.txt sleep 4

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps
0.00user 0.00system 0:04.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+176minor)pagefaults 0swaps

4. Zeigt den Prozentsatz der verwendeten CPU an – %P

Sie können Optionen für die Ausgabeformatierung mit der Option -f bereitstellen. Mit dieser Option kann der Benutzer Formatierungsoptionen für die Ausgabe bereitstellen. Es überschreibt möglicherweise das in der Umgebungsvariable TIME angegebene Format. Nachfolgend werden die folgenden Formatierungsoptionen beschrieben – %P, %M, %S, %e, %E, %C, %Z, %c, %x.

Diese Option gibt den Prozentsatz der CPU an, die der Prozess des Befehls (d. h. unter Zeitbefehl ausführen) für seine Ausführung zur Verfügung hat. Dies sind nur Benutzer- und Systemzeiten geteilt durch die Gesamtlaufzeit. Es druckt auch ein Prozentzeichen.

$ /usr/bin/time -f "\t%P CPU Percentage" find / -name my-program.sh
/root/my-program.sh
        82% CPU Percentage

Hier zeigt die Befehlsausgabe, dass der Befehl find 82 % der CPU verbraucht hat.

5. Anzeige der maximalen Resident-Set-Größe – %M

Diese Option gibt die maximale residente Satzgröße des Befehlsprozesses (d. h. unter Zeitbefehl ausgeführt) während seiner Lebensdauer in Kilobyte an.

$ /usr/bin/time -f "\t%M Max Resident Set Size (Kb)" find / -name my-program.sh
/root/my-program.sh
        8688 Max Resident Set Size (Kb)

Hier zeigt die Befehlsausgabe, dass der Befehl find 8688 KB als maximale residente Größe des Prozesses benötigte.

6. Zeigt die Gesamtzahl der CPU-Sekunden an – %S

Diese Option gibt die Gesamtzahl der CPU-Sekunden an, die vom System für den Prozess (im Kernelmodus) in Sekunden verwendet werden.

$ /usr/bin/time -f "\t%S CPU-seconds" find / -name my-program.sh
/root/my-program.sh
        0.35 CPU-seconds

Hier zeigt die Befehlsausgabe, dass der Befehl find im Kernelmodus 0,35 CPU-Sekunden benötigte.

7. Verstrichene Echtzeit in Sekunden anzeigen – %e

Diese Option gibt die verstrichene Echtzeit (d. h. Wanduhr), die vom Prozess verwendet wird, in Sekunden an.

$ /usr/bin/time -f "\t%e Elapsed Real Time (secs)" sleep 2
        2.00 Elapsed Real Time (secs)

Hier zeigt die Befehlsausgabe, dass die Ausführung des Schlafbefehls bis zu 2 Sekunden verstrichen ist.

8. Verstrichene Echtzeit in anderem Format anzeigen – %E

Diese Option gibt die verstrichene Echtzeit (d. h. Wanduhr) an, die vom Prozess verwendet wird, in diesem Format – [Stunden:]Minuten:Sekunden.

$ /usr/bin/time -f "\t%E Elapsed Real Time (format)" sleep 2
        0:02.00 Elapsed Real Time (format)

Hier zeigt die Befehlsausgabe, dass die Ausführung des Sleep-Befehls 0 Stunden, 0 Minuten und 2 Sekunden gedauert hat.

9. Programmnamen und Befehlszeilenargumente anzeigen – %C

Diese Option gibt den Namen und die Befehlszeilenargumente des Befehls an (d. h. unter Zeitbefehl ausführen).

$ /usr/bin/time -f "\t%C (Program Name and Command Line)" find / -name my-program.sh
/root/my-program.sh
        find / -name my-program.sh test_time (Program Name and Command Line)

Hier zeigt die Ausgabe des Zeitbefehls den Namen des ausgeführten Befehls und seine Befehlszeilenargumente.

10. Anzeige der Systemseitengröße in Byte – %Z

Diese Option gibt die Seitengröße des Systems in Byte an. Dies ist eine systemspezifische Konstante, die jedoch von System zu System unterschiedlich sein kann.

$ /usr/bin/time -f "\t%Z System Page Size (bytes)" sleep 2
        4096 System Page Size (bytes)

Hier zeigt die Befehlsausgabe, dass der Sleep-Befehl 4096 Byte als Systemseitengröße verwendet hat.

11. Anzahl der Kontextwechsel anzeigen – %c

Diese Option gibt an, wie oft der Prozess unfreiwillig den Kontext gewechselt hat (weil die Zeitscheibe abgelaufen ist).

$ /usr/bin/time -f "\t%c Context Switches" find / -name my-program.sh
/root/my-program.sh
        254 Context Switches

Hier zeigt die Befehlsausgabe, dass 254 Mal der Kontextwechsel des Prozesses während der Ausführung des Find-Befehls unter dem Zeitbefehl stattfand.

12. Exit-Status eines Befehls anzeigen – %x

Diese Option gibt den Beendigungsstatus des Befehls an (d. h. unter Zeitbefehl ausführen).

$ /usr/bin/time -f "\t%x Exit Status" top1
/usr/bin/time: cannot run top1: No such file or directory
        127 Exit Status

Hier zeigt die Befehlsausgabe, dass der Befehl top1 fehlgeschlagen ist, weil dieser tope1 als Datei nicht existiert.

Gemäß der Manpage des Zeitbefehls kann der Exit-Status des Zeitbefehls wie folgt lauten:

  • Wenn der zum Zeitpunkt des Befehls angegebene Befehl aufgerufen wurde, ist der Beendigungsstatus der Beendigungsstatus des Befehls, der mit dem Zeitbefehl ausgeführt wird.
  • Es ist 127, wenn der Befehl, der zum Zeitpunkt des Befehls angegeben wurde, nicht gefunden werden konnte.
  • 126, wenn der Befehl zum Zeitpunkt des Befehls gefunden, aber nicht aufgerufen werden konnte.
  • Ein anderer Wert ungleich Null (1-125), falls etwas anderes schief gelaufen ist.

Schließlich gibt es einen Unterschied zwischen der Ausführung von nur „time“ und „/usr/bin/time“. Wir haben dies in unserem früheren Artikel zur Einführung in Zeitbefehle erklärt.


Linux
  1. UNIX / Linux:10 Netstat-Befehlsbeispiele

  2. 10 Xargs-Befehlsbeispiele in Linux / UNIX

  3. sa-Befehlsbeispiele in Linux

  4. tail-Befehlsbeispiele in UNIX/Linux

  5. uptime-Befehlsbeispiele in Linux

Linux-Zeitbefehl

11 Nützliche Beispiele für Linux-Datumsbefehle

Beispiele für Linux-Echo-Befehle

Beispiele für Linux-Datumsbefehle

id-Befehlsbeispiele in Linux

timedatectl-Befehlsbeispiele in Linux