Das Unix-Dateisystem ist eine logische Methode zum Organisieren und Speichern großer Informationsmengen auf eine Weise, die die Verwaltung erleichtert. Eine Datei ist eine kleinste Einheit, in der Informationen gespeichert werden. Das Unix-Dateisystem hat mehrere wichtige Eigenschaften. Alle Daten in Unix sind in Dateien organisiert. Alle Dateien sind in Verzeichnissen organisiert. Diese Verzeichnisse sind in einer baumartigen Struktur organisiert, die als Dateisystem bezeichnet wird.

Dateien im Unix-System sind in einer mehrstufigen Hierarchiestruktur organisiert, die als Verzeichnisbaum bekannt ist. Ganz oben im Dateisystem befindet sich ein Verzeichnis namens „root“, das durch ein „/“ dargestellt wird. Alle anderen Dateien sind „Nachkommen“ von root.

Verzeichnisse oder Dateien und ihre Beschreibung –

  • / : Der Schrägstrich / allein bezeichnet die Wurzel des Dateisystembaums.
  • /bin : Steht für „Binärdateien“ und enthält bestimmte grundlegende Dienstprogramme wie ls oder cp, die im Allgemeinen von allen Benutzern benötigt werden.
  • /boot : Enthält alle Dateien, die für einen erfolgreichen Bootvorgang erforderlich sind.
  • /dev : Steht für „Geräte“. Enthält Dateidarstellungen von Peripheriegeräten und Pseudogeräten.
  • /etc : Enthält systemweite Konfigurationsdateien und Systemdatenbanken. Ursprünglich auch „gefährliche Wartungsprogramme“ wie init enthalten, aber diese wurden normalerweise nach /sbin oder anderswo verschoben.
  • /home : Enthält die Home-Verzeichnisse für die Benutzer.
  • /lib : Enthält Systembibliotheken und einige wichtige Dateien wie Kernelmodule oder Gerätetreiber.
  • /media : Standard-Einhängepunkt für Wechseldatenträger wie USB-Sticks, Mediaplayer usw.
  • /mnt : Steht für „mount“. Enthält Dateisystem-Einhängepunkte. Diese werden zum Beispiel verwendet, wenn das System mehrere Festplatten oder Festplattenpartitionen verwendet. Es wird auch häufig für entfernte (Netzwerk-) Dateisysteme, CD-ROM/DVD-Laufwerke usw. verwendet.
  • /proc : virtuelles procfs-Dateisystem, das Informationen über Prozesse als Dateien anzeigt.
  • /root : Das Home-Verzeichnis für den Superuser „root“ – also den Systemadministrator. Das Home-Verzeichnis dieses Kontos befindet sich normalerweise auf dem anfänglichen Dateisystem und daher nicht in /home (das ein Einhängepunkt für ein anderes Dateisystem sein kann), falls bestimmte Wartungsarbeiten durchgeführt werden müssen, während denen andere Dateisysteme nicht verfügbar sind. Ein solcher Fall könnte beispielsweise eintreten, wenn ein Festplattenlaufwerk einen physikalischen Fehler erleidet und nicht richtig montiert werden kann.
  • /tmp : Ein Ort für temporäre Dateien. Viele Systeme löschen dieses Verzeichnis beim Start; es könnte tmpfs darauf gemountet haben, in diesem Fall überlebt sein Inhalt einen Neustart nicht, oder es könnte explizit durch ein Startskript beim Booten gelöscht werden.
  • /usr : Ursprünglich das Verzeichnis, das die Home-Verzeichnisse der Benutzer enthält, hat sich seine Verwendung geändert. Es enthält jetzt ausführbare Dateien, Bibliotheken und gemeinsam genutzte Ressourcen, die nicht systemkritisch sind, wie das X Window System, KDE, Perl usw. Auf einigen Unix-Systemen haben einige Benutzerkonten jedoch möglicherweise immer noch ein Home-Verzeichnis, das ein direktes Unterverzeichnis von ist /usr, wie die Voreinstellung wie in Minix. (Auf modernen Systemen beziehen sich diese Benutzerkonten häufig auf die Server- oder Systemnutzung und werden nicht direkt von einer Person verwendet).
  • /usr/bin : Dieses Verzeichnis speichert alle Binärprogramme, die mit dem Betriebssystem vertrieben werden und sich nicht in /bin, /sbin oder (selten) /etc befinden.
  • /usr/include : Speichert die Entwicklungsheader, die im gesamten System verwendet werden. Header-Dateien werden hauptsächlich von der #include -Direktive in der Programmiersprache C/C++ verwendet.
  • /usr/lib : Speichert die erforderlichen Bibliotheken und Datendateien für Programme, die in /usr oder anderswo gespeichert sind.
  • /var : Eine Abkürzung für „Variable“. Ein Ort für Dateien, die sich häufig ändern können – insbesondere in der Größe, z. B. E-Mails, die an Benutzer im System gesendet werden, oder Prozess-ID-Sperrdateien.
  • /var/log : Enthält Systemprotokolldateien.
  • /var/mail : Der Ort, an dem alle eingehenden Mails gespeichert werden. Benutzer (außer root) können nur auf ihre eigene Mail zugreifen. Oft ist dieses Verzeichnis ein symbolischer Link auf /var/spool/mail.
  • /var/spool : Spool-Verzeichnis. Enthält Druckaufträge, Mail-Spools und andere Aufgaben in der Warteschlange.
  • /var/tmp : Ein Ort für temporäre Dateien, die zwischen Systemneustarts erhalten bleiben sollten.

Typen von Unix-Dateien – Das UNIX-Dateisystem enthält mehrere verschiedene Dateitypen:

1. Normale Dateien – Eine normale Datei ist eine Datei auf dem System, die Daten, Text oder Programmanweisungen enthält.

  • Wird verwendet, um Ihre Informationen zu speichern, z. B. einen Text, den Sie geschrieben haben, oder ein Bild, das Sie gezeichnet haben. Dies ist der Dateityp, mit dem Sie normalerweise arbeiten.
  • Befindet sich immer innerhalb/unter einer Verzeichnisdatei.
  • Enthält keine anderen Dateien.
  • In der Langformatausgabe von ls -l wird dieser Dateityp durch das Symbol „-“ angegeben.

2. Verzeichnisse – Verzeichnisse speichern sowohl spezielle als auch gewöhnliche Dateien. Für Benutzer, die mit Windows oder Mac OS vertraut sind, entsprechen UNIX-Verzeichnisse Ordnern. Eine Verzeichnisdatei enthält einen Eintrag für jede Datei und jedes Unterverzeichnis, das sie enthält. Wenn Sie 10 Dateien in einem Verzeichnis haben, gibt es 10 Einträge im Verzeichnis. Jeder Eintrag besteht aus zwei Komponenten.
(1) Der Dateiname
(2) Eine eindeutige Identifikationsnummer für die Datei oder das Verzeichnis (als Inode-Nummer bezeichnet)

  • Verzweigungspunkte im hierarchischen Baum.
  • Wird zum Organisieren von Dateigruppen verwendet.
  • Kann gewöhnliche Dateien, spezielle Dateien oder andere Verzeichnisse enthalten.
  • Enthalten Sie niemals „echte“ Informationen, mit denen Sie arbeiten würden (z. B. Text). Im Grunde nur zum Organisieren von Dateien verwendet.
  • Alle Dateien sind Nachkommen des Stammverzeichnisses (mit dem Namen / ), das sich ganz oben im Baum befindet.

    In der Langformatausgabe von ls –l wird dieser Dateityp durch das Symbol „d“ angegeben.

    3. Spezielle Dateien – Wird verwendet, um ein echtes physisches Gerät wie einen Drucker, ein Bandlaufwerk oder ein Terminal darzustellen, das für Eingabe-/Ausgabe-(E/A-)Operationen verwendet wird. Geräte- oder Spezialdateien werden für die Geräteeingabe/-ausgabe (E/A) auf UNIX- und Linux-Systemen verwendet. Sie erscheinen in einem Dateisystem wie eine gewöhnliche Datei oder ein Verzeichnis.
    Auf UNIX-Systemen gibt es zwei Arten von Spezialdateien für jedes Gerät, spezielle Zeichendateien und spezielle Blockdateien:

    • Wenn eine spezielle Zeichendatei für die Geräteeingabe/-ausgabe (E/A) verwendet wird, werden die Daten zeichenweise übertragen. Diese Art des Zugriffs wird als Raw Device Access bezeichnet.
    • Wenn eine spezielle Blockdatei für die Geräteeingabe/-ausgabe (E/A) verwendet wird, werden Daten in großen Blöcken fester Größe übertragen. Diese Art des Zugriffs wird als Blockgerätezugriff bezeichnet.

    Bei Endgeräten ist es jeweils ein Zeichen. Bei Festplattengeräten bedeutet Raw-Zugriff jedoch das Lesen oder Schreiben ganzer Datenblöcke – Blöcke, die auf Ihrer Festplatte nativ sind.

    • Bei der Ausgabe im Langformat von ls -l werden spezielle Zeichendateien durch das Symbol „c“ gekennzeichnet.
    • In der Langformatausgabe von ls -l werden spezielle Blockdateien durch das Symbol „b“ gekennzeichnet.

    4. Pipes – UNIX ermöglicht es Ihnen, Befehle über eine Pipe zu verknüpfen. Die Pipe fungiert als temporäre Datei, die nur dazu dient, Daten von einem Befehl zu speichern, bis sie von einem anderen gelesen werden. Eine Unix-Pipe stellt einen Datenfluss in eine Richtung bereit zweite Befehlsfolge. Um eine Pipe zu erstellen, platzieren Sie einen senkrechten Strich (|) in der Befehlszeile zwischen zwei Befehlen. Zum Beispiel: who | wc-l

    In der Langformatausgabe von ls –l werden benannte Pipes durch das Symbol „p“ gekennzeichnet.



    5. Sockets – Ein Unix-Socket (oder Interprozess-Kommunikations-Socket) ist eine spezielle Datei, die eine erweiterte Kommunikation zwischen Prozessen ermöglicht. Ein Unix-Socket wird in einem Client-Server-Anwendungsframework verwendet. Im Wesentlichen handelt es sich um einen Datenstrom, der dem Netzwerkstrom (und Netzwerk-Sockets) sehr ähnlich ist, aber alle Transaktionen sind lokal im Dateisystem.

    In der Langformatausgabe von ls -l werden Unix-Sockets durch das Symbol „s“ gekennzeichnet.

    6. Symbolischer Link – Symbolischer Link wird verwendet, um auf eine andere Datei des Dateisystems zu verweisen. Symbolischer Link wird auch als Soft Link bezeichnet. Es enthält eine Textform des Pfads zu der Datei, auf die es verweist. Für einen Endbenutzer scheint der symbolische Link einen eigenen Namen zu haben, aber wenn Sie versuchen, Daten in diese Datei zu lesen oder zu schreiben, werden diese Vorgänge stattdessen auf die Datei verweisen, auf die er verweist. Wenn wir den Softlink selbst löschen, wäre die Datendatei immer noch da. Wenn wir die Quelldatei löschen oder an einen anderen Ort verschieben, funktioniert die symbolische Datei nicht richtig.

    In der Langformatausgabe von ls –l werden symbolische Links durch das Symbol „l“ (das ist ein kleines L) gekennzeichnet.

    Bezug -

    UNIX – Konzepte und Anwendungen | Sumitabha Das | Tata McGraw Hill | 4. Auflage

    Dieser Artikel wurde von Saloni Gupta beigesteuert . Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel über Contribute.geeksforgeeks.org schreiben oder Ihren Artikel per E-Mail an Contribute@geeksforgeeks.org senden. Sehen Sie, wie Ihr Artikel auf der Hauptseite von GeeksforGeeks erscheint, und helfen Sie anderen Geeks.

    Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben diskutierten Thema teilen möchten.

    Achtung Leser! Hören Sie jetzt nicht auf zu lernen. Üben Sie die GATE-Prüfung lange vor der eigentlichen Prüfung mit den fachbezogenen und allgemeinen Quizfragen, die im GATE-Testreihenkurs verfügbar sind .

    Lernen Sie alle GATE CS-Konzepte mit kostenlosen Live-Kursen auf unserem YouTube-Kanal kennen.