Структура каталогов (папок) файловой системы Linux
Операционные системы на базе Linux имеют определенную структуру каталогов. Существует специальный стандарт Filesystem Hierarchy Standard (FHS, стандарт иерархии файловой системы). Данный стандарт определяет типовые места хранения файлов в файловой системе Linux, он определяет основные каталоги, их названия и предназначение. Корнем файловой системы является корневой каталог, который обозначается как /. Внутри корневого каталога расположены все базовые каталоги, каждый из которых, предназначен для определенных целей. Ниже приводится краткое описание основных стандартных каталогов операционной системы Linux.
В большинстве случаев, когда говорят о каталогах в Linux, используют именно понятие Каталог. Пользователям Windows, наверное, ближе понятие Папка. Будем считать, что понятия Каталог, папка и директория эквивалентны.
/ | Корневой каталог файловой системы Linux. Он содержит все системные файлы и каталоги. |
/bin | В каталоге /bin размещаются системные программы (бинарные — двоичные файлы, исполняемые файлы). Например, в каталоге /bin размещаются все основные команды ядра Linux, такие как cp, cat, mount и так далее. |
/boot | В каталоге /boot размещается загрузчик системы и некоторые дополнительные файлы, которые нужны для запуска Linux. |
/dev | Каталог /dev содержит файлы, которые представляют физические устройства компьютера. Через данные файлы осуществляется интерфейс для этих устройств. Например, /dev/sda обозначает ваш первый SATA-жесткий диск. |
/etc | В каталоге /etc хранятся системные файлы и конфигурации. Например, здесь хранятся такие файлы как fstab, passwd, hosts и так далее. |
/home | Домашние каталоги пользователей. У каждого пользователя в /home есть свой определенный каталог, имя которого совпадает с именем пользователя. Например, если я в системе зарегистрирован как yuriy, то мой домашний каталог будет /home/yuriy. |
/lib | В каталоге /lib размещены системные библиотеки и модули ядра. |
/lost+found | Директория, которая используется утилитой fsck, для сохранения поврежденных файлов. Подробнее. |
/media | В данный каталог обычно монтируются съемные носители. Для каждого устройства в каталоге /media создается отдельный каталог. |
/mnt | В данный каталог обычно монтируют на время дополнительные файловые системы. |
/opt | В данный каталог обычно устанавливают некоторое дополнительное программное обеспечение (ПО), которое является дополнением к базовому ПО дистрибутива (такое ПО иногда называют подключаемым программным обеспечением). |
/proc | В каталоге /proc размещена так называемая псевдофайловая система — виртуальная файловая система информации о ядре и процессах. |
/root | В каталоге /root размещаются файлы пользователя root. Данный каталог является домашним каталогом пользователя root. |
/sbin | В каталоге /sbin размещаются важные системные исполняемые (бинарные) файлы, которые необходимы для запуска системы. Также в каталоге размещаются команды, которые обычно использует только системный администратор. Например, в каталоге /sbin размещаются команды halt и reboot. |
/srv | Каталог /srv содержит неизменяемые данные для сервисов («только для чтения»), предоставляемых данной системой. |
/tmp | В данном каталоге содержаться временные файлы, которые, как правило, удаляются автоматически. Многие программы используют данный каталог для хранения временных данных. |
/usr | В данном каталоге могут размещаться различные вспомогательные файлы (например, библиотеки), которые не требуются при загрузке системы. Каталог /usr содержит иерархию подкаталогов, например, /usr/bin, /usr/local, /usr/sbin. |
/var | Каталог /var содержит различные данные, которые обычно изменяются со временем. Например, в нем могут размещаться сохраненные данные для игр, файлы регистраций, буферы печати. В нем же хранятся файлы системных журналов (в каталоге /var/log). |
Структура каталогов Linux
Узнать тип файла можно с помощью команды, с которой мы уже имели дело:
Первый символ в каждой строке вывода обозначает тип файла. Уточнить его можно с помощью команды file [имя] , которой в качестве входных данных передаётся имя файла/папки.
Linux-системы имеют много общего, и файловая структура — одна из этих общих черт. Знакомство с ней поможет увереннее ориентироваться в операционной системе в целом. Давайте погрузимся немного поглубже и посмотрим, что лежит в корне Linux-системы.
Собственно, в корне, или корневой директории «/» , лежат все данные сервера, распределённые по разным каталогам. При этом каждый каталог имеет своё значение и содержит файлы, сгруппированные по определённому критерию. По умолчанию структура директорий состоит из папок:
Рассмотрим каждую подробнее.
/bin
Директория /bin содержит исполняемые бинарные файлы различных служб, доступные для запуска любым пользователям сервера. Включает и исполняемые файлы базовых команд, которые мы узнали в статье про первые шаги в командной строке: echo , cat , cd , pwd , ls и пр.
Является символьной ссылкой на каталог /usr/bin .
/boot
Содержимое этого каталога содержит сердце системы — файлы загрузчика и ядра. Без этой директории операционная система не сможет запуститься.
/dev
Эта директория содержит файлы устройств, подключенных к серверу. Включает терминал, через который мы отдаём серверу команды ( tty* ), а также специальные устройства типа null , random , zero . Ну и, конечно, сам диск сервера и его разделы ( vda* ).
/etc
Эта директория по умолчанию содержит все конфигурационные файлы служб, а в некоторых случаях — и скрипты для их запуска и отключения. Если вам нужно изменить какие-то параметры в работе той или иной службы — скорее всего, её конфигурационный файл будет лежать где-то в /etc . Но не всегда.
/home
Эта папка предназначена для домашних каталогов пользователей. Каждый раз, когда вы создаёте локального пользователя без указания домашней папки, здесь автоматически создаётся одноимённая папка — его домашняя директория по умолчанию.
/lib и /lib64
В директории /lib хранятся библиотеки, необходимые для работы системных служб, файлы которых размещены в папках /bin и /sbin . А также данные для загрузки системы и модуля ядра ОС.
Директория /lib64 предназначена для тех же целей, только включает в себя библиотеки для всех остальных служб сервера.
По умолчанию /lib и /lib64 являются символьными ссылками на соответственно /usr/lib и /usr/lib64 .
/media
В этой директории операционная система автоматически монтирует внешние устройства (USB, CD-ROM и пр.).
/mnt
Эта папка выполняет аналогичные /media функции — используется для временного монтирования внешних устройств. Преимущественно вручную.
/opt
В эту папку обычно устанавливается пользовательское программное обеспечение. Собственно, это и заложено в название — директория для опциональных, необязательных данных. По умолчанию не содержит данных.
/proc
В этом каталоге хранятся процессы и системная информация ОС, представленная в виде файлов, так называемая «виртуальная файловая система». Все данные в этом разделе генерируются автоматически и обновляются на лету.
Все директории с наименованием в цифровом формате содержат информацию о запущенных процессах. В частности, название папки соответствует PID , идентификатору процесса.
/root
Домашняя папка для корневого пользователя root .
/run
Этот каталог включает в себя данные, обрабатываемые и хранимые в оперативной памяти — например, PID процессов, информацию о ходе их выполнения, активные сокеты и пр. Так называемая временная файловая система. Она сбрасывается при каждой перезагрузке сервера.
/sbin
Как и /bin , содержит исполняемые бинарные файлы системных служб. Но, в отличие от /bin , только служб, запуск которых возможен исключительно с правами администратора.
Является символьной ссылкой на каталог /usr/sbin
/srv
Эта папка предназначена для сервисных нужд — чтобы пользователи сервера могли найти какие-то общедоступные данные для конкретной службы, например, веб-сервера, FTP-сервера. По умолчанию не содержит данных.
/sys
Ещё одна директория, содержащая виртуальную файловую систему. В этот раздел экспортируются данные ядра операционной системы и его модулей. Этот каталог перезаписывается после каждой перезагрузки операционной системы.
/tmp
Эта папка используется операционной системой и различными внутренними службами для хранения временных файлов.
/usr
В этом каталоге хранятся исполняемые файлы, библиотеки и файлы документации ( man ) для внутренних служб, компоненты ядра для функционирования операционной системы, а также данные программ, установленных пользователями.
Собственно, директории /bin и /sbin , /lib и /lib64 cсылаются на соответствующие каталоги внутри /usr .
/var
Директория /var содержит часто изменяемые данные. Например, кэши ( /var/cache ), логи ( /var/log ), очереди ( /var/spool ).
Здесь же по умолчанию хранятся данные сайтов ( /var/www ), сервера баз данных ( /var/lib/mysql ), почтового сервера ( /var/mail → /var/spool/mail ).
Теперь мы знаем, как работать с файлами в Linux-системах и как они распределены по каталогам. Самое время подняться на следующий уровень и поговорить о не менее важном атрибуте любой Linux-системы — о пользователях.