Кратко: watch в Linux

Кратко: watch в Linux

А давно я сюда не заглядывал...

В данной статье речь пойдет об утилите watch. Кратко написано как пользоваться.

Watch это unix-утилита, которая запускает определённую программу через фиксированный интервал времени.

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

Debian:

sudo apt-get install watch

RHEL/CentOS:

sudo yum install watch

Fedora:

sudo dnf install watch

openSUSE:

sudo zypper install watch

Arch Linux:

sudo pacman -S watch

С установкой вроде разобрались, теперь разберемся как пользоваться.

Простейший пример использования команды:

watch date

Результат ее работы будет следующий:

Кратко: watch в Linux

Чтобы остановить выполнение команды, нужно воспользоваться сочетанием клавиш Ctrl+C.

По умолчанию интервал времени составляет 2 секунды, но его можно изменить указав ключ -n и интервал в секундах, например:

watch -n 1 date

Результат будет такой:

Кратко: watch в Linux

Так же данная утилита имеет возможность показывать разницу в выдаваемых результатах, подсвечивая изменившийся "вывод" команды. Делается это с помощью ключа -d:

watch -d date

Результат будет таков:

Кратко: watch в Linux

Но недостаток ключа -d заключается в том что при каждом обновлении это "выделение" пропадает. Чтобы этого не происходило, и все выделения с момента запуска watch так и оставались на экране, к ключу -d можно указать параметр cumulative, вот пример:

watch -d=cumulative -n1 date

Вот какой будет результат:

Кратко: watch в Linux

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

Как то раз мне потребовалось посмотреть активные сетевые соединения отобразив какие программы их используют, а так же отфильтровать результат grep'ом ну и обновлять этот вывод каждую секунду.. Ну так вот, синтаксис команды будет немного другим, а если быть точнее, команду нужно будет брать в "одинарные кавычки". Вот пример моей команды:

watch -n 1 'sudo netstat -A inet --program | grep ch'

Результат будет такой:

Кратко: watch в Linux

На этом думаю эту статью можно закончить.

Источники: 

  • http://www.linfo.org/watch.html
  • https://askubuntu.com/questions/469518/how-can-i-watch-the-output-that-was-filtered-with-grep
  • https://ru.wikipedia.org/wiki/Watch
  • http://linux-notes.org/ustanovka-watch-v-unix-linux/