Где все живет

Где все живет

Файловая система Linux

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

Аудитория
Все пользователи Linux
Время чтения
24 мин
Основные каталоги
18
Единое дерево
1
Виртуальные файловые системы
3

Единое дерево файловой системы

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

Эта модель делает систему согласованной. USB-накопитель может находиться в каталоге /media/alex/USB, диск с данными сервера — в каталоге /srv/data, а представление виртуального процесса — в каталоге /proc. Это разные источники, но все они выглядят как пути.

Единое дерево файловой системы диаграмма
/
/homeличные данные
/etcконфигурация
/var/logжурналы
/usrпрограммы
/mntподключенные диски

Пути и разрешение путей

Абсолютный путь начинается с /, например /etc/ssh/sshd_config. Относительный путь начинается с текущего рабочего каталога, например ../notes/todo.txt.

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

Абсолютные и относительные пути
pwd
ls /etc
ls ../shared
ls ~/.config

Каталоги верхнего уровня и что они означают

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

Каталоги верхнего уровня и что они означают
DirectoryMeaningПримеры
/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.

Точки крепления диаграмма
Внешний дискблочное устройство
/mnt/backupточка подключения

Виртуальные файловые системы: /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, обычно следует изменять с помощью пакетов, а не редактировать вручную.