it-swarm.com.de

Unterschied zwischen / bin und / usr / bin

Ich habe das auf dieser Website gelesen und es macht keinen Sinn.

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

Als UNIX zum ersten Mal geschrieben wurde, /bin und /usr/bin befand sich physisch auf zwei verschiedenen Festplatten: /bin auf einer kleineren, schnelleren (teureren) Festplatte und /usr/bin auf einer größeren langsameren Festplatte. Jetzt, /bin ist eine symbolische Verknüpfung zu /usr/bin: Sie sind im Wesentlichen das gleiche Verzeichnis.

Aber wenn Sie ls die /bin Ordner, es hat weit weniger Inhalt als der /usr/bin Ordner (zumindest auf meinem laufenden System).

Kann jemand bitte den Unterschied erklären?

92
whoami

Was? no /bin/ ist auf keinem FHS-kompatiblen System ein Symlink zu /usr/bin. Beachten Sie, dass es immer noch beliebte Unices und Linuxes gibt, die dies ignorieren. Beispielsweise sind /bin Und /sbin Unter Arch Linux mit /usr/bin Verknüpft (mit der Begründung, dass Sie dies nicht tun) brauche /bin für den Rettungs-/Einzelbenutzermodus, da du nur eine Live-CD booten würdest).

/bin

enthält Befehle, die sowohl vom Systemadministrator als auch von Benutzern verwendet werden können, die jedoch erforderlich sind, wenn keine anderen Dateisysteme bereitgestellt sind (z. B. im Einzelbenutzermodus). Es kann auch Befehle enthalten, die indirekt von Skripten verwendet werden

/usr/bin/

Dies ist das primäre Verzeichnis der ausführbaren Befehle auf dem System.

im Wesentlichen enthält /bin ausführbare Dateien, die vom System für Notfallreparaturen, Booten und Einzelbenutzermodus benötigt werden. /usr/bin Enthält alle Binärdateien, die nicht benötigt werden.

Ich werde bemerken, dass sie sich auf separaten Festplatten/Partitionen befinden können. /bin Muss sich auf derselben Festplatte wie / Befinden. /usr/bin Kann sich auf einer anderen Festplatte befinden - obwohl zu beachten ist, dass diese Konfiguration für eine Weile fehlerhaft war (aus diesem Grund warnt beispielsweise systemd beim Booten vor dieser Konfiguration).

Aus Gründen der vollständigen Korrektheit können einige Unices FHS ignorieren, da ich glaube, dass es sich nur um einen Linux-Standard handelt. Mir ist nicht bekannt, dass er bereits in SUS, Posix oder einem anderen UNIX-Standard enthalten ist, obwohl es meiner Meinung nach sein sollte. Es ist jedoch ein Teil des LSB Standards.

79
xenoterracide

Update: Für einige Informationen zur Geschichte und zum wahren Grund, warum es /usr Gibt, lesen Sie Folgendes: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html . Auch dies .


/sbin - Binärdateien, die zum Booten, zur Reparatur oder Wartung von Systemen auf niedriger Ebene benötigt werden (Run Level 1 oder S)

/bin - Binärdateien, die für die normale/Standard-Systemfunktion auf jeder Ausführungsebene benötigt werden.

/usr/bin - Anwendungs-/Verteilungsbinärdateien, auf die lokal angemeldete Benutzer zugreifen sollen

/usr/sbin - Anwendungs-/Verteilungs-Binärdateien, die Inhalte in/sbin unterstützen oder konfigurieren.

/usr/share/bin - Anwendungs-/Verteilungsbinärdateien oder Skripte, auf die über das Web zugegriffen werden soll, d. H. Apache-Webanwendungen

*local* - Binärdateien, die nicht Teil einer Distribution sind; lokal kompiliert oder manuell installiert. Es gibt normalerweise nie einen /local/bin, Sondern immer einen /usr/local/bin Und /usr/local/share/bin.

59
LawrenceC

Eine Art "Update" zu diesem Thema:

Kürzlich haben einige Linux-Distributionen /bin in /usr/bin und verwandt /lib in /usr/lib. Manchmal auch (/usr)/sbin bis /usr/bin (Arch Linux). Damit /usr wird voraussichtlich zur gleichen Zeit verfügbar sein wie /.

Die Unterscheidung zwischen den beiden Hierarchien wird jetzt als unnötige Komplexität angesehen. Die Idee war einmal nur /bin beim Booten verfügbar, aber mit einer anfängliche Ramdisk ist dies veraltet.

Ich weiß, dass Fedora Linux (2011) und Arch Linux (2012) diesen Weg gehen, und Solaris tut dies seit langer Zeit (> 15 Jahre).

18
JonnyJD

Unter Linux sind /bin Und /usr/bin Immer noch getrennt, da es üblich ist, /usr Auf einer separaten Partition zu haben (obwohl diese Konfiguration manchmal auf subtile Weise unterbrochen wird). In /bin Sind alle Befehle enthalten, die Sie benötigen, wenn Sie nur / Bereitgestellt haben.

Unter Solaris und Arch Linux (und wahrscheinlich auch unter anderen) ist /bin Ein Symlink zu /usr/bin. Arch hat auch /sbin Und /usr/sbin Mit /usr/bin Symlinkiert.

Insbesondere ist die Aussage, dass /bin Für "Systemadministrator" -Befehle und /usr/bin Für Benutzerbefehle steht, nicht wahr (es sei denn, Sie glauben, dass bash und ls nur für Administratoren sind. In diesem Fall müssen Sie noch viel lernen). Administratorbefehle befinden sich in /sbin Und /usr/sbin.

8
bahamat

Es gibt viele UNIX-basierte Systeme. Linux, AIX, Solaris, BSD usw. Das ursprüngliche Zitat enthält einen historischen Kontext, der für alle Geschmacksrichtungen gilt. Wenn Sie sich ein bestimmtes System ansehen, sehen Sie unterschiedliche Ergebnisse. Der letzte Satz des Originalzitats gilt nur für einige Versionen und Distributionen.

5
Chris Quenelle