Команда w в Linux: узнайте, кто и что делает в вашей системе прямо сейчас
Вы когда-нибудь задумывались, кто еще работает на вашем Linux-сервере и чем именно он занят? Представьте, что вы можете получить полную картину активности в системе одной короткой командой. Команда `w` — это ваш мощный и моментальный инструмент для наблюдения за всеми пользователями и процессами.
Эта утилита, родственная команде `who`, выдает не просто список залогиненных пользователей. Она показывает, с каких IP-адресов они подключились, сколько времени работают и, что самое главное, какие команды выполняют в реальном времени. Больше не нужно гадать — вся информация перед вами.
Вы узнаете, как интерпретировать ключевые столбцы вывода: USER, TTY, FROM и WHAT. Мы разберемся, что значат загадочные JCPU и PCPU, и как определить, что пользователь просто бездействует.
Но наша статья не ограничивается базовым вызовом `w`. Мы покажем, как гибко управлять выводом с помощью опций. Хотите убрать заголовки для чистого скриптинга? Используйте `-h`. Нужен краткий формат? Ваш выбор — `-s`. Мы научим вас скрывать имена хостов, показывать IP-адреса и даже выводить данные в старом, классическом формате.
Вы освоите комбинирование опций для получения именно той информации, которая вам нужна. А для админов мы припасли секрет работы с опцией `-u`, которая требует прав суперпользователя.
Готовы превратиться в настоящего наблюдателя за своей системой? Откройте терминал и погрузитесь в статью, чтобы раскрыть все секреты команды `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 системах выполняет важную функцию — предоставляет пользователю информацию об активности зарегистрированных на компьютере учетных записей.
При возникновении вопросов, касающихся работы этой команды, не стесняйтесь задавать их в комментариях к этой статье. А также пишите, о чем еще вам было бы интересно почитать — вполне возможно, что статья на предложенную вами тему в скором времени появится на сайте.