GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erstellen Sie harte und weiche Verbindungen – Vorbereitung auf die RHCSA-Prüfung

In diesem Teil der RHCSA-Prüfungsvorbereitung werden wir unsere Aufmerksamkeit auf Links richten. Es gibt zwei Arten von Links, Hardlinks und Softlinks. In diesem Artikel werden wir darüber sprechen, wie man Links erstellt und entfernt, und wir werden auch einige grundlegende Hintergründe sowohl hinter den Hardlinks als auch den Softlinks diskutieren.

In diesem Tutorial lernen Sie:

  • Was sind symbolische (weiche) Links
  • Was sind harte Links
  • So erstellen Sie einen symbolischen Link
  • So erstellen Sie einen festen Link
  • So entfernen Sie den Link

Handbuchseite des ln Befehl

Softwareanforderungen und verwendete Konventionen

Softwareanforderungen und Linux-Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder verwendete Softwareversion
System Red Hat Enterprise Linux 8 oder eine andere GNU/Linux-Distribution
Software Nicht zutreffend
Andere Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl.
Konventionen # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl
$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Was sind Links auf GNU/Linux-Systemen

Jede Datei hat Informationen über ihr Erstellungs-, Änderungs-, Zugriffs- sowie Dateieigentum und ihre Berechtigungen, die in einem sogenannten Inode gespeichert sind . Neben den bereits erwähnten gespeicherten Metadaten ist der Inode speichert auch Informationen über einen Datenblock, in dem der tatsächliche Inhalt der Datei im Dateisystem gespeichert ist.

Daher ist die Hauptfunktion des Inode soll ein Dateisystemobjekt wie eine Datei oder ein Verzeichnis beschreiben. Um auf das Dateisystemobjekt zuzugreifen, das einem bestimmten Inode zugeordnet ist wir müssen dem Benutzer einen harten Link bereitstellen das ist der tatsächliche Datei- oder Verzeichnisname.

Dies erklärt die erste Art von Links, die harte Links sind . Die zweite Art von Links auf dem GNU/Linux-Betriebssystem sind symbolische Links auch bekannt als Softlinks. Der Unterschied zwischen harten und symbolischen Links besteht darin, dass symbolische Links nur auf harte Links verweisen, d. h. auf die vorhandenen Datei- oder Verzeichnisnamen. Kurz gesagt ermöglichen Links dem Benutzer den Zugriff auf Dateien oder Verzeichnisse über mehrere Namen.

Harte Links

Da harte Links sind den Inodes zugeordnet die wiederum eine Dateisystemfunktion sind, können die Hardlinks Dateisysteme nicht überqueren und sind daher nur innerhalb desselben Dateisystems gültig. Außerdem ist es nicht möglich, feste Links auf Verzeichnisse zu erstellen. Jeder Versuch, einen festen Link von einem Verzeichnis aus zu erstellen, führt dazu, dass hard link not allowed for directory wird Fehlermeldung.

Lassen Sie uns einige harte Links erstellen. In diesem Beispiel erstellen wir zuerst eine beliebige Datei namens sandbox enthält einen Text linuxconfig.org . Sobald wir fertig sind, erstellen wir mehrere feste Links auf diese Datei, die von verschiedenen Orten verweist.

  1. Erstellen Sie eine Datei namens sandbox mit einem Text RHCSA innerhalb eines Benutzer-Home-Verzeichnisses ~/ .
    $ echo "RHCSA" > ~/sandbox
    

    Prüfen Sie den Inhalt der Datei mit cat Befehl:

    $ cat ~/sandbox
    RHCSA
    
  2. Sie befinden sich immer noch in einem Benutzer-Home-Verzeichnis und erstellen einen festen Link zur sandbox Datei von /tmp/ Verzeichnis namens hardlink1 .
    $ ln sandbox /tmp/hardlink1
    

    Überprüfen Sie nun den Inhalt des neu erstellten Hardlinks /tmp/hardlink1 . Der Inhalt von /tmp/hardlink1 und die ursprüngliche sandbox Datei sollte gleich sein:

    $ cat /tmp/hardlink1
    RHCSA
    
  3. Überprüfen Sie die Linkinformationen, die mit beiden Dateinamen sandbox verknüpft sind und /tmp/hardlink1 .
    $ ls -l /tmp/hardlink1
    -rw-rw-r--. 2 linuxconfig linuxconfig 6 Jul 25 10:20 /tmp/hardlink1
    $ ls -l ~/sandbox
    -rw-rw-r--. 2 linuxconfig linuxconfig 6 Jul 25 10:20 /home/linuxconfig/sandbox
    

    Beachten Sie die zugehörige Zahl 2 wie die obige Ausgabe zeigt. Diese Zahl gibt die Anzahl der Hardlinks an, die einem bestimmten Inode zugeordnet sind.

    HINWEIS
    In diesem Stadium ist es wichtig zu verstehen, dass es keinen wirklichen Unterschied zwischen der ursprünglichen sandbox gibt und den neu erstellten /tmp/hardlink1 Datei. Beide zeigen auf denselben Inode mit unterschiedlichen Dateinamen.
  4. Entfernen Sie den festen Link, indem Sie unlink verwenden oder rm Befehl.
  5. $ unlink sandbox 
    $ ls -l /tmp/hardlink1 
    -rw-rw-r--. 1 linuxconfig linuxconfig 6 Jul 25 10:20 /tmp/hardlink1
    

    In diesem Fall sind sowohl rm oder unlink Befehle entfernen einen festen Link, aber nicht die eigentlichen zugehörigen Daten und Inodes. Da die sandbox Hardlink wurde entfernt, es gibt nur noch 1 harter Link, der mit dem ursprünglichen Inode verbunden bleibt. Als Nächstes entfernen wir den letzten Hardlink, der dieser Datei zugeordnet ist:

    $ rm /tmp/hardlink1
    

    An diesem Punkt geht der Link zum Inode verloren, der auf den Inhalt unserer Originaldatei verweist, daher betrachten wir diese Datei als entfernt. Wenn es keine festen Links gibt, die auf einen Inode zeigen, kann das Dateisystem jetzt diesen Inode-Speicherort mit neuen Daten überschreiben.

WUSSTEN SIE SCHON?
Sie können jede Datei entfernen (vorausgesetzt, Sie haben die entsprechenden Berechtigungen), indem Sie den Befehl zum Aufheben der Verknüpfung verwenden? Probieren Sie es jetzt aus:

$ touch file
$ unlink file

Wenn Sie die obigen Befehle verstanden haben, dann haben Sie die GNU/Linux-Hardlinks gemeistert, wie in diesem Tutorial erklärt.

Symbolische Links

Zusätzlich zu festen Links gibt es auch eine andere Art von Links, die auf dem GNU/Linux-Betriebssystem verfügbar sind. Symbolische Links kann Dateisysteme überqueren, und es ist auch möglich, einen symbolischen Link zu erstellen eines Verzeichnisses. Allerdings symbolische Links anstelle des eigentlichen Inodes , nur auf einen bestehenden Hardlink (Datei- oder Verzeichnisname) verlinken. Aus diesem Grund wird der symbolische Link unterbrochen, wenn der eigentliche harte Link, auf den der symbolische Link zeigt, entfernt wird.

  1. Erstellen wir zunächst einige Sandbox-Objekte zum Spielen. In diesem Fall erstellen wir ein Verzeichnis namens mydir und innerhalb dieses Verzeichnisses erstellen wir eine Datei namens myfile .
    $ mkdir mydir
    $ touch mydir/myfile
    
  2. Als nächstes erstellen wir einen neuen symbolischen Link des bestehenden Verzeichnisses meindir mit ln Befehl mit einer Kombination aus -s Option.
    $ ln -s ~/mydir /tmp/symdir
    

    Jetzt haben wir einen symbolischen Link namens symdir erstellt befindet sich im /tmp Verzeichnis.

    $ cd /tmp/
    $ ls -l symdir
    lrwxrwxrwx. 1 linuxconfig linuxconfig 23 Jul 25 14:05 symdir -> /home/linuxconfig/mydir
    

    Beachten Sie das erste Zeichen der obigen Ausgabe. In diesem Fall das Zeichen l zeigt an, dass es sich um einen symbolischen Link handelt.

    HINWEIS
    Beachten Sie beim Erstellen eines symbolischen Links, dass ln Der Befehl speichert den tatsächlichen Pfad, der als Zeichenfolge bereitgestellt wird. Wenn Sie sich nicht im selben Verzeichnis befinden, müssen Sie in vielen Fällen den vollständigen Pfad angeben, damit der symbolische Link
    funktioniert

    Das neu erstellte symdir sollte die zuvor erzeugte Datei myfile enthalten :

    $ cd symdir
    $ ls
    myfile
    $pwd 
    /tmp/symdir
    

Übungen

  1. Spielen Sie mit symbolischen Links. Erstellen Sie einen symbolischen Link zu einer Datei, entfernen Sie anschließend die Originaldatei und sehen Sie, was mit Ihrem symbolischen Link passiert ist.
  2. Was passiert, wenn Sie ls ausführen Befehl mit nur einem einzigen Argument. Führen Sie zum Beispiel den folgenden Befehl aus ln -s /etc/services . Was ist passiert?
  3. Stellen Sie fest, ob Sie der Eigentümer der Datei sein müssen, um einen symbolischen Link darauf zu erstellen. Gilt die gleiche Regel für Hardlinks?

Linux
  1. Ulimit:Unterschied zwischen harten und weichen Limits?

  2. Der Unterschied zwischen symbolischen und harten Links?

  3. RHEL 7 – RHCSA-Hinweise:Erstellen Sie harte und weiche Links.

  4. Was sind symbolische Links (Soft Links) und wie erstellt man sie unter Linux

  5. Git und Hardlinks

Studienziele für die RHCSA-Prüfung und den Vorbereitungsleitfaden

Setgid-Verzeichnisse für die Zusammenarbeit erstellen und konfigurieren – RHCSA Objective Preparation

So erstellen Sie harte und weiche (symlink) Links auf Linux-Systemen

Erläuterung von Soft Link und Hard Link in Linux anhand von Beispielen

Der ln-Befehl unter Linux:Soft- und Hardlinks erstellen

Hardlinks und Softlinks in Linux:Alles, was Sie wissen müssen