Литература - Северо-Кавказский горно

advertisement
ОПЕРАЦИОННЫЕ СИСТЕМЫ
Методические указания
к выполнению лабораторных работ
для студентов, обучающихся по направлению подготовки
230100.62 – «Информатика и вычислительная техника»
Составитель А. А. Будаева
ВЛАДИКАВКАЗ 2015
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)»
Кафедра автоматизированной обработки информации
ОПЕРАЦИОННЫЕ СИСТЕМЫ
Методические указания
к выполнению лабораторных работ
для студентов, обучающихся по направлению подготовки
230100.62 – «Информатика и вычислительная техника»
Составитель А. А. Будаева
Допущено редакционно-издательским советом
Северо-Кавказского горно-металлургического
института (государственного технологического
университета).
Протокол заседания РИСа № 1 от 17.01.2014 г.
ВЛАДИКАВКАЗ 2015
1
УДК 004.451
ББК 32.968.7
Б90
Рецензент:
кандидат технических наук, доцент СКГМИ (ГТУ)
А. А. Даурова
Б90
Операционные системы: Методические указания к выполнению лабораторных работ для студентов, обучающихся по направлению подготовки 230100.62 – «Информатика и вычислительная
техника». Сост.: А. А. Будаева; Северо-Кавказский горно-металлургический институт (государственный технологический университет). – Владикавказ: Северо-Кавказский горно-металлургический
институт (государственный технологический университет). Изд-во
«Терек», 2015. – 140 с.
Методические указания способствуют получению и углублению
знаний в области выбора и применения операционных систем для задач автоматизации обработки информации и управления, а также
приобретению навыков установки и настройки современных операционных систем – как коммерческих (Microsoft Windows), так и распространяемых на основе открытой лицензии (Linux).
УДК 004.451
ББК 32.968.7
Редактор Боциева Ф. А.
Компьютерная верстка: Кравчук Т. А.
 Составление. ФГБОУ ВПО «Северо-Кавказский
горно-металлургический институт (государственный
технологический университет)», 2015
 Будаева А. А., составление, 2015
Подписано в печать 13.04.15. Формат бумаги 60х84 1/16. Бумага офсетная. Гарнитура «Таймс».
Печать на ризографе. Усл. п.л. 8,14. Уч.-изд.л. 5,94. Тираж 20 экз. Заказ № ____.
Северо-Кавказский горно-металлургический институт (государственный
технологический университет). Изд-во «Терек».
Отпечатано в отделе оперативной полиграфии СКГМИ (ГТУ).
362021. Владикавказ, ул. Николаева, 44.
2
Оглавление
Введение........................................................................................................... 4
Лабораторная работа № 1. Установка современной операционной
системы Windows. Состав системного программного обеспечения
ОС Windows ..................................................................................................... 5
Лабораторная работа № 2. Управление вводом/выводом
в ОС Windows. Работа с командной строкой ............................................... 12
Лабораторная работа № 3. Организация пакетных файлов и сценариев
в ОС Windows .................................................................................................. 23
Лабораторная работа № 4. Установка операционной системы Linux ..... 56
Лабораторная работа № 5. Терминал и командная оболочка
операционной системы Linux ......................................................................... 61
Лабораторная работа № 6. Работа с файловой системой
ОС Linux ........................................................................................................... 67
Лабораторная работа № 7. Процессы в операционной системе Linux .... 89
Лабораторная работа № 8. Организация ввода-вывода в ОС Linux ........ 99
Лабораторная работа № 9. Управление пользователями и обеспечение безопасности в ОС Linux .................................................................................... 119
Литература ....................................................................................................... 134
Приложение 1. Перенаправление ввода-вывода команд ОС Windows ...... 135
Приложение 2. Команды-фильтры ОС Windows ......................................... 137
Приложение 3. Образец оформления титульного отчета по лабораторной
работе ............................................................................................................... 140
3
ВВЕДЕНИЕ
Дисциплина «Операционные системы» изучается студентами,
обучающимися по направлению подготовки 230100.62 «Информатика
и вычислительная техника» в 4 семестре.
Основные задачи лабораторного практикума:
- формирование систематизированного представления о концепциях, принципах и моделях, положенных в основу построения
операционных систем;
- развитие уровня практической подготовки в области выбора и
применения операционных систем для задач автоматизации обработки
информации и управления, а также программирования в современных
операционных средах;
- приобретение навыков и умений установки и настройки современных операционных систем – как коммерческих (Microsoft Windows), так и распространяемых на основе открытой лицензии (Linux).
Лабораторное занятие включает в себя следующие этапы:
- постановка задачи; краткие теоретические сведения по рассматриваемому вопросу, обсуждение методики выполнения работы;
- ответы на вопросы;
- получение допуска к выполнению лабораторной работы;
- выполнение работы;
- составление отчета по лабораторной работе;
- защита лабораторной работы.
Все лабораторные работы выполняются на компьютерах, подключенных к вычислительной сети СКГМИ (ГТУ) и к Internet. Для
обеспечения возможности установки, настройки и исследования операционных систем используются виртуальные машины, создаваемые
индивидуально каждым обучающимся.
Используются активные методы обучения: учебный диалог, дискуссия на заданную тему, обсуждение результатов выполненных лабораторных работ.
Пособие содержит список рекомендуемой литературы и контрольные вопросы по каждому разделу.
4
Лабораторная работа №1
УСТАНОВКА СОВРЕМЕННОЙ
ОПЕРАЦИОННОЙ СИСТЕМЫ WINDOWS.
СОСТАВ СИСТЕМНОГО ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ ОС WINDOWS
Цели работы:
1) приобрести опыт установки современной операционной системы Windows;
2) ознакомиться на практике с основными группами программ,
входящих в системное программное обеспечение.
План проведения занятия
1. Ознакомление с программным обеспечением VirtualBox.
2. Создание виртуальной машины исходя из предоставленной
информации о минимальных аппаратных требованиях предлагаемой к установке и изучению операционной системы (ОС).
3. Установка ОС на виртуальный компьютер; разделение процесса установки ОС на этапы.
4. Ознакомление с основными группами программ, входящих в
состав ОС.
Оборудование
Аппаратная часть: персональный компьютер, сетевой или локальный принтер. Программная часть: программа VirtualBox, установочный диск либо образ диска с ОС Windows Seven, текстовый процессор Microsoft Word.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Операционная система – комплекс программ, обеспечивающих
управление аппаратными средствами компьютера, организующих работу с файлами и выполнение прикладных программ, осуществляющих ввод и вывод данных.
Общими словами, операционная система – это первый и основной
набор программ, загружающийся в компьютер. Помимо вышеуказанных функций ОС может осуществлять и другие функции, например,
предоставление общего пользовательского интерфейса и т.п.
5
Сегодня наиболее известными операционными системами являются ОС семейства Microsoft Windows и UNIX-подобные системы.
Основные функции операционных систем:
- загрузка приложений в оперативную память и их выполнение;
- стандартизованный доступ к периферийным устройствам
(устройства ввода-вывода);
- управление оперативной памятью (распределение между процессами, виртуальная память);
- управление доступом к данным на энергонезависимых носителях (таких как жесткий диск, компакт-диск и т. д.), организованным в
той или иной файловой системе;
- пользовательский интерфейс;
- сетевые операции, поддержка стека протоколов.
Дополнительные функции:
- параллельное или псевдопараллельное выполнение задач
(многозадачность);
- взаимодействие между процессами: обмен данными, взаимная
синхронизация;
- защита самой системы, а также пользовательских данных и
программ от действий пользователей (злонамеренных или по незнанию) или приложений;
- разграничение прав доступа и многопользовательский режим
работы (аутентификация, авторизация).
Microsoft Windows – семейство операционных систем компании
(Майкрософт). Работает на платформах Intel, AMD, а также на процессорах VIA и других, за некоторыми исключениями. Поклонники
OS/2, AmigaOS, Mac OS, Solaris, Linux и UNIX критикуют все версии
Windows с момента появления системы на рынке. Однако последние
10 лет Windows – самая популярная операционная система для
настольных компьютеров на процессорах семейства x86. В большей
части этот успех обеспечен рыночной политикой, которая также критикуется. Существует два специфических ответвления в семействе
ОС.
Windows – ОС реального времени, предназначенная для управления промышленным оборудованием, создается как урезанная версия
Windows NT или XP.
Windows Mobile (Ранее WinCE) служит для управления карманными компьютерами, комуникаторами и сотовыми телефонами.
Windows 7 – операционная система семейства Windows NT, следующая за Windows Vista.
6
В линейке Windows NT система носит номер версии 6.1;
• Windows 2000 – 5.0;
• Windows XP – 5.1;
• Windows Server 2003 – 5.2;
• Windows Vista и Windows Server 2008 – 6.0.
Операционная система поступила в продажу 22 октября 2009 года, меньше чем через три года после выпуска предыдущей операционной системы, Windows Vista. Партнерам и клиентам, обладающим лицензией Volume Licensing, доступ к RTM был предоставлен 24 июля
2009 года.
В состав Windows 7 вошли как некоторые разработки, исключенные из Windows Vista, так и новшества в интерфейсе и встроенных
программах. Из состава Windows 7 были исключены игры Inkball, Ultimate Extras; приложения, имеющие аналоги в Windows Live – технология Microsoft Agent, Windows Meeting Space; из меню «Пуск» исчезла возможность вернуться к классическому меню и автоматическая
пристыковка браузера и клиента электронной почты. Также из состава
Windows исчез Календарь Windows.
ОС Windows 7 имеет следующие минимальные требования к аппаратной части компьютера:
- процессор: 1,4 GHz, 32-разрядный;
- оперативная память: 512 Mb (32-bit);
- свободное дисковое пространство: 16 GB (32-bit);
- видеоадаптер: поддержка графики DirectX 9, 64 MB памяти;
- устройство чтения DVD-дисков.
ХОД РАБОТЫ
1. Запускаем программу VirtualBox.
2. Для создания новой виртуальной машины нажимаем кнопку
«Создать». Будет запущен мастер создания новой виртуальной машины.
3. В последующем диалоговом окне указываем имя будущей машины, а также тип операционной системы. У нас должно быть указано:
• операционная система Microsoft Windows;
• версия Windows 7.
В качестве имени следует указать группу и номер(а) студентов
согласно журналу преподавателя. Пример: bi301_2_3_5, «bi301» –
7
группа, «2_3_5» – номера студентов, «_» – универсальный разделитель.
4. В следующем диалоговом окне необходимо указать объем оперативной памяти (ОП) будущей машины. Согласно минимальным системным требованиям размер ОП не должен быть меньше 512 Mb, и
об этом нам сообщает программа VirtualBox, выставляя 512 Mb как
рекомендуемый размер ОП. Максимальный размер ОП виртуальной
машины полностью зависит от аппаратной ОП физической машины
(объем можно уточнить у администратора компьютерной лаборатории
или преподавателя). При физическом объеме 1024 Mb укажем размер
для виртуальной машины 600 Mb.
5. В следующем диалоговом окне необходимо указать объем жесткого диска будущей машины. Исходя из минимальных требований – 16
Gb, что равно 16384 Mb. Но так как размер жесткого диска позволяет нам
использовать больший размер (посоветуйтесь с администратором компьютерной лаборатории или преподавателем) воспользуемся рекомендуемым параметром программы VirtualBox (значение 20480 Mb).
В последующем диалоге по созданию жесткого диска следует
указать тип файла образа. Тип должен соответствовать данным.
7. В окне «Местоположение и размер виртуального диска» расположение должно соответствовать имени машины. Хотя и предоставлена возможность менять размер виртуального жесткого диска, но,
как было решено в п. 5, размер остается без изменений.
8. После двукратного подтверждения создания жесткого диска и
виртуальной машины она появляется в главном окне программы VirtualBox в списке виртуальных машин. Но все же это не значит, что она
уже полностью готова к установке ОС.
9. Нашей виртуальной машине следует:
1) включить ЭБ-ускорение;
2) увеличить размер видеопамяти;
3) отключить сетевой адаптер (за ненадобностью);
4) отключить аудио-контроллер (за ненадобностью);
5) подключить физический или виртуальный образ DVD-диска
(уточните у преподавателя или администратора компьютерной
лаборатории).
Для изменения данных параметров нажмем кнопку «Свойства»
.
Согласно пункту 1 списка вносимых изменений, ставим «галочку»
напротив «Включить ЭБ-ускорение», и согласно пункту 2 меняем
объем видеопамяти на 64 Mb.
8
Далее переходим к пункту 3 списка изменений, а именно отключаем сетевой адаптер. Для этого в левом меню окна «Свойства»
нажимаем пункт «Сеть».
Соответственно, напротив пункта «Включить сетевой адаптер»
снимаем «галочку».
Пункт 4 списка вносимых изменений, а именно «Отключение
аудио-контроллера» необходимо проделать подобно пункту 3 «Отключение сетевого адаптера».
Далее рассматриваем пункт 5, а именно «Подключение физического или виртуального образа DVD-диска». Для этого в левом меню
окна «Свойства» нажимаем пункт «CD/DVD-ROM». Активируем меню с выбором между пунктами «Физический CD/DVD-привод» и
«Файл ISO-образа» установкой «галочки» у пункта «Подключить
CD/DVD», предварительно уточнив у преподавателя или администратора компьютерного зала об источнике установки.
Если будет выдан физический диск, то его следует установить в
привод и соответственно активировать пункт «Физический CD/DVDпривод». Проследите, чтобы буквенный идентификатор соответствовал тому, в который установлен диск.
Если для установки будет использоваться ISO-образ диска, то
прежде всего уточните, где он именно расположен, так как выполнять
установку с сетевых ресурсов строго запрещено! Образ диска обязательно должен находиться непосредственно на жестком диске компьютера, за которым вы работаете. После того как уточнили местонахождение образа, нажмите кнопку «Открыть» у строчки с пунктом
«Файл ISO-образа» появится диалоговое окно менеджера виртуальных
носителей.
• Если на момент работы нет ни одного образа, то следует его
добавить, нажав кнопку «Добавить» в верхней панели менеджера. В следующем диалоговом окне необходимо только проложить путь к образу.
• После добавления образа в список менеджера виртуальных носителей необходимо выбрать его, нажав кнопку «Выбрать».
10. Подтвердите все сделанные изменения нажатием кнопки «Ok»
окна «Свойства».
11. Теперь можно переходить к установке ОС Windows 7 на виртуальную машину. Для этого выбираем машину слева в списке виртуальных машин главного окна программы VirtualBox, нажимаем кнопку «Старт» в верхнем меню над списком.
9
12. Установка ОС начинается с загрузки файлов. После чего
необходимо подождать некоторое время.
13. Далее появится окно с выбором языка, на котором будет работать наша ОС, соответственно выбираем «Мой язык – русский».
14. В следующем окне необходимо еще раз подтвердить язык работы ОС, формат времени, денежных единиц и раскладку клавиатуры
или метода ввода.
15. Нажимаем «Далее», в следующем окне нажимаем «Установить».
16. В течение нескольких секунд появится окно выбора операционных систем. Это делается для того, чтобы у администратора была
возможность устанавливать ОС Windows 7 различной комплектации и
производительности и, соответственно, коммерческой стоимости лицензии на установку. Это могут быть такие версии Windows 7, как:
• Starter,
• Home Basic;
• Home Premium;
• Professional;
• Ultimate.
Выбираем операционную систему архитектуры x86.
17. В следующем окне необходимо принять условия лицензионного соглашения: читаем, ставим «галочку» и нажимаем «Далее».
18. Следующее окно – окно выбора типа установки.
19. Выберем пункт "Полная установка".
20. В следующем окне необходимо выбрать раздел для установки
Windows .
21. Нажмите «Создать», а затем «Применить». Далее будет выведено сообщение «Чтобы обеспечить корректную работу всех своих
возможностей, Windows может создавать дополнительные разделы
для системных файлов». Конечно, желательно согласиться. Нажимаем
«Ok».
22. Выберем нужный раздел. Если нужного раздела нет в списке
или его параметры не удовлетворяют требованиям, то необходимо
осуществить настройку диска.
23. Нажмите кнопку «Далее», и начнется процесс установки.
24. В остальном процесс установки автоматизирован, и участие
пользователя будет необходимо только на этапе написания имени
пользователя ОС.
25. Ввод пароля в нашем случае совсем не обязателен, но желателен. В случае ввода пароля студент несет ответственность за его со10
хранность, и в случае утраты пароля преподаватель или администратор компьютерной лаборатории оказать помощь в его восстановлении
не смогут.
26. Поле ввода серийного номера оставляем пустым для 30дневной пробной версии.
27. Все последующие диалоговые окна могут заполняться пользователем самостоятельно, ощутимого отрицательного воздействия на
работу ОС в случае ошибки уже не будет.
28. После очередной перезагрузки система будет установлена и
готова к работе.
29. Установите дополнения к гостевой операционной системе,
нажав в главном меню VirtualBox, «Устройства» > «Установить дополнения гостевой ОС».
30. Рассмотрите программы, входящие в состав операционной
системы.
31. Подготовьте отчет для преподавателя о выполнении лабораторной работы, сдайте в соответствии с графиком.
Контрольные вопросы
1. Что такое операционная система?
2. Перечислите основные функции операционных систем.
3. Перечислите основные версии операционных систем семейства
Windows.
4. Перечислите минимальные и рекомендуемые требования ОС
Windows 7.
5. Расскажите об отличиях ОС Windows 7 от других операционных систем Windows.
Литература
1. Олифер В. Г., Олифер Н. А. Сетевые операционные системы.
СПб.: Питер, 2008. 669 с.
2. Гордеев А. В. Операционные системы: Учебник для вузов. 2-е
изд. СПб.: Питер, 2006. 416 с.
3. Основы операционных систем. Курс лекций. Учебное пособие /
В. Е. Карпов, К. А. Коньков / Под ред. В. П. Иванникова. М.:
ИНТУИТ.РУ "Интернет-университет информационных технологий",
2008. 632 с.
11
12
Лабораторная работа №2
УПРАВЛЕНИЕ ВВОДОМ/ВЫВОДОМ В ОС WINDOWS.
РАБОТА С КОМАНДНОЙ СТРОКОЙ
Цели работы:
1) приобрести практические навыки работы с командной строкой
ОС Windows;
2) ознакомиться на практике с управлением вводом/выводом в
операционных системах Windows и с кэшированием операций ввода/вывода;
3) изучить основные команды для управления дисками и файлами.
План проведения занятия
1. Ознакомление с краткими теоретическими сведениями.
2. Изучение назначения и основных функций Диспетчера задач
Windows.
3. Приобретение навыка применения командной строки
Windows: запуск, останавка и проверка работы процессов.
4. Сделать выводы о взаимосвязи запущенных процессов и оперативной памяти компьютера.
5. Составление отчета для преподавателя о выполнении лабораторной работы.
Оборудование
Аппаратная часть: персональный компьютер, сетевой или локальный принтер. Программная часть: ОС Windows 7, текстовый
процессор Microsoft Word.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Необходимость обеспечить программам возможность осуществлять обмен данными с внешними устройствами и при этом не включать в каждую двоичную программу соответствующий двоичный код,
осуществляющий собственно управление устройствами ввода/вывода,
привела разработчиков к созданию системного программного обеспечения и, в частности, самих операционных систем.
13
Программирование задач управления вводом/выводом является
наиболее сложным и трудоемким, требующим очень высокой квалификации. Поэтому код, позволяющий осуществлять операции ввода/вывода, стали оформлять в виде системных библиотечных процедур; потом его стали включать не в системы программирования, а в
операционную систему, с тем чтобы не вставлять его в каждую отдельно взятую программу, а только позволить обращаться к такому
коду. Системы программирования стали генерировать обращения к
этому системному коду и осуществлять только подготовку к операциям ввода/вывода, то есть автоматизировать преобразование данных к
соответствующему формату, понятному устройствам, избавляя прикладных программистов от этой сложной и трудоемкой работы. Другими словами, системы программирования вставляют в машинный
код необходимые библиотечные подпрограммы ввода/вывода и обращаются к тем системным программным модулям, которые, собственно, и управляют операциями обмена между оперативной памятью и
внешними устройствами.
Таким образом, управление вводом/выводом – это одна из основных функций любой ОС. Одним из средств управления вводом/выводом, а также инструментом управления памятью является
диспетчер задач Windows, он отображает приложения, процессы и
службы, которые в текущий момент запущены на компьютере. С его
помощью можно контролировать производительность компьютера
или завершать работу приложений, которые не отвечают.
При наличии подключения к сети можно также просматривать
состояние сети и параметры ее работы. Если к компьютеру подключились несколько пользователей, можно увидеть не только их имена, но
и какие задачи они выполняют, можно также отправить им сообщение.
Управлять процессами можно и «вручную» при помощи командной строки.
Команды Windows для работы с процессами
• at – запуск программ в заданное время;
• Schtasks – настраивает выполнение команд по расписанию;
• Start – запускает определенную программу или команду в отдельном окне;
• Taskkill – завершает процесс;
• Tasklist – выводит информацию о работающих процессах.
14
Команды для работы с файлами
• Copy – копирование файлов;
• Xcopy – копирование файлов и структур каталогов;
• Move – перемещение файлов; переименование файлов и папок;
• Replace – замена файлов;
• Rename – переименовывание одного или нескольких файлов;
• Fc – сравнение двух файлов или двух наборов файлов и вывод
различий между ними;
• Del – удаление одного или нескольких файлов;
• Erase.
Команды для работы с дисками
•
•
•
•
•
•
dir – вывод списка файлов и подкаталогов в указанном каталоге;
cd – вывод имени либо смена текущего каталога;
rd – удаление текущего каталога;
md – создание каталога;
format – форматирование диска;
label – создание, изменение, удаление меток тома для дисков.
Для получения более подробной информации, можно использовать центр справки и поддержки или команду help (например: help at).
• command.com – запуск командной оболочки MS-DOS;
• cmd.exe – запуск командной оболочки Windows.
ХОД РАБОТЫ
Задание 1. Работа с Диспетчером задач Windows 7
1. Запустите ранее установленную ОС Windows 7.
Запуск Диспетчера задач можно осуществить двумя способами:
1) Нажатием сочетания клавиш Ctrl+Alt+Del. При использовании данной команды не стоит пренебрегать последовательностью клавиш. Появится меню, в котором курсором следует выбрать пункт «Диспетчер задач».
2) С помощью курсора. Переведите курсор на область с показаниями системной даты и времени и нажмите правый клик,
будет выведено меню, в котором следует выбрать «Диспетчер задач».
Будет выведено окно, как на рис. 1.
15
Рис. 1. Диспетчер задач Windows 7.
В диспетчере задач есть 6 вкладок:
1) приложения;
2) процессы;
3) службы;
4) быстродействие;
5) сеть;
6) пользователи.
 Вкладка «Приложения» отображает список запущенных
задач (программ), выполняющихся в настоящий момент не
в фоновом режиме, а также их состояние. Кроме того, в
данном окне можно снять задачу, переключиться между задачами и запустить новую задачу при помощи соответствующих кнопок.
 Вкладка «Процессы» отображает список запущенных процессов; имя пользователя, запустившего процесс; загрузку
16
центрального процессора в процентном соотношении, а
также объем памяти используемого для выполнения процесса. Также есть возможность отображения процессов всех
пользователей либо принудительного завершения процесса.
Процесс – выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ.
 Вкладка «Службы» показывает, какие службы запущены на
компьютере. Службы – приложения, автоматически запускаемые системой при запуске ОС Windows и выполняющиеся вне зависимости от статуса пользователя.
 Вкладка «Быстродействие» отображает в графическом режиме загрузку процессора, а также хронологию использования физической памяти компьютера. Очень эффективным
инструментом наблюдения является «Монитор ресурсов». С
его помощью можно наглядно наблюдать за каждой из сторон «жизни» компьютера. Подробное изучение инструмента произвести самостоятельно.
 Вкладка «Сеть» отображает подключенные сетевые адаптеры, а также сетевую активность.
 Вкладка «Пользователи» отображает список подключенных пользователей.
2. После изучения диспетчера задач:
 потренируйтесь в завершении и повторном запуске процессов;
 разберите мониторинг загрузки и использование памяти;
 попытайтесь запустить новые процессы при помощи диспетчера, для этого можно использовать команды: cmd,
msconfig.
Задание 2. Работа с процессами через командную строку
Windows
1. Для запуска командной строки в режиме Windows следует
нажать: Пуск \ Все программы \ Стандартные \ Командная строка.
2. Перейдите в папку C:\Windows и просмотрите его содержимое.
3. Поработайте над выполнением основных команд работы с
процессами: запуская, отслеживая и завершая процессы.
Основные команды:
a. Schtasks – выводит выполнение команд по расписанию;
17
b. Start – запускает определенную программу или команду в отдельном окне;
c. Taskkill – завершает процесс;
d. Tasklist – выводит информацию о работающих процессах.
4. Запустите программу «Блокнот»: C:\Windows > start notepad.exe. Отследите выполнение процесса: C:\Windows > tasklist. Затем
завершите выполнение процесса: C:\Windows > taskkill /IM
notepad.exe.
5. Самостоятельно найдите команду запуска программы WordPad. Необходимый файл запуска найдите в папке Windows.
6. Выполнение задания включите в отчет по выполнению лабораторной работы.
Задание 3. Самостоятельное задание
1. Отследите выполнение процесса explorer.exe при помощи диспетчера задач и командной строки.
2. Продемонстрируйте преподавателю завершение и повторный
запуск процесса explorer.exe из:
• диспетчера задач;
• командной строки.
3. Выполнение задания включите в отчет по выполнению лабораторной работы.
Задание 4. Изучение команд для работы с файлами
4.1. Команда Copy
 Ознакомьтесь со справкой по команде Copy.
 Скопируйте все файлы с определенным расширением, распо-
ложенные в месте, путь к которому задайте самостоятельно, в точку
назначения, заданную путем d:\Temp\.
 Скопируйте файл, расположенный в месте, путь к которому
задайте самостоятельно, в точку назначения, заданную другим путем.
Инициируйте запрос на подтверждение перезаписи конечного файла в
случае, если он существует.
 Продублируйте файл с определенным именем, путь к которому задайте самостоятельно, в точку назначения, заданную тем же путем, добавив к началу имени файла строку «copy-».
 Объедините два текстовых (txt) файла, пути к которым задайте
самостоятельно, в один файл с полным именем d:\Temp\Merged.txt.
18
 Введите
фрагмент текста с клавиатуры, используя
ее источник Con, в текстовый файл, путь к которому задайте самостоятельно. Признаком конца ввода строки является Enter. Признаком
конца ввода текста в файл являются нажатые клавиши Ctrl+Z и Enter.
 Добавьте несколько строк с клавиатуры в конец существующего текстового файла, полученного в предыдущем пункте текущего
задания.
4.2. Команда Xcopy
 Ознакомьтесь со справкой по команде Xcopy.
 Скопируйте все файлы и подкаталоги, включая пустые и скры-
тые, расположенные в месте, путь к которому задайте самостоятельно,
в точку назначения на другом локальном диске. При этом инициируйте запрос на подтверждение перезаписи.
 Скопируйте дерево каталогов, включая пустые, расположенные в месте, путь к которому задайте самостоятельно, в точку назначения на другом локальном диске.
 Скопируйте все файлы с атрибутами «архивный» и «только
для чтения» с сохранением этого атрибута для файлов-результатов,
расположенные в месте, путь к которому задайте самостоятельно, в
точку назначения, заданную путем d:\Temp\.
 Скопируйте все файлы и подкаталоги с датой не позднее определенной. Путь к источнику и точке назначения задайте самостоятельно. Отобразите список файлов в процессе копирования.
4.3. Команда Move
 Ознакомьтесь со справкой по команде Move.
 Скопируйте пять любых файлов с определенным расширени-
ем, расположенные в месте источника, путь к которому выберите самостоятельно, в точку назначения, заданную путем d:\Temporary\. При
копировании воспользуйтесь любым методом, изученным ранее.
 Используя команду Move, воспользовавшись командой единожды, переместите все только что скопированные файлы, заданные
путем d:\Temporary\, обратно в место источника. При этом инициируйте вывод запроса на подтверждение перезаписи.
4.4. Команда Replace


Ознакомьтесь со справкой по команде Replace.
Скопируйте три любых файла, расположенные в месте каталога-источника, путь к которому выберите самостоятельно, в каждый из
19
двух каталогов назначения, заданных следующими путями:
d:\Temp\Begin\ и d:\Temp\-End\. При копировании воспользуйтесь любым методом, изученным ранее.
Используя команду Replace:
 Замените первый по порядку файл в каталоге назначения
d:\Temp\End\ файлом, расположенным в каталоге-источнике
d:\Temp\Begin\, осуществив подтверждение замены.
 Замените второй по порядку файл с более ранней датой модификации и путем назначения d:\Temp\End\ файлом, расположенным в
каталоге-источнике d:\Temp\Begin\, предварительно каким-либо образом его модифицировав.
 Активируйте атрибут «только для чтения» у третьего по порядку файла в каталогах d:\Temp\Begin\ и d:\Temp\End\. Замените третий по порядку файл в каталоге назначения d:\Temp\End\ файлом, расположенным в каталоге-источнике d:\Temp\Begin\.
4.5. Команда Rename
 Ознакомьтесь со справкой по команде Ren (Rename).
 Скопируйте пять любых файлов с определенным разрешени-
ем, расположенные в месте, путь к которому выберите самостоятельно, в точку назначения, заданную путем d:\Temp\. При копировании
воспользуйтесь любым методом, изученным ранее.
Используя команду Ren (Rename):
 измените типы всех скопированных файлов, заданных путем
d:\Temp\, на другой, выбранный самостоятельно, тип;
 переименуйте все файлы, заданные путем d:\Temp\, в файлы с
именами Renamed1.Ren, Renamed2.Ren, … , Renamed5.Ren.
4.6. Команда Fc
 Ознакомьтесь со справкой по команде Fc.
Используя команду Fc:
 сравните два текстовых файла, пути к которым задайте самостоятельно; результат сравнения выведите в файл (Result.txt);
 сравните два бинарных файла, пути к которым задайте самостоятельно. Результат сравнения добавьте в файл (Result.txt).
4.7. Команда Del (Delete) и Erase
 Ознакомьтесь со справкой по команде Del (Delete) и Erase.
20
 Скопируйте все файлы, расположенные в месте, путь к которому выберите самостоятельно, в точку назначения, заданную путем
d:\Temp\. При копировании воспользуйтесь любым методом, изученным ранее.
Используя команду Del (Delete) и Erase:
 удалите выбранный самостоятельно файл, заданный путем
d:\Temp\, запросив подтверждение на удаление;
 удалите все файлы с атрибутом «Системный», расположенные
в месте, заданном путем d:\Temp\; подтверждение на удаление не выводите;
 удалите все файлы с определенным расширением, расположенные в месте, заданном путем d:\Temp\, запросив подтверждение на
удаление;
 удалите все оставшиеся файлы, включая каталоги, расположенные в месте, заданном путем d:\Temp\; подтверждение на удаление
не выводите.
Задание 5. Изучение команд для работы с дисками
5.1. Команда Dir
 Ознакомьтесь со справкой по команде Dir.
 Выведите постранично содержимое каталога C:\Windows\,
включая вложенные подкаталоги и файлы.
 Выведите постранично все каталоги и файлы на локальном
диске D: в алфавитном порядке с сортировкой по столбцам и паузой
после заполнения каждого экрана.
 Выведите все файлы с расширением .doc на локальном диске
D: в алфавитном порядке с сортировкой по колонкам. Вывод осуществите в файл Doc-Files.txt (Приложение 1).
 Выведите все каталоги на локальном диске C: в алфавитном
порядке. Результат добавьте в файл DocFiles.txt (Приложение 1).
 Добавьте сведения о владельцах файлов системного каталога
C:\Windows\ в файл DocFiles.txt (Приложение 1).
5.2. Команда cd (ChDir)
 Ознакомьтесь со справкой по команде Cd (ChDir). Используя
команду Cd (ChDir), смените текущий каталог на каталог, полный
путь к которому задан следующим образом:
C:\WINDOWS\Help\Tours\WindowsMediaPlayer\Video\.
21
 Перейдите из подкаталога ..\Video на уровень выше.
 Смените текущий каталог на каталог, полный путь к которому
задан следующим образом:
C:\WINDOWS\Help\Tours\WindowsMediaPlayer\Audio\.
 Перейдите из подкаталога …\Audio на два уровня выше.
 Смените текущий локальный диск на диск D:
5.3. Команда Md (MkDir)
 Ознакомьтесь со справкой по команде Md (MkDir).
Используя команду Md (MkDir):
 Создайте каталог, путь к которому выберите самостоятельно.
 Единожды воспользовавшись командой, создайте каталог,
полный
путь
к
которому
задан
следующим
образом:
d:\Temp\VMGroup\MyPath\.
5.4. Команда Rd (RmDir)
 Ознакомьтесь со справкой по команде Rd (RmDir).
Используя команду Rd (RmDir):
 удалите подкаталог третьего уровня MyPath, созданный в
предыдущем задании;
 скопируйте несколько файлов, расположенных в месте, путь к
которому выберите самостоятельно, в точку назначения, заданную
путем d:\Temp\VMGroup\; при копировании воспользуйтесь любым
методом, изученным ранее;
 единожды воспользовавшись командой, без запроса подтверждения удалите дерево каталогов d:\Temp\VMGroup\, включая подкаталог второго уровня VMGroup с содержащимися внутри файлами.
5.5. Команда Format
 Ознакомьтесь со справкой по команде Format.
 Для форматирования используйте USB-диск.
Используя команду Format:
 отформатируйте диск с использованием размера кластера по
умолчанию;
 повторно быстро отформатируйте ранее отформатированный
гибкий диск, находящийся в накопителе.
5.6. Команда Label
 Ознакомьтесь со справкой по команде Label.
22
 Отобразите метку тома, по умолчанию присвоенную диску,
находящемуся в накопителе.
 Присвойте новую метку тома диску.
 Отобразите новую метку тома диска.
Контрольные вопросы
1. Дайте понятие процессу в операционной системе.
2. Дайте понятие службе в операционной системе.
3. Перечислите основные команды работы с процессами при помощи командной строки.
4. Перечислите основные типы и расширения файлов.
5. Расскажите о процессе монтирования файловой системы.
6. Перечислите основные команды работы с файлами и дисками
при помощи командной строки.
23
Лабораторная работа №3
ОРГАНИЗАЦИЯ ПАКЕТНЫХ ФАЙЛОВ
И СЦЕНАРИЕВ В ОС WINDOWS
Цели работы:
1) приобрести практические навыки написания пакетных файлов
ОС Windows;
2) ознакомиться на практике с управлением вводом/выводом в
операционных системах Windows и с кэшированием операций ввода/вывода;
3) изучить основные команды для управления дисками и файлами.
План проведения занятия
1. Ознакомление с краткими теоретическими сведениями.
2. Изучение назначения и основных принципов написания командных файлов.
3. Изучение основных команд командных файлов и работа с параметрами.
4. Подготовка отчета о выполнении лабораторной работы.
Оборудование
Аппаратная часть: персональный компьютер, сетевой или локальный принтер. Программная часть: ОС Windows 7, текстовый
процессор Microsoft Word.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1. Общие сведения о пакетных файлах и сценариях
Пакетный файл – это неформатированный текстовый файл
ASCII, содержащий одну или несколько команд ОС.
Имена пакетных файлов имеют расширения .cmd или .bat. ОС
при работе с пакетным файлом последовательно обрабатывает его команды после ввода его имени в строке командной оболочки или запуска из другой программы.
Сценарий – это программа, состоящая из набора инструкций для
работы приложения или служебной утилиты. Сценарий – разновидность пакетного файла. Инструкции в сценариях обычно выражаются
24
с использованием правил и синтаксиса соответствующего приложения
или служебной утилиты в сочетании с простыми управляющими операторами, такими, как операторы циклов и условные операторы.
Пакетные файлы и сценарии часто называют командными файлами, содержащими любые команды. Некоторые команды, такие как
For, Goto и If, позволяют выполнять обработку условий в пакетных
файлах. Другие команды позволяют управлять вводом и выводом, а
также запускать другие пакетные файлы.
При организации пакетных файлов и сценариев применяют переменные, задающие поведение командной оболочки или ОС и пакетные параметры командного интерпретатора, которые используются в
пакетном файле для получения информации о настройках среды.
Поведение среды командной оболочки или всей ОС задают с помощью двух типов переменных среды: системных и локальных.
Системные переменные определяют поведение глобальной среды ОС. Локальные переменные определяют поведение среды в конкретном экземпляре командного интерпретатора Cmd.exe.
Системные переменные среды задаются заранее в ОС Windows 7
и доступны для всех ее процессов. Только пользователи с привилегиями администратора могут изменять эти переменные.
Локальные переменные среды доступны в случае, когда пользователь, для которого они были созданы, входит в систему. В частности, локальные переменные реестра HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют поведение
глобальной среды ОС.
В следующем списке представлены различные типы переменных
в порядке убывания их приоритета:
1) встроенные системные переменные;
2) системные переменные реестра HKEY_LOCAL_MACHINE;
3) локальные переменные реестра HKEY_CURRENT_USER;
4) все переменные среды и пути, указанные файле Autoexec.bat;
5) все переменные среды и пути, указанные в сценарии входа в
систему, если он имеется;
6) переменные, используемые интерактивно в пакетном файле
или сценарии.
Чтобы иметь возможность подставить значение в переменную
среды из командной строки или в пакетном файле (сценарии), следует
заключить имя соответствующей переменной (Приложение 1) в символы процентов (%), например: Set MyPath=%CD%. Символы процентов указывают на то, что командный интерпретатор должен обра25
титься к значению переменной без посимвольного ее разложения и
сравнения.
Командный интерпретатор Cmd.exe может оперировать переменными с %0 по %9. При использовании пакетных параметров переменная %0 заменяется именем пакетного файла, а переменные с %1 по %9
– на соответствующие аргументы командной строки. Для доступа к
переменным больше %9 необходимо воспользоваться командой Shift.
Параметр %* ссылается на все аргументы, которые передаются пакетному файлу, за исключением %0.
В качестве примера рассмотрим копирование содержимого из каталога 1 (Folder1) в каталог 2 (Folder2), где параметр %1 заменяется
значением Folder1, а параметр %2 соответственно значением Folder2.
В пакетном файле Mybatch.bat следует ввести следующую строку:
Xcopy %1\*.* %2
Используйте пакетный файл Mybatch.bat следующим образом:
Mybatch.bat C:\folder1 D:\folder2
Результат будет таким же, как и при записи в пакетный файл
строки:
Xcopy C:\folder1\*.* D:\folder2\
С пакетными параметрами можно также использовать модификаторы. Модификаторы используют информацию о текущем диске и
каталоге как часть или полное имя файла (каталога).
Синтаксис модификатора: %~xy, где x – символьное сокращение
действия, определяемое модификатором, y – идентификатор переменной (в диапазоне от 1 до 9).
В табл. 1 и 2 описаны модификаторы, выполняемые ими действия, и даны возможные комбинации модификаторов и квалификаторов для получения более сложных результатов. В этих таблицах %1 и
переменную среды PATH можно заменить другими значениями пакетных параметров.
Еще один модификатор, являющийся уникальным, имеет вид %*.
Он представляет все аргументы, переданные пакетному файлу. Этот
модификатор не используется в комбинации с модификатором %~.
26
Таблица 1
Модификаторы и выполняемые ими действия
№
п.п.
Модификатор
Описание
1
%~1
расширение %1 и удаление любых кавычек (" ")
2
%~f1
замена %1 полным путем
3
%~d1
замена %1 именем диска
4
%~p1
замена %1 путем
5
%~n1
замена %1 именем файла
6
%~x1
замена %1 расширением имени файла
7
%~s1
замена путем, содержащим только короткие имена
8
%~a1
Замена %1 атрибутами файла
9
%~t1
замена %1 датой и временем модификации файла
10
%~z1
замена %1 размером файла
11
%~$PATH:1
поиск в каталогах, перечисленных в переменной
среды PATH, замена %1 полным именем первого
найденного файла. Если переменная среды не
определена или поиск не обнаружил файлов, модификатор выдает пустую строку.
Таблица 2
Комбинации модификаторов и квалификаторов
№
п.п.
1
2
3
%~dp1
4
%~ftza1
Модификатор
%~dp$PATH:1
Описание
замена %1 именем диска и путем
%~nx1 замена %1 именем файла и расширением
поиск в каталогах, перечисленных в переменной
среды PATH, и замена %1 именем диска и путем
к первому найденному файлу.
замена %1 строкой, аналогичной результату работы команды Dir
Конвейеры команд и «каналы», рассмотренные в предыдущих лабораторных работах (Часть I, Приложения 1 и 2) являются инструмен27
тами для расширения функционала пакетных файлов и сценариев при
их построении и организации.
Сервер сценариев ОС Windows 7 позволяет быстро запустить
пакетный файл или сценарий, имя которого введено в командной
строке оболочки.
Сервер сценариев:
 служит контроллером средств обработки сценариев в ОС
Windows 7;
 не требует много памяти;
 является идеальным средством, как для интерактивных, так и
для пакетных сценариев.
Существуют две версии сервера сценариев, доступных в окне командной оболочки:
 Wscript.exe – позволяет задавать параметры выполнения сценариев в окне свойств;
 Cscript.exe – позволяет задавать параметры выполнения сценариев с помощью ключей командной строки.
Для разработки сценариев ОС Windows 7 следует использовать
редакторы сценариев JScript или VBScript (в составе Visual Basic
Scripting Edition). При запуске сценария из командной строки сервер
сценария читает и передает содержимое указанного файла зарегистрированному обработчику сценариев. Для определения языка сценария
используется расширение имени файла (.vbs для VBScript, .js для
JScript). Благодаря этому разработчик сценария не обязан знать точные программные идентификаторы (ProgID) различных обработчиков
сценариев. Сопоставление расширения имени файла сценария с программным идентификатором и запуск конкретного обработчика сценариев осуществляется непосредственно сервером сценариев ОС
Windows 7.
Простейшим сценарием, не требующим применения среды Visual
Basic, является сценарий входа в систему, представляющий собой
файл, связываемый с одной или несколькими учетными записями
пользователей. Обычно сценарий входа является пакетным файлом,
который автоматически выполняется при каждом входе пользователя
в систему. Сценарии входа используются для настройки рабочей среды пользователя при входе и позволяют администратору задавать основные параметры рабочей среды пользователя без непосредственного его участия.
Поскольку пакетные файлы могут включать в себя любые команды, их конвейеры и «каналы», при большом количестве условий и
28
циклов, последствия некорректной работы пакетного файла могут
быть непредсказуемыми для ОС и возможно, как следствие, разрушительными. Поэтому для организации пакетного файла разработчику
необходимо четко представлять себе, что именно и каким образом
должно происходить в системе при работе этого файла, какая последовательность действий реализуется в результате выполнения задуманного сценария и как на эти действия реагирует ОС.
Помимо рассмотренных в предыдущих лабораторных работах
команд, которые могут быть использованы при организации пакетного файла, существует ряд дополнительных, функционал которых
напоминает операторы языков программирования высокого уровня. К
их числу относятся: At, Call, Doskey, Echo, Endlocal, For, Goto, If,
Pause, Rem, Set, Setlocal и Shift.
2. Команда SET
Команда SET предназначена для отображения и установки переменных среды в ОС Windows 7.
Синтаксис команды SET:
SET [переменная=[строка]],
где переменная задает имя переменной, значение которой требуется
присвоить или изменить;
строка – задает строковое значение для указанной переменной.
Команда SET поддерживает два дополнительных ключа:
SET /A выражение
SET /P variable=[promptString]
Ключ /A указывает, что строка справа от знака равенства является
числовым выражением, значение которого вычисляется. Обработчик
выражений очень прост и поддерживает операции, перечисленные в
порядке убывания приоритета в таблице 3.
При использовании любых логических или двоичных операторов
необходимо заключить строку выражения в кавычки. Любые нечисловые строки в выражении рассматриваются как имена переменных среды, значения которых преобразуются в числовой вид перед использованием. Если переменная с указанным именем не определена в системе, вместо нее подставляется нулевое значение. Это позволяет выполнять арифметические операции со значениями переменных среды,
причем не нужно вводить знаки % для получения значений.
29
Таблица 3
Операции обработчика выражений команды SET
№
п.п.
1
2
3
4
5
6
7
8
9
Операция
Описание
()
!~*/%+
<< >>
&
^
|
= *= /= %= += -= &= ^= |= <<= >>=
,
группировка
унарные операторы
арифметические операторы
двоичный сдвиг
двоичное И
двоичное исключающее ИЛИ
двоичное ИЛИ
присвоение
разделитель операторов
Если команда SET /A вызывается из командной строки, а не из
пакетного файла, она выводит окончательное значение выражения.
Слева от любого оператора присваивания должно стоять имя переменной среды. Числовые значения рассматриваются как десятичные,
если перед ними не стоит префикс 0x для шестнадцатеричных чисел, и
0 для восьмеричных чисел. Например, числа 0x12 и 022 обозначают
десятичное число 18. Обратите внимание на запись восьмеричных чисел: 08 и 09 не являются допустимыми числами, так как в восьмеричной системе исчисления цифры 8 и 9 не используются. Если команда с
ключом /a вызывается из командной строки, а не из пакетного файла,
она выводит окончательное значение выражения.
Ключ /P позволяет установить значение переменной для входной
строки, введенной пользователем. Показывает указанное приглашение
promptString перед чтением введенной строки. Приглашение
promptString может быть пустым. Подстановка переменной среды может быть расширена следующим образом:
%PATH:str1=str2%
что приведет к замене каждого вхождения "str1" переменной среды
PATH в расширенном результате на "str2". "str2" может быть пустой
строкой для эффективного удаления вхождений "str1" из расширенного вывода. "str1" может начинаться со звездочки, и в этом случае это
30
будет соответствовать любому началу расширенного вывода до первого вхождения оставшейся части "str1". Можно также использовать
строки расширения.
%PATH:~10,5%
расширит действие переменной среды PATH, затем использует только
5 символов, которые начинаются с 11-го символа (пропустив 10) расширенного результата. Если длина не указана, по умолчанию используется оставшееся значение переменной. Если оба значения (длина и
число пропускаемых символов) отрицательны, следующим используемым значением будет длина значения переменной среды, добавленной к указанному значению пропуска или указанной длины.
%PATH:~-10%
извлечет последние 10 символов переменной PATH.
%PATH:~0,-2%
извлечет все символы переменной PATH, за исключением двух последних.
Наконец, добавлена поддержка связывания времени выполнения
для переменных среды окружения. По умолчанию эта поддержка отключена. Ключ /V командной строки CMD.EXE позволяет включать и
выключать ее. Связывание времени выполнения для переменных среды окружения полезно при обходе ограничений раннего связывания,
которое происходит при первом чтении текстовой строки, а не при ее
выполнении. Следующий пример демонстрирует возникающую проблему при использовании раннего связывания переменных:
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "%VAR%" == "after" @echo Тело внутреннего оператора сравнения
)
Данное сообщение не будет выводиться, т.к. %VAR% в ОБОИХ выражениях if подставляется в момент первого использования в первом
31
if, в том числе и в тело первого ветвления if, которое является составным выражением. В if внутри составного выражения в действительности сравниваются значения "before" и "after", что заведомо ложно.
Следующий пример демонстрирует подобную ошибку:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%
В данном случае список файлов текущей папки никогда не будет
построен. Вместо этого значением переменной LIST будет имя последнего найденного файла. И вновь это случилось потому, что
%LIST% подставляется всего один раз – в момент обработки выражения FOR, когда список еще пуст. Фактически приведенный фрагмент
эквивалентен следующему примеру:
for %i in (*) do set LIST= %i,
в котором имя последнего найденного файла сохраняется в переменной LIST.
Связывание времени выполнения для переменных среды окружения происходит при использовании специального символа (восклицательного знака), обозначающего проведение сопоставления во время
выполнения. Если включена поддержка связывания времени выполнения, то для достижения ожидаемых результатов приведенные выше
фрагменты должны быть изменены следующим образом:
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "!VAR!" == "after" @echo Тело внутреннего оператора сравнения
)
set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
При включенной расширенной обработке команд доступны несколько переменных среды, которые не появляются в списке, отображаемом при вызове команды SET. Значения этих переменных вычисляются динамически каждый раз при их извлечении. Если пользова32
тель явно задает переменные с одним из этих имен, то это определение перекрывает соответствующее динамическое определение, описанное ниже:
%CD% – раскрывается в строку текущей директории.
%DATE% – раскрывается в текущую дату, используя тот же
формат команды DATE.
%TIME% – раскрывается в текущую дату, используя формат команды TIME.
%RANDOM% – раскрывается в случайное десятичное число
между 0 и 32767.
%ERRORLEVEL% – раскрывается в текущее значение
ERRORLEVEL
%CMDEXTVERSION% – раскрывается в текущее значение версии расширенной обработки команд.
%CMDCMDLINE% – раскрывается в исходную командную строку, которая вызвала командный процессор.
Таблица 4
Динамические значения команды SET
Значение
%Cd%
%Date%
%Time%
%Random%
%Errorlevel%
%Cmdextversion%
%Cmdcmdline%
Описание действия
раскрывается в строку текущей директории
раскрывается в текущую дату
раскрывается в текущее время
раскрывается в случайное десятичное число в диапазоне от 0 до 32767
раскрывается в текущее значение ErrorLevel
раскрывается в текущее значение версии расширенной
обработки команд
раскрывается в исходную командную строку, которая
вызвала текущее окно командной оболочки
3. Команды REM, ECHO
Команда REM добавляет комментарии в пакетных файлах и не
выводит комментарии на экран. При обработке пакетной программы
строки, начинающиеся с Rem, пропускаются. Синтаксис команды
REM:
REM [текст],
33
где параметр текст задает строку символов, используемую в качестве
комментария.
Команда Echo выводит на экран сообщения или задание режима
вывода на экран. Синтаксис команды Echo:
ECHO [{on | off}] [сообщение],
где параметр {on | off} включает или отключает режим отображения
на экране информации о работе команд;
параметр сообщение задает текст для вывода на экран.
Для вывода сообщений из нескольких строк без вывода дополнительных команд между ними следует использовать несколько последовательных команд Echo после команды Echo off:
Cls
@Echo off
Echo.
Rem ****** Эта пакетная программа ******
Rem ***** иллюстрирует возможности *****
Rem *********** команды Echo ***********
Echo.
Echo ******** This batch program ********
Echo *** illustrates possibilities of ***
Echo ********* the Echo command *********
Echo.
Pause
4. Утилита FOR
Утилита FOR командной среды предназначена для выполнения
циклических операций для заданного множества операндов.
Синтаксис команды FOR:
FOR {% переменная| %%переменная} in (множество) do команда [ПараметрыКоманднойСтроки]
где %переменная – любые символы, кроме цифр 0–9, используемые
для выполнения команды из строки в окне командной оболочки;
%%переменная – любые символы, используемые для выполнения
команды в пакетном файле (переменные должны учитывать регистр);
34
(множество) – обязательный параметр, задающий один или
группу файлов, каталогов, диапазон значений или текстовых
строк, указывающих на файлы, подлежащие обработке заданной
командой (например, допустимыми являются следующие варианты: (*.doc), (*.doc *.txt *.me), (jan*.doc jan*.rpt feb*.doc feb*.rpt),
(ar??1991.* ap??1991.*); скобки являются обязательными для обозначения множества);
команда – обязательный параметр, задающий команду, которая
будет выполнена для каждого операнда множества;
ПараметрыКоманднойСтроки – задает параметры, которые используются с указанной командой.
Если расширения командного интерпретатора разрешены, что
делается по умолчанию, то существуют дополнительные формы команды FOR.
FOR /D {% переменная| %%переменная} in (множество) do команда [ПараметрыКоманднойСтроки]
Если множество содержит подстановочные знаки, команда выполняется для всех подходящих имен каталогов, а не имен файлов.
FOR /R [[диск :]путь] {% | %%} переменная in (множество) do
команда [ПараметрыКоманднойСтроки]
Выполнение команды осуществляется для каталога [диск:]путь, а
также для всех подкаталогов этого пути. Если после ключа /R не указано имя каталога, выполнение команды начинается с текущего каталога. Если вместо набора указана только точка (.), команда выводит
список всех подкаталогов.
FOR /L {% | %%} переменная in (НачальноеЗначение#,шаг#, КонечноеЗначение#) do команда [ПараметрыКоманднойСтроки]
Множество раскрывается в последовательность чисел с заданными началом, концом и шагом приращения. Так, набор (1,1,5) раскрывается в (1 2 3 4 5), а набор (5,–1,1) заменяется на (5 4 3 2 1)
FOR /F ["ключи"] %переменная IN (множество) DO команда
[параметры]
35
FOR /F ["options"] %variable IN ("literal string") DO command
[command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
или, если использован параметр usebackq:
FOR /F ["options"] %variable IN (filenameset) DO command [command-parameters]
FOR /F ["options"] %variable IN ('literal string') DO command
[command-parameters]
FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]
Набор содержит имена одного или нескольких файлов, которые
по очереди открываются, читаются и обрабатываются. Обработка заключается в чтении файла, разбивке его на отдельные строки текста и
в выделении из каждой строки заданного числа подстрок (в том числе
нуля). Затем найденная подстрока используется в качестве значения
переменной при выполнении основного тела цикла. По умолчанию
ключ /F выделяет из каждой строки файла первое слово, очищенное от
окружающих его пробелов. Пустые строки в файле пропускаются. Необязательный параметр "ключи" служит для переопределения заданных по умолчанию правил обработки строк. Ключи представляют собой заключенную в кавычки строку, содержащую указанные параметры. Ключевые слова:
eol=c – определение символа комментариев в конце строки (допускается задание только одного символа);
skip=n – число пропускаемых при обработке строк в начале файла;
delims=xxx – определение набора разделителей для замены заданных по умолчанию пробела и знака табуляции;
tokens=x,y,m-n – определение номеров подстрок, выделяемых из
каждой строки файла и передаваемых для выполнения в тело цикла
(при использовании этого ключа создаются дополнительные переменные; формат m-n представляет собой диапазон подстрок с номерами
от m по n; если последний символ в строке tokens= является звездочкой, создается дополнительная переменная, значением которой будет
весь оставшийся текст в строке после обработки последней подстроки);
usebackq – применение новой семантики, при которой строки, заключенные в обратные кавычки, выполняются как команды; строки,
заключенные в прямые одиночные кавычки, являются строкой лите36
ралов команды, а строки, заключенные в двойные кавычки, используются для выделения имен файлов в списках имен файлов.
Поясняющий пример:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i
%j %k
Эта команда обрабатывает файл myfile.txt, пропускает все строки,
которые начинаются с символа точки с запятой, и передает вторую и
третью подстроки из каждой строки в тело цикла, причем подстроки
разделяются запятыми и/или пробелами. В теле цикла переменная %i
используется для второй подстроки, %j – для третьей, а %k получает
все оставшиеся подстроки после третьей.
Имена файлов, содержащие пробелы, необходимо заключать в
двойные кавычки. Для того чтобы использовать двойные кавычки,
необходимо использовать параметр usebackq, иначе двойные кавычки
будут восприняты как границы строки для обработки.
Переменная %i явно описана в инструкции FOR, а переменные %j и
%k описываются неявно с помощью ключа tokens=. Ключ tokens= позволяет извлечь из одной строки файла до 26 подстрок, при этом, не
допускается использование переменных больших чем буквы 'z' или 'Z'.
Следует помнить, что имена переменных FOR являются глобальными, поэтому одновременно не может быть активно более 52 переменных.
Синтаксис команды FOR /F также позволяет обработать отдельную строку, с указанием параметра filenameset, заключенным в одиночные кавычки. Строка будет обработана как единая строка из входного файла.
Наконец, команда FOR /F позволяет обработать строку вывода
другой команды. Для этого следует ввести строку вызова команды в
апострофах вместо набора имен файлов в скобках. Строка передается
для выполнения обработчику команд CMD.EXE, а вывод этой команды записывается в память и обрабатывается так, как будто строка вывода взята из файла. Например, следующая команда:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
выведет перечень имен всех переменных среды, определенных в
настоящее время в системе.
37
Операции подстановки ссылок на переменные команды FOR также расширены. Допускается применение следующих синтаксических
конструкций:
%~I – из переменной %I удаляются обрамляющие кавычки (");
%~fI – переменная %I расширяется до полного имени файла;
%~dI – из переменной %I выделяется только имя диска;
%~pI – из переменной %I выделяется только путь к файлу;
%~nI – из переменной %I выделяется только имя файла;
%~xI – из переменной %I выделяется расширение имени файла;
%~sI – полученный путь содержит только короткие имена;
%~aI – переменная %I расширяется до атрибутов файла;
%~tI – переменная %I расширяется до даты /времени файла;
%~zI – переменная %I расширяется до размера файла;
%~$PATH:I – проводится поиск по каталогам, заданным в переменной среды PATH, и переменная %I заменяется на полное имя первого найденного файла.
Если переменная PATH не определена или в результате поиска не
найден ни один файл, то этот модификатор заменяется на пустую
строку. При объединении нескольких операторов можно получить
следующие результаты:
%~dpI – переменная %I заменяется только на имя диска и путь;
%~nxI – переменная %I заменяется только на имя файла и его
расширение;
%~fsI – переменная %I заменяется только на полный путь с краткими именами;
%~dp$PATH:I – проводится поиск по каталогам, заданным в переменной среды PATH, и переменная %I заменяется на имя диска и
путь к первому найденному файлу;
%~ftzaI – переменная %I заменяется на строку, выдаваемую командой DIR.
В приведенных выше примерах переменные %I и PATH можно
заменить на любые другие допустимые значения. В таких синтаксических конструкциях за символами %~ может следовать любое имя переменной цикла FOR.
Рекомендуется использовать заглавные буквы для имен таких переменных, например, %I, что делает их более заметными, а также позволяет отличать их от обозначений модификаторов, которые не различают используемый регистр.
38
5. Команда IF
Обработка условий в пакетных файлах осуществляется командой IF:
IF [NOT] ERRORLEVEL число команда
IF [NOT] строка1==строка2 команда
IF [NOT] EXIST имя_файлакоманда
NOT обращает истинность условия: истинное условие становится
ложным, а ложное – истинным;
ERRORLEVEL число (условие является истинным, если код возврата последней выполненной программы не меньше указанного
числа);
строка1==строка2 (это условие является истинным, если указанные строки совпадают);
EXIST имя_файла (это условие является истинным, если файл с
указанным именем существует);
команда задает команду, выполняемую при истинности условия.
За этой командой может следовать ключевое слово ELSE, служащее для указания команды, которая должна выполняться в том случае,
если условие ложно.
Предложение ELSE должно располагаться в той же строке, что и
команда, следующая за ключевым словом IF. Например:
IF EXIST имя_файла (
del имя_файла
) ELSE (
echo имя_файла missing.
)
Следующий пример содержит ОШИБКУ, поскольку команда del
должна заканчиваться переходом на новую строку:
IF EXIST имя_файла del имя_файла ELSE echo имя_файла missing
Следующий пример также содержит ОШИБКУ, поскольку команда ELSE должна располагаться в той же строке, что и команда,
следующая за IF:
IF EXIST имя_файла del имя_файла
ELSE echo имя_файла missing
39
Вот правильный пример, где все команды расположены в одной
строке:
IF EXIST имя_файла (del имя_файла) ELSE echo имя_файла
missing
Изменение команды IF при включении расширенной обработки
команд:
IF [/I] строка1 оператор_сравнения строка2 команда
IF CMDEXTVERSION число команда
IF DEFINED переменная команда
Здесь оператор_сравнения принимает значения, представленные
в таблице 7.
Таблица 7
Допустимые значения оn_сравнения
Оператор
EQU
NEQ
LSS
Описание
Равно
не равно
Меньше
Оператор
LEQ
GTR
GEQ
Описание
меньше или равно
больше
больше или равно
Ключ /I, если он указан, задает сравнение текстовых строк без
учета регистра. Ключ /I можно также использовать и в форме строка1==строка2 команды IF. Сравнения проводятся по общему типу
данных, так что если строки 1 и 2 содержат только цифры, то обе
строки преобразуются в числа, после чего выполняется сравнение чисел.
Условие CMDEXTVERSION применяется подобно условию
ERRORLEVEL, но значение сравнивается с внутренним номером
версии текущей реализации расширенной обработки команд. Первая
версия имеет номер 1. Номер версии будет увеличиваться на единицу
при каждом добавлении существенных возможностей расширенной
обработки команд. Если расширенная обработка команд отключена,
условие CMDEXTVERSION никогда не бывает истинно.
Условие DEFINED применяется подобно условию EXISTS, но
принимает в качестве аргумента имя переменной среды и возвращает
истинное значение, если эта переменная определена.
40
Строка %ERRORLEVEL% будет развернута в строковое представление текущего значения кода ошибки ERRORLEVEL, за исключением ситуации, когда уже имеется переменная среды с именем
ERRORLEVEL; в подобном случае подставляется значение этой переменной. Например, с помощью данной строки можно выполнить
следующее:
goto answer%ERRORLEVEL%
:answer0
echo Получен код возврата 0
:answer1
echo Получен код возврата 1
Допускается и применение описанных выше операторов числового сравнения:
IF %ERRORLEVEL% LEQ 1 goto okay
Строка %CMDCMDLINE% будет развернута в исходную командную строку, переданную CMD.EXE до любой обработки, за исключением ситуации, когда уже определена переменная среды с именем CMDCMDLINE, в подобном случае подставляется значение этой
переменной.
Строка %CMDEXTVERSION% будет развернута в строку, представляющую собой текущее значение CMDEXTVERSION, за исключением ситуации, когда уже имеется переменная среды с именем
CMDEXTVERSION; в подобном случае подставляется значение этой
переменной.
6. Команда GOTO
Команда Goto, эквивалентная безусловному переходу в языке высокого уровня, в пакетной программе реализует передачу правления
ОС Windows 7 в строку, определенную символьной меткой. Когда
метка найдена, выполнение продолжается со следующей за ней строки. Команда GOTO неразрывно связана с описанной выше командой
If, в совокупности обеспечивающей возможность сложных программных конструкций с переходами.
Синтаксис команды GOTO:
GOTO метка,
41
где метка – это строка в пакетной программе, на которую выполняется переход. В пакетном файле она должна начинаться с двоеточия (:).
Если строка начинается с двоеточия, все присутствующие в ней
команды обработаны не будут. Синтаксически она может включать
пробелы, но не может включать другие разделители, такие как точка с
запятой или знак равенства. При этом используются только первые
восемь знаков метки (метки: hithere0, hithere01 и hithere02 воспринимаются интерпретатором команд как эквивалентные).
Если расширения командного интерпретатора разрешены и в команде Goto используется метка :Eof, управление будет передано в конец текущего пакетного файла для выхода из него без назначения
метки. В синтаксис команды обязательно должно быть включено
двоеточие (:), то есть Goto :Eof.
Дополнительная информация по данной команде, а также примеры ее использования доступны в справке ОС Windows 7 (Пуск |
Справка и поддержка) в соответствующем разделе. Справку также
можно получить, набрав в окне командной оболочки строку Goto /? и
нажав Enter для ввода.
7. Команда CALL
Вызов одного пакетного файла из другого без завершения его выполнения осуществляется командой Call. Эта команда эквивалентна
вызову процедуры из основного тела программы. Она принимает метки в качестве объекта вызова и используется только в сценариях или
пакетных файлах; при вызове из командной строки команда Call игнорируется.
Синтаксис команды CALL:
CALL [[диск:][путь]
[:метка [аргументы]],
имя_файла
[пакетные_параметры]]
где [диск:][путь] имя_файла – задает имя и расположение пакетного
файла;
пакетные_параметры – задает данные командной строки, используемые программой пакетной обработки, включая параметры
командной строки, имена файлов, пакетные параметры (%0-%9)
или переменные (например, %baud%);
:метка – указывает метку, на которую должно быть передано
управление программы пакетной обработки (при использовании
42
команды с этим параметром создается новый контекст пакетного
файла, а управление передается инструкции, следующей за указанной меткой);
аргументы – задает данные командной строки, которые передаются в новую программу пакетной обработки, начинающуюся с
:метки, включая параметры командной строки, имена файлов,
пакетные параметры или переменные.
Необходимо отметить, что при использовании команды Call символы перенаправления ввода-вывода и «каналы» не допускаются.
Кроме того, может быть реализована подстановка переменных на основе модификаторов. При этом разрешаются все варианты синтаксических конструкций, приведенных в табл. 1 и 2.
Дополнительная информация по данной команде, а также примеры ее использования доступны в справке ОС Windows 7 (Пуск |
Справка и поддержка) в соответствующем разделе. Справку также
можно получить, набрав в окне командной оболочки строку Call /? и
нажав Enter для ввода.
8. Команды Setlocal, Endlocal
Следующие две команды и последние из основного набора, предназначены для задания начала и конца области определения локальных переменных среды в пакетном файле. Изменения среды являются
локальными для пакетного файла и задаются командой Setlocal. Локальное окружение используется до тех пор, пока не встретится команда Endlocal или не будет достигнут конец пакетного файла (Eof),
при этом командный интерпретатор восстанавливает первоначальные
параметры.
Синтаксис команд Setlocal и Endlocal:
Setlocal {enableextension | disableextensions} {enabledelayedexpansion | disabledelayedexpansion},
:
Endlocal,
где enableextension – включает расширения командного интерпретатора до появления соответствующей команды Endlocal, вне зависимости от состояния расширений командного интерпретатора
перед командой Setlocal;
43
disableextensions – выключает расширения командного интерпретатора до появления соответствующей команды Endlocal, вне зависимости от состояния расширений командного интерпретатора
перед командой Setlocal;
enabledelayedexpansion – включает расширения переменной среды с задержкой до появления соответствующей команды
Endlocal, вне зависимости от состояния расширений командного
интерпретатора перед командойSetlocal;
disabledelayedexpansion – выключает расширения переменных
среды с задержкой до появления соответствующей команды
Endlocal, вне зависимости от состояния расширений командного
интерпретатора перед командойSetlocal.
Вертикальное двоеточие (:) иллюстрирует последовательность
определенных команд, расположенных между Setlocal и Endlocal,
ограничивающих область локальных переменных среды. Кроме того,
допускается использование нескольких вложенных пар команд
Setlocal и Endlocal.
Дополнительная информация по данным командам, а также примеры их использования доступны в справке ОС Windows 7 (Пуск |
Справка и поддержка) в соответствующих разделах. Справку также
можно получить, набрав в окне командной оболочки строку Setlocal /?
или Endlocal /? и нажав Enter для ввода.
ХОД РАБОТЫ
 В настоящей лабораторной работе предполагается ознакомление с основными командами, используемыми в качестве инструментов
организации пакетных файлов, создание командного файла в формате
ASCII, реализующего определенный сценарий работы системы, а также оценка возможности использования его в качестве сценария входа
в систему.
 Лабораторная работа выполняется на виртуальной машине в
среде ОС Windows 7.
Задание 1. Изучение команды SET
1. Отобразите переменные среды двумя способами: из командной
оболочки и окна свойств системы (Пуск | Панель управления | Система).
2. Задайте переменную среды, содержащую определенный путь к
месту назначения, выбранный самостоятельно.
3. Проверьте наличие в системе переменной среды, заданной в
предыдущем пункте задания.
44
4. Выведите значение выражения, определенного в соответствии
с вариантом задания (табл. 9), в качестве переменной среды Result.
5. Задайте переменную среды с различными вариантами динамически формируемых значений (табл. 4). Варианты динамических значений выберите самостоятельно.
При выполнении задания используйте следующие инструкции:
 по каждому из пунктов задания в окне командной оболочки
наберите соответствующую команду с необходимыми ключами,
 нажмите Enter для ввода,
 изучите полученный результат и сделайте вывод о проделанной работе,
 запишите полученную информацию в отчет, заполнив табл. 5.
Таблица 5
Результаты выполнения команды Set
№
п.п.
1
2
3
Команда
с ключами
Результат и вывод
по способу применения команды
Задание 2. Изучение команд REM и ECHO
Создайте пакетный файл, воспользовавшись любым текстовым
редактором. Имя пакетного файла выберите самостоятельно.
1. Введите в созданный пакетный файл текст, приведенного выше примера.
2. Сохраните текст пакетного файла.
При выполнении задания используйте следующие инструкции:
 воспользовавшись командой Start и указав путь к пакетному
файлу, запустите его на выполнение, нажав Enter для ввода;
 изучите пример и полученный с его помощью результат, обратив внимание на то, что команда Echo с точкой (.) в конце выводит на
экран пустую строку, а символ «коммерческое И» (@) перед командой
Echo отключает режим отображения команд;
 сделайте соответствующий вывод и запишите его в отчет.
Задание 3. Изучение утилиты FOR
1. Скопируйте файлы каталога, путь к которому задайте самостоятельно, в точку назначения, заданную путем d:\Temp\. При копировании воспользуйтесь любым методом, изученным ранее.
45
2. К каждому из файлов, местоположение которых определено
путем d:\Temp\, добавьте символ «!» в начале имени, воспользовавшись командой циклической обработки данных.
3. Подсчитайте количество каталогов на локальном диске, воспользовавшись командой циклической обработки данных, в процессе
выполнения выводя результат в переменную среды, выбранную самостоятельно. Проверьте полученный результат в файловом диспетчере
Total Commander (Файл | Подсчитайте занимаемое место), предварительно выделив содержимое локального диска.
4. Модифицируйте пакетный файл, полученный в предыдущем
задании, воспользовавшись командой циклической обработки данных
таким образом, чтобы в процессе его выполнения отображалось определенное количество раз выражение «********* the FOR command
**********».
При выполнении задания используйте следующие инструкции: по
каждому из пунктов задания в окне командной оболочки наберите соответствующую команду с необходимыми ключами, нажмите Enter
для ввода, изучите полученный результат и сделайте вывод о проделанной работе, запишите полученную информацию в отчет, заполнив
табл. 6.
Таблица 6
Результаты выполнения команды FOR
№
п.п.
1
2
3
Команда
с ключами
Результат и вывод
по способу применения команды
Задание 4. Изучение команды IF
Модифицируйте пакетный файл, полученный в предыдущем задании таким образом, чтобы выполнялись следующие условия:
1. Если не существует каталог d:\Temp\MyFont\, создайте его любым способом, изученным ранее. В противном случае выведите сообщение «Folder exists» (Каталог существует).
2. Если в каталоге d:\Temp\MyFont\ не существует файловшрифтов, скопируйте любые три одним из методов, изученных ранее,
из системного каталога c:\Windows\Fonts\. В противном случае выведите сообщение «Fonts exist» (Шрифты присутствуют).
46
3. Если в каталоге d:\Temp\MyFont\ существует файлы, удалите
каталог вместе с его содержимым, изученным ранее способом и выведите сообщение «Folder deleted». В противном случае выведите сообщение «Folder is empty. Deleting is senseless» (Каталог пуст. Удаление
бессмысленно).
При выполнении задания используйте следующие инструкции:
 по каждому из пунктов задания в командном файле наберите
соответствующий код из команд с необходимыми ключами;
 сохраните модифицированный пакетный файл, воспользовавшись командой Start и указав путь к пакетному файлу;
 запустите его на выполнение, нажав Enter для ввода;
 изучите полученный результат и сделайте вывод о проделанной
работе;
 запишите полученную информацию в отчет, заполнив табл. 8.
Таблица 8
Результаты выполнения команды IF
№
п.п.
1
2
3
Команда
с ключами
Результат и вывод
по способу применения команды
Задание 5. Изучение команды GOTO
Модифицируйте существующий пакетный файл, введя в него следующий текст:
Pause
Echo.
Format A:
If not Errorlevel 1 Goto End
Echo.
Echo *** Error of formatting ***
Rem *** Ошибка форматирования ***
:End
Echo.
Echo *** The end of batch program ***
Rem *** Конец пакетной программы ***
Echo.
Pause
47
Сохраните текст пакетного файла.
При выполнении задания используйте следующие инструкции:
воспользовавшись командой Start и указав путь к пакетному файлу,
 запустите его на выполнение, нажав Enter для ввода;
 изучите пример и полученный с его помощью результат;
 сделайте вывод о проделанной работе и запишите его в отчет.
Задание 6. Изучение принципов работы команды CALL
1. Создайте новый (дочерний) пакетный файл, воспользовавшись
любым текстовым редактором. Имя пакетного файла выберите самостоятельно.
2. Введите в дочерний пакетный файл процедуру форматирования гибкого диска, учитывающую переход в начало процедуры в случае ошибки, из приведенного выше примера.
3. Модифицируйте родительский пакетный файл, удалив из него
лишние команды и добавив ссылку на дочерний пакетный файл для
его вызова.
4. Сохраните тексты обоих пакетных файлов.
При выполнении пунктов 1–4 задания используйте следующие
инструкции:
 воспользовавшись командой Start и указав путь к родительскому файлу, запустите его на выполнение, нажав Enter для ввода;
 изучите полученный результат и сделайте вывод о проделанной работе;
 запишите полученную информацию в отчет.
5. Вспомните команду форматирования Format и ее параметры.
6. Модифицируйте родительский и дочерний файлы таким образом, чтобы осуществилась передача из родительского файла двух значений параметров (%переменная) команды Format (табл. 9), находящейся внутри дочернего файла. Обратите внимание на то, что в таблице 9 передаваемые параметры команды Format имеют числовое
(%0-%9), а не символьное представление.
7. Сохраните тексты обоих пакетных файлов.
При выполнении пунктов 5-7 задания используйте следующие
инструкции:
 воспользовавшись командой Start и указав путь к родительскому файлу с параметрами для команды Format, запустите его на выполнение, нажав Enter для ввода;
 изучите полученный результат и сделайте вывод о проделанной работе;
48
 перенесите тексты модифицированных пакетных файлов, а
также значения используемых пакетных параметров в отчет.
Таблица 9
Варианты для заданий 1 и 6
Вар.
№
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
a
24
AA
12
25
49
21
BC
01
84
10
D1
FF
CA
45
88
75
A1
C4
44
B3
BB
55
D1
D6
71
84
Задание 1
Переменная среды
b
c
Result
11
35 (а + b – c) * 10
01
C1 a * 5 – b / 5 + c
33
10 a * 4 / c – b * 2
A3 B4 a – b * 3 – c / 2
02
65 a – b * b + c / 5
99
12 (b *(a + c)) / 3
BC CB 10 + (a – b) * c
94
04 (b – c) / (a * 9)
D2 2A a / 10 – (b * c)
39
92 a * a + b – c / 2
CC 1C a * b * c – b / c
00
F1 (a – c) * b + 25
DA FA a * b * (FA – c)
78
87 ((c – b) *a) / 8
88
00 (a – b) / (1 – c)
93
02 (b + c) * 2 –a
CD 0E a*a*b*b*c*c
EA E3 (a + b + c) * a
55
33 c *(b – a) / 10
E5 DE (a * b * c) / 25
ED AE (a – b) * 2 – c
56
31 (b – a) * 31 – c
EC EE (c – b) * 5 / a
E6 FE (a + b) * c – 11
65
32 (a – b) *c / 32
32
10 (a * (b + c)) / 5
49
Задание 6
Параметры команды Format
%1
%2
/v:System
/a:512
/a:512
/q
/v:IICT
/a:1024
/a:1024
/q
/v:VMgroup
/a:2048
./a:2048
/q
/v:MyCore
/a:4096
/a:4096
/q
/v:Useless
/a:8192
/v:MyDisk
/q
/v:Temp
/q
/q
/v:Apps
/v:Double
/q
/q
/v:HomeUse
/v:MyDocs
/q
/q
/v:VMComp
/v:MyList
/a:512
/a:512
/q
/v:Admin
/a:1024
/a:1024
/q
/v:SysCore
/a:2048
/a:2048
/q
/v:Kernel
/a:4096
/a:4096
/q
/v:User
/a:8192
/a:8192
/q
Задание 7. Использование команд Setlocal, Endlocal
Модифицируйте существующий пакетный файл, введя в него следующий текст, иллюстрирующий локальное изменение переменных
среды:
@Echo off
Echo.
Echo *** Local changing the environment variables ***
Rem *** Локальное изменение переменных среды ***
Setlocal
Path=c:\Windows\system32\help;%path%
Call help>c:\help.out
Endlocal
Start notepad c:\help.out
Pause
Сохраните текст пакетного файла.
При выполнении задания используйте следующие инструкции:
 воспользовавшись командой Start и указав путь к пакетному
файлу, запустите его на выполнение, нажав Enter для ввода;
 изучите пример и полученный с его помощью результат;
 сделайте вывод о проделанной работе и запишите его в отчет.
Задание для самостоятельной работы
Задание 9. Создание пакетного файла, реализующего определенную последовательность действий в ОС Windows 7
Порядок выполнения:
1. Создайте новый пакетный файл, воспользовавшись любым
текстовым редактором. Имя пакетного файла выберите самостоятельно.
2. Изучите выбранный вариант задания (табл. 10).
3. Синтезируйте алгоритм работы пакетного файла.
4. Выберите необходимый набор команд для реализации алгоритма.
5. С помощью выбранного набора команд запрограммируйте
сценарий в виде пакетного файла, реализующего определенную последовательность действий в среде ОС Windows .
6. Сохраните текст пакетного файла.
50
При выполнении задания используйте следующие инструкции:
 воспользовавшись командой Start и указав путь к пакетному
файлу, запустите его на выполнение, нажав Enter для ввода;
 изучите полученный результат;
 перенесите алгоритм, блок-схему и текст разработанного пакетного файла в отчет;
 сделайте вывод о проделанной работе и запишите его в отчет.
Дополнительную информацию по возможностям командной оболочки, а также все множество команд, доступных при работе с ней,
наряду с параметрами и примерами применения можно получить в
справке ОС Windows (Пуск | Справка и поддержка) в разделах «Общие сведения о командной оболочке», «Справочник по параметрам
командной строки» и «Новые средства командной строки».
Таблица 10
Варианты для задания 9
Задание 9
Вар.
№
1
1
2
3
Описание пакетного файла
2
Пакетный файл, предназначенный для резервного копирования файлов с определенным расширением из разных каталогов с возможностью создания резервного каталога, в случае его отсутствия в системе. Расширение файлов для копирования задается в качестве пакетного параметра. Резервное копирование осуществляется каждый четверг в 22:00. В течение 3 минут после копирования выводится сообщение «Резервное копирование в каталог <путь> завершено», и далее
происходит автоматическое выключение системы с принудительным
закрытием всех работающих приложений.
Пакетный файл, предназначенный для организации процесса поиска и
отображения текстового файла. Поиск осуществляется по всем локальным дискам. Имя текстового файла задается пакетным параметром. После
того как необходимый файл найден, в автоматическом режиме осуществляется его отображение в текстовом процессоре «Блокнот».
Пакетный файл, предназначенный для копирования каталога с его
содержимым в заданное место назначения. Копируемый каталог и
место назначения задаются в качестве пакетных параметров. После
копирования каталога файл-отчет, содержащий информацию о количестве скопированных файлов и их месте расположения, в автоматическом режиме загружается в текстовый процессор «Блокнот».
51
Продолжение таблицы 10
1
2
4
Пакетный файл, предназначенный для перемещения каталога с его
содержимым в заданное место назначения с запросом на удаление,
перемещаемого каталога. Перемещаемый каталог и место назначения
задаются в качестве пакетных параметров. После перемещения каталога в отдельный файл выводится отчет, содержащий два дерева каталогов тех мест, из которых и в которые было осуществлено перемещение. В конце выводится сообщение вида: «Отчет о перемещении находится в каталоге <путь>».
Пакетный файл, предназначенный для копирования каталога и включенных в него файлов, расположенных в месте, заданном определенным
путем. Полный путь расположения и маска копируемых файлов задаются в качестве пакетных параметров. Если в результирующем каталоге
уже находятся копирующиеся файлы, то повторное копирование должно сопровождаться выдачей предупреждающего сообщения о существовании файлов. В конце выводится сообщение вида: «Копирование файлов из каталога <путь> в каталог <путь> завершено».
Пакетный файл, предназначенный для создания отчета, содержащего
программную часть («Software part»), включающую информацию о
содержимом корневых каталогов всех логических дисков в системе,
и аппаратную часть («Hardware part»), включающую сведения о конфигурации компьютера и ОС, сведения о безопасности, параметры
оборудования, такие как ОЗУ, дисковое пространство, сетевые карты
и другие. Файл-отчет копируется в некоторый сетевой каталог, задаваемый пакетным параметром, под именем, отражающим имя компьютера, с которого получен этот отчет. В конце выводится сообщение вида: «Отчет находится в сетевом каталоге <путь>».
Пакетный файл, предназначенный для углубленной проверки жесткого диска с созданием файла-отчета, путь к которому задается в
качестве пакетного параметра. Проверка жесткого диска осуществляется ежедневно в 21:00. В течение 20 секунд после окончания проверки диска выводится сообщение: «Проверка диска завершена.
Файл-отчет находится в каталоге <путь >», и далее осуществляется
автоматическая перезагрузка системы.
Пакетный файл, предназначенный для резервного копирования файлов системной папки Windows, с возможностью создания резервного
каталога в случае его отсутствия в системе. Путь к резервному каталогу задается в качестве пакетного параметра. Резервное копирование осуществляется ежедневно в 23:00. В течение 2 минут после копирования выводится: «Резервное копирование в каталог <путь> завершено», и далее происходит автоматическое выключение системы
с принудительным закрытием всех работающих приложений.
5
6
7
8
52
Продолжение таблицы 10
1
9
10
11
12
13
2
Пакетный файл, предназначенный для архивирования и шифрования
указанного каталога с его содержимым. Архивируется каталогисточник с помощью существующего в системе архиватора (например, WinRar), вызов которого осуществляется непосредственно из
пакетного файла. Архив в дальнейшем шифруется и сохраняется в
определенном месте на жестком диске. Пути к каталогу-источнику и
месту назначения задаются в качестве пакетных параметров. В конце
выводится сообщение вида: «Шифрованный архив сохранен в каталог <путь>».
Пакетный файл, предназначенный для удаления файлов по маске,
расположенных в месте, заданном определенным путем. Полный
путь расположения и маска удаляемых файлов задаются в качестве
пакетных параметров. В процессе необходимо осуществлять запрос
на подтверждение удаления. В конце выводится сообщение вида:
«Стерто файлов: <количество> из каталога <путь>».
Пакетный файл, предназначенный для организации процесса поиска
и сравнения оригинального файла и его резервной копии (.bak). Если
оригинальный файл найден, то осуществляется его сравнение с резервной копией. Отличия, найденные при сравнении, передаются в
отчет, который сохраняется в определенном месте. Имя резервной
копии файла и путь к месту назначения, где сохраняется отчет о
сравнении, задаются в качестве пакетных параметров. В конце выводится сообщение вида: «Отчет сохранен в каталог <путь>».
Пакетный файл, предназначенный для создания отчета, содержащего
программную часть («Software part»), включающую информацию о
присутствующих в системе загруженных драйверах, и аппаратную
часть («Hardware part»), включающую сведения о конфигурации
компьютера и ОС, сведения о безопасности, параметры оборудования, такие как ОЗУ, дисковое пространство и другие. Файл-отчет
копируется в некоторый сетевой каталог, задаваемый пакетным параметром, под именем, отражающим IP-адрес компьютера, с которого получен этот отчет. В конце выводится сообщение вида: «Отчет
находится в каталоге <путь>».
Пакетный файл, предназначенный для подсчета файлов в каталоге,
заданном определенным путем. Полный путь расположения и расширение подсчитываемых файлов задаются в качестве пакетных параметров. Организовать отчет с возможностью дописывания в него
информации вида: «Каталог <путь> содержит <количество> файлов с
<расширение> расширением»
53
Продолжение таблицы 10
1
14
15
16
17
18
2
Пакетный файл, предназначенный для резервного копирования каталога и содержащихся в нем файлов, заданного определенным путем,
с возможностью создания резервного каталога, в случае его отсутствия в системе. Пути к каталогу-источнику и месту назначения задаются в качестве пакетных параметров. Резервное копирование
осуществляется ежедневно в 23:59. В течение 5 секунд после копирования выводится сообщение: «Резервное копирование в каталог
<путь> завершено» и далее происходит автоматическая перезагрузка
системы.
Пакетный файл, предназначенный для отражения статистики по атрибутам файлов в каталоге, заданном определенным путем. В каталоге файлы с определенным атрибутом подсчитываются, а их количество передается в текстовый файл статистики с дописыванием в
него информации вида: «Файлов с атрибутом <атрибут>: <количество>». Пути к каталогу и месту назначения, где сохраняется файл
статистики, задаются в качестве пакетных параметров. В конце выводится сообщение вида: «Отчет сохранен в каталог <путь>».
Пакетный файл, предназначенный для копирования файлов с определенным расширением и путем в заданное место назначения с их
последующим шифрованием. Расширение файлов для копирования,
полный путь расположения и путь к месту назначения задаются в
качестве пакетных параметров. В конце выводится сообщение вида:
«Копирование файлов из каталога <путь> в каталог <путь> завершено. Шифрование скопированных данных завершено».
Пакетный файл, предназначенный для организации процесса поиска
и сравнения оригинального файла и его резервной копии (.bak). Имя
резервной копии файла передается в качестве пакетного параметра.
Если оригинальный файл найден, то осуществляется его сравнение с
резервной копией. Отличия, найденные при сравнении, передаются в
отчет, который, в автоматическом режиме загружается в текстовый
процессор «Блокнот».
Пакетный файл, предназначенный для создания отчета, который
включает информацию о присутствующих в системе загруженных
драйверах и отображает список приложений и служб, выполняющихся на компьютере. Файл-отчет копируется в некоторый сетевой каталог, задаваемый пакетным параметром, под именем, отражающим
MAC-адрес компьютера, с которого получен этот отчет. В конце выводится сообщение вида: «Отчет находится в сетевом каталоге
<путь>».
54
Продолжение таблицы 10
1
19
20
21
22
23
2
Пакетный файл, предназначенный для копирования файлов, определяемых маской и путем, в заданное место назначения с их последующим
архивированием. Архивирование осуществляется с помощью доступного в системе архиватора (например, WinRar), вызов которого осуществляется непосредственно из пакетного файла. Маска файлов для копирования, полный путь расположения и путь к месту назначения задаются в
качестве пакетных параметров. В конце выводится сообщение вида:
«Копирование файлов из каталога <путь> в каталог <путь> завершено.
Архивирование скопированных данных завершено».
Пакетный файл, предназначенный для удаления файлов с определенным расширением, которые расположены в месте, заданном определенным путем. Полный путь расположения и расширение удаляемых
файлов задаются в качестве пакетных параметров. В процессе необходимо осуществлять запрос на подтверждение удаления. После удаления в отдельный файл выводится отчет, содержащий список удаленных файлов с их полным путем, который, в свою очередь, в автоматическом режиме загружается в текстовый процессор «Блокнот».
Пакетный файл, предназначенный для создания отчета событий и их
свойств из журнала событий на локальном компьютере. Журналы
событий: Application, System и Security. Файл-отчет копируется в
некоторый сетевой каталог, задаваемый пакетным параметром, под
именем, отражающим IP-адрес компьютера, с которого получен этот
отчет. В конце выводится сообщение вида: «Отчет находится в сетевом каталоге <путь>». Примечание: если необходимо, смените сервер сценариев ОС Windows 7.
Пакетный файл, предназначенный для перемещения файлов с определенным расширением из каталога-источника в заданное место
назначения. Расширение файлов, каталог-источник и место назначения задаются в качестве пакетных параметров. После перемещения
отчет, содержащий список перемещенных файлов с указанием их
полного пути, загружается в текстовый процессор «Блокнот».
Пакетный файл, предназначенный для резервного копирования каталога и содержащихся в нем файлов, заданного определенным путем,
с возможностью создания резервного каталога, в случае его отсутствия в системе. Пути к каталогу-источнику и месту назначения задаются в качестве пакетных параметров. Резервное копирование
осуществляется ежедневно в 23:30. В течение 10 секунд после копирования выводится сообщение: «Резервное копирование в каталог
<путь> завершено». Далее происходит автоматическая перезагрузка
системы.
55
Окончание таблицы 10
1
24
25
2
Пакетный файл, предназначенный для копирования дерева каталогов
из каталога-источника в заданное место назначения. Копируемый
каталог-источник и место назначения задаются в качестве пакетных
параметров. После копирования отчет, содержащий дерево каталогов
с местом его расположения, в автоматическом режиме загружается в
текстовый процессор «Блокнот».
Пакетный файл, предназначенный для организации процесса поиска
и копирования файлов с определенным расширением. Поиск осуществляется по всем локальным дискам. Расширение файлов и место
назначения, куда необходимо копировать файлы, задаются в качестве
пакетных параметров. В конце выводится сообщение вида: «Файлы
найдены и скопированы в каталог <путь>».
56
Лабораторная р абота №4
УСТАНОВКА ОПЕРАЦИОННОЙ СИСТЕМЫ LINUX
Цель работы: приобрести опыт установки операционной системы Linux.
План проведения занятия
1. Закрепление знаний о работе с программой VirtualBox.
2. Создание виртуальной машины исходя из предоставленной
информации о минимальных аппаратных требований предлагаемой к установке и изучению операционной системы (ОС).
3. Установка ОС на виртуальный компьютер. Определение этапов процесса установки ОС.
4. Ознакомление с основными группами программ, входящих в
состав ОС.
5. Подготовка отчета.
Оборудование
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: программа VirtualBox, установочный диск
либо образ диска с ОС Linux Ubuntu 9, текстовый процессор Microsoft
Word.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Linux (полное название GNU/Linux, произносится «гну слэш линукс») – общее название UNIX-подобных операционных систем на
основе одноименного ядра и собранных для него библиотек и системных программ, разработанных в рамках проекта GNU.
GNU/Linux работает на PC-совместимых системах семейства Intel
x86, а также на IA-64, AMD64, PowerPC, ARM и многих других.
К операционной системе GNU/Linux также часто относят программы, дополняющие эту операционную систему, и прикладные программы, делающие ее полноценной многофункциональной операционной средой.
В отличие от большинства других операционных систем,
GNU/Linux не имеет единой «официальной» комплектации. Вместо
этого GNU/Linux поставляется в большом количестве так называемых
57
дистрибутивов, в которых программы GNU соединяются с ядром
Linux и другими программами.
Дистрибутив – это не просто набор программ, а ряд решений для
разных задач пользователей, объединенных едиными системами установки, управления и обновления пакетов, настройки и поддержки.
Самые распространенные в мире дистрибутивы:
 Ubuntu – быстро завоевавший популярность дистрибутив, ориентированный на легкость в освоении и использовании;
 openSUSE – бесплатно распространяемая версия дистрибутива
SuSE, принадлежащая компании Novell, отличается удобством в
настройке и обслуживании благодаря использованию утилиты YaST;
 Fedora – поддерживается сообществом и корпорацией RedHat,
предшествует выпускам коммерческой версии RHEL;
 Debian GNU/Linux – международный дистрибутив, разрабатываемый обширным сообществом разработчиков в некоммерческих
целях, послужил основой для создания множества других дистрибутивов, отличается строгим подходом к включению несвободного ПО;
 Mandriva – французско-бразильский дистрибутив, объединение бывших Mandrake и Conectiva;
 Archlinux – дистрибутив, ориентированный на применение самых последних версий программ; постоянно обновляемый, поддерживающий одинаково как бинарную установку, так и установку из исходных кодов и построенный на философии простоты KISS, он ориентирован на компетентных пользователей, которые хотят иметь всю
силу и модифицируемость Linux, не принося в жертву время обслуживания.
Помимо перечисленных, существует множество других дистрибутивов как базирующихся на перечисленных выше, так и созданных
с нуля и зачастую предназначенных для выполнения ограниченного
количества задач.
В отличие от Microsoft Windows (Windows NT), Mac OS (Mac OS X)
и коммерческих UNIX-подобных систем, GNU/Linux не имеет географического центра разработки. Нет и организации, которая владела бы
этой системой; нет даже единого координационного центра. Программы для Linux – результат работы тысяч проектов. Некоторые из этих
проектов централизованы, некоторые сосредоточены в фирмах. Многие проекты объединяют хакеров со всего света, которые знакомы
только по переписке. Создать свой проект или присоединиться к уже
существующему может любой и, в случае успеха, результаты его работы станут известны миллионам пользователей. Пользователи при58
нимают участие в тестировании свободных программ, общаются с
разработчиками напрямую, что позволяет быстро находить и исправлять ошибки и реализовывать новые возможности.
История развития UNIX-систем. GNU/Linux является UNIXсовместимой, однако основывается на собственном исходном коде.
Именно такая гибкая и динамичная система разработки, невозможная для проектов с закрытым кодом, определяет исключительную
экономическую эффективность GNU/Linux. Низкая стоимость свободных разработок, отлаженные механизмы тестирования и распространения, привлечение людей из разных стран, обладающих разным
видением проблем, защита кода лицензией GPL – все это стало причиной успеха свободных программ.
Конечно, такая высокая эффективность разработки не могла не
заинтересовать крупные фирмы, которые стали открывать свои проекты. Так появились Mozilla, OpenOffice.org, свободный клон Interbase
(Borland).
ХОД РАБОТЫ
Системные требования OC Linux Ubuntu 9:
 Процессор: 1 GHz, 32-разрядный;
 Оперативная память: 256 Mb (32-bit)
 Свободное дисковое пространство: 2 Гбайт HDD + 256 Мбайт
для swap.
 Видеоадаптер: 64 MB памяти;
 Устройство чтения DVD-дисков.
В процессе установки не забываем регистрировать основные этапы установки в тетради.
1. Создадим виртуальную машину руководствуясь инструкциями
лабораторной работы 1, учитываем тип операционной системы, а также минимальные системные требования.
2. Загружаем предлагаемый образ для установки Linux Ubuntu и
выбираем язык установки:
3. Выбираем пункт «Установить Ubuntu». И после непродолжительного ожидания увидим приветствие с предложением начать установку.
4. Нажимаем кнопку «Forward» («Далее») и увидим меню, в котором можно выбрать часовой пояс.
59
5. Нажимаем кнопку «Forward» («Далее»), и увидим меню выбора
раскладки клавиатуры.
6. Нажимаем кнопку «Forward» («Далее») и увидим меню подготовки разделов жесткого диска к установке Ubuntu.
7. Выбираем пункт «Использовать весь диск». Пункт «Указать
разделы вручную (расширенно)» выполняется только по указанию
преподавателя, иначе нажимать не следует.
8. Нажимаем «Forward» («Далее») и видим меню для идентификации будущего пользователя ОС. Необходимо задать имя (Коля, Вася, Маша и т.п.). А также используемое при входе. Во избежание проблем с утратой логина и пароля всем студента задать:
 имя, используемое для входа в систему (login) – user;
 пароль, чтобы держать запись в сохранности (password) –
123456; (на вопрос, нужно ли сменить пароль, так как он слишком
простой, ответить отрицательно);
 имя компьютера в сети уточнить у преподавателя.
9. После заполнения всех пунктов меню идентификации, нажимаем «Forward» («Далее») и видим окно со сводной информацией о будущей ОС.
10. Окно со сводкой о будущей системе представлено – последняя
возможность отменить установку или внести какие-то изменения.
Нажимаем кнопку «Установить». И в следующем возникшем окне
нажимаем «Перезагрузить».
11. Инструкцией предполагается извлечение физического диска,
но так как мы работаем с образом, то в верхнем меню окна программы
VirtualBox находим пункт «Устройства» и в появившемся меню выбираем пункт «Отключить CD/DVD-ROM». Для перезагрузки виртуальной машины нажмите сочетание клавиш Ctrl+R.
12. После небольшого диалога с вводом имени пользователя и пароля (имя пишется без заглавных букв) мы увидим ОС Linux Ubuntu с
подключенным рабочим столом GNOME.
13. Установите дополнения к гостевой ОС (см. лабораторную работу 1). После монтирования нового носителя (смотри на рабочем
столе), найдите на нем файл avtoran.sh, запустите его двойным кликом
и в появившемся диалоговом окне нажмите «Запустить через терминал», далее процесс будет автоматизирован.
14. Подготовьте отчет о выполнении лабораторной работы, опишите основные этапы установки ОС. Сдайте отчет преподавателю в
соответствии с графиком.
60
Контрольные вопросы
1. Что такое Linux?
2. Что такое дистрибутив?
3. Перечислите основные дистрибутивы Linux. Объясните, в чем
их отличие.
4. Какую файловую систему использует для работы установленный Вами дистрибутив?
5. Перечислите основные этапы установки операционной системы.
Литература
1. Олифер В. Г., Олифер Н. А. Сетевые операционные системы.
СПб.: Питер, 2008. 669 с.
2. Гордеев А. В. Операционные системы: Учебник для вузов. 2-е
изд. СПб.: Питер, 2006. 416 с.
3. Основы операционных систем. Курс лекций. Учебное пособие
/ В. Е. Карпов, К. А. Коньков / Под ред. В. П. Иванникова. М.:
ИНТУИТ.РУ «Интернет-университет информационных технологий»,
2008. 632 с.
61
Лабораторная работа №5
ТЕРМИНАЛ И КОМАНДНАЯ ОБОЛОЧКА
ОПЕРАЦИОННОЙ СИСТЕМЫ LINUX
Цели работы: приобрести опыт работы с командной строкой ОС
Linux; изучить основные команды (рабочая станция, рабочий директорий, пользователи, дата, календарь, список процессов, завершение
работы).
План проведения занятия
1. Ознакомление с краткими теоретическими сведениями.
2. Приобретение навыка работы в терминале Linux. Обучение созданию новых пользователей в терминале Linux с помощью
несложных команд.
3. Подготовка отчета для преподавателя о выполнении лабораторной работы.
Оборудование
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: операционная система Linux Ubuntu, текстовый процессор Microsoft Word.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Стандартные команды в Linux отличаются от команд DOS и Windows: обычно они короче. При работе с командной строкой как обычно мигающий курсор обозначает позицию ввода текста, командная
строка начинается с текущего пути и имени компьютера, за которым
следует символ $, % или #. Последний означает, что команды будут
выполняться от имени суперпользователя root. Символ ~ означает
путь к текущей домашней директории пользователя.
Большинство команд в Linux, не требующих вывода информации
пользователю, в случае успешного завершения вообще ничего не выводят на экран. Выводятся только ошибки и предупреждения в случае
нарушения нормального выполнения команды. Т. е. в Linux действует
общий принцип "молчит, значит работает".
В любом терминале Linux стрелками вверх/вниз на клавиатуре
можно листать историю команд, которая сохраняется между сеансами
62
работы и различается для разных пользователей и хостов. Набранные
частично команда или имя файла или каталога в текущей директории
могут быть автоматически дописаны клавишей TAB. Если найдено
более одного варианта и однозначно продолжить команду по TAB невозможно, то выводятся все подходящие варианты.
При работе в графической среде удобны эмуляторы терминала.
Как правило, они поддерживают цветовые схемы и закладки – несколько терминалов в одном окне. Наиболее распространены эмуляторы терминала Gnome Terminal, Konsole, XFCE Terminal.
Терминал – эмулятор консоли. Именно в терминале мы будем работать с CLI (интерфейсом командной строки). Терминал часто также
называют консолью или шеллом (от англ. shell – оболочка). В будущем для объяснения мы будем использовать все три эти понятия.
Многие пользователи и в особенности администраторы серверов
под Linux в работе используют именно консоль, а не графическую
оболочку, это связано с тем, что настройка и конфигурация Linux в
основном заключается в редактировании текстовых конфигурационных файлов. Даже если вы являетесь простым пользователем ОС
Linux, большинство инструкций по настройке написано с использованием консоли, следовательно, знать основные команды жизненно
необходимо.
Стоит обратить внимание на системные каталоги ОС, в которых
находятся файлы, необходимые для управления и сопровождения системы, а также стандартные программы. Их имена, расположение и содержание почти одинаковы почти во всех ОС Linux, поэтому эти каталоги называют также стандартными. Впрочем, на данный момент эпитет «стандартные» отражает скорее благие пожелания, чем действительность: иерархия каталогов одинакова только для дистрибутивов,
связанных единством происхождения, а исторически сложившиеся различия создают опасность несовместимости разных дистрибутивов.
Краткое описание основных каталогов сведено в таблицу 1.
С точки зрения UNLX-подобных ОС файл представляет собой
поток или последовательность байтов. Такой подход позволяет распространить понятие файла на множество ресурсов не только локального, но и удаленного компьютера, связанного с локальным сетью
любого рода. Доступ к любому такому ресурсу осуществляется через
универсальный интерфейс, благодаря чему запись данных в файл, отправка их на физическое устройство или обмен ими с другой работающей программой происходит аналогично. Это очень упрощает организацию данных и обмен ими.
63
Таблица 1
Описание дерева каталогов ОС Linux
Каталог
Назначение
/bin
Основные программы, необходимые для работы в системе: командные оболочки, файловые утилиты и т.п.
/sbin
Команды для системного администрирования, а также программы, выполняемые в ходе загрузки
/boot
Файлы, необходимые для загрузки системы (образ ядра)
/home
Домашние каталоги пользователей, кроме root
/dev
Файлы устройств
/etc
Файлы настроек: стартовые сценарии, конфигурационные файлы
графической системы и различных приложений
/lib
Системные библиотеки, необходимые для основных программ, и
модули ядра
/lost+found Восстановленные после аварийного размонтирования части файловой системы
/media
Сюда обычно монтируются съемные носители: компакт-диски,
flash-накопители
/mnt
Временные точки монтирования жестких дисков. Использовать
этот каталог необязательно: подмонтировать файловую систему
можно к любому другому каталогу
/opt
Дополнительные пакеты программ. Если программа, установленная сюда, больше не нужна, то достаточно удалить ее каталог без
обычной процедуры деинсталляции
/proc
Виртуальная файловая система, дающая доступ к информации
ядра (например, выведите на экран файл /proc/cpuinfo). Другие
файлы в этом каталоге в каждый момент времени содержат информацию о выполняющихся в этот момент программах
/root
Домашний каталог суперпользователя. Домашние каталоги всех
остальных могут находиться на отдельном разделе, но /root должен быть в корневой файловой системе, чтобы администратор
всегда мог войти в систему для ремонтных работ
/tmp
Временные файлы
/var
Часто меняющиеся данные: системные журналы и протоколы
приложений, замки, почтовые ящики, очереди печати и т.п.
/usr
Практически все остальное: программы, исходные коды, документация. Сюда по умолчанию устанавливаются новые программы
64
В ОС Linux можно выделить следующие типы файлов:
– обычные файлы – последовательность байтов (текстовые документы, исполняемые программы, библиотеки и т.п.);
– каталоги – именованные наборы ссылок на другие файлы; файлы физических устройств, подразделяющихся на:
 файлы блочных устройств, драйверы которых буферизуют вводвывод с помощью ядра и файлы байт-ориентированных, или
символьных, устройств, позволяющих связанным с ними драйверам выполнять буферизацию собственными средствами;
 символические ссылки (symlink, symbolic link);
 именованные каналы (named pipes);
 гнезда (sockets).
Задания для самостоятельной работы
1. Для выполнения данной работы будем использовать ранее
установленный Linux Ubuntu. Запускаем Linux. После прохождения
идентификации включаем терминал.
Applications > Accessories > Terminal
2. Для работы в терминале Ubuntu требуются права пользователя
root, но, к сожалению, по умолчанию он недоступен, поэтому для выполнения некоторых (не всех) команд надо писать sudo <команда> и
подтверждать свои права вводом пароля. И не пугайтесь того, что его
не видно в терминале! Наберите точно по памяти, по окончании ввода
нажмите Enter.
3. Для получения справки о дополнительных возможностях некоторых программ следует набрать <команда> --help
4. Потренируйтесь в выполнении команд:








date
oclock
finger
hwclock
uname
history
clear
ls
Найдите данные команды в таблице 2, опишите их. После выполнения результат внесите в отчет.
65
Таблица 2
Перечень некоторых команд ОС Linux
стремительное и корректное выключение системы
корректное выключение системы
корректное выключение с последующей загрузкой
создание нового пользователя
показывает нынешние дату и время, по системным часам ядра
обычные часы
отображение информации о пользователе
команда показывает личный номер этого узла сети
интегрированные часы
выводит информацию об используемой операционной системе
проявляет текущее время, длительность сеанса, число пользователей и загруженность процессора
usermod изменение параметров пользователя
users
отражает короткий перечень пользователей, работающих в системе в этот эпизод
whoami
демонстрирует нынешний личный номер пользователя, работающего в этом терминале
write
посылает известие иному пользователю, находящемуся в системе,
маршрутом копирования строчек с терминала отправителя на
терминал получателя
history
демонстрирует пронумерованный перечень команд, которые Вы
исполняли в данном и прошлом сеансе. Само собой разумеется,
что если в перечне истории их очень много, то увидите заключительные.
passwd
изменение пароля пользователя
выводит перечень всех работающих действий.
times
проявляет абсолютное время исполнения действий для всей системы и этого пользователя.
Free
отражает информацию о своевременной памяти, подкачке, кэше,
свободная память, общественная и т.п.
Ls
указывает все файлы в текущем каталоге в алфавитном порядке;
по всей вероятности, аналогична dir.
clear
чистит экран терминала (в случае, если данное вполне вероятно).
ifconfig
отражает состояние текущей конфигурации сети или же настраивает сетевой интерфейс.
Less
отражает содержимое указанного файла на экране и дозволяет
комфортно просмотреть.
mkpasswd создает качественный пароль, состоящий по умолчанию из 9 знаков
и имеющий как минимум буквы в различном регистре и числа.
Halt
poweroff
reboot
adduser
Date
oclock
finger
hostname
hwclock
uname
uptime
66
5. Создайте нового пользователя при помощи терминала Ubuntu,
и введите его в группу admin. Создайте пароль пользователя. Войдите
в систему, используя этот пароль. Процесс создания и ввода в группу
внесите в отчет.
6. Разберите выполнение незадействованных команд таблицы 2.
Потренируйтесь в выполнении, определите их назначение и область
применения. Результат работы внесите в отчет.
7. Подготовьте отчет о выполнении лабораторной работы и
сдайте преподавателю в соответствии с графиком.
Контрольные вопросы
1. Что такое терминал?
2. Перечислите основные системные каталоги.
3. Расскажите о типах файлов в ОС Linux.
67
Лабораторная работа №6
РАБОТА С ФАЙЛОВОЙ СИСТЕМОЙ ОС LINUX
Цель работы: приобрести опыт работы с файлами и каталогами в
ОС Linux, развить навык настройки прав на доступ к файлам и каталогам.
План проведения занятия
1. Ознакомление с краткими теоретическими сведениями.
2. Приобретение навыка работы в терминале Linux.
3. Обучение созданию новых файлов и каталогов, анализ назначения прав доступа к файлам и папкам.
4. Подготовка отчета о выполнении лабораторной работы.
Оборудование
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: операционная система Linux Ubuntu, текстовый процессор Microsoft Word.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Файловая система – это структура, с помощью которой ядро операционной системы предоставляет пользователям (и процессам) ресурсы долговременной памяти системы, т. е. памяти на различного
вида долговременных носителях информации: на жестких дисках,
магнитных лентах, CD-ROM и т. п.
С точки зрения пользователя, файловая система – это логическая
структура каталогов и файлов. В отличие от Windows, где каждый логический диск хранит отдельное дерево каталогов, во всех UNIXподобных системах эта древовидная структура растет из одного корня: она начинается с корневого каталога, родительского по отношению ко всем остальным, а физические файловые системы разного типа, находящиеся на разных разделах и даже на удаленных машинах,
представляются как ветви этого дерева.
Имена файлов и каталогов могут иметь длину до 255 символов.
Символ «/» (слэш) и символ с кодом 0 запрещены. Кроме того, некоторые символы имеют специальное значение для командного интер68
претатора, и их использование не рекомендуется. Это символы: ~ ! @
# $ & % * ( ) [ ] { } ' " \ : ; > < пробел.
Заметьте, что точки среди специальных символов нет, и имена
вроде this.is.a.text.file.containing.the.famous.string.hello.world допустимы и широко распространены. Часто последняя отделенная точкой
часть имени используется подобно «расширению имени» в Windows,
обозначая файл определенного типа, но это обозначение несет смысл
только для человека. Так, имя файла ivan=home=tar.gz подсказывает,
что это домашний каталог пользователя ivan, упакованный архиватором tar и сжатый компрессором gzip.
Если имя файла начинается с точки, то этот файл считается скрытым: некоторые команды его «не видят». Например, введя в своем домашнем каталоге команду просмотра содержимого каталога ls с ключом -а, означающим «показывать скрытые файлы», вы увидите больше файлов, чем введя ту же команду без ключей.
Linux различает регистр символов в именах файлов: так, в одном
каталоге могут находиться два разных файла README и Readme.
Имена каталогов строятся по тем же правилам, что и имена файлов. Полным именем файла (или путем к файлу) называется список
вложенных друг в друга каталогов, заканчивающийся собственно
именем файла. Начинаться он может с любого каталога, потому что в
древовидной структуре между любыми двумя узлами существует
путь. Если этот список начинается с корневого каталога, то путь называется абсолютным. Если с любого другого – то относительным (по
отношению к этому каталогу).
Корневой каталог обозначается символом «/» (слэш), и этим же
символом разделяются имена каталогов в списке. Таким образом, абсолютным именем файла README в домашнем каталоге пользователя ivanov будет /home/petrov/README.
В каждом каталоге существуют два особых «подкаталога» с именами «две точки» и «точка». Первый из них служит указанием на однозначно определенный родительский каталог, а второй – на сам данный каталог. Для корневого каталога, у которого нет родителя, оба эти
«подкаталога» указывают на корневой каталог. С помощью этих имен
образуются относительные имена файлов. Так, именем вышеупомянутого файла README относительно домашнего каталога /home/ivanov
пользователя ivan будет ../petrov/README.
Жесткая ссылка является просто другим именем для исходного
файла. После создания такой ссылки ее невозможно отличить от исходного имени файла. «Настоящего» имени у файла нет, точнее, все
69
такие имена будут настоящими. Команда ls показывает количество
именно таких жестких ссылок. Удаление файла по любому из его
имен уменьшает на единицу количество ссылок, и окончательно файл
будет удален только тогда, когда это количество станет равным нулю.
Поэтому удобно использовать жесткие ссылки для того, чтобы
предотвратить случайное удаление важного файла.
Создадим жесткую ссылку на файл README и посмотрим, что
изменилось в его свойствах:
$ln /home/ivanov/README /home/ivanov/readme_too $ls -1
/home/ivanov/README
-rwxr-xr-- 2 ivanov users 0 Feb 14 19:08 /home/ivanov/README
Жесткую ссылку можно создавать в любом каталоге, но обязательно на том же физическом носителе (то есть в той же файловой
системе), что и исходный файл. О причине этого будет сказано позже.
Другой тип ссылок представляют собой символические ссылки.
По назначению они аналогичны ярлыкам в ОС Windows: указывают
на файл, расположенный где угодно (например, на съемном носителе),
и после удаления такого файла или размонтирования съемного носителя они становятся бесполезны.
Символическая ссылка создается той же командой ln с ключом -s:
$ln -s /home/ivanov/README /home/ivanov/do.not.readme
$ls -1 /home/ivanov/do.not.readme
lrwxrwxrwx 1 ivanov users 16 Feb 14 19:17 /home/ivanov/do.not. readme -> /home/ivanov/README
В поле имени файла после стрелки указано его настоящее имя.
Права доступа у всех символических ссылок одинаковы и не значат
ничего: возможность доступа к файлу определяется правами исходного файла. Заметьте, что в отличие от файла-оригинала файл-ссылка
имеет ненулевую длину: в нем хранится абсолютное имя исходного
файла. Попытайтесь вывести файл-ссылку на экран с помощью команды cat, и вы увидите содержание исходного, пустого, файла:
$ cat /home/ivanov/do.not.readme
$
Значение самой ссылки, то есть имя файла, на который она ссылается, можно узнать с помощью команды readlink.
70
Права доступа к файлам и каталогам
Поскольку Linux – система многопользовательская, вопрос об организации разграничения доступа к файлам и каталогам является одним из существенных вопросов, которые должна решать операционная система. Механизмы разграничения доступа, разработанные для
системы UNIX в 70-х годах (возможно, впрочем, они предлагались
кем-то и раньше), очень просты, но они оказались настолько эффективными, что просуществовали уже более 30 лет и по сей день успешно выполняют стоящие перед ними задачи.
В основе механизмов разграничения доступа лежат имена пользователей и имена групп пользователей. Вы уже знаете, что в Linux каждый пользователь имеет уникальное имя, под которым он входит в
систему (логируется). Кроме того, в системе создается некоторое число групп пользователей, причем каждый пользователь может быть
включен в одну или несколько групп. Создает и удаляет группы суперпользователь, он же может изменять состав участников той или
иной группы. Члены разных групп могут иметь разные права по доступу к файлам, например, группа администраторов может иметь
больше прав, чем группа программистов.
В индексном дескрипторе каждого файла записаны имя так называемого владельца файла и группы, которая имеет права на этот файл.
Первоначально, при создании файла его владельцем, объявляется тот
пользователь, который этот файл создал. Точнее – тот пользователь,
от чьего имени запущен процесс, создающий файл. Группа тоже
назначается при создании файла – по идентификатору группы процесса, создающего файл. Владельца и группу файла можно поменять в
ходе дальнейшей работы с помощью команд chown и chgrp (подробнее о них будет сказано чуть позже).
Теперь давайте еще раз выполним команду ls -l. Но зададим ей в
качестве дополнительного параметра имя конкретного файла, например, файла, задающего саму команду ls. (Обратите, внимание на эту
возможность команды ls -l – получить информацию о конкретном
файле, а не о всех файлах каталога сразу):
[user]$ ls -l /bin/ls
-rwxr-xr-x 1 root root 49940 Sep 12 1999 /bin/ls
Вы видите, что в данном случае владельцем файла является пользователь root и группа root. Но нас сейчас в выводе этой команды
71
больше интересует первое поле, определяющее тип файла и права доступа к файлу. Это поле в приведенном примере представлено цепочкой символов -rwxr-xr-x. Эти символы можно условно разделить на 4
группы.
Первая группа, состоящая из единственного символа, определяет тип
файла. Этот символ в соответствии с возможными типами файлов, рассмотренными в предыдущем разделе, может принимать такие значения:







- = – обычный файл;
d = – каталог;
b = – файл блочного устройства;
c = – файл символьного устройства;
s = – доменное гнездо (socket);
p = – именованный канал (pipe);
l = – символическая ссылка (link).
Далее следуют три группы по три символа, которые и определяют
права доступа к файлу соответственно для владельца файла, для группы пользователей, которая сопоставлена данному файлу, и для всех
остальных пользователей системы. В нашем примере права доступа
для владельца определены как rwx, что означает, что владелец (root)
имеет право читать файл (r), производить запись в этот файл (w), и
запускать файл на выполнение (x). Замена любого из этих символов
прочерком будет означать, что пользователь лишается соответствующего права. В том же примере мы видим, что все остальные пользователи (включая и тех, которые вошли в группу root) лишены права записи в этот файл, т. е. не могут файл редактировать и вообще как-то
изменять.
Вообще говоря, права доступа и информация о типе файла в
UNIX-системах хранятся в индексных дескрипторах в отдельной
структуре, состоящей из двух байтов, т. е. из 16 бит (это естественно,
ведь компьютер оперирует битами, а не символами r, w, x). Четыре
бита из этих 16-и отведены для кодированной записи о типе файла.
Следующие три бита задают особые свойства исполняемых файлов, о
которых мы скажем чуть позже. И, наконец, оставшиеся 9 бит определяют права доступа к файлу. Эти 9 бит разделяются на 3 группы по
3 бита. Первые 3 бита задают права пользователя, следующие 3 бита –
права группы, последние 3 бита определяют права всех остальных
пользователей (т. е. всех пользователей, за исключением владельца
файла и группы файла).
72
При этом, если соответствующий бит имеет значение 1, то право
предоставляется, а если он равен 0, то право не предоставляется. В
символьной форме записи прав единица заменяется соответствующим
символом (r, w или x), а 0 представляется прочерком.
Право на чтение (r) файла означает, что пользователь может просматривать содержимое файла с помощью различных команд просмотра, например, командой more или с помощью любого текстового
редактора. Но, подредактировав содержимое файла в текстовом редакторе, вы не сможете сохранить изменения в файле на диске, если
не имеете права на запись (w) в этот файл. Право на выполнение (x)
означает, что вы можете загрузить файл в память и попытаться запустить его на выполнение как исполняемую программу. Конечно, если
в действительности файл не является программой (или скриптом
shell), то запустить этот файл на выполнение не удастся, но, с другой
стороны, даже если файл действительно является программой, но право на выполнение для него не установлено, то он тоже не запустится.
Итак, мы выяснили, какие файлы в Linux являются исполняемыми. Как видите, расширение имени файла тут ни при чем, все определяется установкой атрибута «исполняемый», причем право на исполнение может быть предоставлено не всем.
Если выполнить ту же команду ls -l, но в качестве последнего аргумента указать не имя файла, а имя каталога, мы увидим, что для каталогов тоже определены права доступа, причем они задаются теми
же самыми символами rwx. Например, выполнив команду ls -l /, мы
увидим, что каталогу bin соответствует строка:
drwxr-xr-x 2 root root 2048 Jun 21 21:11 bin
Естественно, что по отношению к каталогам трактовка понятий
«право на чтение», «право на запись» и «право на выполнение» несколько изменяется. Право на чтение по отношению к каталогам легко
понять, если вспомнить, что каталог – это просто файл, содержащий
список файлов в данном каталоге. Следовательно, если вы имеете
право на чтение каталога, то вы можете просматривать его содержимое (этот самый список файлов в каталоге). Имея такое право на запись, вы сможете создавать и удалять файлы в этом каталоге, т. е.
просто добавлять в каталог или удалять из него запись, содержащую
имя какого-то файла и соответствующие ссылки. Право на выполнение интуитивно менее понятно. Оно в данном случае означает право
переходить в этот каталог. Если вы, как владелец, хотите дать доступ
73
другим пользователям на просмотр какого-то файла в своем каталоге,
вы должны дать им право доступа в каталог, т. е. дать им "право на
выполнение каталога". Более того, надо дать пользователю право на
выполнение для всех каталогов, стоящих в дереве выше данного каталога. Поэтому в принципе для всех каталогов по умолчанию устанавливается право на выполнение как для владельца и группы, так и для
всех остальных пользователей. И уж если вы хотите закрыть доступ в
каталог, то лишите всех пользователей (включая группу) права входить в этот каталог. Только не лишайте и себя такого права, а то придется обращаться к суперпользователю.
После прочтения предыдущего абзаца может показаться, что право на чтение каталога не дает ничего нового по сравнению с правом на
выполнение. Однако разница в этих правах все же есть. Если задать
только право на выполнение, вы сможете войти в каталог, но не увидите там ни одного файла (этот эффект особенно наглядно проявляется в том случае, если вы пользуетесь каким-то файловым менеджером,
например, программой Midnight Commander). Если вы имеете право
доступа в каком-то из подкаталогов этого каталога, то вы можете перейти в него (командой cd), но, как говорится, "вслепую", по памяти,
потому что списка файлов и подкаталогов текущего каталога вы не
увидите.
Алгоритм проверки прав пользователя при обращении к файлу
можно описать следующим образом. Система вначале проверяет, совпадает ли имя пользователя с именем владельца файла. Если эти имена совпадают (т. е. владелец обращается к своему файлу), то проверяется, имеет ли владелец соответствующее право доступа: на чтение, на
запись или на выполнение (не удивляйтесь, суперпользователь может
лишить некоторых прав и владельца файла). Если право такое есть, то
соответствующая операция разрешается. Если же нужного права владелец не имеет, то проверка прав, предоставляемых через группу или
через группу атрибутов доступа для остальных пользователей, уже
даже не осуществляется, а пользователю выдается сообщение о невозможности выполнения затребованного действия (обычно что-то
вроде "Permission denied").
Если имя пользователя, обращающегося к файлу, не совпадает с
именем владельца, то система проверяет, принадлежит ли владелец к
группе, которая сопоставлена данному файлу (далее будем просто
называть ее группой файла). Если принадлежит, то для определения
возможности доступа к файлу используются атрибуты, относящиеся к
группе, а на атрибуты для владельца и для всех остальных пользова74
телей внимания не обращается. Если же пользователь не является владельцем файла и не входит в группу файла, то его права определяются
атрибутами для остальных пользователей. Таким образом, третья
группа атрибутов, определяющих права доступа к файлу, относится ко
всем пользователям, кроме владельца файла и пользователей, входящих в группу файла.
Для изменения прав доступа к файлу используется команда
chmod. Ее можно использовать в двух вариантах. В первом варианте
вы должны явно указать, кому какое право даете или кого этого права
лишаете:
[user]$ chmod wXp имя-файла,
где вместо w подставляется один из следующих символов:
 u (т. е. пользователь, который является владельцем);
 g (группа);
 o (все пользователи, не входящие в группу, которой принадлежит данный файл);
 a (все пользователи системы, т. е. и владелец, и группа, и все
остальные).
Вместо X ставится один из символов:
 + (предоставляем право);
 – (лишаем соответствующего права);
 = (установить указанные права вместо имеющихся).
Вместо p – символ, обозначающий соответствующее право:
 r (чтение);
 w (запись);
 x (выполнение).
Вот несколько примеров использования команды chmod:
[user]$ chmod a+x file_name предоставляет всем пользователям
системы право на выполнение данного файла.
[user]$ chmod go-rw file_name удаляет право на чтение и запись
для всех, кроме владельца файла.
[user]$ chmod ugo+rwx file_name дает всем права на чтение, запись и выполнение.
Если опустить указание на то, кому предоставляется данное право, то подразумевается, что речь идет вообще обо всех пользователях,
т. е. вместо [user]$ chmod a+x file_name можно записать просто:
[user]$ chmod +x file_name
75
Второй вариант задания команды chmod (он используется чаще)
основан на цифровом представлении прав. Для этого мы кодируем
символ r цифрой 4, символ w – цифрой 2, а символ x – цифрой 1. Для
того чтобы предоставить пользователям какой-то набор прав, надо
сложить соответствующие цифры. Получив, таким образом, нужные
цифровые значения для владельца файла, для группы файла и для всех
остальных пользователей, задаем эти три цифры в качестве аргумента
команды chmod (ставим эти цифры после имени команды перед вторым аргументом, который задает имя файла). Например, если надо
дать все права владельцу (4+2+1=7), право на чтение и запись – группе (4+2=6), а если не давать никаких прав остальным, то следует дать
такую команду:
[user]$ chmod 760 file_name
Цифры после имени команды в этой форме ее представления есть
не что иное, как восьмеричная запись тех самых 9 бит, которые задают
права для владельца файла, группы файла и для всех пользователей.
Выполнять смену прав доступа к файлу с помощью команды
chmod может только сам владелец файла или суперпользователь. Для
того чтобы иметь возможность изменить права группы, владелец должен дополнительно быть членом той группы, которой он хочет дать
права на данный файл.
Информацию о правах доступа к файлам необходимо дополнить
данными о трех возможных атрибутах файла, устанавливаемых с помощью той же команды chmod. Это те самые атрибуты для исполняемых файлов, которые в индексном дескрипторе файла в двухбайтовой
структуре, определяющей права на файл, занимают позиции 5–7, сразу
после кода типа файла.
Первый из этих атрибутов – так называемый «бит смены идентификатора пользователя». Смысл этого бита состоит в следующем.
Обычно, когда пользователь запускает некоторую программу на
выполнение, эта программа получает те же права доступа к файлам и
каталогам, которые имеет пользователь, запустивший программу. Если же установлен «бит смены идентификатора пользователя», то программа получит права доступа к файлам и каталогам, которые имеет
владелец файла программы (таким образом, рассматриваемый атрибут
лучше называть «битом смены идентификатора владельца»). Это позволяет решать некоторые задачи, которые иначе было бы трудно выполнить. Самый характерный пример – команда смены пароля passwd.
76
Все пароли пользователей хранятся в файле /etc/passwd, владельцем
которого является суперпользователь root. Поэтому программы, запущенные обычными пользователями, в том числе команда passwd, не
могут производить запись в этот файл. А значит, пользователь как бы
не может менять свой собственный пароль. Но для файла
/usr/bin/passwd установлен "бит смены идентификатора владельца",
каковым является пользователь root.
Следовательно, программа смены пароля passwd запускается с
правами root и получает право записи в файл /etc/passwd (уже средствами самой программы обеспечивается то, что пользователь может
изменить только одну строку в этом файле).
Установить «бит смены идентификатора владельца» может суперпользователь с помощью команды:
[root]# chmod +s file_name
Аналогичным образом работает «бит смены идентификатора
группы».
Еще один возможный атрибут исполняемого файла – это "бит сохранения задачи" или "sticky bit" (дословно – "бит прилипчивости").
Этот бит указывает системе, что после завершения программы надо
сохранить ее в оперативной памяти. Удобно включить этот бит для
задач, которые часто вызываются на выполнение, так как в этом случае экономится время на загрузку программы при каждом новом запуске. Этот атрибут был необходим на старых моделях компьютеров.
На современных быстродействующих системах он используется редко.
Если используется цифровой вариант задания атрибутов в команде chmod, то цифровое значение этих атрибутов должно предшествовать цифрам, задающим права пользователя:
[root]# chmod 4775 file_name
При этом вес каждого из битов для получения нужного суммарного результата задается следующим образом:
 4 – «бит смены идентификатора пользователя»,
 2 – «бит смены идентификатора группы»,
 1 – «бит сохранения задачи (sticky bit)».
Если какие-то из этих трех битов установлены в 1, то несколько
изменяется вывод команды ls – l в части отображения установленных
77
атрибутов прав доступа. Если установлен в 1 "бит смены идентификатора пользователя", то символ "x" в группе, определяющей права владельца файла, заменяется символом "s". Причем, если владелец имеет
право на выполнение файла, то символ "x" заменяется на "s", а если
владелец не имеет права на выполнение файла (например, файл вообще не исполняемый), то вместо "x" ставится "S". Аналогичные замены
имеют место при задании "бита смены идентификатора группы", но
заменяется символ "x" в группе атрибутов, задающих права группы.
Если "бит сохранения задачи (sticky bit)" равен 1, то заменяется символ "x" в группе атрибутов, определяющей права для всех остальных
пользователей, причем "x" заменяется символом "t", если все пользователи могут запускать файл на выполнение, и символом "T", если они
такого права не имеют.
Таким образом, хотя в выводе команды ls – l не предусмотрено
отдельных позиций для отображения значений битов смены идентификаторов и бита сохранения задачи, соответствующая информация
выводится. Вот небольшой пример того, как это будет выглядеть:
[root]# ls -l prim1
-rwSrwsrwT 1 kos root 12 Dec 18 23:17 prim.1
Команды для работы с файлами и каталогами
В предыдущих разделах и работах уже упоминали некоторые команды для работы с файлами и каталогами: pwd (имя текущего каталога), cd, ls, ln, chmod. В этом разделе рассмотрим еще несколько часто используемых команд.
Команды chown и chgrp
Эти команды служат для смены владельца файла и группы файла.
Выполнять смену владельца может только суперпользователь, смену
группы может выполнить сам владелец файла или суперпользователь.
Для того чтобы иметь право сменить группу, владелец должен дополнительно быть членом той группы, которой он хочет дать права на
данный файл. Формат этих двух команд аналогичен:
[root]# chown vasja имя-файла
[root]# chgrp usersgrp имя-файла
Команда mkdir
78
Команда mkdir позволяет создать подкаталог в текущем каталоге.
В качестве аргумента этой команде надо дать имя создаваемого каталога. Во вновь созданном каталоге автоматически создаются две записи: . (ссылка на этот самый каталог) и .. (ссылка на родительский каталог). Чтобы создать подкаталог, вы должны иметь в текущем каталоге право записи. Можно создать подкаталог не в текущем, а в каком-то другом каталоге, но тогда необходимо указать путь к создаваемому каталогу:
[user]$ mkdir /home/kos/book/glava5/part1
Команда mkdir может использоваться со следующими опциями:
 -m mode – задает режим доступа для нового каталога (например, -m 755);
 -p – создает указанные промежуточные каталоги (если они не
существуют).
Команда touch
Создать пустой файл можно командой touch <имя_файла>. Вообще-то она предназначена для того, чтобы для всех заинтересованных программ (например, утилиты сборки проекта make) файл выглядел новее, чем на самом деле: она меняет время последнего изменения
файла на текущее время. Но если файла с таким именем не существует, то она его создаст.
Команда cat
Команда cat часто используется для создания файлов (хотя можно
воспользоваться и командой touch). По команде cat на стандартный
вывод (т. е. на экран) выводится содержимое указанного файла (или
нескольких файлов, если их имена последовательно задать в качестве
аргументов команды). Если вывод команды cat перенаправить в файл,
то можно получить копию какого-то файла:
[user]$ cat file1 > file2
Собственно, первоначальное предназначение команды cat как раз
и предполагало перенаправление вывода, так как эта команда создана
для конкатенации, т. е. объединения нескольких файлов в один:
[user]$ cat file1 file2 ... fileN > new-file
79
Именно возможности перенаправления ввода и вывода этой команды и используются для создания новых файлов. Для этого на вход
команды cat направляют данные со стандартного ввода (т. е. с клавиатуры), а вывод команды – в новый файл: [user]$ cat > newfile
После того как вы напечатаете все, что хотите, нажмите комбинацию клавиш <Ctrl>+<D> или <Ctrl>+<C>, и все, что вы ввели, будет
записано в newfile. Конечно, таким образом создаются, в основном,
короткие текстовые файлы.
Команда mv
Если вам необходимо не скопировать, а переместить файл из одного каталога в другой, вы можете воспользоваться командой mv.
Синтаксис этой команды аналогичен синтаксису команды cp. Более
того, она сначала копирует файл (или каталог), а только потом удаляет
исходный файл (каталог). И опции у нее такие же, как у cp.
Команда mv может использоваться не только для перемещения,
но и для переименования файлов и каталогов (т. е. перемещения их
внутри одного каталога). Для этого надо просто задать в качестве аргументов старое и новое имя файла:
[user]$ mv oldname newname
Но учтите, что команда mv не позволяет переименовать сразу несколько файлов (используя шаблон имени), так что команда mv *.xxx
*.yyy не будет работать.
При использовании команды mv, как и при использовании cp, не
забывайте применять опцию -i для того, чтобы получить предупреждение, когда файл будет перезаписываться.
Команды rm и rmdir
Для удаления ненужных файлов и каталогов в Linux служат команды rm (удаляет файлы) и rmdir (удаляет пустой каталог). Для того
чтобы воспользовался этими командами, вы должны иметь право записи в каталоге, в котором расположены удаляемые файлы или каталоги. При этом полномочия на изменение самих файлов не обязательны. Если хотите перед удалением файла получить дополнительный
запрос на подтверждение операции, используйте опцию -i.
Если вы попытаетесь использовать команду rm (без всяких опций) для удаления каталога, то будет выдано сообщение, что это каталог и удаление не произойдет. Для удаления каталога надо сначала
80
удалить в нем все файлы, после чего – сам каталог с помощью команды rmdir. Однако можно удалить и непустой каталог со всеми входящими в него подкаталогами и файлами, если использовать команду rm
с опцией -r.
Если вы дадите команду rm *, то удалите все файлы в текущем
каталоге. Подкаталоги при этом не удалятся. Для удаления как файлов, так и подкаталогов текущего каталога надо тоже воспользоваться
опцией -r. Однако всегда помните, что в Linux нет команды восстановления файлов после их удаления (даже если вы спохватились сразу
же после ошибочного удаления файла или каталога).
Так что дважды подумайте, прежде чем удалять что-либо, и не
пренебрегайте опцией -i.
Команды more и less
Команда cat позволяет вывести на стандартный вывод (на экран)
содержимое любого файла, однако она используется для этих целей
очень редко, разве что для вывода очень небольших по объему файлов. Дело в том, что содержимое большого файла мгновенно проскакивает на экране, и пользователь видит только последние строки файла. Поэтому cat используется в основном по ее прямому назначению –
для конкатенации файлов, а для просмотра содержимого файлов (конечно, текстовых) используются команды more и less (или текстовые
редакторы).
Команда-фильтр more выводит содержимое файла на экран отдельными страницами, размером как раз в целый экран. Для того чтобы увидеть следующую страницу, надо нажать на клавишу пробела.
Нажатие на клавишу <Enter> приводит к смещению на одну строку.
Кроме клавиш пробела и <Enter> в режиме паузы еще некоторые клавиши действуют как управляющие (например, клавиша <B> возвращает вас на один экран назад), но мы здесь не будем приводить полного их перечня, как и перечня опций команды. Вам для начала надо
еще только запомнить, что выйти из режима просмотра можно с помощью клавиши <Q>, так как если вы этого не знаете, то вам придется
долго и нудно нажимать пробел, пока вы не доберетесь до конца
длинного файла. Обо всех опциях команды more вы можете прочитать
в интерактивном руководстве man или info.
Утилита less, разработанная в рамках проекта GNU, содержит все
функции и команды управления выводом, имеющиеся в программе
more, и некоторые дополнительные, например, позволяет использовать клавиши управления курсором (<Стрелка вверх>, <Стрелка
81
вниз>, <PgUp>, <PgDown>) для перемещения по тексту. Вспомните,
мы уже говорили об этом, когда рассматривали интерактивную подсказку man.
Команды more и less позволяют производить поиск подстроки в
просматриваемом файле, причем команда less позволяет производить
поиск как в прямом, так и в обратном направлении. Для организации поиска строки символов string надо набрать в командной строке программы
в нижней части экрана (там, где двоеточие) /string. Если искомая строка
будет найдена, будет отображен соответствующий кусок текста, причем
найденная строка будет находиться в самом верху экрана.
Команда find и символы шаблонов для имен файлов
Еще одной часто используемой командой для работы с файлами в
Linux является команда поиска нужного файла find. Команда find может искать файлы по имени, размеру, дате создания или модификации
и по некоторым другим критериям.
Общий синтаксис команды find имеет следующий вид:
find [список_каталогов] критерий_поиска
Параметр "список_каталогов" определяет, где искать нужный
файл. Проще всего задать в качестве начального каталога поиска корневой каталог /, однако в таком случае поиск может затянуться очень
надолго, так как будет просматриваться вся структура каталогов,
включая смонтированные файловые системы (в том числе сетевые,
если таковые есть). Можно сократить объем поиска, если задать вместо одного корневого каталога список из нескольких каталогов (естественно, тех, в которых может находиться искомый файл):
[user]$ find /usr/share/doc /usr/doc /usr/locale/doc -name instr.txt
Началом "критерия_поиска", определяющего, что именно должна
искать программа find, считается первый аргумент, начинающийся на
"(", ")"', "," или "!". Все аргументы, предшествующие "критерию_поиска", трактуются как имена каталогов, в которых надо производить поиск. Если не указано ни одного пути, поиск производится
только в текущем каталоге и его подкаталогах.
Чаще всего поиск проводится по именам файлов, как это показано в предыдущем примере, т. е. "критерий_поиска" задается как "name имя_файла". Вместо опции -name можно использовать опцию 82
path, тогда команда будет искать совпадения в полном имени файла, с
указанием пути. Например, команда:
[user]$ find . -path './sr*sc'
найдет в текущем каталоге подкаталог './src/misc'. Вместо полного
имени файла или каталога в этом примере использован так называемый "шаблон имени". Поскольку шаблоны имен файлов могут использоваться не только с командой find, но и со многими другими командами (включая уже рассмотренные команды chmod, chown, chgrp,
cp, rm, cat, mv), то правилам составления шаблонов стоит уделить некоторое внимание.
Чаще всего шаблоны имен файлов строятся с помощью специальных символов "*". Значок "*" используется для замены произвольной
строки символов. В Linux:
"*" – соответствует всем файлам, за исключением скрытых;
. – соответствует всем скрытым файлам (но также текущему каталогу "." и каталогу уровнем выше);
"." – соответствует только тем файлам и каталогам, которые имеют "." в середине имени, или оканчиваются на точку;
"p*r" – соответствует и "peter" и "piper";
"*c*" – соответствует и "picked" и "peck".
Значок ? заменяет один произвольный символ, поэтому index?.htm будет соответствовать именам index0.htm, index5.htm и indexa.htm.
Кроме "*" и "?" в Linux при задании шаблонов имен можно использовать квадратные скобки [], в которых дается либо список возможных символов, либо интервал, в который должны попадать возможные символы. Например, [abc]* соответствует всем именам файлов, начинающимся с a, b, c; *[I-N1-3] соответствует файлам, имена
которых оканчиваются на I, J, K, L, M, N, 1, 2, 3.
А теперь вернемся к команде find и расскажем подробнее о том,
какие критерии поиска включает данная команда.
Другие простые критерии вы можете узнать, если просмотрите
man-страницу о команде find. Здесь же надо только сказать, что из
простых критериев можно строить более сложные с помощью логических операций and, or или операции отрицания, знаком которой служит восклицательный знак. Например, если вы хотите найти все файлы, имена которых оканчиваются на .txt и .doc, то критерий можно
записать как (-name *.txt -or -name *.doc).
83
Таблица 4.4
Критерии поиска для команды find
Опция
-name шаблон
-group имя
-size число
-mtime число
-newer образец
-type
тип_файла
Значение
Ищет файлы, имена которых соответствуют шаблону
Ищет файлы, принадлежащие указанной группе
Ищет файлы, размером в число 512-байтных блоков. Если
после числа стоит символ c, значит размер указан в байтах
(символах)
Ищет файлы, которые в последний раз изменялись указанное
число дней назад
Ищет файлы, которые изменялись после изменения файла,
указанного в образце
Ищет файлы указанного типа. Тип задается одним из символов b (блок-ориентированные устройства), c (байториентированные устройства), d (файл каталога), f (обычный
файл), p (именованный канал) либо l (символическая ссылка).
Можно комбинировать таким образом любое число критериев (и
не только простых!). Если операция не указана явно, то подразумевается -and, т. е. вместо -name *.txt -and -name *.doc) можно записать
просто -name *.txt -name *.doc). Если применяется только одна операция -and или !, то скобки обычно можно опустить, а с операцией -or и
в сложных выражениях скобки необходимы. Перед скобкой нужно
поставить обратную косую черту, а после скобки – пробел. Например,
если вы хотите найти каталог по его имени, то можно сделать это командой:
[user]$ find /usr -name doc -type d
или (с соблюдением правил построения сложных критериев):
[user]$ find /usr \( -name doc -and -type d \)
В следующем примере мы ищем файлы по такому критерию: либо имя файла оканчивается на .tmp, либо размер файла больше 100
Кбайт:
[user]$ find /home/kos \( \( -name *.tmp \) -or \( -size +200 \) \)
84
В последнем примере стоит обратить внимание на то, что перед
значением размера стоит знак "+". Такой знак можно использовать с
любым числовым параметром в критериях поиска команды find. Он
означает, что нужно искать файлы, у которых значение параметра
больше заданного. Соответственно, знак "-" означает, что надо искать
файлы, у которых значение параметра меньше заданного. Если знак +
или – отсутствует, ищутся файлы, у которых значение параметра равно заданному.
Чтобы закончить рассмотрение команды find, надо сказать еще о
том, что после критерия поиска в этой команде можно сразу же задать
операцию, которая будет применяться ко всем файлам, найденным по
указанному критерию. Простейшим примером использования такой
возможности является указание команды –print:
[user]$ find /home/kos -name *.tmp –print,
по которой выдается на экран список имен всех найденных файлов с
указанием полного пути к файлу. Эта операция применяется по умолчанию, т. е. когда никаких операций вообще не указано (как это было
во всех приведенных выше примерах). Другим примером операции,
применяемой ко всем найденным файлам, может служить операция:
-exec cmd {} \;, где cmd – произвольная команда оболочки shell. То
есть в этом случае ко всем найденным файлам (их именами заменяются поочередно фигурные скобки) применяется команда cmd. За cmd {}
в этом случае должна следовать точка с запятой, экранированная обратной косой чертой.
Например, если вы хотите удалить в текущем каталоге все файлы,
к которым пользователи не обращались в течение 30 дней, дайте команду:
[root]# find . -type f -atime +30 -exec rm {} \;
Вместо -exec можно поставить -ok, тогда перед выполнением указанной команды cmd применительно к каждому файлу будет запрашиваться подтверждение.
В общем, команда find является очень мощным, полезным и чрезвычайно адаптируемым инструментом поиска в файловой системе.
Все ее возможности здесь не перечислены, изучайте соответствующую man-страницу. И будьте очень осторожны с применением таких
возможностей команды, как вызов других команд, применяемых ко
всем найденным файлам. Помните, что изменения часто необратимы.
85
Редактирование текстовых файлов
Мелкие правки конфигурационных файлов – обычное дело для
администратора, поэтому средство их внесения присутствовало в
UNIX-системах всегда. Наиболее распространенное такое средство,
присутствующее в любой системе Linux – это консольный полноэкранный редактор vi. Как полноэкранный редактор, vi может находиться в одном из двух режимов. В режиме вставки вводимые символы поступают в редактируемый файл, в командном режиме они воспринимаются как команды. Перечислим коротко самые употребительные команды редактора vi:
Режим вставки
Включение режима вставки:
i – в текущей позиции курсора;
I – перед первым непробельным символом в текущей строке;
w – в новой строке, добавленной после текущей;
W – в новой строке, добавленной перед текущей.
Выключение режима вставки: <Esc>
Команды режима вставки:
Ctrl+а – повторить предыдущую вставку;
Ctrl+у – вставить символ, находящийся над курсором (в предыдущей строке);
Ctrl+e – вставить символ, находящийся под курсором (в следующей строке).
Командный режим
Удаление (здесь и далее N – это число):
N х N – символов под курсором и справа от него;
N X N – символов слева от курсора;
N dd N – строк;
D – до конца текущей строки;
N D – до конца текущей строки и еще N-1 строку.
Копирование и вставка строк:
N уу – взять в буфер N строк от текущей и ниже;
86
р – вставить содержимое буфера после текущей строки;
Р – вставить содержимое буфера перед текущей строкой.
Поиск и переход:
N G – перейти к строке с номером N;
$ G – перейти к последней строке файла;
/< образец > – искать образец вниз от курсора;
?< образец > – искать образец вверх от курсора;
п – повторить поиск в том же направлении;
N – (буквально DND): повторить поиск в обратном направлении.
Сохранение и выход:
:w – сохранить текущий файл;
:w <имя> – сохранить под новым именем, если файл <имя> еще
не существует;
:w! <имя> – сохранить под новым именем, переписав существующий файл;
:q – выйти;
:q! – принудительно выйти без сохранения;
:wq – сохранить и выйти.
Разное полезное:
N u – отменить последние N изменений;
N Ctrl+г – вернуть последние N отмененных изменений;
U – отменить изменения в последней строке;
N r < символ > – заменить N следующих символов на < символ >;
N > > – добавить отступ (Tab) в N следующих строк;
N < < – удалить один отступ (Tab) из N следующих строк;
:sh – временно выйти в оболочку (вернуться – exit);
:!<команда> – выполнить команду оболочки.
Работа с vi в простых случаях сводится к использованию следующего небольшого набора команд:
vi <имя файла> # – открыли файл для просмотра или редактирования или создания;
i – перешли в режим ввода ход в режим ввода текста (если требуется);
ESC – вышли из режима редактирования в режим команд
: – перешли из режима команд в режим командной строки;
w – записали изменения (если требуется);
87
q -> Enter – вышли из редактора (если изменения уже записаны
или их не было);
q! – > Enter – вышли из редактора без сохранения изменений (если требуется).
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Запустить виртуальную машину с Linux Ubuntu.
2. Загрузиться пользователем root. Для его подключения достаточно войти под первым зарегистрированным пользователем и при
помощи терминала поставить пользователю root новый пароль. Процесс изменения пароля смотри в лабораторной работе № 5.
3. Ознакомиться со структурой системных каталогов ОС Linux
на рабочем месте. Привести в отчете перечень каталогов с указанием
их назначения.
4. Просмотреть содержимое каталога файлов физических
устройств. В отчете привести перечень файлов физических устройств
на рабочем месте с указанием назначения файлов.
5. Перейти в директорий пользователя root. Просмотреть содержимое каталога. Просмотреть содержимое файла vmlinuz. Просмотреть и пояснить права доступа к файлу vmlinuz.
6. Создать в директории пользователя user три файла 1.txt, 2.txt и
3.txt, используя команды touch, cat и редактор vi. Просмотреть и пояснить права доступа к файлам.
7. Перейти в директории пользователя root. В отчете описать результат.
8. Изменить права доступа на файл 1.txt в директории пользователя user.
9. Создать жесткую и символическую ссылки на файл 2.txt. Просмотреть результаты.
10. Создать каталог new в каталоге пользователя user.
11. Скопировать файл 1.txt в каталог new.
12. Переместить файл 2.txt в каталог new.
13. Изменить владельца файла 3.txt и каталога new.
14. Удалить файл 1.txt в каталоге new.
15. Удалить каталог new.
16. Найти, используя команду find, файл vga2iso (или другой
файл по заданию преподавателя).
88
Контрольные вопросы
1.
2.
3.
4.
Что такое файловая система?
Жесткая ссылка в Linux. Основные сведения.
Команда поиска в Linux. Основные сведения.
Перечислите основные команды работы с каталогами.
Литература
1. Олифер В. Г., Олифер Н. А. Сетевые операционные системы.
СПб.: Питер, 2008. 669 с.
2. Гордеев А. В. Операционные системы: Учебник для вузов. 2-е
изд. СПб.: Питер, 2006. 416 с.
3. Основы операционных систем. Курс лекций. Учебное пособие
/ В. Е. Карпов, К. А. Коньков / Под ред. В. П. Иванникова. М.:
ИНТУИТ.РУ "Интернет-университет информационных технологий",
2008. 632 с.
89
Лабораторная работа №7
ПРОЦЕССЫ В ОПЕРАЦИОННОЙ СИСТЕМЕ LINUX
Цели работы: ознакомиться на практике с понятием процесса в
операционной системе; приобрести опыт и навыки управления процессами в операционной системе Linux.
План проведения занятия
1. Ознакомление с теоретическими сведениями. Изучение порядка работы с текстовым редактором Vi и создание двух сценариев для исследования процессов.
2. Ознакомление на практике с командами и сигналами для
управления процессами: запуском, остановкой, переводом на
передний план, удалением процесса и др.
3. Составление отчета.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Устройство Linux: ядро и процессы
Рис. 2. Устройство Linux
90
Главная, постоянно находящаяся в оперативной памяти, часть ОС
Linux называется ядром (Kernel). Ядро ОС обрабатывает прерывания
от устройств, выполняет запросы системных процессов и пользовательских приложений, распределяет виртуальную память, создает и
уничтожает процессы, обеспечивает многозадачность посредством
переключения между ними, содержит драйверы устройств, обслуживает файловую систему (см. рис. 2).
Пользовательские процессы не могут непосредственно, например, порождать другие процессы, производить чтение или запись на
диск, выводить данные на экран или создавать гнездо (socket) для обмена по сети. Для выполнения этих действий они должны воспользоваться сервисами ядра. Обращения за такими услугами называются
системными вызовами.
Начальная загрузка системы состоит в том, что файл с образом
ядра считывается в оперативную память, начиная с нулевого адреса.
Этот файл находится в каталоге /boot и называется vmlinuz-x.y.z, где
x.y.z – это номер версии ядра. На текущий момент большинство дистрибутивов основано на ядре версии 2.4, хотя уже вышло ядро 2.6 и
кое-где еще встречается версия 2.2.
В UNIX-подобных системах, в отличие от других ОС, ядро минимизировано и не выполняет ни одной функции, служащей непосредственно пользователю. Для этой цели применяются многочисленные утилиты, выступающие в качестве посредников между пользователем и ядром. Только в комплекте с ними ядро образует полноценную операционную систему.
Ядро обслуживает запросы процессов. Что же такое процесс? Это
понятие является базовым в UNIX-подобных системах. Процесс можно представить себе как виртуальную машину, отданную в распоряжение одной задачи. Каждый процесс считает, что он на машине один
и может распоряжаться всеми ее ресурсами. На самом же деле процессы надежно изолированы друг от друга, так что крушение одного
не может повредить всей системе.
Каждый процесс выполняется в собственной виртуальной памяти, в которую никакой другой процесс вмешаться не может. Этим и
обеспечивается устойчивость всей системы.
Напомним, что такое виртуальная память. Каждому процессу разрешено считать, что его адреса начинаются с нулевого адреса и далее
наращиваются. Таким образом, в 32-разрядной ОС процесс может адресовать 4 гигабайта оперативной памяти. Механизм виртуальной памяти
позволяет процессу считать, что именно столько ему и выделено, хотя
91
физически объем ОЗУ вашей машины может быть значительно меньше.
Недостающую память заменяет жесткий диск путем записи временно
не используемых страниц памяти в раздел подкачки (свопинга).
Разделяемость библиотек между процессами обеспечивается тем,
что их код и статические данные отображаются на один и тот же участок физической оперативной памяти.
Таблица процессов
С точки зрения ядра процесс представляет собой запись в таблице
процессов. Эта запись содержит сведения о состоянии процесса и
данные, существующие в течение всего времени его жизни. Размер
таблицы процессов позволяет запускать несколько сотен процессов
одновременно. Другая важная информация о процессе – например,
таблица всех открытых процессом файлов – хранится в его адресном
пространстве. Запись в таблице процессов и пространство процесса
вместе составляют контекст, или окружение, процесса. В него входят:
♦ PID – идентификатор процесса. Он принудительно назначается
планировщиком при запуске процесса.
♦ PPID – идентификатор родительского процесса.
♦ TTY – имя управляющего терминала, т. е. терминала, с которого запущен процесс.
♦ WD – текущий каталог процесса, от которого отсчитываются
относительные пути.
♦ RID, RGID – реальные ID и групповой ID пользователя, запустившего процесс.
♦ EUID, EGID – эффективные ID и GID.
♦ NICE – показатель уступчивости. Процессы выполняются в
режиме разделения времени, то есть время центрального процессора
делится между готовыми к выполнению процессами с учетом их приоритета. Чем выше показатель уступчивости, тем ниже приоритет.
♦ Переменные окружения.
Системные вызовы fork() и ехес()
или как размножаются процессы
Каждый процесс порождается другим процессом, использующим
для этого системный вызов fork(). Таким образом, структура процессов, подобно файловой системе, древовидна. Корнем этого дерева
служит init – процесс инициализации системы. Он запускается ядром
92
первым, получает идентификатор 1 и порождает еще несколько процессов (сколько и каких, можно узнать из его конфигурационного
файла /etc/inittab), которые, в свою очередь, при участии пользователя
порождают другие процессы.
В результате системного вызова fork() родительский процесс полностью копирует свое окружение, включая адресное пространство, в
дочерний, так что в момент рождения дочерний процесс отличается
только своим ID. Потом дочерний процесс с помощью вызова ехес()
загружает в свое адресное пространство какой-нибудь исполняемый
файл и начинает исполнять содержащуюся в нем программу.
Каждый процесс, завершившись, возвращает родительскому процессу какое-то значение, называемое кодом завершения или кодом
возврата. По соглашению разработчиков нулевой код возврата означает успешное завершение, а ненулевые – разнообразные ошибки. Процесс-родитель может приостановить свое выполнение до завершения
потомка и выполнить разные действия в зависимости от возвращенного дочерним процессом значения, а может и не делать этого.
Рис. 3. Иерархия процессов.
93
Категории процессов
Процессы делятся на три категории:
• Системные. Они порождаются ядром особым образом в процессе загрузки и выполняют системные функции (например, планирование процессов или смену страниц виртуальной памяти). Выполняемая
ими программа не берется из исполняемого файла, а является частью
ядра.
• Пользовательские. Как правило, они порождаются во время сеанса работы пользователя и связаны с терминалом. Если пользовательский процесс работает в интерактивном режиме, то он захватывает терминал в монопольное владение, и пользователь не имеет доступа к командной строке на этом терминале, пока процесс не завершится. Пользовательские процессы могут работать также в фоновом режиме, освободив командную строку.
• Демоны (daemon, сокращение от Disk And Execution MONitor).
Запускаются после инициализации ядра. Выполняются в фоновом режиме, не связаны ни с одним пользователем, обеспечивают работу
различных служб (например, управление сетью). Главным демоном
считается init – процесс инициализации системы.
Сценарии в Linux. Активные и фоновые процессы
Исполняемые файлы в Linux бывают двух видов. Первый – это
файлы в собственно исполняемом (executable) формате. Как правило,
такие файлы – результат компиляции программ, написанных на одном
из языков программирования. В Linux используется несколько форматов исполняемых файлов, состоящих из машинных кодов и служебной
информации, необходимой операционной системе для запуска программы: согласно этой информации, ядро Linux выделяет для запускаемой программы оперативную память, загружает программу из файла
и передает ей управление. Большинство утилит Linux – программы
именно такого, " двоичного" формата.
Второй вид исполняемых файлов – сценарии. Сценарий – это текстовый файл, предназначенный для обработки какой-нибудь утилитой. Чаще всего такая утилита – это интерпретатор некоторого языка
программирования, а содержимое такого файла – программа на этом
языке.
Запустить сценарий на исполнение можно командой: sh имя_сценария.
94
Для того чтобы запустить процесс сценария параллельно, достаточно добавить в конец командной строки символ "&":
sh имя_сценария&
Процесс, запускаемый параллельно, называется фоновым (background). Фоновые процессы не имеют возможности вводить данные с
того же терминала, что и породивший их shell (только из файла), зато
выводить данные на этот терминал могут (правда, когда на одном и
том же терминале вперемежку появляются сообщения от нескольких
фоновых процессов, начинается неразбериха). При каждом терминале
в каждый момент времени может быть не больше одного активного
(foreground) процесса, которому разрешено вводить данные с этого
терминала. На время, пока команда работает в активном режиме, породивший ее командный интерпретатор "уходит в фон", и там, в фоне,
выполняет свой wait().
Активный процесс (foreground process) – процесс, имеющий возможность вводить данные с терминала. В каждый момент у каждого
терминала может быть не более одного активного процесса.
Фоновый процесс (background process) – процесс, не имеющий
возможности вводить данные с терминала. Пользователь может запустить любое, но не превосходящее заранее заданного в системе, число
фоновых процессов. Сигналы в Linux
Механизм сигналов – это средство, позволяющее сообщать процессам о некоторых событиях в системе, а процессу-получателю –
должным образом на эти сообщения реагировать. Послать сигнал может сам процесс (например, при попытке деления на ноль), ядро (при
сбое оборудования), пользователь или другой процесс (требуя прервать выполнение задачи).
Всего в Linux 63 сигнала, обозначаемых своими номерами или
символическими именами. Имена всех сигналов начинаются с SIG, и
эту приставку часто опускают: так, сигнал, требующий прекратить
выполнение процесса, называется SIGKILL, или KILL, или сигнал 9.
Получив сигнал, процесс может: игнорировать его; вызвать для
обработки установленную по умолчанию функцию; вызвать собственный обработчик (перехватить сигнал). Некоторые сигналы (например,
KILL) перехватить или игнорировать невозможно.
Пользователь может послать сигнал процессу с идентификатором
PID командой:
95
$ kill [-s <сигнал>] <PID>, где <сигнал> – это номер или символическое имя.
Несколько часто встречающихся сигналов перечислены в таблице 1.
Полный список можно получить по команде kill -l (list).
Таблица 1
Сигналы Linux
№
Имя
Реакция
процесса-получателя
Назначение
1
HUP
Hangup – отбой
Демоны перечитывают свои
конфигурационные файлы
2
INT
Interrupt
Прекратить выполнение (перехватывается)
3
QUIT
Сильнее, чем INT
то же
4
ILL
Illegal instruction. Программная ошибка
Обработать ошибку. По умолчанию – прекратить выполнение
8
FPE
Floating point exception, вычислительная ошибка (деление на ноль)
Обработать ошибку. По умолчанию – прекратить выполнение
9
KILL
Убить процесс
Немедленно прекратить выполнение. Не перехватывается
11
SEGV
Segmentation violation. Попытка доступа к чужой области памяти
Обработать ошибку. По умолчанию – прекратить выполнение
13
PIPE
Нет процесса, читающего из
конвейера
Обработать ошибку
15
TERM
Termination. Завершить процесс
Корректно завершить выполнение. Перехватывается
17
CHLD
Завершился дочерний процесс
Принять возвращенное им значение
18
CONT
Продолжить работу
Продолжить работу приостановленного процесса
19
STOP
Приостановить процесс
Приостановить выполнение
96
Сообщение-сигнал не содержит никакой информации, кроме номера сигнала (для удобства вместо номера можно использовать предопределенное системой имя). Для того чтобы передать сигнал, процессу
достаточно задействовать системный вызов kill(), а для того чтобы принять сигнал, не нужно ничего. Если процессу необходимо как-то поособенному реагировать на сигнал, он может зарегистрировать обработчик, а если обработчика нет – за него отреагирует система. Как правило, это приводит к немедленному завершению процесса, получившего сигнал. Обработчик сигнала запускается асинхронно, немедленно
после получения сигнала, что бы процесс в это время ни делал.
Два сигнала – 9 (KILL) и 19 (STOP) – всегда обрабатывает система. Первый из них нужен для того, чтобы убить процесс наверняка
(отсюда и название).
Сигнал STOP приостанавливает процесс: в таком состоянии процесс не удаляется из таблицы процессов, но и не выполняется до тех
пор, пока не получит сигнал 18 (CONT), после чего продолжит работу.
В Linux сигналы можно передать активному процессу с помощью
управляющих символов:
Interrupt – AC (Ctrl+C)
Stop – AZ"
Terminate – AD.
Команды для управления процессами в Linux
Моментальный снимок протекающих
в системе процессов – команда ps
Моментальный снимок протекающих в системе процессов можно
посмотреть с помощью команды ps (process status). Без аргументов
она покажет список процессов, связанных с текущей консолью (или
виртуальным терминалом). Список возможных ключей команды можно, как обычно, получить по команде ps --help.
Вот некоторые полезные из них:
-р < список_РID> – только процессы с указанными ID;
-u < список_USERID > – только процессы, запущенные указанными пользователями;
-е : – все процессы в системе;
-f : – полная форма вывода;
-Н : – вывод иерархии процессов в форме дерева.
97
Динамика процессов – команда top
Представление о динамике процессов дает команда top. Она выводит список процессов, отсортированный по количеству занятой памяти или использованного процессорного времени, и обновляет его
через указанные промежутки времени (по умолчанию через каждые
3 секунды).
Последний процесс, запущенный из оболочки в фоне, можно из
этой оболочки сделать активным при помощи команды fg ("foreground" – "передний план").
Команда bg (back ground), запускает в фоне последний остановленный процесс.
Командой kill, как уже говорилось, можно передать процессу сигнал. Команда имеет два параметра – номер сигнала и идентификатор
процесса, которому передается сигнал:
kill – номерсигнала PID
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Загрузиться не root, а пользователем.
2. Найти файл c образом ядра. Выяснить по имени файла номер
версии Linux.
3. Посмотреть процессы ps -f. Прокомментировать. Для этого почитать man ps.
4. Написать с помощью редактора vi два сценария loop и loop2.
Текст сценариев: Loop:
while true; do true; done Loop2:
while true; do true; echo 'Hello'; done
5. Запустить loop2 на переднем плане: sh loop2.
6. Остановить, послав сигнал STOP.
7. Посмотреть последовательно несколько раз ps -f. Записать сообщение, объяснить.
8. Убить процесс loop2, послав сигнал kill -9 PID. Записать сообщение. Прокомментировать.
9. Запустить в фоне процесс loop: sh loop&. Не останавливая, посмотреть несколько раз: ps -f. Записать значение, объяснить.
10. Завершить процесс loop командой kill -15 PID. Записать сообщение, прокомментировать.
98
11. Третий раз запустить в фоне. Не останавливая, убить командой kill -9 PID.
12. Запустить еще один экземпляр оболочки: bash.
13. Запустить несколько процессов в фоне. Останавливать их и
снова запускать. Записать результаты просмотра командой ps -f.
Литература
1. Олифер В. Г., Олифер Н. А. Сетевые операционные системы.
СПб.: Питер, 2008. 669 с.
2. Гордеев А. В. Операционные системы: Учебник для вузов. 2-е
изд. СПб.: Питер, 2006. 416 с.
3. Основы операционных систем. Курс лекций. Учебное пособие
/ В. Е. Карпов, К. А. Коньков / Под ред. В. П. Иванникова. М.:
ИНТУИТ.РУ "Интернет-университет информационных технологий",
2008. 632 с.
99
Лабораторная работа №8
ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА В ОС LINUX
Цели работы: ознакомиться на практике с организацией вводавывода в операционной системе Linux, понятием виртуальной файловой системы, блочными и символьными устройствами, понятием
драйвера, блочными, символьными драйверами, драйверами низкого
уровня; приобрести опыт монтирования файловых систем.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
К Desktop Environment (Среда рабочего стола К). KDE предназначена для поддержания тех же функциональных возможностей графического интерфейса, какие предоставляют и другие популярные
системы, например MacOS и Windows. Кроме выполнения стандартных функций, KDE обладает рядом специфических характеристик,
которые расширяют возможности графической среды. Для Linux разработано несколько диспетчеров окон, таких как olwm, fvwm, afterstep
и другие. Однако их возможности не идут ни в какое сравнение с возможностями KDE.
Оконная среда KDE
Как и большинство оконных менеджеров, KDE представляет собой интегрированную среду, содержащую базовые средства для решения ряда повседневных задач. Например, с помощью KDE можно выполнять ряд операций:
• размещение на рабочем столе ярлыков гибких дисков для их
монтирования, размонтирования и работы с ними;
• отображение в графическом виде файловой структуры и перемещение по ней;
• сопоставление приложений с файлами определенных типов (при
этом, если щелкнуть на выбранном файле, автоматически будет загружаться нужное приложение);
• создание на рабочем столе ярлыков принтеров (если мышью перетащить к такому ярлыку файл, он будет распечатан).
В состав KDE входит не только рабочий стол, но и целый набор
приложений и утилит для работы с ним. В стандартном дистрибутиве
KDE имеется более сотни программ – от игр и системных утилит до
100
целых блоков офисных программ. Кроме того, приложения KDE могут взаимодействовать друг с другом для упрощения выполнения всевозможных операций.
Компоненты рабочего стола KDE
Рабочий стол KDE разделен на три основные части: "поверхность" рабочего стола, панель и линейку задач. Основная рабочая область среды KDE называется рабочим столом. Это тот фон, на котором отображаются все другие компоненты. На рабочем столе можно
размещать ярлыки программ, документов и устройств, к которым чаще всего приходится обращаться. Это позволяет легко получать доступ к соответствующим объектам для работы с ними. Кроме той области, что отображается на экране, KDE предоставляет дополнительное виртуальное рабочее пространство для выполнения программ. По
умолчанию поддерживается четыре виртуальных рабочих стола. Виртуальный рабочий стол – это, по сути, другой экран, на который можно переключиться для того, чтобы запустить приложение или выполнить еще какую-то работу. Программы и окна легко перемещаются
между различными виртуальными рабочими столами. Дополнительные возможности, предоставляемые за счет использования виртуальных рабочих столов, могут быть использованы самыми разными программами. При этом нет необходимости сворачивать и разворачивать
окна выполняемых приложений. Можно просто отложить выполняемое приложение в таком виде, как есть, а затем вернуться к нему по
завершении выполнения.
Панель
Панель располагается в нижней части экрана. На панели размещаются кнопки, позволяющие выполнять основные процедуры KDE, а
также ярлыки наиболее часто используемых программ. Одним из особо важных элементов на панели является кнопка Application Starter
(Запуск Приложений), которая расположена (по умолчанию) в левой
части панели. Это кнопка с литерой "К" над изображением зубчатого
колеса. С ее помощью можно открыть меню, в котором представлены
все приложения, установленные на данную систему. Кроме того, это
же меню может быть использовано для доступа к некоторым другим
разделам KDE, таким, как диалоговая справка и Панель Управления
(Control Panel).
101
На панели размещен переключатель виртуальных рабочих столов
Пейджер, Панель Задач (Taskbar) и Часы (Clock). Панель задач отображает открытые на текущем рабочем столе окна. Чтобы получить
немедленный доступ к программе, нужно просто щелкнуть в соответствующем месте на панели задач.
Запустить на выполнение программу можно одним из перечисленных ниже способов:
• щелкнуть кнопкой на панели: некоторые программы представлены по умолчанию на панели в виде ярлыков или кнопок, например,
эмулятор виртуальных рабочих столов, панель управления, вызов
справки и текстовой редактор;
• щелкнуть на элементе рабочего стола: по умолчанию на рабочем столе размещается только два объекта – это Корзина и ярлык рабочего каталога; пользователи сами размещают на рабочем столе
наиболее нужные и часто используемые программы;
• выбрать программу из меню запуска приложений: достаточно
щелкнуть на литере " К" и выбрать тот пункт меню, который соответствует запускаемому приложению;
• использовать диспетчер файлов: в окне диспетчера файлов
нужно выбрать соответствующий файл и щелкнуть на нем мышью.
Можно, конечно, запустить программу на выполнение в командной строке окна терминала: задать название программы. Можно также
нажатием клавиш <Alt+F2> вызвать окно запуска программ и ввести
туда название программы.
Ряд полезных программ облегчает работу пользователя.
В первую очередь, это программа эмуляции терминала konsole,
позволяющая открывать окна и получать доступ к стандартной командной строке. На панели имеется соответствующая кнопка с изображением маленького монитора и ракушки.
Справку в диалоговом режиме можно получить, если щелкнуть на
кнопке панели с изображением спасательного круга. Справка включает в себя разные темы, например, программа-гид для начинающих
пользователей и система контекстного поиска для используемых в
KDE приложений.
Просмотреть файловую систему или получить доступ к ресурсам
World Wide Web можно, используя окно диспетчера файлов. Для того
чтобы диспетчер файлов отобразил в своем окне содержимое рабочего
каталога, нужно щелкнуть на папке панели с изображением домика.
Щелканье по кнопке ► удаляет панель с экрана. Эта кнопка остается при этом на экране, так что можно вернуть панель обратно. Это
102
свойство действует только на открытый в данный момент рабочий
стол; другие рабочие столы сохраняют вид мини- или главной панели.
Список задач – кнопка, расположенная справа от меню приложений (обозначена пиктограммой монитора), несет меню, содержащее
все активные на данный момент окна, отсортированные по имени. Это
позволяет легко и быстро найти необходимое окно и уменьшает захламленность экрана при работе с несколькими окнами.
Настройка KDE
Центр управления (Control Center) (кнопка с изображением гаечного ключа) составляет основу всей системы настроек KDE. В нее
входит множество панелей для всевозможных компонентов рабочей
среды и даже некоторых приложений KDE.
В центре управления используется деление на группы: щелкнув
на знаке "плюс" в углу группы, можно увидеть список входящих в
группу компонентов. Щелкнув на знаке "минус" в том же углу группы, этот список можно свернуть. Доступ к любому диалогу с раскрытым деревом меню можно получить при помощи Preferences (Предпочтения) и из меню запуска программ Start Application.
Большинство диалоговых окон имеют кнопку вызова справки. В
самом простом случае это контекстная справка. Для ее получения
нужно щелкнуть мышью на знаке вопроса на рамке окна. Курсор мыши при этом изменит свой вид на стрелку с большим знаком вопроса.
Если теперь щелкнуть на том элементе диалогового окна, с которым
возникли трудности, появится прямоугольник желтого цвета с текстом
справки. Для получения более детальной справки можно воспользоваться опцией Help (Справка) на левой панели. Наконец, если возникли проблемы с поиском необходимого диалогового окна, на этой же
панели нужно выбрать опцию Search (Поиск). Затем нужно ввести
ключевое слово, по которому и будет осуществляться поиск.
Control Center
KDE предоставляет широкие возможности по модифицированию
внешнего вида окон и рабочей области, включая отображение фона,
ярлыков, шрифтов и тому подобное. Не представляет труда и управление работой отдельных компонентов, вроде того же рабочего стола
или окна. Например, можно управлять реакцией элемента на щелчок
мышью, процессом загрузки и отображения выбранных окон, можно
103
также выбирать хранитель экрана. Все эти и многие другие возможности может предоставить рассматриваемая группа Control Center.
Для настройки параметров работы рабочего стола и окон следует
выбрать опцию нужного диалога настройки под названием Desktop на
дереве центра управления.
Изменение схемы цветов
Диалоговое окно выбора цвета Appearance&Themes => Colors
(Цвета) предназначено для изменения используемой цветовой схемы
для окон KDE и других графических приложений.
Цветовая схема включает в себя 18 пунктов выбора цвета для различных элементов окна программы и установки контрастов. В области
предварительного просмотра отображаются все элементы окна, реагирующие на изменение цветовой схемы. Как только пользователь меняет параметры или установки, в области просмотра отражаются внесенные изменения. Можно выбрать уже готовую цветовую схему из
списка Color Scheme (Схема Цветов).
Для изменения какой-то конкретной установки нужно выбрать
соответствующий элемент из выпадающего меню области цветов
Widget Color (Декорация) или щелкнуть в нужной части окна предварительного просмотра. После того как элемент выбран, можно изменить его цвет. Для этого достаточно щелкнуть на кнопке и выбрать
понравившийся цвет из появившегося диалогового окна выбора цвета.
Контраст изменяется при помощи позиционирования специального рычажка контраста, который может размещаться в диапазоне от
Low (Низкий) до High (Высокий). Эти установки применяются при
отображении трехмерных рамок вокруг элементов интерфейса приложений KDE.
Для подтверждения выбора следует щелкнуть на кнопке Apply
(Применить). Если приходится часто менять цветовые установки, бывает полезно внести изменения в список цветовых схем. Для этого
нужно щелкнуть на кнопке Save Scheme и задать название для своей
схемы. Для удаления схемы из списка нужно выделить ее и щелкнуть
на кнопке Remove (Удалить).
Изменение фона
Для изменения цвета фона или фонового узора рабочего стола
нужно на дереве опций центра управления последовательно выбрать
Control Center=>Appearance&Themes=>Background.
104
В результате появится диалоговое окно, имеющее три основные
области:
• список виртуальных рабочих столов;
• окно предварительного просмотра;
• окно настройки параметров.
Каждый виртуальный стол в KDE имеет собственные настройки
фона. Для каждого такого стола можно выбрать фон с одноцветной
или двухцветной палитрой, а также фоновый узор. Если используется
фоновый узор, можно задать способ его отображения. Можно также
выбрать несколько узоров и автоматически переключаться между ними. Доступны и более усовершенствованные опции, позволяющие сочетать цвета и узоры, а также поддерживать динамические настройки
фона.
В процессе внесения изменений в установки они отображаются в
окне предварительного просмотра.
Виртуальные рабочие столы
Производить настройку параметров виртуальных рабочих столов
в KDE можно в диалоговом окне Control Center =>Desktop =>Multiple
Desktops.
Указатель Number of Desktops (Количество рабочих столов) показывает, сколько виртуальных рабочих столов доступно. Их число может изменяться в диапазоне от одного до шестнадцати. Здесь же можно задать название для рабочего стола, которое потом будет отображено в списке окон (Window List) или использовано в настройках панели.
Хранитель экрана
Диалоговое окно выбора хранителя экрана Appearance&Themes
== Screensaver позволяет выбрать хранитель экрана и осуществить
настройку его параметров. Опции настройки бывают глобальные, как,
например, опция установки времени запуска хранителя экрана, и индивидуальные – для каждого отдельного хранителя. Диалоговое окно
выбора хранителя экрана имеет три основные секции:
• окно предварительного просмотра;
• список программ – хранителей экрана;
• опции настройки.
105
Необходимо выбрать название нужной программы из предложенного списка. Для настройки параметров необходимо щелкнуть на
кнопке Setup (Настройка) и в появившемся диалоговом окне произвести установку нужных характеристик.
Для установки интервала времени, через который будет запускаться хранитель экрана, нужно ввести в поле опции Settings (Установки) величину данного интервала в минутах.
Параметр Priority (Приоритет) позволяет определить распределение процессором времени на работу хранителя экрана. Это пример
того, как в Linux организована многозадачность. Если нужно, чтобы у
хранителя был наивысший приоритет (например, для качественного
вывода анимации), следует передвинуть рычажок в позицию High
(Высокий). Если же, наоборот, необходимо обеспечить высокий приоритет других процессов, нужная позиция для рычажка приоритетности хранителя – Low (Низкий).
Для того чтобы проверить выполненные установки, следует
щелкнуть на кнопке Test (Просмотр). Для подтверждения сделанного
выбора нажмите кнопку ОК или Apply.
Настройка диспетчера окон
С помощью опций Control Center Appearance&Themes => Desktop/Window behavior (Поведение Окон) центра управления можно
устанавливать поведение диспетчера окон. Эти настройки определяют
способ отображения окон в случае их перемещения и изменения размера, а также управляют процессом разворачивания, размещения и
выделения окон при работе с диспетчером окон. Опции в верхней части диалогового окна позволяют выполнить настройку параметров,
задающих режим перемещения окна и изменения его размеров, а также определяют функциональность команды Maximize (Развернуть).
Можно задать такой режим отображения окна при перемещении или
изменении его размера, что окно будет отображаться вместе со всем
своим содержимым или же в виде прозрачной рамки. Если выбран
режим отображения всего содержимого окна, процесс перемещения
или изменения размеров окна будет требовать дополнительного времени для обновления отображаемых на экране элементов.
Если используются окна с изменяемыми размерами, можно выбрать режим обновления содержимого окна при каждом изменении
его размера. Для этого следует воспользоваться установками Resize
(Изменение размера). Для выбора частоты обновления можно вос106
пользоваться специальным рычажком. Если сделан выбор, отличный
от None (Никакой), то каждый раз, при изменении размеров окна, его
содержимое будет обновляться. Это дает возможность отслеживать
процесс заполнения окна программой и позволяет выбрать оптимальные размеры последнего.
Window behavior/Moving – меню установок размещения окна на
экране Placement (Расположение) позволяет определить место на
экране, где будет отображаться окно. Поддерживаются такие методы:
• Smart (Умный) – минимизируется перекрытие между окнами;
• Cascade (Каскад) – первое окно отображается в левом верхнем
углу. Следующее окно отображается сдвинутым немного вправо и
вниз, так что окна практически полностью перекрываются, таким образом, они расположены, как карты в руке при игре в преферанс;
• Random (Произвольный) – окна располагаются на экране в произвольном порядке.
Метод получения фокуса (т.е. метод выделения отдельных окон
или элементов) является, пожалуй, индивидуальным методом настроек KDE. С помощью этого метода определяется, какое из открытых
окон активно и какие следует выполнить действия при активизации
окна. Более детально это выглядит так:
• Click to focus (Передача фокуса щелчком). Окно получает фокус
(т.е. становится активным) при щелчке на нем мышью. При этом окно
автоматически выводится на первый план по отношению к другим
окнам. Такой метод используется по умолчанию.
• Focus follows mouse (Фокус за мышью). Окно получает фокус
при непосредственном обращении к нему (это можно сделать с помощью указателя мыши, используя комбинацию клавиш <Alt+Tab> и
тому подобное). При этом окно может подниматься поверх других
окон, а может и не подниматься. Перемещение указателя мыши на
рабочую область за пределы окна не означает потерю последним фокуса. При выборе опции Auto Raise (Всплывать автоматически) окно
будет всплывать на экране при перемещении в его область курсора в
течение нескольких миллисекунд. Число этих миллисекунд устанавливается с помощью рычажка Delay (Задержка). Если выбрана опция
Click Raise (Всплывать при щелчке), окно будет подниматься поверх
других окон при щелчке в любой части окна. В противном случае такая реакция окна будет наблюдаться только при щелчке на его заголовке. Это исключительно полезный метод передачи фокуса, поскольку позволяет набирать текст в одном окне и одновременно читать содержимое другого окна, расположенного частично поверх указанного.
107
• Focus Under Mouse (Фокус под мышью). Окно получает фокус
при любом перемещении на него указателя мыши. При этом комбинация клавиш <Alt+Tab> может и не помочь.
• Focus Strictly Under Mouse (Фокус только под мышью). Окно
получает фокус, только если указатель мыши находится внутри окна.
Если указатель мыши находится в рабочей области, где нет окон, ни
одно из окон не получит фокус.
Использование окон
Открытое окно состоит из следующих элементов.
Window menu (Меню управления окном). В левом верхнем углу
каждого окна находится пиктограмма манипулирования окном. При
щелчке на ней появляется меню, содержащее команды, с помощью
которых можно манипулировать данным окном. Maximize (Максимизировать) увеличит окно до максимально возможного размера. Minimize (Минимизировать) сделает ваше окно невидимым. Move (Переместить) позволяет передвигать окно с помощью мыши. Size (Изменить размер) позволит вам увеличить или уменьшить окно. Shade –
свернет окно до заголовка. То desktop...(На рабочий стол) позволит
перевести окно на другой рабочий стол. Выберите рабочий стол, на
который вы хотите переместить это окно. Окно при этом исчезнет.
Для того чтобы увидеть его снова, выберите имя на Линейке задач или
щелкните на соответствующую кнопку рабочего стола на панели
KDE. Close (Закрыть) закроет данное окно. Always on Top – оставляет
окно поверх всех открытых окон.
Использование панели меню каждого окна в КDЕ очень просто.
Щелкните на команду, и она будет исполнена. При нажатии на правую кнопку мыши появится контекстное меню, позволяющее вывести
на экран панель меню. Можете отсоединить меню от окна и оставить
его "плавать" по экрану.
Ниже панели меню находятся пиктограммы инструментов, которые позволяют исполнять различные команды. Можно передвинуть
инструментальную панель: влево, вправо, вверх, вниз, – и, конечно,
она тоже может "плавать".
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Запустите Центр управлений.
2. Поменяйте фон на одноцветный, а затем вставьте фоновое
изображение.
108
3. Установите хранитель экрана на свое усмотрение и режим
ожидания, равный минуте.
4. Сделайте так, чтобы окна передвигались вместе со всем их содержимым.
5. Задайте звуковой щелчок, подтверждающий нажатие каждой
клавиши.
6. Измените ширину линейки панели.
7. Запустите диспетчер приложений, программу текстового процессора KWord.
8. В другом рабочем столе откройте программу растрового редактора Paint.
9. Откройте KWord и наберите следующий текст:
The Quick Brown Fox Jumps Over The Lazy Dog, используя два
разных стиля по вашему выбору. Сохраните этот файл в домашнем
каталоге пользователя, закройте KWord.
10. Откройте ваш домашний каталог пользователя Konqueror'ом,
создайте в нем каталог, скопируйте ваш текстовой файл в этот каталог.
11. Ознакомьтесь с содержанием домашнего каталога, скопируйте с дискеты файлы.
12. Получите справку об интересующем вас объекте.
13. Создайте любой рисунок с помощью Paint, чтобы в нем были
ВСЕ фигуры (1) эллипс, 2) окружность, 3) линия, 4) прямоугольник, 5)
круг) хотя бы по одному разу и присутствовало не менее четырех цветов.
14. Сохраните файл с рисунком в домашнем каталоге, закройте
Paint.
15. Скопируйте файл с рисунком в тот же созданный вами каталог.
16. Измените атрибуты доступа к созданным файлам.
17. Покажите преподавателю ваши файлы, затем удалите их.
Возможность обработки объектов
Диспетчер файлов Konqueror предназначен не только для просмотра документов. Он может также быть использован для настройки
просматриваемых объектов и активной работы с ними. Например, он
использует систему типизации файлов KDE для запуска программ и
загрузки документов. Распознавание типа файла производится как для
локальных файлов, так и для файлов на удаленных узлах. Поэтому
таких проблем, как, скажем, выбор отображаемых ярлыков или контекстных меню для данного элемента, не возникает. При запуске фай109
ла на удаленной системе KDE загрузит этот файл и запустит нужное
для работы с ним приложение. Можно перетаскивать элементы из одного окна диспетчера файлов в другое, создавая, таким образом, копию элемента или связь с этим элементом. Наконец, при работе с локальной файловой системой, Konqueror может быть использован для
изменения атрибутов этой самой файловой системы (как, например,
владелец файла и права доступа) с помощью простого графического
диалогового окна.
Прежде чем начинать работать с диспетчером файлов, полезно
сначала познакомиться с некоторыми элементами интерфейса пользователя. Ниже описаны те задачи, которые можно решать с помощью
Konqueror.
Работа с файлами и каталогами
Чтобы начать работу с диспетчером файлов, достаточно щелкнуть
на папке любого каталога или щелкнуть кнопкой с изображением глобуса на панели. В результате запустится диспетчер файлов, и в главном окне будет выведено содержимое рабочего каталога. Эта область
называется областью просмотра. Как правило, в основном окне такая
область просмотра единственная. Тем не менее, там также есть область, где отображается дерево каталогов, которая вместе с областью
просмотра занимает место в основном окне при его отображении на
экране. Наконец, там еще можно увидеть и область эмуляции окна
терминала.
Область просмотра
В области просмотра, как правило, отображается содержимое выбранного каталога. Для обозначения элементов в каталоге используются ярлыки, которые определяются типом файлов. Вид окна просмотра можно изменить. Для этого нужно воспользоваться опциями
меню View (B^)=>View Mode (Способ отображения). Существует
пять отображаемых типов (согласно опциям меню View).
• Icon View (ярлыки). Содержимое каталога отображается в виде
больших ярлыков, помещенных в рамку.
• Text View (Текст). Выводится детальный листинг файлов и каталогов со всеми их атрибутами.
• MultiColumn View (Колонки). В виде колонок выводятся в только
названия файлов и их мини-ярлыки.
110
• Detailed List View (Список). Выводится та же информация, что и
в режиме Text View, только включая еще и мини-ярлыки для идентификации типа файлов.
• Tree View (Дерево). Все точно так же, как в предыдущем случае,
только теперь каждый ярлык может быть развернут в дерево подкаталогов.
Обычно скрытые файлы (те, имена которых начинаются с точки)
в описанных выше списках файлов не отображаются. Для того чтобы
включить такие файлы в листинги, нужно выбрать опции меню
View(Bид)=>Show Hidden Files (Показывать скрытые файлы). Переходить между каталогами с помощью диспетчера файлов можно несколькими способами. Для перехода в подкаталог нужно щелкнуть на
названии папки или каталога в области просмотра. Для перехода в каталог высшего уровня можно щелкнуть на кнопке со стрелкой вверх
на панели инструментов диспетчера файлов. Для переключения между
каталогами, которые уже посещались, можно использовать кнопки со
стрелками влево и вправо на той же панели инструментов. Каждая из
этих кнопок имеет маленькую стрелочку, направленную вниз. Это
значит, что если удерживать кнопку нажатой, можно будет увидеть
список адресов, куда можно перейти. Для кнопки со стрелкой вверх
такой список будет состоять из каталогов вышестоящих уровней: первого, второго и так далее. Для кнопок со стрелками влево и вправо это
будут каталоги, которые последовательно посещались. Их хронологический порядок записан в кэш-памяти.
Для переключения на элемент, помеченный закладкой, нужно выбрать соответствующий пункт из меню закладок Bookmarks (Закладки).
Наконец, для перехода в нужное место файловой системы можно
просто ввести адрес перехода в поле Location (Адрес), размещенном в
верхней части окна диспетчера файлов. Это же можно сделать и при
помощи выпадающего диалогового окна Open Location (Открыть Адрес). Для этого достаточно выбрать опции меню Location =>Open Location. К тому же результату приведет нажатие комбинации клавиш
<Сит+О>. При вводе адреса его можно указывать как обычный путь к
каталогу или как URL. При работе с локальной файловой системой
следует использовать префикс file.
Дерево каталогов
Левое подокно окна диспетчера файлов, как правило, используется для отображения дерева каталогов. По умолчанию оно скрыто, но
111
при помощи опций в меню диспетчера файлов Window (Окно) =>Show
Navigation Panel (Показывать дерево директорий) его можно вывести
на экран. Подокно Tree View (Просмотр дерева) имеет три каталога
наивысшего уровня, соответствующих тем областям, в которых производится просмотр файловой системы:
• The Home Directory (Рабочий каталог). Соответствует рабочему
каталогу пользователя.
• The Network (Сетевая папка). Эта папка содержит еще три папки: FTP Archives (Архивы FTP) для работы с FTP узлами; Web Sites
(Страницы Web), в которой хранятся используемые закладки; Windows Shares (Сетевые ресурсы Windows), используемая для доступа к
совместно используемым ресурсам с помощью SMB.
• The Root Directory (Корневой каталог). Соответствует корневому каталогу файловой системы.
В подокне просмотра дерева каталогов отображаются только каталоги. Файлы и связи там не показаны. Для того чтобы развернуть
или свернуть каталог, нужно щелкнуть на квадрате со знаком плюс
или минус соответственно, размещенном слева от названия каталога.
Когда каталог свернут, в квадрате отображается плюс, когда же каталог раскрыт, в квадрате появляется минус. Для отображения в окне
просмотра содержимого каталога нужно в подокне просмотра дерева
каталогов щелкнуть мышью на названии этого каталога, при этом
должна быть установлена связь между окнами (подробнее об этом
рассказано в разделе "Установка связи между окнами").
Окно эмуляции терминала
В нижней части окна диспетчера файлов можно вывести
эмуляцию окна терминала (что-то вроде консольного устройства).
Для этого достаточно выбрать опции меню Window(Окно)=>Show
Terminal emulator (Показать окно эмуляции терминала). Это позволит
получить доступ к командной строке, где можно обычным способом
вводить команды LINUX. Когда с помощью дерева каталогов
или в окне просмотра пользователь переходит в другой каталог,
изменение текущего каталога будет автоматически отображаться и в
этом окне (при установленной связи между окнами). А вот
перемещения, выполняемые в окне эмуляции терминала с помощью
команды cd, не изменят содержимого области просмотра и подокна
дерева каталогов.
112
Установка связи между окнами
Изменения, внесенные в области просмотра диспетчера файлов
или подокна дерева каталогов, могут отражаться и в других окнах. По
умолчанию все окна связаны друг с другом, так что они будут отражать одни и те же каталоги. Иногда бывает полезно убрать такую
связь для отдельного окна, чтобы оно отражало какой-то один каталог.
Для установки или снятия связи между окнами нужно воспользоваться опцией View = Link View (Связать). Между всеми выделенными таким способом окнами устанавливается связь, поэтому они будут
отображать одинаковые каталоги. Единственным исключением является эмулятор окна терминала. При использовании команды cd эмулятор терминала с другими окнами работать синхронно не будет.
Создание окон
Три окна, используемые в диспетчере файлов, – это только начало. Пользователь может создать несколько копий окна просмотра или
эмулятора терминала. Причем каждая копия может работать с разными каталогами или узлами Web.
Для создания нового окна нужно выбрать существующее окно того типа, который нужно создать. Затем следует выбрать одну из перечисленных ниже опций меню.
• Window (Oкно)=>Split View Left/Right (Разделить по вертикали)
– текущее окно разбивается по вертикали на два окна того же типа.
Это же можно сделать, используя комбинацию клавиш
<Ctrl+Shift+L>.
• Window (OMro^Split View Top/Bottom (Разделить по горизонтали) – текущее окно разбивается по горизонтали на два окна того же
типа. Комбинация клавиш в данном случае <Ctrl+Shift+T>.
Для создаваемых окон по умолчанию связи с другими окнами не
устанавливаются. Это удобно для того, чтобы просматривать разные
каталоги. Для изменения просматриваемой области нужно сначала
просто щелкнуть мышью на окне. Маленький зеленый индикатор указывает на активное в данный момент окно. Затем следует ввести новый адрес для просмотра в поле Location в верхней части окна Konqueror (Location = Duplicate Windows).
Для того чтобы убрать существующее окно просмотра или эмулятор терминала, нужно выделить его щелчком мыши, а затем выбрать
опции контекстного меню Window= Remove Active View (Убрать окно)
113
или нажать комбинацию клавиш <Ctrl+Shift+R>. Для изменения размера нужно при помощи мыши переместить границу между двумя
соседними окнами.
Сохранение формата
Для использования созданного пользователем формата для отображения на экране диспетчера файлов, этот формат нужно сохранить.
Для этого следует воспользоваться опциями Settings(Установки) =>
Save View Profile (Сохранить профиль).
Сначала для профиля нужно задать название или воспользоваться
уже существующим. Затем следует определить, нужно ли сохранять в
профиле URL (опция Save URLs in profile). Если соответствующая опция выбрана, то каждый раз при загрузке профиля будет происходить
обращение к URL.
Задачи управления
В этом разделе описываются те задачи по управлению файловой системой, которые можно решать с помощью диспетчера файлов.
Сюда следует включить получение информации о файлах, копирование, перемещение и удаление файлов, изменение таких атрибутов
файлов, как название, владельцы и права доступа к ним.
Получение информации о файле
Одна из самых основных процедур заключается в получении информации о файле. Достичь этого можно самыми разнообразными
способами.
Например, панель состояния отображает данные о размере и типе
объекта, который выделен при помощи курсора мыши. Поэтому для
получения такой информации достаточно навести указатель мыши на
интересующий объект.
Более детальную информацию о файле можно получить, если в
меню View/View Mode (Вид) выбрать опции Text View (Текст) или
Detailed List (Список). В этом случае о каждом элементе в выведенном
на экран списке можно узнать такие подробности, как тип, размер,
название, время изменения, права доступа, владелец, группа и наличие
связей. Ярлыки в окне просмотра, устанавливающиеся KDE автоматически, соответствуют типу каждого элемента. В KDE для отображения
114
файлов различных типов используется большое число ярлыков. По
негласному соглашению для каталогов используется ярлык в виде
папки, для документов – ярлыки с изображением листа бумаги, а для
программ – ярлык с изображением зубчатого колеса.
Выбор элемента
Некоторые действия с объектами можно выполнять прямо в окне
диспетчера файлов. Существует много способов, с помощью которых
можно выделять группы объектов и производить с ними разнообразные процедуры.
Для выбора объекта без его запуска нужно щелкнуть на нем мышью, удерживая при этом нажатой клавишу <Ctrl>. Объект будет при
этом затемнен. Это означает, что он выделен. Для того чтобы к выделенному объекту добавить еще один, или убрать объект из группы
выделенных объектов, используется та же процедура. Можно выделить группу объектов, захватив их в рамку при помощи курсора мыши.
Для большой группы объектов, которую неудобно или просто невозможно выделить с помощью мыши, можно использовать названия
и спецификацию шаблона. Для этого нужно в меню Edit (Правка) выбрать опцию Select (Выделить) или нажать комбинацию клавиш цифровой панели <Сtrl+«Плюс»>. Затем в диалоговом окне Select files
(Выделить файлы) следует ввести названия файлов или спецификацию шаблона. Затем нужно щелкнуть на кнопке ОК, после чего будут
выделены все файлы, отвечающие заданному шаблону. Аналогично,
из группы выделенных файлов можно и убирать файлы. Для этого в
меню Edit следует выбрать опцию Unselect (Отменить выделение)
или нажать комбинацию клавиш цифровой панели <Сtrl+«Минус»>.
Если воспользоваться опцией Edit= UnselectAll (Отменить для всех),
будет отменено выделение для всех выделенных до этого объектов. К
тому же результату приводит нажатие комбинации <Ctrl+U>. Опция
Edit=>Invert (Наоборот) приведет к выделению невыделенных файлов
и отмене выделения для выделенных. То же можно сделать, нажав
<Ctrl+*>.
Перемещение и копирование файлов
Наиболее простой способ переместить или скопировать файл из
одного места файловой системы в другое или создать связь с файлом
115
заключается в том, чтобы выделить его и просто перетащить мышью в
нужное место. Таким способом можно перетаскивать файлы из одного
открытого окна диспетчера файлов в другое, между окном диспетчера
файлов и рабочим столом.
Иногда бывает трудно определить, какая из операций – копирование (Copy), или перемещение (Move) – является наиболее приемлемой.
Это особенно актуально для тех, кто начинает работу с особыми файлами и каталогами KDE, вроде рабочего стола (Desktop). Ниже приведены некоторые соображения по этому поводу.
• Если действительно необходимо создать копию объекта, следует выбирать Copy и только Copy. Для программ такая процедура
копирования используется редко. Что касается документов и других
подобных файлов, то все зависит от конкретных обстоятельств. Здесь
следует помнить, что если используется несколько копий одного файла, то внесение изменений в одну из этих копий на других копиях не
отражается. Поэтому, хотя и можно размещать документы прямо на
рабочем столе, желательно размещать там только связи с документом,
или перемещать туда файлы только на время.
• Если нужно изменить место хранения файла, следует выбирать
Move. Как и в предыдущем случае, эта процедура редко используется
для программ и командных файлов. Программы обычно хранятся в
специальных каталогах, что отражено в указании используемых в
приложениях путей. Перемещение программы в другое место может
привести к тому, что она станет недоступной для использования при
вызове из командной строки.
• Для файлов конфигурации рабочего стола обычно используется
команда копирования или создается связь. Иногда смещение файла
рабочего стола с привычного места приводит к некорректной его работе. Например, файл рабочего стола MimeType может быть использован, только если он находится в каталоге mimelink. Поэтому если
нет уверенности в правильности предпринимаемых действий, перемещать файлы рабочего стола из их специальных каталогов в другие
не стоит.
Удаление файлов
Для того чтобы удалить файл из файловой системы, можно воспользоваться одним из трех способов: переместить файл в корзину
(Trash), непосредственно удалить файл или вытереть его. Помещение
файла в корзину означает его перемещение в каталог Trash, т.е. файл
116
будет продолжать занимать место в системе и его можно будет в будущем, если потребуется, восстановить. Непосредственное удаление
файла означает, что файл из системы полностью удаляется с освобождением места. В этом случае восстановление файла невозможно. Вытирание подразумевает предварительную запись в файл набора специальных данных перед удалением. Это делается для того, чтобы быть
уверенным, что даже самая совершенная технология восстановления
файлов не сможет восстановить его содержимое.
Для перемещения файла в корзину нужно в меню Edit или контекстном меню выбрать опцию Move to Trash (Поместить в Корзину).
Можно также просто перетащить нужный объект из окна диспетчера
файлов на пиктограмму с изображением корзины на рабочем столе.
Аналогично, для удаления файла (или файлов) нужно выделить этот
файл (или файлы) и затем выбрать опцию Delete (Удалить) из одного
из упоминавшихся выше меню.
Запуск файлов
Запускать файлы из окна диспетчера файлов можно так же, как
это делается при использовании рабочего стола. Можно либо просто
щелкнуть на выбранном объекте, либо перетащить объект к нужной
программе, либо войти в контекстное меню документа и с помощью
опции Open With (Открыть с помощью) выбрать программу из списка.
Если щелкнуть один раз мышью на объекте, KDE выберет необходимый способ действий, исходя из типа файла. Если KDE не в состоянии определить программу, используемую по умолчанию для работы с файлом, KDE предложит пользователю самостоятельно выбрать такую программу.
Изменение файлов и каталогов
В KDE, за счет использования простого и понятного графического диалога для работы с объектами, изменение атрибутов объектов
файловой системы является очень простой задачей. Для получения
доступа к этому диалоговому окну нужно выбрать опцию Properties
(Свойства) из контекстного меню объекта. После этого появится диалоговое окно со вкладками, разными для объектов разного типа. Но
первые две вкладки одинаковы для объектов всех типов. Это вкладка
General (Общие) и Permissions (Доступ).
117
Изменение названия файла. Для того чтобы изменить название
файла, нужно выбрать из контекстного меню этого файла опцию Properties. После того, как появится окно диалога, на вкладке General нужно отредактировать название файла в поле Name (Название), затем
нажать кнопку ОК.
Замена владельца и изменение прав доступа. Для замены владельца файла и прав доступа к нему в диалоговом окне Properties
нужно перейти на закладку Properties/Permissions (Права доступа). Для
изменения прав доступа к объекту в секции Access permissions (Права
доступа) диалогового окна следует напротив нужных опций поставить
флажки. Чтобы изменить владельца файла или его группы, нужно
воспользоваться элементами управления в секции Ownership (Принадлежность).
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Откройте окно диспетчера файлов Konqueror, щелкнув на
кнопке Ноmе на панели.
2. Разверните окно.
3. Выберите опцию Window=>Show Terminal Emulator.
4. Выберите опцию Window=>Split View Left/Right.
5. Переместите панель кнопок Button и панель адреса Location с
помощью мыши.
6. Измените размеры панелей, используя специальные метки изменения размера на границах окон.
7. Запустите на выполнение в правой панели команду vi.
8. На левой панели просмотра откройте апплет, нажав клавиши
<Ctrl+O>.
9. На нижней панели воспользуйтесь компилятором и другими
средствами командной строки.
10. Выберите опцию Setting= Save View Profile для сохранения
профиля.
11. Введите название профиля, а затем выберите опцию Save
window size in profile. После этого нужно для сохранения установок
щелкнуть на кнопке Save.
Контрольные вопросы
1. Какие программы называются файловыми менеджерами?
2. Какая информация отражается в области просмотра программы Konqueror?
118
3. Как создать новое окно с помощью программы Konqueror?
4. Перечислите задачи по управлению файловой системой, которые можно решать с помощью диспетчера файлов?
5. Перечислите стандартные функции KDE.
6. Что является компонентом рабочего стола KDE?
7. Назовите функции панели рабочего стола.
8. Как получить справку в диалоговом режиме?
9. Какие функции предоставляет центр управления KDE?
119
Лабораторная работа №9
УПРАВЛЕНИЕ ПОЛЬЗОВАТЕЛЯМИ
И ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ В ОС LINUX
Цель работы: приобрести опыт запуска и настройки общесистемных сервисов (конфигурирования системы), управления пользователями и обеспечение безопасности.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Для создания группы используется команда addgroup, например,
addgroup g301.
Для создания пользования используется команда adduser, например, adduser anton passwd anton. При создании группы, пользователя в
файлы passwd, group каталога /etc вносится информация о пользователе и группе. Одна учетная запись соответствует одному пользователю
и одной группе. Учетная запись пользователя содержит следующую
информацию:
 имя пользователя;
 пароль в закодированном виде;
 целочисленный идентификатор пользователя;
 целочисленный идентификатор группы;
 комментарий;
 каталог пользователя;
 интерпретатор команд.
Например:
anton:*:100:1000::/home/usr:/bin/bash
Учетная запись группы содержит следующую информацию:
 имя группы;
 пароль в закодированном виде;
 целочисленный идентификатор группы;
 список имен пользователей группы.
Например: g301:*:1000: anton
Чтобы удалить пользователя, группу используются команды:
userdel, delgroup соответственно.
Чтобы изменить пользовательскую, групповую принадлежность,
используются команды chown, chgrp.
120
Например: chown user file1 chgrp it402 file1
Изменение пароля осуществляется командой passwd, например,
passwd anton. Введите пароль, повторите пароль, тем самым вы измените пароль указанному пользователю.
Права доступа к файлам и каталогам
Права доступа к файлам разделяются на три категории: права
владельца файла, права группы связанной с файлом, и права всех
остальных пользователей. Каждая категория имеет свой набор прав
доступа к файлу, которые обеспечивают возможность чтения из файла, записи в файл и его выполнения (или, наоборот, запрещения этих
действий). Права доступа называются также режимом доступа к файлу. Режимы доступа к файлу устанавливаются с помощью команды
chmod.
Вы можете проверить, какие права по умолчанию установлены
для файла, который вы создали. Для этого можно воспользоваться командой uname. Ниже дан практический пример создания файла с помощью команды touch и проверки прав доступа к нему с помощью
команды ls:
$ touch file $ ls -l file
-rw-rw-r-- 1 bbal bball 0 jul 23 12:28 file
Рассмотрим вывод команды ls подробнее.
• Права доступа к файлу представляют собой группу символов:
-rw-rw-r--. Первый символ (-) указывает на тип объекта. Дефис говорит о том, что это обычный файл, d означает каталог, c – символьное
устройство, b указывает на блок-ориентированное устройство.
• Права доступа указываются последовательно: для пользователя, группы и всех остальных. Отсутствие права на какой-либо вид доступа обозначается знаком дефиса. Тремя основными типами прав
доступа являются: r – право на чтение, w – право на запись и x – право
на выполнение.
• Далее следует число ссылок на данный файл.
• Владелец. Другими словами, здесь указывается, какой учетной
записи принадлежит этот файл. Изменить владельца можно с помощью команды chown.
121
• Группа, к которой принадлежит пользователь. Обычно члены
этой группы имеют более свободные права доступа к файлу, в отличие
от всего остального мира.
• Размер файла и дата его создания (модификации).
• Назначение прав доступа.
Права доступа к объекту могут быть заданы двумя способами: в
цифровой или в буквенной форме. При использовании буквенной
формы эти три категории обозначаются так: u – пользователь (владелец), g – группа, o – остальные и a – все эти категории вместе. Тремя
основными типами прав доступа являются: r – право на чтение, w –
право на запись и x -право на выполнение. Комбинации r, w и x для
трех категорий и являются правами доступа к файлу:
User Group Others
rwx rwx rwx
Многие пользователи предпочитают представлять права доступа с
помощью цифрового кода, базирующегося на восьмеричной системе
счисления. Ниже даны значения прав доступа в числовой нотации:
• 4 означает право на чтение;
• 2 означает право на запись (модификацию);
• 1 означает право на выполнение.
Предыдущий пример (-rw-rw-r-- ) в восьмеричной нотации записывается короче – 664. Получается это число просто: старший разряд
– права владельца файла, т.е. чтение и запись (4+2), далее идет группа
(4+2) и весь остальной мир (только чтение – 4).
Права доступа к каталогам. В Linux, как и в остальных UNIX,
каталоги также считаются файлами. Например, выполним следующую
команду ls, чтобы увидеть разрешения на доступ: $ mkdir foo $ ls -ld
foo drwxrwxr-x 2 bball bball 4096 jul 23 12:37 foo.
В данном примере команда mkdir создает каталог. Команда ls с
параметром -ld отображает разрешения на доступ и иную информацию, касающуюся этого каталога в целом, но не его содержания. Здесь
можно видеть, что права доступа к каталогу имеют значения 775 (владелец имеет все права 4+2+1, группа также все права, а весь остальной
мир не может ничего изменять в нем 4+1).
122
Отсюда видно, что владелец и члены группы могут выводить содержание каталога и записывать в него. Все остальные пользователи
могут только выводить содержание каталога. (Чтобы увидеть содержание каталога, необходимо иметь разрешение на выполнение).
Вы заметили, что в выходных данных команды ls в правах доступа первой стоит буква d. Это значит, что данный файл является каталогом; у обычного файла на этом месте стоит пробел. Другие буквы
указывают на специальный тип файла. Например, если с помощью
команды ls вывести информацию о файле устройства для последовательного порта, то можно увидеть следующее:
$ ls -l /dev/ttySO
crw-rw— 1 root uucp 4,64 Mar 23 23:38 /dev/ttyS0
Файл /dev/ttyS0 представляет символьное устройство (последовательный порт); владеет данным файлом пользователь root и этот файл
доступен также любому члену группы (uucp). Права доступа к файлу
имеют значения 660 (чтение+запись, чтение+запись, нет прав).
Изменить права доступа к файлу можно с помощью команды
chmod. Чтобы задать желаемое изменение, в этой команде используют
разные формы записи, включая восьмеричную и мнемоническую. В
мнемонической форме параметры команды chmod обозначают следующее (со знаком плюс (+) они используются для добавления права на
доступ, со знаком минус (–) для их удаления):
u – добавить (или удалить) право на какую-либо операцию с файлом (каталогом) для юзера;
g – добавить (или удалить) право для группы;
o – добавить (или удалить) право для всех остальных;
a – добавить (или удалить) право всем пользователям (all);
r – добавить (или удалить) право на чтение;
w – добавить (или удалить) право на запись;
x – добавить (или удалить) право на выполнение.
Из комбинации этих слов и складывается указание о том, как следует изменить права доступа. Например, если создать файл, скажем,
readme.txt, то для этого файла будут установлены разрешения, используемые по умолчанию (они определяются маской unmask в файле
/etc/bsdhrc):
-rw-rw-r-- 1 bball bball 12 Oct 2 16:48 readme.txt
123
Допустим, мы хотим запретить всем без исключения пользователям модифицировать этот файл. Сделать это можно с помощью команды Chmod:
$ chmod -aw readme.txt
$ ls -l readme.txt
-r--r--r-- 1 bball bball 12 Oct 2 16:48 readme.txt
Теперь никто не сможет записывать в файл. Впрочем, владелец,
если файл находится в его домашнем каталоге или каталоге /tmp,
сможет изменять этот файл, поскольку имеет право на доступ к этим
каталогам. Чтобы восстановить право на чтение и запись для владельца, можно выполнить такую команду:
$ chmod u+rw readme.txt
$ ls -l readme.txt
-rw 1 bball bball 12 Oct 2 16:48 readme.txt
Чтобы только владелец мог читать файл и записывать в него,
можно также использовать восьмеричную форму записи командой
chmod. Для этого необходимо выполнить команду chmod со значениями прав доступа, равными 600:
$ chmod 600 readme.txt
Если убрать права на выполнение некоторого каталога, то файлы,
в нем содержащиеся, будут скрыты внутри каталога, не видны и не
доступны никому, кроме владельца (и, конечно, пользователя root,
который имеет доступ ко всем файлам операционной системы). Используя комбинации различных прав доступа можно легко и быстро
создать безопасную среду.
Работа в качестве root
В UNIX и Linux пользователь root, суперпользователь, – это царь
и бог в системе. У него специальная учетная запись, которая разрешает ему делать все, что ему заблагорассудится. После регистрации в
качестве пользователя root вы имеете возможность полностью разрушить работающую систему, просто вызвав команду rm:
124
# rm -fr /
Эта команда может удалить не только все файлы и каталоги на
вашей машине, но и стереть файловые системы даже на удаленных
компьютерах. Только эта возможность уже является достаточной причиной для соблюдения особой осторожности во время работы с правами доступа пользователя root.
Работать в Linux в качестве root следует в тех случаях, когда
необходимо сконфигурировать файловую систему или провести работы по ремонту или сопровождению операционной системы.
Добавление пользователей. Чтобы быстро добавить пользователя, выполните команду useradd и задайте в ней имя пользователя:
# useradd winky
После добавления пользователя необходимо с помощью команды
passwd ввести начальный пароль для этого пользователя:
# passwd winky
Changing password for user winky. New password: Retype new password:
Passwd: all authentication tokens updated successfully.
Если для нового пользователя не ввести начальный пароль, то он
не сможет зарегистрироваться и войти в систему. Чтобы увидеть используемые по умолчанию параметры для нового пользователя, выполните команду useradd с парметром -D:
# useradd -D
Group=100
HOME=/home
INACTiVE=-1
EXPIRE=
SHELL=/bin/bash
SKELL=/etc/skel
Здесь отображаются используемый по умолчанию идентификатор
группы, домашний каталог, политика учетной записи и пароля (активны всегда, срок действия пароля не ограничен), используемый по
умолчанию командный интерпретатор и каталог, в котором хранятся
параметры командного интерпретатора, используемые по умолчанию.
125
Удаление пользователей. Для удаления учетной записи используется команда userdel. Эта команда удаляет запись, принадлежащую
данному пользователю, из системного файла /etc/passwd. Чтобы удалить все его файлы и каталоги (например, файл почтовой очереди в
каталоге /var/spool/mail), следует воспользоваться параметром -r:
# userdel -r winky
В противном случае вам придется вручную удалять все эти файлы.
Выключение системы. Для выключения системы используйте
команду shutdown. Эта команда имеет некоторое число опций, позволяющих, например, выключить машину в заранее определенное время. Но если нужно выключить машину немедленно, можно воспользоваться опциями -h или halt:
# shutdown -h now Или
# shutdown -h 0
Linux завершит работу. Важно понимать, что нельзя просто выключить Linux. Для обеспечения нормальной последующей загрузки
система должна размонтировать все разделы. Простое выключение
компьютера может привести к порче данных на жестком диске.
Перезагрузка системы. Для перезагрузки системы также можно
воспользоваться командой shutdown. Если необходимо перезагрузить
систему, воспользуйтесь опцией -r (reboot); для немедленной перезагрузки укажите после опции now или 0 (ноль):
# shutdown -r now Или
# shutdown -r 0
Другими командами, которые можно использовать для выключения системы и ее перезагрузки, являются halt и reboot.
ХОД РАБОТЫ
Задание 1. Запустить Linux.
Задание 2. Запустить консоль Linux и войти в систему под
пользователем root.
1. Запустите окно программы-оболочки Bash. Это окно очень
напоминает командную строку Windows. В окне этой программы вы
видите приглашение: dsl@box:~$
126
2. Введите после приглашения команду sudo su: dsl@box:~$ sudo su
3. В результате приглашение примет такой вид: [/home/dsl]#
4. Здесь символ «#» в командной строке указывает на то, что вы
работаете как пользователь root.
5. Введите команду whoami (эта команда сообщает имя, с которым вы вошли в систему). Завершите работу пользователя root в системе. Для этого наберите в командной строке exit.
Задание 3. Добавьте в систему нового пользователя.
1. Войдите в систему под пользователем root.
2. Добавьте в систему пользователя с именем student (используйте команды useradd и passwd):
Useradd student
Passwd student
После ввода команды passwd student, на экране появится сообщение: Enter new password:
Вы должные задать пароль для пользователя (не менее 5 символов) и нажать <Enter>. Обратите внимание, что при вводе пароля он
не отображается на экране. После этого выведется сообщение:
Re-enter new password:
Вы должны еще раз ввести тот же самый пароль, который был
вами задан для пользователя student. После нажатия на клавишу
<Enter> на экран выведется: Password changed.
Итак, вы зарегистрировали нового пользователя в системе и задали ему пароль, теперь можно зайти под этим пользователем, воспользовавшись командой login: [home/dsl]# login Box login: student Password:
После ввода пароля вы увидите приглашение: student@tty0[/]$
3. Введите команду whoami и убедитесь в том, что вы зашли в
систему из-под пользователя student. Для завершения работы с пользователем воспользуйтесь командой logout.
Задание 4. Перейти в корневой каталог и просмотреть его содержимое.
1. Перейдите в корневой каталог.
2. Просмотрите его содержимое командой ls либо dir.
127
Задание 5. Ознакомьтесь с файловым менеджером Midnight
Commander.
1. Запустите оболочку Bash. Для этого щелкните по значку
ATerminal EJZ51 на рабочем столе.
2. Запустите программу Midnight Commander, используя команду mc.
Рассмотрим основные элементы окна этой оболочки. Большую
часть окна занимают левая и правая панели. Ниже этих панелей располагается строка, позволяющая вводить команды Linux. Еще ниже
располагается строка, содержащая краткое напоминание о назначении
функциональных («горячих») клавиш программы. В верхней части
окна располагается строка меню. Рассмотрим назначение некоторых
клавиш и клавиатурных команд, применяемых при работе с Midnight
Commander.
Таблица 3
Назначение клавиш оболочки Midnight Commander
Клавиши
TAB
F3
F4
F5
F6
F7
F8
F9
F10
CTRL+O
CTRL+U
Insert
серый плюс
Назначение
переключение между панелями
просмотр файла
редактирование файла
копирование файла
переименование (перемещение) файла
создание каталога
удаление файла
активизация меню
выход и командной оболочки
убрать обе панели
поменять панели местами
пометка файлов
выбор группы файлов (работает при включенном режиме
Num Lock)
Используя клавиши управления курсором, выберите подсветкой
каталог и раскройте его содержание, нажав клавишу <Enter>.
Перейдите в корневой каталог. Для того чтобы переходить в родительский каталог, необходимо выбирать подсветкой пункт /..
Перейдите в каталог /ramdisk.
128
Создайте в каталоге /ramdisk подкаталог student.
Скопируйте в каталог /ramdisk/student каталог ~home (он находится в корневом каталоге /) Выйдите из Midnight Commander, нажав
F10.
Задание 6. Навигация по файловой системе из командной
строки.
Запустите программу оболочку bash.
Зайдите в каталог /ramdisk/student с помощью команды cd:
dsl@box:~$ cd /ramdisk/student
dsl@box:/ramdisk/student$
Перейдите в корневой каталог:
dsl@box:/ramdisk/student$ cd /
dsl@box:/$
Перейдите в домашний каталог (домашний каталог обозначается
символом «тильда» ~): dsl@box:/$ cd ~ dsl@box:~$
Задание 7. Работа с текстовым редактором Vim.
Запустите программу оболочку bash. Перейдите в каталог
/ramdisk/student
Создайте в каталоге /ramdisk/student текстовый файл file1.txt:
dsl@box:/ramdisk/student$ vi file1.txt
Чтобы начать вводить текст, нажмите одну из клавиш a, i или o.
Для начала ввода текста можно также воспользоваться клавишей <Insert>. Напечатайте в текстовом файле в первой строке свою фамилию
и имя, номер группы. В последующих строках наберите произвольный
текст. В конце файла еще раз напечатайте свою фамилию и имя. Ввод
каждой из строк заканчивается нажатием клавиши <Enter>.
Сохраните файл и выйдите из текстового редактора. Для этого
сначала нажмите <Escape>; потом напечатайте :wq и нажмите <Enter>.
Просмотрите созданный вами файл. Для этого вновь выполните
команду cat:
dsl@box:/ramdisk/student$ catfile1.txt
Задание 8. Управление файлами.
Зайдите в каталог /ramdisk/student.
Переименуйте файл file1.txt в file.txt.
129
Создайте копию файла file.txt под именем file2.txt.
Удалите файл file.txt.
Найдите в файле file2.txt строки, содержащие ваше имя, и отобразите их на экране.
Задание 9. Задание прав доступа к файлам и каталогам.
Зайдите в каталог /ramdisk/student
Просмотрите, какие права установлены для файла file2.txt. Для
этого воспользуйтесь командой ls:
dsl@box:/ramdisk/student$ ls —lfile2.txt
-rw-rw-r-- 1 dsl staff 111 Nov 18 06:41file2.txt
Установите права для файла file2.txt следующим образом: владелец, группа и все остальные имеют право на запись, чтение и выполнение: dsl@box:/ramdisk/student$ Chmod 777 file2.txt
Задание 10. Получение справки по командам.
Откройте консоль.
Получите справку по команде cd. Для этого введите в командной
строке help cd. Аналогичным образом получите справку для команд:
dir, su, help.
Задание 11. Перезагрузка и выключение компьютера.
Перед выполнением задания покажите преподавателю результаты
вашей работы по заданиям 1–10.
Перезагрузите компьютер. Для этого откройте оболочку bash.
Зайдите под пользователем root. Введите в командной строке reboot.
Вновь запустите Linux. Откройте оболочку bash и выключите
компьютер командой halt.
Обеспечение безопасности
ОС семейства UNIX хранит следующую информацию о файлах:
имя файла, тип файла, размер файла, физическое расположение файла,
время последнего доступа, идентификаторы владельца, группы, права
доступа и др. Код, определяющий полномочия на доступ к файлу,
позволяет защитить его от несанкционированного доступа. Просмотреть права доступа к файлу можно командой ls с ключом l.
130
В таблице 4 приведены коды соответствия, определяющие полномочия на доступ к файлу.
Существует три категории пользователей:

владелец;

группа;

все остальные.
Таблица 4
Коды соответствия, определяющие полномочия на доступ к файлу
Двоичный код
0
1
2
3
4
5
6
7
Восьмеричный код
Код доступа
—
--x
-w-wx
r-r-x
rwrwx
000
001
010
011
100
101
110
111
Каждой категории пользователей можно читать, редактировать,
выполнять файл как программу. Для назначения прав каждой категории пользователей отведена тройка бит. Старший бит тройки отвечает
за чтение, второй – за редактирование, младший – за выполнение. Изменить код доступа к файлу можно командой chmod.
Спецификация команды:
chmod <код> <файлы>
Пример использования команды chmod:
chmod 777 myfile.com
В данном случае всем категориям пользователей разрешается выполнять все действия с этим файлом.
Вышеописанный способ называют абсолютным способом установки прав. Кроме того, можно воспользоваться и относительным
способом изменения прав на доступ к файлу. Для этого также используется команда chmod. Спецификация команды:
chmod <изменения> <файлы>
131
Изменения можно представить следующей формулой:
W op D,
где W принимает значения:
u – владелец; g – группа;
a – все; o – остальные.
op принимает значения:
+ – добавить; – - забрать, = – установить.
D принимает значения:
r – чтение;
w – редактирование;
x – выполнение.
Примеры:
chmod u+x file1 – добавить владельцу право на выполнение этого
файла.
chmod u+w g-r file2 – добавить владельцу право на редактирование этого файла, у группы забрать права на чтение.
chmod a+rwx file3 – всем категориям пользователей разрешить
все.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Войдите в систему непривилегированным пользователем.
2. Создайте в каталоге /home свой каталог.
3. Создайте в нем несколько файлов разными способами: CAT,
VI, TOUCH. Просмотрите содержимое каталога /home в длинном
формате. Определите права у каталогов и файлов, задаваемые системой по умолчанию (для каталога /home).
4. Измените права созданному каталогу: запретите пользователю
писать (использовать восьмеричный код для изменения прав). Просмотрите содержимое каталога /home в длинном формате. Убедитесь в
произведенном изменении.
5. Создайте в своем каталоге еще один файл. Объясните поведение системы. Измените права созданному каталогу: запретите всем
все (использовать восьмеричный код для изменения прав).
6. Просмотрите содержимое каталога /home в длинном формате.
Убедитесь в произведенном изменении.
7. Просмотрите содержимое своего каталога. Объясните поведение системы. Назначьте права созданному каталогу: разрешите поль132
зователю все, группе и всем остальным – только читать (использовать
относительные установки для изменения прав).
8. Просмотрите содержимое каталога /home в длинном формате.
Убедитесь в произведенном изменении.
9. Выполните пункты 6, 9 еще раз. Объясните поведение системы.
10. Измените права одному из созданных файлов: запретите пользователю писать (использовать восьмеричный код для изменения
прав).
11. Просмотрите содержимое своего каталога в длинном формате.
Убедитесь в произведенном изменении.
12. Откройте этот файл в текстовом редакторе VI. Добавьте в
файл дополнительную информацию. Выйдите из редактора с сохранением. Объясните поведение системы.
13. Измените права этому файлу: запретите всем все (использовать восьмеричный код для изменения прав).
14. Просмотрите содержимое своего каталога в длинном формате.
Убедитесь в произведенном изменении.
15. Отобразите содержимое этого файла (использовать, например,
команду CAT). Назначьте права созданному файлу: разрешите пользователю все; группе – читать и писать; всем остальным – только читать (использовать относительные установки для изменения прав).
16. Просмотрите содержимое своего каталога в длинном формате.
Убедитесь в произведенном изменении.
17. Переключитесь на другое терминальное устройство. Войдите в
систему суперпользователем. Создайте еще одного пользователя. Переключитесь на третье терминальное устройство. Войдите в систему
под именем вновь созданного пользователя.
18. Определите возможность этого пользователя работать с Вашими файлами. Переключитесь на первое терминальное устройство.
Измените одному из файлов пользовательскую принадлежность. Измените этому файлу групповую принадлежность.
19. Переключитесь на третье терминальное устройство. Определите возможность этого пользователя работать с Вашим файлом, для
которого Вы изменили пользовательскую принадлежность.
Контрольные вопросы
1. Какие основные каталоги содержаться в корневом каталоге в
Linux?
133
2. Какую команду необходимо использовать, чтобы просмотреть
содержимое каталога?
3. Как обозначаются родительский каталог и домашний каталог
пользователя? Какая команда используется для навигации по файловой системе?
4. Как запустить текстовый редактор vi? Какие клавиши нужно
нажать, чтобы начать вводить текст в этом текстовом редакторе? Как
сохранить текст и выйти из программы vi?
5. Как удалить всю строку целиком в текстовом редакторе vi?
Какие еще команды vi для работы с текстом вы знаете?
6. Как просмотреть содержимое текстового файла?
7. Какой командой осуществляется поиск в файле и вывод на
экран строк, содержащих заданный текст?
8. Какие существуют права доступа к файлам и каталогам? Как
задать права для файла, чтобы он был доступен только для чтения –
для всех пользователей; для выполнения и записи – только для владельца файла?
9. Как войти в систему Linux? Как добавить, удалить нового
пользователя?
10. Как завершить работу с системой Linux?
11. Для чего предназначена программа Midnight Commander?
12. Почему нужно быть особенно осторожным при работе в системе Linux под пользователем root?
13. Что означают права доступа к файлу, обозначенные числом
762? Какие команды нужно знать, чтобы добавить пользователя в систему? Как удалить пользователя в Linux?
134
ЛИТЕРАТУРА
1. Олифер В. Г., Олифер Н. А. Сетевые операционные системы.
СПб.: Питер, 2008. 669 с.
2. Таненбаум. Э. Современные операционные системы. 2-е изд.
СПб.: Питер, 2007. 1038 с.
3. Гордеев А. В. Операционные системы: Учебник для вузов. 2-е
изд. СПб: Питер, 2006. 416 с.
4. Основы операционных систем. Курс лекций. Учебное пособие
/ В. Е. Карпов, К. А. Коньков / Под редакцией В. П. Иванникова. М.:
ИНТУИТ.РУ 2008. 632 с.
5. Карп Д., О'Рейлли Т., Мотт Т. Windows XP. Справочник. 2-е
изд. СПб.: Питер, 2006. 784 с.
6. Ганс М. От Windows к Linux. М.: ООО «Бином-Пресс», 2006.
336 с.
7. Олифер Н. А., Олифер В. Г. Сетевые операционные системы
[Электронный
ресурс].
–
Режим
доступа:
http://www.citforum.ru/operating_systems/sos/contents.shtml.
8. Курячий Г. В., Маслинский К. А. Операционная система Linux
[Электронный ресурс]. Режим доступа: http://www.INTUIT.ru.
9. Основы операционных систем. Курс лекций. Учебное пособие
/ В. Е. Карпов, К. А. Коньков / Под редакцией В. П. Иванникова
[Электронный ресурс]. Режим доступа:. http://www.INTUIT.ru.
10. Основы операционных систем. Практикум. / В. Е. Карпов,
К. А. Коньков / Под редакцией В. П. Иванникова. [Электронный ресурс]. Режим доступа: http://www.INTUIT.ru.
11. Операционные системы: лабораторный практикум / сост. А.
А. Попов, А. В. Савенко, А. В. Шляпкин. Тольятти : Изд-во ПВГУС,
2012. 108 с.
135
Приложение 1
Перенаправление ввода-вывода команд ОС Windows
Операторы перенаправления ввода-вывода команд используются
для изменения местоположения потока ввода-вывода (дескриптора)
команды (табл. 1.1), заданного по умолчанию. По умолчанию, входные данные команды (дескриптор StdIn в табл. 1.2) отсылаются интерпретатору команд Cmd.exe с клавиатуры (стандартный вход), далее
интерпретатор команд отправляет выходные данные (дескриптор
StdOut в табл. 1.2) в окно командной оболочки (стандартный выход).
Таблица 1.1
Операторы перенаправления потоков ввода-вывода
№ п.п.
1.
Оператор
>
2.
<
3.
>>
4.
>&
5.
<&
6.
|
Описание
Вывод потока данных в
файл или на устройство
(принтер) вместо клавиатуры
Ввод потока входных
данных команды из файла вместо клавиатуры.
Добавляет выходные
данные в конец файла,
не удаляя из него при
этом существующей
информации
Считывает данные на
выходе одного дескриптора как входные данные
другого дескриптора
Считывает входные
данные одного дескриптора как выходные данные другого дескриптора
«Канал» – считывает
выходные данные одной
команды и записывает
их на вход другой команды
136
Пример
Dir>Dirlist.txt – вывод результата команды Dir в
текстовый файл Dirlist.txt
Sort<File.txt – ввод данных
команды Sort из файла
File.txt
Dir>>Dirlist.txt – добавление списка каталогов, созданного командой Dir, в
файл Dirlist.txt
>&3 – дублирование
определенного пользователем дескриптора 3 в
дескриптор 1
<&3 – дублирование
определенного пользователем дескриптора 3 в
качестве входной информации для дескриптора 0
dir | sort – сортирование
каталога
Для задания требуемого дескриптора перед оператором перенаправления ввода-вывода необходимо ввести его номер (табл. 1.2). Если дескриптор не задан, то по умолчанию оператором перенаправления ввода «<» будет ноль (0), а оператором перенаправления вывода
«>» будет единица (1). После ввода оператора «<» или «>» необходимо указать, откуда читать и куда записывать данные.
Таблица 1.2
Дескрипторы ввода-вывода
№
п.п.
1.
2.
3.
4.
StdIn
StdOut
StdErr
Числовой
эквивалент
0
1
2
Undefined
3-9
Дескриптор
Описание
Ввод с клавиатуры
Вывод в окно командной оболочки
Ошибка вывода в окно командной
оболочки
Эти дескрипторы определяются индивидуально для каждой прикладной
программы.
Комбинируя команды-фильтры (Приложение 2) с другими командами и именами файлов, можно создавать конвейеры команд. При использовании более одного фильтра в одной команде их необходимо
отделять с помощью «канала» ( | ). Например, следующий конвейер
ищет в каждом каталоге диска C файлы, в названии которых присутствует строка «Log», и выводит их постранично на экран:
Dir c:\ /s /b | Find "Log" | More
«Канал» указывает интерпретатору команд Cmd.exe, что выход
команды Dir нужно отправить команде-фильтру Find. Последняя выбирает только те имена файлов, в которых содержится строка «Log».
Команда More выводит на экран имена файлов, полученные командой
Find с паузой после заполнения каждого экрана.
Дополнительные сведения по перенаправлению ввода-вывода
можно получить в справке ОС Windows (Пуск | Справка и поддержка)
в разделе Использование операторов перенаправления команд.
137
Приложение 2
Команды-фильтры ОС Windows
Команда-фильтр используется с символом перенаправления «канала» ( | ) (Приложение 1) и является командой внутри команды, которая считывает результат на выходе другой команды, преобразовывает
его, а затем записывает на выход. Команды-фильтры дают возможность сортировать, просматривать и отбирать часть выходной информации других команд. Ниже перечислены команды-фильтры, доступные в ОС Windows.
Команды-фильтры ОС Windows
№
п.п.
1.
More
2.
Find
3.
Sort
Команда
Описание
Отображает содержимое файла или результаты на выходе команды в одном окне командной оболочки
Осуществляет поиск указанных символов в файлах и в
результатах на выходе команды.
Сортировка файлов и данных на выходе команды по алфавиту.
Для перенаправления данных из файла на вход команды-фильтра
используется символ «меньше» (<). Для перенаправления данных с
выхода другой команды на вход команды-фильтра используется «канал» ( | ).
Например, чтобы отобразить содержимое файла List.txt в одном
окне командной строки за один раз, введите следующую команду:
More < List.txt
Отображается одно окно командной оболочки с содержимым
файла, а затем в нижней части окна отображается строка --More--. Для
перехода к ледующему окну командной строки, нажмите любую клавишу на клавиатуре, кроме клавиши PAUSE. Для остановки листинга
следует нажать комбинацию клавиш CTRL+C.
Команда-фильтр More полезна при работе с командами, создающими выход более одного окна командной оболочки. Например, в
случае, когда вывод дерева каталогов жесткого диска с помощью команды Tree занимает больше, чем может быть одновременно выведе-
138
но (более одного окна командной оболочки), то можно использовать
эту команду с «каналом» ( | ) и командой More:
Tree c:\ | More
В результате на экран будет выведено первое окно командной
оболочки с результатами выхода команды Tree, а затем отобразится
строка --More-- и будет ожидаться нажатие любой клавиши для продолжения (кроме клавиши PAUSE).
Команда-фильтр Find проводит поиск заданной строки или текста
в файлах. Командный интерпретатор Cmd.exe отображает каждую
строку, которая совпадает со строкой или текстом. Команда Find может быть использована как команда-фильтр и как обычная команда
ОС Windows. Дополнительные сведения об использовании команды
Find в качестве стандартной, а также примеры ее использования доступны в справке ОС Windows (Пуск | Справка и поддержка) в соответствующем разделе. Справку также можно получить, набрав в окне
командной оболочки строку Find /? и нажав Enter для ввода.
Чтобы использовать команду Find в качестве команды-фильтра,
необходимо включить символ «меньше» (<) и строку или текст, в котором требуется выполнить поиск. По умолчанию при поиске команда
Find учитывает регистр.
Find "Pacific Rim" < Trade.txt –
осуществляется поиск строки "Pacific Rim" в файле Trade.txt.
Для сохранения результатов работы команды Find в определенном файле, перенаправьте вывод посредством символа «больше» (>) и
задавайте имя файла:
Find "Pacific Rim" < Trade.txt > Nwtrade.txt
Команда-фильтр Sort выполняет сортировку по алфавиту текстового файла или результатов на выходе команды. Следующая команда
сортирует содержимое файла List.txt и отображает результаты в окне
командной оболочки:
Sort < List.txt
В этом примере команда Sort сортирует строки файла List.txt в
алфавитном порядке и выводит результат на экран без изменения
139
файла. Для сохранения результатов работы команды Sort в определенный файл, необходимо ввести символ «больше» (>) и имя файла, как
показано ниже:
Sort < List.txt > Alphlist.txt
Для сортировки результатов поиска следует ввести команду Find,
затем символ ( | ) и команду Sort. Например, сортировка строк в алфавитном порядке, содержащих слово "Jones" осуществляется следующим образом:
Find "Jones" Maillst.txt | Sort
140
Приложение 3
Образец оформления титульного листа
отчета по лабораторной работе
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФГБОУ ВПО «СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ
ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)»
Кафедра автоматизированной обработки информации
ОТЧЕТ
по лабораторной работе № 3
«Организация пакетных файлов и сценариев в ОС Windows»
по курсу «Операционные системы»
Выполнил:
____________________
Проверил:
____________________
Владикавказ 201__
141
Download