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

Linux time Command Tutorial für Anfänger (mit Beispielen)

Wenn Sie ein Programm ausführen, möchten Sie manchmal wissen, wie es die Systemressourcen nutzt. Wie viel Zeit der Prozess im Kernelmodus und im Benutzermodus verbracht hat, und andere Informationen.

Zum Glück gibt es ein Werkzeug namens Zeit - das speziell für diesen Zweck gebaut wurde. In diesem Artikel werden wir die Grundlagen des 'time'-Befehls anhand einiger leicht verständlicher Beispiele besprechen.

Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele in diesem Tutorial auf einem Ubuntu 18.04 LTS-Rechner getestet wurden.

Linux-Zeitbefehl

Mit dem Befehl time in Linux können Sie Programme ausführen und deren Nutzung der Systemressourcen zusammenfassen. Es folgt die Syntax:

time [OPTIONS] COMMAND [ARGS]

So beschreibt es die Manpage des Tools:

time run the program COMMAND with any given arguments ARG....  When COMMAND finishes, time displays
information about resources used by COMMAND (on the standard error output, by default). 

If COMMAND exits with non-zero status, time displays a warning message and the exit status.

time determines which information to display about the resources used by the COMMAND from the
string FORMAT. If no format is specified on the command line, but the TIME environment variable
is set, its value is used as the format. Otherwise, a default format built into time is used.

Options to time must appear on the command line before COMMAND.  Anything on the command line after
COMMAND is passed as arguments to COMMAND.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der Zeitbefehl funktioniert.

Q1. Wie verwende ich den Zeitbefehl?

Die grundlegende Verwendung ist einfach - führen Sie einfach 'time' mit dem Befehl/Programm aus, das Sie als Eingabe ausführen möchten.

Zum Beispiel habe ich den Zeitbefehl folgendermaßen verwendet:

time ping howtoforge.com

Und hier ist die Ausgabe:

PING howtoforge.com (104.24.0.68) 56(84) bytes of data.
64 bytes from 104.24.0.68 (104.24.0.68): icmp_seq=1 ttl=59 time=93.8 ms
64 bytes from 104.24.0.68 (104.24.0.68): icmp_seq=2 ttl=59 time=91.5 ms
64 bytes from 104.24.0.68 (104.24.0.68): icmp_seq=3 ttl=59 time=93.1 ms
64 bytes from 104.24.0.68 (104.24.0.68): icmp_seq=4 ttl=59 time=102 ms
^C
--- howtoforge.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 91.510/95.249/102.490/4.267 ms

real    0m3.472s
user    0m0.000s
sys    0m0.004s

Die letzten drei Zeilen in der Ausgabe werden durch den time-Befehl hinzugefügt. Während „real“ die Wanduhrzeit angibt, die der „ping“-Befehl von der Ausführung bis zur Beendigung benötigte, sind „user“ und „sys“ die Zeit, die für das „pingen“ des Benutzerbereichs bzw. des Kernel-Bereichs benötigt wird. Detaillierte Informationen zu diesen drei Zeiten finden Sie hier.

Q2. Wie bringt man 'time' dazu, seine Ausgabe in eine Datei zu schreiben?

Wenn Sie möchten, dass der time-Befehl seine Ausgabe in eine Datei statt in das Terminal schreibt, verwenden Sie die Befehlszeilenoption -o, die einen Dateinamen/Pfad als Eingabe erwartet.

Zum Beispiel:

/usr/bin/time -o /home/himanshu/time-output.txt ping howtoforge.com

Dieser Befehl zeigt die Ausgabe von ping auf stdout an, während die Ausgabe des 'time'-Befehls in die Textdatei geschrieben wird.

HINWEIS :Wir haben /usr/bin/time anstelle von 'time' verwendet, weil der in die Shell eingebaute time-Befehl die Option -o nicht anbietet.

Standardmäßig wird jedes Mal, wenn Sie diesen Befehl ausführen, die Ausgabedatei überschrieben. Wenn Sie möchten, können Sie jedoch sicherstellen, dass neue Ausgaben angehängt werden, indem Sie die Befehlszeilenoption -a verwenden.

Q3. Wie bringt man die Zeit dazu, detaillierte Ausgaben zu produzieren?

Dies kann mit der Befehlszeilenoption -v erfolgen. Wenn ich diese Option beispielsweise beim Ausführen von „time“ mit einem „ping“-Befehl verwendet habe, wurden die folgenden Details in der Ausgabe des „time“-Befehls erzeugt:

Command being timed: "ping howtoforge.com"
    User time (seconds): 0.00
    System time (seconds): 0.00
    Percent of CPU this job got: 0%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:11.77
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 3064
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 158
    Voluntary context switches: 14
    Involuntary context switches: 0
    Swaps: 0
    File system inputs: 0
    File system outputs: 0
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

Sie können also sehen, dass der Zeitbefehl in diesem Modus viele andere Details erzeugt.

Q4. Wie kann die Zeitbefehlsausgabe angepasst werden?

Der Zeitbefehl bietet auch eine „Format“-Befehlszeilenoption, mit der Sie die Ausgabe dieses Tools anpassen können. Es bietet eine Reihe von Ressourcenbezeichnern, die Sie verwenden können, um alle Arten von Informationen abzurufen, die vom Befehl 'time' unterstützt werden (siehe vorheriger Abschnitt).

Beispielsweise der time-Befehl in folgender Ausführung:

/usr/bin/time -f "\t%C [Command details],\t%K [Total memory usage],\t%k [Number of signals process received]" ping howtoforge.com

erzeugte diese Ausgabe:

ping howtoforge.com [Command details],    0 [Total memory usage],    0 [Number of signals process received]

Die man-Seite des Zeitbefehls enthält Details zur Format-Befehlszeilenoption.

Schlussfolgerung

Der Zeitbefehl wird hauptsächlich von Softwareentwicklern und Testern verwendet. Es kann jedoch nicht schaden, es zu wissen, auch wenn Sie nicht dazu gehören, denn Sie wissen nie, wann Sie es benötigen. Weitere Informationen zu diesem Befehl finden Sie auf der Manpage des Tools.


Linux
  1. Linux expand Command Tutorial für Anfänger (mit Beispielen)

  2. Linux-Factor-Befehls-Tutorial für Anfänger (mit Beispielen)

  3. Linux yes Command Tutorial für Anfänger (mit Beispielen)

  4. Linux nproc Command Tutorial für Anfänger (mit Beispielen)

  5. Linux-Benutzer Befehls-Tutorial für Anfänger (mit Beispielen)

Linux sha1sum Command Tutorial für Anfänger (mit Beispielen)

Linux Look Command Tutorial für Anfänger (mit Beispielen)

Linux-Lsattr-Befehls-Tutorial für Anfänger (mit Beispielen)

Linux tload Command Tutorial für Anfänger (mit Beispielen)

Linux znew Command Tutorial für Anfänger (mit Beispielen)

Linux tr Command Tutorial für Anfänger (mit Beispielen)