Учебно-методические материалы для студентов кафедры АСОИУ

ЛР №2. Терминалы и текстовый режим

Цель работы

Научиться основным навыкам работы в многопользовательском режиме, переключению между терминалами и выполнению заданий от имени другого пользователя.

Методические указания

Текстовый режим Линукс, несмотря на то, что внешне напоминает окно ОС DOS, принципиально отличается от нее по своим возможностям. Дело в том, что даже в текстовом режиме Линукс, как и все unix-подобные системы, остается многозадачной системой. Более того, изначально созданная как многопользовательская система, Линукс позволяет одновремено работать различным пользователям. Для обеспечения такой возможности используется концепция терминалов.

Изначально, терминал - это интерфейс ввода/вывода, состоящий из физических устройства ввода (клавиатура) и вывода (дисплей). Терминал предназначен исключительно для ввода информации и ее отображения на экране. Терминалы бывают физическими (реальными), виртуальными и псевдотерминалами (т.е. программами, которые "притворяются" терминалами). Не останавливаясь на подробностях работы реальных терминалов отметим, что при выполнении лабораторных работ вы будете использовать виртуальные терминалы.

Первый виртульный терминал системы вы можете видеть сразу после загрузки Линукс. Именно в нем отображается приглашение для авторизации. Однако первый терминал - не единственный. По умолчанию Линукс представляет доступ к шести текстовым терминалам, которые соответственно называются tty1, tty2 и т.д. Переключение между ними осуществляется сочетанием клавиш Ctrl+F1, Ctrl+F2, Ctrl+F3 и т.д. При загруженной графической оболочке открытие терминалов и переключение между ними производится клавишами Alt+Ctrl+Fn, (где n - номер терминала). Сама графическая оболочка будет доступна по Alt+Ctrl+F7. Для работы в каждом новом терминале вы должны прежде всего авторизоваться. Таким образом, в системе одновременно могут работать несколько различных пользователей, каждый в своем терминальном сеансе.

Для того, чтобы узнать, номер текущего терминала, можно использовать команду tty (см. man tty). Команда очень проста и не требует параметров. Пример работы tty:

[aag@localhost fpk]$ tty /dev/tty1

Чтобы узнать, какие пользователи в каких терминалах залогинены в системе, можно использовать команду who:

[aag@localhost fpk]$ who
root tty1 Feb 17 17:11
aag tty2 Feb 17 17:12
aag tty5 Feb 17 17:40

Иногда возникает необходимость выполнить некоторые действия от имени другого пользователя (например, от имени root). Это можно сделать, открыв новый терминальный сеанс, но можно и иначе, в текущем сеансе. Для этого используется команда su. Эта команда по умолчанию (без параметров) открывает сеанс суперпользователя, выполняющийся внутри сеанса непривилегированного пользователя. Пример выполнения команды su:

[aag@localhost ~]$ su
Password:
[root@localhost aag]#

Еще один пример, с явным указанием имени пользователя:

[aag@localhost ~]$ su stud
Password: [stud@localhost ~]$

Для окончания пользовательского сеанса, запущенного командой su, или выхода из терминала, используется команда exit или комбинация клавиш Ctrl+D. В любом случае система закроет сеанс и отобразит строку приглашения.

Дополнительная информация об указанных командах доступна в справочном руководстве формата man или info.

Задания к работе

  1. Загрузить систему в текстовом режиме и войти с собственной учетной записью (см. Лр №1)
  2. Выяснить, какой каталог является текущим (см. man pwd).
  3. Выяснить, в каком терминале выполняется текущий сеанс.
  4. Открыть новый сеанс в tty3 для пользователя root
  5. Повторить п.2
  6. Открыть новый сеанс в tty5 для пользователя stud (если такого пользователя нет в системе, то его нужно добавить)
  7. Повторить п. 2
  8. Перейти в tty1 и выяснить, какие пользователи и в каких терминалах работают в текущий момент
  9. Создать текстовые файлы с именем user.txt произвольного содержания   в каталогах /root , $HOME , /home/stud.
    Примечание: Для создания файлов Вы можете использовать, к примеру, встроенный редактор файлового менеджера MC (Midnight Commander).
  10. Перейти в tty3 и повторить п.9 (имя для файлов – root . txt ).
  11. Перейти в tty 5 и повторить п.9 (имя для файлов – stud . txt ).
  12. Сравнить результаты выполнения пп 9, 10 и 11.
  13. Перейти в tty1 и объединить содержимое файлов, полученных в ходе выполнения пп 9, 10 и 11 в один файл с именем all.txt и вывести этот файл на экран (см. man cat)
  14. Повторить предыдущее задание от имени суперпользователя из tty1.
  15. Завершить все сеансы

Контрольные вопросы

  1. Какой каталог будет установлен текущим сразу же после входа пользователя в систему?
  2. Какой каталог будет установлен текущим после выполнения команды su?
  3. Какой терминал (tty) будет открыт по нажатию Ctrl+F7?

CC-BY-CA Анатольев А.Г., 11.01.2013