Skip to main content

3.1 Dateien suchen, anzeigen und bearbeiten

In diesem Kapitel geht es um den praktischen Umgang mit Dateien unter Linux.

Dazu gehören:

- Dateien anzeigen
- Dateien erstellen
- Dateien kopieren
- Dateien verschieben
- Dateien löschen
- Inhalte lesen
- Inhalte filtern
- Dateien suchen
- einfache Textbearbeitung

Für Fachinformatiker Systemintegration ist das wichtig, weil viele Linux-Aufgaben direkt mit Dateien, Konfigurationen, Logs und Skripten zu tun haben.

Merksatz:

Unter Linux ist sehr vieles eine Datei:
Konfigurationen,
Logs,
Geräteinformationen
und Skripte.

Lernziele

Nach dieser Seite solltest du erklären und anwenden können:

- wie man Dateien und Verzeichnisse auflistet
- wie man Dateiinhalte anzeigt
- wie man Dateien erstellt
- wie man Dateien kopiert,
  verschiebt
  und löscht
- wie man nach Dateien sucht
- wie man Inhalte in Dateien findet
- wofür cat,
  less,
  head,
  tail,
  grep,
  find
  und nano genutzt werden
- welche typischen Fehler beim Umgang mit Dateien auftreten

Grundidee

Viele administrative Aufgaben unter Linux bestehen daraus, Dateien zu lesen, zu ändern oder zu prüfen.

Beispiele:

- Konfigurationsdatei unter /etc bearbeiten
- Logdatei unter /var/log auswerten
- Skript im Home-Verzeichnis erstellen
- Backup-Dateien prüfen
- Dienstkonfiguration vergleichen
- Text in Dateien suchen
- alte Dateien finden und löschen

Wichtig:

Vor Änderungen an wichtigen Konfigurationsdateien sollte man eine Sicherungskopie erstellen.

Merksatz:

Erst lesen,
dann sichern,
dann ändern.

Dateien und Verzeichnisse anzeigen

Der wichtigste Befehl zum Anzeigen von Verzeichnisinhalten ist:

ls

Beispiele:

ls

ls -l

ls -a

ls -la

Bedeutung:

Befehl Bedeutung
ls Inhalt des aktuellen Verzeichnisses anzeigen
ls -l ausführliche Liste anzeigen
ls -a auch versteckte Dateien anzeigen
ls -la ausführlich und mit versteckten Dateien
ls /etc Inhalt von /etc anzeigen
ls -lh Größen menschenlesbar anzeigen

Merksatz:

ls zeigt Dateien und Verzeichnisse an.

Ausgabe von ls -l verstehen

Beispiel:

-rw-r--r-- 1 felix users 1200 Jul 08 12:30 beispiel.txt

Bedeutung:

Teil Bedeutung
-rw-r--r-- Dateityp und Rechte
1 Anzahl der Links
felix Besitzer
users Gruppe
1200 Dateigröße in Byte
Jul 08 12:30 Änderungsdatum
beispiel.txt Dateiname

Der erste Buchstabe zeigt den Dateityp:

Zeichen Bedeutung
- normale Datei
d Verzeichnis
l symbolischer Link
c Zeichen-Gerät
b Block-Gerät
s Socket
p Pipe

Merksatz:

ls -l zeigt Rechte,
Besitzer,
Größe,
Datum
und Dateinamen.

Dateiinhalte mit cat anzeigen

cat zeigt den Inhalt einer Datei direkt im Terminal an.

Beispiel:

cat datei.txt

Typische Nutzung:

kleine Textdateien anzeigen

Konfigurationsdateien kurz prüfen

Inhalt in Skripten ausgeben

Wichtig:

cat ist unpraktisch bei sehr langen Dateien,
weil der Inhalt direkt durchläuft.

Merksatz:

cat zeigt kleine Dateien direkt an.

Dateiinhalte mit less anzeigen

less zeigt Dateien seitenweise an.

Beispiel:

less /var/log/syslog

Navigation in less:

Taste Bedeutung
Leertaste eine Seite weiter
b eine Seite zurück
Pfeiltasten zeilenweise bewegen
/suchwort innerhalb der Datei suchen
n nächster Treffer
q less verlassen

Vorteil:

less eignet sich gut für lange Dateien und Logs.

Merksatz:

less ist besser für lange Dateien.

Anfang einer Datei anzeigen

Mit head zeigt man den Anfang einer Datei.

Beispiel:

head datei.txt

Standardmäßig werden die ersten 10 Zeilen angezeigt.

Mehr Zeilen anzeigen:

head -n 20 datei.txt

Typische Nutzung:

Anfang einer Logdatei prüfen

CSV-Datei kurz ansehen

Kopfzeilen prüfen

Merksatz:

head zeigt den Anfang.

Ende einer Datei anzeigen

Mit tail zeigt man das Ende einer Datei.

Beispiel:

tail datei.txt

Standardmäßig werden die letzten 10 Zeilen angezeigt.

Mehr Zeilen anzeigen:

tail -n 50 datei.txt

Live mitlesen:

tail -f /var/log/syslog

Typische Nutzung:

aktuelle Logeinträge verfolgen

Dienstfehler live beobachten

neue Einträge prüfen

Merksatz:

tail zeigt das Ende.
tail -f liest live mit.

Dateien erstellen mit touch

touch erstellt eine leere Datei, wenn sie noch nicht existiert.

Beispiel:

touch notiz.txt

Wenn die Datei bereits existiert, wird der Zeitstempel aktualisiert.

Typische Nutzung:

leere Datei anlegen

Testdatei erstellen

Zeitstempel aktualisieren

Merksatz:

touch erstellt leere Dateien oder aktualisiert Zeitstempel.

Verzeichnisse erstellen mit mkdir

Mit mkdir erstellt man Verzeichnisse.

Beispiel:

mkdir testordner

Mehrere Ebenen erstellen:

mkdir -p projekt/logs/archiv

Bedeutung:

Befehl Bedeutung
mkdir test Verzeichnis test erstellen
mkdir -p a/b/c komplette Verzeichnisstruktur erstellen

Merksatz:

mkdir erstellt Verzeichnisse.
mkdir -p erstellt auch fehlende Zwischenordner.

Dateien kopieren mit cp

Mit cp kopiert man Dateien.

Beispiele:

cp quelle.txt ziel.txt

cp datei.txt /tmp/

cp /etc/hosts ~/hosts.backup

Verzeichnisse rekursiv kopieren:

cp -r ordner1 ordner2

Wichtige Optionen:

Option Bedeutung
-r rekursiv, für Verzeichnisse
-i vor Überschreiben nachfragen
-v zeigt ausgeführte Aktionen
-p erhält Zeitstempel und Rechte möglichst bei

Merksatz:

cp kopiert.
Für Verzeichnisse braucht man meist cp -r.

Dateien verschieben oder umbenennen mit mv

Mit mv verschiebt oder benennt man Dateien um.

Umbenennen:

mv alt.txt neu.txt

Verschieben:

mv datei.txt /tmp/

Verzeichnis verschieben:

mv projekt /tmp/

Wichtig:

mv kann bestehende Dateien überschreiben,
wenn man nicht aufpasst.

Sicherer:

mv -i alt.txt neu.txt

Merksatz:

mv verschiebt und benennt um.

Dateien löschen mit rm

Mit rm löscht man Dateien.

Beispiel:

rm datei.txt

Mit Nachfrage:

rm -i datei.txt

Verzeichnis mit Inhalt löschen:

rm -r ordner

Sehr vorsichtig verwenden:

rm -rf ordner

Bedeutung:

Option Bedeutung
-r rekursiv, auch Unterordner
-f force, keine Rückfrage
-i interaktiv, mit Nachfrage

Wichtig:

rm löscht normalerweise nicht in einen Papierkorb.
Gelöschte Dateien sind nicht einfach wiederherstellbar.

Merksatz:

rm löscht direkt.
rm -rf nur sehr bewusst verwenden.

Leere Verzeichnisse löschen mit rmdir

rmdir löscht nur leere Verzeichnisse.

Beispiel:

rmdir leerer_ordner

Wenn das Verzeichnis nicht leer ist, schlägt der Befehl fehl.

Merksatz:

rmdir löscht nur leere Verzeichnisse.

Dateien mit nano bearbeiten

nano ist ein einfacher Texteditor im Terminal.

Datei öffnen oder erstellen:

nano datei.txt

Wichtige Tastenkombinationen:

Tastenkombination Bedeutung
Strg + O speichern
Enter Dateiname bestätigen
Strg + X nano verlassen
Strg + W suchen
Strg + K Zeile ausschneiden
Strg + U Zeile einfügen

Typische Nutzung:

Konfigurationsdateien bearbeiten

Notizen erstellen

kleine Skripte schreiben

Merksatz:

nano ist ein einfacher Terminal-Editor.

Dateien sicher bearbeiten

Vor Änderungen an wichtigen Dateien sollte man eine Sicherung erstellen.

Beispiel:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Danach bearbeiten:

nano /etc/ssh/sshd_config

Vorteil:

Bei Fehlern kann man die alte Version wiederherstellen.

Beispiel:

cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config

Merksatz:

Vor Konfigurationsänderung Backup-Datei erstellen.

In Dateien suchen mit grep

grep sucht Text in Dateien.

Beispiel:

grep "error" logfile.txt

Groß- und Kleinschreibung ignorieren:

grep -i "error" logfile.txt

Zeilennummern anzeigen:

grep -n "error" logfile.txt

Rekursiv in Verzeichnissen suchen:

grep -r "PermitRootLogin" /etc/ssh

Wichtige Optionen:

Option Bedeutung
-i Groß-/Kleinschreibung ignorieren
-n Zeilennummer anzeigen
-r rekursiv in Verzeichnissen suchen
-v Treffer umkehren, also nicht passende Zeilen
-l nur Dateinamen mit Treffern anzeigen

Merksatz:

grep sucht Textmuster in Dateien.

Typische grep-Beispiele

Fehler in Logdatei suchen:

grep -i "error" /var/log/syslog

SSH-Konfiguration prüfen:

grep "PermitRootLogin" /etc/ssh/sshd_config

Alle Zeilen ohne Kommentar anzeigen:

grep -v "^#" datei.conf

Mehrere Treffer mit Zeilennummern:

grep -n "root" /etc/passwd

Merksatz:

grep ist eines der wichtigsten Werkzeuge für Logs und Konfigurationen.

Dateien suchen mit find

find sucht Dateien und Verzeichnisse im Dateisystem.

Beispiele:

find /home -name "datei.txt"

find /var/log -name "*.log"

find /etc -name "*ssh*"

Bedeutung:

Befehl Bedeutung
find /home -name "test.txt" sucht test.txt unter /home
find . -name "*.txt" sucht .txt-Dateien ab aktuellem Verzeichnis
find /var/log -type f sucht normale Dateien unter /var/log
find /var/log -type d sucht Verzeichnisse unter /var/log

Merksatz:

find sucht Dateien nach Kriterien.

find nach Dateityp

Mit -type kann man Dateitypen einschränken.

Beispiele:

find /home -type f

find /home -type d

find /home -type l

Bedeutung:

Option Bedeutung
-type f normale Dateien
-type d Verzeichnisse
-type l symbolische Links

Merksatz:

find -type f sucht Dateien.
find -type d sucht Verzeichnisse.

find nach Größe

Dateien größer als 100 MB finden:

find /home -type f -size +100M

Dateien kleiner als 1 MB finden:

find /home -type f -size -1M

Dateien genau 10 KB:

find /home -type f -size 10k

Merksatz:

find kann auch nach Dateigröße suchen.

find nach Zeit

Dateien suchen, die in den letzten 7 Tagen geändert wurden:

find /home -type f -mtime -7

Dateien suchen, die älter als 30 Tage sind:

find /tmp -type f -mtime +30

Bedeutung:

Ausdruck Bedeutung
-mtime -7 jünger als 7 Tage
-mtime +30 älter als 30 Tage
-mtime 1 ungefähr vor einem Tag geändert

Merksatz:

find kann alte oder neue Dateien finden.

which und whereis

which zeigt, welcher Programmpfad beim Ausführen verwendet wird.

Beispiel:

which ssh

Mögliche Ausgabe:

/usr/bin/ssh

whereis zeigt weitere Orte zu einem Programm an.

Beispiel:

whereis ssh

Merksatz:

which zeigt,
welches Programm ausgeführt wird.

Dateiinformationen mit file anzeigen

file erkennt den Dateityp anhand des Inhalts.

Beispiel:

file dokument.txt

file script.sh

file bild.png

Nützlich, wenn die Dateiendung unklar oder falsch ist.

Merksatz:

file erkennt Dateitypen anhand des Inhalts.

Dateigrößen anzeigen

Mit ls -lh werden Größen besser lesbar angezeigt.

Beispiel:

ls -lh

Mit du kann man Speicherverbrauch anzeigen.

Beispiel:

du -sh ordner

Bedeutung:

Befehl Bedeutung
ls -lh Dateigrößen lesbar anzeigen
du -sh ordner Gesamtgröße eines Ordners anzeigen
du -h Größen rekursiv anzeigen

Merksatz:

ls zeigt Dateigröße.
du zeigt Speicherverbrauch.

Dateien zählen

Dateien in einem Verzeichnis zählen:

ls | wc -l

Alle normalen Dateien unter einem Verzeichnis zählen:

find /home/felix -type f | wc -l

Bedeutung:

Befehl Zweck
wc -l Zeilen zählen
find ... | wc -l gefundene Einträge zählen

Merksatz:

wc -l zählt Zeilen.

Ausgaben mit Platzhaltern

Die Shell kann Platzhalter verwenden.

Platzhalter Bedeutung
* beliebige Zeichen
? genau ein beliebiges Zeichen
[abc] eines der Zeichen a, b oder c

Beispiele:

ls *.txt

rm *.tmp

cp *.conf backup/

Wichtig:

Platzhalter werden von der Shell erweitert,
bevor der Befehl ausgeführt wird.

Merksatz:

* steht für beliebige Zeichen.

Achtung bei rm und Platzhaltern

Beispiel:

rm *.tmp

löscht alle Dateien, die auf .tmp enden.

Gefährlich:

rm *

löscht alle passenden Dateien im aktuellen Verzeichnis.

Noch gefährlicher:

rm -rf *

löscht rekursiv alles Passende im aktuellen Verzeichnis.

Merksatz:

Vor rm mit Platzhaltern immer prüfen,
was betroffen ist.

Sichere Arbeitsweise

Vor riskanten Befehlen:

pwd

ls

ls -la

echo *.tmp

dann erst löschen oder verschieben

Beispiel:

echo *.tmp

zeigt, welche Dateien vom Platzhalter betroffen wären.

Merksatz:

Erst anzeigen,
dann löschen.

Typische Datei-Aufgaben im Admin-Alltag

Aufgabe Möglicher Befehl
aktuelle Position anzeigen pwd
Dateien anzeigen ls -la
Datei lesen cat datei.txt
lange Datei lesen less datei.txt
Log live verfolgen tail -f logfile
Datei erstellen touch datei.txt
Verzeichnis erstellen mkdir ordner
Datei kopieren cp quelle ziel
Verzeichnis kopieren cp -r quelle ziel
Datei verschieben mv quelle ziel
Datei löschen rm datei
leeres Verzeichnis löschen rmdir ordner
Text suchen grep "text" datei
Datei suchen find /pfad -name "datei"
Datei bearbeiten nano datei

Typische Fehlerbilder

Fehlerbild Wahrscheinliche Ursache
Datei nicht gefunden falscher Pfad oder falscher Name
Permission denied fehlende Rechte
No such file or directory Datei oder Verzeichnis existiert nicht
Is a directory Befehl erwartet Datei, Ziel ist Verzeichnis
Not a directory Pfadbestandteil ist keine Ordnerstruktur
Datei leer nach Umleitung falscher Einsatz von >
rm löscht zu viel Platzhalter oder falscher Pfad
grep findet nichts Groß-/Kleinschreibung oder falsches Muster
find findet nichts falscher Startpfad oder Suchkriterium

Permission denied

Die Meldung:

Permission denied

bedeutet:

Zugriff verweigert

Mögliche Ursachen:

fehlende Leserechte

fehlende Schreibrechte

fehlende Ausführrechte

Datei gehört anderem Benutzer

Verzeichnisrechte fehlen

administrative Rechte nötig

Nicht immer ist sudo die beste Lösung.

Besser zuerst prüfen:

ls -l datei

ls -ld verzeichnis

Merksatz:

Permission denied bedeutet Rechteproblem.

No such file or directory

Die Meldung:

No such file or directory

bedeutet:

Datei oder Verzeichnis wurde nicht gefunden.

Mögliche Ursachen:

Tippfehler

falscher Pfad

falsche Groß-/Kleinschreibung

Datei wurde gelöscht

relativer Pfad falsch verstanden

Prüfen:

pwd

ls

ls -la

Merksatz:

Linux unterscheidet Groß- und Kleinschreibung.

Vor Änderungen an Konfigurationsdateien

Sicheres Vorgehen:

1. Datei ansehen

2. Backup erstellen

3. Datei bearbeiten

4. Syntax prüfen,
   falls möglich

5. Dienst neu laden oder neu starten

6. Status prüfen

7. Logs prüfen

Beispiel:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

nano /etc/ssh/sshd_config

systemctl restart ssh

systemctl status ssh

Merksatz:

Konfiguration nie blind ändern.

Wichtige Befehle dieser Seite

Befehl Zweck
ls Dateien anzeigen
cat Datei direkt ausgeben
less Datei seitenweise lesen
head Anfang anzeigen
tail Ende anzeigen
tail -f live mitlesen
touch leere Datei erstellen
mkdir Verzeichnis erstellen
cp kopieren
mv verschieben oder umbenennen
rm löschen
rmdir leeres Verzeichnis löschen
nano Datei bearbeiten
grep Text suchen
find Dateien suchen
file Dateityp erkennen
which Programmpfad anzeigen
du Speicherverbrauch anzeigen
wc zählen

Typische Prüfungsfragen

Frage Kurzantwort
Wofür ist ls? Verzeichnisinhalt anzeigen
Wofür ist cat? Dateiinhalt direkt anzeigen
Wofür ist less? lange Dateien seitenweise anzeigen
Wofür ist tail -f? Datei live mitlesen
Wofür ist touch? leere Datei erstellen oder Zeitstempel ändern
Wofür ist cp? kopieren
Wofür ist mv? verschieben oder umbenennen
Wofür ist rm? löschen
Wofür ist grep? Text in Dateien suchen
Wofür ist find? Dateien im Dateisystem suchen
Wofür ist nano? Textdateien im Terminal bearbeiten
Was bedeutet Permission denied? fehlende Rechte
Was bedeutet No such file or directory? Datei oder Pfad existiert nicht

Typische Prüfungsfallen

Falle Richtig denken
cat für riesige Logs nutzen besser less oder tail verwenden
rm wie Papierkorb verstehen rm löscht direkt
cp ohne -r bei Verzeichnissen Verzeichnisse rekursiv kopieren
mv nur als Verschieben verstehen mv benennt auch um
grep ohne -i bei unbekannter Schreibweise -i ignoriert Groß-/Kleinschreibung
find im falschen Startpfad Suchpfad bewusst wählen
sudo sofort verwenden zuerst Rechte und Pfad prüfen
Konfigurationsdatei ohne Backup ändern vorher Kopie erstellen
Platzhalter bei rm unterschätzen vorher mit echo prüfen
relative Pfade falsch verstehen pwd prüfen

IHK-sichere Kurzformulierung

Unter Linux werden Dateien und Verzeichnisse häufig über die Shell verwaltet. Mit ls werden Verzeichnisinhalte angezeigt, mit cat, less, head und tail werden Dateiinhalte gelesen. tail -f eignet sich besonders zum Live-Mitlesen von Logdateien. Dateien werden mit touch erstellt, mit cp kopiert, mit mv verschoben oder umbenannt und mit rm gelöscht. grep sucht Textmuster in Dateien, während find Dateien und Verzeichnisse anhand von Kriterien wie Name, Typ, Größe oder Änderungszeit sucht. Vor Änderungen an wichtigen Konfigurationsdateien sollte eine Sicherungskopie erstellt werden. Fehlermeldungen wie Permission denied deuten auf Rechteprobleme hin, während No such file or directory auf einen falschen oder nicht vorhandenen Pfad hinweist.


Merksätze

ls zeigt Dateien und Verzeichnisse.

ls -l zeigt Details.

ls -a zeigt versteckte Dateien.

cat zeigt kleine Dateien direkt.

less ist besser für lange Dateien.

head zeigt den Anfang.

tail zeigt das Ende.

tail -f liest live mit.

touch erstellt leere Dateien.

mkdir erstellt Verzeichnisse.

mkdir -p erstellt Zwischenordner mit.

cp kopiert.

cp -r kopiert Verzeichnisse.

mv verschiebt und benennt um.

rm löscht direkt.

rmdir löscht leere Verzeichnisse.

nano bearbeitet Textdateien.

grep sucht Text.

find sucht Dateien.

file erkennt Dateitypen.

which zeigt den Programmpfad.

du zeigt Speicherverbrauch.

wc -l zählt Zeilen.

Permission denied bedeutet Rechteproblem.

No such file or directory bedeutet:
Datei oder Pfad existiert nicht.

Vor Konfigurationsänderungen Backup erstellen.

Erst anzeigen,
dann löschen.

Platzhalter bei rm sehr vorsichtig verwenden.

Linux unterscheidet Groß- und Kleinschreibung.