Отслеживать время выполнения команды в UNIX / LINUX?

Ответы:

165

Да, использовать time <command>, например,

time ls

Проконсультируйтесь man timeо дополнительных вариантах. Ссылка .

squiguy
источник
4
И значение времени real / user / sys хорошо
раскрыто
Этот ответ неверен для пользователей bash в Linux. На странице руководства задокументирована команда Gnu time, но time - это встроенная функция bash, в которой описаны не все параметры.
Бен Кроуэлл
7

использование

/usr/bin/time 

вместо этого время, встроенное в bash: это более настраиваемое AFAIK.

e.g. /usr/bin/time --format=' \n---- \nelapsed time is %e'ls
Paolinux
источник
Насколько я могу судить, это по умолчанию. Так было с системами CentOS 6, CentOS 7 и Debian 8, которые я проверил: user@host:~$ which time /usr/bin/time похоже, это версия 1.7 времени GNU.
Тоби
4
@Toby: Несмотря на то, что "which" говорит, что это / usr / bin / time, в bash встроенная функция отменяет это. Если я сделаю это time -f "\t%E real" lsв bash, я получаю сообщение об ошибке, но если я это сделаю, это будет работать /usr/bin/time -f "\t%E real" ls.
Бен Кроуэлл
1
Ты прав. Это очень интересно и поучительно. Спасибо!
Toby
1
Не используйте which. Использование type -a:$ which time /usr/bin/time $ type -a time time is a shell keyword time is /usr/bin/time
Daniel-Dane
Обратите внимание, что использование не /usr/bin/timeпозволяет вам использовать псевдонимы bash. Для этого timeнужен встроенный bash , иначе вы получите ошибку cannot run my_alias: No such file or directory.
Jamie S
6

Вот как sleepвыглядит одна секунда, синхронизированная с time:

$ time sleep 1

real    0m1.001s
user    0m0.000s
sys 0m0.000s
Гийом Шевалье
источник