Wie verstehe ich das Layout des Ubuntu-Dateisystems?

220

In Windows befinden sich (in meinem Fall C:\) möglicherweise nur einige wichtige Ordner (wichtig, meine ich wichtig in meinem logischen Abbild des Windows-Dateisystems) auf dem Installationslaufwerk . Nämlich Program Filesund Windows. Ich halte mich einfach von Ordnern fern Windowsund das "Hinzufügen Entfernen von Programmdateien" ist gut genug, um den program filesOrdner von Windows zu handhaben . Natürlich gibt es einen Ordner, Usersin dem die Benutzer (die keine Administratoren sind) nur auf ihre Ordner zugreifen können.

Daher sehe ich in gewisser Hinsicht ein klares Bild des Windows-Dateisystems. Wenn ich in Ubuntu den Speicherort erreiche /, gibt es eine riesige Liste von Ordnern, von denen die meisten keine Ahnung haben, was sie enthalten. Der /binOrdner scheint dem WindowsOrdner in Windows zu entsprechen. Der /usrOrdner scheint das Äquivalent des UsersOrdners in Windows zu sein. Aber auch die /homeMappe sieht so aus, als könnte sie in die Rechnung passen.

Bitte haben Sie Verständnis dafür, dass Ubuntu (Linux) einen anderen Charakter als Windows hat, dh, dass Windows-Funktionen in Ubuntu nicht exakt gleichwertig sein müssen. Alles, was ich suche, ist ein etwas klareres Bild des Ubuntu-Dateisystems.

Diese Frage ist Teil einer größeren Frage, die ich aufspalte, um sie beantwortbarer zu machen. Die ursprüngliche Frage finden Sie hier:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/

Shashank Sawant
quelle
3
Siehe auch das Verzeichnisstruktur- Tag unter Unix & Linux . Alle Linux-Distributionen folgen demselben Modell.
Gilles
Vielen Dank für alle Ihre Antworten. Ich bin ein bisschen verwirrt über ein paar Punkte: In Windows bietet das Setup normalerweise über eine Eingabeaufforderung die Möglichkeit, eine Software für alle Benutzer zu installieren. Wie kann man diese Unterscheidung in Ubuntu treffen? Dies ist auch ein übliches Problem bei der Konfiguration von Entwicklungssoftware für ihre IDEs. In Windows befindet sich zum Beispiel in "program files \ miktex \ bin" die Datei "pdflatex.exe". Somit kann ich die IDE auf diese Datei verweisen und konfigurieren. Wie gehe ich in Ubuntu vor? Wo ist die allgemeine Binärdatei, die einer Software zugeordnet ist (insbesondere aus Konfigurationssicht)?
Shashank Sawant
2
In Ubuntu installieren Sie normalerweise Software für alle Benutzer. Alles, was Sie über den Paketmanager tun, ist für alle Benutzer. Ich verstehe den Rest deines Kommentars nicht. man "konfiguriert" nicht die "Binärdatei, die einer Software zugeordnet ist". Sie sollten dies als separate Frage stellen und besser erklären, was Sie tun möchten.
Gilles
Verstanden. Ich werde eine neue Frage formulieren. Selbst dann ist hier eine kurze Erklärung dessen, was ich meinte: In Windows können die EXE-Dateien leicht gefunden werden. Zum Beispiel: "C: \ Python27 \ python.exe". Ich weiß also, woher das Programm Python kommt. Wenn ich nun die Eclipse-IDE verwenden muss, kann ich sie einfach auf python.exe verweisen, und das habe ich mit "configure" gemeint. Ich habe die IDE für Python konfiguriert. Wo ist in Ubuntu der Ort, an dem das Programm installiert ist? Das ist es, was mir immer noch ausweicht.
Shashank Sawant
2
@ Gilles Sei vorsichtig, wenn du sagst all. Das GoboLinux-Projekt verwendet eine Windows-ähnliche Verzeichnisstruktur.
new123456

Antworten:

251

Sie können dies zum Beispiel auf Wikipedia nachlesen. Ein Ausschnitt:

Der Filesystem Hierarchy Standard (FHS) definiert die Hauptverzeichnisse und deren Inhalte in Linux-Betriebssystemen. Zum größten Teil handelt es sich um eine Formalisierung und Erweiterung der traditionellen BSD-Dateisystemhierarchie.

Das FHS wird von der Linux Foundation verwaltet, einer gemeinnützigen Organisation, die sich aus bedeutenden Software- und Hardwareanbietern wie HP, Red Hat, IBM und Dell zusammensetzt. Die aktuelle Version ist 3.0 und wurde am 3. Juni 2015 veröffentlicht.

Eine visuelle Darstellung mit einer kurzen Beschreibung:

Bildbeschreibung hier eingeben

Grundsätzlich hat Linux die Verzeichnisstruktur nach den Funktionen unterteilt, die erforderlich sind, um das System so sicher wie möglich zu machen, und zwar mit der erforderlichen Mindestanzahl an Berechtigungen. Andernfalls muss jemand viel vermeidbare Arbeit leisten.

Denken Sie daran, dass Unix und Linux als Mehrbenutzersysteme erstellt wurden und Windows für einen einzelnen Benutzer erstellt wurde. Alles andere kann aus dieser Idee erklärt werden. Sie können jedes Verzeichnis erklären, wenn Sie daran denken, dass es mehrere Benutzer umfasst und sicher ist.

3 Beispiele:

  • Sie werden sehen, dass Dateien und Verzeichnisse, die nur für Administratoren bestimmt sind, im selben Verzeichnis zusammengefasst sind: s in /sbinund /usr/sbinund /usr/local/sbinstehen für system. Ein normaler Benutzer kann nicht einmal Programme starten, die sich dort befinden. Dateien, die ein normaler Benutzer starten kann, befinden sich in / bin, / usr / bin, / usr / local / bin, je nachdem, wo sie sich am logischsten befinden sollten. Wenn sie jedoch nur Administratoren sind, sollten sie zur sVersion dieses Verzeichnisses wechseln . Es gibt ein berühmtes Hilfsprogramm namens fuser. Sie können damit Prozesse beenden. Wenn ein normaler Benutzer diese verwenden könnte, könnte er Ihre Sitzung beenden.

  • Gleiches gilt für /home: / home / user1 ist Eigentum von user1. / home / user2 ist Eigentum von user2. Benutzer2 hat kein Geschäft damit, Dinge bei Benutzer1 zu Hause zu erledigen (und umgekehrt ist es auch so: Benutzer1 hat kein Geschäft damit, Dinge bei Benutzer2 zu erledigen). Wenn sich alle Dateien in / home ohne Benutzernamen befinden würden, müssten Sie jeder Datei Berechtigungen erteilen und beurteilen, ob jemand diese Dateien schreiben / entfernen darf. Ein Albtraum, wenn Sie Dutzende von Benutzern haben.

  • Ergänzung zu Bibliotheken.

    /lib/, /usr/lib/Und /usr/local/lib/sind die ursprünglichen Positionen von vor multilib Systeme existierten und der exist brechen Dinge zu verhindern. /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/Sind 32- / 64-Bit - multilib Erfindungen.

Es ist keineswegs ein statisches Konzept. Andere Linux-Varianten haben dieses Layout verbessert. Zum Beispiel; Derzeit werden Sie feststellen, dass sich Debian und Ubuntu im Layout der FHS stark verändern, da SSD mit schreibgeschützten Dateien besser abschneidet. Es gibt eine Bewegung in Richtung eines neuen Layouts, in dem Dateien in ein schreibgeschütztes und ein schreibgeschütztes Verzeichnis / eine schreibgeschützte Gruppe aufgeteilt werden, sodass eine Root-Partition bereitgestellt werden kann, die schreibgeschützt (Partition für eine SSD) und schreibgeschützt ist (SATA HDD). Das neue Verzeichnis, das dafür verwendet wird (nicht im Bild), ist /run/.

Rinzwind
quelle
18
+1 Rinzwind. Ich mag das Bild, suchte eigentlich nach einem.
Luis Alvarado
5
ha dachte, das würde Aufmerksamkeit erregen: + @ LuisAlvarado
Rinzwind
4
Es gibt keine bessere Antwort!
Shashank Sawant
1
War nicht /mntwas /mediaist jetzt, vor ein paar Jahren?
RobinJ
9
@RobinJ: Der Unterschied ist, dass in /mntder Vergangenheit manuell verwaltet wurde. Mit dem Aufkommen vieler vorübergehender Geräte (Flash-Laufwerke usw.) und der automatischen Montage wurde es erforderlich, Bereitstellungspunkte automatisch zu handhaben. Es wurde ein neues Verzeichnis benötigt, um Konflikte mit der vorhandenen manuellen Konfiguration zu vermeiden. In diesen Tagen /mntwurde daher die Rolle des Bereitstellens eines bequemen temporären Bereitstellungspunkts verworfen.
Scott Severance
104

Probieren Sie diesen Befehl aus ...

man 7 hier

Sie können diese Handbuchseite auch hier anzeigen: http://manpages.ubuntu.com/manpages/de/man7/hier.7.html

Ich hoffe es hilft

Pritesh Wadhia
quelle
1
guten anruf! Ich vergesse das immer, obwohl es immer vorhanden ist (auch wenn das Netz
ausgefallen
1
Mann sollte in "es" umbenannt werden. :)))
Shiki
man hiergehört jetzt zu meinen lieblingsbefehlen! Die Erklärungen sind für mich klarer als das FHS-Dokument, insbesondere die Unterscheidung zwischen 'local to the machine' und 'site wide' für einen unerfahrenen Ubuntu-Benutzer, der von moderaten DOS / Windows-Erfahrungen übergeht.
WillC
Übrigens steht die Nummer 7 im Abschnitt Verschiedenes der hier man page.
Pablo A
hmm. Für das, was es wert ist, erinnert mich diese Art von Antwort an eine reine Link-Antwort, obwohl es wahrscheinlich ist, dass jede Ubuntu-Version diese haben wird. Können Sie einen Teil des Inhalts der Manpage in Ihre Antwort einbeziehen?
JRH
45

Späte Antwort - Ich habe eine Roadmap für Anfänger erstellt. Wenn sie nach einer Datei suchen, aber nicht wissen, wo sie suchen sollen, können sie mithilfe der Karte grob navigieren. Sie können eine hallo-res PNG herunterladen hier . Den dazugehörigen Beitrag finden Sie hier . Ich werde weiterhin sowohl die Datei als auch den Beitrag aktualisieren, wenn es die Zeit erlaubt, und dabei hilfreiche Kommentare einfügen.

d4nyll
quelle
Interessante und hilfreiche Idee, ein Flussdiagramm zu erstellen, aber leider scheint es einige Sackgassen zu geben. Meine Frage ist, ob ich eine mysqldumpWo soll ich die Datei ausgeben?
BadHorsie
@ BadHorsie natürlich würde es immer von Ihrem speziellen Anwendungsfall abhängen, aber es /home/badhorsie/mysqldumpwürde ausreichen , es in einem Verzeichnis abzulegen. Wenn Sie viele Apps ausführen, können Sie einen neuen Benutzer erstellen, um jede App auszuführen, und sie im homeVerzeichnis dieser App / dieses Benutzers ablegen.
d4nyll
@ paranoid-panda, könnten Sie etwas näher darauf eingehen, warum Sie nicht zulassen, dass das Bild in voller Auflösung angeklickt werden kann? Die in diesen Beitrag eingebettete Version ist so gut wie nicht lesbar.
Waldyrious
@waldyrious: Wenn Sie den Blick auf die Versionshistorie Sie werden sehen , dass ich nur ein Rechtschreibfehler korrigiert, es war ein anderer Benutzer, der das Bild in dieser besonderen Art und Weise hinzugefügt. Nichts mit mir zu tun. Fühlen Sie sich frei, es zu bearbeiten, dachte, ich kann mich nicht an die richtige Syntax erinnern, um es klickbar zu machen.
@ParanoidPanda genau das habe ich getan. Durch meine Bearbeitung wurde der Tippfehler behoben und das Bild anklickbar gemacht. Ihre Überprüfung bestand darin, das Bild abzulehnen und zu bearbeiten . Daher meine Frage: Was haben Sie falsch gesehen, wenn Sie das Bild anklickbar gemacht haben?
Waldyrious
36

Der folgende Text zeigt die Verzeichnisstruktur.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

Die Hauptkomponenten hier sind:

  1. /boot : Enthält den Bootloader

  2. /home : Enthält die Home-Verzeichnisse der Benutzer.

  3. /bin : Hier befinden sich alle ausführbaren Binärdateien und Befehle, die von allen Benutzern auf dem System verwendet werden.

  4. /sbin : Enthält die vom System ausführbaren Binärdateien, die normalerweise von Systemadministratoren verwendet werden.

  5. /lib : Enthält die Systembibliotheken, die die Binärdateien in / bin und / sbin unterstützen.

  6. /etc : Enthält die Konfigurationsdateien für Netzwerk, Startzeit usw.

  7. /dev : Hier werden die Gerätedateien angezeigt, dh USB, Endgerät oder ein anderes an das System angeschlossenes Gerät.

  8. /proc : Enthält Informationen zum ausgeführten Prozess.

  9. /tmp: Dies ist das temporäre Verzeichnis, in dem viele Prozesse die erforderlichen temporären Dateien erstellen. Dies wird bei jedem Systemstart gelöscht.

Für weitere Details, Thegeekstuff Link perfekt erklären das generische Linux-Dateisystem.

mtk
quelle
20

\Usersist äquivalent zu /home. Der Name /usrist ein historisches Artefakt.

Die kombinierte äquivalent \Windowsund \Program Filesist die Kombination von /bin, /boot, /etc, /lib, /sbin, /tmp, /usrund /var. Linux und Windows teilen die installierte Software unterschiedlich auf. Windows unterscheidet zwischen dem Betriebssystem und den Begleitprogrammen. Linux macht diese Unterscheidung nicht auf die gleiche Weise. Die meiste, wenn nicht die gesamte Software über Ubuntu (den Distributor) kommt und in derselben Verzeichnishierarchie installiert ist. Da die Software vom Paketmanager verfolgt wird, muss nicht jedes Programm in einem eigenen Verzeichnis gespeichert werden. Unter Linux:

  • /etc Für Systemkonfigurationsdateien: Konfigurationsdateien, die alle Benutzer betreffen, unabhängig davon, ob sie für das gesamte Betriebssystem oder für eine bestimmte Anwendung gelten.
  • /usr ist für Systemcode und Daten (Programme, Bibliotheken, Dokumentation usw.).
  • /varDies gilt für variable oder temporäre Daten: temporäre Dateien, Protokolle, Paketmanager-Datenbanken, Druckerspools, Speicherdateien /tmpfür Spiele usw. Es gibt auch temporäre Dateien, die nach einem Neustart gelöscht werden können.
  • /bin, /libund /sbinim Stammverzeichnis haben Gegenstücke in /usr. Die Dateien, die sich außerhalb /usrbefinden, werden zu Beginn des Startvorgangs benötigt. Dies ist ein Relikt aus der Zeit, als die Festplatten noch klein waren und sich /usrmöglicherweise in einem Dateisystem befanden, das von mehreren Arbeitsstationen über das Netzwerk gemeinsam genutzt wird. Auf den meisten Systemen ist dies keine wirklich nützliche Unterscheidung.
  • /boot Enthält einige Dateien, die nur zum Booten des Betriebssystems und nicht für den täglichen Betrieb benötigt werden.

Es gibt zusätzliche Verzeichnisse, die nichts mit Windows zu tun haben:

  • /rootist das Home-Verzeichnis des Root-Benutzers. Der Root-Benutzer ist ein Administratorkonto, das nicht an einen bestimmten Benutzer gebunden ist. Es ist der Benutzer, zu dem Sie bei der Ausführung wechseln sudo. Ubuntu lässt den Root-Benutzer nicht standardmäßig anmelden.
  • /mediaund /mntsind Einhängepunkte: Hier können Sie die Dateisysteme anderer Betriebssysteme und Remote-Laufwerke anzeigen. Das Windows-Äquivalent sind andere Laufwerksbuchstaben.
  • /procund /sysSysteminformationen anzeigen. Unter Windows müssen Sie durch Menüs blättern oder Systembefehle aufrufen oder Programme von Drittanbietern installieren, um diese Informationen anzuzeigen.

Ubuntu folgt, wie andere Linux-Distributionen auch, im Allgemeinen dem Linux Filesystem Hierarchy Standard .

Gilles
quelle
5

Ubuntu organisiert (wie alle UNIX-ähnlichen Systeme) Dateien in einem hierarchischen Baum, in dem Beziehungen in Teams von Kindern und Eltern gedacht werden. Verzeichnisse können andere Verzeichnisse sowie reguläre Dateien enthalten, die die "Blätter" des Baums sind. Jedes Element des Baums kann durch einen Pfadnamen referenziert werden. Ein absoluter Pfadname beginnt mit dem Zeichen / (der das Stammverzeichnis angibt, das alle anderen Verzeichnisse und Dateien enthält). Anschließend wird jedes untergeordnete Verzeichnis, das durchsucht werden muss, um das Element zu erreichen, durch ein / -Zeichen getrennt aufgelistet.

Ein relativer Pfadname beginnt nicht mit /; In diesem Fall wird der Verzeichnisbaum ab einem bestimmten Punkt durchlaufen, der sich je nach Kontext ändert und als aktuelles Verzeichnis bezeichnet wird. In jedem Verzeichnis gibt es zwei spezielle Verzeichnisse. und .., die sich jeweils auf das Verzeichnis selbst und auf das übergeordnete Verzeichnis beziehen.

Die Tatsache, dass alle Dateien und Verzeichnisse ein gemeinsames Stammverzeichnis haben, bedeutet, dass, selbst wenn mehrere verschiedene Speichergeräte im System vorhanden sind, diese alle als Verzeichnisse im Baum angezeigt werden, sobald sie an der gewünschten Stelle bereitgestellt werden

Beispiele und weitere Informationen finden Sie hier :

stephenmyall
quelle