¿Seguimiento del tiempo que tarda un comando en UNIX / LINUX?

Respuestas:

165

Sí, use time <command>, como

time ls

Consultar man timepara más opciones. Enlace .

squiguy
fuente
4
Y, el significado de tiempos reales / de usuario / sys está bien cubierto aquí
prideout
Esta respuesta es inexacta para los usuarios de bash en linux. La página de manual documenta el comando Gnu time, pero el tiempo está integrado en bash, que no tiene todas las opciones documentadas allí.
Ben Crowell
7

Utilizar

/usr/bin/time 

en cambio, el tiempo incorporado en el bash: es más configurable AFAIK.

e.g. /usr/bin/time --format=' \n---- \nelapsed time is %e'ls
Paolinux
fuente
Por lo que puedo decir, esto es predeterminado. Este fue el caso en los sistemas CentOS 6, CentOS 7 y Debian 8 que verifiqué: user@host:~$ which time /usr/bin/time parece ser la versión 1.7 de GNU.
Toby
4
@Toby: A pesar de que "which" dice que es / usr / bin / time, en bash, el comando incorporado lo anula. Si lo hago time -f "\t%E real" lsen bash, aparece un error, pero funciona si lo hago /usr/bin/time -f "\t%E real" ls.
Ben Crowell
1
Tienes razón. Eso es muy interesante y esclarecedor. ¡Gracias!
Toby
1
No lo use which. Uso type -a:$ which time /usr/bin/time $ type -a time time is a shell keyword time is /usr/bin/time
Daniel-Dane
Tenga en cuenta que el uso le /usr/bin/timeimpide usar alias de bash. El bash incorporado timees necesario para eso, de lo contrario obtendrá el error cannot run my_alias: No such file or directory.
Jamie S
6

Así es como se ve una sleepde un segundo, cronometrada con time:

$ time sleep 1

real    0m1.001s
user    0m0.000s
sys 0m0.000s
Guillaume Chevalier
fuente