Навигация по файлам и директориям

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

Но для начало необходимо понять устройство файловой структуры Linux. Она представляет собой иерархическую структуру. То есть файловая система организована на подобии директорий (они же папки и каталоги), в которых расположены иные директории и файлы. Верхняя директория файловой системы называется корневой директорией. Внутри корневой директории расположены файлы и директории, которые содержат файлы и директории.

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

структура директорий Linux

В отличии от файловой организации Windows, где корневыми директориями являются диски, в Linux есть единственное дерево и только одна корневая директория, которая не ассоциируется с каким либо физическим дисковым устройством. Различные диски могут быть подключены как поддеревья (директории) внутри этого дерева.

Разморозим нашу виртуальную машину и сделаем первые шаги в освоении организации файловой структуры Linux 🙂

Рабочая директория и её содержание

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

Директория в которой мы находимся называется рабочей директорией. Чтобы узнать имя рабочей директории, воспользуемся командой pwd (print working directory — вывести рабочую директорию).

Введем команду pwd в окно терминала.

Когда мы входим в операционную систему Linux, мы попадаем в домашнюю директорию. Это место, где мы сохраняем наши файлы. В большинстве Linux систем домашняя директория по умолчанию называется /home/имя_пользователя. Она также может быть другой, в зависимости от прихоти системного администратора 😉

Для просмотра содержимого рабочей директории воспользуемся командой ls (list files and directories — перечислить файлы и директории). Она выведет нам директории и файлы, которые находятся в домашней директории.

Введем команду ls в окно терминала.

К команде ls вернемся в следующих материалах. С её помощью можно сделать очень много интересного, но в начале нужно уделить чуть больше внимания путям и директориям.

pwd и ls

Смена рабочей директории

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

Он начинается с указания корневой директории, за которой следуют ветки дерева файловой системы до тех пор, пока не достигнута желаемая директория. В качестве примера рассмотрим директорию, в которой установлено большинство программ. Её абсолютный путь — /usr/bin. Это значит, что в корневой директории (обозначается начальным слэш-символом (косая черта)) нужно перейти сначала в директорию с именем usr, а затем в директорию bin, которая в ней расположена.

В окне терминала введем команду cd /usr/bin.

Теперь мы перешли в директорию /usr/bin, которая стала рабочей директорией. В приветствии командной строки имя рабочей директории тоже изменилось. Там обычно отображается имя рабочей директории.

При помощи команды ls посмотрим содержимое рабочей директории /usr/bin.

Ого как много файлов внутри. Это лишь часть наших программ, но вернемся к ним позже. 🙂

Относительный путь, в отличии от абсолютного, не начинается с корневой директории. Он начинается с рабочей директории. Для ее указания существует пара специальных обозначений, чтобы указать относительное положение в дереве файловой структуры. Этими обозначениями являются «.» (точка) и «..» (две точки).

Точка (.) ссылается на текущую директорию, а две точки (..) на родительскую директорию для текущей. Посмотрим как это работает. Для этого сменим рабочую директорию /usr/bin на ее родительскую /usr. Мы можем сделать это двумя способами. Первый — по абсолютному пути.

Теперь вернемся обратно в /usr/bin.

И воспользуемся относительным путем. Для ссылки на родительскую директорию существует обозначение «..» (две точки). Введем команду cd .. и после этого, чтобы убедиться, что мы оказались там, куда мы хотели перейти, проверим это с помощью команды pwd.

Отлично, мы попали в /usr, чего нам и нужно. Два разных способом с одинаковым результатом. Каким же тогда следует пользоваться? Разумеется, где меньше символов нужно набирать 😉

Теперь через относительный путь попробуем перейти в /usr/bin. Рабочая директория у нас сейчас /usr. Стало быть из нее нужно перейти в дочернюю bin. Для ссылки на текущую директорию существует обозначение «.» (точка). Введем команду cd ./bin и после этого, чтобы убедиться, что мы оказались там, куда мы хотели перейти, проверим это с помощью команды pwd.

Отлично! Но теперь вновь вернемся назад в /usr.

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

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

Специальные ярлыки

Если просто ввести команду cd без указания пути, то будет выполнен переход в домашнюю директорию. Проверим.

Чтобы сменить рабочую директорию на предыдущую, можно использовать символ «-» (минус). Сейчас мы в домашней директории, до этого были в /usr/bin. Значит после ввода команды cd — должны снова вернуться в /usr/bin. Проверим.

Сослаться на домашнюю директорию любого пользователя можно добавим перед именем учетной записи символ «~» (тильда), например ~mikhail. Так мы можем указать домашнюю директорию любого пользователя вне зависимости от того, где она расположена. Проверим.

Если после символа «~» (тильда) не указать имя пользователя, то данный символ будет ссылаться на собственную домашнюю директорию.

cd и pwd

Механизм работы подобной «ссылки» реализован за счет развертывания строк (материал из будущего ;)).

А теперь заморозим виртуальную машину в данном состоянии.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *