POSIX Shell Программирование

Курс «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 не требуется.

Запись на курс

Код курсаEA-ADV-SHELL
Длительность5д (40ч)
Код экзамена
Стоимость без НДС19 200 грн.
Ближайшие даты
  • 30.09.2019
  • 11.11.2019
spinner-it