Иерархия файловой системы
100%

Файловая система · Урок 1

Иерархия файловой системы

Изучите назначение основных каталогов Linux и различия современных объединённых компоновок.

Linux представляет смонтированные файловые системы единым деревом каталогов с корнем /. Filesystem Hierarchy Standard, или FHS, задаёт общепринятые роли многих каталогов, однако дистрибутивы, контейнеры, неизменяемые системы и локальная политика могут отличаться. Прежде чем полагаться на путь, проверьте реальный хост.

$ ls -ld /*

Корень и основные системные пути

  • / — корень видимого дерева файловой системы.
  • /etc хранит системную конфигурацию конкретного хоста. В нём могут находиться исполняемые вспомогательные сценарии или сценарии запуска, поэтому утверждать, что исполняемого содержимого там никогда нет, неверно.
  • /boot хранит связанные с загрузкой файлы: данные загрузчика, а во многих системах также ядра и образы начальной файловой системы в RAM.
  • /bin и /sbin традиционно содержат основные пользовательские и административные команды.
  • /lib и варианты для конкретных архитектур традиционно содержат основные разделяемые библиотеки и компоненты загрузчика.

Во многих современных дистрибутивах используется объединённая компоновка /usr, где /bin, /sbin и /lib являются символическими ссылками на соответствующие каталоги в /usr. Определяйте расположение команд и смотрите сведения пакетов, а не предполагайте, является путь настоящим каталогом или ссылкой.

Какой каталог традиционно содержит системную конфигурацию конкретного хоста?

Дистрибутивное и локальное ПО

  • /usr содержит основную разделяемую и преимущественно доступную только для чтения иерархию операционной системы и приложений: команды, библиотеки и независимые от архитектуры данные.
  • /usr/local предназначен для ПО и данных, которые локальный администратор устанавливает вне обычного управления /usr со стороны дистрибутива.
  • /opt может содержать дополнительные пакеты приложений в самостоятельных поддеревьях.

Несмотря на название, /usr обычно не предназначен для личных файлов отдельных пользователей. Значительной его частью управляют менеджеры пакетов дистрибутива, поэтому копирование локально собранных файлов в /usr/bin может конфликтовать с управляемыми пакетами.

Какой префикс традиционно предназначен для локально установленного ПО вне управляемого дистрибутивом содержимого /usr?

Данные пользователей и служб

  • /home традиционно содержит домашние каталоги непривилегированных пользователей, хотя службы каталогов и локальная политика могут размещать их иначе.
  • /root — традиционный домашний каталог учётной записи root.
  • /srv предназначен для специфичных этому сайту данных, которые обслуживает система.

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

Каков традиционный домашний каталог учётной записи root?

Изменяемые, временные и runtime-данные

  • /var содержит изменяемые данные: журналы, кеши, очереди и состояние приложений. Системные журналы часто находятся в /var/log, хотя некоторые системы в основном полагаются на интерфейс журнала.
  • /run содержит непостоянное состояние текущей загрузки: сокеты, состояние служб и PID-файлы. Обычно этот каталог создаётся заново при загрузке.
  • /tmp предназначен для временных файлов и обычно доступен для записи всем пользователям с защитой sticky bit.
  • /var/tmp предназначен для временных файлов, которые должны сохраняться дольше содержимого /tmp.

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

Какой путь традиционно хранит файлы системных журналов?

Устройства, интерфейсы ядра и точки монтирования

  • /dev содержит файлы устройств и связанные с ними runtime-ссылки.
  • /proc предоставляет через procfs интерфейсы процессов и ядра.
  • /sys предоставляет через sysfs объекты ядра, устройства, драйверы и атрибуты.
  • /media часто используется для автоматически монтируемых съёмных носителей.
  • /mnt — традиционное место временного монтирования администратором.

Это соглашения, а не разрешения доступа. Монтирование другой файловой системы в непустой каталог временно скрывает прежнее содержимое каталога до размонтирования.

Какой путь обычно показывает модель устройств ядра через sysfs?

Урок завершён

Вы завершили Иерархия файловой системы

Теперь вы можете связывать основные пути Linux с их назначением, учитывая различия реальных систем.

  • Начинать с единого дерева с корнем /.

  • Разделять конфигурацию, управляемое и локальное ПО, а также изменяемые данные.

  • Отличать домашние и служебные данные от состояния времени выполнения.

  • Узнавать в /dev, /proc и /sys специальные runtime-интерфейсы.

  • Проверять символические ссылки, монтирования, данные учётных записей и политику дистрибутива, прежде чем предполагать компоновку.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Файловая система