Grundlegende Dateioperationen

LinuxBeginner
Jetzt üben

Einführung

Willkommen zum Lab „Grundlegende Dateioperationen unter Linux“! Unter Linux wird fast alles als Datei behandelt, weshalb Dateioperationen eine grundlegende Fähigkeit für die Arbeit mit dem System darstellen. Dieses Lab führt Sie durch die gängigsten Befehle zur Verwaltung von Dateien und Verzeichnissen und hilft Ihnen dabei, sich sicherer in Ihrem Linux-System zu bewegen und dieses zu organisieren.

Die Arbeitsumgebung verstehen

Unter Linux hat jeder Benutzer normalerweise ein „Home-Verzeichnis“, das durch ~ dargestellt wird. In dieser Lab-Umgebung starten wir jedoch im Verzeichnis /home/labex/project, unserem Standard-Arbeitsverzeichnis.

Öffnen Sie bitte zuerst ein Terminal auf dem Desktop ODER wechseln Sie zum Terminal-Tab in der Lab-Umgebung.

Screenshot der Terminal-Oberfläche

Beginnen wir damit, unseren aktuellen Standort zu ermitteln:

pwd

pwd steht für „print working directory“ (Arbeitsverzeichnis ausgeben). Es zeigt Ihren aktuellen Standort im Dateisystem an. Dieser Befehl ist entscheidend, um sich in der Linux-Dateistruktur zu orientieren. Als Ausgabe sollten Sie /home/labex/project sehen.

Lassen Sie uns nun die Beziehung zwischen dem aktuellen Verzeichnis und dem Home-Verzeichnis untersuchen:

echo ~

Hinweis: Falls Sie das ~-Symbol aufgrund unterschiedlicher Tastaturlayouts in bestimmten Ländern nicht im Desktop-Terminal eingeben können, versuchen Sie, in den eigenständigen Terminal-Tab oben links in der VM-Oberfläche zu wechseln.

Dieser Befehl zeigt den Pfad zu Ihrem Home-Verzeichnis an, der /home/labex lauten sollte.

Um den Inhalt Ihres aktuellen Verzeichnisses zu sehen, verwenden Sie:

ls

Dies listet die Dateien und Verzeichnisse in Ihrem aktuellen Arbeitsverzeichnis (/home/labex/project) auf.

Überprüfen wir auch den Inhalt Ihres Home-Verzeichnisses:

ls ~

Dieser Befehl listet den Inhalt Ihres Home-Verzeichnisses auf, der sich von Ihrem aktuellen Arbeitsverzeichnis unterscheiden kann.

Den Unterschied zwischen Ihrem aktuellen Arbeitsverzeichnis und Ihrem Home-Verzeichnis zu verstehen, ist wichtig, um effektiv durch das Linux-Dateisystem zu navigieren.

Linux verwendet ein sogenanntes „hierarchisches Dateisystem“. Stellen Sie es sich wie einen großen Baum mit Ästen vor. Der Hauptstamm wird als „Wurzelverzeichnis“ (Root-Verzeichnis) bezeichnet und durch einen einzelnen Schrägstrich / dargestellt. Alle anderen Verzeichnisse und Dateien zweigen von dieser Wurzel ab.

Lassen Sie uns erkunden, wie man sich in dieser baumartigen Struktur bewegt:

  1. Überprüfen Sie Ihren aktuellen Standort:
pwd

Dies sollte /home/labex/project anzeigen. Falls nicht, befinden Sie sich möglicherweise in einem anderen Verzeichnis. Verwenden Sie cd /home/labex/project, um zum Ausgangspunkt zurückzukehren.

  1. Zeigen Sie den Inhalt Ihres aktuellen Verzeichnisses an:
ls

Dies listet alle Dateien und Ordner an Ihrem aktuellen Standort auf. /home/labex/project ist leer, daher werden Sie nichts sehen.

  1. Gehen Sie eine Ebene höher in das übergeordnete Verzeichnis:
cd ..

Die .. stehen für „das Verzeichnis darüber“. Führen Sie nach diesem Befehl erneut pwd aus. Sie sollten sich nun in /home/labex befinden.

  1. Kehren Sie zu Ihrem Projektverzeichnis zurück:
cd project

Dies bringt Sie zurück nach /home/labex/project.

  1. Gehen Sie in Ihr Home-Verzeichnis:
cd ~

Das ~ ist eine Abkürzung für Ihr Home-Verzeichnis. Führen Sie pwd aus, um zu bestätigen, dass Sie sich in /home/labex befinden.

  1. Kehren Sie mit einem absoluten Pfad zum Projektverzeichnis zurück:
cd /home/labex/project

Dies wird als „absoluter Pfad“ bezeichnet, da er bei der Wurzel (/) beginnt und den vollständigen Speicherort angibt.

Dateien erstellen und Verzeichnisinhalte auflisten

Nachdem wir nun wissen, wie man navigiert, erstellen wir einige Dateien und erkunden, wie man Verzeichnisinhalte auflistet.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis /home/labex/project befinden:

cd /home/labex/project
  1. Erstellen wir ein paar Dateien:
touch file1.txt

Der Befehl touch wird verwendet, um eine leere Datei zu erstellen. Wenn die Datei bereits existiert, aktualisiert er den Zeitstempel der Datei, ohne ihren Inhalt zu ändern. Es ist eine einfache Methode, um neue, leere Dateien zu erstellen.

echo "Hello, Linux" > file2.txt

Dieser Befehl bewirkt zwei Dinge:

  • echo ist ein Befehl, der Text ausgibt.
  • Das Symbol > leitet die Ausgabe von echo in eine Datei namens file2.txt um. Wenn die Datei nicht existiert, wird sie erstellt. Wenn sie bereits existiert, wird ihr Inhalt überschrieben.
echo "Hidden file" > .hiddenfile

Dies erstellt eine versteckte Datei. Unter Linux gilt jeder Datei- oder Verzeichnisname, der mit einem Punkt (.) beginnt, als versteckt.

  1. Erstellen wir nun ein Verzeichnis:
mkdir testdir

Der Befehl mkdir (kurz für „make directory“) erstellt ein neues Verzeichnis namens testdir.

  1. Einfache Auflistung:
ls

Ausgabe der Verzeichnisinhaltsauflistung

Dies zeigt den Inhalt Ihres aktuellen Verzeichnisses. Sie sollten file1.txt, file2.txt und testdir sehen.

  1. Detaillierte Auflistung:
ls -l

Die Option -l (das ist ein kleines L, nicht die Zahl 1) bietet eine „lange“ Format-Auflistung. Sie sehen zusätzliche Details wie Dateiberechtigungen, Besitzer, Größe und Änderungsdatum.

  1. Versteckte Dateien anzeigen:
ls -a

Dies zeigt alle Dateien an, einschließlich der versteckten .hiddenfile, die wir erstellt haben.

  1. Optionen kombinieren:
ls -la

Dies kombiniert das lange Format (-l) mit der Anzeige aller Dateien (-a).

  1. Inhalt eines bestimmten Verzeichnisses auflisten:
ls -l testdir

Dies listet den Inhalt des Verzeichnisses testdir auf (das zu diesem Zeitpunkt leer sein sollte).

Die Auflistungsbefehle in diesem Schritt dienen der praktischen Übung und visuellen Bestätigung. Ihr Fortschritt wird dadurch bewertet, dass überprüft wird, ob die erforderlichen Dateien und das Verzeichnis korrekt erstellt wurden.

Dateien und Verzeichnisse kopieren

Nachdem wir nun einige Dateien haben, mit denen wir arbeiten können, lernen wir, wie man sie kopiert:

  1. Eine Datei kopieren:
cp file1.txt file1_copy.txt

Dies erstellt eine Kopie von file1.txt mit dem Namen file1_copy.txt im aktuellen Verzeichnis.

Überprüfen wir die Kopie:

ls
  1. Eine Datei in ein anderes Verzeichnis kopieren:
cp file2.txt testdir/

Dies kopiert file2.txt in das Verzeichnis testdir.

  1. Ein Verzeichnis kopieren:
cp -r testdir testdir_copy

Die Option -r steht für „rekursiv“. Sie ist beim Kopieren von Verzeichnissen erforderlich, um sicherzustellen, dass der gesamte Inhalt kopiert wird.

  1. Unsere Kopien überprüfen:
ls
ls testdir
ls testdir_copy

Terminal zeigt kopierte Dateien

Dateien und Verzeichnisse verschieben und umbenennen

Der Befehl mv wird unter Linux sowohl zum Verschieben als auch zum Umbenennen verwendet:

  1. Eine Datei umbenennen:
mv file1.txt newname.txt

Dies benennt file1.txt in newname.txt um.

  1. Eine Datei in ein Verzeichnis verschieben:
mv newname.txt testdir/

Dies verschiebt newname.txt in das Verzeichnis testdir.

  1. Ein Verzeichnis umbenennen:
mv testdir_copy new_testdir

Dies benennt testdir_copy in new_testdir um.

  1. Verschieben und Umbenennen in einem Befehl:
mv testdir/newname.txt ./original_file1.txt

Dies verschiebt newname.txt aus testdir heraus und benennt es im aktuellen Verzeichnis in original_file1.txt um.

  1. Unsere Änderungen überprüfen:
ls
ls testdir

Anzeige der Befehlsausführungsergebnisse

Dateien und Verzeichnisse entfernen

Das Entfernen von Dateien und Verzeichnissen ist ein mächtiger Vorgang. Im Gegensatz zu grafischen Oberflächen gibt es in der Befehlszeile oft keinen „Papierkorb“. Löschvorgänge mit rm sind in der Regel dauerhaft. Überprüfen Sie Ihre Befehle immer doppelt, bevor Sie sie ausführen!

Lassen Sie uns die von uns erstellten Dateien und Verzeichnisse aufräumen. Stellen Sie sicher, dass Sie sich im Verzeichnis /home/labex/project befinden.

pwd
ls -a

Sie sollten Dateien wie original_file1.txt, .hiddenfile, file2.txt und Verzeichnisse wie testdir, new_testdir sehen.

-rw-rw-r-- 1 labex labex   12 May  3 08:44 .hiddenfile
-rw-rw-r-- 1 labex labex    0 May  3 08:45 file1_copy.txt
-rw-rw-r-- 1 labex labex   13 May  3 08:44 file2.txt
drwxrwxr-x 2 labex labex   23 May  3 08:45 new_testdir
-rw-rw-r-- 1 labex labex    0 May  3 08:44 original_file1.txt
drwxrwxr-x 2 labex labex   23 May  3 08:45 testdir
  1. Eine einzelne Datei entfernen:

    rm original_file1.txt
    

    Der Befehl rm (kurz für „remove“) löscht Dateien. Überprüfen wir das:

    ls
    

    original_file1.txt sollte nun weg sein.

  2. Interaktiv entfernen (sicherer):

    Versuchen wir, file2.txt zu entfernen, diesmal jedoch mit dem interaktiven Flag -i:

    rm -i file2.txt
    

    Die Option -i fragt Sie vor dem Löschen jeder Datei um Bestätigung. Geben Sie y (für yes) ein und drücken Sie die Eingabetaste, um das Löschen zu bestätigen. Wenn Sie n oder etwas anderes eingeben, wird die Datei nicht gelöscht.

    ls
    

    Wenn Sie bestätigt haben, ist file2.txt weg.

  3. Ein leeres Verzeichnis entfernen:

    Erinnern Sie sich an new_testdir, das wir durch Umbenennen von testdir_copy erstellt haben? Prüfen wir, ob es leer ist:

    ls new_testdir
    

    Wenn es leer ist (keine Dateien anzeigt), können wir es mit rmdir entfernen:

    rmdir new_testdir
    

    rmdir (remove directory) funktioniert nur bei leeren Verzeichnissen.

    ls
    

    new_testdir kann nicht entfernt werden, da es nicht leer ist.

  4. Versuch, ein nicht leeres Verzeichnis zu entfernen:

    Versuchen wir nun rmdir bei testdir, das noch file2.txt enthält (in Schritt 4 kopiert):

    ls testdir
    rmdir testdir
    

    Sie werden wahrscheinlich eine Fehlermeldung wie rmdir: failed to remove 'testdir': Directory not empty sehen. Dies ist zu erwarten, da rmdir keine Verzeichnisse entfernen kann, die Dateien oder andere Verzeichnisse enthalten.

  5. Ein Verzeichnis und seinen Inhalt entfernen (rekursiv):

    Um ein Verzeichnis zu entfernen, das nicht leer ist, müssen wir rm mit der Option -r (rekursiv) verwenden:

    rm -r testdir
    

    Dieser Befehl entfernt das Verzeichnis testdir und alles darin. Verwenden Sie diesen Befehl mit Vorsicht.

    ls
    

    testdir sollte nun weg sein.

  6. Erzwungenes Entfernen (mit äußerster Vorsicht verwenden):

    Manchmal möchten Sie Dateien entfernen, ohne dazu aufgefordert zu werden, selbst wenn sie schreibgeschützt sind (obwohl wir hier keine haben). Die Option -f (force) bewirkt dies.

    Entfernen wir unsere versteckte Datei:

    rm .hiddenfile
    ls -a
    

    Kombinieren wir nun -r und -f. Der Befehl rm -rf ist extrem mächtig und potenziell gefährlich. Er entfernt Verzeichnisse rekursiv (-r) und erzwingt das Entfernen ohne Nachfrage (-f).

    !!! GEFAHRENZONE !!! Seien Sie sich ABSOLUT SICHER, was Sie löschen, bevor Sie rm -rf ausführen. Ein kleiner Tippfehler könnte kritische Systemdateien oder Ihre persönlichen Daten löschen. Es gibt kein Rückgängigmachen. Zum Beispiel könnte rm -rf / versuchen, Ihr gesamtes System zu löschen (falls Sie die Berechtigungen haben). Überprüfen Sie immer den Pfad.

    Erstellen wir ein temporäres Verzeichnis und eine Datei zur Demonstration (sicher):

    mkdir temp_dir
    touch temp_dir/temp_file.txt
    ls -R temp_dir
    

    Hinweis: Sie bemerken vielleicht, dass wir -R (groß) bei ls verwendet haben, anstatt -r (klein), wie wir es bei cp und rm getan haben. Dies ist nicht nur ein Unterschied in der Groß-/Kleinschreibung – es sind völlig unterschiedliche Optionen! Bei ls bedeutet -R „rekursive Auflistung“ (Unterverzeichnisse auflisten), während -r „umgekehrte Sortierreihenfolge“ bedeutet. Bei cp und rm ist die rekursive Option -r (klein). Überprüfen Sie immer das Handbuch (man command), um die spezifischen Optionen jedes Befehls zu verstehen.

    Entfernen wir es nun mit Gewalt:

    rm -rf temp_dir
    

    Überprüfen Sie das Entfernen:

    ls
    

    temp_dir sollte weg sein.

Denken Sie daran: In der Linux-Befehlszeile sind gelöschte Dateien im Allgemeinen für immer weg. Verwenden Sie rm vorsichtig!

Zusammenfassung

Herzlichen Glückwunsch! Sie haben die wesentlichen Dateioperationen unter Linux kennengelernt:

  • Navigation im Dateisystem mit cd und pwd
  • Erstellen von Dateien und Verzeichnissen mit touch und mkdir
  • Auflisten von Inhalten mit ls und seinen Optionen
  • Kopieren von Dateien und Verzeichnissen mit cp
  • Verschieben und Umbenennen mit mv
  • Entfernen von Dateien und Verzeichnissen mit rm und rmdir

Diese Befehle bilden die Grundlage der Dateiverwaltung unter Linux. Mit etwas Übung werden Sie darin geübt sein, Ihre Dateien und Verzeichnisse über die Befehlszeile zu verwalten.

Denken Sie daran, diese Befehle vorsichtig zu verwenden, insbesondere rm, da es Dateien und Verzeichnisse dauerhaft ohne Wiederherstellungsmöglichkeit löscht.

Während Sie Ihre Linux-Reise fortsetzen, erkunden Sie die Man-Pages (z. B. man ls), um mehr über jeden Befehl und seine Optionen zu erfahren. Viel Spaß beim Erkunden!