105.2

SQL-Datenverwaltung

Code: 105.2

progress.course_progress / 2 Lektionen

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

1

Einfache Skripte anpassen oder schreiben – Teil 1

105.2.L1

6 Quiz 3 Karten
## Lernziele
- Kernkonzepte von **Shell-Skripte** verstehen
- Prüfungsrelevante Befehle und Konfigurationen beherrschen
- Typische Fehlerquellen erkennen und beheben

## Zusammenfassung
Diese Lektion behandelt das LPIC-Thema **Einfache Skripte anpassen oder schreiben – Teil 1**. Das Thema gehört zum Bereich Shell-Skripte und ist Teil des offiziellen Prüfungsstoffs.

Im Fokus stehen die praktischen Grundlagen, die für die Zertifizierung essenziell sind. Wichtige Schwerpunkte sind: bash, scripting, loops.

## 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 (6 Fragen)

Frage / 6 /

Wie setzt Sie den Befehl read ein, um die Eingaben des Benutzers in der Variablen PASSWORD zu speichern und gleichzeitig den eingetippten Inhalt zu verbergen?

Erklärung: read -s schaltet den Still-Modus ein (silent). Die Eingabe wird nicht auf dem Bildschirm angezeigt — ideal für Passworteingaben.

Wie können Sie in einem Bash-Skript die Ausgabe des Befehls whoami in der Variablen WHO speichern?

Erklärung: $(whoami) ist die moderne Form der Befehlssubstitution. Die veraltete Form mit Backticks `whoami` ist ebenfalls korrekt.

Welcher Bash-Operator sollte zwischen apt-get dist-upgrade und systemctl reboot stehen, wenn systemctl reboot nur ausgeführt werden soll, falls apt-get dist-upgrade erfolgreich beendet wurde?

Erklärung: && führt den rechten Befehl nur aus, wenn der linke Befehl Erfolgcode 0 liefert. || würde den rechten Befehl bei FEHLER ausführen.

Sie erhalten beim Ausführen eines Skripts: "bash: ./script.sh: Permission denied". Sie haben die Datei selbst erstellt. Was ist die wahrscheinlichste Ursache?

Erklärung: Ein neu erstelltes Skript hat standardmäßig keine Ausführungsberechtigung. chmod +x script.sh oder bash script.sh (direkte Interpreter-Ausführung) behebt das Problem.

Eine Skriptdatei do.sh hat einen symbolischen Link undo.sh. Wie erkennen Sie im Skript, ob es über do.sh oder undo.sh aufgerufen wurde?

Erklärung: $0 enthält den Namen, mit dem das Skript aufgerufen wurde. Bei einem symbolischen Link zeigt $0 den Namen des Links an, nicht den Namen des Ziels.

Wie sieht eine if-Anweisung aus, die den mail-Befehl ausführt, falls der vorherige Befehl nicht erfolgreich war?

Erklärung: $? enthält den Exit-Status des letzten Befehls. -ne 0 prüft auf Nicht-Erfolg.

✓ Quiz abgeschlossen! 🎉

/ richtig

Karteikarten (3)

Karte / 3

Frage

Wofür steht der Zwei-Pfeil-Operator <<< (Here-String) in Bash?

Tippe zum Aufdecken →

Antwort

Der Here-String <<< leitet die folgende Zeichenkette als Standardeingabe an den Befehl weiter. Beispiel: mail -s "Maintenance Error" root <<<"Scheduled task error" Hier wird der Text "Scheduled task error" als E-Mail-Text übergeben, ohne eine separate Datei erstellen zu müssen.

Frage

Was ist der Unterschied zwischen den Operatoren &&, || und ; bei der Befehlsverkettung in Bash?

Tippe zum Aufdecken →

Antwort

&& → rechter Befehl wird nur bei Erfolg des linken ausgeführt || → rechter Befehl wird nur bei Fehler des linken ausgeführt ; → rechter Befehl wird immer ausgeführt (unabhängig vom Status) Beispiel: apt-get update && apt-get upgrade || echo "Fehler"; echo "Fertig"

Frage

Welche Berechtigungen müssen für ein Bash-Skript gesetzt sein, damit es als ./script.sh ausgeführt werden kann?

Tippe zum Aufdecken →

Antwort

Mindestens Ausführungsberechtigung (x) für den Eigentümer: chmod u+x script.sh Alternativ kann das Skript auch ohne Ausführungsrechte über den Interpreter gestartet werden: bash script.sh Das Shebang (#!/bin/bash) am Anfang der Datei ist erforderlich, damit das System den richtigen Interpreter erkennt.

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

Einfache Skripte anpassen oder schreiben – Teil 2

105.2.L2

5 Quiz 3 Karten
## Lernziele
- Kernkonzepte von **Shell-Skripte** verstehen
- Prüfungsrelevante Befehle und Konfigurationen beherrschen
- Typische Fehlerquellen erkennen und beheben

## Zusammenfassung
Diese Lektion behandelt das LPIC-Thema **Einfache Skripte anpassen oder schreiben – Teil 2**. Das Thema gehört zum Bereich Shell-Skripte und ist Teil des offiziellen Prüfungsstoffs.

Im Fokus stehen die praktischen Grundlagen, die für die Zertifizierung essenziell sind. Wichtige Schwerpunkte sind: bash, scripting, loops.

## 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 (5 Fragen)

Frage / 5 /

Wie setzen Sie test ein, um zu prüfen, ob die Datei in FROM neuer ist als die Datei in TO?

Erklärung: test -nt (newer than) vergleicht die Änderungszeit zweier Dateien. Es gibt Exit-Code 0 zurück, wenn die linke Datei neuer ist als die rechte.

Das folgende Skript gibt unendlich oft 0 aus. Was fehlt? #!/bin/bash COUNTER=0 while [ $COUNTER -lt 10 ] do echo $COUNTER done

Erklärung: Die Variable COUNTER muss inkrementiert werden, damit die while-Schleife irgendwann endet. Ohne Inkrement bleibt COUNTER immer 0 < 10 → Endlosschleife.

Ein Skript sortiert Benutzernamen auf Ihrem Rechner korrekt: carol, Dave, emma, Frank, Grace, henry. Auf dem Kollegen-Rechner erscheint: Dave, Frank, Grace, carol, emma, henry. Was ist die Ursache?

Erklärung: Die Sortierung basiert auf dem aktuellen Locale. Mit unterschiedlichen Locale-Einstellungen (z.B. de_DE vs. C) werden Groß-/Kleinbuchstaben unterschiedlich behandelt.

Wie können Sie alle Befehlszeilenargumente nutzen, um ein Bash-Array zu initialisieren?

Erklärung: $* expandiert alle Argumente als einzelne Worte, $@ als separate Worte. Beide können zur Array-Initialisierung verwendet werden.

Warum wird test 1 > 2 entgegen allen Erwartungen als wahr gewertet?

Erklärung: Im Kontext von test (oder [ ]) ist > ein String-Vergleichsoperator (lexikographisch), kein numerischer Vergleich. Für numerische Vergleiche wäre -gt korrekt.

✓ Quiz abgeschlossen! 🎉

/ richtig

Zur Kursübersicht

Karteikarten (3)

Karte / 3

Frage

Wie ändern Sie das Feld-Trennzeichen IFS vorübergehend auf Zeilenumbruch und stellen es danach wieder her?

Tippe zum Aufdecken →

Antwort

OLDIFS=$IFS IFS=$'\n' # ... Befehle mit zeilenweiser Verarbeitung ... IFS=$OLDIFS Erklärung: IFS ist die Internal Field Separator Variable. Der Standardwert ist Leerzeichen/Tabulator/Neuezeile. $\n ist die Escape-Sequenz für Zeilenumbruch. Durch Sichern in OLDIFS kann der ursprüngliche Wert später wiederhergestellt werden.

Frage

Wie sortieren Sie eine Datei konstant unabhängig vom aktuellen Locale?

Tippe zum Aufdecken →

Antwort

LANG=C sort datei Erklärung: LANG=C setzt das klassische C-Locale, das eine rein byte-basierte Sortierung verwendet (ASCII-Reihenfolge). Dadurch wird sichergestellt, dass die Sortierung auf allen Systemen identisch ist, unabhängig von Spracheinstellungen.

Frage

Was ist der Unterschied zwischen $* und $@ bei der Array-Initialisierung?

Tippe zum Aufdecken →

Antwort

$* → Alle Argumente als EIN Wort (mit IFS getrennt) $@ → Alle Argumente als separate Worte (jeweils in Anführungszeichen) Beispiel: PARAMS=( $* ) # Worte werden an IFS-Leerzeichen gesplittet PARAMS=( "$@" ) # Jedes Argument bleibt als eigenes Array-Element erhalten Für Arrays ist "$@" die sicherere Variante, da Argumente mit Leerzeichen erhalten bleiben.

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