Название команды who Linux полностью отображает ее функциональность — она служит для получения информации о пользователях, которые подключены к системе, в том числе и об терминальных сессиях, через которые происходит подключение.
При выполнении команды используются данные из файла /etc/utmp, хотя можно прописать в терминале и другой файл (как правило, используют /etc/wtmp либо /etc/inittab).
Синтаксис who
Синтаксис этой команды достаточно прост и выглядит так:
who опции имя_файла аргументы
Вообще, можно использовать who без каких-либо опций или аргументов. В таком случае отобразится набор данных по умолчанию об учетных записях подключенных пользователей — имя пользователя, название пользовательского терминала, время подключения.
Также можно прописывать команду в виде who am i — тогда она будет идентифицировать конкретно того пользователя, который работает сейчас в терминале (аналогично опции -m).
Опции who
Используя различные опции, можно получать именно ту информацию, которая нужна здесь и сейчас:
- -a (–all) — включает в себя все основные опции.
- – b (–boot) — показывает время загрузки операционной системы.
- -d (–dead) — выводит перечень зомби-процессов.
- – H (–heading) — никак не влияет на получаемую информацию, зато добавляет колонкам заголовки и помогает понять что где находится.
- -m — показать пользователя, который сейчас работает в терминале.
- -r — вывести текущий уровень запуска (runinit);
- -t — показать последнее изменение системных часов;
- -s— вывести только имя, терминальную сессию и время.
- -q— вывести количество авторизованных пользователей.
- -T — данные о терминальной сессии.
- -u — показать активных пользователей.
- –ips — вместо названия хостов показывает ips.
- –lookup — используется в сочетании с –ips, выводит данные, которые основываются на сохраненном IP, если он доступен, а не на названии хоста.
Примеры использования who
Используя опцию -a, мы получаем максимум данных, которыми команда готова снабдить нас без каких-либо дополнительных указаний. В состав этой опции входят опции -b, -d, –login, -p, -r, -t, -T, -u:
Этих данных больше, чем при простом использовании who:
Чтобы узнать только время загрузки системы, достаточно написать в терминале:
Нужно узнать текущий уровень запуска (runinit)? Для этого служит команда who в сочетании с опцией -r:
При использовании опции -s выводятся значения NAME, LINE и TIME — информация, идентичная той, что будет получена без использования каких-либо опций. Все то же самое, но уже с добавлением данных о состоянии терминальной сессии, показывает опция -T.
Состояние — это возможность принимать сообщения от других терминалов. Если рядом с названием терминальной линии стоит «+», как на скриншоте, значит, сообщения могут быть приняты от любого стороннего терминала, в противном случае значение примет вид «-». Если вместо плюса или минуса там находится вопросительный знак, то линия неисправна:
Не упоминается в мануале опция -q, тем не менее, она работает, выводя информацию о количестве пользователей в системе:
С помощью -u можно узнать информацию о тех пользователях, которые активны в данный момент:
На этом же скрине видны изменения, которые происходят при использовании опции -H — у колонок с данными появились заголовки.А вот и зомби-процессы, которые показывает опция -d:
Кстати, поле EXIT при использовании этой опции не выводится. Чтобы увидеть его, следует использовать -a.
Выводы
Команда who Linux — это интересный и полезный инструмент для пользователей Linux. С ее помощью можно узнать всю доступную информацию о пользователях, которые активны в системе сейчас или были активны раньше. Мы постарались как можно подробнее рассказать вам о правилах и нюансах использования who, однако, если у вас остались вопросы, задавайте их в комментариях.
Нет похожих записей
alt=”Creative Commons License” width=”” />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.