Код курса: ADV-SHELL
Длительность: 5д (40ч)
Код экзамена:
Стоимость без НДС: $440.
Описание
Курс «POSIX Shell программирование» предназначен для системных администраторов и «продвинутых» пользователей систем *NIX, которые используют эти системы на регулярной основе. Материал курса включает наиболее важные аспекты создания сценариев на POSIX-оболочках, таких как posix-shell, Korn-Shell, a-shell, BASH и т.д. В курсе рассматриваются приемы автоматизации различных задач управления подсистемами *NIX. Значительную часть курса занимают вопросы использования SED и AWK в сценариях Shell. Материал этого курса и материал лабораторных работ построены с учетом того, что слушатели в будущем будут выполнять функции системных администраторов или администраторов сети. В этом курсе содержится множество примеров, которые призваны помочь слушателям получить более глубоки знания и умения, а также проверить эти знания на практике. Примеры представляют собой небольшие упражнения по написанию shell-сценариев и сценариев с использованием awk. Примеры являются неотъемлемой частью лекционного материала и приедены не в ознакомительных целях, а в качестве упражнений, которые должны выполнять слушателю. Лабораторные работы а конце каждого модуля являются небольшими исследованиями, которые слушатели должны выполнить самостоятельно.
Аудитория
Опытные пользователи и администраторы систем Unix/Linux
Приобретаемые навыки
- Создавать, редактировать и тестировать сценарии.
- Использовать переменные окружения и специальные символы shell.
- Использовать регулярные выражения (утилиты grep, sed, и awk).
- Писать сценарии sed для не интерактивного редактирования текста.
- Писать сценарии awk.
- Использовать статус возврата.
- Обрабатывать аргументы командной строки переданные сценарию.
- Управлять сообщениями об ошибках и других исключительных ситуациях.
- Использовать логические конструкции и конструкции циклов.
- Использовать целочисленную арифметику.
- Обрабатывать сигналы к процессам.
Программа
Модуль 1 – Введение в POSIX Shell программирование
- Процесс создания сценария для POSIX shell.
- Процесс обработки команд оболочкой shell.
- Как shell выполняет команды.
- Как некоторые установки среды выполнения влияют на исполнение сценария.
- Как подготовить файл для выполнения его в качестве сценария shell.
- Обзор основных свойств интерпретатора POSIX shell.
Модуль 2 – Сценарии Shell
- Общая структура сценария.
- Как специфицировать имя интерпретатора, который будет использоваться для обработки команд тела сценария.
- Как создавать и выполнять простые сценарии shell.
- Комментарии в сценариях.
- Как правильно завершить сценарий.
Модуль 3 – Переменные
- Как создавать переменные POSIX shell.
- Как создать и использовать переменные в теле сценария.
- Как пометить переменные для экспортирования в порождаемый процесс.
- Как получить значение переменной.
- Как использовать конкатенацию переменных и подстроки.
Модуль 4 – Ввод данных
- Как присвоить значения переменным с помощью команды read.
- Как получить доступ к параметрам командной строки.
- Как проверить параметры на содержимое (на значения).
- Как установить умолчания для переменных.
- Как использовать встроенные переменные Shell имеющие отношения к параметрам командной строки.
Модуль 5 – Проектирование вывода сценария
- Атрибуты переменных, содержащих строковые данные.
- Как использовать команду typeset.
- Как управлять выводом с помощью кавычек.
- Основы использования возможностей терминала.
- Как использовать команду tput для изменения местоположения вывода на экране.
- Как управлять местоположением курсора.
- Как отключать эхопечать терминала с помощью команды stty.
Модуль 6 – Арифметика Shell
- Как декларировать переменные целого типа с помощью typedef .
- Как назначать значения переменным с помощью команды let .
- Как назначать значения переменным с использованием синтаксиса (( … )) .
- Использование арифметических операторов.
- Как работать с целыми, имеющими различное основание системы счисления.
- Как использовать инструменты для вычисления значений выражений.
Модуль 7 – Ветвления и логические проверки
- Как вывести на экран значение статуса возврата предыдущей командной строки .
- Как использовать логические операции в виде команды ((…)) .
- Применение команды test для оценки логических значений .
- Как использовать альтернативы команды test – […] , [[…]] .
- Как выполнять командную строку только когда логические состояния TRUE или FALSE .
- Как применять управляющую последовательность if … then … fi.
- Как применять альтернативное ветвление elif .
- Как использовать конструкции case …esac для выбора из множества альтернатив .
- Как применять анализ совпадения по шаблону в конструкции case …esac .
Модуль 8 – Шаблоны Shell
- Простые шаблоны Shell .
- Как использовать некоторые составные шаблоны для генерации имен файлов .
- Как использовать шаблоны и регулярные выражения для поиска совпадений .
Модуль 9 – Программные циклы
- Понятие «программный цикл»
- Как управлять исполнением циклов с помощью оператора while .
- Как управлять исполнением циклов с помощью оператора until .
- Как управлять исполнением циклов с помощью оператора for .
- Как прервать выполнение цикла с помощью оператора break .
- Как продолжить выполнение цикла с данной точки (команда continue) .
- Как завершать работу сценария с помощью команды exit .
- Как использовать цикл типа select для конструирования структур меню.
Модуль 10 – Команда getopts
- Как использовать команду gteopts для управления опциями сценария
- Как определять опции, которые требуют указания аргумента.
- Как использовать специальные переменные OPTIND и OPTARG.
Модуль 11 – Массивы переменных
- Как сохранять множественные элементы в массивах переменных .
- Как получать значение одного или более элементов массива .
- Как получать количество элементов массива, которым присвоены значения.
Модуль 12 – Функции и библиотеки функций
- Как декларировать функции shell для текущей сущности shell .
- Как получать список текущих функций shell с помощью команды typeset –f.
- Как декларировать функции shell в теле файла сценария shell.
- Как передать функции один или более аргументов.
- Как декларировать внутренние (function-specific) переменные функции.
- Как использовать команду return для возвращения значения в тело основного сценария.
- Как использовать рекурсивный вызов функции.
- Как создать файл библиотеки функций.
- Как использовать переменную $FPATH для поиска библиотек функций.
- Как использовать команду autoload для декларирования функций.
Модуль 13 – Управление вводом и выводом
- Применение дескрипторов файлов (3-9) при перенаправлении ввода/вывода.
- Как перенаправлять ввод из файла данных в сценарий.
- Как перенаправлять вывод из сценария в файл данных.
- Как читать строки данных в цикле while, используя перенаправления.
- Как использовать канал («трубы») для передачи данных внутрь цикла.
- Как использовать shell-управление here («документ здесь»).
Модуль 14 – Ловушки и сигналы
- Концепцию сигналов.
- Значения сигналов kill.
- Как интерактивно обрабатывать сигналы.
- Как обрабатывать сигналы с помощью команды kill.
- Как использовать команду trap для обработки сигналов.
- Как модифицировать установки терминала для посылки сигналов интерактивно.
Модуль 15 – Регулярные выражения
- Цели использования регулярных выражений.
- Как использовать команды, в которых применяются регулярные выражения.
- Как описывать метасимволы регулярных выражений.
- Как использовать команду grep для поиска совпадений с текстовыми образцами.
Модуль 16 – Введение в awk
- Как использовать awk для вывода на печать специфицированной колонки ввода.
- Как применять совпадение по шаблону expression и условные совпадения в awk
- Как применять команды awk, выполняемые до обработки входного потока с применением оператора BEGIN.
- Как применять команды awk, выполняемые после обработки входного потока с помощью оператора END.
- Как использовать встроенные переменные awk, такие как NF и NR.
- Как модифицировать разделители входного и выходного потоков и использованием FS, RS, OFS и ORS переменных.
- Как создавать и использовать файл программы awk.
- Как создавать и запускать на выполнение сценарий awk.
Модуль 17 – Переменные, строки и арифметические операторы
- Как создавать и использовать переменные в awk.
- Как передавать переменные среды из POSIX Shell в 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.
Требования
Слушатели должны иметь знания в объеме курса «Основы работы в среде UNIX» или аналогичного ему. Предварительных знаний по программированию в среде Shell не требуется.