Полезные заготовки вызова утилит командной строки

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

Навигация

Основы командной строки

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

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

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

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

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

/Users/guest

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

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

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

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

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

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

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

Desktop Documents Downloads Library Movies Music Pictures Public

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

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

# Входим в директориюMusic# Смотрим ее содержимоеiTunes
# Смотрим текущую рабочую директорию/Users/guest/Music
# Если имя директории содержит пробел, то его нужно экранировать с помощью `\`Bestmusic

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

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

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

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

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

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

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

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

 /Users/guest

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

 ..
/Users/guest

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

# Выходим на два уровня вверх ../..
/Users

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

# Из любого места/Users/guest

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

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

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

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

Music
iTunes

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

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

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

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


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

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


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

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

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

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

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

  • 130 курсов, 2000+ часов теории

  • 1000 практических заданий в браузере

  • 360 000 студентов

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

:/>  Как скопировать файл в несколько папок сразу