Inhaltsverzeichnis

!!! 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 </sbin/lsmod
 wc -l $(/sbin/lsmod)
 wc -l <(/sbin/lsmod)
 wc -l |/sbin/lsmod

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

  1. sagt, was es gleich machen wird
  2. einen Benutzer mit dem <Loginnamen> anlegt
  3. ein Verzeichnis /tmp/<Loginname> anlegt und <Loginname> ü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…

  1. Was will uns der Autor damit sagen?
  2. 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:

  1. Parameter 1: Dateiname für ein tar.gz-Archiv
  2. Parameter 2: Quellverzeichnis
  3. Die Anzahl der Parameter muss exakt zwei sein
  4. Die Datei darf noch nicht existieren
  5. Das Zielverzeichnis, in welchem das Archiv abgelegt werden soll, muss existieren und ein Verzeichnis sein
  6. Der Benutzer muss Lese-, Ausführrechte und im Quellverzeichnis haben
  7. Das Archivieren muss erfolgreich ablaufen
  8. Ausgabe von Fehlermeldungen
  9. 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