Команда w Linux

Команда w — «родная сестра» команды who, о которой мы уже писали. Работает она благодаря одноименной сервисной программе. С помощью w пользователи Linux получают информацию об учетных записях, которые были активны в системе с момента включения компьютера, а также о действиях, воспроизводимых с каждого аккаунта.

Используя команду w, можно узнать имена активных учетных записей, время их регистрации в системе и бездействия, названия терминалов, соединенных со стандартным вводом (tty), а также JCPU (время, использованное всеми процессами под управлением tty) и PCPU (время, использованное текущим процессом). Текущие процессы, которыми занята каждая из учетных записей, также будут отображены в выводе команды.

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

Запись команды w в пользовательском терминале выглядит так:

$ w опции имя_аккаунта

Впрочем, заморачиваться не обязательно — можно написать только букву w. В таком случае утилита сообщит все доступные ей данные обо всех учетных записях. Если же нужно получить информацию без лишнего «мусора», стоит задать команде один или несколько параметров. На данный момент доступны такие опции:

  • -h (--no-header) — отказ от вывода заголовков.
  • -u (--no-current) — приказ определять JCPU и PCPU, игнорируя имена учетных записей.
  • -s (--short) — краткий формат вывода.
  • -f (--from) — управление выводом имени хоста или IP-адреса, с которого был осуществлен вход в систему.
  • -i (--ip-addr) — замена информации об имени хоста на IP-адрес.
  • -o (--old-style) — отображение вывода в старом формате.

Примеры использования команды w

Начнем с самого простого варианта — команды без опций:

w

Её использование оправдано, если нужно получить полную информацию обо всех учетных записях, работающих на компьютере. Вывод выглядит следующим образом:

Если к w linux применить параметр -h, заголовки у столбцов исчезнут. Новичкам так поступать не стоит, а то придется читать вывод наугад.

w -h

Тем, кто независимо от наличия или отсутствия заголовков, не совсем понимает, о чем идет речь в выводе команды, дадим подсказку-расшифровку:

  • USER – имя учетной записи.
  • TTY – название терминала.
  • FROM – имя хоста или IP адрес, с которого пользователь вошел в систему под конкретной учетной записью.
  • LOGIN – время, когда та или иная учетная запись впервые с момента включения машины зарегистрировалась в системе.
  • IDLE – время, когда пользователь проявил активность с определенного аккаунта.
  • JCPU – время, использованное всеми процессами, запущенными в терминале tty.
  • PCPU – время, использованное текущим процессом (каким именно — можно посмотреть в столбце WHAT).
  • WHAT – текущие процессы и команды, которыми занят пользователь под конкретной учетной записью.

Опция -u заставляет команду подсчитывать время, использованное текущим процессом и всеми процессами в tty, не обращая внимания на названия учетных записей. Использовать ее следует от имени администратора (добавляя перед командой  su либо sudo):

sudo w -u

Для сравнения на скриншоте показан вывод команды с параметром -u и без оного.

Опция -s заметно урезает количество данных, выводимых командой. Время входа в систему, JCPU и PCPU показаны не будут.

w -s

А вот  -f может работать по-разному. В зависимости от того, как настроена утилита w, эта опция включает или выключает вывод имени хоста (столбец FROM в терминале). Если по умолчанию этот самый вывод включен, имя хоста будет исключено из перечня демонстрируемых данных. В противном случае имя хоста появится в выводе команды.

w -f

Чтобы вместо имени хоста отображался IP-адрес, достаточно использовать команду w c параметром -i.

w -i

Давние пользователи Linux оценят параметр -o. Если применить его к команде w, вывод будет выглядеть так, как раньше — вместо числовых данных в столбцах IDLE, JCPU и PCPU появятся пустые строчки. Правда, произойдет это лишь при одном условии — когда количество времени, подсчитанное командой, составляет меньше 60 секунд.

w -o

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

w -sh

Что же касается имени аккаунта, то его имеет смысл указывать в записи команды, если на машине существует несколько разных учетных записей (к примеру, admin, user и guest_session_for_cat_Murzik).

Выводы

Команда w Linux системах выполняет важную функцию — предоставляет пользователю информацию об активности зарегистрированных на компьютере учетных записей.

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

Ответить

Сообщить об опечатке

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