Ja ja, schon gut, schön die Füße stillhalten... - Aber fangen wir von vorne an:
Während meiner Ausbildung anno 1994-1996 lernten wir die Programmiersprache C. Dazu benutzten wir eine unter DOS/Windows-3.11 laufende integrierte Entwicklungsumgebung (IDE, integrated development environment). Das war wie zu Zeiten der Lochkartenprogrammierung (20 Jahre früher, hier nur im kleineren Maßstab): man mußte sich gut überlegen, was man da programmiert; man hatte einen Termin für seine zugeteilte CPU-Zeit. Zu diesem Zeitpunkt mußte das Programm fertig sein, in Lochkarten verewigt und beim Operator abgegeben sein. Dann hieß es warten, bis der Printout vom Operator per Palette am Schreibtisch abgekippt wurde... Wenn das Programm einen Fehler hatte, war der ganze Akt umsonst...! – Verzeihung: vergebens.
So auch hier: Editieren, Speichern (ja nicht vergessen!!!), kompilieren, und (Augen zu, Luft angehalten, ein Stoßgebet...) das Programm gestartet... - Knirsch! Sch****! Gates-Kralle (Strg-Alt-Entf), geht auch nicht mehr..., Reset-Knopf... Boot, Windows startet (Intel 486, 33MHz), Puls derweil wieder runterholen, IDE aufrufen, Projekt öffnen, Datei öffnen, sich an die letzten Meldungen und Zeichen erinnern, bevor die Kiste abgeschmiert ist; Mist vergessen, also gleich nochmal das Ganze... - Da kommt Stimmung auf...!
Als nächstes lernten wir Systemprogrammierung unter UNIX, speziell
unter Sun Solaris (PC, i486). Den vi
aufrufen
(vi="visual", im Gegensatz zu ed
, der ist zeilenorientiert;
Der vi
ist der Standard-Editor unter UNIX und
für Notepad-verseuchte Anwender gewöhnungsbedüftig, ebenso umgekehrt),
seinen Quelltext mühsam eingeben, speichern und gleichzeitig den
vi
verlassen (:wq[ENTER]
), Compiler aufrufen
(cc -o footest footest.c
), Programm starten
(./footest
), Mist! ("Segmentation fault, core
dumped"
), Meldungen lesen, vi
aufrufen - insgesamt
eine deutliche Erleichterung, weil das dumme Geboote zwischendrin
einfach wegfiel! Und das Ganze konnte man dann sogar noch mit Hilfe
von Makefiles und Shell-Skripts automatisieren...!
Es gab jedoch noch zwei hakelige Stellen bei der ganzen Sache:
/bin/sh
(Kommandozeile)vi
Und dann nahte die Prüfung! Die beiden Probleme mußten gelöst werden! - Aber die Rettung nahte: usere beiden besten Leute experimentierten auf ein paar alten Rechnern (386er) mit der Linux-Distribution „SuSE LINUX August 1995“. Nach einiger Zeit wurde die Entscheidung gefällt, Sun Solaris durch Linux zu ersetzen; nach und nach wurden alle Rechner umgestellt.
Jetzt gab es sogar erstmals eine funktionierende graphische Oberfläche
(X-Windows
mit Fenstermanager fvwm
); und Spiele gab es
sogar auch! Imaze (ein Netzwerk-Multi-User-sich-gegenseitig-abschieß-Spiel)
erfreute sich großer Beliebtheit...
Und es gab eine vernünftig eingerichtete Shell (bash
), bei
der sogar die Pfeiltasten funktionierten. Man konnte damit Kommandos
einfach zurückblättern (das ging bei Solaris damals nicht, bzw.
niemand wußte, welche Shell-Option man dazu setzen mußte).
Aber den vi
zu lernen, da mußte man persönlich durch; Sonst
sitzt man in der Prüfung und kriegt seinen Quelltext nicht eingegeben...
Also: die „SuSE LINUX August 1995“-Distribution gekauft
(hätte ich mir auch leihen können), auf dem heimischen Rechner Platz
geschafft, installiert (die beiden Linux-Gurus aus der Schule waren da
recht hilfreich und auskunftsbereit), eine vi
-Kurzreferenz
besorgt und nachts vi
, Shell- und Systemprogrammierung
geübt...
Und noch eines entdeckte ich: mit der Shell und dem Werkzeugkasten
von Utilities (ls, grep, cut, awk, xargs, ...
) kann
man ja richtig intelligente Sachen programmieren...! - Die DOS-Shell
ist wirklich eine Krücke; wer darauf festgelegt ist, kann einem nur
leidtun, ehrlich! Ich habe das auch mal versucht und ich sage:
„Da könn'st senkrecht in d'Luft sch*****!“: keine brauchbaren Tools an Bord,
nur Ersatzteile. Und daran hat sich auch in Zeiten von NT4/W2k nichts
geändert; Beispiel NT-Reource-Kit: ein Sack voll Kommandozeilen-Tools, die
sich die MS-Entwickler aus purer Verzweiflung schnell zusammege-crufted
haben, die man ihnen unter dem Schreibtisch weggeklaut hat, auf eine
CD preßt und für Geld verhökert. – Wenn man Windows installiert, hat
man hinterher einen belegten Rechner, aber nichts, mit dem ich
was anfangen kann; dann geht das los mit dem Zusammenklauben von Tools:
das unsägliche WinZip & Co, einen vernünftigen Text-Editor,
einen vernünftigen Telnet/SSH-Client (die Original-MS-telnet.exe ist als
UNIX-Verhinderungstool mitgeliefert, sofort löschen!), eine
vernünftige Shell und zugehörige Tools, diverse Browser-Alternativen,
die sich dauernd streiten und sich gegenseitig auf den Füßen stehen
...und so weiter, und so heiter... alles einzeln irgendwo zusammenklau(b)en
(Internet, Heft-CDs, ...) und installieren.
Mittlerweile ist der vi
mein Lieblings-Editor
geworden, insbesondere der vim
(Vim="vi
-improved",
siehe http:/www.vim.org/). - Ich hüte
mich davor, ihn zu dem Editor hochzustilisieren (um keinen
Editor-Religionskrieg anzuzetteln), aber er unterstützt mich bei meiner
täglichen Arbeit optimal, auch unter Windows. (Ich habe noch keine Zeit
gefunden, den emacs
auszuprobieren.)
Den vi
sollte man einfach beherrschen, wenn man mit
UNIX-Systemadminstration/-Programmierung zu tun bekommt. Egal
auf welcher UNIX-Box man sich einloggt, egal welches UNIX-Derivat
dort läuft: der vi
ist der einzige Editor, den man auf
jeder(!) UNIX-Box installiert vorfindet. Wenn man
den einmal intus hat, ist der Rest kein Problem mehr.
Installiert Euch Linux/{Free,Open,Net}BSD/BeOS,
lernt die 10 wichtigsten Shell-Befehle (man, id, pwd, ls/ll, cd,
find, vi/view, grep, gzip/bzip2, "su -"
), lernt den vi
und Ihr tut Euch leichter bei der Job-Suche!
"Aber das kann ich mir nicht merken...!" - Das ist eine
Lüge!!! Wer sich folgendes merken kann: "Start / Programme
/ Zubehör / Editor; Datei / Öffnen / Dateiextension wählen,
Klick-klick-klick dateiname / Öffnen", kann sich auch
"vi dateiname
" merken! Also bitte...
Hier noch ein Tip zur Shell und zum vi
:
UNIX/vi
wurden von Amis erfunden, sie benutzten
also Tastaturen mit US-Tastenbelegung. – Wer die Shell bzw. den
vi
-Editor verstehen will, sollte sich so
eine Tastatur beschaffen (alternativ eine, die beide Layouts
aufgedruckt hat und dann im Linux-System eben US-Belegung
einstellen). Und wer sich im Leben etwas wirklich gutes tun will,
der sollte sich unbedingt eine der inzwischen wirklich
legendären Tastaturen von IBM beschaffen: das Modell M (gibt es auch in
deutscher Auslegung).
Ich weiß, man glaubt mir einfach nicht, wenn ich
das sage. Aber wenn man vor einer deutschen Tastatur sitzt
und die Shell- bzw. vi
-Tastenkombinationen in der
Kurzreferenz nachliest, fragt man sich immer „Wie kommt man nur auf
so bekloppte Tastenkombinationen!?!?“ – Sitzt man jedoch vor einer
US-Tastatur, ist auf einmal alles ganz logisch und konsistent!
Die notwendigen Tasten liegen nun immer nebeneinander und sind somit
leicht zu erreichen. Und deswegen geht es auf einmal sehr schnell
zu tippen! (Ich weiß, ihr glaubt mir nicht. –
Bitte, dann quält Euch richtig schön..., selber Sylt. Aber heult
dann nicht, daß die Shell und der vi
schwer zu bedienen
seien...!) – Noch was: Wenn man sich die Programmiersprachen C, C++,
Java und die diversen Shell-Sprachen ansieht, stellt man fest, daß
sie für US-Tastenbelegung optimiert wurden; sicher nicht mit Absicht,
aber wie gesagt: deren Erfinder sitzen damals wie heute vor Tastaturen
mit US-Tastenbelegung...
Fortsetzung folgt (vielleicht...).
© 2001 ich Created: Fre Apr 20 03:21:40 MEST 2001 Last updated: 2007-09-13T13:29:25+0200 EOF