GNU/Linux >> Tutoriels Linux >  >> Linux

12 Exemples d'options de format de sortie de commande de temps UNIX/Linux

La commande de temps Linux est utile pour identifier le temps pris par une commande.

À l'aide de la commande Linux time, vous pouvez déterminer le temps nécessaire à l'exécution d'une commande, d'un script shell ou de tout autre programme.

Par défaut, la commande time exécute la commande ou le programme donné. Après exécution, il affiche les statistiques et l'utilisation des ressources sur l'erreur standard.

La commande Time fournit plusieurs options de ligne de commande et diverses options de format comme expliqué dans ce tutoriel

1. Exemple d'utilisation de la commande de temps de base

Syntaxe de la commande Heure :

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

Par exemple, la commande time est exécutée sur la commande sleep sans aucune option.

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

Comprenons maintenant quelques options de ligne de commande importantes de cette commande.

2. Écrire la sortie des statistiques de temps dans un fichier à l'aide de l'option -o

Cette option limite l'envoi des résultats de la commande à l'erreur standard, mais écrit les résultats dans le fichier de sortie. Cette option écrase le fichier spécifié.

Voici un exemple :

$ /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. Ajouter la sortie des statistiques de temps à un fichier existant à l'aide de l'option -a

Cette option permet d'ajouter la sortie de la commande time dans le fichier. Il est utilisé avec l'option -o. Cette option évite l'écrasement du contenu du fichier de sortie en ajoutant la sortie de la commande de temps dans le fichier de sortie spécifié.

Voici un exemple :

$ /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. Afficher le pourcentage de CPU utilisé - %P

Vous pouvez fournir des choix de formatage de sortie à l'aide de l'option -f. Cette option permet à l'utilisateur de fournir des options de formatage de sortie. Cela remplace éventuellement le format spécifié dans la variable d'environnement TIME. Les options de formatage suivantes sont décrites ci-dessous :%P, %M, %S, %e, %E, %C, %Z, %c, %x.

Cette option donne le pourcentage du CPU que le processus de commande (c'est-à-dire exécuté sous la commande de temps) a pour son exécution. Il s'agit simplement des temps utilisateur + système divisés par le temps d'exécution total. Il imprime également un signe de pourcentage.

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

Ici, la sortie de la commande montre que la commande find a pris 82 % du CPU.

5. Afficher la taille maximale de l'ensemble résident - %M

Cette option donne la taille maximale de l'ensemble résident du processus de commande (c'est-à-dire exécuté sous la commande time) pendant sa durée de vie, en kilo-octets.

$ /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)

Ici, la sortie de la commande montre que la commande find a pris 8688 Ko comme taille résidente maximale du processus.

6. Afficher le nombre total de CPU-secondes – %S

Cette option donne le nombre total de CPU-secondes utilisées par le système pour le compte du processus (en mode noyau), en secondes.

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

Ici, la sortie de la commande montre que la commande find a pris 0,35 seconde CPU en mode noyau.

7. Afficher le temps réel écoulé en secondes - %e

Cette option donne le temps réel écoulé (c'est-à-dire l'horloge murale) utilisé par le processus, en secondes.

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

Ici, la sortie de la commande montre que l'exécution de la commande de veille s'est écoulée jusqu'à 2 secondes.

8. Afficher le temps réel écoulé dans un format différent - %E

Cette option donne le temps réel écoulé (c'est-à-dire l'horloge murale) utilisé par le processus, dans ce format - [heures :]minutes :secondes.

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

Ici, la sortie de la commande montre que l'exécution de la commande sleep a pris 0 heure, 0 minute et 2 secondes.

9. Afficher le nom du programme et les arguments de la ligne de commande - %C

Cette option donne le nom et les arguments de ligne de commande de la commande (c'est-à-dire exécuté sous la commande time).

$ /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)

Ici, la sortie de la commande time affiche le nom de la commande en cours d'exécution et ses arguments de ligne de commande.

10. Afficher la taille de la page système en octets - %Z

Cette option donne la taille de page du système, en octets. Il s'agit d'une constante par système, mais elle peut varier d'un système à l'autre.

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

Ici, la sortie de la commande montre que la commande sleep a utilisé 4096 octets comme taille de page système.

11. Afficher le nombre de changements de contexte - %c

Cette option donne le nombre de fois que le processus a été inversé involontairement (parce que la tranche de temps a expiré).

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

Ici, la sortie de la commande montre que 254 fois le changement de contexte du processus a eu lieu lors de l'exécution de la commande find sous la commande time.

12. Afficher l'état de sortie d'une commande - %x

Cette option donne l'état de sortie de la commande (c'est-à-dire exécuté sous la commande time).

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

Ici, la sortie de la commande montre que la commande top1 a échoué car ce tope1 en tant que fichier n'existe pas.

Selon la page de manuel de la commande time, l'état de sortie de la commande time peut être le suivant :

  • Si la commande spécifiée pour l'heure de la commande a été invoquée, l'état de sortie est l'état de sortie de la commande qui est exécutée avec l'heure de la commande.
  • Il s'agit de 127 si la commande spécifiée pour l'heure de la commande est introuvable.
  • 126 si la commande spécifiée pour chronométrer la commande a pu être trouvée mais n'a pas pu être invoquée.
  • Une autre valeur non nulle (1-125) si quelque chose d'autre s'est mal passé.

Enfin, il y a une différence entre exécuter juste "time" et "/usr/bin/time". Nous l'avons expliqué dans notre introduction précédente à l'article de commande de temps.


Linux
  1. UNIX / Linux :10 exemples de commandes Netstat

  2. 10 exemples de commandes Xargs sous Linux / UNIX

  3. Exemples de commande rm sous Linux

  4. Exemples de commandes ps sous Linux

  5. Exemples de commandes pinky sous Linux

Commande de temps Linux

11 Exemples de commandes de date Linux utiles

Exemples de commandes echo Linux

Linux date Exemples de commandes

Exemples de commandes id sous Linux

uptime Exemples de commandes sous Linux