ГлавнаяКаталог курсов › POSIX Shell — Программирование

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

Код курса
PSSFT
40
часов
5
дней
POSIX Shell — Программирование

О КУРСЕ

Этот курс предназначен для пользователей систем *NIX, которые используют эти системы на регулярной основе. Материал этого курса и материал лабораторных работ построены с учетом того, что слушатели в будущем будут выполнять функции системных администраторов или администраторов сети.

В этом курсе содержится множество примеров, которые призваны помочь слушателям получить более глубоки знания и умения, а также проверить эти знания на практике. Примеры представляют собой небольшие упражнения по написанию shell-сценариев и сценариев с использованием awk. Примеры являются неотъемлемой частью лекционного материала и приедены не в ознакомительных целях, а в качестве упражнений, которые должны выполнять слушатели. Каждый модуль завершается лабораторной работой. Лабораторные работы являются небольшими исследованиями, которые слушатели должны выполнить самостоятельно.

АУДИТОРИЯ

Курс адресован в первую очередь «продвинутым» пользователям, действующим и будущим администраторам *NIX систем, а также всем, кто использует в своей работе оболочки *NIX (ksh,  bash, dash, ash, posix и т.д.)

ПО ОКОНЧАНИИ КУРСА

Слушатели будут  способны:

  • Создавать, редактировать и тестировать сценарии.
  • Использовать переменные окружения и специальные символы shell.
  • Использовать регулярные выражения (утилиты grepsed, и 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.
  • Как модифицировать разделители входного и выходного потоков и использованием FSRSOFS и 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 не требуется.

Желателен опыт администрирования операционных систем *NIX.

ДЛЯ КОГО ПРЕДНАЗНАЧЕН:

  • Администраторы ПО
  • Разработчик ПО
  • Системный администратор
Поделиться
регистрация на курс
* обязательные поля для заполнения

Для предварительной записи на курсы или уточнения информации позвоните по телефонам: +380 44 230 34 74

E-mail: education@erc.ua