Все дистрибутивы Linux используют более или менее одинаковый подход к организации структуры каталогов в системе. Это означает, что определенные каталоги будут присутствовать всегда, независимо от дистрибутива. В то же время есть небольшие различия между дистрибутивами.
В Linux все файлы и папки организованы в виде иерархической структуры, на вершине которой находится корневой каталог, который проецируется на путь "/".
Стандартная система каталогов Linux выглядит следующим образом:
bin: пользовательские приложения, которые можно запустить через командную строку. Эти программы доступны всем пользователям. Прежде всего это необходимые утилиты и команды, такие как /bin/bash (оболочка), cp (используется для копирования файлов), cat, chmod, grep, gzip, mkdir и многие другие.
etc: конфигурационные файлы системы, например, passwd, hosts, networks и т.д.
boot: содержит все необходимое для загрузки системы. В частности, ядро - файл с именем vmlinuz, а также другие жизненно важные компоненты, применяемые для запуска системы.
sbin: системные приложения, необходимые прежде всего для администрирования системы, например, fdisk, ifconfig, reboot и т.д. Это критически важные двоичные файлы, которые должны быть всегда доступны на случай, если вам понадобится восстановить систему.
usr: пользовательские приложения и данные (аналог каталога Program Files в Windows). Основные подкаталоги:
/usr/bin: большинство пользовательских приложений
/usr/src: исходные файлы с открытым исходным кодом приложений
/usr/include: стандартные заголовочные файлы языка C
/usr/lib: файлы для разработки и устанавливаемые пакеты
/usr/local: локальные приложения
/usr/share: статические разделяемые данные
var: файлы данных, которые могут изменяться. Основные подкаталоги:
/var/cache: кэш приложений
/var/include: стандартные заголовочные файлы языка C
/var/lib: данные о состоянии системы
/var/lock: заблокированные данные для отслеживания используемых ресурсов
/var/log: файлы логов
/var/opt: данные установленных пакетов
/var/spool: выполняемые задачи
/var/tmp: временные файлы, удаляемые после новой загрузки системы
/dev: файлы устройств. В Linux все оборудование, с которым вы работаете, соответствует файлу в системе. Если надо обратиться к аппаратному обеспечению, то необходимо обратиться к соответствующему файлу. Для этого потребуются права root.
/home: папка для домашних каталогов пользователей
/lib: файлы общих библиотек, которые могут использоваться другими приложениями. В этом каталоге также можно найти некоторые другие важные модули, например модули драйверов, которые используются ядром Linux. Для 64-битных файлов библиотек существует каталог с именем /lib64.
/media: каталог по умолчанию для монтирования в системе съемных устройств, в частности, подключаемых по USB, как съемные жесткие диски, SSD, флешки и т.д. В этом каталоге автоматически создается подкаталог при обнаружении нового съемного устройства.
/mnt: на старых системах Linux представлял каталог по умолчанию для монтирования устройств.
Сейчас эту роль в целом выполняет каталог /media
. Тем не менее /mnt по-прежнему используется для монтирования, которое происходит не очень часто
и создается вручную, например, для монтирования на сервер, к которому необходимо получить доступ только один раз. Каталог /mnt также подходит для целей тестирования.
/opt: дополнительные пользовательские приложения. В отличие от каталога "/usr" в /opt обычно помещаются более крупные файлы, однако нет единого мнения, что помещать в "/usr", а что в "/opt".
/proc: файлы процессов, информация о ядре и компьютере
/root: домашний каталог для пользователя root или суперпользователя. Домашние каталоги обычных пользователей находятся в /home. Системный администратор – это не обычный пользователь; Поэтому в UNIX системный администратор считается "суперпользователем". Поскольку этот пользователь может иметь некоторые важные инструменты в своем домашнем каталоге, этот каталог не находится в "/home" вместе с инструментами других пользователей. Вместо этого пользователь root использует /root в качестве своего домашнего каталога.
/run: используется для конфигурации во время выполнения. В этом каталоге могут быть созданы отдельные подкаталоги для разных пользователей и процессов, и каждый из них может создавать файлы в этих подкаталогах. Файлы в /run обычно удаляются автоматически, когда они больше не нужны.
/srv: хранит файлы некоторых важных сервисов. Например, он используется для хранения всей файловой структуры вашего веб-сервера и FTP-сервера в SUSE Linux. Некоторые дистрибутивы, такие как Red Hat и его производные, не используют /srv, но хранят информацию такого типа в /var.
/sys: применяется для хранения информации о состоянии системы. Этот каталог похож на каталог "/proc", с той разницей, что информация в /sys хранится на жестком диске, поэтому она по-прежнему доступна после перезагрузки. Информация в /sys более непосредственно связана с оборудованием, тогда как "/proc" используется для хранения информации о текущем состоянии ядра.
/tmp: хранит временные файлы, автоматически удаляемые при перезагрузке.