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

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