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

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

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

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

Этот вопрос является частью более крупного вопроса, который я разделяю, чтобы сделать его более ответственным. Оригинальный вопрос можно найти здесь:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/

6 ответов

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

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

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

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

введите описание здесь

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

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

3 примера:

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

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

  • Дополнение по поводу библиотек.

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

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

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

man 7 hier

Вы также можете просмотреть эту страницу руководства здесь: http://manpages.ubuntu.com/manpages/en/man7/hier.7.html

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

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

Этот следующий текст показывает структуру каталогов.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ 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.

\Users эквивалентно /home, The name of /usr is a historical artifact.

The combined equivalent of \Windows а также \Program Files is the combination of /bin, /boot, /etc, /lib, /sbin, /tmp, /usr а также /var, Linux and Windows split up installed software differently. Windows distinguishes between the operating system and companion programs. Linux doesn't make this distinction in the same way; most if not all software comes through Ubuntu (the distributor) and is installed in the same directory hierarchy, and since software is tracked by the package manager, there is no need to store each program in its own directory. В Linux:

  • /etc is for system configuration files: configuration files that affect all users, whether they apply to the operating system as a whole or to a specific application.
  • /usr is for system code and data (programs, libraries, documentation, etc.).
  • /var is for variable or temporary data: temporary files, logs, package manager databases, printer spools, game save files, etc. There is also /tmp для временных файлов, которые могут быть удалены при перезагрузке.
  • /bin, /lib а также /sbin в корневом каталоге есть аналоги в /usr, Файлы, которые находятся снаружи /usr те, которые необходимы в начале процесса загрузки. Это пережиток того времени, когда диски были маленькими и /usr может быть в файловой системе, совместно используемой несколькими рабочими станциями по сети, это не очень полезно для большинства систем.
  • /boot содержит несколько файлов, которые необходимы только для загрузки операционной системы, а не для повседневной работы.

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

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

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

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

Относительный путь - это путь, который не начинается с /; in that case, the directory tree is traversed starting from a given point, which changes depending on context, called the current directory. In every directory, there are two special directories called. and.., which refer respectively to the directory itself, and to its parent directory.

The fact that all files and directories have a common root means that, even if several different storage devices are present on the system, they are all seen as directories somewhere in the tree, once they are mounted to the desired place

Find examples and more information here:

Другие вопросы по тегам