105.1

Shells, Scripting und Datenverwaltung

Code: 105.1

progress.course_progress / 3 Lektionen

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

1

Die Shell-Umgebung anpassen und verwenden – Teil 1

105.1.L1

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

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

Im Fokus stehen die praktischen Grundlagen, die für die Zertifizierung essenziell sind. Wichtige Schwerpunkte sind: env, export, aliases.

## 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 /

Welches Zeichen zeigt echo $0 an, wenn eine Login-Shell gestartet wurde?

Erklärung: Bei einer Login-Shell wird $0 mit einem vorangestellten Bindestrich angezeigt, z.B. -bash. Dies kennzeichnet die Shell als Login-Shell.

Welcher Befehl startet eine interaktive Shell MIT Login als user2?

Erklärung: su - user2, su -l user2 oder su --login user2 starten eine interaktive Login-Shell. Der Bindestrich (-) bewirkt die Login-Umgebung.

Welcher Befehl startet mit sudo eine interaktive Shell OHNE Login als root?

Erklärung: sudo -s startet eine interaktive Shell ohne Login (non-login shell) als root. sudo -i würde eine Login-Shell starten.

In welcher Datei sollte eine Funktion abgelegt werden, damit sie ausgeführt wird, wenn user2 ein Terminal aus einer X Window-Sitzung öffnet?

Erklärung: ~/.bashrc wird für interaktive Shells ohne Login ausgeführt, z.B. wenn ein Terminal in einer grafischen X Window-Sitzung geöffnet wird.

In welcher Datei würden Sie eine Funktion ablegen, damit sie ausgeführt wird, wenn root eine neue interaktive Shell startet — unabhängig davon ob mit oder ohne Login?

Erklärung: /etc/bash.bashrc wird für ALLE interaktiven Bash-Shells ausgeführt — sowohl mit als auch ohne Login.

Ein Skript test.sh mit echo $0 wird ausführbar gemacht und ausgeführt. Ist das ein interaktives Skript?

Erklärung: Nein, es ist nicht interaktiv. Das Skript führt Befehle aus, ohne auf Benutzereingaben zu warten. Interaktive Skripte warten auf Benutzereingaben (z.B. read-Befehl).

✓ Quiz abgeschlossen! 🎉

/ richtig

Karteikarten (3)

Karte / 3

Frage

Wie machen Sie eine in einer Datei definierte Funktion (hello() mit echo "Hello world!") für die aktuelle Shell verfügbar?

Tippe zum Aufdecken →

Antwort

source datei oder . datei Erklärung: source (oder der Punkt .) liest die Datei in die aktuelle Shell ein, ohne eine neue Subshell zu starten. Die Funktion hello() steht danach in der aktuellen Shell zur Verfügung.

Frage

Welche Dateien werden bei einer interaktiven Login-Shell in welcher Reihenfolge geladen?

Tippe zum Aufdecken →

Antwort

1. /etc/profile 2. Erste gefundene von: ~/.bash_profile, ~/.bash_login, ~/.profile 3. ~/.bash_logout (beim Beenden) Erklärung: Login-Shells laden systemweite Konfiguration (/etc/profile) gefolgt von benutzerspezifischen Dateien. Interaktive Nicht-Login-Shells laden nur ~/.bashrc.

Frage

Wie starten Sie mit sudo eine interaktive Login-Shell als root?

Tippe zum Aufdecken →

Antwort

sudo -i Erklärung: sudo -i simuliert einen initialen Login. Die Umgebung wird vollständig geladen (wie bei su - oder su -l). sudo -s startet nur eine Shell ohne Login.

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

Die Shell-Umgebung anpassen und verwenden – Teil 2

105.1.L2

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

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

Im Fokus stehen die praktischen Grundlagen, die für die Zertifizierung essenziell sind. Wichtige Schwerpunkte sind: env, export, aliases.

## 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 /

Welche Variablen sind GLOBAL (im Subprozess verfügbar) nach Ausführung von: mint=ubuntu-based; export mint?

Erklärung: Nur mint ist global, da sie explizit mit export exportiert wurde. Alle anderen Variablen ohne export sind lokal zur aktuellen Shell.

Was bedeutet die Ausgabe von echo $HISTCONTROL: ignoreboth?

Erklärung: ignoreboth bewirkt, dass sowohl doppelte Befehle als auch Befehle, die mit einem Leerzeichen beginnen, NICHT in die Bash-History aufgenommen werden.

Was zeigt echo $DISPLAY mit der Ausgabe reptilium:0:2 an?

Erklärung: DISPLAY=hostname:display_number.screen_number. reptilium:0:2 bedeutet Host reptilium, Display 0, Bildschirm 2.

Was bedeutet MAILCHECK=60 in der Shell-Umgebung?

Erklärung: MAILCHECK gibt das Intervall in SEKUNDEN an, in dem die Shell prüft, ob neue Mail angekommen ist. 60 = jede Minute.

Welche Schreibweise ist ein gültiges Synonym für: latest_music=`ls -l1t ~/Music | head -n 6`?

Erklärung: $() ist die moderne Form der Befehlssubstitution und ersetzt die veraltete Backtick-Notation ``.

✓ Quiz abgeschlossen! 🎉

/ richtig

Karteikarten (3)

Karte / 3

Frage

Erstellen Sie eine Variable my_val mit Wert 10 als Ergebnis der Addition von 5 und 5 mit let.

Tippe zum Aufdecken →

Antwort

let "my_val = 5 + 5" Erklärung: let wertet arithmetische Ausdrücke aus. Wenn der Ausdruck Leerzeichen enthält, muss er in Anführungszeichen stehen. Alternativ funktioniert auch: let 'my_val = 5 + 5'

Frage

Was ist der Unterschied zwischen lokalen und globalen (Umgebungs-)Variablen in der Shell?

Tippe zum Aufdecken →

Antwort

Lokale Variablen: Nur in der aktuellen Shell verfügbar (name=wert) Globale Variablen (Umgebungsvariablen): Auch in Subprozessen verfügbar (export name=wert) Erklärung: Ohne export sind Variablen nur in der aktuellen Shell-Sitzung gültig und werden nicht an Kindprozesse vererbt. export macht eine Variable zur Umgebungsvariable.

Frage

Variable mit Sonderzeichen korrekt setzen: Wie setzen Sie eine Variable lizard auf den Wert "cha|me|leon"?

Tippe zum Aufdecken →

Antwort

lizard='cha|me|leon' Erklärung: Einfache Anführungszeichen (') verhindern, dass die Pipe-Symbole (|) von der Shell als Metazeichen interpretiert werden. Bei doppelten Anführungszeichen würden | als Pipe-Operatoren interpretiert.

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

Die Shell-Umgebung anpassen und verwenden – Teil 3

105.1.L3

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

## Zusammenfassung
Diese Lektion behandelt das LPIC-Thema **Die Shell-Umgebung anpassen und verwenden – Teil 3**. Das Thema gehört zum Bereich Shell-Umgebung und ist Teil des offiziellen Prüfungsstoffs.

Im Fokus stehen die praktischen Grundlagen, die für die Zertifizierung essenziell sind. Wichtige Schwerpunkte sind: env, export, aliases.

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

Frage / 7 /

Vervollständigen Sie: Können Aliasse rekursiv sein (ein Alias ruft sich selbst auf)?

Erklärung: Ja, Aliasse KÖNNEN rekursiv sein. Allerdings kann dies zu Problemen führen, wenn nicht korrekt entkommen (escaped) wird, da die Shell den Alias vor der Befehlsausführung expandiert.

Welche der folgenden Eigenschaften trifft NUR auf Funktionen, aber NICHT auf Aliasse zu?

Erklärung: Funktionen können sehr produktiv mit Positionsparametern ($1, $2, etc.) verwendet werden. Aliasse akzeptieren keine Positionsparameter (Argumente werden an das Ende angehängt, nicht verarbeitet).

Wie lautet der Befehl, der alle definierten Aliasse im System auflistet?

Erklärung: alias ohne Argumente listet ALLE definierten Aliasse mit ihren Ersetzungstexten auf.

Welche Syntax erstellt einen Alias logg, der alle .ogg-Dateien in ~/Music auflistet (eine pro Zeile)?

Erklärung: alias name='befehl' definiert einen Alias. ls -1 (Klein-L) listet eine Datei pro Zeile. Der Pfad ~/Music/*ogg muss in Anführungszeichen stehen, damit die Tilde nicht zu früh expandiert wird.

Wie entfernen Sie einen Alias namens logg?

Erklärung: unalias logg entfernt den Alias logg aus der aktuellen Shell.

Welcher Befehl macht eine Funktion my_fun schreibgeschützt (readonly)?

Erklärung: readonly -f my_fun macht die Funktion my_fun schreibgeschützt. Sie kann dann nicht mehr überschrieben oder gelöscht werden.

Wie listen Sie alle schreibgeschützten Funktionen auf?

Erklärung: readonly -f listet alle schreibgeschützten Funktionen auf.

✓ Quiz abgeschlossen! 🎉

/ richtig

Zur Kursübersicht

Karteikarten (3)

Karte / 3

Frage

Was ist der wesentliche Unterschied zwischen einem Alias und einer Shell-Funktion?

Tippe zum Aufdecken →

Antwort

Alias: Kurzschreibweise für einen Befehl oder Befehlsfolge. Keine Parameterverarbeitung (Argumente werden einfach angehängt). Funktion: Definiert einen Codeblock mit Logik, Variablen und Positionsparametern ($1, $2...). Kann komplexe Aufgaben automatisieren und rekursiv sein.

Frage

Wie modifizieren Sie die Bash-Eingabeaufforderung (PS1), sodass sie <Benutzer>@<Host>-<Datum> anzeigt?

Tippe zum Aufdecken →

Antwort

PS1="\u@\h-\d " Erklärung: \u = Benutzername, \h = Hostname (kurz), \d = Datum. Diese Escape-Sequenzen werden von Bash in die aktuellen Werte expandiert.

Frage

Was passiert, wenn Sie einen Alias mit \ voranstellen (z.B. \ls statt ls)?

Tippe zum Aufdecken →

Antwort

Der Alias wird NICHT expandiert.\n\nErklärung: Das Backslash vor einem Befehl bewirkt, dass die Alias-Expansion für diesen Aufruf unterdrückt wird. Der Befehl wird als Originalbefehl ausgeführt (z.B. /usr/bin/ls anstelle eines Aliases, der ls als ls --color=auto definiert hat).

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