21 School — Quest Guide

Полная инструкция
по всем квестам

Точные имена папок, файлов и PID-ов заранее неизвестны — их покажут сами скрипты. Здесь собраны шаблоны команд, которые решают каждую задачу.

Все файлы создаются в src/
Работа ведётся в ветке develop
Основные квесты
01
Clone — Клонирование репозитория
Git

Клонируем репозиторий по SSH, создаём ветку develop и убеждаемся, что папка src/ существует.

bash
# Клонируем репозиторий (подставь свою ссылку SSH)
git clone <URL_твоего_репозитория>
cd <имя_папки_репозитория>

# Создаём ветку develop и переключаемся на неё
git checkout -b develop

# Создаём src/, если её нет
mkdir -p src
02
Repo — Запуск скрипта инициализации
Bash

Выдаём права на исполнение скрипту ai_initial_module.sh, запускаем и фиксируем результат.

bash
# Выдаём права на исполнение
chmod +x src/ai_initial_module.sh

# Запускаем скрипт
./src/ai_initial_module.sh

# Фиксируем изменения
git add .
git commit -m "Quest 2: Запуск ai_initial_module"
git push origin develop
03
Dirs & Files — Чиним модуль дверей
Bash

Запускаем ai_door_management_module.sh, смотрим на ошибки, создаём нужные папки/файлы и записываем всё в quest3.sh.

bash
# Запускаем модуль, чтобы увидеть ошибки
./src/ai_door_management_module.sh

# Создаём недостающие папки или файлы
mkdir <имя_недостающей_папки>
touch <имя_недостающего_файла>

# Записываем успешные команды в quest3.sh
echo "mkdir <имя_недостающей_папки>" >  src/quest3.sh
echo "touch <имя_недостающего_файла>" >> src/quest3.sh

# Фиксируем
git add src/quest3.sh <другие_изменённые_файлы>
git commit -m "Quest 3: Fix door management config"
04
Kill Him — Завершаем процесс
System

Находим PID процесса ai_door_control.sh, завершаем его и записываем команды в quest4.sh.

bash
# Ищем процесс (PID — второй столбец)
ps aux | grep ai_door_control.sh

# Завершаем процесс (подставь номер PID)
kill <PID>

# Записываем команды в quest4.sh
echo "ps aux | grep ai_door_control.sh" >  src/quest4.sh
echo "kill <PID>"                          >> src/quest4.sh

# Фиксируем
git add src/quest4.sh
git commit -m "Quest 4: Terminated door control process"
05
Conf — Меняем конфигурацию двери
Nano

Открываем конфиг двери в nano, меняем STATUS на OPEN, и пишем текстовый отчёт в quest5.txt.

bash
# Открываем конфиг в nano
nano <путь_к_файлу_конфигурации>
# Меняем STATUS → OPEN, сохраняем: Ctrl+O, Enter, Ctrl+X

# Создаём текстовый отчёт
echo "1. Запустил nano <путь_к_файлу_конфигурации>"        >  src/quest5.txt
echo "2. Нашёл строку STATUS и изменил значение на OPEN"  >> src/quest5.txt
echo "3. Сохранил изменения и вышел из редактора"          >> src/quest5.txt

git add src/quest5.txt <путь_к_файлу_конфигурации>
git commit -m "Quest 5: Configured door status"
06
Rm — Генерируем и собираем ключ
Bash

Запускаем keygen.sh, удаляем мусорные файлы, запускаем unifier.sh, переносим папку. Всё записываем в quest6.sh.

bash
# Генерируем ключ
./src/ai_help/keygen.sh

# Удаляем мусорные файлы (например, по расширению)
rm src/ai_help/key/*.trash

# Объединяем части ключа
./src/ai_help/unifier.sh

# Переносим ключ и папку
mv main.key src/ai_help/
mv key/ src/ai_help/

# Фиксируем
git add src/quest6.sh src/ai_help/main.key src/ai_help/key/
git commit -m "Quest 6: Generated main key"
07
Branches — Работа с ветками
Git

Читаем инструкцию из src/git_for_human и создаём ветки согласно схеме внутри файла.

bash
# Читаем инструкцию
cat src/git_for_human/<имя_инструкции>

# Создаём ветку
git branch   <имя_ветки>

# Переключаемся на ветку
git checkout <имя_ветки>
Бонусные квесты
📝

Quest 8 — Vim

Дополняем историю Vim и пишем лог в src/files.log с размером, датой и SHA256.

bash
vim src/history_of_vim.txt
# i → редактируй → Esc → :wq

SIZE=$(stat -c%s src/history_of_vim.txt)
DATE=$(date +"%Y-%m-%d %H:%M")
HASH=$(sha256sum src/history_of_vim.txt)

echo "src/history_of_vim.txt - $SIZE - $DATE - $HASH - sha256" \
  >> src/files.log
⚙️

Quest 9 — Script

Скрипт src/edit.sh автозаменяет текст и обновляет лог.

bash — edit.sh (Linux)
# sed для замены (Linux/Bash)
sed -i "s/$2/$3/g" "$1"

# sed для замены (Mac/Zsh)
sed -i '' "s/$2/$3/g" "$1"
📖

Quest 10 — GitLab

Пишем Markdown-инструкцию src/gitlab_manual.md со скриншотами.

bash
touch src/gitlab_manual.md
# Внутри файла:
# # Заголовок
# ![описание](ссылка.png)