Руководство по команде `watch` в Linux для начинающих (5 примеров)

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

Но прежде чем приступить к этому, стоит упомянуть, что все примеры, использованные в этой статье, были протестированы на Ubuntu 22.04 LTS.

Команда watch в Linux

Как уже упоминалось, утилита watch позволяет повторно выполнять команду. Ниже приведен синтаксис этой команды:

watch [options] command

А вот как это описывается в справочной странице утилиты:

watch runs command repeatedly, displaying its output and errors (the
first screenfull). This allows you to watch the program output change
over time. By default, the program is run every 2 seconds. By
default, watch will run until interrupted.

Ниже приведены несколько примеров в формате «вопрос-ответ», которые должны дать вам хорошее представление о том, как работает команда «watch».

В1. Как работает команда watch?

Основное использование команды watch очень просто — все, что вам нужно сделать, это запустить инструмент, указав в качестве входных данных имя команды. Например:

watch date

Вышеуказанная команда выдала следующий результат на моей системе:

Как работает команда watch?

Первая строка вывода показывает, что вывод команды «date» обновляется каждые 2 секунды (это интервал по умолчанию), за чем следует текущая дата и время системы. Вторая строка — это фактический вывод команды «date», который обновляется каждые несколько секунд.

Вопрос 2. Как заставить watch выделять различия между обновлениями?

Как уже объяснялось в предыдущем разделе, вывод отслеживаемой команды регулярно обновляется (по умолчанию каждые 2 секунды). При желании вы также можете заставить ‘watch’ выделять ту часть вывода, которая изменяется между обновлениями.

Это можно сделать с помощью опции командной строки -d. Например:

watch -d date

И вот как теперь команда watch выделяет изменения:

Как заставить watch выделять разницу между обновлениями?

В3. Как настроить интервал обновления?

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

Например:

watch -n 5 date

Эта команда обеспечит обновление вывода каждые 5 секунд. Обратите внимание, что интервалы менее 0,1 секунды не допускаются.

Примечание: Чтобы интервал соблюдался с высокой точностью, используйте опцию командной строки -p. Вот как эта опция описывается в справочной странице:

Make watch attempt to run command every interval seconds. Try it
with ntptime and notice how the fractional seconds stays
nearly) the same, as opposed to normal mode where they continu?
ously increase.

В4. Как отключить заголовок в выводе?

При желании вы также можете попросить ‘watch’ отключить заголовок, отображающий интервал, команду и текущее
время в верхней части экрана, а также следующую пустую строку. Это можно сделать с помощью опции командной строки -t.

Например:

watch -t date

Вот вывод, полученный при выполнении приведенной выше команды:

Как отключить заголовок в выводе?

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

Вопрос 5. Как заставить watch завершиться при изменении вывода?

Если вы хотите, чтобы команда ‘watch’ завершалась после обнаружения изменения в выводе, используйте опцию командной строки -g.

Например:

watch -g free

Таким образом, при любом изменении объема памяти в системе команда watch завершит работу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *