Значение каталогов в Unix и Unix-подобных системах

112

Я использую Linux уже пару лет, но до сих пор не выяснил, каково происхождение или значение некоторых имен каталогов в Unix и Unix-подобных системах. Например, что означает etcили var? Откуда optпришло название?

И пока мы в теме все равно. Может кто-нибудь дать четкое объяснение того, какой каталог лучше всего использовать для чего. Иногда я путаюсь, где установлено определенное программное обеспечение или в какой каталог лучше всего устанавливать программное обеспечение.

Люк
источник
Забавно, что Unix - пародия на мультики и выживает ... Думаю, мультики просто опередили свое время.
SparK

Ответы:

134

Для получения дополнительных сведений о компоновке файловых систем Linux обратитесь к Стандарту иерархии файловых систем (сейчас это версия 2.3, версия бета- версии 3.0 развернута на самых последних дистрибутивах). Это объясняет, откуда пришли имена:

  • / bin - Бин Овен.
  • / boot - файлы, необходимые для загрузки .
  • / DEV - Dev льда файлов.
  • / etc - и т. д . Имя унаследовано от самых ранних Unix, то есть когда оно стало местом для размещения конфигурационных файлов.
  • / home - Гдехранятся домашние каталоги.
  • / lib - Гдехранитсякод lib raries.
  • / media - более современный каталог, но в котороммонтируетсясъемный носитель .
  • / мнт - Где временные файловые системы м НУ нт - й изд.
  • / опт - Где неавтоматического установлен Рациональная дополнения программного обеспечения. Это дискретно/usr/local/по причинам, к которым я вернусь позже.
  • / запуск - Где запустить переменные время данные сохраняются.
  • / SBIN - Где s uper- бен Aries сохраняются. Обычно они работают только с root.
  • / srv - обозначает " s e rv e". Этот каталог предназначен для раздачи статических файлов. /srv/httpбудет для статических сайтов,/srv/ftpдля FTP-сервера.
  • / TMP - Где т е тр orary файлы могут быть сохранены.
  • / USR - Другой каталогунаследованные от Unixes старого, это означает « U NIX S ystem R ЕСУРСЫ». Он не означает «пользователь» (см. Вики Debian ). Этот каталог должен быть общим для хостов и может безопасно подключаться по NFS к нескольким хостам. Он может быть смонтирован только для чтения.
  • / вар - Другой каталогунаследованный от Unixes старого, он выступает за « вар iable». Здесь могут храниться системные данные, которые различаются. Здесь можно найти такие каталоги, как спул и кеш. Если программе необходимо записать данные в локальную файловую систему, и она не передает эти данные кому-то напрямую, она пойдет здесь.

/ opt vs / usr / local

Эмпирическое правило, которое я видел, лучше всего описать так:

Используйте /usr/localдля вещей, которые обычно /usrвходят или переопределяют вещи, которые уже есть /usr. Используйте /optдля вещей, которые устанавливают все в один каталог, или являются иными специальными.

sysadmin1138
источник
2
Документ очень хорошо отвечает на первую половину моего вопроса. Тем не менее, откуда взялись названия, до сих пор остается загадкой. Причина, по которой я хотел бы знать, состоит в том, что я думаю, что это даст мне больше контекста.
Люк
Именование почти самоочевидно. Особенно, если вы прочитаете описания в этой ссылке.
Дэн Карли
3
Нет, это не так. Он объясняет, для чего используется слово «и т. Д.», Но не объясняет, откуда происходит это имя и что оно обозначает.
Люк
@ sysadmin1138, так /runв основном ссылается на оперативную память?
Pacerier
@Pacerier Это файловая система, но может быть смонтирована как RAM-диск. Тем не менее, многие программы предполагают наличие заданной структуры, поэтому на самом деле требуется постоянство.
sysadmin1138
22

Исторически, /etcозначает «и так далее» и /varсокращенно «переменная». Я полагаю, что первое из-за большой коллекции несвязанных файлов конфигурации системы /etc. Последнее потому, что /varожидается изменение файлов в . Вы можете часто монтировать /usrи /только для чтения (кроме случаев, когда выполняете обновления), но вы никогда не можете монтировать /varтолько для чтения. Он хранит системные журналы, блокирует файлы, файлы спула и другие вещи, которые изменяются динамически.

Другие люди дали вам указатели, чтобы помочь вам понять, что лучше всего идет куда.

Эдди
источник
22

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

  • / opt означает необязательный (как в дополнительных пакетах дополнений).
  • / bin обозначает двоичный файл (содержит исполняемые файлы, используемые ОС).
  • / lib обозначает библиотеку (содержит разделяемые библиотеки, используемые файловой системой и для загрузки, вероятно, используемые исполняемыми файлами в bin)
  • / proc обозначает процессы.
  • / root означает пользователя root.
  • / home содержит домашние подкаталоги для любых пользователей без полномочий root.
  • / dev обозначает устройство (содержит специальные файлы и файлы устройства).
  • / tmp означает временный.
  • / SRV означает служить.
  • / mnt обозначает точку монтирования (смонтируйте временную файловую систему здесь).
  • / include содержит файлы #include, то есть заголовочные файлы (например, stdio.h).
  • / var обозначает переменную
  • / etc означает и так далее

  • / usr обозначает системные ресурсы Unix ( источник )

Майк
источник
Хороший ответ: лаконично, направлено на уровень вопроса, и не нужно искать другие ссылки. +1
Скотт Биггс
Я не видел srv раньше. Я предпочитаю соглашение по конфигурации, если оно имеет смысл и применяется. Очевидно, что Apache не всегда обслуживает файлы из каталога / srv.
user148298
19

Попробуй это:

$ man hier
анонимное
источник
1
Хороший. Однако, как и в документе, указанном в других ответах, эта справочная страница рассказывает только о том, для чего используются каталоги. Меня также интересует, почему определенные имена были выбраны, например, / etc, например,
Люк,
2
Ответ на ваш вопрос о / etc находится здесь: en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
Anonymous
1

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

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

/ sbin (содержит специальные команды, которые обычно запускаются суперпользователем)

/ lib обозначает библиотеку (содержит разделяемые библиотеки, используемые файловой системой и для загрузки, вероятно, используемые исполняемыми файлами в bin) / proc обозначает процессы (если вы хотите проверить, просто проверьте этот директор, он будет содержать несколько каталогов, названных случайными числами, которые ничего, кроме номера процесса, который вы можете перепроверить с помощью ps - ef)

/ root означает пользователя root (каталог по умолчанию для пользователя root) / home (домашний каталог всех пользователей без полномочий root находится в этом каталоге) / dev означает устройство (содержит специальные файлы и файлы устройства, если вы просматриваете этот каталог через ls - В этом каталоге также отображаются главные и вспомогательные номера команды l, а также тип устройства, показанный в начале каждой строки в результате ls - l. B означает специальное устройство блока, c означает специальное устройство символа). / tmp обозначает временный. (временные ресурсы, необходимые для некоторого процесса, хранящегося здесь временно) / mnt обозначает точку монтирования (смонтируйте временную файловую систему здесь). / var обозначает переменную (она содержит переменные данные, каталог, который она содержит, каждый раз меняется в размере) / opt обозначает необязательный (обычно в этом каталоге установлено ПО стороннего производителя). / usr означает системные ресурсы Unix.

Анвар хан
источник