Цель курса: научиться автоматизировать часто выполняемые команды и описывать логику, взаимодействие с пользователем, циклы, меню, функции и тд. Получить навыки чтения, написания и отладки UNIX-скриптов.
Категория Слушателей: Системные администраторы Linux и специалисты, занимающиеся сопровождением крупных приложений, опытные пользователи Linux, а также Разработчики, Системные администраторы, Администраторы, Инженеры технической поддержки
Предварительная подготовка: Базовые знания по администрированию UNIX-систем, дополнительно рекомендуется пройти обучение на курсе Linux101 «Основы администрирования Linux» или аналогичный.
После окончания курса слушатель сможет:
- создавать программы на языке оболочки — Shell scripts;
- использовать перенаправление ввода/вывода;
- объединять команды в конвейер;
- определять типы команд;
- понимать и использовать услуги и подстановки, предоставляемые оболочкой;
- использовать кавычки для отказа от ненужных в данный момент услуг;
- указывать системе интерпретатор, который должен выполнять скрипт;
- учитывать порядок обработки командной строки при написании команд со сложными подстановками;
- использовать управляющие конструкции для расширения сферы применения скрипта;
- писать скрипты воспринимающие параметры и опции;
- включать в скрипт обработку исключительных ситуаций;
- упрощать взаимодействие с пользователем при помощи диалоговых окон и меню
Рассматриваемые темы
1. Введение в программирование на языке оболочки (Shell Programming).
- Обзор возможностей автоматизации задач администрирования
- Языки программирования и интерпретаторы
2. Основные понятия оболочки bash.
- Назначение командной оболочки
- Распространённые варианты командных оболочек
- Обзор командной оболочки bash
- Ведение в регулярные выражения
3. Потоки ввода/вывода.
- Стандартные потоки ввода и вывода stdin, stdout, stderr
- Перенаправление потоков и конвейерная обработка
- Пользовательские файловые дескрипторы
4. Типы команд; использование кавычек.
- Обзор типов команд
- Принципы выполнения команд
- Использование кавычек (экранирование)
5. Подстановки, выполняемые оболочкой; интерпретация команд.
- Подстановки командной строки (Alias)
- Подстановка команды
- Порядок интерпретации команд
6. Основные элементы скрипта.
- Определение скрипта
- Основные элементы скрипта
- Порядок выполнения скрипта
- Создание и запуск скрипта
7. Операции с переменными.
- Переменные оболочки и их типы
- Локальные переменные
- Переменные окружения
- Зарезервированные переменные
- Специальные переменные
- Полезные переменные среды Bash
- Создание переменных
- Экспортирование переменных
8. Управление последовательностью выполнения (операторы цикла, case, if, test).
- Оператор if и его формы
- Оператор case и его формы
- Команда test
- Операторы цикла
- Оператор for
- Оператор while
- Оператор until
9. Функции.
- Функции в командной оболочке
- Позиционные параметры и функции
- Возврат значения
10. Обработка параметров и опций при помощи getopts.
- Использование оператора getopts
- Способы задания аргументов
- Обработка некорректных опций
11. Обработка сигналов при помощи trap.
- Сигналы посылаемые процессу
- Перехват сигналов
- Обработка пользовательских ошибок
- Сигнал ERR
12. Создание меню при помощи select.
- Описание оператора select
- Зарезервированная переменная PS3
- Вложенные меню
13. Создание диалоговых окон при помощи dialog.
- Обзор инструмента dialog
- Организация меню
- Списки зависимых кнопок и флажков
- Создание индикатора
- Выбор файла
14. Финальная тестовая лабораторная работа