Иерархия каталогов в Unix

<aside> 💡

Определение FHS (из вики)

FHS (Filesystem Hierarchy Standard, «стандарт иерархии файловой системы») — стандарт, унифицирующий местонахождение файлов и каталогов с общим назначением в файловой системе ОС Linux. На данный момент большинство UNIX-подобных систем в той или иной степени следует этим правилам.

Для получения справки об используемой в ОС системе каталогов иногда существует команда $ hier либо $ man hier.

</aside>

Описание иерархии каталогов согласно FHS

  1. / - корневой каталог (aka root или корень), содержащий всю файловую иерархию. Он содержит все базовые каталоги и файлы, которые необходимы для того, чтобы система могла загрузиться и начать работать;
  2. /home - содержит домашние каталоги пользователей, нужны для изоляции пользовательских файлов и предоставляет возможность туда писать – изоляция пользователей друг от друга и системы от пользователя;
  3. /bin - основные утилиты, необходимые как в однопользовательском режиме, так и при обычной работе всем пользователям, например: cat, ls, cp;
  4. /sbin - бинарники для служебных нужд;
  5. /dev - основные файлы устройств (например, /dev/null, /dev/zero);
  6. /proc - виртуальная файловая система, представляющая состояние ядра операционной системы и запущенных процессов в виде файлов. Примеры из конспекта (что-то может не работать): self - ссылается на папку с процессом, который на данный момент к ней обращался – ls /proc/self-ld, exe - ссылка исполняемых файлов, /proc/1/fd - сколько файловых дескрипоров активно, /proc/1/maps - карта расположения процессов с виртуальными адресами, proc/net/tcp - посмотреть порты, sudo lsof -N -l 4 – то же самое но красивее, netstat -l -n -tcp -l 4 - то же самое;
  7. /etc - конфигурационные файлы служб, пользователей (/etc/passwd - некоторая информация о пользователях и их домашняя папка, параметры логина), демонов, etc/shadow;
  8. /root - домашняя папка корня, обычно вынесена из /home;
  9. /boot - efi и внутри него grub, ядра и их конфиги, initrd и тд;
  10. /opt - дополнительное программное обеспечение;
  11. /tmp - временные файлы;
  12. /sys – более структурированное, в отличие от прока, взаимодейтсвие с ядром (sys/class/net/enp3s0);
  13. /mnt (media) – содержит директории устройств, в том числе имена директорий можно перенастроить;
  14. /var - variable data: логи, web-страницы, почта, spool-еры – временные файлы для организации очередей, кластеры баз данных, кэш, tmp, opt – туда кладут данные приложения, сидящие в /opt;
  15. /usr - вторичная иерархия файловой системы, доступная пользователям только для чтения и предназначенная для хранения пользовательских программ и данных. Она содержит большинство пользовательских приложений и утилит, используемых в многопользовательском режиме, может быть смонтирована по сети только для чтения и быть общей для нескольких машин;