Формат проведения проверочной работы

Проверочная работа будет проходить в удалённом режиме. Всем студентам будет одновременно выдано проверочное задание. Время выполнение задания — 1.5 часа с момента начала.

Задание для всех студентов выдаётся одинаковое. Совместное решение задач запрещено. При наличии признаков совместного решения всем участникам будет зачтена оценка 0.

Для каждого задания необходимо разработать Bash-скрипт, решающий поставленную задачу. Все скрипты необходимо объединить в архив и загрузить в качестве ответа на Moodle.

Проверяемые знания

  • Базовое использование командного интерфейса.
  • Понятие текущего рабочего каталога. Знание особенностей использования абсолютных и относительных путей. Изменение текущего рабочего каталога.
  • Манипулирование структуры каталогов файловой системы. Копирование, перемещение и удаление файлов и каталогов.
  • Понятие о типах команд в Bash. Чтение руководств и встроенной помощи в зависимости от типа команды.
  • Знание структуры файловой системы Linux: назначение каталогов и их структура.
  • Перенаправление потоков ввода-вывода, использование конвееров. Знание типичных фильтров для обработки данных.
  • Расширение строк в Bash: расширение пути, расширение скобок, арифметическое расширение, расширение параметров, подстановка команд.
  • Права доступа к файлам в Linux, изменение прав текстовым и буквенным способом, изменение владельца и группы файлов.
  • Написание скриптов на языке Bash.
  • Проверка качества исходного кода с помощью ShellCheck.
  • Поиск файлов с помощью приложений find и fd-find.
  • Установка приложений с помощью пакетного менеджера APT в Debian.
  • Настройка списка APT-репозиториев.
  • Переход между версиями дистрибутива.
  • Управление состоянием служб с помощью команд systemd.
  • Создание описания собственных служб systemd.

Задача

Реализуйте набор скриптов, который позволит организовать систему публикации статей. Скрипты должны позволять выполнять следующие действия:

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

Статья набирается в формате Markdown, а публикуется в формате HTML. Для преобразования статьи в формат HTML используется инструмент pandoc. Пример вызова инструмента: pandoc -s -t html input.md -o output.html.

К статье могут быть приложены изображения. Исходные изображения могут быть любого размера. Однако для публикации допускаются изображения, которые не больше 400 пикселей в высоту и 600 пикселей в ширину. Для преобразования изображений используется инструмент convert. Путь к исполняемому файлу /usr/bin/convert. Пример вызова инструмента: convert -resize 640x480 input.jpg output.jpg.

Предполагается, что изображения будут находится в подкаталоге images финального каталога со статьями.

Помимо скриптов добавьте файл readme.txt, в котором будет описан способ вызова каждого скрипта.

Реализованные скрипты не должны содержать ошибок с точки зрения ShellCheck.

Заготовку такого проекта, содержащую несколько статей и несколько изображений, можно скачать по ссылке. Для распаковки архива необходимо выполнить tar xf md-html-project-template.tgz на скачанном архиве.