Название команды 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 -a
Этих данных больше, чем при простом использовании who:
Чтобы узнать только время загрузки системы, достаточно написать в терминале:
who --login
Нужно узнать текущий уровень запуска (runinit)? Для этого служит команда who в сочетании с опцией -r:
who -r
При использовании опции -s выводятся значения NAME, LINE и TIME — информация, идентичная той, что будет получена без использования каких-либо опций. Все то же самое, но уже с добавлением данных о состоянии терминальной сессии, показывает опция -T.
Состояние — это возможность принимать сообщения от других терминалов. Если рядом с названием терминальной линии стоит «+», как на скриншоте, значит, сообщения могут быть приняты от любого стороннего терминала, в противном случае значение примет вид «-». Если вместо плюса или минуса там находится вопросительный знак, то линия неисправна:
who -T
Не упоминается в мануале опция -q, тем не менее, она работает, выводя информацию о количестве пользователей в системе:
who -q
С помощью -u можно узнать информацию о тех пользователях, которые активны в данный момент:
who -u -H
На этом же скрине видны изменения, которые происходят при использовании опции -H — у колонок с данными появились заголовки.А вот и зомби-процессы, которые показывает опция -d:
who -d
Кстати, поле EXIT при использовании этой опции не выводится. Чтобы увидеть его, следует использовать -a.
Выводы
Команда who Linux — это интересный и полезный инструмент для пользователей Linux. С ее помощью можно узнать всю доступную информацию о пользователях, которые активны в системе сейчас или были активны раньше. Мы постарались как можно подробнее рассказать вам о правилах и нюансах использования who, однако, если у вас остались вопросы, задавайте их в комментариях.
Дорогие читатели, если вы увидели ошибку или опечатку в статье «Команда who Linux», помогите нам ее исправить! Выделите ошибку и нажмите одновременно клавиши «Ctrl» и «Enter». Мы получим ваше сообщение и внесём исправления в ближайшее время.
Источник: winzen.ru