Практическая работа - служебные команды терминала
Цель работы
Научиться основным навыкам работы в многопользовательском режиме, переключению между терминалами и самым базовым командам - tty, who, whoami, sudo, su, less, who, exit, shutdown, grep.
Основное задание
- Откройте первый виртуальный терминал и залогиньтесь.
- Выполните команду tty.
- Выполните команду pwd.
- Повторите предыдущие пункты для второго и третьего виртуального терминала.
- Откройте эмулятор терминала в графическом режиме и введите команду tty.
- Выполните команду who. Посмотрите в справке, что она показывает.
- Выполните команду whoami. Прочитайте справку про нее.
- Перейдите в первый виртуальный терминал и разлогиньтесь.
- Вернитесь в графическое окружение и еще раз просмотрите вывод команды who. Объясните ее результат.
- Откройте файл /etc/passwd при помощи программы-пейджера.
- Найдите в этом файле запись о вашем текущем пользователе при помощи команды grep.
- Изучите команду man и прочитайте справку по всем командам, использованным в данной лабораторной.
Методические указания
Операционная система Linux, как и ее предшественник - UNIX изначально создавалась для многопользовательской работы. Для организации многопользовательской работы при загрузки системы создается семь виртуальных устройств (это число может меняться в зависимости от дистрибутива, но семь - это стандартное количество). Раньше предполагалось, что за ними будут работать из разных мест при помощи оконечных устройств (терминалов или тонких клиентов), но сейчас это уже не очень актуально. Обычно на последнем, седьмом терминале запускается графическая оболочка, если она установлена в данном дистрибутиве.
Для того, чтобы узнать, номер текущего терминала, можно использовать команду tty (см. man tty). Команда очень проста и не требует параметров. Пример работы tty:
1
2
$ tty
/dev/tty1
Чтобы узнать, какие пользователи в каких терминалах залогинены в системе, можно использовать команду who:
1
2
3
4
$ who
root tty1 Feb 17 17:11
user tty2 Feb 17 17:12
user tty5 Feb 17 17:40
Иногда возникает необходимость выполнить некоторые действия от имени другого пользователя (например, от имени root). Это можно сделать, открыв новый терминальный сеанс, но можно и иначе, в текущем сеансе. Для этого используется команда su. Эта команда по умолчанию (без параметров) открывает сеанс суперпользователя, выполняющийся внутри сеанса непривилегированного пользователя. Пример выполнения команды su:
1
2
3
$ su
Password:
[root@localhost user]#
Еще один пример, с явным указанием имени пользователя:
1
2
3
$ su stud
Password:
[stud@localhost ~]$
Для окончания пользовательского сеанса, запущенного командой su, или выхода из терминала, используется команда exit или комбинация клавиш Ctrl+D. В любом случае система закроет сеанс и отобразит строку приглашения.
Очень часто при работе с командной строкой приходится просматривать довольно длинные файлы. Для того, чтобы можно было перемещаться по файлу, содержимое которого не помещается на одном экране были созданы специальные программы-пейджеры. Это не текстовый редактор, а только средство просмотра. Самый стандартный на сегодня - программа less. Ей можно передать имя файла таким образом:
1
$ less filename
Познакомьтесь с ней, прочитав интерактивную справку. Для того, чтобы закрыть ее необходимо нажать кнопку q.
Также часто приходится искать определенную строку в файле или в выводе других команд. Для этого используют утилиту grep. Ей передаётся два параметра - строка поиска и имя файла вот так:
1
grep koroteev /etc/passwd
Дополнительная информация об указанных командах доступна в справочном руководстве формата man или info.
Еще одно важное замечание. При работе с эмулятором терминала в графическом режиме, копирование и вставка работают с комбинациями клавиш Ctrl + Shift+C и Ctrl + Shift+V. Это потому, что комбинацией клавиш Ctrl + C аварийно завершается (прерывается) выполнение текущей команды.
Контрольные вопросы
- Какой каталог будет установлен текущим сразу же после входа пользователя в систему?
- Какой каталог будет установлен текущим после выполнения команды su?
- Какой терминал (tty) будет открыт по нажатию Ctrl+F7?
- Как и где в Linux можно вводить команды командной строки?
Задания для самостоятельного выполнения
- Подключитесь к данной машине через ssh и введите команду who. Объясните, что значит ее результат.
- Загрузить систему в текстовом режиме и войти с собственной учетной записью
- Ознакомиться со справкой по команде shutdown;
- С её помощью перезагрузить виртуальную машину;
- С её помощью выключить виртуальную машину;
- Запустить отложенное выключение виртуальной машины на 2 минуты.