next up previous contents index
Next: 4. Informationsgewinnung Up: Brückenkurs Informatik an der BerlinSkript Previous: 2. Sun-Workstations und CDE

Unterabschnitte

   
3. Unix-Bedienung

Der Brückenkurs ist kein Unix-Kurs. Wir werden uns hier nur mit einigen Grundlagen und den wichtigsten Kommandos beschäftigen. Als umfassende  Einführung für Autodidakten findet man im WWW unter die UNIXhelp for Users (engl.), die Kurzeinführung in Unix, oder die Unix-Kurzanleitung. Außerdem bietet die Zentraleinrichtung Datenverarbeitung der FU (ZEDAT) entsprechende Kurse an.

Um mit den Unix-Befehlen zu arbeiten, mache man sich eine sog. shell auf. Dies geschieht z.B., indem man auf das Bildchen mit dem Computer am unteren Bildschirmrand mit der Maus klickt. Grob gesagt ist eine Shell ein Fenster, in dem man auf einer  Kommandozeile Befehle eingeben kann. Am Anfang der Zeile steht der sog. prompt, die Eingabeaufforderung. Hier ist er standardmäßig so eingestellt, daß Benutzername und Rechnername angezeigt werden:

myname@computer >
Hinter der spitzen Klammer > werden Eingaben, z.B. ein Programmaufruf, erwartet.
myname@computer > ls *.txt
Durch Drücken der Taste Return (oder Enter oder Eingabe) wird das Programm ge-startet (der Befehl ausgeführt). Die Ausgabe des Programms erscheint ebenfalls im Shell-Fenster oder es wird (bei fensterbasierten Programmen) ein neues Fenster geöffnet.

In den folgenden Beispielen wird die Eingabeaufforderung in der Regel nicht mit angegeben.

   
1. Dateien und Dateiformate

Was eine Datei ist, davon hat wohl jeder eine zumindest vage Vorstellung. Unter Unix können Dateien Daten (Bilder, Texte, Daten zur Konfiguration $\ldots$) enthalten, sie können aber auch ausführbare Programme sein. Sie haben einen Namen , der unter Unix (fast) beliebig lang sein kann und auch Sonderzeichen enthalten darf. Groß- und Kleinschreibung werden (anders als bei DOS) unterschieden. Häufig aber nicht zwingend endet der Name mit einem Punkt und einigen wenigen weiteren Buchstaben, der Namenserweiterung. Diese ist ein Indikator für den Inhalt oder das Format der Datei. Beispiele:

brief.txt, letter_to_mom.text, Porträt.gif,
EinEllenlangerDateinameMitVielenSonderzeichenWie(){}_!%
Dateien sind in sog. Verzeichnissen (directories) abgelegt (s. Abschnitt 3.3). Um sich eine Liste aller Dateien eines Verzeichnisses anzeigen zu lassen, gibt man den Befehl ls (list) ein: 
ls
Möchte man mehr Informationen über die Dateien erhalten, so kann man dies mit
ls -l
erreichen. Es werden dann Zugriffsrechte (s. Abschnitt 3.4), Eigentümer, Gruppe des Eigentümers, Dateigröße und Datum und Uhrzeit der letzten Änderung aufgelistet.

Zum Löschen von Dateien dient der Befehl rm (remove)  :

rm brief.txt
löscht die Datei brief.txt ohne Rückfrage und unwiederruflich.3 Zur Sicherheit kann man auch
rm -i brief.txt
eingeben. Der sog. Schalter -i weist rm an, interaktiv, d.h. mit Rückfrage zu löschen.4 Wird mit dem FileManager gelöscht, landen die Dateien zunächst im ,,Papierkorb`` (Waste). Von hier können sie wieder zurückgeholt werden.

(Daten-)Dateien können verschieden Typen (Graphik, Text, Video) und unterschiedliche Formate (gif-Bild, Word-Dokument, QuickTime Video) haben. Ein Indikator für das Typ und/oder Format ist die Namenserweiterung. Verschiedene Programme dienen dazu, verschiedene Formate anzusehen oder zu bearbeiten. Bilder lassen sich z.B. mit xv betrachten und (mit Einschränkungen) bearbeiten. Alle Klartextformate können mit more (oder etwas komfortabler less) angezeigt werden. Direkt drucken lassen sich PostScript-Dateien. Die folgende Tabelle verzeichnet für eine Auswahl von Formaten geeignete Programme.

Typ Format Erweiterung Betrachter Kommentar
Klartext (ASCII)   diverse cat, more,  
      less, dtpad  
  HTML .html netscape WWW-Dokument
Bilder gif-Bitmap .gif xv xv konvertiert auch
  jpeg-Bitmap .jpeg xv  
  PostScript .eps xv, gv  
Druckdatei PostScript .ps, .eps gv  
      lpr zum Drucken
Komprimiert gzip .gz gunzip  
  compress .Z uncompress  
Archiv tar .tar tar -xvf  

Ist für eine Datei unbekannt, welches Format sie hat, hilft manchmal das Programm file weiter. Beispiel:  

file brief.ps
PostScript document

Eine Kopie einer Datei wird mit dem Befehl cp copy) angelegt:   

cp file1 file2

Dateien können auch unter alternativen Namen angesprochen werden. Dies erreicht man durch sog. links , die man mit dem Befehl ln  anlegt. Möchte man die Datei picture.gif auch unter bild.gif ansprechen, so erreicht man dies mit

ln picture.gif bild.gif
(Allgemein: ln quelle ziel). Dieser sog. hard link setzt voraus, daß Quelle und Ziel auf der selben Festplatte liegen. Ist dies nicht der Fall, oder möchte man einen Link auf ein Verzeichnis setzen, so legt man einen soft link an:
ln -s Mail briefe

   
2. Programme

Es gibt verschiedene Varianten, Programme unter Unix zu starten. Das CDE-Windows-System erlaubt, interaktiv mittels Maus und Menüauswahl Programme aufzurufen. Dies sind meistens selbst interaktive, Maus- und Fenster-orientierte Programme. Alternativ können Programme durch Eingabe ihres Namens auf der Kommandozeile gestartet werden. Beispiel:

ls
startet das Programm (oder Kommando) ls. Viele (die meisten) Programme erlauben oder erwarten eine Reihe von Parametern.
ls *.txt
listet zum Beispiel die Dateien mit der Endung txt auf. Der Stern, ein sog. wildcard character oder Platzhalter steht für   eine beliebige Folge von Zeichen (b*: alle Dateien, die mit b beginnen; b*.txt: alle Dateien, die mit b beginnen und mit .txt enden; *xyz*: alle Dateien, die xyz irgendwo im Namen haben). *.txt ist ein Programmparameter. Gelegentlich sind mehrere Parameter erlaubt.
ls *.txt *.gif
listet Texte und Bilder im aktuellen Verzeichnis auf.
mv brief.bak brief.txt
   benennt die Sicherungsdatei brief.bak in brief.txt um.

Das Verhalten von Programmen kann durch sog. switches beeinflußt  werden. In der Regel werden diese Schalter durch ein vorgestelltes Minus eingegeben.

ls -l -a
listet alle Dateien im Verzeichnis auf, und zwar ausführlich (-l) und auch die versteckten Dateien (-a), also solche, deren Name mit einem Punkt . beginnt (s. Abschnitt 3.11). Der obige Befehl kann auch abgekürzt werden mit
ls -la
Manche Switches erfordern Parameter.
lpr -P lsu filename.ps
druckt filename.ps auf dem Drucker lsu. lsu ist der Parameter für den Switch -P, der lpr mitteilt, welchen Drucker es anzusteuern hat.

Hilfe zu Programmen/Befehlen, zu Funktion, Aufruf, möglichen Switches usw. erhält man mit man: 

man ls

   
3. Verzeichnisse

 Wie unter DOS und Windows sind unter Unix die Dateien in sog. Verzeichnissen oder directories organisiert. Die Verzeichnisse sind baumartig strukturiert. Es gibt ein Wurzelverzeichnis (root directory) /, unter das alle anderen Verzeichnisse untergeordnet sind. In der hiesigen Installation wird die nächste Ebene von u.a. folgenden Verzeichnissen gebildet:

Verzeichnis Funktion
bin enthält Systemprogramme
dev Geräte (Tastatur, Maus, Festplatten, Disketten $\ldots$)
etc Systemkonfigurationen
home Benutzerverzeichnisse
opt diverse Programmpakete
usr Programme und Bibliotheken
var Systembereich für Druck, EMail u.v.m.

Die Hierarchiestufen werden durch / getrennt (Anmerkung: unter DOS durch \). Das Heimatverzeichnis des Studenten schmidt wird z.B. durch /home/lehrnix/schmidt5 angesprochen, das vorliegende Skript für den Brückenkurs liegt im Verzeichnis /opt/htdocs/lehre/WS98/brueckenkurs/.

Besondere Verzeichnisse sind die Heimatverzeichnisse  der Benutzer. Mein eigenes Verzeichnis kann ich durch ~ ansprechen (nicht in jeder Shell möglich). Bsp.:

ls ~
listet mir den Inhalt meines Heimatverzeichnisses auf, unabhängig davon, in welchem Verzeichnis ich mich gerade befinde. Heimatverzeichnisse anderer Benutzer werden durch ~username angegeben. Bsp.:
ls ~schmidt

Zum Wechseln zwischen Verzeichnissen dient das Kommando cd  . Mit cd / wechselt man ins Hauptverzeichnis, mit cd ~schmidt/public in das Verzeichnis public des Benutzers schmidt. cd ohne Parameter wechselt ins eigene Heimatverzeichnis. Mit cd .. kommt man eine Hierarchieebene höher. (Das unter DOS übliche cd.. ohne Leerfeld funktioniert hier nicht.) Mit dem einfachen Punkt . spricht man das aktuelle Verzeichnis an.

Man unterscheidet zwischen absoluten und relativen Verzeichnis- oder Pfadangaben. Wird ein Pfad (Verzeichnisname) in einer Form angegeben, bei der es keine Rolle spielt, in welchem Verzeichnis man sich gerade befindet, spricht man von absoluten Pfaden. Beispiele sind alle Pfade, die mit / beginnen. Sie gehen vom Hauptverzeichnis aus. Relative Pfade gehen vom aktuellen Verzeichnis aus. Befindet man sich z.B. im Verzeichnis /usr/bin, so ist ../lib äquivalent zu /usr/lib, da .. eine Ebene höher anspricht. ../../var entspräche demnach /var. Ruft der Benutzer Schmidt im eigenen Heimatverzeichnis ls briefe auf, so entspricht dies ls /home/lehrnix/schmidt/briefe. Das läßt sich beliebig erweitern. Bsp.: ./briefe/../../schmidt/./briefe entspricht vorigem.

Verzeichnisse werden angelegt mit dem Kommando mkdir    und gelöscht mit rmdir (nicht md bzw. rd wie unter DOS). Bsp.:

mkdir neues_verzeichnis
cd neues_verzeichnis
cd ..
rmdir neues_verzeichnis

In welchem Verzeichnis man sich gerade befindet, erfährt man durch Eingabe von pwd. 

   
4. Dateieigentümer und Zugriffsrechte

  Anders als auf den DOS/Windows-Rechnern läßt sich bei Unix für jede Datei, jedes Programm, jedes Verzeichnis kontrollieren, wer Lese-, Schreib- und (bei Programmen) Ausführungsrechte hat. Schreibrecht umfaßt auch das Recht zum Löschen. Die Rechte können in drei verschiedenen Hierarchiestufen vergeben werden: Eigentümer der Datei (user), dessen Gruppe (group) und den Rest der Welt (others). Benutzergruppen  am Institut sind u.a. institut (Professoren, Wissenschaftliche Mitarbeiter), staff (Techniker), other und other2 (Studenten).

Mit dem Kommando

ls -l
(-l steht für long) werden ausführliche Informationen zu Dateien und Verzeichnissen ausgegeben:
total 15266
drwx------   2 faensen  institut     512 Oct  1 13:05 briefe/
-rw-r--r--   1 faensen  institut 7792362 Oct  1 13:14 diplomarbeit.ps
-rw-r--r--   1 schmidt  other2      4543 Oct  1 13:16 picture.gif
drwxr-xr-x   2 faensen  institut     512 Oct  1 13:17 interna/
drwxrwxr-x   2 faensen  institut     512 Oct  1 13:16 lehre/
drwxrwxrwx   2 faensen  institut     512 Oct  1 13:13 public/
-rwxr-x---   1 faensen  other2    143608 Oct  1 13:45 rtf2LaTeX*
Die erste Zeile gibt den belegten Speicherplatz in diesem Verzeichnis an. Die folgende Liste enthält einen Eintrag pro Datei mit folgenden Informationen: Der erste Buchstabe gibt die Dateiart an. Ein - steht bei einer ,,normalen`` Datei, ein d bei einem Unterverzeichnis (directory). Andere entnehme man gängigen Unix-Dokumentationen. Die folgenden neun Buchstaben geben die Benutzungsrechte wieder. Man lese sie als drei Blöcke à drei Zeichen (rwx). Dabei steht r für das Leserecht (read), w für das Schreibrecht (write) und x für das Ausführungsrecht (bei Unterverzeichnissen das Recht, in diese zu wechseln). Das erste Triplett gibt die Rechte für den Eigentümer, das zweite für die Gruppe und das dritte für jedermann wieder. Die Spalte mit den Ziffern 1 und 2 ignoriere man hier getrost. Es folgt der Benutzername des Eigentümers der Datei und der Name der Gruppe der die Datei zugeordnet ist. Dateigröße (in Byte) und Zeitpunkt der letzten Änderung runden die Sache ab. Demnach sind briefe, interna, lehre und public Unterverzeichnisse. Im Beispiel darf der Eigentümer in alle Verzeichnisse mit cd wechseln und in allen lesen und schreiben (z.B. Dateien anlegen). Im Verzeichnis briefe darf dies kein anderer, im Verzeichnis lehre außer ihm noch alle Mitglieder der Gruppe institut. Andere dürfen hier immerhin lesen. In public darf jedermann und jede Frau schreiben. Die beiden Dateien mit den Zugriffsrechten -rw-r-r- dürfen vom Eigentümer gelesen und geschrieben werden, von Gruppe und Rest nur gelesen. Das Programm rtf2LaTeX im Verzeichnis darf vom Eigentümer und der Gruppe other2 ausgeführt werden, nicht aber vom Rest.

Rechte vergeben werden mit dem Kommando chmod . Es kann auf zwei Arten aufgerufen werden, von denen hier nur die eine vorgestellt werden soll:

chmod permissionlist filename(s)
permissionlist hat die Form benutzerklasse $\pm$rechte. Die Benutzerklassen sind u (user), g (group), o (others) oder auch a für alle, die Rechte wie die oben erläutertern r, w und x. Beispiele:
chmod g+rx briefe
erlaubt den Mitgliedern der Gruppe (hier institut), im Verzeichnis briefe zu lesen.
chmod a-w *
verhindert das Schreiben und Löschen aller Dateien im Verzeichnis für jeden.
chmod u-r diplomarbeit.ps
bewirkt, daß der Eigentümer die Datei nicht mehr lesen kann (selbst wenn er Mitglied der Gruppe institut ist). Das mag nicht sehr sinnvoll sein, ist aber vielleicht illustrativ.

Mit dem befehl umask  wird voreingestellt, mit welchen Zugriffsrechten neu angelegte Dateien erzeugt werden. Zur Benutzung schlage man in den man-pages oder im Unix-Tutorial nach.

Neben den ,,normalen`` Benutzern gibt es einen Benutzer, der alles darf, den Systemverwalter root.    Vor ihm läßt sich nichts verbergen, gilt kein Schreib-, kein Leserecht. Als root arbeiten bei uns die Techniker.

   
5. Dateisysteme im Rechnernetz

   
6. Die Shell

Man glaubt, im Zeitalter fenster-, maus-, und menüorientierter Benutzerschnittstellen bräuchte man keine Befehlsinterpreter mehr. Dem ist nicht so. Zumindest im Informatikstudium kommt man unter keinen Umständen an einem kommandozeilenbasierten Werkzeug vorbei. Ein solches wird einem auf den Sun-Workstations unter CDE zur Verfügung gestellt, wenn man mit der Maus auf den kleinen Computer am unteren Bildschirmrand klickt.

Unter Unix gibt es verschiedene Programme, die als Kommandointerpreter oder shell dienen. Sie sind unterschiedlich komfortabel, und jeder erfahrene Benutzer wird seine eigene Präferenz haben. Den Benutzern am Institut wird standardmäßig die csh (lies: c-shell, natürlich mit englischer Aussprache) zur Verfügung gestellt. Dazu kompatibel und mit wesentlich mehr Funktionen ausgestattet ist die tcsh. Eine andere Shell6 als die voreingestellte startet man durch Eingabe ihres Programmnamens, also z.B. tcsh.

Hauptaufgabe der Shell ist, einen eingetippten Befehl entgegenzunehmen. Er wird aufbereitet und das Programm gestartet. Die Ausgaben werden im Fenster der Shell dem Benutzer präsentiert. Das Editieren der Kommandozeile variiert von Shell zu Shell. Ausprobieren ist hier gefragt. Manchmal funktionieren die Pfeiltasten, Home und End sowie Backspace und Delete, manchmal nicht. Wichtige Hilfsmittel sind:

   
7. Der Suchpfad PATH

   Wo findet die Shell das gewünschte Programm? Wenn beim Kommando nicht ein expliziter Pfad (z.B. /bin/chmod) angegeben ist, so wird die sogenannte Umgebungsvariable PATH ausgewertet. Eine Umgebungsvariable (environment variable) ist eine Konfigurationsmöglichkeit für das Verhalten der Shell und anderer Programme. Sie wird i.d.R. in Konfigurationsdateien (s. Abschnitt 3.11) gesetzt.

PATH ist eine Liste von Verzeichnissen (durch : getrennt), in denen Programme/Kommandos abgelegt sind. In den von der Technik vorgegebenen Konfigurationsdateien ist ein vernünftiger Wert für den Anfang voreingestellt. Man kann ihn sich ansehen durch Eingabe von

echo $PATH
Die Reihenfolge der Verzeichnisse ist relevant. Genau in dieser werden die Verzeichnisse durchsucht. Das erste Kommando, das paßt, wird ausgeführt.

Möchte man seinen Pfad erweitern, tut man dies am besten in der Konfigurationsdatei .cshrc im Heimatverzeichnis (s. Abschnitt 3.13). Mit

set path = ( $path ~/bin )
sorgt man z.B. dafür, daß auch das Verzeichnis bin im Heimatverzeichnis durchsucht wird, wenn ein Kommando eingegeben wird.

    
8. Weitere Umgebungsvariablen

Eine Reihe weiterer Umgebungsvariablen konfigurieren das Verhalten verschiedener Programme und Werkzeuge. Einen Überblick verschafft man sich mit dem Kommando 
env
Das Setzen von Umgebungsvariablen erfolgt in der csh mit setenv:
setenv PRINTER ldu
setzt z.B. die Variable PRINTER auf ldu, was Programme wie lpr anweist, standardmäßig den Drucker ldu anzusprechen.

Variable sinnvolle Werte Funktion
PRINTER  ldu legt den Standarddrucker fest
EDITOR  vi, xemacs, dtpad Standardeditor
MANPATH  /usr/man:/opt/local/man Suchpfad für man-pages
PATH    Suchpfad für Programme
PAGER  less, more Programm zum Blättern
NNTPSERVER  news.fu-berlin.de Server für Newsgroups
MOZILLA_HOME  /opt/navigator Heimatverzeichnis von Netscape 
LD_LIBRARY_PATH   Suchpfad für Programmbibliotheken
HOST   demos Name des aktuellen Rechners

    
9. Drucken

Die Drucker des Instituts sind in der Regel PostScript-fähig, d.h. sie können Dateien im PostScript-Format direkt ausgeben. Gedruckt wird mit dem Befehl 
lpr filename.ps.
Dabei ist filename.ps der Name einer PostScript-Datei. Das funktioniert aber nur, wenn ein Standarddrucker gewählt wurde, siehe dazu Abschnitt 3.8. Die Bezeichnung lpr stammt noch aus alten Zeilendrucker-Zeiten und meint schlicht den line printer. Der obige Befehl druckt auf dem als Standard festgelegten Drucker. Mit der Option -P printer läßt sich ein anderer Drucker wählen. Beispiel
lpr -P ldu filename.ps
druckt auf dem Drucker ldu. Den Studenten stehen folgende Drucker zur Verfügung:

Name Standort Eigenschaften
ldu Keller Raum K 84 Laser, doppelseitig, Recyclingpapier
lsi -- '' -- Laser, einseitig, Recyclingpapier

Derselbe Drucker kann unter verschiedenen Namen angesprochen werden. Die Wahl des Namens beeinflußt z.B., ob ein- oder doppelseitig (si=simplex bzw. du=duplex) gedruckt wird.

 Zum Drucken stehen eine ganze Reihe von Werkzeugen zur Verfügung. Erwähnenswert sind vor allem a2ps, psnup und pstops. a2ps  (lies: a-to-ps) wandelt ASCII-Dateien   (ASCII) in PostScript um und formatiert sie dabei noch recht schön. Aufruf:

a2ps asciifile > asciifile.ps
asciifile.ps kann anschließend mit lpr asciifile.ps gedruckt werden. Oder man leitet die Ausgabe direkt an das Druckprogramm weiter (siehe dazu Abschnitt 3.12):
a2ps asciifile | lpr
Mit psnup   lassen sich mehrere Seiten auf einem Blatt verkleinert ausdrucken. Das spart Papier (schont die Umwelt) und Druck-Quotas (s. Abschnitt 3.10). Um beispielsweise eine mehrseitige DIN-A4-Vorlage filename.ps auf DIN-A5 verkleinert zu drucken, gibt man ein:
psnup -n 2 filename.ps | lpr
-n 2 gibt dabei die Zahl der Seiten pro Blatt an.   Unter ~faensen/bin/ liegt ein kleines Skript booklet, mit dem man sich kleine DIN-A5-Heftchen erstellen kann. Der Aufruf erfolgt mit
~faensen/bin/booklet filename.ps
Die Seiten müssen nur noch sortiert werden, in der Mitte geheftet und gefaltet werden. Das funktioniert gut bei Dokumenten mit max. 40 Seiten (also nachher 10 Blättern). Voraussetzung ist, daß ein Duplex-Drucker als Standard eingestellt ist. Die Drucker des Instituts ,,verstehen`` PostScript. Das bedeutet, daß andere Formate konvertiert werden müssen.   Für die gängigen Graphikformate kann dazu das Program xview (xv) verwendet werden.
xv filename
Aus xview heraus kann man entweder mit Print direkt drucken, oder eine PostScript-Datei erstellen mit Save. Als Format wählt man dann PostScript. Klartext-Dateien (ASCII-Format) lassen sich mit a2ps in PostScript konvertieren (s.o.).

    
10. Druck- und Speicher-Quoten

Jeder Student hat die Möglichkeit, in seinem Heimatverzeichnis maximal 20 MB an Daten abzulegen. Wird dieses Kontingent (quota) länger als eine Woche überschritten, wird dem Benutzer automatisch der erneute Zugang (login) verwehrt. Nur die Technik kann dann noch helfen. Die aktuellen Quoten werden mit dem Befehl 
quota -v
angezeigt. Ausgegeben wird für den Benutzer für jedes Dateisystem, wieviele Blöcke er aktuell belegt hat (blocks), wieviele er ohne Probleme belegen darf (quota), wieviele er maximal belegen darf (limit) und wie lange er noch Zeit hat, Platz zu schaffen, bevor das für ihn erledigt wird (timeleft).

Es ist also wichtig, Plattenplatz zu sparen. Dazu gibt es verschiedene Alternativen: 

1.
Nicht mehr benötigte Daten löschen (rm).
2.
 Große Dateien komprimieren (gzip filename erzeugt die komprimierte Datei filename.gz, Platzersparnis häufig bis zu 70%). Dekomprimiert wird mit gunzip.
3.
  Ganze Verzeichnisse komprimiert zusammenpacken (gtar -cvfz tarfile.tgz directory faßt den gesamten Inhalt von directory in der Datei tarfile.tgz zusammen und komprimiert diese). Mehr Infos erhält man mit gtar -help.
4.
  Programme davon abhalten, große Datenmengen zu speichern. Der WWW-Browser Netscape ist ein solcher Kandidat. Um die Geschwindigkeit zu optimieren, werden die zuletzt betrachteten Daten lokal in einem sog. cache abgespeichert. Dessen Maximalgröße ist auf 5 MB voreingestellt, also bereits ein Viertel des zur Verfügung stehenden Platzes. Wie sich das ändern läßt, steht in Abschnitt 4.2.1.

 Auch für das Drucken gibt es Begrenzungen. Jeder Student darf pro Semester max. 150 Blatt drucken. Dabei zählt das Blatt Papier, doppelseitiger Druck (Duplex) zahlt sich also aus. Freie Druckkapazitäten ermittelt man mit 

show_prq

Auch beim Drucken läßt sich sparen. Nützlich sind hierbei Werkzeuge wie psnup (mehrere Seiten auf ein Blatt) oder booklet (erstellt ein DIN A5-Faltblatt aus DIN A4-Vorlagen, zu finden unter ~faensen/bin/). Näheres zum Drucken siehe Abschnitt 3.9.

    
11. Dot-(.)-Dateien

Unter Unix erfolgt die Konfiguration von System- und Heimatbereich sowie von Benutzerprogrammen in der Regel durch Klartextdateien. Insbesondere die Konfigurationsdateien in den Heimatbereichen sollen nicht bei jedem Aufruf von ls mit angezeigt werden. Sie sind daher ,,versteckt``, was unter Unix erreicht wird, indem der Name der Datei mit einem Punkt . beginnt. Diese Dateien werden daher dot files genannt. Möchte man die Dot-Dateien in sein Listing einbeziehen, startet man ls mit dem Schalter -a:
ls -la
Wichtige Dot-Dateien sind in folgender Tabelle kommentiert:

Dot-Datei Funktion
.cshrc Konfiguration der Shell
.emacs Konfiguration von Emacs/XEmacs
.history Die letzten eingegebenen Kommandos 
.login Kommandos, die beim Login ausgeführt werden
.logout Kommandos, die beim Logout ausgeführt werden
.netscape Keine Datei, Verzeichnis, in dem Netscape seine Konfigurationen, seinen Cache usw. ablegt 
.signature Eine Art Visitenkarte, die an jede EMail angehängt wird (Adresse usw.)
.X* Verschiedene Dateien zur Konfiguration der Fenster-Oberfläche

   
12. Ein-/Ausgabeumleitung, Pipes

Die Ausgabe eines Kommandos läßt sich in eine Datei umleiten. Dazu dient die spitze Klammer >. Bsp.: 

ls -l > listing
schreibt das Ergebnis von ls -l in die Datei listing. Eine etwa bereits bestehende Datei listing würde dabei überschrieben. Mit einer doppelten spitzen Klammer >> kann man die Ausgabe an eine bestehende Datei anhängen.
ls -l >> listing
Ebenso läßt sich die Eingabe an ein Programm statt von der Tastatur aus einer Datei einlesen. Bsp.:
mail schmidt@inf.fu-berlin < brief_an_schmidt
gibt den Inhalt von brief_an_schmidt an mail weiter.

Es ist auch möglich, die Ausgabe des einen Kommandos direkt an ein anderes Kommando als dessen Eingabe weiterzuleiten. 

mein_programm | mail tutor
gibt die Ausgabe von mein_programm an das Kommando mail. Dieses sendet sie per EMail an den Tutor namens tutor. Mehrere Pipes können hintereinandergeschaltet werden:
ls -la | a2ps | lpr
listet das Verzeichnis auf und gibt das Ergebnis an ein Programm zur Formatierung und Umwandlung von Klartext in die Druckersprache PostScript. Dieser PostScript-Code wird dann an das Druckprogramm weitergeleitet.

   
13. Konfiguration des Heimatbereichs mit .cshrc

 In diesem Abschnitt wird die von der Technik vorgegebene Datei .cshrc ausführlich behandelt.

Die Datei .cshrc sieht wie folgt aus (Die Zeilennummern wurden mit dem Kommando nl  hinzugefügt):

     1  # .cshrc Prototyp
     2  #
     3  # set up search path
     4  setenv OPENWINHOME /usr/openwin
     5  set path = (/bin /usr/bin $OPENWINHOME/bin)
     6  setenv PAGER less
     7  setenv LC_CTYPE iso_8859_1
     8  setenv NNTPSERVER news.fu-berlin.de
     9  alias a         alias
    10  #
    11  # define Operating System
    12  setenv OS "`uname -r | cut -f1 -d'.'`"
    13  if ( $OS == 4 ) then
    14     #    BSD-System
    15     # ****** HOMES  *********
    16     setenv XHOME /usr/local/X11
    17     setenv NPHOME /usr/local/newsprint
    18     setenv FMHOME /usr/local/frame
    19     # ****** ENV's ************
    20     setenv LD_LIBRARY_PATH /usr/lib/X11:$OPENWINHOME/lib:/usr/lib
    21     setenv MIRALIB /usr/local/mira/miralib
    22     set path = ( /usr/local/gcc/bin $path /usr/ucb /usr/hosts /usr/lang \
    23                  /usr/local/mira . $XHOME/bin \
    24                  /usr/local/bin $NPHOME/bin $FMHOME/bin \
    25                  /usr/local/emacs/bin)
    26     source ~staff/bin/skripts/setman        # MANPATH
    27     source ~staff/bin/skripts/absolve.csh   # AnswerBook + SunSolve
    28     source /usr/local/tex/texsetup.csh      # tex Umgebung
    29     # ******* CMD_ALIASES ***********
    30      a ll        'ls -lag'
    31      a r         reset
    32  else
    33     #    SYSTEM-5
    34     # *******  HOMES ****************
    35     setenv MOZILLA_HOME /opt/navigator
    36     # *******  ENV's ****************
    37     setenv XFILESEARCHPATH /usr/openwin/lib/locale/%L/%T/%N%S:/usr/openwin/lib/%T/%N%S:/opt/local/lib/%T/%N
    38     setenv MIRALIB /opt/mira/miralib
    39     setenv LD_LIBRARY_PATH /usr/dt/lib:$OPENWINHOME/lib:/usr/lib:/usr/ucblib:/opt/local/lib:/opt/gcc/lib
    40     set path = ( /usr/dt/bin $path \
    41                  /opt/SUNWspro/bin /usr/ccs/bin \
    42                  /opt/gcc/bin /opt/local/bin /usr/ucb \
    43                  /opt/netscape /opt/navigator /opt/tex2e/bin \
    44                  /opt/mira . /opt/emacs/bin ) 
    45     source ~staff/bin/skripts/setman.5      # MANPATH
    46     source ~staff/bin/skripts/absolve5.csh  # AnswerBook + SunSolve
    47     # ******* CMD_ALIASES ***********
    48      a ll        'ls -la'
    49  endif
    50  #
    51  set noclobber
    52  limit coredumpsize 0
    53  set filec
       
    54  # aliases for all shells
       
    55  a cd    'cd \!*;echo $cwd'
    56  a cp    'cp -i'
    57  a mv    'mv -i'
    58  a rm    'rm -i'
    59  a pwd   'echo $cwd'
    60  a del   'rm -i'
       
    61  # skip remaining setup if not an interactive shell
       
    62  if ($?USER == 0 || $?prompt == 0) exit
       
    63  # settings for interactive shells
       
    64  stty erase "^H"
    65  set history = 40
    66  set savehist = 40
    67  setenv HOST "`uname -n`"
    68  set prompt = "${USER}@${HOST} \!: "
       
    69  # other aliases
       
    70  a h             'history -r | more'
    71  a type  cat
    72  a lock  xlock
    73  a m     more
    74  a list  less
    75  a dir   ls
    76  a la    'ls -a'

Die Zeilen 1 bis drei beginnen mit einem #. Das kennzeichnet sie als Kommentar, der Text hinter dem # wird beim Ausführen der .cshrc ignoriert.

  In Zeile 4 wird die Umgebungsvariable OPENWINHOME gesetzt. Sie gibt für die Arbeitsumgebung OpenWindows (s. Abschnitt 3.16), wo es seine Programme, Bibliotheken, Schriften, Bildchen usw. zu suchen hat. In Zeile 6 wird der Suchpfad gesetzt (s. Abschnitt 3.7). Dabei wird bereits die Umgebungsvariable OPENWINHOME benutzt. Vollständig wäre diese Zeile als

set path = (/bin /usr/bin /usr/openwin/bin)
zu lesen. In den Zeilen 6 bis 8 werden weitere Umgebungsvariablen gesetzt. Zu deren Bedeutung siehe Abschnitt 3.8.

In Zeile 9 steht der Befehl alias.   Er dient dazu, einem (mehr oder weniger koimplexen) Kommando einen neuen, meist einfacheren Namen zu geben. alias a alias im Beispiel sorgt dafür, daß mit a der Befehl alias aufgerufen wird. Anwendungen von alias sind in den Zeilen 48, 55-60 und 69-76 zu finden. alias ll 'ls -l' (Zeile 48) sorgt z.B. dafür, daß an Stelle des Befehls ls -l auch einfach ll eingegeben werden kann.

Zeile 55 verdeutlicht die Umbenennung eines komplexen Kommandos

alias cd    'cd \!*;echo $cwd'
bewirkt, daß mit cd dir nicht nur in das Verzeichnis dir gewechselt, sondern anschließend auch noch die Umgebungsvariable cwd (current work directory) ausgegeben wird. \!* wird durch den Parameter für cd (im Beispiel dir) ersetzt.

In Zeile 12 wird mit einem komplexen Kommando ermittelt, ob man sich gerade auf einem Rechner mit dem Betriebssystem SunOS 4 oder 5 befindet (SunOS 5 ist das gleiche, wie Solaris 2). Dies wird der Umgebungsvariablen OS zugewiesen. Von der Betriebssystemversion ist das weitere Vorgehen abhängig. In Zeile 13 wird entschieden, ob die Zeilen 14 bis 31 (bei Version 4) oder 33 bis 48 ausgeführt werden. Da am Institut nur noch ein einziger Rechner unter SunOS 4 läuft (puma), wird auf die Erläuterung der ersten Alternative verzichtet.

Die Umgebungsvariablen, die hier gesetzt werden, sind - soweit relevant - in Abschnitt 3.8 erläutert.

In den Zeilen 45 und 46 werden mit dem Kommando source  Zwei Skripten (ähnlich der gerade diskutierten .cshrc) geladen und die darin enthaltenen Kommandos ausgeführt.

Das Setzen der Variablen noclobber   in Zeile 51 verhindert, daß durch Umleiten der Standardausgabe mit > existierende Dateien überschrieben werden (s. Abschnitt 3.12).

 Wenn Programme ,,abstürzen`` wird unter Unix zur anschließenden Fehlersuche ein Abbild des Hauptspeichers, ein sogenannter core dump, auf die Festplatte geschrieben. Dieser kann recht groß sein und, wenn er unbemerkt bleibt, die Festplattenquotas des Benutzers erschöpfen. Daher wird in Zeile 52 die maximale Größe eines core dumps auf 0 gesetzt.

  Durch Setzen der Variable filec (Zeile 53) kann die csh Datei- und Benutzernamen vervollständigen. Siehe dazu Abschnitt 3.6

Zeile 64 stellt die Shell so ein, daß man mit der Backspace-Taste rückwärts löschen kann.

 Zeile 65 und 66 stellen ein, daß die letzten 40 Befehle zum erneuten Aufruf erhalten bleiben.

In Zeile 67 wird die Umgebungsvariable HOST auf den Namen des aktuellen Rechners gesetzt. Dazu wird da Kommando uname -n aufgerufen. Da es in nach links stehenden einfachen Anführungsstrichen steht, wird es zuerst ausgewertet, sein Ergebnis (seine Ausgabe) wird der Variablen zugewiesen.

 In Zeile 68 wird die Eingabeaufforderung, der prompt,  festgelegt. Es ist eine Kombination aus den Inhalten der Variablen USER und HOST, getrennt durch den Klammeraffen, gefolgt von der Nummer des aktuellen Befehls (für den Historymechanismus) und einen Doppelpunkt. Der Prompt kann nach Geschmack verändert werden.

Bei Änderungen in der .cshrc bietet es sich an, den ursprünglichen Eintrag zu erhalten aber durch Voranstellen eines # auszukommentieren und damit von der Abarbeitung auszuschließen.

   
14. Arbeiten im Netz

 Vernetzung und Mehrbenutzerbetriebssysteme laden ein, nicht nur an dem Rechner zu arbeiten, an dem man sitzt, sondern andere Maschinen mitzubeschäftigen. Insbesondere wenn der Comuter vis-a-vis ein älteres Modell ist, weicht man gern auf einen schnelleren aus. Außerdem sind bestimmte Programme nur auf speziellen, diesen Programmen gewidmeten Rechnern lauffähig. Der sogenannte remote login auf einen anderen Rechner erfolgt so (Annahme: hai ist ein langsamer Rechner, an dem man sitzt, ultra ein schneller, auf dem man ein Ressourcen-fressendes Programm laufenlassen möchte.):

myname@hai: > xhost +ultra
myname@hai: > rlogin ultra
myname@ultra: > setenv DISPLAY hai:0
myname@ultra: > emacs &
xhost +ultra erlaubt, daß Programme, die auf ultra laufen, hai für die Ausgabe nutzen. Hat man sich auf ultra eingeloggt, muß man diesem Rechner noch mitteilen, welcher Rechner für die Ausgabe genutzt wird. Dies geschieht durch setzen der Umgebungsvariablen DISPLAY. 

Aber: Beachte dazu die Anmerkungen zur Etikette (Abschnitt 8).

Es sei außerdem auf die Sicherheitsprobleme beim rlogin hingewiesen (s. Abschnitt 9). Statt rlogin verwende man ssh.

   
15. Disketten

 Unter Unix kann man nicht wie unter DOS/Windows einfach auf Knopfdruck eine Diskette aus dem Laufwerk holen. Bei den Sun-Workstations geschieht der Auswurf mit dem Befehl eject.

Um Dateien von einer Diskette auf das Unix-Dateisystem (oder umgekehrt) zu kopieren, bedient man sich des Programms mcopy. Mit

mcopy filename a:
kopiert man die Datei filename auf Diskette,
mcopy a:*.txt ~/texte
kopiert alle Dateien mit der Endung txt in das Verzeichnis  texte. mcopy gehört zu einer Sammlung von Werkzeugen zur Bearbeitung von DOS-Dateien und Disketten, den sog. mtools. Informationen erhält man mit man mtools.

   
16. Alternative zu CDE: Open Windows



Footnotes

... unwiederruflich.3
Für DOS-Dateisysteme gibt es Werkzeuge, die ein Wiederherstellen der Datei möglich machen. Unter Unix gibt es das nicht. Sollte doch einmal etwas versehentlich verlorengehen, können u.U. die Mitarbeiter der Technik Tränen trocknen, da von den Heimatbereichen regelmäßig Sicherungskopien angelegt werden.
... löschen.4
Standardmäßig ist am Institut der Befehl rm auf interaktiv umgeschaltet.
.../home/lehrnix/schmidt5
lehrnix ist ein Rechner, auf dessen Festplatte die Heimatverzeichnisse von Studenten liegen, s. Abschnitt 3.5)
... Shell6
Es gibt diverse Shells, z.B. sh, ksh, zsh, bash

next up previous contents index
Next: 4. Informationsgewinnung Up: Brückenkurs Informatik an der BerlinSkript Previous: 2. Sun-Workstations und CDE
Autor: faensen@inf.fu-berlin.de