Структура файловой иерархии Linux, также известная как Filesystem Hierarchy Standard (FHS), определяет организацию каталогов и их содержимое в операционных системах, подобных Unix. За поддержание стандарта отвечает организация Linux Foundation.

  • Согласно FHS, все файлы и каталоги располагаются внутри корневого каталога /, даже если физически или виртуально они находятся на разных устройствах.

  • Некоторые из этих каталогов присутствуют в системе только при наличии определённых подсистем, например X Window System.

  • Большинство из этих каталогов встречаются во всех UNIX-подобных системах и используются примерно одинаково, однако описания, приведённые здесь, актуальны именно для FHS и не считаются авторитетными для платформ, отличных от Linux.

linux-directory
linux-directory

1. / (корень):

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

  • Каждый файл и каталог в системе начинается с корневого каталога.

  • Только пользователь с root правами (суперпользователь) имеет право записывать в этот каталог.

  • /root — это домашний каталог суперпользователя, и он не является синонимом /.

Только суперпользователь имеет права на изменение содержимого этого каталога. Обычные пользователи не могут вносить здесь изменения. Например, если вы попытаетесь создать файл в / не обладая root-правами, вы столкнетесь с ошибкой доступа.

root-linux-directory
root-linux-directory

2. /bin и /sbin:

Каталоги /bin и /sbin исторически содержали базовые команды и системные утилиты, необходимые при загрузке и восстановлении системы. Однако в большинстве современных Linux-дистрибутивов (например, Ubuntu, Debian, Fedora, Arch) они стали символическими ссылками на каталоги /usr/bin и /usr/sbin. Это часть стандарта usr merge, цель которого — упростить иерархию. Теперь все исполняемые файлы хранятся в одном месте — /usr/bin и /usr/sbin, а /bin и /sbin оставлены для совместимости.

bin-linux-directory
bin-linux-directory

3. /boot:

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

  • Файлы ядра (initrd, vmlinux, grub) находятся в каталоге /boot.

  • Примеры: vmlinuz-5.15.0-88-generic, initrd.img-6.8.0-rc4 Каталог по-прежнему содержит ядро Linux и конфигурации загрузчика (например, GRUB), однако в системах с UEFI часть настроек может храниться в /boot/efi.

boot-linux-directory
boot-linux-directory

4. /dev:

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

Файлы устройств бывают двух типов: блочные устройства (например, жёсткие диски) и символьные устройства (например, микрофоны и динамики). Пример: /dev/sda1 — раздел жёсткого диска.

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

  • Примеры: /dev/tty1, /dev/usbmon0

dev-linux-directory
dev-linux-directory

5. /etc:

Распространённая шутливая расшифровка — «Editable Text Configuration», но на самом деле /etc — это просто «et cetera» («и прочее»). В каталоге хранятся системные конфигурационные файлы, в том числе настройки сети, пользователей, служб и загрузки. Например, здесь указываются данные о пользователях, такие как UID и локальные адреса.

  • Здесь также находятся сценарии запуска и завершения работы, используемые для старта и остановки отдельных программ.

  • Примеры: /etc/resolv.conf, /etc/logrotate.conf

etc-linux-directory
etc-linux-directory

6. /home:

Каждый не-root пользователь имеет персональный каталог внутри /home. Например, если ваше имя пользователя — anshu, то ваш домашний каталог будет /home/anshu.

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

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

  • Примеры: /home/kishlay, /home/kv

home-linux-directory 
home-linux-directory 
home-linux-directory
home-linux-directory

7. /lib:

Приложениям для работы требуются разделяемые библиотеки, которые хранятся в каталоге /lib. В их числе — динамические библиотеки, необходимые во время выполнения программ.

  • Например, здесь могут находиться базовые системные библиотеки, используемые при запуске системы. Библиотеки сторонних приложений чаще располагаются в /usr/lib.

  • Названия библиотек обычно начинаются с ld* или lib*.so.*.

Примеры: ld-2.11.1.so, libncurses.so.5.7

lib-linux-directory
lib-linux-directory

8. /media:

Каталог /media используется для автоматического монтирования съёмных устройств, таких как USB-флешки, SD-карты и внешние диски.

Современные дистрибутивы Linux монтируют такие устройства автоматически в подкаталоги по шаблону: /media/<имя_пользователя>/<имя_устройства> — например, /media/alex/USB_DISK.

Ранее использовались общие каталоги вроде /media/cdrom или /media/floppy, но они устарели и почти не применяются в актуальных системах.

media-linux-directory
media-linux-directory

9. /mnt:

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

mnt-linux-directory
mnt-linux-directory

10. /opt:

Стороннее программное обеспечение и пакеты, не входящие в стандартную поставку системы, размещаются в каталоге /opt. Здесь хранятся как исполняемые файлы, так и связанные с ними данные и конфигурации.

  • Содержит дополнительные приложения от сторонних поставщиков.

  • Дополнительные приложения должны устанавливаться в каталог /opt/ или его подкаталоги.

opt-linux-directory
opt-linux-directory

11. /srv:

Содержит специфичные для данного сервера данные, предоставляемые через различные сервисы — например, данные и скрипты для веб-серверов, информация, выдаваемая через FTP, и репозитории для систем контроля версий.

  • srv расшифровывается как «service» (сервис).

  • Содержит данные, относящиеся к конкретным сервисам, работающим на сервере.

  • Пример: /srv/cvs — данные, связанные с системой CVS.

srv-linux-directory
srv-linux-directory

13. /tmp:

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

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

  • Файлы в этом каталоге удаляются при перезапуске системы.

tmp-linux-directory
tmp-linux-directory

14. /usr:

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

  • Содержит бинарные файлы, библиотеки, документацию и исходный код для программ второго уровня.

  • /usr/bin — содержит все основные пользовательские команды.

  • /usr/sbin — содержит бинарные файлы для системных администраторов. Если нужной утилиты нет в /sbin, она может быть здесь. Примеры: atd, cron, sshd, useradd, userdel

  • /usr/lib — содержит библиотеки, используемые программами из /usr/bin и /usr/sbin

  • /usr/local — каталог для пользовательских программ, установленных из исходников. Например, если вы собираете Apache из исходников, он будет установлен в /usr/local/apache2

  • /usr/src — содержит исходные тексты ядра Linux, заголовочные файлы и документацию

usr_bin-linux-directory
usr_bin-linux-directory
usr_sbin-linux-directory
usr_sbin-linux-directory
usr_lib-linux-dirctory
usr_lib-linux-dirctory
usr_local-linux-directory
usr_local-linux-directory
usr_src-linux-directory
usr_src-linux-directory

15. /proc:

/proc — это виртуальная файловая система, предоставляющая интерфейс к внутренним структурам ядра.

Помимо информации о процессах (/proc/<PID>), здесь содержатся данные о памяти (/proc/meminfo), процессоре (/proc/cpuinfo), загрузке (/proc/uptime), параметрах ядра (/proc/sys/) и многое другое.

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

proc-linux-directory
proc-linux-directory
proc-linux-directory
proc-linux-directory

16. /run:

/run — временный каталог, появившийся с переходом на systemd. Используется для хранения PID-файлов, сокетов и другой информации, необходимой во время работы системы.

Это файловая система tmpfs, и её содержимое теряется при перезагрузке. Старый путь /var/run теперь обычно является симлинком на /run.

Заключение

Файловая система Linux (FHS) используется для хранения всего — от программ и настроек до личных файлов пользователя. Она начинается с корневого каталога / и организует структуру в виде специальных папок, каждая из которых выполняет свою задачу.

Ключевые каталоги включают:

/home — для личных файлов пользователя,
/etc — для системных настроек,
/usr/bin — для основных пользовательских команд (исторически — /bin),
/tmp — для временных файлов.

Такая организация делает систему Linux аккуратной, безопасной и единообразной на всех компьютерах.


Вы можете сколько угодно изучать структуру файловой системы, но без практики в реальных инструментах это останется теорией. Администрировать Linux — значит уметь автоматизировать, упрощать и разворачивать окружения в несколько команд. Если хочется уверенно владеть инструментами вроде Bash и Docker — приходите на открытые уроки:

Получить навыки администрирования Linux, которые выделят вас среди начинающих администраторов, можно на курсе "Administrator Linux. Basic".

Комментарии (10)


  1. 13werwolf13
    24.07.2025 11:31

    автор этого поста видимо не вкурсе что FHS имеет свойство развиваться и меняться и поэтому транслирует нам информацию из прошлого?

    Файловая структура в никсах часто пугает новичков с первого взгляда, но на самом деле FHS очень простой, хорошо продуманный и легкопонимаемый стандарт. и на самом деле гораздо больше пользы было бы от перевода pdf/html актуального стандарта чем от краткой выжимки, не надо сокращать то что и так достаточно коротко.


    1. kmoseenk Автор
      24.07.2025 11:31

      Спасибо за рекомендацию, но стандарт довольно объёмный — с какой главы посоветовали бы начать перевод? Есть какие-то приоритетные самостоятельные части?


      1. 13werwolf13
        24.07.2025 11:31

        стандарт довольно объёмный

        Всё познаётся в сравнении..

        с какой главы посоветовали бы начать перевод?

        Боюсь показаться кэпом, но начинать лучше с начала))

        Есть какие-то приоритетные самостоятельные части?

        Что важнее в бутерброде, хлеб или колбаса? Ответ - всё одинаково важно, без одного или другого это будет уже не бутерброд.


        1. kmoseenk Автор
          24.07.2025 11:31

          Попробую найти на это время)


    1. dv0ich
      24.07.2025 11:31

      хорошо продуманный

      Очень толсто.


  1. dlinyj
    24.07.2025 11:31

    Есть ещё важное дополнение, почему какие-то программы в /usr , а что-то в /lib и /bin. То что эти каталоги могут монтироваться отдельно и может быть разный состав (в т.ч. для разных пользователей) состав ПО и блиблиотек.

    В принципе я поддерживаю подобные статьи. Тем более что раз вы рекламируете курсы, то могли бы делать их авторскими, а не переводами.


  1. kolezz
    24.07.2025 11:31

    Очередная попытка пересказать "man hier" на пальцах?


  1. ncpuma
    24.07.2025 11:31

    А где /sys? Как железо-то будет работать?)))

    /sys/dev, /sys/bus, /sys/class, и т.д. Короче, тема /sys'ек не раскрыта!


  1. AlexGorky
    24.07.2025 11:31

    Когда начинал изучать линукс, никак не мог понять различия между /opt и /usr/local, а также /media и /mnt

    Также в статье ни слова про /var и /etc. Почему?


  1. DungeonLords
    24.07.2025 11:31

    Оффтоп. Как при установке пакета из репозитория указать другой путь? Например, нет больше место на основном диске... Предположим, Debian...