Операционные системы. Учебное пособие-2
.pdfФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ
Государственное образовательное учреждение высшего профессионального образования
Московский технический университет связи и информатики
_________________________________________________________________
Тутова Н.В.
Операционные системы
Учебное пособие
для студентов специализаций 010300 - фундаментальная информатика и информационные технологии
(бакалавриат)
230700 - прикладная информатика (бакалавриат).
Москва 2011
ГУДК 681.3.066
Тутова Н.В. Операционные системы. Учебное пособие / МТУСИ. – М., 2011.—40 с.
Рассматриваются приѐмы работы в Unix-подобных операционных системах в режиме удаленного доступа.
Составитель: Тутова Н.В., к. т. н., доцент.
Рецензенты: к.т.н. Калимулина Э.Ю.
к.т.н., доцент Ерохин А.Г.
2
Введение
В последнее время все большую популярность среди серверных и домашних операционных систем приобретают операционные системы семейства Unix. Под управлением Unix-подобных операционных систем работает более половины всех Web-серверов в Интернет. И эта тенденция будет продолжаться, поскольку данные операционные системы отличаются функциональностью и надежностью. Кроме этого открытость исходного кода привела к тому, что многие такие системы являются бесплатными. Эту тенденцию необходимо учитывать при преподавании дисциплины «Операционные системы». Студенты должны иметь практические навыки работы в Unix-подобной операционной системе на уровне пользователя, в том числе необходимые для удаленной поддержки Webприложений.
Для демонстрации возможностей операционных систем семейства Unix и проведения лабораторных работ была выбрана бесплатная и хорошо зарекомендовавшая себя операционная система FreeBSD. Доступ к FreeBSDсерверу осуществляется с рабочей станции локальной сети по протоколу SSH, обеспечиваемый программой Putty. Для подключения к серверу необходимо на рабочем столе Windows запустить программу Putty; в поле Host Name ввести IP-адрес FreeBSD-сервера 10.10.10.254, а после нажать на кнопку Open. Появится окно терминала, в котором система запросит логин и пароль.
Логин: user
Пароль: Master123.
В сеансе работы с FreeBSD начальным (домашним) каталогом пользователя является каталог: /home/имя, где имя - сетевое имя пользователя, т.е. user. К этому каталогу и всем подкаталогам пользователь имеет права чтения, записи, выполнения, в отличие от других каталогов системы.
Работа в сеансе ведется в режиме командной строки. Стандартным приглашением в системах Unix является символ '$'. Обычно команда имеет вид:
имя_команды [опции]... [параметры]...
Квадратные скобки означают необязательный элемент, а многоточие означает, что элементов данного типа может быть несколько. Опции команд являются флаговыми параметрами. В FreeBSD, как правило, флаги имеют две формы — короткую и длинную. Короткая форма предваряется символом - и кодируется одной буквой. Длинная форма предваряется двумя символами -- и кодируется целым словом или даже фразой.
3
1. Использование командного интерпретатора для работы с файлами
1.1. Структура файловой системы FreeBSD
Файловая структура UNIX имеет иерархическую древовидную структуру. Корневой каталог является высшим уровнем иерархии и обозначается [/]. С помощью команды ls / можно увидеть содержимое корневого каталога файловой системы FreeBSD. В корневом каталоге размещаются другие каталоги и файлы, включая следующие основные каталоги, приведенные в таблице 1.1:
|
|
|
|
Таблица 1.1. |
|
|
|
|
|
|
|
Каталог |
Что хранится |
|
|
|
|
/bin |
большинство выполняемых командных программ; |
|
|
||
/boot |
загрузочные файлы ОС; |
|
|
|
|
/dev |
специальные файлы, обеспечивающие доступ к периферийным |
|
|||
|
устройствам; |
|
|
|
|
/etc |
конфигурационные файлы системы, команды администратора; |
|
|||
/mnt |
пустой каталог, предназначенный для подключения других |
|
|||
|
файловых систем; |
|
|
|
|
/root |
начальный каталог системного администратора (пользователя |
|
|||
|
root); |
|
|
|
|
/sbin |
системные исполняемые файлы; |
|
|
|
|
/home |
домашние каталоги пользователей, часто является ссылкой на |
|
|||
|
/usr/home; |
|
|
|
|
/tmp |
временные файлы; |
|
|
|
|
/usr |
программы, |
использующие |
динамические |
библиотеки; |
|
|
пользовательские файлы и программы; |
|
|
||
/var |
изменяющиеся файлы пользовательских программ (спулы |
|
|||
|
принтеров, файлы почты, буферы, логи). |
|
|
||
Полное имя файла включает в себя весь путь к нему, начиная с корневого каталога, например: /usr/home/student/file.txt.
Чтобы не писать каждый раз полный путь к файлу, существует относительное задание пути, при котором текущий каталог обозначается точкой (.); родительский каталог, которому принадлежит текущий, обозначается двумя точками (..). Например, пользователь, находясь в каталоге /usr/home/student, может сослаться на файл file.txt в этом каталоге как ./ file.txt.
Текущий каталог - это каталог, в котором в данный момент находится пользователь. Для вывода имени текущего каталога используется команда pwd.
4
При наличии прав доступа, пользователь может перейти в другой каталог. Для этого используется следующая команда:
cd <имя_каталога>
Если имя каталога не указано, то происходит переход в домашний каталог пользователя.
1.2. Работа с файлами
1.2.1. Работа с обычным текстовым файлом
В Unix имеется богатый набор средств для ввода и редактирования текстов. Стандартным текстовым редактором для всех Unix-систем является редактор vi. Кроме этого стандартным для FreeBSD является также редактор ee (easy editor). Также широко распространены редакторы tee, ed и sed.
Краткая справка по редактору vi
Чтобы запустить редактор vi необходимо в командной строке ввести команду vi. Если за ней последует имя файла, то он откроется для редактирования, а если задать имя несуществующего файла, то vi будет считать, что это новый файл.
Редактор vi работает в двух основных режимах - в режиме "ввода текста" и в режиме "команд". После запуска vi оказывается в режиме "команд", т.е. нажатия клавиш интерпретируются как команды редактору, а не как сам текст. Основные команды для работы в редакторе приведены в таблице 1.2.
|
Таблица 1.2. |
|
|
|
|
Команда |
Клавиша клавиатуры |
|
Переход в режим "команд" |
Esc |
|
Переход в режим "ввода текста" |
a или i |
|
Удаление символов |
x |
|
Выход без сохранения |
:q! |
|
Сохранение и выход |
:wq |
|
Более полный список команд представлен в документации.
Краткая справка по редактору ee
С редактором ее работать легче, чем с традиционными текстовыми редакторами систем Unix. Для вызова редактора ее необходимо ввести в командной строке ее и имя файла, который необходимо открыть или создать. Ввод текста осуществляется также как в блокноте Windows. Возможные команды
5
перечислены в меню в верхней части экрана, вводятся с удержание клавиши Ctrl. Для выхода из редактора необходимо нажать клавишу Esc, в появившемся меню выбрать Leave editor.
Более подробно см. справку.
Дополнительные команды для работы с файлами
cat file- вывод содержимого файла;
cat file.1 file.2 > file.12 - конкатенация (объединение) файлов file.1 file.2, результат направляется в file.12;
mv file.1 file.2 - переименование файла file.1 в file.2;
mv file.1 file.2 file.3 directory - перемещение файлов file.1, file.2, file.3 в указанную директорию;
rm file.1 file.2 file.3 - удаление файлов file.1, file.2, file.3;.
cp file.1 file.2 - копирование файла file.1 с переименованием в file.2;
1.2.2. Работа с каталогами
mkdir <имя_каталога> - создание каталога;
rm dir1 dir2 - удаление пустых каталогов dir1 dir2;
rm –r <имя_каталога> - удаление каталога, включая все подкаталоги и файлы;
ls <имя_каталога>- вывод имѐн файлов, содержащихся в каталоге; если каталог не указан, то выдается список файлов текущего каталога;
ls -la <имя_каталога> - список включает всю информацию о файлах;
ls [-laR] <имя_каталога> - список включает всю информацию о файлах каталога и всех подкаталогов;
cd <имя_каталога> - переход в другой каталог. Если параметры не указаны, то происходит переход в домашний каталог пользователя.
pwd - вывод имени текущего каталога;
1.2.3. Работа со ссылками
6
Один файл можно сделать принадлежащим нескольким каталогам. Для этого используется команда ln (link):
ln <имя_файла_1> <имя_файла_2>
Имя 1-го файла - это полное составное имя файла, с которым устанавливается связь; имя 2-го файла - это полное имя файла в новом каталоге, где будет использоваться эта связь. Новое имя может не отличаться от старого. Каждый файл может иметь несколько связей, т.е. он может использоваться в разных каталогах под разными именами.
Команда ln с аргументом -s создает символическую связь:
ln -s <имя_файла_1> <имя_файла_2>
Здесь имя 2-го файла является именем символической связи. Символическая связь является особым видом файла, в котором хранится имя файла, на который символическая связь ссылается. UNIX работает с символической связью не так, как с обычным файлом, например, при выводе на экран содержимого символической связи появятся данные файла, на который эта символическая связь ссылается.
1.3. Задание на лабораторную работу
1.Ознакомиться с файловой структурой ОС FreeBSD. Изучить команды работы с файлами.
2.Используя команды ОС FreeBSD, создать два текстовых файла в разных текстовых редакторах.
3.Создать структуру каталогов, изображенную на рисунке 1, каталоги представлены элементами вида:
, файлы - элементами вида:
. Жирными линиями представлена вложенность файлов/подкаталогов в каталоги.
4.Файлы, создаваемые при выполнении данной работы, создаются копированием файла, созданного в задании 1, с внесением в копии некоторых изменений.
5.Создать ссылки, представленные на рисунке в индивидуальном задании черными тонкими линиями.
6.Создать символические ссылки, представленные на рисунке в индивидуальном задании стрелками линиями. Стрелка на линии указывает на целевой файл ссылки. Корнем дерева, должен быть один из подкаталогов в домашнем каталоге.
7.Провести ряд экспериментов, иллюстрирующих доступ к файлам по основным именам, по ссылкам и по символическим ссылкам.
7
8.Провести ряд экспериментов, иллюстрирующих реакцию системы на удаление файла, на который имеются ссылки, и файла, на который имеются символические ссылки.
Рис.1
4.Контрольные вопросы
1.Опишите структуру файловой системы в Unix.
2.Что считается файлами в OC Unix?
3.В каком каталоге хранятся программы и файлы пользователей?
4.Что такое домашний каталог?
5.Перечислите основные текстовые редакторы OC FreeBSD и опишите технологию работы в них.
6.Объясните назначение связей с файлами и способы их создания.
7.Перечислите основные команды для работы с файлами.
8.Перечислите основные команды для работы с каталогами.
2. Архивирование и сжатие файлов
2.1. Архивирование
При работе с UNIX часто приходится работать с командами архивирования или разархивирования, поскольку в виде архивных файлов распространяется большая часть программного обеспечения.
Основным средством архивирования в UNIX является комплекс из двух программ — tar и gzip. Программа tar объединяет файлы в единый файл. Для сжатия полученного архивного файла часто применяют команду gzip. Сжатые таким образом архивные файлы имеют расширение .tar.gz или .tgz.
Программа tar
8
Для создания архивного файла на диске, необходимо использовать команду tar с опцией f, после которой указывается имя архивного файла.
У программы tar имеется 8 опций и при вызове программы должна обязательно задаваться одна из этих опций. Эти опции определяют основные функции программы.
|
Таблица 1. Основные опции программы tar |
|
|
Опция |
Значение |
|
|
-A, --catenate, -- |
Добавляет файлы в существующий архив |
concatenate |
|
|
|
-c, --create |
Создает новый архив |
|
|
-d, --diff, --compare |
Найти различия между архивом и файловой системой |
|
|
--delete |
Удалить из архива (не может использоваться с магнитной |
|
лентой!) |
|
|
-r, --append |
Дописывает файлы в конец архива |
|
|
-t, --list |
Выводит список файлов архива |
|
|
-u, --update |
Добавляет только файлы, которые новее, чем имеющаяся в |
|
архиве копия |
|
|
-x, --extract, --get |
Извлечь файлы из архива |
|
|
tar -cf имя_архива файл1 файл2 ... - создание tar-архива из нескольких файлов.
tar -cvf имя_архива ./sub_dir/* - создание архива, содержащего все файлы одного из подкаталогов (пусть это будет sub_dir) текущего каталога;
tar -xvf имя_архива файл1 файл2 ... - извлечение файлов из архива; $ tar -tf имя_архива | less - получение списка файлов архива.
2.2. Cжатие файлов
Программа gzip
Для сжатия архивного файла применяется команда gzip:
gzip файл
Для того чтобы распаковать архив, используется команда
9
$ gzip -d файл_архива или $ gunzip файл_архива
Исходные файлы после сжатия удаляются, а при разархивации удаляется архив.
Поскольку программа gzip не умеет сохранять в одном архиве несколько файлов, то обычно ее применяют для сжатия архивов, созданных программой tar. Более того, среди опций программы tar имеется специальная опция -z, позволяющая сразу после создания сжать его с помощью программы gzip. Для выполнения такого сжатия надо использовать команду tar примерно следующим образом:
$tar -czf имя_архива шаблон_имен_файлов (или имя_каталога)
В этом случае суффикс .gz не добавляется автоматически к имени создаваемого архива, поэтому лучше сразу задать имя архива с указанием обоих суффиксов:
имя.tar.gz.
Программа bzip2
В последнее время все чаще вместо программы gzip используется архиватор bzip2, который обеспечивает более высокую степень сжатия и работает несколько быстрее. Работает bzip2 примерно так же, как команда gzip, т. е. замещает каждый файл, имя которого задано в командной строке, сжатой версией, добавляя к имени файла суффикс .bz2.
2.3. Задание на лабораторную работу
1.Создать один tar-архив для нескольких файлов, находящихся в разных каталогах.
2.Создать один tar-архив для всех файлов, находящихся в каталоге.
3.Создать один tar-архив для всех файлов, находящихся в каталоге и подкаталогах.
4.Командой ls посмотреть объем полученных архивных файлов и убедиться, что программа tar не сжимает файлы.
5.Посмотреть список файлов, входящих в архив, а затем распаковать его.
6.Командой gzip, а затем bzip2 сжать один из архивов и посмотреть объѐм полученного файла.
7.Разархивировать полученный сжатый файл.
8.Удалить созданные подкаталоги и файлы в них, сохранив, однако, файл, созданный в задании 1.
2.4. Контрольные вопросы
1.С помощью какой программы можно поместить файлы в один архив? Опишите технологию еѐ использования.
10
