In unseren ersten Einstieg werden wir keine umfangreichen Programme erstellen. Dafür lernen wir dir Möglichkeiten und Vorteile von Shell-Skripten kennen.
Eine Skript ist ein Text, der die Befehle enthält, die von der Shell bearbeitet werden sollen. Mit anderen Worten wir können in jede Zeile der Textdatei einen Unix-Befehl, wie z. B. ls oder date, schreiben. Diese werden dann (meist) nacheinander abgearbeitet.
Um unsere Skripte dauerhaft speichern zu können, sollte unsere Arbeitsdiskette nach /a gemountet sein. Wir erstellen ein Verzeichnis mit dem Namen bin für unsere Skript-Dateien:
/# cd /a /a# mkdir bin /a# cd bin /a/bin#
Wir wollen dies an einem kleinem Beispiel nachvollziehen. Zuerst soll von der Skript-Datei der Befehl zum Bildschirmlöschen clear und danach den schon bekannten Befehl df aufgerufen werden. Die Skript-Datei soll test heißen. Spezielle Vorschriften für die Namengebung von Skript-Dateien existieren übrigens nicht.
/a/bin# vi test
clear df ~ ~ ~ ~ ~ ~ ~ ~ ~ "test" [New File] 2 lines, 9 chars |
Wir speichern unsere Arbeit und verlassen den Texteditor vi:
[Esc] :wq
Jetzt kommt der zweite Schritt. Wir müssen unsere Datei ausführbar machen. Eine Kontrolle mit ls -l zeigt uns, daß die Datei noch nicht ausführbar ist.
/a/bin# chmod u+x test
Wir kontrollieren noch mal mit ls -l:
/a/bin# ls -l test 1 -rwr--r-- 1 root root 9 Nov 17 17:59 test
Das x zeigt uns, daß wir als Eigentümer bzw. Nutzer (engl. user) diese Datei ausführen können. Dies wollen wir auch gleich tun:
/a/bin# ./test Angaben zur Speicherbelegung auf allen gemounteten Laufwerken
Der Punkt bezeichnet das aktuelle Verzeichnis. Wir können den Befehl auch so eingeben:
/a/bin# /a/bin/test Angaben zur Speicherbelegung auf allen gemounteten Laufwerken
[Alt] [F2]
Dort loggen wir uns auch mit root ein und starten den Texteditor vi:
login: root /# cd /a/bin /a/bin# vi test
So nun können wir auf Konsole 2 unser Skript editieren, speichern ([Esc] :w) und zur Konsole 1 ([Alt] [F1]) wechseln und das Skript aufrufen. Wir nutzen dafür wieder die Befehlswiederholung (Cursortaste nach oben). Zum Weiteren Editieren kehren wir zur Konsole 2 ([Alt] [F2]) zurück.
Leerzeile
# Das ist eine Kommentarzeile!
clear
df
~
~
~
~
~
~
~
~
|
# Das ist eine Kommentarzeile! clear echo "Angaben zur Speicherbelegung:" df ~ ~ ~ ~ ~ ~ ~ |
echo ohne Parameter gibt eine Leerzeile aus. So können wir unser Skript noch etwas schöner gestalten.
# Das ist eine Kommentarzeile! clear echo echo "Angaben zur Speicherbelegung:" df echo ~ ~ ~ ~ ~ |
# Das ist eine Kommentarzeile! clear echo echo "Angaben zur Speicherbelegung:" df $* echo ~ ~ ~ ~ ~ |
Jetzt können wir unser Skript mit Parametern aufrufen. Der Parameter /a zeigt nur die Speicherbelegung für den Mountpoint /a.
/a/bin# ./test /a
Die Parameter /a und /tmp zeigen nur die Speicherbelegung für diese Mountpoints.
/a/bin# ./test /a /tmp
Es können aber auch die entsprechenden Devices als Parameter übergeben werden.
/a/bin# ./test /dev/ram0 /dev/ram1
Hinweis: Die Diskette darf zum Formatieren nicht gemountet sein! Bitte nicht die Arbeitsdiskette und die muLinux-Startdiskette formatieren. Eine Kopie des fehlerfreien Skripts sollte sich zum Schluß auf der Arbeitsdiskette befinden.
So, das war es erstmal mit den Shell-Skripten.
Um diese Übung zu beenden heben wir die mount-Zuordnung unserer Arbeitsdiskette auf.
/a# cd /
/# umount /a
/#