Как понять макет файловой системы Ubuntu?

190

В Windows есть, пожалуй, только несколько важных папок (по важности, что важно для моей логической картины файловой системы Windows) на установочном диске (в моем случае C:\ ). А именно Program Files и Windows . Я просто остаюсь в стороне от папки Windows , а «add remove files files» достаточно хорош для обработки папки program files в Windows. Конечно, есть папка с именем Users , где пользователи (которые не являются админами) могут получить доступ только к своим папкам.

Таким образом, на моем уровне файловой системы Windows есть ясная картина. В Ubuntu, когда я добираюсь до места / , есть огромный список папок, большинство из которых я не имею в виду, что они содержат. Папка /bin кажется эквивалентной папке Windows в окнах. Папка /usr выглядит как эквивалент папки Users в Windows. Но даже папка /home выглядит так, как будто она может соответствовать счету.

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

Этот вопрос является частью большого вопроса, который я разделяю, чтобы сделать его более ответственным. Оригинальный вопрос можно найти здесь:
Ссылка

    
задан Shashank Sawant 17.05.2012 в 20:12
источник

6 ответов

230

Вы можете прочитать об этом, например, в википедии. Выдержка:

  

Стандарт иерархии файловой системы (FHS) определяет основные каталоги и их содержимое в операционных системах Linux. По большей части это формализация и расширение традиционной иерархии файловой системы BSD.

     

FHS поддерживается некоммерческой организацией Linux Foundation, состоящей из крупных поставщиков программного и аппаратного обеспечения, таких как HP, Red Hat, IBM и Dell.   Текущая версия 3.0, выпущенная 3 июня 2015 года.

Визуальное представление с кратким описанием:

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

Помните, что Unix и Linux, созданные как многопользовательские системы и Windows, были созданы для одного пользователя. Все остальное можно объяснить из этой идеи. Вы можете объяснить каждый каталог, думая о том, что он является многопользовательским и безопасным.

3 примера:

  • Вы увидите, что файлы и каталоги, которые являются только администраторами, собираются в одном каталоге: s в /sbin и /usr/sbin и /usr/local/sbin означает систему. Обычный пользователь не может даже запускать программы, которые находятся там. Файлы, которые обычный пользователь может запустить, находятся в / bin, / usr / bin, / usr / local / bin на основе того, где он наиболее логично должен находиться. Но если они только администраторы, они должны перейти к версии s этого каталога. Существует известная утилита, называемая fuser . Вы можете убивать процессы с ним. Если обычный пользователь может использовать это, он сможет убить ваш сеанс.

  • То же самое касается /home : / home / user1 является свойством user1. / home / user2 является свойством user2. user2 не имеет бизнеса, делающего вещи в доме user1 (и наоборот: у пользователя 1 нет бизнеса, делающего вещи в доме user2). Если все файлы будут в / home без имени пользователя под ним, вам нужно будет предоставить разрешения для каждого файла и оспаривать, разрешено ли кому-либо писать / удалять эти файлы. Кошмар, если у вас десятки пользователей.

  • Дополнение относительно библиотек.

    /lib/ , /usr/lib/ и /usr/local/lib/ - исходные местоположения, начиная с multilib существовали системы и существовали, чтобы предотвратить нарушение вещей. /usr/lib32 , /usr/lib/64 , /usr/local/lib32/ , /usr/local/lib64/ - это 32- / 64-битные многоуровневые изобретения.

Это не статическая концепция. Другие альтернативы Linux сделали настройки этой планировки. Например; в настоящее время вы увидите debian и Ubuntu , которые меняют много в планировании FHS с SSD лучше с файлами только для чтения. Существует движение к новой планировке, где файлы разделяются на «только для чтения» и «записываемый» каталог / группу, поэтому мы можем иметь корневой раздел, который может быть установлен только для чтения (раздел для ssd) и доступен для записи (sata hdd). Новый каталог, который используется для этого (не на изображении), равен /run/ .

    
ответ дан Rinzwind 17.05.2012 в 20:18
источник
88

Попробуйте эту команду ...

man 7 hier

Надеюсь, что это поможет

    
ответ дан Pritesh Wadhia 17.05.2012 в 21:58
34

В следующем тексте показана структура каталогов.

[email protected]:/$ pwd
/
[email protected]:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

Основные компоненты здесь:

  1. /boot : содержит загрузчик

  2. /home : содержит домашние каталоги пользователей.

  3. /bin : все исполняемые двоичные файлы и команды, используемые всеми пользователями в системе, расположены здесь.

  4. /sbin : содержит системные исполняемые файлы, обычно используемые системными администраторами.

  5. /lib : содержит системные библиотеки, которые поддерживают двоичные файлы в / bin и / sbin.

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

  7. /dev : здесь представлены файлы устройств, например, usb, терминальное устройство или любое другое устройство, подключенное к системе.

  8. /proc : содержит информацию о запущенном процессе.

  9. /tmp : это временная директория, в которой многие процессы создают необходимые временные файлы. Это очищается каждый раз при загрузке машины.

Для более подробной информации ссылка Thegeekstuff прекрасно объясняет общую файловую систему linux .     

ответ дан mtk 17.05.2012 в 20:38
31

Поздний ответ . Я создал дорожную карту для начинающих. Если они ищут файл, но не знают, где искать, они могут использовать карту, чтобы примерно ориентироваться. Вы можете скачать hi-res PNG здесь . Вы можете найти связанный пост здесь . Я буду продолжать обновлять как файл, так и сообщение, когда позволяет время, включая полезные комментарии.

    

ответ дан d4nyll 20.11.2014 в 19:18
17

\Users эквивалентно /home . Имя /usr является историческим артефактом.

Комбинированный эквивалент \Windows и \Program Files представляет собой комбинацию /bin , /boot , /etc , /lib , /sbin , /tmp , /usr и /var . Linux и Windows разложили установленное ПО по-разному. Windows различает операционную систему и сопутствующие программы. Linux не делает это различие таким же образом; большинство, если не все программное обеспечение поставляется через Ubuntu (дистрибьютор) и устанавливается в той же иерархии каталогов, и поскольку программное обеспечение отслеживается менеджером пакетов, нет необходимости хранить каждую программу в ее собственном каталоге. В Linux:

  • /etc для файлов конфигурации системы: файлы конфигурации, которые затрагивают всех пользователей, независимо от того, применяются ли они к операционной системе в целом или к конкретному приложению.
  • /usr - для системного кода и данных (программ, библиотек, документации и т. д.).
  • /var для переменных или временных данных: временные файлы, журналы, базы данных диспетчера пакетов, буферы печати, файлы сохранения файлов и т. д. Также существует /tmp для временных файлов, которые можно удалить при перезагрузках.
  • /bin , /lib и /sbin в корневом каталоге имеют аналоги в /usr . Файлы, находящиеся за пределами /usr , являются теми, которые необходимы в начале процесса загрузки. Это реликвия с того времени, когда диски были небольшими, а /usr могло находиться в файловой системе, разделяемой между несколькими рабочими станциями по сети, но это не очень полезно для большинства систем.
  • /boot содержит несколько файлов, которые необходимы только для загрузки операционной системы, а не для повседневной работы.

Существуют дополнительные каталоги, которые не соответствуют чему-либо, что имеет Windows:

  • /root - домашний каталог пользователя root. Пользователь root - это учетная запись администратора, не привязанная к конкретному пользователю; это пользователь, с которым вы переходите, когда вы запускаете sudo . Ubuntu не позволяет пользователю root войти по умолчанию.
  • /media и /mnt - это точки монтирования: они могут видеть файловые системы других операционных систем и удаленных дисков. Эквивалент Windows - это другие буквы дисков.
  • /proc и /sys показывают системную информацию. В Windows вам необходимо пропустить меню или вызвать системные команды или установить сторонние программы, чтобы увидеть эту информацию.

Ubuntu, как и другие дистрибутивы Linux, обычно следует за Linux Стандартом иерархии файловой системы .

    
ответ дан Gilles 17.05.2012 в 20:48
5

Ubuntu (как и все UNIX-подобные системы) организует файлы в иерархическом дереве, где отношения рассматриваются в командах детей и родителей. Каталоги могут содержать другие каталоги, а также обычные файлы, которые являются «листьями» дерева. Любой элемент дерева может быть ссылкой по имени пути; абсолютное имя пути начинается с символа / (идентифицирующего корневой каталог, который содержит все другие каталоги и файлы), тогда указывается каждая дочерняя директория, которая должна пройти по элементу, каждая из которых разделена знаком /.

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

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

Найдите примеры и дополнительную информацию здесь :

    
ответ дан stephenmyall 17.05.2012 в 20:18