Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Навигация Основы командной строки

После запуска операционной системы с графической оболочкой мы попадаем в специальную рабочую область, которую часто называют рабочий стол. Это центральная точка входа, откуда через разные пункты меню начинается работа, запускаются разные задачи. Например, для навигации по файловой системе понадобится проводник.

В командной строке все устроено иначе: после загрузки системы мы попадаем в режим ожидания ввода команды. Этот режим привязан к файловой системе. Можно сказать, что мы всегда находимся внутри какой-то директории, которую называют рабочей директорией (working directory).

В этом уроке мы поговорим о навигации по директориям через командную оболочку.

Как проверить, в какой директории мы находимся

Начнем с самого основного. Проверить, в какой директории мы сейчас находимся, можно командой pwd:

pwd

/Users/guest

Кстати, название команды pwd — это сокращение, которое расшифровывается как print working directory. Похожим образом устроены имена многих команд, что позволяет легче и быстрее их запомнить.

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

В приведенном примере есть две неожиданности для тех, кто привык пользоваться Windows:

  1. В начале указан не диск, а единый корневой каталог /. Это вершина файловой системы, внутри которой лежат все остальные файлы и директории
  2. Вместо обратных слэшей \ используются прямые слэши /

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

Как посмотреть список файлов

Изучим команду ls (сокращение от list). Она выводит список файлов и директорий в текущей рабочей директории:

ls

Desktop  Documents Downloads Library  Movies  Music  Pictures Public

Как переместиться в другую директорию

Еще одна полезная команда — cd (сокращение от change directory). С помощью нее мы перемещаемся по файловой структуре. Для этого ей нужно передать аргумент — директорию, в которую необходимо переместиться:

# Входим в директорию
cd Music
# Смотрим ее содержимое
ls

iTunes
# Смотрим текущую рабочую директорию
pwd

/Users/guest/Music
# Если имя директории содержит пробел, то его нужно экранировать с помощью `\`
cd Best\ music

Остановимся на этом моменте подробнее. Возможно, вы знаете, что есть два способа обозначить путь до файла:

  • Абсолютный путь начинается от корня
  • Относительный путь начинающийся от текущей рабочей директории

Выше мы указали относительный путь. Отличить их друг от друга очень легко:

  • Абсолютный — первым символом в пути идет /
  • Относительный — во всех остальных случаях

Когда мы используем относительный путь, команда cd считывает его и внутри себя пытается вычислить абсолютный путь. Она берет текущую рабочую директорию /Users/guest/ и присоединяет к ней Music. В итоге получается /Users/guest/Music.

Команда cd понимает и абсолютные, и относительные пути. Поэтому передавать ей можно что угодно:

# Неважно, в каком месте
cd /Users/guest/Music # Абсолютный путь

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

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

Теперь рассмотрим другую задачу. Предположим, что мы находимся в директории /Users/guest/Music. Как выйти из нее и попасть снова в /Users/guest? Мы уже знаем один способ — указать абсолютный путь и сделать cd:

cd /Users/guest

Но есть путь проще. Можно указать специальное значение .. и перейти на директорию уровнем выше:

# В директории /Users/guest/Music
cd ..
pwd

/Users/guest

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

# В директории /Users/guest/Music
# Выходим на два уровня вверх
cd ../..
pwd

/Users

Иногда в пути используется одинарная точка, которая означает текущую директорию. Например, вместо cd Music можно писать cd ./Music — разницы между этими выражениями нет.

Есть и третий вариант возврата в /Users/guest из директории /Users/guest/Music. Можно выполнить команду cd без аргументов, тогда мы перейдем в домашнюю директорию текущего пользователя:

# Из любого места
cd
pwd

/Users/guest

Ну и, наконец, четвертый вариант. Домашняя директория пользователя имеет специальное обозначение — ~ (тильда). В момент выполнения команды тильда заменяется на абсолютный путь. Поэтому из любого места можно напрямую перейти в любую поддиректорию домашней директории:

# Из любого места
cd ~/Music
pwd

/Users/guest/Music

Допустим, вы находитесь в домашней директории и хотите посмотреть файлы в поддиректории Music. Один способ вы уже знаете — для этого нужно перейти в директорию Music и выполнить программу ls.

Как обычно, есть другой способ. Команда ls также может принимать на вход аргумент — директорию, которую нужно проанализировать:

ls Music

iTunes

Как и в случае с командой cd, к аргументу ls применимы понятия абсолютных и относительных путей. Впрочем, это правило распространяется на большинство случаев, где передаются пути.

Команда cd - возвращает в предыдущую директорию. Другими словами, последовательный вызов этой команды переключает между двумя последними посещенными директориями.

Команды cd, ls и pwd вместе составляют основу навигации по файловой структуре. Зная их, вы никогда не потеряетесь и не запутаетесь.

Со временем набирать пути становится все более лениво. Тогда можно дважды нажать Tab и воспользоваться автокомплитом — функцией, которая автоматически завершает имена.


Самостоятельная работа

Изучите содержимое директорий своей файловой системы. При перемещении между разделами с помощью команды cd используйте клавишу Tab для автозаполнения.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 21 ноября
профессия
от 14 960 ₸ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 21 ноября
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 21 ноября
профессия
от 39 525 ₸ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
Старт 21 ноября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»