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