МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Петрозаводский государственный университет
Математический факультет
Кафедра Информатики и математического обеспечения
УТВЕРЖДАЮ
декан математического факультета
«_______» __________ 2011 г.
Рабочая программа дисциплины
ОПЕРАЦИОННЫЕ ОБОЛОЧКИ
Направление подготовки
010400 Прикладная математика и информатика
Квалификация (степень) выпускника
Бакалавр
Форма обучения
очная
Петрозаводск
2011 г.
Общие сведения о дисциплине
Название дисциплины – Операционные оболочки
Факультет, на котором преподается данная дисциплина - Математический
Направление подготовки – Прикладная математика и информатика
Квалификация (степень) выпускника - Бакалавр
Цикл дисциплин – Б.2
Часть цикла – 6.2
Курс - 1
Семестры - 1
Всего зачетных единиц – 2
Всего часов – 72
Аудиторные занятия 36 часов (лекции 18 часов, лабораторные занятия – 18 часов)
Самостоятельная работа - 36 часа
Экзамен - нет
Зачет – 1 семестр
Составитель рабочей программы – преподаватель кафедры ИМО, к. ф.-м. н.,
1. Цели освоения дисциплины
Целью освоения дисциплины является изучение средств командного интерфейса пользователя POSIX-совместимых операционных систем, а также приобретение навыков создания и использования приложений с командным интерфейсом для решения пользовательских задач и задач управления операционной системой. Кроме того важным аспектом является приобретение теоретических знаний о принципах построения и архитектуре современных операционных систем и сред; принципах управления файлами и процессами с использованием особенностей командной оболочки операционной системы.
Дисциплина обеспечивает возможность эффективной работы специалиста на любых средствах вычислительной техники, начиная от персонального компьютера и локальных вычислительных сетей до больших корпоративных информационных систем и сетей.
2. Место дисциплины в структуре ООП бакалавриата
Дисциплина «Операционные оболочки» входит в цикл общепрофессиональных дисциплин базовой части. Необходимой базой для успешного освоения дисциплины является школьный курс «Информатика» на профильном уровне.
Знания и умения, приобретенные во время изучения курса «Операционные оболочки», будут необходимы студентам математического факультета при обучении дисциплинам: «Информатика», «Архитектура ЭВМ», «Операционные системы», «Системное программирование».
Приобретенные навыки работы с командным интерпретатором и освоение рабочей среды UNIX/Linux-подобных операционных систем полезны не только администратору или программисту, но и обычному пользователю.
3. Компетенции обучающегося, формируемые в результате освоения дисциплины «Операционные оболочки»
В процессе изучения данной дисциплины у студента должны формироваться следующие компетенции:
Общекультурные компетенции:
ОК-5 - способность понимать сущность и значение информации в развитии современного информационного общества, сознавать опасности и угрозы, возникающие в этом процессе, соблюдать основные требования информационной безопасности, в том числе защиты государственной тайны;
ОК-9 - способность осознать социальную значимость своей будущей профессии, обладать высокой мотивацией к выполнению профессиональной деятельности;
ОК-10 - способность и готовность к письменной и устной коммуникации на родном языке;
ОК-11 - способность владения навыками работы с компьютером как средством управления информацией;
ОК-12 - способность работать с информацией в глобальных компьютерных сетях;
ОК-13 - способность работать в коллективе и использовать нормативные правовые документы в своей деятельности;
ОК-14 - способность использовать в научной и познавательной деятельности, а также в социальной сфере профессиональные навыки работы с информационными и компьютерными технологиями;
ОК-15 - способность работы с информацией из различных источников, включая сетевые ресурсы сети Интернет, для решения профессиональных и социальных задач.
Профессиональные компетенции:
ПК-1 - способность демонстрации общенаучных базовых знаний естественных наук, математики и информатики, понимание основных фактов, концепций, принципов теорий, связанных с прикладной математикой и информатикой;
ПК-2 - способность приобретать новые научные и профессиональные знания, используя современные образовательные и информационные технологии;
ПК-8 - способность формировать суждения о значении и последствиях своей профессиональной деятельности с учетом социальных, профессиональных и этических позиций;
ПК-10 - способностью применять в профессиональной деятельности современные языки программирования и языки баз данных, операционные системы, электронные библиотеки и пакеты программ, сетевые технологии.
В результате освоения дисциплины обучающийся должен
Знать:
1. архитектуру ОС UNIX/Linux (в частности подсистемы управления файлами и процессами);
2. командный язык shell (bash) в рамках стандарта POSIX.2;
3. структуру команды на языке shell (bash), алгоритм разбора командной строки интерпретатором shell, средства группировки команд в списки, конвейер;
4. набор утилит, определяемых стандартом POSIX.2;
5. редакторы sed и awk.
Уметь:
1. использовать интерпретатор в интерактивном режиме, вводить, редактировать и исполнять команды;
2. использовать справочную систему для получения сведений о командах и конструкциях языка;
3. применять средства перенаправления ввода-вывода, группировки, условного выполнения команд;
4. использовать метасимволы, шаблоны в именах файлов, средства экранирования метасимволов;
5. применять переменные shell, подстановки переменных, команд, арифметические подстановки;
6. использовать интерпретатор в пакетном режиме, создавать, редактировать и исполнять сценарии shell;
7. использовать позиционные и специальные параметры shell;
8. применять управляющие конструкции shell: средства организации ветвлений, циклов;
9. использовать потоковый редактор sed для пакетной обработки текстовых файлов;
10. создавать фильтры на языке awk для обработки структурированных текстов;
11. осуществлять анализ и обработку позиционных параметров сценария shell;
12. создавать дистрибутивы программного обеспечения в соответствии с соглашениями GNU.
Владеть: средствами создания CLI-приложений (shell скриптов) для решения пользовательских задач и задач по администрированию системы.
4. Структура и содержание дисциплины
Общая трудоемкость дисциплины (модуля) составляет 2 зачетных единицы 72 часа (36 аудиторных и 36 самостоятельная работа).
№ п/п | Раздел Дисциплины | Семестр | Неделя семестра | Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах) | Формы текущего контроля успеваемости (по неделям семестра) Форма промежуточной аттестации (по семестрам) | |||
Лек | Лаб | Сам | Сумма | |||||
1 | Введение. Командная среда ОС Linux. Язык shell (bash) | 1 | 1-2 | 2 | 2 | 3 | 7 | Прием лабораторных работ |
2 | Средства командной строки | 1 | 3-4 | 2 | 2 | 3 | 7 | Прием лабораторных работ |
3 | Подсистемы управления файлами и процессами | 1 | 5-6 | 2 | 2 | 3 | 7 | |
4 | Средства обработки текста. Команда grep | 1 | 7-8 | 2 | 2 | 3 | 7 | Прием лабораторных работ |
5 | Сценарии shell. Переменные и подстановки | 1 | 9-10 | 2 | 2 | 3 | 7 | |
6 | Сценарии shell. Управляющие конструкции | 1 | 11-12 | 2 | 2 | 3 | 7 | Прием лабораторных работ |
7 | Использование потокового редактора sed | 1 | 13-14 | 2 | 2 | 3 | 7 | Прием лабораторных работ |
8 | Фильтрация с помощью awk | 1 | 15- 16 | 2 | 2 | 3 | 7 | |
9 | Разбор параметров командной строки с помощью getopts | 1 | 17- 18 | 2 | 2 | 3 | 7 | |
1 | 9 | 9 | Зачет | |||||
Всего: | 18 | 18 | 36 | 72 |
5. Образовательные технологии
В процессе обучения используются смешанная модель обучения, включающая в себя пассивную, активную и интерактивную формы организации познавательной деятельности.
Пассивная форма обучения предполагает традиционный вариант проведения лекционных занятий. Каждое лекционное занятие включает в себя интерактивную часть: анализ конкретных примеров и совместное решение задач («мозговой штурм»). Введение интерактивной части способствует повышению интереса студентов к предмету обучения и, как следствие, повышению эффективности аудиторных занятий.
Активная часть модели обучения предполагает организацию самостоятельной работы студента. Студент имеет возможность предварительно ознакомиться с материалом предстоящей лекции (изучив слайды презентации) и получить дополнительные знания по теме лекции (изучив разделы учебного пособия).
6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины.
Виды самостоятельной работы:
1. Изучение слайдов презентации лекции
2. Изучение страниц руководства man для заданного набора команд и утилит shell
3. Изучение разделов учебного пособия
4. Выполнение лабораторных заданий
Порядок контроля выполнения лабораторных заданий:
Каждая лабораторная работа может быть оценена в 8 баллов и имеет свой срок. Если срок пропущен, то количество баллов, которые может получить студент за задачу, уменьшается вдвое на каждой следующей паре после срока. Задание может предъявляться к оценке при условии сдачи всех предшествующих заданий.
Основными критериями оценки выполненной студентом и представленной для проверки работы являются:
1. Степень соответствия выполненного задания поставленным требованиям;
2. Структурирование и комментирование текста программы;
3. Уникальность программы (отличие от программ коллег);
4. Успешные ответы на вопросы преподавателя по тексту программы.
ПРИМЕР ЛАБОРАТОРНОЙ РАБОТЫ
Цели работы:
Получить навыки работы в командной среде Linux в интерактивном режиме, исполнения простых команд, применения средств перенаправления ввода-вывода и средств экранирования метасимволов, освоить следующие команды, определенные стандартом Posix.2:
man | whatis | info | echo | id | whoami | who | pwd |
passwd | less | cat | ls (-l, - d) | cd | touch | wc | mkdir |
rmdir | rm (-r) | cp | mv | date | cal | recode | iconv |
Описание работы:
Шаг 1 (справка). 1) Используя справочные руководства man, whatis, apropos, info изучите общее назначение команд, перечисленных в разделе "Цели работы".
Шаг 2 (экранирование, перенаправление). Выполните экранирование специальных символов для следующих строк:
# | Строка |
1 | "a "bc$a" |
2 | a'abc$'c |
3 | a\b $c\$d |
таким образом, чтобы результатом выполнения команды
echo строка_с_экранированием
являлась исходная строка. Обоснуйте выбор средств экранирования.
2) Выполните перенаправление вывода команды echo в файл quoting. Каждую команду echo отправьте в файл commands (не забудьте про экранирование). В результате перенаправления в файле commands должно появиться три строки.
3) Объясните ошибку экранирования внутренней одинарной кавычки (') с помощью двойных кавычек (") для команды echo:
echo 'a"'"b'
Шаг 3 (простая команда, код возврата). Пользуясь справочной системой реализуйте командные строки, позволяющие получить описанные ниже результаты (самостоятельно определив необходимые параметры указанных команд). Каждую полученную строку отправьте в файл с именем commands. Убедитесь в успешности кода возврата каждой команды (echo $?).
# | Задание | Команды |
1 | Вывести список имен пользователей, работающих в системе, и их общее количество | who |
2 | Вывести текущую дату в формате 'dd полное_название_текущего_месяца yyyy' | date |
3 | Вывести календарь на 1752 год в файл calendar | cal |
4 | Вывести на экран содержимое файла calendar с нумерацией непустых строк | cat |
5 | Подсчитать количество слов в файле calendar | wc |
Шаг 4 (смена кодировок). Создайте в своем домашнем каталоге папку shell_lab1. Скопируйте в нее файл file_koi в кодировке KOI8-R. Перекодируйте файл из кодировки KOI8-R в кодировку CP1251 и UTF8, получив два новых файла file_win и file_utf соответственно. Убедитесь в успешной смене кодировок (например, используя команду iconv - f кодировка имя_файла). Сравните характеристики трех файлов (ls - l).
Критерии оценки работы
За задание можно получить 8 баллов. При этом задание должно быть выполнено полностью, сдаваться в срок, автор обязан понимать собственное решение и уметь объяснить суть основных понятий: командный интерпретатор, простая команда shell, параметры команды (опции), код возврата, метасимвол, экранирование, перенаправление.
Защищая работу, автор должен продемонстрировать:
1) умение работать со справочной системой (man, whatis, apropos, info);
2) 2) знание общего назначения приведенных в разделе "Цели работы" команд (например, echo — вывод строки текста);
3) 3) умение использовать операторы перенаправления и средства экранирования.
ВОПРОСЫ К ЗАЧЕТУ
1. Командный интерпретатор shell, назначение. Стандартизация shell (POSIX.2). Режимы работы. Приглашение командной строки
2. Простая команда shell, аргументы (обязательные параметры, опции), код возврата. Метасимволы и их экранирование. Подстановки в именах файлов. Примеры
3. Стандартный ввод-вывод. Механизмы перенаправления. Перенаправление вывода ошибок, подстановка строки, документа. Примеры
4. Разбор командной строки. Цикл работы интерпретатора. Алгоритм поиска команды для исполнения
5. Справочная система ОС Linux. Контекстная справка. Справочная система info. Страницы руководства man, разделы. Справка по встроенным командам shell (help, man bash)
6. Встроенные и внешние команды shell. Проверка type - a, which. Вызов внешней команды вместо внутренней (enable). Создание псевдонимов, примеры
7. Средства группировки команд (конвейер, списки). Синхронное, асинхронное, условное выполнение команд
8. Подстановка команды. Вложенная подстановка. Подстановка без разбиения на слова, примеры. Группировка команд (), {}.
9. Файловая система, файл, метаданные (inode). Жесткие, символические ссылки. Владение файлом, права доступа, смена прав доступа (chmod). Команды ln, ls - i, ls - l. Логическая структура файловой системы в ОС Linux
10. Подсистема управления процессами. Процесс. Типы процессов. Иерархия процессов. Атрибуты процесса (PID, PPID, nice number, TTY). Жизненный цикл процесса. Мониторинг и управление процессами (ps, nice, top). Сигналы (kill). Задачи (jobs, kill, fg, bg)
11. Регулярные выражения. Символьные классы POSIX. Поиск по образцу, команда grep. Примеры
12. Сценарии shell. Как создать и запустить сценарий shell? Переменные shell, объявление, инициализация, простая подстановка значения, команда declare. Позиционные параметры, количество, статус выхода последней команды. Команды set, shift
13. Оператор ветвления if, истинность условия, код возврата. Проверка условий test. Примеры
14. Организация меню. Оператор case, шаблоны, код возврата. Оператор select, использование break. Примеры
15. Операторы циклов while, until, for. Примеры
16. Потоковый редактор sed, синтаксис вызова, принцип работы, отличие от интерактивных редакторов. Формат команды sed, адреса. Команда s. Примеры
17. Язык фильтров awk, синтаксис вызова, принцип работы. Формат инструкции awk, шаблоны. BEGIN, END. Команда print. Примеры.
7. Учебно-методическое и информационное обеспечение дисциплины
Основная литература:
1. , . Операционные среды, системы и оболочки: базовый уровень. Учебное пособие. - Петрозаводск: Изд-во ПетрГУ, 2011, 101 c.
2. . Программирование в стандарте POSIX. Часть 1. Интернет-университет информационных технологий — ИНТУИТ. ру, 2004, 560 с.
3. Д. Тейнсли. Linux и UNIX: программирование в shell. Руководство разработчика: Пер. с англ. - К.: Издательская группа BHV, 2001, 464 с.
4. J. Goyvaerts, S. Levithan. Regular Expressions Cookbook. - \\ O'Reilly Media, 2009, 512 pp.
5. C. Johnson. Pro Bash Programming. - Apress, 2009, 264 pp.
6. M. Sobell. A Practical Guide to Linux(R) Commands, Editors, and Shell Programming. - Prentice Hall, 2005, 1008 pp.
Дополнительная литература:
1. , . Сетевые операционные системы. - СПб.: Питер, 2001, 544 с.
2. R. M. Stallman. Free Software, Free Society: Selected Essays of Richard M. Stallman. Boston: GNU Press, 2010, 266 c.
Программное обеспечение и Интернет-ресурсы:
1. M. Cooper. Advanced Bash-Scripting Guide. Version 6.3 [Электронный ресурс]. 2011. Режим доступа:\\http://tldp. org/LDP/abs/html/
3. Free Software Foundation. Bash Reference Manual [Электронный ресурс]. 2010. Режим доступа:\\http://www. gnu. org/software/bash/manual/
4. Free Software Foundation. Core GNU utilities manual [Электронный ресурс]. 2011. Режим доступа:\\http://www. gnu. org/software/coreutils/manual/
5. Free Standards Group. Linux Standard Base Specification 1.0.0 [Электронный ресурс]. Режим доступа:\\http://refspecs. freestandards. org/LSB\_1.0.0/gLSB. html
6. IEEE Standards Association [Электронный ресурс]. Режим доступа: http://standards. ieee. org/
8. Материально-техническое обеспечение дисциплины
Для выполнения лабораторных работ используется комплекс свободно распространяемого программного обеспечения:
- ОС Linux
- командный интерпретатор bash
- утилиты (GNU SHELL-UTILS)
- ssh-клиент
- sftp-клиент
Рабочая программа составлена в соответствии с требованиями Федерального государственного образовательного стандарта высшего профессионального образования (ФГОС ВПО) направления Прикладная математика и информатика (квалификация Бакалавр), 2010 г. с учетом методических рекомендаций и Примерной основной образовательной программы ВПО по направлению «Прикладная математика и Информатика» квалификация «Бакалавр».
Автор: к. ф.-м. н., преподаватель,
Программа рассмотрена и утверждена на заседании кафедры ИМО
30 сентября 2011 года, протокол № 6.
Зав. кафедрой
Программа одобрена на заседании учебно-методической комиссии математического факультета 28 октября 2011 года, протокол № 1.


