Bastelecke > Linux > Dateioperationen
Fangen wir mit paar ganz grundlegenden Dateioperationen an, damit ihr euch im Dateisystem frei bewegen und mit Dateien umgehen könnt. Quasi die absoluten Basics in Linux.
Ist das Grundsystem erst installiert, werdet ihr zum Login aufgefordert. Auf die grafischen Benutzeroberflächen werde ich hier nicht weiter eingehen da dessen Bedienung ähnlich wie die von Windows ist. Ich gehe vom Grundsystem mit der Shell-Konsole aus.
Nach den Login landet ihr IMMER in eurem Home-Verzeichnis, wobei das Homeverzeichnis immer mit dem Zeichen ~ abgekürzt wird. Die Befehlszeile baut sich wie folgt auf:
<Nutzer>@<Rechner>:<aktuelles_Verzeichnis>#
Also zum Beispiel:
root@pve3:~#
In diesem Beispiel sind wir also als Nutzer root auf Rechner pve3 angemeldet und befinden uns im Home-Verzeichnis.
Navigation in Verzeichnissen
Verzeichnisse wechseln wir mit dem Befehl "Change Direktory"
cd <Verzeichnis>
Die Verzeichnisangabe kann dabei absolut oder relativ erfolgen. Absolute Angaben starten dabei immer mit "/". Der Slash trennt in Pfadangaben auch die Bezeichnungen der einzelnen Verzeichnisse von einander.
Wichtig ist zu verstehen das es unter Linux keine Laufwerksbuchstaben, wie unter Windows gibt. Oberster Grundsatz von Linux: Alles ist eine Datei! Demnach ist die unterste Verzeichnisebene auch "/". Dort hin gelangt man halt durch:
cd /
Möchten wir nun in das Unterverzeichnis "etc" wechseln, in welchem sich sämtliche Konfigurationsdateien befinden, können wir weiter gehen mit:
cd etc
Alternativ könnten wir auch von jedem beliebigen anderen Ort aus direkt dorthin springen, indem wir die absolute Verzeichnisangabe verwenden:
cd /etc
Auch lassen sich so mehrere Verzeichnisse aneinander reihen. Um direkt in das Unterverzeichnis default des Verzeichnisses etc zu springen, schreiben wir:
cd /etc/default
Um von dort aus nur eine Ebene zurück zu gehen, können wir ".." verwenden:
cd ..
Auch ".." lässt sich beliebig kombinieren. Ausgehend von /etc/default könnten wir also schreiben:
cd ../network
um ins Verzeichnis /etc/network zu wechseln. Also eine Verzeichnisebene nach oben und dann rein ins Unterverzeichnis "network".
Auch ~ funktioniert als absolute Pfadangabe. Hier gehen wir dann halt von Home-Verzeichnis, und nicht von der untersten Verzeichnisebene aus.
Auflisten der Verzeichnis-Inhalte
Den Inhalt eines Verzeichnisses können wir uns mit dem Befehl "list":
ls
anzeigen lassen. Hier bekommen wir eine Auflistung aller Dateien und Verzeichnisse angezeigt, die sich in dem aktuellen Verzeichnis befinden. Etwas detaillierter geht es mit dem Zusatz -l:
ls -l
Hier bekommen wir eine ausführliche Liste, in welcher auch die Größe, Rechte und Besitzer angezeigt werden. Um einfach nur zu sehen was in dem Verzeichnis enthalten ist, ist das jedoch nicht erforderlich.
Verzeichnis erstellen
Ein neues Verzeichnis erstellen wir mit dem Befehl "make Directory":
mkdir <Verzeichnisname>
Auch hier sind wieder relative, sowie auch absolute Pfadangaben erlaubt.
Löschen
Löschen können wir mit dem Befehl "remove":
rm <Pfad_oder_Datei>
Der Befehl ohne weitere Zusätze löscht immer nur Dateien. Auch Platzhalter sind erlaubt. Der Befehl
rm *
löscht somit alle Dateien in dem Verzeichnis, in dem wir uns gerade befinden.
Auch hier sind wieder absolute Pfadangaben oder Kombinationen möglich. Z. B.:
rm ../*
... um alle Dateien im übergeordneten Verzeichnis zu löschen.
Möchten wir nun auch Verzeichnisse löschen, benötigen wir die Option -r für rekursiv:
rm -r *
Dieser löscht somit alle Dateien und Verzeichnisse im aktuellen Verzeichnis, inklusive sämtlicher Unterverzeichnisse.
Möchten wir auch geschützte Dateien mit löschen, können wir das mit der Option -f für force durchführen:
rm -rf *
Hier ist absolute Vorsicht geboten! Der Befehl
rm -rf /
würde sofort das gesamte Dateisystem, also auch Linux selbst löschen, ohne überhaupt nochmal nachzufragen!
Kopieren
Dateien können wir mit dem Befehl "copy" kopieren:
cp <Quelldatei> <Zieldatei>
Wir können anstelle der Zieldatei auch ein Zielpfad angeben, dann bleibt der Dateiname gleich und die Quelldatei wird einfach nur unter gleichem Namen in das Zielverzeichnis kopiert.
Auch Platzhalter sind hier erlaubt. Aber auch hier werden Verzeichnisse nur dann kopiert wenn die Option -r für rekursiv mitgegeben wird:
cp -r * ../
kopiert zum Beispiel samtliche Dateien und Verzeichnisse, sowie Unterverzeichnisse des aktuellen Verzeichnisses in das übergeordnete Verzeichnis.
Verschieben
Möchten wir nun nicht kopieren sondern verschieben, gelingt uns das mit dem Befehl "move":
mv <Quelle> <Ziel>
Dieser wird genauso verwendet wie "cp", nur mit dem Unteschied das er Dateien verschiebt und nicht kopiert.
Umbenennen
Nein, kein neuer Befehl, wir bleiben bei "mv". Technisch gesehen erfolgt ein Umbenennen der Datei nämlich, ebenso wie ein verschieben, lediglich durch eine Umbenennung in der Dateizuordnungstabelle. Für den Computer ist es ein- und dasselbe. Daher:
mv <alter_Name> <neuer_Name>
benennt die Datei einfach nur um.
Wir können somit auch gleichzeitig verschieben und umbenennen:
mv Datei.txt ~/Datei.conf
Der Befehl verschiebt Datei.txt ins Home-Verzeichnis und benennt sie dabei in Datei.conf um.
Die Tabulator-Taste
Wir haben nun gelernt wie wir im Dateisystem von Linux navigieren, Verzeichnisse erstellen, Dateien und Verzeichnisse kopieren, verschieben und löschen... Aber eine einzige nervige Sache bleibt, das ganze getippe. Nun heißen Dateien selten einfach datei.txt, sondern wenn wir eine Datei frisch zur Installation aus dem Netz herunter geladen haben, heißt sie vielmehr sowas wie z. B.: "LibreELEC-Generic-legacy.x86_64-11.0.4.img.gz" Wer hat schon Lust den gesamten Dateinamen zum Kopieren, Buchstabe, für Zahl, für Satzzeichen, abzutippen?
Dagegen haben wir einen mächtigen Verbündeten, die Tabulatortaste! Wir brauchen immer nur die ersten zwei, drei Buchstaben zu schreiben, durch drücken der Tabulatortaste vervollständigt sich dann der Dateiname, vorausgesetzt die ersten Buchstaben führen schon zu einem eindeutigen Ergebnis. Andernfalls vervollständigt sich der Name nur bis zu dem Teil wo es Abweichungen gibt Meist reicht dann ein einziger Buchstabe, damit es wieder einheitlich ist und ein erneuter Druck auf Tab vervollständigt den Rest.
Groß- und Kleinschreibung
Linux basiert im Kern auf dem uralten Unix. Und ebenso wie Unix, unterscheidet es auch zwischen Groß- und Kleinschreibung. So können "Datei.txt" und "datei.txt" beide im gleichen Verzeichnis gespeichert sein und sind dennoch zwei unterschiedliche Dateien. Daher ist bei der Eingabe von Befehlen auch immer auf Groß- und Kleinschreibung zu achten.