Исходя из мира Windows, я обнаружил, что большинство имен каталогов папок интуитивно понятны:
\Program Files
содержит файлы, используемые программами (сюрприз!)\Program Files (x86)
содержит файлы, используемые 32-разрядными программами в 64-разрядных ОС\Users
(ранееDocuments and Settings
) содержит файлы пользователей, то есть документы и настройки\Users\USER\Application Data
содержит данные для конкретного приложения\Users\USER\Documents
содержит документы, принадлежащие пользователю
\Windows
содержит файлы, которые относятся к работе самой Windows\Windows\Fonts
хранит файлы шрифтов (сюрприз!)\Windows\Temp
это глобальный временный каталог
и так далее. Даже если бы я не знал, что делают эти папки, я мог бы с большой точностью угадать их названия.
Теперь я хорошо смотрю на Linux и не совсем понимаю, как найти путь к файловой системе.
Например:
/bin
содержит двоичные файлы Но так делать/sbin
,/usr/bin
,/usr/sbin
и , вероятно , больше , что я не знаю , о. Что есть что ?? В чем разница между ними? Если я хочу сделать бинарный файл и поместить его где-нибудь в масштабе всей системы, куда мне его поместить?/media
содержит внешние медиа-файловые системы. Но так же/mnt
. И ни один из них не содержит ничего в моей системе в данный момент; кажется, все в/dev
. Какая разница? Где другие разделы на моем жестком диске, такие какC:
иD:
которые были в Windows?/home
содержит пользовательские файлы и настройки. Это интуитивно понятно, но во что же тогда верить/usr
? И почему/root
же все еще отдельно, даже если это пользователь с файлами и настройками?/lib
содержит общие библиотеки, такие как библиотеки DLL. Но так же/usr/lib
. Какая разница?Что это
/etc
? Это действительно означает «и так далее» или что-то еще? Какие типы файлов должны быть там - глобальные или локальные? Является ли это универсальным для вещей, которые никто не знал, где поставить, или есть конкретный вариант использования для этого?Что
/opt
,/proc
и/var
? За что они стоят и для чего они используются? Я не видел ничего подобного в Windows *, и я просто не могу понять, для чего они могут быть.
Если кто-то может подумать о других стандартных местах, о которых было бы полезно узнать, не стесняйтесь добавить его к вопросу; надеюсь, это может быть хорошим справочником для таких людей, как я, которые начинают знакомиться с * nix системами.
* ОК, это ложь. Я видел подобные вещи в WinObj, но, очевидно, не на регулярной основе. Я все еще не знаю, что они делают на Linux, хотя.
источник
C:\Program Files
,C:\ProgramData
,%HOME%\AppData\Local
,%HOME%\AppData\LocalLow
,C:\Windows\SystemApps
... Все примеры , где можно найти исполняемые файлы в Windows. И я даже не буду говорить о конфигурационных файлах и реестре, я не хочу быть еще более подавленным. PS: я работаю в основном в Windows.Ответы:
В дистрибутивах Linux используется FHS: http://www.pathname.com/fhs/pub/fhs-2.3.html
Вы также можете попробовать
man hier
.Я постараюсь обобщить ответы на ваши вопросы в верхней части моей головы, но я настоятельно рекомендую вам прочитать через FHS:
Для доступа к системе вам обычно не нужны / var, / opt, / usr, / home; некоторые из потенциально крупнейших каталогов в системе.
Один из моих любимых, который некоторые люди не используют, это / srv. Это для данных, которые размещаются через такие сервисы, как http / ftp / samba. Я видел, что / VAR использовал для этого много, что на самом деле не его цель.
источник
/home/users/username
для пользователей и/home/services/servicename
для чего вы упоминаете/src
. Я думаю, что это работает лучше, потому что это более универсально для разделения. Вы можете разместить его в своем собственном разделе или использовать тот же раздел и свои пользовательские данные, что я часто и хочу делать.Я не буду отвечать о том, что они все имеют в виду (у других есть), но приведу небольшой исторический контекст.
Во-первых, помните, что UNIX приближается к 40 годам, во времена бумажной ленты и жестко закодированных терминалов на скорости 300 бод для мэйнфреймов (системе Windows XP уже почти 10 лет). Печатание было медленным, и потребность в эффективности при печати перевешивала множество других соображений. Это является причиной очень коротких базовых команд (например, «ls», «cat», «cc», «dd» и т. Д.). То же самое было со структурами каталогов. Мысль была о том, что если команда содержит более трех или четырех символов, то имя было слишком длинным.
Каталог / usr изначально содержал домашние каталоги пользователя, так как большинство команд были в / bin, а все файлы устройств были в / dev. Позднее считалось, что основной диск (корневая файловая система, /) будет маленьким для ускорения загрузки. Так появились другие структуры, такие как / usr / bin, / usr / include и / usr / lib, где / usr был отдельным «диском». Намного позже считалось, что домашние каталоги пользователей находятся в / home, а это еще один диск. И намного позже этого, чтобы иметь / var (сокращение от переменной / заменяемой). Каталог / etc действительно имел в виду «и так далее», так как это было общее расположение всех файлов конфигурации системы. / Mnt использовался как временное место для доступа к диску (часто к резервному диску). Каталоги типа / opt, / proc и / media появились намного позже.
Здесь многое упущено (например, / usr / local и / net), но это дает краткое описание того, почему имена «менее интуитивны».
источник
Как уже упоминалось здесь, в дистрибутивах Linux в основном используется FHS, см. Здесь обзор, подобный учебному пособию, особенно подходящий для тех, кто работает в Windows.
Как примечание, каталоги Windows кажутся интуитивно понятными, внешне. Но позвольте мне спросить вас, где находятся настройки для программы, как
*.ini
файл в папке программ, вDocuments and Settings\User
(\Application Data
или\Local Settings\Application Data
) или в печально известном реестре? никто не знает, даже Microsoft. И так мы можем продолжать и продолжать.источник