Відстежувати час, який займає команда в UNIX / LINUX?


Відповіді:


165

Так, використовувати time <command>, наприклад

time ls

Зверніться man timeдо додаткових варіантів. Link .


4
І сенс реального / користувачів / SYS раз красиво покриті тут
prideout

Ця відповідь є неточною для користувачів bash на Linux. На manpage вказується команда Gnu time, але час є вбудованим в bash, який не має всіх варіантів, зафіксованих там.
Бен Кроуелл

7

Використовуйте

/usr/bin/time 

замість цього час, вбудований в баш: це більш конфігуруваний AFAIK.

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

Наскільки я можу сказати, це за замовчуванням. Так було у системах CentOS 6, CentOS 7 та Debian 8, які я перевірив: user@host:~$ which time /usr/bin/time Схоже, це версія 1.7 GNU.
Тобі

4
@Toby: Незважаючи на те, що "котрий" говорить, що це / usr / bin / time, в bash, вбудований перевершує це. Якщо я роблю time -f "\t%E real" lsbash, я отримую помилку, але вона працює, якщо я роблю /usr/bin/time -f "\t%E real" ls.
Бен Кроуелл

1
Ти маєш рацію. Це дуже цікаво та освічуюче. Дякую!
Тобі

1
Не використовуйте which. Використання type -a:$ which time /usr/bin/time $ type -a time time is a shell keyword time is /usr/bin/time
Даніель-Дейн

Зауважте, що використання /usr/bin/timeне дозволяє використовувати bash псевдоніми. timeДля цього потрібен bash вбудований , інакше ви отримаєте помилку cannot run my_alias: No such file or directory.
Джеймі S

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.