Unterschiede zwischen / bin, / sbin, / usr / bin, / usr / sbin, / usr / local / bin, / usr / local / sbin


Zur akzeptierten Antwort gehen


Ich habe sechs Verzeichnisse mit Befehlsdateien. Diese sind /bin , /sbin , /usr/bin , /usr/sbin , /usr/local/bin und /usr/local/sbin .

Was sind die Unterschiede zwischen diesen? Wenn ich meine eigenen Skripte schreibe, wo soll ich sie hinzufügen?


Verbunden:


294





2013-06-14




Anzahl der Antworten: 2


Bitte beachten Sie hierzu den Filesystem Hierarchy Standard (FHS) für Linux .

  • /bin : Für Binärdateien, die vor dem /usr Mounten der Partition verwendet werden können. Dies wird für triviale Binärdateien verwendet, die in der sehr frühen Startphase verwendet wurden oder die im Start-Einzelbenutzermodus verfügbar sein müssen. Denken Sie an Binärdateien wie cat , ls usw.

  • /sbin : Gleich, aber für Binärdateien mit Superuser-Rechten (Root-Rechten) erforderlich .

  • /usr/bin : Wie zuerst, aber für allgemeine systemweite Binärdateien .

  • /usr/sbin : Wie oben, jedoch für Binärdateien mit Superuser-Rechten (Root-Rechten) erforderlich.


Wenn ich meine eigenen Skripte schreibe, wo soll ich diese hinzufügen?

Nichts des oben Genannten. Sie sollten /usr/local/bin oder /usr/local/sbin für systemweit verfügbare Skripte verwenden. Der local Pfad bedeutet, dass er nicht von den Systempaketen verwaltet wird (dies ist ein Fehler bei Debian / Ubuntu-Paketen).

Für Benutzer-scoped Skripte , Verwendung ~/bin (ein persönlicher Ordner ist in Ihrem Home - Verzeichnis).

Die FHS sagt für /usr/local :

Tertiäre Hierarchie für lokale Daten, die für diesen Host spezifisch sind . Typischerweise hat weitere Unterverzeichnisse, zum Beispiel bin/ , lib/ , share/ .


357


2013-06-14

Ich hatte selbst vor einem Jahr eine ähnliche Frage: Bestes Verzeichnis, um meine Bash-Skripte zu platzieren?

Systemverzeichnisse für Binärdateien

man hier (Hierarchie) listet alle Verzeichnisse auf. Um die nur für Binärdateien zu erhalten, verwenden Sie:

 $ man hier | grep -E 'bin$|sbin$|^.{7}(/bin)|^.{7}(/sbin)' -A2

       /bin   This directory contains executable programs which are needed in single user
              mode and to bring the system up or repair it.

--
       /sbin  Like  /bin,  this  directory  holds commands needed to boot the system, but
              which are usually not executed by normal users.

--
       /usr/X11R6/bin
              Binaries  which  belong  to the X-Window system; often, there is a symbolic
              link from the more traditional /usr/bin/X11 to here.
--
       /usr/bin
              This  is the primary directory for executable programs.  Most programs exe‐
              cuted by normal users which are not needed for booting or for repairing the
--
       /usr/local/bin
              Binaries for programs local to the site.

--
       /usr/local/sbin
              Locally installed programs for system administration.

--
       /usr/sbin
              This directory contains program binaries for  system  administration  which
              are  not  essential  for the boot process, for mounting /usr, or for system
 

Wo können Sie Ihre eigenen Skripte ablegen?

Damit alle Benutzer auf Ihre Skripte zugreifen können, können Sie sie eingeben /usr/local/bin . Denken Sie daran, dass Sie hier sudo Zugriff zum Hinzufügen / Ändern von Dateien benötigen . Siehe: Gibt es einen Standardspeicherort für benutzerdefinierte Linux-Skripte?

Fügen Sie Skripte für Ihre eigene Benutzer-ID ein /home/YOUR_NAME/bin . Denken Sie daran, dass Sie zuerst dieses Verzeichnis erstellen und das Terminal neu starten müssen, damit der Pfad von automatisch eingerichtet wird ~/.profile . Siehe: Wie füge ich / home / username / bin zu $ ​​PATH hinzu?


Was ich weiß, weiß ich nicht

Ich denke darüber nach, einige meiner komplexeren Bash-Skripte in Ask Ubuntu zu verwenden und sie mit install-Skripten einzurichten github . Hier einige Beispiele:

Ich denke, die Skripte sollten installiert werden, in /usr/bin denen sich der $ PATH befindet, aber ich bin mir noch nicht sicher, an welcher Stelle sie sich befinden.


10


2018-06-11