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

Где я нахожусь: pwd, ls, cd и домашняя папка

После Ступени 0 вы уже умеете открыть терминал и набрать pwd, ls, cd. Это отличная база. Но пока это были просто три команды, которые «что-то делают». В этом уроке мы превратим их в осознанный навык: вы будете точно понимать, где находитесь, что вокруг и как перемещаться, не заблудившись.

Терминал не показывает картинок и иконок. Поэтому новичку легко почувствовать себя слепым: «я не вижу, где я». Хорошая новость — в Linux всегда есть способ это узнать одной командой. Давайте научимся видеть без иконок.


Терминал — это вид сверху на одну точку

Когда вы открываете проводник или Finder, вы видите окно с папками. В терминале окна нет. Вместо этого терминал всегда «стоит» в одной конкретной папке — она называется текущая рабочая директория (current working directory). Все команды по умолчанию работают именно с ней.

Первый вопрос, который стоит задавать всегда: «А где я сейчас стою?» Ответ даёт команда pwd (print working directory).

$ pwd
/home/lev

Эта строка /home/lev — ваш адрес. Прочитать его легко: каждая / это «вложенная папка». Запись /home/lev означает: от самого верха (/) спускаемся в папку home, внутри неё в папку lev. Вот здесь вы и стоите.


Дерево файловой системы на пальцах

В Linux все папки и файлы растут из одной общей точки — корня. Корень обозначается просто /. У него нет имени, это самый верх. Из корня растёт всё остальное, как ветки из ствола дерева.

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

$ ls /
bin   boot   dev   etc   home   lib   media   opt   root   tmp   usr   var

Не нужно запоминать их все прямо сейчас. Достаточно знать три:

  • / — корень, самый верх. Всё внутри.
  • /home — здесь живут папки пользователей. Внутри /home/lev, /home/anna и так далее.
  • /home/lev — ваша домашняя папка (если вас зовут lev). Здесь ваши документы, загрузки, проекты.

В отличие от Windows, где есть диск C: и диск D:, в Linux нет букв дисков. Есть одно дерево, и даже флешка или второй жёсткий диск просто «подключаются» как папка внутри этого дерева. Одно дерево на всё — это важная идея Linux, мы вернёмся к ней позже.


Домашняя папка и значок тильда

Ваша домашняя папка — это место по умолчанию. Когда вы открываете терминал, обычно вы стоите именно в ней. У неё есть короткий значок: ~ (тильда). Где бы вы ни находились, ~ всегда означает «моя домашняя папка».

$ pwd
/home/lev
$ echo ~
/home/lev

Команда echo просто печатает то, что ей дали. Здесь она показала, во что разворачивается ~. Это удобно: вместо длинного /home/lev/projects можно писать ~/projects.


Что вокруг меня: ls

Команда ls (list) показывает содержимое текущей папки — какие файлы и папки в ней лежат.

$ ls
documents   downloads   projects   notes.txt

Здесь три папки и один файл. Но как отличить папку от файла? Добавим флаг -F — он дорисовывает / к именам папок:

$ ls -F
documents/   downloads/   projects/   notes.txt

Теперь видно: documents/, downloads/, projects/ — папки (есть /), а notes.txt — файл. Ещё полезнее флаг -l (long) — он показывает подробности в столбик:

$ ls -l
drwxr-xr-x  2 lev lev 4096 May 28 10:15 documents
drwxr-xr-x  2 lev lev 4096 May 28 10:15 downloads
drwxr-xr-x  3 lev lev 4096 May 28 11:02 projects
-rw-r--r--  1 lev lev  214 May 29 09:30 notes.txt

Пока обращайте внимание только на самый первый символ каждой строки. Если это d — это папка (directory). Если - — обычный файл. Остальные буквы (rwxr-xr-x) — это права доступа, мы разберём их в отдельном модуле. Сейчас просто запомните: d в начале значит «папка».

Флаги можно объединять: ls -lF или ls -la. Флаг -a (all) показывает ещё и скрытые файлы — те, чьё имя начинается с точки:

$ ls -a
.            ..           .bashrc      documents    downloads    notes.txt    projects

Появились .bashrc, а также странные . и ... Точка . — это «текущая папка», а две точки .. — это «папка уровнем выше» (родительская). Это не файлы, а служебные ссылки, и они пригодятся нам прямо сейчас.


Перемещение: cd

Команда cd (change directory) переносит вас в другую папку. Дальше уже работаете там.

$ pwd
/home/lev
$ cd projects
$ pwd
/home/lev/projects

Вы зашли внутрь projects. Заметьте: мы написали cd projects, а не cd /home/lev/projects. Это относительный путь — «папка projects относительно того, где я сейчас». Так короче.

А как вернуться назад, на уровень выше? Вот где нужны две точки:

$ pwd
/home/lev/projects
$ cd ..
$ pwd
/home/lev

cd .. поднял нас на одну ступеньку вверх. Можно подниматься и на несколько: cd ../.. поднимет на два уровня.

Три очень полезных приёма cd:

$ cd ~          # перейти в домашнюю папку
$ cd            # то же самое — cd без аргументов = домой
$ cd -          # вернуться в предыдущую папку (как кнопка "назад")

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


Абсолютный и относительный путь

Это единственное «теоретическое» понятие урока, но оно важное. Путь к папке можно записать двумя способами:

  • Абсолютный путь начинается с / и отсчитывается от корня. Например /home/lev/projects. Он работает откуда угодно — это как полный почтовый адрес с индексом.
  • Относительный путь не начинается с / и отсчитывается от того места, где вы стоите сейчас. Например projects или ../downloads. Это как сказать «соседняя дверь» — понятно только если знаешь, где ты.
$ pwd
/home/lev
$ cd /etc          # абсолютный: всегда попадём в /etc
$ pwd
/etc
$ cd /home/lev     # абсолютный: всегда вернёмся домой
$ cd projects      # относительный: projects внутри текущей папки
$ pwd
/home/lev/projects

Правило для новичка простое: если запутались, пишите абсолютный путь от /. Он не подведёт. Относительные пути экономят буквы, когда вы уверены, где стоите.

TIP

Нажмите клавишу Tab при наборе имени папки — терминал допишет его за вас. Наберите cd pro и нажмите Tab — получится cd projects/. Это автодополнение, и оно экономит огромное количество времени и опечаток. Профессионалы почти не набирают длинные имена руками.


Попробуй сам

Откройте терминал и пройдите этот маршрут, проговаривая вслух «где я» на каждом шаге:

$ pwd            # узнайте свой стартовый адрес
$ ls -lF         # осмотритесь: что за папки и файлы вокруг
$ cd /           # поднимитесь в самый корень
$ ls             # посмотрите на верхушку дерева
$ cd ~           # вернитесь домой одной командой
$ pwd            # убедитесь, что снова дома

Затем попробуйте «заблудиться» специально: зайдите в любую папку через cd, потом ещё в одну, проверяя pwd после каждого шага. Когда почувствуете, что потерялись — наберите просто cd и нажмите Enter. Вы дома. Этот трюк убирает страх «а вдруг я застряну где-то непонятно где».


Проверка знанийKnowledge check
Вы набрали pwd и увидели /home/lev/projects/etl. Затем выполнили cd ../.. и снова pwd. Что покажет вторая команда pwd и почему?
ОтветAnswer
Покажет /home/lev. Команда cd .. поднимает на один уровень вверх (из etl в projects), а cd ../.. поднимает на два уровня сразу: из etl в projects, затем из projects в lev. Каждая пара точек .. означает "родительская папка", то есть на ступеньку ближе к корню. Поскольку мы стартовали в /home/lev/projects/etl, два шага вверх дают /home/lev. Это относительная навигация: ".." отсчитывается от того места, где вы стоите. Если бы вы хотели гарантированно попасть домой независимо от стартовой точки, надёжнее было бы написать абсолютный путь cd /home/lev или просто cd без аргументов.

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

Результат: 0 из 0
Концептуальный
Вопрос 1 из 5. Что показывает команда pwd?

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

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

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

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