url image

Структура каталогов Linux

При работе с Linux нужно держать в голове концепцию, которая лежит в основе системы: «Всё — это файл». Расшифровывается просто: любые данные и процессы операционной системы можно выразить как поток байтов, занимающий определённый объём файловой системы на дисковом накопителе. 

Соответственно, всё, что занимает место, можно назвать файлом. А уж файлы можно структурировать как душе угодно: 

  • обычные файлы
    • текстовые
    • бинарные
    • файлы изображений
    • архивы и т.п.
  • специальные
    • блочные для обозначения устройств (b)
    • символьные (с)
    • ссылочные для представления символьных ссылок (l)
    • файлы сокетов для связи между разными процессами и пр. (s)
  • директории — файлы, в которых хранятся другие файлы (d)

Узнать тип файла можно с помощью команды, с которой мы уже имели дело: 

ls -l

Первый символ в каждой строке вывода обозначает тип файла. Уточнить его можно с помощью команды file [имя], которой в качестве входных данных передаётся имя файла/папки.

Linux-системы имеют много общего, и файловая структура — одна из этих общих черт. Знакомство с ней поможет увереннее ориентироваться в операционной системе в целом. Давайте погрузимся немного поглубже и посмотрим, что лежит в корне Linux-системы.

Собственно, в корне, или корневой директории «/», лежат все данные сервера, распределённые по разным каталогам. При этом каждый каталог имеет своё значение и содержит файлы, сгруппированные по определённому критерию. По умолчанию структура директорий состоит из папок:

Рассмотрим каждую подробнее.

/bin

Директория /bin содержит исполняемые бинарные файлы различных служб, доступные для запуска любым пользователям сервера. Включает и исполняемые файлы базовых команд, которые мы узнали в статье про первые шаги в командной строке: echo, cat, cd, pwd, ls и пр.

Является символьной ссылкой на каталог /usr/bin.

/boot

Содержимое этого каталога содержит сердце системы — файлы загрузчика и ядра. Без этой директории операционная система не сможет запуститься. 

/dev

Эта директория содержит файлы устройств, подключенных к серверу. Включает терминал, через который мы отдаём серверу команды (tty*), а также специальные устройства типа null, random, zero. Ну и, конечно, сам диск сервера и его разделы (vda*).

/etc

Эта директория по умолчанию содержит все конфигурационные файлы служб, а в некоторых случаях — и скрипты для их запуска и отключения. Если вам нужно изменить какие-то параметры в работе той или иной службы — скорее всего, её конфигурационный файл будет лежать где-то в /etc. Но не всегда.

/home

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

/lib и /lib64

В директории /lib хранятся библиотеки, необходимые для работы системных служб, файлы которых размещены в папках /bin и /sbin. А также данные для загрузки системы и модуля ядра ОС.

Директория /lib64 предназначена для тех же целей, только включает в себя библиотеки для всех остальных служб сервера.

По умолчанию /lib и /lib64 являются символьными ссылками на соответственно /usr/lib и /usr/lib64.

/media

В этой директории операционная система автоматически монтирует внешние устройства (USB, CD-ROM и пр.).

/mnt

Эта папка выполняет аналогичные /media функции — используется для временного монтирования внешних устройств. Преимущественно вручную.

/opt

В эту папку обычно устанавливается пользовательское программное обеспечение. Собственно, это и заложено в название — директория для опциональных, необязательных данных. По умолчанию не содержит данных.

/proc

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

Все директории с наименованием в цифровом формате содержат информацию о запущенных процессах. В частности, название папки соответствует PID, идентификатору процесса.

/root

Домашняя папка для корневого пользователя root

/run

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

/sbin

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

Является символьной ссылкой на каталог /usr/sbin

/srv

Эта папка предназначена для сервисных нужд — чтобы пользователи сервера могли найти какие-то общедоступные данные для конкретной службы, например, веб-сервера, FTP-сервера. По умолчанию не содержит данных.

/sys

Ещё одна директория, содержащая виртуальную файловую систему. В этот раздел экспортируются данные ядра операционной системы и его модулей. Этот каталог перезаписывается после каждой перезагрузки операционной системы. 

/tmp

Эта папка используется операционной системой и различными внутренними службами для хранения временных файлов. 

/usr

В этом каталоге хранятся исполняемые файлы, библиотеки и файлы документации (man) для внутренних служб, компоненты ядра для функционирования операционной системы, а также данные программ, установленных пользователями.

Собственно, директории /bin и /sbin, /lib и /lib64 cсылаются на соответствующие каталоги внутри /usr.

/var

Директория /var содержит часто изменяемые данные. Например, кэши (/var/cache), логи (/var/log), очереди (/var/spool).

Здесь же по умолчанию хранятся данные сайтов (/var/www), сервера баз данных (/var/lib/mysql), почтового сервера (/var/mail/var/spool/mail).

 

Теперь мы знаем, как работать с файлами в Linux-системах и как они распределены по каталогам. Самое время подняться на следующий уровень и поговорить о не менее важном атрибуте любой Linux-системы — о пользователях.

Управление пользователями

Этот материал был полезен?

Скидка 25% новым клиентам!
Закажи сервер сегодня и получи скидку на первый месяц аренды!