Введение
В этой статье мы объясняем команду who
включенную в пакет GNU coreutils.
who
— утилита командной строки, которая выводит список зарегистрированных в данный момент пользователей. Он также может отображать текущий уровень запуска, время последней загрузки системы и многое другое.
Как использовать команду who
Основной синтаксис команды who
следующий:
who [OPTION]... [ FILE | ARG1 ARG2 ]
При вызове без каких-либо параметров или аргументов вывод выглядит следующим образом:
who
root pts/0 2020-11-18 21:20 (10.10.0.2)
noviello pts/1 2020-11-18 21:11 (10.10.0.8)
who
создаст отформатированный список всех пользователей, которые в настоящее время вошли в систему.
Каждая строка содержит четыре поля, разделенные одним или несколькими пробелами:
- Имя зарегистрированного пользователя.
- Пользовательский терминал.
- Время входа пользователя.
- Имя хоста или IP-адрес, с которого вошел пользователь. Чтобы принудительно установить Ips, используйте параметр
--ips
.
Если вы хотите напечатать заголовки столбцов, добавьте параметр -H
( --heading
):
who -h
NAME LINE TIME COMMENT
root pts/0 2020-11-18 21:10 (10.10.0.2)
noviello pts/1 2020-11-18 21:11 (10.10.0.8)
Команда извлекает информацию о системе и о том, кто вошел в систему, из файла /var/run/utmp
. Если вы хотите использовать другой файл, передайте путь к файлу команде.
who
принимает два необязательных аргумента. При вызове с двумя аргументами команда выводит только информацию о терминале, связанном с текущим пользователем. Тот же вывод отображается при использовании параметра -m
.
Вы можете использовать любые два аргумента:
who am i
Каждая из приведенных выше команд будет печатать одну и ту же информацию:
noviello pts/1 2020-11-18 21:11 (10.10.0.8)
Командные параметры
who
принимает несколько вариантов, которые обычно редко используются.
Опция -b
, --boot
сообщает команде who
что нужно распечатать время последней загрузки системы:
who -b
system boot 2020-07-21 19:02
Чтобы получить список всех мертвых процессов, используйте опцию -d
, --dead
:
who -d
Опция -r
, --runlevel
, указывает команде who
показывать текущий уровень выполнения:
who -r
run-level 5 2020-07-21 20:02
Чтобы получить только имена пользователей и количество зарегистрированных пользователей, используйте параметр -q
, --count
:
who -q
root noviello
# users=2
Параметр -a
, --all
заставляет выводить всю информацию:
who -a
system boot 2020-07-21 17:02
LOGIN tty1 2020-07-21 17:02 673 id=tty1
run-level 5 2020-07-21 17:02
root - pts/0 2020-11-18 21:10. 2212314 (89.205.111.11)
pts/2 2020-10-11 11:19 1363538 id=ts/2 term=0 exit=0
noviello + pts/1 2020-11-18 21:12 02:46 2212387 (89.205.111.11)
Вывод
Команда who
выводит список всех зарегистрированных в данный момент пользователей.
Чтобы получить больше информации о вошедших в систему пользователях, проверьте команду w
.