GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel de commande de temps Linux pour les débutants (avec exemples)

Parfois, lorsque vous exécutez un programme, vous souhaiterez peut-être connaître son utilisation des ressources système. Comme le temps passé par le processus en mode noyau et en mode utilisateur, et d'autres informations.

Heureusement, il existe un outil - appelé temps - qui est spécialement conçu à cet effet. Dans cet article, nous aborderons les bases de la commande 'time' à l'aide d'exemples faciles à comprendre.

Mais avant cela, il convient de mentionner que tous les exemples de ce didacticiel ont été testés sur une machine Ubuntu 18.04 LTS.

Commande de temps Linux

La commande time sous Linux vous permet d'exécuter des programmes et de résumer leur utilisation des ressources système. Voici sa syntaxe :

time [OPTIONS] COMMAND [ARGS]

Voici comment la page de manuel de l'outil le décrit :

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.

Voici quelques exemples de style Q&A qui devraient vous donner une meilleure idée du fonctionnement de la commande time.

Q1. Comment utiliser la commande time ?

L'utilisation de base est simple - exécutez simplement "time" avec la commande/le programme que vous souhaitez exécuter en entrée.

Par exemple, j'ai utilisé la commande time de la manière suivante :

time ping howtoforge.com

Et voici le résultat :

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

Les trois dernières lignes de la sortie sont ajoutées par la commande time. Alors que "réel" signifie l'heure de l'horloge murale que la commande "ping" a pris de l'exécution jusqu'à la fin, "utilisateur" et "sys" sont le temps pris par "ping" l'espace utilisateur et l'espace noyau, respectivement. Des détails sur ces trois temps peuvent être consultés ici.

Q2. Comment faire en sorte que 'time' écrive sa sortie dans un fichier ?

Si vous souhaitez que la commande time écrive sa sortie dans un fichier au lieu du terminal, utilisez l'option de ligne de commande -o, qui attend un nom/chemin de fichier en entrée.

Par exemple :

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

Cette commande affichera la sortie de ping sur stdout, tandis que la sortie de la commande 'time' sera écrite dans le fichier texte.

REMARQUE :Nous avons utilisé /usr/bin/time au lieu de 'time' car la commande time intégrée du shell n'offre pas l'option -o.

Par défaut, chaque fois que vous exécutez cette commande, le fichier de sortie sera écrasé. Cependant, si vous le souhaitez, vous pouvez vous assurer que la nouvelle sortie est ajoutée en utilisant l'option de ligne de commande -a.

Q3. Comment faire en sorte que le temps produise des résultats détaillés ?

Cela peut être fait en utilisant l'option de ligne de commande -v. Par exemple, lorsque j'ai utilisé cette option lors de l'exécution de 'time' avec une commande 'ping', les détails suivants ont été produits dans la sortie de la commande 'time' :

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

Vous pouvez donc voir que la commande time produit beaucoup d'autres détails dans ce mode.

Q4. Comment personnaliser la sortie de la commande de temps ?

La commande time offre également une option de ligne de commande « format » qui vous permet de personnaliser la sortie de cet outil. Il fournit un ensemble de spécificateurs de ressources que vous pouvez utiliser pour récupérer tout type d'informations pris en charge par la commande 'time' (voir la section précédente).

Par exemple, la commande time dans l'exécution suivante :

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

a produit cette sortie :

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

La page de manuel de la commande time contient des détails relatifs à l'option de ligne de commande format.

Conclusion

La commande time est principalement utilisée par les développeurs de logiciels et les testeurs. Cependant, il n'y a pas de mal à le savoir même si vous n'en faites pas partie, car vous ne savez jamais quand vous en aurez besoin. Plus d'informations sur cette commande sont accessibles via la page de manuel de l'outil.


Linux
  1. Linux expand Tutoriel de commande pour les débutants (avec exemples)

  2. Tutoriel de commande de facteur Linux pour les débutants (avec exemples)

  3. Linux oui Tutoriel de commande pour les débutants (avec exemples)

  4. Tutoriel de commande pour les utilisateurs Linux pour les débutants (avec exemples)

  5. Tutoriel de commande Linux sum pour les débutants (avec exemples)

Tutoriel de commande Linux sha1sum pour les débutants (avec exemples)

Tutoriel de commande Linux look pour les débutants (avec exemples)

Tutoriel de commande Linux lsattr pour les débutants (avec exemples)

Tutoriel de commande Linux tload pour les débutants (avec exemples)

Tutoriel de commande Linux znew pour les débutants (avec exemples)

Tutoriel de commande Linux tr pour les débutants (avec exemples)