Tenere traccia del tempo impiegato da un comando in UNIX / LINUX?


Risposte:


165

Sì, usa time <command>, come

time ls

Consultare man timeper ulteriori opzioni. Link .


4
E il significato dei tempi reali / utente / sys è ben trattato qui
prideout

Questa risposta è imprecisa per gli utenti di bash su Linux. La manpage documenta il comando Gnu time, ma time è un builtin di bash, che non ha tutte le opzioni documentate lì.
Ben Crowell

7

Uso

/usr/bin/time 

invece che l'ora incorporata nella bash: è più configurabile AFAIK.

e.g. /usr/bin/time --format=' \n---- \nelapsed time is %e'ls

Per quanto ne so, questa è l'impostazione predefinita. Questo è stato il caso dei sistemi CentOS 6, CentOS 7 e Debian 8 che ho controllato: user@host:~$ which time /usr/bin/time sembra essere la versione 1.7 di GNU Time.
Toby

4
@Toby: anche se "which" dice che è / usr / bin / time, in bash, il builtin lo sostituisce. Se lo faccio time -f "\t%E real" lsin bash, ottengo un errore, ma funziona se lo faccio /usr/bin/time -f "\t%E real" ls.
Ben Crowell

1
Hai ragione. È molto interessante e illuminante. Grazie!
Toby

1
Non usare which. Usa type -a:$ which time /usr/bin/time $ type -a time time is a shell keyword time is /usr/bin/time
Daniel-Dane

Nota che using /usr/bin/timeti impedisce di usare gli alias bash. Il builtin bash timeè necessario per questo, altrimenti riceverai l'errore cannot run my_alias: No such file or directory.
Jamie S,

6

Ecco come sleepappare un secondo, cronometrato con time:

$ time sleep 1

real    0m1.001s
user    0m0.000s
sys 0m0.000s
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.