Лабораторная работа №1

Сеанс работы и команды

Этот курс — краткое введение в открытые операционные системы, то есть ОС, ориентированные на стандарты (полностью или в основном им соответствующие). К открытым ОС относятся Unix, Solaris, Linux, BSD.

Традиционно существовали, два жанра таких введений: введение в архитектуру ОС с точки зрения программиста и введение в пользование ОС с точки зрения оператора. Как правило, такие книги освещают также элементы администрирования (чаще — какой-то конкретной ОС).

В последнее десятилетие появился специфический третий жанр. Он предполагает "полное погружение" студента в материал, и в нем параллельно вводятся сведения, необходимые для оператора и для администратора. Появление этого жанра связано с массовым введением в эксплуатацию открытых ОС на весьма капризном "персонально-компьютерном" оборудовании и с тем, что во все возрастающем количестве новые пользователи открытых ОС осваивали их самостоятельно.

В последние годы ситуация опять изменилась: сегодня доступно множество дистрибутивов свободных открытых ОС, позволяющих в большинстве случаев получить по крайней мере базовую функциональность "из коробки", и продается достаточное количество компьютеров "персонального" и "домашнего" класса с предустановленной ОС Linux. Поэтому новичок может совершенно спокойно освоить сначала основы пользования системой, а затем, при необходимости, ее администрирование.

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

• компактность (в случае необходимости в жертву приносились "технические" аспекты в пользу "гуманитарных , т.е. сведениям, необходимым для понимания литературы и общения на заданную тему, отдавалось предпочтение перед сведениями, необходимыми для осуществления тех или иных действий),

• ориентация на современную версию стандарта ОС (ИСО/МЭК 9945:2002), а не особенности той или иной ОС.

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

Для воспроизведения примеров и другой практической работы студенту потребуется доступ к терминалу открытой ОС. Идеальным вариантом является доступ к администрируемой и поддерживаемой в порядке системе. Если такой возможности нет, можно установить на имеющемся компьютере ОС Linux или BSD, руководствуясь документацией к дистрибутиву. Пользователи "Макинтошей" с установленной MacOS X могут получить доступ к терминалу ОС в соответствии с документацией последней. Наименее проблемной будет установка из дистрибутива Debian GNU/Linux, особых сложностей также не должно быть с ALTLinux, ASPLinux, Redhat Linux, Linux Mandrake или FreeBSD. Любой из этих дистрибутивов позволяет осуществить установку на компьютеры самой популярной архитектуры IА-32 ("IВМ РС-совместимые"). Еще лучше, если у студента есть знакомый, администрирующий любую открытую ОС, который сможет помочь с установкой; тогда дистрибутив должен порекомендовать он,

При установке следует обратить внимание на правильные национальные установки (кириллица с кодовой таблицей КОI8-R, клавиша переключения кодовых подстраниц) и на то, чтобы после загрузки не осуществлялся автоматический запуск графической оконной системы X Window System. Последняя в нашем курсе вообще не нужна.

Для нормальной работы с оболочкой должно хватить возможностей процессора Intel 386-DX66 или аналогичного, 16 Мб ОЗУ, 100 Мб дискового пространства, хотя некоторые из перечисленных дистрибутивов могут требовать расширенного набора команд Pentium и содержать программу установки, более требовательную к ресурсам (особенно к ОЗУ). Современные загрузчики позволяют осуществлять попеременную загрузку на одном компьютере более одной ОС (в том числе альтернативных), так что если тот же компьютер эксплуатируется и под MS-DOS или Microsoft Windows , это не будет помехой (прочитайте внимательно разделы документации по установке и не забудьте осуществить резервное копирование данных перед переразбиением дисков на разделы, если таковое потребуется).

Б крайнем случае можно запустить оболочку и команды под "Майкрософт Уиндоуз", пользуясь такими пакетами, как "Cygwin", "Interix Unix Services" или "UWIN", что, впрочем, не рекомендуется.

 

Общие сведения

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

Как и любой язык, язык оболочки команд и ОС нуждается в изучении. Как и при изучении любого языка — естественного или искусственного — первые шаги достаточно трудны. Однако изучить его легче, чем любую развитую систему научной нотации (математической или химической) даже в объеме средней школы, и неизмеримо легче, чем иностранный язык. Вводные курсы в открытые ОС успешно прошли миллионы человек.

 

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

Изначальный запуск программ, составляющих операционную систему, называется загрузкой ОС, их завершение — ее разгрузкой, а загрузка сразу вслед за разгрузкой — перезагрузкой.

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

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

Однако на настольных, портативных и мобильных машинах выполнение этих процедур в большинстве случаев делегируется всем пользователям, и нет необходимости регистрироваться в системе в качестве администратора (и даже иметь такую возможность, то есть знать пароль администратора), чтобы выполнить ее разгрузку или перезагрузку. Такие машины часто выключаются по окончании рабочего дня.

На микрокомпьютерах для загрузки системы обычно не требуется выполнять каких-то специальных действий. При включении машины автоматически выполняется следующая последовательность процедур.

1. Загружается в память и начинает исполняться вшитый загрузчик. Это миниатюрная программа, располагающаяся в энергонезависимой памяти  (ППЗУ или флэш) на системной плате, которая пытается загрузить следующую программу-загрузчик с устройства, указанного в настройках (также располагающихся в энергонезависимой памяти).  Такими устройствами могут быть сетевой адаптер, фиксированный (жесткий) диск или привод съемного носителя информации (дискеты, CD, DVD или ZIP-диска). Бездисковые машины загружаются с сетевого адаптера  (для этого в локальной сети должен присутствовать сервер, предоставляющий по запросу загрузчик). Автономные машины загружаются обычно с фиксированного диска. Со съемного носителя загружаются автономные машины при установке на них новой ОС или проведении восстановительных работ.

2. Загрузчик ОС (LILO, GRUB или другой) загружает ядро операционной системы. Загрузчик может быть настроен на выдачу перед загрузкой меню, в котором перечислены различные варианты загрузки или даже различные ОС, установленные на фиксированных дисках машины или в локальной сети.

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

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

Показателем успешной загрузки системы является вывод на консоль (и на другие терминалы, если таковые имеются) приглашения к регистрации: как правило, оно содержит логотип ОС и/или организации, сведения о локальной системе (включая ее имя, тип и тактовую частоту процессора, объем оперативной памяти) и строку "login:".

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

Начиная с момента передачи управления ядру (начала загрузки собственно ОС), машину не следует выключать, не выполнив процедуру разгрузки ОС. Разгрузка ОС и выключение машины описаны в документации. В большинстве случаев самым быстрым (хотя и не самым изящным) способом будет одновременное нажатие клавиш Ctrl+Alt+Del и физическое выключение машины при появлении сообщения и/или логотипа вшитого загрузчика (БИОС).

 

Вход в систему и выход из системы

Для того чтобы взаимодействовать с компьютером, нужно зарегистрироваться в ОС. Регистрируясь ("входя" в систему), вы сообщаете системе, что на определенном терминале (реальном или виртуальном) с ней работает определенный пользователь. Система полагает, что пользователь продолжает работу, пока он явным образом не разрегистрируется (не "выйдет" из системы).

Время от входа до выхода из системы называют сеансом работы в ней. Сеансом называют также совокупность команд, поданных пользователем за это время.

Программа регистрации запрашивает регистрационное имя (login) и пароль (password). Регистрационное имя — это имя, под которым пользователь занесен в список пользователей, поддерживаемый в системе. Оно уникально для машины и может быть известно другим пользователям. Пароль — это личный секрет пользователя, он не должен быть известен больше никому.

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

Регистрационные имена не соответствуют однозначно физическим лицам. Во-первых, целый ряд имен не допускают регистрации под собою вовсе; "от их имени" исполняются системные программы и сервисы.

Во-вторых, одно и то же лицо может регистрироваться на машине "в разных ролях". Если вы сами администрируете систему, то для выполнения административных задач вы регистрируетесь под именем главного пользователя (root). Для решения прикладных задач (чтения почты, получения информации из WWW, редактирования текстов, программирования, чего угодно) вы регистрируетесь под именем "обычного пользователя", учетную запись которого для себя создали. Выполнять прикладные задачи, зарегистрировавшись под именем главного пользователя (root), нельзя.

Если вы легальный пользователь машины, администрируемой другим лицом, администратор сообщит вам (или предложит выбрать) ваше регистрационное имя и пароль.

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

Далее мы обсуждаем пользователя user, имеющую учетную запись user на машине localhost и знающего свой пароль (мы его не знаем).

На алфавитно-цифровом терминале пользователь регистрируется, вводя в ответ на приглашение "login" имя user и завершая ввод нажатием клавиши Enter и затем вводя свой пароль (пароль при вводе не отображается) и завершая его ввод нажатием той же клавиши.

После этого программа (это уже не программа регистрации, а программа — оболочка операционной системы) выводит подсказку ("приглашение").

Достаточно типичная подсказка изображена выше; она состоит из регистрационного имени и имени машины, разделенных знаком "@", за которыми следует имя текущего каталога. Все это заключено в квадратные скобки, за которыми следует символ подсказки "$".

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

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

Выдача подсказки означает, что оболочка готова принимать команды. Команда — это строка, которая будет принята к исполнению после того, как пользователь, введя ее, завершит ввод нажатием клавиши Enter.

До того, как клавиша Enter нажата, команда принята не будет. Отменить набираемую команду до нажатия Enter  можно, нажав Ctrl+U. Современные оболочки (такие, как "bash") допускают редактирование командной строки до ее ввода. Если при наборе команды допущена ошибка и замечена до нажатия Enter, можно с помощью стрелок переместить курсор на нужное место, удалить ошибочный символ нажатием клавиши Del (удаление символа над курсором) или Backspace (удаление клавиши слева от курсора) и вставить правильный символ.

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

Таким образом, мы завершили свой первый сеанс работы в системе, состоящий из одной команды выхода. Этой командой заканчивается любой сеанс работы в системе, хотя не всегда она подается в явном виде.

 

Простая команда

Простая команда — это строка, состоящая из:

1.      (необязательных) присвоений значений переменным окружения команды;

2.      (необязательного) имени команды;

3.         (необязательных и допустимых только после имени команды) аргументов команды.

Эти три части команды разделяются промежутками, в качестве которых обычно выступает символ пробела (Промежутком также является знак табуляции, однако не следует применять табуляцию в этом качестве; большинство современных оболочек использует клавишу табуляции в интерактивном режиме особым способом. На самом деле промежутком является и символ новой строки, который просто так ввести также не удастся, поскольку нажатие “Enter” означает ввод (передачу на исполнение) набранной команды). Отдельные аргументы также разделяются промежутками. Промежутки в начале и конце строки игнорируются так же, как и дополнительные промежутки (например, второй идущий подряд знак пробела).

Выше мы уже познакомились с командой exit, которая подавалась (вводилась) без аргументов. Вот еще две команды, которые могут подаваться без аргументов: date, cal. Обе они относятся к датам календаря.

Команда date выводит текущую дату и время.

 

 

Команда cal выводит календарь.

 

 

 

Поданная без аргументов, команда cal выводит календарь на текущий месяц. Однако она может вывести календарь и на другой месяц, а также на целый год.

Как мы видим, вывод команды может существенным образом зависеть от аргументов. В данном случае смысл аргументов прозрачен: в первом случае ими были порядковый номер месяца и год, соответствующие месяцу, на который мы хотели получить календарь, а во втором случае — только год.

Синтаксис (допустимые значения и, во многих случаях, порядок следования) аргументов зависит от конкретной команды так же, как их семантика (смысл). Нарушение синтаксиса (синтаксическая ошибка оператора) влечет сообщение об ошибке.

Иногда оператор может ввести команду, корректную синтаксически, но не соответствующую задаче, то есть совершить семантическую ошибку. В следующем примере мы хотели получить календарь на апрель пятого года, но перепутали порядок следования аргументов.

 

Результатом выполнения команды стал вывод календаря за май 4 г. У программы, исполняющей команду, во многих случаях нет шанса "догадаться" о семантической ошибке. В данном случае пользователь, возможно, заметит свою ошибку, поскольку календарь предваряется названием месяца и года, но далеко не всегда ошибка будет такой очевидной (По поводу приведенного примера заметим ещё, что год "4" соответствует не две тысячи четвертому и не тысяча девятьсот четвертому годам, а ровно четвертому году от Р.Х)

Ситуация, когда команда, допускающая передачу ей параметров, предполагает некоторые значения этих параметров, если они ей не переданы явно, достаточно типична. В этом случае говорят о поведении команды по умолчанию.  Например, команда cal по умолчанию выводит календарь на текущий месяц.

 

Страницы руководства по простым командам

Текущая версия стандарта на ОС описывает 176 команд. В различных системах их доступно от нескольких десятков до нескольких тысяч, и выучить детали синтаксиса и семантики каждой практически невозможно. Поэтому для систем, поддерживающих мобильность пользователей, стандартом предусмотрена выдача электронных страниц руководства по команде man. Например, man cal должна вывести информацию, соответствующую приведенной для команды cal в Справочных материалах.

В некоторых случаях названия сущностей, описанных в различных страницах руководства, совпадают. Например, названию link соответствует не только команда операционной системы, но и системный вызов (используемый программистами). В таком случае можно явно указать номер требуемого раздела. Команды ОС описаны в разделе 1, соответственно, получить страницу руководства по команде link можно командой man 1 link. В документации, литературе и переписке часто имена команд ОС указываются цифрой 1 в скобках, т.е. вместо “команда link” пишут link(1). Поскольку мы почти не обсуждаем сущностей, могущих оказаться омонимичными именами команд, мы такого соглашения не принимаем.

В большинстве случаев вывод man не поместиться на экране терминала. В этом случае вывод будет автоматически  пропущен через так называемый “фильтр постраничного вывода”.

Подобно текстовому редактору, фильтр постраничного вывода отображает текст на экране , позволяет пролистывать его вверх или вниз, но без возможности редактирования. В большинстве случаев в качестве фильтра будет выступать  либо стандартная команда more, либо команда less. В любой из них прекратить отображение можно нажатием клавиши Q, пролистнуть текст на экран вперёд – клавишей F, на экран назад – B.

 

 

[Курс] [Помощь]