← К оглавлению урока

💻 Разбор ДЗ 2 — Занятие 03

Animals, adam и eve: полное решение домашнего задания 2 с объяснением каждого шага.

⚡ Готовое решение ДЗ 2

mkdir -p /home/animals/dogs
mkdir /home/animals/cats
mkdir /home/animals/fish
touch /home/animals/dogs/pluto
touch /home/animals/cats/garfield
touch /home/animals/fish/nemo
touch /tmp/adam
mkdir /home/humans
cp /tmp/adam /home/humans/
touch /tmp/evA
mv /tmp/evA /opt/eve
mv /opt/eve /home/humans/
ls /home/humans/
history > /tmp/history.txt && export_file /tmp/history.txt

Текст домашнего задания 2

  1. Создать папку animals в /home
  2. Создать подпапки dogs, cats, fish в animals
  3. Добавить файлы: pluto → dogs, nemo → fish, garfield → cats
  4. В /tmp создать файл adam
  5. Скопировать adam в /home/humans (создать директорию)
  6. Создать файл evA в /tmp
  7. Переместить с переименованием evA/opt/eve
  8. Переместить eve в /home/humans
  9. Проверить наличие adam и eve в /home/humans
  10. Сохранить историю: history > /tmp/history.txt && export_file /tmp/history.txt

Пошаговое решение с объяснениями

Шаг 1: Создание структуры animals

[root@localhost ~]# mkdir -p /home/animals/dogs
[root@localhost ~]# mkdir /home/animals/cats
[root@localhost ~]# mkdir /home/animals/fish

Почему -p только у первой? Первая команда создаёт сразу /home/animals/ и /home/animals/dogs/. После этого /home/animals уже существует — для cats и fish -p не обязателен (хотя и не навредит).

Шаг 2: Создание файлов животных

[root@localhost ~]# cd /home/animals
[root@localhost animals]# touch dogs/pluto
[root@localhost animals]# touch cats/garfield
[root@localhost animals]# touch fish/nemo

После cd можно использовать относительные пути. touch dogs/pluto создаёт файл pluto внутри уже существующей папки dogs.

Шаг 3: Файл adam в /tmp

[root@localhost animals]# touch /tmp/adam

Абсолютный путь — независимо от текущей директории.

Шаг 4: Создание /home/humans и копирование adam

[root@localhost animals]# mkdir /home/humans
[root@localhost animals]# cp /tmp/adam /home/humans/

Внимание: сначала создаём директорию, потом копируем. Если /home/humans не существует, команда упадёт.

Шаг 5: Создание evA и перемещение

[root@localhost animals]# touch /tmp/evA
[root@localhost animals]# mv /tmp/evA /opt/eve

Команда mv с другим именем назначения — это одновременное перемещение и переименование. Файл evA переезжает в /opt/ с именем eve.

Регистр важен! Файл называется evA (с большой A), а не eva. В Linux это разные имена.

Шаг 6: Переместить eve в /home/humans

[root@localhost animals]# mv /opt/eve /home/humans/

Шаг 7: Проверка

[root@localhost animals]# ls /home/humans/
adam  eve

Шаг 8: Сохранение истории

[root@localhost animals]# history > /tmp/history.txt && export_file /tmp/history.txt

&& — выполнить вторую команду только если первая завершилась успешно. export_file — специфичная команда JSLinux для скачивания файла.

Проверка структуры

# Структура animals:
ls -R /home/animals/
# /home/animals/:
# cats  dogs  fish
# /home/animals/cats:
# garfield
# /home/animals/dogs:
# pluto
# /home/animals/fish:
# nemo

# Содержимое humans:
ls /home/humans/
# adam  eve