GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi /bin a /usr/bin

Co? ne /bin/ není symbolický odkaz na /usr/bin na jakémkoli systému vyhovujícím FHS. Všimněte si, že stále existují populární systémy Unices a Linux, které toto ignorují – například /bin a /sbin jsou symbolicky propojeny s /usr/bin na Arch Linuxu (důvodem je, že nepotřebujete /bin pro záchranu/režim pro jednoho uživatele, protože byste pouze zavedli živé CD).

/bin

obsahuje příkazy, které může používat jak správce systému, tak uživatelé, ale které jsou vyžadovány, když nejsou připojeny žádné jiné souborové systémy (např. v režimu jednoho uživatele). Může také obsahovat příkazy, které jsou nepřímo používány skripty

/usr/bin/

Toto je primární adresář spustitelných příkazů v systému.

v podstatě /bin obsahuje spustitelné soubory, které systém vyžaduje pro nouzové opravy, spouštění a režim jednoho uživatele. /usr/bin obsahuje všechny binární soubory, které nejsou povinné.

Upozorňuji, že mohou být na samostatných discích/diskových oddílech, /bin musí být na stejném disku jako / . /usr/bin může být na jiném disku – i když mějte na paměti, že tato konfigurace byla nějakou dobu nefunkční (to je důvod, proč např. systemd na tuto konfiguraci při bootování varuje).

Pro plnou správnost, některé unice mohou ignorovat FHS, protože se domnívám, že je to pouze linuxový standard, nejsem si vědom, že by byl ještě zahrnut do SUS, Posix nebo jakéhokoli jiného standardu UNIX, i když by IMHO měl být. Je však součástí standardu LSB.


Aktualizace:Pro nějakou historii a skutečný důvod, proč existuje /usr , přečtěte si toto:http://lists.busybox.net/pipermail/busybox/2010-December/074114.html. Také toto.

/sbin – Binární soubory potřebné pro spouštění, opravu nebo údržbu systému na nízké úrovni (úroveň běhu 1 nebo S)

/bin - Binární soubory potřebné pro normální/standardní fungování systému na jakékoli úrovni běhu.

/usr/bin - Aplikační/distribuční binární soubory určené pro přístup lokálně přihlášeným uživatelům

/usr/sbin - Aplikační/distribuční binární soubory, které podporují nebo konfigurují věci v /sbin.

/usr/share/bin – Aplikační/distribuční binární soubory nebo skripty určené pro přístup přes web, např. webové aplikace Apache

*local* - Binární soubory, které nejsou součástí distribuce; lokálně zkompilovaný nebo ručně nainstalovaný. Obvykle tam není /local/bin ale vždy /usr/local/bin a /usr/local/share/bin .


Nějaký druh "aktualizace" k tomuto problému:

V poslední době některé distribuce Linuxu slučují /bin do /usr/bin a související /lib do /usr/lib . Někdy také (/usr)/sbin na /usr/bin (Arch Linux).Takže /usr očekává se, že bude k dispozici ve stejnou dobu jako / .

Rozdíl mezi těmito dvěma hierarchiemi je nyní považován za zbytečnou složitost. Jednou myšlenkou bylo mít pouze /bin k dispozici při bootování, ale pokud máte počáteční ramdisk, je to zastaralé.

Vím, že Fedora Linux (2011) a Arch Linux (2012) jdou tímto směrem a Solaris to dělá již dlouhou dobu (> 15 let).

  • freedesktop:TheCaseForTheUsrMerge
  • Fedora:Funkce UsrMove
  • arch:sloučení /bin, /sbin, /lib do /usr/bin a /usr/lib

Linux
  1. Rozdíl mezi /bin/false &/sbin/nologin

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  1. /usr/bin Vs /usr/local/bin Na Linuxu?

  2. Podivný rozdíl mezi Pwd a /bin/pwd?

  3. Rozdíl mezi /opt a /usr/local?

  1. Linux – sloučení /usr/bin A /usr/sbin do /bin (gnu/linux)?

  2. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  3. Jaký je rozdíl mezi #!/usr/bin/env bash a #!/usr/bin/bash?