Файловая концепция Linux – это четкая структура каталогов и файлов. В этом посте рассмотрим предназначения всех директорий. Файловые системы Линукс содержат большое множество каталогов, большинство из них подходят под спецификацию FHS (Filesystem Hierarchy Standard). Почему существуют термины “каталог”, “директория” и “папка”? В чем их отличие? Давайте узнаем.
Каталог, он же директория, (от англисйкого Directory) – это объект в ФС (файловой системе), необходимый для того, чтобы упросить работу с файлами. Папка (от английского Folder) – это определение применяется для отображения директорий в графическом пользовательском интерфейсе (GUI). Отсюда вытекает, что все эти определения значат, в принципе, то же самое. Чтобы было удобно, будем применять в этом посте определение “директори”, по мнению большинства пользователей Линукс, это более правильный термин.
Типичная структура ФС системы Linux
Наличие тех или иных директорий может быт в зависимости от того, какой дистрибутив Вы используете. Ниже список наиболее важных и часто встречающихся:
/
/bin
/boot
/dev
/etc
/home
/lib
/lib64
/lost+found
/media
/mnt
/opt
/proc
/root
/run
/sbin
/selinux
/srv
/sys
/tmp
/usr
/var
Итак, рассмотрим все по-порядку.
/ – корневая директория (root)
Родительская директория, в ней находится все, что есть в нашей ОС. В ней хранятся другие каталоги.
/bin – главные бинарные файлы (исполняемые программы)
Содержит основные модули, утилиты и командные оболочки, которые могут обеспечить необходимый минимально уровень работоспособности ОС. Размещение этих файлов в директории /bin гарантирует, что в системе эти важные утилиты будут даже в случае, если другие файловые системы не смонтированы.
/boot – файлы для загрузки ОС
Хранятся образы ядер Linux и файлы менеджеров загрузки (grub, lilo и т.д.).
/dev – файлы устройств
В Linux все устройства предоставлены в виде специфических файлов, расположеных в этой директории. К примеру, файл /dev/sda представляет диск SATA. Также в этой директории хранятся файлы псевдо-устройств (виртуальных), для этих файлов нет соответствующего реального устройства. Например, файл /dev/random генерирует случайные числа, а файл /dev/null является специальным устройством для удаления всех входных данных.
/etc – конфигурационные файлы
Содержит основные конфигурационные файлы операционной системы и различных программ.
/home – домашние директории пользователей
По идеологии UNIX для обеспечения безопасности ОС рекомендуется хранить пользовательские данные именно в этой директории. Например, если ваше имя пользователя user, то у вас есть домашняя дирекотория, которая находится в /home/user и содержит пользовательские конфигурационные файлы и личную информацию. Каждый пользователь имеет доступ на запись только в свою домашнюю директорию.
/lib – основные библиотеки
Эта директория предназначена для хранения системных библиотек и компонентов компилятора языка С, необходимых для работы программ из директорий /bin и /sbin и операционной системы в целом.
/lib64 – 64-битные основные библиотеки
Эта директория присуствует в основном на 64-битных системах, содержит набор библиотек и компонентов компилятора языка С для 64-битных программ.
/lost+found – восстановленные файлы
Присуствует во всех ОС Linux. При сбое в работе файловой системы и дальнейшей проверке файловой системы (при загрузке ОС), все найденные поврежденные файлы будут помещены в директорию lost+found, их можно попытаться восстановить.
/media – точка для автоматического монтирования
Используемая для автоматического монтирования различных устройств CD-ROM, USB-накопителей и т.д.
/mnt – точка для ручного монтирования
Используется для временного ручного монтирования (с помощю команды mount) различных устройств, таких как CD-ROM, USB-накопителей и т.д.
/opt – вспомогательные пакеты программ
Находятся субдиректории для дополнительных пакетов программного обеспечения. Каталог широко используется проприетарным программным обеспечением, которое не подчиняется стандартной иерархии файловых систем.
/proc – файлы ядра и процессов
В эту директорию примонтирована виртуальная файловая система procfs. В ней находятся специальные файлы, в которых представлена информация о системе и о выполняющихся процессах. Например, в файле /proc/cpuinfo собержиться информация о процессоре.
/root – Домашняя директория пользователя root
Вместо того, чтобы находиться в /home/root, он помещается в /root для большей надёжности системы.
/run – файлы состояния приложений
Является достаточно новой директорией, в которой приложениям предоставляется возможность стандартным образом хранить вспомогательные файлы, которые им требуются, например, сокеты и идентификаторы процессов. Эти файлы нельзя хранить в каталоге /tmp, поскольку эти файлы могут быть там удалены.
/sbin – бинарные файлы (программы) для администрирования системы
Директория /sbin похожа на /bin. В ней находятся важные двоичные файлы, которые, как правило, предназначены для их запуска пользователем при администрировании системы.
/selinux – виртуальная файловая система SELinux
В некоторых дистрибутивах (Red Hat, Fedora и т.п) для обеспечения безопасности используется пакет SELinux (Security-Enhanced Linux), при этом создается директория с файлами /selinux.
/srv – данные сервисных служб
Эта директория присуствует не во всех дистрибутивах, содержит “данные для сервисов, предоставляемых системой” (например сервер Apache может хранить файлы вашего сайта в этой директории). В большинстве случаев директория пуста.
/sys – виртуальная файловая система sysfs
Эта директория появилась с выходом ядра версии 2.6 и в нее примонтирована виртуальная файловая система sysfs с информацией об устройствах, драйверах, ядре ОС и т.п.
/tmp – временные файлы
Временные файлы, обычно удаляются при перезагрузке системы. Все пользователи имеют права чтения и записи в эту директорию.
/usr – пользовательские бинарные файлы, используемые только для чтения
В этой директории находятся приложения и файлы, используемые только пользователями, а не самой системой.
/var – директория для часто меняющихся данных
Здесь находятся журналы операционной системы, системные log-файлы, cache-файлы и т.д.