Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Alltägliches Linux 3: Protokolle und Prozesse

Die ganze Lektion steht hier zum Lesen. Erstellen Sie ein kostenloses Konto, um sie in einem Live-Lab auszuführen.

Ubuntu-VM-Lab10 Min. Lesezeit8 Befehle

Die Antwort steht im Protokoll

Bei einem Shop fällt um Mitternacht die Bezahlung aus. Niemand hat etwas angefasst. Als Erstes liest die Person aus der Technik das Ende einer Datei, in die das Zahlungsprogramm schreibt, was es getan hat. Dort steht, was schiefging, mit der Uhrzeit.

Am Ende dieser Lektion

Notiz

Ich kann ein Protokoll lesen und einen Prozess beenden, der sich falsch verhält.

Schlüsselwörter

  • Protokoll (Log): eine Datei, in die ein Programm schreibt, was es getan hat.
  • Pipe: |, das die Antwort eines Befehls an den nächsten weitergibt.
  • Prozess: ein Programm, das gerade läuft.
  • PID: die Nummer, die einen Prozess benennt.
  • Signal: eine Nachricht an einen Prozess, zum Beispiel „Stopp“.

Zum Start: Was du schon weißt

Notiz

Antworte im Kopf. 1. Was macht >> mit einer Datei? 2. Was ist ein Pfad? 3. Welcher Befehl gibt eine ganze Datei aus? Du lernst gleich einen Befehl kennen, der nur das Ende einer Datei zeigt.

Bevor du anfängst

Notiz

Drücke in der Leiste oben in dieser Lektion auf Lab starten. Dieses Lab ist eine ganze Ubuntu-Maschine nur für dich, deshalb dauert der Start etwas länger als bei einem Container. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal der Maschine, einen nach dem anderen in derselben Sitzung. Wenn einer sagt, dass die Maschine noch startet, warte ein paar Sekunden und drücke ihn noch einmal. Wo in der Lektion Tippe das ein steht, endet der Befehl nicht von selbst oder fragt dich etwas. Drücke dann in der Leiste auf Terminal öffnen (neuer Tab) und tippe ihn selbst ein.

Das Ende eines Protokolls lesen und es durchsuchen

Das Ende eines Protokolls ist der neueste Teil. tail -n 5 gibt die letzten fünf Zeilen aus. grep gibt nur die Zeilen aus, die bestimmte Wörter enthalten, und -c zählt sie stattdessen. Der letzte Befehl verbindet drei mit Pipes: das ganze Protokoll lesen, die Zeilen mit hello behalten, die drei neuesten zeigen.

Befehl
tail -n 5 /var/log/test.log

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
grep 'hello' /var/log/test.log

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
grep -c ERROR /var/log/test.log

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
cat /var/log/test.log | grep 'hello' | tail -n 3

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Tippe das ein: ein Protokoll verfolgen, während es wächst

Tippe im Terminal tail -f /var/log/test.log. Neue Zeilen erscheinen, sobald sie geschrieben werden. Drücke Strg+C, um zu stoppen. Eine Schaltfläche „Ausführen“ kann nicht Strg+C drücken, deshalb tippst du diesen Befehl selbst. In den Notizen anderer siehst du auch tail -200f: Es zeigt zuerst die letzten 200 Zeilen und verfolgt dann weiter.

Prüfe dich

Tipp

Welcher Befehl zeigt nur das Ende einer Datei, und welcher behält nur die Zeilen mit einem bestimmten Wort? Antwort: tail und grep. Mit einer Pipe verbunden beantworten sie die meisten Fragen zu einem Protokoll.

Eine Datei und einen Befehl finden

find / -name 'test.log' durchsucht die ganze Maschine. Teile davon sind für dich gesperrt, deshalb wirft 2>/dev/null diese Fehlermeldungen weg. which ls sagt, wo ein Befehl liegt.

Befehl
find / -name 'test.log' 2>/dev/null

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
which ls

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Einen Prozess finden

Ein laufendes Programm ist ein Prozess und hat eine Nummer, seine PID. ps -ef listet alle auf, und | grep worker behält die Zeilen mit diesem Wort. Es kommen zwei Zeilen zurück: der Worker und das grep, das du gerade ausgeführt hast. pgrep -f lab-worker gibt nur die Nummer aus.

Befehl
ps -ef | grep worker

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
pgrep -f lab-worker

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Tippe das ein: ihn beenden

Nimm die Nummer aus der Antwort oben. Tippe im Terminal kill 1234 mit deiner Nummer und führe dann ps -ef | grep worker noch einmal aus: Der Worker ist weg. Suche jetzt den zweiten Prozess mit ps -ef | grep stubborn, tippe kill und seine Nummer und schau noch einmal nach. Er ist noch da, weil er eine höfliche Bitte ignoriert. Tippe kill -9 und seine Nummer, dann stoppt er. top zeigt die aktivsten Prozesse live; drücke q.

Ein häufiger Fehler

Warnung

Viele denken, kill -9 sei einfach das stärkere kill, und benutzen es zuerst. kill bittet ein Programm, aufzuhören, damit es seine Arbeit speichern und aufräumen kann. kill -9 nimmt es sofort weg, ohne Aufräumen, und kann halb geschriebene Dateien hinterlassen. Benutze kill, warte ein paar Sekunden und nimm -9 nur, wenn das Programm immer noch nicht aufhört.

Abschlusscheck

Tipp

Antworte, ohne zurückzuschauen. 1. Wie stoppst du tail -f? 2. Was macht 2>/dev/null? 3. Was probierst du zuerst, kill oder kill -9? Antworten: Strg+C; es wirft die Fehlermeldungen weg; kill.

Für Lehrkräfte

Tipp

Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab bearbeitet wird: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Diese Lektion läuft in einem VM-Lab: Jede lernende Person hat eine eigene Ubuntu-Maschine, und „Ausführen“ tippt in deren Terminal und zeigt, was ausgegeben wurde. Lernziele: 1. tail und grep lesen ein Protokoll. 2. find und which finden Dinge. 3. ps findet einen Prozess und kill beendet ihn. Häufiger Fehler: kill -9 zuerst benutzen. Ausstattung: das Lab und ein Browser. Tipp: Starten Sie tail -f auf dem Bildschirm der Lehrkraft und lassen Sie die Klasse sagen, wann die nächste Zeile kommt. Das Lab hat keine Prüfung und bewertet nichts. Legen Sie eine eigene Abgabe fest, wenn Sie eine möchten. Kopieren Sie die Lektion in Ihr eigenes Modul und ändern Sie sie, oder bauen Sie mit dem Menü Lab im Lektionseditor eine neue.

Über dieses Lab und seinen Quellcode: Lab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Sie unterrichten eine Klasse? Weisen Sie diese Lektionen Ihren Lernenden zu, mit Bewertung und einem Lab für jede lernende Person.