Опис курсу
Полный курс по программированию на bash, с учетом контекста современных задач администрирования Linux и DevOps автоматизации.
Зміст курсу
1. Введение
Типы shell, особенности bash, почему bash? Область применения. Запуск сценария. Служебные символы в сценариях. Локальные переменные, переменные окружения. Различные кавычки. Подстановка и присваивание значений переменным. Переменные позиционирования. Код завершения.
2. Основы
Конструкции проверки условий (if), ветвления Else if. Операции проверки файлов, сравнения. Вложенные условные операторы if/then. Операторы арифметические, логические. Списки команд. Внутренние переменные. Работа со строками. Declare и typeset. Косвенные ссылки на переменные. Использование $RANDOM. Двойные круглые скобки. Циклы и вложенные циклы. Рекурсия. Массивы. Функции. Работа с /dev, /proc, /dev/zero и /dev/null. Отладка сценария.
3. Внутренние и внешние команды
Ввод/вывод. Файловая система. Переменные. Управление сценарием. Внешние команды, программы и утилиты. Базовые команды. Команды для работы с датой и временем. Команды обработки текста. Команды для работы с файлами, архивами, файловыми системами. Команды для работы с сетью, управления терминалом. Математические операции. Системный журнал. Управление заданиями (jobs). Команды управления процессами и загрузкой. Команды резервного копирования, управления системными ресурсами, модулями ядра.
4. Подстановка команд и перенаправление
Арифметические подстановки. Файловые дескрипторы. Перенаправление ввода/вывода. Перенаправление с помощью exec. Перенаправление для блоков кода. Встроенные документы. Подстановка процессов.
5. Регулярные выражения
Регулярные выражения с grep, expr, sed, awk, regex. Обзор регулярных выражений в различных языках программирования. Regex в системах мониторинга и управления событиями. Globbing — подстановка имен файлов.
6. Лучшие практики и примеры
Стиль программирования и оформление. Вопросы переносимости. Безопасность. Цветные сценарии. Оптимизация. Примеры для наиболее популярных DevOps задач. Набор ссылок на полезные учебники, примеры кода, полезные задачки автоматизации администрирования.