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