Vor einiger Zeit, als ich über meine Computerleidenschaft und vor
allem meine Begeisterung über die shell nachdachte, kam mir der
Gedanke, dass all das eigentlich etwas magisches hat.
Warum lernen Menschen zaubern? Zunächst einmal ist Zaubern etwas
eminent praktisches. Wer hat sich nicht schon einmal in seiner Wohnung
umgesehen und gewünscht, das Geschirr möge sich von alleine abwaschen,
der Wäschekorb sich auf kleinen Füßchen zur Waschmaschine bewegen und
seinen Inhalt hineinkippen, diese sich von selbst anschalten und
anschliessend solle die Wäsche nach draußen auf die Leine
flattern... In der Zwischenzeit könnte man sich genüßlich den
_wirklich_ wichtigen Dingen des Lebens zuwenden, gemütlich bei einem
Täßchen Tee in Büchern schmökern oder mit seinen Freunden
plauschen...oder sich mit seinem Computer beschäftigen (Manche Leute
sollen dabei - wie ich gerüchtehalber vernommen habe - Spaß daran
finden). Computer sind sehr mächtige Kisten - sie können viel mehr als
zum Beispiel eine Waschmaschine. Allerdings muß der Mensch ihnen
natürlich immer noch sagen, was sie tun sollen - und da liegt der Hase
im Pfeffer. Die meisten Computer haben heutzutage eine sogenannte
"Benutzeroberfläche" und die kann eigentlich viel weniger als der
Computer selbst. Wie schön wäre es, sich mitten in den Raum stellen zu
können und zu sagen: "Dreckige
Wäsche - marschmarsch, in den Wäschekorb, hallo Ofen: ein leckeres
Steak, aber medium bitte, hallo Stereoanlage, mein
Lieblingskitschlied, spiel es noch einmal, Sam". Bis dato eine nette
Utopie.
Im Computer hat man dann denselben Ärger wie in Realität: alte Dateien
muß man alle selbst aufräumen, mit der Maus in den Papierkorb ziehen,
die Textverarbeitung hat keine Ahnung von guter Typographie und den
schönen Liedtext, den man neulich einmal gespeichert hat, findet man
nicht wieder.
Dabei wäre es so schön einfach: "Lösch alle Dateien, die
huibuu-irgendwas.mp3 heissen, ich hab keine Lust mehr auf Schloßgespenst.
die vielen kleinen hübschen Signaturen, die ich neulich gefunden habe,
faßt du bitte in einem Textfile zusammen - und merk dir, ich will da keine
DOS-Zeilenumbrüche drinsehen. Hey, und den Kerl, der da neulich
versucht hat hier einzubrechen, den hältst du fleißig draußen."
In Realität sind meine magischen Bemühungen bisher immer
gescheitert. Doch seit einiger Zeit versteht mein Puterchen Magie,
genauer gesagt, seit ich ihm ein MacOS X verpaßt habe. Das ist nämlich
ein Unix und mit dem kann man zaubern :-)
Zuerst braucht der Zauberlehrling natürlich einen Computer, der sich
magisch beeinflußen läßt. Das tun eigentlich fast alle, nur manche
stellen sich dabei dümmer an als andere. Die wirksamste Magie läßt
sich auf Unixsystemen wirken, während das alte MacOS nahezu
Magieresistent ist (von einer einzigen, etwas umständlichen
Zaubersprache namens Applescript einmal abgesehen). Dann gibt es
natürlich auch noch die schwarze Magie, aber mit der wollen wir uns
hier nicht beschäftigen. Sie bewegt sich im Untergrund schwarzer
DOS-Boxen in Klickibuntiumgebungen, mit denen der dunkle Fürst die
Welt überschwemmt, um sie alle zu knechten. Aber lassen wir dieses
traurige Thema...
Ich will hier nur von von weißer Magie sprechen, die in lichten,
durchscheinenden Fenstern auf schönen, farbigen und hellglitzernden Macs
gewirkt wird. Als ersten Schritt in die Welt der Magie öffnen wir die
Terminal.app, die wir im Ordner Applications unter den Utilities
finden. Zuvor können wir noch mit Tinkertool dem Terminal Transparenz
verleihen, damit alles schön funkelt.
Wie man in vielen Büchern erfahren kann, muß der Zauberer die richtigen Worte sprechen, um einen Zauber heraufzubeschwören. Das Schwierigste im Studium der Magie ist es, sich diese vielen und geheimnisvollen Formeln zu merken, mit denen man solch mächtige Dinge vollbringen kann. Natürlich reicht es nicht, sie irgendwie herauszustottern, nein, man muß sie richtig buchstabieren, sonst könnte der Zauber mißglücken oder - im schlimmsten Fall - sich gegen den Magier wenden und fürchterliche Zerstörungen anrichten. Ein schlauer Zauberlehrling übt sich daher erst an einfachen Sprüchen, bis er das nötige Wissen für die höhere Magie erworben hat. Noch was: früher mußten Zauberlehrlinge Latein, Griechisch und Hebräisch können, um die magischen Formeln zu verstehen. Heutzutage hingegen ist die Kenntnis der englischen Sprache nahezu unumgänglich.
Der erste Zauber, den wir lernen, ist ein einfacher
Bewegungszauber. Seine Formel ist cd und wir versehen sie mit dem Ort,
an den wir uns bewegen wollen. Wenn wir also nun vor unserem
geöffneten Terminal sitzen und vor uns den Prompt sehen, das Zeichen,
das der Computer bereit ist, auf unsere Beschwörungen zu lauschen,
tippen wir:
cd Documents
und betätigen die Returntaste, um dem Computer zu sagen, daß er
unseren Zauber ausführen soll.
Da - der Prompt hat sich verändert, unser Zauber hat funktioniert! wir
sehen jetzt, daß wir uns im Ordner Documents befinden:
[localhost:~/Documents] user%
Um wieder an unseren Ursprungsort zurückzugelangen, geben wir einfach
nur cd ein und sehen nun den wieder den alten Prompt:
[localhost:~] user%
Mit einem einfachen cd gelangt man, wo immer man sich gerade befindet,
wieder in sein Homeverzeichnis zurück. Doch was, wenn wir im
Unterordner eines Unterordner sind und einfach nur ein Verzeichnis
höher springen wollen? cd .. trägt uns dorthin.
Mein Zauberlehrling zuckt mit den Achseln. Was soll daran jetzt bitte
schön so toll sein? Im Finder geht das doch schließlich ganz einfach
mit der Maus, viel schneller als wenn man erst mühsam
D-o-c-u-m-e-n-t-s tippen muß! Machen wir ein Wettrennen... Sieger ist,
wer als erster im Ordner Documents/Zauberkurs/Lektion2 ist.
Als geübte Hexenmeisterin tippe ich Do- und dann der Trick: die
Tabulatortaste, aus dem Do wird Documents, aus Z ein Zauberkurs, ein L und
Tab - und schwupps, bin ich in Lektion2, während mein lehrling noch
mit einem Wartemauszeiger im Finder kämpft.
Herummanövrieren ist ja ganz schön, aber nun wollen wir auch was sehen
von der Gegend. ls heißt das Zauberwort. mal ausprobieren...
[localhost:~] user% ls Desktop Icon? Mail Pictures Sites Documents Library News Public archivDamit kann man nun gemütlich durch den Computer spazieren und sich alle Dateien und Ordner anzeigen lassen. Wirklich alle? Nein, Computer sind geheimniskrämerisch, so leicht lassen sie sich ihre Informationen nicht entlocken. Schließlich gibt es da noch die geheimen, versteckten Dateien, von denen der Benutzer nichts erfahren soll. Programme, die ihre Dateien unsichtbar machen, entweder in der netten Absicht, den Benutzer nicht mit unwichtigen Preferencesdateien zu belästigen oder aber böse, die Informationen abspeichern... achwas, mit
ls -a kriegen wir sie alle:ls -a *baff*mkdir .xxx
Im Finder sieht man nichts davon und so können wir unseren neuen
Ordner auch nicht mit der Maus füllen, sondern kehren wieder zur Shell
zurück. Na, dann mach mal, sage ich zu meinem Zauberlehrling. Der
Spruch heißt mv. *großes Armwedeln, Räucherstäbchen entzünd*
mv unanständiges bild.jpg .xxx/
"Das wird nicht klappen" unterbreche ich ihn. "Du hast die zwei
unsäglichen Dinge getan, die man als Zauberer nie tun darf."
1. Dateinamen mit Leerzeichen sind böse.
mv bewegt nämlich nicht nur Dateien in Ordner, sondern schreibt auch
Dateien über Dateien. Mit dem letzten Spruch hättest du Glück gehabt -
er hätte nicht funktioniert. doch ohne .xxx/ dahinter hättest du die
Datei unanständiges - so es sie gibt - in bild.jpg umbenannt.
2. Dateinamen mit Umlauten sind böse.
Das läßt sich ganz einfach erklären: was machst du mit dieser Datei,
wenn du an einer Tastatur ohne Umlaute sitzt?
Benennen wir dieses Unding also erstmal um. Das geht auch mit
mv. Jetzt müssen wir nur versuchen, den Dateinamen korrekt in die
Shell einzugeben. Das ä klemmt, aber der Tabulator vervollständigt den
Dateinamen halbwegs korrekt zu unansta\314\210ndiges\ bild.jpg. Der
Backslash ist die Methode der shell, mit dem bösen Leerzeichen fertig
zu werden. Er sagt: hey, der Dateiname ist noch nicht zu Ende, nach
dem Leerzeichen gehts noch weiter. Sowas nennt man Escape.
mv unansta\314\210ndiges\ bild.jpg unanstaendiges-bild.jpg
*uff* schon besser...
und nun ab damit in den geheimen Ordner
mv unanstaendiges-bild.jpg .xxx/
Durch die Erfahrung mit den Umlauten verunsichert, fragt mein
Lehrling, was denn noch alles gefährlich wäre. Was passiert denn
z.B. wenn ich eine datei einfach nur . nenne? Die Datei gibts schon,
antworte ich. Was? Schau doch einfach mal nach! und "ls -a" fördert
auch tatsächlich gleich zwei sehr merkwürdige Dateien zu Tage: . und
..
Was ist denn das? Der . ist eine Repräsentation des aktuellen
Verzeichnisses, und .. repräsentiert das
übergeordnete Verzeichnis. Deshalb kann ich mich auch mit cd .. eine
Ebene höher bewegen. Und wozu braucht man den Punkt? Das ist eine längere
Geschichte, da muß ich ein bißchen ausholen. Du hast gesehen, daß man
mit einer Shell auch leicht Unsinn machen kann. Was hindert
beispielsweise einen bösen zauberer daran, in das Verzeichnis, in dem
du gerade bist, ein kleines Programm zu legen, das wirklich böse
Sachen anstellt und gemeinerweise "cd" heißt? Du gibst cd ein, um in
ein anderes Verzeichnis zu wechseln und es löscht in Wirklichkeit alle
Daten. Davor schützt dich die Shell, in dem sie nur Kommandos
ausführt, die in einem Verzeichnis aufbewahrt sind, das sie
kennt. Welche Verzeichnisse das sind, erfährst du, indem du sie nach
dem Pfad fragst. Dazu sagst du
echo $PATH
Das Dollarzeichen sagt der Shell, daß es nach einer Variable suchen
soll, die den Namen PATH trägt. Jetzt kennen wir also alle
Verzeichnisse, in denen unsere Shell nach Zaubersprüchen sucht. Wenn
nun ein Zauberspruch in einem anderen Ordner liegt, weigert sie sich,
diesen Zauber auszuführen. Wenn wir genau wissen, daß dieser zauber
gut ist und keinen Schaden anrichten kann, können wir ihn aber
trotzdem ausführen, indem wir davor einen Punkt setzen. Um einen neuen
Zauberspruch zu erschaffen, brauchen wir so etwas zum Beispiel.
Au fein, ich will einen neuen Zauberspruch machen - wie geht das?
Dazu gibt es zwei Möglichkeiten - entweder schreibst du ihn ganz
selbst, in einer anderen Zaubersprache, die mächtiger ist als unsere
Shell - z.B. C. Oder wir begnügen uns damit, einen Zauberspruch, den
andere, weisere Magier erschaffen haben, auf unseren Computer zu
kopieren. Wenn er allerdings noch in dieser höheren Zaubersprache
geschrieben ist, müssen wir ihn erst übersetzen, damit ihn unser
Computer versteht. Das nennt man kompilieren. Und weil die meisten
Magier neue zaubersprüche so schreiben, daß sie auf vielen
verschiedenen Computern funktionieren sollen und keine Lust haben, für
alle Computer ihr Programm zu übersetzen, müssen wir das selber machen.
| elian@djini.de | Last modified: Sun Dec 8 06:52:39 CET 2002 |