Расположение файлов и директорий в Linux регулируется стандартом Filesystem Hierarchy Standard (FHS). Текущая версия стандарта — 3.0 от 3 июня 2015 года.
При этом следует понимать, что FHS, хоть и является основанным на POSIX, но разрабатывался исключительно для Linux и другие UNIX-системы следовать ему не обязаны.
Также далеко не все дистрибутивы полностью следуют этому стандарту, допуская различные отклонения, но, в общем и целом, основные положения соблюдаются.
Начинается файловая система с корня, который обозначается обратной косой чертой -
/
Директория /bin содержит бинарные (исполняемые) файлы пользовательского уровня, для выполнения которых не нужны права суперпользователя, например, cat, find или ls./boot – загрузчик и все что с ним связаноВ Linux все есть файл, даже устройства. Поэтому мы всегда можем их найти в директории
/dev, например, блочные устройства /dev/sda или виртуальное устройство /dev/null./etc – конфигурационные файлы/home – домашние директории пользователей, для каждого пользователя в данном каталоге создается собственная поддиректория: /home/Ivanov или /home/petrov
Для хранения библиотек программ предназначена директория /lib, в современных системах, в зависимости от поддерживаемых архитектур это целый набор директорий, таких как lib32, lib64 и т.п./lost+found, как следует из названия, хранит найденные файлы, которые не относятся ни к одной директории, но их inode не помечены как свободные. Т.е. если во время проверки файловой системы будут найдены такие файлы, то система поместит их сюда. /media используется для автоматического монтирования съемных носителей, таких как флешки, USB или оптические диски./mnt – а вот сюда мы можем монтировать нужные устройства вручную. Например, можем примонтировать дополнительный диск для общего хранилища: /mnt/samba и т.д./opt – дополнительное программное обеспечение, чаще всего проприетарное, или имеющее большой дисковый размер. /proc – сюда смонтирована виртуальная файловая система procfs, через «файлы» этой директории мы можем получить различную информацию от ядра системы. Скажем, cat /proc/meminfo – информация об оперативной памяти./root – домашняя директория суперпользователя, всегда находится в корневом каталоге./run – файлы состояния приложений, такие как сокеты или PID-файлы/sbin – исполняемые файлы, которые для своего запуска требуют права суперпользователя. В первую очередь к ним относятся служебные утилиты. Здесь мы можем найти fdisk, sysctl, useradd и т.д./srv – стандарт предполагает хранение здесь данных сервисов, предоставляемых системой. На практике не используется./sys – место монтирования виртуальной файловой системы sysfs, которая позволяет не только получать различные параметры ядра, но и передавать ему настройки через «запись» нужного параметра в определенный «файл», все измененные параметры действуют до перезагрузки./tmp – временные файлы/usr – достаточно интересная директория, предназначена для хранения всех установленных пользователем программ, документации, исходного кода. Предполагается, что данная директория может быть доступна по сети.В ней также содержатся директории
/usr/bin, /usr/sbin, /usr/lib и т.д.Т.е. изначально предполагалось разделение на файлы самой системы и файлы, которые установил пользователь. Однако в большинстве современных систем директории
/bin, /sbin и все /lib являются симлинками на одноименные директории в /usr.Отдельно стоит отметить
/usr/share, где располагаются различные общие ресурсы, такие как документация, примеры конфигурационных файлов, иконки и т.д.А также
/usr/local, куда по умолчанию устанавливаются файлы программ, которые собраны из исходных кодов или получены иными путями в обход менеджера пакетов./var – файлы, которые изменяются при работе системы, например, логи - /var/log, базы данных - /var/lib, файлы обслуживаемые веб сервером - /var/www.