open atlas
↑ К треку
Командная строка CLI · 01 · 03

Где я нахожусь?

Файловая система — это дерево каталогов с корнем /. pwd выводит твою текущую позицию в этом дереве; cd перемещает тебя. Абсолютные пути начинаются с /; относительные — с текущего местоположения.

CLI Основы ◷ 20 min
Уровень
ОсновыJuniorMiddleSenior

Каждая команда выполняется где-то — в конкретном каталоге. Если ты не знаешь, где находишься, нельзя надёжно именовать файлы или понять, почему команда не работает. Файловая система имеет форму — дерево — и две команды позволяют прочитать твою позицию в этом дереве и перемещаться по нему. Эти две команды лежат в основе почти всего, что ты будешь делать в терминале.

К концу урока ты будешь знать, как устроено дерево файловой системы Linux, как вывести текущее местоположение командой pwd и как перемещаться командой cd с помощью абсолютных и относительных путей.

Цель

После этого урока ты сможешь описать дерево файловой системы Linux, использовать pwd для вывода рабочего каталога, использовать cd для навигации с абсолютными путями (начинающимися с /) и относительными путями (начинающимися с текущего места), а также использовать сокращения ., .. и ~.

1

Файловая система — единое дерево с корнем /. На Linux (и Unix-подобных системах) каждый файл и каталог живёт где-то внутри одного дерева. Корень этого дерева называется / (один прямой слеш). Под / находятся известные каталоги верхнего уровня: /etc (файлы конфигурации), /home (домашние каталоги пользователей), /var (переменные данные: логи), /usr (программы), /tmp (временные файлы). Каждый путь в системе начинается с /.

Буквенных обозначений дисков, как C:\, нет. Всё — включая внешние диски, подключённые после загрузки — присоединено где-то внутри одного и того же дерева.

2

pwd выводит твой рабочий каталог. У оболочки всегда есть текущий рабочий каталог — каталог, в котором она «стоит» прямо сейчас. Команды, принимающие имя файла, используют этот каталог по умолчанию, если путь не указан явно. pwd (print working directory — вывести рабочий каталог) говорит, где ты находишься:

pwd

Типичный вывод:

/home/alice

Этот /home/aliceабсолютный путь: он начинается от корня / и перечисляет все каталоги до пункта назначения.

3

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

cd /etc
pwd

Вывод:

/etc

Передай относительный путь — и оболочка интерпретирует его, начиная с текущего каталога:

cd /home/alice
cd projects
pwd

Вывод:

/home/alice/projects

projects был разрешён относительно /home/alice (где ты был), поэтому ты оказался в /home/alice/projects.

4

Три сокращения навигации экономят постоянный набор. Оболочка определяет три специальных имени каталога:

  • . — сам текущий каталог. cd . ничего полезного не делает; но ls . выводит список здесь.
  • .. — родительский каталог. cd .. перемещает на один уровень вверх, к корню.
  • ~ — твой домашний каталог (например, /home/alice). cd ~ всегда возвращает домой. Голое cd без аргумента делает то же самое.

Их можно комбинировать: cd ../../etc означает «подняться на два уровня, затем войти в etc».

Разбор примера

Сеанс навигации.

Начиная с /home/alice, перейди в /etc, осмотрись, затем вернись домой:

pwd
/home/alice
cd /etc
pwd
/etc
ls

(выводит файлы конфигурации в /etc)

cd ..
pwd
/
cd ~
pwd
/home/alice

Обрати внимание: cd .. из /etc перешёл в / (родитель /etc), а не в /home/alice. Рабочий каталог сдвинулся на один шаг к корню дерева.

Почему это работает

На macOS дерево файловой системы устроено так же, и pwd/cd ведут себя идентично. Структура верхнего уровня отличается от Linux: /Users вместо /home, /System и /Library вместо /usr/lib и т.д. Концепции — корень, абсолютные пути, относительные пути, ./../~ — идентичны.

Частая ошибка

Распространённая ошибка — путать / (корневой каталог) с ~ (домашний каталог). cd / переносит тебя на самую верхушку дерева — оттуда видны etc, home, var и остальное. cd ~ переносит тебя в твой личный каталог внутри /home. Это совершенно разные места. Всегда запускай pwd, если не уверен, где находишься.

Проверь себя
Викторина

Твой рабочий каталог — /home/alice/projects. Ты выполняешь: cd ../docs. Какой будет твой рабочий каталог после этого?

Итог

Файловая система Linux — это дерево с корнем /. Каждый файл имеет местоположение, выраженное как путь через это дерево. pwd выводит твой текущий рабочий каталог — твою позицию в дереве. cd перемещает тебя: дай ему абсолютный путь (начинается с /), чтобы прыгнуть в точное место, или относительный путь (начинается с текущего места) для пошаговой навигации. Сокращения . (здесь), .. (родитель) и ~ (домой) ускоряют навигацию. Запускай pwd всякий раз, когда чувствуешь, что потерялся — оболочка всегда знает, где она находится, и теперь ты тоже.

Практика

Начни сверху. Задачи идут от простого к сложному: вспомнить факт, применить к случаю, затем senior-уровень. Открой, попробуй, потом открой ответ.

вспомнитьприменитьуглубить0 из 5 завершено

Что-то непонятно?

Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.

хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.