Verfolgen Sie die Zeit, die ein Befehl in UNIX / LINUX benötigt?


Antworten:


165

Ja, verwenden Sie time <command>wie

time ls

Konsultieren Sie man timefür weitere Optionen. Link .


4
Und die Bedeutung der real / user / sys mal schön bedeckt hier
prideout

Diese Antwort ist für Bash-Benutzer unter Linux ungenau. Die Manpage dokumentiert den Gnu-Zeitbefehl, aber Zeit ist eine eingebaute Bash, in der nicht alle Optionen dokumentiert sind.
Ben Crowell

7

Verwenden

/usr/bin/time 

Stattdessen ist die Zeit in der Bash eingebaut: Es ist AFAIK konfigurierbarer.

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

Soweit ich das beurteilen kann, ist dies die Standardeinstellung. Dies war auf den von mir überprüften CentOS 6-, CentOS 7- und Debian 8-Systemen der Fall: Es user@host:~$ which time /usr/bin/time scheint Version 1.7 der GNU-Zeit zu sein.
Toby

4
@Toby: Auch wenn "welches" sagt, dass es / usr / bin / time ist, überschreibt das eingebaute in bash das. Wenn ich time -f "\t%E real" lsin Bash mache , bekomme ich eine Fehlermeldung, aber es funktioniert, wenn ich es tue /usr/bin/time -f "\t%E real" ls.
Ben Crowell

1
Du hast recht. Das ist sehr interessant und aufschlussreich. Vielen Dank!
Toby

1
Nicht benutzen which. Verwenden Sie type -a:$ which time /usr/bin/time $ type -a time time is a shell keyword time is /usr/bin/time
Daniel-Dane

Beachten Sie, dass die Verwendung von /usr/bin/timeverhindert , dass Sie Bash-Aliase verwenden. Dafür timewird die eingebaute Bash benötigt, sonst wird der Fehler angezeigt cannot run my_alias: No such file or directory.
Jamie S

6

So sieht eine sleepSekunde aus, zeitlich abgestimmt mit time:

$ time sleep 1

real    0m1.001s
user    0m0.000s
sys 0m0.000s
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.