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

ЛР №1. ОС Linux. Первое знакомство

Цель работы

Научиться выполнять запуск и вход в систему ОС Линукс. Получить базовые навыки работы в текстовом режиме. Пользоваться встроенной справочной системой.

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

Загрузка системы

Как известно, работа с компьютером начинается с его включения. Порядок загрузки PC-совместимого компьтера (безотносительно установленной операционной системы) типичен: после включения питания BIOS проводит тестирование оборудования, ищет загрузочное устройство, передает управление найденному загрузчику, который, в свою очередь, начинает загрузку операционной системы.

ОС Линукс может загружаться с самых разных устройств, начиная от жестких дисков и дискет, заканчивая USB-накопителями и загрузкой по сети. Стандартным для Линукс загрузчиком является LILO (LInux LOader), однако он далеко не единственный и, как правило, каждый дистрибутив этой ОС предлагает еше один-два альтернативных варианта. Так, например, с дистрибутивом ASPLinux поставляются загрузчики grub, ASPLoader и Acronis OS Selector (опционально). Все они имеют одинаковые основные возможности, но различаются дополнительными функциями. К числу основных возможностей относятся: поддержка выбора ОС из нескольких установленных на компьютере (мультизагрузка), загрузка с логических разделов, изменение конфигурации. Дополнительными возможностями являются, например, количество поддерживаемых ОС или управление разделами дисков.

После выбора операционной системы (подразумевается Линукс) загрузчик передает управление ядру ОС. Ядро (kernel) начинает проверку оборудования, последовательно отображая на экране информацию о ходе проверки. После окончания проверки оборудования ядро Линукс может быть переведено в режим интерактивной загрузки. Если не воспользоваться этой возможностью, то система продолжит автоматическую загрузку сервисных программ, считывая информацию из конфигурационных файлов (/etc/inittab, /etc/rc.d). Процесс и результаты загрузки сервисов так же отображаются на экране. Если система настроена на загрузку в графическом режиме, то в числе сервисов будет загружен X-сервер, иначе - система будет загружена в текстовом режиме и на экране появится приглашение для авторизации пользователя, подобное приведенному:

ASPLinux release 10 (Karelia)
Kernel 2.6.9-1.667asp on an i686 localhost login: _

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

Работа в командной строке

В только что установленной системе имеется всего один пользователь, который может выполнить вход. Это привелегированный пользователь (суперпользователь) root, наделенный администраторскими правами.

ВАЖНО! Для root'а нет ограничений по управлению ресурсами системы. С точки зрения безопасности не следует выполнять повседневные задачи в сеансе суперпользователя.

После ввода имени пользователя, система запросит пароль для него, проверит введенную информацию и, если все правильно, откроет пользовательский сеанс. Экран примет примерно такой вид:

ASPLinux release 10 (Karelia)
Kernel 2.6.9-1.667asp on an i686 localhost login: root Password: Last login: Thu Sep 8 11:59:42 on tty3 [root@localhost ~]#

С этого момента система готова принимать команды от пользователя и выполнять их. Все команды поступают на исполнение через командную строку (строку приглашения). Строка приглашения есть ничто иное, как пользовательский интерфейс, представляемый оболочкой системы. Оболочка - это программа-посредник между пользователем и операционной системой. В Линукс (как впрочем и в других unix-системах) оболочки могут быть различными, однако чаше всего используются различные варианты sh (от shell)- bash, tsh, zh и т.п. Оболочки в той или иной степени упрощают работу пользователя, представляя такие возможности, как автоподстановка текста, история ввода, встроенные скриптовые языки. Основная же их задача - получить команду, введенную пользователем и передать ее на исполнение операционной системе. Формат ввода команд прост и одинаков для все оболочек: нужно указать имя команды и, возможно, набор параметров для нее. Пример ввода и выполнения команды без параметров:

[root@localhost ~]# pwd
/root
[root@localhost ~]# 

Еще один пример команды с указанием именем файла в качестве параметра:

[root@localhost ~]# cat hello.txtHello,World

Следующий, чуть более сложный пример, иллюстрирует работу с командной строкой Linux для компиляции Java-приложений:

[root@localhost ~] javac -classpath /usr/share/tomcat/lib/tomcat-servlet-3.0-api.jar:classes /srv/tomcat/webapps/myapp/WEB-INF/classes/MyServlet.java

Линукс - это POSIX-совместимая операционная система, т.е. она соответствует стандартам и спецификациям IEEE 1003.x (POSIX). Следовательно, набор основных команд Линукс соответствует командам UNIX-подобных ОС. Несколько команд предлагаются вам для изучения в этой лабораторной работе. Информацию о командах вы можете получить через встроенную справочную систему формата man (от manuals) или info. Для получения справки достаточно ввести man (или info) с именем нужной команды в качестве параметра:

[root@localhost ~]# man pwd 

Результатом выполнения станет вывод информации о назначении, синтаксисе и ключевых параметрах заданной команды:

PWD(1) User Commands PWD(1)
NAME
pwd - print name of current/working directory
SYNOPSIS
pwd [OPTION]
DESCRIPTION
NOTE: your shell may have its own version of pwd which will supercede the version
described here. Please refer to your shell’s documentation for details about the options it <...>

Аналогичным образом можно получить и "справку о справке":

[root@localhost ~]# man man

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

stilo:/home/aag # man --help
использование: man [-c|-f|-k|-w|-tZT устройство] [-i|-I]
[-adlhu7V] [-Mпуть] [-Pпейджер]
[-Cфайл] [-Sсписок] [-mсистема] [-pстрока] [-Lлокаль] [-eрасширение]
[раздел] страница ...
-a, --all найти все подходящие страницы руководств.
-d, --debug показывать отладочные сообщения.
-e, --extension ограничить поиск файлами с расширением `расширение'.
-f, --whatis эквивалентно whatis.
-k, --apropos эквивалентно apropos.
-w, --where, --location показывать физическое расположение man страниц.
-W, --where-cat,
--location-cat показывать физическое расположение cat file(s).
-l, --local-file рассматривать аргумент`страница' как локальные имена файлов.
-u, --update включить проверку целостности кэша.
-i, --ignore-case регистронезависимый поиск страниц (по умолчанию).
-I, --match-case регистрозависимый поиск страниц.
-r, --prompt строка предоставить пейджер `less' в приглашении
-c, --catman используется catman для реформатирования устаревших cat страниц.
-7, --ascii показывать ASCII символы вместо некоторых latin1.
-E, --encoding кодировка использовать заданное nroff устройство и показать в пейджере.
-t, --troff использовать groff для форматирования страниц.
-T, --troff-device устройство использовать groff с заданным устройством.
-H, --html использовать lynx или аргумент для показа html.
-Z, --ditroff использовать groff и заставить его создавать ditroff.
-X, --gxditview использовать groff и показать с помощью gditview (X11):
-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12.
-D, --default сбросить все параметры в значения по умолчанию.
-C, --config-file файл использовать файл настроек пользователя.
-M, --manpath путь установить путь поиска страниц руководства.
-P, --pager пейджер использовать `пейджер' для просмотра.
-S, --sections список использовать список разделов,
отделённых двоеточием.
-m, --systems система поиск man страниц в других unix системах.
-L, --locale локаль поиск man страниц только для определённой локали.
-p, --preprocessor строка в строке указан препроцессов для запуска.
e - [n]eqn p - pic t - tbl
g - grap r - refer v - vgrind
-V, --version показать версию.
-h, --help показать это сообщение.

Выход из справочной системы в командную строку выполняется клавишей q[uite].

Помимо информации о командах, справку можно получить и о системных сервисах (в терминологии Unix - демонах, daemon's), а также о формате служебных и конфигурационных файлов.

Некоторым неудобством встроенной справочной системы man является то, что далеко не вся информация локализована, т.е. переведена с английского языка. Частичным решением этой проблемы является справка формата info, которая, однако, имеется не для всех команд и менее подробная.

Еще одна возможность получения информации о команде - это выполнение ее с параметром --help. Например:

[root@localhost ~]# pwd --help
Использование: ls [КЛЮЧ]... [ФАЙЛ]...
Выдает информацию о FILE (текущий каталог по умолчанию).
Сортирует в алфавитном порядке если ни один из ключей -cftuSUX --sort не задан.<...>

Обратите внимание: в квадратных скобках ([]) указываются НЕОБЯЗАТЕЛЬНЫЕ параметры, а ключи могут быть объединены.

Завершение работы

Первые Unix-подобные ОС создавались в расчете на длительную работу без выключения компьютера. ОС Линукс - не исключение и завершение работы компьютера с ОС Линукс имеет некоторые особенности, которые в общем-то, зависят от конфигурации системы. Как правило, полное выключение может выполнять только суперпользователь по команде shutdown. Непривилегированный же пользователь может выполнить только завершение собственного сеанса (командой exit или комбинацией клавиш Ctrl+D).

По команде shutdown (в зависимости от параметров) система может быть остановлена в указанное время с предварительной рассылкой сообщения. Перед выключением Линукс записывает все несохраненные данные на диск, выгружает запущенные программы и последовательно останавливает системные сервисы. Во избежание потери информации необходимо дождаться сообщения о том, что питание можно отключить.

При завершении сеанса Линукс выгружает только те программы, которые были запущены текущим пользователем, затем выгружает оболочку и снова выводит приглашение login.

Задания к выполнению

  1. Включить компьютер и определить, какой загрузчик используется в системе и имеются ли другие операционные системы на компьютере
  2. Наблюдая за процессом загрузки ядра обратить внимание на то, какие сервисы загружаются и сделать предположения о их назначении. Выяснить, как можно перейти в режим интерактивной загрузки. Переключиться в этот режим и определить, какие сервисы могут быть запущены по запросу пользователя
  3. Войти в систему с учетной записью суперпользователя.
  4. Ознакомиться со справочными системами man и info
  5. Получить справочную информацию о следующих командах: useradd, passwd, exit, logout, who, shutdown, su, users, groups.
  6. Создать собственную учетную запись (с которой вы будете работать в дальнейшем). Установить пароль для этой учетной записи.
  7. Завершить сеанс суперпользователя
  8. Войти в систему с собственной учетной записью
  9. С помощью справочной системы man проверить предположения о назначении служб, которые запускаются в процессе загрузки системы (см. п.2).

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

  1. Все ли сервисы могут быть отключены в режиме интерактивной загрузки? Почему?
  2. Почему пользователь, для которого при регистрации не был указан никакой пароль (ни командой useradd -p, ни командой passwd), не сможет войти в систему? (подсказка: обратите внимание на описание команды useradd)
  3. Система работает под управлением непривилегированного пользователя. Какую команду (или команды) должен выполнить такой пользователь, чтобы завершить работу системы и выключить компьютер?
  4. Какие отличия имеются между командами exit и logout?

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