Книга: UNIX — универсальная среда программирования
2.6 Иерархия каталогов
2.6 Иерархия каталогов
В первой главе рассмотрение иерархии файловой системы, начиная с каталога /usr/you
, носило несколько неформальный характер. Теперь мы хотим изучить ее последовательно, начиная от корня дерева.
Корневой каталог называется /
:
$ ls /
bin
boot
dev
etc
lib
tmp
unix
usr
$
Программа /unix
— это программа ядра UNIX: когда система начинает работу, /unix
считывается с диска в память и начинает выполняться. Все происходит за два шага: вначале считывается файл /boot
, а затем он считывает /unix
. Более подробно о таком процессе раскрутки можно узнать в справочном руководстве по boot(8)
. Остальные файлы каталога /
, по крайней мере в нашей версии, являются каталогами, каждый из которых представляет законченный раздел файловой системы. После дальнейшего краткого обзора иерархии читателю будет предоставлена возможность поэкспериментировать с упоминаемыми здесь каталогами. Чем лучше вы разберетесь в устройстве файловой системы, тем более эффективно сможете ею пользоваться. В табл. 2.1 указаны подходящие места для поиска, хотя некоторые имена каталогов зависят от системы.
/ |
Корень файловой системы |
/bin |
Основные программы, готовые к выполнению (двоичные) |
/dev |
Файлы устройств |
/etc |
"Разное" системы |
/etc/motd |
Сегодняшнее сообщение при входе в систему |
/etc/passwd |
Файл паролей |
/lib |
Основные библиотеки и т.п. |
/tmp |
Временные файлы; обновляется при запуске системы |
/unix |
Операционная система в форме, готовой к выполнению |
/usr |
Файловая система пользователей |
/usr/adm |
Системная служба: справочная информация и т.п. |
/usr/bin |
Команды для пользователей: troff и т.п. |
/usr/games |
Игровые программы |
/usr/include |
Файлы определений Си-программ, например math.h |
/usr/include/sys |
Системные файлы определений Си-программ, например inode.h |
/usr/lib |
Библиотеки для Си, Фортрана и т.п. |
/usr/man |
Диалоговое справочное руководство |
/usr/man/man1 |
Страницы справочного руководства раздела 1 |
/usr/mdec |
Диагностика ошибок аппаратуры, программы раскрутки и т.п. |
/usr/news |
Служба сообщений пользователей |
/usr/pub |
"Всякая всячина": см. ascii(7) и eqnchar(7) |
/usr/src |
Исходные тексты служебных функций и библиотек |
/usr/src/cmd |
Исходные тексты команд из /bin и /usr/bin |
/usr/src/lib |
Исходные тексты библиотечных функций |
/usr/spool |
Рабочий каталог для взаимодействующих программ |
/usr/spool/lpd |
Временный каталог для печатающего устройства |
/usr/spool/mail |
Почтовые ящики |
/usr/spool/uucp |
Рабочий каталог программ uucp |
/usr/sys |
Исходный текст ядра операционной системы |
/usr/tmp |
Альтернативный временный каталог (редко используется) |
/usr/you |
Ваш начальный каталог |
/usr/you/bin |
Ваши собственные программы |
Таблица 2.1: Интересные каталоги (см. также hier(7)
)
Каталог /bin
вам уже известен: в нем находятся основные программы типа who
или ed
.
Каталог /dev
(device — устройства) мы обсудим в следующем разделе.
Каталог /etc
(et cetera — и т.д.) также уже вам встречался ранее. В нем находится различная служебная информация, например файл паролей, и некоторые системные программы, такие, как /etc/getty
, которая инициирует связь с терминалом для команды /bin/login
, /etc/rc
— это файл команд, выполняющихся после раскрутки системы. В файле /etc/group
содержатся сведения о составе всех групп.
Каталог /lib
(library — библиотека) включает основные части компилятора языка Си, такие, как /lib/cpp
— препроцессор Си, /lib/libc.a
— библиотека стандартных функций Си.
Каталог /tmp
(temporaries — временное) представляет собой хранилище для временных файлов, создаваемых при выполнении программы.
Например, когда вы вызываете редактор, он создает файл с именем типа /tmp/e00512
, что позволяет иметь свою копию редактируемого файла, а не работать с оригиналом. Редактор мог бы, конечно, создать копию в вашем текущем каталоге, но есть причина для преимущественного использования /tmp
: хотя это и маловероятно, в вашем каталоге уже мог присутствовать файл e00512
. Далее каталог /tmp
автоматически очищается при запуске системы, так что в случае системной аварии в вашем каталоге не появится ненужный файл. Часто каталог /tmp
организуется на диске для обеспечения быстрого доступа к нему. Однако здесь возникает проблема: если сразу несколько программ создают файлы в каталоге /tmp
, их файлы могут перепутаться. Именно поэтому редактор ed
выбирает особое имя; оно построено таким образом, чтобы никакая другая программа не могла выбрать то же имя для временного файла. В гл. 5 и 6 будет показан способ достижения этого.
Каталог /usr
называется файловой системой пользователей, хотя он может быть мало связан с файлами настоящих пользователей системы. На своей машине мы используем исходные каталоги /usr/bwk
и /usr/rob
, но у вас часть иерархии, начинающаяся с /usr
, может быть другой. Независимо от того, находятся ли ваши файлы в каталоге, вложенном в /usr
, вы всегда найдете в нем что-нибудь интересное (если нет местной специфики). Так же, как и в каталоге /
, здесь есть каталоги с именами /usr/bin
, /usr/lib
и /usr/tmp
. Эти каталоги имеют назначение, сходное со своими тезками в каталоге /
, но содержат программы, менее критичные для системы. Например, программа nroff
обычно находится в /usr/bin
, а не в /bin
, библиотеки компилятора с Фортрана располагаются в /usr/lib
. Правда, "критичными" для разных систем считаются разные программы. Некоторые системы, такие, как широко распространенная седьмая версия, все программы хранят в /bin
, не имея дела с /usr/bin
. В других системах каталог /usr/bin
разбивается на два каталога в зависимости от частоты использования.
Кроме того, в /usr
есть каталог /usr/adm
со справочной информацией и /usr/dict
, содержащий небольшой словарь (см. spell(1)
). Диалоговое справочное руководство хранится в /usr/man
(см. в качестве примера /usr/man/man1/spell.1
). Если в вашей системе имеются исходные тексты, вы, вероятно, найдете их в /usr/src
.
Вероятно, целесообразно потратить немного времени на исследование файловой системы, особенно каталога /usr
, чтобы вам было понятно, как она устроена и где что можно найти.
- Заполнение справочников и каталогов
- Иерархия объектов в InterBase
- 1.7 Иерархия драйверов систем хранения и типы драйверов
- Просмотр каталогов
- Описание каталогов
- 10.1.34. Поиск файлов и каталогов
- Глава 8 Файловые системы и обходы каталогов
- Монтирование экспортируемых каталогов
- 5.2. Создание и удаление каталогов
- 5.3. Чтение каталогов
- 5.3.1. Базовое чтение каталогов
- 5.3.1.2. Элементы каталогов Linux и BSD