Опубликовано 01.12.2018
Описание структуры каталогов в Linux

После перехода с Windows на Linux можно заметить, что пропали привычные "диски" С:, D:, E: и прочее. В этой статье я опишу структуру каталогов в Linux.

Вместо них в Unix-подобных системах используются точки монтирования. Это когда определенный раздел диска подключается в определенную папку. Аналогично в Windows каждому разделу присваивается буква.

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

/ - корневой каталог

Корневой каталог это что-то похожее на системный диск C: в Windows. В общем, это самый главные каталог. Остальные разделы диска и устройства располагаются в подкаталогах корневого каталога.

/bin - основные двоичные файлы команд

В этом каталоге хранятся только основные двоичные файлы команд. Например: bash, tar, dd, ls, cp, mv и прочее. Все остальные двоичные файлы хранятся в /usr/bin. Сделано это разделение для того, что бы была возможность запуска и использования системы без монтирования дополнительных разделов.

/boot - статические файлы загрузчика

Тут находятся файлы загрузчика GRUB и ядра Linux.

/cdrom - точка монтирования CD-дисков

Каталог /cdrom не является частью стандарта FHS, но вы по-прежнему можете найти его в Ubuntu и в других дистрибутивах. Это временное место, где монтируются диски CD-ROM, когда они вставляются в компьютер. Однако, стандартное место для подключаемого носителя находится внутри каталога /media.

/dev - файлы устройств

В Linux устройства представлены в виде файлов устройств, которые находятся в /dev. На самом деле физически этих файлов нет.

Например файл /dev/sda это первый винчестер в машине. Общение с ним производится путем ввода-вывода. Например что бы поменять структуру разделов нужно сообщить ему это. Разделы этого винчестера могут иметь такие файлы: /dev/sda1, /dev/sda2, /dev/sda5. Можно например сделать полную какого-нибудь раздела через утилиту dd (она будет иметь размер в сам раздел).

Тут же располагаются и другие устройства. Например, /dev/video0 - это может быть веб-камера. В каталоге /dev/input располагаются устройства ввода (клавиатура, мышь и прочее).

Кроме настоящих устройств есть еще и псевдо-устройства. Например /dev/zero - устройство, которое при чтении всегда возвращает нули. /dev/random - генерирует случайные числа. /dev/null - устройство, которое ничего не выводит, но если в него что-нибудь послать, то оно все удаляет.

/etc - файлы конфигурации

В этом каталоге располагаются конфигурационные файлы для всей системы. Большинство файлов в этом каталоге можно отредактировать обычным текстовым редактором. Здесь нет файлов для каждого пользователя, они хранятся в их домашних каталогах (/home).

/home - домашние каталоги пользователей

Например, если имя вашего пользователя alex, то вы должны иметь домашний каталог /home/alex. В этом каталоге располагаются пользовательские данные и конфигурационные файлы для каждого пользователя. Каждый пользователь имеет полные права на чтение/запись в свою домашнюю папку.

Обычно файлы конфигурации располагаются в папках, которые начинаются с точки, например .config. Файлы, которые начинаются с точки считаются скрытыми.

/lib - основные библиотеки и модули ядра

В каталоге /lib находятся библиотеки, необходимые для основных двоичных файлов, находящихся в каталогах /bin и /sbin. Библиотеки, необходимые двоичным файлам, находящимся в каталоге /usr/bin и /usr/sbin, находятся в каталоге /usr/lib

/lost+found - восстановленные файлы

В каждой файловой системе Linux есть каталог lost+found. Если произошел сбой в работе файловой системы, то при следующей загрузке будет выполнена проверка файловой системы. Все найденные поврежденные файлы будут размещены в каталоге lost+found,так что вы можете попытаться восстановить данные настолько, насколько это можно будет сделать.

/media - подключаемые носители

Например, если вы вставили CD-диск или флешку, то она должна автоматически подключится и примонтироватся в соотвествующем подкаталоге.

/mnt - временные точки монтирования

В этом каталоге монтируются временные файловые системы. Например, вам нужно подключить раздел с вашей Windows, что бы что-то там сделать. Вы можете примонтировать его в /mnt/windows. Аналогично вы можете например скопировать файлы с временно подключенного винчестера.

/opt - дополнительные пакеты приложений

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

/proc - файлы ядра и процессов

Каталог похож на /dev потому что не имеет физических файлов. Этот каталог содержит информацию и системе и о процессах.

Например, информацию о CPU можно найти в файле /proc/cpuinfo. Информацию о точках монтирования - /proc/mounts. И так далее.

/root - домашний каталог суперпользователя (root)

Это каталог суперпользователя root. Вместо того, что бы находится в /home/root он находится в /root. Это удобно при однопользовательском режиме, или когда нужно что-то сделать с разделом /home.

/run - файлы состояний приложений

Это новый каталог. В нем хранятся вспомогательные файлы для служб и процессов. Например PID процессов запущеных сервисов, сокеты и прочее. Эти файлы нельзя хранить в /tmp потому что там они могут быть удалены.

/sbin - системные двоичные файлы команд

Данный каталог похож на /bin и используется пользователем при администрировании системы.

/selinux - виртуальная файловая система SELinux

Если в вашем дистрибутиве для обеспечения безопасности используется пакет SELinux (например, в Fedora и Red Hat), то в каталоге /selinux будут находиться специальные файлы, используемые SELinux. Этот каталог похож на каталог /proc. В Ubuntu SELinux не используется, поэтому наличие этой папки в Ubuntu, возможно, является ошибочным.

/srv - данные предоставляемых сервисов

В этом каталоге находятся файлы предоставляемых системой сервисов. Например, сайты веб-сервера могут располагатся в /srv/http. А данные FTP могут располагатся в /srv/ftp.

/tmp - временные файлы

Данный каталог содержит временные файлы программ. Обычно этот каталог чистится сам при перезапуске системы. Также его можно чистить вручную.

/usr - пользовательские двоичные файлы и данные, используемые только для чтения

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

В каталогах /usr/bin и /usr/sbin хранятся не очень важные двоичные файлы, в отличии от /bin и /sbin. Библиотеки для них хранятся в /usr/lib.

Кроме этих каталогов есть еще и другие каталоги. Например, в /usr/share хранятся файлы не зависимые от архитектуры, например графика (темы, иконки и прочее). В каталоге /usr/local хранятся файлы программ, которые были откомпилированны локально.

/var - изменяющиесы данные

В этом каталоге хранятся данные приложений из каталога /usr. Например, журнальные файлы (логи) можно найти в каталоге /var/log.

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

Linux 121