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

Содержание
  1. Команда time в Linux
  2. Версии Time Command
  3. Использование команды времени Linux
  4. Выводы
  5. Отслеживание времени выполнения команд с помощью утилиты time
  6. 1: Время выполнения команды
  7. 2: Использование ресурсов
  8. Заключение
  9. Вывести время выполнения команд в Linux
  10. Команда time
  11. Вызов консольной команды time
  12. Другой time
  13. Параметры вызова внешней команды time
  14. Внешний time по умолчанию
  15. Измерение времени выполнения команд в скриптах
  16. Полезные команды Linux
  17. Создание папок в терминале
  18. Ожидать завершения команды и выключить компьютер
  19. Повторить последнюю команду
  20. Вызвать последнюю команду которая начиналась с символов
  21. Посмотреть ip адрес
  22. Форматирование вывода
  23. Динамический просмотр лога
  24. Очистить терминал
  25. Подключение RAM диска
  26. Узнать архитектуру системы
  27. Открыть файл на определенной строке
  28. Время выполнения команды
  29. Автоматическое удаление старых файлов
  30. Убить все процессы из консоли
  31. Создать пустой файл
  32. Завершение

Команда time в Linux

Команда time используется для определения того, сколько времени требуется для выполнения данной команды. Это полезно для тестирования производительности ваших скриптов и команд.

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

Версии Time Command

Как Bash, так и Zsh, наиболее широко используемые оболочки Linux, имеют свои собственные встроенные версии команды time, которые имеют приоритет над командой времени Gnu.

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

Чтобы использовать команду Gnu time, вам необходимо указать полный путь к двоичному файлу времени, обычно /usr/bin/time , использовать команду env или использовать начальную обратную косую черту time которая предотвращает использование обоих и встроенных модулей.

Gnu time позволяет форматировать вывод и предоставляет другую полезную информацию, такую как ввод-вывод памяти и вызовы IPC.

Использование команды времени Linux

В следующем примере мы собираемся измерить время, необходимое для загрузки ядра Linux с помощью инструмента wget :

То, что будет напечатано в качестве вывода, зависит от версии используемой вами команды time:

  • реальное или общее или прошедшее (время настенных часов) — это время от начала до конца разговора. Это время с момента нажатия клавиши Enter до момента завершения команды wget .
  • user — количество процессорного времени, проведенного в пользовательском режиме.
  • system или sys — количество процессорного времени, потраченного в режиме ядра.

Выводы

К настоящему времени вы должны хорошо понимать, как использовать команду времени. Если вы хотите узнать больше о команде Gnu time, посетите страницу руководства time .

Источник

Отслеживание времени выполнения команд с помощью утилиты time

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

Командная строка предлагает множество одноцелевых утилит, благодаря которым нет необходимости писать дополнительный код. Команда time – одна из таких команд. Важно помнить, что команда time никак не связана с командой date, которая выводит дату и время системы. Утилита time измеряет время выполнения программы или сценария и сообщает вам полученное значение.

В этом мануале вы узнаете, как использовать команду time и как читать ее выходные данные.

Примечание: Если не указано иное, примеры в этом руководстве выполняются в оболочке Bash в Linux.

1: Время выполнения команды

Чтобы рассчитать продолжительность выполнения команды, укажите в ней time в качестве префикса.

Метод выполнения time зависит от вашей операционной системы. В некоторых оболочках (bash и zsh, например) утилита time является встроенной командой; но также есть и отдельная команда GNU time – и ее аргументы отличаются от тех, что использует встроенная time.

Используйте следующую команду, чтобы посмотреть, как работает time в вашей системе:

Вы получите такой результат:

time is a shell keyword
time is /usr/bin/time

В этом случае есть и встроенная команда оболочки time, и версия time , установленная в каталог /usr/bin/time.

Если вы хотите использовать GNU-версию time, вы можете поставить перед ней обратный слеш:

Если вы этого не сделаете, оболочка будет использовать встроенную версию.

Примечание: Оболочка fish не имеет собственной реализации time. Если вы используете fish, вам нужно убедиться, что у вас установлена GNU команда time.

Оба метода служат одной и той же цели, хотя версия GNU имеет более продвинутые параметры форматирования.

Читайте также:  Нужно ли форматировать диск при переустановке windows

Давайте исследуем время выполнения команды tree в корне вашей файловой системы. Эта команда отобразит визуальное дерево всех ваших файлов и каталогов.

Команда tree не всегда установлена по умолчанию, но в системах Ubuntu и Debian вы можете установить ее с помощью apt:

sudo apt install tree

В macOS ее можно установить с помощью Homebrew:

brew install tree

Теперь, когда команда tree установлена, используйте ее, чтобы просмотреть все файлы в системе, и добавьте к ней префикс time, чтобы узнать, сколько времени это займет:

Вы увидите, как прокручивается информация о файлах. В конце концов команда покажет вам потраченное время:

# Здесь будет вывод команды tree.
166590 directories, 1568127 files
tree / 12.24s user 10.37s system 66% cpu 33.827 total

Обратите внимание, что выполненная вами команда tree / повторяется командой time. Вывод отображает несколько фрагментов информации, но пока мы сосредоточимся на значении total:

tree / 12.24s user 10.37s system 66% cpu 33.827 total

Именно столько времени потребовалось для выполнения команды в секундах.

Команда time также работает, если вы отменили выполнение команды с помощью Ctrl+C. Если вы снова запустите time tree / и быстро нажмете Ctrl+C, вывод команды tree остановится, а на экране будут представлены результаты time за то время, что успела поработать команда до того, как вы ее остановили.

2: Использование ресурсов

Вывод time включает три значения в дополнение к общей продолжительности выполнения команды, total.

tree / 12.24s user 10.37s system 66% cpu 33.827 total

Первое значение – user. Это общее количество времени (в CPU-секундах), которое команда провела в пользовательском режиме.

Следующее значение, system – это количество времени (тоже в CPU-секундах), которое команда провела в режиме системы или ядра.

Наконец, cpu – это процент использования ЦП, выделенного команде.

Разница между пользовательским и системным временем заключается в использовании ЦП, которое разбивается по уровням доступа. Когда код выполняется в пользовательском режиме, он не имеет прямого доступа к оборудованию или памяти и должен полагаться на API системы. Так работает большая часть кода в вашей системе, благодаря такой его изоляции всегда можно исправить сбои.

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

Заключение

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

Источник

Вывести время выполнения команд в Linux

Измерить время выполнения команды в Linux не просто, а очень просто. Но это только на первый взгляд. Давайте посмотрим на команду time более внимательно.

Команда time

Вызов консольной команды time

Если стоит задача измерить только время выполнения команды в Linux, то все что вам необходимо — команда time.

Синтаксис данной команды очень простой:

Пример вызова — замеряем время выполнения команды sleep 1:

С помощью ключа -p можно заставить команду выводить время выполнения в сжатом Posix формате:

Другой time

Теперь разберемся, что же за команду мы выполняем:

Вот оно что! Оказывается, time, который мы вызывали — это внутренняя команда Shell.

А теперь попробуем сделать так:

А это уже внешняя команда, расположенная по пути: /usr/bin.

Попробуем вызвать ее:

Параметры вызова внешней команды time

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

Применяется для сбора статистики из программ с пользовательским интерфейсом или выводящих информацию в поток ошибок.

-a, —append Дополняет существующий файл новой информацией. Применяется совместно с опциями ‘-o’ или ‘—output’ . -f FORMAT, —format FORMAT

Используется шаблон FORMAT для вывода статистики.

Формат вывода по умолчанию:

%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps

Описание используемых шаблонов приведено в конце статьи.

—help Вывод краткой помощи и завершение команды. -p, —portability

Выводит информацию по стандарту POSIX 1003.2:
real %e
user %U
sys %S

-v, —verbose Выводит расширенную статистику использования ресурсов с описанием каждого параметра. —quiet «Тихий режим» — подавление вывода команды, в том числе и ошибок. -V, —version Вывести версию команды time и завершить выполнение.

Читайте также:  Сочетание клавиш для переключения языка mac os

Внешний time по умолчанию

Чтобы явно указать, какую из команд мы хотим вызвать, можно воспользоваться следующим способом:

Для того, чтобы по умолчанию запускалась внешняя команда time достаточно выполнить:

Это установит внешнюю команду time по умолчанию для текущей сессии.

Чтобы применить эти изменения для всех последующих сессий, добавьте команду alias в файл

/.bashrc (изменения для текущего пользователя) или /etc/bash.bashrc (изменения затронут всех пользователей системы).

Измерение времени выполнения команд в скриптах

Довольно часто необходимо замерить время выполнения какого-либо участка кода в скрипте bash.

Для этого в исследуемый скрипт добавим немного кода:

Источник

Полезные команды Linux

Терминал Linux очень гибкий и полезный инструмент. С помощью него можно сделать что угодно и во многих случаях даже намного эффективнее чем в графическом интерфейсе. Команды можно объединять между собой, перенаправлять вывод одной команды, на вход другой, комбинировать их различным образом.

Это делает их применение еще более эффективным. В сегодняшней статье я хочу поделиться несколькими полезными командами linux, которые я открыл для себя во время использования этой операционной системы и которыми до сих пор пользуюсь для автоматизации рутинных действий.

В качестве командной оболочки используется самая популярная — bash. Также для некоторых задач нам понадобится демон планирования выполнения задач cron.

Некоторые из этих команд упрощают выполнение той или иной задачи, некоторые полностью выполняют нужные действия за пользователя. Возможно, не все они будут вам полезны, так как, некоторые команды нужны только веб-мастерам, другие системным администраторам, а еще одни обычным домашним пользователям. Но давайте перейдем к списку полезные команды для линукс.

Создание папок в терминале

Для создания папки в терминале используется команда mkdir. Вот так она выглядит:

Но не все знают о ее дополнительных возможностях. Чтобы создать несколько вложенных папок используйте команду p:

mkdir -p /mnt/foo/bar/

Создать несколько папок за один раз:

Создать папку и перейти в нее:

mkdir /home/foo/doc/bar && cd $_

Кстати, синтаксис фигурных скобок поддерживают и другие команды для Linux терминала.

Ожидать завершения команды и выключить компьютер

Это скорее не команда, а небольшая стандартная функция оболочки Bash, о которой не все знают. Иногда нам нужно оставить на выполнение какую-нибудь долго работающую утилиту, например, обновление системы, а самим куда-то отойти. И при этом мы хотим чтобы после завершения работы утилиты компьютер автоматически выключился.

Можно просто объединить команды с помощью стандартного синтаксиса Bash. Для объединения используются символы && и ||. Первый — выполнить другую команду если первая завершилась успешно, второй если первая завершилась ошибкой.

Например, обновить систему и если все хорошо выключить PC:

apt update && apt upgrade && shutdown -h now

Или выключить компьютер если обновление не удалось:

apt update && apt upgrade || shutdown -h now

Или выключить независимо от того произошла ошибка или нет:

apt update && apt upgrade ; shutdown -h now

Здесь приведена команда обновления Ubuntu, но в других дистрибутивах нужно заменить эту команду на свою.

Повторить последнюю команду

Если мы уже начали говорить о возможностях Bash пойдем дальше. Символ !! означает выполнить последнюю команду. Часто ли у вас случалось такое, что вы набираете команду нажимаете Enter и понимаете, что для ее работы нужно было использовать sudo? Тогда приходиться набирать ту же команду только уже правильно. Но можно пойти другим путем, выполнить:

Кроме символа !! В Bash есть еще несколько указателей на команды:

  • !^ — первый аргумент предыдущей команды;
  • !$ — последний аргумент предыдущей команды;
  • !* — все аргументы предыдущей команды;
  • !-2 — вторая с конца команда;
  • *— содержимое текущего каталога.

А вот так можно сохранить последнюю выполненную команду в скрипт:

Ещё о подобных возможностях Bash можно почитать здесь.

Вызвать последнюю команду которая начиналась с символов

И еще о возможностях Bash. Например, вы помните что подключались в последний раз к определенному узлу по SSH, и теперь вам нужно подключиться к нему снова. Чтобы не вводить полностью команду можно набрать знак «!» и символы с которых начиналась команда:

Будет выполнена последняя команда, которая начиналась на ssh.

Посмотреть ip адрес

Часто возникает необходимость быстро узнать ip адрес своей машины. Для этого есть легко запоминающаяся команда, использующая curl и сайт ifconfig.me:

Форматирование вывода

Многие команды Linux выводят данные, разделяя столбцы пробелами. Одна из них mount. И естественно, в этом выводе трудно что-либо разобрать. Для разделения столбцов табуляциями используйте утилиту column:

Читайте также:  Установка windows без компьютера

mount | column -t

Динамический просмотр лога

Допустим, есть у нас лог файл в который пишется определенная информация и мы хотим видеть все изменения сразу, на лету. Тогда используйте команду tail с опцией -f:

tail -f /адрес/лог/файла

Будет выведено 8 последних строк из лога файла, а затем они будут постоянно обновляться.

Очистить терминал

Вывод команд, если во время их разработки были допущены некоторые ошибки может сломать форматирование строк терминала. Или просто может понадобится стереть всю лишнюю информацию. Для этого есть аж две полезные команды linux, первая:

Первая только переводит курсор вверх страницы, вторая добавляет несколько пустых строк. Ещё можно сбросить терминал нажав сочетание клавиш Ctrl+L.

Подключение RAM диска

Если вам нужно немного дискового пространства с высокой скоростью работы, в Linux можно легко подключить немного оперативной памяти в корневую файловую систему:

mount -t tmpfs tmpfs /mnt -o size=1024m

В папку /mnt будет подключен RAM диск размером 1024 мегабайт.

Узнать архитектуру системы

Этой простой командой можно быстро узнать разрядность системы:

Открыть файл на определенной строке

Это не команда, а просто малоизвестная функция консольных редакторов. Очень полезная для программистов. Вот, например, сообщает программа, что у вас ошибка в 55 строке, вместо того чтобы самому искать ту сроку просто набираете:

nano +55 /sourcefile

vim +55 /sourcefile

И оказываетесь сразу на нужной строке.

Время выполнения команды

Хотите узнать сколько времени выполняется та или иная команда? Просто добавьте перед ней вызов утилиты time. Например:

Эту команду также можно использовать в качестве секундомера. Просто выполните:

А затем нажмите Ctrl+D когда нужно будет узнать сколько времени прошло.

Автоматическое удаление старых файлов

Все мы часто качаем файлы из интернета, это торренты, фильмы, музыка и т д. И все это со временем накапливается в папке загрузки если ненужное вовремя не удалять, а нужное не перемещать в другие папки. Тогда папка загрузок начинает напоминать огромную свалку где вообще нереально что-то найти. У себя я всегда время от времени сортировал и удалял файлы, но когда видел такое у знакомых брался за голову. Есть способ упростить очистку папки загрузок.

Утилита find позволяет находить все файлы, созданные позже определенной даты и выполнять с ними нужное действие. Все нужные файлы будем вовремя рассортировывать и перемещать по папкам назначения, а все что останутся в загрузках будут через два дня автоматически удаляться. Знание что файлы будут удалены заставит их вовремя переместить куда нужно.

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

find /home/user/Downloads/ -type f -mtime +180 -exec ‘rm -f <>‘

Если не хотите полностью удалять файлы можно перемещать их в корзину:

find /home/user/Downloads/ -type f -mtime +180 -exec ‘mv <>

Подробнее о работе find можно почитать тут. Для полной автоматизации добавим выполнение этой команды каждый день в расписание cron:

0 0 * * * find /home/user/Downloads/ -type f -mtime +180 -exec ‘rm -f <>‘

Теперь давние файлы будут автоматически удаляться каждый день.

Убить все процессы из консоли

Если у вас небольшое количество оперативной памяти на компьютере и вы любите открывать очень много вкладок в Chromium, то программа а вместе с ней и окружение рабочего стола могут прочно зависать. Браузер создает для каждой вкладки отдельный процесс, поэтому пока планировщик памяти ядра поймет кто виноват в сбое и что нужно делать уйдет много времени, а пытаться убить каждую вкладку по отдельности очень долгое занятие. Есть команда, с помощью которой можно из терминала одним махом закрыть все вкладки:

ps aux | grep chromium | awk ‘‘ | xargs kill -TERM

Или намного проще:

Здесь мы получаем список всех процессов в ps, выбираем из них chromium, потом отбираем второй столбец, то есть PID, и с помощью xargs вызываем kill для каждой вкладки. Точно таким же способом можно уничтожить любое приложение создающее много процессов.

Создать пустой файл

Иногда возникает необходимость создать пустой файл, например, когда он нужен для конфигурации какого-либо сервиса или чего-то тому подобного. Для этого можно воспользоваться командой touch:

Для создания файла определённого размера надо использовать команду dd:

dd if=/dev/zero of=/путь/к/файлу bs=1M count=размер_в_мегабайтах

Завершение

Вот и подошли к концу наш список. Если вы знаете другие полезные команды Linux, поделитесь ими в комментариях!

Источник

Оцените статью