Работа в Linux при помощи командной строки напоминает диалог с системой: пользователь вводит команды (реплики), получая от системы ответные реплики, содержащие сведения о произведённых операциях, дополнительные вопросы к пользователю, сообщения об ошибках или просто молчаливое согласие выполнить следующую команду.
Реплики в таком диалоге строго чередуются, а собеседники не могут говорить одновременно — в естественном диалоге так никогда не происходит. Скорее это напоминает диалог в учебнике иностранного языка. Однако и в диалоге с Linux у собеседников есть возможность «перебить» друг друга — об этом речь пойдёт в последующих лекциях.
Простейшая команда в Linux состоит из одного «слова» — названия программы, которую необходимо выполнить. Одну такую команду (passwd
) Мефодий уже использовал для того, чтобы изменить свой пароль. Теперь Мефодий решил вернуться на одну из виртуальных консолей, на которой он зарегистрировался, и попробовать выполнить несколько простых команд.
[methody@localhost methody]$ whoami
methody
[methody@localhost methody]$
Пример 8. Команда whoami
Название этой команды происходит от английского выражения «Who am I?» («Кто я?»). В ответ на эту команду система вывела только одно слово: «methody
» и завершила свою работу, о чём свидетельствует вновь появившееся приглашение командной строки. Программа whoami
возвращает название учётной записи того пользователя, от имени которого она была выполнена. Эта команда полезна в системах, в которых работает много разных пользователей, чтобы не воспользоваться по ошибке чужой учётной записью. Однако, в приглашении командной строки зачастую указывается имя пользователя (как и в наших примерах), поэтому без команды whoami
можно обойтись. Следующий пример демонстрирует программу, которая выдаст Мефодию уже больше полезной информации: who
(«Кто»).
[methody@localhost methody]$ who
methody tty1 Sep 23 16:31 (localhost)
methody tty2 Sep 23 17:12 (localhost)
[methody@localhost methody]$
[methody@localhost methody]$ who am i
methody tty2 Sep 23 17:12 (localhost)
[methody@localhost methody]$
Пример 9. Команда who who
выводит список пользователей, которые в настоящий момент зарегистрированы в системе (вошли в систему).
Данная программа выводит по одной строке на каждого зарегистрированного пользователя: в первой колонке указывается имя пользователя, во второй — «точка входа» в систему, далее следует дата и время регистрации и имя хоста. Из выведенной who информации можно заключить, что в системе дважды зарегистрирован пользователь methody
, который сначала зарегистрировался на первой виртуальной консоли (tty1
), а примерно через сорок минут — на второй (tty2
). Конечно, Мефодий и так это знает, однако администратору больших систем, когда пользователи могут зарегистрироваться со многих компьютеров и даже по Сети, программа who
может быть очень полезна. Могло создаться впечатление, что who
— очень умная программа, понимающая английский, но это не так. Из всех английских слов она понимает только сочетание «am i» — таким способом Мефодий узнал, за какой консолью он сейчас работает.
Ещё одна программа, выдающая информацию о пользователях, работавших в системе в последнее время — last
. Выводимые этой программой строки напоминают вывод программы who
, с той разницей, что здесь перечислены и те пользователи, которые уже завершили работу.
В некоторых Linux-системах эта программа может называться lastlog
.
[methody@localhost methody]$ last
methody tty2 localhost Thu Sep 23 17:12 still logged in
methody tty1 localhost Thu Sep 23 16:31 still logged in
cacheman ??? localhost Thu Sep 23 16:15 - 16:17 (00:01)
cacheman ??? localhost Thu Sep 23 16:08 - 16:08 (00:00)
cyrus ??? localhost Thu Sep 23 16:08 - 16:08 (00:00)
reboot system boot 2.4.26-std-up-al Thu Sep 23 16:03 (04:13)
Пример 10. Команда last
В этом примере Мефодий неожиданно обнаружил кроме себя самого неизвестных ему пользователей cacheman
и cyrus
— он совершенно точно знает, что не создавал учётных записей с такими именами. Это псевдопользователи (или системные пользователи) — специальные учётные записи, которые используются для работы некоторыми программами. Поскольку эти «пользователи» регистрируются в системе без помощи монитора и клавиатуры, их «точка входа» в систему не определена (во второй колонке записано «???
»). В выводе программы last
появляется даже пользователь reboot
(перезагрузка). В действительности такой учётной записи нет, программа last
таким способом выводит информацию о том, когда была загружена система.