Frage Wie kann ich das Layout des Ubuntu-Dateisystems verstehen?


In Windows sind vielleicht nur ein paar wichtige Ordner (wichtig, ich meine wichtig in meinem logischen Bild des Windows-Dateisystems) im Installationslaufwerk (in meinem Fall) C:\). Nämlich Program Files und Windows. Ich bleibe einfach weg von Windows Ordner und die "add remove Programmdateien" ist gut genug, um die program files Ordner von Windows. Natürlich gibt es einen Ordner namens Users wo die Benutzer (die keine Administratoren sind) nur auf ihre Ordner zugreifen können.

Daher gibt es ein klares Bild von dem Windows-Dateisystem. In Ubuntu, wenn ich den Ort erreiche /Es gibt eine riesige Liste von Ordnern, von denen die meisten keine Ahnung haben, was sie enthalten. Das /bin Ordner scheint das Äquivalent zu sein Windows Ordner in Windows. Das /usr Ordner scheint wie das Äquivalent des Users Ordner in Windows. Aber auch die /home Ordner sieht aus wie es die Rechnung passen kann.

Bitte verstehen Sie, dass ich verstehe, dass Ubuntu (Linux) einen anderen Charakter hat als Windows, d. H. Es muss nicht exakt das Äquivalent von Windows-Funktionen in Ubuntu sein. Alles, was ich suche, ist ein etwas schärferes 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-äquivalent-of-add-or-remove-programs-in-ubuntu/ 


202
2018-05-17 18:12


Ursprung


Siehe auch die Verzeichnisaufbau tag an Unix und Linux. Alle Linux-Distributionen folgen demselben Modell. - Gilles
Danke für all deine Antworten. Ich bin ein wenig verwirrt über ein paar Punkte: In Windows bietet das Setup normalerweise durch eine Eingabeaufforderung eine Option, um eine Software für alle Benutzer zu installieren. Wie macht man diese Unterscheidung in Ubuntu? Dies ist auch ein übliches Problem beim Konfigurieren von Entwicklungssoftwares zu ihren IDEs. In Windows beispielsweise gibt es in "program files \ miktex \ bin" die Datei "pdflatex.exe". Daher kann ich die IDE auf diese Datei verweisen und sie konfigurieren. Wie läuft dieser Prozess in Ubuntu ab? Wo ist die allgemeine binäre Datei, die einer Software zugeordnet ist (insbesondere aus der Sicht der Konfiguration)? - Shashank Sawant
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" die "binäre Datei, die mit einer Software verknüpft ist" nicht. Sie sollten dies als eine separate Frage stellen und eine bessere Erklärung dafür geben, was Sie zu tun versuchen. - Gilles
Ich habs. Ich werde eine neue Frage einrahmen. Selbst dann hier eine kurze Erklärung, was ich meinte: In Windows können die .exe-Dateien leicht gefunden werden. Zum Beispiel: "C: \ Python27 \ python.exe". Ich weiß also, wo das Programm Python startet. Wenn ich jetzt die Eclipse-IDE verwenden muss, kann ich einfach auf python.exe verweisen, und das ist es, was ich mit "configure" meine. Ich habe die IDE für Python konfiguriert. In Ubuntu wo ist der Ort, wo das Programm installiert ist? Das ist, was mir immer noch entgeht. - Shashank Sawant
@Gilles Sei vorsichtig, wenn du sagst all. Das GoboLinux-Projekt verwendet tatsächlich eine Windows-ähnliche Verzeichnisstruktur. - new123456


Antworten:


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

Das Dateisystemhierarchie Standard (FHS) definiert die Hauptverzeichnisse und deren Inhalte in Linux-Betriebssystemen. In den meisten Fällen handelt es sich um eine Formalisierung und Erweiterung der traditionellen BSD-Dateisystemhierarchie.

Die FHS wird von der Linux Foundation verwaltet, einer Non-Profit-Organisation, die aus großen Software- und Hardwareherstellern wie HP, Red Hat, IBM und Dell besteht.   Die aktuelle Version ist 3.0, veröffentlicht am 3. Juni 2015.

Eine visuelle Darstellung mit einer kurzen Beschreibung:

enter image description here

Im Grunde hat Linux die Verzeichnisstruktur basierend auf der Funktion dessen, was benötigt wird, um das System so sicher wie möglich zu machen, mit der minimalen Anzahl von benötigten Berechtigungen aufgeteilt. Sonst muss jemand viel vermeidbare Arbeit verrichten.

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 darüber nachdenken, dass es Multi-User und Sicherheit ist.

3 Beispiele:

  • Sie werden sehen, dass Dateien und Verzeichnisse, die nur Administratoren sind, in demselben Verzeichnis gesammelt werden: das s in /sbin und /usr/sbin und /usr/local/sbin steht 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, basierend darauf, wo er am logischsten sein sollte. Aber wenn sie nur Admin sind, sollten sie zum sVersion dieses Verzeichnisses. Es gibt ein berühmtes Dienstprogramm namens fuser. Sie können Prozesse damit beenden. Wenn ein normaler Benutzer diese verwenden könnte, wäre er in der Lage, Ihre Sitzung zu beenden.

  • Das gleiche gilt für /home: / home / user1 ist die Eigenschaft von user1. / home / user2 ist die Eigenschaft von user2. user2 hat nichts zu tun, was in user1 zu Hause ist (und andersherum auch: user1 hat nichts zu tun, was in user2 zu Hause ist). Wenn sich alle Dateien in / home befinden würden und kein Benutzername darunter wäre, müssten Sie jeder Datei und jedem assess Berechtigungen geben, wenn jemand diese Dateien schreiben / entfernen darf. Ein Albtraum, wenn Sie Dutzende von Benutzern haben.

  • Zusatz in Bezug auf Bibliotheken.

    /lib/, /usr/lib/, und /usr/local/lib/ sind die ursprünglichen Orte, von vor multilib Systeme existierten und existierten, um das Zerbrechen von Dingen 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 optimiert. Zum Beispiel; derzeit werden Sie sehen Debian und Ubuntu viel Änderung im Layout der FHS, da SSD mit Read-Only-Dateien besser dran ist. Es gibt eine Bewegung in Richtung eines neuen Layouts, bei dem Dateien in ein "schreibgeschütztes" Verzeichnis / eine schreibbare Gruppe aufgeteilt werden, so dass wir eine root-Partition haben können, die schreibgeschützt (Partition für eine ssd) und beschreibbar ist (Sata Festplatte). Das neue Verzeichnis, das dafür verwendet wird (nicht im Bild) ist /run/.


240
2018-05-17 18:18



+1 Rinzwind. Ich mag das Bild, war eigentlich auf der Suche nach einem. - Luis Alvarado♦
Ich dachte, das würde Aufmerksamkeit bekommen: + @LuisAlvarado - Rinzwind
Es kann keine bessere Antwort geben! - Shashank Sawant
War nicht /mnt Was /media ist jetzt, vor ein paar Jahren? - RobinJ
@RobinJ: Der Unterschied ist das /mnt wurde historisch manuell verwaltet. Mit dem Aufkommen vieler transienter Geräte (Flash-Laufwerke usw.) und der automatischen Montage als Standard mussten automatisch Mount-Punkte behandelt werden. Ein neues Verzeichnis wurde benötigt, um Konflikte mit der bestehenden manuellen Konfiguration zu vermeiden. So, in diesen Tagen /mnt wurde in die Rolle des Bereitstellens eines bequemen temporären Einhängepunkts verwiesen. - Scott Severance


Gib diesem Befehl einen Versuch ...

man 7 hier

Ich hoffe es hilft


95
2018-05-17 19:58



guten Ruf! Ich vergesse immer, dass es immer vorhanden ist (auch wenn das Netz ausfällt;)) - Rinzwind
Mann sollte in "es" umbenannt werden. :))) - Shiki
man hier gehört jetzt zu meinen Lieblingsbefehlen! Die Erklärungen sind für mich klarer als die FHS-Doco, insbesondere für einen unerfahrenen Ubuntu-Benutzer, der von einer moderaten DOS / Windows-Erfahrung ausgeht, zwischen 'lokal zur Maschine' und 'site-wide' zu unterscheiden. - WillC
Übrigens die Nummer 7 Stände der Sektion Verschiedenes von hier Man Seite. - Pablo Bianchi


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 mit der Karte grob navigieren. Sie können ein hochauflösendes PNG herunterladen Hier. Sie können den zugehörigen Beitrag finden Hier. Ich werde sowohl die Datei als auch die Post aktualisieren, wenn es die Zeit erlaubt, und hilfreiche Kommentare enthalten.


37
2017-11-20 18:18



Interessante und hilfreiche Idee, um ein Flussdiagramm zu erstellen, aber leider scheint es einige Sackgassen zu haben. Meine Frage ist, ob ich eine mysqldump Wohin soll ich die Datei ausgeben? - BadHorsie
@BadHorsie natürlich hängt es immer von deinem spezifischen Anwendungsfall ab, aber dumping es in einem /home/badhorsie/mysqldump Verzeichnis würde ausreichen. Wenn Sie viele Apps ausführen, können Sie einen neuen Benutzer erstellen, um jede App auszuführen und sie in dieser App / diesem Benutzer zu speichern home Verzeichnis. - d4nyll
@ paranoid-panda, könntest du ein wenig darüber nachdenken, warum du das Bild nicht durch die volle Auflösung klickbar machen willst? Die Version in diesem Post eingebettet ist ziemlich unlesbar. - waldyrious
@Waldyrious: Wenn du dir das anschaust Überarbeitungsverlauf Sie werden sehen, dass ich nur einen Rechtschreibfehler korrigiert habe, es war ein anderer Benutzer, der das Bild auf diese besondere Weise hinzugefügt hat. Nichts mit mir zu tun. Fühlen Sie sich frei, es zu bearbeiten, dachte ich, ich kann mich nicht an die richtige Syntax erinnern, um es klickbar zu machen.
@ ParanoidPanda das ist genau das, was ich getan habe. Meine Bearbeitung hat den Tippfehler korrigiert und das Bild anklickbar gemacht, und Deine Rezension war abzulehnen und zu bearbeitenDaher meine Frage: Was haben Sie falsch daran gesehen, das Bild anklickbar zu machen? - waldyrious


Dieser 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 sind hier:

  1. /boot : Enthält den Bootloader

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

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

  4. /sbin : Dies enthält die systemfähigen 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, Boot-Zeit usw.

  7. /dev : Hier werden die Gerätedateien angezeigt, d. H. USB, Endgerät oder ein anderes Gerät, das an das System angeschlossen ist.

  8. /proc : Enthält Informationen über den laufenden Prozess.

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

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


36
2018-05-17 18:38





\Users ist äquivalent zu /home. Der Name von /usr ist ein historisches Artefakt.

Das kombinierte Äquivalent von \Windows und \Program Files ist die Kombination von /bin, /boot, /etc, /lib, /sbin, /tmp, /usr und /var. Linux und Windows teilen die installierte Software anders auf. Windows unterscheidet zwischen dem Betriebssystem und den Companion-Programmen. Linux macht diese Unterscheidung nicht auf die gleiche Weise; Die meiste, wenn nicht die gesamte Software, kommt über Ubuntu (der Verteiler) und wird in derselben Verzeichnishierarchie installiert, und da die Software vom Paketmanager verfolgt wird, ist es nicht notwendig, jedes Programm in einem eigenen Verzeichnis zu speichern. Unter Linux:

  • /etc ist für Systemkonfigurationsdateien: Konfigurationsdateien, die alle Benutzer betreffen, unabhängig davon, ob sie für das Betriebssystem als Ganzes oder für eine bestimmte Anwendung gelten.
  • /usr ist für Systemcode und Daten (Programme, Bibliotheken, Dokumentation usw.).
  • /var ist für variable oder temporäre Daten: temporäre Dateien, Protokolle, Paket-Manager-Datenbanken, Drucker-Spools, Spiel speichern, etc. Es gibt auch /tmp für temporäre Dateien, die bei Neustarts gelöscht werden können.
  • /bin, /lib und /sbin im Stammverzeichnis haben Gegenstücke in /usr. Die Dateien, die sich außerhalb befinden /usr sind diejenigen, die früh im Boot-Prozess benötigt werden. Dies ist ein Relikt aus der Zeit, als Platten klein waren und /usr möglicherweise auf einem Dateisystem, das zwischen mehreren Workstations über das Netzwerk freigegeben ist, ist dies auf den meisten Systemen keine sinnvolle Unterscheidung.
  • /boot enthält einige Dateien, die nur zum Starten 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:

  • /root ist das Home-Verzeichnis des Root-Benutzers. Der root-Benutzer ist ein Administratorkonto, das nicht an einen bestimmten Benutzer gebunden ist. Es ist der Benutzer, auf den Sie beim Ausführen wechseln sudo. Ubuntu lässt den root-Benutzer nicht standardmäßig anmelden.
  • /media und /mnt sind Mount-Punkte: Hier können Sie die Dateisysteme anderer Betriebssysteme und Remote-Laufwerke sehen. Das Windows-Äquivalent ist andere Laufwerkbuchstaben.
  • /proc und /sys Systeminformationen 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 in der Regel dem Linux Dateisystemhierarchie Standard.


19
2018-05-17 18:48





Ubuntu organisiert (wie alle UNIX-artigen Systeme) Dateien in einer hierarchischen Struktur, in der Beziehungen in Teams aus 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 Referenzen durch einen Pfadnamen sein; Ein absoluter Pfadname beginnt mit dem Zeichen / (das das Stammverzeichnis angibt, das alle anderen Verzeichnisse und Dateien enthält). Dann wird jedes untergeordnete Verzeichnis aufgelistet, das durchlaufen werden muss, um das Element zu erreichen. Jedes Verzeichnis wird durch ein / -Zeichen getrennt.

Ein relativer Pfadname ist einer, der nicht mit / beginnt; In diesem Fall wird der Verzeichnisbaum ausgehend von einem gegebenen Punkt durchlaufen, der sich abhängig vom Kontext, dem aktuellen Verzeichnis, ändert. In jedem Verzeichnis gibt es zwei spezielle Verzeichnisse, die aufgerufen werden. und .., die sich jeweils auf das Verzeichnis selbst und auf sein Elternverzeichnis beziehen.

Die Tatsache, dass alle Dateien und Verzeichnisse eine gemeinsame Wurzel haben, bedeutet, dass, selbst wenn mehrere verschiedene Speichergeräte auf dem System vorhanden sind, sie alle als Verzeichnisse irgendwo in der Struktur gesehen werden, sobald sie an der gewünschten Stelle montiert sind

Hier finden Sie Beispiele und weitere Informationen:


5
2018-05-17 18:18



Sehr gute Verbindung. Danke Stephen. - Luis Alvarado♦