Структура директориев в Linux

Для того чтобы избежать возможных проблем при работе с ОС Linux, стоит разобраться в структуре размещения различных файлов и директориев. Не существует "абсолютной" и "идеальной" структуры директориев, но структура каталогов Linux может перенастраиваться и файлы можно размещать произвольно, в других местах без ущерба для работы системы. Домашним директорием пользователя sidorov будет по умолчанию /home/sidorov, но он может быть перенесен и в каталог /.sidorov. Принятый стандарт просто облегчает работу пользователей со своими файлами.

В отличие от других операционных систем, Linux не хранит все файлы в одном огромном каталоге. Файлы распределены по нескольким директориям, и знание стандартной структуры директориев UNIX/Linux облегчает поиск нужных файлов и работу с ними. В этой статье мы рассмотрим назначение и роль различных директориев в Linux в алфавитном порядке.

Первый каталог - /bin - содержит набор исполняемых файлов, программ. Основные программы, используемые всеми пользователями, такие, как ls, sync, rm, cat, grep и т.д., хранятся в этом каталоге. Другим каталогом для исполняемых файлов являются каталоги /usr/bin, usr/X11R6/bin, usr/local/bin и ~/bin.

Следующий каталог - /boot. Он имеется не в каждом дистрибутиве Linux. В нем находится само ядро операционной системы - кернел и файлы, используемые при загрузке системы. Кернел может находиться и в корневом каталоге - /.

Каталог /cdrom служит для монтирования CD-ROM дисков. В некоторых дистрибутивах компакт-диски монтируются в каталог /mnt/cdrom. Для монтирования флоппи-дисков обычно служит каталог /mnt/floppy.

Каталог /dev содержит множество файлов (как правило, их количество превышает тысячу). Эти файлы используются для взаимодействия операционной системы с внешними устройствами, а также файлы FIFO (File Input - File Output). Эти файлы не являются драйверами устройств, сами драйверы обычно встраиваются в кернел или подгружаются в виде динамических модулей, они служат интерфейсом между кернелом и соответствующим устройством.

Следующий каталог - /etc очень важен для системы. В нем хранятся файлы данных и настроек различных программ, включая файлы конфигурации LILO, загрузчика Linux. Кернел, например, может хранить настройки звуковой платы в файле /etc/soundconf. Программы - скрипты, выполняемые при загрузке компьютера, находятся в каталоге /etc/rc.d. Структура этих файлов различается в зависимости от конкретного дистрибутива Linux. Файл /etc/inittab хранит системные настройки, такие, как описание различных уровней запуска системы (runlevels) и директивы обработки нажатия комбинации клавиш Ctrl-Alt-Del. Для предотвращения перезагрузки компьютера любым пользователем, дорвавшимся до системной консоли, можно установить настройки обработки этой популярной трех-клавишной комбинации, например, на воспроизведение звукового файла mp3. Другим важным каталогом является каталог /etc/X11, там хранятся настройки графического оконного интерфеса XF86Config. Но эти файлы могут быть размещены и в другом месте.

В каталоге /home находятся домашние каталоги всех пользователей системы. Подкаталоги /home/ftp и /home/http содержат наборы файлов, которые являются содержимым Ваших FTP и WWW серверов.

Каталог /lib, как и каталог /bin, содержит исполняемые файлы и файлы библиотек, используемых различными программами, каталоги /usr/X11R6/lib и /usr/local/lib - также наборы библиотек.

Иногда Вы можете встретить каталог /lost+found, в нем находятся inode файлов, когда-либо потерянных файловой системой, для размещения которых не нашлось другого места. Inode - это структура данных на диске с описанием атрибутов файла.

Следующий каталог /proc - вещь очень серьезная. Даже администратор системы, пользователь root не может редактировать файлы, которые находятся в этом каталоге. (Если у Вас это получилось, это плохой признак). В этом каталоге находятся данные, используемые кернелом, причем для хранения этих данных используется особая виртуальная файловая система, которая на первый взгляд ведет себя очень странно, - если Вы попытаетесь определить размер файлов в этом каталоге при помощи команды du, Вы получите нулевое значение, хотя файлов там немало и все они содержат информацию. Кернел сам заботится об информации, хранимой в этом каталоге и активно использует ее.

Каталог /root - домашний каталог администратора системы, пользователя root. Часто там хранятся программы, написанные им для определенных целей, а также файлы настроек админовского шелла.

В каталоге /sbin находятся исполняемые программы, которые не нужны рядовым пользователям, но необходимы администратору системы. Другие подобные каталоги - /usr/sbin и /usr/local/sbin - содержат такие программы, как ldconfig, mke2fs, quotaon, insmod, dnsconf, modprobe... и т.д. Обычные пользователи выполнять эти программы не могут - это собственность администратора.

Каталог /tmp является уникальным, потому что он имеет разрешение по записи для всех пользователей. Он содержит временные файлы и файлы FIFO и используется различными программами при их работе.

Теперь мы переходим к каталогу /usr, возможно, самому большому каталогу на Вашем компьютере. Как подсказывает его название, он хранит файлы всех пользователей и их программы. Он содержит подкаталоги, как и каталог /root. Подкаталог /usr/X11R6 содержит файлы графической системы Х. Здесь Вы найдете файлы с документацией, программы, библиотеки и все файлы, которые используются графической системой. В каталоге /usr/bin содержатся дополнительные программы, например passwd, nice и zgrep. Каталог /usr/doc содержит документацию по операционной системе. Подкаталог /usr/lib - дополнительные библиотеки и файлы данных различных программ. Следующий полезный подкаталог - /usr/local. Если Вы компиллируете и устанавливаете дополнительные программы на Ваш компьютер, чаще всего они устанавливаются в этот каталог. Многие программы, например, популярный GIMP, размещают некоторые файлы данных в каталоге /usr/local/share. В подкаталоге /usr/src хранятся исходные тексты кернела.

И наконец каталог /var - вместилище временных файлов электронной почты, файлов, выводимых на печать, файлов с результатами компьютерных игр, протоколы работы системы и т.д.

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

Игорь Грень


Компьютерная газета. Статья была опубликована в номере 03 за 1999 год в рубрике soft :: ос

©1997-2024 Компьютерная газета