it-swarm-ru.tech

Разница между / bin и / usr / bin

Я прочитал это на этом сайте, и это не имеет смысла.

http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/basic/node32.html

Когда UNIX был впервые написан, /bin а также /usr/bin физически размещены на двух разных дисках: /bin находясь на меньшем, более быстром (более дорогом) диске, и /usr/bin на более медленном диске. Сейчас же, /bin является символической ссылкой на /usr/bin: по сути это один и тот же каталог.

Но когда вы ls the /bin, в ней гораздо меньше содержимого, чем /usr/bin папка (по крайней мере, на моей работающей системе).

Так может кто-нибудь объяснить, пожалуйста, разницу?

92
whoami

Какая? нет /bin/ не является символической ссылкой на /usr/bin в любой FHS-совместимой системе. Обратите внимание, что все еще существуют популярные Unix и Linux, которые игнорируют это - например, /bin а также /sbin связаны с /usr/bin в Arch Linux (причина в том, что вам не нужно /bin для аварийного/однопользовательского режима, поскольку вы просто загрузите живой CD).

/bin

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

/usr/bin/

Это основной каталог исполняемых команд в системе.

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

Отмечу, что они могут быть на отдельных дисках/разделах, /bin должен находиться на том же диске, что и /. /usr/bin может находиться на другом диске - хотя обратите внимание, что эта конфигурация некоторое время была повреждена (именно поэтому, например, systemd предупреждает об этой конфигурации при загрузке).

Для полной корректности некоторые подразделения могут игнорировать FHS, поскольку я считаю, что это только стандарт Linux, я не знаю, что он еще включен в SUS, Posix или любой другой стандарт UNIX, хотя это должно быть ИМХО. Это часть стандарта LSB .

79
xenoterracide

Обновление: для некоторой истории и реальной причины, почему есть /usr, прочитайте это: http://lists.busybox.net/pipermail/busybox/2010-De December/074114.html . Также это .


/sbin - Двоичные файлы, необходимые для загрузки, низкоуровневого ремонта или обслуживания системы (уровень запуска 1 или S)

/bin - Двоичные файлы, необходимые для нормального/стандартного функционирования системы на любом уровне запуска.

/usr/bin - двоичные файлы приложения/дистрибутива, предназначенные для доступа локально зарегистрированным пользователям

/usr/sbin - Двоичные файлы приложений/дистрибутивов, которые поддерживают или настраивают содержимое в/sbin.

/usr/share/bin - двоичные файлы или сценарии приложений/распространения, предназначенные для доступа через Интернет, т. Е. Веб-приложения Apache

*local* - двоичные файлы, не являющиеся частью дистрибутива; локально скомпилирован или установлен вручную. Там обычно никогда не бывает /local/bin но всегда /usr/local/bin а также /usr/local/share/bin.

59
LawrenceC

Какое-то "обновление" по этому вопросу:

В последнее время некоторые дистрибутивы Linux объединяются /bin в /usr/bin и, соответственно, /lib в /usr/lib. Иногда также (/usr)/sbin до /usr/bin (Arch Linux). Так /usr ожидается быть доступным одновременно с /.

Различие между двумя иерархиями теперь считается ненужной сложностью. Идея когда-то имела только /bin доступно при загрузке, но наличие начальный виртуальный диск делает это устаревшим.

Я знаю, что Fedora Linux (2011) и Arch Linux (2012) идут по этому пути, и Solaris делает это долгое время (> 15 лет).

18
JonnyJD

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

В Solaris и Arch Linux (и, возможно, в других) /bin Является символической ссылкой на /usr/bin. В Arch также есть /sbin И /usr/sbin, Связанные с /usr/bin.

Особо следует отметить, что утверждение, что /bin Предназначено для команд "системного администратора", а /usr/bin - для пользовательских команд, --- не верно (если только вы не думаете, что bash и ​​ls предназначены только для администраторов, и в этом случае вам есть чему поучиться). Команды администратора находятся в /sbin И /usr/sbin.

8
bahamat

Существует много систем на основе UNIX. Linux, AIX, Solaris, BSD и т.д. Оригинальная цитата дает исторический контекст, который применяется ко всем разновидностям. Если вы посмотрите на какую-то одну конкретную систему, вы увидите разные результаты. Последнее предложение оригинальной цитаты относится только к некоторым версиям и дистрибутивам.

5
Chris Quenelle