> For the complete documentation index, see [llms.txt](https://denis-3.gitbook.io/linuxguide-linux-dlya-nachinayushikh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://denis-3.gitbook.io/linuxguide-linux-dlya-nachinayushikh/struktura-failovoi-sistemy.md).

# Структура файловой системы

Перейдём к важной части понятия Linux, к структуре файловой системы. Её нужно понимать, ведь, так или иначе, вам всё равно приходиться обращаться к дереву файлов. Нужно понимать, что, где находиться. Ну, начнём!

В Linux есть несколько вариантов файловых систем. Самые популярные из них:

* EXT4
* EXT3
* BTRFS

В большинстве дистрибутивов Linux, в том числе Linux Mint, используется файловая система ext4 (или её прошлая версия ext3). Она достаточно стабильна и является самой популярной на Linux. Эта файловая система используется при форматировании жёсткого диска во время установки Linux. Например, в Windows используется NTFS.&#x20;

> Кстати, есть такой момент, когда используют две системы Linux и Windows на компьютере. Если надо будет скопировать файлы из Windows на Linux, то этого сделать не получится, так как у первой системы есть проблемы с этим. При этом Linux хорошо работает с файловой системой NTFS, так что с Linux на Windows средствами системы получиться совершать операции с файлами. Чтобы совершать эти операции для системы Linux через Windows нужно установить дополнительные драйвера или использовать специальные программы для работы с файловой системой типа EXT.

## Структура файловой системы

#### / - корень системы

В отличии от системы Windows, в Linux всё прикреплено к корневому каталогу системы. Любые диски, файлы, программы - всё идёт от корня системы. Он обозначается, как "/", слеш. Это главный каталог Linux.

{% hint style="info" %}
Пользователи Windows привыкли использовать термин папка. В UNIX-подобных операционных системах этот термин принято называть каталогом или директорией. Для обычного пользователя особой разницы нет, но на деле же она существует. Папка организует файлы на одном уровне, а каталог - это иерархия для организации данных, индекс для поиска места нахождения определённых файлов. Можно провести следующую аналогию: папка - это комната, в которой хранятся вещи. Каталог - путь к месту, где хранятся различные вещи. А вообще, для упрощения в Linux тоже применяется термин папка, однако пользователи этой системы предпочитают говорить каталог и всё это приравнивается.
{% endhint %}

<figure><img src="/files/3TLi1qJGfjnCEAuPlezd" alt=""><figcaption></figcaption></figure>

#### /bin - бинарные файлы

bin (binary) - каталог, где хранятся двоичные исполняемые файлы основных утилит. Эти утилиты являются утилитами командной строки, значит их можно запустить через терминал. Чаще всего в современных дистрибутивах этот каталог является ссылкой на другой каталог, /usr/bin, где хранятся пользовательские исполняемые файлы, в добавок к основным.

<figure><img src="/files/B8msbFcziD9c1FxnZ4mW" alt=""><figcaption></figcaption></figure>

#### /boot - файлы загрузки системы

В каталоге boot (загрузка) хранятся файлы, необходимые при загрузке Linux. Здесь есть загрузчик GRUB, само ядро Linux и начальный ramdisk (initrd для начального монтирования корневого раздела при загрузке, после которой она размонтируется).&#x20;

<figure><img src="/files/V8lP7ZrqAjxzQUvwSs8A" alt=""><figcaption></figcaption></figure>

#### /dev - устройства

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

{% hint style="info" %}
Концепция "всё есть файл" в Linux, как и многое другое, пришла из UNIX. Данная концепция предполагает, что любой носитель, любые конфигурации в Linux являются файлом. Конечно, здесь есть типы файлов и не все они являются обычными. Основные типы файлов:

* Обычные файлы
* Специальные файлы
* Директории

К обычным файлам относятся изображения, видео, музыка, архивы, библиотеки, исполняемые файлы и так далее. Специальные файлы уже интереснее. Они обеспечивают работу с устройствами и ядром, а также общение между программами. **Блочные файлы** - файлы устройств, обеспечивающие доступ к определённому устройству. **Символьные файлы** - тоже файлы устройств но они уже относятся к системным компонентам. **Символические ссылки** - файлы, указывающие на другие файлы, подобно ярлыкам в Windows. Директории (каталоги) - такие файлы, которые объединяют другие или каталоги в группы. Чтобы не запутаться, представляйте каталог, как папку в Windows.
{% endhint %}

<figure><img src="/files/DNHVdDfn1gvom1qnu3sf" alt=""><figcaption></figcaption></figure>

#### /etc - конфигурационные файлы

В каталоге /etc (etcetera - и так далее) находятся файлы настроек и различного ПО. Здесь можно увидеть конфигурационные файлы браузера, офиса, оконного менеджера и прочее.&#x20;

<figure><img src="/files/GGAmDWpXcgdcitw4KmfV" alt=""><figcaption></figcaption></figure>

#### /home - домашние каталоги пользователей

В директории home (дом) находятся домашние каталоги пользователей системы. Здесь есть все пользователи системы. Тут хранятся личные данные и настройки каждого пользователя. В каталоге пользователя есть подкаталоги для хранения музыки, загрузок, изображений и так далее.

<figure><img src="/files/zevFWmAhXHUHkosMScM8" alt=""><figcaption></figcaption></figure>

#### /lib (library) - библиотеки системы и программ

В этом каталоге хранятся библиотеки, необходимые для работы системы и программ. Он является ссылкой на /usr/lib, где есть и пользовательские библиотеки. /lib32 и /lib64 - соответственно 32-битные и 64-битные библиотеки. 32-битных программ у нас нет, поэтому и каталог /lib32 - пустой.&#x20;

*Библиотеки в Linux - наборы функций и возможностей программы.*

<figure><img src="/files/r2r7IUdH0Rxl7nvtz8X5" alt=""><figcaption></figcaption></figure>

#### /media - подключение съёмных носителей

Каталог /media - точка монтирования съёмных носителей. Здесь можно увидеть подключённые флешки, жёсткие диски. При подключении такого носителя, в каталоге /media появляется каталог с именем пользователя, а уже в нём появляется каталог подключённого устройства с его содержимым внутри. Это происходит автоматически при нажатии на определённый носитель. На фото каталог пустой, а значит никакой носитель не подключён к компьютеру.

#### /mnt (mount) - подключение носителей

Данный каталог по его значению равен каталогу /media. Сюда тоже можно подключить внешние носители. Но это уже устаревший каталог, ранее используемый вместо /media. Как правило, сейчас он используется для ручного монтирования накопителей.

#### /opt - дополнительные пакеты ПО

В каталоге /opt (optional) хранится стороннее, дополнительно ПО, чаще всего проприетарное (с закрытым исходным кодом). Это любое внешнее ПО или ПО сторонних производителей. Все файлы таких программ хранятся в каталогах с их названиями. Например, здесь будет отображаться программа Google Chrome после установки.

#### /proc - информация о процессах

В каталоге /proc (processes) размещается виртуальная файловая система procfs, предоставляющая доступ к подробной информации о всех запущенных процессах. Кроме этого, здесь можно найти сведения о системе. Например, полную информацию о процессоре (файл cpuinfo).

<div><figure><img src="/files/CyBlHnrXVXEPQCjdgIYh" alt=""><figcaption></figcaption></figure> <figure><img src="/files/UmVtI4I7MSq0119YmWS0" alt=""><figcaption></figcaption></figure></div>

#### /root - каталог суперпользователя

Каталог /root является домашним каталогом суперпользователя. Он не находится в каталоге /home.

#### /run - временные файлы данных

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

<figure><img src="/files/rQcG5aTxrREDxWz98lew" alt=""><figcaption></figcaption></figure>

#### /sbin - вспомогательные программы администрирования

Этот каталог ссылается на /usr/sbin. Он хранит в себе различные вспомогательные программы для управления системой. Например, useradd для добавления пользователей в систему или Network Manager для управления сетевыми подключениями.

<figure><img src="/files/VERi2yQOR42Zw1e64NSv" alt=""><figcaption></figcaption></figure>

#### /srv - данные сервисов

Каталог /srv (services) предназначен для размещения файлов сервисов и серверов. Например, здесь хранятся файлы веб-сервера Apache

#### /sys - сведения, предоставляемые ядром, о системе

В каталоге /sys (system) хранятся файлы данных о системе, оборудовании и их драйверах, которые предоставляет ядро Linux с помощью виртуальной файловой системы sysfs. Эта файловая система позволяет просматривать и менять некоторые параметры работы системы. Отсюда берётся информация, например, о температуре процессора или видеокарты.

<figure><img src="/files/fF89tl6fX5NpIViu52ki" alt=""><figcaption></figcaption></figure>

#### /tmp - временные файлы

В каталоге /tmp (Temporary) находятся временные файлы. Например, по ходу обновления, сюда распаковываются пакеты. Или распаковываются архивы при быстром просмотре их содержимого. Для ускорения операций /tmp помещается в оперативную память устройства. После перезагрузки все файлы удаляются.

<figure><img src="/files/aRnDGVU9oaYdOx4yMfnU" alt=""><figcaption></figcaption></figure>

#### /var - временные файлы

Данный каталог схож с /tmp, но имеет немного другое значение. В каталоге /var (variable) также хранятся временные файлы. Но здесь есть различные кэши, логи и журналы системы, очереди печати и так далее.

<figure><img src="/files/j0JCtcxp9FdjGU75dAzr" alt=""><figcaption></figcaption></figure>

#### /usr - программы пользователя

В этом каталоге можно увидеть некоторые директории из структуры файловой системы, но они уже относятся к пользователю.&#x20;

<figure><img src="/files/epeKZCoPhaBQku8Yldjl" alt=""><figcaption></figcaption></figure>

В /usr/bin находятся исполняемые файлы различных программ и основные утилиты. В /usr/lib находятся библиотеки этих программ. В /usr/local хранятся файлы программ, конфигураций и библиотек, которые создал сам пользователь (например скрипты, написанные пользователем). В /usr/sbin находятся исполняемые файлы для администрирования системы. В /usr/share находятся независимые от архитектуры файлы, т. е. плагины для программ шрифты, звуки и другие файлы. А /usr/src служит для размещения в нём исходного кода.

#### Файл swapfile - файл подкачки

Файл подкачки нужен для "страховки" оперативной памяти. В момент, когда место в ОЗУ заканчивается используется выделенное под swapfile место. Как правило, это нужно для распределения приоритетов процессов или чтобы компьютер не тормозил, если заканчивается оперативная память.

<figure><img src="/files/KUu0KAH7MMaNDUXV9v2v" alt=""><figcaption></figcaption></figure>

Вы познакомились с основной структурой файловой системы Linux-дистрибутива. Многие пользователи могут какой-то каталог выделить в отдельный жёсткий диск. Например, домашнюю папку. Это нужно для сохранения пользовательских данных при смене дистрибутива Linux, если есть такое желание.
