Linux-Dateisystem

13

Was sind die Konventionen für Dateispeicherorte in Linux? Bisher habe ich es geschafft, zu folgern:

/ proc (Verweise auf laufende Prozesse)

/ dev (Verweise auf die gesamte Hardware)

/ etc (Konfigurationsdateien)

/ home (zuhause)

/ mnt (gemountete Geräte)

/ media (Wechseldatenträger wie CDs, USB-Datenträger)

... aber andere Teile sind noch unklar, zum Beispiel:

Wo lege ich die heruntergeladene Quelle ab?

/ usr / src

/ usr / local / src

Wo lege ich kompilierte Programme ab?

/Behälter

/ usr / bin

/ usr / local / bin

Was ist der Unterschied zwischen / bin und / sbin ?

Wie unterscheiden sich die Distributionen?

Mir ist klar, dass dies keine einzige Frage ist, aber es scheint mir, dass sie alle zusammen beantwortet werden sollten. Hoffentlich sind auch andere verwirrt.

Kugelfisch
quelle

Antworten:

14

Möglicherweise möchten Sie den Dateisystem-Hierarchie-Standard lesen . Es ist eine nützliche Referenz.

In Ihrem Home-Verzeichnis sollte sich das meiste befinden. Stellen Sie sich vor, Sie sind nicht der Systemadministrator. Stellen Sie sich vor, Sie wären noch eine andere Person mit einem Konto im System. In Ihrem Home-Verzeichnis können Sie z. B. /home/pufferfishtun, was Sie wollen. /home/pufferfish/bin, /home/pufferfish/libUnd /home/pufferfish/srcsind alle gängigen Möglichkeiten, aber keines davon wirklich wichtig ist .

Stellen Sie bei kompilierten Programmen, unabhängig davon, welches Verzeichnis bzw. welche Verzeichnisse Sie verwenden, sicher, dass es / sie sich auf dem Pfad befindet / befinden, damit Sie sie tatsächlich ausführen können, ohne das Skript oder den gesamten Pfad der ausführbaren Datei einzugeben.

Die Distributionen unterscheiden sich kaum. Ich habe festgestellt, dass der Paketmanager auf einem Programm möglicherweise Binärdateien installiert /usr/bin, während einige Bibliotheken an einem anderen Ort installiert werden und ein anderes System möglicherweise Dinge an einem anderen Ort installiert. Im Allgemeinen muss ich einige Nachforschungen anstellen, um herauszufinden, wohin die Dinge jedes Mal gehen.

Nikhil Chelliah
quelle
6

Es kommt nur so vor, dass es in der Welt der Unix-ähnlichen Betriebssysteme einen Standard namens Filesystem Hierarchy Standard gibt, der die von den meisten Unix-Anbietern angewandten Best Practices erläutert . Es ist eine gute Lektüre und es lohnt sich darüber nachzudenken, wenn Sie viel Zeit in * nix-Umgebungen verbringen.

Dateisystem-Hierarchie-Standard

Antworten auf Ihre Fragen:

Sowohl / usr / src als auch / usr / local / src funktionieren. Deine Entscheidung. Einfach halten ist konsequent.

/ bin steht für erforderliche Befehle für Benutzer. Ich würde dort KEINE benutzerdefinierten Binärdateien ablegen.

/ sbin ist für System-Binärdateien vorgesehen (normalerweise Sysadmin-Dateien). Es enthält Sachen zum Booten und fs utils.

In / usr / bin befinden sich die meisten Benutzerbefehle, und Sie werden normalerweise feststellen, dass die meisten Linux-Paketverwaltungssysteme hier Binärdateien oder zumindest Symlinks zu Binärdateien ablegen.

/ usr / local / bin ist ein sicherer Ort, an dem Sie Ihren eigenen kompilierten Code ablegen können, der für diesen Computer eindeutig ist.

Mark Turner
quelle
6

Vielleicht solltest du dir diese ansehen:

Alt-Text

Alt-Text

n00ki3
quelle
3

/ usr / local / ist für Software, die auf diesem System kompiliert wurde. Es ist ähnlich wie / usr /, nur dass es nicht aus Paketen installiert wurde.

/ sbin / vs / bin / (und / usr / sbin / vs / usr / bin): s steht für superuser. Programme, die normalen Benutzern egal sein sollten und die häufig keine Berechtigung zum Ausführen haben sollten

Tadeusz A. Kadłubowski
quelle