zur Übersicht nächste Seite

Basics 1

Man kann in Persönlicher Ordner recht gut mit Dateien umgehen. Aber wenn es den Systembereich betrifft funktioniert das alles auf einmal nicht mehr so einfach. Es kann nicht schaden sich einmal anzuschauen wie man mit dem Terminal arbeiten kann. 
Es ist in Debian entscheidend ob in einem Namen ein Buchstabe klein oder groß geschrieben wird - home oder Home oder hoMe sind verschiedene Namen. Da in der Regel Systemdateien mit Kleinbuchstaben geschrieben werden ist es vorteilhaft bei Dateien in Persönlicher Ordner auch Großbuchstaben zu verwenden.

Zunächst sollen in Persönlicher Ordner einige Beispiel-Files angelegt werden. Ordner können mit mkdir erstellt werden.
Man ruft das Terminal auf.
mkdir ~/Bla
Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein (natürlich kann man diese Zeichenfolge auch eintippen - im Terminal kann man durch Drücken der Taste "Bild nach unten" das Zeichen ~ schreiben) - dann drückt man die Eingabetaste. 
Dann drückt man die Taste "Pfeil nach oben" (und ruft damit den zuvor eingegebenen Befehl auf) und ergänzt den Text durch   /Nur
mkdir ~/Bla/Nur
und drückt die Eingabetaste. 
Dann drückt man die Taste "Pfeil nach oben" (und ruft damit den zuvor eingegebenen Befehl auf) und ergänzt den Text durch   /BlaBla
mkdir ~/Bla/Nur/BlaBla
und drückt die Eingabetaste.
 
Damit hat man in ~/ (also der Persönlicher Ordner) einen Ordner Bla erzeugt, in diesem einen Unterordner Nur und in diesem wiederum einen Unterordner BlaBla. Man hätte diese 3 Ordner auch gleichzeitig mit einem Befehl erzeugen können
mkdir -p ~/Bla/Nur/BlaBla

Nun kann man Text-Dateien erzeugen, z.B. mit dem Editor nano
nano ~/Bla/Nur/BlaBla/Tor.txt
Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein - dann drückt man die Eingabetaste. Der Editor nano öffnet sich und es steht in der Titelzeile der Pfad und Name der neuen Datei
GNU nano 2.2.6 Datei: /home/abc/Bla/Nur/BlaBla/Tor.txt
Diese Datei wurde mit dem Editor nano erstellt.
Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Editors ein. 
Dann drückt man zum Abspeichern gleichzeitig Strg und O
dann drückt man die Eingabetaste um den Dateinamen zu bestätigen
dann drückt man zum Verlassen des Editors gleichzeitig Strg und X.

Oder man nimmt den Editor gedit
gedit ~/Bla/Nur/BlaBla/Zaun.txt
Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein - dann drückt man die Eingabetaste. Eine Info-Ausgabe kann man ignorieren - jedenfalls öffnet sich der Editor gedit und im Titelfeld wird der Pfad und der Name der neuen Datei angezeigt

Zaun.txt 
~/Bla/Nur/BlaBla

Hier kann man hineinschreiben oder hineinkopieren
Diese Datei wurde mit gedit erstellt.
Das speichert man ab und schließt gedit.

Damit wurden in dem Ordner ~/Bla/Nur/BlaBla 
zwei Textdateien erzeugt die man im Dateisystem mit Doppelklick öffnen kann.

Man kann Dateien kopieren mit cp.
cp ~/Bla/Nur/BlaBla/Zaun.txt ~/Bla
Im Terminal eingeben und Eingabetaste drücken. Am Anfang steht die Datei die kopiert werden soll, danach steht der Ordner in den diese kopiert werden soll. Damit existiert im Ordner ~/Bla jetzt auch eine Datei Zaun.txt neben dem Ordner Nur 
Die Erweiterung cp -i bewirkt daß vor dem Überschreiben einer vorhandenen Datei nachgefragt wird. Man kann es ausprobieren indem man im Terminal die Taste "Pfeil nach oben" drückt (um den vorherigen Befehl aufzurufen), dann mit der Taste "Pfeil nach links" bis hinter cp springt und -i ergänzt, dann mit der Taste "Pfeil nach rechts" zum Ende des Textes springt und die Eingabetaste drückt (durch gleichzeitiges Drücken der Tasten Strg und A oder Strg und E kann man schnell an den Anfang oder das Ende einer Eingabe springen). 
Es erscheint im Terminal eine Nachfrage
cp: "/home/abc/Bla/Zaun.txt" überschreiben? 
Jetzt kann man Taste j drücken und Eingabetaste um das Überschreiben zu veranlassen, oder Taste n drücken und Eingabetaste um den Vorgang abzubrechen. 

Man kann eine Datei kopieren und mit einem anderen Namen abspeichern
cp ~/Bla/Nur/BlaBla/Zaun.txt ~/Bla/Nur/BlaBla/Wiese.txt
Im Terminal eingeben und Eingabetaste drücken.

Man kann mit dem Zusatz -s eine Verknüpfung anlegen.
cp -s ~/Bla/Nur/BlaBla/Tor.txt ~/Bla
Im Terminal eingeben und Eingabetaste drücken.

Man kann mit dem Zusatz -s eine Verknüpfung anlegen unter anderem Namen
cp -s ~/Bla/Nur/BlaBla/Tor.txt ~/Bla/Gras.txt
Im Terminal eingeben und Eingabetaste drücken.

Man kann einen Hardlink erzeugen
ln ~/Bla/Nur/BlaBla/Wiese.txt ~/Bla
Im Terminal eingeben und Eingabetaste drücken.

Man kann einen Hardlink erzeugen unter anderem Namen
ln ~/Bla/Nur/BlaBla/Wiese.txt ~/Bla/Blume.txt
Im Terminal eingeben und Eingabetaste drücken.

Nun kann man sich im Dateisystem anschauen was passiert ist.

Eigentlich kennt man die Situation, die beiden Dateien 
~/Bla/Nur/BlaBla/Zaun.txt 
~/Bla/Zaun.txt 
haben zwar den gleichen Namen, aber sie liegen in verschiedenen Ordnern und sind voneinander unabhängige Dateien. Die Änderung einer dieser Dateien wirkt sich nicht auf die andere Datei gleichen Namens aus. Die beiden Dateien 
~/Bla/Gras.txt 
~/Bla/Tor.txt 
sind Verknüpfungen (das Symbol zeigt dies auffällig) die auf die Originaldatei ~/Bla/Nur/BlaBla/Tor.txt verweisen und diese beim Doppelklicken auf die Verknüpfung öffnen. Wird diese Original-Datei gelöscht so laufen diese Verknüpfungen ins Leere. 
Löschen im Terminal erfolgt mit rm (hier mit Zusatz -i um eine Nachfrage zu erhalten)
rm -i ~/Bla/Nur/BlaBla/Tor.txt
Im Terminal eingeben und Eingabetaste drücken.

Es erscheint eine Nachfrage
rm: reguläre Datei "/home/abc/Bla/Nur/BlaBla/Tor.txt" entfernen? 
Jetzt kann man Taste j drücken und Eingabetaste um das Entfernen zu veranlassen, oder Taste n drücken und Eingabetaste um den Vorgang abzubrechen. Hier soll die Datei entfernt werden und wir tippen j und Eingabetaste. 
Ein Doppelklick auf die Verknüpfungen im Dateisystem öffnet ein leeres Fenster das nicht beschrieben werden kann - dies liegt an der Endung .txt die dem System vorgaukelt daß es eine Textdatei gibt. Eine Umbenennung von Gras.txt zu Gras und ein Doppelklick würde zu folgender Ausgabe führen.

Die Verknüpfungen sind wertlos geworden. 

Wie sieht es aber jetzt mit der Datei ~/Bla/Nur/BlaBla/Wiese.txt aus. Man kann im angegebenen Ordner einen Doppelklick auf diese Datei machen und weiteren Text hinzufügen.

Nach dem Abspeichern schließt man diese Datei. Wenn man jetzt die Dateien ~/Bla/Blume.txt 
~/Bla/Wiese.txt 
öffnet so sieht man daß diese Dateien ebenfalls geändert wurden (obwohl sie nicht als Verknüpfung gekennzeichnet sind und in einem anderen Ordner liegen). 
Erzeugt wurden diese beiden Dateien ursprünglich von ~/Bla/Nur/BlaBla/Wiese.txt 
die jetzt gelöscht werden soll
rm ~/Bla/Nur/BlaBla/Wiese.txt
Im Terminal eingeben und Eingabetaste drücken.

Diesmal das Löschen ohne Sicherheitsabfrage. Ruft man jetzt ~/Bla/Blume.txt 
auf so ist der Inhalt der "Originaldatei" immer noch vorhanden. Es wird jetzt weiterer Text dazugeschrieben.

Nach dem Abspeichern schließt man die Datei. Der Aufruf von ~/Bla/Wiese.txt zeigt ebenfalls den (in Blume.txt) geänderten Text. Wie ist das möglich? 

Für jede Datei gibt es eine Inode-Nummer die genau angibt wo auf der Festplatte in welchen Speicherbereichen die Daten abgelegt werden. Diese Inode enthält auch noch Informationen über Zugriffsrechte, Dateigröße, Datum. Man kann sich vorstellen, daß die Inode auf der Festplatte eine Grenze zieht innerhalb der die Daten gespeichert werden und die die Daten von anderen Dateien fernhält.
Man kann sich die Inode-Nummer anzeigen lassen, z.B. für die Dateien aus dem Ordner ~/Bla

Am Anfang jeder Zeile steht die Inode-Nummer der am Ende der Zeile benannten Datei. Man kann vielleicht sagen, daß die Inode-Nummer der eigentliche Name einer Datei ist. Wenn die Inode Nummer gleich ist dann ist es eben die gleiche Datei. Hier hat Blume.txt und Wiese.txt die gleiche Inode-Nummer. Eine anschauliche Darstellung:

Die Abbildung zeigt auch was passiert wenn man jetzt zwei neue Dateien mit den früheren Namen erzeugt:
~/Bla/Nur/BlaBla/Wiese.txt
~/Bla/Nur/BlaBla/Tor.txt
Da die neue ~/Bla/Nur/BlaBla/Wiese.txt eine andere Inode-Nummer besitzt ist diese völlig unabhängig von den Dateien im Ordner ~/Bla.
Aber die Verknüpfungen auf die gelöschte alte ~/Bla/Nur/BlaBla/Tor.txt funktionieren jetzt wieder und öffnen die neue Datei mit dem Namen der alten Datei - der Verweis der Verknüpfungen geht auf den Namen und nicht auf die Inode-Nummer. 

Auch wenn die Inode-Nummer der eigentliche Name einer Datei ist, fehlt einem Menschen der Nummern-Durchblick und schon gar die Übersicht über die Nummern-Zuordnungen. Daher gibt es auf dem Computer ein Inhaltsverzeichnis das einer Inode-Nummer einen verständlichen (oder auch nicht) Namen zuordnet und einen Pfad, der ähnlich wie ein Straßenverzeichnis Ordnung in die Lage der Häuser einer Stadt gibt. Name und Pfad sind nicht in der Inode hinterlegt und das hat ganz entscheidende Vorteile. Bei Namensänderung einer Datei oder der Verschiebung einer Datei in einen anderen Ordner oder dem Kopieren einer Datei in einen anderen Ordner werden nur die Einträge im Inhaltsverzeichnis geändert - die Daten auf der Festplatte werden nicht geändert. Damit gehen diese Änderungen sehr schnell - wird die Datei aber z.B. auf einen USB-Stick übertragen so müssen alle Daten umziehen und es dauert viel länger. 
Bei einem Hardlink wird im Inhaltsverzeichnis nur ein weiterer Eintrag für die bestehende Inode-Nummer vergeben. 
Man kann sich anschauen welche Namen und Pfade für eine Inode-Nummer in dem Inhaltsverzeichnis hinterlegt sind, z.B. innerhalb von ~/ also dem Persönlicher Ordner
find ~/ -xdev -inum 261524
Im Terminal eingeben und Eingabetaste drücken. Dies ergibt

abc@777:~$ find ~/ -xdev -inum 261524
/home/abc/Bla/Blume.txt
/home/abc/Bla/Wiese.txt

Man kann Dateien über die Inode-Nummer löschen
find ~/ -xdev -inum 261524 | xargs rm
Im Terminal eingeben und Eingabetaste drücken. 

Die Dateien ~/Bla/Blume.txt und ~/Bla/Wiese.txt wurden damit gleichzeitig gelöscht. Was ist bei dieser Löschung passiert. Es wurden im Inhaltsverzeichnis die entsprechenden Einträge entfernt - also die Zuordnung von Inode zu Dateiname und Pfad. 
Alle auf dem Bildschirm sichtbaren Dateien sind dort nur sichtbar weil es die Zuordnung von Inode zu dem Namen und Pfad im Inhaltsverzeichnis gibt. 
Die Daten der "gelöschten" Datei liegen aber weiterhin auf der Festplatte und sind lediglich zum Überschreiben freigegeben worden. Könnte man nicht durch Kenntnis der Inode-Nummer diese Daten wieder in einer Datei mit neuem Namen hervorholen? Bei dem früher verwendeten Dateisystem ext2 war dies möglich. Aber bei dem heutigen Dateisystemen ext4 werden beim Löschvorgang auch die Hinweise auf die Speicherblöcke der Inode entfernt und damit ist die Nummer der Inode wertlos geworden. Aber da die Daten immer noch auf der Festplatte liegen (sofern diese nicht überschrieben wurden) kann man andere Möglichkeiten der Datenrettung versuchen - extundelete ist ein solches Programm das gelöschte Dateien unter ext3 und ext4 wiederherzustellen versucht. Trotzdem ist die Datenrettung nicht unbedingt von Erfolg gekrönt und da es keine Namen mehr gibt kann die Suche in den Speicherblöcken sehr lange dauern. 
Als Fazit kann man sagen daß mit dem Löschen von Dateien durch rm sehr bedacht umgegangen werden sollte - man kann die gelöschten Dateien nicht mehr aus dem Papierkorb hervorholen (wenn man einen Baum fällt kann man diesen auch nicht wieder einfach erscheinen lassen). Und es ist wertvoll die persönlichen Daten immer wieder einmal zu sichern, z.B. durch Kopieren auf einen USB-Stick. 

Das Löschen mit rm kann auch sehr hilfreich sein. So legt Debian in dem versteckten Ordner 
~/.cache/thumbnails/ 
von jedem auf dem Bildschirm gezeigten Bild ein Vorschaubild im png-Format an. Mit der Zeit wächst die Anzahl dieser Vorschaubilder auf mehrere Tausend an, bei mir besonders in dem Unterordner large. Diese Vorschaubilder beschleunigen die Anzeige von Dateien, aber es häufen sich mit der Zeit viele unnötige Vorschaubilder an. Wenn man diese png-Bilder löscht wird Debian wieder von vorne anfangen diese anzulegen, was die Anzeige der Dateien zunächst etwas verlangsamt. Aber man hat auch viel Müll von Vorschaubildern entfernt die nie mehr gebraucht werden. Öffnet man jetzt den Ordner 
~/.cache/thumbnails/large/ 
und markiert etwa Hundert dieser Vorschaubilder und verschiebt diese in den Papierkorb, so braucht das System für diese Aufgabe schon etwas Zeit. Auch das anschließende Löschen des Papierkorbes braucht wieder Zeit. Und schließlich sind es Tausende. 
Mit rm geht dieses Löschen ganz schnell 
rm -v -f ~/.cache/thumbnails/large/*.png

Und es gibt weitere Stellen an denen man über ein Löschen nachdenken kann.
So gibt es in den Systemeinstellungen unter Datenschutz den Eintrag
"Papierkorb und temporäre Dateien leeren"
Man kann auf diesen Text klicken und es öffnet sich ein Zusatzfenster. Alles sollte abgespeichert sein und Anwendungen sollten geschlossen sein - dann kann man "Temporäre Dateien löschen".
Die Verwendung der Chronik ist eine tolle Sache - bei Persönlicher Ordner unter "Zuletzt verwendet" oder in LibreOffice wenn man das Dateifenster schließt ohne LibreOffice zu beenden. Aber vielleicht hat man doch an Dateien gearbeitet die nicht unbedingt sofort in der Chronik ins Auge springen sollten. Da gibt es den Eintrag "Verwendung und Chronik" 
Man kann auf diesen Text klicken und es öffnet sich ein Zusatzfenster.


zur Übersicht nächste Seite

Datenschutzerklärung
Impressum