Создаём и обходим дерево папок: первые команды
Хватит теории — пора потрогать руками. В прошлых уроках мы разобрали, что такое файлы, папки и пути. Сейчас откроем терминал и научим компьютер выполнять то, что раньше мы делали мышкой: создавать папки, заходить в них, смотреть, что внутри, и создавать файлы.
Открой терминал (как — мы проходили в модуле 02). Дальше я буду показывать команды и их ожидаемый вывод. Строки, которые набираешь ты, начинаются со значка $. Сам значок печатать не нужно — это просто приглашение терминала. Строки без $ — это ответ компьютера.
Шесть команд, которые нам нужны
Сегодня всего шесть слов. Запомни их как короткие глаголы:
pwd — где я сейчас
Первый вопрос в терминале всегда «а где я вообще нахожусь?». Команда pwd отвечает: печатает полный (абсолютный) путь текущей папки.
$ pwd
/home/anna
Терминал почти всегда стартует в твоей домашней папке. Здесь это /home/anna (у тебя будет своё имя, например /Users/ivan на macOS). Это и есть тот самый ~ из прошлого урока.
ls — что вокруг
Команда ls показывает, что лежит в текущей папке: файлы и папки.
$ ls
Документы Загрузки Рабочий-стол
Если папка пустая, ls ничего не выведет — просто вернёт пустую строку и приглашение $. Это нормально, не ошибка.
Можно попросить более подробный вид с флагом -l (буква «эль», от long — длинный):
$ ls -l
drwxr-xr-x 2 anna anna 4096 май 29 12:00 Документы
drwxr-xr-x 2 anna anna 4096 май 29 12:00 Загрузки
drwxr-xr-x 2 anna anna 4096 май 29 12:00 Рабочий-стол
Пока не вникай во все эти буквы и цифры — главное, что буква d в самом начале строки значит «directory», то есть это папка. Подробности оставим на будущее.
mkdir — создаём папку
Построим своё учебное дерево. Сначала создадим папку командой mkdir (make directory).
$ mkdir песочница
$ ls
Документы Загрузки песочница Рабочий-стол
Видишь — в списке появилась песочница. Команда сработала молча: если mkdir ничего не вывела, значит всё прошло хорошо. В мире терминала молчание — это успех. Сообщение появляется только если что-то пошло не так.
Можно создать сразу вложенное дерево папок одной командой — для этого добавляют флаг -p:
$ mkdir -p песочница/проект/данные
Эта команда создала папку проект внутри песочница, а внутри проект — папку данные. Целая ветка дерева одной строкой.
cd — заходим внутрь
Теперь зайдём в нашу песочницу командой cd (change directory) и проверим, где мы оказались, через pwd:
$ cd песочница
$ pwd
/home/anna/песочница
Текущая папка сменилась — теперь мы внутри песочница. Зайдём глубже, в проект:
$ cd проект
$ pwd
/home/anna/песочница/проект
$ ls
данные
Внутри проект лежит папка данные, которую мы создали раньше. Теперь вспомним прошлый урок: чтобы подняться на уровень вверх, к родительской папке, используем ..:
$ cd ..
$ pwd
/home/anna/песочница
Мы вернулись в песочница. А чтобы прыгнуть сразу домой, откуда бы ты ни был, набери cd без аргументов или cd ~:
$ cd ~
$ pwd
/home/anna
Заблудился и не понимаешь, где находишься? Набери pwd — он покажет полный путь. А cd ~ (или просто cd) мгновенно вернёт тебя домой из любой точки дерева. Это твоя кнопка «домой».
touch — создаём файл
Зайдём в папку с данными и создадим там текстовый файл командой touch:
$ cd песочница/проект/данные
$ touch заметка.txt
$ ls
заметка.txt
Файл заметка.txt создан. Он пока пустой — touch делает именно пустой файл, без содержимого. Проверим это командой cat, которая показывает содержимое файла:
$ cat заметка.txt
cat ничего не вывел — потому что файл пуст. Снова: пустой ответ это не ошибка, просто внутри нечего показывать.
cat — заглядываем внутрь
Чтобы было что показывать, положим в файл одну строчку. Тут используем небольшой приём со стрелкой > — она направляет текст в файл (подробно про неё будет позже, пока просто повтори):
$ echo "Привет, это моя первая заметка" > заметка.txt
$ cat заметка.txt
Привет, это моя первая заметка
Теперь cat показал содержимое файла. Это и есть текстовый файл из первого урока: внутри ровно те символы, что мы записали.
Соберём всё вместе
Вот полная картина того, что мы построили. Дерево внутри домашней папки:
Полный путь до нашего файла: ~/песочница/проект/данные/заметка.txt. Мы прошли его руками — создали каждый узел и заглянули внутрь.
Попробуй сам
Теперь твоя очередь. Повтори всё с нуля, но придумай свои имена. Делай по шагам и сверяйся с ожидаемым выводом.
# 1. Узнай, где ты сейчас
$ pwd
/home/anna
# 2. Убедись, что ты дома, и посмотри, что вокруг
$ cd ~
$ ls
Документы Загрузки песочница Рабочий-стол
# 3. Создай свою папку для тренировки
$ mkdir моя-учёба
$ ls
Документы Загрузки моя-учёба песочница Рабочий-стол
# 4. Создай внутри неё дерево из двух папок одной командой
$ mkdir -p моя-учёба/уроки/модуль-03
# 5. Зайди в самую глубокую папку и проверь путь
$ cd моя-учёба/уроки/модуль-03
$ pwd
/home/anna/моя-учёба/уроки/модуль-03
# 6. Создай файл и положи в него строчку
$ touch конспект.txt
$ echo "Я научился ходить по папкам" > конспект.txt
# 7. Проверь, что внутри
$ cat конспект.txt
Я научился ходить по папкам
# 8. Поднимись на уровень вверх и убедись, что переместился
$ cd ..
$ pwd
/home/anna/моя-учёба/уроки
# 9. Вернись домой одной командой
$ cd ~
$ pwd
/home/anna
Если у тебя сошёлся вывод на всех девяти шагах — поздравляю, ты уже умеешь ориентироваться в файловой системе из терминала. Эти шесть команд (pwd, ls, cd, mkdir, touch, cat) — твой базовый набор, ты будешь пользоваться ими каждый день.
Если на каком-то шаге терминал ответил No such file or directory («нет такого файла или папки»), не пугайся. Чаще всего это значит, что ты находишься не в той папке, в какой думал. Набери pwd, посмотри где ты, при необходимости вернись домой через cd ~ и пройди шаги заново. Ошибиться тут невозможно ничего сломать.