Adv Bash. Advanced Bash Scripting

Описание курса 19 Декабря 2016

Аудитория:
Пользователи имеющие опыт работы в Shell.
Предварительная подготовка:
Студентам, для успешного изучения данного курса необходимо:
• Знакомство с основами работы в Linux/GNU (UNIX) и редакторе VI
• Желательно чтобы студент был знаком с основными командами Linux/GNU (UNIX), включая: rm, cp, man, more, mkdir, ps and chmod.
• Манипулирование файлами и директориями, создание и редактирование файлов
• Знакомы с основами управления процессами и правами доступа к файлам
• Знакомы о основами перенаправления ввода/вывода

Приобретаемые навыки:
Это расширенный курс рассчитанный на студентов желающих научиться писать собственные скрипты и использовать все доступные возможности языка Bash. В данном курсе рассматриваются вопросы написания, отладки и тестирования приложений, а также использование таких потоковых редакторов как sed, и awk. Кроме этого вы научитесь работать с регулярными выражениями и использованием их для нахождения нужной информации и при обработке текстовых файлов.
Содержание курса:

Модуль 1. Введение

  • Зачем необходимо знание языка Shell?
  • Для начала о Sha-Bang.
  • Запуск сценария.

Модуль 2. Основы

  • Служебные символы.
  • Подстановка переменных.
  • Присваивание значений переменным.
  • Переменные Bash не имеют типа.
  • Специальные типы переменных.
  • Кавычки.
  • Завершение и код завершения.

Модуль 3. Проверка условий

  • Конструкции проверки условий (if).
  • Ветвления Else if и elif.
  • Операции проверки файлов.
  • Операции сравнения.
  • Вложенные условные операторы if/then.
  • Упражнение.

Модуль 4. Операции и смежные темы.

  • Операторы.
  • Числовые константы.
  • Внутренние переменные.
  • Работа со строками.
  • Использование awk при работе со строками.
  • Дальнейшее обсуждение.
  • Подстановка параметров.
  • Объявление переменных: declare и typeset.
  • Косвенные ссылки на переменные.
  • $RANDOM: генерация псевдослучайных целых чисел.
  • Двойные круглые скобки.

Модуль 5. Циклы и ветвления

  • Циклы.
  • Вложенные циклы.
  • Управление ходом выполнения цикла.
  • Операторы выбора.

Модуль 6. Внутренние команды.

  • Внутренние команды.
  • Ввод/вывод.
  • Файловая система.
  • Переменные.
  • Управление сценарием.
  • Команды.
  • Команды управления заданиями.

Модуль 7. Внешние команды, программы и утилиты.

  • Базовые команды.
  • Более сложные команды.
  • Команды для работы с датой и временем.
  • Команды обработки текста.
  • Команды для работы с файлами и архивами.
  • Команды для работы с сетью.
  • Команды управления терминалом.
  • Команды выполнения математических операций.
  • Прочие команды.

Модуль 8. Команды системного администрирования.

  • Системный журнал.
  • Управление заданиями.
  • Команды управления процессами и загрузкой.
  • Команды для работы с сетью.
  • Команды для работы с файловыми системами.
  •  Команды резервного копирования.
  • Команды управления системными ресурсами.
  • Команды для работы с модулями ядра.
  • Прочие команды.

Модуль 9. Подстановка команд.

  • Арифметические подстановки.
  • Перенаправление ввода/вывода.
  • С помощью команды exec.
  • Перенаправление для блоков кода.
  •  Область применения.

Модуль 10. Встроенные документы

Модуль 11. Регулярные выражения

  • Регулярные выражения. Globbing -- Подстановка имен файлов

Модуль 12. Глава 19. Подоболочки, или Subshells

  • Списки команд и массивы.
  • Ограниченный режим командной оболочки.
  • Подстановка процессов.

Модуль 13. Функции

  • Основы работы с функциями.
  • Сложные функции и сложности с функциями.
  • Перенаправление.
  • Локальные переменные.
  • Локальные переменные делают возможной рекурсию.
  • Псевдонимы.

Модуль 14. Дополнительные вопросы по оболочке shell

  • Списки команд.
  • Массивы.

Модуль 15. Работа с файлами и устройствами

  • Файлы. /dev и /proc. /dev/zero и /dev/null

Модуль 16. Отладка сценариев

  • Отладка сценариев.
  • Необязательные параметры (ключи).
  • Широко распространенные ошибки.
  • Стиль программирования.
  • Неофициальные рекомендации по оформлению сценариев.

Модуль 17. Разное

  • Интерактивный и неинтерактивный режим работы.
  • Сценарии-обертки. Операции сравнения:
  • Альтернативные решения.
  • Рекурсия.
  • "Цветные" сценарии.
  • Оптимизация.
  • Разные советы.
  • Проблемы безопасности.
  •  Проблемы переносимости.
  • Сценарии командной оболочки под Windows

Модуль 18. Bash, версия 2 и выше

Модуль 19. Учебник по Sed и Awk


Тренер:

Александр Мищенко