103.2

Textströme mit Filtern verarbeiten

Code: 103.2

progress.course_progress / 1 Lektionen

Du bist nicht angemeldet. Melde dich an, um deinen Lernfortschritt zu speichern und Quizze zu bearbeiten.

1

Textströme mit Filtern verarbeiten

103.2.L1

12 Quiz 8 Karten
## Lernziele
- Kernkonzepte von **Textströme** verstehen
- Prüfungsrelevante Befehle und Konfigurationen beherrschen
- Typische Fehlerquellen erkennen und beheben

## Zusammenfassung
Diese Lektion behandelt das LPIC-Thema **Textströme mit Filtern verarbeiten**. Das Thema gehört zum Bereich Textströme und ist Teil des offiziellen Prüfungsstoffs.

Im Fokus stehen die praktischen Grundlagen, die für die Zertifizierung essenziell sind. Wichtige Schwerpunkte sind: cat, grep, sort, cut.

## Wichtige Befehle
- Inhalt folgt in der aktualisierten Version

## Prüfungstipps
- Lesen Sie die Manpages zu allen genannten Befehlen
- Üben Sie Befehle in einer virtuellen Maschine oder Container-Umgebung
- Achten Sie auf die Unterschiede zwischen Distributionen

## Weiterführende Links
- [LPI-Lernmaterial (offiziell)](https://www.lpi.org)
- [Linux Man Pages Online](https://man7.org/linux/man-pages/)

Quiz (12 Fragen)

Frage / 12 /

Wie können Sie mit grep und wc die Anzahl der Prozessoren in /proc/cpuinfo ermitteln?

Erklärung: grep processor /proc/cpuinfo filtert alle Zeilen mit "processor". wc -l zählt die Zeilen — eine pro Prozessorkern. Die unnötige Pipe über cat (cat | grep) ist hier überflüssig.

Welcher Befehl zeigt alle Benutzer an, die eine Bash-Shell haben (in /etc/passwd)?

Erklärung: grep ":/bin/bash$" sucht nach Zeilen, die mit :/bin/bash enden. Das Dollarzeichen ($) ist der reguläre Ausdruck für Zeilenende. cut -d: -f1 extrahiert nur den Benutzernamen.

Wie zählen Sie die Benutzer in /etc/passwd, die KEINEN Zugriff auf eine Bash-Shell haben?

Erklärung: grep -v kehrt die Suche um (invert match). Damit werden alle Zeilen AUSSER denen mit :/bin/bash$ gezählt. Das Dollarzeichen sichert das exakte Ende des Feldes.

Wie listen Sie nur die erste Zeile, die zehnte Zeile und die letzte Zeile von /etc/passwd auf?

Erklärung: sed -n unterdrückt die Standardausgabe. -e '1p' gibt Zeile 1 aus, -e '10p' Zeile 10, -e '$p' die letzte Zeile. Das Dollarzeichen $ steht für die letzte Zeile.

In mypasswd: Wie listen Sie alle Benutzer der Gruppe 1000 korrekt auf, ohne Benutzer mit UID 1000 zu erfassen?

Erklärung: Die GID ist das vierte Feld (nach dem dritten Doppelpunkt). Carol hat zwar UID 1000, aber GID 2000. Der reguläre Ausdruck :1000:[A-Z] trifft nur zu, wenn nach :1000: ein Großbuchstabe folgt — das ist das GECOS-Feld.

Welcher Befehl wählt zufällig eine Person aus dem Main Office für ein Gewinnspiel aus?

Erklärung: sort -R mischt die Zeilen zufällig (random sort). head -1 nimmt den ersten Eintrag. cut -d: -f5 extrahiert das GECOS-Feld, cut -d, -f1 trennt den vollständigen Namen ab.

Wie zählen Sie, wie viele Personen in den Bereichen Finance, Engineering und Sales arbeiten?

Erklärung: cut -d, -f2 extrahiert das Abteilungsfeld (2. Feld nach Komma). uniq -c zählt aufeinanderfolgende identische Zeilen. Da uniq nur benachbarte Zeilen vergleicht, muss zuvor sortiert werden.

Wie erstellen Sie aus mypasswd eine CSV-Datei names.csv mit den Spalten First Name, Last Name und Position?

Erklärung: Die Befehlssequenz: cut extrahiert einzelne Felder, paste fügt sie nebeneinander (tab-getrennt), tr \u0027\t\u0027 , ersetzt Tabulatoren durch Kommata. Das Ergebnis wird in names.csv umgeleitet.

Wie stellen Sie mit md5sum sicher, dass niemand die Datei names.csv unbemerkt manipuliert?

Erklärung: md5sum names.csv > hash.txt erstellt eine Prüfsummendatei. md5sum -c hash.txt verifiziert die Datei gegen den gespeicherten Hash. Bei Änderung (z.B. Jones → James) schlägt die Prüfung fehl.

Mit welchem Befehl teilen Sie eine 100-Zeilen-pro-Tag-Leseaufgabe in Segmente zu je 100 Zeilen auf?

Erklärung: split -l 100 teilt eine Datei in Segmente zu je 100 Zeilen. Die Ausgabedateien heißen standardmäßig xaa, xab, xac usw. Optional kann ein Präfix angegeben werden: split -l 100 buch.txt segment.

Wie schneiden Sie aus der Ausgabe von ls -l nur die Dateinamen heraus, wenn mehrere Leerzeichen zwischen den Spalten stehen?

Erklärung: tr -s \u0027 \u0027 komprimiert mehrere Leerzeichen zu einem einzigen. Danach kann cut -d\u0022 \u0022 -f9 das 9. Feld (Dateiname) extrahieren. ls -l hat ohne komprimierte Leerzeichen 9 Felder.

Welche tail-Option wird verwendet, um einer Datei zu "folgen", während fortlaufend neue Daten hineingeschrieben werden (z.B. Logs)?

Erklärung: tail -f (follow) hält die Datei geöffnet und zeigt neue Zeilen an, sobald sie hinzugefügt werden. Das ist ideal für Log-Dateien wie /var/log/syslog, die während des Systembetriebs wachsen.

✓ Quiz abgeschlossen! 🎉

/ richtig

Zur Kursübersicht

Karteikarten (8)

Karte / 8

Frage

Erklären Sie den Unterschied zwischen >, >> und | bei der Textverarbeitung in der Shell.

Tippe zum Aufdecken →

Antwort

> (Single Arrow): Leitet stdout in eine Datei um (Überschreibt bestehenden Inhalt!) >> (Double Arrow): Hängt stdout an eine bestehende Datei an (append) | (Pipe): Leitet stdout eines Befehls an stdin eines anderen Befehls weiter Beispiel: echo "Hallo" > datei.txt # Überschreibt echo "Welt" >> datei.txt # Hängt an cat datei.txt | grep Hallo # Weiterleitung an grep

Frage

Wofür dienen die Befehle head, tail, nl und wc?

Tippe zum Aufdecken →

Antwort

head → Zeigt die ersten 10 Zeilen einer Datei an (-n X für X Zeilen) tail → Zeigt die letzten 10 Zeilen einer Datei an (-n X für X Zeilen, -f für "follow") nl → Zeilennummern an Datei anhängen ("number lines") wc → Zählt Zeilen (-l), Wörter (-w) und Zeichen (-c) Beispiel: head -n 5 /var/log/syslog | nl | wc -l # Zeigt die ersten 5 Zeilen mit Nummern und zählt sie (ergibt 5)

Frage

Erklären Sie die wichtigsten sed-Operationen: Suchen, Löschen und Ersetzen.

Tippe zum Aufdecken →

Antwort

sed -n /muster/p → Gibt nur Zeilen mit "muster" aus (-n unterdrückt Standardausgabe, p = print) sed /muster/d → Löscht alle Zeilen mit "muster" aus der Ausgabe sed s/muster/ersatz/ → Ersetzt das ERSTE Vorkommen von "muster" durch "ersatz" sed s/muster/ersatz/g → Ersetzt ALLE Vorkommen (global) sed -i.backup s/muster/ersatz/ datei → Bearbeitet Datei direkt (-i), erstellt Backup Beispiel: sed -n /cat/p ftu.txt # Zeilen mit "cat" sed /cat/d ftu.txt # Zeilen OHNE "cat" sed s/cat/dog/g ftu.txt # Alle "cat" → "dog"

Frage

Erklären Sie die Unterschiede zwischen cut, paste und tr.

Tippe zum Aufdecken →

Antwort

cut → Extrahiert Spalten/Felder aus Text (-d für Trennzeichen, -f für Feldnummer) paste → Fügt Dateien nebeneinander zusammen (tab-getrennt, -d für anderes Trennzeichen) tr → Übersetzt, löscht oder komprimiert Zeichen (translate) Beispiele: cut -d: -f1 /etc/passwd # Benutzernamen cut -d: -f1,3 /etc/passwd # Name + UID paste firstname lastname # Dateien nebeneinander tr '\t' ',' < datei.txt # Tabulatoren → Kommata tr -s ' ' # Mehrere Leerzeichen → ein Leerzeichen

Frage

Wie funktionieren sort und uniq zusammen? Was ist die wichtigste Einschränkung von uniq?

Tippe zum Aufdecken →

Antwort

sort → Sortiert Zeilen alphabetisch (-r umgekehrt, -R zufällig, -n numerisch, -u eindeutig) uniq → Zeigt nur eindeutige Zeilen an (-c zählt Vorkommen) WICHTIGE EINSCHRÄNKUNG: uniq erkennt nur BENACHBARTE identische Zeilen! Daher muss VOR uniq immer sortiert werden, wenn alle Duplikate entfernt werden sollen. Beispiel: sort datei.txt | uniq # Alle eindeutigen Zeilen sort datei.txt | uniq -c # Zählt Häufigkeit sort -R namen.txt | head -1 # Zufällige Auswahl

Frage

Wozu dient der Befehl od und wie werden unsichtbare Zeichen sichtbar gemacht?

Tippe zum Aufdecken →

Antwort

od = Octal Dump Zeigt Dateiinhalt in verschiedenen Formaten: od datei → Oktalausgabe od -x datei → Hexadezimalausgabe od -c datei → Zeichenausgabe (\n für Zeilenumbruch sichtbar!) od -An -c datei → Ohne Offset-Spalte Besonders nützlich zum Debuggen von Skripten, um versteckte Zeichen (z.B. \r\n statt \n) zu erkennen. Beispiel: od -c skript.sh | head # Zeigt \n am Ende jeder Zeile

Frage

Wie prüfen Sie die Datenintegrität einer Datei mit md5sum, sha256sum und sha512sum?

Tippe zum Aufdecken →

Antwort

Prüfsummen = kryptografische Hashwerte Erstellen: md5sum datei > md5.txt sha256sum datei > sha256.txt Verifizieren: md5sum -c md5.txt # OK oder FAILED sha256sum -c sha256.txt Wichtig: Bei jeder kleinsten Änderung (auch nur 1 Byte) ändert sich der Hash komplett! Anwendung: Downloadserver stellen Prüfsummen bereit, damit Nutzer die Integrität heruntergeladener ISO-Dateien verifizieren können.

Frage

Wie lesen Sie den Inhalt komprimierter Dateien, ohne sie zu entpacken?

Tippe zum Aufdecken →

Antwort

zcat datei.gz → Zeigt Inhalt von gzip-komprimierten Dateien bzcat datei.bz2 → Zeigt Inhalt von bzip2-komprimierten Dateien xzcat datei.xz → Zeigt Inhalt von xz-komprimierten Dateien Diese Befehle sind nützlich, um Logs oder Textdateien zu durchsuchen, ohne Speicherplatz für die entpackte Datei zu benötigen. Beispiel: zcat ftu.txt.gz | grep cat # Suche in gezipptem Archiv zcat syslog.1.gz | tail -20 # Letzte 20 Zeilen aus gezipptem Log

Bearbeite alle Quizfragen, um die Lektion abzuschließen. ✓ Lektion abgeschlossen