;doc

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)
Кафедра автоматизированной обработки информации
ОПЕРАЦИОННЫЕ СИСТЕМЫ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторным работам
для студентов направления 230100.62
«Информатика и вычислительная техника»
ВЛАДИКАВКАЗ 2013
С о с т а в и т е л ь: доцент, к.т.н.
Будаева А.А.
Методические указания к лабораторным работам по дисциплине «Операционные системы»
по направлению 230100.62 «Информатика и вычислительная техника» предназначены для
студентов 2 курса при
выполнении лабораторных работ по дисциплине.
Оглавление
Введение ............................................................................................................................................. 4
Лабораторная работа №1. Установка современной операционной системы Windows.
Состав системного программного обеспечения ОС Windows.......... 5
Лабораторная работа №2. Управление вводом/выводом в ОС Windows.
Работа с командной строкой. ............................................................ 17
Лабораторная работа №3. Организация пакетных файлов и сценариев в ОС Windows .......... 24
Лабораторная работа №4.Установка операционной системы Linux .......................................... 44
Лабораторная работа №5 Терминал и командная оболочка операционной системы Linux ... 52
Лабораторная работа №6 Работа с файловой системой ОС Linux ............................................. 56
Лабораторная работа №7 Процессы в операционной системе Linux ........................................ 70
Лабораторная работа № 8 Организация ввода-вывода в ОС Linux ........................................... 76
Лабораторная работа №9. Управление пользователями и обеспечение безопасности
в ОС Linux ........................................................................................... 88
Список литературы .......................................................................................................................... 97
Приложение 1. Перенаправление ввода-вывода команд ОС Windows....................................... 98
Приложение 2. Команды-фильтры ОС Windows ........................................................................ 100
Приложение 3. Пример оформления отчета по лабораторной работе...................................... 102
Введение
Дисциплина «Операционные системы» изучается студентами, обучающимися по
направлению 230100.62 «Информатика и вычислительная техника» в 4 семестре.
Основными задачами, которые решает выполнение лабораторного практикума,
являются:
- формирование систематизированного представления о концепциях, принципах и
моделях, положенных в основу построения операционных систем;
- получение практической подготовки в области выбора и применения
операционных систем для задач автоматизации обработки информации и
управления, а также программирования в современных операционных средах;
- приобретение навыков и умений установки и настройки современных
операционных систем - как коммерческих (Microsoft Windows), так и
распространяемых на основе открытой лицензии (Linux).
Лабораторное занятие включает в себя следующие этапы:
постановка задачи для выполнения лабораторной работы, включая краткие
теоретические сведения по рассматриваемому вопросу, обсуждение методики
выполнения работы;
ответы на вопросы студентов;
осуществление допуска студентов к выполняемой лабораторной работе
посредством обсуждения теоретических вопросов по теме занятия;
непосредственное выполнение лабораторной работы;
подготовка студентами отчетов по выполняемой лабораторной работе;
защиту студентами лабораторной работы.
Все лабораторные работы выполняются на компьютерах, подключенных к
вычислительной сети СКГМИ (ГТУ) и к Internet. Для обеспечения возможности установки,
настройки и исследования операционных систем используются виртуальные машины,
создаваемые индивидуально каждым обучающимся.
Используются активные методы обучения: учебный диалог, дискуссии на заданные
темы, обсуждение результатов выполненных лабораторных работ.
Пособие содержит список рекомендованной литературы и контрольные вопросы по
каждому разделу.
5
Лабораторная работа №1.
Установка современной операционной системы Windows.
Состав системного программного обеспечения ОС Windows
Цель работы:
1) Приобрести опыт установки современной операционной системы Windows.
2) Ознакомиться на практике с основными группами программ, входящих в системное
программное обеспечение.
План проведения занятия:
1. Ознакомиться с программным обеспечением VirtualBox.
2. Создать виртуальную машину исходя из предоставленной информации о
минимальных аппаратных требований предлагаемой к установке и изучению
операционной системы (ОС).
3. Установить ОС на виртуальный компьютер. Разобрать процесс установки ОС на
этапы.
4. Познакомиться с основными группами программ входящих в состав ОС.
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: программа VirtualBox, установочный диск либо образ диска с ОС
Windows Seven, текстовый процессор Microsoft Word.
Краткие теоретические сведения:
Операционная система — комплекс программ, обеспечивающий управление
аппаратными средствами компьютера, организующий работу с файлами и выполнение
прикладных программ, осуществляющий ввод и вывод данных.
Общими словами, операционная система — это первый и основной набор программ,
загружающийся в компьютер. Помимо вышеуказанных функций ОС может осуществлять и
другие, например предоставление общего пользовательского интерфейса и т.п.
Сегодня наиболее известными операционными системами являются ОС семейства
Microsoft Windows и UNIX-подобные системы. Основные функции операционных систем:
- Загрузка приложений в оперативную память и их выполнение.
- Стандартизованный доступ к периферийным устройствам (устройства вводавывода).
- Управление оперативной памятью (распределение между процессами,
виртуальная память).
- Управление доступом к данным на энергонезависимых носителях (таких как
жёсткий диск, компакт-диск и т. д.), организованным в той или иной файловой
системе.
- Пользовательский интерфейс.
- Сетевые операции, поддержка стека протоколов. Дополнительные функции:
- Параллельное или псевдопараллельное выполнение задач (многозадачность).
- Взаимодействие между процессами: обмен данными, взаимная синхронизация.
- Защита самой системы, а также пользовательских данных и программ от
действий пользователей (злонамеренных или по незнанию) или приложений.
- Разграничение прав доступа и многопользовательский режим работы
(аутентификация, авторизация).
Microsoft Windows - семейство операционных систем компании (Майкрософт). Работает на
платформах Intel, AMD, а также на процессорах VIA и других, за некоторыми
исключениями. Поклонники OS/2, AmigaOS, Mac OS, Solaris, Linux и UNIX критикуют все
6
версии Windows с момента появления системы на рынке. Однако последние 10 лет Windows
- самая популярная операционная система для настольных компьютеров на процессорах
семейства x86. В большей части этот успех обеспечен рыночной политикой, которая также
критикуется. Существует два специфических ответвления в семействе ОС
Windows - ОС реального времени, предназначенная для управления промышленными
оборудованием, создаётся как урезанная версия Windows NT или XP.
Windows Mobile (Ранее WinCE) - служит для управления карманными компьютерами,
комуникаторами и сотовыми телефонами.
Windows 7 — операционная система семейства Windows NT, следующая за Windows
Vista.
В линейке 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 (рис. 1).
2. Для создания новой виртуальной машины нажимаем кнопку «Создать». Будет запущен
мастер создания новой виртуальной машины.
3. В последующем диалоговом окне указываем имя будущей машины а также тип
операционной системы (рис. 2). У нас должно быть указано:
• Операционная система Microsoft Windows;
• Версия Windows 7.
В качестве имени следует указать группу и номер(а) студентов согласно журнала
преподавателя. Пример: bi301_2_3_5, «bi301» - группа, «2_3_5» - номера студентов, «_» универсальный разделитель.
7
Рис. 1. Главное окно программы Virtual Box.
Рис. 2. Окно ввода имени машины и выбора типа ОС.
4. В следующем диалоговом окне необходимо указать объем оперативной памяти (ОП)
будущей машины (рис. 3). Согласно минимальным системным требованиям размер ОП
не должен быть меньше 512 Mb, и об этом нам сообщает программа VirtualBox выставляя
512 Mb как рекомендуем размер ОП. Максимальный размер
ОП виртуальной машины полностью зависит от аппаратной ОП физической машины
(объем можно уточнить у администратора компьютерной лаборатории или
преподавателя). При физическом объеме 1024 Mb, укажем размер для виртуальной
машины 600 Mb.
8
Рис. 3. Диалоговое окно «Память».
5. В следующем диалоговом окне необходимо объем жесткого диска будущем машины.
Исходя из минимальных требований 16 Gb., что равно 16384 Mb. Но так как размер
жесткого диска позволяет нам использовать больший размер (посоветуйтесь с
администратором компьютерной лаборатории или преподавателем) воспользуемся
рекомендуемым параметром программы VirtualBox значение 20480
Mb. (рис. 4).
Рис. 4. Диалоговое окно «Виртуальный жесткий диск».
Параметры должны быть указаны в соответствии с данными на рис. 4. 6. В последующем
диалоге по созданию жесткого диска следует указать тип файла образа. Тип должен
соответствовать данным рис. 5.
9
Рис. 5. Тип файла жесткого диска.
7. В окне «Местоположение и размер виртуального диска» (рис. 6) Расположение должно
соответствовать имени машины (рис. 2), а также предоставлена возможность менять
размер виртуального жесткого диска, но как было решено в п. 5. размер остается без
изменений.
Рис. 6. Диалоговое окно «Местоположение и размер виртуального диска».
8. После двукратного подтверждения создания жесткого диска и виртуальной машины она
появляется в главном окне программы VirtualBox в списке виртуальных машин. Но все
же это не значит что она уже полностью готова к установке ОС (рис. 7).
10
Рис. 7. Главное окно программы VirtualBox.
9. А именно нашей виртуальной машине следует:
1) Включить ЭБ-ускорение;
2) Увеличить размер видео памяти;
3) Отключить Сетевой адаптер (за ненадобностью);
4) Отключить Аудио-контроллер (за ненадобностью);
5) Подключить физический или виртуальный образ DVD-диска (уточните у
преподавателя или администратора компьютерной лаборатории).
1) Для изменения данных параметров нажмем кнопку «Свойства»
(рис. 8). Согласно
пункта 1 списка вносимых изменений, ставим «галку» напротив «Включить ЭБускорение» и согласно пункта 2 меняем объем видео памяти на 64 Mb.
2) Далее переходим к пункту Э списка изменений, а именно отключаем сетевой адаптер.
Для этого в левом меню окна «Свойства» (рис. 8) нажимаем пункт «Сеть» (рис 9).
Рис. 9. Параметры «Сеть».
11
Рис. 8. Содержимое окна «Свойства».
Соответственно, напротив пункта «Включить сетевой адаптер» снимаем «галочку».
3) Пункт 4 списка вносимых изменений, а именно отключение аудио-контроллера
необходимо проделать подобно пункту 3, отключение сетевого адаптера.
4) Далее рассматриваем пункт 5, а именно подключение физического или виртуальный
образа DVD-диска. Для этого в левом меню окна «Свойства» (рис. 8) нажимаем пункт
«CD/DVD-ROM» (рис.10).
Рис. 10. Параметры «CD/DVD-ROM».
Активируем меню с выбором между пунктами «Физический CD/DVD-привод» и «Файл
ISO-образа» установкой «галочки» у пункта «Подключить CD/DVD». Предварительно
уточнив у преподавателя или администратора компьютерного зала об источнике установки.
Если будет выдан физический диск, то, его следует установить в привод, и
соответственно активировать пункт «Физический CD/DVD-привод» (рис.10). Проследите,
чтобы буквенный идентификатор соответствовал тому, в который установлен диск.
Если для установки будет использоваться ISO-образ диска, то, прежде всего, уточните,
где он именно расположен, так как выполнять установку с сетевых ресурсов строго
12
запрещено! Образ диска обязательно должен находиться непосредственно на жестком диске
компьютера, за которым вы работаете. После того как уточнили местонахождение образа,
нажмите кнопку «Открыть» у строчки с пунктом «Файл ISO-образа» появиться диалоговое
окно менеджера виртуальных носителей (рис. 11).
Рис. 11. Менеджер виртуальных носителей
•
•
Если на момент работы в нет ни одного образа, то следует его добавить, нажав
кнопку «Добавить» в верней панели менеджера. В следующем диалоговом окне
необходимо только проложить путь к образу.
После добавления образа в список менеджера виртуальных носителей, необходимо
выбрать его и нажать кнопку «Выбрать».
10. Подтвердите все сделанные изменения нажатием кнопки «Ok» окна «Свойства» (рис. 8).
11. Теперь можно переходить к установке ОС Windows 7 на виртуальную машину. Для этого
выбираем машину слева в списке виртуальных машин главного окна программы
VirtualBox (рис. 1) нажимаем кнопку «Старт» верхнем меню над списком.
12. Установка ОС начинается с загрузки файлов. После чего необходимо подождать
некоторое время.
13. Далее появиться окно с выбором языка, на котором будет работать наша ОС,
соответственно выбираем «Мой язык - русский» (Рис. 12).
Рис. 12. Окно выбора языка работы ОС.
13
14. В следующем окне необходимо еще раз подтвердить язык работы ОС, формат времени,
денежных единиц и раскладку клавиатуры или метода ввода (рис. 13).
Рис. 13. Окно выбора формата времени и раскладку клавиатуры ОС.
15. Нажимаем «Далее», в следующем окне нажимаем «Установить».
16. В течение нескольких секунд появиться окно выбора операционных систем. Это делается
для того, чтобы у администратора была возможность устанавливать ОС Windows 7
различной комплектации и различной производительности и, как правило, коммерческой
стоимости выдаваемой лицензии на установку. Это могут быть такие версии Windows 7
как:
• Starter,
• Home Basic;
• Home Premium;
• Professional;
• Ultimate.
Выбираем операционную систему архитектуры x86 (рис. 14).
Рис. 14. Окно выбора операционных систем.
14
17. В следующем окне необходимо принять условия лицензионного соглашения, читаем,
ставим «галочку» и нажимаем «Далее».
18. Следующее окно, окно выбора типа установки (рис. 15).
Рис. 15. Окно выбора типа установки.
19. Выберем пункт "Полная установка".
20. В следующем окне необходимо выбрать раздел для установки Windows (рис. 16).
Рис. 16. Окно выбора раздела для установки Windows. 21. Выберем нужный раздел и
нажимаем "Настройка диска". Выпадает меню (рис. 17).
15
21. Нажмите «Создать», а затем «Применить».
Далее будет выведено сообщение «Чтобы обеспечить корректную работу всех своих возможностей
Windows может создавать дополнительные разделы для системных файлов». Конечно,
желательно согласиться, нажимаем «Ok». Это сообщение предвестник того, что мы увидим в
последствии (рис. 18).
Рис. 17. Меню «Настройка диска».
Рис. 18. Разделы для установки
Как можно заметить, 100 Mb, было зарезервировано системой, в системе мы его уже не
увидим.
24. Нажмите кнопку «Далее» и начнется процесс установки (рис. 19).
Рис. 19. Окно установки Windows.
16
25. В остальном процесс установки автоматизирован, и участие пользователя будет
необходимо только на этапе написания имени пользователя ОС (рис. 20).
Рис. 20. Ввод имени пользователя.
Ввод пароля в нашем случае совсем необязателен, но желателен. В случае ввода пароля
студент несет ответственность за его сохранность, и в случае утраты пароля преподаватель
или администратор компьютерной лаборатории оказать помощь в его восстановлении не
смогут.
26. Поле ввода серийного номера оставляем пустым для 30-дневной пробной версии.
27. Все последующие диалоговые окна могут заполняться пользователем самостоятельно
ощутимого отрицательного воздействия на работу ОС в случае ошибки уже не будет.
28. После очередной перезагрузки система будет установлена, и готова к работе.
29. Установите дополнения к гостевой операционной системе, нажав в главном меню
VirtualBox, «Устройства» > «Установить дополнения гостевой ОС»
30. Рассмотрите программы входящие в состав операционной системы.
31. Подготовьте отчет для преподавателя о выполнении лабораторной работы, сдайте в
соответствии с графиком.
Контрольные вопросы:
1. Что такое операционная система?
2. Перечислите основные функции операционных систем.
3. Перечислите основные версии операционных систем семейства Windows.
4. Перечислите минимальные и рекомендуемые требования ОС Windows 7.
5. Расскажите о отличиях ОС Windows 7 от других операционных систем Windows.
Литература 1,3,4
17
Лабораторная работа №2.
Управление вводом/выводом в ОС Windows. Работа с
командной строкой.
Цель работы:
1) Приобретение практических навыков работы с командной строкой ОС Windows
2) Практическое знакомство с управлением вводом/выводом в операционных системах
Windows и кэширования операций ввода/вывода.
3) Изучение основных команд для управления дисками и файлами.
План проведения занятия:
1. Ознакомиться с краткими теоретическими сведениями.
2. Ознакомиться с назначением и основными функциями Диспетчера задач Windows.
3. Приобрести навыки применения командной строки Windows. Научиться запускать
останавливать и проверять работу процессов.
4. Сделать выводы о взаимосвязи запушенных процессов и оперативной памятью
компьютера.
5. Подготовить отчет для преподавателя о выполнении лабораторной работы и
представить его в соответствии с графиком.
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: ОС Windows 7, текстовый процессор Microsoft Word.
Краткие теоретические сведения:
Необходимость обеспечить программам возможность осуществлять обмен данными с
внешними устройствами и при этом не включать в каждую двоичную программу
соответствующий двоичный код, осуществляющий собственно управление устройствами
ввода/вывода, привела разработчиков к созданию системного программного обеспечения и, в
частности, самих операционных систем.
Программирование задач управления вводом/выводом является наиболее сложным и
трудоемким, требующим очень высокой квалификации. Поэтому код, позволяющий
осуществлять операции ввода/вывода, стали оформлять в виде системных библиотечных
процедур; потом его стали включать не в системы программирования, а в операционную
систему с тем, чтобы в каждую отдельно взятую программу его не вставлять, а только
позволить обращаться к такому коду. Системы программирования стали генерировать
обращения к этому системному коду ввода/вывода и осуществлять только подготовку к
собственно операциям ввода/вывода, то есть автоматизировать преобразование данных к
соответствующему формату, понятному устройствам, избавляя прикладных программистов
от этой сложной и трудоемкой работы. Другими словами, системы программирования
вставляют в машинный код необходимые библиотечные подпрограммы ввода/вывода и
обращения к тем системным программным модулям, которые, собственно, и управляют
операциями обмена между оперативной памятью и внешними устройствами.
Таким образом, управление вводом/выводом — это одна из основных функций
любой ОС. Одним из средств управления вводом/выводом, а также инструментом
управления памятью является диспетчер задач Windows, он отображает приложения,
процессы и службы, которые в текущий момент запущены на компьютере. С его помощью
можно контролировать производительность компьютера или завершать работу приложений,
которые не отвечают.
18
При наличии подключения к сети можно также просматривать состояние сети и
параметры ее работы. Если к компьютеру подключились несколько пользователей, можно
увидеть их имена, какие задачи они выполняют, а также отправить им сообщение.
Также управлять процессами можно и «вручную» при помощи командной строки.
•
•
•
•
•
Команды Windows для работы с процессами:
at - запуск программ в заданное время
Schtasks - настраивает выполнение команд по расписанию
Start - запускает определенную программу или команду в отдельном окне.
Taskkill - завершает процесс
Tasklist - выводит информацию о работающих процессах
•
•
•
•
•
•
•
•
Команды для работы с файлами
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.
2. Запуск диспетчера задач можно осуществить двумя способами:
1) Нажатием сочетания клавиш Ctrl+Alt+Del. При использовании данной
команды не стоит пренебрегать последовательностью клавиш. Появится меню,
в котором курсором следует выбрать пункт «Диспетчер задач».
2) Переведите курсор на область с показаниями системной даты и времени и
нажмите правый клик, будет выведено меню, в котором следует выбрать
«Диспетчер задач».
3. Будет выведено окно как на рис. 21.
19
Рис. 21. Диспетчер задач Windows 7.
4. В диспетчере задач есть 6 вкладок:
1) Приложения
2) Процессы
3) Службы
4) Быстродействие
5) Сеть
6) Пользователи
o Вкладка «Приложения» отображает список запущенных задач (программ)
выполняющиеся в настоящий момент не в фоновом режиме, а также отображает их
состояние. Также в данном окне можно снять задачу переключиться между задачами
и запустить новую задачу при помощи соответствующих кнопок.
o Вкладка «Процессы» отображает список запущенных процессов, имя пользователя
запустившего процесс, загрузку центрального процессора в процентном
соотношении, а также объем памяти используемого для выполнения процесса. Также
присутствует возможность отображать процессы всех пользователей, либо
принудительного завершения процесса. Процесс — выполнение пассивных
инструкций компьютерной программы на процессоре ЭВМ.
o Вкладка «Службы» показывает, какие службы запущены на компьютере. Службы —
приложения, автоматически запускаемые системой при запуске ОС Windows и
выполняющиеся вне зависимости от статуса пользователя.
o Вкладка «Быстродействие» отображает в графическом режиме загрузку процессора, а
также хронологию использования физической памяти компьютера. Очень
эффективным инструментом наблюдения является «Монитор ресурсов». С его
помощью можно наглядно наблюдать за каждой из сторон «жизни» компьютера.
Подробное изучение инструмента произвести самостоятельно, интуитивно.
o Вкладка «Сеть» отображает подключенные сетевые адаптеры, а также сетевую
активность.
o Вкладка «Пользователи» отображает список подключенных пользователей. 5. После
изучения диспетчера задач:
20
o Потренируйтесь в завершении и повторном запуске процессов. o Разберите
мониторинг загрузки и использование памяти.
o Попытайтесь запустить новые процессы при помощи диспетчера, для этого можно
использовать команды: cmd, msconfig.
Задание 2. Работа с процессами через командную строку Windows.
1. Для запуска командной строки в режиме Windows следует нажать:
Пуск \ Все программы \ Стандартные \ Командная строка
2. Перейдите в папку C:\Windows и просмотрите его содержимое.
3. Поработайте над выполнением основных команд работы с процессами: запуская,
отслеживая и завершая процессы. Основные команды:
a. Schtasks - выводит выполнение команд по расписанию
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.
• Введите фрагмент текста с клавиатуры, используя ее источник Con, в текстовый
файл, путь к которому задайте самостоятельно. Признаком конца ввода строки
является Enter. Признаком конца ввода текста в файл являются нажатые клавиши
Ctrl+Z и Enter.
21
•
Добавьте несколько строк с клавиатуры в конец существующего текстового файла,
полученного в предыдущем пункте текущего задания.
4.2. Команда Xcopy
• Ознакомьтесь со справкой по команде Xcopy.
• Скопируйте все файлы и подкаталоги, включая пустые и скрытые, расположенные в
месте, путь к которому задайте самостоятельно, в точку назначения на другом
локальном диске. При этом инициируйте запрос на подтверждение перезаписи.
• Скопируйте дерево каталогов, включая пустые, расположенные в месте, путь к
которому задайте самостоятельно, в точку назначения на другом локальном диске.
• Скопируйте все файлы с атрибутами «архивный» и «только для чтения» с
сохранением этого атрибута для файлов-результатов, расположенные в месте, путь к
которому задайте самостоятельно, в точку назначения, заданную путем d:\Temp\.
• Скопируйте все файлы и подкаталоги с датой не позднее определенной. Путь
к источнику и точке назначения задайте самостоятельно. Отобразите список файлов в
процессе копирования.
4.3. Команда Move
• Ознакомьтесь со справкой по команде Move.
• Скопируйте пять любых файлов с определенным расширением, расположенные в
месте источника, путь к которому выберите самостоятельно, в точку назначения,
заданную путем d:\Temporary\. При копировании воспользуйтесь любым методом,
изученным ранее.
• Используя команду Move
• Воспользовавшись командой единожды, переместите все только что скопированные
файлы, заданные путем d:\Temporary\, обратно в место источника. При этом
инициируйте вывод запроса на подтверждение перезаписи.
4.4. Команда Replace
• Ознакомьтесь со справкой по команде Replace.
• Скопируйте три любых файла, расположенные в месте каталога - источника, путь к
которому выберите самостоятельно, в каждый из двух каталогов-назначения,
заданных следующими путями 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)
22
•
•
Измените типы всех скопированных файлов, заданных путем d:\Temp\, на другой,
выбранный самостоятельно тип.
Переименуйте все файлы, заданные путем d:\Temp\, в файлы с именами
Renamed1.Ren, Renamed2.Ren, … , Renamed5.Ren.
4.6. Команда Fc
• Ознакомьтесь со справкой по команде Fc.
• Используя команду Fc
• Сравните два текстовых файла, пути к которым задайте самостоятельно. Результат
сравнения выведите в файл Result.txt
• Сравните два бинарных файла, пути к которым задайте самостоятельно. Результат
сравнения добавьте в файл Result.txt
4.7. Команда Del (Delete) и Erase
o Ознакомьтесь со справкой по команде Del (Delete) и Erase.
o Скопируйте все файлы, расположенные в месте, путь к которому выберите
самостоятельно, в точку назначения, заданную путем d:\Temp\. При
копировании воспользуйтесь любым методом, изученным ранее.
o Используя команду Del (Delete) и Erase
o Удалите выбранный самостоятельно файл, заданный путем d:\Temp\, запросив
подтверждение на удаление.
o Удалите все файлы с атрибутом «Системный», расположенные в месте,
заданном путем d:\Temp\. Подтверждение на удаление не выводить.
o Удалите все файлы с определенным расширением, расположенные в месте,
заданном путем d:\Temp\, запросив подтверждение на удаление.
o Удалите все оставшиеся файлы, включая каталоги, расположенные в месте,
заданном путем 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\.
• Перейдите из подкаталога ..\Video на уровень выше.
• Смените текущий каталог на каталог, полный путь к которому задан следующим
образом C:\WINDOWS\Help\Tours\WindowsMediaPlayer\Audio\.
23
•
•
Перейдите из подкаталога …\Audio на два уровня выше.
Смените текущий локальный диск на диск D:
5.3. Команда Md (MkDir)
• Ознакомьтесь со справкой по команде Md (MkDir).
• Используя команду Md (MkDir)
• Создайте каталог, путь к которому выберите самостоятельно.
• Единожды воспользовавшись командой, создайте каталог, полный путь к которому
задан следующим образом d:\Temp\VMGroup\MyPath\.
5.4. Команда Rd (RmDir)
• Ознакомьтесь со справкой по команде Rd (RmDir).
• Используя команду Rd (RmDir)
• Удалите подкаталог третьего уровня MyPath, созданный в предыдущем задании №1к.
• Скопируйте несколько файлов, расположенных в месте, путь к которому выберите
самостоятельно, в точку назначения, заданную путем d:\Temp\VMGroup\. При
копировании воспользуйтесь любым методом, изученным ранее. Единожды
воспользовавшись командой, без запроса подтверждения удалите дерево каталогов
d:\Temp\VMGroup\, включая подкаталог второго уровня VMGroup с содержащимися
внутри файлами.
5.5. Команда Format
• Ознакомьтесь со справкой по команде Format.
• Для форматирования используйте USB - диск.
• Используя команду Format
• Отформатировать диск с использованием размера кластера по умолчанию.
• Повторно быстро отформатируйте ранее отформатированный гибкий
находящийся в накопителе.
диск,
5.6. Команда Label
• Ознакомьтесь со справкой по команде Label.
• Отобразите метку тома, по умолчанию присвоенную диску, находящемуся в
накопителе.
• Присвойте новую метку тома диску.
• Отобразите новую метку тома диска.
Контрольные вопросы:
1. Дайте понятие процессу в операционной системе.
2. Дайте понятие службе в операционной системе.
3. Перечислите основные команды работы с процессами при помощи командной строки.
4. Что такое «файл»?
5. Перечислите основные типы файлов.
6. Перечислите основные расширения файлов.
7. Расскажите о процессе монтирования файловой системы.
8. Перечислите основные команды работы с файлами и дисками при помощи командной
строки.
Литература 1,3,4
24
Лабораторная работа №3.
Организация пакетных файлов и сценариев в ОС Windows
Цель работы:
1) Приобретение практических написания пакетных файлов ОС Windows
2) Практическое знакомство с управлением вводом/выводом в операционных системах
Windows и кэширования операций ввода/вывода.
3) Изучение основных команд для управления дисками и файлами.
План проведения занятия:
1. Ознакомиться с краткими теоретическими сведениями.
2. Ознакомиться с назначением и основными принципами написания командных
файлов.
3. Изучить основные команды командных файлов и работу с параметрами.
4. Подготовить отчет для преподавателя о выполнении лабораторной работы и
представить его в соответствии с графиком.
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: ОС Windows 7, текстовый процессор Microsoft Word.
Краткие теоретические сведения:
1. Общие сведения о пакетных файлах и сценариях
Пакетный файл – это неформатированный текстовый файл ASCII, содержащий одну или
несколько команд ОС.
Имена пакетных файлов имеют расширения .cmd или .bat. ОС при работе с пакетным
файлом последовательно обрабатывает его команды после ввода его имени в строке
командной оболочки или запуска из другой программы.
Сценарий – это программа, состоящая из набора инструкций для работы приложения или
служебной утилиты. Сценарий – разновидность пакетного файла. Инструкции в сценариях
обычно выражаются с использованием правил и синтаксиса соответствующего приложения
или служебной утилиты в сочетании с простыми управляющими операторами, такими как
операторы циклов и условные операторы.
Пакетные файлы и сценарии часто называют командными файлами, содержащими любые
команды. Некоторые команды, такие как For, Goto и If, позволяют выполнять обработку
условий в пакетных файлах. Другие команды позволяют управлять вводом и выводом, а
также запускать другие пакетные файлы.
При организации пакетных файлов и сценариев применяют переменные, задающие
поведение командной оболочки или ОС и пакетные параметры командного
интерпретатора, которые используются в пакетном файле для получения информации о
настройках среды.
Поведение среды командной оболочки или всей ОС задают с помощью двух типов
переменных среды: системных и локальных.
• Системные переменные определяют поведение глобальной среды ОС.
• Локальные переменные определяют поведение среды в конкретном экземпляре
командного интерпретатора Cmd.exe.
Системные переменные среды задаются заранее в ОС Windows XP и доступны для всех ее
процессов. Только пользователи с привилегиями администратора могут изменять эти
переменные.
Локальные переменные среды доступны в случае, когда пользователь, для которого они
были созданы, входит в систему. В частности, локальные переменные реестра
25
HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют
поведение глобальной среды ОС.
В следующем списке представлены различные типы переменных в порядке убывания их
приоритета:
1. встроенные системные переменные,
2. системные переменные реестра HKEY_LOCAL_MACHINE,
3. локальные переменные реестра HKEY_CURRENT_USER,
4. все переменные среды и пути, указанные файле Autoexec.bat,
5. все переменные среды и пути, указанные в сценарии входа в систему, если он
имеется,
6. переменные, используемые интерактивно в пакетном файле или сценарии.
Чтобы иметь возможность подставить значение в переменную среды из командной строки
или в пакетном файле (сценарии), следует заключить имя соответствующей переменной
(Приложение 1) в символы процентов (%), например Set MyPath=%CD%. Символы
процентов указывают на то, что командный интерпретатор должен обратиться к значению
переменной без посимвольного ее разложения и сравнения.
Командный интерпретатор 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 можно заменить другими значениями
пакетных параметров.
Таблица 1. Модификаторы и выполняемые ими действия
№
п.п.
1
2
3
4
5
6
7
8
9
Модификатор
Описание
%~1
%~f1
%~d1
%~p1
%~n1
%~x1
%~s1
%~a1
%~t1
расширение %1 и удаление любых кавычек (" ")
замена %1 полным путем
замена %1 именем диска
замена %1 путем
замена %1 именем файла
замена %1 расширением имени файла
замена путем, содержащим только короткие имена
Замена %1 атрибутами файла
замена %1 датой и временем модификации файла
26
замена %1 размером файла
поиск в каталогах, перечисленных в переменной среды PATH,
замена %1 полным именем первого найденного файла. Если
11
переменная среды не определена или поиск не обнаружил файлов,
модификатор выдает пустую строку.
Таблица 2. Комбинации модификаторов и квалификаторов
10
%~z1
%~$PATH:1
№
п.п.
1
2
Модификатор
Описание
замена %1 именем диска и путем
%~nx1 замена %1 именем файла и расширением
поиск в каталогах, перечисленных в переменной среды PATH, и
%~dp$PATH:1
3
замена %1 именем диска и путем к первому найденному файлу.
4
%~ftza1
замена %1 строкой, аналогичной результату работы команды Dir
Еще один модификатор, являющийся уникальным, имеет вид %*. Он представляет все
аргументы, переданные пакетному файлу. Этот модификатор не используется в комбинации
с модификатором %~.
Конвейеры команд и «каналы», рассмотренные в предыдущих лабораторных работах (Часть
I, Приложения 1 и 2) являются инструментами для расширения функционала пакетных
файлов и сценариев при их построении и организации.
Сервер сценариев ОС 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, является сценарий
входа в систему, представляющий собой файл, связываемый с одной или несколькими
учетными записями пользователей. Обычно сценарий входа является пакетным файлом,
который автоматически выполняется при каждом входе пользователя в систему. Сценарии
входа используются для настройки рабочей среды пользователя при входе и позволяют
администратору задавать основные параметры рабочей среды пользователя без
непосредственного его участия.
Поскольку пакетные файлы могут включать в себя любые команды, их конвейеры и
«каналы», при большом количестве условий и циклов последствия некорректной работы
пакетного файла могут быть непредсказуемыми для ОС, и возможно как следствие
разрушительными. Поэтому для организации пакетного файла разработчику необходимо
%~dp1
27
четко представлять себе, что именно и каким образом должно происходить в системе при
работе этого файла, какая последовательность действий реализуется в результате
выполнения задуманного сценария и как на эти действия реагирует ОС.
Помимо рассмотренных в предыдущих лабораторных работах команд, которые могут быть
использованы при организации пакетного файла, существует ряд дополнительных,
функционал которых напоминает операторы языков программирования высокого уровня. К
их числу относятся: 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).
Таблица 3. Операции обработчика выражений команды Set
№
п.п.
1
2
3
4
5
6
7
8
9
Операция
Описание
()
!~*/%+
<< >>
&
^
|
= *= /= %= += -= &= ^= |= <<= >>=
,
группировка
унарные операторы
арифметические операторы
двоичный сдвиг
двоичное И
двоичное исключающее ИЛИ
двоичное ИЛИ
присвоение
разделитель операторов
При использовании любых логических или двоичных операторов необходимо заключить
строку выражения в кавычки. Любые нечисловые строки в выражении рассматриваются как
имена переменных среды, значения которых преобразуются в числовой вид перед
использованием. Если переменная с указанным именем не определена в системе, вместо нее
подставляется нулевое значение. Это позволяет выполнять арифметические операции со
значениями переменных среды, причем не нужно вводить знаки % для получения значений.
Если команда SET /A вызывается из командной строки, а не из пакетного файла, она выводит
окончательное значение выражения. Слева от любого оператора присваивания должно
стоять имя переменной среды. Числовые значения рассматриваются как десятичные, если
перед ними не стоит префикс 0x для шестнадцатеричных чисел, и 0 для восьмеричных чисел.
Например, числа 0x12, и 022 обозначают десятичное число 18. Обратите внимание на запись
восьмеричных числе: 08 и 09 не являются допустимыми числами, так как в восьмеричной
28
системе исчисления цифры 8 и 9 не используются. Если команда с ключом /a вызывается из
командной строки, а не из пакетного файла, она выводит окончательное значение
выражения.
Ключ /P позволяет установить значение переменной для входной строки, введенной
пользователем. Показывает указанное приглашение promptString перед чтением введенной
строки. Приглашение promptString может быть пустым.
Подстановка переменной среды может быть расширена следующим образом:
%PATH:str1=str2%
расширит действие переменной среды PATH, заменяя каждое вхождение "str1" в
расширенном результате на "str2". "str2" может быть пустой строкой для эффективного
удаления вхождений "str1" из расширенного вывода. "str1" может начинаться со звездочки, и
в этом случае это будет соответствовать любому началу расширенного вывода до первого
вхождения оставшейся части "str1". Можно также использовать строки расширения.
%PATH:~10,5%
расширит действие переменной среды PATH, затем использует только 5 символов, которые
начинаются с 11-го символа (пропустив 10) расширенного результата. Если длина не
указана, по умолчанию используется оставшееся значение переменной. Если оба значения
(длина и число пропускаемых символов) отрицательны, следующим используемым
значением будет длина значения переменной среды, добавленной к указанному значению
пропуска или указанной длины.
%PATH:~-10%
извлечет последние 10 символов переменной PATH.
%PATH:~0,-2%
извлечет все символы переменной PATH, за исключением 2-х последних.
Наконец, добавлена поддержка связывания времени выполнения для переменных среды
окружения. По умолчанию эта поддержка отключена. Ключ /V командной строки CMD.EXE
позволяет включать и выключать ее. Связывание времени выполнения для переменных
среды окружения полезно при обходе ограничений раннего связывания, которое происходит
при первом чтении текстовой строки, а не при ее выполнении. Следующий пример
демонстрирует возникающую проблему при использовании раннего связывания переменных:
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "%VAR%" == "after" @echo Тело внутреннего оператора сравнения
)
Данное сообщение не будет выводиться, т.к. %VAR% в ОБОИХ выражениях if
подставляется в момент первого использования в первом 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.
29
Связывание времени выполнения для переменных среды окружения происходит при
использовании специального символа (восклицательного знака), обозначающего проведение
сопоставления во время выполнения. Если включена поддержка связывания времени
выполнения, то для достижения ожидаемых результатов приведенные выше фрагменты
должны быть изменены следующим образом:
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. Значения этих
переменных вычисляются динамически каждый раз при их извлечении. Если пользователь
явно задает переменные с одним из этих имен, то это определение перекрывает
соответствующее динамическое определение, описанное ниже:
%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 [текст],
где параметр:
текст — задает строку символов, используемую в качестве комментария.
Команда Echo выводит на экран сообщения или задание режима вывода на экран. Синтаксис
команды Echo:
30
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 используется для выполнения команды из
строки в окне командной оболочки;
%%переменная - любые символы, используется для выполнения команды в пакетном файле.
Переменные должны учитывать регистр.
(множество) — обязательный параметр, задающий один или группу файлов, каталогов,
диапазон значений или текстовых строк, указывающих на файлы, подлежащие обработке
заданной командой. Например, допустимыми являются следующие варианты: (*.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 не указано имя каталога, выполнение команды начинается с текущего
31
каталога. Если вместо набора указана только точка (.), команда выводит список всех
подкаталогов.
For /L {% | %%} переменная in (НачальноеЗначение#,шаг#, КонечноеЗначение#) do команда
[ПараметрыКоманднойСтроки]
Множество раскрывается в последовательность чисел с заданными началом, концом и шагом
приращения. Так, набор (1,1,5) раскрывается в (1 2 3 4 5), а набор (5,-1,1) заменяется на (5 4 3
2 1)
FOR /F ["ключи"] %переменная IN (множество) DO команда [параметры]
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 - применение новой семантики, при которой строки, заключенные в обратные
кавычки, выполняются как команды, строки, заключенные в прямые одиночные кавычки,
являются строкой литералов команды, а строки, заключенные в двойные кавычки,
используются для выделения имен файлов в списках имен файлов.
Поясняющий пример:
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' или
32
'Z'. Следует помнить, что имена переменных FOR являются глобальными, поэтому
одновременно не может быть активно более 52 переменных.
Синтаксис команды FOR /F также позволяет обработать отдельную строку, с указанием
параметра filenameset, заключенным в одиночные кавычки. Строка будет обработана как
единая строка из входного файла.
Наконец, команда FOR /F позволяет обработать строку вывода другой команды. Для этого
следует ввести строку вызова команды в апострофах вместо набора имен файлов в скобках.
Строка передается для выполнения обработчику команд CMD.EXE, а вывод этой команды
записывается в память и обрабатывается так, как будто строка вывода взята из файла.
Например, следующая команда:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
выведет перечень имен всех переменных среды, определенных в настоящее время в системе.
Операции подстановки ссылок на переменные команды 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,
что делает их более заметными, а также позволяет отличать их от обозначений
модификаторов, которые не различают используемый регистр.
5. Команда If
Обработка условий в пакетных файлах осуществляется командой If.
IF [NOT] ERRORLEVEL число команда
IF [NOT] строка1==строка2 команда
IF [NOT] EXIST имя_файлакоманда
NOT Обращает истинность условия: истинное условие становится ложным, а ложное истинным.
ERRORLEVEL число Условие является истинным, если код возврата последней
выполненной программы не меньше указанного числа.
33
строка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
Вот правильный пример, где все команды расположены в одной строке:
IF EXIST имя_файла (del имя_файла) ELSE echo имя_файла missing
Изменение команды IF при включении расширенной обработки команд:
IF [/I] строка1 оператор_сравнения строка2 команда
IF CMDEXTVERSION число команда
IF DEFINED переменная команда
где оператор_сравнения принимает следующие значения:
Таблица 7. Допустимые значения оn_сравнения
Описание
Оператор
Описание
Оператор
EQU
Равно
LEQ
меньше или равно
NEQ
не равно
GTR
больше
LSS
Меньше
GEQ
больше или равно
а ключ /I, если он указан, задает сравнение текстовых строк без учета регистра. Ключ /I
можно также использовать и в форме строка1==строка2 команды IF. Сравнения
проводятся по общему типу данных, так что если строки 1 и 2 содержат только цифры, то
обе строки преобразуются в числа, после чего выполняется сравнение чисел.
Условие CMDEXTVERSION применяется подобно условию ERRORLEVEL, но значение
сравнивается с внутренним номером версии текущей реализации расширенной обработки
команд. Первая версия имеет номер 1. Номер версии будет увеличиваться на единицу при
каждом добавлении существенных возможностей расширенной обработки команд. Если
расширенная обработка команд отключена, условие CMDEXTVERSION никогда не бывает
истинно.
Условие DEFINED применяется подобно условию EXISTS, но принимает в качестве
аргумента имя переменной среды и возвращает истинное значение, если эта переменная
определена.
Строка %ERRORLEVEL% будет развернута в строковое представление текущего значения
кода ошибки ERRORLEVEL, за исключением ситуации, когда уже имеется переменная
среды с именем ERRORLEVEL; в подобном случае подставляется значение этой
переменной. Например, с помощью данной строки можно выполнить следующее:
goto answer%ERRORLEVEL%
:answer0
34
echo Получен код возврата 0
:answer1
echo Получен код возврата 1
Допускается и применение описанных выше операторов числового сравнения:
IF %ERRORLEVEL% LEQ 1 goto okay
Строка %CMDCMDLINE% будет развернута в исходную командную строку, переданную
CMD.EXE до любой обработки, за исключением ситуации, когда уже определена
переменная среды с именем CMDCMDLINE, в подобном случае подставляется значение
этой переменной.
Строка %CMDEXTVERSION% будет развернута в строку, представляющую собой текущее
значение CMDEXTVERSION, за исключением ситуации, когда уже имеется переменная
среды с именем CMDEXTVERSION; в подобном случае подставляется значение этой
переменной.
6. Команда Goto
Команда Goto, эквивалентная безусловному переходу в языке высокого уровня, в пакетной
программе реализует передачу правления ОС Windows XP в строку, определенную
символьной меткой. Когда метка найдена, выполнение продолжается со следующей за ней
строки. Команда Goto неразрывно связана с описанной выше командой If, в совокупности
обеспечивающей возможность сложных программных конструкций с переходами.
Синтаксис команды Goto:
Goto метка,
где параметр:
метка это строка в пакетной программе, на которую выполняется переход. В пакетном
файле она должна начинаться с двоеточия (:). Если строка начинается с двоеточия, все
присутствующие в ней команды обработаны не будут. Синтаксически она может включать
пробелы, но не может включать другие разделители, такие как точка с запятой или знак
равенства. При этом используются только первые восемь знаков метки (метки: hithere0,
hithere01 и hithere02 воспринимаются интерпретатором команд как эквивалентные).
Если расширения командного интерпретатора разрешены и в команде Goto используется
метка :Eof, управление будет передано в конец текущего пакетного файла для выхода из него
без назначения метки. В синтаксис команды обязательно должно быть включено двоеточие
(:), то есть Goto :Eof.
Дополнительная информация по данной команде, а также примеры ее использования
доступны в справке ОС Windows XP (Пуск | Справка и поддержка) в соответствующем
разделе. Справку также можно получить, набрав в окне командной оболочки строку Goto /? и
нажав Enter для ввода.
7. Команда Call
Вызов одного пакетного файла из другого без завершения его выполнения осуществляется
командой Call. Эта команда эквивалентна вызову процедуры из основного тела программы.
Она принимает метки в качестве объекта вызова и используется только в сценариях или
пакетных файлах; при вызове из командной строки команда Call игнорируется.
Синтаксис команды Call:
Call [[диск:][путь] имя_файла [пакетные_параметры]] [:метка [аргументы]],
где параметр:
[диск:][путь] имя_файла — задает имя и расположение пакетного файла.
пакетные_параметры — задает данные командной строки, используемые программой
пакетной обработки, включая параметры командной строки, имена файлов, пакетные
параметры (%0-%9) или переменные (например, %baud%).
35
:метка — указывает метку, на которую должно быть передано управление программы
пакетной обработки. При использовании с этим параметром создается новый контекст
пакетного файла, а управление передается инструкции, следующей за указанной меткой.
аргументы — задает данные командной строки, которые передаются в новую программу
пакетной обработки, начинающуюся с :метки, включая параметры командной строки, имена
файлов, пакетные параметры или переменные.
Необходимо отметить, что при использовании команды Call символы перенаправления
ввода-вывода и «каналы» не допускаются. Кроме того, может быть реализована подстановка
переменных на основе модификаторов. При этом разрешаются все варианты синтаксических
конструкций, приведенных в табл. 1и 2.
Дополнительная информация по данной команде, а также примеры ее использования
доступны в справке ОС Windows XP (Пуск | Справка и поддержка) в соответствующем
разделе. Справку также можно получить, набрав в окне командной оболочки строку Call /? и
нажав Enter для ввода.
8. Команды Setlocal, Endlocal
Следующие две команды и последние из основного набора, предназначены для задания
начала и конца области определения локальных переменных среды в пакетном файле.
Изменения среды являются локальными для пакетного файла и задаются командой Setlocal.
Локальное окружение используется до тех пор, пока не встретится команда Endlocal или не
будет достигнут конец пакетного файла (Eof), при этом командный интерпретатор
восстанавливает первоначальные параметры.
Синтаксис команд Setlocal и Endlocal:
Setlocal
{enableextension
|
disableextensions}
{enabledelayedexpansion
|
disabledelayedexpansion},
:
Endlocal,
где параметр:
enableextension — включает расширения командного интерпретатора до появления
соответствующей команды Endlocal, вне зависимости от состояния расширений командного
интерпретатора перед командой Setlocal.
disableextensions — выключает расширения командного интерпретатора до появления
соответствующей команды Endlocal, вне зависимости от состояния расширений командного
интерпретатора перед командой Setlocal.
enabledelayedexpansion — включает расширения переменной среды с задержкой до
появления соответствующей команды Endlocal, вне зависимости от состояния расширений
командного интерпретатора перед командойSetlocal.
disabledelayedexpansion — выключает расширения переменных среды с задержкой до
появления соответствующей команды Endlocal, вне зависимости от состояния расширений
командного интерпретатора перед командойSetlocal.
Вертикальное двоеточие (:) иллюстрирует последовательность определенных команд,
расположенных между Setlocal и Endlocal, ограничивающие область локальных переменных
среды. Кроме того, что допускается использование нескольких вложенных пар команд
Setlocal и Endlocal.
Дополнительная информация по данным командам, а также примеры их использования
доступны в справке ОС Windows XP (Пуск | Справка и поддержка) в соответствующих
разделах. Справку также можно получить, набрав в окне командной оболочки строку Setlocal
/? или Endlocal /? и нажав Enter для ввода.
Ход работы
• В настоящей лабораторной работе предполагается ознакомление с основными
командами, используемыми в качестве инструментов организации пакетных файлов,
36
•
создание командного файла в формате ASCII, реализующего определенный сценарий
работы системы, а также оценка возможности использования его в качестве сценария
входа в систему.
Лабораторная работа выполняется на виртуальной машине в среде ОС Windows 7.
Задание 1. Изучение команды SET
1. Отобразите переменные среды двумя способами: из командной оболочки и окна
свойств системы (Пуск | Панель управления | Система).
2. Задайте переменную среды, содержащую определенный путь к месту назначения,
выбранный самостоятельно.
3. Проверьте наличие в системе переменной среды, заданной в предыдущем пункте
задания.
4. Выведите значение выражения, определенного в соответствии с вариантом задания
(табл. 8), в качестве переменной среды Result.
5. Задайте переменную среды с различными вариантами динамически формируемых
значений (табл. 4). Варианты динамических значений выберете самостоятельно.
При выполнении задания используйте следующие инструкции:
• по каждому из пунктов задания в окне командной оболочки наберите
соответствующую команду с необходимыми ключами,
• нажмите Enter для ввода,
• изучите полученный результат и сделайте вывод о проделанной работе,
• запишите полученную информацию в отчет, заполнив табл. 5.
Таблица 5. Результаты выполнения команды Set
№
п.п.
1
2
3
4
5
Команда с ключами Результат и вывод по способу применения команды
Задание 2. Изучение команд REM и ECHO
Создайте пакетный файл, воспользовавшись любым текстовым редактором. Имя пакетного
файла выберете самостоятельно.
1. Введите в созданный пакетный файл текст, приведенного выше примера.
2. Сохраните текст пакетного файла.
При выполнении задания используйте следующие инструкции:
o воспользовавшись командой Start и указав путь к пакетному файлу,
o запустите его на выполнение, нажав Enter для ввода,
o изучите пример и полученный с его помощью результат, обратив внимание
o на то, что команда Echo с точкой (.) в конце выводит на экран пустую строку, а
символ «коммерческое И» (@) перед командой Echo отключает режим
отображения команд.
o сделайте соответствующий вывод и запишите его в отчет.
Задание 3. Изучение утилиты FOR
1. Скопируйте файлы каталога, путь к которому задайте самостоятельно, в точку
назначения, заданную путем d:\Temp\. При копировании воспользуйтесь любым методом,
изученным ранее.
2. К каждому из файлов, местоположение которых определено путем d:\Temp\, добавьте
символ «!» в начале имени, воспользовавшись командой циклической обработки данных.
37
3. Подсчитать количество каталогов на локальном диске, воспользовавшись командой
циклической обработки данных, в процессе выполнения выводя результат в переменную
среды, выбранную самостоятельно. Проверьте полученный результат в файловом
диспетчере Total Commander (Файл | Подсчитать занимаемое место), предварительно
выделив содержимое локального диска.
4. Модифицируйте пакетный файл, полученный в предыдущем задании, воспользовавшись
командой циклической обработки данных таким образом, чтобы в процессе его
выполнения отображалось определенное количество раз выражение «********* the For
command **********».
При выполнении задания используйте следующие инструкции: по каждому из пунктов
задания в окне командной оболочки наберите соответствующую команду с необходимыми
ключами, нажмите Enter для ввода, изучите полученный результат и сделайте вывод о
проделанной работе, запишите полученную информацию в отчет, заполнив табл. 6.
Таблица 6. Результаты выполнения команды For
№
п.п.
1
2
3
4
5
Команда с ключами Результат и вывод по способу применения команды
Задание 4. Изучение команды IF
Модифицируйте пакетный файл, полученный в предыдущем задании таким образом, чтобы
выполнялись следующие условия:
1. Если не существует каталог d:\Temp\MyFont\, создайте его любым способом, изученным
ранее. В противном случае выведите сообщение «Folder exists» (Каталог существует).
2. Если в каталоге d:\Temp\MyFont\ не существует файлов-шрифтов, скопируйте любые три
одним из методов, изученных ранее, из системного каталога c:\Windows\Fonts\. В
противном случае выведите сообщение «Fonts exist» (Шрифты присутствуют).
3. Если в каталоге d:\Temp\MyFont\ существует файлы, удалите каталог вместе с его
содержимым, изученным ранее способом и выведите сообщение «Folder deleted». В
противном случае выведите сообщение «Folder is empty. Deleting is senseless» (Каталог
пуст. Удаление бессмысленно).
При выполнении задания используйте следующие инструкции:
o по каждому из пунктов задания в командном файле наберите соответствующий код из
команд с необходимыми ключами,
o сохраните модифицированный пакетный файл, воспользовавшись командой Start и
указав путь к пакетному файлу,
o запустите его на выполнение, нажав Enter для ввода,
o изучите полученный результат и сделайте вывод о проделанной работе,
o запишите полученную информацию в отчет, заполнив табл. 8.
Таблица 8. Результаты выполнения команды If
№
п.п.
Команда с ключами Результат и вывод по способу применения команды
38
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
Сохраните текст пакетного файла.
При выполнении задания используйте следующие инструкции: воспользовавшись командой
Start и указав путь к пакетному файлу,
o запустите его на выполнение, нажав Enter для ввода,
o изучите пример и полученный с его помощью результат,
o сделайте вывод о проделанной работе и запишите его в отчет.
Задание 6. Изучение принципов работы команды CALL
1. Создайте новый (дочерний) пакетный файл, воспользовавшись любым текстовым
редактором. Имя пакетного файла выберите самостоятельно.
2. Введите в дочерний пакетный файл процедуру форматирования гибкого диска,
учитывающую переход в начало процедуры в случае ошибки, из приведенного выше
примера.
3. Модифицируйте родительский пакетный файл, удалив из него лишние команды и
добавив ссылку на дочерний пакетный файл для его вызова.
4. Сохраните тексты обоих пакетных файлов.
При выполнении пунктов 1-4 задания используйте следующие инструкции:
o воспользовавшись командой Start и указав путь к родительскому файлу, запустите его
на выполнение, нажав Enter для ввода,
o изучите полученный результат и сделайте вывод о проделанной работе,
o запишите полученную информацию в отчет.
5. Вспомните команду форматирования Format и ее параметры.
6. Модифицируйте родительский и дочерний файлы таким образом, чтобы
осуществилась передача из родительского файла двух значений параметров
(%переменная) команды Format (табл. 9), находящейся внутри дочернего файла.
Обратите внимание на то, что в таблице 9 передаваемые параметры команды Format
имеют числовое (%0-%9), а не символьное представление.
7. Сохраните тексты обоих пакетных файлов.
При выполнении пунктов 5-7 задания используйте следующие инструкции:
o воспользовавшись командой Start и указав путь к родительскому файлу с параметрами
для команды Format, запустите его на выполнение, нажав Enter для ввода,
o изучите полученный результат и сделайте вывод о проделанной работе,
39
o
перенесите тексты модифицированных пакетных файлов, а также значения используемых
пакетных параметров в отчет.
Варианты для заданий 1, 6.
Таблица 9. Варианты для заданий 1 и 6.
Задание 1.
Вар. Переменная среды
№
a
b
c
Result
1
24 11 35 (а + b – c) * 10
2
AA 01 C1 a * 5 – b / 5 + c
3
12 33 10 a * 4 / c – b * 2
4
25 A3 B4 a – b * 3 – c / 2
5
49 02 65 a – b * b + c / 5
6
21 99 12 (b *(a + c)) / 3
7
BC BC CB 10 + (a – b) * c
8
01 94 04 (b – c) / (a * 9)
9
84 D2 2A a / 10 – (b * c)
10
10 39 92 a * a + b – c / 2
11
D1 CC 1C a * b * c – b / c
12
FF 00 F1 (a – c) * b + 25
13
CA DA FA a * b * (FA – c)
14
45 78 87 ((c – b) *a) / 8
15
88 88 00 (a – b) / (1 – c)
16
75 93 02 (b + c) * 2 –a
17
A1 CD 0E a*a*b*b*c*c
18
C4 EA E3 (a + b + c) * a
19
44 55 33 c *(b – a) / 10
20
B3 E5 DE (a * b * c) / 25
21
BB ED AE (a – b) * 2 – c
22
55 56 31 (b – a) * 31 – c
23
D1 EC EE (c – b) * 5 / a
24
D6 E6 FE (a + b) * c – 11
25
71 65 32 (a – b) *c / 32
26
84 32 10 (a * (b + c)) / 5
Задание 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
40
Endlocal
Start notepad c:\help.out
Pause
Сохраните текст пакетного файла.
При выполнении задания используйте следующие инструкции:
o воспользовавшись командой Start и указав путь к пакетному файлу, запустите его на
выполнение, нажав Enter для ввода,
o изучите пример и полученный с его помощью результат,
o сделайте вывод о проделанной работе и запишите его в отчет.
Задание для самостоятельной работы
Задание 9. Создание пакетного файла, реализующего определенную последовательность
действий в ОС Windows 7
Порядок выполнения:
1. Создайте новый пакетный файл, воспользовавшись любым текстовым редактором. Имя
пакетного файла выберете самостоятельно.
2. Изучите выбранный вариант задания табл. 10.
3. Синтезируйте алгоритм работы пакетного файла.
4. Выберите необходимый набор команд для реализации алгоритма.
5. С помощью выбранного набора команд запрограммируйте сценарий в виде пакетного
файла, реализующего определенную последовательность действий в среде ОС Windows .
6. Сохраните текст пакетного файла.
При выполнении задания используйте следующие инструкции:
o воспользовавшись командой Start и указав путь к пакетному файлу, запустите его на
выполнение, нажав Enter для ввода,
o изучите полученный результат,
o перенесите алгоритм, блок-схему и текст разработанного пакетного файла в отчет.
o сделайте вывод о проделанной работе и запишите его в отчет.
Дополнительную информацию по возможностям командной оболочки, а также все
множество команд доступных при работе с ней наряду с параметрами и примерами
применения можно получить в справке ОС Windows (Пуск | Справка и поддержка) в
разделах «Общие сведения о командной оболочке», «Справочник по параметрам командной
строки» и «Новые средства командной строки».
Варианты для задания 9.
Таблица 10. Варианты для задания 9.
Задание 9
Вар.
Описание пакетного файла
№
Пакетный файл, предназначенный для резервного копирования файлов с
определенным расширением из разных каталогов с возможностью создания
резервного каталога, в случае его отсутствия в системе. Расширение файлов для
копирования задается в качестве пакетного параметра. Резервное копирование
1
осуществляется каждый четверг в 22:00. В течение 3 минут после копирования
выводится сообщение «Резервное копирование в каталог <путь> завершено» и далее
происходит автоматическое выключение системы с принудительным закрытием всех
работающих приложений.
Пакетный файл, предназначенный для организации процесса поиска и отображения
текстового файла. Поиск осуществляется по всем локальным дискам. Имя текстового
2
файла задается пакетным параметром. После того как необходимый файл найден, в
41
3
4
5
6
7
8
9
10
автоматическом режиме осуществляется его отображение в текстовом процессоре
«Блокнот».
Пакетный файл, предназначенный для копирования каталога с его содержимым в
заданное место назначения. Копируемый каталог и место назначения задаются в
качестве пакетных параметров. После копирования каталога файл-отчет, содержащий
информацию о количестве скопированных файлов и их месте расположения, в
автоматическом режиме загружается в текстовый процессор «Блокнот».
Пакетный файл, предназначенный для перемещения каталога с его содержимым в
заданное место назначения с запросом на удаление, перемещаемого каталога.
Перемещаемый каталог и место назначения задаются в качестве пакетных
параметров. После перемещения каталога в отдельный файл выводится отчет,
содержащий два дерева каталогов тех мест, откуда и куда было осуществлено
перемещение. В конце выводится сообщение вида «Отчет о перемещении находится
в каталоге <путь>».
Пакетный файл, предназначенный для копирования каталога и включенных в него
файлов, расположенных в месте, заданном определенным путем. Полный путь
расположения и маска копируемых файлов задаются в качестве пакетных
параметров. Если в результирующем каталоге уже находятся копирующиеся файлы,
то повторное копирование должно сопровождаться выдачей предупреждающего
сообщения о существовании файлов. В конце выводится сообщение вида
«Копирование файлов из каталога <путь> в каталог <путь> завершено».
Пакетный файл, предназначенный для создания отчета, содержащего «Software part»
(программная часть), включающую информацию о содержимом корневых каталогов
всех логических дисков в системе и «Hardware part» (аппаратная часть),
включающую сведения о конфигурации компьютера и ОС, сведения о безопасности,
параметры оборудования, такие как ОЗУ, дисковое пространство, сетевые карты и
другие. Файл-отчет копируется в некоторый сетевой каталог, задаваемый пакетным
параметром, под именем, отражающим имя компьютера, с которого получен этот
отчет. В конце выводится сообщение вида «Отчет находится в сетевом каталоге
<путь>».
Пакетный файл, предназначенный для углубленной проверки жесткого диска с
созданием файла отчета, путь к которому задается в качестве пакетного параметра.
Проверка жесткого диска осуществляется ежедневно в 21:00. В течение 20 секунд по
окончании проверки диска выводится сообщение «Проверка диска завершена. Файлотчет находится в каталоге <путь >» и далее осуществляться автоматическая
перезагрузка системы.
Пакетный файл, предназначенный для резервного копирования файлов системной
папки Windows с возможностью создания резервного каталога, в случае его
отсутствия в системе. Путь к резервному каталогу задается в качестве пакетного
параметра. Резервное копирование осуществляется ежедневно в 23:00. В течение 2
минут после копирования выводится «Резервное копирование в каталог <путь>
завершено» и далее происходит автоматическое выключение системы с
принудительным закрытием всех работающих приложений.
Пакетный файл, предназначенный для архивирования и шифрования указанного
каталога с его содержимым. Архивируется каталог-источник с помощью
существующего в системе архиватора (например, WinRar), вызов которого
осуществляется непосредственно из пакетного файла. Архив в дальнейшем
шифруется и сохраняется в определенном месте на жестком диске. Пути к каталогуисточнику и месту назначения задаются в качестве пакетных параметров. В конце
выводится сообщение вида «Шифрованный архив сохранен в каталог <путь>».
Пакетный файл, предназначенный для удаления файлов по маске, расположенных в
42
11
12
13
14
15
16
17
18
месте, заданном определенным путем. Полный путь расположения и маска
удаляемых файлов задаются в качестве пакетных параметров. В процессе
необходимо осуществлять запрос на подтверждение удаления. В конце выводится
сообщение вида «Стерто файлов: <количество> из каталога <путь>».
Пакетный файл, предназначенный для организации процесса поиска и сравнения
оригинального и резервной копии (.bak) одного и того же файла. Если оригинальный
файл найден, то осуществляется его сравнение с резервной копией. Отличия,
найденные при сравнении, передаются в отчет, который сохраняется в определенном
месте. Имя резервной копии файла и путь к месту назначения, где сохраняется отчет
о сравнении, задаются в качестве пакетных параметров. В конце выводится
сообщение вида «Отчет сохранен в каталог <путь>».
Пакетный файл, предназначенный для создания отчета, содержащего «Software part»
(программная часть), включающую информацию об присутствующих в системе
загруженных драйверах и «Hardware part» (аппаратная часть), включающую сведения
о конфигурации компьютера и ОС, сведения о безопасности, параметры
оборудования, такие как ОЗУ, дисковое пространство и другие. Файл-отчет
копируется в некоторый сетевой каталог, задаваемый пакетным параметром, под
именем, отражающим IP-адрес компьютера, с которого получен этот отчет. В конце
выводится сообщение вида «Отчет находится в каталоге <путь>».
Пакетный файл, предназначенный для подсчета файлов в каталоге, заданном
определенным путем. Полный путь расположения и расширение подсчитываемых
файлов задаются в качестве пакетных параметров. Организовать отчет с
возможностью дописывания в него информации вида «Каталог <путь> содержит
<количество> файлов с <расширение> расширением»
Пакетный файл, предназначенный для резервного копирования каталога, заданного
определенным путем, и содержащихся в нем файлов с возможностью создания
резервного каталога, в случае его отсутствия в системе. Пути к каталогу-источнику и
месту назначения задаются в качестве пакетных параметров. Резервное копирование
осуществляется ежедневно в 23:59. В течение 5 секунд после копирования выводится
сообщение «Резервное копирование в каталог <путь> завершено» и далее происходит
автоматическая перезагрузка системы.
Пакетный файл, предназначенный для отражения статистики по атрибутам файлов в
каталоге, заданном определенным путем. В каталоге файлы с определенным
атрибутом подсчитываются, а их количество передается в текстовый файл
статистики с дописыванием в него информации вида «Файлов с атрибутом
<атрибут>: <количество>». Пути к каталогу и месту назначения, где сохраняется
файл статистики, задаются в качестве пакетных параметров. В конце выводится
сообщение вида «Отчет сохранен в каталог <путь>».
Пакетный файл, предназначенный для копирования файлов с определенным
расширением и путем в заданное место назначения с их последующим шифрованием.
Расширение файлов для копирования, полный путь расположения и путь к месту
назначения задаются в качестве пакетных параметров. В конце выводится сообщение
вида «Копирование файлов из каталога <путь> в каталог <путь> завершено.
Шифрование скопированных данных завершено».
Пакетный файл, предназначенный для организации процесса поиска и сравнения
оригинального и резервной копии (.bak) одного и того же файла. Имя резервной
копии файла передается в качестве пакетного параметра. Если оригинальный файл
найден, то осуществляется его сравнение с резервной копией. Отличия, найденные
при сравнении, передаются в отчет, который, в автоматическом режиме загружается
в текстовый процессор «Блокнот».
Пакетный файл, предназначенный для создания отчета, включающего информацию о
43
19
20
21
22
23
24
25
присутствующих в системе загруженных драйверах и отображающего список
приложений и служб, выполняющихся на компьютере. Файл-отчет копируется в
некоторый сетевой каталог, задаваемый пакетным параметром, под именем,
отражающим MAC-адрес компьютера, с которого получен этот отчет. В конце
выводится сообщение вида «Отчет находится в сетевом каталоге <путь>».
Пакетный файл, предназначенный для копирования файлов, определяемых маской и
путем, в заданное место назначения с их последующим архивированием.
Архивирование осуществляется с помощью доступного в системе архиватора
(например, WinRar), вызов которого осуществляется непосредственно из пакетного
файла. Маска файлов для копирования, полный путь расположения и путь к месту
назначения задаются в качестве пакетных параметров. В конце выводится сообщение
вида «Копирование файлов из каталога <путь> в каталог <путь> завершено.
Архивирование скопированных данных завершено».
Пакетный файл, предназначенный для удаления файлов с определенным
расширением, расположенных в месте, заданном определенным путем. Полный путь
расположения и расширение удаляемых файлов задаются в качестве пакетных
параметров. В процессе необходимо осуществлять запрос на подтверждение
удаления. После удаления в отдельный файл выводится отчет, содержащий список
удаленных файлов с их полным путем, который, в свою очередь, в автоматическом
режиме загружается в текстовый процессор «Блокнот».
Пакетный файл, предназначенный для создания отчета событий и их свойств из
журнала событий на локальном компьютере. Журналы событий: Application, System
и Security. Файл-отчет копируется в некоторый сетевой каталог, задаваемый
пакетным параметром, под именем, отражающим IP-адрес компьютера, с которого
получен этот отчет. В конце выводится сообщение вида «Отчет находится в сетевом
каталоге <путь>». Примечание: если необходимо, смените сервер сценариев ОС
Windows XP.
Пакетный файл, предназначенный для перемещения файлов с определенным
расширением из каталога-источника в заданное место назначения. Расширение
файлов, каталог-источник и место назначения задаются в качестве пакетных
параметров. После перемещения отчет, содержащий список перемещенных файлов с
путем, загружается в текстовый процессор «Блокнот».
Пакетный файл, предназначенный для резервного копирования каталога, заданного
определенным путем, и содержащихся в нем файлов с возможностью создания
резервного каталога, в случае его отсутствия в системе. Пути к каталогу-источнику и
месту назначения задаются в качестве пакетных параметров. Резервное копирование
осуществляется ежедневно в 23:30. В течение 10 секунд после копирования
выводится сообщение «Резервное копирование в каталог <путь> завершено» и далее
происходит автоматическая перезагрузка системы.
Пакетный файл, предназначенный для копирования дерева каталогов из каталогаисточника в заданное место назначения. Копируемый каталог-источник и место
назначения задаются в качестве пакетных параметров. После копирования отчет,
содержащий дерево каталогов с местом его расположения, в автоматическом режиме
загружается в текстовый процессор «Блокнот».
Пакетный файл, предназначенный для организации процесса поиска и копирования
файлов с определенным расширением. Поиск осуществляется по всем локальным
дискам. Расширение файлов и место назначения, куда необходимо копировать
файлы, задаются в качестве пакетных параметров. В конце выводится сообщение
вида «Файлы найдены и скопированы в каталог <путь>».
44
Лабораторная работа №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, а также на IA64, AMD64, PowerPC, ARM и многих других.
К операционной системе GNU/Linux также часто относят программы, дополняющие
эту операционную систему, и прикладные программы, делающие её полноценной
многофункциональной операционной средой.
В отличие от большинства других операционных систем, GNU/Linux не имеет единой
«официальной» комплектации. Вместо этого GNU/Linux поставляется в большом количестве
так называемых дистрибутивов, в которых программы GNU соединяются с ядром Linux и
другими программами.
Дистрибутив — это не просто набор программ, а ряд решений для разных задач
пользователей, объединённых едиными системами установки, управления и обновления
пакетов, настройки и поддержки.
Самые распространённые в мире дистрибутивы:
• Ubuntu — быстро завоевавший популярность дистрибутив, ориентированный на
лёгкость в освоении и использовании.
• openSUSE — бесплатно распространяемая версия дистрибутива SuSE,
принадлежащая компании Novell. Отличается удобством в настройке и обслуживании
благодаря использованию утилиты YaST.
• Fedora — поддерживается сообществом и корпорацией RedHat, предшествует
выпускам коммерческой версии RHEL.
• Debian GNU/Linux — международный дистрибутив, разрабатываемый обширным
сообществом разработчиков в некоммерческих целях. Послужил основой для
создания множества других дистрибутивов. Отличается строгим подходом к
включению несвободного ПО.
• Mandriva — французско-бразильский дистрибутив, объединение бывших Mandrake и
Conectiva.
• Archlinux — ориентированный на применение самых последних версий программ
и постоянно обновляемый, поддерживающий одинаково как бинарную, так и
установку из исходных кодов и построенный на философии простоты KISS, этот
45
дистрибутив ориентирован на компетентных пользователей, которые хотят иметь всю
силу и модифицируемость Linux, но не в жертву времени обслуживания.
Помимо перечисленных, существует множество других дистрибутивов, как
базирующихся на перечисленных, так и созданных с нуля и зачастую предназначенных для
выполнения ограниченного количества задач.
В отличие от Microsoft Windows (Windows NT), Mac OS (Mac OS X) и коммерческих
UNIX-подобных систем, GNU/Linux не имеет географического центра разработки. Нет и
организации, которая владела бы этой системой; нет даже единого координационного
центра. Программы для Linux — результат работы тысяч проектов. Некоторые из этих
проектов централизованы, некоторые сосредоточены в фирмах. Многие проекты объединяют
хакеров со всего света, которые знакомы только по переписке. Создать свой проект или
присоединиться к уже существующему может любой и, в случае успеха, результаты работы
станут, известны миллионам пользователей. Пользователи принимают участие в
тестировании свободных программ, общаются с разработчиками напрямую, что позволяет
быстро находить и исправлять ошибки и реализовывать новые возможности.
История развития 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 и выбираем язык
установки (рис. 24):
46
Рис. 24. Выбор языка установки
Рис. 25. Меню установки:
3. Выбираем пункт «Установить Ubuntu» (рис. 25). И после непродолжительного ожидания
увидим приветствие с предложением начать установку:
47
Рис. 26. Подготовка к установке
4. Нажимаем кнопку «Forward» («Далее»), и увидим меню, в котором можно выбрать
часовой пояс (рис. 27):
Рис. 27. Настройка часового пояса
48
5. Нажимаем кнопку «Forward» («Далее»), и увидим меню выбора раскладки клавиатуры (рис.
28):
Рис. 28. Настройка раскладки клавиатуры
6. Нажимаем кнопку «Forward» («Далее»), и увидим меню подготовки разделов жесткого
диска к установке Ubuntu (рис. 29).
Рис. 29. Подготовка дискового пространства
49
7. Выбираем пункт «Использовать весь диск». Пункт «Указать разделы вручную
(расширенно)» выполняется только по указанию преподавателя, иначе нажимать не
следует.
8. Нажимаем «Forward» («Далее») и видим меню для идентификации будущего
пользователя ОС. Необходимо задать имя (Коля, Вася, Маша и т.п.). А также
используемое при входе. Во избежание проблем с утратой логина и пароля всем студента
задать:
o имя используемое для входа в систему (login) - user
o пароль чтобы держать запись в сохранности (password) - 123456
На вопрос о том, что пароль слишком простой и надо его сменить ответить отрицательно.
o имя компьютера в сети уточнить у преподавателя.
Рис. 30. Меню идентификации будущего пользователя
9. После заполнения всех пунктов меню идентификации, нажимаем «Forward» («Далее»), и
видим окно со сводной информацией о будущей ОС.
50
Рис. 31. Сводка к установке системы
10. Окно со сводкой о будущей системе представлено - последняя возможность отменить
установку или внести какие-то изменения (рис. 31). Нажимаем кнопку «Установить». И в
следующем возникшем окне нажимаем «Перезагрузить».
11. Инструкцией предполагается извлечение физического диск, но так как мы работаем с
образом, нам необходимо его извлечь, для этого, во время перезагрузки, в верхнем меню
окна программы VirtualBox находим пункт «Устройства», и в появившемся меню пункт
«Отключить CD/DVD-ROM» (рис. 32). Затем нажмите сочетание клавиш Ctrl+R перезагрузка виртуальной машины.
Рис. 32. Меню отключения CD/DVD-ROM
51
12. И после небольшого диалога с вводом имени пользователя и пароля (имя пишется без
заглавных букв) мы увидим ОС Linux Ubuntu с подключенным рабочим столом
GNOME (рис. 33).
Рис. 33. ОС Linux Ubuntu с подключенным рабочим столом GNOME.
13. Установите дополнения к гостевой ОС (см. лаб. 1). После монтирования нового
носителя (смотри на рабочем столе), найдите на нем файл avtoran.sh, запустите его
двойным кликом и в появившемся диалоговом окне нажмите запустить через
терминал, далее процесс будет автоматизирован.
14. Подготовить отчет о выполнении лабораторной работы, описать основные этапы
установки ОС. Сдать отчет преподавателю в соответствии с графиком.
Контрольные вопросы:
1. Что такое Linux?
2. Что такое дистрибутив?
3. Перечислите основные дистрибутивы Linux. Объясните в чем их отличие.
4. Какую файловую систему использует для работы установленный Вами дистрибутив?
5. Перечислите основные этапы установки операционной системы.
Литература 1,3,4
52
Лабораторная работа №5
Терминал и командная оболочка операционной системы Linux
Цель работы: Приобрести опыт работы с командной строкой ОС Linux, изучить основные
команды (рабочая станция, рабочий директорий, пользователи, дата, календарь, список
процессов, завершение работы)
План проведения занятия:
Ознакомиться с краткими теоретическими сведениями.
Приобрести навыки работы в терминале Linux. Научиться создавать новых пользователей
при помощи терминала Linux, задавать несложные команды.
Подготовить отчет для преподавателя о выполнении лабораторной работы и представить
его в соответствии с графиком.
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: операционная система Linux Ubuntu, текстовый процессор Microsoft
Word.
Краткие теоретические сведения:
Стандартные команды в Linux отличаются от команд DOS и Windows - обычно они
короче. При работе с командной строкой как обычно мигающий курсор обозначает позицию
ввода текста, командная строка начинается с текущего пути и имени компьютера, за которым
следует символ $, % или #. Последний означает, что команды будут выполняться от имени
суперпользователя root. Символ ~ означает путь к текущей домашней директории
пользователя.
Большинство команд в Linux, не требующих вывода информации пользователю, в
случае успешного завершения вообще ничего не выводят на экран. Выводятся только
ошибки и предупреждения в случае нарушения нормального выполнения команды. Т. е. в
Linux действует общий принцип "молчит, значит работает".
В любом терминале Linux стрелками вверх/вниз на клавиатуре можно листать
историю команд, которая сохраняется между сеансами работы и различается для разных
пользователей и хостов. Набранное частично команда или имя файла или каталога в текущей
директории может быть автоматически дописано клавишей TAB. Если найдено более одного
варианта и однозначно продолжить команду по TAB невозможно, то выводятся все
подходящие варианты.
При работе в графической среде удобны эмуляторы терминала. Как правило они
поддерживают закладки - несколько терминалов в одном окне, поддерживают цветовые
схемы. Наиболее распространены эмуляторы терминала Gnome Terminal, Konsole, XFCE
Terminal.
Терминал — эмулятор консоли. Именно в терминале мы будем работать с CLI
(интерфейсом командной строки). Терминал часто также называют консолью или шеллом
(от англ. shell — оболочка). В будущем для объяснения я буду использовать все три эти
понятия, главное не забывайте что они синонимы.
Многие пользователи и в особенности администраторы серверов под Linux в работе
используют именно консоль, а не графическую оболочку, это связано с тем, что настройка и
конфигурация Linux в основном заключается, в редактировании текстовых
конфигурационных файлов. Даже если вы являетесь простым пользователем ОС Linux,
большинство инструкций по настройке написаны с использованием консоли и знать
основные команды жизненно необходимо.
Стоит обратить внимание на системные каталоги ОС в которых находятся файлы,
необходимые для управления и сопровождения системы, а также стандартные программы.
53
Их имена, расположение и содержание почти одинаковы почти во всех ОС Linux, поэтому
эти каталоги называют также стандартными. Впрочем, на данный момент эпитет
«стандартные» отражает скорее благие пожелания, чем действительность: иерархия
каталогов одинакова только для дистрибутивов, связанных единством происхождения, а
исторически сложившиеся различия создают опасность несовместимости разных
дистрибутивов.
Краткое описание основных каталогов сведено в таблицу 1.
Таблица 1.
Каталог
Назначение
/bin
Основные программы, необходимые для работы в системе: командные оболочки,
файловые утилиты и т.п.
/sbin
Команды для системного администрирования, а также программы, выполняемые
входе загрузки
/boot
Файлы, необходимые для загрузки системы (образ ядра)
/home
Домашние каталоги пользователей, кроме root
/dev
Файлы устройств
/etc
Файлы настроек: стартовые сценарии, конфигурационные файлы графической
системы и различных приложений
/lib
Системные библиотеки, необходимые для основных программ, и модули ядра
/lost+found Восстановленные после аварийного размонтирования части файловой системы
/media
Сюда обычно монтируются съемные носители: компакт-диски, flash-накопители
/mnt
Временные точки монтирования жестких дисков. Использовать этот каталог
необязательно: подмонтировать файловую систему можно к любому другому
каталогу
/opt
Дополнительные пакеты программ. Если программа, установленная сюда, больше
не нужна, то достаточно удалить ее каталог без обычной процедуры
деинсталляции
/proc
Виртуальная файловая система, дающая доступ к информации ядра (например,
выведите на экран файл /proc/cpuinfo). Другие файлы в этом каталоге в каждый
момент времени содержат информацию о выполняющихся в этот момент
программах
/root
Домашний каталог суперпользователя. Домашние каталоги всех остальных могут
находиться на отдельном разделе, но /root должен быть в корневой файловой
системе, чтобы администратор всегда мог войти в систему для ремонтных работ
/tmp
Временные файлы
/var
Часто меняющиеся данные: системные журналы и протоколы приложений, замки,
почтовые ящики, очереди печати и т.п.
/usr
Практически все остальное: программы, исходные коды, документация. Сюда по
умолчанию устанавливаются новые программы
С точки зрения UNLX-подобных ОС, файл представляет собой поток или
последовательность байтов. Такой подход позволяет распространить понятие файла на
множество ресурсов не только локального компьютера, но и удаленного, связанного с
локальным сетью любого рода. Доступ к любому такому ресурсу осуществляется через
универсальный интерфейс, благодаря чему запись данных в файл, отправка их на физическое
устройство или обмен ими с другой работающей программой происходит аналогично. Это
очень упрощает организацию данных и обмен ими.
В ОС Linux можно выделить следующие типы файлов: обычные файлы —
последовательность байтов (текстовые документы, исполняемые программы, библиотеки и
т.п.);
54
каталоги — именованные наборы ссылок на другие файлы; файлы физических устройств,
подразделяющихся на:
o файлы блочных устройств, драйверы которых буферизуют ввод-вывод с помощью
ядра и файлы байт-ориентированных, или символьных, устройств, позволяющих
связанным с ними драйверам выполнять буферизацию собственными средствами; o
символические ссылки (symlink, symbolic link); o именованные каналы (named pipes); o
гнезда (sockets).
Таблица № 2
Halt
стремительное и корректное выключение системы.
poweroff
корректное выключение системы.
reboot
корректное выключение с последующей загрузкой.
adduser
создание нового пользователя.
Date
показывает нынешние дату и время, по системным часам ядра.
oclock
обычные часы
finger
отображение информации о пользователе
hostname
команда показывает личный номер этого узла сети
hwclock
интегрированные часы
uname
выводит информацию об используемой операционной системе
uptime
проявляет текущее время, длительность сеанса, число пользователей и
загруженность процессора.
usermod
изменение параметров пользователя.
users
отражает короткий перечень пользователя работающих в системе в этот эпизод
whoami
демонстрирует нынешний личный номер пользователя, работающего в этом
терминале.
write
посылает известие иному пользователя, окружающему в системе, маршрутом
копирования строчек с терминала отправителя на терминал получателя.
history
демонстрирует пронумерованный перечень команд, которые Вы исполняли в
данном и прошлом сеансе. Само собой разумеется, что если в перечне истории
их очень немало, то увидите заключительные.
passwd
изменение пароля пользователя
выводит перечень всех работающих действий.
times
проявляет абсолютное время исполнения действий для всей системы и этого
пользователя.
Free
отражает информацию о своевременной памяти, подкачки, кэше, свободная
память, общественная и т.п.
Ls
указывает все файлы в текущем каталоге в алфавитном порядке. По всей
вероятности аналогична dir.
clear
чистит экран терминала (в случае если данное вполне вероятно).
ifconfig
отражает состояние текущей конфигурации сети или же настраивает сетевой
интерфейс.
Less
отражает содержимое указанного файла на экране и дозволяет комфортно
просмотреть.
mkpasswd
создает качественный пароль, состоящий по умолчанию из 9 знаков и
имеющий как минимум буквы в различном регистре и числа.
1. Для выполнения данной работы будем использовать ранее установленный Linux
Ubuntu. Запускаем Linux. После прохождения идентификации включаем терминал
(рис. 34).
Applications > Accessories > Terminal
55
Рис. 34. Терминал Linux Ubuntu
2. Для работы в терминале Ubuntu требуются права пользователя root, но, к сожалению,
по умолчанию, он недоступен, поэтому для выполнения некоторых (не всех) команд
надо писать sudo <команда>, и подтверждать свои права вводом пароля. И не
пугайтесь того, что его не видно в терминале! Наберите точно по памяти, по
окончании ввода нажмите Enter.
3. Для получении справки о дополнительных возможностях некоторых программ
следует набрать <команда> --help
4. Потренируйтесь в выполнении команд:
• date
• oclock
• finger
• hwclock
• uname
• history
• clear
• ls
Найдите данные команды в таблице 2, опишите их. После выполнения результат
внесите в отчет.
5. Создайте нового пользователя, при помощи терминала Ubuntu, и введите его в группу
admin. Создайте пароль пользователю. Войдите под ним в систему. Процесс создания
и ввода в группу внесите в отчет.
6. Разберите выполнение незадействованных команд таблицы 2. Потренируйтесь в
выполнении, определите их назначение и область применения. Результат работы
внесите в отчет.
7. Подготовьте отчет о выполнении лабораторной работы и сдайте преподавателю в
соответствии с графиком.
Контрольные вопросы:
1. Что такое терминал?
2. Перечислите основные системные каталоги.
3. Расскажите о типах файлов в ОС Linux.
Литература 1,4
56
Лабораторная работа №6
Работа с файловой системой ОС Linux
Цель работы: Приобрести опыт работы с файлами и каталогами в ОС Linux, настройки прав
на доступ к файлам и каталогам.
План проведения занятия:
Ознакомиться с краткими теоретическими сведениями. Приобрести навыки работы в
терминале Linux.
Научиться создавать новые файлы и каталоги, разобрать назначение прав доступа к
файлам и папкам.
Подготовить отчет для преподавателя о выполнении лабораторной работы и представить
его в соответствии с графиком.
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: операционная система Linux Ubuntu, текстовый процессор Microsoft
Word.
Краткие теоретические сведения
Файловая система - это структура, с помощью которой ядро операционной системы
предоставляет пользователям (и процессам) ресурсы долговременной памяти системы, т. е.
памяти на различного вида долговременных носителях информации - жестких дисках,
магнитных лентах, CD-ROM и т. п.
С точки зрения пользователя, файловая система — это логическая структура
каталогов и файлов. В отличие от Windows, где каждый логический диск хранит отдельное
дерево каталогов, во всех UNLX-подобньгх системах эта древовидная структура растет из
одного корня: она начинается с корневого каталога, родительского по отношению ко всем
остальным, а физические файловые системы разного типа, находящиеся на разных разделах
и даже на удаленных машинах, представляются как ветви этого дерева.
Имена файлов и каталогов могут иметь длину до 255 символов. Символы «/» (слэш) и
символ с кодом 0 запрещены. Кроме того, ряд символов имеет специальное значение для
командного интерпретатора, и их использование не рекомендуется. Это символы: ~ ! @ # $ &
% * ( ) [ ] { } ' " \ : ; > < пробел
Заметьте, что точки среди специальных символов нет, и имена вроде
this.is.a.text.file.containing.the.famous.string.hello.world допустимы и широко распространены.
Часто последняя отделенная точкой часть имени используется подобно «расширению
имени» в Windows, обозначая файл определенного типа, но это обозначение несет смысл
только для человека. Так, человеку имя файла ivan=home=tar.gz подсказывает, что это
домашний каталог пользователя ivan, упакованный архиватором tar и сжатый компрессором
gzip.
Если имя файла начинается с точки, то этот файл считается скрытым: некоторые
команды его «не видят». Например, введя в своем домашнем каталоге команду просмотра
содержимого каталога ls с ключом -а, означающим «показывать скрытые файлы», вы
увидите больше файлов, чем введя ту же команду без ключей.
Linux различает регистр символов в именах файлов: так, в одном каталоге могут
находиться два разных файла README и Readme.
Имена каталогов строятся по точно тем же правилам, что и имена файлов. Полным
именем файла (или путем к файлу) называется список вложенных друг в друга каталогов,
заканчивающийся собственно именем файла. Начинаться он может с любого каталога,
потому что в древовидной структуре между любыми двумя узлами существует
57
путь. Если этот список начинается с корневого каталога, то путь называется абсолютным.
Если с любого другого — то относительным (по отношению к этому каталогу).
Корневой каталог обозначается символом «/» (слэш), и этим же символом
разделяются имена каталогов в списке. Таким образом, абсолютным именем файла README
в домашнем каталоге пользователя ivanov будет /home/petrov/README.
В каждом каталоге существуют два особых «подкаталога» с именами «две точки» и
«точка». Первый из них служит указанием на однозначно определенный родительский
каталог, а второй — на сам данный каталог. Для корневого каталога, у которого нет
родителя, оба эти «подкаталога» указывают на корневой каталог. С помощью этих имен
образуются относительные имена файлов. Так, именем вышеупомянутого файла README
относительно домашнего каталога /home/ivanov пользователя ivan будет ../petrov/README.
Жесткая ссылка является просто другим именем для исходного файла. После создания
такой ссылки ее невозможно отличить от исходного имени файла. «Настоящего» имени у
файла нет, точнее, все такие имена будут настоящими. Команда 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. Права доступа к файлам и каталогам
Поскольку Linux - система многопользовательская, вопрос об организации
разграничения доступа к файлам и каталогам является одним из существенных вопросов,
58
которые должна решать операционная система. Механизмы разграничения доступа,
разработанные для системы 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. Но нас сейчас в выводе этой команды больше интересует первое поле,
определяющее тип файла и права доступа к файлу. Это поле в приведенном примере
представлено цепочкой символов -rwxr-xr-x. Эти символы можно условно разделить на
4 группы.
Первая группа, состоящая из единственного символа, определяет тип файла. Этот
символ в соответствии с возможными типами файлов, рассмотренными в предыдущем
разделе, может принимать такие значения:
•
- = - обычный файл;
•
d = - каталог;
•
b = - файл блочного устройства;
•
c = - файл символьного устройства;
•
s = - доменное гнездо (socket);
•
p = - именованный канал (pipe);
•
l = - символическая ссылка (link).
Далее следуют три группы по три символа, которые и определяют права доступа к
файлу соответственно для владельца файла, для группы пользователей, которая сопоставлена
данному файлу, и для всех остальных пользователей системы. В нашем примере права
доступа для владельца определены как rwx, что означает, что владелец (root) имеет право
читать файл r), производить запись в этот файл (w), и запускать файл на выполнение (x).
Замена любого из этих символов прочерком будет означать, что пользователь лишается
соответствующего права. В том же примере мы видим, что все остальные пользователи
(включая и тех, которые вошли в группу root) лишены права записи в этот файл, т. е. не
могут файл редактировать и вообще как-то изменять.
Вообще говоря, права доступа и информация о типе файла в UNIX-системах хранятся
в индексных дескрипторах в отдельной структуре, состоящей из двух байтов, т. е. из 16 бит
59
(это естественно, ведь компьютер оперирует битами, а не символами r, w, x). Четыре бита из
этих 16-ти отведены для кодированной записи о типе файла. Следующие три бита задают
особые свойства исполняемых файлов, о которых мы скажем чуть позже. И, наконец,
оставшиеся 9 бит определяют права доступа к файлу. Эти 9 бит разделяются на 3 группы по
три бита. Первые три бита задают права пользователя, следующие три бита -права группы,
последние 3 бита определяют права всех остальных пользователей (т. е. всех пользователей,
за исключением владельца файла и группы файла).
При этом, если соответствующий бит имеет значение 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
Естественно, что по отношению к каталогам трактовка понятий "право на чтение", "
право на запись" и "право на выполнение" несколько изменяется. Право на чтение по
отношению к каталогам легко понять, если вспомнить, что каталог - это просто файл,
содержащий список файлов в данном каталоге. Следовательно, если вы имеете право на
чтение каталога, то вы можете просматривать его содержимое (этот самый список файлов в
каталоге). Право на запись тоже понятно - имея такое право, вы сможете создавать и удалять
файлы в этом каталоге, т. е. просто добавлять в каталог или удалять из него запись,
содержащую имя какого-то файла и соответствующие ссылки. Право на выполнение
интуитивно менее понятно. Оно в данном случае означает право переходить в этот каталог.
Если вы, как владелец, хотите дать доступ другим пользователям на просмотр какого-то
файла в своем каталоге, вы должны дать им право доступа в каталог, т. е. дать им "право на
выполнение каталога". Более того, надо дать пользователю право на выполнение для всех
каталогов, стоящих в дереве выше данного каталога. Поэтому в принципе для всех каталогов
по умолчанию устанавливается право на выполнение как для владельца и группы, так и для
всех остальных пользователей. И, уж если вы хотите закрыть доступ в каталог, то лишите
всех пользователей (включая группу) права входить в этот каталог. Только не лишайте и
себя такого права, а то придется обращаться к суперпользователю !3)
После прочтения предыдущего абзаца может показаться, что право на чтение каталога
не дает ничего нового по сравнению с правом на выполнение. Однако разница в этих правах
все же есть. Если задать только право на выполнение, вы сможете войти в каталог, но не
увидите там ни одного файла (этот эффект особенно наглядно проявляется в том случае, если
вы пользуетесь каким-то файловым менеджером, например, программой Midnight
60
Commander). Если вы имеете право доступа в каком-то из подкаталогов этого каталога, то вы
можете перейти в него (командой cd), но, как говорится "вслепую", по памяти, потому что
списка файлов и подкаталогов текущего каталога вы не увидите.
Алгоритм проверки прав пользователя при обращении к файлу можно описать
следующим образом. Система вначале проверяет, совпадает ли имя пользователя с именем
владельца файла. Если эти имена совпадают (т. е. владелец обращается к своему файлу), то
проверяется, имеет ли владелец соответствующее право доступа: на чтение, на запись или на
выполнение (не удивляйтесь, суперпользователь может лишить некоторых прав и владельца
файла). Если право такое есть, то соответствующая операция разрешается. Если же нужного
права владелец не имеет, то проверка прав, предоставляемых через группу или через группу
атрибутов доступа для остальных пользователей, уже даже не проверяются, а пользователю
выдается сообщение о невозможности выполнения затребованного действия (обычно что-то
вроде "Permission denied").
Если имя пользователя, обращающегося к файлу, не совпадает с именем владельца, то
система проверяет, принадлежит ли владелец к группе, которая сопоставлена данному файлу
(далее будем просто называть ее группой файла). Если принадлежит, то для определения
возможности доступа к файлу используются атрибуты, относящиеся к группе, а на атрибуты
для владельца и всех остальных пользователей внимания не обращается. Если же
пользователь не является владельцем файла и не входит в группу файла, то его права
определяются атрибутами для остальных пользователей. Таким образом, третья группа
атрибутов, определяющих права доступа к файлу, относится ко всем пользователям, кроме
владельца файла и пользователей, входящих в группу файла.
Для изменения прав доступа к файлу используется команда 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 дает всем права на чтение, запись и
выполнение.
61
Если опустить указание на то, кому предоставляется данное право, то
подразумевается, что речь идет вообще обо всех пользователях, т. е. вместо [user]$
chmod a+x file_name можно записать просто
[user]$ chmod +x file_name
Второй вариант задания команды 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. Все
пароли пользователей хранятся в файле /etc/passwd, владельцем которого является
суперпользователь root. Поэтому программы, запущенные обычными пользователями, в том
числе команда passwd, не могут производить запись в этот файл. А, значит, пользователь как
бы не может менять свой собственный пароль. Но для файла /usr/bin/passwd установлен "бит
смены идентификатора владельца", каковым является пользователь root. Следовательно,
программа смены пароля passwd запускается с правами root и получает право записи в файл
/etc/passwd (уже средствами самой программы обеспечивается то, что пользователь может
изменить только одну строку в этом файле).
Установить "бит смены идентификатора владельца" может суперпользователь с
помощью команды
[root]# chmod +s file_name
Аналогичным образом работает "бит смены идентификатора группы".
62
Еще один возможный атрибут исполняемого файла - это "бит сохранения задачи" или
"sticky bit" (дословно - "бит прилипчивости"). Этот бит указывает системе, что после
завершения программы надо сохранить ее в оперативной памяти. Удобно включить этот бит
для задач, которые часто вызываются на выполнение, так как в этом случае экономится
время на загрузку программы при каждом новом запуске. Этот атрибут был необходим на
старых моделях компьютеров. На современных быстродействующих системах он
используется редко.
Если используется цифровой вариант задания атрибутов в команде chmod, то
цифровое значение этих атрибутов должно предшествовать цифрам, задающим права
пользователя:
[root]# chmod 4775 file_name
При этом веса этих битов для получения нужного суммарного результата задаются
следующим образом:
•
4 - "бит смены идентификатора пользователя",
•
2 - "бит смены идентификатора группы",
•
1 - "бит сохранения задачи (sticky bit)".
Если какие-то из этих трех битов установлены в 1, то несколько изменяется вывод
команды ls -l в части отображения установленных атрибутов прав доступа. Если установлен
в 1 "бит смены идентификатора пользователя", то символ "x" в группе, определяющей права
владельца файла, заменяется символом "s". Причем, если владелец имеет право на
выполнение файла, то символ "x" заменяется на маленькое "s", а если владелец не имеет
права на выполнение файла (например, файл вообще не исполняемый), то вместо "x"
ставится "S". Аналогичные замены имеют место при задании "бита смены идентификатора
группы", но заменяется символ "x" в группе атрибутов, задающих права группы. Если равен
1 "бит сохранения задачи (sticky bit)", то заменяется символ "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 имя-файла
63
Команда mkdir
Команда 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
Именно возможности перенаправления ввода и вывода этой команды и используются для
создания новых файлов. Для этого на вход команды 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 для того, чтобы получить предупреждение, когда файл будет
перезаписываться.
64
Команды rm и rmdir
Для удаления ненужных файлов и каталогов в Linux служат команды rm (удаляет
файлы) и rmdir (удаляет пустой каталог). Для того, чтобы воспользовался этими командами,
вы должны иметь право записи в каталоге, в котором расположены удаляемые файлы или
каталоги. При этом полномочия на изменение самих файлов не обязательны. Если хотите
перед удалением файла получить дополнительный запрос на подтверждение операции,
используйте опцию -i.
Если вы попытаетесь использовать команду rm (без всяких опций) для удаления
каталога, то будет выдано сообщение, что это каталог, и удаления не произойдет. Для
удаления каталога надо удалить в нем все файлы, после чего удалить сам каталог с помощью
команды rmdir. Однако можно удалить и непустой каталог со всеми входящими в него
подкаталогами и файлами, если использовать команду rm с опцией -r.
Если вы дадите команду rm *, то удалите все файлы в текущем каталоге. Подкаталоги
при этом не удалятся. Для удаления как файлов, так и подкаталогов текущего каталога надо
тоже воспользоваться опцией -r. Однако всегда помните, что в Linux нет команды
восстановления файлов после их удаления (даже если вы спохватились сразу же после
ошибочного удаления файла или каталога)!
Так что дважды подумайте до удаления чего-либо и не пренебрегайте опцией -i.
Команды more и less
Команда cat позволяет вывести на стандартный вывод (на экран) содержимое любого
файла, однако она используется для этих целей очень редко, разве что для вывода очень
небольших по объему файлов. Дело в том, что содержимое большого файла мгновенно
проскакивает на экране, и пользователь видит только последние строки файла. Поэтому cat
используется в основном по ее прямому назначению - для конкатенации файлов, а для
просмотра содержимого файлов (конечно, текстовых) используются команды more и less
(или текстовые редакторы).
Команда-фильтр more выводит содержимое файла на экран отдельными страницами,
размером как раз в целый экран. Для того, чтобы увидеть следующую страницу, надо нажать
на клавишу пробела. Нажатие на клавишу <Enter> приводит к смещению на одну строку.
Кроме клавиш пробела и <Enter> в режиме паузы еще некоторые клавиши действуют как
управляющие (например, клавиша <B> возвращает вас на один экран назад), но мы здесь не
будем приводить полного их перечня, как и перечня опций команды. Вам для начала надо
еще только запомнить, что выйти из режима просмотра можно с помощью клавиши <Q>, так
как если вы этого не знаете, то вам придется долго и нудно нажимать пробел, пока вы не
доберетесь до конца длинного файла. Обо всех опциях команды more вы можете прочитать в
интерактивном руководстве man или info.
Утилита less, разработанная в рамках проекта GNU, содержит все функции и команды
управления выводом, имеющиеся в программе more, и некоторые дополнительные,
например, позволяет использовать клавиши управления курсором (<Стрелка вверх>,
<Стрелка вниз>, <PgUp>, <PgDown>) для перемещения по тексту. Вспомните, мы уже
говорили об этом, когда рассматривали интерактивную подсказку man.
Команды more и less позволяют производить поиск подстроки в просматриваемом
файле, причем команда less позволяет производить поиск как в прямом, так и в обратном
направлении. Для организации поиска строки символов string надо набрать в командной
строке программы в нижней части экрана (там, где двоеточие) /string. Если искомая строка
будет найдена, будет отображен соответствующий кусок текста, причем найденная строка
будет находиться в самом верху экрана.
Команда find и символы шаблонов для имен файлов
65
Еще одной часто используемой командой для работы с файлами в Linux является
команда поиска нужного файла find. Команда find может искать файлы по имени, размеру,
дате создания или модификации и некоторым другим критериям.
Общий синтаксис команды find имеет следующий вид:
find [список_каталогов] критерий_поиска
Параметр "списоккаталогов" определяет, где искать нужный файл. Проще всего
задать в качестве начального каталога поиска корневой каталог /, однако, в таком случае
поиск может затянуться очень надолго, так как будет просматриваться вся структура
каталогов, включая смонтированные файловые системы (в том числе сетевые, если таковые
есть). Можно сократить объем поиска, если задать вместо одного корневого каталога список
из нескольких каталогов (естественно, тех, в которых может находиться искомый файл):
[user]$ find /usr/share/doc /usr/doc /usr/locale/doc -name
instr.txt
Началом "критерия_поиска", определяющего, что именно должна искать программа
find, считается первый аргумент, начинающийся на "(", ")"', "," или "!". Все аргументы,
предшествующие "критерию_поиска", трактуются как имена каталогов, в которых надо
производить поиск. Если не указано ни одного пути, поиск производится только в текущем
каталоге и его подкаталогах.
Чаще всего поиск проводится по именам файлов, как это показано в предыдущем
примере, т. е. "критерий_поиска" задается как "-name имя_файла". Вместо опции -name
можно использовать опцию -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 и расскажем подробнее о том, какие критерии
66
Таблица 4.4. Критерии поиска для команды find
Опция
Значение
-name шаблон
Ищет файлы, имена которых соответствуют шаблону
-group имя
Ищет файлы, принадлежащие указанной группе
Ищет файлы, размером в число 512-байтных блоков. Если после числа
-size числоИ
стоит символ c, значит размер указан в байтах (символах)
-mtime число
Ищет файлы, которые в последний раз изменялись указанное число
дней назад
-newer образец Ищет файлы, которые изменялись после изменения файла, указанного в
образце
-type тип_файла Ищет файлы указанного типа. Тип задается одним из символов b (блокориентированные устройства), c (байт-ориентированные устройства), d
(файл каталога), f (обычный файл), p (именованный канал) либо l
(символическая ссылка)
Другие простые критерии вы можете узнать, если просмотрите man-страницу о
команде find. Здесь же надо только сказать, что из простых критериев можно строить более
сложные с помощью логических операций and, or или операции отрицания, знаком которой
служит восклицательный знак. Например, если вы хотите найти все файлы, имена которых
оканчиваются на .txt и .doc, то критерий можно записать как (-name *.txt -or -name *.doc).
Можно комбинировать таким образом любое число критериев (и не только простых!). Если
операция не указана явно, то подразумевается -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
\) \)
В последнем примере стоит обратить внимание на то, что перед значением размера
стоит знак "+". Такой знак можно использовать с любым числовым параметром в критериях
поиска команды find. Он означает, что нужно искать файлы, у которых значение параметра
больше заданного. Соответственно, знак "-" означает, что надо искать файлы, у которых
значение параметра меньше заданного. Если знаки + или - отсутствует, ищутся файлы, у
которых значение параметра равно заданному.
Чтобы закончить рассмотрение команды find, надо сказать еще о том, что после критерия
поиска в этой команде можно сразу же задать операцию, которая будет применяться ко всем
файлам, найденным по указанному критерию. Простейшим примером использования такой
возможности является указание команды -print. [user]$ find /home/kos -name
*.tmp -print
По которой выдается на экран список имен всех найденных файлов с указанием
полного пути к файлу. Эта операция применяется по умолчанию, т. е. когда никаких
операций вообще не указано (как это было во всех приведенных выше примерах). Другим
67
примером операции, применяемой ко всем найденным файлам, может служить операция exec cmd {} \;, где cmd - произвольная команда оболочки shell. То есть в этом случае ко всем
найденным файлам (их именами заменяются поочередно фигурные скобки) применяется
команда cmd. За cmd {} в этом случае должна следовать точка с запятой, экранированная
обратной косой чертой.
Например, если вы хотите удалить в текущем каталоге все файлы, к которым
пользователи не обращались в течение 30 дней, дайте команду:
[root]# find . -type f -atime +30 -exec rm {} \;
Вместо -exec можно поставить -ok, тогда перед выполнением указанной команды cmd
применительно к каждому файлу будет запрашиваться подтверждение.
В общем, команда find является очень мощным, полезным и чрезвычайно
адаптируемым инструментом поиска в файловой системе. Все ее возможности здесь не
перечислены, изучайте соответствующую man-страницу. И будьте очень осторожны с
применением таких возможностей команды, как вызов других команд, применяемых ко всем
найденным файлам. Помните, что изменения часто необратимы!
Редактирование текстовых файлов
Мелкие правки конфигурационных файлов — обычное дело для администратора,
поэтому средство их внесения присутствовало в 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 строк от текущей и ниже;
• р вставить содержимое буфера после текущей строки;
• Р вставить содержимое буфера перед текущей строкой.
68
Поиск и переход:
• 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
записали изменения (если требуется)
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.
69
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 (или другой файл по заданию
преподавателя).
Контрольные вопросы
1. Что такое файловая система?
2. Жесткая ссылка в Linux. Основные сведения.
3. Команда поиска в Linux. Основные сведения.
4. Перечислите основные команды работы с каталогами.
Литература 1,3,4
70
Лабораторная работа №7
Процессы в операционной системе Linux
Цель работы: Ознакомиться на практике с понятием процесса в операционной системе.
Приобрести опыт и навыки управления процессами в операционной системе Linux.
План проведения занятия
1. Используя теоретические сведения изучить порядок работы с текстовым редактором
Vi и создать два сценария для исследования процессов.
2. Следуя указаниям ознакомиться на практике с командами и сигналами для
управления процессами: запуском, остановкой, переводом на передний план,
удалением процесса и др.
3. Составить отчет.
Краткие теоретические сведения
1. Устройство Linux: ядро и процессы
Рис. 34. Устройство Linux
Главная, постоянно находящаяся в оперативной памяти, часть ОС Linux называется
ядром (Kernel). Ядро ОС обрабатывает прерывания от устройств, выполняет запросы
системных процессов и пользовательских приложений, распределяет виртуальную память,
создает и уничтожает процессы, обеспечивает многозадачность посредством переключения
между ними, содержит драйверы устройств, обслуживает файловую систему (см. рис. 34).
Пользовательские процессы не могут непосредственно, например, порождать другие
процессы, производить чтение или запись на диск, выводить данные на экран или создавать
гнездо (socket) для обмена по сети. Для выполнения этих действий они должны
воспользоваться сервисами ядра. Обращения за такими услугами называются системными
вызовами
71
Начальная загрузка системы состоит в том, что файл с образом ядра считывается в
оперативную память, начиная с нулевого адреса. Этот файл находится в каталоге /boot и
называется vmlinuz-x.y.z, где x.y.z — это номер версии ядра. На текущий момент
большинство дистрибутивов основано на ядре версии 2.4, хотя уже вышло ядро 2.6 и кое-где
еще встречается версия 2.2.
В UNIX-подобных системах в отличие от других ОС ядро минимизировано и не выполняет
ни одной функции, служащей непосредственно пользователю. Для этой цели применяются
многочисленные утилиты, выступающие в качестве посредников между пользователем и
ядром. Только в комплекте с ними ядро образует полноценную операционную систему.
Ядро обслуживает запросы процессов. Что же такое процесс? Это понятие является
базовым в UNIX-подобных системах. Процесс можно представить себе как виртуальную
машину, отданную в распоряжение одной задачи. Каждый процесс считает, что он на
машине один и может распоряжаться всеми ее ресурсами. На самом же деле процессы
надежно изолированы друг от друга, так что крушение одного не может повредить всей
системе
Каждый процесс выполняется в собственной виртуальной памяти, в которую никакой
другой процесс вмешаться не может. Этим и обеспечивается устойчивость всей системы.
Напомним, что такое виртуальная память. Каждому процессу разрешено считать, что
его адреса начинаются с нулевого адреса и далее наращиваются. Таким образом, в 32разрядной ОС процесс может адресовать 4 гигабайта оперативной памяти. Механизм
виртуальной памяти позволяет процессу считать, что именно столько ему и выделено, хотя
физически объем ОЗУ вашей машины может быть значительно меньше. Недостающую
память заменяет жесткий диск путем записи временно не используемых страниц памяти в
раздел подкачки (свопинга).
Разделяемость библиотек между процессами обеспечивается тем, что их код и
статические данные отображаются на один и тот же участок физической оперативной
памяти.
Таблица процессов
С точки зрения ядра процесс представляет собой запись в таблице процессов. Эта
запись содержит сведения о состоянии процесса и данные, существующие в течение всего
времени его жизни. Размер таблицы процессов позволяет запускать несколько сотен
процессов одновременно. Другая важная информация о процессе — например, таблица всех
открытых процессом файлов — хранится в его адресном пространстве. Запись в таблице
процессов и пространство процесса вместе составляют контекст, или окружение, процесса. В
него входят:
♦ PID — идентификатор процесса. Он принудительно назначается планировщиком при
запуске процесса.
♦ PPID — идентификатор родительского процесса.
♦ TTY — имя управляющего терминала - терминала, с которого запущен процесс.
♦ WD — текущий каталог процесса, от которого отсчитываются относительные пути.
♦ RID, RGID — реальные ID и групповой ID пользователя, запустившего процесс.
♦ EUID, EGID — эффективные ID и GID.
♦ NICE — показатель уступчивости. Процессы выполняются в режиме разделения
времени, то есть время центрального процессора делится между готовыми к
выполнению процессами с учетом их приоритета. Чем выше показатель уступчивости,
тем ниже приоритет.
♦ Переменные окружения.
Системные вызовы fork() и ехес() или как размножаются процессы
Каждый процесс порождается другим процессом, использующим для этого системный
вызов fork(). Таким образом, структура процессов, подобно файловой системе, древовидна.
Корнем этого дерева служит init — процесс инициализации системы (см. рис. 35). Он
запускается ядром первым, получает идентификатор 1 и порождает еще несколько процессов
72
(сколько и каких, можно узнать из его конфигурационного файла /etc/inittab), которые, в
свою очередь, при участии пользователя порождают другие процессы.
В результате системного вызова fork() родительский процесс полностью копирует
свое окружение, включая адресное пространство, в дочерний, так что в момент рождения
дочерний процесс отличается только своим ID. Потом дочерний процесс с помощью вызова
ехес() загружает в свое адресное пространство какой-нибудь исполняемый файл и начинает
исполнять содержащуюся в нем программу.
Каждый процесс, завершившись, возвращает родительскому процессу какое-то
значение, называемое кодом завершения или кодом возврата. По соглашению разработчиков,
нулевой код возврата означает успешное завершение, а ненулевые — разнообразные
ошибки. Процесс-родитель может приостановить свое выполнение до завершения потомка и
выполнить разные действия в зависимости от возвращенного дочерним процессом значения,
а может и не делать этого.
Рис. 35. Иерархия процессов.
Категории процессов
Процессы делятся на три категории:
• Системные. Они порождаются ядром особым образом в процессе загрузки и выполняют
системные функции (например, планирование процессов или смену страниц виртуальной
памяти). Выполняемая ими программа берется не из исполняемого файла, а является
частью ядра.
• Пользовательские. Как правило, они порождаются во время сеанса работы пользователя
и связаны с терминалом. Если пользовательский процесс работает в интерактивном
режиме, то он захватывает терминал в монопольное владение и, пока он не завершится,
пользователь не имеет доступа к командной строке на этом терминале.
Пользовательские процессы могут работать также в фоновом режиме, освободив
командную строку.
• Демоны (daemon, сокращение от Disk And Execution MONitor). Запускаются после
инициализации ядра. Выполняются в фоновом режиме, не связаны ни с одним
пользователем, обеспечивают работу различных служб (например, управление сетью).
Главным демоном считается init — процесс инициализации системы.
73
2. Сценарии в Linux. Активные и фоновые процессы
Исполняемые файлы в Linux бывают двух видов. Первый - это файлы в собственно
исполняемом (executable) формате. Как правило, такие файлы - результат компиляции
программ, написанных на одном из языков программирования. В Linux используется
несколько форматов исполняемых файлов, состоящих из машинных кодов и служебной
информации, необходимой операционной системе для запуска программы: согласно этой
информации, ядро Linux выделяет для запускаемой программы оперативную память,
загружает программу из файла и передает ей управление. Большинство утилит Linux программы именно такого, " двоичного" формата.
Второй вид исполняемых файлов - сценарии. Сценарий - это текстовый файл,
предназначенный для обработки какой-нибудь утилитой. Чаще всего такая утилита - это
интерпретатор некоторого языка программирования, а содержимое такого файла -программа
на этом языке.
Запустить сценарий на исполнение можно командой sh имя_сценария
Для того чтобы запустить процесс сценария параллельно, достаточно добавить в конец
командной строки символ "&":
sh имя_сценария&
Процесс, запускаемый параллельно, называется фоновым (background). Фоновые
процессы не имеют возможности вводить данные с того же терминала, что и породивший их
shell (только из файла), зато выводить данные на этот терминал могут (правда, когда на
одном и том же терминале вперемежку появляются сообщения от нескольких фоновых
процессов, начинается неразбериха). При каждом терминале в каждый момент времени
может быть не больше одного активного (foreground) процесса, которому разрешено вводить
данные с этого терминала. На время, пока команда работает в активном режиме, породивший
ее командный интерпретатор "уходит в фон", и там, в фоне, выполняет свой wait().
Активный процесс, foreground process - процесс, имеющий возможность вводить
данные с терминала. В каждый момент у каждого терминала может быть не более одного
активного процесса.
Фоновый процесс, background process - процесс, не имеющий возможности вводить
данные с терминала. Пользователь может запустить любое, но не превосходящее заранее
заданного в системе, число фоновых процессов. Сигналы в Linux
Механизм сигналов — это средство, позволяющее сообщать процессам о некоторых
событиях в системе, а процессу-получателю — должным образом на эти сообщения
реагировать. Послать сигнал может сам процесс (например, при попытке деления на ноль),
ядро (при сбое оборудования), пользователь или другой процесс (требуя прервать
выполнение задачи).
Всего в Linux 63 сигнала, обозначаемых своими номерами или символическими именами.
Имена всех сигналов начинаются с SIG, и эту приставку часто опускают: так, сигнал,
требующий прекратить выполнение процесса, называется SIGKILL, или KILL, или сигнал 9.
Получив сигнал, процесс может: игнорировать его; вызвать для обработки установленную по
умолчанию функцию; вызвать собственный обработчик (перехватить сигнал). Некоторые
сигналы (например, KILL) перехватить или игнорировать невозможно.
Пользователь может послать сигнал процессу с идентификатором PID командой
$ kill [-s <сигнал>] <PID> где <сигнал> — это номер или символическое имя.
Несколько часто встречающихся сигналов перечислены в таблице 1. Полный список можно
получить по команде kill -l (list).
№ Имя
Назначение
Таблица 1. Сигналы Linux
Реакция процесса-получателя
74
1 HUP
Hangup — отбой
2 INT
Interrupt
3 QUIT Сильнее, чем INT
4 ILL
Illegal instruction. Программная ошибка
Floating point exception, вычислительная
ошибка (деление на ноль)
9 KILL Убить процесс
8 FPE
11 SEGV Segmentation violation. Попытка доступа
к чужой области памяти
13 PIPE Нет процесса, читающего из конвейера
15 TER Termination. Завершить процесс
M
17 CHLD Завершился дочерний процесс
18 CONT Продолжить работу
19 STOP Приостановить процесс
Демоны перечитывают свои
конфигурационные файлы
Прекратить выполнение
(перехватывается)
тоже
Обработать ошибку. По умолчанию —
прекратить выполнение
Обработать ошибку. По умолчанию —
прекратить выполнение
Немедленно прекратить выполнение. Не
перехватывается
Обработать ошибку. По умолчанию —
прекратить выполнение
Обработать ошибку
Корректно завершить выполнение.
Перехватывается
Принять возвращенное им значение
Продолжить работу приостановленного
процесса
Приостановить выполнение
Сообщение-сигнал не содержит никакой информации, кроме номера сигнала (для
удобства вместо номера можно использовать предопределенное системой имя). Для того
чтобы передать сигнал, процессу достаточно задействовать системный вызов kill(), а для того
чтобы принять сигнал, не нужно ничего. Если процессу необходимо как-то по-особенному
реагировать на сигнал, он может зарегистрировать обработчик, а если обработчика нет, за
него отреагирует система. Как правило, это приводит к немедленному завершению процесса,
получившего сигнал. Обработчик сигнала запускается асинхронно, немедленно после
получения сигнала, что бы процесс в это время ни делал.
Два сигнала - 9 (KILL) и 19 (STOP) - всегда обрабатывает система. Первый из них
нужен для того, чтобы убить процесс наверняка (отсюда и название).
Сигнал STOP приостанавливает процесс: в таком состоянии процесс не удаляется из
таблицы процессов, но и не выполняется до тех пор, пока не получит сигнал 18 (CONT) после чего продолжит работу.
В Linux сигналы можно передать активному процессу с помощью управляющих
символов:
Interrupt - AC (Ctrl+C)
Stop - AZ"
Terminate - AD.
3. Команды для управления процессами в Linux
Моментальный снимок протекающих в системе процессов - команда ps
Моментальный снимок протекающих в системе процессов можно посмотреть с помощью
команды ps (process status). Без аргументов она покажет список процессов, связанных с
текущей консолью (или виртуальным терминалом). Список возможных ключей команды
можно, как обычно, получить по команде ps --help.
Вот некоторые полезные из них:
75
♦ -р < список_РID> : только процессы с указанными ID;
♦ -u < список_USERID > : только процессы, запущенные указанными пользователями;
♦ -е : все процессы в системе;
♦ -f : полная форма вывода;
♦ -Н : вывод иерархии процессов в форме дерева.
Динамика процессов — команда top
Представление о динамике процессов дает команда top. Она выводит список процессов,
отсортированный по количеству занятой памяти или использованного процессорного
времени, и обновляет его через указанные промежутки времени (по умолчанию через
каждые 3 секунды).
Последний процесс, запущенный из оболочки в фоне, можно из этой оболочки сделать
активным при помощи команды fg ("foreground" - "передний план").
Команда bg (back ground), запускает в фоне последний остановленный процесс.
Командой kill, как уже говорилось, можно передать процессу сигнал. Команда имеет два
параметра - номер сигнала и идентификатор процесса, которому передается сигнал:
kill -номерсигнала PID
Порядок выполнения работы:
Загрузиться не root, а пользователем.
Найти файл c образом ядра. Выяснить по имени файла номер версии Linux.
Посмотреть процессы ps -f. Прокомментировать. Для этого почитать man ps.
Написать с помощью редактора 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. Записать сообщение,
прокомментировать.
11) Третий раз запустить в фоне. Не останавливая убить командой kill -9 PID.
12) Запустить еще один экземпляр оболочки: bash.
13) Запустить несколько процессов в фоне. Останавливать их и снова запускать. Записать
результаты просмотра командой ps -f.
1)
2)
3)
4)
Литература 1,3,4
76
Лабораторная работа № 8
Организация ввода-вывода в ОС Linux
1. Цель работы
Целью работы является ознакомиться на практике с организацией ввода-вывода в
операционной системе Linux, понятием виртуальной файловой системой, блочными и
символьными устройствами, понятием драйвера, блочными, символьными драйверами,
драйверами низкого уровня. Приобрести опыт монтирования файловых систем.
2. Общие теоретические сведения
К Desktop Environment (Среда рабочего стола К) KDE предназначена для
поддержания тех же функциональных возможностей графического интерфейса, какие
предоставляют и другие популярные системы, например MacOS и Windows. Кроме
выполнения стандартных функций, KDE обладает рядом специфических характеристик,
которые расширяют возможности графической среды. Для Linux разработано несколько
диспетчеров окон, таких, как olwm, fvwm, afterstep и другие. Однако, их возможности не идут
ни в какое сравнение с возможностями KDE.
2.1 Оконная среда KDE
Как и большинство оконных менеджеров, KDE представляет собой интегрированную
среду, содержащую базовые средства для решения ряда повседневных задач. Например, с
помощью KDE можно выполнять ряд операций:
• Размещение на рабочем столе ярлыков гибких дисков для их монтирования,
размонтирования и работы с ними.
• Отображение в графическом виде файловой структуры и перемещение по ней.
• Сопоставление приложений с файлами определенных типов. При этом если
щелкнуть на выбранном файле, автоматически будет загружаться нужное приложение.
• Создание на рабочем столе ярлыков принтеров. Если мышью перетащить к такому
ярлыку файл, он будет распечатан.
В состав KDE входит не только рабочий стол, но и целый набор приложений и утилит
для работы с ним. В стандартном дистрибутиве KDE имеется более сотни программ — от
игр и системных утилит до целых блоков офисных программ. Кроме того, приложения KDE
могут взаимодействовать друг с другом для упрощения выполнения всевозможных
операций.
2.2 Компоненты рабочего стола KDE.
Рабочий стол KDE разделен на три основные части - " поверхность" рабочего стола,
панель и линейку задач. Основная рабочая область среды KDE называется рабочим столом.
Это тот фон, на котором отображаются все другие компоненты. На рабочем столе можно
размещать ярлыки программ, документов и устройств, к которым чаще всего приходится
обращаться. Это позволяет легко получать доступ к соответствующим объектам для работы с
ними. Кроме той области, что отображается на экране, KDE предоставляет дополнительное
виртуальное рабочее пространство для выполнения программ. По умолчанию
поддерживается четыре виртуальных рабочих стола. Виртуальный рабочий стол — это, по
сути, другой экран, на который можно переключиться для того, чтобы запустить приложение
или выполнить еще какую-то работу. Программы и окна легко перемещаются между
различными
виртуальными
рабочими
столами.
Дополнительные
возможности,
предоставляемые за счет использования виртуальных рабочих столов, могут быть
использованы самыми разными программами. При этом нет необходимости сворачивать и
разворачивать окна выполняемых приложений. Можно просто отложить выполняемое
приложение в таком виде, как есть, а затем вернуться к нему по завершении выполнения.
77
2.2.1 Панель
Панель располагается в нижней части экрана. На панели размещаются кнопки,
позволяющие выполнять основные процедуры KDE, а также ярлыки наиболее часто
используемых программ. Одним из особо важных элементов на панели является кнопка
Application Starter (Запуск Приложений), которая расположена (по умолчанию) в левой части
панели. Это кнопка с литерой "К" над изображением зубчатого колеса. С ее помощью можно
открыть меню, в котором представлены все приложения, установленные на данную систему.
Кроме того, это же меню может быть использовано для доступа к некоторым другим
разделам KDE, таким, как диалоговая справка и Панель Управления (Control Panel).
На панели размещен переключатель виртуальных рабочих столов Пейджер, Панель
Задач (Taskbar) и Часы (Clock). Панель задач отображает открытые на текущем рабочем
столе окна. Чтобы получить немедленный доступ к программе, нужно просто щелкнуть в
соответствующем месте на панели задач.
Запустить на выполнение программу можно одним из перечисленных ниже способов.
• Щелкнуть кнопкой на панели. Некоторые программы представлены по
умолчанию на панели в виде ярлыков или кнопок, например эмулятор виртуальных рабочих
столов, панель управления, вызов справки и текстовой редактор.
• Щелкнуть на элементе рабочего стола. По умолчанию на рабочем столе
размещается только два объекта. Это Корзина и ярлык рабочего каталога. Пользователи сами
размещают на рабочем столе наиболее нужные и часто используемые программы.
• Выбрать программу из меню запуска приложений. Достаточно щелкнуть на
литере " К" и выбрать тот пункт меню, который соответствует запускаемому приложению.
• Использовать диспетчер файлов. В окне диспетчера файлов нужно выбрать
соответствующий файл и щелкнуть на нем мышью.
Можно, конечно, запустить программу на выполнение в командной строке окна
терминала - задать название программы. Можно также нажатием клавиш <Alt+F2> вызвать
окно запуска программ и ввести туда название программы.
Ряд полезных программ облегчает работу пользователя.
В первую очередь, это программа эмуляции терминала konsole, позволяющая
открывать окна и получать доступ к стандартной командной строке. На панели имеется
соответствующая кнопка с изображением маленького монитора и ракушки.
Справку в диалоговом режиме можно получить, если щелкнуть на кнопке панели с
изображением спасательного круга. Справка включает в себя разные темы, как, например,
программа-гид для начинающих пользователей и система контекстного поиска для
используемых в KDE приложений.
Просмотреть файловую систему или получить доступ к ресурсам World Wide Web
можно, используя окно диспетчера файлов. Для того чтобы диспетчер файлов отобразил в
своем окне содержимое рабочего каталога, нужно щелкнуть на папке панели с изображением
домика.
Щелканье по кнопке ► удаляет панель с экрана. Эта кнопка остается при этом на
экране, так что можно вернуть панель обратно. Это свойство действует только на открытый в
данный момент рабочий стол; другие рабочие столы сохраняют вид мини - или главной
панели.
Список задач - кнопка, расположенная справа от меню приложений (обозначена
пиктограммой монитора), несет меню, содержащее все активные на данный момент окна,
отсортированные по имени. Это позволяет легко и быстро найти необходимое окно и
уменьшает захламленность экрана при работе с несколькими окнами.
78
2.3.2 Настройка KDE
Центр управления (Control Center) (кнопка с изображением гаечного ключа)
составляет основу всей системы настроек KDE. В ее входит множество панелей для
всевозможных компонентов рабочей среды и даже некоторых приложений KDE.
В центре управления используется деление на группы, щелкнув на знаке "плюс" в
углу группы, можно увидеть список входящих в группу компонентов. Щелкнув на знаке
"минус" в том же углу группы, этот список можно свернуть. Доступ к любому диалогу с
раскрытым деревом меню можно получить при помощи Preferences (Предпочтения) и из
меню запуска программ Start Application.
Большинство диалоговых окон имеют кнопку вызова справки. В самом простом
случае это контекстная справка. Для ее получения нужно щелкнуть мышью на знаке вопроса
на рамке окна. Курсор мыши при этом изменит свой вид на стрелку с большим знаком
вопроса. Если теперь щелкнуть на том элементе диалогового окна, с которым возникли
трудности, появится прямоугольник желтого цвета с текстом справки. Для получения более
детальной справки можно воспользоваться опцией Help (Справка) на левой панели. Наконец,
если возникли проблемы с поиском необходимого диалогового окна, на этой же панели
нужно выбрать опцию Search (Поиск). Затем нужно ввести ключевое слово, по которому и
будет осуществляться поиск.
Control Center
KDE предоставляет широкие возможности по модифицированию внешнего вида окон
и рабочей области, включая отображение фона, ярлыков, шрифтов и тому подобное. Не
представляет труда и управление работой отдельных компонентов, вроде того же рабочего
стола или окна. Например, можно управлять реакцией элемента на щелчок мышью,
процессом загрузки и отображения выбранных окон, выбирать хранитель экрана. Все эти и
многие другие возможности может предоставить рассматриваемая группа Control Center.
Для настройки параметров работы рабочего стола и окон следует выбрать опцию
нужного диалога настройки под названием Desktop на дереве центра управления.
Изменение схемы цветов
Диалоговое окно выбора цвета Appearance&Themes => Colors (Цвета) предназначено
для изменения используемой цветовой схемы для окон KDE и других графических
приложений.
Цветовая схема включает в себя 18 пунктов выбора цвета для различных элементов
окна программы и установки контрастов. В области предварительного просмотра
отображаются все элементы окна, реагирующие на изменение цветовой схемы. Как только
пользователь меняет параметры или установки, в области просмотра отражаются внесенные
изменения. Можно выбрать уже готовую цветовую схему из списка Color Scheme (Схема
Цветов).
Для изменения какой-то конкретной установки нужно выбрать соответствующий
элемент из выпадающего меню области цветов Widget Color (Декорация) или щелкнуть в
нужной части окна предварительного просмотра. После того как элемент выбран, можно
изменить его цвет. Для этого достаточно щелкнуть на кнопке и выбрать понравившийся цвет
из появившегося диалогового окна выбора цвета.
Контраст изменяется при помощи позиционирования специального рычажка
контраста, который может размещаться в диапазоне от Low (Низкий) до High (Высокий). Эти
установки применяются при отображении трехмерных рамок вокруг элементов интерфейса
приложений KDE.
Для подтверждения выбора следует щелкнуть на кнопке Apply (Применить). Если
приходится часто менять цветовые установки, бывает полезно внести изменения в список
цветовых схем. Для этого нужно щелкнуть на кнопке Save Scheme и задать название для
79
своей схемы. Для удаления схемы из списка нужно выделить ее и щелкнуть на кнопке
Remove (Удалить).
Изменение фона
Для изменения цвета фона или фонового узора рабочего стола нужно на дереве
опций центра управления последовательно выбрать Control
Center=>Appearance&Themes=>Background. В результате появится диалоговое окно,
имеющее три основные области:
• список виртуальных рабочих столов;
• окно предварительного просмотра;
• окно настройки параметров.
Каждый виртуальный стол в KDE имеет собственные настройки фона. Для каждого
такого стола можно выбрать фон с одноцветной или двухцветной палитрой, а также фоновый
узор. Если используется фоновый узор, можно задать способ его отображения. Можно также
выбрать несколько узоров и автоматически переключаться между ними. Доступны и более
усовершенствованные опции, позволяющие сочетать цвета и узоры, а также поддерживать
динамические настройки фона.
В процессе внесения изменений в установки они отображаются в окне
предварительного просмотра.
Виртуальные рабочие столы
Производить настройку параметров виртуальных рабочих столов в KDE можно в
диалоговом окне Control Center =>Desktop =>Multiple Desktops.
Указатель Number of Desktops (Количество рабочих столов) показывает, сколько
виртуальных рабочих столов доступно. Их число может изменяться в диапазоне от одного до
шестнадцати. Здесь же можно задать название для рабочего стола, которое потом будет
отображено в списке окон (Window List) или использовано в настройках панели.
Хранитель экрана
Диалоговое окно выбора хранителя экрана Appearance&Themes == Screensaver
позволяет выбрать хранитель экрана и осуществить настройку его параметров. Опции
настройки бывают глобальные, как, например, опция установки времени запуска хранителя
экрана, и индивидуальные — для каждого отдельного хранителя. Диалоговое окно выбора
хранителя экрана имеет три основные секции:
• окно предварительного просмотра;
• список программ — хранителей экрана;
• опции настройки.
Необходимо выбрать название нужной программы из предложенного списка. Для
настройки параметров необходимо щелкнуть на кнопке Setup (Настройка) и в появившемся
диалоговом окне произвести установку нужных характеристик.
Для установки интервала времени, через который будет запускаться хранитель экрана,
нужно ввести в поле опции Settings (Установки) величину данного интервала в минутах.
Параметр Priority (Приоритет) позволяет определить распределение процессором
времени на работу хранителя экрана. Это пример того, как в Linux организована
многозадачность. Если нужно, чтобы у хранителя был наивысший приоритет (например, для
качественного вывода анимации), следует передвинуть рычажок в позицию High (Высокий).
Если же, наоборот, необходимо обеспечить высокий приоритет других процессов, нужная
позиция для рычажка приоритетности хранителя — Low (Низкий).
Для того чтобы проверить выполненные установки, следует щелкнуть на кнопке Test
(Просмотр). Для подтверждения сделанного выбора нажмите кнопку ОК или Apply.
80
Настройка диспетчера окон
С помощью опций Control Center Appearance&Themes => Desktop/Window behavior
(Поведение Окон) центра управления можно устанавливать поведение диспетчера окон. Эти
настройки определяют способ отображения окон в случае их перемещения и изменения
размера, а также управляют процессом разворачивания, размещения и выделения окон при
работе с диспетчером окон. Опции в верхней части диалогового окна позволяют выполнить
настройку параметров, задающих режим перемещения окна и изменения его размеров, а
также определяют функциональность команды Maximize (Развернуть). Можно задать такой
режим отображения окна при перемещении или изменении его размера, что окно будет
отображаться вместе со всем своим содержимым или же в виде прозрачной рамки. Если
выбран режим отображения всего содержимого окна, процесс перемещения или изменения
размеров окна будет требовать дополнительного времени для обновления отображаемых на
экране элементов.
Если используются окна с изменяемыми размерами, можно выбрать режим
обновления содержимого окна при каждом изменении его размера. Для этого следует
воспользоваться установками Resize (Изменение размера). Для выбора частоты обновления
можно воспользоваться специальным рычажком. Если сделан выбор, отличный от None
(Никакой), то каждый раз, при изменении размеров окна, его содержимое будет обновляться.
Это дает возможность отслеживать процесс заполнения окна программой и позволяет
выбрать оптимальные размеры последнего.
Window behavior/Moving - меню установок размещения окна на экране Placement
(Расположение) позволяет определить место на экране, где будет отображаться окно.
Поддерживаются такие методы.
• Smart (Умный) — минимизируется перекрытие между окнами.
• Cascade (Каскад) — первое окно отображается в левом верхнем углу. Следующее
окно отображается сдвинутым немного вправо и вниз, так что окна практически полностью
перекрываются. И так далее. Окна расположены, как карты в руке при игре в преферанс.
• Random (Произвольный) — окна располагаются на экране в произвольном
порядке.
Метод получения фокуса (т.е. метод выделения отдельных окон или элементов)
является, пожалуй, индивидуальным методом настроек KDE. С помощью этого метода
определяется, какое из открытых окон активно и какие следует выполнить действия при
активизации окна. Более детально это выглядит так.
• Click to focus (Передача фокуса щелчком). Окно получает фокус (т.е. становится
активным) при щелчке на нем мышью. При этом окно автоматически выводится на первый
план по отношению к другим окнам. Такой метод используется по умолчанию.
• Focus follows mouse (Фокус за мышью). Окно получает фокус при
непосредственном обращении к нему (это можно сделать с помощью указателя мыши,
используя комбинацию клавиш <Alt+Tab> и тому подобное). При этом окно может
подниматься поверх других окон, а может и не подниматься. Перемещение указателя мыши
на рабочую область за пределы окна не означает потерю последним фокуса. При выборе
опции Auto Raise (Всплывать автоматически) окно будет всплывать на экране при
перемещении в его область курсора в течение нескольких миллисекунд. Число этих
миллисекунд устанавливается с помощью рычажка Delay (Задержка). Если выбрана опция
Click Raise (Всплывать при щелчке), окно будет подниматься поверх других окон при
щелчке в любой части окна. В противном случае такая реакция окна будет наблюдаться
только при щелчке на его заголовке. Это исключительно полезный метод передачи фокуса,
поскольку позволяет набирать текст в одном окне и одновременно читать содержимое
другого окна, расположенного частично поверх указанного.
• Focus Under Mouse (Фокус под мышью). Окно получает фокус при любом
перемещении на него указателя мыши. При этом комбинация клавиш <Alt+Tab> может и не
помочь.
81
• Focus Strictly Under Mouse (Фокус только под мышью). Окно получает фокус,
только если указатель мыши находится внутри окна. Если указатель мыши находится в
рабочей области, где нет окон, ни одно из окон не получит фокус.
Использование окон
Открытое окно состоит из следующих элементов.
Window menu (Меню управления окном) - В левом верхнем углу каждого окна
находится пиктограмма манипулирования окном. При щелчке на ней появляется меню,
содержащее команды с помощью которых можно манипулировать данным окном. Maximize
(Максимизировать) увеличит окно до максимально возможного размера. Minimize
(Минимизировать) сделает ваше окно невидимым. Move (Переместить) позволяет
передвигать окно с помощью мыши. Size (Изменить размер) позволит вам увеличить или
уменьшить окно. Shade - свернет окно до заголовка. То desktop...(На рабочий стол) позволит
перевести окно на другой рабочий стол. Выберите рабочий стол, на который вы хотите
переместить это окно. Окно при этом исчезнет. Для того чтобы увидеть его снова, выберите
имя на Линейке задач, или щелкните на соответствующую кнопку рабочего стола на панели
KDE. Close (Закрыть) закроет данное окно. Always on Top - оставляет окно поверх всех
открытых окон.
Использование панели меню каждого окна в КDЕ очень просто. Щелкните на
команду, и она будет исполнена. При нажатии на правую кнопку мыши появится
контекстное меню, позволяющее вывести на экран панель меню. Можете отсоединить меню
от окна и оставить его "плавать" по экрану.
Ниже панели меню находятся пиктограммы инструментов, которые позволяют
исполнять различные команды. Можно передвинуть инструментальную панель - влево,
вправо, вверх, вниз, и, конечно, она тоже может "плавать".
3. Порядок выполнения работы
Запустите Центр управлений.
Поменяйте Фон, сначала на одноцветный, а затем вставьте фоновое изображение.
Установите хранитель экрана, на своё усмотрение, и режим ожидания равный минуте.
Сделайте так, чтобы окна передвигались вместе со всем их содержимым.
Задайте звуковой щелчок, подтверждающий нажатие каждой клавиши.
Измените ширину линейки панели.
Запустите диспетчер приложений. И запустите программу текстового процессора
KWord.
8. В другом рабочем столе откройте программу растрового редактора Paint.
9. Откройте KWord и наберите следующий текст:
10. The Quick Brown Fox Jumps Over The Lazy Dog, используя два разных
стиля по вашему выбору. Сохраните этот файл в домашнем каталоге пользователя,
закройте KWord.
11. Откройте ваш домашний каталог пользователя Konqueror'ом, создайте в нем каталог,
скопируйте ваш текстовой файл в этот каталог.
12. Ознакомьтесь с содержанием домашнего каталога, скопируйте с дискеты файлы.
13. Получите справку об интересующем вас объекте.
14. Создайте любой рисунок с помощью Paint, чтобы в нем были ВСЕ фигуры (1. эллипс, 2.
окружность, 3. линия, 4. прямоугольник, 5. круг) хотя бы по одному разу и
присутствовало не менее четырех цветов.
15. Сохраните файл с рисунком в домашнем каталоге, закройте Paint.
16. Скопируйте файл с рисунком в тот же созданный вами каталог.
17. Измените атрибуты доступа к созданным файлам.
18. Покажите преподавателю ваши файлы, затем удалите их.
1.
2.
3.
4.
5.
6.
7.
82
4. Возможность обработки объектов
Диспетчер файлов Konqueror предназначен не только для просмотра документов. Он
может также быть использован для настройки просматриваемых объектов и активной работы
с ними. Например, он использует систему типизации файлов KDE для запуска программ и
загрузки документов. Распознавание типа файла производится как для локальных файлов,
так и для файлов на удаленных узлах. Поэтому, таких проблем, как, скажем, выбор
отображаемых ярлыков или контекстных меню для данного элемента, не возникает. При
запуске файла на удаленной системе KDE загрузит этот файл и запустит нужное для работы
с ним приложение. Можно перетаскивать элементы из одного окна диспетчера файлов в
другое, создавая, таким образом, копию элемента или связь с этим элементом. Наконец, при
работе с локальной файловой системой, Konqueror может быть использован для изменения
атрибутов этой самой файловой системы (как, например, владелец файла и права доступа) с
помощью простого графического диалогового окна.
Прежде чем начинать работать с диспетчером файлов, полезно сначала познакомиться
с некоторыми элементами интерфейса пользователя. Ниже описаны те задачи, которые
можно решать с помощью Konqueror.
4.1. Работа с файлами и каталогами.
Чтобы начать работу с диспетчером файлов, достаточно щелкнуть на папке любого
каталога или щелкнуть кнопкой с изображением глобуса на панели. В результате запустится
диспетчер файлов, и в главном окне будет выведено содержимое рабочего каталога. Эта
область называется областью просмотра. Как правило, в основном окне такая область
просмотра единственная. Тем не менее, там также есть область, где отображается дерево
каталогов, которая вместе с областью просмотра занимает место в основном окне при его
отображении на экране. Наконец, там еще можно увидеть и область эмуляции окна
терминала.
4.1.1. Область просмотра
В области просмотра, как правило, отображается содержимое выбранного каталога.
Для обозначения элементов в каталоге используются ярлыки, которые определяются типом
файлов. Вид окна просмотра можно изменить. Для этого нужно воспользоваться опциями
меню View (B^)=>View Mode (Способ отображения). Существует пять отображаемых типов
(согласно опциям меню View).
• Icon View (ярлыки). Содержимое каталога отображается в виде больших ярлыков,
помещенных в рамку.
• Text View (Текст). Выводится детальный листинг файлов и каталогов со всеми их
атрибутами.
• MultiColumn View (Колонки). Выводится в виде колонок только название файлов и
их мини-ярлыки.
• Detailed List View (Список). Выводится та же информация, что и в режиме Text
View, только включая еще и мини-ярлыки для идентификации типа файлов.
• Tree View (Дерево). Все точно так же, как в предыдущем случае, только теперь
каждый ярлык может быть развернут в дерево подкаталогов.
Обычно скрытые файлы (те, имена которых начинаются с точки) в описанных выше
списках файлов не отображаются. Для того чтобы включить такие файлы в листинги, нужно
выбрать опции меню View(Bид)=>Show Hidden Files (Показывать скрытые файлы).
Переходить между каталогами с помощью диспетчера файлов можно несколькими
способами. Для перехода в подкаталог нужно щелкнуть на названии папки или каталога в
области просмотра. Для перехода в каталог высшего уровня можно щелкнуть на кнопке со
стрелкой вверх на панели инструментов диспетчера файлов. Для переключения между
каталогами, которые уже посещались, можно использовать кнопки со стрелками влево и
вправо на той же панели инструментов. Каждая из этих кнопок имеет маленькую стрелочку,
83
направленную вниз. Это значит, что если удерживать кнопку нажатой, можно будет увидеть
список адресов, куда можно перейти. Для кнопки со стрелкой вверх такой список будет
состоять из каталогов вышестоящих уровней - первого, второго и так далее. Для кнопок со
стрелками влево и вправо это будут каталоги, которые последовательно посещались. Их
хронологический порядок записан в кэш-памяти.
Для переключения на элемент, помеченный закладкой, нужно выбрать
соответствующий пункт из меню закладок Bookmarks (Закладки).
Наконец, для перехода в нужное место файловой системы можно просто ввести адрес
перехода в поле Location (Адрес), размещенном в верхней части окна диспетчера файлов.
Это же можно сделать и при помощи выпадающего диалогового окна Open Location
(Открыть Адрес). Для этого достаточно выбрать опции меню Location =>Open Location. К
тому же результату приведет нажатие комбинации клавиш <Сит+О>. При вводе адреса его
можно указывать как обычный путь к каталогу или как URL. При работе с локальной
файловой системой следует использовать префикс file.
4.1.2. Дерево каталогов
Левое подокно окна диспетчера файлов, как правило, используется для отображения
дерева каталогов. По умолчанию оно скрыто, но при помощи опций в меню диспетчера
файлов 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 (Корневой каталог). Соответствует корневому каталогу
файловой системы.
В подокне просмотра дерева каталогов отображаются только каталоги. Файлы и связи
там не показаны. Для того чтобы развернуть или свернуть каталог, нужно щелкнуть на
квадрате со знаком плюс или минус соответственно, размещенном слева от названия
каталога. Когда каталог свернут, в квадрате отображается плюс, когда же каталог раскрыт, в
квадрате появляется минус. Для отображения в окне просмотра содержимого каталога нужно
в подокне просмотра дерева каталогов щелкнуть мышью на названии этого каталога
(при этом должна быть установлена связь между окнами, подробнее об этом рассказано в
разделе "Установка связи между окнами").
4.1.3. Окно эмуляции терминала
В нижней части окна диспетчера файлов можно вывести эмуляцию окна терминала
(что-то вроде консольного устройства). Для этого достаточно выбрать опции меню
Window(Окно)=>Show Terminal emulator (Показать окно эмуляции терминала). Это позволит
получить доступ к командной строке, где можно обычным способом вводить команды
LINUX. Когда с помощью дерева каталогов или в окне просмотра пользователь переходит в
другой каталог, изменение текущего каталога будет автоматически отображаться и в этом
окне (при установленной связи между окнами). А вот перемещения, выполняемые в окне
эмуляции терминала с помощью команды cd, не изменят содержимого области просмотра и
подокна дерева каталогов.
4.1.4. Установка связи между окнами
84
Изменения, внесенные в области просмотра диспетчера файлов или подокна дерева
каталогов, могут отражаться и в других окнах. По умолчанию все окна связаны друг с
другом, так что они будут отражать одни и те же каталоги. Иногда бывает полезно убрать
такую связь для отдельного окна, чтобы оно отражало какой-то один каталог.
Для установки или снятия связи между окнами, нужно воспользоваться опцией View
= Link View (Связать). Между всеми выделенными таким способом окнами устанавливается
связь, поэтому они будут отображать одинаковые каталоги. Единственным исключением
является эмулятор окна терминала. При использовании команды cd эмулятор терминала с
другими окнами работать синхронно не будет.
4.1.5. Создание окон
Три окна, используемые в диспетчере файлов, — это только начало. Пользователь
может создать несколько копий окна просмотра или эмулятора терминала. Причем каждая
копия может работать с разными каталогами или узлами 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 (Убрать окно) или нажать комбинацию клавиш <Ctrl+Shift+R>. Для
изменения размера нужно при помощи мыши переместить границу между двумя соседними
окнами.
4.1.6. Сохранение формата
Для использования созданного пользователем формата для отображения на экране
диспетчера файлов, этот формат нужно сохранить. Для этого следует воспользоваться
опциями Settings(Установки) => Save View Profile (Сохранить профиль).
Сначала для профиля нужно задать название или воспользоваться уже
существующим. Затем следует определить, нужно ли сохранять в профиле URL (опция Save
URLs in profile). Если соответствующая опция выбрана, то каждый раз при загрузке профиля
будет происходить обращение к URL.
4.2. Задачи управления
В этом разделе описываются те задачи по управлению файловой системой, которые
можно решать с помощью диспетчера файлов. Сюда следует включить получение
информации о файлах, копирование, перемещение и удаление файлов, изменение таких
атрибутов файлов, как название, владельцы и права доступа к ним.
85
4.2.1. Получение информации о файле
Одна из самых основных процедур заключается в получении информации о файле.
Получить ее можно самыми разнообразными способами.
Например, панель состояния отображает данные о размере и типе объекта, который
выделен при помощи курсора мыши. Поэтому для получения такой информации достаточно
навести указатель мыши на интересующий объект.
Более детальную информацию о файле можно получить, если в меню View/View
Mode (Вид) выбрать опции Text View (Текст) или Detailed List (Список). В этом случае о
каждом элементе в выведенном на экран списке можно узнать такие подробности, как тип,
размер, название, время изменения, права доступа, владелец, группа и наличие связей.
Ярлыки в окне просмотра, устанавливающиеся KDE автоматически, соответствуют типу
каждого элемента. В KDE для отображения файлов различных типов используется большое
число ярлыков. По негласному соглашению для каталогов используется ярлык в виде папки,
для документов — ярлыки с изображением листа бумаги, а для программ — ярлык с
изображением зубчатого колеса.
4.2.2. Выбор элемента
Некоторые действия с объектами можно выполнять прямо в окне диспетчера файлов.
Существует много способов, с помощью которых можно выделять группы объектов и
производить с ними разнообразные процедуры.
Для выбора объекта без его запуска нужно щелкнуть на нем мышью, удерживая при
этом нажатой клавишу <Ctrl>. Объект будет при этом затемнен. Это означает, что он
выделен. Для того чтобы к выделенному объекту добавить еще один, или убрать объект из
группы выделенных объектов, используется та же описанная процедура. Можно выделить
группу объектов, захватив их в рамку при помощи курсора мыши.
Большую группу объектов, которую неудобно или просто невозможно выделить с
помощью мыши, можно выделить, используя названия и спецификацию шаблона. Для этого
нужно в меню Edit (Правка) выбрать опцию Select (Выделить) или нажать комбинацию
клавиш цифровой панели <Сгг1+ПЛЮС>. Затем в диалоговом окне Select files (Выделить
файлы) следует ввести названия файлов или спецификацию шаблона. Затем нужно щелкнуть
на кнопке ОК, после чего будут выделены все файлы, отвечающие заданному шаблону.
Аналогично, из группы выделенных файлов можно и убирать файлы. Для этого в меню Edit
следует выбрать опцию Unselect (Отменить выделение) или нажать комбинацию клавиш
цифровой панели < От^Мину^. Если воспользоваться опцией Edit= UnselectAll (Отменить
для всех), будет отменено выделение для всех выделенных до этого объектов. К тому же
результату приводит нажатие комбинации <Ctrl+U>. Опция Edit=>Invert (Наоборот)
приведет к выделению невыделенных файлов и отмене выделения для выделенных. То же
можно сделать, нажав <Ctrl+*>.
4.2.3. Перемещение и копирование файлов
Наиболее простой способ переместить или скопировать файл из одного места
файловой системы в другое или создать связь с файлом заключается в том, чтобы выделить
его и просто перетащить мышью в нужное место. Таким способом можно перетаскивать
файлы из одного открытого окна диспетчера файлов в другое, между окном диспетчера
файлов и рабочим столом.
Иногда бывает трудно определить, какая из операций — копирование (Copy), или
перемещение (Move) - является наиболее приемлемой. Это особенно актуально для тех, кто
начинает работу с особыми файлами и каталогами KDE, вроде рабочего стола (Desktop).
Ниже приведены некоторые соображения по этому поводу.
• Если действительно необходимо создать копию объекта, следует выбирать Copy и
только Copy. Для программ такая процедура копирования используется редко. Что касается
документов и других подобных файлов, то все зависит от конкретных обстоятельств. Здесь
86
следует помнить, что если используется несколько копий одного файла, то внесение
изменений в одну из этих копий на других копиях не отражается. Поэтому, хотя и можно
размещать документы прямо на рабочем столе, желательно размещать там только связи с
документом, или перемещать туда файлы только на время.
• Если нужно изменить место хранения файла, следует выбирать Move. Как и в
предыдущем случае, эта процедура редко используется для программ и командных файлов.
Программы обычно хранятся в специальных каталогах, что отражено в указании
используемых в приложениях путей. Перемещение программы в другое место может
привести к тому, что она станет недоступной для использования при вызове из командной
строки.
• Для файлов конфигурации рабочего стола обычно используется команда
копирования или создается связь. Иногда смещение файла рабочего стола с привычного
места приводит к некорректной его работе. Например, файл рабочего стола MimeType может
быть использован, только если он находится в каталоге mimelink. Поэтому если нет
уверенности в правильности предпринимаемых действий, перемещать файлы рабочего стола
из их специальных каталогов в другие не стоит.
4.2.4. Удаление файлов
Для того чтобы удалить файл из файловой системы, можно воспользоваться одним из
трех способов: переместить файл в корзину (Trash), непосредственно удалить файл, или
вытереть его. Помещение файла в корзину означает его перемещение в каталог Trash, т.е.
файл будет продолжать занимать место в системе и его можно будет в будущем, если
потребуется, восстановить. Непосредственное удаление файла означает, что файл из системы
полностью удаляется с освобождением места. В этом случае восстановление файла
невозможно. Вытирание подразумевает предварительную запись в файл набора специальных
данных перед удалением. Это делается для того, чтобы быть уверенным, что даже самая
совершенная технология восстановления файлов не сможет восстановить его содержимое.
Для перемещения файла в корзину нужно в меню Edit или контекстном меню выбрать
опцию Move to Trash (Поместить в Корзину). Можно также просто перетащить нужный
объект из окна диспетчера файлов на пиктограмму с изображением корзины на рабочем
столе. Аналогично, для удаления файла (или файлов) нужно выделить этот файл (или файлы)
и затем выбрать опцию Delete (Удалить) из одного из упоминавшихся выше меню.
4.2.5. Запуск файлов
Запускать файлы из окна диспетчера файлов можно так же, как это делается при
использовании рабочего стола. Можно либо просто щелкнуть на выбранном объекте, либо
перетащить объект к нужной программе, либо войти в контекстное меню документа и с
помощью опции Open With (Открыть с помощью) выбрать программу из списка.
Если щелкнуть один раз мышью на объекте, KDE выберет необходимый способ
действий, исходя из типа файла. Если KDE не в состоянии определить программу,
используемую по умолчанию для работы с файлом, KDE предложит пользователю
самостоятельно выбрать такую программу.
4.2.6. Изменение файлов и каталогов
В KDE, за счет использования простого и понятного графического диалога для работы
с объектами, изменение атрибутов объектов файловой системы является очень простой
задачей. Для получения доступа к этому диалоговому окну нужно выбрать опцию Properties
(Свойства) из контекстного меню объекта. После этого появится диалоговое окно со
вкладками, разными для объектов разного типа. Но первые две вкладки одинаковы для
объектов всех типов. Это вкладка General (Общие) и Permissions (Доступ).
87
4.2.6.1. Изменение названия файла
Для того, чтобы изменить название файла, нужно выбрать из контекстного меню
этого файла опцию Properties. После того, как появится окно диалога, на вкладке General
нужно отредактировать название файла в поле Name (Название), затем нажать кнопку ОК.
4.2.6.2. Замена владельца и изменение прав доступа
Для замены владельца файла и прав доступа к нему в диалоговом окне Properties
нужно перейти на закладку Properties/Permissions (Права доступа). Для изменения прав
доступа к объекту в секции Access permissions (Права доступа) диалогового окна следует
напротив нужных опций поставить флажки. Чтобы изменить владельца файла или его
группы, нужно воспользоваться элементами управления в секции Ownership
(Принадлежность).
5. Порядок выполнения работы
1. Откройте окно диспетчера файлов Konqueror, щелкнув на кнопке Ноше на панели.
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.
6. Контрольные вопросы
1. Какие программы называются файловыми менеджерами?
2. Какая информация отражается в области просмотра программы Konqueror?
3. Как создать новое окно с помощью программы Konqueror?
4. Перечислите задачи по управлению файловой системой, которые можно решать с
помощью диспетчера файлов?
5. Перечислите стандартные функции KDE.
6. Что является компонентом рабочего стола KDE?
7. Назовите функции панели рабочего стола.
8. Как получить справку в диалоговом режиме?
9. Какие функции предоставляет центр управления KDE?
88
Лабораторная работа №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.
Например, 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 подробнее.
89
•Права доступа к файлу представляют собой группу символов: -rw-rw-r--. Первый символ (-)
указывает на тип объекта. Дефис говорит о том, что это обычный файл, d означает каталог, c
- символьное устройство, b указывает на блок-ориентированное устройство. •Права доступа
указываются последовательно - для пользователя, группы и всех остальных. Отсутствие
права на какой-либо вид доступа обозначается знаком дефиса. Тремя основными типами
прав доступа являются: r - право на чтение, w - право на запись и x - право на выполнение.
•Далее следует число ссылок на данный файл.
•Владелец. Другими словами, здесь указывается, какой учетной записи принадлежит этот
файл. Изменить владельца можно с помощью команды chown.
•Группа, к которой принадлежит пользователь. Обычно члены этой группы имеют более
свободные права доступа к файлу, в отличие от всего остального мира. •Размер файла и дата
его создания (модификации). Назначение прав доступа
Права доступа к объекту могут быть заданы двумя способами: в цифровой или в буквенной
форме. При использовании буквенной формы эти три категории обозначаются так: u пользователь (владелец), g - группа, o - остальные и a - все эти категории вместе. Тремя
основными типами прав доступа являются: r - право на чтение, w - право на запись и x -право
на выполнение. Комбинации r, w и x для трех категорий и являются правами доступа к
файлу:
User Group Others
rwx rwx
rwx
Многие пользователи предпочитают представлять права доступа с помощью цифрового
кода, базирующегося на 8-ричной системе счисления. Ниже даны значения прав доступа в
числовой нотации:
•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).
Отсюда видно, что владелец и члены группы могут выводить содержание каталога и
записывать в него. Все остальные пользователи могут только выводить содержание каталога.
(Чтобы увидеть содержание каталога, необходимо иметь разрешение на выполнение).
Вы заметили, что в выходных данных команды 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. Чтобы задать
желаемое изменение в этой команде используют разные формы записи, включая
90
восьмеричную и мнемоническую. В мнемонической форме параметры команды 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
Допустим, мы хотим запретить всем без исключения пользователям модифицировать
этот файл. Сделать это можно с помощью команды 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:
# rm -fr /
Эта команда не только удалит все файлы и каталоги на вашей машине, но может
также стереть файловые системы даже на удаленных компьютерах. Только эта возможность
уже является достаточной причиной для соблюдения особой осторожности во время работы
с правами доступа пользователя root.
Работать в Linux в качестве root следует в тех случаях, когда необходимо
сконфигурировать файловую систему или провести работы по ремонту или сопровождению
операционной системы. Добавление пользователей
Чтобы быстро добавить пользователя, выполните команду useradd и задайте в ней имя
пользователя:
# useradd winky
91
После добавления пользователя необходимо с помощью команды 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
Здесь отображаются используемый по умолчанию идентификатор группы, домашний
каталог, политика учетной записи и пароля (активны всегда, срок действия
пароля не ограничен), используемый по умолчанию командный интерпретатор и каталог, в
котором хранятся параметры командного интерпретатора, используемые по умолчанию.
Удаление пользователей
Для удаления учетной записи используется команда 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.
92
Практические задания
Задание 1. Запустить Linux.
Задание 2. Запустить консоль Linux и войти в систему под пользователем root.
1. Запустить окно программы-оболочки Bash. Это окно очень напоминает командную
строку Windows. В окне этой программы вы видите приглашение: [email protected]:~$
2. Введите после приглашения команду sudo su: [email protected]:~$ 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:
После ввода пароля вы увидите приглашение: [email protected][/]$
3. Введите команду whoami и убедитесь в том, что вы зашли в систему из-под
пользователя student.Для завершения работы с пользователем воспользуйтесь
командой logout.
Задание 4. Перейти в корневой каталог и просмотреть его содержимое
1. Перейдите в корневой каталог:
2. Просмотрите его содержимое командой ls либо dir.
Задание 5. Ознакомьтесь с файловым менеджером Midnight Commander.
1. Запустите оболочку Bash. Для этого щелкните по значку ATerminal EJZ51 на
рабочем столе.
2. Запустите программу Midnight Commander, используя команду mc.
Рассмотрим основные элементы окна этой оболочки. Большую часть окна занимает
левая панель, правая панель. Ниже этих панелей располагается строка, позволяющая вводить
команды Linux. Ещё ниже располагается строка, содержащая краткое напоминание о
назначении функциональных клавиш (говорят также «горячих») программы. В верхней части
93
окна располагается строка меню. Рассмотрим назначение некоторых клавиш и клавиатурных
команд, применяемых при работе с Midnight Commander:
Клавиши
TAB
F3
F4
F5
Клавиши
F6
F7
F8
F9
F10
CTRL+O
CTRL+U
Insert
серый плюс
Таблица 3. Назначение клавиш оболочки Midnight Commander
Назначение
переключение между панелями
просмотр файла
редактирование файла
копирование файла
Назначение
переименование (перемещение) файла
создание каталога
удаление файла
активизация меню
выход и командной оболочки
убрать обе панели
поменять панели местами
пометка файлов
выбор группы файлов (работает при включенном режиме Num Lock)
Используя клавиши управления курсором, выберите подсветкой каталог и раскройте его
содержание, нажав клавишу <Enter>.
Перейдите в корневой каталог. Для того чтобы переходит в родительский каталог,
необходимо выбирать подсветкой пункт /..
Перейдите в каталог /ramdisk
Создайте в каталоге /ramdisk подкаталог student.
Скопируйте в каталог /ramdisk/student каталог ~home (он находится в корневом каталоге /)
Выйдите из Midnight Commander, нажав F10.
Задание 6. Навигация по файловой системе из командной строки.
Запустите программу оболочку bash.
Зайдите в каталог /ramdisk/student с помощью команды cd:
[email protected]:~$ cd /ramdisk/student
[email protected]:/ramdisk/student$
Перейдите в корневой каталог:
[email protected]:/ramdisk/student$ cd /
[email protected]:/$
Перейдите в домашний каталог (домашний каталог обозначается символом «тильда» ~):
[email protected]:/$ cd ~ [email protected]:~$
Задание 7. Работа с текстовым редактором Vim
Запустите программу оболочку bash. Перейдите в каталог /ramdisk/student
Создайте в каталоге /ramdisk/student текстовый файл file1.txt: [email protected]:/ramdisk/student$ vi
file1.txt
Чтобы начать вводить текст нажмите одну из клавиш a, i или o. Для начала ввода текста
можно также воспользоваться клавишей <Insert>. Напечатайте в текстовом файле в первой
строке свою фамилию и имя, номер группы. В последующих строках наберите произвольный
текст. В конце файла ещё раз напечатайте свою фамилию и имя. Ввод каждой из строк
заканчивается нажатием клавиши <Enter>.
Сохраните файл и выйдите из текстового редактора. Для этого сначала нажмите <Escape>;
потом напечатайте :wq и нажмите <Enter>.
Просмотрите созданный вами файл. Для этого вновь выполните команду cat:
94
[email protected]:/ramdisk/student$ catfile1.txt
Задание 8. Управление файлами
Зайдите в каталог /ramdisk/student.
Переименуйте файл file1.txt в file.txt.
Создайте копию файла file.txt под именем file2.txt.
Удалите файл file.txt.
Найдите в файле file2.txt строки, содержащие ваше имя и отобразите их на экране.
Задание 9. Задание прав доступа к файлам и каталогам.
Зайдите в каталог /ramdisk/student
Просмотрите, какие права установлены для файла file2.txt. Для этого воспользуйтесь
командой ls:
[email protected]:/ramdisk/student$ ls —lfile2.txt
-rw-rw-r-- 1 dsl staff 111 Nov 18 06:41file2.txt
Установите права для файла file2.txt следующим образом: владелец, группа и все остальные
имеют на запись, чтение и выполнение: [email protected]:/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.
В таблице 4 приведены коды соответствия, определяющие полномочия на доступ к файлу.
Таблица 4- Коды соответствия, определяющие полномочия на доступ к файлу
Двоичный код Восьмеричный код Код доступа
0
1
2
3
4
5
6
7
Существует три категории пользователей:
• владелец;
• группа;
• все остальные.
000
001
010
011
100
101
110
111
—
--x
-w-wx
r-r-x
rwrwx
95
Каждой категории пользователей можно читать, редактировать, выполнять файл как
программу. Для назначения прав каждой категории пользователей отведена тройка бит.
Старший бит тройки отвечает за чтение, второй - за редактирование, младший – за
выполнение. Изменить код доступа к файлу можно командой chmod.
Спецификация команды:
chmod <код> <файлы>
Пример использования команды chmod:
chmod 777 myfile.com
В данном случае разрешается всем категориям пользователей выполнять все действия с этим
файлом.
Вышеописанный способ называют абсолютным способом установки прав. Кроме того,
можно воспользоваться и относительным способом изменения прав на доступ к файлу. Для
этого также используется команда chmod. Спецификация команды:
chmod <изменения> <файлы>
Изменения можно представить следующей формулой: 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. Просмотрите содержимое своего каталога. Объясните поведение системы. Назначьте
права созданному каталогу: разрешить пользователю всё, группе и всем остальным только читать (использовать относительные установки для изменения прав).
8. Просмотрите содержимое каталога /home в длинном формате. Убедитесь в
произведенном изменении.
9. Выполните пункты 6, 9 еще раз. Объясните поведение системы.
10. Измените права одному из созданных файлов: запретите пользователю писать
(использовать восьмеричный код для изменения прав).
96
11. Просмотрите содержимое своего каталога в длинном формате. Убедитесь в
произведенном изменении.
12. Откройте этот файл в текстовом редакторе VI. Добавьте в файл дополнительную
информацию. Выйдите из редактора с сохранением. Объясните поведение системы.
13. Измените права этому файлу: запретите всем всё (использовать восьмеричный код
для изменения прав).
14. Просмотрите содержимое своего каталога в длинном формате. Убедитесь в
произведенном изменении.
15. Отобразите содержимое этого файла (использовать, например, команду CAT).
Назначьте права созданному файлу: разрешить пользователю всё, группе -читать и
писать, всем остальным - только читать (использовать относительные установки для
изменения прав).
16. Просмотрите содержимое своего каталога в длинном формате. Убедитесь в
произведенном изменении.
17. Переключитесь на другое терминальное устройство. Войдите в систему
суперпользователем. Создайте еще одного пользователя. Переключитесь на третье
терминальное устройство. Войдите в систему под именем вновь созданного
пользователя.
18. Определите возможность этого пользователя работать с Вашими файлами.
Переключитесь на первое терминальное устройство. Измените одному из файлов
пользовательскую
принадлежность.
Измените
этому
файлу
групповую
принадлежность.
19. Переключитесь на третье терминальное устройство. Определите возможность этого
пользователя работать с Вашим файлом, для которого Вы изменили
пользовательскую принадлежность.
Контрольные вопросы
• Какие основные каталоги содержаться в корневом каталоге в Linux?
• Какую команду необходимо использовать, чтобы просмотреть содержимое каталога?
• Как обозначаются родительский каталог и домашний каталог пользователя? Какая
команда используется для навигации по файловой системе?
• Как запустить текстовый редактор vi? Какие клавиши нужно нажать, чтобы начать
вводить текст в этом текстовом редакторе? Как сохранить текст и выйти из
программы vi?
• Как удалить всю строку целиком в текстовом редакторе vi? Какие ещё команды vi для
работы с текстом вы знаете?
• Как просмотреть содержимое текстового файла?
• Какой командой осуществляется поиск в файле и вывод на экран строк, содержащих
заданный текст?
• Какие существуют права доступа к файлам и каталогам? Как задать права для файла,
чтобы он был доступен только для чтения для всех пользователей; для выполнения и
записи -только для владельца файла?
• Как войти в систему Linux? Как добавить, удалить нового пользователя?
• Как завершить работу с системой Linux?
• Для чего предназначена программа Midnight Commander?
• Почему нужно быть особенно осторожным при работе в системе Linux под
пользователем root?
• Что означают права доступа к файлу, обозначенные числом 762? Какие команды
нужно знать, чтобы добавить пользователя в систему? Как удалить пользователя в
Linux?
97
Список литературы
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. Основы операционных систем. Практикум. / В.Е. Карпов, К.А. Коньков / Под редакцией
В. П. Иванникова. [Электронный ресурс]. - Режим доступа: 11. http://www.INTUIT.ru.
12. Операционные системы : лабораторный практикум / сост. А. А. Попов, А. В. Савенко, А.
В. Шляпкин. – Тольятти : Изд-во ПВГУС, 2012. – 108 с.
98
Приложение 1. Перенаправление ввода-вывода команд ОС Windows
Операторы перенаправления ввода-вывода команд используются для изменения
местоположения потока ввода-вывода (дескриптора) команды (табл. 14), заданного по
умолчанию.
По умолчанию, входные данные команды (дескриптор StdIn в табл. 15) отсылаются
интерпретатору команд Cmd.exe с клавиатуры (стандартный вход), далее интерпретатор
команд отправляет выходные данные (дескриптор StdOut в табл. 15) в окно командной
оболочки (стандартный выход).
Оператор
№ п.п.
1.
>
1.
<
1.
>>
1.
>&
1.
<&
1.
|
Таблица 14. Операторы перенаправления потоков ввода-вывода
Описание
Пример
Вывод потока данных в файл
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 – сортирование каталога
данные одной команды и
записывает их на вход другой
команды.
Для задания требуемого дескриптора перед оператором перенаправления ввода-вывода
необходимо ввести его номер (табл. 15). Если дескриптор не задан, то по умолчанию
оператором перенаправления ввода «<» будет ноль (0), а оператором перенаправления
вывода «>» будет единица (1). После ввода оператора «<» или «>» необходимо указать,
откуда читать и куда записывать данные.
Таблица 15. Дескрипторы ввода-вывода
Дескриптор
№ п.п.
1.
2.
3.
4.
StdIn
StdOut
StdErr
Undefined
Числовой
эквивалент
0
1
2
3-9
Описание
Ввод с клавиатуры
Вывод в окно командной оболочки
Ошибка вывода в окно командной оболочки
Эти дескрипторы определяются индивидуально
для каждой прикладной программы.
99
Комбинируя команды-фильтры (Приложение 2) с другими командами и именами файлов,
можно создавать конвейеры команд. При использовании более одного фильтра в одной
команде их необходимо отделять с помощью «канала» ( | ). Например, следующий конвейер
ищет в каждом каталоге диска C файлы, в названии которых присутствует строка «Log», и
выводит их постранично на экран:
Dir c:\ /s /b | Find "Log" | More
«Канал» указывает интерпретатору команд Cmd.exe, что выход команды Dir нужно
отправить команде-фильтру Find. Последняя выбирает только те имена файлов, в которых
содержится строка «Log». Команда More выводит на экран имена файлов, полученные
командой
Find
с
паузой
после
заполнения
каждого
экрана.
Дополнительные сведения по перенаправлению ввода-вывода можно получить в справке ОС
Windows (Пуск | Справка и поддержка) в разделе Использование операторов
перенаправления команд.
100
Приложение 2. Команды-фильтры ОС Windows
Команда-фильтр используется с символом перенаправления «канала» ( | ) (Приложение 1) и
является командой внутри команды, которая считывает результат на выходе другой
команды, преобразовывает его, а затем записывает на выход. Команды-фильтры дают
возможность сортировать, просматривать и отбирать часть выходной информации других
команд. Ниже перечислены команды фильтры, доступные в ОС Windows (табл. 16).
Таблица 16. Команды-фильтры ОС Windows
№
п.п.
1.
Команда
Описание
More
2.
Find
3.
Sort
Отображает содержимое файла или результаты на выходе команды в
одном окне командной оболочки
Осуществляет поиск указанных символов в файлах и в результатах на
выходе команды.
Сортировка файлов и данных на выходе команды по алфавиту.
Для перенаправления данных из файла на вход команды-фильтра используется символ
«меньше» (<). Для перенаправления данных с выхода другой команды на вход командыфильтра используется «канал» ( | ).
Например, чтобы отобразить содержимое файла List.txt в одном окне командной строки
за один раз, введите следующую команду:
More < List.txt
Отображается одно окно командной оболочки с содержимым файла, а затем в нижней
части окна отображается строка --More--. Для перехода к ледующему окну командной
строки, нажмите любую клавишу на клавиатуре, кроме клавиши PAUSE. Для остановки
листинга следует нажать комбинацию клавиш CTRL+C.
Команда-фильтр More полезна при работе с командами, создающими выход более
одного окна командной оболочки. Например, в случае, когда вывод дерева каталогов
жесткого диска с помощью команды Tree занимает более одного окна командной оболочки,
чем может быть одновременно выведено, можно использовать эту команду с «каналом» ( | ) и
командой 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.
101
Для сохранения результатов работы команды Find в определенном файле, перенаправьте
вывод посредством символа «больше» (>) и задав имя файла:
Find "Pacific Rim" < Trade.txt > Nwtrade.txt
Команда-фильтр Sort выполняет сортировку по алфавиту текстового файла или результатов
на выходе команды. Следующая команда сортирует содержимое файла List.txt и отображает
результаты в окне командной оболочки:
Sort < List.txt
В этом примере команда Sort сортирует строки файла List.txt в алфавитном порядке и
выводит результат на экран без изменения файла. Для сохранения результатов работы
команды Sort в определенный файл, необходимо ввести символ «больше» (>) и имя файла,
как показано ниже:
Sort < List.txt > Alphlist.txt
Для сортировки результатов поиска следует ввести команду Find, затем символ ( | ) и
команду Sort. Например, сортировка строк в алфавитном порядке, содержащих слово "Jones"
осуществляется следующим образом:
Find "Jones" Maillst.txt | Sort
102
Приложение 3. Пример оформления отчета по лабораторной работе
СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ
Кафедра автоматизированной обработки информации
ОТЧЕТ
ПО ЛАБОРАТОРНОЙ РАБОТЕ № 3
«Организация пакетных файлов и сценариев в ОС Windows»
ПО КУРСУ: Операционные системы
Выполнил:
____________________
Проверил:
____________________
Владикавказ 2013