DataLife Engine / Тайминг в Linux: Как точно измерить время выполнения любой команды

Тайминг в Linux: Как точно измерить время выполнения любой команды

В некоторых случаях при работе с терминалом Linux нужно знать время выполнения тех или иных команд, например, для отслеживания проблем. Для этой задачи существует утилита time. Конкретно про нее и пойдет речь в нашей статье.

Мы расскажем, как работает команда time Linux и какой у неё синтаксис. Затем перейдем к описанию доступных опций. А в конце упомянем несколько популярных сценариев использования.


Содержание статьи

Синтаксис и опции time

Утилита запускает заданную пользователем команду и после этого выводит информацию о времени ее выполнения. У нее достаточно удобный синтаксис. Сначала нужно указать опции для time, затем – выполняемую команду, а в конце – аргументы к ней:

$ time опции команда_для_выполнения аргументы

Рассмотрим список доступных опций:

В этом списке представлены только основные опции. Получить подробную информацию можно командой:

man time

Опции форматирования вывода

По умолчанию time может выводить информацию в не комфортном для чтения виде.

Тайминг в Linux: Как точно измерить время выполнения любой команды

По этой причине для нее желательно задавать опции форматирования вывода, о которых и пойдет сейчас речь. Всего их три штуки. В качестве примера для их рассмотрения возьмем команду apt-get update.

Опция -v используется для вывода подробной информации:

sudo time -v apt-get update
Тайминг в Linux: Как точно измерить время выполнения любой команды

Опция -p нужна для вывода данных в формате, соответствующем стандарту POSIX 1003.2:

sudo time -p apt-get update
Тайминг в Linux: Как точно измерить время выполнения любой команды

А с помощью опции -f или --format детально задается форматирование вывода. Этот момент стоит рассмотреть более детально.

Строка с данными о форматировании, как правило, включает в себя спецификаторы ресурсов и обычный текст. Знак % обозначает, что следующий после него символ следует воспринимать как спецификатор ресурсов.

С помощью знака задается разделительный символ. Есть три доступных варианта: t – табуляция, n – новая строка, – обратная косая черта. Если после указать любой другой символ, то в терминале появится вопросительный знак (?), который говорит об ошибке ввода.

Остальной текст в строке формата полностью копируется в поле вывода. При этом time всегда начинает вывод данных с новой строки после информации о выполнении самой команды.

Рассмотрим доступные спецификаторы ресурсов:

Это были все спецификаторы ресурсов, использующиеся при выборе форматирования для time. Теперь перейдем к сценариям использования команды.

Как узнать время выполнения команды Linux

Мы рассмотрим три основных примера, которые довольно часто используются: вывод данных в терминал, вывод в отдельный файл и вывод с форматированием.

1. Вывод времени выполнения в терминал

В качестве примера мы возьмем команду sleep, которая делает паузу на указанное время. Это будет очень наглядный пример, ведь время паузы будет совпадать с временем выполнения команды в time:

time sleep 3
Тайминг в Linux: Как точно измерить время выполнения любой команды

Обратите внимание, что время записано сразу же в трех графах. Пройдемся по каждой из них:

Следующий полезный сценарий – вывод времени, в течение которого загрузится заголовок веб-страницы через утилиту curl. В качестве примера возьмем наш сайт:

time curl -I https://losst.pro
Тайминг в Linux: Как точно измерить время выполнения любой команды

Еще хотелось бы упомянуть ситуацию, когда выполнение команды переводит окно терминала в другой режим, например, при запуске редактора nano для изменения файла /home/root-user/script.txt:

time nano /home/root-user/scripts/main_script.txt

После завершения работы редактора вы увидите общее время, в течение которого вы работали с файлом.

Тайминг в Linux: Как точно измерить время выполнения любой команды

Теперь вы знаете как посмотреть время выполнения команды Linux.

2. Вывод в файл

Информацию о результатах работы команды time можно сохранить в отдельный файл с помощью опции -o. В таком случае в окне терминала они выводиться не будут. Возьмем для примера извлечение содержимого архива ~/data/data.tar.gz с помощью утилиты tar. Информацию о времени выполнения сохраним в новом файле ~/data/data_time.txt. Еще добавим к команде опцию -v, чтобы получить подробные сведения:

sudo time -v -o ~/data/data_time.txt tar -xvf ~/data/data.tar.gz -C ~/data
Тайминг в Linux: Как точно измерить время выполнения любой команды

Файл получится следующего содержания.

Тайминг в Linux: Как точно измерить время выполнения любой команды

При использовании опции -o следует помнить, что она перезаписывает старую информацию в выходном файле на новую. Это применимо при создании новых файлов, но для ведения логов не подходит. С помощью дополнительной опции -a перезапись содержимого заменяется на добавление новой информации:

sudo time -v -a -o ~/data/data_time.txt tar -xvf ~/data/data.tar.gz -C ~/data
Тайминг в Linux: Как точно измерить время выполнения любой команды

3. Вывод с форматированием

Исходный вариант форматирования данных подходит далеко не во всех случаях. В качестве примера мы возьмем ранее использованную команду для извлечения архива, но не станем сохранять данные в файл. При ее выполнении нам интересно:

Для комфортного восприятия каждый пункт будет выводиться в отдельной строке с помощью разделителя n. При этом они все будут подписаны понятным образом.

Вот как выглядит итоговый вариант команды:

sudo time -f "Информация о команде:n%CnЗагруженность CPU: %PnВремя выполнения: %e сек" tar -xvf ~/data/data.tar.gz -C ~/data
Тайминг в Linux: Как точно измерить время выполнения любой команды

Обратите внимание, что весь текст, кроме символов после % и , полностью отображается в терминале. Это удобный способ разметки

Выводы

В рамках данной статьи вы узнали как работает команда time Linux, которая следит за выполнением заданной команды и выдает подробную информацию о времени выполнения и т. д. Основная сложность при ее использовании – понимание опций для форматирования вывода. Но если в них разобраться, то больше никаких проблем не возникнет. Для вашего удобства мы упомянули конкретные примеры использования.

28-10-2025, 04:00
Вернуться назад