Проверочная №2. ПИЭ-2
Формат проведения проверочной работы
Проверочная работа будет проходить в удалённом режиме. Всем студентам будет одновременно выдано проверочное задание. Время выполнение задания — 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
на скачанном архиве.