Структура каталогов Linux: что это такое и как это работает

Если вы пробуете Linux впервые, одной из областей, в которых он отличается от Windows (и в меньшей степени macOS), является его структура каталогов (папок). Это относится к тому, как устроены различные каталоги, а также к их назначению. В этой статье мы рассмотрим некоторые из важных каталогов и покажем их использование.

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

Различия между структурами файловой системы Windows и Linux

Чтобы понять на высоком уровне, почему эти операционные системы имеют такую ​​структуру, полезно понять их историю. Когда популярность компьютеров под управлением Windows возросла, файлы сначала хранились на гибких дисках. Они были помечены A: а также B: поэтому их было легко отличить. Когда жесткие диски получили C: Метка диска, которую мы знаем сегодня, дополнительным типам дисков, таким как CD-ROM или USB-накопители, присваивались последующие буквы.

Напротив, Linux происходит от Unix, операционной системы, разработанной ATT в 1970-х годах. В то время люди использовали компьютеры в основном только терминалы. Они отображали текстовую информацию на экране и предоставляли клавиатуру для ввода. Но тяжелую работу выполняла «система», которая могла состоять из нескольких физических машин: одна для обработки, одна для хранения и другая, которая обеспечивала конкретное применение. Все они были связаны по сети, а для пользователей они представлялись как единая система.

Имея это в виду, давайте посмотрим на некоторые каталоги в системах Linux. Если вы хотите убедиться в этом сами, вы можете легко создать работающую систему Linux на CD-ROM или USB-накопителе, которая не сотрет существующую операционную систему вашего компьютера.

Основное правило для файловых систем Linux заключается в том, что корень, или самый верхний уровень файловой системы, не содержит случайных файлов. В большинстве систем он может содержать ядро (vmlinuz на рисунках), или сердце ОС, и, возможно, виртуальный диск (initrd), содержащий данные, необходимые для запуска системы. Но помимо этого, он должен содержать только каталоги, которые мы обсудим в следующих разделах (среди прочих).

Каталог / bin

Один из первых каталогов, с которыми вы столкнетесь, / бен. Это означает двоичные файлы, и он содержит «стандартные» программы операционной системы. Здесь «стандарт» относится к базовым утилитам, необходимым для осмысленного использования ОС. Примеры программ, которые вы найдете здесь:

  • компакт диск, или измените каталог, который работает так же, как его аналог Windows
  • Команды управления файлами, такие как ср а также милливольт (копировать и перемещать файлы соответственно).
  • Утилиты прав доступа к файлам, такие как CHMOD (который изменяет права доступа к файлам) и Чаун (который меняет владельцев этих файлов).
  • Программы, которые обеспечивают вашу вычислительную среду, такие как авторизоваться (что дает вам возможность войти в машину) и удар, основная командная строка, также называемая ракушка.

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

Каталог / boot

Каталог загрузки содержит файлы, связанные с загрузкой, рамдиски и ядра

Далее по алфавиту / загрузки, который содержит файлы, используемые системой при запуске. Он содержит копии ядра Linux (которое вы видите в корне файловой системы, вероятно, является ссылкой на одно из них), Initrd, или начальный виртуальный диск для системы и другие связанные данные.

Самое важное, что вы должны знать об этом каталоге, — не возиться с ним. Материал здесь обрабатывается, когда ваш менеджер пакетов устанавливает и обновляет ядра. Если вы удалите один из файлов, необходимых вашему текущему ядру (или самому ядру), у вас может получиться не загружаемая система.

Каталог / cdrom

Это что-то из устаревшего каталога. Он был представлен как место, где компакт-диск может быть смонтированный, или подключен, и его содержимое доступно. В то время было принято требовать корень, или администратор, права на монтирование CD-ROM. Но в настоящее время чаще встречаются компакт-диски, автоматически смонтированные в /СМИ каталог, о котором мы поговорим чуть позже.

Точно так же раньше был / дискета каталог. Вы можете увидеть, как это сделало пользователей, которые, вероятно, привыкли к Windows, немного более удобным. Но поскольку флоппи-дисководы не являются стандартными компонентами на современных ПК, вы можете даже больше не видеть этот каталог. Например, в Ubuntu его нет. Если на вашей машине есть дисковод гибких дисков, вы, вероятно, обнаружите, что он автоматически смонтирован в /СМИ.

Каталог / dev

Каждое физическое устройство в системе Linux представлено в виде файла в / dev

Одним из уникальных аспектов операционных систем на основе Unix является то, что «все это файл». То есть, есть файлы, которые представляют все в системе: запущенные процессы, оперативную память и, да, устройства хранения. Это означает, что когда вы копируете некоторые данные на жесткий диск, Linux фактически записывает данные в файл типа / DEV / nvme0n1p3, который представляет третий раздел вашего SSD.

/ DEV каталог, где хранятся все эти специальные файлы. Если вы просматриваете его, вы увидите файлы практически для каждого устройства, которое вы можете себе представить, от вышеупомянутых твердотельных накопителей на базе NVMe до жестких дисков на SATA (например, / DEV / сд *) или старше IDE (/ DEV / HD *) соединения, а также старые, такие как порт мыши PS / 2 (/ DEV / psaux). Звездочки здесь — это подстановочные знаки; например, при настройке на основе SATA ваш первый жесткий диск будет «/ dev / sd»,»и первый раздел этого диска будет» / dev / sda1.»Его второй раздел» / dev / sda2,msgstr «пока первый раздел второго диска -» / dev / sdб1. «Хотя для них не важно, чтобы они были в каком-то определенном порядке, важно знать, какой именно. Это предотвратит перезапись вашего раздела Windows, когда вы намеревались установить Linux на новый, например, пустой диск, который вы устанавливаете. ,

Каталог / etc

/и т.д Имя каталога, как место для размещения любых «лишних» или «и так далее» файлов, противоречит его важности. На практике это, как правило, файлы конфигурации, которые контролируют всю систему. Здесь есть два основных типа файлов:

  • Глобальные файлы конфигурации, например / DEV / Fstab файл, используемый для монтирования всех этих здоровенных дисков, которые вы описали в / DEV каталог выше.
  • Так называемые «скелетные» файлы, которые используются в качестве настроек по умолчанию для пользовательских настроек. Примером этого является / И т.д. / профиль файл, который содержит настройки для оболочки Bash. Когда создается новый пользователь, он копируется в его учетную запись как .профиль, и служит отправной точкой, пока пользователь не настроит его.

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

Каталоги / home и / root

Пользователи Windows к настоящему времени привыкли к C: \ Users каталог, в котором находятся документы и настройки для каждого пользователя системы. Поскольку Unix с самого начала была многопользовательской системой, эта концепция существовала много (много!) Лет в Linux как /Главная каталог. У каждого пользователя здесь есть подкаталог, содержащий все его данные, в моем случае / Главная / Aaron. На самом деле, «обычный» пользователь без прав администратора даже не имеет права хранить файлы в другом месте.

/ корень каталог — это эквивалентная папка пользователя для системного администратора или пользователя «root». Отличается только от /Главная в его местоположении (чтобы держать потенциально важные файлы вдали от обычных пользователей) и владении.

Каталоги / lib

Поскольку вы, вероятно, используете 64-битную операционную систему, у вас, вероятно, есть несколько каталогов: / Lib, / lib32, а также / lib64. Они содержат программные библиотеки, которые ядро ​​использует для самых основных операций. Те, которые не содержат код, специфичный для версии, в которой находится процессор / Lib папка. Те, которые зависят от версии, находятся в / lib32 (32-разрядный) или / lib64 (64-разрядные) каталоги в зависимости от обстоятельств.

Каталоги / media и / mnt

Съемные носители монтируются под пользователем's Name in the /media Directory

Несколько лет назад, если у вас был съемный носитель, такой как флэш-накопитель USB, прежде чем вы смогли бы его использовать, вам нужно было бы назначить его / DEV вход и создать место для в / мнт (mount) каталог. К счастью, в более современных версиях дистрибутивы Linux предварительно настроены на автоматическую настройку съемных носителей, как и следовало ожидать от работы с macOS или Windows. Фактически, в зависимости от пользователя, вошедшего в систему при подключении устройства, система создаст пользовательский каталог, смонтирует устройство и удостоверится, что у пользователя есть необходимые разрешения для доступа к нему. Разница в настоящее время заключается в том, что /СМИ Каталог обычно используется для этой цели. Например, вставив флэш-накопитель с надписью «FREEDOS» на мой компьютер с Linux, можно смонтировать его на / СМИ / Aaron / FreeDOS.

Каталог / opt

Не так давно было время, когда вы не могли просто перейти на сайт и загрузить пакет Ubuntu для вашего любимого приложения. Вы установили бы многие из этих программ, запустив пользовательский установщик, просто распаковав их из их архива или даже собрав их из их исходного кода. Эти методы установки не были унифицированы, и иногда было трудно отследить, куда ушли файлы и как их удалить. / неавтоматического каталог был введен для этого «дополнительного» программного обеспечения, чтобы убедиться, что остальная часть вашей системы не пострадала в случае, если ваш un / install не работает.

Хотя сегодня все больше разработчиков делают свои приложения доступными в стандартных форматах пакетов (.RPM и .DEB), некоторые из них по-прежнему будут устанавливаться на / неавтоматического. Имеет ли смысл этот каталог, является предметом некоторых дискуссий в сообществе Linux, но пока это остается. И некоторое программное обеспечение все еще будет там устанавливаться, даже из стандартных пакетов .DEB. В частности, Google Chrome будет установлен там на системах на основе Ubuntu.

Каталог / sbin

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

Если вам интересно последнее, у вас острый взгляд. Нет, вам не нужно быть «суперпользователем», чтобы отключить систему Linux. На серверных системах это так. Но на рабочем столе ваша предпочтительная среда (например, KDE, GNOME или XFCE) настроена так, что она может выполнять эту конкретную команду, как если бы она была пользователем root.

Каталог / usr

Каталог / usr выглядит достаточно просто, пока вы не начнете в него погружаться

Подождите, мы уже посмотрели пользовательские каталоги, верно? Пусть никогда не будет сказано, что у Linux не было своих особенностей. Пока данные пользователя хранится в /Главная папки, / USR и его подкаталоги содержат большую часть установленного программного обеспечения для системы. Здесь «установленный» означает все, что доступно за пределами основных утилит в / бен. Например, он будет содержать:

  • Такие приложения, как окружение рабочего стола, офисный пакет LibreOffice, редактор изображений GIMP и веб-браузер Firefox.
  • Исходный код для таких вещей, как ядро ​​Linux и драйверы оборудования.
  • Вспомогательные файлы, такие как художественные работы или документация, для всего вышеперечисленного.

/ USR каталог хранит их в своей собственной иерархии. Это содержит бункер, Lib, а также SBIN подкаталоги, которые работают так же, как их старшие братья, но содержат только то, что связано с установленным вами программным обеспечением. / USR / доли Каталог содержит ресурсы, такие как наборы иконок (видны на рисунке ниже), а также файлы документации.

Каталог / usr / share огромен, со многими подкаталогами для различных приложений

Наконец, первоначальное намерение / USR / местные ветка была похожа на / неавтоматического — установленное пользователем, «дополнительное» программное обеспечение. Часть дебатов о том, какой из этих двух должен остаться. Одно очко в пользу / USR / местные является то, что большинство программного обеспечения, установленного из исходного кода, настроено для размещения здесь.

Каталог / var

Каталог / var содержит рабочие данные для запуска приложений и процессов

Последний из «главных» каталогов Linux, / вар каталог содержит систему данные. Это означает, что данные, сгенерированные операциями системы, такие как файлы журнала (/ Вар / журнал), кеши (/ Вар / кэш) и резервные копии (/ Вар / резервное копирование). А поскольку Unix (и, следовательно, и Linux) изначально была многопользовательской системой, в которой находились области для серверных приложений, таких как электронная почта (/ Вар / почта для почтовых ящиков и / Вар / катушка / постфикс для исходящей почты) и сетевой печати (/ вар / катушка / чашки) также здесь.

Другие каталоги

  • / Пропало + найдено: Бывают моменты, когда маленькие кусочки данных неуместны в системе. Если вы знаете, что что-то потеряли, вы можете проверить здесь, хотя содержимое не будет легко определить. Вам нужно будет вручную проверить их содержимое, чтобы выяснить, что они из себя представляют.
  • / ProcКак уже упоминалось, все в Linux может быть представлено в виде файла. / Proc каталог содержит файлы, связанные с процессы, и вы можете просмотреть их, чтобы проверить, что они делают (но не редактируйте их).
  • /бегать: Это каталог времени выполнения где процессы хранят некоторые временные данные, которые им нужны, чаще всего при запуске системы. Как и другие каталоги системного уровня, здесь не стоит облажаться.
  • /щелчок: Убунту Щелчок формат пакета, который упаковывает приложение и все, что ему нужно, в контейнер это изолировано от остальной части вашей системы. /щелчок каталог, в котором эти контейнеры монтируются в систему, так же, как устройства хранения.
  • / SRV: В этом каталоге находятся файлы служил программами демона хранятся. Например, статические веб-страницы, обслуживаемые веб-сервером Apache, могут храниться в / SRV / WWW подкаталог.
  • / SYS: В соответствии с мантрой «все файл», / SYS и его содержимое представляет настройки и информацию из ядра Linux, таким же образом / Proc делает для запуска процессов.
  • / TMP: Если вы догадались по имени, которое содержит этот каталог временные данные, ты прав. Программы системного уровня будут временно хранить информацию здесь.
Ссылка на основную публикацию