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:

BefehlBedeutung
lsInhalt des aktuellen Verzeichnisses anzeigen
ls -lausführliche Liste anzeigen
ls -aauch versteckte Dateien anzeigen
ls -laausführlich und mit versteckten Dateien
ls /etcInhalt von /etc anzeigen
ls -lhGröß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:

TeilBedeutung
-rw-r--r--Dateityp und Rechte
1Anzahl der Links
felixBesitzer
usersGruppe
1200Dateigröße in Byte
Jul 08 12:30Änderungsdatum
beispiel.txtDateiname

Der erste Buchstabe zeigt den Dateityp:

ZeichenBedeutung
-normale Datei
dVerzeichnis
lsymbolischer Link
cZeichen-Gerät
bBlock-Gerät
sSocket
pPipe

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:

TasteBedeutung
Leertasteeine Seite weiter
beine Seite zurück
Pfeiltastenzeilenweise bewegen
/suchwortinnerhalb der Datei suchen
nnächster Treffer
qless 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:

BefehlBedeutung
mkdir testVerzeichnis test erstellen
mkdir -p a/b/ckomplette 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:

OptionBedeutung
-rrekursiv, für Verzeichnisse
-ivor Überschreiben nachfragen
-vzeigt ausgeführte Aktionen
-perhä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:

OptionBedeutung
-rrekursiv, auch Unterordner
-fforce, keine Rückfrage
-iinteraktiv, 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:

TastenkombinationBedeutung
Strg + Ospeichern
EnterDateiname bestätigen
Strg + Xnano verlassen
Strg + Wsuchen
Strg + KZeile ausschneiden
Strg + UZeile 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:

OptionBedeutung
-iGroß-/Kleinschreibung ignorieren
-nZeilennummer anzeigen
-rrekursiv in Verzeichnissen suchen
-vTreffer umkehren, also nicht passende Zeilen
-lnur 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:

BefehlBedeutung
find /home -name "test.txt"sucht test.txt unter /home
find . -name "*.txt"sucht .txt-Dateien ab aktuellem Verzeichnis
find /var/log -type fsucht normale Dateien unter /var/log
find /var/log -type dsucht 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:

OptionBedeutung
-type fnormale Dateien
-type dVerzeichnisse
-type lsymbolische 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:

AusdruckBedeutung
-mtime -7jünger als 7 Tage
-mtime +30älter als 30 Tage
-mtime 1ungefä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:

BefehlBedeutung
ls -lhDateigrößen lesbar anzeigen
du -sh ordnerGesamtgröße eines Ordners anzeigen
du -hGröß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:

BefehlZweck
wc -lZeilen zählen
find ... | wc -lgefundene Einträge zählen

Merksatz:

wc -l zählt Zeilen.

Ausgaben mit Platzhaltern

Die Shell kann Platzhalter verwenden.

PlatzhalterBedeutung
*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

AufgabeMöglicher Befehl
aktuelle Position anzeigenpwd
Dateien anzeigenls -la
Datei lesencat datei.txt
lange Datei lesenless datei.txt
Log live verfolgentail -f logfile
Datei erstellentouch datei.txt
Verzeichnis erstellenmkdir ordner
Datei kopierencp quelle ziel
Verzeichnis kopierencp -r quelle ziel
Datei verschiebenmv quelle ziel
Datei löschenrm datei
leeres Verzeichnis löschenrmdir ordner
Text suchengrep "text" datei
Datei suchenfind /pfad -name "datei"
Datei bearbeitennano datei

Typische Fehlerbilder

FehlerbildWahrscheinliche Ursache
Datei nicht gefundenfalscher Pfad oder falscher Name
Permission deniedfehlende Rechte
No such file or directoryDatei oder Verzeichnis existiert nicht
Is a directoryBefehl erwartet Datei, Ziel ist Verzeichnis
Not a directoryPfadbestandteil ist keine Ordnerstruktur
Datei leer nach Umleitungfalscher Einsatz von >
rm löscht zu vielPlatzhalter oder falscher Pfad
grep findet nichtsGroß-/Kleinschreibung oder falsches Muster
find findet nichtsfalscher 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

BefehlZweck
lsDateien anzeigen
catDatei direkt ausgeben
lessDatei seitenweise lesen
headAnfang anzeigen
tailEnde anzeigen
tail -flive mitlesen
touchleere Datei erstellen
mkdirVerzeichnis erstellen
cpkopieren
mvverschieben oder umbenennen
rmlöschen
rmdirleeres Verzeichnis löschen
nanoDatei bearbeiten
grepText suchen
findDateien suchen
fileDateityp erkennen
whichProgrammpfad anzeigen
duSpeicherverbrauch anzeigen
wczählen

Typische Prüfungsfragen

FrageKurzantwort
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

FalleRichtig denken
cat für riesige Logs nutzenbesser less oder tail verwenden
rm wie Papierkorb verstehenrm löscht direkt
cp ohne -r bei VerzeichnissenVerzeichnisse rekursiv kopieren
mv nur als Verschieben verstehenmv benennt auch um
grep ohne -i bei unbekannter Schreibweise-i ignoriert Groß-/Kleinschreibung
find im falschen StartpfadSuchpfad bewusst wählen
sudo sofort verwendenzuerst Rechte und Pfad prüfen
Konfigurationsdatei ohne Backup ändernvorher Kopie erstellen
Platzhalter bei rm unterschätzenvorher mit echo prüfen
relative Pfade falsch verstehenpwd 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.