Общая структура файловой системы ОС Linux

Файловые системы Linux содержат множество каталогов, большинство из которых определяются стандартом FHS (Filesystem Hierarchy Standard).

В зависимости от используемого дистрибутива Linux, некоторых из представленных каталогов может и не быть, или наоборот, могут присуствовать другие непредставленные тут каталоги. Я попытался собрать и дать описание лишь наиболее часто встречающихся каталогов в ОС Linux.

Посмотреть структуру файловой системы можно используя команду ls -la

/ - корневой каталог

Главный каталог, в нем хранится все, что есть на вашей ОС Linux. Все разделы Linux хранятся в виде другого подкаталога в корневом каталоге /.

/bin - основные бинарные файлы (программы)

Содержит основные двоичные (бинарные) системные программы (модули), утилиты (ls, cp и т.п.) и командные оболочки (bash и т.п.), которые должны обеспечить минимальный уровень работоспособности системы в однопользовательском режиме. Размещение этих файлов в каталоге /bin гарантирует, что в системе эти важные утилиты будут даже в случае, если другие файловые системы не смонтированы.

/boot - файлы для загрузки ОС

Хранятся образы ядер Linux и файлы менеджеров загрузки (grub, lilo и т.д.).

/cdrom – точка монтирования для CD-дисков

Данный каталог не является частью стандарта FHS, содержится в Ubuntu и вышедших из него дистрибутивах. Используется как место для монтируования CD-ROM дисков.

/dev - файлы устройств

В Linux все устройства предоставлены в виде специфических файлов, расположеных в этом каталоге. Например, файл /dev/sda представляет диск SATA. Также в этом каталоге хранятся файлы псевдо-устройств (виртуальных), для этих файлов нет соответствующего реального устройства. Например, файл /dev/random генерирует случайные числа, а файл /dev/null является специальным устройством для удаления всех входных данных.

/etc - конфигурационные файлы

Содержит основные конфигурационные файлы операционной системы и различных программ.

/home - домашние каталоги пользователей

Содержит домашние каталоги пользователей. По идеологии UNIX для обеспечения безопасности ОС рекомендуется хранить пользовательские данные именно в этой директории. Например, если ваше имя пользователя mara, то у вас есть домашний каталог, который находится в /home/mara и содержит пользовательские конфигурационные файлы и личную информацию. Каждый пользователь имеет доступ на запись только в своем домашнем каталоге.

/lib - основные библиотеки

Эта директория предназначена для хранения системных библиотек и компонентов компилятора языка С, необходимых для работы программ из директорий /bin и /sbin и операционной системы в целом.

/lib64 - 64-битные основные библиотеки

Этот каталог присуствует в основном на 64-битных системах, содержит набор библиотек и компонентов компилятора языка С для 64-битных программ.

/lost+found - восстановленные файлы

Присуствует во всех ОС Linux. При сбое в работе файловой системы и дальнейшей проверке файловой системы (при загрузке ОС), все найденные поврежденные файлы будут помещены в каталоге lost+found, их можно попытаться восстановить.

/media - точка для автоматического монтирования

Используемая для автоматического монтирования различных устройств CD-ROM, USB-накопителей и т.д.

/mnt - точка для ручного монтирования

Используется для временного ручного монтирования (с помощю команды mount) различных устройств, таких как CD-ROM, USB-накопителей и т.д.

/opt - вспомогательные пакеты программ

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

/proc – файлы ядра и процессов

В эту директорию примонтирована виртуальная файловая система procfs. В ней находятся специальные файлы, в которых представлена информация о системе и о выполняющихся процессах. Например, в файле /proc/cpuinfo собержиться информация о процессоре.

/root - Домашний каталог пользователя root

Домашний каталог пользователя root. Вместо того, чтобы находиться в /home/root, он помещается в /root для большей надёжности системы.

/run – файлы состояния приложений

Является достаточно новым каталогом, в котором приложениям предоставляется возможность стандартным образом хранить вспомогательные файлы, которые им требуются, например, сокеты и идентификаторы процессов. Эти файлы нельзя хранить в каталоге /tmp, поскольку эти файлы могут быть там удалены.

/sbin - бинарные файлы (программы) для администрирования системы

Каталог /sbin похож на каталог /bin. В нем находятся важные двоичные файлы, которые, как правило, предназначены для их запуска пользователем при администрировании системы.

/selinux – виртуальная файловая система SELinux

В некоторых дистрибутивах (Red Hat, Fedora и т.п) для обеспечения безопасности используется пакет SELinux (Security-Enhanced Linux), при этом создается каталог с файлами /selinux.

/srv – данные сервисных служб

Этот каталог присутствует не во всех дистрибутивах, содержит "данные для сервисов, предоставляемых системой" (например, сервер Apache может хранить файлы вашего сайта в этом каталоге). В большинстве случаев директория пуста.

/sys - виртуальная файловая система sysfs

Этот каталог появился с выходом ядра версии 2.6 и в него примонтирована виртуальная файловая система sysfs с информацией об устройствах, драйверах, ядре ОС и т.п.

Описание вложеных каталогов:

/sys/block - содержит директории всех блочных устройств, присутствующих на данный момент в системе.

/sys/bus - содержит список шин, определенных в ядре Linux (eisa, pci и т.д.).

/sys/class - содержит список сгруппированных устройств по классам (printer, scsi-devices и т.д.).

/tmp - временные файлы

Временные файлы, обычно удаляются при перезагрузке системы. Является аналогом C:/Windows/Temp в ОС Windows. Все пользователи имеют права чтения и записи в этом каталоге.

/usr - пользовательские бинарные файлы, используемые только для чтения.

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

Описание вложеных каталогов:

/usr/bin - исполняемые файлы для всех учетных записей.

/usr/games - каталог для компьютерных игр в системе.

/usr/include - файлы заголовков, предназначенные для компиляции С-программ.

/usr/lib - системные библиотеки и вспомогательные файлы, расположенные в директории /usr.

/usr/local - в этот каталог устанавливаются приложения, откомпилированные локально, что позволяет им не смешиваться с остальной частью системы.

/usr/local/bin - локальные исполняемые файлы.

/usr/local/etc - локальные системные команды и файлы конфигурации.

/usr/local/lib - локальные вспомогательные файлы.

/usr/local/sbin - локальные служебные системные команды.

/usr/local/src - исходные коды программ каталогов /usr/local/*

/usr/man - страницы интерактивной документации.

/usr/sbin - менее важные команды системного администрирования.

/usr/share - общие данные установленных программ (доступен только для чтения).

/usr/share/man - страницы интерактивной документации.

/usr/share/icons - иконки системы.

/usr/share/doc - справочная документация.

/usr/src - исходные коды нелокальных программных пакетов (например, здесь располагаются исходные кода ядра).

/var - каталог для часто меняющихся данных

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

/var/adm - журнальные файлы, записи об инсталляции системы, административные компоненты.

/var/cache - все кэши для различных программ.

/var/games - файлы с игровыми достижениями.

/var/log - cистемные журнальные файлы (log-файлы).

/var/lock - лежат lock-файлы, указывающие на занятость некоторого ресурса.

/var/lib - изменяемые программами в процессе работы (например, базы данных, метаданные и др.).

/var/spool - буферные каталоги (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т.д.).

/var/tmp - каталог для временного хранения файлов.

/var/www - размещаются Web-страницы для сервера Apache.