Материал: Аверянов Введение в оператсионные системы и основы программирования 2015

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

1.2.2. Домашний и текущий каталог. Относительный путь

Каждому пользователю, зарегистрированному в системе, выделяется личный, или домашний, каталог. В этот каталог пользователь попадает сразу после входа в систему, здесь он может создавать и хранить собственные каталоги и файлы. Пользователь v100- 1, войдя в систему, получает в свое распоряжение домашний каталог, полный путь которого: /home/groups/v100/v100-1. Сразу после входа в систему этот каталог является также и текущим каталогом. Для ответа на вопрос, «какой каталог является текущим?», в UNIX предусмотрена команда pwd (print working directory) – пример 1.1.

Команда pwd – просмотр пути текущего каталога

Здесь и далее в форматах команд, в квадратные скобки заключаются необязательные элементы в записи команды.

Пример 1.1. Просмотр пути текущего каталога v100-1@beta:~> pwd

/home/groups/v100/v100-1 v100-1@beta:~>

Что такое текущий каталог? Для чего он нужен и чем удобен? Полный (абсолютный) путь описывает местоположение каталога или файла в дереве файловой системы относительно корня (корневого каталога). Теоретически этого вполне достаточно для манипулирования файлами и каталогами. При этом постоянно набирать на клавиатуре длинные, содержащие много символов, абсолютные пути долго и неудобно. Если пользователь работает с файлами, находящимися в каком-либо каталоге, то целесообразно и логично как-то зафиксировать путь к этому каталогу, т.е. сделать этот ката-

26

лог текущим. После этого можно работать с файлами выбранного таким образом каталога уже без указания длинного пути. Более того, появляется возможность записи более коротких путей относительно текущего каталога, обозначаемого как «.» – точка, к близлежащим (на дереве файловой системы) каталогам и файлам.

В UNIX-системах короткие (относительные) пути могут записываться относительно текущего или домашнего каталога, обозначаемого как «~» – символ волны или «тильда».

Для файлов и каталогов, находящихся непосредственно в текущем каталоге, путь можно не указывать совсем или в ряде случаев путь указывается как «./имя». По такому же принципу указывается путь к объектам, расположенным непосредственно в домашнем каталоге, как «~/имя». Если текущий или домашний каталог содержит вложенные каталоги, то, как и в случае абсолютного пути, записывается последовательность вложенных имен, разделяемая прямым слешем «/». Если же наоборот, необходимо указать путь к каталогам верхнего уровня, то каждый переход на уровень выше обозначается как «..» – две последовательные точки. Например, путь на два уровня вверх относительно текущего каталога будет записываться как «./../..», а такой же путь относительно домашнего каталога будет выглядеть как «~/../..».

Для задания и изменения текущего каталога в UNIX-системах предусмотрена команда cd (change directory).

Команда cd – задание или изменение текущего каталога

Пример 1.2 показывает, как по абсолютному пути перейти в каталог /usr/share/liblab/proverbs (сделать его текущим). Команда отделяется от пути одним или несколькими пробелами. Вернуться в домашний каталог можно аналогичным образом (пример 1.3).

Пример 1.2. Изменение текущего каталога v100-1@beta:~> cd /usr/share/liblab/proverbs v100-1@beta:/usr/share/liblab/proverbs> pwd /usr/share/liblab/proverbs v100-1@beta:/usr/share/liblab/proverbs>

Пример 1.3. Возвращение в домашний каталог пополному пути v100-1@beta:/usr/share/liblab/proverbs>cd /home/groups/v100/v100-1 v100-1@beta:~>pwd

/home/groups/v100/v100-1 v100-1@beta:~>

27

Существует и более простой способ перехода в домашний каталог (пример 1.4). Более того, если использовать команду cd вообще без параметров – результат будет тот же.

Пример 1.4. Короткое возвращение в домашний каталог v100-1@beta:/usr/share/liblab/proverbs>cd ~ v100-1@beta:~>pwd

/home/groups/v100/v100-1 v100-1@beta:~>

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

Пример 1.5. Переходы по дереву «к корню» v100-1@beta:~> cd ./.. v100-1@beta:/home/groups/v100> pwd /home/groups/v105 v100-1@beta:/home/groups/v100> cd ./../.. v100-1@beta:/home> pwd

/home v100-1@beta:/home>

Можно также выстраивать пути, состоящие из шагов к корню, а затем от корня, как путь ./../../usr (пример 1.6).

Пример 1.6. Переход по пути «к корню – от корня» v100-1@beta:/home> cd ./../usr

v100-1@beta:/usr> pwd /usr v100-1@beta:/usr>

Если ставится задача перейти, например, из текущего каталога /usr в каталог v100, то оптимальным будет использование пути относительно домашнего каталога v100-1, поскольку это будет самая короткая запись (пример 1.7).

28

Пример 1.7. Переход по пути «от домашнего каталога» – самый короткий v100-1@beta:/usr>~/..

v100-1@beta:/home/groups/v100>pwd /home/groups/v100 v100-1@beta:/home/groups/v100>cd ./v100-1 v100-1@beta:~>pwd /home/groups/v100/v100-1

v100-1@beta: ~>

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

1.2.3. Просмотр каталогов и файлов

Важным элементом навигации по файловой системе является просмотр структуры каталогов и файлов, а также их содержания.

Команда tree – просмотр [части] дерева файловой системы

Пример 1.8 показывает использование команды tree для просмотра структуры каталога proverbs в виде дерева. Синим цветом на экране отображаются каталоги, белым цветом – файлы. Этого не видно на черно-белом листе бумаги, поэтому приведен пример команды tree –F. Ключ «F» обеспечивает отображение слеша «/» после имен каталогов при любой цветовой гамме, соответственно у имен файлов слеш отсутствует.

 

 

Пример 1.8. Древовидная структура каталога proverbs

v100-1@beta: ~>tree –F /usr/share/liblab/proverbs

/usr/share/liblab/proverbs

|-- body/

|

|-- birds/

|

|

|-- birds

|

|

`-- goose

|

|-- economy/

|

|

|-- money

|

|

`-- thrifty

|

`-- life/

|

 

|-- food

|

 

`-- work

`-- spirit/

29

|-- happyend/

|

|-- final

|

`-- good

|-- mind/

|

|-- philosph

|

`-- strange

`-- opposite/

|-- life `-- war

v100-1@beta: ~>

Команда ls просмотр списка объектов в каталоге

Команда имеет много параметров. Наиболее часто используется: ls без параметров – вывод файлов и подкаталогов текущего ка-

талога;

ls путь/имя_ каталога – вывод файлов и подкаталогов произвольного каталога;

ls --colorвывод содержимого каталога в цвете: зелёный – исполняемые файлы; синий – каталоги; чёрныё – обычные файлы;

ls -l путь/имя_ файлаа – вывод типа файла, владельца файла, прав доступа для разных категорий пользователей и т.д.;

ls -Fключ «F» обеспечивает отображение слеша «/» после имен каталогов при любой цветовой гамме (пример 1.9).

Пример 1.9. Просмотр списка каталогов и файлов содержащихся в prov-

erbs

v100-1@beta:~> ls -F /usr/share/liblab/proverbs body/ spirit/

v100-1@beta:~>

Пример 1.9 демонстрирует применение команды ls –F для просмотра списка каталогов, являющихся подкаталогами proverbs. Смысл ключа «F» тот же, что и в предыдущем примере.

Применяя команды tree и ls без указания пути можно увидеть структуру и содержание текущего каталога.

Вопрос о просмотре содержания файла решается применением команды cat с указанием имени файла (пример 1.10), если он находится в текущей директории или пути к файлу (пример 1.11).

30

Источник: https://studfile.net/preview/16708824/