Главная » Программирование для UNIX » Иерархия каталогов UNIX

0

В первой главе неформальное рассмотрение иерархии файловой систе мы  начиналось с каталога /usr/you. Теперь рассмотрим ее более методично, с самого начала, от ее корня.

Корневым каталогом является /:

$ ls / bin boot dev

etc  lib tmp unix usr

$

В файле /unix находится ядро  UNIX: при запуске системы оно считывается в память и запускается. Точнее  говоря, процесс состоит  из двух  шагов: первым загружается файл /boot, а он, в свою очередь, считывает /unix. Дополнительную информацию о процессе начальной загрузки можно получить из  boot(8). Остальные файлы в /, по крайней мере  в данном примере, – это каталоги, содержащие отдельные части файловой системы. Читая приведенный ниже краткий обзор иерархии каталогов, загляните в упомянутые там каталоги: поняв, как организована файловая  система, вы  сможете более  эффективно ее  использовать. В табл. 2.1  перечислены  каталоги, с которыми полезно ознакомиться, правда некоторые из них могут  иметь другие имена:

•         /bin (binaries – двоичные файлы) – этот каталог уже  встречался, в нем находятся основные программы, такие как who и ed;

•         /dev (devices – устройства) – рассмотрим этот каталог в следующем разделе;

•         /etc (et cetera – разное) – тоже  уже встречался. Содержит различные служебные файлы, в частности файл паролей и некоторые программы,  например  /etc/getty, инициализирующую соединение  с терминалом по запросу от  /bin/login. Файл  /etc/rc –  командный, выполняемый после начальной загрузки системы. В /etc/group перечислены пользователи всех групп;

•         /lib (library – библиотека) содержит главным образом компоненты компилятора  Си,  такие как препроцессор /lib/cpp, и стандартную библиотеку /lib/libc.a;

•         /tmp (temporaries – временные файлы) – это хранилище файлов, создаваемых только на время выполнения программы.

Таблица 2.1. Представляющие интерес каталоги (см. также hier(7))

Каталог

Содержимое

/

/bin

/dev

/etc

/etc/motd

/etc/passwd

/lib

/tmp

/unix

/usr

/usr/adm

/usr/bin

/usr/dict

/usr/games

/usr/include

/usr/include/sys

/usr/lib

/usr/man

/usr/man/man1

/usr/mdec

/usr/news

/usr/pub

/usr/src

/usr/src/cmd

/usr/src/lib

/usr/spool

/usr/spool/lpd

/usr/spool/mail

/usr/spool/uucp

/usr/sys

/usr/tmp

/usr/you

/usr/you/bin

корневой каталог файловой системы основные исполняемые программы файлы устройств

прочие системные файлы сообщение при регистрации файл паролей

основные библиотеки и т. п.

временные файлы; очищается при перезагрузке системы исполняемый образ операционной системы

файловая система пользователей

администрирование системы: учетная информация и т. п.

двоичные файлы пользователя: troff и т. д. словарь (words) и файлы поддержки для spell(1) игровые программы

файлы заголовков для программ на Си, например math.h файлы заголовков системных программ, например inode.h библиотеки Си, Фортрана и т. д.

справочное руководство

страницы первого раздела руководства

диагностика оборудования, начальная загрузка и т. п.

сообщения службы news

общедоступные файлы: см. ascii(7) и eqnchar(7)

исходные тексты утилит и библиотек исходные тексты команд из /bin и /usr/bin исходные тексты библиотечных функций рабочие каталоги коммуникационных программ

временный каталог построчно печатающего принтера почтовые ящики

рабочий каталог программ uucp

исходные тексты ядра операционной системы альтернативный временный каталог (редко используется) регистрационный каталог пользователя

личные программы пользователя

Например, редактор ed при  запуске создает файл с именем вида  /tmp/  e00512 для хранения копии редактируемого файла и работает с ним, а не с оригиналом. Можно, конечно, создать его и в текущем каталоге, но использование /tmp имеет свои преимущества: маловероятно, но все же возможно, что файл с именем e00512 уже существует, а /tmp очищается автоматически при старте системы – в рабочем каталоге не будут скапливаться ненужные файлы при  сбое системы; к тому  же, каталог /tmp обычно оптимизирован для быстрого доступа.

Разумеется, может возникнуть проблема, когда  несколько программ одновременно пытаются создать файлы в /tmp. Именно поэтому ed дает временным файлам специфические имена: они  формируются таким образом, чтобы  исключить совпадение с именами временных файлов других программ. В главах 5 и 6 будет рассказано о том,  как этого достичь.

Каталог /usr называется «пользовательской файловой системой», хотя может и не иметь ничего общего  с действительными пользователями системы. На машине авторов регистрационные каталоги называются

/usr/bwk  и /usr/rob, но на  других машинах  пользовательская область может находиться в другом месте, как было  рассказано в главе 1. Независимо от того, находятся ли файлы пользователей в /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, чтобы  понять, как она организована и где при случае можно найти требуемый файл.

Источник: Керниган Б., Пайк Р., UNIX. Программное окружение. – Пер. с англ. – СПб: Символ-Плюс, 2003. – 416 с., ил.

По теме:

  • Комментарии