Willkommen im Lab "Grundlegende Dateioperationen in Linux"! In Linux wird fast alles als Datei behandelt, was Dateioperationen zu einem Grundpfeiler der Systemnutzung macht. In diesem Lab werden Sie durch die gängigsten Befehle zur Verwaltung von Dateien und Verzeichnissen geführt, um Ihnen zu helfen, sich sicherer im Linux-System zurechtzufinden und es zu organisieren.
Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Fortgeschrittener mit einer Abschlussquote von 67% ist. Es hat eine positive Bewertungsrate von 99% von den Lernenden erhalten.
Mehr als nur ein Lerntext – erlebe es selbst.
Das Arbeitsumfeld verstehen
In Linux hat jeder Benutzer normalerweise ein "Homedirectory" (Heimatverzeichnis), das durch ~ dargestellt wird. In dieser Lab-Umgebung starten wir jedoch im Verzeichnis /home/labex/project, das unser Standard-Arbeitsverzeichnis ist.
Zunächst öffnen Sie bitte ein Terminal auf dem Desktop ODER wechseln Sie zum Terminal-Tab in der Lab-Umgebung.
Beginnen wir damit, unseren aktuellen Ort zu verstehen:
pwd
pwd steht für "print working directory" (aktuelles Arbeitsverzeichnis ausgeben). Es zeigt Ihren aktuellen Ort im Dateisystem an. Dieser Befehl ist entscheidend, um sich in der Linux-Dateistruktur zurechtzufinden. Als Ausgabe sollten Sie /home/labex/project sehen.
Jetzt erkunden wir die Beziehung zwischen dem aktuellen Verzeichnis und dem Heimatverzeichnis:
echo ~
Dieser Befehl zeigt den Pfad zu Ihrem Heimatverzeichnis an, das /home/labex sein sollte.
Um den Inhalt Ihres aktuellen Verzeichnisses anzuzeigen, verwenden Sie:
ls
Dies listet die Dateien und Verzeichnisse in Ihrem aktuellen Arbeitsverzeichnis (/home/labex/project) auf.
Lassen Sie uns auch den Inhalt Ihres Heimatverzeichnisses überprüfen:
ls ~
Dieser Befehl listet den Inhalt Ihres Heimatverzeichnisses auf, der sich möglicherweise von Ihrem aktuellen Arbeitsverzeichnis unterscheidet.
Das Verständnis des Unterschieds zwischen Ihrem aktuellen Arbeitsverzeichnis und Ihrem Heimatverzeichnis ist wichtig, um sich effektiv im Linux-Dateisystem zu bewegen.
Navigation im Dateisystem
Linux verwendet ein sogenanntes "hierarchisches Dateisystem" (hierarchical file system). Stellen Sie sich das wie einen großen Baum mit Ästen vor. Der Hauptstamm wird "Rootverzeichnis" (root directory) genannt und wird durch einen einzelnen Schrägstrich / dargestellt. Alle anderen Verzeichnisse und Dateien zweigen von diesem Rootverzeichnis ab.
Lassen Sie uns untersuchen, wie man sich in dieser baumartigen Struktur bewegt:
Prüfen Sie Ihren aktuellen Ort:
pwd
Dies sollte /home/labex/project anzeigen. Wenn dies nicht der Fall ist, befinden Sie sich möglicherweise in einem anderen Verzeichnis. Verwenden Sie cd /home/labex/project, um zum Ausgangspunkt zurückzukehren.
Zeigen Sie den Inhalt Ihres aktuellen Verzeichnisses an:
ls
Dies listet alle Dateien und Ordner an Ihrem aktuellen Ort auf. /home/labex/project ist leer, daher sehen Sie nichts.
Bewegen Sie sich eine Ebene nach oben in das übergeordnete Verzeichnis:
cd..
Das .. bedeutet "das Verzeichnis darüber". Führen Sie nach diesem Befehl erneut pwd aus. Sie sollten sich jetzt in /home/labex befinden.
Kehren Sie in Ihr Projektverzeichnis zurück:
cd project
Dies bringt Sie zurück in /home/labex/project.
Gehen Sie in Ihr Heimatverzeichnis:
cd ~
Das ~ ist eine Abkürzung für Ihr Heimatverzeichnis. Führen Sie pwd aus, um zu bestätigen, dass Sie sich in /home/labex befinden.
Kehren Sie in das Projektverzeichnis zurück, indem Sie einen absoluten Pfad verwenden:
cd /home/labex/project
Dies wird ein "absoluter Pfad" (absolute path) genannt, da er vom Root (/) beginnt und den vollständigen Ort angibt.
Direkt aus dem Tutorial heraus programmieren.
Dateien erstellen und Verzeichnisinhalte auflisten
Nachdem wir nun wissen, wie man sich im Dateisystem bewegt, erstellen wir einige Dateien und lernen, wie man Verzeichnisinhalte auflisten kann.
Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis /home/labex/project befinden:
cd /home/labex/project
Erstellen wir einige Dateien:
touch file1.txt
Der Befehl touch wird verwendet, um eine leere Datei zu erstellen. Wenn die Datei bereits existiert, wird der Zeitstempel der Datei aktualisiert, ohne ihren Inhalt zu ändern. Es ist eine einfache Methode, um neue, leere Dateien zu erstellen.
echo "Hello, Linux" > file2.txt
Dieser Befehl macht 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 existiert, wird ihr Inhalt ersetzt.
echo "Hidden file" > .hiddenfile
Dies erstellt eine versteckte Datei. In Linux wird jede Datei oder jedes Verzeichnis, dessen Name mit einem Punkt (.) beginnt, als versteckt betrachtet.
Jetzt erstellen wir ein Verzeichnis:
mkdir testdir
Der Befehl mkdir (Abkürzung für "make directory", deutsch: Verzeichnis erstellen) erstellt ein neues Verzeichnis namens testdir.
Grundlegende Auflistung:
ls
Dies zeigt den Inhalt Ihres aktuellen Verzeichnisses an. Sie sollten file1.txt, file2.txt und testdir sehen.
Detaillierte Auflistung:
ls -l
Die Option -l (das ist ein kleines L, nicht die Zahl 1) liefert eine "ausführliche" Auflistung. Sie sehen zusätzliche Details wie Dateiberechtigungen, Eigentümer, Größe und Änderungsdatum.
Versteckte Dateien anzeigen:
ls -a
Dies zeigt alle Dateien an, einschließlich der versteckten Datei .hiddenfile, die wir erstellt haben.
Optionen kombinieren:
ls -la
Dies kombiniert die ausführliche Auflistung (-l) mit der Anzeige aller Dateien (-a).
Inhalt eines bestimmten Verzeichnisses auflisten:
ls -l testdir
Dies listet den Inhalt des Verzeichnisses testdir auf (das zu diesem Zeitpunkt leer sein sollte).
Dateien und Verzeichnisse kopieren
Nachdem wir nun einige Dateien haben, mit denen wir arbeiten können, lernen wir, wie man sie kopiert:
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.
Lassen Sie uns die Kopie überprüfen:
ls
Eine Datei in ein anderes Verzeichnis kopieren:
cp file2.txt testdir/
Dies kopiert file2.txt in das Verzeichnis testdir.
Ein Verzeichnis kopieren:
cp -r testdir testdir_copy
Die Option -r steht für "rekursiv". Sie ist erforderlich, wenn Verzeichnisse kopiert werden, um sicherzustellen, dass alle Inhalte kopiert werden.
Unsere Kopien überprüfen:
ls
ls testdir
ls testdir_copy
Praxis statt nur Theorie.
Dateien und Verzeichnisse verschieben und umbenennen
Der Befehl mv wird in Linux sowohl zum Verschieben als auch zum Umbenennen verwendet:
Eine Datei umbenennen:
mv file1.txt newname.txt
Dies ändert den Namen von file1.txt in newname.txt.
Eine Datei in ein Verzeichnis verschieben:
mv newname.txt testdir/
Dies verschiebt newname.txt in das Verzeichnis testdir.
Ein Verzeichnis umbenennen:
mv testdir_copy new_testdir
Dies ändert den Namen von testdir_copy in new_testdir.
Verschieben und umbenennen in einem Befehl:
mv testdir/newname.txt ./original_file1.txt
Dies verschiebt newname.txt aus testdir heraus und benennt es in original_file1.txt im aktuellen Verzeichnis um.
Unsere Änderungen überprüfen:
ls
ls testdir
Dateien und Verzeichnisse entfernen
Das Entfernen von Dateien und Verzeichnissen ist eine mächtige Operation. Im Gegensatz zu grafischen Oberflächen hat die Kommandozeile oft keinen "Papierkorb" (Recycle Bin). Mit rm vorgenommene Löschungen sind in der Regel dauerhaft. Überprüfen Sie Ihre Befehle immer doppelt, bevor Sie sie ausführen!
Lassen Sie uns die Dateien und Verzeichnisse aufräumen, die wir erstellt haben. Stellen Sie sicher, dass Sie sich im Verzeichnis /home/labex/project befinden.
pwd
ll -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
Eine einzelne Datei entfernen:
rm original_file1.txt
Der Befehl rm (kurz für "remove" - entfernen) löscht Dateien. Lassen Sie uns überprüfen:
ls
original_file1.txt sollte verschwunden sein.
Interaktiv entfernen (sicherer):
Versuchen wir, file2.txt zu entfernen, aber diesmal mit dem interaktiven Flag -i:
rm -i file2.txt
Die Option -i fordert Sie vor dem Löschen jeder Datei zur Bestätigung auf. Geben Sie y (für yes - ja) ein und drücken Sie die Eingabetaste, um die Löschung 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 verschwunden.
Ein leeres Verzeichnis entfernen:
Erinnern Sie sich an das new_testdir, das wir durch Umbenennen von testdir_copy erstellt haben? Lassen Sie uns überprüfen, 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 - Verzeichnis entfernen) funktioniert nur bei leeren Verzeichnissen.
ls
new_testdir kann nicht entfernt werden, da es nicht leer ist.
Versuch, ein nicht leeres Verzeichnis zu entfernen:
Versuchen wir nun rmdir auf 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 (rmdir: Fehler beim Entfernen von 'testdir': Verzeichnis ist nicht leer) sehen. Dies ist zu erwarten, da rmdir keine Verzeichnisse entfernen kann, die Dateien oder andere Verzeichnisse enthalten.
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, was sich darin befindet. Verwenden Sie diesen Befehl mit Vorsicht.
ls
testdir sollte jetzt verschwunden sein.
Erzwingen der Entfernung (mit äusserster Vorsicht verwenden):
Manchmal möchten Sie möglicherweise Dateien entfernen, ohne dazu aufgefordert zu werden, auch wenn sie schreibgeschützt sind (obwohl wir hier keine haben). Die Option -f (force - erzwingen) tut dies.
Lassen Sie uns unsere versteckte Datei entfernen:
rm .hiddenfile
ls -a
Kombinieren wir nun -r und -f. Der Befehl rm -rf ist äusserst mächtig und potenziell gefährlich. Er entfernt Verzeichnisse rekursiv (-r) und erzwingt die Entfernung ohne Aufforderung (-f).
!!! GEFAHRENZONE !!!
Seien Sie ABSOLUT SICHER, dass Sie wissen, 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 (wenn Sie die Berechtigungen haben). Überprüfen Sie immer den Pfad doppelt.
Lassen Sie uns ein temporäres Verzeichnis und eine temporäre Datei erstellen, um dies (sicher) zu demonstrieren:
Merken Sie sich: In der Linux-Kommandozeile sind gelöschte Dateien im Allgemeinen für immer verschwunden. Verwenden Sie rm mit Vorsicht!
Zusammenfassung
Herzlichen Glückwunsch! Sie haben die grundlegenden Dateioperationen in Linux gelernt:
Navigieren 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
Löschen von Dateien und Verzeichnissen mit rm und rmdir
Diese Befehle bilden die Grundlage der Dateiverwaltung in Linux. Mit Übung werden Sie sich darin bewandert, Ihre Dateien und Verzeichnisse über die Kommandozeile zu verwalten.
Denken Sie daran, diese Befehle vorsichtig zu verwenden, insbesondere rm, da es Dateien und Verzeichnisse dauerhaft löscht, ohne die Möglichkeit der Wiederherstellung.
Wenn Sie Ihre Linux-Reise fortsetzen, erkunden Sie die Handbuchseiten (z. B. man ls), um mehr über jeden Befehl und seine Optionen zu erfahren. Viel Spaß beim Entdecken!