Что такое директория в линукс

Что такое директория в линукс

Файловая концепция 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.

Да. Так как данные бинарные файлы должны использоваться исключительно системными администраторами.

По обоим путям расположены директории.

Источник

Информационный сайт