Файловая структура Linux заметно отличается от организации каталогов, привычной пользователям Windows. В верхушке этой иерархии не располагаются диски, как это происходит в Windows, а присутствует один-единственный корневой каталог, обозначаемый косой чертой "/" (слэш). Каждый вложенный каталог отделен от предыдущего с помощью слэша. Конечная точка пути — это каталог или файл. К примеру, /boot/grub или /home/pl/test.txt. Второй вариант демонстрирует, что в корневом каталоге имеется папка home, внутри которой расположен каталог pl, а в нем — файл test.txt.

Стандартизация файловой структуры (набор системных директорий) Linux осуществляется с использованием FHS. Данный стандарт соблюдается большинством Unix-подобных операционных систем и расшифровывается как Filesystem Hierarchy Standard – стандарт иерархии файловой системы.

Большинство дистрибутивов Linux следует принципам FHS, но между ними могут существовать незначительные отличия. В основном, структура каталогов у разных дистрибутивов сравнима. Далее будет приведено назначение основных системных каталогов, которые находятся в непосредственной близости к корневому.

Если ваш файловый менеджер не предлагает ссылку на корневой каталог (может именоваться как "файловая структура"), попробуйте нажать комбинацию клавиш Ctrl + L. Это превращает адресную строку в текстовое поле, куда нужно ввести символ слэша /.

Содержимое корневого каталога Linux

На скриншоте вы видите файловую структуру верхнего уровня Ubuntu 18.04.

Каталоги пользователей располагаются в /home. Linux поддерживает несколько пользователей, поэтому количество вложенных в home директорий соответствует числу зарегистрированных пользователей в системе. Если пользователь в системе только один, там будет лишь один подкаталог.

Возьмем пример: зарегистрированы пользователи pety и vasy. В таком случае в /home будет два подкаталога: pety и vasy. Во /home/pety размещаются все папки и файлы пользователя Пети, а в /home/vasy — Васи. Доступ к файловым структурам друг друга пользователи pety и vasy не имеют.

Linux обладает системой прав, включая системного администратора (root). Администратор имеет неограниченные права, и хотя под этим пользователем редко работают, он используется для выполнения задач, требующих высшего доступа. Для его персональных файлов предусмотрена директория /root, зайти в которую может лишь сам администратор.

Когда компьютер оснащен физическими и логическими дисками, не применяемыми для системы, или подключаются съемные носители, такие как флэшки, внешние диски и смартфоны, во время их монтирования создается каталог или точка монтирования. Эти каталоги располагаются либо в /media, либо в /mnt.

Каталог /media используется для подключения сменных носителей, а также физических устройств, автоматически загружаемых в системе. Каталог /mnt предназначен для временного монтирования файловых систем, например, при помощи команды подключения диска.

В графическом режиме Gnu/Linux обычно нет нужды вручную просматривать эти каталоги для точек монтирования. В более новых дистрибутивах устройство, подключенное в графическом интерфейсе, отображается в виде значка-ссылки.

Файлы ядра Linux, загрузчики и различные конфигурационные файлы помещены в каталог /boot. Обычно, загрузчиком дистрибутивов является Grub. Во время установки операционной системы для /boot можно выделить отдельный раздел диска.

Загрузочный каталог boot

В /etc находятся файлы конфигурации для разных системных программ.

Каталог etc с файлами конфигурации

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

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

Системные программы в каталоге bin

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

Директория /lib содержит библиотеки, которые совместно используются программами из /bin и /sbin. Здесь же можно найти драйверы устройств, которые представляют собой модули, подключаемые к ядру Linux.

Файловая структура /usr во многом повторяет структуру корневого каталога. Здесь расположены пользовательские программы дистрибутива. Например, в /usr/bin содержится множество программ, в то время как /usr/include отвечает за заголовочные файлы, а /usr/lib – за библиотеки программ, находящихся в usr.

Каталог usr для пользовательских программ

/opt — это место для программ, которые пользователь устанавливает самостоятельно, то есть для приложений, не входящих в стандартный пакет дистрибутива.

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

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

Каталоги /sys, /proc и /run можно назвать системными каталогами. Для полного понимания их назначения требуется глубокое ознакомление с принципами работы операционной системы.

Вопросы для самопроверки:

  1. Какой каталог является корневым в файловой структуре Linux?
  2. Как называется стандарт, определяющий структуру файловой системы в Linux?
  3. В каком каталоге размещаются файлы пользователей в Linux?
  4. Какие права у системного администратора в системе Linux?
  5. Какие файлы можно найти в каталоге /etc?
  6. Какую функцию выполняет каталог /tmp?
  7. Что общего имеют каталоги /sys, /proc, и /run в файловой структуре Linux?

Программа курса:

  1. Описание курса
  2. История операционной системы Linux
  3. Основы лицензии GNU GPL и её преимущества
  4. Функции и структура ядра Linux-систем
  5. Структура и каталоги файловой системы Linux
  6. Основные типы файлов в системе Linux
  7. Интерфейс командной строки в Linux
  8. Командная оболочка Bash в Linux
  9. Использование параметров команд в Bash
  10. Использование Ctrl+C, Ctrl+D и Ctrl+Z
  11. Автодополнение и история команд в Bash
  12. Перенаправление ввода и вывода в Bash
  13. Документация Linux и Man-страницы
  14. Абсолютная и относительная адресация в Linux
  15. Команда ls - как просматривать каталоги в Linux
  16. Копирование, перемещение и удаление в Linux
  17. Жесткие и символьные ссылки в Linux
  18. Создание жестких и символических ссылок в Linux
  19. Права доступа к файлам и каталогам в Linux
  20. Изменение прав доступа к файлам с помощью chmod
  21. Использование шаблонов имен файлов в Linux
  22. Поиск файлов в Linux с помощью команды find
  23. Использование команды sudo в Linux
  24. Управление пакетами с помощью APT в Linux