Usr share что это

Основы Linux от основателя Gentoo. Часть 2 (2/5): Назначения папок, поиск файлов

В данном отрывке рассказано о стандарте иерархии файловой системы (FHS), почему директории так называются и для чего они нужны. Упомянута переменная окружения PATH и разобраны основные команды для поиска файлов в системе, такие как whereis, find и locate (slocate).

Usr share что это. Смотреть фото Usr share что это. Смотреть картинку Usr share что это. Картинка про Usr share что это. Фото Usr share что это

Навигация по основам Linux от основателя Gentoo:
Часть I
Часть II

FHS и поиск файлов

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

Стандарт иерархии файловой системы (Filesystem Hierarchy Standard или сокр. FHS) — это документ который определяет схему директорий в Linux-системах. FHS разработан чтобы представить общую схему для упрощения независимой от дистрибутива разработки программного обеспечения, поскольку так все необходимое располагается одинаково в большинстве дистрибутивов. FHS определяет следующее дерево директорий (взято непосредственно из спецификации):

Две независимые классификации в FHS

Спецификация FHS основывается на идее существования двух независимых классификаций файлов: разделяемые и неразделяемые, а также изменяемые и статичные. Разделяемые данные могут распределятся на несколько хостов; неразделяемые специфичны для конкретного хоста (как, например, конфигурационные файлы). Изменяемые данные могут изменяться; статичные не изменяются (за исключением установки и обслуживания системы).

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

Вторичная иерархия в /usr

Внутри /usr вы обнаружите вторичную иерархию, которая выглядит очень похоже на корневую файловую систему. Для /usr не критично существование во время включения машины, она может быть общим сетевым ресурсом (разделяема) или примонтирована с CD-ROM (статична). Большинство конфигурация Linux не используют «разделяемость» /usr, но ценно понимать полезность отличия между основной иерархией в корневой директории и вторичной иерархией в /usr.

Это все, что мы расскажем о стандарте иерархии файловой системы. Сам по себе документ довольно читабелен и вам стоит на него взглянуть. После его прочтения вы будете гораздо лучше понимать файловую систему Linux. Найти спецификацию можно здесь: http://www.pathname.com/fhs/.

Поиск файлов

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

Когда вы запускаете программу из командной строки, bash начинает просматривать список директорий в поисках программы которую вы указали. Например, когда вы вводите ls, bash в действительности не знает, что программа ls находится в /usr/bin. Вместо этого, он ссылается на переменную окружения называемую PATH, которая содержит список директорий разделенных двоеточием. Мы можем проверить значение PATH:

С таким значением PATH (у вас оно может быть другим) bash сначала проверит директорию /usr/local/bin, затем /usr/bin в поисках программы ls. Скорее всего, ls находится в /usr/bin, тогда на этой директории bash прекратит поиск.

Изменение PATH

Вы можете расширять переменную PATH, присваивая ей новое значение в командой строке:

Чтобы сделать ваши изменения PATH доступными для процессов, которые будут запускаться в командной оболочке, необходимо «экспортировать» их используя команду export:

О команде «which»

Вы можете проверить, есть ли конкретная программа в вашем PATH используя which. В следующем примере мы видим, в каталогах PATH нашей системы, программы с названием sense нет:

$ which sense
which: no sense in (/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin)

В этом примере, ls успешно находится:

whereis

Если вам необходимо больше информации о программе, чем просто ее расположение, вы можете воспользоваться командой whereis:

$ whereis ls
ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz

Здесь мы видим что ls находится в двух каталогах с общими исполняемыми файлами, /bin и /usr/bin. Кроме того, нам сообщили что есть документация, которая находится в /usr/share/man. Это man-страница которую вы увидите, если введете man ls.

Программа whereis может использоваться для поиска расположения исходников и нестандартного поиска (имеется ввиду возможность искать файлы для которых отсутствуют маны, исходники или бинарники — прим. пер.). Также ей можно указать альтернативные пути для поиска. Обратитесь к man-странице для получения дополнительной информации.

Команда find это другой удобный инструмент в вашем арсенале. Используя find вы не ограничены лишь поиском программ; вы можете искать любые типы файлов, используя различные критерии поиска. Например, поищем в директории /usr/share/doc, файл который называется README:

find и шаблоны

Игнорирование регистра в find

Конечно, вы можете игнорировать регистр при поиске:

find и регулярные выражения

find и типы файлов

find и mtimes

$ date
Tue Jan 7 18:14:52 EST 2003

Вы можете найти файлы, которые были модифицированы за последние 24 часа:

Или файлы которые были изменены до текущего 24-часового периода:

Например, для поиска обычного файла в /usr/bin размер которого меньше 50 байт:

Работа с найдеными файлами

Как видите, find это очень мощная команда. Она «выросла» за годы разработки UNIX и Linux. У find существует много других полезных опций. Вы можете прочитать о них в man-страничке.

locate

Мы уже рассмотрели which, whereis и find. Как вы уже наверно заметили, выполнение find может занять некоторое время, т.к. ей необходимо прочитать каждую директорию в которой выполняется поиск. Оказывается, что команда locate может ускорить процесс использую внешнюю базу данных, генерируемую updatedb (updatedb мы рассмотрим ниже).

Команда locate ищет совпадения любой части пути, а не только самого файла. Пример:

$ locate bin/ls
/var/ftp/bin/ls
/bin/ls
/sbin/lsmod
/sbin/lspci
/usr/bin/lsattr
/usr/bin/lspgpot
/usr/sbin/lsof

Использование updatedb

Во многих Linux системах есть «cron job» для периодического обновления базы. В случае если вызов locate вернул нижеописанную ошибку, вам необходимо запустить updatedb от root’а для генерации поисковой базы:

Работа программы updatedb может занять некоторое время. Если у вас шумный жесткий диск, вы услышите как он шуршит индексируя файловую систему. 🙂

slocate

Во многих Linux дистрибутивах, утилита locate была заменена на slocate. Как правило существует также ссылка на locate, так что вам не нужно запоминать, что именно имеется в системе. slocate означает «безопасный locate» (от англ. secure locate — прим. пер.). Он сохраняет информацию о правах доступа в поисковой базе, так что, обычные пользователи не смогут увидеть директории, которые они и так не смогли бы видеть. Используется slocate точно также как locate, но вывод программы может быть различными в зависимости от пользователя ее запустившего.

Перевод выполнил Dmitry Minsky (Dmitry.Minsky@gmail.com)

Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Источник

Основы Linux от основателя Gentoo. Часть 3 (1/4): Документация

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

Usr share что это. Смотреть фото Usr share что это. Смотреть картинку Usr share что это. Картинка про Usr share что это. Фото Usr share что это

Навигация по основам Linux от основателя Gentoo:
Часть I: 1, 2, 3, 4
Часть II: 1, 2, 3, 4, 5
Часть III

Предисловие

Об этом руководстве

Встречайте «Администрирование для продолжающих», третье из четырех пособий, созданных для подготовки к экзамену «Linux Professional Institute’s 101» (2-ая редакция). Данная часть идеальна для тех, кто хочет улучшить свои знания фундаментальных основ администрирования Linux. Мы охватим ряд тем, включая системную и интернет документацию, модель прав доступа в Linux, управление аккаунтами пользователей и настройку окружения входа в систему.

Если вы новичок в Linux, рекомендуем начать с Частей 1 и 2. Для некоторых большая часть информации, изложенной в самоучителе, будет новой, но более опытные пользователи могут использовать его для того, чтобы отточить свои навыки администрирования Linux.

В конце серии этих руководств (всего их восемь, подготавливающих к экзаменам LPI 101 и 102) у вас будут все знания, необходимые для того, чтобы стать системным администратором Linux систем, а так-же вы будете готовы к получению сертификата LPIC уровня 1 от института Linux Professional.

Системная и сетевая документация

Типы системной документации в Linux

Существует три основных источника документации в Linux системах: страницы руководств (маны), info-страницы и поставляемая с приложениями документация в /usr/share/doc. В этом разделе мы рассмотрим каждый из этих источников, перед тем, как обращаться во внешний мир за дополнительной информацией.

Страницы руководств

Страницы руководств, или “man (от англ. manual — руководство) страницы”, ман-страницы, далее просто маны — это классическая форма справочной документации UNIX и Linux. В идеале, вы можете найти ман для любой команды, конфигурационного файла или библиотеки. Однако, на практике, Linux это бесплатное программное обеспечение и некоторые страницы руководств не были написаны или устарели. Тем не менее, маны остаются первым местом, куда следует обращаться за помощью.

Для доступа к ману просто введите man, а затем ваш запрос. Запустится программа-пейджер (просмотрщик, обычно less или more) со справочной информацией. Для того, чтобы закрыть её, нажмите клавишу q. Например, чтобы посмотреть информацию о команде ls, введите:

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

NAME (ИМЯ)Имя и однострочное описание команды
SYNOPSIS (ОБЗОР)Краткий обзор
DESCRIPTION (ОПИСАНИЕ)Углублённое описание функционала команды
EXAMPLES (ПРИМЕРЫ)Советы по использованию
SEE ALSO (СМОТРИ ТАКЖЕ)Связаные темы (обычно также ман-страницы)

Секции ман-страниц

Файлы, содержащие информацию манов хранятся в /usr/share/man (или в /usr/man на некоторых старых системах). В этой директории вы найдёте страницы руководств, упорядоченные по следующим секциям:

man1Пользовательские программы
man2Системные вызовы
man3Библиотечные функции
man4Специальные файлы
man5Форматы файлов
man6Игры
man7Другое

Многочисленные ман-страницы

Некоторые темы существуют более чем в одной секции. Для демонстрации этого воспользуюемся командой whatis, показывающей доступные маны по теме:

В данном случае, man printf по-умолчанию обратится к странице в секции 1 (Пользовательские программы). Если мы пишем программу на языке C, нас вероятно больше интересует страница из секции 3 (Библиотечные функции). Вы можете вызывать ман необходимой секции указав это в командной строке, так для вызова printf(3) мы введём:

Поиск нужного мана

Всё об “apropos”

Для более подробной информации о команде «man» и её друзьях, вам стоит начать с изучения её собственной ман-страницы:

MANPATH

По умолчанию, программа man будет искать ман-страницы в /usr/share/man, /usr/local/man, /usr/X11R6/man, и быть может в /opt/man. Возможно, вы захотите добавить новый пункт в этом пути поиска. Для этого, просто откройте /etc/man.conf в текстовом редакторе и добавьте строчку вроде такой:

С этого момента, страницы руководств в директориях /opt/man/man* также будут найдены. Помните, что вам необходимо запустить makewhatis, чтобы добавить новые маны в базу whatis.

GNU info

Одно из ограничений страниц руководств это то, что они не поддерживают гипертекст, так что у вас не получится просто переходить от одного руководства к другому. Ребята из GNU увидели этот недостаток и ввели другой формат документации: инфо-страницы. Многие из программ GNU идут с расширенной документацией в формате инфо-страниц. Вы можете приступить к чтению инфо-страниц при помощи комманды «info»:

Простой вызов команды info даст список доступных инфо-страниц в вашей системе. Вы можете перемещаться по нему используя стрелки, переходить по ссылкам (которые обозначены звездочкой) с помощью клавиши Enter и выйти нажав q. Навигация основана на таковой в Emacs, так что если вы знакомы с этим редактором, вам будет легко освоиться. Чтобы познакомиться с Emacs, посмотрите руководство на developerWorks: Living in Emacs.

Вы также можете указать нужную инфо-страницы в командной строке:

Чтобы получить больше информации об использовании просмотрщика инфо-страниц, попробуйте прочитать его собственную инфо-страницу. Вы сможете перемещаться по документу просто используя несколько клавиш о которых я уже упоминал:

/usr/share/doc

Есть еще один источник помощи в вашей системе Linux. Большинство программ поставляются с дополнительной документацией в других форматах, таких как: простые текстовые файлы, PDF, PostScript, HTML. Посмотрите в каталоге usr/share/doc (или /usr/doc на более старых системах). Вы найдете длинный список директорий, каждая из которых идет с определенным приложением на вашей системе. Поиск по этой документации может навести вас на очень ценную информацию, которая не доступна в манах или инфо-страницах, такую как учебники или дополнительная технической документация. Беглый взгляд указывает на то, что здесь очень много материала для чтения:

Фьюу! Вашим домашним заданием на этот вечер будет прочитать всего лишь половину (3791) этих документов. Учтите, завтра будет опрос. 😉

Linux Documentation Project

В дополнение к системной документации, в интернете существует ряд отличных ресурсов посвященных Linux. «Linux Documentation Project» (LDP) — это группа добровольцев, которые занимаются составлением полного набора свободной документации по Linux. Данный проект существует чтобы собрать различные части документации по Linux в определенным месте, где её будет легко искать и использовать.

Обзор LDP

LDP состоит из следующих разделов:

Если вы не уверены какой раздел смотреть, вы можете воспользоваться богатыми возможностями поиска, который позволит найти всё, что есть по теме.

LDP в добавок предоставляет доступ к списку ссылок и ресурсов, таких как Linux Gazette и Linux Weekly News, а также к спискам рассылки и архивам новостей.

Списки рассылки

Списки рассылки являются, вероятно, самым важным средством взаимодействия разработчиков Linux. Зачастую проекты разрабатываются участниками живущими на большом расстоянии друг от друга, возможно даже на противоположных сторонах земного шара. Списки рассылки представляют метод взаимодействия, в котором каждый разработчик проекта может связаться со всеми остальными и вместе дискутировать посредством электронной почты. Один из самых известных списков рассылки разработчиков, это Linux Kernel Mailing List (список рассылки ядра Linux).

Еще о списках рассылки

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

Если вы уделили время чтобы прочитать LKML FAQ по ссылке выше, то возможно заметили, что подписчики на списки рассылок часто недружелюбно относятся к вопросам, которые часто повторяются. Всегда разумно поискать в архивах рассылки перед тем, как задавать свой вопрос. Есть шансы, что это сэкономит и ваше время тоже!

Группы новостей

Новостные группы (англ. newsgroups) в интернете похожи на списки рассылки, но основаны на другом протоколе, который называется NNTP (Network News Transfer Protocol, что в переводе «Сетевой протокол передачи новостей»), а не на обмене электронной почтой. Чтобы иметь возможность общаться, вам придется установить NTTP-клиент, например slrn или pan. Основным преимуществом является тот факт, что вы можете принять участие в дискуссии, когда вам это нужно, а не постоянно смотреть как она ломится в ваш почтовый ящик 🙂

Наибольший интерес представляют новостные группы начинающиеся с comp.os.linux. Посмотреть список групп вы можете на сайте LDP.

Сайты поставщиков и прочие

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

Поставщики аппаратного и программного обеспечения

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

Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Структура директорий Linux. Важные файлы Linux

Особенности организации файлов в Linux

В Linux файловая система организована иначе чем в Windows.

Первое, что бросается в глаза, нет дисков C, D, E и так далее.

Второе, про что часто говорят, но не совсем просто осознать — всё в Linux является файлами. То есть сами файлы, очевидно, являются файлами; директории также являются файлом особого вида; физические устройства (диски, клавиатура, мышь и т. д. — это всё тоже файлы) и даже сетевые соединения — это тоже файлы.

Третье — в Linux есть root. Имеется ввиду корень файловой системы, который обозначается как «/». Ещё в Linux есть главный пользователь, имя которого тоже root — не нужно путаться, это довольно разные вещи. Кстати, ведь ещё есть и директория с именем /root. Говоря про корень файловой системы, имеется ввиду «/», а не «/root».

Где в Linux диски C, D, E?

Допустим имя диска /dev/hdc, что можно сказать о нём? Можно утверждать, что это жёсткий диск и он третий в системе.

Диски могут иметь и другие имена, например, у меня системный диск называется /dev/nvme0n1 — я погуглил, оказывается это новый вид твердотельных дисков NVM Express (NVMe).

Итак, мы уже нашли диск C? Не совсем. Имя /dev/sda это всего лишь обозначение устройства, которое предполагает использование имени для управления самим устройством. Например, если мы хотим создать новый раздел на диске или изменить размеры существующих, то мы откроем соответствующую программу, и в качестве параметра передадим ей имя диска, с которым хотим работать. Мы не можем открывать файлы обращаясь к диску по имени вида /dev/*

Монтирование дисков в Linux

В Linux есть такое понятие как «монтирование» диска. Чтобы получить доступ к файлам на этом диске, его нужно сначала смонтировать. Может возникнуть вопрос, зачем такие сложности? Я и сам так думал, т. к. во времена моего первого знакомства с Linux это мне казалось чем-то излишним и запутанным. Но монтирование это мощнейшая вещь, которая позволяет поразительно гибко настроить файловую систему!

Суть монтирования в том, что в файловой системе создаётся новая директория (обычная папка), допустим, это папка /mnt/disk_d. А затем командой mount указывается, что теперь, например, диск /dev/sda смонтирован в директорию /mnt/disk_d. После этого можно получить доступ к файлам диска /dev/sda открыв папку /mnt/disk_d в любом менеджере файлов:

Usr share что это. Смотреть фото Usr share что это. Смотреть картинку Usr share что это. Картинка про Usr share что это. Фото Usr share что это

Зачем нужно монтирование

С помощью такого подхода — когда любой диск может быть любой папкой в системе, можно делать очень гибкую настройку. Самый частый пример, встречающийся на практике: файлы пользователя хранятся в папке /home/имя_пользователя/, например, у меня это папка /home/mial/. При установке операционной системы я могу сделать так, что мой второй или третий диск (а не системный) будет смонтирован в точку /home/mial/. То есть вся операционная система будет располагаться на одном диске, а все мои пользовательские файлы — на другом. Что это даёт? В случае переустановки системы, я вновь настрою монтирование диска с моими файлами в папку /home/mial/ и в результате в новой, только что установленной системе, уже будут на месте все мои документы, фотографии и прочее!

Поскольку часто узким местом в мощных компьютерах является скорость чтения с диска, то на на серверах с высокой нагрузкой практикуется перенос файлов баз данных (например, /var/lib/mysql/ на другой диск), возможен перенос файлов сервера (/srv/http/) на третий диск, файлов логов (/var/log/httpd/) на ещё один диск и т. д. Это позволяет добиться того, что данные из баз данных считываются независимо от записи журналов, то есть пока выполняются операции чтения-записи для одного процесса, другому процессу не нужно ждать своей очереди — всё выполняется одновременно.

В общем, несмотря на то, что монтирование является чем-то непривычным для пользователей Windows, это потрясающая функция! Причём ничего сложного в этом нет, если понять суть.

Что такое корень файловой системы?

Понятно, что корень файловой системы — это главная директория, в которой находятся все другие. Но что это в физическом смысле? Как я уже сказал, диски могут монтироваться в самые разные места файловой системы, сменные носители и постоянные диски довольно часто монтируются в /mnt/ или в /media/, так как они специально предназначены для этого (это понятно даже из названия). Так вот, корневая файловая система — эта та точка, куда смонтирован системный диск. Можно сказать, что корень файловой системы Linux, это как примерно диск C в Windows. Другие диски, вместо присвоения им букв D, E, F и пр., монтируются ниже по иерархии в какие-то указанные для них точки файловой системы.

О командах для перемещения по директориям файловой системы смотрите «Азы работы в командной строке Linux (часть 1)».

Описание директорий Linux

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

Чтобы посмотреть, какие директории есть в корне файловой системы, можно выполнить команду:

Usr share что это. Смотреть фото Usr share что это. Смотреть картинку Usr share что это. Картинка про Usr share что это. Фото Usr share что это

Давайте рассмотрим значение и содержимое каждой папки в Linux.

/bin : Все исполнимые бинарные программы (файлы) необходимые во время загрузки, восстановления и ремонта системы; файлы, необходимые для запуска в однопользовательском режиме и другие важные, основные команды, такие как cat, du, df, tar, rpm, wc, history, и др. В настоящее время обычно представляет собой ссылку на директорию /usr/bin, то есть фактически исполнимые файлы находятся в папке /usr/bin.

/boot : Содержит важные файлы для процесса загрузки, включая ядро Linux. В современных системах при установке обычно на главном диске создаётся небольшой раздел, который затем монтируется в директорию /boot

/dev : Содержит файлы устройств для всех физических устройств на данной машине, например, cdrom, cpu и т. д. Как мы уже знаем, здесь же размещены файлы дисков — на случай, если понадобится смонтировать новый диск или сменный носитель.

/dev/disk — содержит 4 поддиректории: by-id, by-partuuid, by-path и by-uuid. В которых перечислены уникальные идентификаторы дисков и разделов устройств хранения по которым также можно обращаться к дискам, например, в файле /etc/fstab. Подробности смотрите в статье «Постоянные имена для блочных устройств».

/dev/nvme* — устройства NVM Express (NVMe), например, /dev/nvme0n1. Это разновидности SSD дисков

/dev/null — своеобразная чёрная дыра. Если запущенная программа выводит какую-то информацию, но она вам не нужна, то вы можете перенаправить её в /dev/null, и она исчезнет без вывода на экран

/dev/random — является источником случайных чисел (например, чтобы заполнить ими диск для надёжного удаления данных)

/dev/sdX — блочные устройства к которым относятся внутренние диски, USB флешки и диски, а также карты памяти. В именах вместо X используются буквы a, b, c и так далее, например /dev/sda и /dev/sdb

/dev/stderr, /dev/stdin и /dev/stdout — стандартный вывод ошибок, стандартный ввод и стандартный вывод соответственно. Если программа не поддерживает стандартный ввод, то для обхода можно использовать /dev/stdin, это нужно указать вместо имени файла. Если программа поддерживает только сохранение результатов в файл, но не поддерживает стандартный вывод, то можно в качестве имени файла указать /dev/stdout и результаты будут выведены в стандартный вывод (на экран) вместо сохранения в файл.

/dev/zero — возвращает бесконечные нули (иногда нужно)

/etc : Содержит файлы конфигурации приложений, а также файлы управления службами Systemd.

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

Рассмотрим только некоторые из них, с которыми приходится сталкиваться чаще, чем с другими.

/etc/crypttab— аналог /etc/fstab для зашифрованных дисков, то есть содержит конфигурацию для зашифрованных блочных устройств

/etc/fstab — статичная информация о файловой системе. В этом файле содержится информация для автоматического монтирования дисков при загрузке компьютера.

Посмотрим на мой файл

Из этого файла следует, что раздел /dev/nvme0n1p1 (в данном случае диски обозначаются по их UUID) монтируется в /boot, раздел /dev/nvme0n1p2 монтируется в / (корень файловой системы), диск /dev/sda (он не разделён на разделы) монтируется в /mnt/disk. И ещё есть файл /swapfile, который выполняет роль свопа (файла подкачки).

/etc/anacrontab — одно из расположений периодически запускаемых задач cron

/etc/bashrc — глобальный скрипт запуска

/etc/cron.hourly/ — одно из расположений периодически запускаемых задач cron

/etc/cron.daily/ — одно из расположений периодически запускаемых задач cron

/etc/cron.weekly/ — одно из расположений периодически запускаемых задач cron

/etc/cron.monthly/ — одно из расположений периодически запускаемых задач cron

/etc/cron.d/ — одно из расположений периодически запускаемых задач cron

/etc/group — группы пользователей

/etc/host.conf — файл настройки для resolver

/etc/resolv.conf — ещё один файл настройки для resolver, содержит список DNS серверов, к которым должна обращаться система

Пример содержимого файла /etc/resolv.conf:

/etc/hosts — файл с информацией об IP адресах указанных хостов. Подробности смотрите в статье «Как настроить локальный DNS используя файл /etc/hosts в Linux».

/etc/mtab — динамическая информация о файловых системах

/etc/passwd — раньше этот файл хранил информацию о паролях пользователей, но теперь здесь просто список пользователей и информация об их оболочке

/etc/shadow — в этом файле хранятся хеши паролей пользователей

/etc/profile — общесистемный файл инициализации для входа в оболочку (сюда можно прописать переменные среды или функции, которые должны быть доступны для каждого пользователя в терминале после загрузки компьютера)

/etc/profile.d/* — директория, содержащая глобальные скрипты запуска

/etc/protocols — список IP протоколов

/etc/services — имена портов для сетевых служб

/etc/my.cnf — файл конфигурации MySQL/MariaDB (содержит отсылку на /etc/my.cnf.d)

/etc/my.cnf.d/ — директория, в которой фактически располагаются конфигурации MySQL/MariaDB

/etc/my.cnf.d/client.cnf — конфигурация клиента MySQL/MariaDB

/etc/my.cnf.d/server.cnf — конфигурация сервера MySQL/MariaDB

/etc/apache2/ — директория с настройками веб-сервера (когда служба называется apache2 — то есть в таких системах как Debian и производных)

/etc/apache2/conf/httpd.conf — главный конфигурационный файл Apache

/etc/apache2/conf/sites-enabled/ — включённые виртуальные хосты Apache

/etc/httpd/ — директория с настройками веб-сервера (когда служба называется httpd — то есть в таких системах как Arch Linux и производных)

/etc/httpd/conf/httpd.conf — главный конфигурационный файл Apache

/etc/httpd/conf/sites-enabled/ — включённые виртуальные хосты Apache

/etc/php/php.ini — главный конфигурационный файл PHP

/etc/systemd/ — директория с файлами Systemd. Подробности смотрите в статье «Как использовать Systemctl для управления службами Systemd и юнитами».

/etc/NetworkManager/system-connections/ — подключения к сети, которые настроены через NetworkManager.

/etc/openvpn — папки и файлы с настройками и сертификатами OpenVPN

/etc/ssh/ — конфигурационные файлы и ключи SSH

/etc/ssh/ssh_config — конфигурационный файл клиента SSH

/etc/ssh/sshd_config — конфигурационный файл сервера SSH

/etc/ssh/ssh_host_* (/etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_dsa_key.pub и другие) — SSH ключи

/etc/easy-rsa — здесь могут находиться файлы и сертификаты CA (Центра авторизации)

/home : домашний каталог пользователей. Каждый раз, когда создаётся новый пользователь, в домашнем каталоге создаётся каталог в соответствии с именем пользователя (например, для пользователя mial это будет /home/mial/), который содержит другие каталоги, такие как Рабочий стол (Desktop), Загрузки (Downloads), Документы (Documents) и т. д.

Исключением является только пользователь root, его файлы хранятся в директории /root (об этом ниже).

В некоторых дистрибутивах путь

/bin (то есть папка bin в домашней директории пользователя), добавлены в системную переменную $PATH. Это означает, что если поместить в эту папку файл, то он будет доступен в консоли по имени файла (не нужно указывать полный путь).

/.bashrc — специфичный для пользователя скрипт запуска

/.bash_login — специфичный для пользователя скрипт запуска

/.bash_profile — специфичный для пользователя скрипт запуска

/.profile — специфичный для пользователя скрипт запуска

/.bash_history — история команд, введённых пользователем

/.ssh/ — ключи и другие файлы клиента SSH

Аналогичные файлы также содержатся в директории /root/.

/lib : Каталог lib содержит модули ядра и образы общих библиотек, необходимые для загрузки системы и запуска команд в корневой файловой системе.

/lost+found : Этот каталог создаётся во время установки Linux, полезен для восстановления файлов, которые могут быть повреждены из-за неожиданного завершения работы. Если программа для поиска ошибок в файловой системе выявила проблема (например, нашла повреждённые файлы), то эти файлы будут перемещены в этот каталог.

/media : Точки монтирования для съёмных носителей, таких как CD-ROM (появились в FHS-2.3).

/mnt : Каталог монтирования для временного монтирования файловых систем (внешних дисков, USB накопителей и т.д.).

/opt : Аббревиатура от слова «опциональный», то есть необязательный. Содержит стороннее программное обеспечение, такое как Java, cuda, dropbox, metasploit, viber, vuze и т.д.

/proc : Виртуальная и псевдо-файловая система, которая содержит информацию о запущенных процессах и настройках ядра в виде файлов. Виртуальная файловая система, предоставляющая информацию о процессах и ядре в виде файлов. В Linux соответствует монтированию procfs. Обычно автоматически генерируется и заполняется системой на лету.

Подробности и описание самых востребованных файлов и каталогов этой директории смотрите в статье «Что такое файловая система /proc в Linux».

Примеры файлов в директории /proc:

/proc/partitions – Информация о доступных в системе разделах.

/proc/stat – Записи или различные статистики хранимые с последней перезагрузки.

/proc/swaps – Информация о swap разделе.

/proc/uptime – Информация об аптайме (времени работы) (в секундах).

/root : Это домашний каталог пользователя root, и его никогда не следует путать с «/».

Домашний каталог суперпользователя (root) находится в /root, а не в /home/root, так как учётная запись суперпользователя предназначена исключительно для администрирования операционной системы. Это помогает повысить надёжность системы: /root обычно располагается на том же разделе, где и система, что позволяет производить обслуживание и настройку операционной системы, смонтировав лишь корневой раздел.

/run : Информация о системе с момента её загрузки, в том числе данные, необходимые для работы демонов (pid-файлы, UNIX-сокеты и т.д.).

/sbin : Содержит двоичные исполняемые программы, необходимые системному администратору для обслуживания: iptables, fdisk, ifconfig, swapon, reboot и т.д.

/srv : Название директории является аббревиатурой от «сервисы». Эта директория содержит файлы, имеющие отношение к сервисам. Например здесь хранят файлы такие сервисы как deluge, ftp, http.

/srv/http/ — некоторые дистрибутивы (например, Arch Linux) хранят здесь файлы веб-сервера.

/sys : Содержит информацию об устройствах, драйверах, а так же некоторых свойствах ядра.

Современные дистрибутивы Linux включают директорию /sys в качестве виртуальной файловой системы, которая хранит и позволяет модифицировать устройства, подключённые к системе.

/sys/block/ — содержит информацию о дисках

/sys/block/sda/device/model — содержит информацию о модели диска sda

/tmp : Системный временный каталог, доступный пользователям и root. Сохраняет временные файлы для пользователя и системы, которые удаляются при следующей загрузке.

/usr : Содержит исполняемые файлы, документацию, исходный код, библиотеки для программ второго уровня.

/usr/bin — дополнительные программы для всех пользователей, не являющиеся необходимыми в однопользовательском режиме.

/usr/include — стандартные заголовочные файлы (хедэры).

/usr/lib — библиотеки для программ, находящихся в /usr/bin и /usr/sbin.

/usr/local — третичная иерархия для данных, специфичных для данного хоста. Обычно содержит такие подкаталоги, как bin, lib, share.

/usr/sbin — дополнительные системные программы (такие как демоны различных сетевых сервисов).

/usr/share — архитектурно-независимые общие данные.

/usr/share/easy-rsa — здесь могут находиться файлы и сертификаты CA (Центра авторизации)

/usr/share/webapps — веб-приложения веб-сервера, например, owncloud, phpMyAdmin и др.

/usr/src — исходные коды (например, здесь располагаются исходные коды ядра).

/var : Директория для переменных данных. Содержимое файлов в этой директории, как ожидается, будет расти. Этот каталог содержит файлы журналов, lock, spool, почты и временных файлов.

/var/cache — кэш приложений. Такие данные генерируются локально в результате ресурсозатратных вычислений или операций ввода-вывода. Приложение обязано уметь регенерировать эти данные. Данные файлы могут быть удалены без потери данных.

/var/lib — информация о состоянии. Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.).

/var/lock — файлы блокировки, указывающие на занятость некоторого ресурса.

/var/log/ — содержит логи различных программ и служб

/var/log/apache2/ — логи веб-сервера Apache (в Debian и производных)

/var/log/httpd/ — логи веб-сервера Apache (в Arch Linux)

/var/log/wtmp (в некоторых системах /var/log/utmp) — файл, содержащий записи входов. Просмотреть записи можно командой «last»

/var/mail — почтовые ящики пользователей.

/var/run — каталог для хранения информации о системе с момента её загрузки, на данный момент устарел. Допускается делать его ссылкой на /run. Каталог оставлен для обратной совместимости с программами, которые всё ещё используют каталог /var/run.

/var/spool — задачи, ожидающие обработки (например, очереди печати, непрочитанные или неотправленные письма).

/var/spool/cron/ — одно из расположений периодически запускаемых задач cron

/var/spool/cron/crontabs/ — одно из расположений периодически запускаемых задач cron

/var/spool/mail — местоположение пользовательских почтовых ящиков (устаревшее).

/var/tmp — временные файлы, которые должны быть сохранены между перезагрузками.

/var/www/html/ — директория с файлами веб-сайтов веб-сервера Apache в Debian и производных дистрибутивах.

Заключение

Если я пропустил какие-то важные папки или файлы, то пишите их в комментариях!

Дополнительную информацию о директориях вы также найдёте в статье «Какие файлы можно удалить при нехватке места на диске Linux».

Связанные статьи:

Usr share что это. Смотреть фото Usr share что это. Смотреть картинку Usr share что это. Картинка про Usr share что это. Фото Usr share что это

Рекомендуется Вам:

5 комментариев to Структура директорий Linux. Важные файлы Linux

Ps Кроме упомянутого способа адресации устройства (в статье приведена адресация по имени устройства) в Linux cуществуют ещё как минимум два: адресация по ID (индификатору устройства ) Lebel (адресация по лейболу устройства) о которых автор скромно умолчал.

Приветствую! Статья не претендует ни на какую новизну или полноту описания темы. Цель статьи — ответить на простейшие вопросы, которые настолько просты, что на них никто не удосуживается ответить ни в инструкциях, ни в книгах по Linux:

— зачем при установке предлагают смонтировать домашнюю папку на другой диск?

— зачем вообще нужно монтирование дисков?

— где второй и другие диски в Linux?

— для чего каждая папка в Linux и почему их так много?

— где в Linux находится файл отвечающий за…?

На начальном этапе знакомства с Linux я был бы рад прочитать именно ответы на похожие вопросы, а не про синтаксис команды mount (какая мне разница, какой у неё синтаксис, если я не понимал для чего в принципе нужно монтирование).

Про адресацию к дискам, ну да, в директории /dev/disk/ есть ещё четыре поддиректории:

В принципе, их можно упомянуть при описании директорий. Но не стоит перенагружать новичков, которые впервые увидели /dev/sda, /dev/sdb, /dev/nvme0n1 и прочее.

Я хоть и Linux-оид, но красными глазами и предвзятостью не страдаю. Поэтому не приковыривайтесь к автору и идите википедию читайте! К вашему огромному сожалению идентификация по ID файловой системы еще задолго до Linux-а появилась. Поэтому прежде чем поучать идите вначале информацию проверяйте!
Автор нормально все написано. Побольше таких статей.

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

Я хорошо отношусь к критике, если она нормальная. Благодаря комментариям, как с вопросами, так и с критикой, некоторые статьи стали лучше. Поэтому всё нормально.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *