GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser Linux Time Command :tout ce que vous devez savoir

Que vous soyez un administrateur système ou un utilisateur de serveur privé virtuel (VPS), l'apprentissage de diverses commandes Linux vous aidera à exécuter des tâches plus efficacement.

Dans ce didacticiel, vous découvrirez la commande Linux time - ce qu'elle est, son objectif et comment l'utiliser.

Qu'est-ce que la commande de temps Linux ?

La commande time dans les systèmes d'exploitation Linux et Unix vous permet de déterminer la durée d'exécution d'une commande spécifique. Habituellement, il est utilisé pour mesurer les performances des scripts ou des commandes. Plus une commande termine sa tâche rapidement, meilleures sont ses performances.

En outre, la commande time peut également afficher l'utilisation des ressources système du processus, ce qui en fait un outil utile pour examiner l'efficacité d'une commande spécifique.

Par exemple, vous souhaitez choisir entre deux tâches cron pouvant exécuter la même tâche. Vous pouvez déterminer combien de temps chaque tâche cron prendra pour terminer les tâches en exécutant la commande time.

Cependant, avant de commencer à parler de l'utilisation de la commande Linux time, gardez à l'esprit qu'elle diffère selon le shell que vous utilisez. Il existe trois versions différentes de la commande time dans le système Linux :

  • Frapper – déjà intégré au shell et peut être exécuté en tapant time .
  • Zsh comme Bash, il est également déjà intégré au système, exécuté en tapant time .
  • Linux GNU par défaut (GNU) disponible en tapant le chemin explicite vers la commande, usr/bin/time .

Pour vérifier quelle version de la commande de temps Linux s'applique à votre système, entrez ce qui suit dans votre programme shell :

$ type time
  • Si vous obtenez la sortiel'heure est un mot-clé shell , vous utilisez la commande Bash time.
  • Si vous obtenez le résultat l'heure est un mot réservé , vous utilisez la commande Zsh time.
  • Si vous obtenez la sortie l'heure est usr/bin/time , vous utilisez la commande GNU time.

Alternativement, vous pouvez simplifier la commande GNU time sous Linux en créant une commande alias pour usr/bin/time.

Utilisation de la commande Time sous Linux

Dans cette section, vous apprendrez la syntaxe de la commande Linux time et comment lire sa sortie.

Se familiariser avec la syntaxe de la commande Linux Time

L'utilisation de la commande time est très simple - tout ce que vous avez à faire est d'ouvrir votre programme shell et d'entrer :

$ time [command]

Pour profiter pleinement de la commande time, vous devez comprendre sa syntaxe :

$ time [command] [arg1] [arg2] ... [argN]
time [options] [command] [arg1] [arg2] ... [argN]

Heure exécute la commande donnée avec des arguments donnés (arg ). Une fois que la commande a terminé sa tâche, time génère des informations qui incluent la durée d'exécution de la commande et les ressources utilisées par celle-ci.

Si la commande du programme se termine avec un état différent de zéro indiquant un échec, le temps affichera un message d'avertissement et l'état de sortie.

En saisissant le format de chaîne utilisé par la commande, vous pouvez déterminer les informations à afficher dans la section d'utilisation des ressources système.

Si l'utilisateur ne spécifie aucun format, mais que la variable d'environnement de temps est définie, sa valeur sera utilisée comme format. Sinon, le format par défaut intégré à l'heure sera utilisé.

Options sont des spécificateurs de ressources qui modifient la sortie de time. Ils doivent apparaître avant la commande. Tout ce qui est entré après la commande sera considéré comme un argument.

Pour afficher toutes les options que vous pouvez utiliser pour l'heure, saisissez ce qui suit dans la ligne de commande :

$ man time

Vous verrez une liste d'options que vous pouvez utiliser pour modifier la sortie de la commande Linux time. Cependant, gardez à l'esprit que ces options peuvent varier en fonction du système d'exploitation spécifique et de la version que vous utilisez.

Commençons par un premier exemple simple. Pour savoir combien de temps il faut pour exécuter la commande ls utilisé pour afficher le contenu d'un répertoire choisi entrez ce qui suit dans le shell :

$ time ls

Vous verrez la sortie de la commande ls et le temps qu'il a fallu pour la terminer.

Maintenant, essayons d'incorporer un argument. Dans cet exemple, nous allons essayer de savoir combien de temps il faudra pour déplacer un fichier vers un autre répertoire :

$ time mv example.txt example-dir

En conséquence, le example.txt le fichier a été déplacé vers example-dir , et vous verrez le temps nécessaire pour terminer le processus.

Comprendre la sortie

Pour bien comprendre les avantages de la commande Linux time, vous devez savoir comment lire sa sortie.

Lire la sortie dans le terminal

La sortie par défaut de la commande time intégrée contient les informations suivantes :

  • En temps réel (réel). Le temps réel nécessaire pour que le processus se déroule du début à la fin. Cela inclut tout le temps pris par d'autres processus et le temps passé à attendre qu'ils soient terminés.
  • Temps utilisateur (utilisateur). La quantité de temps CPU passé en mode utilisateur pendant le processus. Les autres processus et le temps bloqué ne sont pas inclus.
  • Heure système (sys). Le temps CPU total passé en mode noyau pendant le processus. Comme pour le temps utilisateur, les autres processus et le temps passé bloqué par d'autres processus ne sont pas comptés.

Voici un exemple. Si nous entrons la commande ci-dessous dans la ligne de commande, le système téléchargera le programme d'installation du programme de machine virtuelle open source VirtualBox :

$ time wget https://download.virtualbox.org/virtualbox/6.1.28/virtualbox-6.1_6.1.28-147628~Ubuntu~eoan_amd64.deb

Une fois le téléchargement terminé, vous verrez trois chiffres - réel , utilisateur , et sys . Comme vous pouvez le voir, ils affichent le temps écoulé en modes réel, utilisateur et système pendant le téléchargement en minutes et secondes.

Écriture de la sortie dans un fichier

Parfois, vous voudrez peut-être enregistrer les informations que vous avez reçues en utilisant le temps. Heureusement, il existe une option de format qui vous permet d'écrire la sortie de la commande dans un fichier.

Si vous utilisez la commande GNU time, le -o L'option vous permettra de faire exactement cela - elle créera un nouveau fichier de sortie contenant des informations sur l'autre commande.

Par exemple, entrez la commande suivante pour enregistrer les informations de ping de hostinger.com et les détails de son processus dans un nouveau fichier :

$ time -o hostinger-ping-info.log ping hostinger.com

Notez que si vous utilisez le shell Bash et que vous souhaitez utiliser -o ou toute autre option, vous devrez invoquer la commande de temps externe en utilisant le chemin explicite usr/bin/time au lieu de simplement temps .

$ usr/bin/time -o hostinger-ping-info.log ping hostinger.com

Pour vérifier le contenu de hostinger-ping-info.log , utilisez le chat commande :

$ cat hostinger-ping-info.log

Obtenir une sortie détaillée dans un fichier

La sortie de la commande de temps par défaut peut ne pas inclure tous les détails que vous souhaitez connaître sur un processus particulier. Pour afficher une sortie détaillée, ajoutez l'option -v à la commande time sous Linux.

Par exemple, si vous voulez trouver le ping ou le temps de réponse de hostinger.com et afficher des informations détaillées sur le processus, entrez la commande suivante :

$ time -v ping hostinger.com

Si vous n'utilisez pas la commande GNU time ou si vous avez rencontré un flux d'erreur standard, essayez de déclencher la commande externe time en saisissant le chemin complet usr/bin/time à la place :

$ usr/bin/time -v ping hostinger.com

Alternativement, les utilisateurs peuvent personnaliser les types d'informations qu'ils souhaitent voir dans la sortie lors de la saisie de la commande time en utilisant ces options de format de sortie :

% Un `%' littéral.
C Nom et arguments de ligne de commande de la commande chronométrée.
D La taille moyenne de la zone de données non partagées du processus, en kilo-octets.
E Le temps réel écoulé (horloge murale) utilisé par le processus, en (heures :)minutes :secondes.
F Le nombre de défauts de page majeurs ou nécessitant des E/S qui se sont produits pendant l'exécution du processus. Ce sont des défauts où la page a migré hors de la mémoire principale.
Je Le i nombre d'entrées du système de fichiers par le processus.
K L'utilisation totale moyenne de la mémoire du processus en kilo-octets.
M La taille maximale de l'ensemble résident du processus pendant sa durée de vie, en kilo-octets.
O Le nombre de sorties du système de fichiers par le processus.
P Pourcentage du CPU obtenu par cette tâche. Il s'agit uniquement des temps utilisateur et système divisés par le temps d'exécution total. Il imprime également un signe de pourcentage.
R Le nombre de défauts de page mineurs ou récupérables. Ce sont des pages qui ne sont pas valides mais qui n'ont pas encore été revendiquées par d'autres pages virtuelles. Ainsi, les données de la page sont toujours correctes, mais les tables système doivent être mises à jour.
S Le nombre total de secondes CPU utilisées par le système pour le compte du processus (en mode noyau) en secondes.
U Nombre total de CPU-secondes que le processus a utilisé directement (en mode utilisateur) en secondes.
W Le nombre de fois que le processus a été échangé hors de la mémoire principale.
X La quantité moyenne de texte partagé dans le processus en kilo-octets.
Z Taille de page du système z, en octets. En tant que constante par système, elle peut varier d'un système à l'autre.
c Le nombre de fois que le processus a été inversé involontairement (parce que la tranche de temps a expiré).
e Temps réel écoulé (horloge murale) utilisé par le processus, en secondes.
k Le nombre de signaux délivrés au processus.
p Taille moyenne de la pile non partagée du processus, en kilo-octets.
r Le nombre de messages socket reçus par le processus.
s Le nombre de messages socket envoyés par le processus.
t Taille moyenne de l'ensemble résident du processus, en kilo-octets.
w Nombre de fois où le programme a été volontairement changé de contexte, par exemple, en attendant la fin d'une opération d'E/S.
x Le statut de sortie de la commande.

Par exemple, si vous souhaitez afficher le nombre de messages de socket reçus par la commande, saisissez ce qui suit dans le shell :

$ /usr/bin/time -f "Socket Messages Received: %r" command

Alternativement, si vous utilisez le shell Bash, vous préférerez peut-être le TIMEFORMAT de la commande de temps intégrée. TIMEFORMAT utilise une chaîne de format particulière pour permettre aux utilisateurs de spécifier comment les informations de temps doivent être affichées.

Voici une liste des valeurs du paramètre TIMEFORMAT :

%% Un % littéral
%[p][l]R Le temps écoulé en secondes.
%[p][l]U Le nombre de secondes CPU passées par le processus en mode utilisateur.
%[p][l]S Le nombre de secondes CPU que le processus a passées en mode système.
%P Le pourcentage de CPU, calculé comme (%U + %S) / %R.

Conclusion

La commande time sous Linux est un excellent outil pour vérifier le temps d'exécution et les performances globales d'un processus particulier. Dans ce guide, vous avez appris la commande Linux time, son objectif, sa syntaxe et sa sortie.

Nous espérons que ce guide vous a aidé à apprendre à naviguer plus efficacement dans le système Linux.


Linux
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande Linux Touch + Exemples

  4. Comment utiliser la commande Su sous Linux

  5. 10 commandes Linux de base que vous devez connaître

Comment utiliser la commande Linux nohup

Comment utiliser du Command sous Linux

Comment utiliser la commande sysctl sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser grep sous Linux

Tout ce que vous devez savoir sur la commande Linux Chmod