Навигация по файлам в терминале
Терминал — это как игра с видом от первого лица: ты всегда стоишь в какой-то папке и можешь идти в соседние или смотреть, что вокруг.
Пять-шесть команд навигации покрывают 90% повседневной работы в терминале. Освоишь их — и Linux перестанет пугать.
В любой момент времени ты находишься в какой-то папке — она называется текущей рабочей директорией. Команды, которые ты вводишь, по умолчанию работают именно с ней. Поэтому первое умение — понимать, где ты, и уметь перемещаться.
Аналогия с игрой работает на удивление точно. Папки — это комнаты, переходы между ними — двери, а команда ls — как осмотреться вокруг и увидеть, что лежит в этой комнате. Ты не телепортируешься абы куда: чтобы попасть в дальнюю папку, идёшь по коридору директорий шаг за шагом или прыгаешь сразу по полному адресу. Когда привыкнешь, голова сама будет держать "карту" дерева, и ты перестанешь путаться, где находишься.
Как работает под капотом
Команда pwd (print working directory) печатает, где ты сейчас. ls (list) показывает содержимое папки. cd (change directory) переходит в другую папку. Эти команды — отдельные маленькие программы, которые bash находит и запускает.
Заметь приём, который повторяется во всём Linux: имена команд — это сокращения английских фраз. pwd — print working directory, ls — list, cd — change directory, mkdir — make directory. Как только ты увидишь в коротком имени спрятанную фразу, команды перестанут быть случайным набором букв и начнут запоминаться сами. Это маленький, но мощный лайфхак для всего курса.
pwd
# /home/codechick
ls
# projects notes.txt
cd projects
ls -l
# показывает файлы с подробностями: права, размер, дата
cd ..
# вернуться на уровень вверх
mkdir smart-home
# создать новую папку
Пути бывают двух видов. Абсолютный начинается от корня: /home/codechick/projects — он работает откуда угодно. Относительный отсчитывается от текущей папки: projects/smart-home. Спецсимволы помогают: .. — папка выше, . — текущая, ~ — домашняя.
Чтобы прочувствовать разницу, представь адрес дома. Абсолютный путь — это полный почтовый адрес: страна, город, улица, дом; по нему тебя найдут из любой точки мира. Относительный путь — это "сосед слева" или "этажом выше": понятно только если известно, откуда ты считаешь. Оба способа верные, просто абсолютный надёжнее издалека, а относительный короче, когда ты уже рядом.
~/ (домашняя)
|-- projects/
| |-- smart-home/ <- cd projects/smart-home
|-- notes.txt
cd .. поднимает на уровень вверх -> ~/
cd ~ телепортирует в домашнюю -> ~/
Несколько команд естественно продолжают навигацию: создать файл, заглянуть внутрь, скопировать или удалить. Вот безопасный набор для тренировки в своей домашней папке:
cd ~/projects/smart-home
touch plan.txt
# создать пустой файл
cp plan.txt plan-backup.txt
# скопировать файл
mv plan-backup.txt old-plan.txt
# переименовать (или переместить) файл
cat plan.txt
# показать содержимое файла на экране
rm old-plan.txt
# удалить файл (осторожно, без корзины!)
Маленький бонус — потренировать логику относительных путей можно даже на чистом Python, не трогая реальные файлы. Этот пример просто складывает кусочки пути в строку:
home = "/home/codechick"
parts = ["projects", "smart-home", "plan.txt"]
full = home
for p in parts:
full = full + "/" + p
print("Абсолютный путь:", full)
print("А относительный от ~ :", "/".join(parts))
Частые ошибки
- "No such file or directory". Обычно опечатка в имени или ты не в той папке — проверь
pwdиls. - Забывают про регистр. В Linux
Projectsиprojects— разные папки. - Пробелы в именах. Папку "my project" придётся писать в кавычках или с экранированием — лучше избегать пробелов.
- Удаляют через
rmи ждут корзину. В терминале корзины нет: удалённоеrmфайлом не вернёшь, поэтому сначала проверь, что удаляешь. - Путают
cd ..иcd .. Две точки — на уровень вверх, одна точка — это текущая папка, то есть "никуда".
Best practices
- Жми Tab для автодополнения имён — это экономит время и спасает от опечаток.
- Стрелка вверх возвращает прошлые команды — не печатай заново.
- Используй
ls -la, чтобы видеть скрытые файлы (те, что начинаются с точки). - Перед
rmсделайlsв той же папке и убедись, что удаляешь именно то, что хотел. - Возьми за правило начинать работу с
pwd— секунда на проверку местоположения экономит кучу ошибок.
Итоги. pwd говорит где ты, ls показывает содержимое, cd перемещает, mkdir создаёт папки, а touch, cp, mv, cat и rm работают с файлами. Пути бывают абсолютные и относительные, как полный адрес и "сосед слева". Tab и стрелки — твои друзья. Дальше научимся редактировать файлы и ставить программы.