Видео ролики бесплатно онлайн

Смотреть украинское украинки видео

Официальный сайт zakonoproekt2010 24/7/365

Смотреть видео бесплатно

ZED 14.01.2011 19:41

НовичкуРоли различных частей дерева каталогов

После этого комментария вдруг подумал что подробное описание этого вопроса для новичков имеет большое значение. Как то сам неожиданно вспомнил, что в свое время испытывал некоторые неудобства из-за неясности где что лежит. Эта статья основана на документе Linux filesystem standard, FSSTND, версии 1.2 (который пытается установить стандарт на организацию дерева каталогов в Linux-системе)

Полное дерево каталогов разделено на части, каждая из которых может располагаться на своем диске или в своем разделе в интересах упрощения системного администрирования и резервирования. Это позволяет работать в случае недостатка места на дисках. Главные части дерева каталогов: файловые системы root, /usr, /var и /home. Каждая часть имеет свою цель. Дерево каталогов было разработано так, чтобы оно хорошо работало в сети Linux-машин, которые могут совместно использовать некоторые части файловых систем устройств только для чтения (например, CD-ROM), или сети с NFS./usr/X11R6

Корневая файловая система специфична для каждой машины (обычно она хранится на локальном диске, хотя это мог бы быть ramdisk или сетевой диск) и содержит файлы, которые являются необходимыми для загрузки системы. Содержимого корневой файловой системы достаточно для загрузки в однопользовательском режиме. Именно эта файловая система используется при загрузке до тех пор, пока не будут смонтированы другие файловые системы. Она также содержит инструментальные средства для ремонта поврежденной системы и для восстановления потерянных файлов из резервных копий.

Файловая система /usr
содержит все команды, библиотеки, man-страницы, исходные тексты и другие неизменяемые файлы, необходимые для нормальной работы системы. Никакие файлы в /usr не должны быть специфическими для любой конкретной машины, и при этом они не должны измениться при нормальном использовании. Это позволяет файлам быть разделенными по сети, что может быть практично, так как это сохраняет дисковое пространство (могут легко иметься сотни мегабайт в /usr) и упрощает администрирование (только машина, на которой хранится /usr, должна быть изменена при модификации прикладной программы, а не каждая машина отдельно). Даже если файловая система находится на локальном диске, она может быть установлена только для чтения, что уменьшит возможность искажения в случае отказа.

Файловая система /var содержит файлы, которые изменяются в ходе работы системы. Например, там лежат каталоги буферов для почты, новостей, печати и т.п., файлы протоколов, форматированных man-страниц и временные файлы.

Файловая система /home содержит все домашние каталоги пользователей системы, то есть, все реальные данные системы. Отделение пользовательских каталогов от системы упрощает резервирование данных. Если пользователей много, эта файловая система может быть разделена на несколько (например, /home/students и /home/teacher).

Хотя различные части выше были названы файловыми системами, это не значит, что они фактически находятся на отдельных дисках. Они могут храниться на одном диске, если речь идето небольшом сервере или личном однопользовательском компьютере. Дерево каталогов может быть также разделено по-другому, в зависимости от того, насколько большие диски использованы, и как распределено место на них для различных целей, тем не менее, важно, чтобы все стандартные имена работали; даже если, скажем, /var и /usr фактически на том же самом разделе, имена /usr/lib/libc.a и /var/log/messages должны работать, например, перемещая файлы из /var в /usr/var, и делая /var ссылкой на /usr/var.

Структура файловой системы в Unix группирует файлы по их назначению, то есть, все команды находятся в одном месте, все файлы данных в другом, документация в третьем и так далее. Альтернативный вариант группировал файлы согласно программе, которой они принадлежат, то есть, все Emacs-файлы были бы в одном каталоге, весь TeX в другом, и так далее. Проблема с последним подходом состоит в том, что это делает трудным совместно использовать файлы (каталог программ часто содержит статические, общие, изменяющиеся и личные файлы), и иногда даже находить файлы, например, man-страницы в огромном числе мест, благодаря чему поиск их программой просмотра сильно осложняется.

Корневая файловая система. Файловая система root должна быть небольших размеров, так как она содержит важные файлы и команды. Чем меньше объем файловой системы и чем реже она подлежит изменениям, тем меньше вероятность ее повреждения. Если система root повреждена, то обычно это означает, что начальная загрузка компьютера невозможна (кроме отдельных методов, например при помощи дискет).

Файловая система дистрибутива имеет архитектуру классической файловой системы ОС Linux с единым корневым каталогом, обозначаемым символом обратной косой черты ("слэш") — /.

Ниже приведено описание основных каталогов верхнего уровня.

/bin - В этом каталоге хранятся основные команды, необходимые пользователю для работы в системе. Например, такие как командные оболочки и команды файловой системы (ls, cp и т.д.). Каталог /bin обычно не изменяется после установки. Если изменяется, то обычно лишь при обновлениях пакетов программ, предоставленных разработчиками операционной системы.

/boot - В этом каталоге хранятся файлы, используемые загрузчиком ОС — LInux LOader (LILO). Этот каталог так же практически не изменяется после установки.

/dev - В этом каталоге размещены описания устройств системы. В Linux всё рассматривается, как файл, даже различные устройства, такие как последовательные порты, жёсткие диски и сканеры. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл, называемый device node. Все эти файлы находятся в каталоге /dev. Аналогично устроено большинство UNIX-подобных операционных систем.

/etc - Этот каталог содержит файлы настроек: всё, от конфигурационных файлов системы X Window, базы данных пользователей и до стартовых сценариев.

/home - В этом каталоге размещены домашние каталоги пользователей. Linux является многопользовательской системой и каждому пользователю присваивается имя и уникальный каталог для персональных файлов. Этот каталог называется "home" (домашним) каталогом пользователя.

/lib - В этом каталоге находятся системные библиотеки, необходимые для основных программ: библиотека C, динамический загрузчик, библиотека ncurses, модули ядра и другое.

/lib/modules - Подгружаемые модули для ядра (например, сетевые драйверы или поддержка дополнительных файловых систем).

/lost+found - В этом каталоге сохраняются восстановленные части файловой системы. При загрузке системы происходит проверка файловых систем на наличие ошибок. Для исправления ошибок файловой системы запускается программа fsck.

/mnt - Этот каталог предоставляется как временная точка монтирования для жёстких дисков, дискет, компакт-дисков или отключаемых устройств.

/opt - В этом каталоге размещаются дополнительные пакеты программ. Особенность Linux в том, что все пакеты программ, устанавливаются в этот каталог, например /opt/<программный пакет>. В последствии если этот пакет больше не будет нужен, то достаточно всего лишь удалить соответствующий каталог. В дистрибутивах SlackWare некоторые программы изначально поставляются в каталоге /opt (например, KDE - в /opt/kde).

/proc - Это специальный каталог не входящий в файловую систему. Каталог /proc представляет собой виртуальную файловую систему, которая предоставляет доступ к информации ядра. Различная информация, которую ядро может сообщить пользователям, находится в "файлах" каталога /proc. Например, в файле /proc/modules находится список загруженных модулей ядра. А в файле /proc/cpuinfo — информация о процессоре компьютера.

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

/sbin - В этом каталоге хранятся основные программы, выполняемые пользователем root а так же программы, выполняемые в процессе загрузки. Обычные пользователи не могут пользоваться этими программами.

/tmp - Временное хранилище данных. Все пользователи имеют права чтения и записи в этом каталоге.

/usr - Это один из самых больших каталогов в системе. Практически всё остальное расположено здесь. Программы, документация, исходный код ядра и система X Window. Именно в этот каталог, чаще всего, устанавливаются программы.

/var - В этом каталоге хранятся системные лог-файлы, кэш-файлы и файлы-замки программ. Это каталог для часто меняющихся данных.

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

/etc/rc.d - Командные файлы, выполняемые при запуске системы или при смене ее уровня выполнения.

/etc/passwd - База данных пользователей, в которой содержится информация об имени пользователя, его настоящем имени, личном каталоге, зашифрованный пароль и другие данные. Формат этого файла рассмотрен в man-руководстве к команде passwd.

/etc/fdprm - Таблица параметров флоппи-дисковода, определяющая формат записи. Устанавливается программой setfdprm.

/etc/fstab - Список файловых систем, автоматически монтируемых во время запуска системы командой mount -a (она запускается из командного файла /etc/rc.d/rc.S). Здесь также содержится информация о swaр-областях, автоматически устанавливаемых командой swapon -a.

/etc/group - Подобен файлу /etc/рasswd, только здесь содержится информация о группах, а не о пользователях.

/etc/inittab - Конфигурационный файл демона init.

/etc/issue - Выводится программой getty перед приглашением login. Обычно здесь содержится краткое описание системы.

/etc/magic - Конфигурационный файл команды file. Содержит описания различных форматов файлов, опираясь на которые эта команда определяет тип файла. Также см. руководства к magic и file.

/etc/motd - Сообщение дня, автоматически выводится при успешном подключении к системе. Часто используется для информирования пользователей об изменениях в работе системы. Немного напоминает "совет дня" в Windows.

/etc/mtab - Список смонтированных на данный момент файловых систем. Изначально устанавливается командными файлами при запуске, а затем автоматически модифицируется командой mount. Используется при необходимости получения доступа к смонтированным файловым системам (например, командой df).

/etc/shadow - Теневая база данных пользователей. При этом информация из файла /etc/рasswd перемещается в /etc/shadow, который недоступен для чтению никому, кроме пользователя root. Это усложняет взлом системы.

/etc/login.defs - Конфигурационный файл команды login.

/etc/printcap - То же, что и /etc/termcap, только используется при работе с принтером.

/etc/profile - Этот командный файл выполняется оболочкой Bourne Shell при запуске системы, что позволяет изменять системные установки для всех пользователей.

/etc/securetty - Определяет терминалы, с которых может подключаться к системе пользователь root. Обычно это только виртуальные консоли, что усложняет взлом системы через модем или сеть.

/etc/shells - Список рабочих оболочек. Команда chsh позволяет менять рабочую оболочку только на оболочки, находящиеся в этом файле. Процесс ftрd, предоставляющий работу с FTР, проверяет наличие оболочки пользователя в файле /etc/shells и не позволяет пользователю подключится к системе, пока ее имя не будет найдено в этом файле.

/etc/termcap - База данных совместимости терминалов. Здесь находятся escape-последовательности для различных типов терминалов, что позволяет работать программам на разных типах терминалов.

/dev - В этом каталоге находятся файлы устройств. Названия этих файлов соответствуют специальным положениям, рассмотренным в списке устройств (Device list). Файлы устройств создаются во время установки системы, а затем с помощью скрипта /dev/MAKEDEV. Файл /dev/MAKEDEV.local используется при создании локальных файлов устройств или ссылок (т.е. тех, что не соответствуют стандарту MAKEDEV).

/usr - Обычно файловая система /usr достаточно большая по объему, так как многие программы установлены именно здесь. Вся информация в каталоге /usr помещается туда во время установки системы. Отдельно устанавливаемые пакеты программ и другие файлы размещаются в каталоге /usr/local. Некоторые подкаталоги системы /usr рассмотрены ниже (для более подробной информации см. описание стандарта FSSTND).

/usr/X11R6 - Все файлы, используемые системой X Window. Для упрощения установки и администрирования, файлы системы X Window размещаются в отдельной структуре каталогов, которая находится в /usr/X11R6 и идентична структуре /usr.

/usr/bin - Практически все команды, хотя некоторые находятся в /bin или в /usr/local/bin.

/usr/sbin - Команды, используемые при администрировании системы и не предназначенные для размещения в файловой системе root (например, здесь находится большинство программ-серверов).

/usr/man, /usr/info, /usr/doc - Файлы man-руководств, документации GNU Info и другая документация.

/usr/include - Подключаемые файлы библиотек для языка С.

/usr/src - Исходные тексты программ, установленных в системе, в том числе ядра Linux.

/usr/lib - Неизменяемые файлы данных для программ и подсистем, включая некоторые конфигурационные файлы. Имя lib происходит от library (библиотека); первоначально библиотеки подпрограмм для программирования хранились в /usr/lib.

/usr/local - Здесь размещаются отдельно устанавливаемые пакеты программ и другие файлы.

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

/var/man/cat* - Временный каталог для форматируемых страниц руководств. Источником этих страниц является каталог /usr/man/man*. Некоторые руководства поставляются в отформатированном виде. Они располагаются в /usr/man/cat*. Остальные руководства перед просмотром должны быть отформатированы. Затем они помещаются в каталог /var/man и при повторном просмотре в форматировании не нуждаются. Каталог /var/man/cat часто очищается, таким же образом, как и прочие временные каталоги.

/var/lib - Файлы, изменяемые при нормальном функционировании системы.

/var/local - Изменяемые данные для программ, установленных в /usr/local (то есть, программы которые были установлены администратором системы). Обратите внимание, что даже в местном масштабе установленные программы должны использовать другие /var каталоги, например, /var/lock.

/var/lock - Файлы-защелки. Многие программы при обращении к какому-либо файлу устройства создают здесь файл-защелку. Другие программы при обращении к какому-либо устройству сначала проверяют наличие файла-защелки в этом каталоге, а затем уже производят доступ к этому устройству.

/var/log - Журнальные файлы различных программ, в особенности login (/var/log/wtmр, куда записываются все подключения и выходы из системы) и syslog (/var/log/messages, где обычно хранятся все сообщения ядра и системных программ). Файлы из /var/log необходимо регулярно удалять, иначе разрастутся сверх всякой меры.

/var/run - Файлы, информация в которых соответствует действительности только до очередной перезагрузки системы. Например, файл /var/run/utmp содержит информацию о пользователях, подключенных к системе в данный момент.

/var/spool - Каталоги, используемые для хранения почты, новостей, очереди для принтера, а также для других задач. Для каждой задачи существует отдельный каталог в /var/spool, например, почтовые ящики пользователей хранятся в /var/spool/mail.

/var/tmp - Каталог для временных файлов, размер которых достаточно велик или время существования которых больше, чем в /tmp. Хотя администратор системы не должен бы держать очень уж старые файлы в /var/tmp.

/proc - Файловая система /proc является виртуальной и в действительности она не существует на диске. Ядро создает ее в памяти компьютера. Система /proc предоставляет информацию о системе (изначально только о процессах — отсюда ее название). Некоторые наиболее важные файлы и каталоги рассмотрены ниже. Более подробную информацию о структуре и содержании файловой системы /proc можно найти в man-руководстве к proc.

/proc/1 - Каталог, содержащий информацию о процессе номер 1. Для каждого процесса существует отдельный каталог в /proc, именем которого является его числовой идентификатор.

/proc/cpuinfo - Информация о процессоре, такая как тип процессора, его модель, производительность и др.

/proc/devices - Список драйверов устройств, встроенных в действующее ядро.

/proc/dma - Задействованные в данный момент каналы DMA.

/proc/filesystems - Файловые системы, встроенные в ядро.

/proc/interruрts - Задействованные в данный момент прерывания.

/proc/ioports - Задействованные в данный момент порты ввода/вывода.

/proc/kcore - Отображение физической памяти системы в данный момент. Размер этого файла точно такой же, как и у памяти компьютера, только он не занимает места в самой памяти, а генерируется на лету при доступе к нему программ. Однако при копировании этого файла куда-либо, он не займет места на диске.

/proc/kmsg - Сообщения, выдаваемые ядром. Они также перенаправляются в syslog.

/proc/ksyms - Таблица символов ядра.

/proc/loadavg - Ориентировочная загруженность системы.

/proc/meminfo - Информация об использовании памяти, как физической, так и swap-области.

/proc/modules - Список модулей ядра, загруженных в данный момент.

/proc/net - Информация о сетевых протоколах.

/proc/self - Символическая ссылка к каталогу процесса, пытающегося получить информацию из /proc. При попытке двух различных процессов получить какую-либо информацию в /proc, они получают ссылки на различные каталоги. Это облегчает доступ программ к собственному каталогу процесса.

/proc/stat - Различная статистическая информация о работе системы.

/proc/uptime - Время, в течение которого система находится в рабочем состоянии.

/proc/version - Версия ядра.


Тэги: каталоги файловая система
+ 15 -
Похожие Поделиться

cppmm 14.01.2011 20:36 #
+ 9 -
Маленькое уточнение.
обозначаемым символом обратной косой черты ("слэш") — /.

/ - это слеш.
\ - а вот это обратный слеш.
Несущественно, конечно, но в технической литературе может запутать, поэтому лучше поправить.

А в целом статья верна.
greatperson 14.01.2011 21:03 #
+ 2 -
Файловая система /var содержит файлы, которые изменяются в ходе работы системы. Например, там лежат каталоги буферов для почты, новостей, печати и т.п., файлы протоколов, форматированных man-страниц и временные файлы.
Эээ... а чем тогда объясняется, что /tmp лежит отдельно, а не внутри /var? Аргумент про «хранятся дольше» как-то не очень катит, потому что это не повод выносить папку из /var, это просто повод назвать её по-другому и оставить там же, рядом.

Особенность Linux в том, что все пакеты программ, устанавливаются в этот каталог, например /opt/<программный пакет>.
Это про какие именно пакеты речь? Раз уж «Новичку», то поясните, пожалуйста, для тех, кто слово «пакет» воспринимает только в контексте убунты, а тут, видимо, в каком-то другом.

/usr/local - Здесь размещаются отдельно устанавливаемые пакеты программ и другие файлы.
Хе-хе, звучит не очень конкретно.
А вообще, по описанию можно подумать, что это тот же /opt, только для сети (потому что в /usr). Но внутри там почему-то лежат bin, sbin, lib и т.п. Ещё одна вложенная копия всей структуры (/, /usr, /usr/local — структура одинакова)? Для чего на этот раз?

var - Эта файловая система содержит файлы, изменяемые при нормально работающей системе.
...
/var/lib - Файлы, изменяемые при нормальном функционировании системы.
Правда что ли? :)


В целом — спасибо за статью. Но новичков (как минимум, меня) пугает во всём этом ещё и то, что перечень папок слишком неоднороден: где-то вкратце описывает папки внутри /, а где-то до третьего уровня вложенности добирается. Всё это попахивает так, будто структура запутана и не так уж логична, а потому её сложнее понять и воспринимать как какую-то цельную иерархию. Местами сложно избавиться от ощущения, что всё это сложилось хаотически, а потом просто было в какой-то момент описано и задокументировано.
ZaWertun 14.01.2011 21:08 #
+ 0 -
Эээ... а чем тогда объясняется, что /tmp лежит отдельно, а не внутри /var?

в var так же присутствует каталог tmp
uscr 14.01.2011 21:30 #
+ 4 -
Тссссссссссс!
greatperson 14.01.2011 21:52 #
+ 1 -
Я знаю. Так вот, зачем тогда ещё и /tmp? И если он принципиально отличается от /var/tmp, почему он не назван по-другому (/var/tmp2, например) и не помещён в /var?
ZaWertun 14.01.2011 21:58 #
+ 2 -
Since in most of the default installations the /tmp folder will be cleaned in every reboot. This is where /var/tmp comes in to play. Here, applications can expect their data to be preserved between reboots. In other words, data stored here is more persitant than /tmp.
Differences between /tmp and /var/tmp
derfenix 14.01.2011 22:05 #
+ 4 -
Временные файлы и изменяемые файлы - разные вещи. в /tmp находится то, что нужно вот прям сейчас и только сейчас, потом не пригодится или же в течение одного сеанса только нужно. в /var - лежит то, что может быть нужным месяцами и через 10 перезагрузок.
Общее у этих папок только одно - их содержимое должно и может меняться регулярно. Но /tmp - это то, что "удалил и не страшно", а в /var - "блин, удалил, теперь всё восстанавливать".
Папку /tmp можно абсолютно безболезненно очищать при перезагрузках, потому её часто и выносят в ram-диск. Удалять содержимое /var - быть себе врагом, т.к. там и почта, и базы данных, и кэш, и пул...
f_evgeny 24.07.2011 10:03 #
+ 1 -
Есть еще одна причина, по которой такие каталоги, как /tmp, /bin, /sbin в корне. Потому, что в корне присутствует минимальная система, которая в любом случае должна смочь стартовать и в случае аварии провести восстановление системы.
Скажем /var и /usr могут быть расположены на отдельных партициях и/или дисках. И в случае аварии или ошибки, они могут не примонтироваться после загрузки. И что тогда делать?
greatperson 14.01.2011 21:07 #
+ 1 -
Ещё интересно, зачем сделана отдельная папка /usr/games? Как-то это не вписывается (в моём понимании) в общую концепцию деления файлов по типам, а не по тематике и принадлежности к пакетам. Ведь различать, какие бинарники являются играми, а какие нет, лучше на уровне меню приложений, а не на уровне иерархии каталогов, разве не так?
ZaWertun 14.01.2011 21:13 #
+ 0 -
дистро- и пакето-специфично, у меня туда только Nethack прописался
greatperson 14.01.2011 21:54 #
+ 0 -
У меня там все KDEшные игры. KMines, KLines, KDiamonds, и так далее.
derfenix 14.01.2011 22:07 #
+ 2 -
это скорее новое веянье.. Например, можно создать группу games и разрешить доступ к папке /usr/games только этой группе. И добавить в games только себя. Захотел, пришёл - поиграл. А сотрудники пущай только работают :) или добавлять их в games только когда хорошо поработают.
inst 15.01.2011 11:12 #
+ 0 -
Можно вообще по крону управлять принадлежностью сотрудников к группам в зависимости от наработанных часов :)
lwilis 14.01.2011 23:01 #
+ 2 -
Так как про /media ни слова вообще, мои 5 копеек:
Этот каталог используется как точка монтирования сменных носителей (флешки, 4 ex). Причем предполагается, что монтирование будет автоматическим, с правами пользователя (точнее, от соответствующего демона).
В то время как /mnt используется как точка временного монтирования устройств вручную, с правами суперпользователя.
ZED 14.01.2011 23:10 #
+ 0 -
/media это дистроспецифичный каталог
philosoft 04.07.2011 02:31 #
+ 1 -
ВНЕЗАПНО
mironov_orig 23.07.2011 22:42 #
+ 0 -
+100500
xalexvikx 15.01.2011 00:05 #
+ 0 -
Спасибо большое! Занимательное чтение.
Разберу на досуге.
commonD 15.01.2011 02:32 #
+ -1 -
man heir
commonD 15.01.2011 02:33 #
+ 0 -
s@heir@hier@
mironov_orig 23.07.2011 22:44 #
+ 0 -
/proc/uptime - Время, в течении которого система находится в рабочем состоянии.
Деза. В этом файле лежит время старта системы. Например, если поработать на системе час, потом увести её в гибернацию, затем через месяц включить, аптайм будет месяц, но реально система работала только 1 час.
mironov_orig 23.07.2011 23:03 #
+ 0 -
Заметка устарела стопицот раз к моменту написания. По мимо неактуальной информации про /usr/{man,info,doc}, /usr/X11R6, /etc/fdprm, /boot (LiLO), здесь по два раза с разным описанием встречаются /proc, /usr, /dev, /etc. Дана неточная информация про проверку и исправление диска (fsck выполняет обе операции). Дана вопиюще неверная информация про /opt. Не учтены разные системы инициализации и аксиоматически дан каталог /etc/rc.d. Улыбнули обороты вроде «man-руководство», «файлы замки» (кстати, ниже по тексту встречаются «файлы-защёлки»)

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн