Структура файловой системы Linux
Ваши навыки системного администратора станут лучше, если вы поймете файловую систему Linux, структуру каталогов, расположение конфигурации, исполняемых и временных файлов. А для того, кто ранее работал только с Windows, файловая система Linux будет совсем незнакомой, потому что она совсем не похожа на файловую систему Windows.
В Linux программное обеспечение обычно распределено по корневой файловой системе, а не содержится в одной папке. Такое распределение способствует соблюдению нескольких правил. Вы когда-нибудь задумывались, в чем разница между папками /bin, /sbin, /usr/sbin и /usr/local/bin и почему именно там находятся некоторые приложения?
Приложение less, например, находится в /usr/bin, а не в /sbin или /usr/sbin. Такие программы, как ifconfig и fdisk, находятся только в /sbin. Структура файловой системы Linux будет подробно описана в этой статье. После прочтения этой статьи вы сможете понять большую часть файловй системы Linux.
Является основным каталогом операционной системы Linux. По сути, это и есть вся файловая система Linux. В Windows нет дисков и других устройств. Вместо этого дополнительные разделы, флешки или оптические диски подключаются к папкам в корневом каталоге, и все адреса файлов начинаются с корня.
Корень — /
В этом каталоге только пользователь root имеет доступ к чтению и изменению файлов. Следует отметить, что пользователь root не имеет доступа к самому корневому каталогу.
Бинарные файлы — /bin
Файлы в этом каталоге являются исполняемыми. Ниже перечислены приложения, которые могут быть использованы в однопользовательском режиме или режиме восстановления. Другими словами, те программы, которые могут быть запущены без подключения каталога /usr/. Это такие обычные команды, как cat, ls, tail, ps и так далее.
Системные файлы — /sbin
Как и /bin, он содержит двоичные исполняемые файлы, которые доступны во время первого процесса загрузки, когда /usr не смонтирован. Однако для работы некоторых приложений в этом месте требуются права суперпользователя. Это многие инструменты для обслуживания системы. iptables, reboot, fdisk, ifconfig, sword — вот несколько примеров.
Конфигурационные файлы — /etc
Все программы, установленные в системе, имеют конфигурационные файлы в этой области. Здесь находятся файлы конфигурации, система инициализации Init Scripts, скрипты для монтирования файловых систем, запуска и остановки системных демонов, запуска и остановки автозагрузки приложений. Хотя система каталогов linux в этой папке может быть немного сложной, но основными целями каждой из них являются установка и настройка.
Файлы устройств — /dev
Все в Linux, даже внешние устройства, является файлом. В результате каталог /dev/ содержит просто файлы для всех подключенных флэш-накопителей, клавиатур, микрофонов и камер. Типичная файловая система в этом месте отсутствует. Служба udev инициализирует структуру файловой системы Linux, а также файлы, находящиеся в каталоге /dev, при загрузке системы. Каждое подключенное устройство сканируется, и для каждого из них создаются уникальные файлы. /dev/sda, /dev/sr0, /dev/tty1, /dev/usbmon0 и т.д. являются примерами таких устройств.
Информация о процессах — /proc
Хотя это подсистема, созданная ядром, это также необычная файловая система. В ней хранятся все текущие сведения об активных процессах. В действительности, это фиктивная файловая система, которая записывает конкретные данные о каждом процессе, такие как его Pid, имя исполняемого файла, начальные настройки, обращения к оперативной памяти и многое другое. Здесь вы также можете узнать о том, как используются ресурсы системы, просмотрев такие файлы, как /proc/cpuinfo, /proc/meminfo или /proc/uptime. Наряду с файлами в этом каталоге, существует обширная структура папок Linux, которая содержит множество знаний об операционной системе.
Файлы переменных — /var
Каталог /var должен содержать файлы, которые регулярно меняются, потому что его название говорит само за себя. Этих файлов становится все больше и больше. Он включает в себя файлы системного журнала, несколько кэшей, базы данных и другие вещи.
Файлы логов — /var/log
В этом месте хранится большинство файлов журналов всех установленных в операционной системе программ. Многие программы имеют свои собственные подкаталоги в этой области, включая /var/log/squid и /var/log/apache, в которых хранятся журналы для кэш-сервера squid и веб-сервера, соответственно. Вероятно, здесь вы найдете решения проблем вашей системы.
Базы данных — /var/lib
Файлы баз данных, пакеты, хранящиеся в менеджере пакетов, и т.д. являются примерами дополнительных типов изменяемых файлов.
Почта — /var/mail
Все электронные письма, отправленные или полученные почтовым сервером, хранятся в этой папке, наряду с любыми журналами и файлами конфигурации.
Очереди — /var/spool
Изначально эта папка отвечала за управление очередями печати принтера и работой набора cups.
Файлы блокировок — /var/lock
Здесь находятся файлы блокировки. Эти файлы указывают на то, что определенное устройство, ресурс или файл заняты и недоступны для других процессов. Например, apt-get блокирует свою базу данных, чтобы предотвратить одновременный доступ других процессов.
PID процессов — /var/run
PID процессов, которые могут использоваться для связи между приложениями, хранятся в файлах в этом каталоге. Эти данные сохраняются при перезагрузке, в отличие от каталога /run.
Временные файлы — /tmp
Временные файлы, создаваемые системой, программами или пользователями, могут быть найдены в этом каталоге. Каждый пользователь имеет право записи в этот каталог.
Программы пользователя — /usr
При каждой перезагрузке эти файлы удаляются. Все временные файлы хранятся в папке, которая аналогична папке Windows\Temp.
Исполняемые файлы — /usr/bin
Эта папка имеет наибольшее количество функций и является самой большой директорией. В ней находится самая большая структура каталогов Linux. Сюда входят исполняемые файлы, исходные тексты программ, различные ресурсы приложений, изображения, музыка и документация.
Исполняемые файлы (не требуются при начальной загрузке) — /usr/sbin
В нее включены исполняемые файлы для различных программ, таких как музыкальные проигрыватели, графические редакторы, браузеры и другие, которые не требуются при начальной загрузке системы.
Библиотеки — /usr/lib
Состоит из библиотек для приложений в каталогах /usr/bin или /usr/sbin.
Файлы пользователя — /usr/local
Содержит библиотеки, файлы приложений и пользовательские модификации. Например, здесь могут храниться приложения, которые были собраны и установлены из исходного кода или написанных вручную скриптов.
Домашняя папка — /home
В этой области хранятся домашние каталоги всех пользователей. Они могут сохранять свои личные данные, предпочтения приложений и т.д. Например, /home/servopolis и т.д. Сравнительно говоря, это ваша пользовательская папка на диске C. Однако, в отличие от Windows, home часто располагается на другом диске, что гарантирует сохранение всех ваших данных и настроек приложений при переустановке системы.
Файлы загрузчика — /boot
Содержит все связанные с загрузчиком файлы. Сюда входят образ initrd, ядро vmlinuz и файлы загрузчика, расположенные в каталоге /boot/grub.
Системные библиотеки — /lib
Содержит исполняемые файлы системных библиотек в папках /bin и /sbin. Библиотеки имеют имена файлов, которые заканчиваются на *.so и начинаются с префикса lib. Как и в Windows, все системные библиотеки загружаются в эту папку, однако в отличие от Windows, где они объединены с исполняемыми файлами, здесь все они загружаются независимо.
Дополнительные программы — /opt
В эту папку устанавливаются проприетарные программы, игры и драйверы. Это приложения, которые сами производители разработали как отдельные исполняемые файлы. Подобно приложениям Windows, эти программы помещаются во вложенную папку /opt/ и содержат все исполняемые файлы, библиотеки и файлы конфигурации в одной папке.
Монтирование — /mnt
В этом каталоге системные администраторы могут монтировать дополнительные или внешние файловые системы.
Съемные носители — /media
Система монтирует в этот каталог все съемные внешние устройства, включая USB-флешки, оптические диски и другие носители данных.
Сервер — /srv
В этом каталоге могут находиться файлы для серверов и служб. Например, он может включать файлы веб-сервера Apache.
Процессы — /run
Подобно /var/run, этот каталог также содержит файлы PID для запущенных процессов, но поскольку он размещен в TMPFS, все его содержимое уничтожается при перезагрузке системы.
Информация о системе — /sys
Папки Linux в этой области находятся для того, чтобы вы могли напрямую обращаться к ядру за системной информацией. Вы можете видеть и изменять некоторые системные настройки, включая своп, управление вентиляторами и другие, благодаря этой дополнительной файловой системе, которую организовало ядро.
Итог
Несомненно, есть еще много интересного в файловой системе Linux, но теперь вы знаете о ней гораздо больше. Пожалуйста, оставьте комментарий, если мы что-то упустили.