Цифровой архитектор

LinuxBeginner
Практиковаться сейчас

Введение

Добро пожаловать в LabEx Corporation, день 2! После успешного вчерашнего обследования системы вас повысили до должности цифрового архитектора проекта Phoenix. Команда разработки высоко оценила вашу подробную документацию и внимание к деталям.

Однако возникла срочная проблема, требующая вашего немедленного внимания. Предыдущий системный администратор внезапно ушёл, и файлы проекта Phoenix оказались в полном беспорядке. Исходный код, документация и конфигурационные файлы разбросаны по одному каталогу. Критически важные настройки не защищены резервными копиями, а устаревшие файлы журналов загромождают сервер разработки, который вы обследовали вчера.

Ваша задача — создать чистую, логичную и эффективную структуру файлов, которая поддержит растущую команду разработки. Создав нужные каталоги, упорядочив файлы, защитив резервные копии и удалив устаревшие данные, вы заложите основу для успешного развития проекта Phoenix.

Ведущий разработчик Sarah Chen рассчитывает, что вы превратите этот хаос в организованную профессиональную среду разработки. Ваша сегодняшняя работа напрямую повлияет на производительность команды и сроки проекта. Начнём!

Создание структуры каталогов проекта

Сначала создайте правильную структуру каталогов внутри каталога phoenix_project. Чётко заданная структура отделяет разные типы файлов друг от друга, поэтому проект становится удобнее для навигации и обслуживания.

Задания

  1. Перейдите в каталог ~/project/phoenix_project.
  2. Создайте три новых подкаталога: src для исходного кода, config для конфигурационных файлов и docs для документации.

Требования

  • Все новые каталоги должны быть созданы внутри каталога ~/project/phoenix_project.
  • Имена каталогов должны в точности совпадать с src, config и docs.
  • Используйте одну команду, чтобы одновременно создать все три каталога.

Примеры

После выполнения этого шага структура каталогов должна выглядеть так:

~/project/phoenix_project/
├── config/
├── docs/
├── src/
├── README.md
├── config.json
└── main_app.py

Если выполнить ls -F в каталоге ~/project/phoenix_project, вы должны увидеть:

README.md  config/  config.json  docs/  main_app.py  src/

Символ / после имени указывает, что это каталог, а не файл.

Подсказки

  • Используйте команду cd, чтобы изменить текущий каталог.
  • Команда mkdir создаёт новые каталоги.
  • mkdir принимает несколько аргументов, поэтому с её помощью можно создать несколько каталогов за один раз.

Навигация и перемещение файлов проекта

Теперь, когда новая структура каталогов создана, переместите существующие файлы проекта в предназначенные для них каталоги. Это очистит корневой каталог проекта и упростит поиск файлов.

Задания

  1. Переместите файл main_app.py в каталог src.
  2. Переместите файл config.json в каталог config.
  3. Переместите файл README.md в каталог docs.

Требования

  • Перед перемещением файлов убедитесь, что вы находитесь в каталоге ~/project/phoenix_project.
  • Для перемещения каждого файла используйте команду mv.

Примеры

После перемещения файлов структура проекта должна выглядеть так:

~/project/phoenix_project/
├── config/
│ └── config.json
├── docs/
│ └── README.md
└── src/
└── main_app.py

Если выполнить ls -F в корневом каталоге ~/project/phoenix_project, команда должна показать только каталоги:

config/  docs/  src/

Теперь каждый файл должен находиться в соответствующем подкаталоге:

  • ls src/main_app.py
  • ls config/config.json
  • ls docs/README.md

Подсказки

  • Команда mv используется для перемещения или переименования файлов и каталогов.
  • Базовый синтаксис: mv [SOURCE] [DESTINATION].
  • Например, чтобы переместить file.txt в каталог documents, выполните mv file.txt documents/.

Создание резервной копии критически важного конфигурационного файла

Файл config.json содержит критически важные настройки проекта Phoenix. До внесения любых изменений необходимо создать его резервную копию. Ваша следующая задача — скопировать этот файл.

Задание

  1. Создайте резервную копию файла config.json.

Требования

  • Резервная копия должна быть создана в каталоге ~/project/phoenix_project/config/.
  • Имя резервного файла должно в точности совпадать с config.json.bak.

Примеры

После создания резервной копии в каталоге config должны находиться оба файла:

~/project/phoenix_project/config/
├── config.json
└── config.json.bak

Если выполнить ls в каталоге ~/project/phoenix_project/config/, вы должны увидеть:

config.json  config.json.bak

Содержимое обоих файлов должно быть одинаковым, поскольку файл .bak является точной копией исходного файла:

## These commands should show identical output
cat config.json
cat config.json.bak

Подсказки

  • Команда cp используется для копирования файлов и каталогов.
  • Синтаксис: cp [SOURCE] [DESTINATION].
  • Укажите полный путь к исходному файлу и полный путь к новому файлу резервной копии.

Реорганизация общих ресурсов команды

Вы обнаружили ещё одну часть проекта: каталог shared_docs, расположенный по пути ~/project/shared_docs. В нём находятся важные рекомендации для команды и спецификации API, которые должны быть частью документации проекта. Ваша задача — встроить этот каталог в основную структуру проекта.

Задание

  1. Переместите весь каталог shared_docs вместе со всем его содержимым в каталог ~/project/phoenix_project/docs/.

Требования

  • Исходный каталог: ~/project/shared_docs.
  • Путь назначения: ~/project/phoenix_project/docs/.
  • Нужно переместить весь каталог, а не только его содержимое.

Примеры

После перемещения каталога shared_docs структура документации должна выглядеть так:

~/project/phoenix_project/docs/
├── README.md
└── shared_docs/
├── api_spec.doc
└── team_guidelines.txt

Если выполнить ls в каталоге ~/project/phoenix_project/docs/, вы должны увидеть:

README.md  shared_docs/

Каталог shared_docs должен содержать все исходные файлы:

ls ~/project/phoenix_project/docs/shared_docs/
api_spec.doc  team_guidelines.txt

В исходном месте ~/project/shared_docs больше не должно быть каталога.

Подсказки

  • Команда mv работает с каталогами так же, как с файлами.
  • При перемещении каталога всё его содержимое перемещается автоматически.
  • Команда будет иметь вид mv [SOURCE_DIRECTORY] [DESTINATION_DIRECTORY].

Архивирование и удаление устаревших файлов журналов

Последняя задача связана с наведением порядка. В каталоге ~/project/logs накапливаются файлы журналов, а файлы за 2023 год больше не нужны для повседневной работы. Чтобы освободить место и поддерживать порядок, сожмите старые журналы в один архив, а затем удалите исходные файлы.

Команда tar

Команда tar — мощный инструмент Linux для создания архивов и работы с ними. Изначально «tar» означало «Tape Archive» («ленточный архив»), поскольку команда была предназначена для записи данных на магнитные ленты. Сегодня её обычно используют для создания сжатых архивов на диске.

При использовании tar вы объединяете несколько файлов в один файл, называемый архивом, а затем при необходимости сжимаете этот архив для экономии места. Самый распространённый формат сжатия — gzip; он добавляет к имени файла расширение .gz.

Команда tar использует разные параметры (флаги), управляющие её поведением:

  • c: создать новый архив;
  • z: сжать архив с помощью gzip;
  • f: указать имя файла архива.

Например, tar -czf archive.tar.gz file1 file2 создаёт новый сжатый архив archive.tar.gz, содержащий file1 и file2.

Задания

  1. Перейдите в каталог ~/project/logs.
  2. Создайте сжатый tar-архив с именем old_logs.tar.gz, включив в него все файлы журналов за 2023 год.
  3. После успешного создания архива удалите исходные файлы журналов за 2023 год, которые вы только что заархивировали.

Требования

  • Итоговый архив должен называться old_logs.tar.gz.
  • Архив должен находиться в каталоге ~/project/logs.
  • В архив следует включить и затем удалить только файлы журналов, в имени которых есть 2023.
  • Файл журнала за 2024 год (app_2024-05-01.log) нельзя включать в архив и удалять.

Примеры

До архивирования каталог журналов содержит:

~/project/logs/
├── app_2023-01-15.log
├── app_2024-05-01.log
└── db_2023-02-20.log

После выполнения задачи каталог журналов должен выглядеть так:

~/project/logs/
├── app_2024-05-01.log
└── old_logs.tar.gz

Если выполнить ls в каталоге ~/project/logs/, вы должны увидеть:

app_2024-05-01.log  old_logs.tar.gz

Подсказки

  • Для создания архивов используйте команду tar. Параметры -czf образуют удобную комбинацию: c — создать, z — сжать с помощью gzip, f — указать имя файла.
  • Для выбора нескольких файлов по шаблону можно использовать подстановочный знак (*). Например, *_2023-*.log соответствует всем файлам с расширением .log, в имени которых есть _2023-.
  • Команда rm удаляет файлы. Будьте осторожны при использовании подстановочных знаков!

Итоги

Отличная работа, цифровой архитектор! Вы успешно превратили проект Phoenix из хаотичного набора файлов в хорошо организованную среду разработки. Sarah Chen и вся команда разработки довольны результатом. Вы создали логичную структуру каталогов, упорядочили важные файлы, защитили конфигурации резервными копиями и навели порядок в системных ресурсах, заархивировав старые журналы.

Эти базовые навыки работы с командной строкой Linux — mkdir, mv, cp, tar и rm — составляют основу профессионального системного администрирования. Благодаря вашей сегодняшней работе проект получил прочный фундамент, который будет поддерживать его на протяжении всего жизненного цикла разработки.

Теперь команда разработки может эффективно работать в правильно организованной среде. Завтра вас ждёт новая задача в роли исследователя журналов: команда столкнётся с первыми техническими проблемами. Системный подход к организации файлов пригодится вам при поиске и устранении неполадок!

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться