Единое дерево файловой системы
Linux представляет хранилище в виде одного дерева каталогов, начинающегося с /. Букв дисков нет. Дополнительные диски, разделы, общие сетевые ресурсы и виртуальные файловые системы подключаются к каталогам, называемым точками монтирования.
Эта модель делает систему согласованной. USB-накопитель может находиться в каталоге /media/alex/USB, диск с данными сервера — в каталоге /srv/data, а представление виртуального процесса — в каталоге /proc. Это разные источники, но все они выглядят как пути.
Пути и разрешение путей
Абсолютный путь начинается с /, например /etc/ssh/sshd_config. Относительный путь начинается с текущего рабочего каталога, например ../notes/todo.txt.
Оболочка расширяет ярлыки перед запуском многих команд. ~ означает ваш домашний каталог. . означает текущий каталог. .. означает родительский каталог. Скрытые файлы — это имена, начинающиеся с точки, например .profile.
pwd
ls /etc
ls ../shared
ls ~/.configКаталоги верхнего уровня и что они означают
Каталоги верхнего уровня не случайны. Они разделяют пользовательские данные, конфигурацию системы, состояние переменных, установленное программное обеспечение, устройства, данные времени выполнения, временные файлы и представления виртуального ядра.
| Directory | Meaning | Примеры |
|---|---|---|
| /home | Личные файлы и конфигурация обычных пользователей | /home/alex/Documents, /home/alex/.config |
| /etc | Общесистемная конфигурация | /etc/ssh/sshd_config, /etc/fstab |
| /var | Переменные данные, которые меняются со временем | /var/log, /var/cache, /var/lib |
| /usr | Большинство программ пользовательского пространства, библиотек и общих данных | /usr/bin, /usr/lib, /usr/share |
| /bin | Основные пользовательские команды, часто объединенные в /usr/bin. | /bin/sh, /bin/ls |
| /sbin | Основные команды системного администрирования, часто объединенные в /usr/sbin. | /sbin/ip, /sbin/fsck |
| /opt | Дополнительные пакеты сторонних приложений | /opt/google, /opt/vendor-app |
| /tmp | Временные файлы часто удаляются автоматически | /tmp/session-data |
| /dev | Файлы устройств, представляющие интерфейсы оборудования и ядра. | /dev/sda, /dev/null |
| /proc | Информация о виртуальном процессе и ядре | /proc/cpuinfo, /proc/1234 |
| /sys | Информация о виртуальном устройстве и подсистеме ядра | /sys/class, /sys/block |
| /run | Состояние выполнения с момента загрузки | /run/systemd, /run/user/1000 |
| /mnt | Временные точки ручного монтирования | /mnt/backup |
| /media | Съемные носители, установленные для пользователей | /media/alex/USB |
| /root | Домашний каталог для пользователя root | /root/.ssh |
Точки крепления
Точка монтирования — это каталог, к которому подключена файловая система. До монтирования каталог является просто каталогом. После монтирования там появляется корень смонтированной файловой системы.
Монтирования позволяют Linux размещать различные источники хранения в нужных местах. Веб-сервер может хранить данные сайта на отдельном диске, подключенном в /srv/www. Съемный диск может быть смонтирован в /media.
Виртуальные файловые системы: /proc, /sys, /dev и /run.
/proc and /sys are not normal folders stored on disk. They are kernel-provided views into process, hardware, and kernel state. Reading files there asks the kernel for information.
/dev contains device nodes that programs use to talk to devices through kernel drivers. /run contains runtime state created since the last boot, such as sockets, PID files, and per-user runtime directories.
Примеры реальных файлов и что они представляют
| Path | Что это вам говорит |
|---|---|
| /etc/os-release | Название дистрибутива и информация о версии |
| /etc/fstab | Файловые системы, которые система должна монтировать при загрузке |
| /var/log | Традиционный каталог файлов журналов |
| /proc/cpuinfo | Информация о процессоре из ядра |
| /proc/meminfo | Информация о памяти из ядра |
| /sys/class/net | Сетевые интерфейсы, предоставляемые через sysfs |
| /dev/null | Устройство, которое отбрасывает все записанное на него |
Где хранятся пользовательские данные, конфигурация, журналы и данные времени выполнения
Документы пользователя обычно находятся в каталоге /home. Настройки приложения, специфичные для пользователя, обычно находятся в скрытых папках, таких как ~/.config, ~/.local и ~/.cache. Общесистемная конфигурация находится в /etc. Журналы обычно хранятся в журнале systemd, /var/log или в папках конкретных приложений в каталоге /var.
Файлы времени выполнения в /run не являются постоянными. Временным файлам в каталоге /tmp не следует доверять долгосрочное хранение. Файлы, управляемые пакетом в каталоге /usr, обычно следует изменять с помощью пакетов, а не редактировать вручную.