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

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

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

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

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

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

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

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

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

enter image description here

В основном 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. пользователю 2 нечего делать дома у пользователя 1 (и наоборот тоже верно: пользователю 1 нечего делать дома у пользователя 2). Если все файлы будут находиться в / 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) и доступен для записи (жесткий диск sata).Новый каталог, который используется для этого (не на изображении), является /run/.

Попробуйте выполнить эту команду...

man 7 hier

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

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

Поздний Ответ - Я создал дорожную карту для начинающих, которой нужно следовать. Если они ищут файл, но не знают, где его искать, они могут использовать карту для приблизительной навигации. Вы можете скачать изображение в формате hi-res 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. Название /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 Стандарт иерархии файловой системы.

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

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

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

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

См. также структура каталогов пометка на [unix.se ]. Все дистрибутивы Linux следуют одной и той же модели.

В Ubuntu вы обычно устанавливаете программное обеспечение для всех пользователей. Все, что вы делаете через менеджер пакетов, предназначено для всех пользователей. Я не понимаю остальную часть вашего комментария; никто не “настраивает” “двоичный файл, связанный с программным обеспечением”. Вы должны задать это как отдельный вопрос и дать лучшее объяснение того, что вы пытаетесь сделать.

@Gilles Будь осторожен, когда говоришь "все`. [Проект GoboLinux](http://www.gobolinux.org /) на самом деле использует более похожую на Windows структуру каталогов.

Спасибо за все ваши ответы. Я немного смущен некоторыми моментами:
В Windows программа установки обычно предоставляет через приглашение возможность установки программного обеспечения для всех пользователей. Как провести это различие в Ubuntu?
Кроме того, это обычная проблема при настройке программного обеспечения для разработки в соответствии с их IDE. В Windows, например, в “program files\miktex\bin” есть файл "pdflatex.exe ". Таким образом, я могу указать IDE на этот файл и настроить его. Как выполнить этот процесс в Ubuntu? Где находится общий двоичный файл, связанный с программным обеспечением (особенно с точки зрения конфигурации)?

Понял. Я сформулирую новый вопрос. Даже в этом случае вот краткое объяснение того, что я имел в виду: в Windows exe-файлы можно легко найти. Например: "C:\Python27\python.exe ". Итак, я знаю, с чего начинается программа Python. Теперь, если мне нужно использовать Eclipse IDE, я могу просто указать его на python.exe , и это то, что я имел в виду под “настройкой”. Я настроил IDE для Python. В Ubuntu, где находится место, где установлена программа? Это то, что все еще ускользает от меня.

По теме (но, вероятно, не следует считать дубликатом): Что эквивалентно папке Windows “Program Files”? (Куда все девается, когда я устанавливаю them?)

Также см.: Linux Filesystem Hierarchy