Операционные системы на базе Linux имеют определенную структуру каталогов. Существует специальный стандарт Filesystem Hierarchy Standard (FHS, стандарт иерархии файловой системы). Данный стандарт определяет типовые места хранения файлов в файловой системе Linux, он определяет основные каталоги, их названия и предназначение. Корнем файловой системы является корневой каталог, который обозначается как /. Внутри корневого каталога расположены все базовые каталоги, каждый из которых, предназначен для определенных целей. Ниже приводится краткое описание основных стандартных каталогов операционной системы Linux.
В большинстве случаев, когда говорят о каталогах в Linux, используют именно понятие Каталог. Пользователям Windows, наверное, ближе понятие Папка. Будем считать, что понятия Каталог, папка и директория эквивалентны.
Файловая система в ОС Linux, как и в ОС Windows, представляет собой иерархическую структуру каталогов и файлов (в виде дерева), но при этом имеет ряд кардинальных отличий.
В ОС Windows жесткие диски называются латинскими буквами (С:, D:, …), и каждый из дисков представляет собой корневой каталог с собственным деревом папок. Подключение же нового устройства приведет к появлению нового корневого каталога со своей буквой (например, F:). В ОС Linux файловая система представлена единым корневым каталогом, обозначаемым как слэш (/). Соответственно, при данной файловой структуре не диски содержат каталоги, а каталог — диски.
В ОС Linux имеется процедура монтирования: когда подключается съемный носитель или диск, файл устройства будет виден в каталоге /dev (devices). Чтобы увидеть содержимое этого устройства, его нужно смонтировать в отдельную директорию /mnt. Также файловая система позволяет примонтировать его и в любое другое место, например /home.
Понятие «файл» в Linux имеет несколько другое значение, нежели в Windows. «Файлом» можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является «файлом», содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.
Если в Windows программы, зачастую, хранят все данные в одной папке, например в «C:Program FilesProgramName», то в Linux файлы программы разделяются по каталогам в зависимости от типа. Например, исполняемые файлы в /bin, библиотеки в /lib, файлы конфигураций в /etc, логи и кэш в /var.
Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.
Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:
Дерево файлов и каталогов начинается с корня первичной иерархии (/). Единственный пользователь root имеет право на запись в этом каталоге. /root – домашний каталог пользователя root, который не совпадает с корнем /.
Корневой каталог, это есть «слэш» — «/». Слэш это самое начало (корень) дерева каталогов (директорий). Аналог в Windows это «c:\».
Каталог содержит в себе команды, основные команды, которые необходимы пользователю для работы в системе. Например: командные оболочки, команды файловой системы (ls, cp и т.д.). Каталог /bin по сути не должен изменяться, но если изменяется, то только при обновлениях пакетов программ, которые предоставляют разработчики операционной системы. Аналог в Windows это «c:\windows\».
Каталог содержит файлы, которые использует загрузчик ОС — LInux LOader (LILO). Этот каталог так же как и /bin практически не изменяется после установки. Аналог в Windows это экран в начале загрузки Windows: «безопасный режим, загрузка последней удачной конфигурации и т.д.».
В Linux всё рассматривается как файл: жёсткие диски (HDD), USB-устройства, последовательные и параллельные порты, сканеры. Описания всех устройств системы находятся в этом каталоге. Чтобы получить доступ к какому либо устройству, необходимо чтобы в каталоге /dev существовал файл device node, описывающий это устройство. Все эти файлы находятся в каталоге /dev. Аналог в Windows отсутствует.
Этот каталог содержит файлы настроек: всё, от конфигурационных файлов системы X Window, базы данных пользователей и до стартовых сценариев. Аналог в Windows ini-файлы.
В этом каталоге размещены домашние каталоги пользователей. Так как Linux является многопользовательской системой, то и каждому пользователю присваивается имя, а в сел за этим и уникальный каталог для персональных файлов. Это домашний (home) каталог пользователя. Аналог в Windows в первом приблежении это папка «Documents and Settings».
В этом каталоге находятся системные библиотеки, необходимые для основных программ: библиотека C, динамический загрузчик, библиотека ncurses, модули ядра и другое. Аналог в Windows это «c:\windows\system32».
В этом каталоге сохраняются восстановленные части файловой системы. При загрузке системы происходит проверка файловых систем на наличие ошибок. Для исправления ошибок файловой системы запускается программа fsck. Аналог в Windows это директории «found.000».
Каталог, содержащий в себе подключенные накопители, cd-диски, dvd-диски, usb-накопители. Этот каталог присутствует в Debian-семействах Linux. Аналог в Windows отсутствует.
Этот каталог предоставляется как временная точка монтирования для жёстких дисков, дискет, компакт-дисков или отключаемых устройств. То же самое, что и /media. Аналог в Windows отсутствует.
В этом каталоге размещаются дополнительные пакеты программ. Все пакеты программ, устанавливаются в этот каталог, например /opt/<программный пакет>. В последствии если этот пакет больше не будет нужен, то достаточно всего лишь удалить соответствующий каталог. В дистрибутивах SlackWare некоторые программы изначально поставляются в каталоге /opt (например, KDE — в /opt/kde). Аналог в Windows это «Programm Files».
Это один из самых больших каталогов в системе. Практически всё остальное расположено здесь. Программы, документация, исходный код ядра и система X Window. Именно в этот каталог, чаще всего, устанавливаются программы. Аналог в Windows это «Programm Files».
Это специальный каталог не входящий в файловую систему. Каталог /proc представляет собой виртуальную файловую систему, которая предоставляет доступ к информации ядра. Различная информация, которую ядро может сообщить пользователям, находится в «файлах» каталога /proc. Например, в файле /proc/modules находится список загруженных модулей ядра. А в файле /proc/cpuinfo — информация о процессоре компьютера. Аналог в Windows отсутствует.
Это домашний каталог администратора, вместо /home/root. Это потому, что каталог /home может находиться в разделе, отличном от корневого (/) и если по какой-то причине /home не может быть подключён, то пользователь root должен будет войти в систему, чтобы решить проблему. И если его домашний каталог на другом диске, то это усложнит вход в систему. Аналог в Windows находится в папке «Documents and Settings».
В этом каталоге хранятся основные программы, выполняемые пользователем root, а так же программы выполняемые в процессе загрузки. Обычные пользователи не могут пользоваться этими программами. Аналог в Windows отсутствует.
В этом каталоге хранится только данные различных сервисов. Сервисы — это процессы, которые работают в невидимом режиме (фоновом) и сохраняющих работоспособность системы в целом. Аналог в Windows отсутствует.
В каталоге /sys находятся средства управления настройками и конфигурациями системы. Аналог в Windows отсутствует.
Временное хранилище данных. Все пользователи имеют права чтения и записи в этом каталоге. Аналог в Windows папка «Temp».
В этом каталоге хранятся системные лог-файлы, кэш-файлы и файлы-замки программ. Это каталог для часто меняющихся данных. Аналог в Windows отсутствует.