Learning Platform
Глоссарий Troubleshooting
Урок 04.03 · 18 мин
Начальный
pwdlscdmkdirtouchcat

Создаём и обходим дерево папок: первые команды

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

Открой терминал (как — мы проходили в модуле 02). Дальше я буду показывать команды и их ожидаемый вывод. Строки, которые набираешь ты, начинаются со значка $. Сам значок печатать не нужно — это просто приглашение терминала. Строки без $ — это ответ компьютера.


Шесть команд, которые нам нужны

Сегодня всего шесть слов. Запомни их как короткие глаголы:

Шесть команд этого урока
pwdprint working directory — печатает полный путь папки, в которой ты сейчас находишься
lslist — показывает список файлов и папок внутри текущей папки
cdchange directory — переходит в другую папку, меняет текущую папку
mkdirmake directory — создаёт новую папку с указанным именем
touchсоздаёт новый пустой файл с указанным именем
catпоказывает содержимое текстового файла прямо в терминале

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
TIP

Заблудился и не понимаешь, где находишься? Набери pwd — он покажет полный путь. А cd ~ (или просто cd) мгновенно вернёт тебя домой из любой точки дерева. Это твоя кнопка «домой».


touch — создаём файл

Зайдём в папку с данными и создадим там текстовый файл командой touch:

$ cd песочница/проект/данные
$ touch заметка.txt
$ ls
заметка.txt

Файл заметка.txt создан. Он пока пустой — touch делает именно пустой файл, без содержимого. Проверим это командой cat, которая показывает содержимое файла:

$ cat заметка.txt

cat ничего не вывел — потому что файл пуст. Снова: пустой ответ это не ошибка, просто внутри нечего показывать.


cat — заглядываем внутрь

Чтобы было что показывать, положим в файл одну строчку. Тут используем небольшой приём со стрелкой > — она направляет текст в файл (подробно про неё будет позже, пока просто повтори):

$ echo "Привет, это моя первая заметка" > заметка.txt
$ cat заметка.txt
Привет, это моя первая заметка

Теперь cat показал содержимое файла. Это и есть текстовый файл из первого урока: внутри ровно те символы, что мы записали.


Соберём всё вместе

Вот полная картина того, что мы построили. Дерево внутри домашней папки:

Наше учебное дерево
~ (домашняя папка)Стартовая папка, она же /home/anna. Отсюда мы начали
mkdir песочница
песочницаПапка, созданная командой mkdir
внутри
проектПапка внутри песочницы, создана через mkdir -p
внутри
данныеПапка внутри проекта
touch заметка.txt
заметка.txtТекстовый файл, который мы создали и заполнили одной строкой

Полный путь до нашего файла: ~/песочница/проект/данные/заметка.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) — твой базовый набор, ты будешь пользоваться ими каждый день.

NOTE

Если на каком-то шаге терминал ответил No such file or directory («нет такого файла или папки»), не пугайся. Чаще всего это значит, что ты находишься не в той папке, в какой думал. Набери pwd, посмотри где ты, при необходимости вернись домой через cd ~ и пройди шаги заново. Ошибиться тут невозможно ничего сломать.


Проверка знанийKnowledge check
Ты набрал pwd и увидел /home/anna/моя-учёба/уроки/модуль-03. Тебе нужно создать в домашней папке (~) новую папку отчёты. Один друг говорит: набери mkdir отчёты прямо сейчас. Где на самом деле появится папка при таком вызове и как создать её именно в домашней папке?
ОтветAnswer
Команда mkdir отчёты создаёт папку относительно текущей папки. Сейчас ты стоишь в /home/anna/моя-учёба/уроки/модуль-03, поэтому папка появится по пути /home/anna/моя-учёба/уроки/модуль-03/отчёты — то есть глубоко внутри, а вовсе не дома. Друг ошибся, потому что забыл про текущую папку. Есть два правильных способа сделать папку именно в домашней. Первый: сначала перейти домой командой cd ~ (или просто cd), а уже потом набрать mkdir отчёты — она создастся в /home/anna/отчёты. Второй, не сходя с места: указать путь явно — mkdir ~/отчёты, где тильда означает домашнюю папку независимо от того, где ты находишься. Главный вывод тот же, что и в уроке про пути: относительное имя без ~ или / всегда отсчитывается от текущей папки, поэтому полезно проверять себя через pwd перед созданием файлов и папок.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 3. Какая команда покажет полный путь папки, в которой ты сейчас находишься?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3