BASH Программирование
BSFT

О КУРСЕ
Этот курс предназначен для пользователей систем *NIX, которые используют эти системы на регулярной основе. Материал этого курса и материал лабораторных работ спроектированы с учетом того, что слушатели в будущем будут выполнять функции системных администраторов и/или администраторов сети.
В этом курсе содержится множество примеров, которые призваны помочь слушателям получить более глубокие знания и умения, а также проверить эти знания на практике. Примеры представляют собой небольшие, функционально законченные фрагменты кода shell-сценариев и сценариев с использованием awk. Примеры являются неотъемлемой частью материала курса и используются как базовые шаблоны формирования первичных навыков разработки сценариев. Каждый модуль завершается лабораторной работой. Лабораторные работы являются небольшими исследованиями, которые слушатели должны выполнить самостоятельно.
АУДИТОРИЯ
Курс адресован в первую очередь «продвинутым» пользователям, действующим и будущим администраторам *NIX систем, а также всем тем, кто использует в своей работе оболочки *NIX.
ТРЕБОВАНИЯ К СЛУШАТЕЛЯМ
Слушатели должны иметь знания в объеме курса «Основы работы в среде UNIX» или аналогичного ему. Предварительных знаний по программированию в среде Shell не требуется.
Желателен опыт администрирования операционных систем *NIX.
ПО ОКОНЧАНИИ КУРСА
Слушатели будут способны:
- Создавать, редактировать и тестировать сценарии.
- Использовать переменные окружения и специальные символы shell.
- Использовать переменную «статус возврата».
- Обрабатывать аргументы командной строки.
- Управлять сообщениями об ошибках и других исключительных ситуациях.
- Использовать логические конструкции и конструкции циклов.
- Использовать целочисленную арифметику.
- Обрабатывать сигналы к процессам.
- Использовать регулярные выражения (утилиты grep, sed, и awk).
- Создавать небольшие сценарии sed для не интерактивного редактирования текста.
- Создавать сценарии awk.
ПРОГРАММА КУРСА
Модуль 1 — Введение в Shell программирование
- Процесс создания сценария для shell.
- Процесс обработки команд оболочкой shell.
- Как shell выполняет команды.
- Как некоторые установки среды выполнения влияют на исполнение сценария.
- Как подготовить файл для выполнения его в качестве сценария shell.
- Обзор основных свойств интерпретатора BASH.
Модуль 2 — Сценарии Shell
- Общая структура сценария.
- Как специфицировать имя интерпретатора, который будет использоваться для обработки команд тела сценария.
- Как создавать и выполнять простые сценарии shell.
- Комментарии в сценариях.
- Как правильно завершить сценарий.
Модуль 3 — Переменные
- Как создавать переменные shell.
- Как создать и использовать переменные в теле сценария.
- Как пометить переменные для экспортирования в порождаемый процесс.
- Как получить значение переменной.
- Как использовать конкатенацию переменных и операции с подстроками.
- Как использовать «срезы» строк
Модуль 4 — Ввод данных
- Как присвоить значения переменным с помощью команды read.
- Как получить доступ к параметрам командной строки.
- Как проверить параметры на содержимое (на значения).
- Как установить умолчания для переменных.
- Как использовать встроенные переменные shell имеющие отношения к параметрам командной строки.
Модуль 5 — Проектирование вывода сценария
- Как использовать команды typeset, declare
- Как управлять выводом с помощью кавычек.
- Как использовать основные возможности терминала.
- Как использовать команду tput для управления представлением на экране терминалы.
- Как управлять местоположением курсора.
- Как отключать эхопечать терминала с помощью команды stty.
Модуль 6 — Арифметика Shell
- Как декларировать переменные целого типа с помощью typedef, declare.
- Как назначать значения переменным с помощью команды let
- Как назначать значения переменным с использованием синтаксиса (( … ))
- Использование арифметических операторов.
- Как работать с целыми, имеющими разное основание системы счисления.
- Как использовать инструменты *NIX для вычисления значений выражений.
Модуль 7 — Ветвления и логические проверки
- Как вывести на экран значение статуса возврата предыдущей командной строки
- Как использовать логические операции в виде команды ((…))
- Применение команды test для оценки логических значений
- Как использовать альтернативы команды test – […] , [[…]]
- Как выполнять командную строку только когда логические состояния TRUE или FALSE
- Как применять управляющую последовательность if … then … fi.
- Как применять альтернативное ветвление elif
- Как использовать конструкции case …esac для выбора из множества альтернатив
- Как применять анализ совпадения по шаблону в конструкции case …esac
Модуль 8 — Шаблоны Shell
- Простые шаблоны Shell
- Как использовать некоторые составные шаблоны для генерации имен файлов
- Как управлять обработкой шаблонов с помощью команды shopt
- Как использовать шаблоны и регулярные выражения для поиска совпадений
Модуль 9 — Программные циклы
- Понятие «программный цикл»
- Как управлять исполнением циклов с помощью оператора while
- Как управлять исполнением циклов с помощью оператора until
- Как управлять исполнением циклов с помощью оператора for
- Как прервать выполнение цикла с помощью оператора break
- Как продолжить выполнение цикла со следующей итерации (команда continue)
- Как завершать работу сценария с помощью команды exit
- Как использовать цикл типа select для конструирования структур меню.
- Как использовать цикл «условный for»
Модуль 10 — Команда getopts
- Как использовать команду gteopts для управления опциями сценария
- Как определять опции, которые требуют указания аргумента
- Как использовать специальные переменные OPTIND и OPTARG
Модуль 11 — Массивы переменных
- Как сохранять множественные элементы в массивах переменных
- Как получать значение одного или более элементов массива
- Как получать количество элементов массива, которым присвоены значения.
- Как использовать «срезы» массивов
- Как копировать массивы
- Как использовать команду mapfile и встроенный массив MAPFILE
- Как использовать ассоциативные массивы в BASH
Модуль 12 — Функции и библиотеки функций
- Как декларировать функции shell для текущей сущности shell
- Как получать список текущих функций shell с помощью команд typeset и declare
- Как декларировать функции shell в теле файла сценария shell
- Как передать функции один или более аргументов
- Как декларировать внутренние (function-specific) переменные функции (объявления typeset и local)
- Как использовать команду return для возвращения значения в тело основного сценария
- Как использовать рекурсивный вызов функции
- Как создать файл библиотеки функций
- Как использовать эмуляцию механизма FPATH для поиска библиотек функций в BASH
Модуль 13 — Управление вводом и выводом
- Применение дескрипторов файлов (3-9) при перенаправлении ввода/вывода.
- Как перенаправлять ввод из файла данных в сценарий.
- Как перенаправлять вывод из сценария в файл данных.
- Как читать строки данных в цикле while, используя перенаправления.
- Как использовать канал («трубы») для передачи данных внутрь цикла.
- Как использовать shell-управление here («документ здесь»)
Модуль 14 — Ловушки и сигналы
- Концепция сигналов
- Значения сигналов kill
- Как интерактивно обрабатывать сигналы
- Как обрабатывать сигналы с помощью команды kill
- Как использовать команду trap для обработки сигналов
- Как использовать команду coproc для создания сопроцессов
- Как использовать дескрипторы файлов для организации взаимодействия сопроцеесов
- Как использовать «внутренние» сигналы BASH для отладки сценариев
- Как модифицировать установки терминала для посылки сигналов интерактивно.
Модуль 15 — Регулярные выражения
- Цели использования регулярных выражений
- Как использовать команды, в которых применяются регулярные выражения
- Как описывать метасимволы регулярных выражений
- Как использовать команду grep для поиска совпадений с текстовыми образцами.
Модуль 16 — Введение в awk
- Как использовать awk для вывода на печать специфицированной колонки ввода.
- Как применять совпадение по шаблону expression и условные совпадения в awk.
- Как применять команды awk, выполняемые до обработки входного потока с применением оператора BEGIN.
- Как применять команды awk, выполняемые после обработки входного потока с помощью оператора END.
- Как использовать встроенные переменные awk, такие как NF и NR.
- Как модифицировать разделители входного и выходного потоков и использованием FS, RS, OFS и ORS переменных.
- Как создавать и использовать файл программы awk.
- Как создавать и запускать на выполнение сценарий awk.
Модуль 17 — Переменные, строки и арифметические операторы
- Как создавать и использовать переменные в awk
- Как передавать переменные среды из BASH в awk
- Как использовать арифметические операторы, поддерживаемые в awk
- Как использовать функции работы со строками awk
- Как управлять форматом вывода с использованием print и printf
- Как совместно использовать awk и shell
- Как передать аргументы командной строки в awk
Модуль 18 — Управление потоком исполнения в awk
- Как использовать команду условия if
- Как использовать команду getline
- Как пользоваться командами next и exit.
- Как использовать циклы while и do-while
- Как использовать цикл for
- Как создавать и использовать одномерные и «многомерные» массивы
- Как создавать и использовать ассоциативные массивы
- Как использовать функцию split для создания массивов
- Как обрабатывать данные ассоциативных массивов с помощью цикла for
Модуль 19 — Потоковый редактор sed
- Как использовать редактор sed для выполнения подстановок заданного текста.
- Как использовать sed для удаления входных строк с использованием функции delete.
- Печатать и дублировать входные строки с использованием функции print.
- Как читать строки из другого файла в поток редактирования.
- Как записывать выходные строки в один или более файлов с помощью функции write.
- Как использовать различные функции редактирования в командной строке.
- Как создавать и использовать файл функций sed.
ДЛЯ КОГО ПРЕДНАЗНАЧЕН:
- Администраторы ПО
- Разработчик ПО
- Системный администратор
Для предварительной записи на курсы или уточнения информации позвоните по телефонам: +380 44 230 34 74
E-mail: education@erc.ua