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

click fraud protection

Одно существенное различие между Linux и Windows заключается в системе организации каталогов по умолчанию, с которой вы столкнетесь после чистой установки операционной системы.

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

Что такое файловые системы и какие наиболее часто используются сегодня
Корневой каталог на рабочем столе Ubuntu Linux

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

Чтобы понять на высоком уровне, почему эти операционные системы структурированы именно так, полезно разобраться в их истории.

Когда ПК на базе Windows только начали свой рост, на заре MS-DOS, Microsoft операционная система, специально ориентированная на микрокомпьютеры (то, что мы сегодня чаще называем настольными компьютеры). В те ранние годы файлы хранились в основном на дискетах. Они были помечены А:

а также B: так что их было легко отличить. Позже жесткие диски получили C: метке дисковода и дополнительным типам дисководов, таким как CD-ROM или USB-накопители, были присвоены следующие буквы.

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

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

Каталог / bin

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

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

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

Каталог / boot

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

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

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

Каталог / cdrom

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

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

Каталог / dev

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

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

В /dev каталог - это место, где хранятся все эти специальные файлы. Если вы просмотрите его, вы увидите файлы практически для каждого устройства, которое вы можете себе представить, от вышеупомянутых твердотельных накопителей на основе NVMe до жестких дисков на SATA (например, /dev/sd*) или более ранняя IDE (/dev/hd*), а также более старые, такие как порт мыши PS / 2 (/dev/psaux). Звездочки представляют собой символы подстановки; например, при настройке на основе SATA первым жестким диском будет "/ dev / sdа, "и первым разделом этого диска будет" / dev / sda1. "Его второй раздел -" / dev / sda.2, "а первый раздел второго диска -" / dev / sdб1."

Хотя не важно, чтобы они располагались в каком-либо определенном порядке, важно знать, что есть что. Эти знания предотвратят перезапись раздела Windows, когда вы, например, намеревались установить Linux на новый пустой диск, который вы устанавливаете.

Каталог / etc

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

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

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

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

Поклонники Windows понимают C: \ Пользователи каталог, в котором находятся документы и настройки для каждого пользователя системы. Поскольку Unix с самого начала была многопользовательской системой, эта концепция долгие годы существовала в Linux как /home каталог. У каждой учетной записи есть подкаталог, содержащий все данные учетной записи. Фактически, обычный пользователь без прав администратора даже не имеет разрешения для хранения файлов в другом месте.

В /root каталог - это эквивалентная папка пользователя для системного администратора, или пользователь root. Он только отличается от /home в его местонахождении (чтобы потенциально важные файлы были подальше от обычных пользователей) и владении.

Каталоги / lib

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

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

Съемные носители монтируются под именем пользователя в каталоге носителей

Несколько лет назад, если бы у вас был съемный носитель, например флэш-накопитель USB, прежде чем вы могли его использовать, вам нужно было бы назначить ему /dev запись и создать место для /mnt (смонтировать) каталог. В более современных версиях дистрибутивы Linux автоматически настраивают съемные носители. Фактически, в зависимости от того, какой пользователь вошел в систему при подключении устройства, система создаст каталог для конкретного пользователя, смонтируйте устройство и убедитесь, что у пользователя есть правильные разрешения на получить доступ к нему. Сегодня разница в том, что /media каталог обычно используется для этой цели.

Каталог / opt

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

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

Каталог / sbin

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

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

Каталог / usr

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

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

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

В /usr каталог хранит их в своей собственной иерархии. Это содержит мусорное ведро, lib, а также sbin подкаталоги, которые работают так же, как их старшие собратья, но содержат только то, что связано с установленным вами программным обеспечением. В /usr/share Каталог содержит активы, такие как наборы значков, а также файлы документации.

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

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

Каталог / var

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

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

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

В разных дистрибутивах используются разные комбинации стандартных каталогов на корневом уровне. Ниже мы приводим список каталогов корневой папки для MX Linux 18.3 Continuum и Ubuntu 19.10 Eoan Ermine.

список корневых каталогов mx linux
список корневых каталогов ubuntu

В зависимости от дистрибутива вы можете встретить и другие каталоги:

  • /lost+found: Бывают случаи, когда небольшие кусочки данных теряются в системе. Если вы знаете, что что-то потеряли, вы можете проверить здесь, хотя содержимое не будет легко идентифицировать. Вам нужно будет вручную проверить их содержимое, чтобы понять, что это такое.
  • /proc: Все в Linux можно представить в виде файла. В /proc каталог содержит файлы, связанные с процессы, и вы можете просмотреть их, чтобы узнать, что они делают (но не редактируйте их).
  • /run: Это каталог времени выполнения где процессы хранят некоторые временные данные, которые им нужны, чаще всего при запуске системы. Как и в случае с другими каталогами системного уровня, здесь не стоит возиться.
  • /snap: Ubuntu Щелчок это формат пакета который завершает приложение и все, что ему нужно, в контейнер это изолировано от остальной части вашей системы. В /snap Каталог - это место, где эти контейнеры монтируются в систему аналогично устройствам хранения.
  • /srv: В этом каталоге находятся файлы служил демонами хранятся программы. Например, статические веб-страницы, обслуживаемые веб-сервером Apache, могут храниться в /srv/www подкаталог.
  • /sys: В соответствии с мантрой "все - файл", /sys и его содержимое представляет настройки и информацию из ядра Linux таким же образом /proc делает для запущенных процессов.
  • /tmp: Если вы догадались по имени, которое содержит этот каталог временные данные, ты прав. Программы системного уровня временно хранят здесь информацию.

На компьютере под управлением Windows ничто по своей сути не мешает вам размещать каталоги в любом месте, в том числе на корневом уровне (C: \). Однако в системах на базе Linux вы должны хранить данные там, где они нужны. Детализированная система на основе разрешений для Linux будет вызывать умышленное трение, когда вы заставляете альтернативные макеты каталогов из того, что система была разработана для принятия.