Anhalter

Einleitung
Inhalt
 
Land & Leute
Redewendungen
Reise & Unterkunft
Schreibwaren
Sehenswürdigkeiten
Shopping
An der Grenze
Gesundheit
Notruf
 
Glossar
 
Erstellt:22.04.98
Aktuallisiert:16.12.05


Layout & Design:
Jan Huschauer

Reise & Unterkunft

Tragischerweise tendiert ein System wie UNIX dazu, ständig zu wachsen. Im Laufe der Zeit nimmt die Zahl der Anwender zu, alle wollen irgendwelche Dateien und Programme speichern, die ihrerseits ständig größer werden, und das Betriebssystem selbst macht hier auch keine Ausnahme.

Das Dateisystem wird oft mit einem umgekehrten Baum verglichen, d.h. die Wurzel (root) befindet sich oben, und von dort können beliebig weitere Äste (Verzeichnisse oder engl. directories) verzweigen. Die Dateien schließlich hat man/frau sich als die Blätter des Baumes vorzustellen. Das ist im Grunde gar nicht so kompliziert, wenn Du erst mal gelernt hast, vor dem Rechner einen Handstand zu machen, oder wenn Du konsequent den Monitor auf den Kopf stellst.

Doch genug des Vorgeplänkels, wir sind glücklich angekommen, haben unser Zelt aufgeschlagen und sind nunmehr bereit, uns umzusehen...


... auf dem Campingplatz (C-Shell)

Du hast generell zwei Möglichkeiten, Dich im Dateibaum zu bewegen. Entweder Du kletterst zu Fuß (per pedes) von Ast zu Ast, oder Du schwingst Dich mit einer Liane direkt ans Ziel (d.h. ins gewünschte Verzeichnis).

Zu Fuß geht's mit

cd ..
(cd = change directory - Leerraum vor den Punkten beachten!) einen Ast nach oben und mit
cd Astname
nach unten, oder umgekehrt (das hängt, wie gesagt, vom Blickwinkel ab). Für die zweite Methode mußt Du einen sogenannten Pfad angeben, d.h. den kompletten Weg z.B. von der Wurzel (mit Namen /) aus bis zu Deinem Ziel. Die einzelnen Unterverzeichnisse werden durch Schrägstriche getrennt: Hier ein Beispiel.
cd /home/ford
bringt Dich direkt ins Verzeichnis mit dem Namen ford. Alternativ kannst Du auch
cd ~ford
mit dem selben Ergebnis eingeben. Im digitalen Chaos besitzt jeder Benutzer ein sog. home-directory. Du kannst von jedem Punkt im System sofort wieder zurück in Dein eigenes Zuhause gelangen, wenn Du
cd     (ohne alles)
eingibst.

Und wenn Du total die Orientierung verloren hast, sagt Dir UNIX mit

pwd     (print working directory),
wo Du Dich gerade befindest.

Verzeichnisse werden mit mkdir (make directory) angelegt, mit rmdir (remove directory) gelöscht und mit mv (move) verschoben oder umbenannt.

In den Verzeichnissen werden die verschiedenen Dateien gesammelt. Mit dem Befehl

ls     (list)
bringen wir jetzt erstmal Licht ins Dunkel und schauen nach, was sich alles in dem Verzeichnis "/home/ford" befindet. Für möglichst viel Information empfiehlt sich die Option
ls -l     (list long)
oder noch kürzer: ll   Dann kommt ungefähr sowas:
drw-rw-rw-   ford     12-24-93   Briefe
-rwxr-x--x   ford     12-06-93   a.out
-rw-rw-rw-   arthur   12-31-93   pastest.p

Das erste Zeichen in jeder Zeile gibt an, um was für eine Art von Datei es sich handelt. Das d steht hierbei für directory (Briefe ist also ein Verzeichnis!). Ein Minuszeichen steht für eine gewöhnliche Datei.

Die restlichen Zeichen sind in drei Dreiergruppen geordnet (u = user, g = group, o = others) und zeigen an, wer was mit den Dateien machen darf ( r = read, w = write, x = execute). Dazu ein Beispiel:

-rwxr-x--x   ford     12-06-93   a.out
Diese Zeile wird so gelesen: a.out ist eine Datei. Der Besitzer (ford) darf sie lesen, schreiben und als Programm ausführen. Andere Benutzer, die der gleichen Gruppe angehören wie der Besitzer (meist students), dürfen die Datei lesen und ausführen, aber nicht ändern. Der Rest der Welt darf unabhängig von der Gruppenzugehörigkeit das Programm ausführen, darüber hinaus aber nichts weiter damit anstellen.

Du kannst die Rechte an einer Datei mit

chmod     (change mode)
verändern (wenn Du das Recht dazu hast). Um beispielsweise das Pascal-File für alle anderen zu sperren, mach ein
  chmod g-rw,o-rw pastest.p
oder chmod go-rw pastest.p
oder chmod 600 pastest.p
auf die Datei, wie die UNIXianer sagen.

Zur Erklärung: Mit - werden Rechte entzogen, d.h. die Gruppe und sonstige Benutzer dürfen die Datei nicht mehr lesen und schreiben. Hinzufügen von Berechtigungen geschieht entsprechend mit + oder direkt mit =. Sollen sämtliche Benutzer auf einen Schlag angesprochen werden, kannst Du auch die universelle Gruppe a (all) benutzen.

Die 600 in der zweiten Variante bewirkt dasselbe. Hier werden die Rechte für alle Gruppen gleichzeitig definiert, nach folgendem Schlüssel:
    1 = Ausführen, 2 = Schreiben, 4 = Lesen.
Der gewünschte Modus ergibt sich dann durch Addition der entsprechenden Codes. Die erste Ziffer steht für den Benutzer, dann die Gruppe und die anderen, wie gehabt. Als Tabelle sieht das dann folgendermaßen aus:

all users
usergroupothers
read444
write222
execute111
SummeXYZ

Als Befehl würdest Du dann also:

chmod XYZ Dateiname
schreiben.

Der Vollständigkeit halber sei noch erwähnt, daß man ganz links noch eine vierte Ziffer vor den Code setzen kann, der einen besonderen Modus für die Ausführung der Datei bestimmt (für Details bitte ins Handbuch schauen oder mal man chmod versuchen).

Die Datei a.out ist ein compiliertes Programm, das Du aufrufen kannst. Merke: Was angekreuzt ist (x), kann man starten. Eine Batch-Datei (in UNIX Script genannt) läßt sich einfach mit einem Texteditor erstellen und wird dann anschließend "als executable geflaggt".

Es gibt verschiedene Möglichkeiten, ein Programm auszuführen:

a.out

Der Aufruf des Namens ist der normale Weg, ein Programm zu starten (Nickerchen am Terminal oder mit Leuten labern).

a.out &
startet das Programm im Hintergrund, und Du hast das Terminal frei, um Leute mit Bildschirmnachrichten zu verwirren oder News zu lesen (siehe Post & Zeitung). Die Ausgaben des Programms landen nach wie vor auf Deinem Terminal. Um Zeichensalat zu vermeiden, empfiehlt sich daher die Umleitung in eine Datei, also
a.out > ausgabe.dat &
  oder:
nohup a.out &     (no hang-up)

Jetzt kannst Du Dich ausloggen und auf das Klo gehen oder zum Essen in die Mensa am Ende des Universums - das Programm läuft weiter, und beim nächsten Login hast Du dann den Salat.

Für Programmierfreaks dürfte weiterhin von Interesse sein, wie ein Programm unter Angabe eines maximalen Zeitlimits gestartet wird (Problem der Terminierung). Sowas geht auch, zumindest mit der C-Shell. Das Zauberwort heißt limit. Damit ist es möglich, verschiedene Systemressourcen zu beschränken. In unserem Fall ist das die Ressource cputime. Wenn Du limit ohne Parameter aufrufst, dann zeigt Dir das System die momentanen Werte der einzelnen Ressourcen. Um jetzt eine Beschränkung zu machen, sagen wir mal 1:30 Minuten, gib ein:

limit cputime 1:30

Wenn Du jetzt ein Programm ausführen läßt, das länger als anderthalb Minuten Zeit braucht, dann wird die Ausführung beim Erreichen der Zeitgrenze gestoppt, und Du bekommst eine dem entsprechende Meldung. Um die Beschränkung wieder aufzuheben, gib ...

unlimit cputime
... ein, und alles ist wieder beim alten.

Für alle Dateien, die sich nicht starten lassen, gibt es eigens Programme zur Bearbeitung: Texte, Programme, Skripte usw. können mit einer Vielzahl von Editoren bearbeitet werden (siehe Schreibwaren). Wieder andere Dateien gehören zu größeren Paketen, und dann hätten wir da noch Grafiken, Tabellen, Datenbanken, Kochrezepte, etc. - kurzum, alles, was das Herz begehrt.

Angucken kannst Du Dir ein File mit:

cat Dateiname
more Dateiname

Der Vorteil von more ist, daß die Ausgabe nach jeder vollen Bildschirmseite angehalten wird. Zum Weiterblättern drücke die Leertaste. Mit q für quit ist Schluß. Noch komfortabler geht’s mit:

less Dateiname
(denn: less is more)

Jetzt kannst Du zusätzlich mit b (wie back) zurückblättern oder nach Zeichenfolgen suchen mit / Suchwort (Schrägstrich). Eventuell funktionieren bei less sogar die Cursortasten Deiner Tastatur, mit denen Du dann ebenfalls durch den Text blättern kannst.

Mit dem Kommando cat lassen sich auch mehrere Dateien aneinanderhängen. Beispiel:

cat Datei_1 Datei_2 Datei_3 > GanzLangesFile
erzeugt mittels Ausgabeumleitung (>) eine neue Datei (hier: GanzLangesFile), indem die Inhalte von Datei_1 bis Datei_3 aneinander gehängt werden.

Umgekehrt zerlegt split eine lange Datei in mehrere kurze. Besonders sinnvoll wenn eine Datei mal nicht auf eine Diskette paßt. Zusammengesetzt wird sie wieder mit cat unter UNIX oder unter DOS:

copy /b Datei1 + Datei2 + Datei3 LangeDatei

Mit cp (copy) werden Dateien kopiert und mit mv (move) verschoben bzw. umbenannt. Beispiel:

mv a.out NeuerName
Hierzu werden Quelle und Ziel angegeben, auch ist die Verwendung von Wildcards ( * = beliebig viele Zeichen, ? = genau ein Zeichen) möglich.

Für DOSianer: Der Punkt gilt unter UNIX als ein Zeichen wie jedes andere auch, d.h. * meint hier dasselbe wie *.* unter DOS. Hier ist also Vorsicht geboten!

Auch der Versuch, mit Hilfe von mv alle Dateien mit der Endung .x in Dateien mit der Endung .y umzubenennen (Falle: mv *.x *.y), wird scheitern (mit möglicherweise drastischen Folgen). Der Grund hierfür ist, daß die Parameter *.x und *.y nicht wie unter DOS an das Programm mv weitergegeben werden, sondern der Kommandointerpreter (C-Shell) die Auswertung der Wildcards selbst vornimmt. Enthält also das aktuelle Verzeichnis nur die Dateien revue.x, praline.x, bravo.x und freundin.y, so wird in Wirklichkeit der Befehl

mv revue.x praline.x bravo.x freundin.y
ausgeführt.

Ach so, wenn ein File alt und vergammelt ist, kann es mit rm (remove) gelöscht werden.

Wenn Du mit Disketten arbeiten willst, findest Du das entsprechende Laufwerk als Unterverzeichnis im Dateibaum. Es wird also nicht irgendwie das Laufwerk gewechselt, oder so (siehe DOS-Dateien verzollen).

Vielleicht noch zwei Dinge zum Schluß: UNIX besitzt ein sehr leistungsfähiges Pipeline- und Filtersystem, mit dem man mehrere Befehle verbinden kann, so daß Ein- bzw. Ausgaben eines Programms automatisch weitergereicht werden, etwa so:

ls -l | less
Hier wird die Ausgabe von ls -l zur Eingabe von less. Damit kann ein Verzeichnis mit vielen Einträgen bequem durchgeblättert werden.

Für nähere Details empfiehlt sich ein Blick in die Handbücher. Dort findest Du auch die exakten Beschreibungen aller Parameter, mit denen die Umgebung beeinflußt wird. Diese stehen zumeist in versteckten Dateien (der Name fängt mit einem Punkt an, z.B.: .login, .cshrc, .profile, .newsrc, usw.), die mit

ls -a     (list all)
sichtbar werden.

Zu allem Überfluß ist die Shell auch noch programmierbar, mit all so Sachen wie Schleifen, Verzweigungen, etc... Die Umgebung kann sich jede/r Benutzer/in den eigenen Bedürfnissen entsprechend anpassen und somit dem System die "ganz persönliche Note" verleihen.

Achtung - Ein Hinweis zum C-Shell-Tuning: Die erste Zeile der Datei .chsrc sollte stets

source /home/cshrc
lauten. Hier wird die Uni-interne C-Shell-Konfiguration aufgerufen, was u.a. zu Folge hat, daß die C-Shell die Programme auch findet, die Du ausführen willst.

Bei UNIX hast Du die Möglichkeit, zwischen verschiedenen Varianten von Arbeitsumgebungen (Shells) zu wählen. Die hier beschriebenen Befehle stellen in gewisser Weise das "kleinste gemeinsame Vielfache" der Befehle zur Arbeit mit dem Dateisystem dar.

Vielleicht probierst Du mal die Turbo-C-Shell aus. Start mit:

tcsh

Diese Umgebung bietet ein paar sehr angenehme Features, z.B. die History, mit der Du die zuletzt eingegebenen Befehle über die Cursortasten erneut abrufen und sogar editieren kannst. Die Shell kann auch automatisch Dateinamen komplettieren, d.h. Du mußt nur die ersten paar Buchstaben eines Namens eintippen und dann die TAB-Taste drücken. Der Dateiname wird dann vom System vervollständigt.

Wer sich einmal an die komfortablere Umgebung gewöhnt hat, der möchte sie sicherlich nicht erst jedesmal aufrufen müssen, sondern als permanente Einstellung haben. Ohne jetzt vorzugreifen (oder doch?!), sei an dieser Stelle schon mal alles Notwendige gesagt: Du loggst Dich remote auf dem Rechner brian ein (rlogin brian) und machst dann ypchsh (change shell). Als neue Shell gib /usr/infko/bin/tcsh ein.


Hotel mit Halbpension (X-Windows)

Um es gleich vorwegzunehmen: Die DOS-PCs in den Übungsräumen sind nicht alle für die Benutzung von X-Windows eingerichtet. X-Windows ist für UNIX das, was MS-Windows für DOS ist. Bei Windows 95 hingegen ist DOS das, was bei UNIX eine Shell ist. Während man Windows vorwirft, daß es nicht objektorientiert ist, muß man fast bezweifeln, ob X-Windows Version 11 Release 6 (kurz X6 oder X11R6) überhaupt orientiert ist.

Nicht nur läßt die Standardisierung der Programme sehr zu wünschen übrig (jedes Programm ordnet seine Buttons anders an), auch mit Icons wird mehr als spärlich umgegangen. Einziger Lichtblick ist der Programm- und Dateimanager namens xfm, der auf allen SUN4- und Solaris-Rechnern ausgeführt werden kann (ggf. mit rlogin auf eine entsprechende Maschine hüpfen).

Was nach nüchterner Betrachtung des Systems übrigbleibt, ist die Möglichkeit, mehrere Shells und Editoren gleichzeitig zu öffnen. Dieses ist jedoch ein entscheidender Grund, X-Windows einzusetzen.

Wer hat noch nicht erlebt, daß einem UNIX während der Session eine unästhetische Fehlermeldung auf den Bildschirm geschrieben hat? Unter X-Windows werden diese Systemmeldungen in einem Fenster mit dem Namen console ausgegeben, während man in den übrigen Fenstern ungestört arbeiten kann.

X-Windows selbst stellt nur eine Plattform für die graphische Ausgabe dar. Wie die Benutzeroberfläche aussieht und wie Fenster vergrößert bzw. verschoben werden, hängt letztendlich von dem darüberliegenden Window-Manager ab. Zwei bekannte Vertreter dieses Genres sind Open Look und Motif, die beide in der Uni eingesetzt werden können.

Gestartet wird X-Windows üblicherweise mit dem Befehl

x6start     (oder x5start, falls x6start nicht funktioniert)

Je nachdem, an welchem Typ von SUN-Rechner Du sitzt, können 2-3 Minuten vergehen, bis das System hochgefahren ist - das ist "normal". Die weitere Bedienung des Systems ist der erscheinenden Systemoperatornachricht und einer Einführung in X, die im Solarium (ein Platz an der SUN) ausliegt (roter Schnellhefter), zu entnehmen.

Der Befehl x6start ruft standardmäßig den Motif Window Manager auf. Wem der nicht gefällt, kann mit

x6start -wm olvwm     (open look virtual window manager)
bzw.
x6start -wm fvwm     (feeble (oder so) virtual window manager)
einen anderen Fenster-Verwalter starten. Die einzelnen Verwalter unterscheiden sich im Erscheinungsbild und der Bedienung (sog. look & feel), sowie der Funktionalität - soll heißen, was Du damit machen kannst. Beim look kannst Du zum Beispiel wählen zwischen matt-grau oder matt-bunt und beim feel zwischen linker oder rechter Maustaste - oder so...

Ein bekanntes Problem ist der Ausstieg aus X-Windows (unter X-Windows kann man sich nicht direkt ausloggen). Dieser wird bewerkstelligt mit der Eingabe von exit im console-Fenster(!). Das ist meist ein kleines Fenster am oberen Rand des Bildschirms (nicht bei CDE; dort ist es ein EXIT-Knopf auf der Hauptleiste).

Viele bekannte Programme (z.B. ed, man, trn) existieren in einer speziellen Version für X-Windows. Sie sind an einem vorangestellten x im Namen zu erkennen (also xed, xman - Vorsicht: xrn). Nichtsdestotrotz können natürlich (?) alle übrigen zeichenorientierten UNIX-Programme weiterhin in einem Shell-Fenster aufgerufen werden.

Wer nähere Informationen zu X-Windows, den Window-Managern und ihrer Programmierung wünscht, sei aufgrund der Komplexität des Systems (60 Megabyte Quellcode) auf die im SUN-Raum vorhandenen Manuals verwiesen.


Holiday Inn (CDE)

Da sich nach einiger Zeit alle Benutzer(innen) an die alte X-6-Oberfläche gewöhnt hatten, mußte etwas Neues, Unbekanntes her: Das Common Desktop Environment (CDE). Bei dieser Oberfläche loggst Du Dich nicht wie gewohnt im Textmodus ein, sondern der Bildschirm zeigt ein Fenster, das Dich auffordert, Deine Kennung einzugeben.

Falls Du lieber das gewohnte X6 starten willst, drückst Du die linken Maustaste den Button Options, hältst sie gedrückt, bewegst sie auf Command Line Login und läßt sie los. Dann bist Du im Textmodus und mußt Dich beeilen, Dich wie gewohnt einzuloggen. Wenn Du zu langsam bist, verschwindet der Text, und der Computer gerät in einen undefinierten Zustand. Ansonsten startest Du X6 wie oben beschrieben.

Wenn Du dagegen das CDE haben willst, gibst Du Deine Kennung ein, tippst die Return-Taste, dann Dein Paßwort (das nicht angezeigt wird) und nochmal die Return-Taste. Nach einiger Wartezeit siehst Du eine grafische Oberfläche mit häßlichem Hintergrund. Das ist das CDE. Es sollte halbwegs selbsterklärend sein (vor allem, wenn Du einigermaßen Englisch lesen kannst); unten auf dem Bildschirm hast Du eine Leiste, über die Du einige wichtige Programme starten kannst. Besonders interessant sind der Editor (durch Anklicken des Kritzelblocks zu starten), der Mailer zum Schicken und Empfangen von E-mail (über die Schachtel mit oder ohne Briefe, die neben dem Kritzelblock liegt) und der Style Manager, mit dem Du u.a. die Bildschirmfarben, die Schriftarten, das Verhalten der Maus und der Fenster und den häßlichen Hintergrund ändern kannst (versteckt sich hinter dem Icon mit Maus, Farbpalette und "TTT"). Außerdem enthält die Leiste etwa in der Mitte einige wichtige Mini-Icons: Mit dem Vorhängeschloß macht man den Computer vorübergehend unzugänglich (praktisch, wenn man mal kurz aus dem Raum gehen will, ohne sich auszuloggen), und mit EXIT loggt man sich aus.

Das CDE merkt sich den Bildschirmzustand beim Ausloggen. Beim nächsten Einloggen bekommst Du wieder exakt diesen Zustand, d.h. mit allen aktiven Programmen, Dateien in den Editoren etc. Wenn Du das nicht willst, kannst Du dieses Verhalten mit dem Unterpunkt Startup des Style Managers (s.o.) ändern.


Gepäckaufbewahrung

An Personen, die viel auf Achse sind oder ihre Kreativität in Megabytes ausdrücken, ergeht die Bitte, bei der Verwahrung ihrer Daten möglichst platzsparend vorzugehen. Jeder Benutzer bekommt vom Rechenzentrum ein Limit für den Plattenplatz, den er verschwenden darf. Für gewöhnlich sind das zur Zeit 30 MByte - also wirklich nicht die Welt - doch es paßt weitaus mehr drauf, wenn große Dateien und Verzeichnisse komprimiert bzw. archiviert werden.

Wieviel Platz Du belegt, bzw. noch zur Verfügung hast, erfährst Du vom System, wenn Du

quota -v
eingibst. Sollte die Antwort des Systems Dich erschrecken, dann möchtest du bestimmt wissen, was da so furchtbar viel Platz braucht. Die Größe all Deiner Unterverzeichnisse kannst Du mit du (für disk usage - "you can say you to me") herausfinden. Die Größe einzelner Dateien wird gewöhnlich durch ls -l erfragt (s.o.). Für das weitere Vorgehen folgen ein paar Tips live aus dem Rechenzentrum, die wir hier einmal unkommentiert weitergeben:
Komprimieren einer Datei:compress Datei
odergzip Datei
Dekomprimieren einer Datei:uncompress Datei
odergzip -d Datei
odergunzip Datei

Archivieren und Komprimieren eines Verzeichnisses (Statt compress kann auch hier gzip verwendet werden):

tar cvf - Verzeichnis | compress > Verzeichnis.tar.Z

Löschen des alten Verzeichnisses inklusive aller Unterverzeichnisse:

rm -fr Verzeichnis

Dearchivieren und Dekomprimieren eines Directories:

zcat Verzeichnis.tar.Z | tar xvf -

Löschen der komprimierten Datei:

rm Verzeichnis.tar.Z

Noch ein kleiner Nachtrag zu tar: Wenn Du nur mal so gucken willst, was im Archiv alles drin ist, dann gib ein:

tar -tvf DateiName.tar


Fundsachen

Wenn man nach einer bestimmten Datei sucht, so kann das in einem UNIX-Netzwerk sehr aufwendig werden. Solche Netzwerke sind im allgemeinen sehr groß, und das Durchsuchen aller Verzeichnisse von Hand ist kaum eine Lösung. Besser wäre ein Befehl, der einem die Arbeit abnimmt. Dieses Problem haben die UNIX-Entwickler auch erkannt und den Befehl find implementiert. Die genaue Syntax lautet:
find Verzeichnis(se) Suchoptionen
find durchsucht die angegebenen Verzeichnisse und Unterverzeichnisse nach Dateien, auf die die Suchoptionen zutreffen. Nehmen wir einmal an, wir wollen wissen, welche Dateien im Verzeichnis /home/babelfisch mit lego beginnen. Der korrekte Aufruf hierzu wäre:
find /home/babelfisch -name 'lego*'

Wenn ihr jetzt meint, ihr würdet nun wie gewünscht eine Liste der Dateien erhalten, dann habt ihr aber nicht mit UNIX (Tunix?) gerechnet! find sucht nämlich nur danach; wenn es die gefunden Dateien auch ausgeben soll, so muß die Option -print an die Zeile angehängt werden! Ein weiteres Beispiel wäre:

find / -print

Dieses Kommando listet alle Dateien im System auf (Ihr wißt ja, daß das Stunden dauern kann, oder?).

Einige weitere Optionen sind: -type Typ oder -exec befehl.
Für Typ setze f für normale Dateien bzw. d für Verzeichnisse.
befehl wird jedesmal ausgeführt, wenn eine Datei entsprechend den Suchoptionen gefunden wurde. Eine Zeichenfolge "{}" innerhalb von befehl wird durch den Namen der Datei (inkl. vollständigem Pfad) ersetzt, die find gerade am Wickel hat. Der Befehl muß mit einem Semikolon, dem ein Escape vorangeht, also durch \;, beendet werden.

Um die Bedeutung einer Option umzukehren, muß vor der Option ein ! (not) angegeben werden.

find /home/babelfisch ! -user babelfisch -exec rm {} \;
löscht alle Dateien im Verzeichnis /home/babelfisch und dessen Unterverzeichnissen, die nicht dem User babelfisch gehören. Dies ist ein wunderschönes Beispiel für eine Eigenart von UNIX: Alle Dateien, die nicht babelfisch gehören, sind nach diesem Kommando weg. Und zwar endgültig! Und ohne daß irgendeine Meldung kommt. Vorsicht ist also geboten!

Wenn nur der vollständige Pfad eines UNIX-Kommandos ermittelt werden soll, ist es reine Zeitverschwendung, jedesmal einen ganzen Scan über das komplette System zu machen, da sich das Kommando eigentlich nur in wenigen Verzeichnissen befinden kann. Für diesen Fall gibt es das Kommando whereis. Die Syntax lautet hier:

whereis Optionen Dateiname

whereis liefert den Pfad des Binärcodes, des Sourcecodes und des Manual-Page-Files, sofern diese verfügbar sind.

Ein ähnliches Kommando ist:

which Dateinamen

which ermittelt aus der Datei .cshrc im eigenen Heimatverzeichnis den Pfad und durchsucht ihn nach den Dateien, die ausgeführt werden, wenn ein Dateiname aus der Liste Dateinamen aufgerufen wird. which kann nur aus einer C-Shell (bzw. Turbo-C-Shell) gestartet werden und ermittelt den Pfad aus dem File ~/.cshrc (andere Schreibweise für /home/Kennung/.cshrc).

Der wesentlichste Unterschied zwischen whereis und which ist, daß whereis bestimmte voreingestellte Verzeichnisse durchsucht, wohingegen which den Befehlspfad durchsucht.

Zum Suchen eines Wortes oder einer Zeichenfolge in einer Datei eignet sich der Befehl grep. grep durchsucht eine oder mehrere Dateien nach Zeilen, in denen eine vorgegebene Zeichenfolge vorkommt. Allerdings ist grep so nett und gibt diese Zeile gleich auf den Bildschirm aus. Die Syntax lautet hier:

grep Optionen Zeichenfolge Dateien

Um in der Datei textfile alle Zeilen zu erhalten, in denen computer als Zeichenfolge vorkommt (z.B.: Taschencomputer, the computer is lazy, ...), gibt man also ein:

grep computer textfile

Mit der Option -i werden Unterschiede zwischen Groß- und Kleinschreibung ignoriert, mit -n erhält man vor jeder Zeile noch die Zeilennummer. Mit -v erhält man alle Zeilen, in denen die Zeichenfolge nicht vorkommt.

grep läßt sich auch sehr gut in einer Pipe verwenden. Hat man ein Verzeichnis mit sehr vielen Einträgen und sucht man nach allen Einträgen, in deren Namen mein vorkommt, so gibt man ein:

ls -al | grep mein

Weitere interessante Optionen von grep sind:
-cEs wird nur die Anzahl der gefundenen Zeilen ausgegeben.
-hBei mehreren Dateien werden die Dateinamen nicht ausgegeben.
-wEs werden nur Zeilen ausgegeben, in denen die Zeichenfolge als ganzes Wort vorkommt.


Im Reich der Sonne

Das Land der aufgehenden Sonne ist weit, sehr weit. Es erstreckt sich nicht nur über mehrere Stockwerke, nein, auch vor weit entfernten Gebäuden macht es nicht halt. Wer verspürt da nicht Lust, einmal auf Entdeckungsreise zu gehen, um neue Erfahrungen mit genervten Studenten und Professoren zu sammeln? Aber mal ehrlich, wer kann schon alles zu Hause erledigen?

Viele neue Programme verlangen einen Rechner mit SPARC-Prozessor (z. B. der Prolog-Compiler "ECLiPSe"), und manche selbstgeschriebenen Programme lassen sich auf den guten alten 3/60-Modellen einfach nicht in vernünftiger Zeit ausführen. Für diese Fälle haben die Entwickler von UNIX die Möglichkeit eingeräumt, während des laufenden Betriebs schnell einmal den Rechner zu wechseln, ohne dabei aufstehen zu müssen oder andere Leute von ihren Plätzen zu vertreiben.

Mit Hilfe des Befehls

rlogin Rechnername     (remote login)
kann aus einer Shell heraus auf einen anderen Rechner, dessen Namen Ihr natürlich wissen müßt, rübergemacht werden.

Vorsicht: Niemals X-Windows in einer Shell aufrufen, die auf einem anderen Rechner läuft!!!

Alle Programme werden nun auf dem Fremdrechner ausgeführt, wobei allerdings sämtliche Ausgaben auf Euren Bildschirm umgelenkt werden. Sollte es hierbei Probleme geben (vor allem für tcsh-Benutzer), dann gib ein:

setenv DISPLAY EigenerRechnerName:0

Mit Hilfe des rlogin-Befehls ist es unter X-Windows somit möglich, gleichzeitig auf verschiedenen Rechnern zu arbeiten. Um das sogenannte Remote Login zu beenden, reicht die einfache Eingabe von

exit     (extended xanadu interactive termination)

Wie erkenne ich nun aber, welche Rechner im Netz zu erreichen sind, und, was noch viel wichtiger ist, welche wichtigen Leute davor sitzen? Mit Hilfe des Befehls

rusers     (remote users)
läßt sich diese Frage nicht schnell, aber bequem beantworten. Neben der Angabe der Rechner, auf denen Benutzer arbeiten, findet Ihr jeweils noch die Namen der Leute aufgelistet, die sich auf den betreffenden Rechnern eingeloggt haben. Taucht ein Name mehrfach auf, deutet dies meist darauf hin, daß die betreffende Person unter X-Windows arbeitet, da hier mehrere Shells gleichzeitig geöffnet werden.

Übrigens: Der rusers-Befehl kann auch sehr nützlich sein, wenn man herausfinden möchte, ob eine bestimmte Person gerade in der Uni arbeitet. Diese kann dann nämlich mit talk angesprochen werden (siehe Kapitel Nachrichten).

Ihr glaubt, daß sich hinter der Kennung arthur Euer Freund Arthur Dent verbirgt? Dann tippt mal

finger arthur
ein, und Ihr bekommt nähere Informationen, wie zum Beispiel ob bzw. wovon er einen Plan hat. Nicht nur deshalb eine aus datenschutzrechtlichen Gründen zweifelhafte Angelegenheit, da mit finger u.a. geprüft werden kann, wann Ihr das letzte Mal Eure Post gelesen habt.

Außerdem kann man mit finger herausfinden, welche Kennung ein Benutzer hat, wenn man seinen Vor- oder Nachnamen weiß. Gibt man

finger dent
ein, so erfährt man, daß zum Namen Arthur Dent die Kennung arthur gehört.

Neben der Möglichkeit, in andere Rechner zu schlüpfen, bietet UNIX auch die Möglichkeit des fliegenden Kennungswechsels ohne Ausloggen. Wer über mehrere Kennungen verfügt, kann mit Hilfe von

su Kennung     (suche Unfall)
in eine andere Haut wechseln. Wie man sich leicht vorstellen kann, bleibt es einem auch bei dieser Art des Einloggens nicht erspart, sein Paßwort anzugeben. Übrigens: Wenn nach su keine Kennung angegeben wird, nimmt UNIX als Default root (das ist der Systemverwalter) an. Dies, so möchten wir meinen, ist jedoch für 99,9% von Euch nur ein frommer (?) Wunsch.


Nachtwanderung

Für alle Einzelgänger, Workaholics und lichtscheuen Gestalten bietet sich an unserer Uni die einzigartige Möglichkeit einer besinnlichen Nachtwanderung durch das Infko.

Wer also an seiner Studien- oder Diplomarbeit sitzt und Lust darauf verspürt, auch nach Ladenschluß noch sein Unwesen in den Gemäuern der Uni zu treiben, der kann sich nach einmaligem Ausfüllen eines Antragsformulars bei Herrn Haussmann (G 124a) oder Herrn Nissen (G 131) einen von vier Schlüsseln ausleihen.

Neben einem Schlüssel für einen Solarium-Raum bekommt Ihr zusätzlich noch einen Schlüssel für eine der Türen des G- oder R-Gebäudes, damit Ihr jederzeit Zugang habt. Abzugeben sind beide bis 10 Uhr des nächsten Tages. Um jedem die Chance zu geben, einmal einen Schlüssel zu ergattern, werden diese allerdings erst wieder ab 15 Uhr (freitags bereits ab 13 Uhr) ausgegeben.

Übrigens: Die Schlüssel können auch über das Wochenende ausgeliehen werden. Laßt Euch aber so oder so auf alle Fälle erklären, wie die SUNs hoch- und 'runterzufahren sind. Und nicht vergessen, beim Gehen das Licht auszuschalten!