Команда who – настоящая палочка-выручалочка, благодаря которой так легко раздобыть всю необходимую информацию о пользователях, когда-либо работающих за конкретным компьютером. Так как операционная система Linux является многопользовательской, она отслеживает сеансы всех юзеров сети (кто работал за ПК, время старта и окончания его сеанса и прочее). Большинство пользователей операционной системы Linux отзываются об этом инструменте положительно. Он прекрасно показывает себя на практике.
Содержание
Синтаксис
Рассмотрим синтаксис.
who параметры файл
Основные параметры:
- -a - читает файл /etc/utmp, включает все основные опции;
- -b - показывает дату и время загрузки операционной системы;
- -d - показывает зомби-процессы.
- -u - выводит активных пользователей.
- -s - выводит имя, терминальную сессию и время, данный параметр используется по умолчанию;
- -T - информация о терминальной сессии;
- -q - количество пользователей в системе в данный момент;
- -r - показывает уровень процесса init.
Обычно для выполнения команды who берется информация файла: "/etc/utmp".
Альтернативные файлы: "/etc/wtmp" и "/etc/inittab".
Примеры
Если не использовать опции и аргументы, на экране появятся данные по умолчанию, включающие в себя информацию об учетных записях (тех, кто подключен к системе). Чтобы ознакомиться с данными о пользователе, который изъявил желание обратиться к терминалу прямо сейчас («спросить» у системы о самом себе), необходимо использовать команду «who am i».
$ who am i
Для получения обширной информации о подключенных пользователей достаточно ввести команду в виде:
$ who -a
Каких-либо дополнительных указаний в этом случае не потребуется. Если использовать исключительно «who», данных будет сравнительно меньше. Детализировать этот запрос или нет – решать только вам. Смотрите по ситуации.
Время загрузки системы можно посмотреть по команде:
$ who --login
Впишите её в терминале и ознакомьтесь с результатами запроса.
Чтобы посмотреть «runinit» (текущий уровень запуска), впишите в команду соответствующую опцию. Это будет выглядеть так:
$ who -r
Опция -s не имеет особого смысла, поскольку она провоцирует вывод таких стандартных значений, как «Имя пользователя», «терминальная линия», «время начала/окончания сеанса». Эта информация доступна и без добавления каких-либо опций. Едем дальше.
С помощью аргумента -T можно узнать состояние терминальной сессии. На практике это выглядит следующим образом:
$ who -T
Для чего нужна информация о состоянии терминальной сессии? От её состояния зависят некоторые нюансы в работе пользователя. Обратите внимание на название любой сессии, отображенной в окошке терминала. Если рядом с ним указан значок «+», значит, пользователь может получать сообщения от других терминалов. Если такой возможности нет, рядом с названием сессии будет указан значок «-».
При неисправности линии появится вопросительный знак.
При необходимости узнать, сколько пользователей подключено к системе, вводится:
$ who -q
Чтобы посмотреть, кто из пользователей активен в данный момент времени, введите команду:
$ who -u -H
При добавлении опции -d отображаются зомби-процессы:
$ who -d
Важное примечание: при использовании опции -d нельзя увидеть поле EXIT в окне терминала. Оно появляется лишь при добавлении опции -а.
Заключение
Основная задача утилиты who заключается в получении информации о пользователях, подключенных к системе. Вторичная задача – сбор данных о терминальных сессиях, благодаря которым и происходит их подключение.
Благодаря выше предоставленным примерам команд вы тоже можете ощутить простоту отслеживания данных о user системы. Всего несколько нажатий клавиш – и ответы на вопросы найдены.