**!!! ACHTUNG - evtl. veraltet - ACHTUNG !!!** Diese Seite wurde zuletzt am 9. Juli 2014 um 10:41 Uhr geändert. ===== Sonderzeichen ===== Gib folgenden Text per echo aus: **"!'\ $("'")** [[Lösung]] Erzeuge folgende Dateien per "touch": ***.**c, ***.h** und **x.c** [[Lösung]] Lösche alle drei Dateien wieder, aber mit nur einem einzigen "rm"-Befehl! [[Lösung]] ===== Umleitungen ===== alle Zeilen aus /etc/services ausgeben, die "ftp" (grep), aber nicht "udp" (grep -v) enthalten (in zwei Schritten mit "Speicherung" des Zwischenergebnisses in einer Datei!) [[Lösung]] ===== Geschweifte Klammern ===== mittels geschweifter Klammern eine Sicherheitskopie von ~/.bashrc erstellen [[Lösung]] mit einem einzigen Befehl (geschweifte Klammern) 625 Verzeichnisse in tmp erzeugen [[Lösung]] ===== Prozesse kombinieren ===== alle Zeilen aus /etc/services ausgeben, die „ftp“, aber nicht „udp“ enthalten (unter Verwendung einer Pipe!) [[Lösung]] vereinfache folgenden Befehl: **cat < /etc/passwd | sort** [[Lösung]] Wieviele Verzeichnisse hat Dein System (unter Verwendung von find und wc als root)? [[Lösung]] erstelle mit einer Befehlszeile (touch und date) eine datei in /tmp, welche das aktuelle datum enthält (z. B. /tmp/test_20080808.dat). [[Lösung]] Erkläre folgende Befehle (welche sind sinnvoll?): wc -l /sbin/lsmod wc -l [[Lösung]] ===== Shellskript ===== Schreib ein Shellskript (countdown.sh), welches im Sekundentakt von 3 runterzählt und folgendes ausgibt: 3... 2... 1... Start! [[Lösung]] ===== Echo ===== Erzeuge das Skript aus der vorhergehenden Aufgabe mit einem einzigen echo-Befehl! [[Lösung]] ===== Here-doc ===== Erzeuge das Skript aus der vorvorigen Aufgabe mittels „here-document“! [[Lösung]] ===== Parameter ===== Schreib ein Shellskript, dem man als Parameter einen Loginnamen übergibt, und welches - sagt, was es gleich machen wird - einen Benutzer mit dem anlegt - ein Verzeichnis /tmp/ anlegt und übereignet [[Lösung]] ===== Variablenumformung ===== Schreib ein Shellskript, welches die Kernelversion (z. B. 2.6.26) ausgibt. Tipp: uname -r + Kommandoerzetzung + Variablenumformung [[Lösung]] Untersuche folgendes Shellprogramm... - Was will uns der Autor damit sagen? - Finde die drei Fehler! LANG ====== UPTIME=$(uptime) UPTIME=$(UPTIME#*: ) EINS=${UPTIME%,*} UPTIME=${UPTIME%,*} FUENF=${UPTIME%,*} FUENFZEHN=${UPTIME#* } echo "Letzte Minute: $EINS Prozesse im Durchschnitt" echo "... 5 min: $FUENF Prozesse im Durchschnitt" echo "... 15 min: $FUENFZEHN Prozesse im Durchschnitt" [[Lösung]] ===== Test ===== Schreib ein Shellskript gemäß folgender Anforderungen: - Parameter 1: Dateiname für ein tar.gz-Archiv - Parameter 2: Quellverzeichnis - Die Anzahl der Parameter muss exakt zwei sein - Die Datei darf noch nicht existieren - Das Zielverzeichnis, in welchem das Archiv abgelegt werden soll, muss existieren und ein Verzeichnis sein - Der Benutzer muss Lese-, Ausführrechte und im Quellverzeichnis haben - Das Archivieren muss erfolgreich ablaufen - Ausgabe von Fehlermeldungen - Verwende für 3., 4., 6. und 7. && oder || anstatt von if ... then [[Lösung]] ===== For ===== Benenne alle Dateien, die auf .tgz enden mit einer for-Schleife nach .tar.gz um! [[Lösung]] ===== While ===== Gib per while-Schleife aufsteigend die ersten zehn Quadratzahlen aus! [[Lösung]] Schreibe ein Shellskript, welches genau bis 12:00 (oder eine Uhrzeit in der nahen Zukunft) wartet und dann einen Text nach Wahl ausgibt! Tipp: "date +%H:%M" und "sleep 1" [[Lösung]]