Литмир - Электронная Библиотека
Содержание  
A
A

Текущий рабочий каталог

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

Рис. 2.1. Дерево каталогов файловой системы в диспетчере файлов с графическим интерфейсом

Однако командная строка не имеет графического интерфейса, поэтому для перемещения по дереву файловой системы его следует представлять иначе.

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

[me@linuxbox ~]$ pwd

/home/me

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

Перечисление содержимого каталога

Чтобы вывести список файлов и каталогов в текущем рабочем каталоге, воспользуйтесь командой ls:

[me@linuxbox ~]$ ls

Desktop  Documents  Music  Pictures  Public  Templates  Videos

В действительности командой ls можно вывести содержимое любого, не только текущего, рабочего каталога, а также получить массу дополнительной любопытной информации, но об этом мы поговорим в главе 3.

Смена текущего рабочего каталога

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

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

Абсолютный путь начинается с корневого каталога и перечисляет ветви дерева, отделяющие корень от желаемого каталога или файла. Например, в системе имеется каталог, в который устанавливается большинство программ. Путь к этому каталогу имеет вид: /usr/bin. То есть в корневом каталоге (представлен первым символом слеша в пути) имеется каталог с названием usr, содержащий каталог с названием bin.

[me@linuxbox ~]$ cd /usr/bin

[me@linuxbox bin]$ pwd

/usr/bin

[me@linuxbox bin]$ ls

...Длинный, очень длинный список файлов...

Как видите, мы сменили текущий рабочий каталог на /usr/bin, и он полон файлов. Обратите внимание, как изменилось приглашение командной оболочки к вводу. Для удобства оно обычно настраивается так, чтобы автоматически показывать название рабочего каталога.

Относительные пути

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

Символ . (точка) обозначает рабочий каталог, а символ .. (точка-точка) обозначает каталог, родительский по отношению к рабочему. Ниже показано, как ими пользоваться. Давайте снова сменим рабочий каталог на /usr/bin:

[me@linuxbox ~]$ cd /usr/bin

[me@linuxbox bin]$ pwd

/usr/bin

Отлично, а теперь допустим, что мы хотим сменить рабочий каталог на родительский для каталога /usr/bin, которым является /usr. Сделать это можно двумя способами: пойти либо по абсолютному пути:

[me@linuxbox bin]$ cd /usr

[me@linuxbox usr]$ pwd

/usr

либо по относительному:

[me@linuxbox bin]$ cd ..

[me@linuxbox usr]$ pwd

/usr

Два разных способа дают идентичные результаты. И каким же лучше пользоваться? Конечно, тем, который требует нажимать меньше клавиш!

Аналогично, существуют два способа сменить рабочий каталог с /usr на /usr/bin. Абсолютный путь:

[me@linuxbox usr]$ cd /usr/bin

[me@linuxbox bin]$ pwd

/usr/bin

Относительный путь:

[me@linuxbox usr]$ cd ./bin

[me@linuxbox bin]$ pwd

/usr/bin

А теперь я хочу сделать важное замечание. Практически во всех случаях можно опустить пару символов ./, потому что они подразумеваются по умолчанию.

Ввод

[me@linuxbox usr]$ cd bin

даст тот же результат. Вообще если путь к чему-либо не указан явно, подразумевается текущий рабочий каталог.

Некоторые полезные сокращения

В табл. 2.1 перечислены некоторые способы быстрой смены рабочего каталога.

Таблица 2.1. Сокращенные варианты команды cd

Сокращение

Результат

cd

Сменить рабочий каталог на домашний

cd -

Сменить рабочий каталог на предыдущий рабочий каталог

cd ~username

Сменить рабочий каталог на домашний каталог пользователя username. Например, cd ~bob выполнит переход в домашний каталог пользователя bob

ЧТО СЛЕДУЕТ ЗНАТЬ об именах файлов

• Файлы, имена которых начинаются с точки, считаются скрытыми. Это означает, что команда ls не будет выводить их, если не вызвать ее с параметром: ls -a. В момент создания учетной записи пользователя в его домашний каталог помещается несколько скрытых файлов, где хранятся различные параметры настройки учетной записи. Далее в этой книге мы еще вернемся к подобным файлам и посмотрим, как можно настроить свое окружение. Кроме того, некоторые приложения помещают в домашний каталог свои скрытые файлы с настройками.

• Linux, как это принято в Unix, различает регистр символов в именах файлов и командах. Файлы с именами File1 и file1 — это разные файлы.

• В Linux не поддерживается понятие «расширения файла», как в некоторых других операционных системах. Вы можете давать своим файлам любые имена. Тип и/или назначение файла определяется другими средствами. Но даже при том, что Unix-подобные операционные системы не используют расширения файлов для определения типа/назначения файлов, некоторые прикладные программы все же используют их для этой цели.

• Хотя Linux поддерживает длинные имена файлов с пробелами и знаками пунктуации, старайтесь не использовать в именах файлов другие знаки пунктуации, кроме точки, дефиса и подчеркивания. Также не используйте пробелы в именах файлов. Наличие пробелов в именах файлов осложняет решение многих задач командной строки — вы это увидите в главе 7. Если необходимо отделить друг от друга слова в имени файла, используйте символы подчеркивания. Потом вы не раз скажете себе спасибо за это.

3. Исследование системы

Теперь, когда мы знаем, как перемещаться по файловой системе, совершим обзорное путешествие по системе Linux. Но прежде чем отправиться, познакомимся еще с несколькими командами, которые пригодятся в пути:

• ls — выводит список содержимого каталога.

• file — определяет тип файла.

• less — выводит содержимое файла.

Любопытные возможности ls

4
{"b":"568756","o":1}