GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Unterschied zwischen /bin und /usr/bin

Was? kein /bin/ ist kein symbolischer Link zu /usr/bin auf jedem FHS-kompatiblen System. Beachten Sie, dass es immer noch beliebte Unices und Linuxe gibt, die dies ignorieren - zum Beispiel /bin und /sbin sind symbolisch mit /usr/bin verknüpft auf Arch Linux (der Grund dafür ist, dass Sie /bin nicht benötigen für Rettungs-/Einzelbenutzermodus, da Sie nur eine Live-CD booten würden).

/bin

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

/usr/bin/

Dies ist das Hauptverzeichnis ausführbarer Befehle auf dem System.

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

Ich werde anmerken, 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 - beachten Sie jedoch, dass diese Konfiguration seit einiger Zeit nicht mehr funktioniert (deshalb warnt z. B. systemd vor dieser Konfiguration beim Booten).

Für die volle Korrektheit ignorieren einige Unices möglicherweise FHS, da ich glaube, dass es nur ein Linux-Standard ist. Mir ist nicht bekannt, dass es noch in SUS, Posix oder einem anderen UNIX-Standard enthalten ist, obwohl es IMHO sein sollte. Es ist jedoch ein Teil des LSB-Standards.


Update:Für etwas Geschichte und den wahren Grund, warum es /usr gibt , lesen Sie dies:http://lists.busybox.net/pipermail/busybox/2010-December/074114.html. Auch das.

/sbin - Binärdateien, die zum Booten, zur Reparatur des Systems auf niedriger Ebene oder zur Wartung benötigt werden (Ausführungsebene 1 oder S)

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

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

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

/usr/share/bin - Anwendungs-/Distributions-Binärdateien oder Skripte, auf die über das Internet zugegriffen werden soll, z. B. Apache-Webanwendungen

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


Eine Art "Update" zu diesem Thema:

Vor kurzem führen einige Linux-Distributionen /bin zusammen in /usr/bin und damit zusammenhängend /lib in /usr/lib . Manchmal auch (/usr)/sbin bis /usr/bin (Arch Linux).Also /usr wird voraussichtlich gleichzeitig mit / verfügbar sein .

Die Unterscheidung zwischen den beiden Hierarchien wird jetzt als unnötige Komplexität angesehen. Die Idee war einmal, nur /bin zu haben beim Booten verfügbar, aber eine anfängliche Ramdisk macht dies obsolet.

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

  • freedesktop:TheCaseForTheUsrMerge
  • fedora:UsrMove-Funktion
  • arch:/bin, /sbin, /lib in /usr/bin und /usr/lib zusammenführen

Linux
  1. Unterschied zwischen /bin/false &/sbin/nologin

  2. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  3. Was ist der Unterschied zwischen /sbin/nologin und /bin/false?

  4. Der Unterschied zwischen /opt und /usr/local?

  5. Linux – Zusammenführen von /usr/bin und /usr/sbin in /bin (gnu/linux)?

Seltsamer Unterschied zwischen Pwd und /bin/pwd?

Warum zeigt /bin/sh auf /bin/dash und nicht auf /bin/bash?

Installieren Sie Binärdateien in /bin, /sbin, /usr/bin und /usr/sbin, Interaktionen mit --prefix und DESTDIR

Was bedeuten /usr/sbin, /usr/local/sbin und /usr/local/bin?

Wann muss ich #!/bin/bash und wann #!/bin/sh verwenden?

Was ist der Unterschied zwischen /tmp und /run?