Что такое директория в линукс
Файловая концепция Linux – это четкая структура каталогов и файлов. В этом посте рассмотрим предназначения всех директорий. Файловые системы Линукс содержат большое множество каталогов, большинство из них подходят под спецификацию FHS (Filesystem Hierarchy Standard). Почему существуют термины «каталог», «директория» и «папка»? В чем их отличие? Давайте узнаем.
Каталог, он же директория, (от англисйкого Directory) – это объект в ФС (файловой системе), необходимый для того, чтобы упросить работу с файлами. Папка (от английского Folder) — это определение применяется для отображения директорий в графическом пользовательском интерфейсе (GUI). Отсюда вытекает, что все эти определения значат, в принципе, то же самое. Чтобы было удобно, будем применять в этом посте определение “директори”, по мнению большинства пользователей Линукс, это более правильный термин.
Типичная структура ФС системы Linux
Наличие тех или иных директорий может быт в зависимости от того, какой дистрибутив Вы используете. Ниже список наиболее важных и часто встречающихся:
/
/bin
/boot
/dev
/etc
/home
/lib
/lib64
/lost+found
/media
/mnt
/opt
/proc
/root
/run
/sbin
/selinux
/srv
/sys
/tmp
/usr
/var
Итак, рассмотрим все по-порядку.
/ — корневая директория (root)
Родительская директория, в ней находится все, что есть в нашей ОС. В ней хранятся другие каталоги.
/bin — главные бинарные файлы (исполняемые программы)
Содержит основные модули, утилиты и командные оболочки, которые могут обеспечить необходимый минимально уровень работоспособности ОС. Размещение этих файлов в директории /bin гарантирует, что в системе эти важные утилиты будут даже в случае, если другие файловые системы не смонтированы.
/boot — файлы для загрузки ОС
Хранятся образы ядер Linux и файлы менеджеров загрузки (grub, lilo и т.д.).
/dev — файлы устройств
В Linux все устройства предоставлены в виде специфических файлов, расположеных в этой директории. К примеру, файл /dev/sda представляет диск SATA. Также в этой директории хранятся файлы псевдо-устройств (виртуальных), для этих файлов нет соответствующего реального устройства. Например, файл /dev/random генерирует случайные числа, а файл /dev/null является специальным устройством для удаления всех входных данных.
/etc — конфигурационные файлы
Содержит основные конфигурационные файлы операционной системы и различных программ.
/home — домашние директории пользователей
По идеологии UNIX для обеспечения безопасности ОС рекомендуется хранить пользовательские данные именно в этой директории. Например, если ваше имя пользователя user, то у вас есть домашняя дирекотория, которая находится в /home/user и содержит пользовательские конфигурационные файлы и личную информацию. Каждый пользователь имеет доступ на запись только в свою домашнюю директорию.
/lib — основные библиотеки
Эта директория предназначена для хранения системных библиотек и компонентов компилятора языка С, необходимых для работы программ из директорий /bin и /sbin и операционной системы в целом.
/lib64 — 64-битные основные библиотеки
Эта директория присуствует в основном на 64-битных системах, содержит набор библиотек и компонентов компилятора языка С для 64-битных программ.
/lost+found — восстановленные файлы
Присуствует во всех ОС Linux. При сбое в работе файловой системы и дальнейшей проверке файловой системы (при загрузке ОС), все найденные поврежденные файлы будут помещены в директорию lost+found, их можно попытаться восстановить.
/media — точка для автоматического монтирования
Используемая для автоматического монтирования различных устройств CD-ROM, USB-накопителей и т.д.
/mnt — точка для ручного монтирования
Используется для временного ручного монтирования (с помощю команды mount) различных устройств, таких как CD-ROM, USB-накопителей и т.д.
/opt — вспомогательные пакеты программ
Находятся субдиректории для дополнительных пакетов программного обеспечения. Каталог широко используется проприетарным программным обеспечением, которое не подчиняется стандартной иерархии файловых систем.
/proc – файлы ядра и процессов
В эту директорию примонтирована виртуальная файловая система procfs. В ней находятся специальные файлы, в которых представлена информация о системе и о выполняющихся процессах. Например, в файле /proc/cpuinfo собержиться информация о процессоре.
/root — Домашняя директория пользователя root
Вместо того, чтобы находиться в /home/root, он помещается в /root для большей надёжности системы.
/run – файлы состояния приложений
Является достаточно новой директорией, в которой приложениям предоставляется возможность стандартным образом хранить вспомогательные файлы, которые им требуются, например, сокеты и идентификаторы процессов. Эти файлы нельзя хранить в каталоге /tmp, поскольку эти файлы могут быть там удалены.
/sbin — бинарные файлы (программы) для администрирования системы
Директория /sbin похожа на /bin. В ней находятся важные двоичные файлы, которые, как правило, предназначены для их запуска пользователем при администрировании системы.
/selinux – виртуальная файловая система SELinux
В некоторых дистрибутивах (Red Hat, Fedora и т.п) для обеспечения безопасности используется пакет SELinux (Security-Enhanced Linux), при этом создается директория с файлами /selinux.
/srv – данные сервисных служб
Эта директория присуствует не во всех дистрибутивах, содержит «данные для сервисов, предоставляемых системой» (например сервер Apache может хранить файлы вашего сайта в этой директории). В большинстве случаев директория пуста.
/sys — виртуальная файловая система sysfs
Эта директория появилась с выходом ядра версии 2.6 и в нее примонтирована виртуальная файловая система sysfs с информацией об устройствах, драйверах, ядре ОС и т.п.
/tmp — временные файлы
Временные файлы, обычно удаляются при перезагрузке системы. Все пользователи имеют права чтения и записи в эту директорию.
/usr — пользовательские бинарные файлы, используемые только для чтения
В этой директории находятся приложения и файлы, используемые только пользователями, а не самой системой.
/var — директория для часто меняющихся данных
Здесь находятся журналы операционной системы, системные log-файлы, cache-файлы и т.д.
rmnssnvsk / structure-dir-linux.md
Структура директорий в ОС Linux
В этом каталоге хранятся основные команды операционной системы, такие как команды оболочки и команды файловой системы (ls, cp и т.д.).
Здесь хранятся образы ядер Linux и менеджер загрузки: grub, lilo и т.д.
Директория содержит файлы устройств, подключенные к операционной системе. В Linux вообще всё рассматривается, как файл, даже различные устройства, такие как принтеры, жёсткие диски, сканеры и т.д. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл. Аналогично устроено большинство UNIX-подобных операционных систем.
В этой директории находится основная часть конфигурационных файлов самой операционной системы (настройки сети, список пользователей, групп и т.д.) и различных программ (Apache, Samba и т. д.).
В этом месте должна размещаться вся личная информация пользователей системы. Почему должна? Потому что владелец компьютера может хранить свою личную информацию в любом понравившемся ему месте. В целях безопасности самой операционной системы и пользовательских данных хранить последние строго рекомендуется в директории /home. Для получения более высокой надежности операционной системы и сохранности пользовательской информации директорию /home рекомендуется выделить в отдельный раздел жесткого диска.
Это Домашняя папка пользователя usermame. В ней хранится пользовательская часть конфигурационных файлов (настройки пользовательских программ) и вся личная информация пользователя. Linux является многопользовательской системой и поэтому каждый пользователь имеет уникальный каталог для персональных файлов. Этот каталог называется Домашней папкой пользователя. Домашняя папка суперпользователя root располагается в корне файловой системы. Такое разделение пользовательских директорий от файлов операционной системы упрощает резервирование данных и повышает надежность самой операционной системы.
В lost+found скидываются файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные. Допустим при удалении файла из директории произошёл сбой (выключилось питание), то в системе останется потерянный inod, который вроде как и указывает на корректный файл, но этот файл не содержится ни в одной директории. В ext2 и других нежурналируемых файловых системах задача восстановления таких файлов ложится на fsck. Он находит inod, на которые нет ссылок, и создаёт на них ссылки в lost+found. После этого пользователь сможет просмотреть файлы и при необходимости переместить им куда надо, вернув нужные имена. В ext3 и в других журналируемых файловых системах fsck просматривает журнал и видя, что операция завершилась не полностью, откатывает ее. Поэтому потерянных inod в журналируемых файловых системах находиться меньше.
Эта директория предназначена для хранения системных библиотек, необходимые для работы программ из директорий /bin и /sbin и операционной системы вцелом.
Директория, используемая для автоматического монтирования различных устройств USB-накопителей, CD-ROM и т.д. При вставке в привод CD-ROM диска он автоматически подключается во вложенный каталог этой директории.
Обычно эта директория используется для ручного подключения устройств. В эту директорию командой mount «руками» монтируются различные USB-накопители, CD-ROM и т.д.
Директория, в которой обычно размещаются установленные программы, имеющие большой дисковый размер или вспомогательные пакеты (например /opt/openoffice.org).
/proc — это директория, к которой примонтирована виртуальная файловая система procfs. Различная информация, которую ядро может сообщить пользователям, находится в «файлах» каталога /proc. Например, в файле /proc/modules находится список загруженных модулей ядра. А в файле /proc/cpuinfo — информация о процессоре компьютера. Подробнее можно прочитать здесь.
Это домашний каталог или Домашняя папка суперпользователя. Эта директория фактически ничем не отличается от директории обычного пользователя. Данная директория по умолчанию всегда расположена в корневом каталоге файловой системы. Это было сделано для предотвращения проблем с доступом к директории /home. В случае когда к каталогу /home по какой-то причине невозможно получить доступ, в системе всегда есть возможность залогиниться под учетной записью суперпользователя, для решения возникших проблем с доступом.
Основные системные программы для администрирования и настройки системы (iptables, ifconfig и т.д.).
Параметры, которые специфичные для окружения системы. Чаще всего данная директория пуста.
/sys — это директория, к которой примонтирована виртуальная файловая система sysfs, которая добавляет в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. В версии ядра ниже 2.6 не использовалась.
/sys/block содержит директории всех блочных устройств, присутствующих в данный момент в системе.
В этой директории находится список шин, определенных в ядре Linux (eisa, pci и т.д.).
Каталог содержит список группированных устройств по классам (printer, scsi-devices и т.д.).
Временное хранилище данных. Аналог папки в ОС Windows — C:/Windows/Temp. Все пользователи имеют права чтения и записи в этом каталоге.
В этом каталоге хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window. Все пользователи кроме суперпользователя root имеют доступ только для чтения. Может быть смонтирована по сети и может быть общей для нескольких машин.
Директория дополнительных программ для всех учетных записей.
Каталог для размещения доступных компьютерных игр в системе.
Заголовочные файлы С++.
Системные библиотеки для программ, расположенных в директории /usr.
Дополнительные системные программы.
Общие данные установленных программ.
В каталоге находятся все иконки системы.
Директория, в которой обычно находится справочная документация по установленным программам.
Исходные кода (например, здесь располагаются исходные кода ядра).
Это каталог для часто меняющихся данных. Здесь находятся журналы операционной системы, системные log-файлы, cache-файлы и т. д.
В этом месте хранятся все кэши различных программ.
В этом месте расположены файлы с игровыми достижениями.
Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.).
Здесь лежат lock-файлы, указывающие на занятость некоторого ресурса.
В этом месте хранятся все log-файлы.
Задачи, ожидающие обработки (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т. д.).
В этом месте размещаются Web-страницы для сервера Apache.
Cтруктура файловой системы Linux
Понимание файловой системы Linux, структуры каталогов, размещения конфигурационных, исполняемых и временных файлов поможет вам лучше разбираться в своей системе и стать успешным системным администратором. Файловая система Linux будет непривычна именно для новичка, только что перешедшего с Windows, ведь здесь все совсем по-другому.
В отличие от Windows, программа не находится в одной папке, а, как правило, распределена по корневой файловой системе. Это распределение поддается определенным правилам. Вы когда-нибудь задавались вопросом, почему некоторые программы находятся в папке /bin, или /sbin, /usr/sbin, /usr/local/bin, в чем разница между этими каталогами?
Например, программа less, находится в каталоге /usr/bin, но почему не в /sbin или /usr/sbin. А такие программы, как ifconfig или fdisk находятся в каталоге /sbin и нигде иначе. В этой статье будет полностью рассмотрена структура файловой системы Linux, после ее прочтения вы сможете понять смысл использования большинства папок в корневом каталоге Linux.
Это главный каталог в системе Linux. По сути, это и есть файловая система Linux. Здесь нет дисков или чего-то подобного, как в Windows. Вместо этого, адреса всех файлов начинаются с корня, а дополнительные разделы, флешки или оптические диски подключаются в папки корневого каталога.
Только пользователь root имеет право читать и изменять файлы в этом каталоге. Обратите внимание, что у пользователя root домашний каталог /root, но не сам /.
Этот каталог содержит исполняемые файлы. Здесь расположены программы, которые можно использовать в однопользовательском режиме или режиме восстановления. Одним словом, те утилиты, которые могут использоваться пока еще не подключен каталог /usr/. Это такие общие команды, как cat, ls, tail, ps и т д.
Так же как и /bin, содержит двоичные исполняемые файлы, которые доступны на ранних этапах загрузки, когда не примонтирован каталог /usr. Но здесь находятся программы, которые можно выполнять только с правами суперпользователя. Это разные утилиты для обслуживания системы. Например, iptables, reboot, fdisk, ifconfig,swapon и т д.
Это тоже необычная файловая система, а подсистема, динамически создаваемая ядром. Здесь содержится вся информация о запущенных процессах в реальном времени. По сути, это псевдофайловая система, содержащая подробную информацию о каждом процессе, его Pid, имя исполняемого файла, параметры запуска, доступ к оперативной памяти и так далее. Также здесь можно найти информацию об использовании системных ресурсов, например, /proc/cpuinfo, /proc/meminfo или /proc/uptime. Кроме файлов в этом каталоге есть большая структура папок linux, из которых можно узнать достаточно много информации о системе.
Название каталога /var говорит само за себя, он должен содержать файлы, которые часто изменяются. Размер этих файлов постоянно увеличивается. Здесь содержатся файлы системных журналов, различные кеши, базы данных и так далее. Дальше рассмотрим назначение каталогов Linux в папке /var/.
В эту папку почтовый сервер складывает все полученные или отправленные электронные письма, здесь же могут находиться его логи и файлы конфигурации.
Изначально, эта папка отвечала за очереди печати на принтере и работу набора программ cups.
Здесь находятся файлы блокировок. Эти файлы означают, что определенный ресурс, файл или устройство занят и не может быть использован другим процессом. Apt-get, например, блокирует свою базу данных, чтобы другие программы не могли ее использовать, пока программа с ней работает.
Содержит файлы с PID процессов, которые могут быть использованы, для взаимодействия между программами. В отличие от каталога /run данные сохраняются после перезагрузки.
В этом каталоге содержатся временные файлы, созданные системой, любыми программами или пользователями. Все пользователи имеют право записи в эту директорию.
Файлы удаляются при каждой перезагрузке. Аналогом Windows является папка Windows\Temp, здесь тоже хранятся все временные файлы.
Это самый большой каталог с большим количеством функций. Тут наиболее большая структура каталогов Linux. Здесь находятся исполняемые файлы, исходники программ, различные ресурсы приложений, картинки, музыку и документацию.
Содержит исполняемые файлы различных программ, которые не нужны на первых этапах загрузки системы, например, музыкальные плееры, графические редакторы, браузеры и так далее.
/usr/sbin/
Содержит двоичные файлы программ для системного администрирования, которые нужно выполнять с правами суперпользователя. Например, таких как Gparted, sshd, useradd, userdel и т д.
Содержит библиотеки для программ из /usr/bin или /usr/sbin.
Содержит файлы программ, библиотек, и настроек созданные пользователем. Например, здесь могут храниться программы собранные и установленные из исходников и скрипты, написанные вручную.
В этой папке хранятся домашние каталоги всех пользователей. В них они могут хранить свои личные файлы, настройки программ и т д. Например, /home/sergiy и т д. Если сравнивать с Windows, то это ваша папка пользователя на диске C, но в отличии от WIndows, home как правило размещается на отдельном разделе, поэтому при переустановке системы все ваши данные и настройки программ сохранятся.
Содержит все файлы, связанные с загрузчиком системы. Это ядро vmlinuz, образ initrd, а также файлы загрузчика, находящие в каталоге /boot/grub.
Содержит файлы системных библиотек, которые используются исполняемыми файлами в каталогах /bin и /sbin.
Библиотеки имеют имена файлов с расширением *.so и начинаются с префикса lib*. Например, libncurses.so.5.7. Папка /lib64 в 64 битных системах содержит 64 битные версии библиотек из /lib. Эту папку можно сравнить с WIndows\system32, там тоже сгружены все библиотеки системы, только там они лежат смешанные с исполняемыми файлами, а здесь все отдельно.
В эту папку устанавливаются проприетарные программы, игры или драйвера. Это программы созданные в виде отдельных исполняемых файлов самими производителями. Такие программы устанавливаются в под-каталоги /opt/, они очень похожи на программы Windows, все исполняемые файлы, библиотеки и файлы конфигурации находятся в одной папке.
В этот каталог системные администраторы могут монтировать внешние или дополнительные файловые системы.
В этом каталоге содержатся файлы серверов и сервисов. Например, могут содержаться файлы веб-сервера apache.
Еще один каталог, содержащий PID файлы процессов, похожий на /var/run, но в отличие от него, он размещен в TMPFS, а поэтому после перезагрузки все файлы теряются.
Выводы
Фундаментальные основы Linux. Часть II: Первые шаги в изучении интерфейса командной строки
Глава 9. Дерево директорий Linux
Стандарт иерархии файловой системы
Страница руководства man hier
Корневая директория /
Директории для хранения бинарных файлов
Другие директории /bin
Директория /sbin содержит бинарные файлы, предназначенные для настройки операционной системы. Многие из бинарных файлов для настройки системы требуют наличия привилегий пользователя root для выполнения определенных задач.
Директории /lib32 и /lib64
Директории для хранения файлов конфигурации
В директории /etc также можно обнаружить большое количество других важных файлов.
Файл /etc/sysconfig/harddisks содержит дополнительные параметры настройки жестких дисков. Формат файла описан в самом файле.
Файлы для настройки сетевых устройств из данной директории будут обсуждаться в главе, посвященной настройке сети.
Директории для хранения данных
Директория /mnt должна быть пустой и использоваться исключительно для создания временных точек монтирования файловых систем (в соответствии со спецификацией FHS).
Администраторы систем Unix и Linux обычно создают в данной директории множество поддиректорий, таких, как /mnt/something/. Вы, скорее всего, столкнетесь с системами с более чем одной директорией, созданной и/или смонтированной в рамках директории /mnt для работы с различными локальными и удаленными файловыми системами.
Директории в оперативной памяти
Файлы устройств из директории /dev выглядят как обычные файлы, но на самом деле не являются обычными файлами, размещенными на жестком диске. Директория /dev заполняется файлами в процессе определения устройств средствами ядра операционной системы.
Стандартные физические устройства
Помимо представления физических устройств, некоторые файлы устройств выполняют специальные функции. Эти специальные файлы устройств могут оказаться очень полезными.
Файлы устройств /dev/tty и /dev/pts
К примеру, файл устройства /dev/tty1 представляет терминал или консоль, соединенную с системой. (Не стоит ломать голову над точными значениями терминов ‘терминал’ или ‘консоль’, так как в данном случае имеется в виду интерфейс командной строки системы.) При вводе команд в эмуляторе терминала, поставляемом в составе такого графического окружения рабочего стола, как Gnome или KDE, ваш терминал будет представлен файлом устройства /dev/pts/1 (вместо числа 1 может использоваться другое число).
Файл устройства /dev/null
Директория /proc и взаимодействие с ядром ОС
Большая часть файлов из директории /proc предназначена исключительно для чтения, причем для чтения некоторых из них требуются привилегии пользователя root; в некоторые файлы могут записываться данные, причем в директории /proc/sys таких файлов большинство. Давайте поговорим о некоторых файлах из директории /proc.
Директория /sys для работы с системой горячего подключения устройств ядра Linux 2.6
Директория /sys была создана в процессе разработки версии 2.6 ядра Linux. С момента выпуска версии 2.6 ядро Linux использует файловую систему sysfs для реализации механизма горячего подключения устройств, использующих шины usb и IEEE 1394 ( FireWire ). Обратитесь к страницам руководств udev(8) (данная подсистема пришла на смену подсистеме devfs ) и hotplug(8) для получения дополнительной информации (или посетите ресурс http://linux-hotplug.sourceforge.net/).
По существу, директория /sys содержит файлы с информацией об используемом аппаратном обеспечении.
Директория системных ресурсов Unix /usr
Директория для изменяемых данных /var
Директория /var/lib содержит файлы с данными состояния приложений.
Другие директории /var/.
Практическое задание: дерево директорий Linux
2. Каков общий объем файлов ядра Linux (vmlinu*) в директории /boot?
/test. После этого выполните следующие команды:
Утилита dd осуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла /dev/zero в файл
Утилита dd осуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла /dev/random в файл
Корректная процедура выполнения практического задания: дерево директорий Linux
2. Каков общий объем файлов ядра Linux (vmlinu*) в директории /boot?
/test. После этого выполните следующие команды:
Утилита dd осуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла /dev/zero в файл
Утилита dd осуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла /dev/random в файл
Файл /dev/random выступает в качестве генератора случайных чисел вашей машины, работающей под управлением Linux.
Данные всегда записываются на блочные устройства (или читаются с них) блоками. В случае жестких дисков размер блоков обычно равен 512 байтам. Символьные устройства работают как источники или приемники потоков символов (или байт). Мышь и клавиатура являются типичными символьными устройствами.
Данный файл должен содержать как минимум одну строку с названием модели центрального процессора производства компании Intel или какой-либо другой компании.
Размер файла равен нулю байт, но при этом файл содержит данные. Он не хранится где-либо на диске, так как в директорию /proc монтируется виртуальная файловая система, которая позволяет взаимодействовать с ядром ОС. (Ответ «файл хранится в оперативной памяти» также является верным. )
Попытайтесь выполнить команду «cd /root». Директория /root не доступна для чтения обычными пользователями в большинстве современных дистрибутивов Linux.
Да. Так как данные бинарные файлы должны использоваться исключительно системными администраторами.
По обоим путям расположены директории.




