Zum Inhalt springen

Linux/Dateisystem/Hierarchie: Unterschied zwischen den Versionen

Aus Foxwiki
Weiterleitung nach Filesystem Hierarchy Standard erstellt
 
(34 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' - Kurzbeschreibung
#WEITERLEITUNG [[Filesystem Hierarchy Standard]]
 
== Beschreibung ==
; Hierarchische Struktur
* Lange Zeit hat jedes Unix-Derivat seine eigenen Vorstellungen vom Aufbau seiner Datei­verwaltung mitgebracht, aber unterdessen ist man sich mehr oder weniger einig geworden und erarbeitete den Filesystem Hierarchie Standard, der wichtige Strukturen definiert.
* Die meisten Distributionen folgen diesen Richtlinien, wobei Abweichungen oft durch unterschiedliche Auslegung des Standards begründet werden.
* Neben der Beschreibung der vorgesehenen Verwendung jedes Verzeichnisses, werden auch konkrete Kommandos genannt, die mindestens in diesen Verzeichnissen vorhanden sein müssen. Des Weiteren finden systemspezifische Vorgaben und optionale Komponenten Erwähnung.
* Sobald der Kernel aktiv ist, lädt er als Erstes das Root-Filesystem, in dem alle für die Aufgaben des Kernels notwendigen Programme und Konfigurationsdateien angesiedelt sein müssen.
 
Zu den Programmen gehören
* Dienstprogramme zum Prüfen und Reparieren des Dateisystems
* Programme zum Sichern der Systemdaten und zur Installation neuer Systemteile
* Eventuell wichtige Netzwerkprogramme
 
 
* Als Benutzer werden Sie alle Daten als Dateien auf einem Datenträger (meist einer Festplatte) speichern. (Texte, Einstellungen, Programme usw.)
* Um auf diese Daten zugreifen zu können, werden Sie mit einem Namen und weiteren Eigenschaften in einem Ablagesystem geordnet.
* Ein Dateisystem ist ein Ordnungsschema für Dateien. Dateien werden in Verzeichnissen zusammengefasst. Ver­zeichnisse sind also Behälter für Dateien.
* Ein Verzeichnis kann sowohl Dateien als auch weitere Verzeichnisse enthalten. Verzeichnisse werden so hierar­chisch unter dem Wurzelverzeichnis (''root-directory'') angeordnet.
 
; Unterschiede zu Windows
 
{| class="wikitable sortable options"
|-
! Option !! Beschreibung
|-
| Laufwerksbuchstaben || Das Root-Verzeichnis wird durch den Slash ('''/''') repräsentiert und hat keinen weiteren Namen.
|-
| Slash (/) und Backslash (\) || Der Slash ('''/''') wird als Trennzeichen bei der Angabe von Dateipfaden benutzt.
|}
 
; Beispiel
Eine Datei die sich in Ihrem Home-Verzeichnis befindet, kann folgende Ortsangabe haben:
/home/user/text
 
Sie möchten mit dem Befehl '''cat''' eine Datei anzeigen, die sich auf einer cdrom befindet
cat·/cdrom/text
 
== Übersicht ==
* Nach der Installation von Linux befinden sich eine ganze Reihe von Systemverzeichnissen auf Ihrer Festplatte.
* Jedes dieser Verzeichnisse hat eine genau festgelegte Aufgabe. In der folgenden Grafik ist ein Ausschnitt aus der Verzeichnisstruktur eines UNIX-Systems abgebildet.
* Diese bei allen UNIX-Systemen ähnliche Struktur wird als File System Hierarchie-Standart bezeichnet. Alle UNIX-Dialekte müssen sich daran messen lassen, wie eng sie sich an diesen Standard halten.
* Man spricht hier bildlich von einem (umgedrehten) Baum, dessen Wurzel das Stammverzeichnis ('''/''') ist.
* Das Stammverzeichnis (root) ist also das Vaterverzeichnis für die darunter liegenden Kind-Verzeichnisse ('''bin, dev, etc''' ...).
* Die Kind-Verzeichnisse '''user, pub, ftp''' und '''www''' haben '''home''' als Vater-Verzeichnis. Genau wie bei einem Familienstammbaum kann zwar ein Vater mehrere Kinder haben, ein Kind jedoch immer nur einen Vater.
* Da Unix ein Multi-User-Betriebssystem ist, wird auf eine strikte Trennung von System-, Programm- und Benut­zerdaten geachtet.
 
=== Die wichtigsten Systemverzeichnissen ===
{|class="wikitable sortable"
|-
! | Verzeichnis
! | Beschreibung / Funktion
|-
| | '''/'''
| | Hier sollte keine Dateien liegen
|-
| | '''/bin'''
| | Systemverwaltungsprogramme für alle Benutzer
|-
| | '''/boot'''
| | Dateien des Bootmanagers und des Kernels
|-
| | '''/dev'''
| | Gerätedateien
|-
| | '''/etc'''
| | Systemweite Konfigurationsdateien
|-
| | '''/home'''
| | Login-Verzeichnisse der Benutzer
|-
| | '''/lib'''
| | Shared Libraries des Basissystems
|-
| | '''/lost+found'''
| | Dateien, die beim Plattencheck anfallen
|-
| | '''/media'''
| | Mountpoint für Wechseldatenträger
|-
| | '''/mnt'''
| | Mountpoint für vorübergehende Mount-Vorgänge
|-
| | '''/opt'''
| | Optionale Erweiterungspakete (in Unterverzeichnissen)
|-
| | '''/proc'''
| | Abbild von Kernel-Daten
|-
| | '''/root'''
| | Home-Verzeichnis des Superusers (root)
|-
| | '''/sbin'''
| | Programme zur Systemadministration
|-
| | '''/tmp'''
| | Temporäre Dateien
|-
| | '''/usr'''
| | Zweites Hauptverzeichnis für Programme (Unix System Resources)
|-
|}
 
=== Verzeichnisse in der Wurzel ===
{|class="wikitable sortable"
|-
| | '''/bin'''
| | Die wichtigsten Benutzer-Kommandos, um mit dem System arbeiten zu können
|-
| | '''/boot'''
| | Hier findet man die statischen Dateien des Bootmanagers und die Kernel.
|-
|| '''/dev'''
||
{|class="wikitable sortable"
|-
| colspan="2" | Devices), die die gesamte Hardware beschreiben (Festplatte, Floppy, RAM...), sowie einige Devices mit speziellen Aufgaben. Drei Informationen sind für jedes Device rele­vant:
 
brw-rw-rw- 1 root disk 2, 0 Nov 8 20:48 /dev/fd0
 
'''Art des Zugriffs'''
* Blockorientiert (b) - gepufferter Zugriff, zum Beispiel
Festplatten
* Zeichenorientiert (c) - ungepufferter Zugriff, zum Beispiel
Bildschirm, Drucker
 
brw-rw-rw- 1 root disk 2, 0 Nov 8 20:48 /dev/fd0
 
'''Hauptgerätenummer (major device number)'''
* Nummer des zu verwendenden Treibers
* Unter jeder Nummer existiert je ein Treiber für zeichen- und blockorientierte Geräte (zum Beispiel Nummer 2 für Termi­nals (c) und Floppys (b))
* Beschreibung vergebener Nummern unter '''/usr/src/Documentation/devices.txt'''
brw-rw-rw- 1 root disk 2, 0 Nov 8 20:48 /dev/fd0
 
'''Nebengerätenummer (minor device number):'''
* Nummer der zuständigen Routine in einem Treiber Dient zum Beispiel zur Unterscheidung der Diskettenformate im Floppytreiber, für ein zweites CD-ROM usw.
 
Ein etwas ungewöhnliches Device ist '''/dev/null''', der Mülleimer von Unix. Möchte man zum Beispiel bei der Suche nach Dateien Fehlermeldungen (permission denied) vermeiden, hilft Folgendes
find / -name "*" 2> /dev/null
 
Den Mechanismus erläutert der Abschnitt Ein/Ausgabe-Umleitung
|-
| colspan="2" | '''Wichtige Gerätedateien sind'''
|-
| | '''cdrom'''
| | Link auf eine entsprechende Datei (zum Beispiel cdu535)
|-
| | '''cua*'''
| | Serielle Schnittstellen (ausgehende Verbindungen)
|-
| | '''fd*'''
| | Diskettenlaufwerke
|-
| | '''hd*'''
| | IDE-Festplatten
|-
| | '''kmem'''
| | Speicherauszug (core)
|-
| | '''lp'''
| | Parallele Schnittstellen
|-
| | '''mouse'''
| | Link auf die entsprechende Datei
|-
| | '''port'''
| | IO-Ports
|-
| | '''sd*'''
| | SCSI-Festplatten
|-
| | '''tty'''
| | Terminalkonsolen
|-
| | '''ttys*'''
| | Serielle Schnittstellen (eingehende Verbindungen)
|-
|}
 
|-
| | '''/etc'''
| | Enthält alle lokalen Konfigurationsdateien (Tastatur, X, Netzwerk...)
|-
| | '''/home'''
| | Alle Heimatverzeichnisse der Nutzer findet man hier. Nach dem Login landet jeder Benutzer (i.d.R.) in seinem Home. Heimatverzeichnisse können vom Systemverwalter auch an anderer Stelle angesiedelt werden
|-
| | '''/lib'''
| | Die beim Systemstart benötigten Bibliotheken
 
Kernelmodule in eigenem Unterverzeichnis
|-
| | '''/mnt'''
| | Mountpunkt für temporäre Partitionen
|-
| | '''/opt'''
| | Software, die nicht zum üblichen Installationsumfang von Unix-Systemen gehören, werden oft unter diesem Zweig installiert. So werden nahezu alle kommerziellen Softwarepakete hier eingerichtet; auch die Programme zur KDE befinden sich hier
|-
| | '''/root'''
| | Heimatverzeichnis des Administrators. In realen Unix Installationen werden die Heimatverzeichnisse aller Nut­zer oft auf einem Server gehalten. Bei einem Ausfall eines solchen Servers sollte aber zumindest Root in der Lage sein, vernünftig mit dem System zu arbeiten
|-
| | '''/sbin'''
| | Wichtige System-Programme (beim Booten benötigt; Ausführung erfordert Root-Rechte)
|-
| | '''/tmp'''
| | Temporäre Dateien können hier abgelegt werden, jeder Nutzer ist dazu berechtigt.
|-
| | '''/usr'''
| | Zweite Hierarchie
|-
| | '''/var'''
| | Variable Daten
|-
|}
 
Der Filesystem Hierarchie Standard bezeichnet die Verzeichnisse unter /usr als "zweite Hierarchie".
 
=== Die zweite Verzeichnishierarchie - /usr ===
{|class="wikitable sortable"
|-
| | '''/usr/X11R6'''
| | X Window System (Version 11, Release 6)
|-
| | '''/usr/X386'''
| | X Window System (Version 11, Release 5 auf x86er)
|-
| | '''/usr/bin'''
| | Die meisten Nutzerprogramme
|-
| | '''/usr/games'''
| | Spiele und Lernprogramme
|-
| | '''/usr/include'''
| | Headerdateien für C-Programme
|-
| | '''/usr/lib'''
| | Allgemeine Bibliotheken (außer X11)
|-
| | '''/usr/local'''
| | Lokale Hierarchie. Hier hat der Administrator die Möglichkeit, Nicht-Standard-Pakete einzuspielen.
|-
| | '''/usr/sbin'''
| | (weniger wichtige) Systemprogramme
|-
| | '''/usr/share'''
| | Architektur-abhängige Dateien
|-
| | '''/usr/src'''
| | Quelldateien zu den Paketen
|-
|}
'''Links unter /usr'''
 
Einige (symbolische) Links sind ebenso vorgeschrieben:
{|class="wikitable sortable"
|-
| | '''/usr/spool'''
| | Link auf '''/var/spool'''
|-
| | '''/usr/tmp'''
| | Link auf '''/var/tmp'''
|-
| | '''/usr/spool/lock'''
| | Link auf '''/var/lock'''
|-
|}
 
* Es gibt eine Menge Daten, die permanenter Veränderung unterliegen oder nur kurze Zeit existieren.
* Proto­kollierungen fallen ebenso in diese Kategorie, wie auch Mails, zu druckende Dateien, News, ...
* Insbesondere auf Servern sollte dem Verzeichnis '''/var''' eine eigene Partition gegönnt werden.
 
=== Variable Daten - /var ===
{|class="wikitable sortable"
|-
| | '''/var/account'''
| | Prozessnutzungsprotokoll (falls unterstützt)
|-
| | '''/var/cache'''
| | Zwischenspeicher von Programmen
|-
| | '''/var/crash'''
| | Speicherauszug bei Systemabsturz (falls unterstützt)
|-
| | '''/var/games'''
| | Variable Spieledaten
|-
| | '''/var/lock'''
| | Sperren (Dateien, Geräte, etc)
|-
| | '''/var/log'''
| | Protokolle über Systemvorgänge
|-
| | '''/var/mail'''
| | Mailboxen der Nutzer
|-
| | '''/var/opt'''
| | Variable Daten der optionalen Programme
|-
| | '''/var/run'''
| | Dateien zu laufenden Prozessen
|-
| | '''/var/spool'''
| | Von Anwendungen gespoolte Daten
|-
| | '''/var/state'''
| | Variable Status Informationen
|-
| | '''/var/tmp'''
| | Temporäre Dateien, die zwischen Reboots erhalten bleiben
|-
| | '''/var/yp'''
| | Dateien des Network Information Systems
|-
|}
 
=== Linux-Besonderheiten ===
Speziell für Linux-Systeme definiert der Standard Weiteres:
 
{|class="wikitable sortable"
|-
| | '''Allgemein'''
| | '''Der Name des Standard-Kernels ist vmlinux oder vmlinuz '''
|-
| | '''/dev'''
| | Enthält nur die im Dokument ''Linux Allocated Devices'' beschriebenen Links (sonst wie oben)
|-
| | '''/proc'''
| | Enthält Kernel- und Prozessinformationen in einem virtuellen Dateisystem
|-
| | '''/sbin '''
| | Enthält zusätzlich Routinen zum ext2-Dateisystem und lilo
|-
| | '''/usr/src'''
| | Enthält zusätzlich die Kernelquellen
|-
|}
 
=== Prozessdateisystem - /proc ===
# [[/proc - Prozessdateisystem]]
 
== Anwendung ==
=== Pfadangaben ===
'''Pfadangaben''' beschreiben den Weg zu einer Datei entlang der Dateisystemhierarchie
 
==== Absolute Pfadangaben ====
* Absoluter Pfad bedeutet, dass Sie den ganzen Pfad vom Hauptverzeichnis aus angeben, egal in welchem Verzeichnis Sie sich selbst gerade befinden.
* Ein Verzeichniswechsel mit einer absoluten Pfadangabe beginnt immer mit einem Slash.
* Sie müssen also bei einem Verzeichniswechsel mit einer absoluten Pfadangabe Ihre eigene Position nie berücksichtigen.
 
'''Beispiel'''
 
~ $ '''cd /var'''
/var $
 
==== Relative Pfadangaben ====
* Bei einem Verzeichniswechsel mit relativer Pfadangabe bewegen Sie sich relativ zum aktuellen Verzeichnis fort.
* Eine relative Pfadangabe beginnt deshalb nie mit einem Slash.
 
'''Beispiel'''
 
Es wurde hier relativ zum /var-Verzeichnis in das /var/log-Verzeichnis gewechselt.
/var # '''cd log'''
/var/log #
 
[[Kategorie:Linux/Dateisystem]]
 
 
=== Zugriff auf Datenträger ===
siehe [[mount]]
 
=== Arbeiten im Dateisystem ===
siehe [[Linux/Dateisystem:Grundlagen]]
 
=== Fehlerbehebung ===
 
== Konfiguration ==
=== Dateien ===
== Anhang ==
=== Siehe auch ===
==== Unterseiten ====
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Sicherheit ====
==== Dokumentation ====
===== RFC =====
===== Man-Pages =====
===== Info-Pages =====
==== Links ====
===== Einzelnachweise =====
<references />
===== Projekt =====
===== Weblinks =====
<noinclude>
=== Testfragen ===
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
 
[[Kategorie:Linux/Dateisystem]]
 
</noinclude>

Aktuelle Version vom 21. Dezember 2024, 12:22 Uhr