Dauer: 3 Tage
Motivation: Die Shell ist DAS Werkzeug unter Linux/UNIX zum Arbeiten mit dem System. Neben der interaktiven Verwendung werden viele Aufgaben mit ihrer Hilfe automatisiert. Sie ist sozusagen der "Kleber", der die vielen Werkzeuge eines Linux/UNIX-Systems zu einer Einheit zusammenfügt.
Ziel: Sie sind nach dem Kurs in der Lage, viele Ihrer Tätigkeiten auf einem Linux/UNIX-System mit Hilfe von Shell-Skripten zu automatisieren und eigene Linux/UNIX-Werkzeuge für wiederkehrende Aufgabenstellungen zu programmieren. Vor allem die syntaktischen Besonderheiten und die damit einhergehenden "Fallen" der Shell-Programmiersprache werden intensiv besprochen.
Im Verlaufe des Kurses werden Sie viele nützliche Übungs-Shell-Skripte erstellen sowie ein großes durchgängiges Beispiel-Skript für eine Menüsystem bzw. eine Adreßverwaltung schrittweise aufbauen.
Hinweis: Der Kurs ist für jedes Linux/UNIX-System geeignet, besprochen wird die "Bourne-Shell" und ihre Erweiterung "Bash".
Inhalt:
- Wiederholung Linux/UNIX-Einführungs- und Aufbaukurs
- Einführung
- Skript-Aufbau und -Aufruf
- Kommentare
- Exit-Status
- Fehlerkanal
- Fehlersuche
- Wichtige Kommandos
- clear
- echo
- sleep
- Kommando-Substitution (`…` $(…))
- expr
- Variablen und Parameter
- Shell-Variablen
- Umgebungs-Variablen
- Vordefinierte Variablen
- Benutzer-Eingabe (read dd)
- Skript-Parameter ($* $@ $1… shift)
- Kontrollstrukturen zur Ablaufsteuerung
- Vergleiche (test)
- Verzweigungen (if case)
- Schleifen (for while until)
- Vorzeitiger Abbruch (break continue exit)
- Häufige Fehler und Tipps
- Funktionen (zur Strukturierung von Skripten)
- Definition und Aufruf
- Rücksprung (return)
- Parameter-Übergabe
- Werte-Rückgabe
- Source-Operator (. source)
- Kommando-Kombination
- Kommando-Listen (&& ||)
- Kommando-Trenner (& ; NEWLINE)
- Kommando-Gruppierung ((…) {…})
- Line continuation (\)
- Signalbehandlung (trap)
- Hintergrund/Kind-Prozesse (& wait)
- Anhang I (Skript-Aufruf, Usage-Meldung, Leere Anweisung, basename/dirname,
mktemp, exec, eval, getopts, Bedingte Variablen, Spezialvariablen, Temporäre Variablen)
- Anhang II (Shell-Optionen, Here-Dokument, select, tput, xargs, time,
seq/jot/for((…)), uname, (k/X)dialog, Rekursion)
- Anhang III (expr, read, test, Arrays, declare, ((…)), [[…]], printf)
Schulungsunterlagen:
- Skript
- Lösungsblätter zu allen Übungen
- Zusammenfassung der wichtigsten Linux/UNIX-Befehle
- Zusammenfassung der wichtigsten Vi-Befehle
- Ausführliche Linux/UNIX-Befehlsübersicht
Voraussetzungen:
- Muss: Allg. Computer-Kenntnisse (Tastatur, Maus, Grafische Oberfläche, Editor)
- Muss: Linux/UNIX-Einführungs-Kurs (Shell-Ebene mit Kommando-Zeile)
- Muss: Arbeiten auf der Kommandozeile (analog MS-DOS)
- Muss: Kenntnis des Linux/UNIX-Standard-Editors vi
- Muss: Kenntnisse in einer beliebigen Programmiersprache
- Optional: Linux/UNIX-Aufbau-Kurs
Abgrenzung:
- Keine Installation
- Keine Systemadministration
- Keine grafische Oberfläche (KDE oder GNOME)
- Kein Netzwerk
- Keine root-Rechte notwendig
- Die "C-Shell" und "TC-Shell" wird nicht besprochen