Книга: 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, чтобы вам было понятно, как она устроена и где что можно найти.

Оглавление книги


Генерация: 1.558. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз