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


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 sollte ich sie hinzufügen?


Verbunden:


221
2018-06-14 07:13


Ursprung


Verwandte Frage: unix.stackexchange.com/questions/8656/... - Gabriel Staples
@Keelan Deine Frage steht kurz vor einer Frage, die ich vor einem Jahr gepostet habe: askubuntu.com/questions/830074/ ... - WinEunuuchs2Unix


Antworten:


Bitte wende dich an die Dateisystemhierarchie Standard (FHS) für Linux dafür.

  • /bin : Für Binärdateien, die vor dem verwendet werden können /usr Partition ist eingehängt. Dies wird für triviale Binärdateien verwendet, die in der sehr frühen Boot-Phase verwendet werden, oder solche, die beim Booten im Einzelbenutzermodus verfügbar sein müssen. Denken Sie an Binärdateien wie cat, ls, etc.

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

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

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


wenn ich meine eigenen Skripte schreibe, wo sollte ich diese hinzufügen?

Nichts des oben Genannten. Du solltest benutzen /usr/local/bin oder /usr/local/sbin für systemweit verfügbare Skripte. Das local Pfad bedeutet, dass es nicht von den Systempaketen verwaltet wird (das ist ein Fehler für Debian / Ubuntu-Pakete).

Zum Benutzer-Scripts, benutzen ~/bin (ein persönlicher Ordner in Ihrem Home-Verzeichnis).

Die FHS sagt für /usr/local:

Tertiäre Hierarchie für lokale Daten, spezifisch für diesen Host. Typischerweise hat es weitere Unterverzeichnisse, z. bin/, lib/, share/.


291
2018-06-14 07:17



So / bin ist, wo alle Kerndateien installiert sind. wie ls, katze, pwd, etc? Also, / usr / bin ist wo Benutzer installierte Apps sind? Was sind einige Beispiele dafür, was in / usr / bin sein sollte? - Patoshi パトシ
Platziert Skripte in /bin Probleme verursachen? Ich habe meine Skripte entsprechend Ihrer Antwort verschoben, bin aber immer noch neugierig - Rumesh
@RumeshSudhaharan sollten Sie das nicht tun, weil es von der Paketverwaltung verwaltet wird. Wenn ein anderes Paket diesen Pfad auch verwenden möchte, überschreibt es Ihre Datei. Dateien in Paketen können sich niemals überschneiden (zumindest für offizielle Repositorys), sodass Sie bei der Installation im lokalen Pfad sicherer sind. Außerdem ist es nur für Ihre eigene Bequemlichkeit und Sicherheit. In einem lokalen Pfad können Sie das System nicht so schlecht durcheinander bringen und Sie können nicht versehentlich eine System-Binärdatei ersetzen. - gertvdijk
Ich mag die Erklärung auf der Fehlerseite: Severity:Serious Certainty:Certain - cutrightjm
Ich habe einige Dateien in / usr / local / bin abgelegt und kann sie ausführen, aber ich kann sie nicht bearbeiten, ls -la zeigt nichts - M. Reza Nasirloo


Ich hatte 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 bekommen, benutze:

$ 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 platzieren?

Damit alle Benutzer auf Ihre Skripts zugreifen können, können Sie sie einfügen /usr/local/bin. Denken Sie daran, Sie brauchen sudo Zugriff zum Hinzufügen / Ändern von Dateien hier. Sehen: Gibt es einen Standardplatz für benutzerdefinierte Linux-Skripte?

Für Ihre eigenen Benutzer-ID-Skripte legen Sie sie in /home/YOUR_NAME/bin. Beachten Sie, dass Sie dieses Verzeichnis zuerst erstellen und das Terminal neu starten müssen, damit der Pfad automatisch eingerichtet wird ~/.profile. Sehen: Wie fügt man / home / username / bin zu $ ​​PATH hinzu?


Was ich weiß, weiß ich nicht

Ich überlege mir, einige meiner komplexeren Bash-Skripte zu nehmen Fragen Sie Ubuntu und richten Sie sie mit Installationsskripten ein github. Hier sind einige Beispiele:

ich denken Die Skripte sollten in installiert werden /usr/bin was ist in der $ PATH, aber ich bin mir noch nicht sicher, an dem richtigen Ort.


3
2018-06-11 23:44



Ich schätze Ihre Bemühungen, aber außer dem Teil "Was ich weiß, weiß ich nicht" wiederholten Sie die Antwort von Gertvdijk. - danzel
@danzel Ich denke, der Schlüssel ist der man hier Abschnitt, auf den sich die Antwort von gertvdijk nicht geeinigt hat. Dh Sie können die Verzeichnishierarchiestruktur in der Befehlszeile aufrufen, ohne auf das Lesen im Web zurückgreifen zu müssen (zB hier). - WinEunuuchs2Unix
das ist interessante Information, stimme ich zu. Gertvdijk erwähnte bereits den Dateisystem-Hierarchie-Standard (welcher man hier ist ein informativ unzureichender Auszug aus IMO). Dies kann jedoch meine persönliche Meinung sein. - danzel
@danzel Ich stimme zu, Websites haben eine viel tiefere Analyse als das, was auf unseren Festplatten ist. Ich versuche nur darauf hinzuweisen, dass die Informationen auf unseren Festplatten gespeichert sind, ohne das Internet zu nutzen. Außerdem wird der Wikipedia-Link zitiert fehlt  /usr/X11R6/bin und /usr/local/bin welches ist in enthalten man heir. - WinEunuuchs2Unix