GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare Linux Time Command:tutto ciò che devi sapere

Che tu sia un amministratore di sistema o un utente di un server privato virtuale (VPS), l'apprendimento di vari comandi Linux ti aiuterà a eseguire le attività in modo più efficiente.

In questo tutorial imparerai a conoscere il comando time di Linux:cos'è, il suo scopo e come usarlo.

Cos'è Linux Time Command?

Il comando time nei sistemi operativi Linux e simili a Unix ti consente di determinare quanto tempo impiegherà un comando specifico per essere eseguito. Di solito, viene utilizzato per misurare le prestazioni di script o comandi. Più velocemente un comando porta a termine il suo compito, migliori saranno le sue prestazioni.

Inoltre, il comando time può anche visualizzare l'utilizzo delle risorse di sistema del processo, rendendolo uno strumento utile per rivedere l'efficienza di un comando specifico.

Ad esempio, vuoi scegliere tra due lavori cron che possono eseguire la stessa attività. Puoi determinare quanto tempo impiegherà ciascun lavoro cron per completare le attività eseguendo il comando time.

Tuttavia, prima di iniziare a parlare di come utilizzare il comando time di Linux, tieni presente che varia a seconda della shell che usi. Esistono tre diverse versioni del comando time nel sistema Linux:

  • Ben – già integrato nella shell e può essere eseguito digitando time .
  • Zsh come Bash, è anche già integrato nel sistema, eseguibile digitando time .
  • GNU Linux predefinito (GNU) disponibile digitando il percorso esplicito del comando, usr/bin/time .

Per verificare quale versione del comando dell'ora di Linux si applica al tuo sistema, inserisci quanto segue nel tuo programma shell:

$ type time
  • Se ottieni l'output il tempo è una parola chiave della shell , stai usando il comando Bash time.
  • Se ottieni l'output il tempo è una parola riservata , stai usando il comando Zsh time.
  • Se ottieni l'output time is usr/bin/time , stai usando il comando GNU time.

In alternativa, puoi semplificare il comando GNU time in Linux creando un comando alias per usr/bin/time.

Utilizzo del comando Time in Linux

In questa sezione imparerai la sintassi del comando time di Linux e come leggerne l'output.

Conoscere la sintassi del comando ora di Linux

Usare il comando time è molto semplice:tutto ciò che devi fare è aprire il tuo programma shell e inserire:

$ time [command]

Per sfruttare appieno il comando time, devi comprenderne la sintassi:

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

Tempo esegue il comando dato con qualsiasi argomento dato (arg ). Una volta che il comando ha terminato la sua attività, il tempo emette informazioni che includono la durata necessaria per eseguire il comando e le risorse da esso utilizzate.

Se il comando del programma esce con uno stato diverso da zero che indica un errore, il tempo emetterà un messaggio di avviso e lo stato di uscita.

Inserendo il formato stringa utilizzato dal comando, puoi determinare quali informazioni visualizzare nella sezione sull'utilizzo delle risorse di sistema.

Se l'utente non specifica alcun formato, ma è impostata la variabile di ambiente time, il suo valore verrà utilizzato come formato. In caso contrario, verrà utilizzato il formato predefinito integrato nell'ora.

Opzioni sono specificatori di risorse che cambiano l'output del tempo. Devono comparire prima del comando. Qualsiasi cosa immessa dopo il comando sarà considerata un argomento.

Per visualizzare tutte le opzioni che puoi utilizzare per il tempo, inserisci quanto segue nella riga di comando:

$ man time

Vedrai un elenco di opzioni che puoi utilizzare per modificare l'output del comando ora di Linux. Tuttavia, tieni presente che queste opzioni possono variare a seconda del sistema operativo specifico e della versione che stai utilizzando.

Cominciamo con un primo semplice esempio. Per scoprire quanto tempo ci vuole per eseguire il comando ls utilizzato per visualizzare il contenuto di una directory scelta, immettere quanto segue nella shell:

$ time ls

Vedrai l'output del comando ls e il tempo impiegato per completarlo.

Ora, proviamo a incorporare un argomento. In questo esempio, proveremo a scoprire quanto tempo ci vorrà per spostare un file in una directory diversa:

$ time mv example.txt example-dir

Di conseguenza, il example.txt il file è stato spostato in dir-esempio e vedrai il tempo impiegato per completare il processo.

Capire l'output

Per comprendere appieno i vantaggi del comando time di Linux, devi sapere come leggerne l'output.

Lettura dell'output nel terminale

L'output predefinito del comando time integrato contiene le seguenti informazioni:

  • In tempo reale (reale). Il tempo reale necessario per l'esecuzione del processo dall'inizio alla fine. Ciò include il tempo impiegato da altri processi e il tempo trascorso in attesa del loro completamento.
  • Tempo utente (utente). La quantità di tempo CPU trascorso in modalità utente durante il processo. Altri processi e tempo bloccato non sono inclusi.
  • Ora di sistema (sys). Il tempo totale della CPU speso in modalità kernel durante il processo. Analogamente al tempo dell'utente, gli altri processi e il tempo trascorso bloccato da altri processi non vengono conteggiati.

Ecco un esempio. Se inseriamo il comando seguente nella riga di comando, il sistema scaricherà il programma di installazione per il programma di macchina virtuale open source VirtualBox:

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

Al termine del download, vedrai tre cifre:reale , utente e sistema . Come puoi vedere, mostrano il tempo trascorso in modalità reale, utente e di sistema durante il download in minuti e secondi.

Scrittura dell'output in un file

A volte, potresti voler salvare le informazioni che hai ricevuto usando il tempo. Fortunatamente, esiste un'opzione di formato che ti consente di scrivere l'output del comando in un file.

Se usi il comando GNU time, -o l'opzione ti consentirà di fare proprio questo:creerà un nuovo file di output contenente informazioni sull'altro comando.

Ad esempio, inserisci il comando seguente per salvare le informazioni sul ping di hostinger.com e dettagli sul suo processo in un nuovo file:

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

Nota che se usi la shell Bash e vuoi usare -o o qualsiasi altra opzione, dovrai richiamare il comando time esterno usando il percorso esplicito usr/bin/time anziché solo tempo .

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

Per controllare il contenuto di hostinger-ping-info.log , usa il gatto comando:

$ cat hostinger-ping-info.log

Ottenere un output dettagliato in un file

L'output del comando time predefinito potrebbe non includere tutti i dettagli che desideri conoscere su un particolare processo. Per visualizzare l'output dettagliato, aggiungi l'opzione -v al comando time in Linux.

Ad esempio, se desideri trovare il ping o il tempo di risposta di hostinger.com e visualizzare le informazioni dettagliate sul processo, immettere il seguente comando:

$ time -v ping hostinger.com

Se non utilizzi il comando GNU time o hai riscontrato un flusso di errore standard, prova ad attivare il comando time esterno immettendo il percorso completo usr/bin/time invece:

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

In alternativa, gli utenti possono personalizzare i tipi di informazioni che desiderano visualizzare nell'output quando immettono il comando ora utilizzando queste opzioni del formato di output:

% Un letterale `%'.
C Nome e argomenti della riga di comando del comando in fase di cronometraggio.
D La dimensione media d dell'area dati non condivisa del processo, in kilobyte.
E Il tempo reale trascorso (orologio da parete) utilizzato dal processo, in (ore:)minuti:secondi.
V Il numero di errori di pagina principali o che richiedono I/O che si sono verificati durante l'esecuzione del processo. Si tratta di errori in cui la pagina è migrata fuori dalla memoria principale.
Io Il numero i di input del file system da parte del processo.
K L'utilizzo medio totale della memoria del processo in kilobyte.
M La dimensione massima del set residente del processo durante la sua vita, in kilobyte.
O Il numero di output del file system dal processo.
P Percentuale della CPU ottenuta da questo lavoro. Questo è solo il tempo dell'utente e del sistema diviso per il tempo di esecuzione totale. Stampa anche un segno di percentuale.
R Il numero di errori di pagina minori o ripristinabili. Si tratta di pagine non valide ma che non sono state ancora rivendicate da altre pagine virtuali. Quindi i dati sulla pagina sono ancora corretti, ma le tabelle di sistema devono essere aggiornate.
S Il numero totale di secondi CPU utilizzati dal sistema per conto del processo (in modalità kernel) in secondi.
U Numero totale di secondi CPU che il processo ha utilizzato direttamente (in modalità utente) in secondi.
W Il numero di volte in cui il processo è stato sostituito dalla memoria principale.
X La quantità media di testo condiviso nel processo in kilobyte.
Z La dimensione della pagina del sistema z, in byte. Come costante per sistema, può variare tra i sistemi.
c Il numero di volte in cui il processo è stato modificato dal contesto involontariamente (perché l'intervallo di tempo è scaduto).
e Tempo reale trascorso (orologio da parete) utilizzato dal processo, in secondi.
k Il numero di segnali consegnati al processo.
p Dimensione media dello stack non condiviso del processo, in kilobyte.
r Il numero di messaggi socket ricevuti dal processo.
s Il numero di messaggi socket inviati dal processo.
t Dimensione media dell'insieme residente del processo, in kilobyte.
con Numero di volte in cui il programma è stato modificato volontariamente, ad esempio, durante l'attesa del completamento di un'operazione di I/O.
x Lo stato di uscita del comando.

Ad esempio, se vuoi visualizzare il numero di messaggi socket ricevuti dal comando, inserisci quanto segue nella shell:

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

In alternativa, se usi la shell Bash, potresti preferire TIMEFORMAT del comando time integrato. TIMEFORMAT utilizza una stringa di formato particolare per consentire agli utenti di specificare come devono essere visualizzate le informazioni di temporizzazione.

Ecco un elenco dei valori dei parametri TIMEFORMAT:

%% Un letterale %.
%[p][l]R Il tempo trascorso in secondi.
%[p][l]U Il numero di secondi CPU trascorsi dal processo in modalità utente.
%[p][l]S Il numero di secondi CPU trascorsi dal processo in modalità sistema.
%P La percentuale della CPU, calcolata come (%U + %S) / %R.

Conclusione

Il comando time in Linux è uno strumento eccellente per controllare il tempo di esecuzione e le prestazioni complessive di un particolare processo. In questa guida, hai appreso il comando time di Linux, il suo scopo, la sintassi e l'output.

Ci auguriamo che questa guida ti abbia aiutato a imparare a navigare nel sistema Linux in modo più efficiente.


Linux
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come usare il comando Su in Linux

  4. Come utilizzare il comando dello schermo di Linux

  5. Come si usano le espressioni regolari con il comando cp in Linux?

Come usare il comando nohup di Linux

Come usare du Command in Linux

Come utilizzare il comando sysctl in Linux

Come utilizzare il comando di arresto di Linux

Come usare grep in Linux

Tutto ciò che devi sapere sul comando Chmod di Linux