Проверочная № 2
Формат проведения проверочной работы
Проверочная работа будет проходить в удалённом режиме. Всем студентам будет одновременно выдано проверочное задание. Время выполнение задания — 1.5 часа с момента начала.
Задание для всех студентов выдаётся одинаковое. Совместное решение задач запрещено. При наличии признаков совместного решения всем участникам будет зачтена оценка 0.
Для каждого задания необходимо разработать Bash-скрипт, решающий поставленную задачу. Все скрипты необходимо объединить в архив и загрузить в качестве ответа на Moodle.
Проверяемые знания
- Базовое использование командного интерфейса.
- Понятие текущего рабочего каталога. Знание особенностей использования абсолютных и относительных путей. Изменение текущего рабочего каталога.
- Манипулирование структуры каталогов файловой системы. Копирование, перемещение и удаление файлов и каталогов.
- Понятие о типах команд в Bash. Чтение руководств и встроенной помощи в зависимости от типа команды.
- Знание структуры файловой системы Linux: назначение каталогов и их структура.
- Перенаправление потоков ввода-вывода, использование конвееров. Знание типичных фильтров для обработки данных.
- Расширение строк в Bash: расширение пути, расширение скобок, арифметическое расширение, расширение параметров, подстановка команд.
- Права доступа к файлам в Linux, изменение прав текстовым и буквенным способом, изменение владельца и группы файлов.
- Написание скриптов на языке Bash.
- Проверка качества исходного кода с помощью ShellCheck.
- Поиск файлов с помощью приложений find и fd-find.
- Установка приложений с помощью пакетного менеджера APT в Debian.
- Настройка списка APT-репозиториев.
- Переход между версиями дистрибутива.
- Управление состоянием служб с помощью команд systemd.
- Создание описания собственных служб systemd.
Задача
Реализуйте набор скриптов, который позволит организовать систему подсчёта птиц для орнитологов. Факт наблюдения за птицей из следующих полей:
- Время встречи с птицей.
- Название вида птицы.
- Место наблюдения за птицами.
- Комментарии.
Скрипты должны позволять выполнять следующие действия:
- Добавлять факт встречи с птицей в журнал текущего дня. Формат журнала — простой текстовый файл, где каждый факт записан на одной строке. Для удобства обработки столбцы можете разделять символом табуляции,
\t
. -
Формировать статистику по встрече с различными видами птиц за указанный день или за весь срок наблюдения. Пример вывода статистики:
воробей: 55 синица: 40 снегирь: 5
- Формировать статистику по дням: сколько птиц было встречено за указанные дни наблюдений.
- Формировать статистику по месяцам: сколько птиц было встречено за указанные дни наблюдений, какое количество мест было посещено.
Помимо скриптов добавьте:
- Файл
readme.txt
, в котором будет описано назначение и способ вызова каждого скрипта, - Файлы с примером данных, над которыми работают скрипты. Необходимо иметь журналы наблюдения минимум за 3 дня.
Реализованные скрипты не должны содержать ошибок с точки зрения ShellCheck.