Dateien anzeigen
Auf einem Server ist fast alles Text: Einstellungen in /etc, Protokolle in /var/log, Skripte. Diese Befehle zeigen dir den Inhalt:
| Eingabe | Was du siehst |
|---|---|
| cat notizen.txt | Den ganzen Inhalt auf einmal. Gut für kurze Dateien. |
| cat -n notizen.txt | Dasselbe mit Zeilennummern. |
| less /var/log/syslog | Lange Dateien zum Blättern: Leertaste weiter, b zurück, /wort sucht, q beendet. Im Übungs-Terminal erscheint der Inhalt direkt. |
| head datei | Die ersten 10 Zeilen. Mit -n 3 nur die ersten 3. |
| tail datei | Die letzten 10 Zeilen. Mit -n 5 nur die letzten 5. |
Für Administratoren ist tail besonders wichtig: In Protokolldateien steht das Neueste immer unten. Wenn ein Dienst gerade abgestürzt ist, zeigt tail /var/log/syslog sofort, was zuletzt passiert ist. Und tail -f (follow) bleibt offen und zeigt jede neue Zeile, sobald sie dazukommt, bis du Strg+C drückst. So schaust du einem Dienst in Echtzeit bei der Arbeit zu.
Eine Zeile aus /var/log/syslog ist meist so aufgebaut: Zeitpunkt, Name des Rechners, Programm mit Prozessnummer in eckigen Klammern, dann die Meldung.
2026-10-01T05:00:00.105200+00:00 lernarena backup.sh[1922]: ERROR: Ziel /mnt/backup nicht erreichbarEnter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Zeige notizen.txt mit Zeilennummern an. Lass dir danach die letzten 5 Zeilen von /var/log/syslog anzeigen.
Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Ziele
- Zeige notizen.txt mit Zeilennummern an (offen)
- Zeige die letzten 5 Zeilen von /var/log/syslog (offen)
Musterlösung anzeigen
cat -n notizen.txt
tail -n 5 /var/log/syslogEin möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Statt tail -n 5 geht auch die Kurzform tail -5.
Suchen mit grep
Protokolle haben schnell Tausende Zeilen. grep zeigt nur die Zeilen, in denen ein Suchwort vorkommt. Erst kommt das Suchwort, dann die Datei:
azubi@lernarena:~$ grep ERROR /var/log/syslog
2026-10-01T05:00:00.105200+00:00 lernarena backup.sh[1922]: ERROR: Ziel /mnt/backup nicht erreichbarDas Suchwort wird im Terminal rot hervorgehoben. Die Zeit sieht bei dir anders aus, weil sie immer aktuell ist. Enthält das Suchwort Leerzeichen, gehört es in Anführungszeichen: grep "Failed password" /var/log/auth.log. Diese Optionen brauchst du am häufigsten:
| Option | Wirkung |
|---|---|
| -i | Groß- und Kleinschreibung egal: findet error, Error und ERROR (ignore case). |
| -n | Zeilennummer vor jedem Treffer. |
| -c | Nur zählen, wie viele Zeilen passen (count). |
| -v | Umgekehrt: nur die Zeilen, die das Wort NICHT enthalten. |
| -r | Alle Dateien in einem Ordner und seinen Unterordnern durchsuchen (rekursiv). Vor jedem Treffer steht dann der Dateiname. |
Optionen lassen sich wie bei ls zusammenfassen: grep -in error ist dasselbe wie grep -i -n error.
In /var/log/auth.log protokolliert der Server jede Anmeldung. Zeige alle Zeilen, in denen Failed vorkommt, also alle fehlgeschlagenen Anmeldungen. Lass grep danach mit -c zählen, wie viele es sind.
Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Ziele
- Zeige alle Zeilen aus /var/log/auth.log, in denen Failed vorkommt (offen)
- Lass grep zählen, wie viele Zeilen das sind (offen)
Musterlösung anzeigen
grep Failed /var/log/auth.log
grep -c Failed /var/log/auth.logEin möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. grep unterscheidet Groß- und Kleinschreibung: grep failed findet hier nichts.
Suche in /var/log/syslog nach error, egal ob groß oder klein geschrieben, und lass dir die Zeilennummern zeigen. Finde danach mit grep -r alle Zeilen mit TODO in allen Dateien unter projekte.
Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Ziele
- Suche in /var/log/syslog nach error, egal ob groß oder klein geschrieben, mit Zeilennummern (offen)
- Finde alle TODO-Notizen in allen Dateien unter projekte (offen)
Musterlösung anzeigen
grep -in error /var/log/syslog
grep -r TODO projekteEin möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Ohne -i fehlt die Zeile mit ERROR. Bei -r steht vor jedem Treffer die Datei, in der er steht.
Diese Aufgabe ist freiwillig, hier steht nicht genau, wie es geht. Jemand versucht, sich von außen auf dem Server anzumelden. Finde in /var/log/auth.log die fremde IP-Adresse, von der die meisten Fehlversuche kommen. Zähle dann mit grep, wie viele Fehlversuche von genau dieser Adresse kamen.
Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Ziele
- Finde die fremde IP-Adresse, von der die meisten Fehlversuche kommen (offen)
- Zähle mit grep, wie viele Fehlversuche von dieser Adresse kamen (offen)
Musterlösung anzeigen
grep Failed /var/log/auth.log
grep -c "from 203.0.113.45" /var/log/auth.logEin möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Es sind 9 Versuche mit den Benutzernamen root, admin und oracle. Mit nur grep -c 203.0.113.45 kommen 10 heraus, weil die Adresse auch in der Zeile steht, in der der Server die Verbindung trennt. Lies deshalb immer nach, was du zählst. In Lektion 6 lernst du, wie du solche Ranglisten automatisch erstellst.
Wo welche Protokolle liegen
| Datei | Was darin steht |
|---|---|
| /var/log/syslog | Allgemeine Meldungen des Systems und vieler Dienste. |
| /var/log/auth.log | Anmeldungen, fehlgeschlagene Passwörter und jede Nutzung von sudo. |
| /var/log/nginx/ | Zugriffe und Fehler des Webservers nginx (bei Apache: /var/log/apache2/). |
Die Protokolle gehören dem Benutzer syslog, der sie schreibt, und der Gruppe adm. Lesen darf, wer in dieser Gruppe ist. Unter Ubuntu ist das der Benutzer, der bei der Installation angelegt wurde, hier also azubi. Andere brauchen sudo, dazu mehr in Lektion 5. Zusätzlich sammelt systemd alle Meldungen in seinem Journal, das du mit journalctl liest. Manche Systeme schreiben nur noch dorthin. Das Übungs-Terminal kennt nur die Dateien.
Unter Windows
Jetzt selbst testen
Vier Fragen zum Abschluss. Du hast so viele Versuche, wie du willst.
Ein Dienst ist gerade abgestürzt. Welcher Befehl zeigt dir am schnellsten die neuesten Meldungen?
Was gibt grep -c Failed /var/log/auth.log aus?
grep error /var/log/syslog findet die Zeile mit ERROR nicht. Woran liegt das?
Wie beendest du tail -f, wenn du genug gesehen hast?