SQL-Datenverwaltung
Code: 105.2
Du bist nicht angemeldet. Melde dich an, um deinen Lernfortschritt zu speichern und Quizze zu bearbeiten.
Einfache Skripte anpassen oder schreiben – Teil 1
105.2.L1
- 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)
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)
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.
Einfache Skripte anpassen oder schreiben – Teil 2
105.2.L2
- 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)
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
Karteikarten (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.