/
Автор: Wolfinger C.
Теги: programmierung linux programmiersprachen computertechnologien informationstechnologien
ISBN: 978-3-642-98096-1
Год: 2000
Текст
Christine Wolfinger
Keine Angst vor UNIX
Springer
Berlin
Heidelberg
New York
Barcelona
Hongkong
London
Mailand
Paris
Singapur
Tokio
Christine Wolfinger
Keine Angst vor UNIX
Ein Lehrbuch fur Einsteiger in UNIX, Linux,
Solaris, HP-UX,AIX und andere UNIX-Derivate
9., korrigierte Auflage
Mit 268 Abbildungen
i
Springer
Christine Wolfinger
OrtlindestraBe 6
81927 Miinchen
ChristineWolfinger@Compuserve.com
http://ourworld.compuserve.comlHomepages/ChristineWolfinger
ISBN-13: 978-3-540-67153-4
e-ISBN-13: 978-3-642-98096-1
DOl: 10.1007/978-3-642-98096-1
Die Deutsche Bibliothek - CIP-Einheitsaufnahme
Wolfinger, Christine: Keine Angst vor UNIX / C. Wolfinger. - 9., korr. Auf!. - Berlin; Heidelberg; New
York; Barcelona; Hongkong ; London; Mailand ; Paris; Singapur ; Tokio: Springer, 2000
Dieses Werk ist urheberrechtlich geschiitzt. Die dadurch begriindeten Rechte, insbesondere die der
Obersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und TabeUen, der Funksendung, der Mikroverfilmung oder der VervieIHiltigung auf anderen Wegen und der Speicherung in
Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine VervieIHiltigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der
gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zuHissig. Sie ist grundsatzlich vergiitungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes.
Springer-Verlag ist ein Unternehmen der Fachverlagsgruppe BertelsmannSpringer
© Springer-Verlag Berlin Heidelberg 2000
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daB solche Namen im Sinne der
Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von jedermann
benutzt werden diirften.
SoUte in diesem Werk direkt oder indirekt auf Gesetze, Vorschriften oder Richtlinien (z.B. DIN, VDI,
VDE) Bezug genornmen oder aus ihnen zitiert worden sein, so kann der Verlag keine Gewiihr fiir die
Richtigkeit, VoUstandigkeit oder Aktualitat iibernehmen. Es empfiehlt sich, gegebenenfalls fiir die eigenen Arbeiten die vollstandigen Vorschriften oder Richtlinien in der jeweils giiltigen Fassung hinzuzuziehen.
Einbandgestaltung: Klinkel + Lobka
Satz: Reprodultionsfertige Vorlage der Autorin
Gedruckt auf saurefreiem Papier SPIN: 10725539
68/3020 -
54 3 2 10
Vorwort
Wir haben uns daran gewohnt, sehr viel Technik in unserem Leben wie selbstverstandlich zu verwenden - dazu zahlen z. B. Fernseher, KOchenmaschinen
und Autos. Bei allen haben wir mehr oder weniger lange die Bedienung erlernen
mOssen. Der Lernaufwand ist um so groBer, je komplexer die Technik und je jOnger die Technologie ist. Nun dringt auch der Computer mit seiner Technologie
sehr massiv - freiwillig oder unfreiwillig - in das Leben vieler Menschen. Die
Technik ist noch relativ jung, gemessen an der Komplexitat, den an sie gestellten AnsprOchen und an der Entwicklungszeit. Entsprechend ist der heute notwendige Aufwand, um die Bedienung eines Rechners zu erlernen, etwas hoherjedoch wie beim Erlernen des Autofahrens mit etwas Schwung, gutem Willen
und Selbstvertrauen durchaus moglich. Wie beim Autofahren hilft es, wenn man
technisches Verstandnis hat - dies ist jedoch keine absolute Voraussetzung.
UNIX ist eines der Systeme, das auf vielen der neuen in Technik, im kommerziellen Bereich und im BOro sich ausbreitenden Rechnern lauft. Bei vielen Rechnern wird der Benutzer dabei recht wenig yom Betriebssystem und UNIX zu sehen bekommen; die Kenntnisse von UNIX, seinen Prinzipien und seiner
Arbeitsweise konnen jedoch das Verstandnis fOr das Rechnersystem und seine
Arbeitsweise erleichtern, seine Bedienung und effiziente Nutzung einfacher gestalten. Der Vorteil von UNIX liegt darin, daB es auf sehr vielen Rechnern lauft,
d.h. hat man einmal gelernt es zu bedienen, so hilft dies wahrscheinlich auch
beim Rechner der anderen Abteilung oder der nachsten Generation.
Wieviel Sie wirklich von dem System lernen mOssen, hangt sehr stark davon ab,
wie oft und wie intensiv Sie mit einem UNIX-Rechner
arbeiten mOssen, welche Aufgaben Sie damit erledigen wollen und wieviel SpaB Ihnen der Umgang und die Beherrschung dieser Technik
macht.
Das vorliegende Such jedenfalls soli Ihnen den Einstieg
dazu ermoglichen, den Umgang mit einem sol chen
System erleichtern und
Ihnen aus dem Spektrum der Moglichkeiten
einen Ausschnitt zeigen. Haben Sie
also keine Angst vor UNIX und zahmen
Sie den Drachen - moge er Ihnen GlOck
bringen!
Dezember 1986 und erneut Marz 2000
JOrgen Gulbins
Geleitwort
Ein neues UNIX-Lehrbuch vorzulegen, ist ein groBes Unterfangen - vor allem,
wenn man es mit dem Anliegen tut, diesen komplexen Stoff so aufzubereiten,
daB auch der Laie ihn versteht. Ich muB Frau Wolfinger das Kompliment machen, daB ihr das ausgezeichnet gelungen ist: Zweifellos wird sie mit ihrem Buch
eine gewichtige LOcke in der UNIX-Literatur schlieBen.
Unix ist ein groBes, umfassendes Betriebssystem, vergleichbar mit GroBrechnersystemen wie MVS oder BS2000. Oem Versuch, UNIX ohne intensive Vorbereitung zu benutzen, folgt unweigerlich Frustration und Resignation. Um die zu
befOrchtende Unzufriedenheit bei einer stark steigenden Zahl von neuen UNIXAnwendern zu vermeiden, muB der Zugang zu diesem umfangreichen Stoff erleichtert werden.
Frau Wolfinger hat es mit diesem Buch unternommen, sozusagen einen ,Do it
yourself<-Kurs zu gestalten - mit wirklich beachtlichem Erfolg, und selbst der
hohe Anspruch ,auch fOr den Laien< scheint mir hervorragend erfOlit. Frau Wolfinger konnte auf ihre langjahrige Erfahrung als Seminarleiterin der Firma pes
und Referentin zahlreicher UNIX-Kurse zurOckgreifen - weit mehr als 1000 Kursteilnehmer sind von ihr in die UNIX-Geheimnisse eingeweiht worden. Man merkt
dem Buch an, daB sie dabei ihrerseits gelernt hat, welche Fragen besondere
Schwierigkeiten bereiten und welche gedanklichen Stolpersteine zu Oberwinden
sind. Seine auf umfangreicher praktischer Lehr-Erfahrung basierende, gute didaktische Gestaltung ist die besondere Starke dieses Buchs.
UNIX befindet sich auf dem besten Weg, das Standard-Betriebssystem fOr immer mehr Anwendergebiete und fOr zukOnftige Rechnergenerationen zu werden
- vielleicht geh6ren UNIX-Kenntnisse schon in wenigen Jahren eben so zum
Grundwissen von Ingenieuren und Informatikern wie heute die h6heren Programmiersprachen. Frau Wolfinger hat mit ihrem Buch eine wichtige Vorleistung
erbracht.
Ais Leser haben Sie mit diesem Buch eine gute Wahl getroffen. Ich wOnsche Ihnen eine angenehme, erfolgreiche LektOre und - Keine Angst vor UNIX!
Januar1987
Prof. Dr. Georg Farber
Lehrstuhl fOr ProzeBrechner
TU MOnchen
Hinweis zur 9. Auflage
Dank der groBen Nachfrage konnten in kurzen Zeitspannen jeweils neue Auflagen dieses Buches erscheinen, die stets aktualisiert wurden. Hierbei habe ich
eine ganze Reihe von Anregungen meiner Leser mit aufgenommen. Durch Recherchen bei den namhaften UNIX-Anbietern sind auch die neuesten Entwicklungen unter UNIX und darauf aufbauender Software berOcksichtigt.
Nochmals herzlichen Dank an all jene Leser, die mir geschrieben haben. Besonderer Dank gilt auch der Firma Sun Microsystems, die mir Rechner zur VerfOgung stellte, an denen ich Konvertierungen und Grafikdateien zu diesem Buch
erstellen konnte. Das Buch, ursprOnglich mit Interleaf geschrieben, habe ich zur
achten Auflage auf FrameMaker umgestellt. Mit Applix Graphics wurden
SchnappschOsse von Bildschirmausschnitten und verschiedene Zeichnungen
eingebunden. Auch der Firma SuSe danke ich, daB ich an Ihren Schulungsrechner die hier im Buch aufgefOhrten Kommandos und Beispiele testen konnte schon vorab: es gab keine Probleme, aile Kommandos und Beispiele sind einwandfrei gelaufen.
Mein ganz besonderer Dank gilt JOrgen Gulbins, der mir bei meinen ersten
Schritten mit UNIX und vorallem bei der Entstehung dieses Buches sehr geholfen hat und auch all die Jahre hinweg immer wieder mit Rat und Tat zur Seite
stand. Bei der vollstandig neu Oberarbeiteten achten Auflage hat Carsten Hammer wesentlich zum Gelingen beigetragen - herzlichen Dank.
FOr die wichtigen Korrekturarbeiten danke ich Astrid von Borcke-Gulbins, Gisela
Pohnke, Monika Jahn, meiner Schwester Karin Winderl, Rita Luger und natOrlich
auch meinen Lesern. FOr die Revidierung der Kurzreferenzkarte danke ich besonders Wolfgang Lechner. Viele gute Anregungen bekam ich auch durch meine
ehemaligen Kolleginnen und Kollegen bei PCS. Hier mochte ich mich besonders
bei Michael Uhlenberg und Wolfgang Denk bedanken.
Dieses Lehrbuch zeigt UNIX in seiner ursprOnglichen Form mit Befehlseingaben,
wie sie auch unter UNIX V.4 GOltigkeit haben. Da jedoch fast aile UNIX-Rechner
heute zusatzlich mit einer grafischen Benutzeroberflache ausgerOstet sind, wird
zu Beginn kurz gezeigt, wie man damit umgeht. In einem eigenen Kapitel CDE
(Common Desktop Environment - der inzwischen vereinheitlichten grafischen Benutzeroberflache von UNIX) gehe ich auf die Handhabung detailliert ein.
Ich wOnsche Ihnen viel Erfolg mit UNIX.
Marz 2000
Christine Wolfinger
Was ist LlNUX?
LlNUX ist UNIX,
d. h. ein weiteres UNIX-Derivat, das weitgehendst den Standardrichtlinien von
POSIX (siehe Seite 19) entspricht und als Open-Source-UNIX erhaltlich ist und
somit inklusive aller Quelltexte frei kopiert und verteilt werden darf.
Der Name LlNUX wurde abgeleitet von Linus Benedict Torvalds, Helsiniki, der
1991 ein eigenes Betriebssystem, aufbauend auf dem UNIX-Modell, fOr den Intel
386-Prozessor entwickelte. Von Anfang an waren die Quelltexte an den Universitaten frei verfOgbar, jeder konnte sie bekommen und daran mitarbeiten. Ober
die ganze Welt verstreut halfen Entwickler per E-Mail, Newsgroups und Ober
WWW (World Wide Web) mit, daB LlNUX ein UNIX-Derivat wurde, das nicht nur
von Studenten und Entwicklern eingesetzt wird, sondern mehr und mehr auch
von kommerziellen Anwendern. Auch Fachmessen und Kongresse trugen dazu
bei, LlNUX eine offensichtliche Konkurrenz zu Microsoft werden zu lassen. Viele
Software-Firmen bieten bereits ihre Produkte fOr LlNUX an. Erwahnen mochte
ich hier besonders alternative Software zu dem Microsoft Office-Paket: Applixware/Anyware und StarOffice. Der Marktanteil von LlNUX soiliaut den Prognosen von April 1999 der IDC (International Data Corporation) in den kommenden
fOnf Jahren 25% steigen und im Jahre 2003 den zweiten Rang hinter Windows
NT belegen.
Um LlNUX einzusetzen braucht man jedoch eine Menge Fachwissen.
Distributoren wie Debian, Red Hat, SuSE und Slackware u.a. helfen hier mit entsprechenden Paketen, in denen Installationsskripte und -anleitungen fOr LlNUX,
die gangigsten Treiber und verschiedene Software-Losungen zusammengestellt
sind. Doch auch dann muB der Anwender bereits grundlegende Systemverwalterkenntnisse mitbringen, um die Installationen durchzufOhren. Einige Distributoren bieten zwischenzeitlich auch Rechner mit bereits vorinstalliertem LlNUXBetriebssystem an.
Es gibt eine Reihe von guten BOchern, von denen ich einige im Literaturverzeichnis erwahne, die gute Anleitungen geben, das LlNUX-Basissystem zu konfigurieren. Doch gehen die meisten davon aus, daB der Anwender Fertigkeiten im
Umgang mit Computern besitzt. Ich helfe Ihnen gerne, mit Hilfe dieses Buches
grundlegende Kenntnisse und die praktische Anwendung von UNIX zu erlernen.
Der Titel dieses Buches konnte deshalb genauso gut lauten:
<Keine Angst vor LlNUX>.
Keine Angst vor UNIX
Ein Lehrbuch fOr Einsteiger
Inhaltsverzeichnis
Einleitung ......................................................1
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
Allgemeine Einfuhrung ....................................3
Hardware und Software - Rechner und Betriebssystem .......... .4
Unterschied zwischen Datei und Dateisystem .................. 11
Was ist ein Programm? .................................... 13
Programmiersprachen .................................... 16
Woher kommt UNIX? ................................. : ... 18
Die UNIX-Portierungen verschiedener Firmen ..................20
Was ist das Besondere an UNIX? ............................21
Wer setzt UNIX ein? ......................................23
2
2.1
2.2
Konventionen und Begriffe zu diesem Buch .................25
Hinweise zum besseren Verstandnis .........................26
Eingabe an der Tastatur ...................................28
3
UNIX - praktisch angewandt ..............................31
3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.1.6
3.1.7
3.1.8
3.1.9
Auf los geht's los .••.....................................32
Wie wird ein UNIX-Rechner gestartet? ........................33
Wie melden Sie sich an einem UNIX-System an? ...............35
Wie arbeiten Sie mit einer grafischen Oberflache ................36
Wer kann unter UNIX arbeiten? ............................ .43
Anmeldung und Eintrag des PaBwortes ...................... .44
Andern des PaBwortes ..................... . ............. .46
Abmelden vom System ................................... .47
Informationen zum Dateisystem ............................ .49
Einige nOtzliche Kommandos ...............................61
Datumsanzeige (date) .....................................61
Lesen des Online-Manuals (man) . ............................ 62
Wie sind die Manualseiten gegliedert? ........................ 63
Anzeige eines Datei-Inhaltes (cat) ............................65
Blattern im Inhalt einer Datei (more, pg) ....................... 66
Wer arbeitet am System? (who) . .............................69
Anzeige des Terminalnamens (tty) . ........................... 70
IX
3.1.10
3.1.11
3.2
3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.2.6
3.2.7
3.2.8
3.2.9
3.3
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.3.6
3.3.7
3.3.8
3.4
X
3.4.1
3.4.2
3.4.3
3.4.4
Senden von Nachrichten an angemeldete Benutzer (write) . ........ 71
Die elektronischeMaii (mail) ................................73
Ausschalten eines UNIX-Rechners ........................... 76
Zusammenfassung der ersten Kommandos .................... 77
Es .shellt( ..............................................81
Aufruf von Kommandos und die Aufgaben der Shell ............. 83
Ein- und Ausgabe der Shell ................................86
Wie und wann leiten Sie die Standardausgabe um? ............. 86
Wie k6nnen Sie eine Datei erganzen? ........................90
Wie k6nnen Sie die Fehlermeldungen umleiten? ................92
Wie leiten Sie die Standardeingabe um? ......................93
Verkettung von Kommandos ...............................94
Der Pipe-Mechanismus unter der Shell ....................... 95
Welche Eigenschaften hat eine Pipe? ........................ 97
Metazeichen zur Expansion von Dateinamen ................... 99
Ersetzungsmechanismus der Shell .......................... 105
Was sind Shell-Variablen? ................................ 107
Ersetzung durch das Ergebnis eines Kommandos .............. 108
Keinerlei Ersetzung ......................................109
Vordergrund- und Hintergrundprozesse ...................... 110
Zusammenfassung der in diesem Kapitel
verwendeten Kommandos ................................117
Obersicht der bisher kennengelernten Sonderzeichen ........... 118
Editoren unter UNIX ....................................119
Erstellung von Texten .................................... 120
Unterschiede zwischen Editor und Textverarbeitung ............ 120
Der ed-Editor .......................................... 122
Wie sind Kommandos im Editor ed einzugeben? ............... 123
Auswahl von oft gebrauchten Kommandos .................... 125
Wie beenden Sie das Programm? .......................... 130
Suchmechanismen im Editor ed ............................ 131
Obersicht einiger im ed (sed, grep und VI) verwendeten Metazeichen 134
Obersicht der Sonderzeichen und Kommandos im ed ........... 136
Zusammenfassung der wichtigsten Kommandos im ed ......... 137
Obersicht der wesentlichen Eigenschaften des Editors vi ........ 138
Wie k6nnen Sie Kommandos im vi mit Objekten kombinieren? .... 143
Obersicht der haufig benutzten vi-Kommandos ................ 146
Besonderheiten im vi .................................... 150
Der batchorientierte Editor sed ............................. 151
Zusammenfassung der Editoren ............................ 152
Dateiverwaltung und -pflege ............................. 153
Neuanlegen und L6schen von Directories .................... 157
Kopieren, L6schen und Umbenennen von Dateien ............. 159
Merkmale einer Datei .................................... 167
Dateitypen unter UNIX ................................... 170
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
Ausdruck von Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 172
Andern von Zugriffs- und Besitzerrechten .................... 176
Suchen nach Dateien und Mustern in Dateiinhalten ............. 183
OberprOfen der Platten- oder Floppybelegung ................. 190
Zusammenfassung der Kommandos ........................ 192
3.5
Sicher ist sicher! ....................................... 199
Was und worauf soli gesichert werden? ......................200
Montieren von Floppies oder Platten ........................201
Kopieren eines Dateibaumes mit cpio .......................207
Einlesen gesicherter Dateien von einer Floppy (als Dateisystem) ... 210
Verwendung von Magnetband oder Streamer .................211
Sicherung mit epio als Archiv ..............................214
Einlesen gesicherter Daten aus einem epio-Archiv ............. 216
Erstellen einer Sicherung mit tar ............................ 219
Restaurieren von Dateien aus einem tar-Archiv ................221
In welchem Turnus soli eine Sicherung erfolgen? .............. 222
Austausch von Daten mit dem PC ..........................227
Noch ein paar Tips fOr den Austausch PC und UNIX-Rechnern ... 229
Zusammenfassung der Kommandos ........................230
3.5.1
3.5.2
3.5.3
3.5.4
3.5.5
3.5.6
3.5.7
3.5.8
3.5.9
3.5.10
3.5.11
3.5.12
3.6
3.6.1
3.6.2
3.6.3
3.6.4
3.6.5
3.7
3.7.1
3.7.2
3.7.3
3.7.4
3.7.5
3.7.6
Wissenswertes ilber Netze ..............................235
Was ist ein Netz - ein paar Grundinformationen ............... 236
Wie wird eine Verbindung hergestellt? .......................238
Welche Netzwerk-Kommandos sind fOr Sie interessant? ........ 238
Wie arbeiten Sie mit ftp? ..................................245
Zusammenfassung der Kommandos ........................250
Wichtige Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 252
Shell-Prozeduren ......................................253
Die Vorteile von Shell-Prozeduren ..........................254
Was sind Shell-Prozeduren? ...............................254
Welche Vorteile bieten Ihnen eigene Shell-Prozeduren? ......... 256
Erstellen eigener Shell-Prozeduren ..........................257
Was k6nnen Sie in eine Prozedur eingeben? .................. 257
Die einzelnen Schritte zur Erstellung eines
Sicherungskommandos ...................................259
Vordefinierte Shell-Variable ................................262
Wie k6nnen Sie Ihren ,PATH, erweitern? ..................... 262
Das Wesentliche Ober die Shell-Variablen ....................265
Positionsparameter ......................................268
Verwendung von Positionsparametern .......................268
Ablaufsteuerung einer Shell-Prozedur .......................271
Wie verwenden Sie die if-Bedingung? .......................274
Wie k6nnen Sie if-Bedingungen schachteln? ..................275
Wie verwenden Sie das test-Kommando, um eine
ASCII-Zeichenkette zu OberprOfen? ......................... 277
Wie verwenden Sie test, um Zahlenwerte zu vergleichen? ....... 280
Beispiele zur Erstellung von eigenen Shell-Prozeduren .......... 281
XI
3.7.7
3.7.8
3.7.9
3.8
3.8.1
3.8.2
3.8.3
3.8.4
3.8.5
3.8.6
3.8.7
3.8.8
3.8.9
3.9
3.9.1
3.9.2
3.9.3
3.9.4
3.9.5
3.10
3.10.1
3.10.2
3.10.3
XII
Schleifenverarbeitung ....................................285
Wie verwenden Sie die for-Schleife? ........................286
Wie wird das Kommando ,for Name in Wort ... ' verwendet? ...... 288
Wie wird das Kommando ,while' oder ,until, verwendet? ......... 290
Weitere nOtzliche Kommandos fOr Shell-Prozeduren ............ 293
Wie konnen Sie eine Schleife abbrechen? ....................293
Wie fOhren Sie Rechenoperationen durch? ...................294
Funktionen - (function) . ...................................299
Zusammenfassung
Kommandos/Zeichen zur Ablaufsteuerung ................... 300
Die Korn-Shell ........................................305
Die Vorteile der Korn-Shell ................................306
Wie arbeiten Sie mit der Korn-Shell? ........................308
Wie starten Sie eine Korn-Shell? ...........................308
Der History-Mechanismus ................................309
Der Befehlszeileneditor ...................................310
Der Alias-Mechanismus ..................................312
Variablen der Korn-Shell ..................................314
Spezielle vordefinierte Variable .............................316
Zusatzliche Optionen ....................................318
ProzeBkontrolle (Jobcontrol) ...............................319
Zusammenfassung ......................................322
Wichtige Dateien ........................................322
In diesem Kapitel behandelte Kommandos ................... 322
Vordefinierte Variable bzw. Sonderzeichen ...................324
Zusatzliche Optionen ....................................324
Besonderheiten der C-Shell ..............................325
Eigenschaften der C-Shell ................................326
Wie wird die Fehlerumleitung eingegeben? ...................327
Was ist anders bei der Ablaufsteuerung? .....................327
Wie wird mit Variablen gearbeitet? ..........................328
Aliasbildung/-aufhebung ..................................328
Noch ein paar Befehle ..................................329
Umleitung mit tee .......................................330
Kommandos, um Dateien und Zeichenketten zu verandern ...... 331
Sortieren von Dateiinhalten oder Zeichenketten (sort) ............ 331
Separieren (Ausschneiden) von Spalten aus Dateien
oder Zeichenketten (cut) ..................................333
Vergleichen von Dateien (dift, cmd) .........................334
Das Kommando read in Verbindung mit dem Pipe-Mechanismus .. 336
Nur ein kleiner Blick in Dateien {head, tai~ . ....................337
Programme starten, und Sie gehen schlafen (nohup) ............ 338
4
4.1
4.2
4.2.1
4.3
4.4
4.5
4.5.1
4.5.2
4.5.3
4.6
4.7
4.7.1
4.7.2
4.7.3
4.8
4.8.1
4.8.2
4.9
CDE - die grafische Benutzeroberflache unter UNIX ......... 339
Wie melden Sie sich an ...................................340
Die Desktop-Anzeige ....................................341
Der Terminkalender ......................................344
Wie arbeiten Sie auf dem Desktop - der Arbeitsflache? ......... 345
Wie aktivieren Sie weitere Arbeitsbereiche? ...................346
Wie arbeiten Sie mit dem Texteditor? ........................347
Wie starten Sie den Texteditor? ............................347
Wie konnen Sie Texte verandern? ..........................348
Wie konnen Sie Texte formatieren? ......................... 349
Welche Hilfsfunktionen bietet das CDE? .....................352
Der Dateimanager .......................................354
Wie fOhren Sie die einzelnen Aktionen durch? .................358
Loschen von Dateien - Entleeren des Papierkorbs ............. 361
Automatisches Starten von Kommandos ..................... 362
Wie passen Sie das CDE an Ihre WOnsche an .................363
Andern der Desktop-Anzeige ..............................363
HinzufOgen einer Bedientafel ..............................364
Anlegen von weiteren Arbeitsbereichen ......................365
Der Style-Manager ......................................366
Zum AbschluB noch ein paar Tips zum CDE aus der Praxis ...... 371
5
Obersichten ...........................................373
5.1
Alphabetische Obersicht der Kommandos .................374
5.2
Verzeichnis der Bilder ...................................382
5.3
Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 392
6
6.1
6.2
Literaturverzeichnis ................................... .405
Standarddokumentation UNIX V.4.2 ........................ .406
WeiterfOhrende Literatur und Literatur ...................... .409
7
Stichwortverzeichnis .................................. .411
Nachwort ....................................................425
Beigefugte Kurzreferenzkarte
XIII
Einleit ung
Sie haben sich ein UNIX-Buch ausgesucht, das keine EDV-Kenntnisse voraussetzt. Ein Lehrbuch, mit dem Sie Ihr eigenes Seminar gestalten konnen. In diesem Buch habe ich viele Erfahrungen aus meinen Seminaren einflieBen lassen,
um Ihnen das Lernen zu erleichtern.
In einem Seminar konnen die einzelnen Themen jeweils dem Wissensstand der
Teilnehmer angepaBt werden. Haben sie etwas nicht verstanden, so konnen sie
sofort fragen. In diesem Buch bemuhe ich mich deshalb, viele der eventuell auftretenden Fragen zu beantworten. Aus diesem Grund mag zuweilen ein Thema
eher zu ausfUhrlich als zu knapp behandelt sein. A"e erstmals auftretenden
Fachausdrucke werden kurz erklart.
So weit es klar verstandlich bleibt, habe ich deutsche Ausdrucke verwendet. Wo
aber die Verbindung zu UNIX-spezifischen Kommandos besteht oder wo ein
englischer Ausdruck fester Bestandteil der deutschen Fachsprache geworden
ist, wird dieser Ausdruck beibehalten. Bei englischen Fachausdrucken steht die
deutsche Obersetzung, und wenn notig, eine kurze Erlauterung in Klammern,
wenn sie das erste Mal verwendet werden. 1m anhangenden Glossar sind die in
diesem Buch verwendeten Fachausdrucke und englischen Begriffe zusammengefaBt.
Dieses Buch soli Ihnen eine EinfUhrung in UNIX geben, Ihnen das Wichtigste von
UNIX vermitteln. Deshalb werden nicht aIle Kommandos (Befehle, Programmaufrufe) und deren Optionen (zusatzliche Angaben, die eine unterschiedliche
AusfUhrung des Programmes bewirken) behandelt, sondern es sind nur die
wichtigsten ausgewahlt, die Sie zu Beginn benotigen und die Ihnen die UNIX-typische Vorgehensweise naherbringt. Mit weitergehender Literatur, z.B. der jewei ligen Dokumentation (SOLARIS,LlNUX,HP_UX,AIX) konnen Sie dann selbst
nach und nach in die Geheimnisse und Machtigkeit von UNIX vordringen.
Was erwartet Sie, wenn Sie UNIX lernen? UNIX kann in etwa mit der englischen
Sprache verglichen werden. Mit etwas Grammatik und einigen Wortern konnen
C. Wolfinger, Keine Angst vor UNIX
© Springer-Verlag Berlin Heidelberg 2000
"----
Einleit ung
Sie sich bereits verstandigen. Um gut Englisch zu sprechen, bleibt Ihnen nichts
anderes Obrig, als die Sprache zu lernen und sie standig in der Praxis anzuwenden (zu iiben), allein um all die Idiome und differenzierten Warter richtig einzusetzen. Sei UNIX ist es ahnlich. Doch erschrecken Sie nicht! UNIX hat nur ca.
300 bis 1500 Kommandos (von denen Sie auch nur einen kleinen Teil benatigen), die englische Sprache dagegen mehr als 500000 Warter. Mit der grafischen Oberflache (CDE) werden Sie sich auf jeden Fall schnell zurechtkommen.
Also: Keine Angst vor UNIX!
Wie nutzen Sie dieses Lehrbuch am besten? Jeder von uns hat seine eigene
Lernmethode. Doch wir aile werden kaum vom einmaligen Haren oder Lesen
neue Segriffe oder Funktionen aufnehmen kannen. Eine sichere Methode ist
(wie der Titel eines sehr interessanten Suches von Frederik Vester Ober die verschiedenen Lernmethoden aussagt):
Denken,
Lemen,
Vergessen
Mitdenken, an nichts
anderes denken, sich
auf das Gelesene
konzentrieren.
Visuell - das wichtigste
unterstreichen, sich
Notizen machen, wirken lassen, wiederholen, am Rechner Oben
DarOber schlafen,
eine Entspannungspause einlegen,
umsetzen.
In diesem Lehrbuch finden Sie den Lehrstoff eines etwa 5-tagigen Intensivkurses. Nutzen Sie die Obungen, auch dann, wenn Sie glauben, den Stoff gut verstanden zu haben. Was sonst in Vortrag, Fragen und Antworten vermittelt wird,
ist fOr Sie in diesem Such konserviert. Je nach Lust, Aufnahmetahigkeit und Appetit kannen Sie den Stoff in einzelne Portionen aufteilen.
Ich wOnsche Ihnen guten Appetit und viel SpaB mit UNIX.
Christine Wolfinger
2
1 Allgemeine Einfuhrung
Dieses Kapitel gibt Ihnen einen allgemeinen Oberblick Ober
Rechner, Dateien und Programme, und zeigt Ihnen die
wesentlichen Merkmale von UNIX auf. Wenn Ihnen Grundbegriffe der Datenverarbeitung bereits gelaufig sind, konnen Sie
die Absc.hnitte 1.1 bis 1.4 Oberspringen.
Die einzelnen Themen:
1.1
Hardware und Software Rechner und Betriebssystem
1.2
Unterschied zwischen Datei und Dateisystem
1.3
Was ist ein Programm?
1.4
Programmiersprachen
1.5
Woher kommt UNIX?
1.6
Die UNIX-Portierungen verschiedener Firmen
1.7
Was ist das Besondere an UNIX?
1.8
Wer setzt UNIX ein?
3
C. Wolfinger, Keine Angst vor UNIX
© Springer-Verlag Berlin Heidelberg 2000
1.1 Hardware und Software - Rechner und Betriebssystem
Was ist ein Rechner, und welche Funktionen hat ein Betriebssystem? Unter
,Rechner< sollen hier aile Gerate und Komponenten verstanden sein, die einen
funktionstUchtigen Computer ausmachen. Was gehOrt alles zu einem Rechner?
Was muB in Gang gesetzt, verwaltet, koordiniert, kontrolliert werden? Sehen Sie
sich die schematische Darstellung eines Rechners an:
Elektronikkarten (boards)
wie Prozessor. Speicher,
Steuereinheiten
( Controller)
Kabel zur Dialogstation (Terminal)
Kabel zum Drucker ~
Bild 1-1 Schematische Darstellung eines Rechners
Die oben gezeigten Hauptbestandteile eines Rechners sind:
4
o
Elektronikkarten, auch Boards genannt. Zu ihnen gehOren Speicher (memory), der Prozessor (oder die CPU) und Steuereinheiten (controller), die
dafOr sorgen, daB die einzelnen Gerate, wie Terminal, Drucker, Floppy (auch
Floppy Disk oder Diskette genannt) und die Magnetplatten richtig betrieben
und gesteuert werden.
o
Magnetplatten, CDs oder Floppies. Sie sehen ahnlich aus wie Schall platten, doch werden auf ihnen Daten gespeichert. In etwa vergleichbar mit der
Ablage in einem BOro, wo man jederzeit geschriebene Briefe, Formulare,
Notizen u.a. nach einem bestimmten System wiederfinden kann (soli).
o
Stromversorgung. Da Rechner intern nicht mit 220 Volt arbeiten, wird hier
die Spannung Ober eine Stromversorgung (power supply) geregelt.
o
Kabel. Sie stellen die Verbindung zu Ein-/ und Ausgabegeraten her, wie zu
Terminal und Drucker und dienen zur Obertragung von Dateninformationen
und Steuerungssignalen.
Hardware und Software - Rechner und Betriebssystem
1.1
Aile aufgefOhrten Teile werden als Hardware (harte Ware) bezeichnet. Sie konnen sie sehen und anfassen, und wenn sie herunterfallen, klappert und klirrt es.
Nur mit der Hardware allein werden Sie nicht viel Freude an Ihrem Rechner haben. Er kann namlich fast gar nichts. Einige Techniker behaupten, daB gegenOber dem menschlichen Gehirn ein Rechner ein Vollidiot mit Spezialbegabung
ist. Und die Spezialbegabung erMlt er durch die Software (weiche Ware). Diese
.sagt, der Hardware, was sie tun soil. Unter .Software, versteht man die Menge
von Program men, die zum Betrieb eines Rechners notwendig sind.
Wenn Sie einen Rechner starten (hochfahren) wollen, so wird bei den meisten
Rechnern Ober ein fest eingebautes Programm eine Mini-Betriebssoftware geladen, die den Rechner befahigt, von der Platte und der Systemkonsole (Terminal, das fOr die Systemnachrichten ausgewahlt wurde) zu lesen und auf diese zu
schreiben. Erst dann wird das eigentliche Betriebssystem (Programm) von der
Platte in den Speicher geladen. Ein Rechner benotigt also immer ein Programm,
in dem genau beschrieben ist, was und wie er etwas zu tun hat. Programme
konnen in verschiedenen Programmiersprachen geschrieben werden und
mOssen dann so Obersetzt werden, daB der Rechner sie lesen und ausfOhren
kann. Das Umsetzen und Erkennen von Befehlen erfolgt durch den Prozessor,
auch CPU (Central Processing Unit) genannt.
1m nachfolgendem Bild sehen Sie das Innenleben eines Rechners mit einem
Prozessorboard. Bei den vielen kleinen, meist bunten Zylindern handelt es sich
um Kondensatoren und Widerstande. Die viereckigen Kasten sind Mikroprozessoren, Speicherbausteine und sonstige Chips. Generell sind Chips kleine Bausteine, auf denen viele elektronische Komponenten dicht gepackt (in Kunststoff
oder Keramik verpackt) untergebracht sind.
Bild 1-2 Innenleben eines Rechners mit Prozessorboard
5
Allgemeine EinfUhnmg
Welche Aufgaben hat ein Betriebssystem zu erfullen?
Die Aufgabe eines Betriebssystems ist die Organisation fOr den Betrieb eines
Rechnersystems. Mit Rechnersystem ist die Summe der wesentlichen Bestandteile eines Rechners gemeint. Hierzu zahlen:
Odie eigentliche Verarbeitungszentrale,
die man CPU (Central Processing Unit) nennt;
o
ein daran angeschlossener schneller Speicherbereich,
den man Hauptspeicher oder englisch Main Memory nennt;
o
Speichergerate wie Platten, CDs, Floppies und Magnetbandgerate
o
und Einheiten, die Daten transportieren (Interface, Controller).
Mit >Daten transportieren' ist gemeint, daB Daten, die Sie verarbeiten mochten,
von >auBen, in den Hauptspeicher gelangen, und Ergebnisse nach au Ben geschafft werden. Mit >auBen, sind hier entweder Bildschirme oder Drucker gemeint oder Gerate, auf denen groBere Datenmengen gespeichert werden. Die
Speicherung erfolgt in einer Form, die es dem Rechner erlaubt, einfach und
schnell darauf zurOckzugreifen. Dies sind fOr recht schnelle Zugriffe Magnetplatten oder Floppy-Disketten (disk - Platte), fOr langsamere Zugriffe auch Magnetbander oder Streamer-Kassetten (Magnetband-Kassetten). All diese Gerate
werden nicht direkt an den Hauptspeicher angeschlossen, sondern sie werden
Ober ein sogenanntes Interface (oder auch Controller genannt) mit dem Rechner verbunden.
Ein Betriebssystem kann mit den Aufgaben einer Stadtverwaltung verglichen
werden. Die Aufgabe einer Stadtverwaltung ist es, die Dienste und Einrichtungen einer Stadt (wie BOrgermeisteramt, Einwohnermeldeamt, POlizei, Feuerwehr, Sportplatze, ...) zu verwalten und zu betreiben. Die Funktion eines Rechner-Betriebssystems ist es, die oben aufgefOhrten Einheiten zu verwalten und zu
betreiben. Hierzu gehort z. B., die Benutzung eines Druckers so zu regeln, daB
die unterschiedlichen Ausgaben mehrerer Benutzer nicht wild durcheinander
gedruckt werden, oder zu verhindern, daB Benutzer sich >nicht rechtmaBig' verhalten (z. B. Daten anderer Benutzer 16schen, wenn diese solches nicht erlauben).
Eine Stadtverwaltung stellt dem Einwohner eine Reihe von Diensten zur VerfOgung (oder so lite sie zur VerfOgung stellen). Viele dieser Dienste sehen nach auBen einfach aus, z. B. das Anmelden einer Geburt, erfordern jedoch intern viele
einzelne Schritte und viel Koordination: Bei der Geburt wird der Name in das
Melderegister eingetragen, das Statistische Amt verstandigt, der zustandige
Pfarrer informiert, das Gesundheitsamt benachrichtigt, usw.
Ahnlich bietet auch das Betriebssystem dem Benutzer eine Reihe von Diensten
an, die intern viele einzelne Verarbeitungsschritte erfordern und komplexe Ablaufe anstoBen. Ein wesentlicher Dienst besteht z. B. darin, dem Benutzer die
6
Hardware und Software - Rechner und Betriebssystem
1.1
Verwendung der unterschiedlichen Gerate in einer weitgehend einheitlichen Art
anzubieten.
Diese Gerate haben jedoch recht unterschiedliche Eigenschaften. So kann ein
Benutzer dem System in gleicher Art sagen: .Gib das Rechenergebnis auf dem
Drucker aus, oder .Gib das Rechenergebnis auf das Terminal (Dialogstation)
aus,. Das Betriebssystem versteckt in diesem Fall die Unterschiede der einzelnen Gerate vor dem Benutzer und stellt statt dessen den Dienst .Gib aus auf Gerat..., zur Verfugung.
Bei der Verwaltung bzw. der Regierung eines Landes gibt es eine Reihe unterschiedlicher Regierungsformen (z. B. Demokratie, Diktatur, Monarchie), die festlegen, wie regiert wird und nach welchen Kriterien die vorhandenen Mittel vergeben werden. Fur die einzelnen Bereiche haben dabei die verschiedenen Formen
Vor- und Nachteile.
Ebenso gibt es verschiedene Arten von Betriebssystemen, die sich in der
Art der Zuteilung der vorhandenen Betriebsmittel eines Rechners unterscheiden.
Eines der wesentlichen Betriebsmittel eines Rechners ist die eigentliche Verarbeitungseinheit (die CPU) und der Hauptspeicher.
Gibt man jedem Programm eine permanente Prioritat (analog zum Privi/eg in einem autoritaren System) und vergibt die wichtigen Betriebsmittel immer an das
Programm mit der hochsten Prioritat, solange bis das Programm sie nicht mehr
benotigt, so nennt man dies ein Realzeitsystem. Ein solches System mag etwas ungerecht erscheinen, erlaubt aber, daB wichtige Aufgaben vorrangig
durchgefOhrt werden. Z. B. wird das Abschalten einer Maschine in kritischen Situationen vorrangig durchgefuhrt, wahrend z. B. die Berechnung von einer Statistik, wieviele Mitarbeiter in diesem Monat krank waren, zuruckgestellt wird.
Bei einer anderen Betriebssystemform werden die Betriebsmittel gleichmaBig
auf aile Programme oder aile Benutzer verteilt - d. h., jedem steht die CPU eine
kurze Zeit zur Verfugung, dieser wird dann unterbrochen, und der nachste Benutzer wird bearbeitet usw., bis jeder einmal dran war. Dann wird wieder von
vorne begonnen. Dies geschieht wegen der hohen Arbeitsgeschwindigkeit der
heutigen Rechner jedoch in der Regel so schnell, daB der Benutzer den Eindruck
hat, ihm stande der Rechner alleine zur Verfugung. Solche Systeme nennt man
Time Sharing Systeme, da sie die Rechnerzeit zwischen den einzelnen Benutzern bzw. den einzelnen Programmen weitgehend gerecht aufteilen. Das Betriebssystem UNIX ist ein solches Time Sharing System.
In der Vergangenheit war es so, daB jeder Hersteller fOr seine Maschine ein eigenes Betriebssystem erstellt hat, welches die Eigenschaften seiner Maschine
optimal zu nutzen versuchte. Auf diese Weise entstanden recht viele verschiedene Betriebssysteme. Hatte ein Hersteller dabei mehrere im Aufbau unterschiedliche Maschinen, so hatte sogar der gleiche Hersteller unterschiedliche
Betriebssysteme. Weitere Betriebssystemvarianten kamen einfach durch die
lange Jahre laufende Weiterentwicklung hinzu. Auf diese Weise entstand eine
7
'-------
Allgemeine EinfOhrung
groBe Anzahl sehr unterschiedlicher und untereinander nicht austauschbarer Betriebssysteme. Will ein Benutzer in dieser Situation von einem System
auf ein anderes wechseln, so muB er auch zumindest die Grundbedienung des
neuen Systems erlernen. In der Regel mussen auch die Programme, die er fUr
seine Anwendung benutzt hat, mit groBem Aufwand auf das neue Betriebssystem umgestellt werden.
Der Einsatz von unterschiedlichen Betriebssystemen war trotz des Umlernens
und des dabei oft notwendigen Umschreibens eingesetzter Programme solange
sinnvoll, wie damit die bestmogliche Ausnutzung der Maschine und somit eine
Senkung der CPU-Kosten erreicht wurde.
Dies hat sich inzwischen aus folgenden Grunden geandert:
o
heute verwenden viele Hersteller die gleichen CPU-Komponenten,
Odie CPU-Leistung ist sehr viel billiger geworden
(etwa um den Faktor 32 in 10 Jahren!),
Odie Rechnergenerationen wechseln heute aufgrund des technischen Fortschritts so schnell (etwa aile 3 Jahre), daB auch groBe Hersteller es sich nicht
mehr leisten konnen, jedesmal ein neues Betriebssystem zu entwickeln,
Odie Benutzer mochten sich nicht mehr so fest wie fruher an einen Hersteller
und sein System binden und mochten bei der Umstellung auf ein neues
Rechnersystem moglichst wenig neu erlernen mussen.
All dies verlangt nach einem Betriebssystem, das sowohl auf den verschiedenen
Rechnern eines Herstellers als auch auf den unterschiedlichen Rechnern der
verschiedenen Hersteller in gleicher Weise lauft. Es gibt heute mehrere solcher
Betriebssysteme. Die Systeme CP/M und MS/DOS laufen auf den unterschiedlichsten Rechnern, jedoch jeweils nur fUr einen CPU-Typ (CP/M fUr Intel 8080
und Z80-CPU (Zilog), MS/DOS fUr die 8086-, 80XXX- und Pentium-CPUs von
Intel).
UNIX ist eines der wenigen Systeme, welches auf unterschiedlichen Rechnern
mit sehr verschiedenen CPU-Typen lauft. Es bietet damit fUr eine Reihe der oben
genannten Probleme eine annahernd ideale Losung und ist somit in der Lage,
viele andere Betriebssysteme zu ersetzen. Allerdings kann es nicht aile Betriebssysteme ablosen, denn es gibt immer noch unterschiedliche Anforderungen
bzw. Einsatzgebiete (z. B. die Realzeitverarbeitung, die eben doch in vielen
Punkten von der eines Time-Sharing-Systems abweicht). Es gibt auch bei Betriebssystemen noch kein >eierlegendes Woll-Milch-Schwein<.
8
Hardware und Software - Rechner und Betriebssystem
1.1
--------------------~
Zusammenfassung
der wesentlichen Aufgaben eines Betriebssystems.
Wenn Sie Ober Terminal einen Auftrag, einen Befehl (Anweisung) eingeben, so
muB das Betriebssystem:
CD
®
®
@)
®
®
Ihre Eingabe erkennen und weiterleiten;
das Programm fOr diesen Befehl, Ihre Eingabe und evtl. weitere Daten in
den Speicher laden;
das Programm starten, den ordnungsgemaBen Ablauf kontrollieren und
es beenden;
Systemzeiten festhalten, die Zeit zuordnen, kontrollieren;
falls Sie als Ausgabe Informationen auf die Platte schreiben
wollen, so muB dort eine Datei angelegt werden, die auch jederzeit
wiedergefunden werden soli;
die zum Ablauf erforderlichen Betriebsmittel zur VerfOgung stellen.
Mit der folgenden Grafik werden wesentliche Aufgaben eines Betriebssystems
dargestellt:
Systemstatistiken
(Accounting)
Bild 1-3 Hauptaufgaben eines Betriebssystems
9
1
Allgemeine EinfUhrung
Wenn Sie sich ein Betriebssystem als das Gehirn eines Rechners vorstelien, so
magen Ihnen nachstehende Impressionen zeigen, was in so einem Kopt vorgehen kannte:
Anforderungselement, best fit,
Buchhaltungsaktion, capability,
close,
Dateiverwaltung, Ersetzungsstrategie, FIFO,
Gerateverwaltung,
Implementierung, 1/0Control,
InformationsfluB, Kachel, Kanal,
Lesen,
Leser-/Schrei - oblem,
LUcke, Mo
multi user,
multi level feed
Nichtblockierung,
0
operation,
paging, Parameterblock,
Peripherie,
peripheres Genii,
Prozedur, ProzeB,
Plattenspeicher,
Prioritat,
prompt,
read, remote procedure cal,
Satz, Schedule, Segment,
Seite, Sektorkanal,
Se apho Sicherheit, Spezifikation,
Steuereinheit,
1
swapping,
splitting,
TeilprozeB,
Transport,
Treiber,
Synchronisation,
Unterbrechung, Vektor, Verklemmung, Warteschlange,
write, Zugriffsliste
Damit mOssen aber nicht wir unseren Kopt belasten, denn diese Aufgaben
nimmt uns das Betriebssystem ab, zumindest was UNIX betrifft.
10
Unterschied zwischen Datei und Dateisystem
1.2
1.2 Unterschied zwischen Datei Lind Dateisystem
Bisher haben wir uns mit den allgemeinen Ablaufen eines Betriebssystems beschaftigt. Das Wesentliche fOr den Anwender ist, daB der Rechner Aufgaben fOr
ihn durchfOhrt. Die Informationen, die der Rechner dafOr benetigt, kennen diesem z. B. uber ein Terminal mitgeteilt werden. Sollen Informationen (in der DVWelt nennt man dies auch Daten) gespeichert (aufbewahrt) werden, so werden
sie als logische Einheit auf Platte, Floppy, Magnetband oder einem anderen Medium abgelegt. Diese logische Einheit wird als Datei bezeichnet. Die Information kann aus einer Foige von Ziffern, Buchstaben und Sonderzeichen bestehen.
Der Inhalt einer Datei kann z.B. Ihre Adresse mit Telefonnummer oder der Text
dieses Kapitels sein.
Je nachdem, wie die Informationen aufgezeichnet sind, unterscheidet man z. B.
Dateien,
o
die fur uns lesbar sind, z. B. unter UNIX im ASCII-Code gespeichert (American Standard Code for Information Interchange -Amerikanischer Standardcode fOr Informationsaustausch),
o
oder binare Dateien, z. B. die ausfOhrbaren Programme, die im Binarformat
gespeichert sind (binar - aus 2 Einheiten bestehend, z. B. 0 und 1).
Darstellung von Zahlen in Binarform:
1 = 00001,
2
= 00010,
3 = 00011,
4 = 00100
usw.
Um eine Datei ansprechen zu kennen, erhalt sie einen Namen und eine Art
Adresse, aus der hervorgeht, wo auf der Platte oder Floppy die Datei abgelegt
wurde. Uns braucht zunachst nur der Name zu interessieren. Sie kennen sich
eine Datei bildlich wie ein Dokument oder einen Artikel vorstellen. Ein solches
Dokument bildet eine Einheit. Es kann z. B. zusammengeheftet und abgelegt
werden. Es besteht in sich aus Satzen, diese sind aus Wertern zusammengesetzt und die Werter aus Zeichen. Analog spricht man beim Inhalt einer Datei
von Satzen, Satzelementen oder Feldern (statt Werter) und Zeichen.
Ein Dateisystem ist eine nach bestimmten Regeln angeordnete Menge von Dateien, eine Art Ablagesystem der Dateien, dam it sie jederzeit schnell und sicher
wiedergefunden werden kennen. Bildlich kennen Sie sich ein Ablagesystem wie
einen groBen Schrank mit vielen Schuhschachteln vorstellen. Sie kennen kleinere in greBere Schachteln packen - doch die Anzahl der Schachteln ist auf die
GreBe des Schranks begrenzt. In einem Rechner kennen Sie Dateien unter einem Directory (ahnlich einer Schachtelj ablegen, unter diesem Directory weitere
Directories anlegen und so fort. So kennen viele Directories ineinandergeschachtelt werden. Man spricht hierbei auch von einem hierarchischen Dateisystem. Diese immer weitergehende Verzweigung finden Sie auch in der Natur,
z. B. bei einem Baum: Wurzel - Stamm - Aste - Zweige - Blatter.
11
1
Allgemeine EinfUhrung
Das UNIX-Dateisystem beginnt mit einer Wurzel und verzweigt sich wie ein
Baum. Deshalb wird auch von einer Baumstruktur gesprochen. Die Dateien
werden bestimmten Zweigen zugeordnet. Die Knotenpunkte dieser Zweige
werden als Directories bezeichnet. Die Directories sind mehr oder weniger ein
Inhaltsverzeichnis der Dateien und weiteren Directories, die sich unter diesem Zweig befinden.
Jede Datei erhalt einen Namen, ebenso die Directories. Der Weg von der Wurzel
des Baumes bis hin zu der Datei wird als Pfad bezeichnet. Mit dem Pfad und
dem Namen der Datei kann eindeutig die jeweilige Datei wiedergefunden werden. Der Name des ersten Directories ist der Schragstrich >/ , und wird als >root,
(Wurzel) bezeichnet.
(root directory)
Die Wurzel des Baumes
(
~ ...
bin
Is
)
~ (
... ~
(
man 1
(
)
tmp
) (
man
)
(
... (
manS
usr
frei
) (
)
lib
)(
I passwd]
etc
) [U"rliXJ
~oup
... i~ltab l
)
Verzweigung. Directory
Dalai
Bild 1-4 Beispiel des Dateisystems unter UNIX
Die Programm-Datei Is ist eindeutig definiert mit /binlls. Der erste Schragstrich
bezeichnet das 1. Directory: die root. Die weiteren Schragstriche kennzeichnen
die Trennung von einem Directory zum anderen bzw. zur DateL
12
, .3
Was ist ein Programm?
1.3 Was ist ein Programm?
Ein Programm, sei es ein Programm fUr den heutigen Abend, ein Kino- oder
Theaterprogramm oder ein Computerprogramm, bedeutet immer: nach einem
bestimmten Plan etwas durchfUhren. In der elektronischen Datenverarbeitung
werden in einem Programm aile Anweisungen in einer dem Rechner verstandlichen Form aufgefOhrt, die zur L6sung einer Aufgabe notwendig sind. Dabei gibt
es unterschiedliche Arten von Anweisungen:
Arithmetische
Anweisungen
Hierzu geh6ren die Grundrechenarten Addieren,
Subtrahieren, Multiplizieren und Dividieren, z. B.:
c=a+b
Logische Vergleiche
Das sind Vergleiche auf groBer oder kleiner,
und VerknOpfungen mit und, oder, und die
Negation davon (nicht). Wird z. B. mit ,und<
verknOpft,
mOssen
beide
angegeben
Bedingungen erfOlit sein. ,Aile Firmen, die mehr
als 1000 Mitarbeiter haben ,und< in MOnchen
ihren Sitz haben ... sollen aus einer AdreBdatei
herausgefunden werden .<
Programmverzweigungen
Wenn eine bestimme Bedingung erfOlit ist,
dann soli die nachste Anweisung durchgefUhrt
werden, sonst eine andere. Beispiel: In einem
Programm wird der Benutzer gefragt: ,Soli die
Datei xy angezeigt werden?< Antwortet er mit
ja, dann wird der Inhalt der Datei angezeigt,
antwortet er mit nein, dann wird folgende
Nachricht am Bildschirm ausgegeben: ,Soli die
Datei xy gel6scht werden?<
z. B.: if ... then ... else
Sprunganweisung
1m Faile, daB ein vorgegebenes Muster zutrifft,
sollen bestimme Anweisungen durchgefUhrt
werden. Z. B.:
1st die Option' -I, dann drucke die Liste im
Langformat;
ist die Option -F, dann gib die Liste in
Kurzform aus;
ist die Option -x, dann gib die Nachricht
,Falsche Option< aus und
beende das Programm.
• Option - wahlweise zusatzliche Angabe, mit der eine unterschiedliche AusfOhrung
des Programmes erfolgen kann
13
1
Allgemeine EinfOhrung
Schleifen
Es soli solange eine Foige von Anweisungen
durchgefOhrt werden, bis eine bestimmte
Bedingung erfOlit ist. Z. B. ,Solange kein
Endezeichen eingegeben ist, lies die nachste
Eingabe!<
Ein- und Ausgabe
Eingaben und Ausgaben sind unter der UNIXBenutzerschnittstelle (Shell) standardmaBig
dem
Terminal
zugeordnet.
Mit
der
Aufforderung lese (read) wird z. B. das, was Sie
am Terminal eintippen, Obernommen; mit dem
Kommando schreibe (write), wird eine
Nachricht auf den Bildschirm ausgegeben.
Welche Arbeitsschritte sind notwendig, um ein Programm zu erstellen?
Um eine bestimmte Aufgabe dem Rechner zu Obertragen (z. B. eine Lohnabrechnung durchzufOhren), muB die Aufgabe in Einzelschritte zerlegt und in eine geordnete Foige von einzelnen Anweisungen gebracht werden. Eine Foige von Anweisungen, die zusammen ein Problem (oder ein Teilproblem) lost, nennt man
Programm.
Die Anweisungen werden dem Rechner in einer formalen, zumeist an die eng lische Sprache angelehnten Sprache eingegeben. Diese Sprache nennt man entsprechend Programmiersprache. Die Programmiersprache muB deshalb sehr
formal sein, weil bei einem Programm Mehrdeutigkeiten also auch Zweideutigkeiten, wie sie in der natOrlichen Sprache vorkommen, nicht erlaubt sind. Der
Rechner ist eben bei Mehrdeutigkeiten zu dumm, um zu entscheiden, welche
der moglichen Bedeutungen gemeint ist.
Da Programme sehr klar und Schritt fOr Schritt beschrieben die Losung einer
Aufgabe vorgeben mOssen, erfordert das Programmieren Sorgfalt und klare
Oberlegung. Komplexe Aufgaben mOssen dabei in einfache Schritte zerlegt und
aile denkbaren Faile bedacht werden. Dabei helfen Strukturplane wie z. B. ein
Ablaufdiagramm (auch FluBdiagramm genannt). FOr die verschiedenen Anweisungstypen werden unterschiedliche Symbole verwendet. Einige dieser Symbole sind:
nein
8eginn oder Ende
14
Anweisung
Verzweigung
,----I-----,7
Ausgabe
1.3
Was ist ein Programm?
In dem folgenden Bild ist ein Beispiel eines moglichen Ablaufdiagramms dargestellt. Es beschreibt ein kleines Programm, mit dem Sie Telefonnummern abfragen konnen.
Anweisung
mit Ausgabe
Anweisung
Anweisung
Suche nach dem Namen in der Kundentabelle
Anweisung
mit Ausgabe
ja
Verzweigung
Anweisung
mit Ausgabe
Anweisung
Frage ob das Programm beendet werden soli
Anweisung
1st
Verzweigung
ja
~
~~--------~~
...
Schleife
Bild 1-5 Beispiel eines FluBdiagrammes
Sie sehen, zur Erstellung eines Ablaufdiagrammes braucht man noch nicht programmieren zu konnen, sondern nur klar und prazise zu den ken und zu formulieren!
15
Allgemeine EinfUhrung
1.4 Programmiersprachen
Jeder Rechner erkennt nur seinen eigenen, vorgegebenen Maschinencode (in
Binarform). Wie die Sprachen unterschiedlicher Nationen voneinander abweichend sind, so k6nnen auch Maschinencodes unterschiedlicher Prozessoren
verschieden sein. Aile Anweisungen und Vereinbarungen mOssen in diesen
Code, der nur aus 0 und 1 besteht, Obersetzt werden. Es ware eine fUrchterliche
Aufgabe, wenn die Programmierer aile Anweisungen in 0 und 1 schreiben mOBten. Deshalb gibt es sogenannte ,h6herec Programmiersprachen, die das Schreiben von Programmen erleichtern. Ein in einer Programmiersprache erstelltes
Programm wird als Quel/programm bezeichnet. Erst das Obersetzte (compi/ierte)
Programm (Objektprogramm) kann ausgefUhrt werden. Man unterscheidet:
o
Maschinenorientierte Sprachen: Assembler
Dies sind prozessorbezogene Programmiersprachen wie z. B. der Assembler
fUr IBM-Prozessoren, oder fUr den Motorola- oder den Intel-Prozessor.
o
Problemorientierte Programmiersprachen:
Sprachen, die unabhangig von der Rechenanlage so aufgebaut wurden, daB
sie fUr bestimmte Anwendungsbereiche geeignet sind. Zu Ihnen gehOren
z.B.:
COBOL
COmmercial Business Oriented Language
fUr kommerzielle Probleml6sungen;
BASIC
Beginners All purpose Symbolic Instruction Code
eine einfache hOhere Programmiersprache;
FORTRAN
FORmula TRANslation
fUr technisch wissenschaftliche Anwendungen;
C
Die unter UNIX verwendete h6here Programmiersprache, die sowohl fUr technisch wissenschaftliche als auch fUr kommerzielle Anwendungen geeignet ist und unter UNIX besonders
schnelle Verarbeitung gewahrleistet.
r
*'
Nachricht auf Bildschirm ausgeben
main
{
0
r
Hauptprogramm '/
printf ("hallo, ein kleiner Gruss von UNIX");
Bi/d 1-6 Beispiel eines >Mini<-C-Quel/-Programmes
Bei jeder Programmiersprache sind bestimmte Regeln zu beachten, ahnlich der
Grammatik und der Orthographie einer Sprache. Bei den meisten Programmier-
16
Programmiersprachen
1.4
sprachen ist es besonders wichtig, auf die richtige Reihenfolge von Sonderzeichen wie Semikolon, Punkte und Klammerungen zu achten. Doch das ist zunachst nicht unser Problem. Damit haben sich die Programmierer
herumzuschlagen.
Das in einer Programmiersprache entwickelte Programm (Quel/code) muB dann
von speziellen Obersetzungsprogrammen (Compiler) in das Maschinenprogramm (Objectcode) umgewandelt werden, damit es vom jeweiligen Rechner
(Prozessor) richtig interpretiert wird. Bei den Obersetzungsprogrammen wird
das Quellprogramm auf etwaige formale Fehler (Syntaxfehler) untersucht und
eine entsprechende Fehlerliste ausgegeben. Erst nach eriolgreichem, fehlerfreiem Obersetzen kann ein Programm (im Objectcode) gestartet werden.
Ein gestartetes und gerade arbeitendes Programm wird auch als ProzeB bezeichnet.
17
Allgemeine EinfUhrung
1.5 Woher kommt UNIX?
UNIX kommt aus Amerika von .Ma Bell<, wie die Bell Laboratories von Insidern
mit dem Kosenamen genannt werden. Der korrekte Name ist Bell Laboratories
der Firma AT&T (American Telephone and Telegraph). Die ·Bell Laboratories<
sind ein riesiges Zentrum fOr Forschung und Entwicklung.
Und wer waren die Vater von UNIX? Eine Gruppe von Programmierern, deren eigentliche Aufgabe darin bestand, groBe Softwareprojekte zu entwickeln. Um
bessere Voraussetzungen hierfOr zu schaffen, entwarfen Ken Thompson und
Dennis Ritchie ein eigenes Betriebssystem, mit dem sie interaktiv, im Dialog, arbeiten konnten. Ferner wirkten mit: S. Bourne (nach dem die gleichnamige Shell
benannt wurde, S. Johnson, B. Kernighan, D. Mc llroy, J. Ossana, um nur einige
zu nennen, die zusatzliche Hilfsprogramme (Utilities und Tools = Werkzeuge)
entwickelten, um immer wiederkehrende Teilaufgaben schnell und einheitlich zu
losen.
Die wesentlichen Stadien und Versionen der UNIX-Entwicklung waren:
1969-1971
1973
1974-1976
1976-1982
1979
18
*
Auf einer PDP-7* wurde die 1. Version von UNIX in Assembler
(maschinennahe Programmiersprache) geschrieben.
wurde UNIX umgeschrieben (ca. 10.000 Quellcode-Zeilen) in die
hohere Programmiersprache C, die von Dennis Ritchie entwickelt
worden war. Nur ein geringer Teil von ca. 1.000 Zeilen blieb in Assembler. UNIX wurde auf eine PDP11* Obertragen.
UNIX konnte nun mit verhaltnismaBig geringem Aufwand auf all
jene Rechner portiert (Obertragen) werden, die Ober einen CCompiler verfOgten. (Ein Compiler ist ein Obersetzungsprogramm, das den Quellcode einer hoheren Programmiersprache
in den jeweiligen maschineninterpretierbaren Code umsetzt).
entstand die Version UNIXN6.
Ab hier spaltete sich die Weiterentwicklung von UNIX:
o auf VAX*/Interdata die Version UNIXN32 und UNIXN7
o und UNIX fOr PWB (Programmer's Workbench);
o parallel wurde an der Berkeley-Universitat (Kalifornien) UNIX
unter dem Namen BSD weiterentwickelt.
o Aufbauend auf der Version UNIXN7 haben auch eine Reihe
von Firmen, wie Microsoft (XENIX), DEC (ULTRIX), Amdahl
(UTS), Hewlett Packard (HP-UX), PCS (MUNIX) u.a. UNIX
portiert und auf ihren Rechnern eingesetzt. Aile Portierungen,
die nicht von AT&T vorgenommen wurden, muBten
vertraglich einen anderen Namen tragen.
wurden die unter AT&T unterschiedlichen Entwicklungen der
UNIX-Versionen UNIXN7 und UNIX fOr PWB in UNIX System III
PDP-7, PDP-11, VAA sind Rechner der Firma DEC (Digital Equipment Corporation)
Woher kommt UNIX?
1983
1984
1986
1987
1990
1'990
1992
1993
1994
1995
1998
1.5
zusammengefUhrt. Diese Version wies jedoch noch einige Mangel und Schwachen auf.
kam dann die verbesserte Version System V.O auf den Markt.
GrOndung der Gruppe BISON', die 1985 in XlOPEN umbenannt
wurde. Sie vertritt die Interessen der UNIX-Anwender aus nichtenglischsprachigen Landern (Internationalisierung, erweiterter
Zeichensatz, Spezifikationen von Standards). Die Erarbeitung der
Richtlinien wird im XlOPEN Portability Guide (XPG) veroffentlicht.
In USA werden die Interessen der UNIX-Anwender von einer Arbeitsgruppe innerhalb von IEEE vertreten, die 1985 die dort erarbeiteten Standards in dem sog. POSIX dokumentierten.
erscheint UNIX System V Version 2 (V.2).
erscheint UNIX System V Version 3 (V.3).
UNIX auf Intel 386: SCO-UNIX, basierend auf der XENIX-Version
von Microsoft, das von SCO Obernommen wurde.
UNIX System V.4 entwickelt von USL (Unix Software Laboratories von AT&l) in enger Zusammenarbeit mit Sun. Hierbei wurden
die wichtigsten UNIX-Systeme zusammengefaBt, um ein vereintes UNIX zu schaffen.
Wegen der eng en Zusammenarbeit von SUN und AT&T wurde als
Gegenpol die OSF (Open Software Foundation) von IBM, DEC
und HP gegrOndet. Zahfreiche weitere Firmen traten als Mitglieder beL OSF entwickelte u.a. die graphische Oberflache Motif
und ein neues UNIX: OSF/1.
UNIX System V.4.2 kommt auf den Markt.
Um dem starken Konkurrenzkampf von Microsoft (Windows-Nl)
entgegenzuwirken, vereinbaren die fUhrenden UNIX-Anbieter einheitliche Schnittstellen, die unter dem Namen COSE (Common
Open System Environment) zusammengestellt werden.
DEC Obernimmt OSF/1 als Nachfolgeversion zu ULTRIX.
Novell Obernimmt die AT&T Tochterfirma USL und bringt ein auf
PC lauffahiges UNIX heraus: Unixware.
Noveli/USL Obergibt das Warenzeichen UNIX an XlOPEN.
Erganzung von XPG um eine weitere Vereinheitlichung von UNIX
durch die sog. 1170-Spezifikation (Spec1170) und der CDE
(Common Desktop Environment), einer gemeinschaftlichen grafischen Benutzeroberflache.
SCO erMlt von Novell die Source-Lizenzen fUr UnixWare
SCO und IBM entwickeln gemeinsam ein UNIX-System fUr IA-64
DEC und Compaq fusionieren
* Bull, tCL, Siemens, Olivetti, Nixdorf
19
1
Allgemeine EinfUhrung
Monterey/64 (UNIX-System von SCO/IBM) li3.uft auf Intel's Merced Chip
Sun Obernimmt StarOffice
1999
1999
1.6 Die UNIX-Portierungen verschiedener Firmen
UNIX gibt es unter verschiedenen Namen. In der nachstehenden Aufstellung
sind nur einige UNIX-Portierungen aufgefOhrt. Falls Sie bereits mit Internet arbeiten, finden Sie unter den angegebenen Adressen, dort meist unter Produkte Software - Betriebssysteme (OS Operating Systems), Informationen zur aktuellen Version und auf welchen Rechnern/Prozessoren die UNIX-Derivate laufen.
UNIX-Derivat
Hersteller, Systemhaus oder Adresse im Web
http://
Distributor"
AIX
IBM
www.ibm.de
BSD/ OS
Berkeley Software Design
University of California,
Berkeley
www.bsd.com
HP_UX
Hewlett Packard
www.hp.com
IRIX
Silicon Graphics SGI
www.sgi.com
Ll NUX
GNU (FSF Free Software
Foundation)
Debian'
RedHat'
Slackware·
SuSe'
u.a.
www.gnu.org
Monterey/64
IBM,SCO,Sequent,lntel
www.sco.com/monterey
UnixWare
SCO
SINIX
Siemens
SOLARIS
Sun Microsystems
ULTRIX.
OSF/1
Digital UNIX
True 64 UNIX
COM PAC - DEC
www.debian.com
www.redhat.com
www.slackware.com
www.suse.de
www.sco.com
--1--
.-
www.siemens.de
www.sun.de
www.dec.com
www.compaq.com
Bild 1-7 UNIX-Portierungen verschiedener Firmen
LlNUX kann auch Ober Fachbuchhandlungen bestellt werden.
z. B. JF Lehmanns, Tel. 0221/42 81 53 , Adresse im Web http://www.jfl.de
20
Was ist das Besondere an UNIX?
1.7
1.7 Was ist das Besondere an UNIX?
Eine der wesentlichen und hervorstechenden Eigenschafien von UNIX ist die
Portierbarkeit, die es zu einem weitverbreiteten, rechnerunabhangigen Betriebssystem werden lieB. Was bedeutet Portierbarkeit? Man bezeichnet ein Programm dann als >gut portierbar(, wenn es mit geringem Aufwand von einem
Rechnersystem auf einen fremden Rechner Obertragen werden kann. Wir Anwender konnen natOrlich kein Betriebssystem auf einen anderen Rechner Obertragen; dies ist eine Aufgabe fOr Systemanbieter. FOr uns ist es wichtig, wenn wir
bereits mit einem UNIX-Rechner arbeiten, daB wir Programmablauffolgen und
Quelltextprogramme ohne groBen Aufwand Obernehmen konnen. Die Kompatibilitat zu den meisten UNIX-Versionen ist weitestgehend unter System V erreicht. Ab Version System VA ist auch eine Binarkompatibilitat (d. h. ausfOhrbare, kompilierte Programme) fOr Rechner mit gleichem Prozessor (z. B. fOr Intel
oder MIPS) moglich.
Weitere wichtige Eigenschafien von UNIX sind:
D
Multi-User-Betrieb (Mehrbenutzerbetrieb)
Mehrere Benutzer konnen gleichzeitig am System arbeiten. Jeder Benutzer
meldet sich mit einer eigenen Namenskennung und einem PaBwort an.
D
Multi-Tasking
Jeder Benutzer kann mehrere Programme parallel ablaufen lassen, z. B. Editieren und gleichzeitig Texte ausdrucken. 1m Gegensatz zu MS-Windows
laufen diese Prozesse gleichzeitig, d.h. sollte ein ProzeB abstOrzen, bleiben
trotzdem die anderen Prozesse erhalten und der Rechnerbetrieb als solcher
laufi weiter.
D
Timesharing
Wenn mehrere Prozesse quasi gleichzeitig laufen, wird der Platz im Hauptspeicher oder im Prozessor abwechselnd den einzelnen Prozessen nach
einem Prioritatsschema zugewiesen.
D
Dialogverarbeitung
Jeder Benutzer kann von seinem Terminal dialogorientierte Programme aufrufen, Daten eingeben und erhalt die Ergebnisse am Bildschirm angezeigt.
Er muB also nicht die Anweisungen erst in eine Datei schreiben.
D
Individuelle Zugriffsrechte fUr Dateien
Ober Zugriffsrechte wird festgelegt, wer die Dateien, Gerate oder Directories
ansehen (Iesen - read), verandern (schreiben - write) und ausfOhren (execute)
dart. Hierbei unterscheidet man nach dem Benutzer (user), der die Datei
angelegt hat, der gleichen Gruppe (group) und den anderen (others).
D
Shell - Benutzerschnittstelle und Kommandointerpreter
Die Shell interpretiert und kontrolliert in einer alphanumerischen Umgebung
die vom Benutzer eingegebenen Kommandos. Ober die Shell-Steuersprache, die ahnliche Funktionalitat wie eine hohere Programmiersprache hat,
kann der Ablauf von Program men gesteuert werden. Sie enthalt Vergleiche,
21
1
Allgemeine Einfiihrung
Verzweigungen, bedingte AusfUhrungen, Schleifen, Zuweisung von Parametern und Variablen.
o
Verfugbarkeit zahlreicher Sprachen
Welche Programmiersprachen auf Ihrem Rechner zur VerfOgung stehen,
hangt von der jeweiligen Portierung der Compiler abo Fragen Sie Ihren Systemanbieter, welche Compiler verfOgbar sind. Unter UNIX laufen z. B.: C,
C++, BASIC, FORTRAN, COBOL, Pascal, LISP, PROLOG, Ada, APL, Modula-2, Smalltalk, Java u.v.a. mehr.
o
Eine Vielzahl von Dienstprogrammen (Software-Tools)
Zwischen 300 und 1500 Kommandos stehen dem UNIX-Anwender bereits
mit der Grundsoftware zur VerfOgung.
o
Netzwerkfahigkeit - Kommunikation
1m Client-Server-Umfeld hat sich UNIX deshalb so bewahrt, weil es hierfOr
ausgezeichnete Voraussetzungen bietet. Sowohl fOr LAN als auch fUr WAN
gibt es entsprechende Hard- und Software. (LAN: Local Area Network, d. h.
Rechner, die in der Regel auf einem GrundstOck miteinander verbunden sind.
WAN: Wide Area Network, Rechner oder Netze, die Ober 6ffentliche Vermittlungssysteme wie Telefon, DatexP u.a. kommunizieren.) An Software gibt es
z.B.:
uucp (unix to unix copy). Die einfachste (und billigste) Verbindung zwischen
UNIX-Rechnern. Es war u.a. ursprOnglich die Grundlage von mail und kann
auch heute noch hierfOr verwendet werden.
TCP/IP (Transmission Control Protocol-Internet Protocolj, die bedeutendste
Protokollfamilie, mit der die meisten Anbindungen zwischen UNIX-Rechnern
und zahlreichen anderen System en in einem LAN oder z. B. Ober Internet
verbunden sind. Auf diesem Protokoll basieren eine Reihe von Diensten, wie
mail, telnet und rlogin.
o
22
Grafische Benutzeroberflache - GUI (Graphical User Interface)
Auf den meisten UNIX-Systemen wird als grafische Oberflache X-Window
und Motif angeboten. Diese Software erm6glicht auf einem grafischen Bildschirm mehrere Fenster einzurichten und unterschiedliche Anwendungen innerhalb dieser Fenster aufzurufen. Aufbauend auf X-Window und Motif kann
zusatzlich eine Desktop-Umgebung genutzt werden (z. B. VUE von HP, OpenWin von Sun). Directories und Dateien werden z. B. in Symbolen angezeigt
und k6nnen Ober Mausfunktionen ge6ffnet oder anderweitig bearbeitet werden. FOr viele Befehle, die sie in diesem Buch noch >zu FuB< lernen, ben6tigen
Sie dann nur noch ein Mausklicken. Seit 1995 wird von den fOhrenden UNIXAnbietern CDE (Common Desktop Environment) eingesetzt, das die bisher
unterschiedlichen Desktop-Programme abl6st bzw. erweitert.
Wer setzt UNIX ein?
1.8
1.8 Wer setzt UNIX ein?
Aus der Historie von UNIX geht hervor, daB UNIX ursprOnglich zur Bearbeitung
von Softwareprojekten konzipiert und in der ersten Zeit auch hauptsachlich von
Universitaten in Forschung und Lehre eingesetzt wurde.
Heute wird UNIX nicht nur zur Softwareentwicklung und Weiterentwicklung von
Sprachen und Compilern verwendet, sondern das Spektrum der unter UNIX ablaufenden Software reicht von technisch-wissenschaftlichen Anwendungen und
im CAD/CAM-Bereich (Computer Aided Design - computerunterstOtztes Konstruieren, Computer Aided Machinery - computerunterstOtztes Produzieren)
Ober Desktop-Publishing (DTP), BOroautomation, kommerzielle Software, Datenbanken und Informationssysteme, bis hin zum Bereich der KOnstlichen Intelligenz. Hier einige Beispiele der Anwendungsbereiche:
o
technisch-wissenschaftliche Anwendung und CAD/CAM
Z. B. Manipulation von mathematischen Formeln, Statikprogramme, Diagnoseprogramme, Simulation, CAD fOr Elektrotechnik, Programme fOr Architektur und Maschinenbau. Beispiele sind hier u.a. die Pakete Mathematica*,
CA TlA *, EUCLlD*, IDEAS*, ProEngineer*.
o
DTP - Desktop Publishing
Professionelle Text- und Bildverarbeitungssysteme sowie Zeichenprogramme zur Erstellung von technischer Dokumentation, BroschOren, Prasentationen etc. Beispiele sind hier u. a. die Pakete Interleat', FrameMaker*, CorelDraw', Adobe Photoshop *.
o
Bi.iroautomation
Integrierte Textverarbeitungssysteme (Serienbriefe, Dokumentationserstellung), Zeichenprogramme, Tabellenkalkulation mit Datenbanken, Mail-Anbindungen und Makroprogrammierung fOr automatische Ablaufe. Beispiele
sind hier u.a. App/ixware*, Uniplex onGo*, Lotus Notes*, StarOffice.
o
Datenbanken
Hiermit k6nnen z. B. Adressen von Kunden, Lieferanten, Artikel, Preise, Farben in Sekundenschnelle abgefragt werden, wobei mit Hilfe von wenigen
Angaben Querverbindungen angegeben werden k6nnen. Wird z. B. bei einem
Autohersteller ein bestimmtes Modell zum Austausch eines Teiles zurOckgerUfen, k6nnen die betroffenen Kunden durch eine gezielte Datenbankabfrage
schnell ermittelt werden. Aber auch wissenschaftliche Daten werden auf diese Weise abgelegt und k6nnen nach verschiedenen Suchkriterien zusammengestellt werden. Zu den fOhrenden Datenbankanbietern gehOren
Oracle*, Intormix*, Sybase* und Progres'.
23
1
Allgemeine EinfUhrung
o
Kommerzielle Software
Lagerverwaltung, Finanzbuchhaltung, Warenstatistik, Fakturierung, Lohnund Gehaltsabrechnung, Produktionsplanung und Produktionssteuerung
sowie Software fOr eine Reihe branchenbezogener L6sungen (Arzte, Verlage,
Druckereien Speditionsbetriebe usw.), Beispiele sind hier u.a. die Pakete
SAP-RI3*, OS-(FIBU, LOHNIGEHAL T) Orgasoft
o
KOnstliche Intelligenz
Expertensysteme fOr Diagnose (z. B. Motoren- und Getriebediagnose, Blutbildanalyse) usw. HierfOr werden u. a. die Programmiersprachen PROLOG
und LISP eingesetzt.
In UNIX-Seminaren treffen sich Personen aus den unterschiedlichsten Branchen. So ergab sich bei einem meiner Seminare ein sehr illustrer Kreis aus folgenden Berufszweigen:
Welt-
raumforschung
Industrie
Die obigen Beispiele sind nur eine kleine Auswahl an der zur VerfOgung stehender Software. Die Hersteller, Systemhauser und Distributoren der UNIX-Derviate
bieten in der Regel KatalogelWebseiten an, die meist nach Branchen gegliedert
verfOgbare Software meist von Fremdfirmen (Third Party Software) enthalten.
24
*
Handelsnamen und Warenzeichen der jeweiligen Hersteller
2 Konventionen und Begriffe zu
diesem Buch
Dieses Kapitel gibt Ihnen einige Hinweise, wie das Lehrbuch
aufbereitet ist, was die einzelnen Darstellungen aussagen und
was Sie vorab wissen so/lten, um mit UNIX zu arbeiten.
Die einzelnen Themen:
2.1
Hinweise zum besseren Verstandnis
2.2
Tastatureingabe am Terminal
25
C. Wolfinger, Keine Angst vor UNIX
© Springer-Verlag Berlin Heidelberg 2000
2
Konventionen und Segritfe zu diesem Such
2.1 Hinweise zum besseren Verstandnis
Vorab einige Erlauterungen zu den einzelnen Darstellungen in diesem Lehrbuch,
und welche Konventionen (Vereinbarungen, Regeln) benutzt werden:
Aile neuen Kommandos (Befehle), die fOr diesen Kurs ausgesucht wurden, sind
das erste Mal in einem Kastchen herausgehoben. Hier wird dargestellt, wie und
nach welchen Regeln das Kommando aufgerufen wird (Syntax):
Kommando [Option] [ Parameter}
Is
[-I
J
]
[ Directory oder Dateinamen
I/ongformat
Anzeige der wesentlichen Attribute
einer Datei
/ is t (listen, anzeigen)
Bild 2-1 Syntax der Kommandos
In dieser Darstellung ist das Kommando und die moglichen Optionen in Fettschrift dargestellt, zusatzliche Angaben (Parameter), die durch einen anderen
Namen ersetzt werden mOssen, in Kursivschrift. In dem obigen Beispiel wOrde
das Kommando Is (listen von Dateinnamen und Directories) z. B. von einem
Directory mit dem Namen >/usr/kurs< wie folgt aufgerufen werden konnen:
Is -l/usr/kurs
In diesem Lehrbuch werden nur die am haufigsten verwendeten Optionen der
einzelnen Kommandos aufgefOhrt, also nicht aile unter UNIX verfOgbaren. Sind
Parameter optional, d.h., sie dOrfen weggelassen werden, so sind sie in eckige
Klammern [] gesetzt. Unterhalb der Kommandozeile werden die meist von englischen Begritfen abgeleiteten Kurznamen erlautert, die gewahlt wurden, um die
Mnemonik (die Hilfe zum Einpragen) zu nutzen.
Die Klammern [] dienen nur als Hinweis, daB das Kommando mit oder ohne Optionen und/oder weitere Parameter aufgerufen werden kann. Wenn Sie das
Kommando eingeben, wird diese Klammer nicht geschrieben. Das oben angegebene Kommando konnte auch aufgerufen werden mit:
Is oder Is -I oder Is lusr/kurs
26
Hinweise zum besseren Verstandnis
2.1
So wie Sie eine Sprache nur durch Sprechen erlernen, so ist es notwendig, auch
an einem UNIX-Rechner zu arbeiten, um mit UNIX umgehen zu kennen. Versuchen Sie deshalb, die Beispiele an einem UNIX-Rechner nachzuvollziehen. Hierbei sind rechnerbedingt Abweichungen meglich. Samtliche in diesem Buch aufgefUhrten Beispiele und Obungen wurden ursprunglich auf einem CADMUSRechnersystem (MUNIX System V) der Firma PCS getestet. Fur die weiteren
Auflagen wurden die Obungen u.a. auf Rechnern von IBM mit AIX, auf DECWorkstation mit Ultrix und Digital UNIX, auf Rechner von HP mit HP-UX und auf
verschiedenen Workstations von Sun mit Solaris getestet.
Beispiele von Dialogen mit dem Rechner erkennen Sie an einem symbolisierten
Bildschirm. Die Eingabe des Benutzers ist durch Fettdruck hervorgehoben,
Nachrichten (Ausgaben) des Rechners werden kursiv dargestellt und ErUiuterungen (meist auBerhalb des Bildschirms oder in weiBen Kastchen hervorgehoben) sind in - Normalschrift - gesetzt. Hierzu ein Beispiel:
$
/
r
Is
Fet1druck - Eingabe am Bildschirm
-I
~drwxrwxr-x
Kursivschrift
Nachricht
./"
vomSystem
drw-rw-r--rw-rw-r--
$
2 monika
1 monika
1 monika
32 Feb 7
117 Feb 7
12489 Feb 7
~
befehle
projektA
ueb1
Datum der
letzten Anderung
I
I
Erlauterung in
Normalschritt
Bild 2-2 Beispiel eines Dialoges mit dem Rechner
Die unterschiedlichen Schriftarten dienen dabei nur der Verdeutlichung zwischen der Eingabe des Benutzers und Ausgabe des Rechners. Bei der wirklichen Eingabe des Kommandos ,Is -Ie erscheinen dabei Eingabe und Ausgabe
auf dem Bildschirm in der gleichen Schriftart. 1m fortlaufenden Text sind Kommandos und Dateinamen in Kursiv-Schrift dargestellt.
I>
Auf besondere Hinweise macht Sie dieses Symbol aufmerksam.
27
2
Konventionen und Begriffe zu diesem Buch
2.2 Eingabe an der Tastatur
Wenn Sie mit einem UNIX-Rechner arbeiten, geben Sie an einem Terminal (Dialogstation) Ober die Tastatur die Befehle (Kommandos) ein. Am Bildschirm erhalten Sie dann eine Ausgabe vom Rechner als Ergebnis. Es gibt eine ganze Reihe
von unterschiedlichen Terminals. Abgesehen von Farbe und GroBe des Bildschirms sind auch die Tastaturen unterschiedlich ausgelegt und mit unterschiedlichen Zeichensatzen versehen.
So gibt es Zeichensatze, die mit ,United States<, ,United Kingdom<, >Spanish<,
>French< oder >German< benannt werden. Sie entsprechen den jeweiligen Normen der in diesen Landern verwendeten Schreibmaschinen.
Sollten Sie im Zehnfingersystem auf einer deutschen Schreibmaschine geObt
sein und Ihr Terminal hat, wie die meisten Terminals, die Anordnung fOr den United States Zeichensatz, so werden Sie sich oft bei Wortern mit z oder y vertippen. Diese beiden Tasten sind gegenOber einer Tastatur mit deutschem Zeichensatz vertauscht. Doch auch Sie werden sich schnell umgewohnen und
genauso flieBend an Ihrem Terminal schreiben, wie bisher auf der Schreibmaschine. Vielleicht sogar noch besser, da Sie jederzeit Geschriebenes leicht und
ohne Radiergummi oder >Tipp Ex< korrigieren konnen. HierfOr gibt es eine
Loschtaste. Aber auch ganze Zeilen konnen sie fOr ungOltig erklaren. DafOr werden oft Kombinationen von zwei Tasten verwendet, wie z.B. eine mit >Control<
(CTRL) bzw. auf der deutschen Tastatur mit >Steuerung< (STRG) bezeichnete
Taste und der Buchstabe X.
Sie haben an Ihrem Terminal ebenso eine Umschalttaste fOr GroB- und Kleinschreibung wie an einer Schreibmaschine, eine Tabulatortaste, einen WagenrOcklauf (Return oder CR - Carriage Return) und/oder eine Taste fOr eine neue
Zeile (NL - New Line), die oft auch als Enter-Taste bezeichnet wird. AuBerdem
gibt es an den meisten Terminals sogenannte Cursortasten. Der Cursor ist
meist ein blinkendes, kleines Rechteck, das Ihnen auf dem Bildschirm die Position anzeigt, an der Text geschrieben wird. Mit den Cursortasten konnen Sie mit
dem Cursor nach oben, unten, rechts oder links wandern. Diese Tasten benotigen Sie meist bei bildschirmorientierten Editoren. Bei diesen Editoren nOtzen Sie
den Bildschirm wie ein Blatt Papier, das an jeder beliebigen Stelle beschrieben
werden kann.
Ein Rechnersystem braucht noch einige zusatzliche Funktionen: Um Z. B. ein
bereits gestartetes Programm abzubrechen (canceln), um Nachrichten vom
System, den Text, am Bildschirm anzuhalten und wieder weiterlaufen zu lassen
(Noscroll und Scroll) und um mitzuteilen, daB eine Eingabe beendet ist (Endezeichen).
28
Eingabe an der Tastatur
2.2
Das nachfolgende Bild gibt eine m6gliche Belegung einer englischen/amerikanischen Tastatur wieder. Auch die einzelnen Funktionen an einem Terminal k6nnen unterschiedlich bei verschiedenen Rechnerherstellern und der jeweiligen
UNIX-Konfigurierung sein.
BACKSPACE
DELETE
RETURN
Bild 2-3 Beispiel einer englischen/amerikanischen Tastatur
Mit der RETURN-Taste (Wagenrucklauf-Taste) wird eine Eingabezeile abgeschlossen und an den Rechner weitergeleitet. In den Obungs-Beispielen wird
die Betatigung dieser Taste in der Regel nicht angezeigt, da normalerweise jede
Eingabe am Bildschirm mit der Returntaste abgeschlossen wird. Haben Sie die
Returntaste noch nicht gedruckt, kann innerhalb der eingegebenen Zeile, die am
Bildschirm angezeigt wird, noch korrigiert werden.
Werden bestimmte Funktionen das erste Mal erklart, so werden die Tasten grafisch dargestellt, wie z.B.:
1m obigen Beispiel werden diese Tasten gemeinsam gedruckt. 1m Text wird eine
solche Kombination von Tasten in spitze Klammern gesetzt. Die Funktion fOr das
Endezeichen wird mit <CTRL + d> beschrieben.
Mit der Funktion Losche Zeichen (z.B. die BACKSPACE- oder DELETE-Taste)
kann dann zeichenweise nach links korrigiert werden, oder mit der Funktion Losche Zeile (z. B. durch <CTRL + d> oder <CTRL + X> je nach System) die gesamte Zeile annulliert werden. Die SCROLL- und NOSCROLL-Taste sind haufig
identisch und wirken dann wie ein Schalter. Einige der wesentlichen Funktionen
sind in der folgenden Tabelle aufgefOhrt:
29
2
Konventionen und Begriffe zu diesem Buch
Taste (bzw. Kombination von Tasten):
Funktion:
Ende der Zeile
StandardUNIX
Berkeley
UNIX
RETURN
RETURN
CADMUS-
Losche Zelchen
II
Losche Zelle
@
CTRL+x
DELErE
CTRL+c
CTRL+d
CTRL+ z
Unterbnechung(canceQ
Bines laufenden Programms
DateiendelEnde der Eingabe
(EOF - end of file)
Ausgabe anhalten
Ausgabe fortsetzen
(stop)
(quilt)
IhrSystem:
BACKSPACE BACKSPACE
CTRL+s
CTRL+s
CTRL+s
(NOSCROLL) (NOSCROLL) (NOSCROLL)
CTRL+q
(SCROLL)
CTRL+q
(SCROLL)
CTRL+q
(SCROLL)
BUd 2-4 Be/egung der Funktionstasten
Wenn die CTRL-Taste gleichzeitig mit den angegebenen Buchstaben gedrOckt
werden soli, bedeutet dies, die CTRL-Taste drOcken und so lange gedrOckt lassen bis der zweite Buchstabe eingegeben wurde. Dann erst beide Tasten loslassen. Das gleichzeitige DrOcken der Tasten ist mit dem Pluszeichen + dargestellt.
Am besten stellen Sie fest, welche Tasten an Ihrem Terminal fOr die oben genannten Funktionen belegt sind und tragen sie in die dafOr vorgesehene Rubrik
im obigem Bild ein.
UNIX gibt es auf einigen System en bereits in deutscher Sprache. In diesem
Buch soli naturlich allen die bestmogliche Hilfe geboten werden, deshalb habe
ich bewuBt bei den Beispielen die englische (bisher noch am meisten verbreitete
Anwendung) zugrundegelegt und dann deutsch erlautert.
Schauen Sie sich Ihr System einmal an - doch wie? Wie Sie einen Rechner starten oder besser, starten lassen, erfahren Sie im Kapitel 3.1. Hier wird auch gezeigt, wie Sie, falls Sie mit einer grafischen Oberflache arbeiten, mit der Maus
umgehen und sich auf dem 'gedachten Schreibtisch< zurechtfinden.
Viel SpaB bei Ihren ersten Schritten unter UNIX!
30
3 UNIX - praktisch angewandt
In diesem Kapitel erfahren Sie, wie Sie einen UNIX-Rechner
starten und welche Voraussetzungen erfOIlt sein mOssen, um
mit dem Rechner zu arbeiten. Sie lemen, ihm Anweisungen zu
erteilen, und lemen, welche Arbeiten Sie ihm Obertragen kennen.
Das Ziel ist es, daB Sie UNIX sinnvoll nutzen kennen, daB Sie
sich Zeit und Arger sparen und daB Sie sogar Freude und
SpaB an Ihrem UNIX-System haben.
Die Haupt-Themen:
3.1
Auf los geht's los ...
3.2
Es >shellt,
eine EinfOhrung in die Shell, als Benutzerschnittstelle
3.3
Editoren unter UNIX
3.4
Kommandos zur Dateierstellung und Dateipflege
3.5
Sicher ist sicher!
Sicherung von Dateien und Dateibaumen
3.6
Das Wesentliche uber Netze
3.7
Nun >shellt, es intensiver - Shellprozeduren
3.8
Nutzliche Erweiterungen der Korn-Shell
3.9
Unterschiede zur C-Shell
3.10
Noch ein paar hilfreiche Kommandos
31
C. Wolfinger, Keine Angst vor UNIX
© Springer-Verlag Berlin Heidelberg 2000
3.1 Auf los geht's los ...
Wagen Sie Ihre ersten Schritte! Schon nach diesem Unterkapitel werden Sie erfahren, wie schnell und leicht Sie mit UNIX
arbeiten konnen.
Die einzelnen Themen:
3.1.1
Wie wird ein UNIX-Rechner gestartet?
3.1.2
Wie melden Sie sich an einem UNIX-System an?
3.1.3
Wie arbeiten Sie mit einer grafischen Oberflache
3.1.4
Wer kann unter UNIX arbeiten?
3.1.5
Anmeldung und Eintrag des PaBwortes
3.1.6
Andern des PaBwortes
3.1.7
Abmelden vom System
3.1.8
Informationen zum Dateisystem
Datumsanzeige
Lesen des Online-Manuals
Anzeige eines Datei-lnhaltes
Slattern im Inhalt einer Datei
Wer arbeitet am System?
Anzeige des Terminalnamens
Senden von Nachrichten an angemeldete Senutzer
Senden von ,UNIX-Post, an Senutzer
3.1.9
Einige nOtzliche Kommandos
3.1.10 Ausschalten eines UNIX-Rechners
3.1.11 Zusammenfassung der ersten Kommandos
32
3.1.1
Auf los geht's los ...
~-~~--~-
3.1.1 Wie wird ein UNIX-Rechner gestartet?
Nun, wie starten Sie ein Auto? Sie vergewissern sich, ob alles startklar ist, drehen den SchlOssel herum und fahren los. Bei einem Rechner ist dies sehr ahnlich. Statt Gas zu geben, versorgen Sie ihn mit Strom. Einige Rechner werden
statt mit einem SchlOssel mit einer INIT-Taste gestartet (/nit von initialisieren).
Wer darf einen Rechner starten? Eigentlich so lite nur der Systemverantwortliche, der Systemverwalter, auch Superuser genannt, den Rechner in Gang setzen. Autofahren darf ja auch nur derjenige, der auch einen FOhrerschein besitzt.
Deshalb sollten Sie zu Beginn den Rechner starten lassen. Was geschieht beim
Starten, beim Hochfahren eines Rechners? Ober ein sogenanntes BootstrapProgramm (dies ist ein im Rechner festge/adenes Programm) werden am Bildschirm Fragen ausgegeben und Ihre Anworten, die Sie Ober die Tastatur eingeben, gelesen. HierfOr ist meistens ein bestimmtes Terminal auserwahlt, die sog.
Systemkonsole. Dieses Terminal sollte deshalb bereits vor dem Rechner eingeschaltet werden.
Falls der Rechner nicht automatisch durch einen Knopfdruck oder Drehen eines
SchlOssels gestartet wird, muB der Systemverwalter einen Boot-Befehl, meist
boot, an der Systemkonsole eingeben.
Ober entsprechend andere Boot-Befehle kann entschieden werden, ob der
Rechner in den Multi-User-Modus oder in den Single-User-Modus gefahren
werden soil.
Was heiBt Multi-User-Modus? Mehrere Benutzer konnen an einem System arbeiten, d.h. an den Rechner sind mehrere Terminals angeschlossen, an denen
jeweils ein Benutzer arbeiten kann. Unter UNIX kann jeder dieser Benutzer wiederum gleichzeitig mehrere Programme starten, also Aufgaben dem Rechner
Obertragen.
Sing/e-User-Modus bedeutet Ein-Benutzer-Betrieb. Entscheiden Sie sich fOr
den Single-User-Modus, nimmt UNIX an, daB nur der Systemverwalter bestimmte Arbeiten am Rechner durchfOhren mochte. Bei den meisten Rechnern
wird dann zunachst nur ein bestimmter Bereich von Dateien zur VerfOgung gestellt (z. B. nur das root-Dateisystem).
Bei einigen Systemen werden beim Hochfahren des Systems entsprechende
Fragen gestellt, die im Normalfall dann mit y (fOr yes) beantwortet werden.
Hierzu gehoren z. B.:
Soli in den Multi-User-Modus gefahren werden?
1st das Datum korrekt? Das Datum wird zunachst von einer rechnerinternen
Uhr ausgegeben. Achten Sie darauf, daB dieses Datum richtig gesetzt ist, denn
unter UNIX wird sorgtaltig buchgefOhrt, wann Z. B. eine Datei angelegt, verandert
oder nur angesprochen wurde. Sie lernen spater, daB man auch im laufenden
Betrieb das Datum jederzeit mit date abrufen kann.
33
3
UNIX - praktisch angewandt
Warum ist das so wichtig? Nun, bei einer Reihe von Programmen konnen Sie auf
dieses Datum hin abfragen und abhangig davon weitere Programme starten. Sie
sichern z. B. Ihre Dateien, indem Sie diese auf ein Magnetband kopieren. Wenn
Sie zu einem spateren Zeitpunkt von diesem Magnetband die Dateien auf die
Platte zurOckkopieren wollen, konnen Sie angeben, daB nur Dateien kopiert werden sollen, die nicht zwischenzeitlich verandert wurden, d.h., auf der Platte weisen diese Dateien ein neueres Datum auf, als auf dem Magnetband.
Stimmen das Datum oder die Uhrzeit nicht, so kann es nur der Systemverwalter
andern.
1m Normalfall wird der Rechner in den Multi-User-Modus hochgefahren. UNIX
startet dann einen InitialisierungsprozeB, der den Rechner so vorbereitet, daB
mehrere Benutzer gleichzeitig mit ihm arbeiten konnen.
Dieser ProzeB stellt u.a. fest, wieviele Terminals am Rechner angeschlossen
sind, und auf jedem der eingeschalteten Bildschirme erscheint eine Nachricht,
die so au sse hen konnte (von Rechner und Installation abhangig):
Welcome to UNIX
Bild 3 -1: Beispiel einer Nachricht des Systems nach dem Hochfahren
in den Multi-User-Modus
Diese Art von Anmeldung ist auf den meisten grafischen Benutzeroberflachen
ahnlich, wie z. B. beim COE (Common Desktop Environment) oder xdm (DEC),
mwm (IBM), openwin (sun) und HP VUE (HP) bzw. KOE bei LlNUX.
1st keine grafische Oberflache installiert, wird nur eine einfache Login-Meldung
ausgegeben z.B.:
LOGIN
Bitte melden Sie sich an:
34
Auf los geht's los ...
3.1.2
Egal, ob Sie sich uber eine grafische Benutzeroberflache oder uber eine sog.
ASCII-Eingabe anmelden, der Rechner muB Sie kennen. Wie erfahrt er Ihren Namen, und wer darf unter UNIX arbeiten? 1m nachsten Abschnitt erfahren Sie
dazu mehr.
3.1.2 Wie melden Sie sich an einem UNIX-System an?
Um sich anmelden zu k6nnen, ben6tigen Sie ein Terminal, d.h. eine Tastatur
und einen Bildschirm. Dieses Eingabegerat kann direkt oder uber Netz mit
dem Rechner verbunden sein. Hierbei k6nnen ASCII-Terminals (nur Zeichen,
keine Grafik) oder komfortable Grafik-Terminals oder sog. X-Terminals angeschlossen sein, ja sogar PCs, die mit einer entsprechenden Software ein X-Terminal simulieren. X-Terminals haben einen eigenen Prozessor, der die Bildaufbereitung basierend auf X-Window' steuert, also Teilaufgaben selbstandig
durchfUhrt, ein kleiner Rechner fUr sich. Das X-Terminal wird deshalb auch ahnlich wie ein eigener Rechner im Netz verwaltet. Deshalb muB, bevor Sie sich auf
einem X-Terminal an einem UNIX-Rechner anmelden, zuerst die Verbindung zu
diesem Rechner hergestellt sein. Dies erfolgt meist uber ein zusatzliches Auswahlmenu, das Ihnen die m6glichen Rechnerverbindungen anzeigt.
Direkt angeschlossen:
Ober Netz verbunden
X-Terminal oder PC
. - - - - - - - !.
0
ASCIITerminal ~~~m~rJI
Grafik-Terminal
wahlweise mit
UNIX-Work-
GrafikTerminal
-
0
1r--------1
BUd 3-2: M6gliche Terminalverbindungen
Arbeiten Sie ein an einem Terminal, das uber Netz angeschlossen ist, lassen Sie
sich am besten von Ihrem Systemverwalter zeigen, wie Sie die Verbindung zu einem UNIX-Rechner herstellen k6nnen. Meist wird vorab nach dem Namen des
betreffenden UNIX-Rechners gefragt. Die Verbindung zu einem bestimmten
UNIX-Rechner k6nnte auch automatisch erfolgen.
•
grafische Benutzeroberflache, die am MIT, Massachusetts Institute of Technology, entwickelt
wurde (siehe auch Seite 19)
35
3
UNIX - praktisch angewandt
Auf den meisten UNIX-Rechnern ist heute eine grafische Oberflache (basierend
auf X-Window mit OSF/Motif) installiert und wird beim Anmelden jedem Benutzer automatisch bereitgestellt.
Deshalb ganz kurz das Wichtigste Ober grafische Oberflachen unter UNIX, damit
Sie sich an jedem UNIX-Rechner zurechtfinden. Mehr Informationen Ober die
grafische Oberflache finden Sie im Kapitel 4 CDE (Common Desktop Environment).
3.1.3 Wie arbeiten Sie mit einer grafischen Oberflache
Wenn Sie MS-Windows vom PC her kennen, wird es Ihnen sic her leicht fallen,
auch unter UNIX mit X-Window/Motif bzw. dem CDE zu arbeiten. Aber auch aile
anderen werden sich bestimmt schnell daran gewehnen, mit Maus und Fenstern
zu arbeiten. Hier eine kurze EinfOhrung:
Was kennzeichnet eine grafische Oberflache?
~
"
Eine Maus, real auf Ihrem Schreibtisch
dI
Die Arbeitsflache (Workspace, Desktop) - eine
gedachte Schreibtischumgebung auf Ihrem
Bildschirm
Verschiedene Fenster (windows),
Pull-Down-Menus, (herunterklappbare MenOs)
..
Schaltflachen und Scroll-Balken (Rollbalken)
--.
und sog. Icons (kleine Bildchen - erlauben Sie mir, daB
ich den englischen Ausdruck beibehalte, denn Ikone ist
eben das Heiligenbild der Ostkirche)
Eine Reihe neuer Begriffe. Die Bedeutung und was hierbei zu beachten ist, laBt
sich schnell erlernen. Denn, das ist das Gute an einer grafischen Oberflache, es
wird Ihnen grafisch und in MenOs gezeigt, was Sie tun kennen. Sie mOssen also
nichts auswendig lernen! Wichtig ist nur, daB Sie Ruhe bewahren, die Mausta-
36
*
OSF/Motif wurde von OSF, Open Software Foundation entwickelt (siehe auch Seite 19)
Auf los geht's los .•.
----------------------------------------
3.1.3
sten nicht zu schnelilosiassen, sondern erst mal schauen, was z. B. bei den sog.
Pull-Down-Menus angeboten wird.
Nun zu den einzelnen Begriffen:
Die Maus (Hier kommt die Maus ... ). Sie hat unter UNIX drei Tasten. Die einzelnen Benutzeroberflachen der verschiedenen UNIX-Anbieter hatten bisher hier
leider nicht immer gleiche Bedeutungen. 1m CDE gilt einheitlich:
....1--- -- - RachIs·
...11+- - ---- Mitte '--_ _ _ _ __
Unks -
Programm-Menu
Sonderfunktion (z.B. zuletzt markierten
Texl an aktueller Textposlion einfUgen)
Zeigefinger - Markieren, Auswahlen. Positionieren
Bild 3-3: Maus-Funktionen
Wenn Sie die Maus bewegen, sehen Sie auf dem Bildschirm, wie sich ein kleines
Symbol bewegt, der Maus-Cursor. Am Anfang ist es sicher ungewohnt, mit einer Hand die Maus zu bedienen und auf dem Bildschirm ein Objekt damit auszuwahlen. Oben Sie einfach ein biBchen. Sie werden feststellen, daB sich die
Form des Maus-Cursors, meist ein kleiner Pfeil, verandert, je nach dem wo er
sich befindet. So bedeuten:
Normale Anzeige des Cursors (Das Symbol kann
durch Voreinstellung verandert werden)
I ~ , "'I,
Jeweils am Rand eines Fensters verandert sich
der Cursor in eines dieser Symbole und zeigt an,
daB an dieser Stelle das Fenster mit gedruckter
linker Taste nach links, rechts, oben oder nach
unten vergroBert oder verkleinert werden kann.
Jeweils an den Ecken eines Fensters zeigt dieses
Symbol an, daB mit gedruckter linker Taste das
Fenster jeweils diagonal verkleinert oder vergroBert werden kann
Jeweils am auBersten Rand eines Fensters oder
in der sog. Titelzeile konnen Sie mit diesem Symbol ein Fenster verschieben.
In vielen Anwendungsprogrammen verwandelt sich der Maus-Cursor, sobald
Man nennt
Sie sich im Bereich von Texteingabe befinden, in einen Strich
dieses Symbol Text-Cursor.
I.
37
3
UNIX - praktisch angewandt
Die Arbeitsflache oder Schreibtischumgebung. Die Arbeitsflache ist Ihr
Bildschirm, auf dem sich verschiedene Objekte befinden kannen; Objekte wie
Ordner, Notizblatter oder ein symbolisierter Bildschirm (Terminal). Man spricht
deshalb auch von einer Schreibtischumgebung. Wenn nichts anderes voreingestellt wurde, wird der Schreibtisch so dargestellt, wie Sie ihn beim Abmelden am
Rechner verlassen haben (fast wie im richtigen Leben). Das nachfolgende Beispiel zeigt z. B. meinen Arbeitsbereich unter CDE. Zuletzt hatte ich mit den Programmen FrameMaker und Applixware an diesem Buch gearbeitet.
...
"/(
-
... -
ApplilrUllr@Sun
I~~~s,l,
~
BiidschirmfTerminal
fOr UNIX-Befehle
l'~flltU41
~"d... §<lIt
2Pd""
t'IObb1t(tI!a"r2. 1"
. ~~-~----~ --~~~~-
i'YF
Bild 3-4: Beispiel einer Schreibtischumgebung unter CDE
Wenn Sie sich das erste Mal anmelden, erscheint auf jeden Fall die Desktop-Anzeige (das front pane~, und je nach Voreinstellung bei der Konfigurierung des
Rechners/des CDEs wird evtl. gleich der Dateimanager und ein Terminal mit geaffnet.
38
Auf los geht's los •..
3.1.3
Verschiedene Fenster (Windows). Unter X-Window/Motif bzw. dem CDE k6nnen Sie mehrere Arbeiten gleichzeitig in unterschiedlichen Fenstern erledigen.
Hier wird als Fenster (Window) z.B. das symbolisierte Terminal bezeichnet. Auf
Ihrer Bildschirmschirmoberflache k6nnen Sie z. B. vier Bildschirm-Fenster erstellen und in jedem dieser Bildschirme eine andere Aufgabe starten, z. B.
im 1. Fenster:
Ihre Dateien sichern
im 2. Fenster:
Text eingeben Dber ein entsprechendes Programm
im 3. Fenster:
Sich die Manual-Seite eines bestimmten Kommandos
ansehen
im 4. Fenster:
Einige UNIX-Kommandos eingeben
Aile Prozesse laufen dann parallel und Sie k6nnen jeweils in dem einen oder anderen Fenster weiterarbeiten.
Die einzelnen Fenster (Bildschirme oder andere Objekte) k6nnen Sie verschieben, vergr6Bern oder verkleinern, wie wir es eben beim Arbeiten mit der Maus
gesehen haben. Fenster/Objekte k6nnen sich hierbei Dberlappen oder ganz
Dberdecken.
Um in einem Fenster zu arbeiten, wahlen Sie dies mit der Maus an und drDcken
kurz die linke Maustaste. Der Rahmen von dem aktuellen Fenster/dem Objekt
wird meist in einer kraftigeren Farbe deutlich hervorgehoben und kennzeichnet
somit das aktuelle Fenster. Durch Voreinstellung kann allerdings auch eingestellt werden, daB, sobald die Maus ein Objekt berDhrt, dieses zum aktuellen
Fenster wird. Unter CDE k6nnen Sie die Farbzusammenstellungen selbst definieren. Naheres dazu im Kapitel 4 CDE.
Alternativ k6nnen Sie, um jeweils das nachste Fenster zu aktivieren, die Tastenkombination
drDcken.
[> Achten Sie darauf, daB Sie nicht versehentlich ein anderes Fenster aktiviert
haben, z. B. daB die Maus verschoben wurde. Dann k6nnte passieren, daB
Ihr Text pl6tzlich in einem anderen Dokument oder in einem anderem MenD
eingesetzt wird und zu Fehlern fDhrt.
39
3
UNIX - praktisch angewandt
Ein neues Terminal erhalten Sie unter dem CDE, wenn Sie in der Desktop-Anzeige (front panelj das entsprechende Menu auswahlen und das Terminal-Symbol kurz mit der linken Maustaste anklicken:
~~!>Ell!!q ~ Herausklappbare
Bedientafel
dann das Symbol fur das Terminal
Zuerst den Pfeil
anklicken ,
Desktop-Anzeige
...
Bild 3-5: Neues Terminal-Fenster unter CDE
Unter den verschiedenen Grafikoberflachen werden neue Fenster meist uber ein
Pull-Down-Menu aufgerufen. Hierzu wird auf dem freiem Arbeitsbereich
(Workspace) die rechte Maustaste gedruckt. Oft sind Untermenus anzuwahlen,
unter denen dann das gewunschte Programm zu finden ist. Ais Beispiel sei hier
Openwin von Sun angefiihrt:
File Manager
MaiITool ...
Calendar Manager
- - - ' 1 Clock
Calculator
Print Tool ...
Snapshot ...
Tape Tool ...
Binder ...
Icon Editor .. .
Shell Tool .. .
Tutorial ...
Demos ...
Properties
Exit ...
'---
Nachdem das Menu mit der rechten Maustaste
eingeblendet wurde, bewegen Sie die Maus auf
Programs, gehen dem Pfeil nach und ein Untermenu offnet sich. Bewegen Sie den Mauscursor
auf das gewunschte Programm, fUr ein neues Terminal Command Tool, klicken nochmals die rechte
Maustaste.
Schneller konnen Sie auswiihlen, wenn Sie die
rechte Maustaste gedrOckt lassen. Die von Ihnen
angesteuerten Programme werden dann mit einem
Balken markiert. Sobald Sie die rechte Taste loslassen, wird das markierte Programm gestartet.
Bild 3-6: Beispiel Pull-Down-MenD
Die Bedienung von Pull-Down-Menus, manchmal auch Pop-up-Menus genannt, ist uberall gleich. Die Inhalte der einzelnen Menus der Benutzeroberflachen sind jedoch unterschiedlich. Manche bieten eine Menuzeile am oberen
Rand des Arbeitsbereiches an. Sie bewegen dann den Mauscursor auf die Menuzeile und wahlen dort den entsprechenden Menupunkt aus. Manchmal mussen Sie allerdings die linke statt der rechten Taste drucken, um die Untermenus
zu bekommen.
40
Auf los geht's los •..
------------------------------------------
3.1.3
[> Sehen Sie sich ruhig die Menus an. Achten Sie jedoch darauf, daB Sie, wenn
Sie kein Programm daraus starten wollen, die Maus einfach aus dem Bereich
des Menus ziehen.
Kopieren und Loschen innerhalb verschiedener Fenster mit CDE. Innerhalb
der einzelnen Fenster konnen Sie z.B. Textbereiche mit der Maus markieren,
d. h., Sie gehen mit dem Mauscursor vor den ersten Buchstaben, drucken die
linke Taste und lassen Sie gedruckt und ziehen dabei Ober die gewunschte Flache. Hierbei wird der Text schwarz unterlegt und erscheint in welBer Schnft
Lassen Sie linke Taste los und drucken Sie nun die rechte Maustaste. Es erscheint ein Pull-Down-Menu. In diesem Menu wird Ihnen u.a. angeboten zu 10schen oder zu kopieren (cut oder copy). So kopierten oder geloschten Text konnen Sie in ein anderes Fenster (z.B. in ein Text-Dokument) ubertragen. Um den
Text dort einzusetzen, rufen Sie wieder das Menu auf (rechte Maustaste) und
wahlen dann Einsetzen (bzw. paste). Unter CDE gibt es hierfur auch noch eine
schnellere Methode. Sie markieren den Text wie beschrieben, gehen an die gewunschte Stelle im gleichen oder in einem anderen Fenster und drucken nur die
mittlere Maustaste. Damit wird der zuletzt markierte Text an der Cursorposition
eingesetzt.
Unter dem CDE sind die Funktionen der Pull-Down-Menu bei allen Rechnern
gleich. Die Menus werden angezeigt, wenn Sie die rechte Maustaste drOcken
oder Schaltflachen mit der linken Taste anklicken (im Bild links oben):
Mit der linken Maustaste anklicken, urn das Fenster an die gesamte
BildschirmgroBe anzupassen
. -------------------------- oder um das Fenster zu ikonisieren
Scha'tflache---ilii~iii~~~~I~§~~~~~§z~ji1
fiir Menu:
Restore
Move
Size
Minimize
Maximize
Lower
Close
Rahmen, .....
um das Fenster
zu verg roBernl
verkleinern
Rollbalken,
um vor- und
riickwarts zu
blattem (scrollen)
Tltelzeile, mit Hinweis, um welches Objekt es sich handelt.
Mit der Maus kann hier angeklickt werden, um das Fenster
zu verschieben und/oder in den Vordergrund zu stellen
Bild 3-7: Wesentliche Funktionen eines Fensters
Damit Sie nicht die Obersicht verlieren, sollten nicht zu viele Fenster geoffnet
sein. Anwenderprogramme, wie Z. B. FrameMaker oder Applix benotigen fOr Ihre
Dialogboxen und Menus auch noch erheblichen Platz - so daB ziemlich schnell
ein Chaos auf Ihrer Arbeitsflache herrschen konnte und Sie, wie auf einem rich-
41
3
UNIX - praktisch angewandt
tigen Schreibtisch, alles hin und herschieben mussen um ein bestimmtes DokumentiObjekt wieder zu finden.
Um dies zu vermeiden, konnen Sie geoffnete Objekte uber die Schaltflache mit
dem kleinen Punkt . (an der rechten oberen Ecke) als kleines Icon (icon) an
den Rand Ihres Bildschirms legen. Um ein Fenster, das zu einem Icon verkleinert
wurde, wieder in voller GroBe zu erhalten, klicken Sie kurz zweimal hintereinander (mit sog. Doppelklick) auf das Icon. Sie konnen auch mit der Maus auf das
Icon gehen, drucken die rechte Maustaste und erhalten ein Menu, unter dem Sie
Maximize (volle GroBe) auswahlen (siehe weiter unten bei Fenster schlieBen).
Mit der Schaltflache neben dem Ikonisierungs-Punkt
die volle BiidschirmgroBe angepaBt.
werden Fenster auf
Beinhaltet ein Fenster mehr als eine Seite Inhalt, konnen Sie mit dem RoUbalken zuruck und wieder vorwarts blattern (scrollen). Beim Terminal kann voreingestellt werden, wieviel Zeilen der Eingabe gespeichert werden, um sie
uber den Scroll-Mechanism us nochmals anzusehen. Mit den Pfeilen konnen
Sie zeilenweise blattern. Lassen Sie die Maustaste auf dem Pfeil gedruckt,
wandert der Text automatisch je nach Pfeil vorwarts oder ruckwarts. Mit dem
Schiebebalken konnen Sie ganze Bereiche schnell verschieben.
I:-I
=-.
---
Urn eln Fenster zu schlle8en, wilhlen Sle dIe SchaJtfI'che auf der linken oberen Ecke. Es wird ein Menu angezeigt, in dem Sie das Pro..
'gramm Close (schlieBen) anwahlen. Uber
dieses Menu konnen Sie
ebenfalls das Fenster ikonisieren mit Minimize bzw. auf die gesamte
Bildschirmflache vergroBern mit Maximixe.
Unter dem CDE werden Sie kennenlernen, daB Sie sogar auf verschiedenen
Ebenen arbeiten konnen - sozusagen, sich fOr jede Arbeit an einen eigenen
Schreibtisch setzen konnen - doch wie schon erwahnt, davon spater.
If1l
~
Wenn Sie zwischendrin Hilfe benotigen, drucken Sie einfach die Taste,
die Ihnen fOr die aktuelle Situation Oe nachdem wo Sie mit der Maus
stehen) Hilfe-Menus anbietet. Mehr uber Hilfe im Kapitel 4.
In diesem Buch lernen Sie erstmal UNIX pur. Erst am Ende des Buches erfahren
Sie mehr uber angenehme Vereinfachungen mit dem CDE, u.a. uber den Dateimanager (file managef), wie Sie Ihre Arbeitsumgebung anpassen und wie Sie gezielt Informationen abrufen konnen. Aber vielleicht gehoren Sie dann schon zu
den Insidern, die nach wie vor lieber Befehle uber die Tastatur eingeben, da sie
so schneller ans Ziel kommen. Wir arbeiten vorerst mit dem meist gebrauchten
Tool unter der grafischen Oberflache, dem Bildschirm bzw. dem Terminal.
Bevor Sie nun alles selbst ausprobieren konnen, noch ein paar Information zum
PaBwort, ohne das Sie nicht ins System kommen.
42
Auf los geht's los ...
3.1.4
3.1.4 Wer kann unter UNIX arbeiten?
Unter UNIX gibt es (in der Regel einen) Systemverwalter oder Superuser und
(normale) Benutzer. Es herrscht eine strenge Ordnung. Es kann niemand am System arbeiten, der nicht gemeldet ist. Sie mOssen also zu einer Art Einwohnermeldestelle gehen, um eine Namenskennung und eine Arbeitserlaubnis zu erhalten. Diese Aufgaben obliegen dem Systemverwalter.
Der Systemverwalter selbst ist ebenfalls registriert. Er wird unter der intemen
Kennummer ,0< gefOhrt und tragt den Namen root (von Wurzel). Mit dem Namen
root meldet sich der Systemverwalter am System an. Er hat ubergeordnete
Rechte. Nur er kann weitere Benutzer eintragen. Der Eintrag erfolgt normalerweise in der Datei /etc/passwd.
In dieser Datei werden aile Benutzer des Systems eingetragen. FOr jeden Benutzer ist eine Zeile angelegt, in der getrennt durch Doppelpunkte folgende Informationen vorgesehen sind:
o
der Name des Benutzers,
o
ein verschlOsseltes PaBwort (Geheimwort, Code), das allerdings nur Ober
ein spezielles Programm eingetragen und verandert werden kann,
o
o
o
eine Kenn-Nummer (fortlaufende Numerierung),
eine Gruppennummer,
ein Kommentarfeld, in dem der vollstandige Name des Benutzers, seine
Adresse, Telefonnummer u.a. vermerkt werden konnte,
Odie Angabe, unter welchem Zweig er im Dateisystem arbeitet, wo er zu Hause
ist (dieses Directory wird als sein Home-Directory bezeichnet),
o
Angabe des Programms, das nach dem Anmelden gestartet wird.
Werden die Benutzer netzweit gefOhrt und/oder sind zusatzliche SicherheitsmaBnahmen eingerichtet, so sind die Benutzerkennungen meist nur auf einem
zentralen Rechner.
Das PaBwort wird beim ersten Anmelden yom System angefordert. Der Benutzer oder der Systemverwalter konnen es danach nur mit dem Kommando
passwd andem. Sollten Sie also Ihr PaBwort vergessen, kann nur der Systemverwalter Ihnen ein neues zuordnen, bzw. Ihr PaBwort aus der Datei letc/passwd
loschen. Erst danach konnen Sie ein neues PaBwort eingeben.
43
3
UNIX - praktisch angewandt
Wie konnte so eine Datei, die >Geheimakte der Benutzerc, aussehen?
rootdsVLsXfnLk.sl:0:2::/:
daemon:xxxx:1:1 ::/:
bin:xxxx:2:2::/usrlsrc:
sys:xxxx:3:3::/usrlsys:
adm:xxxx:4:4::/usr/adm:
...
1
>_
)
Eintrag fOr den Systemverwalter (root)
Die ersten etwa 10 Eintrage dOrfen nicht
verll.ndert werden, sie sind fur die Ausfuhrung bestimmter Programme n6tig
monika:: 101 : 100: Monika Schulze,Tel. 242:/usr/kurslmonika:
hans::1 02:1 OO:Hans Mueller, Tel. 440:/usr/kurslhans: Ibinlksh
---
Anga~ eines Programmes, das
sofort nach dem Login ausgefuhrt
werden soli (Hier die Korn-Shell
Ibinlksh). Ohne Angabe wird die
Bourne-Shell (lbin/sh) gestartet
Login-Directory: Zuordnung des Home-Directories
d.h. das Directory, in dem sich der
Benutzer befindet, nach dem er
sich angemeldet hat
Kommentarfeld: z. B. fur Name und Anschrift des Benutzers
Gruppennummer: Benutzer mit gleicher Gruppennummer werden zusatzlich in
der Datei letc/group eingetragen
Benutzernummer: Wird u.a. als Kennung von Dateien verwendet
Platz fur das verschlOsselte PaBwort. Oas Pal3wort selbst darf nur
Ober das Kommando passwd eingesetzl und geandert werden
Login Name: maximalS Zeichen, keine Grol3buchstaben
der Doppelpunkt .:. gilt als Trennungszeichen zwischen den einzelnen Angaben
Bild 3-8: Beispiel der Datei letclpasswd
Gehen wir also davon aus, daB Ihr Systemverwalter Sie als Benutzer eingetragen
und Ihnen ein Directory zugeordnet und eingerichtet hat. Zusatzlich hat er Sie einer bestimmten Gruppe zugewiesen. Was es mit der Gruppenzugehorigkeit auf
sich hat, erfahren Sie unter >Zugriffsrechtec im Kapitel 3.4 (Dateiverwaltung und pflege).
3.1.5 Anmeldung und Eintrag des PaBwortes
Wurde der Rechner in den Multi-User-Modus hochgefahren, erscheint auf allen
angeschlossenen Terminals eine Meldung. Wie Sie sich das erste Mal anmelden,
sehen Sie auf dem nachfolgenden Bildschirmdialog. In unserem Beispiel meldet
sich >Monikac an, die im Rechner als Benutzer >monikac (also mit Kleinbuchstaben) eingetragen wurde.
44
Auf los geht's los ...
3.1.5
Beim allerersten Anmelden haben Sie noch kein
PaBwort und der Rechner weist Sie darauf hin.
LOGIN
Bitte melden Sie sich an: monika
You dont have a password. Please choose one.
Sie haben noch kein PaBwort. Bitte wahlen Sie eins:
Retype password.
Tippen Sie das PaBwort nochmal ein:
Hier tippen Sie ein mindestens sechsstelliges
PaBwort ein, das allerdings am Bildschirm
nicht sichtbar 1st.
Wurde das PaBwort richtig eingegeben, meldet
sich der Rechner nochmals mit:
Zur Sicherheit verlangt
der Rechner eine Wiederholung des PaBwortes.
LOGIN
Bitte melden Sie sich an: monika
Password: 1 Die Eingabe des PaBwortes ist nicht sichtbar
Nun erst k6nnen Sie sich
anmelden.
$
Bereitzeichen der Shell, daB Sie nun Auftrage, Befehle erteilen k6nnen
Bild 3-9: Erstes Anmelden
Unter der grafischen Oberflache wird die erste Eingabe des PaBwortes Ober eine
Dialogbox angefordert. 1m Grunde sind es die gleichen Eingaben, wie oben im
ASCII-Terminal dargestellt, allerdings etwas komfortabler aufbereitet. Sie werden nach dem Elngeben aufgefordert, sich noch einmal anzumelden. Es k6nnte
auch vorkommen, daB der Systemverwalter Ihnen schon von vornherein ein
PaBwort zugewiesen hat, das er Ihnen dann vorgibt. Dieses PaBwort k6nnen Sie
spater andern. Wie erfahren Sie gleich.
Das PaBwort sollte mindestens aus sechs Buchstaben oder einer sechsstelligen Kombination von Buchstaben und Ziffern bestehen. Geben Sie nur Ziffern
oder ein zu kurzes PaBwort ein, beschwert sich der Rechner. Aus SicherheitsgrOnden so lite das PaBwort auch kein Name einer Person (wie z. B. der Freundin,
des Freundes) sein, und wenn man ganz sic her gehen will auch kein Begriff, der
in einem Lexikon steht. Solche PaBw6rter lassen sich mit Programmen leicht
knacken.lm Gegensatz zum Normalbetrieb erfolgt bei der Eingabe des PaBwortes kein Echo aut dem Bildschirm - jemand, der Ihnen Ober die Schulter schaut,
kann somit das PaBwort nicht lesen. Der ganze Ablaut sieht am Bildschirm etwa
wie tol9t aus (Das PaBwort ist hier in Fettschrift als Eingabe dargestellt, wenngleich es auf dem Bildschirm nicht sichtbar ist):
You dont have a password. Please choose one:
Please use a longer password: 160246
abc
1
- - - - 1 Bitte wahlen Sie ein lange-
Please use at least one non numeric character: -
res PaBwort.
Bitte verwenden Sie mlndeslens ein nichl numerisches Zeichen.
Bild 3-10: Beispiel Erste Eingabe des PaBworts
45
3
UNIX - praktisch angewandt
Abhangig vom System und der Rechnerkonfiguration k6nnen an dieser Stelle einige Informationen oder auch dum me Spruche am Bildschirm erscheinen. Zum
Beispiel eine Nachricht des Tages (aus der Datei /etc/motd - eine message of
the day) oder die beruhmtberuchtigten cookies (Kekse) von der University of
California in Berkeley (Ieider sind sie zwischenzeitlich auf den meisten Systemen
verschwunden).
Obrigens, vergessen Sie Ihr PaBwort nicht! Nur der Systemverwalter kann Ihnen dann weiterhelfen. Sie k6nnen natOrlich jederzeit Ihr PaBwort selbst andern:
3.1.6 Andern des PaBwortes
Nun lernen Sie bereits Ihr erstes Kommando:
passwd
password PaBwort (Geheimwort, Geheimcode)
passwd - Kornrnando, urn das PaBwort zu andern
Und wie sieht die Eingabe am Bildschirm aus?
Haben Sie ubrigens schon bemerkt, wann UNIX bereit ist, Kommandos entgegenzunehmen? Erscheint das Bereitzeichen (hier $), so k6nnen Sie das nachste
Kommando eingeben. In unserem Fall ist dies der Befehl passwd. Nun fragt Sie
der Rechner zur Sicherheit nach dem alten PaBwort. Wenn Sie es korrekt eingegeben .haben, werden Sie aufgefordert, das neue PaBwort einzugeben. Damit
Sie sich das neue PaBwort merken und sich auch nicht bei der ersten Eingabe
vertippt haben, mussen Sie es ein zweites Mal eingeben.
$ passwd
old passwd: 123gsuffa- Die PaBwOrter werden am
-
- altes PaBwort
-
- neues PaBwort
Bildschirm nicht angezeigt
new passwd: geheirn95 -
retype new passwd: geheirn95 - - - - - - - - + Wiederholen Sie das
$-------------------+
neue PaBwort
Bereitzeichen der
Shell, Auftrage entgegenzunehmen
Bild 3 -11: Andern des PaBwortes
46
Das PaBwort dient Ihnen als Schutz, damit sich nicht jemand anderer unter Ihrem Namen anmelden kann, Ihre Dateien verandert oder gar 16scht oder sonstigen Unfug treibt. Auch aus Grunden des Datenschutzes und der Sicherheit ist es
3.1.7
Auf los geht's los ...
besonders wichtig, die Daten vor fremdem Zugriff zu schOtzen. Falls Sie fOr
Rechnerzeit bezahlen mOssen oder gar jemand auf Ihre Kosten im Internet surft,
k6nnte durch Unachtsamkeit sogar finanzieller Schad en entstehen. Achten Sie
also darauf, daB Ihr PaBwort auch geheim bleibt. Damit Sie aber selbst Ihr PaBwort nicht vergessen, Oben Sie am besten gleich noch einmal das Anmelden.
Aber wie kommen Sie aus dem System wieder heraus?
3.1.7 Abmelden yom System
1m Kapitel 2 wurde die Tastaturbelegung erklart. Erinnern Sie sich noch an die
Tastenkombination, um ein Ende zu setzen (EOF end of file)?
Geben Sie ein Endezeichen ein, so bedeutet dies fOr das System das ,Ende der
Sitzung<. Ais Sitzung bezeichnet man die Zeit wahrend der Sie am System angemeldet sind, sozusagen vor dem Bildschirm sitzen. Mit der Kombination aus den
Tasten (beide Tasten werden gleichzeitig gedrOckt)
ICTRLI+0
melden Sie sich somit abo Sie k6nnen stattdessen auch ein Kommando eingeben:
exit
l Ode,
logout
L-.._ _ _ _----'
exit, logout - Kommandos, um eine Terminalsitzung zu beenden
Am Bildschirm wird sofort wieder ein neues Login: angezeigt, und das Terminal
ist fOr die nachste Sitzung bereit.
Arbeiten Sie mit dem CDE, wird mit exit nur das ge6ffnete Terminal geschlossen. Um sich vollstandig abzumelden, klicken Sie in der Hauptanzeige auf die
Schaltflache EXIT. Wenn Sie nur kurz Ihren Arbeitsplatz verlassen, sollten Sie
stets den Bildschirm vor unbefugten Zutritt schOtzen. HierfOr ist das kleine
SchloB gedacht. Nur mit Ihrem PaBwort kann dann der Bildschirm wieder ge6ffnet werden.
,
Bildschirm abschlieBen
Abmelden vom System (EXIl)
BUd 3-12: Abmelden vom System unter CDE
47
3
UNIX - praktisch angewandt
FOr LlNUX-Anwender hier zum Vergleich das Panell der KDE-Oberflache, das in
seinen Funktionen dem Panell vom CDE sehr ahlich ist.
Abmelden vom System (EXIT)
Bildschirm abschlieBen
FOr das Ein- und Ausschalten des gesamten Systems ist der Systemverwalter
zustandig. Wie UNIX-Rechner >runtergefahren< und ausgeschaltet werden, erfahren Sie am Ende dieses Kapitels.
Kurze Zusammenfassung Wiederholung An- und Abmelden:
o
o
o
Foigende Voraussetzungen mOssen erfOllt sein, um an einem UNIX-Rechner
zu arbeiten:
•
Der Rechner ist in den Multi-User-Mode hochgefahren.
•
FOr Sie ist ein Benutzername in der Datei /etc/passwd (und evtl. in
/etc/group) eingetragen.
•
Ihr Login-Directory ist im Dateisystem eingerichtet.
•
Auf Ihrem Terminal erscheint die Login-Anzeige. 1st diese nicht da, so
versuchen Sie zunachst nur die Return-Taste zu drOcken. Danach sollte
LOGIN erscheinen.
Was geben Sie ein?
•
Benutzernamen,
•
PaBwort (es wird nicht am Bildschirm angezeigt).
Wie erkennen Sie, ob das System bereit ist, Befehle entgegenzunehmen?
•
Auf dem Bildschirm erscheint das Bereitzeichen: $
Also auf ein Neues. Melden Sie sich nochmals an. Den ersten Schritt haben Sie
bereits getan. Lernen Sie nun, sich unter UNIX zu bewegen. Die Abenteuerreise
kann beginnen. Wagen Sie sich vor in die UNIX-Welt!
48
Auf los geht's los ...
3.1.8
3.1.8 Informationen zum Dateisystem
Stellen Sie sich vor, Sie sind in einer fremden Stadt. Was tun Sie, um sich zurechtzufinden? Sie kaufen sich einen Stadtplan. Hat man einen Stadtplan, so findet man sich erst zurecht, wenn man weiB, wo man sich befindet. Genauso ist
es in unserem UNIX-System. Das System hat uns nach dem Anmelden irgendwo in dem Dateibaum unseres Systems plaziert - und zwar in unser sog.
>Home-Directory'. Wo wir uns gerade in dem graBen Dateibaum des Systems
befinden, verrat das Kommando pwd.
pwd
I
print working directory
zeigt das aktuelle Arbeits-Directory an
pwd - Kommando, um das aktuelle Arbeits-Directory anzuzeigen
In dem bisher beschriebenen Beispiel wOrde der Benutzer Monika sich nach
dem Anmelden in dem Directory lusr/kurs/monika befinden (siehe Pfeil im Bild
des Dateibaumes).
( root-Directory)
<==)
o
Directories
Datei
Bild 3 -13: Beispiel eines Dateibaumes mit Benutzerdateien
49
3
UNIX - praktisch angewandt
Das Dateisystem Ihres Rechners dOrfte etwas anders aussehen - die Struktur
wird jedoch ahnlich sein.
Nun schauen wir uns die nachste Umgebung an. Dabei hilft uns das Kommando
Is, das in der einfachsten Form den Aufbau hat:
I
Is
/1st
I
listen, anzeigen
Is - Kommando, um Dateien in dem aktuellen Directory anzuzeigen
Ohne weitere Angaben liefert uns das Kommando Is die Dateien unserer nachsten Umgebung. In unserem Beispiel waren dies:
$pwd
lusr/kurslmonika
$Is
befehle projektA ueb 1
Das Is-Kommando zeigt uns dabei nicht den Inhalt der Dateien, (der Inhalt ist
das, was in der Datei steht), sondern listet nur die Namen der Dateien auf. Unter
diesen Namen k6nnen die Dateien angesprochen werden. Dateien k6nnen mit
ihrem vollstandigen Pfadnamen angesprochen werden, dem sog. absoluten
Pfadnamen (beginnend ab dem root-Directory) oder yom jeweils aktuellen
Directory mit dem relativen Namen. Das Is-Kommando gibt dabei in der oben
beschriebenen Form den relativen Namen der Dateien aus. Die Datei ueb1 kann
also angesprochen werden mit:
oder
lusr/kurs/monika/ueb1
absolut
(gesamter Pfadname):
ueb1
relativ
(ab Directory monika):
Bei dem absoluten Pfadnamen bezeichnet der erste Schragstrich I das rootDirectory, die weiteren Schragstriche trennen jeweils die einzelnen Directoryund Dateinamen voneinander.
Die Directories sind Inhaltsverzeichnisse, die Verweise auf Dateien und weitere
Directories enthalten k6nnen. Sie wirken im Dateibaum wie Kreuzungen oder
Knotenpunkte. Letztlich sind fOr uns aber nur die Dateien interessant. Wozu also
Directories?
50
Auf los geht's los ...
------------------------------------------
3.1.8
Mit Hilfe der Directories k6nnen Sie Ihre Dateien ordnen, strukturieren. Ihre Privatunterlagen haben Sie sicher auch geordnet, z. B. Ihre Versicherungsunterlagen in einem Ordner abgelegt, unterteilt nach Unfall, Haftpflicht und Krankenversicherung; einen weiteren Ordner evtl. fOr Ihre Mietangelegenheiten, unterteilt
nach Vertragen, Heizkostenabrechnung usw. Die Ordner und Register entsprechen in etwa den Directories, die einzelnen Dokumente (Vertrage, Briefe, Abrechnungen) den Dateien.
Wenn Sie nun einen bestimmten Haftpflicht-Versicherungsvertrag nachsehen
wollen, wissen Sie genau, wo dieser Ordner steht, und welches Register Sie aufschlagen mOssen. Ihr Weg dahin: Arbeitszimmer, Versicherungsordner, Register
Haftpflicht. Obertragt man dies auf ein UNIX-Dateisystem, so k6nnte dies so
aussehen:
Arbeitszimmer
Versicherungen
Mietangelegenheiten
Bild 3 -14: Beispiel Hierarchie - Vergleich Arbeitszimmer
Unser Weg im UNIX-Dateisystem Ober die einzelnen Directories zu der gewOnschten Datei wird als Pfad bezeichnet. Er beginnt mit der root. Die root hat
als Directory den Namen I.
I>
Der Schragstrich am Anfang eines Pfadnamens bedeutet also immer,
daB der Pfad im root-Directory beginnt. ZiNischen den weiteren Directories
wird der Schragstrich als Trennungszeichen verwendet.
Nehmen wir als Beispiel wieder unseren Benutzer Monika. Das Login-Directory
ist lusrlkurslmonika. Hier sind bereits einige Dateien und Unterdirectories angelegt. Um ein Inhaltsverzeichnis der Dateien eines Directories zu erhalten, haben
wir Is kennengelernt. Etwas erweitert hat es die Form:
51
3
UNIX - praktisch angewandt
Is [-IFA]
[Directory oder Dateinamenj
Rekursiv
liste eines Dateibaumes
Format short
Kurzformat, Directories sind mit .f.
gekennzeichnet, Kommandostrings mit·
long Format
Anzeige der Dateien mit Attributen
list
(listen, anzeigen)
Is - Kommando, um Dateien mit zusatzlichen Merkmalen anzuzeigen
Die Optionen -I, -F, -R oder in den Kombinationen -IR oder -FR steuern dabei,
welche Angaben das Is-Kommando zu den Dateien machen soli (eine Kombination -IF ware unsinnig, denn entweder soli das Kommando im Kurz- oder
Langformat ausgegeben werden). Vorlaufig reichen uns die Optionen -IFR.
Geben Sie beim Aufruf keinen Namen (Directory oder Dateij an, so wird ein
Inhaltsverzeichnis vom aktuellen Directory, in dem Sie sich gerade befinden,
ausgegeben. Das Kommando Is wird nochmals im Kapitel 3.4 (Dateiverwaltung
und -pflege) ausfOhrlicher behandelt.
Sehen wir uns die unterschiedlichen Aufrufe von Is fOr unser obiges Beispiel an:
Is -I vom aktuellen Directory lusrlkurslmonika: FOr uns sind vorerst nur die in
Fettschrift hervorgehobenen Informationen von Bedeutung.
$ Is
-I
v~~r;_~
¥
r - - '""" _
_
rw- r-
u
9
0
2 monika
1 monika
1 monika
I I
kurs
kurs
kurs
32
117
12489
(Zugriffsrechte Modus)
u -user Benutzer
9 -group Gruppe
o - other Rest der Welt
Feb 7
Feb 7
Feb 7
befehle
projektA
ueb1
I
I
Name der Datei
r-read lesen
w-write schreiben
x-execute ausfOhren
d
= Directory
- = normale Datel
I
Referenzzahler
52
I
Benutzer- Gruppe GrOBe
name
in Bytes
Datum der
letzten Anderung
Bild 3 -15: Beispiel listen, anzeigen von DirectorieslDateien (Is
-0
I
3.1.8
Auf los geht's los ...
Die erste Spalte der Ausgabe von Is -I zeigt an, ob es sich um eine normale Datei (Anzeige '-1 oder um ein Directory (Anzeige ,d1 handelt. Unter UNIX wird alles als ,Datei. bezeichnet, nur durch die Kennzeichnung wird unterschieden
nach Directories, Gerate und die sog. normal en Dateien. Die Inhalte von normalen Dateien konnen Sie sich z. B. ansehen oder verandern. Directories konnen
Sie dagegen nicht direkt verandern, sondern in den Directories nur weitere Dateien oder Unterdirectories anlegen, kopieren oder loschen. Die Kommandos
hierfOr werden wir spater lernen (KapiteI3.3 und 3.4).
Mit dem Kurzformat Is -FR sieht die Liste des gesamten Dateibaumes von
lusrlkurslmonika wie folgt aus:
$ Is -FR
befehlel projektAl ueb 1
befehle:
I Kennzeichen von Directories
sichem
. Kennzeichen von ausfOhrbaren
projektA:
bsp.c
io.c
Dateien (Kommandos)
-'
pro.c
$
Bild 3 -16: Beispiel listen, anzeigen vom aktuel/en Directory mit Is -FR
Wenn Sie sich andere Dateien oder Directories auflisten wollen, so geben Sie
das Is-Kommando mit Namen an. Mochte z. B. Monika wissen, welche Dateien
Hans hat, so kann sie aufrufen:
$
Is
-FR
lusr/kurs/hans
befehlel
projektBI
projektB:
bSp.c
io.c
pro.c
$
Bild 3 -17: Beispiel listen, anzeigen von DirectorieslDateien (Is -FR)
53
3
UNIX - praktisch angewandt
Bei lang en Pfadnamen kann man sich leicht vertippen und muB recht viel schreiben. Deshalb stehen unter der Shell folgende Sonderzeichen zur Verfugung, um
vom aktuellen Directory die umliegenden Dateien und Directories relativ ansprechen zu kennen:
Ein Punkt
bedeutet das aktuelle Directory, in unserem Fall
lusrlkurs/monika
Zwei Punkte ••
bedeuten das dariiberliegende Directory,
hier lusrlkurs, also die nachst hOhere Generation,
das >Eltern-Directory<
Um sich den Inhalt des Directories lusrlkurslhans anzuzeigen, kann Monika
das Kommando mit dem relativen Pfadnamen aufrufen:
Is . .Ihans
befehle
projektB
Bild 3 -18: Beispiel /isten, anzeigen mit relativem Pfadnamen (..)
Mit zwei Punkten kommen Sie jeweils um ein Directory heher. Will Monika sich
z. B. das Inhaltsverzeichnis vom Directory lusrlman ansehen (sie befindet sich
immer noch in lusrlkurs/monika), ruft sie auf:
54
3.1.8
Auf los geht's los ...
Is ..t../man
II
Vusr)
Vusrlkurs) - das nachst
hohere Directory
man 1
man8
Bild 3-19: Beispiel relative Pfadangabe (../../)
Mit der Option -R erhalten Sie ein rekursives Inhaltsverzeichnis von einem gesamten Teilbaum, ausgehend vom jeweiligen Directory. Wenn Sie das Kommando
Is -IR /
aufrufen (/ bedeutet ab dem root-Directory), erhalten Sie damit eine Uste, die
aile Dateien und Directories Ihres Systems aufweist. Nach dieser Uste konnten
Sie sich Ihren Dateibaum zeichnen, einen Plan fOr Ihr UNIX-System.
Unter UNIX sind einige Directories und Dateien fest zugeordnet. Was unter den
einzelnen Directories aufbewahrt wird, zeigt Ihnen die nachfolgende Grafik:
55
UNIX - praktisch angewandt
3
UNIX-Dateibaum
mit einigen Directories und Dateien
ROOT - DATEISYSTEM
~
auslOhrbares UNIX
Programm
weitere
Dienstprogramme
(vi, more)
bin
etc
Geri1teeintri1ge
special
files
leeres
Directory
games
man
Spiele, wie
chess,
rogue,
backgammon u.a.
Online-Dokumentation
man1 - man8
Directory
fur die 8enutzer
(ubergeordnet)
Systembibliothek,
Compiler,
Makros
(libraries)
Di rectory fOr
die einzelnen
Kursteilnehmer
kundenspezifische
Kommandos
Systemverwaltungsprogramme
u. -dateien
Ablage nicht
zuzuordnender Dateien
durch
letclfsck
wlchtigste
Dienstprogramme
(binaries)
local
Dateien und
zur Systemgenerierung
Ablage nicht
zuzuordnender Dateien
durch
letclfsck
weitere
gramme
(binaries)
Die Dateien und Directories, die mit dieser
Schraffur gekennzeichnet sind, wurden hier als Beispiel verwendel, d. h., diese Dateien und Directories
im Original-UNIX AT&T enthalten. Auch k6nnen je Rechnerkonfiguration auch andere Directories und Dateien enthalten sein.
BUd 3-20: Dateibaum des Seminarrechners
56
)
Auf los geht's los ...
------------------------------------------
3.1.8
Ein kurzer Blick in den Dateimanager im CDE und KDE
Hier wird sehr schon als Orientierung angezeigt, wo man sich im Dateibaum befindet. Durch Anklicken der Ordner (Directories) werden im darunter liegenden
Bereich die Inhalte des Ordners angezeigt. Weitere Details Ober den Dateimanager finden Sie im Kapitel 4.
~ ____________~F~I~le~M~a~na~g~e~r_-~te~m~p~l~r2~____________11_'J'=t~
f,lIe ~elec ed ~Iew
I ~-~-:J
/
ho e tempir2
/home/temp I r2
!:!.elp
Pfadanzeige im CDR ab dem Root-Directory
Der durchgestrichende Bleistift weist
daraufhin, daB Sie in diesen Directories
keine Schreiberlaubnis haben
if
I 58 Items 38 Hidden
jp,jI
~ Eilll
~
~
Ecil
~ :'01
~J
luu\.n ~.~,
J:<O,;hw
QpUUII~
;:j~I~
,~
~ .OGalion. r---------------~
fIIeJr:)'.'CE!I~op;T~ " p.:E'
I>
r.)ol
Darstellung im KDE ab dem Root-Directory
I>
I.' ')
elllplal9'
la,h
Bild 3-21: Darstellung der Baumstruktur im Dateimanager
Vorab wenden wir uns erst mal wieder der direkten Eingabe von UNIX-Befehlen
unter ASCII-Terminals zu. So einfach es ist, nur mit Maus-Klick ein Directory zu
wechseln, so haben auch die Kommandos, die wir bei der ASCII-Eingabe kennenlernen werden, einige Vorteile. Wenn Sie sich die wichtigsten Kommandos
mit ein paar Optionen merkel"l, werden Sie gezielt und somit schneller bestimmte
Informationen abrufen konnen.
57
3
UNIX - praktisch angewandt
Wie arbeiten Sie mit Directories unter ASCII-Terminals?
Wollen Sie sich die einzelnen Inhaltsverzeichnisse der in unserem Beispiel aufgefUhrten Directories anzeigen lassen, so haben Sie bisher zwei M6glichkeiten
kennengelernt, das Is-Kommando aufzurufen:
OMit Angabe des absoluten Pfadnamens (beginnend ab der root) /
o
oder mit dem relativen Pfadnamen (beginnend ab Ihrem aktuellen Directory)
wobei Sie mit ..I jeweils zum nachst hOheren Directory gelangten.
1st Ihnen das Aufzahlen und vor allem das Eintippen der Pfadnamen zu umstandlich? (Das Aufzahlen der Generationen klingt ja fast wie bei Karl May: Hadschi Halef Dmar Ben Hadschi Abdul Abbas Ibn Hadschi Dawud al Gossarah ... )
Dann wechseln Sie am besten in das jeweilige Directory und k6nnen sich von
dort die nahere Umgebung ansehen. Das Kommando, um in ein anderes Directory zu wechseln, lautet:
cd
{ Directory}
change directory (wechsel Directory)
cd - Kommando, um in Directories zu wechseln
Das Directory geben Sie entweder mit relativen oder absoluten Pfadnamen
an. Es ist dann Ihr neues aktuelles Directory.
Eine Reihe von Kommandos setzt, falls kein Parameter angegeben wird, einen
Standardwert ein (default). Beim Is-Kommando ist dies das aktuelle Directory.
Db Sie allerdings in diesem .neuem Directory< Dateien ansehen, (Iesen - read)
oder neu anlegen (schreiben - write) oder Kommandos ausfUhren (execute) dOrfen, richtet sich nach den vorgegebenen Zugriffsrechten. Mit dem Kommando
Is -I werden die Zugriffsrechte anzeigt (siehe auch Bild 3-15 auf Seite 52). Dabei gilt:
Typ
Directory normale
Dateien
-
f- d
c-
-
-
Zugriffsrechte (Modus)
eingeteilt nach:
Besitzer Gruppe andere
rwx
rw -
rwx
rw-
r-x
r--
Irvr~
rw-
r--
II x-e~ecute
w-wn te
r-read
58
ausfOhren
schretben
lesen
Bild 3-22: Zugriffsrechte - Anzeige mit Is-I
3.1.8
Auf los geht's los .. .
------------~~~---------------------
Die Zugriffsrechte werden detailliert im Kapitel 3.4.6 auf Seite 176 behandelt.
Vorab ist fOr Sie wichtig zu wissen, daB Sie nur dann in ein Directory wechseln
konnen, wenn die fOr Sie geltenden Zugriffsrechte (je nachdem ob Sie Besitzer
sind, der gleichen Gruppe angeh6ren, oder zu den anderen zahlen) mit einem x
versehen sind.
Ohne Angabe eines Directories kommen Sie mit dem Kommando cd immer in
Ihr Login- bzw. in Ihr Home-Directory zuruck. Das ist eine sehr schone, sichere
Funktion.
Um sicherzugehen, wo Sie gelandet sind, gibt Ihnen das bereits bekannte Kommando pwd (print working directory) Auskunft, wo Sie sich befinden.
Wechselt Monika z. B. in das Directory von Hans, so gibt sie ein:
absolute Pfadangabe:
$
cd lusr/kurslhans
$ pwd
/usrlkursl hans
$
relative Pfadangabe:
oder
$
cd ../hans
$
pwd
l usrlkurs/hans
$
bisheriges
aktuelles
Directory
Bild 3-23: Beispiel cd Directory / pwd
Monika wechselt zwar in das Directory hans, erhalt damit jedoch keine neuen
Zugriffsrechte und kann dort nur dann Dateien ansehen oder verandern, wenn
Hans es ihr erlaubt hat, also die Zugriffsrechte entsprechend gesetzt hat. Mit
dem Wechsel des Directories werden nicht die Besitzerrechte geandert!
59
3
UNIX - praktisch angewandt
Kurze Zusammenfassung
Relative und absolute Pfadnamen, Kommandos: Is, cd, pwd
o
Welche Pfadbezeichnungen und Kennzeichen kennen Sie?
I
Absolute Pfadnamen beginnen immer mit dem Schragstrich der
root z. B.: lusrlkurs/monika
Der Schragstrich zwischen den Directories/Dateien gilt als Trennungszeichen, z.B. ist ,monika< im obigen Beispiel ein Unterdirectory vom Directory ,kurs<, dieses wiederum ein Unterdirectory vom
Directory ,usr<.
Bei relativen Pfadnamen als Kennzeichnung fUr das aktuelle Directory z. B.: Is -I .
(Ohne Angabe des Punktes, wird bei beim Is-Kommando das aktuelle Directory angenommen - Default Wert).
•• Ais Kennzeichnung fUr das daruberliegende Directory
z.B. von lusr/kurs/monika: Is •.Ihans
o
Wie kennen Sie sich den Inhalt eines oder mehrerer Directories ansehen?
Mit dem Kommando Is [-IF] [Directories, Dateien]
o
Wo befinden Sie sich nach dem Anmelden?
In Ihrem Home-Directory.
Mit dem Kommando pwd kennen Sie sich den Pfadnamen Ihres aktuelien
Directories anzeigen lassen.
o
Wie kennen Sie in einen anderen Zweig des Dateibaumes gelangen?
Mit dem Kommando cd
[relative oder absolute Pfadangabe des Directories}
z.B. cd lusrlkurslhans
Sind Sie bereits in den Bann des Rechners geraten? Haben Sie gar die Zeit vergessen? Wie spat ist es? - Fragen Sie Ihren Rechner! Doch bevor Sie nun einige
nutzliche Kommandos kennenlernen, gennen Sie sich zwischendurch eine Kaffee- oder Teepause.
60
3.1.9
Auf los geht's los ...
3.1.9 Einige nutzliche Kommandos
Datumsanzeige
Zu Beginn wurde schon darauf hingewiesen, wie wichtig es unter UNIX ist, mit
dem richtigen Datum zu arbeiten. Jedes System hat eine Uhr und unter UNIX
kennen Sie Datum und Uhrzeit mit dem Kommando date abfragen. Nur der Systemverwalter kann das Datum andem.
Wie spat ist es?
[ +" Formatangaben" 1
II
I
Datum
.A.nderung der Ausgabe
date - Kommando, um Datum und Uhrzeit anzuzeigen
Geben Sie das Kommando ohne Parameter (zusatzliche Angaben) ein, wird Ihnen das Datum in der Standardform (meist amerikanische Art) angezeigt, z. B.
>Tue Mar 27 13:48:21 MET 1996,. WOnschen Sie eine individuelle Datumsanzeige, so kennen Sie das Format andern.
$
date
Thu
$
$
Ohne Angaben oder Voreinstellung durch
Variable wird das Datum in amerikanischer
Form angezeigt
Mar 27 13:48:21 MET 1996
date +"heute ist der: %d. %m. °/oy"
heute ist der: 27. 03. 96
$
r\
Formatangaben fUr:
I I
Tag
I
Monat Jahr
Bi/d 3-24: Beispiel von date (Datumsanzeige)
Ab Version V.3 kann Ober die Variable LANG die nationale Sprache eingestellt
werden. Soweit entsprechende Software und entsprechende Dateien (wie z. B.
das Online-Manual) zur VerfOgung stehen, werden dann Informationen in der zugeordneten Sprache ausgegeben und die jeweilige nationale Schreibweise fOr
bestimmte Kommandos, wie z. B. auch fOr date, zugrundegelegt (naheres Ober
Variablen in Kapitel 3.6).
1m CDE haben Sie natOrlich Uhrzeit und Datum immer griffbereit. In der Desktop-Anzeige finden Sie links eine kleine Uhr und daneben das Kalenderblatt.
61
3
UNIX - praktisch angewandt
Trotzdem werden Sie bald erkennen, daB sogar das Kommando date nach wie
vor benetigt wird, namlich dann, wenn Sie es z. B. in Dateien umleiten wollen
(das lernen Sie im nachsten Kapitel). Die eigene Aufbereitung der Ausgabe kann
hierbei dann wichtig sein.
Mechten Sie weitere Formatangaben kennenlernen, so kennen Sie mit Hilfe des
Online-Manuals die genaue Beschreibung des Kommandos date am Bildschirm
lesen. Das Online-Manual ist eine auf dem Rechnersystem vorhandene Beschreibung der verfOgbaren Kommandos.
Lesen des Online-Manuals
Unter dem Directory lusr/man sind nach Kapiteln getrennt (man1 - man8) die
Beschreibungen (Manua/seiten) der Kommandos abgelegt. Die einzelnen Dateien enthalten neben dem beschreibenden Text Formatierungsanweisungen fOr
das UNIX-Textverarbeitungspaket nroff/troff. Mit dem Kommando man kennen
Sie sich diese Seiten am Bildschirm ansehen.
man Kommando I
manual
man - Kommando, um die Beschreibung von Kommandos
(Manualseiten) anzusehen
Das Formatieren (Erstellen von Kopfzeilen, automatischer Seitenumbruch, Seitenzahlen, eingerDckte oder zentrierte Texte) der Manualseite(n) kann einige Zeit
dauern. Deshalb verlieren Sie nicht die Geduld, wenn die erste Seite nicht sofort
auf dem Bildschirm erscheint.
$
man date
DATE (1)
UNIX 3.0
DATE(1)
NAME
date - print and set the date
SYNOPSIS
date [mmddhhmm[yy]]{+formatj
DESCRIPTION
$
62
Bild 3-25: Beispiel von man (Anzeige von Manualseiten - date)
3.1.9
Auf los geht's los ...
--------~--~------~--~
Die Manualseiten werden seitenweise ausgegeben. Dabei wartet das Programm
nach der Anzeige einer Seite, bis Sie diese gelesen haben. Um jeweils die nachste Seite am Bildschirm zu lesen, drOcken Sie die
Leertaste
Wie sind die Manualseiten gegliedert?
KOPFZEILE:
Name des Kommandos mit Kapitel-Nr.
Die Kommandos sind hier in GroBbuchstaben geschrieben
und stehen jeweils am linken und rechten Rand der Kopfzeile, damit bei den ausgedruckten Seiten die alphabetisch
sortierten Kommandos innerhalb der Kapitelleicht auffindbar sind.
NAME:
Name des Kommandos (richtige Schreibweise groB/klein).
AnschlieBend wird kurz die Funktion des Kommandos erkiM.
SYNOPSIS:
(knappe Zusammenfassung) Das Kommando wird so angezeigt, wie es eingegeben wird, wobei aile moglichen Optionen und Parameter aufgefOhrt sind (Syntaxregelj. Aile
zusatzlichen Angaben, die nicht zwingend sind, sondern
wahlweise verwendet werden konnen, sind in eckige
Klammern gesetzt [].
DESCRIPTION:
(Beschreibung) Hier wird ausfOhrlich beschrieben, wie Sie
das Kommando verwenden konnen, welche Parameter,
Optionen bestehen und was sie bewirken.
FILES:
Die angegebenen Dateien werden benotigt, um das Kommando auszufOhren.
DIAGNOSTICS:
An dieser Stelle stehen besondere Hinweise, z. B. >use help
for explanations' (fOr Erklarungen verwende help) und evtl.
auftretende Fehlermeldungen.
WARNING:
Hinweise auf mogliche Fehlermeldungen.
EXAMPLE:
(Beispiel) Leider werden hier nur selten Beispiele der Kommandoaufrufe angefOhrt (nur von einigen Firmen erganzt).
SEE ALSO:
Existieren Kommandos mit ahnlicher Funktion, so wird hier
darauf verwiesen.
Sehen Sie zwei weitere Ausschnitte der am Bildschirm angezeigten Manualseiten fOr das Kommando date:
63
3
UNIX - praktisch angewandt
$
...
man date
DESCRIPTION
...
Field Descriptors.
Feldangabe
n
t
m
d
fUge das Zeichen .NeueZeile. ein
tOge ein Tabulator-Zeichen ein
Monat in Ziffem 01 - 12
Tag des Monats 01 - 31
letzte 2 Ziffem des Jahres
Datum in Form MMm/JJ
Stunde 00 - 23
Minute 00 - 59
Sekunde 00 - 59
Zeitangabe hh:mm:ss
Tag des Jahres 001 - 366
Tag der Woche Sonntag =0
abgekOrzter Wochentag
abgekOrzter Monatsname
Zeitangabe in 12 Stunden
Kennung AM - vormittag
PM - nachmitag
w
a
Insert a new line character
insert a tab character
month of year - 01 t012
day of month - 01 to 31
last two digits of year- 00 to 99
date as mmlddlyy
hour - 00 to 23
minute - 00 to 59
second - 00 to 59
time as HH:MM:SS
day of year - 001 to 366
day of week - Sunday =0
abbreviated weekday - Sun to Sat
r
h
abbreviated month - Jan to Dec
time in AM/PM notation
Y
D
H
M
S
T
j
...
DIAGNOSTICS
No permission
bad conversion
bad formal character
FILES
/dev/kmem
-
--
if you aren't the super-user and you
try to change the date;
if the date set is syntactically
Incorrect;
if Ihe field descripter is not
recognizable
WARNING
It is a bad practice to change the date while Ihe system is
running mulli user.
DIAGNOSE
Keine Erlaubnls
Falsche Umwandlung
Falsches FormatZeichen
DATEIEN
/dev/ kmem
wenn Sle n cl ht Systemverwalter sind und
versuchen , das Datum zuilndem;
wenn das Datum falsch eingegeben wurde
(nicht den Regeln entsprechend);
wenn das Zelchen fOr die Feldangabe
unbekannt ist.
Dateien, die das Kommando benutzt.
Wamung
Es empfiahlt sich nicht, das Datum zu ilndern, wilhrend das System 1m
multi-user Modus arbellat.
Bild 3-26: Beispiel von man (Anzeige von Manua/seiten) Fortsetzung
64
3.1.9
Auf los geht's los ...
--------------------------------~
Die ausfUhrliche Beschreibung von date soli hier nur als Beispiel fOr das Kommando man dienen. Gleichzeitig soli es Sie ermuntern, nach diesem EinfUhrungskurs mit Hilfe der UNIX-Dokumentation die eine oder andere interessante
Option und weitere Kommandos allein kennenzulernen.
Wenn Sie nur wissen wollen, fOr was ein bestimmtes Kommando genutzt werden kann, geben Sie ein:
whatis Kommando
whatis - Kommando, um eine Kurzinformation uber ein
Kommando zu erhalten
Welche Dokumentation AT&T zu UNIX System V liefert, ist u.a. im Literaturverzeichnis enthalten. Mit Hilfe der UNIX-Dokumentation konnten Sie sich nun Tage
und Nachte beschaftigen, doch gerade das wollten Sie ja sicherlich nicht. In diesem Buch werden, wie in der Einleitung schon gesagt, nur die wesentlichen Optionen besprochen, die in der Praxis am meisten benotigt werden, um Ihnen den
Einstieg in UNIX zu erleichtern.
Sie wissen bereits, wo Sie sich befinden (pwd), wie Ihre nahere Umgebung aussieht (Is -I), Sie konnen sich im gesamten Dateibaum bewegen (cd), aber Sie
wollen sicher auch wissen, welche Informationen in den Dateien verborgen sind.
Anzeige eines Datei-Inhaltes
Bisher haben wir uns mit dem Kommando Is nur die Namen und einige Merkmale von Dateien angesehen. Um zu sehen, welchen Inhalt eine Datei hat, gibt
es das Kommando cat.
cat
Dateiname
concatenate (zusammenfOgen)
cat - Kommando, um sich einen Dateiinhalt anzusehen
Warum >concatenate - zusammenfOgen<? Sie werden spater bei dem Kapitel
Shell-EinfUhrung lernen, wie Sie dieses Kommando verwenden konnen, um eine
Datei an eine andere anzuhangen. Hier erst einmal die Grundfunktion des Kommandos: die Ausgabe eines Dateiinhaltes. Allerdings konnen Sie sich nur Dateiinhalte ansehen, wenn sie in ASCII (American Standard Code for Information Interchange - Amerikanischer Standardcode fOr Informationsaustausch)
abgespeichert sind. AusfUhrbare Programme' sind in Binarformat abgespeiO
,
o
EinProgramm wird in einer Programmiersprache geschrieben (Source oder Quelldatei) und in
die vom Rechner interpretierbare Maschinensprache umgewandelt - (compiliert)
Ziffern werden in Binarform nur mit 0 und 1 dargestellt: 1 =00001, 2=00010, 3=00011 usw.
65
3
UNIX - praktisch angewandt
chert und nicht lesbar. Ebenso k6nnen Inhalte von Directories nicht gelesen
werden, sondern nur mit dem Is-Kommando angezeigt werden.
$ cat lusr/lib/cookies
It's never too late to learn
Haste makes waste
To be is to do
I. Kant
To do is to be
J.P. Sartre
Do be do be do
F. Sinatra
Bild 3-27: Beispiel von cat (Anzeige des Inhalts einer Datei)
Wenn die Datei lusrllib/cookies auch auf Ihrem Rechner vorhanden ist, so hatten
Sie vielleicht nach dem Kommando cat lusrlliblcookies Schwierigkeiten, den
Text so schnell zu lesen; denn mit cat rauscht der Text, wie im Kino oder Fernsehen der Vorspann, viel zu schnell Ober den Bildschirm. Sic her, Sie wissen bereits, wie Sie ihn stoppen und wieder zum Laufen bringen k6nnen:
und
Zum Anhalten
Zum Wiederstarten
(stop)
(quittieren)
SCROLL
oder falls an
Ihrem Terminal vomanden :
NOSCROLL
Doch ist dies etwas lastig. Lernen Sie deshalb ein komfortableres Kommando:
Slattern im Inhalt einer Datei
Um einen Dateiinhalt seitenweise am Bildschirm anzusehen, gibt es zwei sehr
ahnliche Kommandos: more und pg. Sehen wir uns zuerst das Kommando
more an:
more Dateiname(n)
(mehr)
66
more - Kommando, um einen Dateiinhalt seitenweise anzuzeigen
Auf los geht's los ...
----------------------------------------
3.1.9
$ more
lusr/man/man1/date.1
.\"pltroff -manl $1
.THDATE 1
.SHNAME
date \-print und set date
.SH SYNOPSIS
.B date
[mmddhhmm[yy] ]
1f no argument is given,
or if the argument begins with VB+ VR,
the current date and time are printed
Bild 3 -28: Beispiel von more (Blattern in Dateien)
mit Teilanzeige der Manualseite ,date. 1,
Dies ist der Originaltext der Manualseite, wie sie auf dem Rechner abgespeichert ist. Sie sehen, der Text ist mit sog. Makros fUr die Formatbearbeitung mit
dem Programm nroft versehen, z. B. . TH fUr Title Header (Titel der Kopfzeile), .SH
Section Header (AbschnittsOberschrift), .B fOr bold (Fettschrift). Auf vielen Rechnern werden allerdings die Manualseiten nicht mehr in dieser Form abgespeichert, sondern sind bereits vorformatiert (damit geht das Laden der Seiten wesentlich schneller). Ahnliche Formatangaben finden Sie aber auch in den ASCIITexten vielerTextprogramme oder auch bei den HTML-Dateien (Hypertext Markup Language) fOr die WWW-Seiten (World Wide Web), nur daB Sie dort meist
nicht mehr direkt eingetippt werden mOssen, sondern komfortabel Ober entsprechende Programme mit MenOleisten, Buttons (Schaltflachen) und/oder Funktionstasten (Tasten, denen bestimmte Funktionen zugeordnet sind) erstellt werden (wie mit Applixware, FrameMaker u.v.a.).
Doch zurOck zu unserem Programm more. DrOcken Sie z.B. die Leertaste, so
kennen Sie seitenweise in der Datei vorwarts blattern. Hier die wichtigsten Funktionen:
Leertaste
I
Returntaste
~
GJ
Seitenweise vorwarts blattern
Zeilenweise vorwarts gehen
Aufruf eines HilfsmenOs (help)
Beenden des Programmes (quit)
67
3
UNIX - praktisch angewandt
In der Kommandozeile von more sehen Sie ubrigens, wieviel Prozent der gesamten Datei bereits angezeigt wurde. An dieser Stelle steht auch der Cursor
(Schreibmarke).
Ein ahnliches Kommando mit mehr Such- und Positionierungsmoglichkeiten ist
pg, das ebenfalls den Inhalt einer ASCII-Datei seitenweise ausgibt.
pg Dateiname(n)
page (Seite)
pg - Kommando, um Dateiinhalte seitenweise anzuzeigen
Das pg-Kommando ist etwas komfortabler als das Kommando more . Sie konnen mit pg z. B. auch auf die 1. Zeile einer Datei zuruckgehen, indem Sie als
Funktion die >1 < eingeben (fOr: gehe zur Zeilennummer 1). Die verschiedenen
Funktionen konnen Sie sich anzeigen lassen, wenn Sie den Buchstaben h (help)
tippen.
HilfsmenO aufrufen
Sehen wir uns hierzu ein Beispiel an:
/ $ pg text1
Herzlich Willkommen zum UNIX-Einfuehrungskurs
h
Hilfsfunktion
!pattern I
help
quit
next page
next line
display half a page more
redisplay current page
skip the next page forward
next file
previous file
last page
save current file in savelist
search forward for pattern
?pattern? or
Apattern A
/command
number
execute command
linenumber
fUhre das Kommando aus
gehe nach Zeile n (n fUr Zahl)
h
qorQ
<.blank> or \n
I
dorAD
. orAL
f
n
p
$
s savelist
68
Beenden des Programms
nachste Selte (LeertasteJReturn)
nlichste Zelle
nlichste halbe Seite
aktuelle Seite nochmal
uberspringe nachste Seite
nachste Datei
vorhergehende Datei
letzte Seite
sic here aktuelle Datei in savelist
suche nach dem Muster
vorw!i.rts
search backward for pattern suche nach dem Muster
riickwarts
Bild 3-29: Beispiel von pg (page - Blattern in Dateien)
j
3.1.9
Auf los geht's los ...
Die wichtigsten Funktionen, die Sie benotigen werden, sind:
Leertaste
I
Seitenweise vorwarts blattern
oder
Returntaste
o
Anzeige der letzten Seite (Ende des Textes)
8
lurOck zur leile 1
GJ
Gehe zur leile n (z. B. fOr n=21: zur Zeile 21)
GJ
Beenden des Programmes (quit)
Wer arbeitet am System?
Arbeiten Sie allein an dem Rechner oder leisten Ihnen einige Kollegen Gesellschaft?
Mit dem Kommando who erfahren Sie, wer auBer Ihnen noch am System arbeitet. Sie sehen, mit welchem Namen er im System angemeldet ist, an welchem
Terminal er arbeitet und um wieviel Uhr er sich angemeldet hat.
who
(wer)
who - Kommando, um zu sehen, wer noch am System arbeitet
Auch hierzu gleich ein Beispiel:
$
who
monika
tty11
Apr
hans
tty12
Apr
bemd
tty 13
Apr
I
I
Benutzemame
r
I
Name des Terminals
07
07
07
08:12
08:15
08:35
I
I
Datum und Uhrzeit der
Anmeldung (Login)
Bild 3-30: Beispiel von who (Wer arbeitet am System)
69
3
UNIX - praktisch angewandt
Sollten Sie nach all dem bisher Gelernten nicht mehr wissen, wer Sie sind, UNIX
gibt Ihnen gerne Auskunft. Fragen Sie:
who am
(wer bin ich)
Wie Sie an dem folgenden Beispiel sehen, kann UNIX keine psychologische
Analyse durchfUhren, sondern sagt Ihnen nur, was es von Ihnen weiB: Ihre Benutzerkennung (Namen, mit dem Sie sich angemeldet haben), den Namen des
Terminals, an dem Sie arbeiten und das Datum und die Uhrzeit Ihrer Anmeldung:
$
who am i
monika
tty11
Apr
07
08:12
Bild 3-31: Beispiel von who am i (wer bin ich)
Um netzweit Informationen tiber Benutzer zu eriragen, gibt es das Kommando
finger [Benutzernamen@Rechnername]
finger - Kommando, um Benutzerinformation zu erhalten
Dieses Kommando zeigt Ihnen wie who Namen Terminalnamen, Anmeldezeit
und noch einige zusatzliche Informationen.
Wie Sie bei den letzten Kommandos gesehen haben, werden auch Terminals
unter eigenem Namen gefUhrt. Unter UNIX werden Gerate ahnlich wie Dateien
behandelt. Sie sind unter dem Directory /dev (fOr device - Gerat) eingetragen.
Unter vielen UNIX-Systemen beginnen die Namen der Terminals mit tty (fur terminal type) und sind fortlaufend entsprechend der Steckplatze fUr die Terminalleitungen numeriert.
Anzeige des Terminalnamens
Sollten Sie Schwierigkeiten mit Ihrem Terminal haben, z. B., Sie k6nnen pl6tzlich
keine weiteren Eingaben mehr machen oder erhalten kein Login, um sich anzumelden, dann ist es fUr den Systemverwalter von Vorteil, wenn er den Namen Ih-
70
Auf los geht's los ...
3.1.9
res Terminals weiB. Solange IhrTerminal noch funktionsfahig ist, zeigt Ihnen das
Kommando tty den Namen Ihres Terminals an:
tty
t erminal type (x Typ)
tty - Kommando, um den Terminalnamen (Typ) anzuzeigen
$ tty
Idevltty11
Bild 3 -32: Beispiel von tty (Terminal-Typ)
Arbeiten Sie mit einer graphischen Oberflache, wird jedem geoffneten Fenster
(Terminal) ein eigener Name zugewiesen. Meist wird es als Pseudo-Terminal mit
Idevlptsln bezeichnet (n steht fOr die Nummer, 1 fOr das erste geoffnete Fensters, 2 fOr das zweite usw.).
UNIX kommt von AT&T (American Telephon and Telegraph) und deshalb ist es
nicht verwunderlich, daB unter UNIX ein eigenes Kommunikationsnetz besteht.
So konnen Sie statt zu telefonieren Ihrer Kollegin (Ihrem Kollegen) eine Nachricht
schicken, die dann auf ihrem (seinem) Bildschirm erscheint. Allerdings muB die
Kollegin, der Kollege am System angemeldet sein. Sollten sie an mehreren Terminals arbeiten (dies ist immer der Fall, wenn mit einer grafischen Oberflache
gearbeitet wird) benotigen Sie zusatzlich auch den Namen des Terminals, an
dem sieler arbeitet.
Senden von Nachrichten an angemeldete Benutzer
Mit dem Kommando write schicken Sie an Benutzer, die am gleichen System
oder im Netzverbund angemeldet sind, eine Nachricht (message).
write
Benutzername[@Rechner] [Terminalnamen]
(schreiben)
write - Kommando, um Benutzern, die am System angemeldet sind,
eine Nachricht zu senden
71
3
UNIX - praktisch angewandt
So kann Monika Hans fragen:
$ write hans
Treffen wir uns um 10:30 zum
Kaffee in der Kantine?
<CTRL+ d>
$
J
I
Urn die Nachricht abzuschlie6en, wire! das Zeichen fur Dateiende eingegeben
Bild 3-33: Beispiel write (Nachrichten senden)
I>
Achten Sie darauf, daB Sie das Endezeichen in einer neuen Zeile beginnen,
sonst wird der Text der gleichen Zeile nicht Obermittelt. Auf dem Bildschirm
von Hans erscheint (oft verbunden mit einem Klingelton):
$
Message from monika tty11 {Mon Apr 7 10:07:00]
Treffen wir uns um 10.30 beim
Kaffee in der Kantine?
$
Bild 3-34: Beispiel write (Nachrichten empfangen)
Hans kann, sobald er die Nachricht erhalt, ebenfalls das Kommando write monika aufrufen. Damit kennen abwechselnd Nachrichten ausgetauscht werden.
Ein etwas komfortableres Kommando als write ist das Kommando
talk Benutzername[@Rechner] [Terminalnamen]
talk - Kommando, um ein Gesprach uber Bildschirm zu fuhren
Hier werden auf dem Bildschirm zwei Bereiche markiert. In einem werden die
Nachrichten des Partners aufgezeichnet, in dem anderen die eigenen Mitteilungen. (In der Praxis hat sich sowohl write als auch talk wenig bewahrt; hier greift
man doch lieber zum Telefon oder schreibt eine e-mail.)
Denn solche Nachrichten Ober Bildschirm kennen oft sterend sein. Falls Ihnen
doch jemand eine Nachricht schicken will und Sie ungestert arbeiten wollen,
72
3.1.9
Auf los geht's los ...
------------------~--~--~~~--------
verschlieBen Sie Ihr Terminal anderen Benutzern gegenOber. Das Kommando
hierzu lautet:
mesg [n] [ y]
message - Nachricht
r
r
yes Ihr Terminal ist wieder frei
und Sie konnen Nachrichten
empfangen
no Andere Benutzer dOrlen Ihnen
keine Nachrichten send en
mesg - Kommando, um den Bildschirm fur Nachrichten zu sperren bzw.
wieder zu offnen
Dagegen wird das nachste Kommando, um Nachrichten (Post) zu versenden,
sehr haufig genutzt. Nicht nur an Rechnern innerhalb einer Firma, sondern weltweit Ober sog. Provider. Dies sind Firmen, die Dienste im Internet oder anderen
Netzen anbieten. Zu diesen Diensten geh6rt u.a., die elektronische Post weiterzuleiten und fOr Sie zu empfangen. Provider sind Z. B. im Internet EUnet,
NTG/xlink oder fOr andere Netze CompuServe, T-Online, America Online u.v.a.
Die verschiedenen Netze sind wiederum miteinander verknOpft. Doch davon
mehr im Kapitel 3.6 (Wissenswertes Ober Netze).
Die elektronische Mail
Um Benutzern eines Systems (oder Z. B. Dber Modem weltweit) eine Nachricht
zu versenden, gibt es das Kommando
mail
Benutzemame(n)[@Rechner]
(post)
mail - Kommando, um Nachrichten (Post) elektronisch zu senden
73
3
UNIX - praktisch angewandt
Statt Ober herk6mmliche Art Aktennotizen zu schreiben, die evtl. nicht mehr
rechtzeitig mit der Hauspost ausgetragen werden, kann z. B. Monika eine 'elektronische Aktennotiz' senden:
$ mail hans
Subject: Abteilungsmeeting
Am Freitag urn 16.00 h ist
Abteilungsmeeting. Bitte punklich
erscheinen
<CTRL + d>
Endezeichen auf neuer Zeile
Gc: bernd iris
$
Bild 3-35: Beispiel von mail- versenden
In obigem Beispiel wird die Aktennotiz an den Benutzer hans geschickt. Ais
Subject (Betreff) wird kurz angegeben, um was es sich handelt. Dieser Betreff
wird spater im sog. Header (Kopfzeile) angezeigt. Nachdem mit <Gtrl + d> (End
of File) die Nachricht beendet wird, erscheint die Anzeige Gc: Hier kann noch angegeben werden, wer alles eine Kopie erhalten soli. In diesem Fall bernd und iris.
Aile Benutzer, die eine Mitteilung mit mail geschickt bekamen, erhalten automatisch yom System den Hinweis ,you havemail•• sobaldsiesichanmelden*.Um
die Post zu lesen oder selbst nachsehen, ob im UNlX-Briefkasten Post da ist, rufen Sie das Kommando mail ohne weitere Angaben auf.
Es erscheint dann eine Liste mit allen Briefen, die eingegangen sind. Neue Nachrichten sind mit N (New) gekennzeichnet. Um die Nachrichten zu lesen, geben
Sieein:
t (type) um die neueste Nachricht anzuzeigen
tn (n fOr die fortlaufende angezeigte Nummer
z. B. die Nummer 1)
Haben Sie keine Post erhalten, erscheint die Nachricht ,No mail, .
Bild 3 -36: Beispiel von mail (Briefe empfangen)
Was soli mit der Post geschehen? Diese Frage drOckt das Fragezeichen aus,
das nach der Anzeige eines Briefes gezeigt wird. ahnlich wie bei more und pg
k6nnen Sie Ober bestimmte Tasten weitere Funktionen ausl6sen.
74
*
Es kann z. B. in der Datei .profile voreingestellt werden , daB Sie immer benachrichtigt werden
soli en, sobald neue Post eintrifft (Kommando biff)
3.1.9
Auf los geht's los ...
Die wichtigsten Funktionstasten von mail sind:
(delete) - leschen, ab in
den Papierkorb
Beenden des Programmes
Q
nachster Brief
D
nochmalige Anzeige des
vorherigen Briefes
Geben Sie selbst ein ? ein, dann erhalten Sie ein HilfsmenO, das Ihnen die meglichen Funktionen anzeigt:
?? -----------------------
Anzeige dieses Hilfemeniis
Programm beenden
Brief nochmals Anzeigen
q
quit
p
r
print
reply - - - - -
s [file]
save (default mbox)
w [file]
same without header wie unter 'S', jedoch ohne Absender-
Antwort an Absender schicken
der gesamte Text (mit Angaben von
wem die Post kam) soli in die angegebene Datei (file) geschrieben werden.
Angaben
print previous
vorhergehenden Brief anzeigen
d
de/ete - - - -
angezeigten Brief loschen
+
next (no delete)-
m [user]
mail to user---
nachsten Brief anzeigen (statt + kann
auch die Retumtaste gedriickt werden)
weiterteiten an Benutzer
!cmd
execute cmd - -
Kommando ausfiihren
?
get help - - -
Hilfemenii anzeigen
Bild 3-37: Beispiel des Hilfsmenii von mail
Mit mail konnen Sie, wie schon erwahnt, mit weltweit entfernten Rechnern Informationen austauschen, wenn Sie an dem UNIX-Rechnernetz EUnet (European User Network) oder Internet angeschlossen sind. Wenden Sie sich fOr weitere Informationen an die EuNet Deutschland GmbH, Emil-Figge-Str. 80, 44227
Dortmund, Telefon 0231/9720-0 oder an die GUUG (German UNIX User Group,
Elsenheimerstr 43, 80687 Miinchen, Tel. 089/5 70 7697, Fax 089/5 70 76 07).
75
3
UNIX - praktisch angewandt
3.1.10 Ausschalten eines UNIX-Rechners
In diesem Kapitel haben Sie bereits gelernt, wie Sie sich an- und abmelden und
welche Voraussetzungen erfOlit sein mOssen, um mit einem UNIX-Rechner zu
arbeiten. FOr den Start des Rechners ist der Systemverwalter zustandig und
eben so fOr das Herunterfahren und Ausschalten des Systems.
Wurde ein Rechner in den Multi-User-Betrieb hochgefahren, wird ein hOflicher
Systemverwalter vor dem Ausschalten erst alien Benutzern die Nachricht senden, daB sie sich z. B. alie innerhalb von einer Minute abmelden solien. Mit einem
spezielien Kommando (z. B. shutdown), das er an der Systemkonsole eingibt,
werden nach Ablauf dieser Frist alie noch laufenden Prozesse abgebrochen (gekillt - so hart sind hier die Brauche!) und das System in den Single-User-Modus
zurOckgefahren.
Der Systemverwalter gibt dann noch das Kommando sync ein. Damit werden
alie noch gespeicherten Datei-Informationen auf die Platte(n) zurOckgeschrieben
- und erst dann kann der Rechner ausgeschaltet werden. Auf manchen Systemen wird hierfOr das Kommando halt eingegeben.
sync
und/
oder
halt
(synchronisieren) und ausschalten
sync - Komrnando, urn Datei-Inforrnationen auf die Platte zuruckzuschreiben und den Rechner auszuschalten
[> Wichtig fOr Sie ist zu wissen:
Schalten Sie niernals den UNIX-Rechner einfach aus!
Es konnen Inkonsistenzen (Unbestandigkeit, Ungleichheiten) im Dateisystem
auftreten.
Solite es doch einmal passieren bzw. einmal notwendig werden (z. B. an einer
Workstation, an der Ihr Eingabe-Terminal auch gleichzeitig die Systemkonsole ist und durch einen Programmabsturz nichts mehr geht), dann inforrnieren Sie den Systernverwalter, damit er den dann unbedingt notwendigen Plattencheck (fsck) durchfOhrt!
76
Auf los geht's los ...
----------------------------------------
3.1.11
3.1.11 Zusammenfassung der ersten Kommandos
Um den Umsteigern von DOS auf UNIX eine kleine Lernhilfe zu geben, ist unter
Kommandoeingabe auf ahnliche Kommandos unter DOS hingewiesen.
Kommandoeingabe
Funktion
passwd {Benutzemame]
Andert das PaBwort
Das Paf3wort wird nicht angezeigt und
so lite mindestens 6 Zeichen enthalten.
Is [-FIR]
list
Zeigt den Inhalt von Directories bzw.
Attribute von Dateien
-F Format short
Directories sind mit "/" gekennzeichnet, ausfUhrbare Kommandos/Programme mit ,'(
-I long format
Anzeige mit Attributen
-R Rekursiv
Der Dateibaum mit samtlichen Unterdirectories wird angezeigt
Unter DO:
dir,lree
cd [Directory)
Wechsel in das Home- oder angegebene Directory
Ohne Angabe kehrt man immer ins
Home-Directory zurilck
wechselt in ein Directory nach oben
Beispiele:
cd
cd ..
UntcrDO :
change directory
cd
pwd
Iprint working directory
Zeigt das aktuelle Directory mit absolutem Pfadnamen an
date {+"Formatangaben'1
Beispiel:
date +"%d.%m. %y"
Unter DO:
date/time
Zeigt das Datum an
------------
+ Kennzeichen fUr eigene Formatierung
%y
fUr Jahr YY
%m
fUr Monat MM
fUr Tag TT
%d
%H- hour 00 - 23
%M- minute 00 - 59
%S- second 00 - 59
%T- time HH:MM:SS
%w- day of week - (Sunday=O)
%h- abgek. Monat - z.B. Jan - Dec
77
3
UNIX - praktisch angewandt
Kommandoeingabe
man [Kapitel-Nr) Kommando
Unler DO:
ber"hl n
whatis Kommando
cat Dateiname(n)
Unler DO;
IMuster
?Muster
Leertaste
q
more
who
who am i
finger [Benutzer)
tty
78
mehr
Zeigt den Inhalt von Dateien seitenweise an
h help zeigt die moglichen Kommandos, u.a.:
sucht vorwarts nach Muster
sucht ruckwarts nach Muster
zeigt die nachste Seite an
quit beendet more
more
pg Dateiname
Unler DO:
was ist das Kommando
Gibt eine Kurzinformation des angegebenen Kommandos aus
concatenate - zusammenfugen
Zeigt den Inhalt von Dateien
type
more datei(en)
Unler DO:
Funktion
manual
Gibt eine Beschreibung des angegebenen Kommandos ;n Ve"';ndung m;' I
more aus
page
Zeigt den Inhalt von Dateien oder einer Ausgabe seitenweise an
Etwas komfortabler als more; z. B. Angabe der Zeilennummer 1 um zur 1.
Zeile zuruckzugehen.
Returntaste - nachste Seite
Wer arbeitet am System?
Zeigt die angemeldeten Benutzer und
Terminals
Es wird der Benutzernamen, die Terminalbezeichnung und die Anmelde-~
zeit angezeigt
--Zeigt Benutzerinformation an
mit Namen@Rechner,
Terminal und Anmeldezeit
I
I
terminal type
Zeigt den aktuellen Terminalnamen
J
3.1.11
Auf los geht's los •.•
Kommandoeingabe
Funktion
write Benutzername@Rechner
schreiben
Einem anderen Benutzer Mitteilungen
auf den Bildschirm schicken
talk Benutzername
sprechen
Mit einem anderen Benutzer Mitteilungen fiber Bildschirm austauschen,
Verbindung eroffnen bzw. sich dazuschalten
mesg [y] [n]
messages
Verhindert oder er1aubt Mitteilungen
von anderen Benutzern mit write
(Schreibrecht fur Terminal)
n keine Schreiberlaubnis (no)
y wieder freigeben (yes)
Ohne Angabe wird der jeweilige Serechtigungszustand angezeigt (is Yon)
mail [benutzer[@rechner]}
Post versenden
benutzer. .. ]
Verschickt an einen oder mehrere Benutzer Post (mail)
(elektronische Post - e-mail)
Setreff eintragen, der in den Headerzeilen erscheint
Subject:
Eingabe der Nachricht uber Tastatur Seenden mit CTRL+d
copy - an: z.S. den eigenen Namen
Cc:
als Sicherungskopie
Ohne
Angabe wird die eingegangene
mail
Post angezeigt oder "no mail"
Auswahl:
Befehle innerhalb von mail:
? zeigt die moglichen Sefehle von
?
mail
t [n]
type zeigt die aktuelleln-te Nachricht
d
delete
loscht die aktuelle Nachricht
h
header zeigt eine Liste aller eingegangener Mail
r
reply erstellt eine Antwort an den Abm benutzer
sender
mail leitet die Nachricht an den angegebenen Senutzer we iter
s dateiname
save sichert die Nachricht mit Kopfzeilen in die angegebene Datei
w dateiname
write schreibt die Nachricht ohne Kopf________________________Lzeilen
-_
in die angegebene Datei
~
79
3
UNIX - praktisch angewandt
Kommandoeingabe
Kommandos
nur fur Systemverwalter:
Funktion
boot
Hochfahren des Rechners
shutdown
Herunterfahren des Rechners
An der Systemkonsole und als Benutzer
root einzugeben
synchronisieren
anhalten - ausschalten
sync
halt
80
3.2 Es )shellt<
In diesem Kapitel lemen Sie, daB Sie zwar unter UNIX arbeiten, aber Ihr direkter >Ansprechpartner' nicht UNIX, sondem
die Shell ist. Sie ist das Programm, das Ihre Kommandos entgegennimmt, vorverarbeitet und danach weiterleitet. Zusatzlich bietet die Shell Ihnen eine Reihe von Hilfen an. Vertrauen
Sie Ihre WOnsche der Shell an!
Die einzelnen Themen:
3.2.1
Aufruf von Kommandos und die Aufgaben der Shell
3.2.2
Ein- und Ausgabe der Shell
3.2.3
Verkettung von Kommandos
3.2.4
Der Pipe-Mechanismus unter der Shell
3.2.5
Metazeichen zur Expansion von Dateinamen
3.2.6
Ersetzungsmechanismus der Shell
3.2.7
Vordergrund- und Hintergrundprozesse
3.2.8
Zusammenfassung der in diesem Kapitel verwendeten
Kommandos
3.2.9
Obersicht der bisher kennengelernten Sonderzeichen
81
3
UNIX - praktisch angewandt
Es >shellt< - eine EinfOhrung in die Shell
,Shell, hat nichts mit schellen oder klingeln zu tun, sondern Shell kommt aus
dem Englischen und bedeutet Muschel oder Schale. Sie legt sich wie eine
Schale um den Betriebssystemkern und ermogJicht dem Benutzer, im Dialog
seine Anweisungen an UNIX zu geben.
Welche Aufgaben erfOllt die Shell?
!
Steuerung der
Ein- und
f3\ Ausgabe
V:V Pipe-Ver-
®
Ersetzen von Sonderzeichen
Bild 3-38: Shell als Schale des Betriebssystemkerns
82
3.2.1
Es .shellt.
3.2.1 Aufruf von Kommandos und die Aufgaben der Shell
Ais Sie Ihre ersten Kommandos aufgerufen haben, waren Sie sicher erfreut, daB
sie so prompt ausgefUhrt wurden. Wo wird man denn heute noch so schnell bedient? Das Team, bestehend aus der Shell und UNIX, haben dafOr gesorgt. Welche Vermittlerrolle zu UNIX hat hierbei die Shell gespielt? Verfolgen wir einen
Kommandoaufruf.
CD
®
®
Was wurde eingegeben?
Die Shell analysiert Ihre Eingabe wie folgt:
Was soli getan werden?
Is
Wie?
-I
11.wort = Kommandol
I Option I
Was soli bearbeitet werden?
•.Ihans
I Parameter I
Die Shell nimmt das 1. Wort der eingegebenen Zeile als Kommando und
sucht das dazugeherige Programm. Diesem Obergibt es den Rest der
Zeile als Anweisung. 1m obigen Beispiel wird Is gesucht und das gefundene Is-Programm mit den Parametern -I . .lhans aufgerufen. An dem
vorangestellten - bei -I erkennt das Is-Programm, daB der erste Parameter eine Option ist. Aile nicht mit - beginnenden Parameter werden
von Is als Dateiname oder Directory betrachtet.
Zwischen dem Kommando, der Option und dem Parameter mOssen als
Trennung mindestens 1 Leerzeichen oder Tabulatorzeichen stehen.
Wo findet nun die Shell das Is-Programm? Gibt es das Kommando
Oberhaupt? Die Shell sucht in bestimmten Directories nach ,ausfUhrbaren< Dateien mit dem angegebenen Namen. FOr jeden Benutzer ist
ein PATH (ein Suchpfad) eingerichtet, der die Namen der Directories
enthalt, die dabei durchsucht werden sollen.
Die zumeist unter PATH vorgegebenen Directories sind:
Ibin
lusr/bin
lusr/ucb
lusrllocal
Unter diesen Directories sind die Kommandos fUr den ,normalen<
Benutzer abgelegt. Dieser Suchpfad kann fOr jeden Benutzer abgeandert werden. Sie heren mehr darOber im Abschnitt 3.7.3 (Vordefinierte
Shell-Variable).
Das UNIX-System ist als Dialogsystem konzipiert, d.h., jeder Benutzer
kann direkt von seinem Arbeitsplatz (dem Terminal) Kommandos
aufrufen, und das Ergebnis wird in der Regel auf seinem Bildschirm
angezeigt.
Die Standardein- und -ausgabe ist das Benutzerterminal
Durch einfache Steuerzeichen in der Shell kann die Ein- und Ausgabe
umgeleitet werden. So bedeutet das GreBer-Zeichen > .Umleitung
nach<, das Kleiner-Zeichen < .Umleitung von<. Soli die Liste der Dateien
von lusrlkurslhans nicht am Bildschirm angezeigt werden, sondern in
eine Datei auf der Platte mit dem Namen inhalt geschrieben werden,
heiBt der Aufruf:
Is -I •.Ihans > inhalt
83
3
UNIX - praktisch angewandt
@)
Die Shell erleichtert Ihnen die Zusammenarbeit mit dem Rechner. So
gibt es eine Reihe von Sonderzeichen, die u.a. verwendet werden, um
lange Datei- und Pfadnamen abzukOrzen. Sie k6nnen der Shell z. B.
sagen: >Ich meine aile Dateien, deren Namen mit a oder b oder c
anfangen. e Das * steht z. B. fOr eine beliebige Zeichenfolge. Gibt es
unter /usr/kurs/monika kein anderes Directory beginnend mit >be kann
der Aufruf
statt Is -I befehle auch mit Is -I b* erfolgen
®
1m KapiteI3.7/3.8 und werden Sie weitere Funktionen der Shell kennenlernen. Ais eine der wesentlichen Aufgaben sei hier nur erwahnt, daB sie
ahnliche Funktionen wie eine h6here Programmiersprache aufweist. Sie
k6nnen die AusfOhrung eines oder mehrerer Kommandos davon
abhangig machen, ob vorab bestimmte Bedingungen erfOllt wurden.
Z. B. k6nnten Sie vorab prOfen (test), ob Oberhaupt ein Directory
/urs/kurs/hans vorhanden ist; wenn ja, soli das Inhaltsverzeichnis, das
Sie mit Is bekommen, in eine Datei mit dem Namen inhalt geschrieben
werden.
®
Das aufgerufene Kommando wird als eigenes Programm gestartet.
Hierbei gibt die Shell alles Wissenswerte (u.a. unter we/chem Namen
hat sich der Benutzer angemeldet? Wo ist sein Home-Directory?) an
das nachste Programm weiter. Die Programme/Prozesse' sind hierarchisch geordnet. Man spricht hierbei von Vater/Sohnprozessen (oder um nicht die MOtter und T6chter zu vernachlassigen - von Eltern/Kindprozessen).
Sobald die Shell Ihre Aufgaben ordnungsgemaB erfOllt hat, meldet sie sofort
wieder an Ihrem Bildschirm, daB sie bereit ist, weitere Auftrage entgegenzunehmen. Auf dem Bildschirm erscheint dann ein Bereitzeichen (auch Prompt genannt), abhangig vom Programm und Benutzer:
$
%
Bereitzeichen fOr den normalen Benutzer
in der Bourne- und Korn-Shell
in der C-Shell
#
Bereitzeichen fOr den Systemverwalter
>
Kennzeichen, daB die Shell weitere Eingaben
fOr einen Kommandoaufruf erwartet
BUd 3-39: Bereitzeichen der Shell
Spater lernen Sie, daB Sie diese Bereitzeichen andern k6nnen.
Die Shell ist ein Vermittler zwischen dem Betriebssystem und dem Benutzer, ein
Programm, das fOr jeden Benutzer beim Anmelden gestartet wird. Es gibt zwi84
'ein gestartetes Programm wird als ProzeB bezeichnet
3.2.1
Es .shellt,
schenzeitlich eine Reihe von She"-Programmen, die hierfur genutzt werden kennen. Die ursprungliche She", die auf allen UNIX-Rechnern verfugbar ist und in
der auch meist die systemspezifischen Ablaufe angepaBt sind, ist die sog.
Bourne-She" (abgeleitet von Bourne, der UNIX mit entwickelt hat, hier u.a. die
She"). Hier kurz ein Oberblick der drei am meisten eingesetzten She"-Programme:
-
Name der
She"
Aufruf
Prompt
BourneShe"
Ibin/sh
Korn-She"
C-Shell
L
-
Kurze Beschreibung
ICharakteristisch
ursprungliche She"
auf allen Rechnern verfugbar
Grundlage fUr systemspe,mscha Abll'ufe
nicht sehr
benutzerfreundlich
Ibin/ksh
kompatibel zur Bourne-She"
mit wesentlichen Erganzungen
u.a. Historie-Mechanismus,
Alias, Befehlszeileneditor
komfortabel und
machtig
wird mehr und
mehr eingesetzt
Ibin/csh
%
Ahnlichkeit zur Programmiersprache C - ebenso HistorieMechanismus, Alias, Befehlszeileneditor - aber nicht kornpatibel zur Bourne-Shell
wird gerne von
Entwicklern
genutzt
$
$
I
L
1m Kapitel3.8 werden die wesentlichen Erganzungen der Korn-She" zur BourneShe" behandelt und die Unterschiede zur C-She". Zu Beginn lernen Sie, mit der
Bourne-She" umzugehen.
85
3
UNIX - praktisch angewandt
3.2.2 Ein- und Ausgabe der Shell
Ein typisches Programm liest Daten (z. B. die GeM/ter der Mitarbeiter einer
Firma), bearbeitet sie (z. B. addiert die einze/nen GeM/ter auf) und gibt das Endergebnis (hier die Summe aller GeM/ter) aus. Bei den meisten UNIX-Programmen liest das Programm von >der Standardeingabe' und schreibt das Ergebnis
. auf >die Standardausgabe,.
Die Standardein- und Standardausgabe sind das Terminal des jeweiligen Benutzers. Fehlermeldungen, die die AusfOhrung des Kommandos betreffen, werden ebenfalls am Bildschirm angezeigt. Zu diesen Fehlermeldungen geh6ren
z. B. Hinweise, daB eine Datei nicht vorhanden ist. Wenn Sie versehentlich >5/'
statt /5 aufrufen, werden Sie die Fehlermeldung erhalten >5/ not found, (5/ nicht
gefunden). Die Ein- und Ausgabe ist numeriert (0, 1, 2). Man nennt diese numerische Zuordnung auch Dateideskriptor. Spater, bei der Umleitung der Fehlerausgabe auf Seite 92 werden wir nocheinmal darauf zurOckkommen.
Shell
$
$
Bildschirm
(0)
Standardeingabe
Tastatur
Bild 3-40: Standardein- und Standardausgabe der Shell
Wie und wann leiten Sie die Standardausgabe um?
Bei den Kommandos, die Sie bisher kennengelernt haben, hatte es ausgereicht,
die erhaltene Information am Bildschirm zu lesen. Viele Ergebnisse wollen Sie
vielleicht aufbewahren und zu einem spateren Zeitpunkt wieder verwenden; sei
es, daB Sie die Daten noch verandern wollen, z. B. mit Oberschriften versehen
und ausdrucken, oder sammeln und die Werte spater fOr Statistiken oder andere
Zwecke verwenden.
86
3.2.2
Es .shellt,
Unter der Shell wird diese Umleitung in eine Datei dadurch erreicht, daB nach
dem Kommando das Umleitungszeichen ,>< eingegeben wird. Zwischen den
einzelnen Angaben muB jeweils ein Leerzeichen oder Tabulatorzeichen stehen.
Kommando
>
I
Datei oder Geratenamen
>. urn die Ausgabe eines Kornrnandos urnzuleiten
Nachfolgende Grafik soli Ihnen verdeutlichen, daB bei der Eingabe von
Is > inhalt
die Ausgabe (das Inhaltsverzeichnis des aktuellen Directories) nicht auf den Bildschirm, sondern in eine Datei auf der Platte geschrieben wird. Die Datei wird, da
kein zusatzlicher Pfadname angegeben ist, in dem aktuellen Directory angelegt.
Datei auf der
Platte
Shell
$ Is > inhalt
$
Bild 3-41: Umleitung der Standardausgabe
87
3
UNIX - praktisch angewandt
Ahnlich wie das Terminal hat auch der Drucker einen Namen, z. B.lp (fur lineprinter - Zeilendrucker). Wie Sie schon gehert haben, sind aile Gerate unter dem
Directory /dev abgelegt. Sie kennten z. B. die Uste Ihrer Dateien ausdrucken mit
Is > /dev/lp.
Da bei Mehrbenutzer-Systemen viele Benutzer gleichzeitig drucken wollen, ist
allerdings die direkte Umleitung auf den Drucker (mit » nicht zu empfehlen. Unter UNIX werden die Programme abwechselnd von jedem Benutzer durch den
Rechner bearbeitet, damit niemand zu lange warten muB. Die Druckausgabe ergibt dann ein ganz schenes Kauderwelsch, ahnlich der Telegrammaufnahme
des schweizer Kabaretlisten Emil. Deshalb wird in der Regel hier ein sog.
,Spooler, eingesetzt, ein Programm, das die Druckauftrage sammelt und sie der
Reihe nach ausgibt.
Erinnern Sie sich noch an das Kommando cat (concatenate - zusammenhiingen
oder verketten)? Die Grundfunktion des Kommandos ist es, einen Dateiinhalt anzuzeigen. PrOfen Sie mit cat, ob in der Datei inhalt tatsachlich die Uste Ihres aktuellen Directories enthalten ist! Bei Monika ergibt sich folgende Ausgabe:
$ Is> inhalt
Umleitung der Ausgabe von Is
$ cat inhalt
Anzeige des Dateiinhalts von
,inhaJt.
Die Dateinamen stehen hier untereinander, da nur die Ausgabe
bei Is in Spalten aufgeteilt erfolgt.
befehle
projektA
ueb1
$
)
Bild 3-42: Umleitung der Standardausgabe
Mit cat kennen Sie auch die Ausgabe umleiten, d.h., der Inhalt der Datei soli
nicht am Terminal angezeigt, sondern z. B. in eine andere Datei geschrieben
werden. Mit dem Kommando cat und einer Ausgabe-Umleitung kennen Sie also
Dateien kopieren, neu erstellen und Dateien aneinander anhangen!
Wie konnen Sie Dateien mit Hilfe der Ausgabeumleitung erstellen?
Sie rufen das Kommando cat dazu ohne Dateinamen auf, dann wird als Standardeingabe das Terminal angenommen. Gleichzeitig geben Sie an, daB die
Ausgabe auf eine Datei umgeleitet werden soli:
cat
>
Dateiname
cat> - Kommando, um schnell eine Datei zu erstellen
88
3.2.2
Es .shellt.
Ein Beispiel hierzu:
$ cat> neu
$
Aile Zeilen, die Sie eintippen
werden in die Datei neu geschrieben.
So auch dieser Text.
Um den Text abzuschliessen, geben
Sie das Zeichen fUr Dateiende ein.
Wie bei dem Kommando mail muss das
Zeichen fur Dateiende in einer eigenen
Zeile stehen
Ende der Eingabe <CTRL + d>
BUd 3-43: Beispiel Erstellen einer Datei
1m ersten Beispiel der Umleitung (Bild 3-41 auf Seite 87) wurde das Ergebnis
von Is (Liste des aktuellen Directories) in die Datei inhalt geschrieben. Genauso
kann jedes andere Kommando umgeleitet werden, so z.8. die Ausgabe von
date in die Datei Datum:
date > Datum
Die Umleitung ist sehr einfach, sie kann allerdings unangenehme Auswirkungen
haben, wenn Sie einen Dateinamen angeben, der bereits vorhanden ist. Wenn
Sie das Kommando ,date> neue aufrufen, wOrde der im Bild 3-43 eingegebene Text, der bereits in der Datei neu steht, Oberschrieben werden, ohne daB
das System Sie warnt.
l>
Deshalb Vorsicht bei Umleitungen:
Bereits vorhandene Dateien werden uberschrieben!
Und bei dieser Gelegenheit gleich eine generelle Warnung: dies ist typisch
fOr UNIX! UNIX (bzw. die Shell) fragt nicht lang, ob Sie wirklich Dateien 16schen
oder Oberschreiben wollen; es fOhrt aus, was Sie ihm auftragen zu tun. UNIX
betrachtet Sie als ,mOndigen Anwender< - und nimmt an, daB Sie schon
wissen, was Sie tun.
Doch wie heiBt der Titel dieses Lehrbuches? Keine Angst vor UNIX. Sie werden
lernen, sich eigene Hilfen zu schaffen. Wollen Sie 'auf Nummer sicher gehen<
und bei evtl. bereits bestehenden Dateien neue Informationen anhangen, so gibt
es hierfOr ein eigenes Umleitungszeichen.
Bei der Korn- und der C-Shell kann durch eine Option verhindert werden, daB
Dateien bei der Ausgabeumleitung Oberschrieben werden (mehr darOber im KapiteI3.8.7, Zusatzliche Optionen).
89
3
UNIX - praktisch angewandt
Wie konnen Sie eine Datei erganzen?
Um das Ergebnis eines Kommandos an eine bestehende Datei anzuhangen,
werden zwei GroBer-Zeichen als Urnleitung verwendet:
Kommando »
I
bestehende Datei
», urn die Ausgabe eines Kornrnandos an eine Datei anzuhangen
An die mit Is > inhalt erstellte Datei kann z. B. mit dem Kommando date das Datum angehangt werden:
$ date »
$ cat inhalt
inhalt
I
l
Mit cat kann die Datei inhalt
angezeigt werden :
befehle
projektA
ueo1
Wed Jun 11 17:10:00 MET 1991
I
Bild 3-44: Beispiel Umleitung der Standardausgabe (Erganzung)
Und nun wird Ihnen auch die Bedeutung von cat (concatenate - zusammenhiingen) klar werden:
cat Dateiname1 Dateiname2Dateiname3 »
Dateiname4
cat - Kornrnando, urn Dateien aneinanderzuhangen
Die Dateien Dateiname1, Dateiname2, Dateiname3 werden an das Ende der Datei Dateiname4 gehangt. Achten Sie darauf, daB jeweils die zuerst genannten
Dateinamen an das Ende der zuletzt genannten Datei angehangt werden. In unserem Beispiel kennen wir an die vorhin erstellte Datei neu die zwischenzeitlich
erweiterte Datei inhalt anhangen:
90
Es .sheUt.
3.2.2
/ $ cat in halt »
$ cat neu
neu
Aile Zeilen, die Sie eintippen
werden in die Datei neu geschrieben.
Text der bisherigen
So auch dieser Text.
Dalei neu
Um den Text abzuschliessen, geben
Sie das Zeichen fOr Dateiende ein.
Wie bei dem Kommando mail muss das
Zeichen fOr Dateiende in einer eigenen
rl~~~f~hen- - - - - - - , ,..-_----'_ _ _ _-,
I projektA
I angehangler
I ueb 1
I TexI aus der
L WgJcf...J!:!...n 11..J l..;...1Q;.OQ MEL 1~91 ___ .J ,--_
D_at_e-,ii_nh_a_II_ _-----'
I
I
~$--------------------~)
Bild 3-45: Beispiel Zusammenhangen von Dateien mit cat
Wie ist es Ihnen bisher ergangen? Haben Sie schon einige gute Seiten an UNIX
kennengelernt? - In der allgemeinen EinfOhrung wurden die besonderen Merkmale von UNIX aufgefOhrt. Eine weitere gute Eigenschaft von UNIX sei hier noch
erganzt: UNIX ist sehr umweltfreundlich. - Es gibt einen eigenen MOlieimer. Sie
finden ihn unter dem Directory /dev (devices - Gerate). In diesen MOlieimer konnen Sie hineinwerfen, so viel Sie wollen, er wird immer wieder leer sein! Er hat
den passenden Namen >null, (wertlos, leer).
Wie werlen Sie die Ausgabe weg?
Wird das Umleitungszeichen (» fOr die Ausgabe zusammen mit /dev/null ver
wendet, so wird das Kommando zwar ausgefOhrt, das Ergebnis jedoch nicht angezeigt, sondern >verschluckt<. Die Datei /dev/null ist ein Pseudo-Gerat, das
etwa die Funktion eines MOlieimers besitzt (sogar sehr umweltfreundlich - der
Inhalt lost sich in >Nichts< auf).
Kommando > /dev/nuU
> /dev/null/, urn die Ausgabe eines Kornrnandos .wegzuwerlen<
Diese Anweisung wird gerne verwendet, um Programme zu testen, d. h. Fehlermeldungen auf den Bildschirm zu bekommen, wahrend die eigentliche Ausgabe
gleich in den >MOlieimer< wandert.
91
3
UNIX - praktisch angewandt
Wie konnen Sie die Fehlermeldungen umleiten?
Zu Beginn dieses Abschnittes wurde die Eingabe mit (0) gekennzeichnet, die
Ausgabe mit (1) und die Fehlermeldung mit (2). Bei der Umleitung von Ein- und
Ausgabe wird die Unterscheidung durch das GroBer- >>, und Kleiner-Zeichen
>< ' ausgedrOckt. Soli die Ausgabe der Fehlermeldung umgeleitet werden, wird
vor das GroBer-Zeichen die Zahl 2 gesetzt:
Kommando
2>
I
Dateiname oder Gerat
2>, um Fehlermeldungen umzuleiten
Sehen wir uns hierzu ein Beispiel an:
$ cat inhalt dtum 2> fehler
Eine Datei dtum gibt es nicht
$ cat fehler
Die Fehlermeldung erscheint
nicht am Bildschirm, sondern
wurde in die Datei feNer
umgeleitet.
Mit cat wird der Inhalt der
Datei fehler angezeigt
befehle
projektA
ueb1
WedJun 1117:10:00MET1991
cat: cannot open dtum
)
Bild 3-46: Beispiel Fehlerumleitung
Wann kann Ihnen die Umleitung der Eingabe von Nutzen sein?
Bei Ihren ersten Kommandos haben Sie u. a. die Kommandos >write, und >mail,
kennengelernt. Hierbei wurde der Text des Briefes am Bildschirm eingegeben.
Sie werden aus Erfahrung wissen, daB sich sehr leicht Fehler einschleichen. Eine
Aktennotiz oder ein Brief muB oft noch erganzt oder verandert werden. Hier ware
es z.B. von Vorteil, Sie konnten den Text erst in einer Oatei ablegen, dann ausdrucken, korrigieren, und erst danach per UNIX-mail an andere Abteilungen versenden.
Die Umleitung der Eingabe benotigen Sie also immer dann, wenn Text oder andere Informationen bereits in einer Oatei gespeichert sind und nicht erst Ober
das Terminal eingegeben werden mOssen.
92
3.2.2
Es >sheUt.
Wie leiten Sie die Standardeingabe urn?
Geben Sie bei einem Kommando das Kleiner-Zeiehen und dann den Namen einer Datei an, erwartet UNIX keine Eingabe am Terminal, sondern holt sieh die Information aus der nach dem Kleiner-Zeiehen angegebenen Datei. Diese Umleitung k6nnen Sie sich gut merken, wenn Sie sieh das Kleiner-Zeichen als Pfeil
vorstellen, der von der Datei auf das Kommando zeigt.
Kommando
datei
<
<, urn die Standardeingabe urnzuleiten
Wie k6nnen Sie die Umleitung der Standardeingabe nUtzen? Wenn Sie z. B. einen Brief an den Benutzer gisela Ober die ·elektronisehe mail. versenden wollen,
und Sie haben den Text dazu bereits in einer Datei mit dem Namen text1 abgelegt, dann k6nnen Sie folgendes Kommando verwenden:
$ mail gisela < text1
$
Bild 3-47: Beispiel Umleitung der Eingabe
In dem obigen Beispiel wird die Datei text1 als Naehrieht an gisela gesehiekt.
Der Brief wird in diesem Fall nieht am Terminal eingegeben, sondern es wird
stattdessen auf die Datei text1 zurOckgegriffen.
Was passiert wohl, wenn Sie als Eingabe Idev/null nehmen?
Sie erinnern sieh, Idevlnull ist der MOlieimer unter UNIX. Hiermit erhalten Sie ein
EOF (End of File - also das gleiehe Zeichen, wie Sie es mit der Eingabe der Tasten fOr Dateiende, z. B. <CTRL + d>, erhalten).
I
Kommando
<
Idev/null
< /dev/null, urn .EOF, (end of file - Zeichen fUr Dateiende) zu erhalten
Diese Umleitung ist dann sinnvoll, wenn Sie z. B. bei einem Programm testen
wollen, ob es richtig geladen wird und ordnungsgemaB endet. Die Dateneingabe
wird sofort durch das Endezeichen abgeschlossen.
93
3
UNIX - praktisch angewandt
3.2.3 Verkettung von Kommandos
Bisher haben Sie gelernt, daB Sie der Shell nur dann ein Kommando (Programmaufruf) erteilen kennen, wenn sie bereit ist, d.h. das Bereitzeichen ($) am Terminal erscheint. Viele Terminals besitzen einen internen Puffer, und Sie kennen bereits Kommandos eingeben, wahrend ein vorher gestartetes Programm noch arbeitet. Sobald die Shell bereit ist, liest sie das vom internen Puffer des Terminals
aufgenommene Kommando.
Unabhangig von der Terminalart kennen Sie auch mehrere Kommandos in einer
Zeile durch ein Semikolon >;, verketten. Die so angegebenen Kommandos werden nacheinander abgearbeitet; die Shell meldet sich erst dann wieder, wenn sie
das letzte Kommando abgearbeitet hat.
Kommando1 ; Kommando2 ; Kommando3; ...
I
I
I
I
I
I
; , um Kommandos zu verketten
Ein Beispiel hierzu:
$ pWd; date; who; Is
lusrlkurslmonika
WedJun 1117:10:00MET1991
monika
tty11 Jun 11 08:10
gisela
tty12 Jun 11 09:00
hans
tty13 Jun 11 07:50
Datum
befeh/e inhalt neu projektA ueb 1
$
Bild 3-48: Beispiel einer Verkettung
94
3.2.4
Es >sheUt.
3.2.4 Der Pipe-Mechanisrnus unter der Shell
Was ist eine Pipe? Auch wenn die Kopfe manchmal unter UNIX rauchen, die
Pipe hat nichts mit einer Tabakpfeife zu tun. Die Pipe ist hier eher als pipeline
(Rohrleitungssystem) zu verstehen. Sukzessive wird etwas weitergeleitet, wie an
einem FlieBband. Sie konnen Komrnandos mit einem Pipe-Zeichen (I) verbinden, wobei jeweils die Ausgabe des vorherigen Komrnandos als Eingabe fUr das
nachste Kommando dient.
Kommando1 I Kommando2
I
I, urn Kornrnandos fiber eine Pipe rniteinander zu verbinden.
Die Ausgabe des Kommandos1 ist die Eingabe von Kommand02
Bisher konnten wir mit der Urnleitung der Ausgabe ein Ergebnis eines Kommandos z. B. in eine Datei schreiben. Diese neuerstellte Datei kann dann wiederum als Eingabe fUr ein weiteres Kommando urngeleitet werden. Mit einer
Pipe kann diese etwas umstandliche Art mit einern Kornmandoaufruf erfolgen.
Um den Pipe-Mechanismus zu verdeutlichen, wollen wir eine kleine Aufgabe 10sen: Es soli das Inhaltsverzeichnis von dem Directory fbin seitenweise am Bildschirm angezeigt werden. Das Ergebnis konnen wir erhalten, wenn wir die Ausgabe von Is umleiten in eine Datei und diese Datei mit pg aufrufen. Das gleiche
Ergebnis erhalten wir uber eine einzige Kommandozeile mit Hilfe des Pipe-Mechan ism us:
Verarbeitung uber Umleitung der
Ausgabe
Verarbeitung mit dem
Pipe-Mechanismus
Is fbin > hilfsdat
pg hilfsdat
Is fbin I pg
Bild 3-49: Beispiel Pipe-Mechanismus
Um die Pipe an weiteren Beispielen zu zeigen, verwenden wir das Kommando
wc. Mit diesem Kommando konnen Sie zahlen, wie viele Zeilen, Worter und Zeichen in einer Datei enthalten sind.
wc [-Iwc] [Dateiname(n)]
I
,I
word count
Zahlen von Wortem
I
I Icharacter - Zeichen
'words - Worter
lines - Zeilen
wc - Kornrnando, urn Zeilen, Warter und Zeichen zu zahlen
95
3
UNIX - praktiseh angewandt
Geben Sie bei dem Kommando we (word count) keine Optionen (-I oder -w oder
-c) an, so werden als Ergebnis drei Zahlenwerte ausgegeben: die Anzahl der Zeilen, die Anzahl der Werter und die Anzahl der Zeichen.
Wenn Sie z. B. wissen wollen, wieviele Dateien (bzw. Kommandos) unter dem
Directory /bin enthalten sind, so kennen Sie mit der Ein-fAusgabeumleitung
mit zwei Kommandoaufrufen das Ergebnis erhalten:
Is fbin > in halt-bin
schreibt samtliche Dateien vom Directory /bin
in die Datei inhalt-bin
we -w < inhalt-bin
zahlt aile Werter aus der Datei inhalt-bin
Mit Hilfe der Pipe sparen Sie sich die Ein- und Ausgabeumleitung und kennen
mit einem Kommando das gleiche Ergebnis erreichen:
Is /bin I we -w
118
Am Bildschirm wird dann nicht die gesamte Liste aller Dateien angezeigt, sondern nur das Ergebnis (118).
Die nachstehende Grafik zeigt die gleiche Aufgabe fOr unser aktuelles Directory.
Is
I we-w
Datum
befehle
Is
inhalt
neu
Eingabe
projektA
uebl
temporare Datei im Speiche
open file
6
Ergebnis am Bildschirm
Bild 3-50: Beispiel Pipe mit Is I we
96
we -w
3.2.4
Es >shellt.
Welche Eigenschaften hat eine Pipe?
o
Sie verbindet zwei Kommandos Ober einen temporaren Puffer.
o
Alles was in diesen Puffer geschrieben wird, wird sofort an das zweite Kommando weitergeleitet; er ist somit eine FIFO-Datei (first in first out - was
zuerst hereinkommt, wird zuerst wieder ausgegeben).
o
Das Betriebssystem und die Shell Obernehmen dabei die Pufferung und die
Synchronisation der Weiterleitung der Daten.
o
Damit kennen Ergebnisse, wie ein WerkstOck auf einem FlieBband, immer
weiter bearbeitet werden (schnellere Verarbeitung als bei der Ein- und Ausgabeumleitung).
o
In einer Kommandofolge dOrfen beliebig viele Pipes vorkommen.
Wie konnen Sie die Pipe nUtzen? - Ein paar praktische Beispiele:
Sic her haben Sie schon bemerkt, daB aile Dateien eines Directories mit Is standardmaBig alphabetisch sortiert angezeigt werden. Enthalt Ihr Directory Dateinamen, die mit GroB- und Kleinbuchstaben beginnen, so werden bei amerikanischer Spracheinstellung zuerst die mit GroBbuchstaben beginnenden Dateien
angezeigt, dann erst aile Dateien, deren Namen mit Kleinbuchstaben anfangt.
Verbinden Sie das Is-Kommando durch eine Pipe mit einem Sortierpragramm,
kennen Sie sich z. B. die Ausgabe des Inhaltsverzeichnisses so sortieren lassen,
daB GraB- und Kleinbuchstaben gleichwertig alphabetisch sortiert werden.
Ebenso kennen Sie die Dateien mit Hilfe des Sortierprogramms zeilenweise alphabetisch sortieren - z.B. um fast mOhelos ein Telefonverzeichnis anzulegen.
Lemen Sie deshalb ein paar nOtzliche Kommandos, die Sie als Filter fOr Textdateien verwenden kennen:
sort [-1rn1 [Dateiname(n)]
I
numeric string
Am Zeilenanfang beginnende
Zahlen, die durch Leerzeichen von anderen
Zeichen getrennt sind, werden in arithmetischer Reihenfolge sortiert
reverse - Es wird in umgekehrter Richtung sortiert
fold - Klein- u. GroBbuchstaben sind gleichberechtigt
sort - Kornrnando, urn Dateiinhalte zu sortieren
Weitere Optionen und Beispiele von
paar Befehle) auf Seite 325.
sort find en Sie im Kapitel 3.9 (Noch ein
97
3
UNIX - praktisch angewandt
$ Is
Datum
$ Is I
befehle
inhalt
neu projektA ueb 1
inhalt
neu projektA
sort-1
befehle Datum
ueb 1
Bild 3-51: Beispiel Pipe mit Sortierprogramm
Bald werden Sie Ihren UNIX-Rechner gerne einsetzen, um z. B. auch Dokumentation jeglicher Art zu erstellen. Sie haben die Texte jederzeit im Zugriff, kennen
sie schnell verandern oderTeile (Textbausteine) davon in Angeboten und Briefen
verwenden. Allerdings kennte es dann vorkommen, daB Sie nicht mehr genau
wissen, welchen Namen Sie einer bestimmten Datei gegeben haben. Sie erinnern sich aber genau an den Inhalt und wissen, daB Sie z. B. das Wort .mail, benutzt haben. Mit dem Kommando grep (als EselsbrOcke: greifen, heraussuchen)
kennen Sie bestimmte Worte oder Zeichenfolgen aus Dateien oder Ergebnissen
von Kommandos herausfiltern:
grep "Muster" [Dateiname(n)]
get regular expression
grep - Kommando, um nach Mustern in Dateiinhalten zu suchen
Aile angegebenen Dateinamen werden nach dem vorgegeben Muster durchsucht. 1st die Suche erfolgreich, werden der Dateiname und die Zeile mit dem
gefundenen Muster angezeigt.
$ grep "mail" inhalt Datum neu
neu: Wie bei dem Kommando mail muss das
I
gefundene Zeile mit dem gesuchten Begriff
Name der Oatei, in der der gesuchte Begriff vorkommt
Bild 3-52: Beispiel grep Suchen nach einem Muster
98
Das Kommando grep wird auch oft als sog. Filterprogramm bei Pipes verwendet. Hier werden dann die ubergebenden Zeichenketten (Strings) nach dem vorgegebenen Muster durchsucht. Eine sehr oft benetigte Abfrage finden Sie auf
Seite 114. Weitere Optionen und Beispiele zu grep finden Sie im Kapitel 3.4.
Es ,she lit.
3.2.5
3.2.5 Metazeichen zur Expansion von Dateinamen
Um beim Suchen nach einem bestimmten Muster (Wort) nicht aile Dateinamen
des aktuellen Directories eintippen zu mOssen, kennen Sie ein weiteres nOtzliches Werkzeug der Shell einsetzen: das Ersetzen von Dateinamen durch Metazeichen. Was sind aber Metazeichen? Metazeichen sind Zeichen, die eine erweiterte Bedeutung haben. Eine solche erweiterte Bedeutung kann sein: >hier
dart ein be/iebiges Zeichen stehen<, >hier dart eine be/iebige Fo/ge von Zeichen
stehen< oder >hier dart eines der nachfo/gend aufgefiihrten Zeichen stehen<. Die
Shell ersetzt Dateinamen, in den en Metazeichen vorkommen, durch aile Dateinamen des betreffenden Directories, auf welche die Vorgabe paBt.
Welche Metazeichen gibt es?
Melazeichen
Ersetzung
*
Das Siernchen sleht fOr eine beliebige Zeichenfolge (oder kein Zeichen)
?
Das Fragezeichen stehl fOr ein einzelnes beliebiges
Zeichen (aber nicht fOr ein Leerzeichen)
[ ... ]
Die Klammer wird ersetzt durch ein in der
Klammer angegebenes Zeichen:
z.B.:
[abc]
wird ersetzt durch a oder b oder c
[1-3]
wird ersetzt durch 1 oder 2 oder 3
[I ... ]
Die Klammer mit Ausrufezeichen wird ersetzt
durch ein beliebiges Zeichen, das nicht
in der Klammer angegeben ist. z.B.:
[!abc] wird ersetzt durch ein beliebiges
Zeichen, aber nicht a oder b oder c
[! 1-3] wird ersetzt durch ein beliebiges
Zeichen, aber nicht 1 oder 2 oder 3
\
Dieser Schragslrich (backs/ash) hebt den
Erselzungsmechanismus fOr das nachfolgende
Metazeichen auf (Fluchtsymbol) z. 8.:
\?
Das Fragezeichen wird nicht durch ein
beliebiges Zeichen ersetzt, sondern
als Fragezeichen Obernommen
Bild 3-53: Dateinamenexpansion durch Metazeichen
99
3
UNIX - praktisch angewandt
[> Bei der Umleitung von Ein- und Ausgabe ( >, », <, 2> ) erfolgt keine
Dateinamenexpansion durch Metazeichen. Bei Ausgabe- oder Fehlerumleitung wOrden die Metazeichen mit als Dateinamen angelegt werden, was
zu Fehlern fOhren wOrde (siehe Bild 3-57).
Beispiele zur Dateinamenexpansion durch Metazeichen
Um festzustellen, in welcher Datei innerhalb des aktuellen Directories das Wort
'mail- vorkommt, kennen Sie folgendes Kommando geben:
$ grep "mail" * -
Die Shell ersetz! das •
durch aile Dateinamen, die sie in dem
aktuellen Directory lindet:
inhalt
befehle
neu ueb1
Datum
projektA
neu: Wie bei dem Kommando mail muss das
I
1
I
"-
I
gefundene Zeile mit dem gesuchten Begriff (5 . Beispiel
auf Seite 98)
Name der Datei, in der der gesuchte Begriff vorkommt
Bild 3-54: Beispiel grep mit Dateinamenexpansion (*)
Oder mechten Sie gerne wissen, welche zweistelligen Kommandos es unter
dem Directory /bin gibt, bzw. wieviele es sind?
$ Is /bin!??
/bin/ar
/bin/as
/bin/cb
Ibin/cc
/bin/cp
/bin/cu
/binldd
Ibin/df
/bin/du /bin/If /binlls
/bin/ed /binlll /bin/mv
Ibinlid /binlln /bin/nm
/binlld /binllr Ibin/pr
/bin/ps
/binlrm
/bin/sh
/bin/su
/bin/tk
/bin/tr
Ibinlwc
Ibinlxd
$ Is /bin!?? I we-w
28
Bild 3 -55: Beispiel Is mit Dateinamenexpansion (?)
Gibt es die Terminalbezeichnung tty11 - tty17 unter dem Directory /dev? Mit der
eckigen Klammer laBt sich dies leicht abfragen. Beachten Sie aber bitte, daB jeweils nur ein Zeichen ersetzt werden kann. Bevor Sie umblattern und das Ergebnis sehen, versuchen Sie es einmal.
100
3.2.5
Es -shellt.
$ Is /dev/tty1 [1-7]'-----l
/dev/tty11
/dev/tty12
/dev/tty13
/dev/tty14
richtige Abfrage
/dev/tty15
/dev/tty 16
$ Is /dev/tty[11-17] /d
/dev/tty17
fehlerhafte Eingabe. es
/tty! 11-17 J n t ~ nd kann jewe~ls nur nach 1-steliigen
ev
0 ou
Ziffern (Zelchen) gesucht werden
Anzeige der Terminals tty11-tty17
und tty21-tty27
$ Is /dev/tty[1-2] [1-7]
~
__________________________-J/
Bi/d 3 -56: Beispiel Is mit Dateinamenexpansion ([])
Wie war Ihre Trefferquote?
Sie kennen sich mit Hilfe von Metazeichen viel Schreibarbeit ersparen. Wenn Sie
sich den Inhalt von der Datei Datum ansehen wollen, genOgt es, nur
cat 0*
aufzurufen, vorausgesetzt, es gibt nur eine Datei, deren Namen mit ,D. anfangt.
Sollten mehrere Dateien mit ,D. beginnen, wOrden sie aile der Reihe nach angezeigt werden.
Was passiert Wahl, wenn Sie das Datum an das Ende der Datei ,neu. setzen
mechten, und Sie geben bei der Umleitung der Ausgabe ebenfalls nur D* an?
$ Is
Datum
befehle
inhalt
$ cat neu »0*
$ Is
Datum
D" befehle
neu
projektA ueb 1
Metazeichen kOnnen nicht bei Umleitung
von Ein- oder Ausgabe verwendet werden I
inha/t
neu
projektA ueb 1
Stat! die Datei neu an die Datei Datum anzuhiingen. wurde
eine neue Datei mit dem Namen D" angelegt.
Bi/d 3-57: Beispiel: Fehlerdurch Angabe von Metazeichen bei Umleitung von
Ein-/Ausgabe
101
3
UNIX - praktisch angewandt
Wie kann die fehlerhaft angelegte Datei wieder geloscht werden?
Hierzu gibt es das Kommando zum Leschen von Dateien rm (remove). Es ist als
das gefahrlichste Kommando unter UNIX bekannt. Mit diesem Kommando werden Dateien unwiederbringlich gelescht!
rm [-i)
Dateiname(n)
I I
remove I I interactive
entfernen
unwiederbringlich loschen
Jede angegebene Datei wird nochmal angezeigt.
Geloscht wird sie erst, wenn y (yes) eingegeben wird
rm - Kommando, um Dateien zu loschen
Verwenden Sie rm sicherheitshalber immer mit der Option -i, dann sehen Sie
nochmals die zu leschenden Dateien und kennen somit verhindern, daB Ihnen
durch einen kleinen Schreibfehler zuviel gelescht wird, zumal dann, wenn Sie
Metazeichen verwenden. Das ,i, fOr interaktiv zeigt die Datei nochmals an und
verlangt von Ihnen die Bestatigung mit 'y' (fur yes), erst dann lescht es die DateL
Bei der Eingabe anderer Zeichen (also auch nur das Driicken der Returntaste)
bleibt die Datei erhalten. Weitere Optionen und Beispiele in Kapitel 3.4.
Was passiert, wenn, um die in unserem Beispiel irrtOmlich angelegte Datei >0*,
zu leschen, rm D* eingegeben wird? Es wird nicht mal 1 Sekunde dauern, und
die Shell meldet sich, als ware nichts passiert, diensteifrig wieder mit dem
Promptzeichen $. In der Zwischenzeit hat sie unseren Auftrag gewissenhaft
durchgefOhrt und aile Dateien, die mit .D. beginnen, gelescht! Mit rm -i D* wird
jede gefundene Datei erst angezeigt und Sie kennen entscheiden, ob sie gelescht werden soli (wenn ja: Eingabe von 'y', wenn nein: Eingabe von 'n'; statt 'n'
konnen Sie auch nur die Returntaste drucken).
Um in unserem Beispiel die Datei D* zu leschen, kennen wir auch mit Hilfe des
Fluchtsymbols (Aufhebung von Metazeichen) .\. gezielt nur die Datei ,D*, angeben:
$ rm -i D*
Datum: n
oder
$ rm -i 0\*
D·: y
D*: y
Bild 3-58: Loschen von Dateien mit Metazeichen - Beispiel Fluchtsymbol \
102
3.2.5
Es .sheUt.
Bisher hatten Sie die Metazeichen * ? [ ] und das Fluchtsymbol \ (backs/ash nach hinten weisenden Schragstrich) kennengelernt. Mit dem backs/ash kennen
Sie auch die Bedeutung der Sonderzeichen aufheben. Zu den Sonderzeichen
I sowie die nicht sichtbaren Zeichen
geheren auch . ..; > < & I \ "$"
der Leer- (blank) und Returntaste (newline - nl).
\
Fluchtsymbol, Aufhebung des nachfolgenden
Sonderzeichens
Wenn Sie z. B. eine Kommandozeile eingeben und der Bildschirm ist nicht groB
genug, aile Angaben in einer Zeile zu schreiben, so kennen Sie mit dem backs/ash die Bedeutung der Returntaste aufheben und auf der nachsten Zeile weiterschreiben:
cat Datum inhalt neu \
> ueb1 I grep Zeile
$
AI/e Zei/en, die Sie eintippen
Zei/e stehen
Kennzeichen, daB die Shell
weitere Eingaben fUr einen
Kommandoaufruf erwartet (»
Die Eingabe wird als eine Kommandozeile von der
Shell erkannt:
cat Datum inhalt neu ueb1 I grep Zeile
Die Shell gibl den Inhalt der Dateien Datum, inhalt,
neu und ueb iiber den Pipe·Mechanismus an das
Programm grep weiter. Das Programm grep sucht
aile Inhalte der Dateien nach dem Wort ,Zeile.
durch und gibt nur die gefundenen Zeilen aus. (In
der Datei neu sind zwei Zeilen mit dem Wort .Zeile·
gefunden worden (siehe auch Seite 98).
Bi/d 3-59: Beispie/ Aufhebung von Sonderzeichen durch Backs/ash
Um bestimmte Sonderzeichen (*,? [l, Leerzeichen usw.) zu Obergeben, werden
sie in Anfiihrungszeichen gesetzt (d. h., sie sollen nicht von der Shell beim
Kommandoaufruf durch Dateinamen ersetzt werden).
Obergabe von bestimmten Sonderzeichen
Keine Ersetzung der Metazeichen: * ? [)
In dem obigen Beispiel wurde aus dem Inhalt aller angegebener Dateien nach
dem Wort (Muster) ,Zeile. gesucht. Gefunden wurden ,Zeile. und ,Zeilen., da als
Muster nur die zusammenhangende Zeichenfolge gesucht wurde. Das Leerzeichen dient als Trennzeichen. Soli auch das Leerzeichen als Muster mit Obergeben werden, also z. B. nach ,Zeile stehen· gesucht werden, muB der Ausdruck in
AnfOhrungszeichen gesetzt werden.
103
3
UNIX - praktisch angewandt
hebl das Ende-Zeile-Zeichen auf
r
$ cat Datum inhalt neu \
> ueb11 grep " Zeile stehen"
/
.
Zelle stehen
~
$
Kennzeichen , daB die Shell
weitere Eingaben fOr einen
Kommandoaufruf erwartet (»
Inhalt der Oalei neu:
Aile Zeilen, die Sie eintJppen,
werden in die Datei neu geschrieben.
So auch dieser Text.
Um den Text abzuschliessen, geben
Sie das Zeichen fur Dateiende ein.
Wie bei dem Kommando mail mu8 das
Zeichen fOr Dateiende in einer eigenen
....... Zeile stehen
befehle
projektA
ueb1
Wed Jun 11 17: 10:00 MET
Bild 3-60: Beispiel doppe/te Anfuhrungszeichen
Oa mit Hilfe der AnfOhrungszeichen wird die Wirkung der Metazeichen *? [ ]
aufgehoben wird, kennen wir die Oatei >0*< auch mit folgender Eingabe leschen:
$ rm -i "0*"
D·: y
$
Bild 3-61: Beispiel: Aufhebung von Metazeichen (doppelte AnfUhrungszeichen)
104
3.2.6
Es .shellt.
3.2.6 Ersetzungsrnechanisrnus der Shell
Sie haben bisher schon eine Reihe von Ersetzungsmechanismen kennengelernt:
Zeichen
Bedeutung - Ersetzung durch
aktuelles Directory
..
* ?
darOberliegendes Directory (Parent-Directory)
[1
Metazeichen, Erweiterung der Dateinamen durch ein
oder mehrere Zeichen
\
Aufhebung der Bedeutung eines nachfolgenden Sonderzeichens
" "
Obergabe von bestimmten Sonderzeichen
Keine Ersetzung von Metazeichen: • ? [ 1
Bild 3 -62: Ersetzungsmechanismen 1. Teil
Der Ersetzungsmechanismus der Shell kann mit dem Kommando echo gut dargestellt werden. Echo, wie der Widerhall in den Bergen, gibt aile nachfolgenden
Worter, die durch Leerzeichen getrennt sind, als Kopie auf dem Bildschirm wieder. Es wird in erster Linie verwendet, um bei eigenen Shellprozeduren eine
Nachricht auf den Bildschirm zu schreiben. (Shellprozeduren sind Anweisungen,
z. B. Kommandos, die in einer Datei abgespeichert sind und wie ein eigenstandiges Kommando aufgerufen werden - mehr dazu im KapiteI3.7.2).
Das Kommando echo eignet sich auch dazu, auszuprobieren, was die Shell aus
einer Eingabezeile macht.
echo
I
Widerhall, Kopie
[Text ... Text
Iaile Worter des Textes werden von
der Shell als Nachricht wiedergegeben
echo - Kornrnando, urn Nachrichten auf den Bildschirrn auszugeben
Der Text nach dem Kommando echo bis zum Zeilenende oder bis zum nachsten
Semikolon wird als Nachricht auf dem Bildschirm wiedergegeben. Setzen Sie
Ihre Texte vorsichtshalber immer in AnfOhrungszeichen, damit Sonderzeichen
wie '?<, ,*< usw. nicht durch Dateinamen von der Shell ersetzt werden!
105
3
UNIX - praktisch angewandt
Sehen Sie im nachsten Beispiel die Wirkung von echo und Sonderzeichen:
I hebt das Ende-Zeile-Zeichen fUr die Shell auf J
/ $ echo f welche Nachricht erhalten \
'I
> Sie? I Ersetzung des' durch aile Dateinamen yom aktuellen Directory
Datum
befehle inhalt neu
welche Nachricht erhalten Sie ~
Kennzeichen, daB die Shell
weit ere Eingaben fUr einen
Kommandoaufruf erwartet (»
projektA ueb1
waren l-stellige Dateinamen im aktuellen
Directory vorhanden, wiirde auch das Fragezeichen durch diese Dateinamen ersetzt
werden.
)
\.
Bild 3 - 63: Beispiel echo mit Sonderzeichen
Die gleiche Eingabe von echo, wobei aile Parameter in AnfOhrungszeichen gesetzt werden, ergibt folgendes Resultat:
$ echo "* welche Nachricht erhalten \
> Sie?"
• welche Nachricht erhalten
Sie?
Bild 3-64: Beispiel echo mit Sonderzeichen innerhalb von Anfiihrungszeichen "
Unter dem Kapitel 3.7 erfahren Sie mehr Ober die Einsatzm6glichkeiten von
echo. Dort werden auch die Shell-Variablen (veranderliche GraBen) behandelt.
Vorab jedoch einige Grundinformationen Ober die Variablen:
106
3.2.6
Es .shellt.
Was sind Shell-Variablen?
Variablen, wie der Name bereits aussagt, k6nnen variabel sein, veranderliche
Werte beinhalten. Unter der Shell k6nnen Sie Variablen, die durch einen Namen
identifiziert angesprochen werden, einen Wert zuweisen. Diesen Wert k6nnen
Sie zu einem spateren Zeitpunkt abfragen.
Definition einer Variablen durch
Zuweisung eines Wertes
NamTWert
Eingabe ohne Leerzeichen!
I
Ersetzung der Variablen ·Name·
durch den zugewiesenen Wert
$Name
= - Zuweisung von Variablen unter der Bourne-Shell
Ein praktisches Beispiel fUr die Nutzung von Variablen:
Angenommen, Sie arbeiten oft in verschiedenen Directories. Um nicht jeweils
den gesamten Pfadnamen beim Wechsel in die diversen Directories anzugeben
oder zu Oberlegen, wie Sie das Directory relativ ansprechen (.J ... ), definieren
Sie eine Variable, der sie als Wert den Pfadnamen zuweisen:
k=/usr/kurs
Mit Variablen k6nnen Sie sich eine Reihe von AbkOrzungen schaffen. Um den
Wert einer Variablen zu bekommen, wird als Kennung ein Dollarzeichen .$. vor
den Namen gesetzt. Geben Sie .cd $k. ein, erkennt die Shell, daB es sich nicht
um den Buchstaben .k. handelt, sondern um die Variable ·k, und ersetzt .$k,
durch dem zugewiesen Wert >/usr/kurs<.
Variable sind temporar und bleiben solange erhalten, bis die Shell beendet wird
(Beenden der Sitzung - neues Login).
$ k=lusr/kurs
$ echo "hallo k"
hal/o lusrlkurs
$ pwd
lusrlkurslmonika
t
Variablen werden auch innerhalb von
Anfiihrungszeichen ""
erselzt!
I
$ cd $klhans
$ pwd
lusrlkurslhans
Bi/d 3-65: Beispiel: Bi/dung und Nutzung von Variablen
Weitere Nutzungsm6glichkeiten der Shell-Variablen finden Sie in den Kapiteln
3.6 und 3.7 (speziell Korn-/e-Shell: Integer-Variable).
107
3
UNIX - praktisch angewandt
Ersetzung durch das Ergebnis eines Kommandos
Die Pipe erlaubt es, die Ausgabe eines Kommandos als Eingabe eines nachfolgenden Kommandos zu verwenden. Ein weiterer Mechanismus erlaubt es, die
Ausgabe/Ergebnisse von Kommandos als Parameter weiterer Kommandos zu
nutzen.
Mit Hilfe der Sonderzeichen' '(Accent Grave) k6nnen Sie das Ergebnis von
Kommandos als Parameter Obergeben (Kommandosubstitution).
Ersetzung durch das Ergebnis
des angegebenen Kommandos
'Kommando'
oder in einer neueren Schreibweise:
$( Kommando )
l>
I
I
Unbedingt auf die Leerzeichen nach und vor der Klammerung achten!
$( ) - Ersetzung durch das Ergebnis eines Kommandos
Auch hier zum besseren Verstandnis ein Beispiel mit echo:
Das Ergebnis des Korn- ~
Irnandos
.date' soli hier
eingesetzt werden.
I
$ echo" hallo $k haute am' date'
> arbeiten
'who I wc -I' Benutzer"
\ _ derBacksla~h' \ '
~~~~ ~~~ Zeilen-
hallo lusrlkurs heute am Fri Jun 2016:47:53
MET 1996 arbeiten
4 Benutzer
$
Variable und Ergebnisse von Kornrnandos werden innerhalb von
doppelten AnfOhrungszeichen n ••• "
ersetzt!
Bild 3-66: Beispiel: Ersetzung durch Ergebnisse von Kommandos
Diese Ersetzungsart zeigt Ihnen u.a. auch die Kombinationsm6glichkeiten unter
UNIX! Weitere praktische Beispiele der Ersetzungsmechanismen finden Sie im
Kapitel 3.4 und 3.5 (Dateiverwaltung und -pflege und Sicherung von Dateien).
108
3.2.6
Es ,shellt,
Keinerlei Ersetzung
Wenn sowohl das $-Zeichen als auch der Accent Grave ' nicht von der Shell ersetzt werden sollen, d.h., keinerlei Substitutionen (Ersetzungen) sollen durchgefOhrt werden, dann wird der Text in halbe AnfDhrungszeichen ~ ... ~ gesetzt.
Dieses Zeichen (Accent Aigu) sieht auf manchen Terminals eher wie ein kleiner
gerader Strich aus ( I ).
/
Text, Text
keinerlei Substitution
Metazeichen, Variablen, Ergebnisse von Kommandos werden nicht ersetzt
/
Zum besseren Verstandnis ein Beispiel mit echo:
$ echo ~ hallo $k heute am ' date'
> arbeiten
'who I we -I' Benutzer'
hal/o $k heute am 'date \
arbeiten
'who I wc -I' Benutzer ~
$
Bild 3-67: Beispiel keinerlei Substitution durch / /
Zusammenfassung der weiteren Ersetzungsmechanismen:
Zeichen
Bedeutung - Ersetzung durch
$ name
Ersetzung durch den der Variablen zugewiesenen
Wert
" text .. text "
'Kommando'
$( Kommando )
~ text
.. text~
Oberg abe von bestimmten Sonderzeichen,
keine Ersetzung von Metazeichen: * ? [ ]
aber Ersetzung von Shellvariablen ,$. und
Kommandosubstitution • ' , (bzw. .$( ).
Das Ergebnisldie Ausgabe des Kommandos
wird als Parameter ubergeben (Kommandosubstitution)
keinerlei Substitution
Metazeichen, Variablen, Ergebnisse von Kommandos werden nieht ersetzt
Bild 3-68: Ersetzungsmechanismen 2. Teil
109
3
UNIX - praktisch angewandt
3.2.7 Vordergrund- und Hintergrundprozesse
Ein gestartetes Programm wird als ProzeB bezeichnet, wobei ein gestartetes
Programm auch aus einer Foige von Einzelprozessen (Unterprogrammen) bestehen kann. Sie haben bisher schon eine ganze Reihe von Programmen gestartet. Jedes aufgerufene Kommando wird als Programm von der Shell verwaltet.
Diese Programme wurden im Vordergrund bearbeitet. Was bedeutet Vordergrund? Ihre Shell nimmt das Kommando an, uberpruft es, ersetzt evtl. Metazeichen und startet ein Programm, welches das Kommando abarbeitet. Solange
dieses Programm nicht beendet ist, konnen Sie am Terminal kein weiteres Kommando sichtbar aufrufen. Sie k6nnen zwar weitere Kommandos eintippen, doch
werden diese erst durchgefUhrt, wenn das zuvor aufgerufene Kommando beendet ist. Dies wird durch das Bereitzeichen der Shell ($) am Bildschirm angezeigt.
Der Ablauf dieser Programme wird als VordergrundprozeB bezeichnet. Sie werden gestartet durch:
Kommando
Zu Beginn haben Sie gelesen, daB UNIX ein Multi-User- und Multi-ProcessingSystem ist. Dies bedeutet, daB jeder Benutzer gleichzeitig mehrere Programme
starten kann. Wie soli das aber m6glich sein, wenn jeweils ein Kommando nach
dem anderen ausgefUhrt wird? Es gibt einmal die Pipe, die zur gleichen Zeit
mehrere Programme startet - zum anderen k6nnen Programme im Hintergrund
ablaufen. Der Unterschied zwischen Hintergrundprozessen und Vordergrundprozessen besteht darin, daB die Shell nicht auf die Beendigung des gestarteten Programmes wartet, sondern sich sofort mit dem Bereitzeichen meldet.
Hintergrundprozesse werden weder schneller noch langsamer abgearbeitet als
Vordergrundprozesse.
Wie starten Sie ein Programm, das im Hintergrund ablaufen soli?
Ais letzte Eingabe der Kommandozeile wird ein et-Zeichen & angefUgt.
Kommando
&
I
&, um Programme im Hintergrund ablaufen zu lassen
Wann ist es sinnvoll, Programme im Hintergrund zu verarbeiten? Bei allen Programmen, die zeitaufwendig sind, denn Sie wollen sicher Ihren UNIX-Rechner
voll beanspruchen. Zeitaufwendig sind z. B. Obersetzungsprogramme von groBen Quelldateien (Compiler), Formatierprogramme von Texten, gr6Bere Sortieroder Such programme oder Sicherungslaufe (Kapitel 3.4).
110
3.2.7
Es .shent.
Die Hintergrundprozesse haben unter der grafischen Oberflache an Bedeutung
veri oren. Bei zeitaufwendigen Prozessen effnen Sie einfach ein neues Fenster
und kennen in diesem dann weiterarbeiten.
Doch bei Arbeiten an einem ASCII-Terminal sind sie sehr wertvoll. Deshalb sehen wir uns ein paar Beispiele dazu an.
Angenommen, wir mechten z. B. die verhaltnismaBig groBe Datei /usr/lib/coo kies alphabetisch sortieren (die SprOche sind dann noch unverstandlicher, da die
Zeilen nicht mehr zusammenpassen). Die Ausgabe leiten wir in das Directory
/tmp um, in dem nur temporare (zeitlich begrenzte) Dateien abgelegt werden. Da
das Sortieren einer groBen Datei zeitaufwendig ist, rufen wir das Kommando als
HintergrundprozeB auf:
&J
gemeldete
Proze6nummer
in der BoumeShell '
$ sort lusr/lib/cookies > Itmp/cookies.alph
26
Bei Programmen, diedas Ergebnis Ober Bildschirm ausgeben,
$
sollte die Ausgabe umgeleitet
werden, damit ungestort am Bildschirm weitergearbeitet werden kann
)
Bild 3-69: Beispiel Aufruf eines Programmes, das im Hintergrund ablaufen soli
Bevor sich die Shell >wieder bereit< ($) meldet, teilt sie die Nummer des von ihr
gestarteten Hintergrundprogrammes mit. Warum wohl? Wissen Sie noch, wie
Sie ein gestartetes Kommando wieder abbrechen kennen? Mit der Kombination
der Tasten:
I CTRL I
+
GJ
(oder eine entsprechende andere Kombination, je nach Rechner)
Ein im Hintergrund gestartetes Programm wird nicht mehr von Ihrer direkten
Shell >betreut" und Sie haben Ober Ihr Terminal keinen EinfluB mehr auf den Ablauf. Um ein Hintergrundprogramm abzubrechen, brauchen wir also eine andere
Eingriffsmeglichkeit.
Wie brechen Sie einen HintergrundprozeB ab?
Um einen HintergrundprozeB abzubrechen, wird ein eigenes Kommando aufgerUfen, das kill-Kommando. FOr dieses Kommando benetigen Sie die Ihnen vom
System beim Start des Programmes mitgeteilte ProzeBnummer.
*
In der Korn- und G-Shell werden Hintergrundprozesse Ober eine zusatzliche ProzeBkontrolle
gesteuert (weitere Informationen hierzu finden Sie im Kapitel 3.8.8 auf Seite 319)
111
3
UNIX - praktisch angewandt
kill
[-9]
I
I
toten
abschiel3en
ProzeBnummer(n)
I
I
Signal
urn einen Prozel3 sicher abzubrechen
kill - Kommando, um Programme vorzeitig abzubrechen
$ kill -9 26
26 killed
-T
I
ProzeBnummer (PID) des
Hintergrundprozesses
I
$
Bild 3-70: Beispiel Abbruch eines Hintergrundprozesses
Mit den Tastenkornbination <CTRL + c> k6nnen Sie einen Prozel3, den Sie im
Vordergrund gestartet hatten, abbrechen. UNIX schickt hierbei an den Prozel3
eine entsprechende Meldung - oder genauer gesagt, ein Signal'. Manche Programme ignorieren ein >einfaches< kill-Signal. Schickt man ihnen jedoch kill -9,
so k6nnen sie den >Abschul3< nicht abwenden und werden sicher gekillt. Nun,
das klingt fast wie im Wilden Westen. Doch die UNIX-Gesetze sind streng. Benutzer k6nnen nur ihre eigenen Prozesse >killen<. Nur der Superuser (der Sheriff
unter den Benutzern) dart auch fremde Prozesse abbrechen.
Welche Programme werden zur Zeit yom Rechner bearbeitet?
Nachdem in der Bourne-Shell bei Hintergrundprozessen keine >Fertigrneldung<
ausgegeben wird, wissen Sie nie genau, wann das von Ihnen gestartete Hintergrundprogramm beendet ist.Das Kommando ps (process status) gibt Ihnen
Gber Ihre eigenen und durch die Option -e Gber aile zur Zeit laufenden Prozesse
Auskunft. Das Kommando zeigt Ihnen die Prozel3nummer (PID - Process IDentification Number) an, den Namen des Terminals, von dem das Programm gestartet wurde, die Zeit, die der Prozel3 bisher an Rechnerzeit verbrauchte und
den Namen des Kommandos. Mit der Option -f erhalten Sie zusatzlich angezeigt: die Nummer des >Elternprozesses< (PPID - Parent Process IDentification
Number) und die Startzeit, wann das Programm gestartet wurde.
112
*
Weitere Informationen finden Sie im Bild 3-203 (Tabelle mit einigen Signalen) auf Seite 320
3.2.7
Es .shellt,
ps
-,
process statu~
[- ef ]
,
I full format
Ausgabe alier Prozesse,
nicht nur der eigenen
ps - Kommando, urn den Status der Programme abzufragen
Wollen wir einen eben gestarteten HintergrundprozeB sofort wieder abbrechen,
haben aber die Nummer des Programmes nicht beachtet (zwischenzeitlich
wurde z. B. der Bildschirm mit anderen Ergebnissen Oberschrieben), erhalten wir
durch das Kommando ps die wesentlichen Programminformationen:
Sehen wir uns hierzu ein Beispiel an:
r - - - - I Term inal-
-r
$ps I
.-::-----;-;----:-:-:;-'--:,,--, 10 TTY
Zeit
I
TIME
'------.----' 23 tty11 0:03
26 tty11 0:04
27 tty11 0:01
$ kill -926
26 killed
Kommandoaufruf
I
COMMAND
-sh
sort lusrl/iblcookies
p's ~_~ _ _~~--~
das gerade gestartete
Kommando
$
Bild 3 - 71: Beispiele der Kommandos ps und kill
Diese Kommandos werden sicher after von Systemverwaltern aufgerufen als
von ,normalen. Benutzern. Um z. B. Kollegen weiterzuhelfen, denen durch ein
fehlerhaftes Programm oder falschen Aufruf von Kommandos das Terminal
blockiert ist (d.h., am Terminal ist keine Ein- oder Ausgabe mehr moglich), kann
der Systemverwalter an Hand der durch ps -ef erhaltenen Informationen feststellen, welches Programm an welchem Terminal gestartet wurde und den fehlerhaften ProzeB killen.
Sie selbst konnen sich aber auch bei einer ahnlichen Situation an einem anderen
freien Terminal anmelden, bzw. an einem Fenster auf der grafischen Oberflache,
die aktiven Programme mit ps -ef anzeigen lassen und den ,hii.ngenden ProzeB<,
dessen Eigner (gleiche Benutzerkennung - User Identification) Sie sind, abschieBen (,killen.). Das kill-Kommando konnen Sie also auch fOr Vordergrundprozesse
verwenden.
113
3
UNIX - praktisch angewandt
Arbeiten Sie unter der einer grafischen Oberflache, d. h. Sie arbeiten immer mit
mehreren ,Terminals<, dann empfiehlt sich folgendes Kommando, um aile Ihre
laufenden Prozesse zu sehen:
ps -ef I grep Benutzernamen
Mit dem Kommando ps -ef k6nnen Sie durch die Angabe des jeweiligen VaterProgrammes (PPID - Parent Prozess Identification) auch sehr gut die Programmstruktur unter UNIX erkennen.
Einige UNIX-Systeme haben speziell bei dem Kommando ps andere Optionen:
Statt ps -e wird dann ps -a
angegeben. Zusatzlich k6nnen mit der Option -x aile System prozesse angezeigt
werden.
Einen Eindruck, wie die Hierarchie der Prozesse aufgebaut ist, sehen Sie im
(Stand der Programme prozess status bevor wir die Nummer 26 gekillt hatten):
In der Korn- und C-Shell k6nnen Prozesse zusatzlich noch Ober eine sog.
Jobcontrol gesteuert werden. Auch bereits gestartete Vordergrundprozesse
k6nnen hiermit gestoppt werden, um sie dann als Hintergrundprozesse weiterlaufen zu lassen. Davon mehr im Kapitel 3.8.8 auf Seite 319.
114
3.2.7
Es .shellt.
/
$ps -e1
UfO
root
root
monika
sela
ans
monika
monika
gisela
gisela
w
PID
0
1
23
24
25
26
28
29
30
PPID
0
0
1
1
1
23
23
24
24
TTY TIME
STIME
Jun
Jun
8:30:01
8:45:31
8:55:02
9:02:00
9:02:30
9:02:10
9:02:10
?
?
tty11
tty13
tty12
~11
11
tty13
tty13
I
0:05
0.02
0:03
0:03
0:02
0:04
0:01
0:01
0:01
COMMAND
swapper
/etc/init
-sh
-sh
-sh
sort /usr/lib/cookies
ps -ef
Is /bin
wc -I
Te~inal I
Jommandoaufruf
Zeit inMinulen und Sekunden .../
Startzeit
Parent Process Identification
ValerprozeB
Process Identification
ProzeBnummer
User Identification
Benutzername
Beispiel Kommando ps -ef
interner ProzeB des Betriebssystems
(Speicherauslagerung von Programmen)
swap per 0
Initialisierungsprozel3
(Starten des MultiUser-Betriebs)
25
sh Shell liir
Hans
30
Kommando
we
Pipeverarbeitung
FOr jeden Benutzer
ist ein eigenes Shell-Programm gestartet worden, als er sich angemeldet hat (Login).
Aufgerufene
Kommandos
(Programme)
26
Kommando
sort
Hintergrund
Bild 3-72: Grafische Darstellung der ProzeBstruktur
115
3
UNIX - praktisch angewandt
Zusammenfassung der Eigenschaften von Hintergrundprozessen:
116
o
Jedes Programm kann in den Hintergrund geschickt werden. Programme,
die Nachrichten Ober Bildschirmausgabe leiten (Benutzerdialog) sind hierfOr
nicht geeignet, da der eigentliche Sinn, am Bildschirm weiterzuarbeiten, dann
nicht gegeben ist. Vorder-/Hintergrundprogramme sind gleichberechtigt,
d. h. sie werden weder schneller noch langsamer bearbeitet.
Aufruf: Kommando &
o
Das Kommando wird von der Shell ahnlich wie ein VordergrundprozeB aufbereitet (Umleitung der Ein- IAusgabe, gleicher Ersetzungsmechanismus,
ParameterObergabe usw.).
o
Die Shell meldet beim Start von Hintergrundprozessen deren Nummer (PID
- Process IDentification Number) und ist sofort bereit fOr weitere Anweisungen. Sie wartet nicht auf die Beendigung des von ihr gestarteten Hintergrundprozesses.
o
Hintergrundprozesse konnen zuverlassig durch das Kommando kill -9 PIO
abgebrochen werden.
o
In der Korn- und C-Shell gibt es eine eigens Jobcontrol, mit der Prozesse im
Vorder- und Hintergrund gesteuert werden konnen.
Es .shellt.
3.2.8
3.2.8 Zusammenfassung der in diesem Kapitel
verwendeten Kommandos
I
Funktion
Kommandoelngabe
we [-weI]
~
word count, Worter zahlen
]
Zahlt Zeilen, Worter und Buchstaben
-w word
Anzahl der W6rter
Anzahl der Zeilen
·fline
-c character
Anzahl der Zeichen
I
sort -fnr ZeIc-h-e-n- - - - - -
sortieren
Sortiert Dateiinhalte oder Zeichenketten nach verschiedenen Kriterien
-f fold
GroB- und Kleinbuchstaben werden gleich behandelt
-n number
Numerische Werte am
Anfang werden numerisch sortiert
-n reverse
es wird in umgekehrter
f - - - - _ _ _ _ _ _ _ _ _ _-I-Richtung sortiert
J
I
grep "Muster" Dateiname(n)
Unlet 00 :
find
-------'
j----
rm [-i] Dateiname(n)
Unter 00 :
- loschen
I remove
Loscht Dateien (unwiederbringlichl)
-i interactive
die L6schung muB erst
mit "y" bestatigt werden
del
echo
Uoter 00 :
get regular expression
Durehsueht Dateiinhalte naeh bestimmten Zeiehenvorgaben/SuehI muster
echo
----r-IG-ibt Zeiehenketten auf dem Bildschirm aus
kill -9 [PID]
ps [-efl)
Bei einigen Systemen werden un-
kill (toten)
Bricht einen ProzeB sicher ab
I
process status
Anzeige der aktuellen Prozesse
-e every
Anzeige aller Prozesse
valles Format
mit allen Attributen
aile Prozesse
aile System prozesse
~:::'ICh.Optionen ve.~ so ~~;
117
3
UNIX - praktisch angewandt
3.2.9 Ubersicht der bisher kennengelernten Sonderzeichen
Zeichen
Anzeige
am
$
#
Bildschirm >
Umleitung
Umleitung
Umleitung
Umleitung
>
»
2>
<
;
I
.
der Ausgabe
mit Anhangen an eine bestehende Datei
der Fehlerausgabe
der Eingabe
Verketlung von Kommandos
(mehrere Kommandos in einer Zeile)
oder""
Pipezeichen
..
aktuelles Directory
daruberliegendes Directory (Parent-Directory)
* ? [ ]
Metazeichen
beliebige Zeichenfolge
ein beliebiges Zeichen
eines der in Klammern angegebenen Zeichen
eines der in Klammern angegebenen Zeichen "von bis"
ein beliebiges Zeichen auBer einem der in Klammer angegebenen Zeichen
*
?
[abc]
[a-z ]
[!a-z]
\
Aufhebung der Bedeutung des nachfolgenden Sonderzeichens
"text .. text"
Obergabe von bestimmten Sonderzeichen,
keine Ersetzung von Metazeichen: * ? [ ]
aber Ersetzung von Shellvariablen und Ersetzung durch
Ergebnisse von Kommandos
$name
Ersetzung durch den der Variablen zugewiesenen Wert
,
Kommando'
$( Kommando )
118
Bedeutung - Ersetzung durch
Bereitzeichen der Shell fUr
- normale Benutzer
- Systemverwalter (root)
- Folgezeile fUr weitere Kommandoeingaben
Das Ergebnisldie Ausgabe von dem Kommando
wird als Parameter ubergeben (Kommandosubstitution)
, text .. text '
keinerlei Substitution
Metazeichen, Variable, Ergebnisse von Kommandos werden nicht ersetzt
&
Starten von Hintergrundprozessen
3.3 Editoren unter UNIX
1m Duden steht unter ,Editor< Herausgeber. Auch wenn Sie
keine ,Zeitschriften oder Bucher herausgeben<wollen, ist dieses Kapitel fUr Sie interessant und wichtig. Als Editor wird im
EDV-Fachjargon ein Programm bezeichnet, mit dem Texte
erstellt, verandert und erganzt werden.
Die einzelnen Themen:
3.3.1
Erstellung von Texten
3.3.2
Unterschiede zwischen Editor und Textverarbeitung
3.3.3
Der ed-Editor
3.3.4
Obersicht der Sonderzeichen und Kommandos
imed
3.3.5
Obersicht der wesentlichen Eigenschafien des
Editors vi
3.3.6
Obersicht der haufig benutzten vi-Kommandos
3.3.7
Der batchorientierte Editor sed
3.3.8
Zusammenfassung der Editoren
119
3
UNIX - praktisch angewandt
3.3.1 Erstellung von Texten
Um Informationen jeglicher Art zu speichern, d. h. in einer Datei abzulegen, wie
z.B. Adressen, Briefe, eigene Shell-Prozeduren (Kapitel3.7 und 3.8) oder Programm-Quelltexte, muB der Text zunachst einmal eingegeben, erfaBt werden.
1m vorherigen Kapitel haben Sie gelernt, wie Sie mit Hilfe von >Umleitungen< Dateien anlegen k6nnen. Mit dem Kommando
cat > dateiname
konnten Sie Ober die Tastatur Ihres Terminals Texte eingeben. Sobald Sie am
Anfang einer Zeile das EOF-Zeichen (End of file, Dateiende z. B. <CTRL + d»
tippten, wurde der geschriebene Text unter dem angegeben Dateinamen gespeichert. Mit der Umleitung » konnten Sie weitere Zeilen, andere Dateien oder
Ergebnisse aus Kommandos anhangen. Bei Fehlern innerhalb einer Zeile konnten Sie mit der ,backspace oder delete-Taste, zeichenweise 16schen und berichtigen. Sobald Sie allerdings eine Zeile abgeschlossen hatten, konnten Sie evtl.
Fehler nicht mehr korrigieren. Und wer schreibt schon fehlerfrei? - Dies bedeutet, mit cat sollten nur kurze Texte erstellt werden. Um nachtraglich zu korrigieren, ben6tigen Sie auf jeden Fall einen Editor.
3.3.2 Unterschiede zwischen Editor und Textverarbeitung
o
o
o
Ein Editor ist ein Programm zum Erstellen und Andern von Texten.
Soli der Text anschlieBend ausgedruckt werden, evtl. mit Uberschrift und
Seitennummern versehen, der linke und rechte Rand ausgerichtet werden so wie diese Buchseite hier, wird ein getrenntes Programm verwendet:
ein Druckformatierprogramm.
Ein Textverarbeitungsprogramm stellt die Funktionen des Editors und des
Programms zur Druckaufbereitung gleichzeitig zur VerfOgung. Die Texte
werden dann mit zusatzlichen Angaben zur Druckaufbereitung abgespeichert. Komfortable Textverarbeitungsprogramme stellen interaktiv, d. h. sofort, am Bildschirm dar, wie spater ausgedruckt wird. Diese Programme werden als >Wysiwyg<-Programme bezeichnet (What you see is what you get).
Meist erfolgt hierbei ein automatischer Zeilen- und Seitenumbruch. Sie
schreiben z. B. eine Zeile, und sobald genOgend W6rter die Zeile gefOlit haben, springt der Cursor sofort automatisch auf die nachste Zeile (sog. wrapping).
Je nach Drucker (Matrix- oder Laserdrucker) k6nnen auch unterschiedliche
Schriftarten verwendet werden, auBerdem Fettdruck, gr6Bere Schriftzeichen
etc.
Viele Editoren haben inzwischen manche Funktionen mit eingebunden, die unter
den Begriff der Textverarbeitung fallen.
120
3.3.2
Editoren unter UNIX
Aligemein unterscheidet man Editoren nach
o
zeilenorientierten Editoren, d. h., die Zeilen werden einzeln bearbeitet, Anderungen konnen nur pro Zeile erfolgen
o
und bildschirmorientierten Editoren. Fur Eingabe und Anderung steht der
gesamte Bildschirm zur Verfugung. Hier konnen Sie meist mit den CursorFunktionstasten
8
CD
an die fehlerhafte Stelle wandern und dort Text korrigieren, uberschreiben,
loschen oder einfUgen. Bildschirmorientierte Editoren sind somit ausgezeichnete Hilfsmittel zur Erstellung und Bearbeitung von Program men und Texten,
die keine zusatzlichen Druckangaben enthalten sollen. Fur die Erstellung von
Geschaftsbriefen, Aktennotizen und Dokumentationen (Handbucher etc.)
eignen sich komfortable Textverarbeitungsprogramme besser, sie werden
meist als optionale Softwarepakete zu UNIX angeboten.
Unter dem Betriebssystem UNIX von AT&T gibt es bis zur Version V leider nur
den zeilenorientierten Editor ed, ab Version V gehOrt zum Standard auch der
bildschirmorientierte Editor vi, der bei der University of California, Berkeley,
entwickelt wurde. Fur die hauptsachlich technisch-wissenschaftliche Dokumentationsverarbeitung stehen je nach Druckerausgabe Zusatz- und Formatierprogramme zur Verfugung:
nroff
troff
ditroff
fUr Zeilendrucker,
fUr Fotosatzmaschine,
fUr unterschiedliche Ausgabegerate.
Fur diese Zusatzprogramme werden die Texte mit einem Editor erstellt, wobei
zusatzliche Formatanweisungen mit eingegeben werden mussen (ein Beispiel
hierzu finden Sie im Bild 3-28 auf Seite 67 (Teil einer Manual-Seite von date) da
auch die Online-Manualseiten mit dem Formatierprogramm nroff aufbereitet
wurden}.
In der Zwischenzeit gibt es jedoch eine Reihe von komfortablen Editor- und
Textverarbeitungsprogrammen, die unter UNIX laufen und meist von den Rechnerherstellern mit angeboten werden.
Da auf allen UNIX-Rechnern der zeilenorientierte Editor ed verfugbar ist, wird
er in diesem Lehrbuch mit den wesentlichen Funktionen erklart. Wer den vi zur
Verfugung hat, findet im Abschnitt 3.3.5 auf Seite 138 eine Obersicht der wichtigsten Funktionen. Sie werden wahrscheinlich entsetzt sein, so etwas >veraltetes' wie einen Zeileneditor zu lernen. Doch fUr spezielle Systemverwalter-Aufgaben und fUr die Shell-Programmierung (eingebunden in Skripts) wird er nach wie
vor eingesetzt. Arbeiten Sie bereits mit einer grafischen Oberflache, steht Ihnen
fUr die laufenden Arbeiten sicher ein intuitiv zu lernender Texteditor zur Verfugung. Vielleicht sehen Sie sich den ed trotzdem mal an:
121
3
UNIX - praktisch angewandt
3.3.3 Der ed-Editor
Der ed ist ein sehr ruhiges Programm. Sie rufen es auf mit ed, aber nichts bemerkenswertes geschieht.
ed
[Dateiname]
ed - Kommando, um Dateien zeilenweise zu editieren
Rufen wir z. B. die Datei mit den )cookies' auf, so bekommen wir nur eine Zahl
angezeigt:
ed lusr/lib/cookies
$
101,699
Anzahl der Bytes
entspricht in etwa der Anzahl der Zeichen
innerhalb der gesamten Datei
)
Bild 3 - 73: Beispiel Aufruf des Editors ed
o
Wird der ed mit einer bestehenden Datei aufgerufen, gibt er die GroBe der
Datei aus (Byte-Anzahl der Datei, entspricht etwa der Anzahl der Zeichen).
o
1st unter dem angegebenen Namen noch keine Datei vorhanden, wird ein
Fragezeichen und der Dateiname angezeigt.
o
Wurde der ed ohne Angabe eines Dateinamens aufgerufen, tut sich gar
nichts. Aber keine Sorge, Ihr Terminal ist nicht blockiert.
Der ed unterscheidet zwei Verarbeitungsmodi:
o
o
den Kommandomodus und
den Eingabemodus.
Um Text einzufOgen, muB erst durch ein entsprechendes Kommando in den
Eingabemodus umgeschaltet werden. Um Text einzugeben, gibt es die Kommandos:
a
i
c
append
insert
change
anhangen
einfOgen
ersetzen
Um wieder in den Kommandomodus umzuschalten, muB der Eingabemodus
mit einem Punkt am Anfang einer neuen Zeile abgeschlossen werden.
122
3.3.3
Editoren unter UNIX
Nach dem Aufruf von ed befinden Sie sich am Ende der Datei, d.h., die Datei
wird von der Platte in einen temporaren Puffer geschrieben (Bereich im Arbeitsspeicher des Rechners). Um sich z. B. den Inhalt der Datei anzuzeigen, muB
man erst das Kommando dazu erteilen oder zumindest auf die 1. Zeile zurOckgehen. Aile Anderungen und Erganzungen, die Sie durchfOhren, werden vorerst
nur in diesem temporaren Puffer durchgefOhrt. Erst wenn Sie das Kommando
zum Ruckschreiben erteilen, wird die Datei auf der Platte ebenfalls geandert.
Wie sind Kommandos im Editor ed einzugeben?
Bereich
z. B. Zeile von bis
ohne Angabe einer Zeilennr. wird
die aktueJle Zeile genommen
1,3
Zeile 1 bis 3
I
Kommandos
z. B.anzeigen, drucken
p
(print - durcken, anzeigen)
5011 angezeigt werden
Bild 3-74: Kommandoeingabe im ed
Bei der Eingabe von Kommandos wird zuerst angegeben, fOr welchen Bereich
sie zutreffen, erst dann wird das eigentliche Kommando eingegeben. Obige
Zeile bedeutet also, daB die Zeile 1 bis 3 angezeigt werden soil. Wird kein Bereich angegeben, so bezieht sich das Kommando immer auf die aktuelle ,Arbeitszeile<.
Wie konnen Sie den Bereich definieren?
Bereich
Beispiel
Bedeutung/Funktion
Zeilennummer
3
dritte Zeile der Datei
Zeilennr., Zeilennr.
1,3
Die Zeilen 1-3 werden bearbeitet
$
$
Steht fOr die letzte Zeile
Aktuelle Zeile
ot$
.,$
Von der aktuellen Zeile bis zum Ende
der Datei
1,$
1,$
Steht fOr die gesamte Datei
3,$
Aile Zeilen von Zeilennr. 3 bis zum
Dateiende sollen bearbeitet werden
Zeilennummer $
keine Angabe
(nur Return- Taste)
die nachste Zeile wird angezeigt
(Nach dem Aufruf die letzte Zeile)
Bild 3-75: Bereichsdefinition im ed
123
3
UNIX - praktisch angewandt
Um in einer Datei zu andern, mussen wir natUrlich auch die Berechtigung dazu
haben. Sie erinnern sich an die Zugriffsrechte fUr den Benutzer, die Gruppe und
die anderen, die nach r (read -Iesen), w (write - schreiben) und x (execute - ausfiihren) unterteilt waren. Sehen wir uns die Datei /usr/lib/cookies mit Is -/ an:
-rw-r--r--1 bin bin
Feb 8 /usrllib/cookies
101699
Der ·normale Benutzer< dart diese Datei zwar lesen, aber nicht verandern. Sehen
wir uns deshalb nur einige Zeilen an, und beenden das Programm wieder:
$
_I
ed /usr/lib/cookies ,--_ _ _ _ _ _ _ _-,
101699
lei Ie 1 -3 anzeigen
1,3p .
Eat a live frog every morning, and nothing worse will
happen to you all day.
I
aktuelle leile (Zei le Nr. 3)
Durch DnJcken der Return-Taste wird jeweils die nachste
Zeile angezeigt
Murphy's First Law
Bild 3 - 76: Beispiel Anzeige von Zeilen im ed
Um die Zeilennummer zu sehen, k6nnen Sie sich die Datei mit der Nummernangabe anzeigen lassen: Das Kommando hierzu lautet n (numerierte Anzeige):
Die Zeilen 1-5 sollen mit leilennummern angezeigt werden:
1,5n
1 Eat a live frog every morning, and nothing worse will
2 happen to you all day.
3 -
4 Murphy's First Law
.;. /o;..;:o;.;.;k;.:;.
s.' --_ _ _ _ _--,
5
Nothing is as easyas;;-/;·t.;..:
q
$
I
q eingeben fur quit. beenden
Bild 3 - 77: Beispiel Editor ed,
numerierte Dateianzeige und Beenden des Programms
Urn den Editor zu beenden wird das Kommando q (quit) am Anfang einer Zeile
eingegeben.
124
3.3.3
Editoren unter UNIX
Welche Kommandos benotigen Sie?
(Auswahl von oft gebrauchten Kommandos)
Bisher haben wir nur einige Kommandos kennengelernt. Sie rufen den Editor in
der Shell auf und mOssen dann eigene Kommandos fOr den Editor eingeben,
z. B. um sich eine Datei anzusehen oder nur bestimmte Zeilen. Die nachstehende Aufstellung gibt Ihnen einen Oberblick, welche Kommandos Sie eingeben
konnen.
Den Umgang mit einem Editor erlernen Sie am besten durch die Praxis. Erstellen
wir deshalb in unserem Home-Directory eine eigene SprOchedatei, die die oben
enthaltenen Lebensweisheiten in deutsch ausgibt. Vielleicht kennen Sie auch
noch ein paar nette SprOche, die Sie erganzen konnen?
$ cd
$ ed sprueche
?sprueche- - Nachricht vom Editor, daB die Datei sprueche
noch nicht existiert.
Bild 3 - 78: Beispiel Editor ed, Warnung nicht existierende Datei
Um Text einzufOgen, mOssen wir zuerst in den Eingabemodus umschalten. Obwohl in unserer Datei noch kein Text eingegeben ist, verwenden wir hier das
Kommando a fOr append (anhiingen).
$ ed sprueche
?sprueche
(append) Aile Eingaben, die nun tolgen, werden 'angehangt.
a
Iss jeden Morgen einen lebenden Frosch, und Dir passiert
nichts Schlimmeres waehrend des Tages.
Murphy's erstes Gestz:
Nichts ist so leicht, wie es aussieht.
•
4s/stz/setz/p
II
I
Um in der vierten Zeile .Gestz. zu konigieren,
muB der Eingabemodus erst mit einem >.' abgeschlossen
werden. dann erst kann geiindert, ersetz! (substituiert)
werden.
p - print. zeige die Zeile nach Veranderungen
neuer 8egriff (Ersetzungsbegriff)
alter 8egriff (Suchbegriff)
s - substitute - ersetze nachfolgenden ·alten 8egriff. durch ,neuen 8egriff.
Zeilennummer
Murphy's erstes Gesetz:
Bild 3-79: Beispiel Editor ed, Eingabe und Ersetzung (substitute)
125
3
UNIX - praktisch angewandt
Anfangs ist es etwas verwirrend zu erkennen, in welchem Modus man sich gerade befindet, im Eingabe- oder Kommandomodus.
l>
Achten Sie also darauf, daB Sie den Eingabemodus immer durch einen Punkt
abschlieBen, bevor Sie das nachste Kommando eingeben!
Wie k6nnen Sie im ed korrigieren?
Innerhalb einer noch nicht ,abgesandten Zeile< k6nnen Sie mit der 8ackspaceundJoder Delete-Taste zeichenweise nach links 16schen. Wenn Sie erst einmal
mit der Return-Taste eine Zeile ,abgesandt< haben, ist das Korrigieren etwas
umstandlicher.
In dem zeilenorientierten Editor ed k6nnen Sie nur uber entsprechende Kommandos zeilenweise korrigieren. Sie mussen jeweils die falsche Zeichenfolge
(alter 8egriff), die ersetzt werden soli, nochmals eingeben und im AnschluB
daran die richtige Zeichenfolge (neuer 8egriff). Falls es sich nicht um die aktuelle Zeile handelt, muB zu Beginn des Kommandos die Zeilennummer(n) mitgeteilt werden, die nach dem alten Begriff durchsucht werden soll(en):
Zeilennummer Kommando zum
Bereich
Ersetzen: s
t
substitute,
ersetzen
z.B.
I
/ alter
Begriff
Suchbegriff
/
neuer /
Begriff
tErsetzungs-.l
begriff
t
evtl. weitere
Kommandos
T
I.__________~I------~I
/ == Trennungs-
zeichen
'--4-s-J s-W
- s-e-tzl
- p-'1
In dem obigen Beispiel soli in der 4. Zeile der Begriff >stz< ersetzt werden durch
>setz,. Gleichzeitig soli die berichtigte Zeile angezeigt werden (p fOr print).
Achten Sie darauf, daB die Zeichenfolge eindeutig gekennzeichnet ist. In dem
obigen Beispiel wurde die Angabe des alten Begriffes mit
I 4s/stJsetJ
I
zunachst erstes in ersetes andern, da der zuerst gefundene Begriff ersetzt werden wurde.
Sehen Sie sich hierzu das Bild 3-79 auf Seite 125 nochmals an.
Um Zeilen einzufugen, wird das Kommando i (insert) verwendet:
Zeilennummer Kommando zum
Bereich
EinfOgen
insert - einfUgen
126
Editoren unter UNIX
3.3.3
Oben wir an unserem Beispiel, wie Sie Zeilen in einen bereits geschriebenen
Text einfOgen (insert) und anschlieBend wieder am Ende des gesamten Textes
weiterarbeiten kennen (anhiingen - append):
~-----1
Nach der 3. Zeile sollen die nachfolgenden Zeilen eingefiigt werden
3i
Warum sollen Rechnersysteme nicht im Freien stehen?
Weil Gluecksspiele im Freien verboten sind.
Um wieder am Ende der Datei weiterzuschreiben, muB das Einfiigekommando erst wieder mit einem Punkt abgeschlossen werden
$a
$ bedeutet am Ende der Datei. a append anfiigen
Murphy's zweites Gesetz:
Alles dauert laenger, als du denkst.
Um den gesamten Text anzusehen, muB zuerst wieder in den
Kommandomodus mit '.' umgeschaltet werden
Bild 3-80: Beispiel Editor ed, Einfugen und Anhiingen (insert, append)
1,$n
1 Iss jeden Morgen einen lebenden Frosch, und Oir passiert
2 nichts Schlimmeres waehrend des Tages.
3 -
4 Warum sol/en Rechnersysteme nicht im Freien stehen?
5 Weil Gluecksspiele im Freien verboten sind.
6 -
7 Murphy's erstes Gestz:
8 Nichts ist so leicht, wie es aussieht.
9 -
10 Murphy's zweites Gesetz:
11 AI/es dauert laenger, als du denkst.
12 -
Bild 3 - 81: Beispiel Editor ed, Anzeige mit Zeilennummer
127
3
UNIX - praktisch angewandt
Um Zeilen zu uberschreiben und zu ersetzen, wird das Kommando c (change)
verwendet:
Zeilennummer Kommando zum
Bereich
Ersetzen
change
wechseln, ersetzen
Um die ersten zwei Zeilen der Spruche-Datei anders aufzubauen, mussen sie
neu eingegeben werden:
1,2c
Die Zeilen 1 bis 2 sollen ersetzt werden (change)
Iss jeden Morgen einen lebenden Frosch und Dir passiert nichts Schlimmeres waehrend des Tages
- - Auch hier muB die Eingabe durch '.' abgeschlossen werden,
sonst wurden die nachfolgenden Eingaben nach der Oberschreibung eingefugt werden
Bild 3-82: Beispiel Editor ed, Oberschreiben von Zeilen
Um Zeilen zu leschen, wird zuerst die Zeilennummer bzw. der Zeilenbereich angegeben und anschlieBend das Kommando zum Leschen:
Zeilennummer Kommando zum
Bereich
Loschen
delete - 16schen
Um die Zeilen 3-6 zu leschen, wird eingegeben:
I 3,6d
128
3.3.3
Editoren unter UNIX
Wie konnen Sie Zeilen im ed kopieren?
Bereich
Kommando(s)
z. B.
t
Zei/e von. bis
nach Zeile
Die Zeilen 4 bis 6 sollen kopiert werden und
nach der Zeile 8 eingefligt werden. (t - transfer)
/ 4,6t8 1,12n _ ,.... Zeilen 1 bis 12 sollen numeriert angezeigt werden
I
1 Iss jeden Morgen einen lebenden Frosch 2 und Dir passiert nichts Schlimmeres waehrend des Tages.
3
Fur die vorhin gel6schten
4 Murphy's erstes Gesetz:
5 Nichts ist so leicht, wie es aussieht.
6 -
7 Murphy's zweites Gesetz:
8 Alles dauert laenger, als du denkst.
9 Murphy's erstes Gesetz:
10 Nichts ist so leicht, wie es aussieht.
11 ,,12 -
}
}
Zeilen 3-6 sind die nachfolgenden Zeilen aufgerUckl .
I
kopierte Zeilen
)
I
BUd 3-83: Beispiel Editor ed, Kopieren von Zeilen (t - transfer)
Es ist tatsachlich nichts so leicht, wie es aussieht. Nun ist die schone Ordnung
von Text und der Zwischenmarkierung mit dem Bindestrlch durcheinander geraten. So unbequem der ed-Editor manchmal ist, es gibt dafOr auch nOtzliche
Kommandos. Zu ihnen gehort:
undo
ROckgangigmachen der letzten Anderung.
Um die letzte Einfligung (das Kopieren der Zeilen 4 bis 6 nach 8) rOckgangig zu
machen, genOgt es, ein
u
als Kommando zu tippen:
129
3
UNIX - praktisch angewandt
Vergleichen Sie, ob wirklich die letzte Anderung ruckgangig gemacht wurde:
/
- - - - I undo
U
Die letzte .il.nderung wird wieder riickgl1ngig
gemacht
1.$n ____-i~A~n~ze~ig~e~d~e~r~Z~ei~le~n~1~b~is~En~d~e~d~u~~~h~n~u~
m~e~
rie~rt~____~
1 Iss jeden Morgen einen lebenden Frosch 2 und Dir passiert nichts Schlimmeres waehrend des rages.
3 4
5
6
7
8
9
Murphy's erstes Gesetz:
Nichts ist so leicht, wie es aussieht.
Murphy's zweites Gesetz:
Alles dauert laenger, als du denkst.
Bild 3-84: Beispiel Editor ed, ROckgangigmachen der letzten Anderung (undo)
Wie been den Sie das Programm?
Um die Datei zu sichern und das Programm zu beenden, geben Sie ein:
W
229
Sichern, zuriickschreiben der Datei unter dem
aufgerufenen Namen (write)
Anzeige der DateigrtlBe in Bytes (in etwa Zeichenanzahl)
q
AbschluB des Editors (quit)
$
Bereitzeichen der Shell
)
Bild 3-85: Beispiel Editor, Sichern der Datei und Beenden des Programmes
Sollten Sie vergessen haben, das w (write - zurOckschreiben, sichern) einzugeben, konnen Sie mit q (quit - beenden) den Editor nicht verlassen. Sie bekommen als Nachricht yom Editor ein Fragezeichen, was so viel bedeuten soli wie:
Was soli das denn?
q
?
Ohne Sichern der Datei mit w (w rite)
wird q nicht akzeptiert:
AbschluB des Editors (quit)
"
Das Fragezeichen zeigt an, daB das letzte Kommando
nicht verstanden und nicht durchgefUhrt wurde
)
130
Bild 3 -86: Beispiel Editor ed, Beenden des Programms - fehlerhafte Eingabe
3.3.3
Editoren unter UNIX
Wollen Sie, ohne die Datei zu sichern, den Editor beenden, so geben Sie ein q!
ein (bei alteren Systemen muBte Q als GroBbuchstabe eingegeben werden) oder
Sie wiederholen die Eingabe von q. Beim zweiten Mal wird >q< akzeptiert. Damit
erzwingen Sie den Abbruch des Editors:
q!
$
_ _-+ Beenden des Programms ohne Warnung. falls evtl.
Anderungen noch nicht zUrUckgeschrieben wurden.
_ _ _+1
Bereitzeichen der Shell
"----_ _ _-----'J
Bild 3-87: Beispiel Editor ed, Beenden des Programms - ohne Warnung bei
nicht zurDckgeschriebenen Dateien
Suchmechanismen im Editor ed
Wenn der Editor ed auch nicht besonders komfortabel ist, so haben Sie gesehen, er ist nicht schwer zu erlernen. Immerhin verwendet er bei den AbkOrzungen etwas Mnemonik, angelehnt an englische Vokabeln. Mit etwas Obung werden Sie auch die >nachsten Schritte< leicht aufnehmen, zumal Sie sich damit
langwieriges Suchen in Dateien ersparen konnen.
Wie konnen Sie im ed nach Begriffen suchen?
Bisher hatten Sie als Bereich die Zeilennummer, bzw. Zeilennummern von bis
angegeben. Um nach einem bestimmten Muster zu suchen, wird unter dem Bereich ein Suchmuster, begrenzt durch Schragstriche oder Fragezeichen, eingesetzt. Die Schragstriche gelten fOr Vorwarts-, die Fragezeichen fOr ROckwarts
suchen.
Kommando
Bereich
ISuchmuster/
?Suchmuster?
Nach dem Suchmuster
wird in der Datei vorwarts oder
riickwarts gesucht
kann noch zusatzlich eingegeben werden
Soli der Suchvorgang mit dem gleichem Muster wiederholt werden, werden als
Kommando nur die beiden Symbole angegeben: II fOr Vorwarts- oder ?? fOr
Riickwartssuchen.
131
3
UNIX - praktisch angewandt
Suchen wir in unserer kleinen Obung von vorhin nach Murphy: .
I Aufruf des ed-Programms
ed sprueche
229
Ab der aktuellen Zeile soli nach dem Text .Murphy. gesucht
+
Die gefundene Zeile soli mil Zeilennummer angezeigl
IMurphy/n- werden.
werden.
4 Murphy's erstes Gesetz:
lin
gefundene Zeile
I nochmaliges Such en vorwarts und anzeigen
7 Murphy's zweites Gesetz:
Bild 3-88: Beispiel: Editor ed, Suchen in der Datei mit ,II,
Sie kennen also als Bereich ein Suchmuster angeben und anschlieBend ein
Kommando anfOgen.
Wie konnen Sie global in der gesamten Datei suchen und ersetzen?
1m vorherigen Beispiel wurde nach Begriffen gesucht. Das s-Kommando (substitute ersetzen) sucht ebenfalls nach einem bestimmten Muster. Setzen wir vor
dieses Kommando als Bereichsangabe 1,$, d.h., die gesamte Datei soli bearbeitet werden, so wird das Ersetzen fOr aile leilen erfolgen. Tritt jedoch innerhalb einer leile der Such beg riff zweimal auf, so wird jeweils nur das erste gefundene Muster ersetzt. Sollen innerhalb der einzelnen lei len weitere gefundene
Muster ersetzt werden, muB das Kennzeichen 9 (global) am Ende der Kommandozeile angefOgt werden.
Bereich
1,$
Kommando
slalter Begrifflneuer Begrifflg
Wenn Sie Terminals und Drucker haben, die den deutschen leichensatz enthalten, so kennten Sie die Umlaute mit ae in Ii usw. ersetzen. Das Kommando hierfOr ist s (substitute). Das Kommando slaelalg bewirkt, daB aile ae in a* umgewandelt werden.
J> Doch Vorsicht! Wenn Sie global in einer Datei Umlaute wie ae in Ii andern,
wOrde auch aus Michaela eine Michlila werden oder bei oe wird aus soeben
saben. Umlaute sind deshalb besser schrittweise zu ersetzen!
*
132
Falls Sie nichl mit dem internalionalen Zeichensatz arbeiten, mOBte vor das a ein Fluchtsymbol gesetzt werden, da dieses Zeichen unter dem ASCII-Zeichensatz als >{< existiert und eine
Sonderfunktion besitzt.
3.3.3
Editoren unter UNIX
In unserem Beispiel riskieren wir eine globale Ersetzung:
t1 gesamte Datei
L
r----
Ig
I IZUSl:itzliche Angabe von 9 (global)
1,$s/ae/a/g
g/a/n - -
~
I
I
am Anlang der ~eile fUr globale Suche mit
(n umber), um die Zeilen numeriert anzuzeigen
l
1
2 und Dir passiert nichts Schlimmeres wahrend des Tages.
8 Alles dauert langer als du denkst.
gefundene und ersetzte Zeilen
I
~'---------------------------------'
Bild 3-89: Beispiel: Editor ed, Suchen und Ersetzen global
Das 9 (global) kann, wie wir im obigen Beispiel sehen, auch als Suchoption vorangestellt werden und bewirkt, daB nicht nach dem ersten gefundenen Wert die
Suche beendet ist, sand ern die gesamte Datei durchsucht wird. Allerdings dOrfen keine weiteren Kommandos auBer n (numerische Anzeige) folgen.
Welche weiteren Metazeichen konnen Sie im Editor ed verwenden?
Ahnlich wie Sie es bereits in der Shell kennengelernt haben, gibt es auch im ed
Metazeichen (Zeichen mit spezieller Bedeutung), mit deren Hilfe Sie nach bestimmten Begriffen such en konnen. Allerdings haben unter ed einige Zeichen
eine andere Bedeutung als unter der Shell.
l>
Vorsicht - die Bedeutung der Metazeichen im ed ist anders
als die der Metazeichen in der Shell!
Verwirrend ist zusatzlich, daB eine Reihe von Sonderzeichen sagar innerhalb
des ed unterschiedliche Bedeutung haben, je nachdem ob sie als Suchbegriff, Kommando oder als Auswahlmenge in einer Klammer stehen. Der
Such- und Ersetzungsmechanismus des ed wird ebenfalls vom sed (stream-oriented editor) verwendet. Sowohl vi, egrep und awk bauen auf diesen Befehlen
auf. Sie vergeuden also nicht Ihre Zeit, wenn Sie sich mit dem ed ernsthafter befassen. Zusatzlich erspart er Ihnen durch den machtigen Ersetzungs- und Suchmechanismus eventuell viel Arbeit.
Bisher haben Sie schon gelernt, daB jeweils das Such- und/oder Ersetzungsmuster zwischen zwei Schragstriche oder Fragezeichen gesetzt wird. Das Suchmuster kann nun zusatzliche Metazeichen beinhalten. Die gebrauchlichsten
sind:
133
3
UNIX - praktisch angewandt
Ubersicht einiger im ed (sed, grep und vi) verwendeten Metazeichen
Metazeichen
Suchbeispiel
I.dl
Bedeutung
------,
I
Beliebiges einzelnes Zeichen
sucht nach allen Wiirtem, dle';n beHeblges
leichen, gefolgt von einem d, enthalten
Wiederholung des vorangestellten Zeichens
*
Im*1
sucht nach einem oder hintereinander mehrfach auftretenden ,me
I.*ml
sucht nach leichenfolgen, in denen ein ,me
vorkommt
j
sleht fOr mehrere belleblge Zelchen
*
1\
Nachfolgender Suchbegriff steht am
Anfang einer Zeile
I" *1
-
$
-
10M$!
sucht nach einem oder mehreren Leerzeichen am Anfang einer lei Ie
Nachfolgender Suchbegriff steht am Ende
einerZeile
suchl nach ';ner Zelle, die m. OM endel
nen Zeichens
l{a-z]1
1[137]1
sucht nach einem beliebigen Kleinbuchstaben (z. B. a oder b)
---f.i;hl nach Zlllern " 3 oder 7
Fluchtsymbol - Aufheben einer evtl. Sonderfunktion des nachfolgenden Zeichens
\
sucht nach einem ,·e
1\*1
s/Muster/& ..I
s/Herr/&nI
~setzen
des gefundenen Musters als
neuen Begriff
ersetzt >Herre in >Herrn e
BUd 3-90: Metazeichen - regulare AusdrOcke (ed, vi, sed und grep)
134
~
~hen eines in der Klammer angegebe-
[ ]
&
I
3.3.3
Editoren unter UNIX
Einige Beispiele werden es verdeutlichen:
Wie k6nnen Sie die Trennungszeichen zwischen den einzelnen SprOchen ersetzen durch >*** Noch'n Gedicht *** ,7 Beachten Sie hierbei, daB evtl. die Minuszeichen auch mitten im Text stehen k6nnten und dort bestehen bleiben sollen!
Ersetzungsteil
/ r __________
~A~
1,$s/"-1 \*\*\*
g/Ged/n
______
~
,
Noch'n Gedicht \*,...\:....*\..:..*---.:./__--'-______---,
3
Noch 'n Gedicht ..,.
6 ••• Noch'n Gedicht ...
9 ... Noch'n Gedicht
}
9 - fOr global Datei
(suche gesamt)
Bild 3 -91: Beispiel Editor ed, Suchen und Ersetzen je am Anfang einer Zeile
Ais nachstes Beispiel der Austausch von Gesetz in Gesetzestext:
I Obemahme von Gesetz,
der gefundenen Zeichenkette
.!
1,$s/Gesetzl&estexU
g/texUn
4 Murphy's erstes Gesetzestext:
7 Murphy's zweites Gesetzestext:
u
I
Die letzte Anderung der beiden Zeilen wird
wieder aufgehoben (undo)
I
Bild 3-92: Beispiel Editor ed, Suchen und Ersetzen mit Obemahme
der gefundenen Zeichenkette
Wie Sie gesehen haben, ist der ed besser als sein Ruf. Ein Softwareentwickler,
der auf verschiedenen UNIX-Systemen arbeitet, hat sogar einen wesentlichen
Vorteil dieses Editors klar ausgesprochen. ,Der ed arbeitet wenigstens auf allen
Systemen gleich gut, und ich muB nicht immer neue Befehle oder Funktionstasten lemen,.
135
3
UNIX - praktisch angewandt
3.3.4 Ubersicht der Sonderzeichen und Kommandos im ed
Die nachstehende Obersicht soli Ihnen helfen, die unterschiedlichen Bedeutungen der Sonderzeichen zu beachten.
Bedeutung im
lei-
Kommandomode
(Zeilenbereich)
Such bereich und
ErsetzungsteillJ ??
sonstiges:
leilenangabe von bis
-
-
aktuelle leile im
Arbeitspuffer
ein beliebiges leichen
1m Eingabemodus:
AbschluB der Eingabe
Ende des Arbeitspullers (Ietzte Zeile)
Ende der zu suchenden leile
-
Anfang der zu
suchenden leile
In der Klammerung
[1\ ) als Negation
(aile leichen auBer.. )
*
-
beliebige Wiederholung des vorherigen
Zeichens
-
/I
Markierung des
Such- und Ersetzungsbereichs
vorwarts Such en
ohne Muster, Wiederholung des letzlen
Suchbefehls
-
11
Markierung des
Such- und Ersetzungsbereichs
rlickwarts Suchen
ohne Muster, Wiederholung des letzlen
Suchbefehls
-
&
-
Ersetzen der gefundenen Zeichenkelte
-
[]
-
chen
n,n
r--s
,..
1---.
-
i-
Markierung einer
Zeichenauswahl
-'-
-
BUd 3-93: Sonderzeichen im Editor
136
I
Editoren unter UNIX
3.3.4
Zusammenfassung der wichtigsten Kommandos im ed
Verwendung
Befehll
Beispiel
Au1ruf
ed Datei
I
Positionieren
bzw.
Angabedes
Bereichs
Es wird nur die Anzahl der Bytes angezeigt
3
Der Arbeitszeiger wird auf die Zeile n. im Beispiel
Zeile 3, positioniert
n1,n2 Kommando
2,5p
Das Kommando betrifft den Bereich n1 bis n2
Die Zeilen 2 bis 5 sollen angezeigt (print) werden
n,Set
Von Zeile n bis Ende der Datei l<ischen (delete)
.n
a
na
Nach Zeile n, im Beispiel Zeile 3, Text als neue Zeile
an hang en
11
(insert) Text als neue Zeilen vor der aktuellen Zeile
einfUgen, bzw. vor Zeile n
Beispiel vor Zeile 1
Se
Beenden des
Eingabemodus
Ersetzen
Die aktuelle Zeile wird mit der Ifd. Nr. angezeigt
3a
c
~
Zeile 4 bis Ende der Datei wird mit der Ifd. Nummer
angezeigt
Text wird nach der aktuellen Zeile als neue Zeilen
angehlingt (append)
nl
Suchen
Von der angegebenen Datei wird eine Kopie in den
Arbeitsspeicher geladen
ed sprueche
n
4,$n
Umschalten in
den Elngabe·
modus
Bedeutung
(change) Die aktuelle Zeile wird ersetzt bzw. als Bei·
spiel wird die Zeile 5 ersetzt. Wird mehr als eine
Zelle Text eingegeben, werden die weiteren Zeilen
eingefUgl.
Am Anfang einer Zeile beendet er den Eingabemodus.
IMusteri
Nach dem Begriff/Muster wird in der Datei
vorwarts gesucht
1Muster?
rOckwarts gesucht
1/
11
Zuletzt gesuchtes Muster vorwiirts such en bzw.
rOckwiirts suchen
s/alt/neul
substitute - ersetzen
In der aktuellen Zeile wird das erste Auftreten von aft
durch neu ersetz!
1,Ss/altineuig In der gesamten Datei (1 ,$) wird jedes Vorkommen
von alt durch neu ersetz! 191000/ - d . h .•auch mehrlach in einer Zeile)
Loschen von
Zeilen
d
(delete) loscht die aktuelle Zeile
3d
Zeile 3 wird geloscht
4.6d
Zeilen 4 bis 6 werden geloscht
Riickgangig
mach en
u
(undo) Der zuletzt eingegebene Belehl wird ungeschehen gemacht
Beenden von
ed
w [Date/1
(write) ZurOckschreiben des Arbeitspuffers in die
beim Aufrul bzw. in mit w angegebene Datei
(quit) Beenden. Falls die Datei noch nicht mit w gesi·
chert wurde, wird eine Warnung ausgegeben
Beenden von ed ohne Sicherung
l
q
ql
137
3
UNIX - praktisch angewandt
3.3.5 Ubersicht der wesentlichen Eigenschaften des Editors vi
Der vi geheren zu den machtigsten Editoren, die unter UNIX verfugbar sind. 1m
Kommandoaufbau sind viele Parallelen zum ed zu erkennen. Ein wesentlicher
Vorteil zum ed - Sie sehen den zu bearbeitenden Text auf dem Bildschirm und
kennen mit Hilfe der Cursortasten
880CD
jeweils zu der betreffenden Stelle wandern. Die Cursortasten durfen allerdings
nicht im Eingabemodus verwendet werden.Wie im ed gibt es unterschiedliche
Modi:
den Kommandomodus,
den Eingabemodus
und einen ed-ahnlichen Modus.
Um Text einzufUgen, mussen Sie erst durch ein entsprechendes Kommando in
den Eingabemodus umschalten. Die Texteingabe kann eingeschaltet werden
durch die Kommandos:
Kommando
Ableitung von
Bedeutung
append
Anhangen ans Zeilenende
bzw. hinter dem Cursor
I,i
insert
R
replace
EinfUgen am Zeilenanfang
bzw. vor dem Cursor
Ersetzen ab Cursor
A,a
0 ,0
open
Neue Zeile uber bzw. unter
der aktuellen Zeile einfUgen
Der Eingabemodus wird durch die Funktionstaste Escape
abgeschlossen. Fehlt die Escape-Taste auf Ihrer Tastatur, so kann die gleiche
Funktion meistens auch durch die Tastenkombination ,ALT-2-7< erreicht werden, wobei zuerst die Alt-Taste gedruckt wird und dann nacheinander die Nummern auf der numerischen Tastatur eingegeben werden.
138
Wie der ed arbeitet auch der vi auf einem Arbeitspuffer. Aile erfolgten Anderungen mussen durch ein Sicherungskommando in die Originaldatei zuruckgeschrieben werden. Die Kommandos zum Sichern und Beenden des vi lauten:
3.3.5
Editoren unter UNIX
Ableitung von
Bedeutung! Funktion
:w
write
:q
quit
Rueksehreiben des Arbeitspuffers
auf die Platte
Beenden des vi
mit Warnung, falls noch nieht zuruckgesehrieben wurde
:q!
quit
Beenden des vi ohne Warnung
ZZ
Ende des
Alphabets
Zuruckschreiben des Arbeitspuffers und Beenden des vi
Kommando
I.
Sehen wir uns eine kurze ,Sitzung< im vi an:
(. .
....--------'..,$
l
Die erste Bildschirmseite der
j
sprueche
Datei wird sofor! angezeigt
Position
s jeden Morgen einen lebenden Frosch des Cursors I un d O·If passlert
.
'-------,r'
me. h ts S ehI·Immeres wa··hren d d es ..,ages
••• Noch'n Gedicht ...
Murphy's erstes Gesetz:
Nichts ist so leicht, wie es aussieht.
... Noch'n Gedicht ...
Murphy's zweites Gesetz:
Alles dauert langer als du denkst.
Zeichen fur leere, noch nichl
.... Noch'n Gedicht ...
beschriebene Zeilen
I
VI
::-
•.
I
Nachrichlen- und Kommandozei le I
Hinweiszeile mit Namen der
sprueche 9 Imes, 290 characters - Datei, Anzahl Zeilen und Zeichen
Bild 3-94: Beispiel Aufruf vi
Dieser Text weist ein paar Unsch6nheiten auf. In der 2. Zeile fehlt am Ende des
Satzes ein Punkt. AuBerdem handelt es sich hier nicht um Gedichte, sondern um
Spruche. Mit diesen Korrekturen k6nnen die M6glichkeiten zur schnell en und
einfachen Korrektur im vi gut demonstriert werden. Um Ihnen auf unseren Beispiel-Bildschirmen anzuzeigen, daB der Cursor bewegt wurde, ist
die alte Position des Cursors mit [J
die neue Position mit.
dargestellt.
139
3
UNIX - praktisch angewandt
j-Lo.a..............-einen lebenden Frosch ri-r:7IT1rn;.;i:5Ji.;rr-:Tli.chts Schlimmeres wah rend des Tages.
Die Eingabe von A imKommandomodus zum
AnMngen am Zeilenende wird nicht angezeigt.
Hier wird nun sichtbar der Punkt im Eingabemodus
geschrieben
Alles dauert langer als du denkst
••• Noch 'n Gedicht •••
Bild 3-95: Beispiel Korrekturen im vi: Anhiingen am Ende der Zeile
Iss jeden Morgen einen lebenden Frosch und Dir passiert nichts Schlimmeres wahrend des Tages.
il..J
Wir befinden uns im Eingabemodus und haben versehentlich
die RETURN-Taste gedruckt. Um die dadurch erhaltene
Leerzeile wieder zu loschen, mOssen wir zuerst die
J T-aste drucken,
( ESC
um wieder in den Kommandomodus umzuschalten.
Hier genOgt es, das Kommando
dd
einzugeben, um die versehentlich erganzte Zeile zu loschen.
Bild 3-96: Beispiel Korrekturen im vi: Umschalten in den Kommandomodus
Loschen einer Zeile
Um nun ,Gedicht< in ,Spruch< abzuandern, wollen wir an diesem Beispiel mehrere M6glichkeiten demonstrieren:
140
1.
Ersetzen durch das Kommando R (Replace)
2.
Ersetzen durch das Kommando cw (change word)
3.
Suchen und Ersetzen mit den uns schon bekannten
Ersetzungsmechanismen vom ed.
3.3.5
Editoren unter UNIX
/ Iss jeden Morgen einen lebenden Frosch und Dir passiert nichts Schlimmeres wahrend des Tages.
~~. Noch'n.dicht •••
Wichtig ist, daB Sie jeweils erst im Kommandomodus an die zu
ersetzende Stelle wandern, und dann erst in den Eingabe- oder
Ersetzungsmodus umschalten. Mit dem Kommando
R
...
wird sichtbar der Text i.iberschrieben
Nach Eingabe von Spruch sieht unsere Zeile
wie lolgt aus:
Noch'n Sprucht •••
Mit der
J
( ESC
- Taste
schalten wir wieder in den Belehlsmodus um.
/
Bild 3-97: Beispiel Korrekturen im vi: Ersetzen durch Kommando R
/
Iss jeden Morgen einen lebenden Frosch und Dir passiert nichts Schlimmeres wahrend des Tages ..
... Noch'n Spructfi ...
Um einzelne Zeichen zu loschen, gibt es das Kommando
X
Hier wird das in unserem Beispiel i.ibriggebliebene ·t. aus .Gedicht·
geloscht. Die Zeile sieht dann wie lolgt aus:
Noch'n spruchl •••
~~----------------------------------------~
Bild 3-98: Beispiel Korrekturen im vi: Loschen eines Zeichens mit x
Sie sehen, im vi ist das Korrigieren von Texten wesentlich einfacher und komfortabler als im ed. Abgesehen von den Cursortasten, mit denen Sie zu einer beliebigen Stelle in der gesamten Datei wandern kennen, stehen Ihnen im vi Objelde
zur Verfugung, wie z. S.:
Zeichen
Wort
Zeile
Satz (bis zum nachsten Punkt, ! oder ?)
Klammern ( auf - zu )
Solche Objekte kennen Sie suchen, leschen und ersetzen.
141
3
UNIX - praktisch angewandt
Die vorangegangene Anderung laSt sich damit noch einfacher durchfUhren:
Iss jeden Morgen einen lebenden Frosch und Oir passiert nichts Schlimmeres wahrend des Tages ..
[1' Noch'n.edicht •••
Sie kennen, um an die zu andernde Stelle im Text zu gelangen, mit
dem Cursor wand ern oder den Befehl
w
fur wortweises VorrOcken
verwenden. Das Kommando
cw
ersetzt nur das nachfolgende Wort, das durch ein
$ am Ende gekennzeichnet ist (statt des letzten
Buchstabens):
Gedich$
weitere Eingaben werden eingefugt.
Oberschreiben wir das Wort und schlieBen die Eingabe mit
( ESC)
abo
Unsere Zeile erscheint dann richtig auf dem Bildschinn:
••• Noch 'n Spruch
Bild 3-99: Beispiel Korrekturen im vi: wortweise Vorrucken
Ersetzen (Oberschreiben) eines Wortes
Die Kommandos
c
(change)
d
(delete)
y
(yank)
ersetzen
loschen
speichern
konnen nur in Verbindung mit unterschiedlichen Objekten kombiniert werden.
Die Objekte werden wie folgt gekennzeichnet (Auswahl der am meisten benOtigten Objekte):
Leertaste (blank)
Einzelnes Zeichen
W
(word)
Wort mit Sonderzeichen wie " *, "
Wort ohne Sonderzeichen
w
(global)
Ab Cursorposition bis zum Ende der
G
Datei (Arbeitspuffer)
A
Anfang der aktuellen Zeile
Ende der aktuellen Zeile
$
Anfang des aktuellen Satzes
(
Ende des aktuellen Satzes
)
142
Wenn Sie die Objekte ohne Kommando angeben, konnen Sie damit den Cursor
positionieren. Mit der Leertaste bewegen Sie im Kommandomodus den Cursor
zeichenweise vorwarts, mit w wortweise. Geben Sie das $-Zeichen an, springt
3.3.5
Editoren unter UNIX
der Cursor an das Ende der Zeile. Mit ( wird der Cursor an den Anfang des Satzes zuruckgesetzt.
Wie konnen Sie Kommandos im vi mit Objekten kombinieren?
Kommando
Wiederholungsfaktor
Objektart
Zum Beispiel:
dW
Loscht das nachfolgende Wort
d3W oder 3dW Loscht die nachfolgenden 3 Worter
d)
Loscht bis zum Ende des aktuellen Satzes
Wie im ed gibt es auch im vi das hilfreiche Kommando
u
(undo - ungeschehen machen) was gerade
bei versehentlichem Loschen beruhigend ist.
Zusatzlich wird im vi das im Text Geloschte in einen Loschpuffer gespeichert.
Mit dem Kommando
p
(paste - Oberkleben, einfOgen)
wird das zuletzt Geloschte nach der
Cursorposition eingefUgt
Bis zu 9 Loschungen konnen im vi in unterschiedliche Loschpuffer geschrieben
und zuruckgeholt werden. Das Kommando wird dann mit
"np
aufgerufen, wobei n jeweils die Nummer der
n-Ietzten Loschung darstellt, p ohne Angabe
entspricht der letzten ijeweils 1.) Loschung,
"2p
entspricht dem an vorletzter Stelle Geloschten,
also der 2. Loschung.
t
Unbedingt die doppelten AnfUhrungszeichen mit angeben!
143
3
UNIX - praktisch angewandt
Der vi bietet fOr gr6Bere Anderungen zusatzlich den ex-Editor, der letztlich eine
Weiterentwicklung des ed ist. Die Kommandos fOr den ex-Editor werden mit
einem : e ni geleitet. Hierzu geh6ren demnach auch die Ihnen bereits bekannten
Befehle fOr write und quit (:w, :q). Schreiben Sie im Kommandomodus einen
Doppelpunkt, so springt der Cursor auf die letzte leile am Bildschirm und erwartet ein ex-Kommando. Um in unserem Beispiel aile vorhandenen W6rter ·Gedicht< mit .Spruch< zu ersetzen, k6nnen wir, wie im ed bereits gelernt, folgenden
Befehl geben:
Bereich
I
Kommando(s)
:1,$sJzu ersetzender Text! Ersetzungstextl 9
TI
leile 1 bis Ende (substitute ersetzen)
der Datei
I
(global)
aile gefundenen Texte,
auch mehrmals innerhalb einer leile, ersetzen
/ Iss jeden Morgen einen lebenden Frosch und Oir passiert nichts Schlimmeres wahrenddes Tages.
••• Noch'n Spruch ...
Murphy's erstes Gesetz:
Nichts ist so leicht, wie es aussieht.
••• Noch'n Gedicht ...
Murphy's zweites Gesetz:
Alles dauert langer als du denkst.
... Noch'n Gedicht •••
Nach Absenden des Kommandos
wird die Datei berichtigt angezeigt. (aktuelle Bildschirmseite)
v
/ Iss jeden Morgen einen lebenden Frosch und Oir passiert nichts Schlimmeres wahrend des Tages.
••• Noch'n Spruch ...
Murphy's erstes Gesetz:
Nichts ist so leicht, wie es aussieht.
••• Noch'n Spruch ...
Murphy's zweites Gesetz:
... Noch'n Spruch
...
/
Bild 3-100: Beispiel Aufruf vi: Suchen und Ersetzen im ex-Modus: s/alt/neul
144
3.3.5
Editoren unter UNIX
Diese Beschreibung kann Ihnen nur eine kurze Obersicht der wichtigsten Kommandos im vi geben, deshalb soli en diese Beispiele genugen, um Ihnen die Vorgehensweise im vi zu zeigen. Am schwierigsten erscheint am Anfang der Wechsel zwischen Kommando- und Eingabemodus. Um sicher zu sein, daB Sie sich
im Kommandomodus befinden, konnen Sie die
(ESCJ - Taste
drucken. Waren Sie bereits im Kommandomodus, ertont ein Klingelzeichen
(BeIO. Es bedeutet generell, daB Sie eine fehlerhafte Eingabe gemacht haben,
oder eine Begrenzung erreicht haben (Ende der Zeile oder Ende der Oatei bei
Cursortasten etc.).
Verlassen wir nun den vi. Die einfachste und sicherste Methode ist, den vi mit
dem Kommando
zz
abzuschlieBen:
/ Iss jeden Morgen einen lebenden Frosch und Oir passiert nichts Schlimmeres wahrend des Tages.
••• Noch 'n Spruch •••
Murphy's erstes Gesetz:
Nichts ist so leicht, wie es aussieht.
••• Noch'n SpruCh •••
Murphy's zweites Gesetz:
Durch das Kommando ZZ wird
Alles dauert langer als du denkst.
der Arbeilspuffer auf die beim
Aufruf angegebene Dalei zu••• Noch'n Spruch ...
ZZ
"sprueche" 9 lines, 289 characters
rUckgeschrieben. Als ROckmeldung wird die Anzahl der Zeilen
und Zeichen angezeigt.
--J)
~
$________________________
Bild 3 - 101: Beenden des vi
1m vi gelten im ubrigen die gleichen Metazeichen, wie im ed (Bild 3-90 auf
Seite 134).
Lassen Sie sich nicht durch die vielen Befehle und teilweise unterschiedlichen
Funktionen einigerTasten entmutigen. Sie werden feststellen, daB Sie durch Befehlskombinationen mit Objekten schnell und effizient arbeiten konnen. - Obung
macht den Meister!
Die nachstehende Obersicht der in der Praxis am haufigsten verwendeten Kommandos soli Ihnen eine Hilfe sein, um den vi im Selbststudium zu erarbeiten.
145
3
UNIX - praktisch angewandt
3.3.6 Ubersicht der haufig benutzten vi-Kommandos
Verwendung
BefehV
Beispiel
Aufruf
vi Datei
vi sprueche
Beenden
Bedeutung
Von der angegebenen Datei wird eine
Kopie in den Arbeitsspeicher gel aden
:w [Date/]
Schreibt in die beim Aufruf oder bei :w
angegebene Datei zuruck
:q
Beendet den vi mit Warnung , falls noch
nicht zuruckgeschrieben wurde
:q!
Beendet den vi ohne Warnung, falls
vorher noch nicht gesichert (:w) wurde
ZZ
Sichert (schreibt den Arbeitspuffer
zuruck) und beendet den vi
Cursor positionieren
8
8
CD
CD
oderl
oder h
h nach links
oderj
j nach unten
oder k
k nach oben
Woderw
B oder b
Vorwarts gehen um ein Wort (Wortanfang, -ende)
(backwards) ruckwarts gehen um ein
Wort
$
Zum Zeilenende gehen
1\
Zum Zeilenanfang gehen
Zum Satzanfang
Zum Satzende
Gehe zur n-ten Zeile
nG
Blattern
1G
Go Gehe zur Zeile 1 - Dateianfang
4G
G
Gehe zur 4. Zeile
(CTRY
Gehe zum Ende der Datei
+ f
~TRQ + 9
146
-------1
Bewegung des Cursors durch die Cursortasten oder den angegeben Buchstaben
I wie ludwig nach rechts
Blattert eine Bildschirmseite vor
Blattert eine Bildschirmseite zuruck
3.3.6
Editoren unter UNIX
Verwendung
Befehll
Beispiel
Wechsel in
A
den Eingabemodus
a
Bedeutung
append
Text anhangen am Zeilenende
nach dem Cursor
insert
Text einfUgen am Zeilenanfang
vor dem Cursor
I
0
open
Fugt eine leile unterhalb des Cursor ein
0
oberhalb des Cursor ein
R
replace
Bestehende Zeichen ab Cursorposition
ersetzen
c Objekt
change
Ersetzt das nachfolgende Objekt:
cw
change word
nachfolgendes Wort
cG
Ersetzt den nachfolgenden Text bis zum
Ende der Datei
c"
Ersetzt vom Anfang der leile bis zur
Cursorposition
c$
Ersetzt von der Cursorposition bis zum
Ende der leile
c(
Ersetzt vom Anfang des Satzes bis Cursorposition
c)
Ersetzt von der Cursorposition bis zum
Satzende
AbschluB
SchlieBt die Eingabe ab und wechselt in
den Kommandomodus
des E;ngabemodus
(ESC)
Loschen
x
durch-x-en (durchstreichen)
Loscht das aktuelle lei chen, auf dem
der Cursor steht
d Objekt
delete
Loscht das nachfolgende Objekt:
dw
das nachfolgende Wort
dG
nachfolgenden Text bis zum Ende der
Datei
147
3
UNIX - praktisch angewandt
Verwendung
Loschen
Fortsetzung
Befehl!
Beispiel
Bedeutung
d"
Anfang der leile bis zur Cursorposition
d$
ab Cursorposition bis zum leilenende
d(
vom Anfang des Satzes bis zur Cursorposition
d)
von der Cursorposition bis zum Ende
des Satzes
dd
die aktuelle leile
nd
3d
Ubernahme
p
aus dem Puffer
paste (einsetzen)
FLigt das zuletzt Geloschte (oder
Gespeicherte) nach der Cursorposition
ein
"np
"nP
"4p
Ruckgangig
machen
FLigt die n-te Speicherung/Loschung
nach (P oberhalb) der Cursorposition ein
z. B. die 4-letzte Loschung
xp
Vertauscht 2 Buchstaben an der Cursorposition (z. B. hc in ch)
u
undo
Das zuletzt durchgefOhrte Kommando
wird ,ungeschehen' gemacht
Die aktuelle leile wird aus der Originaldatei wiederhergestellt
U
Yoder yy
Speichern
und EinfUgen
yank
Setzt die aktuelle leile in den Speicherpuffer
p
FLigt die letzte Speicherung/Loschung
nach der aktuellen leile ein
" [a-z]yObjekt
Speichert das angegebene Objekt in den
Puffer (a-z)
Speichert das Wort, auf dem der Cursor
steht, in den Pufferspeicher 'a'
"ayw
"[a-z]p
"ap
148
n Anzahl leilen
3 leilen
Vorslchtl
Anfilhrungszeichen nicht
vergessenl
paste
FLigt den Inhalt des Pufferspeichers (a-z)
nach der Cursorposition ein
FLigt den Inhalt des Pufferspeichers a
nach der Cursorposition ein
Ohne AnfLihrungszeichen wLirde a fOr
append ausgefOhrt
I
j
3.3.6
Editoren unter UNIX
Verwendung
Befehll
Beispiel
Suchen in der ISuchbegriff
gesamten
Datei
I
Bedeutung
Sucht nach dem angegebenen Muster
vorwarts
Wiederholt den letzten Suchvorgang
(vorwarts)
?Suchbegriff
Sucht nach dem angegebenen Muster
riickwarts
?
Wiederholt den letzten Suchvorgang
(riickwarts)
0/0
Wenn der Cursor auf einer Klammer
steht, sucht dieses Kommando die
dazugehorige schlieBende oder offnende Klammer
Suchen in der fx
Fx
aktuellen
Zeile
I.,
find
Sucht in der aktuellen leile nach dem
leichen x vorwarts (f) riickwarts (F)
Wiederholt den letzten Suchvorgang
@
Backspace oder Delete
(CTRy + h
[CTRl] + W
[CTRl] + x
loscht das zuletzt eingegebene leichen
UNIX-Kommando
:!Kommando
:!date
Fiihrt den angegebenen Befehl aus.
Gibt das Datum und Uhrzeit auf der
untersten Bildschirmzeile aus. Die editierte Datei wird dadurch nicht verandert.
Mit der Returntaste kehren Sie zum vi
zuriick
Sonstiges
eCTRl] + I
Buchstabe klein L
Bereitet den Bildschirm neu auf
read
Liest die angegebene Datei in den
Arbeitspuffer und mgt sie nach der Cursorzeile ein
Korrekturmoglichkeiten im
Eingabemodus
:rDatei
:r!Kommando
L
J
Ibscht das zuletzt eingegebene WortIbscht die zuletzt eingegebene leile
J
-J
Fiihrt das angegebene Kommando aus
und mgt das Ergebnis hinter der aktuellen leile ein
join
Fiigt die aktuelle leile mit der nachfol~
genden leile zusammen
149
3
UNIX - praktisch angewandt
Besonderheiten im vi
1m vi besteht zusatzlich die M6glichkeit, nOtzliche Optionen fOr die Verarbeitung
voreinzustellen. Diese Optionen k6nnen zu Beginn der Sitzung, also nach dem
Aufruf
durch das Kommando
vi Dateiname
:set
eingegeben werden. Von den Ober 30 Optionen sind hier nur einige besonders
praktische herausgesucht:
Bedeutung
f Kommando
Anderungen werden am Bildschirm sofort nachvollzogen. Ausnahmen sind Korrekturen im Eingabemodus - meist als Default eingestellt
:set redraw
I:set nore
Setzt die obige Funktion zurOck
wrap margin - Zeilenumbruch
Mit Angabe von n Anzahl Zeichen wird automatisch
:set wm=n
ein Zeilenumbruch vorgenommen, sobald die maximale Zeilenlange der Anzahl Zeichen erreicht wurde
Hiermit erfolgt kein automatischer Zeilenumbruch
:set wm=O
number
:set nu
!Die Datei wird mit laufender Zeilennummer angezeigt
:set nonu
Setzt die obige Funktion zurOck
:set show mode
Hiermit wird in der letzten Bildschirmzeile beim Eingabemodus der Hinweis ,Input Mode' angezeigt
:set nomagic
Die Sonderzeichen ., [1 und • haben dann keine
Sonderbedeutung mehr, d. h., bei dem Such- und
Ersetzungsmechanismus des ex-Modus werden sie
nicht als Metazeichen behandelt. Z.B. gilt der Stern
nicht mehr als Wiederholungsfaktor, sondern wird
als Stern erkannt.
:set magic
Setzt die obige Funktion zurOck
:set
all
L
-_ _
__
______
Zeigt aile eingestellten Parameter an
Alternativ k6nnen die Optionen auch in der Datei $HOMEI.exrc gespeichert
werden. Diese Datei wird beim Start von vi gelesen. Die Kommandos werden
dann ohne >:' eingegeben. Mehrere Angaben k6nnen in einer Zeile stehen.
z. B. set number show mode
150
3.3.7
Editoren unter UNIX
Eine weitere Meglichkeit ist, die Optionen der Variablen EXINIT mitzugeben:
EXINIT="set number showrnode"
export EXINIT
1m vi kennen Sie sich eigene AbkOrzungen setzen und sogar Befehlsfolgen speichern und dam it eigene Funktionstasten belegen. Doch dies nur als Anmerkung
fOr diejenigen von Ihnen, die den vi mit allen Raffinessen erlernen mechten. 1m
Literaturverzeichnis finden Sie Hinweise Ober weitergehende Literatur.
3.3.7 Der batchorientierte Editor sed
lum AbschluB der ,kryptischen< Editoren noch kurz ein Blick in den sed:
sed [-n] [-fScriptdatei] Datei(en) [> neue Datei]
oder
sed [-n] [Kommandoliste] Datei(en) [> neue Datei]
I
stream editor
I
-n (no comment) gibt nur geanderte/gefundene
leilen aus (sonst gesamte Datei)
-f (file) nachfolgend wird der Name
der Scriptdatei angegeben
sed - Kornrnando, urn Dateien irn batch zu bearbeiten
Sie brauchen hierfOr eigentlich nichts Neues mehr zu lernen. Er hat in etwa die
gleichen Befehle wie der ed (bzw. vi im ex-Modus). Batchorientiert bedeutet,
daB dieser Editor eine Datei sequentiell (eine leile nach der anderen) bearbeitet.
Die durchzufOhrenden Befehle werden zu Beginn entweder in eine Script-Datei
geschrieben oder direkt beim Aufruf mitgegeben. Beim Aufruf mOssen die fOr
den sed bestimmten Befehle in AnfOhrungszeichen gesetzt werden (am besten
die einfachen Hochkommas: ' '), damit die Shell sie nicht interpretiert (siehe Ersetzungsmechanismus Bild 3-68 auf Seite 109). Der sed wird oft als Filterprogramm verwendet oder fOr sehr groBe Dateien, die von Bildschirmeditoren nicht
mehr verarbeitet werden kennen.
Ein kurzes Beispiel fOr den sed soli genOgen:
___- - - - -- ---1 Die von who iibergebenen Zeilen
$ who Ised '5/.*/ /'
monika
hans
bemd
(Bild 3-30 auf Seite 69) werden
durchsucht nach einem Leerzeichen , gefolgt von einem oder mehreren beliebigen Zeichen. Das gefundene Muster (Ietztlich der Rest
der Zeile nach dem Namen) wird
durch ein Leerzeichen ersetz! und
am Bildschirm ausgegeben
Bild 3-102: Beispiel sed als Filterprogramm
151
3
UNIX - praktisch angewandt
3.3.8 Zusammenfassung der Editoren
Kommandoeingabe
ed Dateiname
Umer DO : edlin
vi [-rR] Datei(en)
sed 'script' datei > dateineu
sed -f script-datei datei > dateineu
Beispiel:
sed 's/neu/altlg' text1 >text2
152
Funktion
editor
Zeilenorientierter Editor
Auch fUr Shell-Skripts geeignet
siehe auch
Ubersicht der Sonderzeichen und
Kommandos im ed auf Seite 136
und
Metazeichen - regulare AUSdri.iCkle
auf Seite 134
visual editor
Bildschirmorientierter Editor
-r recovery
Es wird ein Protokoll mitgeschrieben,
das bei einem Absturz aile Eingaben
nachvollziehen kann
-R Read only
die angegebene Datei darf mit dem vi nur
gelesen nicht verandert werden
siehe auch
Ubersicht der haufig benutzten viKommandos auf Seite 146 und
Metazeichen - regulare Ausdri.icke
auf Seite 134
stream editor
1st ein batch-orientierter Editor.
Wird keine Umleitung in eine Datei angegeben, erfolgt die Ausgabe uber Bildschirm
Unter script werden Kommandozeilen
(etwa gleiche Syntax wie ed und ex) in
Hochkomma eingegeben
In Such- und Ersetzungsfunktionen kennen regulare AusdrOcke verwendet werden (Metazeichen)
Das Script kann auch in einer eigenen
Datei abgelegt sein, die dann mit -f file
gelesen wird
Von der Datei text1 werden aile Zeichenketten alt in neu ersetzt und in text2 gespeichert. text1 bleibt unverandert.
~----------------~----~~
3.4 Dateiverwaltung und -pflege
Sie haben gelernt, Dateien auf unterschiedliche Weise zu
erstellen und zu modifizieren. In diesem Kapitel erfahren Sie
nun, wie Sie Dateien aufraumen und verwalten konnen. Ahnlich wie Sieauf Ihrem Schreibtisch Notizzettel, Berichte, Briefe
und andere Dokumente bearbeiten und in Ordnern ablegen
oder weiterleiten, so sol/ten Sie auch in Ihrem Directory Ordnung halten. Hierzu konnen Sie Unter-Directories anlegen,
Dateien umbenennen oder umleiten, loschen oder kopieren
und wichtige oder geheime Informationen vor fremden Zugriff
schiitzen.
Die einzelnen Themen:
3.4.1
Neuanlegen und L6schen von Directories
3.4.2
Kopieren, L6schen und Umbenennen von Dateien
3.4.3
Merkmale einer Datei
3.4.4
Dateitypen unter UNIX
3.4.5
Ausdruck von Dateien
3.4.6
Andern von Zugriffs- und 8esitzerrechten
3.4.7
Such en nach Dateien und Mustern in Dateiinhalten
3.4.8
OberprOfen der Platten- oder Floppy-8elegung
3.4.9
Zusammenfassung der Kommandos
153
3
UNIX - praktisch angewandt
Dateiverwaltung und -pflege
Kennen Sie das GefOhl, wenn alles herumliegt und Sie keine Lust haben aufzuraumen? - Und wie wohl fOhlen Sie sich, wenn Sie sich Oberwunden haben und
Ordnung geschafft ist! Genauso wohl sollen Sie sich in Ihrem UNIX-System fOhlen. Richten Sie sich ein, organisieren Sie Ihr ,Homec-Directory!
Welche Organisationsm6glichkeiten stehen Ihnen zur VerfOgung?
o
Strukturieren durch Unter-Directories - Wie raumen Sie z. B. Ihren
Schreibtisch auf? Erledigte SchriftstOcke geben Sie sicher in eine Ablage,
z. B. in einen Schrank mit verschiedenen Fachern und Ordnern. Die Facher
und Ordner haben Sie eingeteilt fOr bestimmte Bereiche (z. B. Abteilung Einkauf, Lieferanten, Rechnungen usw.). Unter UNIX entsprechen Schrank und
Ordner den Directories mit den jeweiligen Unter-Directories. NOtzen Sie die
klare Ordnung des hierarchischen Dateisystems. Sie k6nnen beliebig viele
Directories nebeneinander (horizontal) oder untereinander (vertikal) einrichten. Auch gibt es kein Limit fOr die Anzahl der Dateien und Unter-Directories
innerhalb von Directories. Herrlich, stell en Sie sich einen Schrank vor, in dem
Sie nach Bedarf immer neue Facher einrichten k6nnen. Allerdings, eine Begrenzung gibt es - die Plattenkapazitat. Auch empfiehlt es sich, nicht zuviele
Dateien in einem Directory abzulegen. Die Verarbeitungsgeschwindigkeit
k6nnte durch langes sequentielles Suchen der Dateien innerhalb der Directories merklich nachlassen. Gruppieren Sie deshalb Ihre Dateien, und richten
Sie fOr jede Gruppe ein eigenes Directory ein.
0irectOry-A
... beliebig viele
D
I
0irectOry-An)
BUd 3 -1 03: Beispiel Strukturierung durch Directories
154
Dateiverwaltung und -pflege
o
Eindeutige Bezeichnung der Directories und Dateien. Die Namen fOr Dateien und Directories k6nnen bis zu 256 Stelien genutzt werden (vor System
V.4 konnten Dateinamen bis zu 14 Stelien lang sein). Vermeiden Sie alierdings
Sonderzeichen und die Umlaute der deutschen Sprache (a A; 6 0; 0 0), da
nicht auf alien System en die internationalen Zeichensatze unterstOtzt werden. Sie wissen zwischenzeitlich, daB es unter Umstanden unangenehme
Foigen hatte, eine Datei mit dem Namen zu 16schen. Deshalb nochmal zur
Wiederholung:
.*.
Verwenden Sie als Datei- oder Directory-Namen nur die GroB- und
Kleinbuchstaben (A-Z, a-z), den Bindestrich und Unterstreichungsstrich oder den Punkt (-. _•. ), wobei diese nicht am Anfang eines
Namens stehen sollten. Der Punkt am Anfang eines Namens kennzeichnet .versteckte Dateien •. FOr den Systemverwalter sind mit
Punkt beginnende Dateien immer sichtbar. Wie .normale. Benutzer
diese versteckte Dateien auffinden, erfahren Sie noch in diesem
Kapitel.
Die Trennung zwischen Directories und Dateien wird in der Pfadbezeichnung
durch den Schragstrich I erreicht. Somit ergibt sich auch durch den Pfad
eine aussagetahige Bezeichnung der Datei.
Angenommen, Sie hatten Informationen Ober Versicherungen im Rechner
gespeichert, so k6nnte eine Obersichtliche Unterteilung folgendermaBen
aussehen:
Versicherung
Die Datei muB also nicht HaftpfJichtversieherungsvertrag genannt werden, sondern sie wird durch den Pfad genau bezeichnet:
Versicherung/HaftpflichtIVertrag
Beginnen Sie mit der Organisation Ihres Obungs-Directories. Sehen Sie sich Ihr
Directory an. Um sicher zu gehen, kontrollieren Sie vorab, ob Sie auch wirklich in
Ihrem Home-Directory sind. Mit dem Kommando Is (Jist) erhalten Sie zwar eine
alphabetische Ordnung angezeigt, doch werden Sie sieher zustimmen, daB Sie
mit einer Unterteilung nach .Bereichen. eine bessere Obersicht erzielen.
155
3
UNIX - praktisch angewandt
Obungsbeispiel, um sich die )nahere Umgebung' anzusehen:
$ cd
Wechsel in das Home-Directory
$ pwd
lusrlkurslmonika
Is -RF
$
Datum
fOr Directories
//rKennzeichen
- -__________
_
befeh/el inhalt neu projektAl sprueche ueb 1
befeh/e:
sichern' - - projektA:
pro.c io.c bSp.c
. Kennzeichen fOr ausfOhrbare Dateien (Kommandoprozeduren)
$
Bild 3-104: Beispiel listen, anzeigen von DirectorieslDateien (Is -RF)
In unserem Beispiel sind bereits 2 Unter-Directories enthalten und nur wenige
Dateien bisher angelegt worden. Doch auch hier lieBe sich eine Strukturierung
nach folgenden Bereichen vornehmen:
Bild 3-105: Beispiel Dateibaum - neue Aufteilung im Ubungs-Directory
lusrlkurslmonika
Um die Aufteilung nach obigem Muster in unserem Beispiel nachzuvollziehen,
sind die Directories )uebungen' und )texte' neu angelegt worden.
156
3.4.1
Dateiverwaltung und -pflege
3.4.1 Neuanlegen und Loschen von Directories
Um Directories neu anzulegen gibt es das Kommando mkdir.
mkdir -p Directory-Name(n)
I
make
dlrecto~
I
I
I
I
max. 256 Zeichen (vor System V
14 Zeichen) Der Name darf in dem
aktuellen Directory noch nicht
anderweitig vergeben sein
path
noch nicht vomandene
Directories werden
mit angelegt
mkdir - Kommando zum Anlegen von Directories
Der Name des Directories kann auch mit dem gesamten Pfadnamen angegeben
werden. Ab Version VA ist es nicht mehr notwendig, daB die jeweilig Gbergeordneten Directories bereits angelegt wurden. Mit der Option -p kennen aile netigen Directories mit angelegt werden. In unserem Beispiel befinden wir uns in
/usr/kurs/monika und legen hier die Directories uebungen, texte und a an:
$ mkdir uebungen texte a
$ Is -I
·rw-f-r-dr wxrwX(-X
dr wxrwxr-x
-rw-r--f--rw-r--f-dr wxrwxr-x
-rw-r--r-dfwxrwxr-x
-rw-rw-r-dr wxrwxr-x
1 monika
2 monika
2 monika
1
1
2
1
2
$
I
1
2
monika
monika
monlka
monika
monika
monika
monlka
kurs
kurs
kurs
kurs
kurs
kurs
kurs
kurs
kurs
kurs
29
32
32
22
245
80
289
32
12489
32
Jun20
Oct 19
Feb 7
Jun20
Jun20
Feb 7
Sep2B
Oct 19
Feb 7
Oct 19
9:26 Datum
15:20 a
8:30 befehle
9:27 inhalt
21:04 neu
8:30 proJektA
21:32 sprueche
15:20 texte
8:35 uebl
15:20 uebungen
Referenzzahler
d = Directory
- = normale Datei
Benutzername
Datum der
GrOBe
in Bytes letzten Anderung
Name der Datei
Bild 3-106: Beispiel Anlegen von Directories - (mkdir und Is -I)
In dem obigen Bild sind die neuangelegten Directories mit einer helleren Schraffur hervorgehoben. Die Zugriffsrechte von Directories und Dateien werden beim
Neuanlegen so gesetzt, wie sie vom Systemverwalter zunachst definiert wurden
(Datei /ete/profile). Wie Sie selbst diese Zugriffsrechte andern kennen und welche besondere Bedeutung sie fUr Directories haben, erfahren Sie ein paar Seiten
spater. Vorab wollen wir uns noch mit dem Aufraumen beschafiigen.
157
3
UNIX - praktisch angewandt
Wir haben beim Neuanlegen ein Directory mit dem Namen 'a' angelegt, das wir
aber nicht benotigen. Um Directories zu loschen, gibt es ein eigenes Kommando:
rmdir
I
Directory
remove directory
rmdir - Kommando zum Loschen von Directories
Um ein Directory loschen zu konnen, muB es jedoch ,leer, sein, d.h., aile in dem
Directory eventuell enthaltenen Dateien mussen vorab mit rm geloscht werden
bzw. eventuelle Unter-Directories mit rmdir. Diese mussen natUrlich auch wiederum ,leer, sein.
Um das unnotig angelegte Directory ,a, wieder zu loschen wird eingegeben:
$rmdir a
Is -I
$
-rw-r--r-dr wxrwxr-x
-rw-r--r-rw-r--r-drwxrwxr-x
-rw-r--r-dr wxrwxr-x
-rw-rw-r-drwxrwxr-x
1 monika
2 monika
1
2
1
2
1
2
$ rmdir projektA
rmdir:
monika
monika
monika
monika
monika
monika
monika
projektA not empty
kurs
kurs
kurs
kurs
kurs
kurs
kurs
kurs
kurs
29
32
22
245
80
289
32
12489
32
Jun 20
Feb 7
Jun
Jun
Feb
Sep
Oct
Feb
Oct
20
20
7
28
19
7
19
9:26 Datum
8:30 befehle
9:27 inhalt
21:04 neu
8:30 projektA
21:32 sprueche
15:20 texte
8:35 ueb1
15:20 uebungen
Wird versucht, ein nicht leeres Directory zu
IOschen, erscheint eine Fehlernachricht:
projektA ist nicht leer
Bild 3 -1 0 7: Beispiel Loschen von Directories - rmdir
Um nun die Dateien in die neu eingerichteten Directories zu bringen, konnen wir
verschiedene Wege gehen:
ODie Dateien yom aktuellen Directory in das neue Directory kopieren_ Kontrollieren, ob auch aile Dateien im neuen Directory vorhanden sind. Loschen
der Dateien im alten Directory.
ODie Dateien in das neue Directory hiniiberschieben, bewegen (move).
158
Dateiverwaltung und -pflege
-----------------------------
3.4.2
3.4.2 Kopieren, Loschen und Umbenennen von Dateien
Das Kommando zum Kopieren von Dateien kann unterschiedlich genutzt werden:
1. Kopieren
einer Datei
cp Dateiname-alt
I
I
copy
I
I
zu kopierende
Datei
Dateiname-neu
I
IDatei
neu zu erstellende
cp - Kommando zum Kopieren einer Datei
Mit dieser Angabe k6nnen Sie jeweils nur eine Datei kopieren. Sehen wir uns
hierzu ein Beispiel an. Kopieren wir die Datei .new und geben der neuen Datei
den Namen .neuer.:
$ cp neu neuer
$ Is -I
-rw-r--r-dr wxrwxr-x
-rw-r--r--rw-r--r--rw-r--r-drwxrwxr-x
-rw-r--r-dr wxrwxr-x
-rw-rw-(-drwxrwxr-x
$
1 monika
2 monika
1
2
1
2
1
2
monika
monika
monika
monika
monika
monika
monika
monika
kurs
kurs
kurs
kurs
kurs
kurs
kurs
kurs
kurs
kurs
29
32
22
245
245
80
289
32
12489
32
Jun20
Feb 7
Jun20
Jun 6
Oct 19
Feb 7
Sep28
Oct 19
Feb 7
Oct 19
9:26 Datum
8:30 befehle
9:27 inhalt
21:04 neu
17:45 neuer
8:30 projektA
21:32 sprueche
15:20 texte
8:35 ueb1
15:20 uebungen
kopierte Datei mit neuem Datum
Bild 3-108: Beispiel Kopieren einer Datei - cp
Die Datei wird mit den gleichen Zugriffsrechten erstellt und erhalt als Erstellungs- und letztes .Anderungsdatum das aktuelle Datum. Der Benutzer, der eine
Datei kopieren will, muB berechtigt sein, die zu kopierende Datei zu lesen und
muB Schreiberlaubnis fOr das Directory haben, in dem die neue Datei erzeugt
wird.
Der Benutzer wird auch zugleich .Besitzer, der neu angelegten Datei - auch
dann, wenn ihm die 'alte' Datei nicht gehOrt. Falls Sie auf Ihrem Rechner die Datei lusr/lib/cookies haben, k6nnen Sie diese in Ihr Directory kopieren und sind
dann berechtigt, diese kopierte Datei zu andern.
159
3
UNIX - praktisch angewandt
Hier dazu das Obungsbeispiel:
$ Is -l/usr/lib/cookies
1 bin
bin
-rw-'--'-$ cp lusr/lib/cookies kekse
$ Is -I
-rw-,--,-1
monika
kurs
dr wxrwx,-x
2
monika
kurs
-rw-,--,-1 monika kurs
-rw-,--,-1 monika kurs
1
monika
kurs
-rw-'--r-1 monika kurs
-rw-r--'-d, wxrwx,-x
2
monika
kurs
1
monika
kurs
-rw-'--'-2
monika
kurs
drwxrwxr-x
-rw-rw-,-1
monika
kurs
d, wxrwx,-x
2
monika
kurs
$
101699
Feb
8
1984 cookies
zu kopierende Datei
29 Jun 20
32 Feb 7
22 Jun 20
101699 Oct 19
245 Jun 6
245 Oct 19
80 Feb 7
289 Sep28
32 Oct 19
1?4AQ
~'*'
7
9:26 Datum
8:30 befehle
9:27 inhalt
17:55 kekse
21:04 neu
17:45 neuer
8:30 proiektA
21:32 sprueche
15:20 texte
R·~"
II'*'1
kopierte Datei mit neuem Datum ,
neuem Besitzer und Gruppe
ungen
BUd 3-109: Beispiel Kopieren einer Datei - cp
Die andere Moglichkeit cp zu verwenden, ist, mehrere Dateien gleichzeitig zu
kopieren. Das Ziel muB dann ein Directory sein und als letzter Parameter angegeben werden. Die Dateien werden in dem Ziel-Directory mit gleichem Namen
angelegt.
2. Kopieren von einer oder mehreren Dateien in ein Directory
-ir
copy
I
pateiname(nJ-alt
pirectory
z~ kopierende
IDirectOry, .
Datei oder mehrere unter dem die
Dateien
angegebenen Dateien
mit gleichem Namen
rekursiv
neu erstellt (kopiert)
Der gesamte Dateiwerden
baum wird kopiert
interactive
Falls eine Datei mit gleichem Namen schon existiert,
wird nachgefragt, ob uberschrieben werden darf
(ab Version V.4)
cp - Kommando, urn Dateien in ein Directory zu kopieren
160
3.4.2
Dateiverwaltung und -pflege
Verwenden wir diese Form des cp-Kommandos, um in unserem Directory Ordnung zu schaffen. Wir wollen die vorhandenen Dateien in Unter-Directories ablegen. Hierbei werden wir zwei Vorgehensweisen demonstrieren.
1.
Aile ,Obungsdateien< kopieren wir in das Directory uebungen, kontrollieren
die Kopie und loschen dann die doppelt vorhandenen Dateien in unserem
Home-Directory.
$ Is -I uebungen
total 0
$ cp Datum inhalt neu neuer ueb1 uebungen
$ Is -I uebungen
kopierte Daleien mit neuem Datum
-rw-,--,-rw-,--,--rw-,--,--rw-,--,--rw-rw-,-
monika
1 monika
1 monika
1 monika
1 monika
29
22
245
245
12489
kurs
kurs
kurs
kurs
kurs
$ rm Datum inhalt neu neuer ueb1
Oct
Oct
Oct
Oct
Oct
19
19
19
19
19
18:10
18: 10
18:10
18: 10
18:10
Datum
inhalt
neu
neue,
ueb1
LOschen der allen Daleien
Bild 3 -11 0: Beispiel Kopieren von mehreren Dateien in ein Directory - cp
2.
I>
Sehen wir uns unser Home-Directory an, von dem aus wir bisher aile Kommandos durchgefOhrt haben (working directory), und raumen noch die restlichen Dateien auf.
Doch Vorsicht! Besteht schon eine andere Datei mit dem neu zu vergebenden Namen, so wird sie Gberschrieben! Verwenden Sie deshalb beim Kopieren die Option -I, die Sie davor schGtzt.
Es gibt unter UNIX keine Moglichkeit, geloschte oder Gberschriebene Dateien
zurGckzubekommen! - Es sei denn, Sie haben eine Sicherung (ein backup) erstellt - doch davon spater.
Hier noch ein kurzes Beispiel, wie Sie einen ganzen Dateibaum mit cp kopieren
konnen. Angenommen, Hans will sich das Directory texte von Monika kopieren,
so gibt er an:
$pwd
lusrlkurslhans
$Is -FR
befehlel
projektBI
$ cp -r ..Imonika/texte texte
$Is -I texte
-rw-,--r-rw-,--,--
1 hans kurs
1 hans kurs
101699 Nov 2 8:55 kekse
289 Nov 2 8 :5 5 spruech
Bild 3 -111: Beispiel Kopieren eines Dateibaumes mit cp -r
161
3
UNIX - praktisch angewandt
Das Directory texte wurde in dem obigen Beispiel mit angelegt, evtl. UnterDirectories wurden ebenfalls mit kopiert werden.
Das L6schkommando haben wir kurz bei dem Thema Dateinamenexpansion besprochen. Es hat folgende Form:
rm
I
remove
16schen
[-ir]
I
Dateiname(n)
[oder Directories 1
Irekursiv
Werden Directories angegeben, so werden
aile darin enthaltenen Dateien und UnterDirectories gel6scht
interactive
Aile Dateien werden zuerst angezeigt und erst
durch die Bestatigung mit 'y' gel6scht.
l>
rm - Kommando zum Loschen von Dateien und Dateibaumen
Dieses Kommando loscht nicht nur schnell und unwiderruflich, es kann
auch gesamte Dateibaume- Dateisysteme zerst6ren oder restlos vernichten.
Ich muB gestehen, ich habe lange uberlegt, ob ich die Option -r (rekursiv) in diesem EinfUhrungskurs uberhaupt erwahnen soil. Doch es ist immer besser, die Gefahr zu kennen und zu meiden, als blind in sie hineinzulaufen. Bevor Sienn -r eingeben, sollte Ihnen stets bewuBt sein, was Sie 16schen. Oberprufen Sie, in
welchem Directory Sie sind und kontrollieren Sie dreimal Ihre Eingabezeile.
Eine andere M6glichkeit, 'auf Nummer sicher. zu gehen, ist das Kommando zusammen mit der Option -i aufzurufen. Bei der Eingabe rm -ir wird Ihnen jede zu
16schende Datei mit Namen und einem Doppelpunkt am Bildschirm angezeigt.
Sie mussen durch den Buchstaben ,y. (fiir yes) bestatigen, daB Sie mit der L6schung einverstanden sind. Bei jeder anderen Eingabe, also auch nur dem Aus16sen der Returntaste, bleibt die Datei erhalten.
Das Kommando rm -r hat natUrlich seine Berechtigung, wenn Sie bewuBt einen
Dateibaum 16schen wollen. Sicher wird dieses Kommando eher von Systemverwaltern benutzt werden, die Umorganisationen durchfUhren. Sie erinnern sich,
daB mit dem Kommando rmdir nur leere Directories gel6scht werden k6nnen.
Wenn das zu 16schende Directory aus einer Reihe von Unter-Directories besteht,
kann die L6schaktion recht langwierig werden, da Sie vom untersten UnterDirectory beginnend erst aile Dateien 16schen muBten. Das Kommando
rm -r lusr/kurs/monika
162
wurde den gesamten Dateibaum ab lusrlkurslmonika ,ratzeputz< 16schen. Mit
dem rm-Kommando spielt man nicht und sollte es auch nicht ohne Absicherung
benutzen. Gedulden wir uns deshalb bis zu Kapitel 3.5, in dem wir die Sicherung
3.4.2
Dateiverwaltung und -pflege
von Dateien behandeln backup). In der Korn- und C-ShelJ gibt es eine M6glichkeit, das rm-Kommando zu entscharfen: man bildet einen alias fOr rm, der dann
grundsatzlich rm -i aufruft (hierzu mehr im Kapitel 3.8.5 (Der Alias-Mechanismus), Seite 312).
Lernen wir nun ein Kommando kennen, mit dem wir Dateien umbenennen k6nnen. Auch dieses Kommando ist nicht ganz ungefahrlich. Besteht namlich bereits eine Datei mit dem neu zu vergebenden Namen, so wird diese Oberschrieben. Das Kommando lautet mv (move - bewegen). Dieses Kommando hat
ebenso zwei Funktionen wie das cp-Kommando. Sie k6nnen es einmal verwenden, um eine Datei umzubenennen, zum anderen k6nnen Sie Dateien in ein anderes Directory >schieben'.
1.
mv -i
I
move
bewegen
Dateiname-alt
Dateiname-neu
bisheriger
Dateiname
Dateiname
I
I
~euer
interactive
Falls eine Datei mit gleichem Namen schon existiert,
wird nachgefragt, ob Oberschrieben werden dart
(ab Version V.4)
2.
mv -i
Fateiname(nJ-att
,
bisherige Datei
oder mehrere Dateien
Directory, unter das die angegebenen Dateien mit gleichem
Namen Obertragen werden
interactive
Falls eine Datei mit gleichem Namen schon existiert,
wird nachgefragt, ob Oberschrieben werden dart
(ab Version \1.4)
mv - Kommando, urn Dateien in ein anderes Directory zu schieben
Sehen wir uns gleich die 2. Funktion von mv an, Dateien von einem Directory in
ein anderes Directory zu >schieben,. Hiermit k6nnen Sie z. B. Aufraumarbeiten
schneller als mit cp und rm durchfOhren, da die >alten' Dateien nicht gesondert
gel6scht werden mOssen.
163
3
UNIX - praktisch angewandt
$
Is
-I
drwxrwxr-x
-rw-r--r-drwxrwxr-x
-rw-r--r-dr wxrwxr-x
dr wxrwxr-x
$
$
2 monika
1 monika
1 monika
1 monika
2 monika
2 monika
kurs
kurs
kurs
kurs
kurs
kurs
48 Feb 7
101699
80
289
32
128
my [ks1* texte
Is -I
dr wxrwxr-x
drwxrwxr-x
dr wxrwxr-x
dr wxrwxr-x
2 monika
1 monika
2 monika
2 monika
kurs
kurs
kurs
kurs
32
-rw-r--r--rw-r--r-
1 monika
kurs
kurs
101699
289
$
Is
-I texte
monika
80
64
64
Oct 19
Feb 7
Sep28
Oct 19
Oct 19
Feb
Feb
7
7
8:30 befehle
17:55 kekse
8:30
21:32
15:20
15:20
projektA
sprueche
texte
uebungen
8:30 befehle
8:30 projektA
Oct 19
Oct 19
15:20 texte
15:20 uebungen
Oct 19
Sep28
17:55 kekse
21:32 sprueche
Bild 3-112: Beispiel Obernahme von Dateien in andere Directories - mv
Da in unserem Directory nur noch die beiden Textdateien vorhanden sind, haben
wir uns im obigen Beispiel die Aufraumarbeit zusatzlich durch die Dateinamenexpansion mit Metazeichen erleichtert.
Wenn wir schon Ordnung machen, dann lassen Sie uns auch gleich etwas Kosmetik vornehmen. Unsere Directories sind zwar mit einem ,dc gekennzeichnet,
aber noch besser sind sie als Directories zu erkennen, wenn sie z. B. mit GroBbuchstaben beginnen. Hier sehen wir auch gleich die
1. Anwendung von my zur Umbenennung:
$
$
$
$
$
my befehle Befehle
my projektA Projekt-A
my texte Texte
my uebungen Uebungen
Is -I
drwxrwxr-x
drwxrwxr-x
drwxrwxr-x
drwxrwxr-x
$
2
1
2
2
monika
monika
monika
monika
kurs
kurs
kurs
kurs
48 Feb
80 Feb
7
7
64 Oct 19
64 Oct 19
8:30
8:30
15:20
15:20
Befehle
Projekt-A
Texte
Uebungen
Bild 3 -113: Beispiel Umbenennen von Dateien oder Directories - mv
164
In unseren Obungen haben wir u.a. eine Datei Datum angelegt. Wollen wir konsequent normale Dateien mit Kleinbuchstaben beginnen lassen, muBten wir
diese Datei in datum umbenennen. In der Praxis k6nnte so eine Umbenennung
zur Foige haben, daB ein fruheres Programm auf den ursprunglichen Namen der
3.4.2
Dateiverwaltung und -ptlege
Datei zurOckgreift. Um deshalb beide Namen gelten zu lassen, gibt es ein Kommando, mit dem mehrere Namen fOr ein und dieselbe Datei vergeben werden
kennen. Der Platz auf der Platte wird dadurch nicht doppelt belegt, da der zusatzliche Namenseintrag im Directory festgehalten wird. Der Inhalt der Datei ist
nur einmal vorhanden. Das Kommando lautet:
In
I
I
link
verbinden.
sich anschlieBen
Dateiname-alt
I
I bisheriger
Oateiname
Dateiname-neu
!
I zusalzlicher
Oateiname
In - Kommando, um einen weiteren Dateinamen zu vergeben
(.Hardlink< oder .reguliirer Link<)
Die Vergabe von einem zusatzlichen Namen fOr eine Datei kann nur auf der gleichen Platte (Platten partition - siehe auch Seite 190) erfolgen. Auf Directories
kann kein .Hardlink< erfolgen.
Um nicht lange Pfadnamen mit angeben zu mOssen, wechseln wir vorab in das
Directory Uebungen:
$ cd Uebungen
$ In Datum datum
Referenzzahler (link count)
$ Is -I
-rw-r--r--rw-r--r--rw-r-r--rw-r--r--rw-r--r--rw-rw-r--
I
2
2
=2
:Hinweis, daB 2 Oateinamen existieren
gleiche Oatei - gleiches oatuj m
monika
monika
monika
monika
monika
monika
kurs
kurs
kurs
kurs
kurs
kurs
29
29
22
245
245
12489
Oct 19
Oct 19
Oct 19
Oct 19
Oct 19
Oct 19
18:10
18:10
18:10
18:10
18:10
18:10
Datum
datum
inhalt
neu
neuer
ueb1
Bild 3 - 114: Beispiel zusatzliche Namensvergabe fOr Dateien - In
Um zu sehen, was in unserem Dateisystem hierbei verandert wurde, kennen wir
uns mit dem Is-Kommando die zusatzlichen Attribute anzeigen lassen. Wir sehen, daB der Referenzzahler fOr die Dateien Datum und datum jeweils >2< ist,
d. h., zwei Dateinamen existieren. Wird eine der beiden Dateien (Datum oder datum) gelescht, bleibt der Inhalt der Originaldatei trotzdem erhalten. Erst wenn
keine Link-Dateien mehr bestehen (Referenzzahler ist 1), wird auch der Inhalt der
Datei mitgelescht.
165
3
UNIX - praktisch angewandt
Um plattenObergreifend ebenfalls Verbindungen zu Dateien oder auch Directories herzustellen, gibt es den >symbolischen link.:
In -s Original-Datei
I
I
I
link I
Linkname
I
I
zusatzlieher
Dateiname
oder Directory
NameNerweis
mit absolutem Pfadnamen
verbinden,
sieh ansehlieBen
In - Kornrnando, urn einen Verweis zu einer bestehenden
Datei zu erstellen (>symbolischer Link, oder >softlink'J
Sehen Sie sich hierzu auf Ihrem System mit
Is -I Ibin
die darin enthaltenen Dateien einmal an. Sie werden dort wahrscheinlich eine
Reihe von merkwOrdigen Dateibezeichnungen mit einem Pfeil finden. Der Pfeil
weist auf die Originaldatei hin, die u. U. sogar auf einem anderen Rechner im
Netz zu finden sein kann. Auf diese Weise korinen groBere Dateien/Directories
auf eine andere Platte ausgelagert werden. Da jedoch speziell bei Ibin die UNIXBefehle gesucht werden, wird hier Ober den symbolischen Link beim Aufruf
eines Programmes auf die Originaldatei verwiesen.
Wir konnen hierzu selbst ein kleines Beispiel erstellen: Wir wollen das Directory
/usrlkurs/monikalUebung fUr aile zuganglich machen und legen deshalb im
Directory Itmp, das fUr aile Benutzer Schreib- und Leseerlaubnis gesetzt hat, einen Verweis mit dem Namen Uebung an. (Monika muB naWrlich die Schreib- Leserechte in Ihrem Directory Uebung auch entsprechend setzten - doch davon
spater).
$ cd Itmp
-
$ In -s lusr/kurs/rnonika/Uebung Uebung
$ Is -I
GroBe der Datei entsprieht der Anzahl der Buehstaben
I
Irwxrwxrwx 1 monika
I
I
kurs 23
T
Oct 21 8:20 Uebung ->lusrlkurslmonikaJUeoung
Referenzziihler bleibt ,1.
,I. Kennzeiehen f. symbolise hen link
-> lerweis auf Originaldatei
eigenes Datum
Bild 3 -115: Beispiel symbolischer Link (Softlink)
166
Dateiverwaltung und -pflege
3.4.3
Der Verweis ist nur bei der Link-Datei enthalten. Wird die Originaldatei bzw. das
Original-Directory umbenannt oder geloscht, zeigt die Link-Datei sozusagen ins
·Leere<, d. h., ein auf die Link-Datei bezogener Befehl wird eine Fehlermeldung
bringen wie etwa >file does not exist<.
Doch mit Link-Dateien haben mehr die Systemverwalter zu tun. Ais .normaler<
Benutzer ist es jedoch interessant zu wissen, was die Pfeile bedeuten.
3.4.3 Merkmale einer Datei
Eine Datei besteht aus einem Dateikopf, in dem bestimmte Merkmale der Datei
eingetragen sind, und dem eigentlichen Dateiinhalt. Wenn wir uns mit Is -I eine
Datei oder ein Directory ansehen, so bekommen wir einige dieser Merkmale angezeigt:
o
o
o
o
o
o
o
Dateityp (Directory, normale Datei oder Geratedatei, symbolischer Link),
Zugriffsrechte (read, write, execute - Lese-, Schreib- und AusfOhrerlaubnis
fOr den Besitzer, die Gruppe und die anderen Benutzer),
Referenzzahler (Anzahl der vergebenen Dateinamen),
Benutzername und Gruppe,
GroBe in Bytes,
letztes Anderungsdatum und
Name der Datei
Zusatzlich werden pro Datei
o
das Erstellungsdatum und das letzte Zugriffsdatum festgehalten
und eine Adresse vermerkt, wo auf der Platte (Dateisystem) der Dateikopf der Datei zu finden ist. Der Dateikopf wird als inode bezeichnet.
Die Adresse des Dateikopfes ist die inode-Nummer.
Wir hatten zu Beginn das Dateisystem unter UNIX mit dem Ablagesystem eines
Schrankes verglichen. Stellen Sie sich vor, daB so ein Schrank systematisch in
gleiche Ablagefacher oder Schachteln aufgeteilt wird. Um sich zurechtzufinden,
mOBten Sie aile diese Schachteln durchnumerieren.
Ahnlich wird eine Platte, bevor sie als Dateiablagesystem benutzt werden kann,
aufgeteilt. Die Aufteilung einer Platte wird als Formatierung bezeichnet. Bei einer Formatierung wird die Platte in Blocke unterteilt und diese werden mit PrOfsummen und Blocknummern versehen. Zusatzlich wird in der Regel OberprOft,
ob aile Blocke fehlerfrei beschrieben und gelesen werden konnen.
Danach erst kann ein Dateisystem eingerichtet werden. Dies wird zumeist bei
der Installation eines Systems durch den Systemverwalter erfolgen. Es wird angegeben, wie groB das Dateisystem ist (Anzahl der Blocke). Das Programm
mkfs (make filesystem) errechnet die maximale Anzahl der moglichen Dateien
und legt eine Liste mit den noch freien Platzen an. Die reservierten Platze sind
167
3
UNIX - praktisch angewandt
ahnlich wie im Theater durchnumeriert. Die Nummern werden als ,inode-Nummer, bezeichnet.
Um sich die inode-Nummer einer Datei und die Anzahl der benotigten Blocke
anzeigen zu lassen, kann das Is-Kommando mit der Option Is -/is (I -long, ; inode, s - size) verwendet werden.
$ Is -lis
I1799
Referenzzahler ~ink count)
gieiChe Inode-Nummer
1799
1
1
1804
1810
1826
1828 24
I
inodeNummer
\
-rw-,--,--rw-,--,--rw-,--,--rw-,--,--rw-,-,-rw-rw-,-I
/
Zugriffsrechte
Blockanzahl
fje 512 Bytes)
I -
=2:
Hinweis, daB 2 Dateinamen existieren
derselbe Dateiinhalt
2 monika
2 monika
kurs
kurs
monika
kurs
kurs
kurs
kurs
1 monika
1 monika
1
monika
I
I
29
29
22
245
245
12489
Benutzer- Gruppe
name
des Dateibesitzers
Dirt 19
Dirt 19
18:10 Datum
18:10 datum
Dirt 19
Dirt 19
Dirt 19
18:10
18:10
18:10
18:10
Olrt 19
/
inhaJt
neu
neue,
uebl
Datum der
letzten Anderung
GrOBe
in Bytes
Name
der Datei
Bild 3 -116: Beispiel Anzeige der Dateien mit weiteren Datei-Attributen (Is -/is)
Bei dem obigen Beispiel erkennen wir, daB die Dateikopfe ,Datum' und >datum,
die gleichen inode-Nummern aufweisen und somit auf ein und denselben Dateiinhalt verweisen. Fassen wir die weiteren Optionen des Kommandos Is nochmals zusammen:
168
Dateiverwaltung und -pflege
Is [-IFRaidst]
I
Ilist
(listen, anzeigen)
3.4.3
[Directory oder Dateinamen]
I
Itime
Die Ausgabe der Liste wird nach dem Anderungsdatum der Dateien sortiert ausgegeben
size
Es werden zusatzlich die benotigten Blocke
(ie 512 Bytes) angezeigt
directory
Die Abfrage bezieht sich nur auf das Directory, nicht
auf die in dem Directory enthaltenen Dateien
inode
Die Adresse (inode-Nummer) wird angezeigt
al/
Aile Dateien werden angezeigt, auch die, die mit einem
Punkt beginnen und sonst nur fOr den Systemverwalter
sichtbar sind
Rekursiv
Liste eines Dateibaumes
Format short
Kurzformat, Directories sind mit ,I,
gekennzeichnet, Kommandostrings mit *
(ausfOhrbare Dateien)
long format
Anzeige der Dateien mit den Attributen: Dateityp, Zugriffsrechte,
Aeferenzzahler, Name und Gruppe des Dateibesitzers, GroBe
der Datei in Bytes, letztes Anderungsdatum und Name der
Datei
Es gibt Obrigens ca. 18 unterschiedliche Optionen zu /5, hier sind nur die aufgefOhrt, die fOr Sie von Bedeutung sein konnten. Wenn Sie darOber mehr erfahren
mochten, rufen Sie man Is auf.
169
3
UNIX - praktisch angewandt
3.4.4 Dateitypen unter UNIX
Bisher haben wir >normale Dateien. - gekennzeichnet mit >-. - und Directories gekennzeichnet mit >d. - kennengelernt.
Eine Besonderheit unter UNIX ist, daB auch Gerate wie Drucker, Platten, Terminals, ahnlich wie Dateien behandelt werden. Diese Dateien sind unter dem
Directory Idev (devices) abgelegt. Sie haben bereits einige >Geratedateien' kennengelernt. Erinnern Sie sich noch an Idevlnull? Oder die Antwort des Rechners auf Ihre Frage tty z. B.: Idevltty11. Sehen Sie sich Ihr Directory Idev einmal an. Jeder Rechner (Rechnertyp) arbeitet mit unterschiedlichen Geraten.
Deshalb werden Sie auf Ihrem Rechner moglicherweise andere Informationen
finden, als wir sie hier an unserem Beispiel zeigen. Ein kleiner Ausschnitt der Liste reicht, um auf die abweichenden Merkmale zu normalen Dateien hinzuweisen:
$ Is -Ii Idev
0 Oct 19
0 Ocl 20
226
C/W--W--W-
2 gisela
kurs
204
CfW--W--W-
3 root
bin
25,
0,
216
br--(-f--
1 root
bin
4,
258
c/w--w-w-
2 rool
bin
13,
243
16
204
CfW-/W-/WCfW-/W-fW-
rool
rool
bm
bm
root
204
CfW--W--W-
1
1
3
3
bm
bm
17, 128 Oct
I,
2 Oct
0,
0 Oct
0,
0 Oct
220
CfW---
"'01
CfW'fW-fW-
258
CfW--W--W-
CfW--W--W-
I'
,
root
0
Oct 25
7 Oct 20
8:00 blp
18:10
coruo'
13:25 hkD.O
Bezelchnung
z B. fur:
Bitmap-Terminal
System-Console
9:00 Ipl
20 18:10
21 21:0 I
20 18: 10
20 18; 10
nrstO
null
LJniTtnnter
zu uhcher
Name fur tty17
Streamer
Papler1lorb
syscon zu~uhche Besyst/y zelchnung fur
Console
I mon/Iea kurs
I bemd kurs
13,
1 Ocl 19
13.
2 Ocl 19
8:00 ttyl1
8:00 IIy12
Terminal 11
Terminal 12
2 rool
13,
7 Oct 20
18:10 ttyl7
Terminal 17
I '--.-
bin
,/ \ - . . . . . /
InodeZugnffsrechte Name und Gruppe
Nummer
Reterenz- des Datelbesltzers
zahler
GerAte (Dateityp)
c =character onented
Zelchenwelse lesende
und schrelbende Gerate
'
Mod,flkallonsdatum
,
I
Name
der Dalel
statt der byte-GroBe Sind hler
2 Nummern fur die SoftwareSteuerung der Gerale elngelragen
(major und minor deVice number)
b = block oriented
Ole Eln- und Ausgabe auf
dlese GerlUe wlrd gepuffert
und blockwelse Ubertragen
Bild 3 -117: Beispiel einiger Geratedateien (devices)
(Teilanzeige von Is -Ii /dev)
170
Platte Laufw.
0, Bnhelt 0
Dateiverwaltung und -pflege
3.4.4
Die Geratedateien sind als Dateityp entweder mit
c
b
fUr character oriented, zeichenweises Obertragen oder
fUr block oriented, blockweises Obertragen
der Ein- und Ausgabe (Lesen und Schreiben von ZeichenlDaten) gekennzeichnet. Zusatzlich ist in der Geratedatei enthalten, mit welcher Software (Driver) dieses Gerat betrieben wird (major device number).
Die zweite Nummer (minor device number) sagt aus, wo sich das Gerat befindet.
so hat das Terminal Nr. 11 die >minor device number, 1, dies bedeutet, das Terminal ist am 1. Steckplatz angeschlossen. Diese Angaben sind nur fOr den Systemverwalter von Interesse.
Uns gibt diese Liste jedoch einige Informationen, die das gerade Gelernte vertiefen: FOr die ·console, wurden mit dem Kommando In zusatzliche Namen vergeben. Sie erkennen dies daran, daB auch fUr die Gerate .syscon, und .systty, die
gleiche inode Nummer (204) angezeigt wird. Ebenso ist auch der Name Ip1 zusatzlich dem Gerat tty17 vergeben worden (inode Nummer 258).
Fassen wir vorab kurz zusammen, welche Dateitypen es unter UNIX gibt: Normale Dateien, Directories und Gerate (auch special files genannt). Die Gerate
werden unterschieden nach c (character oriented) und b (block oriented) je nach
Obertragungsmodus. Es gibt, dies sei der Volistandigkeit halber gesagt, noch einen weiteren Dateityp, der speziell fUr Programmierer interessant ist: die sog.
named pipe. Diese Datei hat eine ahnliche Funktion (first in first out), wie wir sie
beim Pipe-Mechanismus kennengelernt haben.
Kennzeichen
d
c
b
p
Dateityp
normale Datei
Directory
symbolischer Link
character oriented
Zeichenweise lesende und schreibende Gerate
block oriented
Die Ein- und Ausgabe auf diese Gerate wird gepuffert
und blockweise Obertragen
named pipe
Datei, die eine ahnliche Funktion zwischen Programmen
Obernimmt, wie der Pipe-Mechanismus unter der Shell
(first in first out)
Bild 3 - 118: Kennzeichen der Dateitypen
171
3
UNIX - praktisch angewandt
3.4.5 Ausdruck yon Dateien
Geratedateien werden unter UNIX ahnlich behandelt wie normale Dateien. Standardeingabe und Standardausgabe sind unter UNIX das jeweilige Terminal des
Benutzers. Die Standardausgabe konnten Sie mit dem Sonderzeichen > umleiten. Das Kommando, um den Inhalt einer Datei anzuzeigen, lautet cat. Mit dem
Kommando
cat Dateiname > /dey/Name des Druckers
z. B. cat /usr/kurs/texte/sprueche > /deY/lp1
kennten Sie demnach den Inhalt von der Datei >sprueche< auf die Gerate-Datei
/dev/lp1 umleiten. Doch wie schon im KapiteI3.2.2 (Ein- und Ausgabe der Shell)
hingewiesen, besteht die Gefahr, daB zur selben Zeit ein anderer Benutzer ebenfalls eine Ausgabe auf den Drucker startet und die SprOche mit diesen Texten
vermischt werden. Aus diesem Grunde wird hier ein sog. Spool-Programm
(simultaneous peripheral operation online) eingesetzt. Ab UNIX, System V, gibt
es das Spool-Programm Ip. Die Kommandosyntax hierzu:
Ip
I
[-d Druckerbezeichnung]
line printer spooler
ZeilendruckerSpool-Programm
I
[On
I
xl
Dateiname(n)
number
destination
Zielvereinbarung
Es werden x Kopien erstellt
z. B. weitere dem Spool-Programm
angeschlossene Drucker
Ip - Kommando. um Dateien Ober ein Spool-Programm auszudrucken
Dieses Programm erstellt Druckauftrage, die in eine Warteschlange eingereiht
und der Reihe nach ausgegeben werden. Das Programm wird beim Hochfahren
des Systems gestartet und wartet auf Druckauftrage. Jeder Benutzer kann Auftrage erteilen. Sind mehrere Drucker angeschlossen, so kann mit der Option -d
die Bezeichnung des jeweiligen Druckers angegeben werden. Welche Drucker
verfOgbar sind, kann vorab mit der Abfrage Ipstat -t angezeigt werden. Sobald
Sie einen Druckauftrag mit Ip starten, erhalten Sie vom Spool-Programm Ihre
>Auftragsnummer< angezeigt. Solange ihre Datei (oder Dateien) noch nicht vollstandig ausgedruckt sind, kennen Sie unter Angabe dieser Nummer den Auftrag
stornieren (canceln). Das Kommando lautet hierfOr:
cancel
Druckauftrags-Nr.
cancel - Kommando, um einen Ip-Druckauftrag abzubrechen
172
3.4.5
Dateiverwaltung und -pflege
Sie konnen sich auch jederzeit den Stand (Status) der noch abzuarbeitenden
Auftrage und die fOr das Spool-Programm installierten Drucker anzeigen lassen.
Das Kommando hierfOr lautet:
Ipstat
!
[-tJ
I
total
Gesamtanzeige
Ip s tatus
Statusanzeige
des Spool-Programms
Ipstat - Kommando, um eine aktuelle Anzeige des Spool-Programms Ip
mit den noch offenen Druckauftragen zu erhalten
Mit diesem Kommando konnen Sie sich mit der Option -t anzeigen lassen, ob
das Spool-Programm Oberhaupt gestartet ist oder z. B.vorObergehend (vom Systemverwalter) gestoppt wurde (Scheduler running - not running). Weiterhin
konnen Sie feststellen, auf welchen Drucker Ihre Auftrage ausgegeben werden,
wenn Sie beim Ip-Aufruf keinen Ziel-Drucker (destination) angegeben haben.
AuBerdem sehen Sie, welche Drucker fOr den Spooler angeschlossen sind, wie
Ihre Bezeichnung lautet und ob sie bereit (enabled) sind.
Ein Beispiel hierzu:
/
--
$ cd lusr/kurs/monikaltexte
$ Ip kekse
request id is Ip1-8 (1fi/e)
$ Ipstat
Ip1-7
/p1-8
gisela
monika
1866
101699
""
Aufruf des Spool-Programms
Meldung yom Pr~mm . unter welcher Auftragsnummer der I.Jnsch bearbeitet wird
Anzeige der vorhandenen Druckauftrllge
8:47
8:48
Oct 26
Oct 26
$ Ipstat-t
I Slatusanzeige (totaQ des Spool-Programms:
Spool-Programm ist gestartet
scheduler is running
system default destmation: Ip1
Ohne Druckerangabe (-d) wird Ip1
device for Ip1 : Idevllp1
eingesetzl; Gerllt ist I dev/lp1
Auftrllge werden akzeptiert seit ..
Ip accepting requests since Jun 12 13:38
- Drucker Ip1 ist bereit seit ....
printer Ip1 is enabled since Oct 22 8.03
- noch vorhandene Druckauftrage
101699
Oct 26
monika
Ip1-8
I
-
)
Bild 3 -119: Beispiel Ausdrucken von Dateien mit dem Spooler -Ip
173
3
UNIX - praktisch angewandt
Auf manchen Systemen wird statt Ip das Kommando Ipr verwendet. Es hat in
etwa die gleichen Funktionen.
Ipr
I
line printer
Dateiname(n)
I
Ipr - Kommando, um Dateien uber Spool-Programm auszudrucken
analogzu Ip
Die Aufrufe, um die bestehende Druckauftrage zu kontrollieren und zu loschen,
lauten jedoch anders:
Ipq
I
line printer queue
Ipq - Kommando, um eine aktuelle Anzeige der mit Ipr gestarteten
Druckauftrage zu erhalten
analog zu Ipstat fOr Ip-Auftrage
Iprm
I
Auftragsnummer
I
line printer remove
Irprm - Kommando, um einen Druckauftrag, der mit Ip gestartet wurde,
abzubrechen (analog zu cancel fOr Ip-Auftrage)
174
3.4.5
DateivelWaltung und -pflege
Um Dateien fOr den Druck aufzubereiten, z. B. den Dateinamen als Oberschrift zu
bringen, den Text mit Zeilennummern auszugeben und eine Seitennumerierung
vorzunehmen, gibt es das Kommando pr (print). Es wird meist als Filterprogramm eingesetzt, d. h. Ober eine Pipe an den Spooler weitergegeben:
pr sprueche lip
-
Sep 28 21 :32 1986 sprueche Page 1
Iss jeden Morgen einen lebenden Frosch
...
11_ '"
Noch'n Spruch •••
Bi/d 3 -120: Beispiel Druckaufbereitung mit pr
Ohne Angaben zusatzlicher Optionen wird im obigen Beispiel unsere Datei
sprueche mit einer Kopfzeile versehen, die das letzte Anderungsdatum der Datei, den Dateinamen und eine Seitennumerierung enthalt. Das Kommando pr
konnen Sie natOrlich auch verwenden, um sich eine Datei mit der Zusatzinformation am Bildschirm anzuzeigen.
Sehen wir uns die wesentlichen Optionen yom Kommando pr an:
pr [-In - on - wn - n Spaltenanzah/] Dateiname(n)
J-
I
!t
prm
(length)
Anzahl der Zeilen
( Seil enlange)
(offset)
Zeicheneinruckurlg vorn
linken Rand
eine Einheil entspricht einem ·m,
I
1-9
Der Text wird in die
angegebene Anzahl
Spallen umgebrochen
(numbering)
Die Dalei wird mil Zeilennummern
ausgedruckt
(wIdth)
Anzahl der Zeichen pro Zeile(Seilenbreile)
pr - Kornrnando, urn Dateien fUr den Druck aufzubereiten
Die Standardeinstellung fOr den Ausdruck von Dateien ist auf das amerikanische
PapiermaB abgestimmt (11 inch hoch - dies entspricht mit der Randeinstellung:
66 Zeilen pro Seite und 72 Zeichen pro Zeile). Eine DINA4-Seite entspricht ca. 12
inch, und es werden etwa 72 Zeilen pro Seite gedruckt. Um den Ausdruck dem
DINA4-Format anzupassen und zusatzlich eine Zeilennumerierung zu erhalten,
wird das Kommando wie folgt aufgerufen:
pr -172 -n kekse I Ip
175
3
UNIX - praktisch angewandt
3.4.6 Andern von Zugriffs- und Besitzerrechten
Bei den kennengelernten Spool-Program men Ip und Ipr ist es auf manchen Systemen notwendig, daB die Zugriffsrechte bei den auszudruckenden Dateien
auch fOr andere (fOr den Spooler) lesbar (readable bei other) sind. Sehen wir uns
hierzu nochmal die Bedeutung der Zugriffsrechte an und lernen ein weiteres
Kommando, mit dem die Zugriffsrechte geandert werden konnen.
1m Laufe der verschiedenen Beispiele mit Is -I ist Ihnen sicher aufgefallen, daB
die Zugriffsrechte bei allen Dateitypen, die wir bisher kennenlernten, gleich aufgebaut waren.
Sehen wir uns hierzu ein paar Beispiele an:
Typ
Geratedatei:
c
Besitzer Gruppe andere
user
group
other
r w-
---
---
Die Benutzer der gleichen Grup'pe und andere dOrten
auf diesem Gerat weder schrelben noch lesen.
Typ
Directory:
d
Besitzer Gruppe andere
user
group
other
r wx
rwx
r-x
In dieses Directory dOrten aile mit cd wechseln (x) und die
Dateien lesen (r). Neue Dateien anlegen und andern (w) dOrten
nur der Besitzer und die Benutzer der gleichen Gruppe.
Typ
Dateien:
-
Besitzer Gruppe andere
user
group
rw-
rw-
other
r--
Diese Datei dart von allen gelesen werden. Verandert werden
dart sie nur vom Besitzer oder von Benutzern der gleichen
Gruppe.
Typ
-
Besitzer Gruppe andere
user
group
rwx
rwx
other
r-x
Diese Datei dart von allen gelesen und ausgefOhrt werden.
Verandern durten nur der Besitzer und die Benutzer der
gleichen Gruppe.
Bild 3 -121: Beispiele Zugriffsrechte
176
3.4.6
Dateiverwaltung und ·pflege
Versuchen Sie selbst aus den verschiedenen Anzeigen, die wir bisher mit Is -I
angesehen haben, die Rechte zu unterscheiden:
$ Is -i/dev
erw------erw-rw-rw-
1 monika kurs
1 bernd kurs
13,
13,
1 Oct19 8:00 tty11
2 Oet19 8:00 tty12
erw--w--w- 2 root
bin
13, 7 Oet20 18:10 tty17
$ Is -l/usr/kurs/monika
drwxrwxr-x 2 monika kurs
32 Oet19 15:20 Texte
drwxrwxr-x 2 monika kurs
32 Oet19 15:20 Uebungen
$ Is -l/usr/kurs/monikalBefehle
-r wxrwxr-x 1 monika kurs
45 Apr 2 15:20 siehern
$ Is -l/usr/kurs/Uebungen
1
-rw-rw-r--
monika kurs
12489 Oet19 18:10 ueb1
Bild 3-122: Beispiel versehiedener Zugriffsreehte (Anzeige mit Is -I)
Wenn Sie sich die Zugriffsrechte bei dem Terminal 11 (tty11) ansehen, so erkennen Sie, daB weder Benutzer der gleichen Gruppe noch andere Benutzer auf
dieses Terminal zugreifen dOrien. Die Anderung der Zugriffsrechte fOr dieses
Terminal wurde mit dem Ihnen bereits bekannten Kommando mesg n bewirkt.
Nur wenn Sie Besitzer einer Datei oder eines Directories sind, konnen Sie die
Zugriffsrechte andern. HieriOr wird das Kommando chmod (change modus)
verwendet. Dieses Kommando konnen Sie unterschiedlich ausfOhren:
1. Ausfuhrung von chmod mit symbolischer Angabe:
chmod
wie
I was
~ +~
fOr wen
[ugo] -. [rw~] Dateiname(n) oder Directories
I ~ I
user I
Iexecutable
Besitzer
group
gleiche Gruppe
other
aile anderen
ausfUhrbar
write
verandem. Schreiberlaubnis
read
Leserlaubnis
+ HinzufUgen
- Wegnehmen
=Absolut setzten
chmod - Kommando, um Zugriffsrechte zu andern
(symbolische Angabe)
177
3
UNIX - praktisch angewandt
Mit dem chmod-Kommando verandern Sie die Zugriffsrechte von Dateien, wobei Sie angeben:
fOr wen
Besitzer (user),
Benutzer der gleichen Gruppe (group) oder
die anderen (other)
ohne Angabe gilt die Anderung fUr aile
wie
ob die Zugriffsrechte
+ hinzugefOgt
oder
- entzogen (weggenommen) werden sollen
(eins von beiden muB angegeben werden)
ab Version VA gibt es auch
= absolut gesetzt werden sollen
was
(um welche Rechte es sich handelt)
Leseerlaubnis (read),
Schreiberlaubnis (write)
oder AusfOhrerlaubnis (executable)
(mindestens eine Angabe muB gemacht werden).
Soli z. B. die Schreiberlaubnis fOr aile Benutzer der gleichen Gruppe eingeraumt
werden, so lautet das Kommando
chmod g+w Dateiname
[> Beachten Sie hierbei, daB zwischen den Angaben )g+w, (fOr wen, wie und
was) keine Leerzeichen stehen dOrfen.
Wenn Sie eine Anderung fOr aile Benutzer durchfOhren (fOr sich als den Besitzer,
fOr die Benutzer Ihrer Gruppe und die anderen), z. B. eine Datei ausfOhrbar machen, dann konnen Sie
entweder angeben:
chmod ugo+x Dateiname
oder
chmod +x Dateiname
Ohne Angabe )fOr wen, wird die Anderung fOr aile durchgefOhrt.
Andern wir als Beispiel die Zugriffsrechte der Unter-Directories Texte und Obungen so ab, daB die Benutzer der gleichen Gruppe in diese Directories wandern
konnen (cd), dort Dateien lesen aber keine Dateien verandern, loschen oder neuanlegen dOrfen. Fremde (die anderen) dOrfen weder in diese Directories gehen,
noch Dateien lesen oder neue Dateien anlegen und schon gar nicht verandern
oder loschen (dam it wOrde auch der symbolische Link aus unserem Beispiel
Bild 3 -115 auf Seite 166, )den anderen, nicht erlauben, in dieses Directory zu
gehen, obwohl in der Link-Datei aile Rechte gesetzt waren. Letztlich entscheidend sind die Zugriffsrechte der Originaldatei.
178
3.4.6
Dateiverwaltung und -pflege
$ Is -I lusr/kurs/monika
drwxrwxr-x
drwxrwxr-x
2
2
monlka
monlka
$ chmod gp-W'" U·
ohne Leerzeichenl
$ chmod 6-rX T* U·
$ Is -l/usr/kurs/monika
drwxr-x--drwxr-x---
2
2
monika
monika
kurs
kurs
32
32
Oct 19 15:20 Texte
Oct 19 15:20 Uebungen
Fur Benutzer der gleichen Gruppe lj(Urs) und die
anderen wird die Schreibertaubnis entzogen
Fur aile anderen Benutzer wird die Ertaubnis fOr
Lesen und AusfUhren (cd) entzogen
kurs
kurs
32 Oct 19 15:20 Texte
32 Oct 19 15:20 Uebungen
Bild 3-123: Beispiel Andern der Zugriffsrechte
mit symbolischer Angabe - chmod ugo+-rwx
Sle sehen an dem vorigen Beispiel, daB Kombinationen von ugo und rwx erlaubt sind. Wichtig ist, daB bei der Angabe fUr wen, wie und was geiindert werden soli, keine Leerzeichen (blanks) zwischen den einzelnen Symbolen stehen
dOrfen. Sie sehen auch, daB fUr diese Anderung zwei verschiedene Kommandos
eingegeben werden muBten, da die >Gruppenmitglieder< und die >anderen< unterschiedliche Rechte erhalten sollen. Mit der zweiten Art, das Kommando
chmod zu verwenden, liiBt sich die gleiche Anderung mit einem Kommando
ausfUhren. Hierzu wird eine Zahl benotigt, die sich zugewiesenen Werten je Erlaubnisart errechnet.
2. Ausfuhren von chmod mit Zahlenwerten (Oktalzahl)
chmod Oktalzahl Dateiname(n) oder Directories
chmod - Kommando, um Zugriffsrechte zu andern
(mit Oktalzahl)
FOr die einzelnen Rechte werden folgende Werte vergeben:
r
read
- Leseerlaubnis
4
w
write
- Schreiberlaubnis
2
x
executable
- AusfUhrerlaubnis
1
Werden in einer Datei aile Rechte gesetzt, ist der Wert 777.
179
3
UNIX - praktisch angewandt
Zugriffsrechte (Modus) eingeteilt nach:
Besitzer
read
lesen
eICecute
wite
schreiben ausfilhren
2
4
1
andere
Gruppe
I
user
other
group
read
lesen
execute
wite
schreiben ausfilhren
4
2
7
read
lesen
1
wite
eICecute
I.
sch rei ben ausfilhren
2
4
1
7
7
Sollen die Rechte verandert werden, so wird nach den drei Unterteilungen
Besitzer
Gruppe
andere
die jeweilige Summe der zugewiesen Rechte eingesetzt. Dart z. B. der Besitzer
lesen, schreiben und ausfOhren, die Gruppe nur lesen und ausfOhren, und die
anderen nur lesen, so ergibt sich folgende Berechnung der Oktalzahl:
Zugriffsrechte (Modus)
4
wite
execute
schreiben ausfuhren
2
1
read
lesen
4
--
eICecute
Mte
schreiben ausfilhren
0
1
5
7
andere
I
group
user
read
lesen
eingeteilt nach:
Gruppe
Besitzer
other
read
lesen
4
wile
execute
schrelben ausfuhren
0
0
4
Das Kommando wOrde in diesem Fall eingegeben werden mit:
chmod
754
Dateiname(n) oder Directories
Bild 3 -124: Beispiel Errechnung der Oktalzahl fUr Zugriffsrechte
Sie geben bei dieser AusfOhrung des chmod-Kommandos nicht die Veranderung der Rechte, sondern den sich ergebenden Stand in Form des zugewiesenen Wertes (Oktalzahl) fOr aile drei Bereiche an. Die .Anderung, die wir vorhin mit
chmod go-w T* U*
chmod o-rx T* U*
eingegeben haben, kann dann mit einem Kommando erreicht werden:
180
3.4.6
Dateiverwaltung und -pflege
$ Is -l/usr/kurs/monika
dfWxfWxr-x
dfWXfWxr-X
2
2
moniJm
monika
$ chmod 750 T* U·
kurs
kurs
32
32
Oct 19 15:20 Texte
Oct 19 15:20 Uebungen
Errechnung der OktaJzahJ:
Besitzer Gruppe andere
r w x
4+ 2 + 1
=7
r - x
4+ 0 + 1
=5
0 +0+0
=0
$ Is -l/usr/kurs/monika
dfWxr-x--dfWxr-x---
2
2
monika
mon/Im
kurs
kurs
32 Oct 19 15:20 Texte
32 Oct 19 15:20 Uebungen
Bild 3 -125: Beispiel Andern der Zugriffsrechte mit Oktalzahl
Wenn Sie als Besitzer bestimmte Rechte zuweisen k6nnen, so haben Sie selbstverstandlich auch das Recht, Ihren Besitz zu verschenken. Vorhin haben wir gesehen, daB beim Kopieren von Dateien jeweils derjenige der Besitzer der Datei
wird, der das Kopierkommando ausfOhrt. WOrde Monika einem anderen Benutzer eine ihrer Dateien in sein Directory kopieren, bleibt sie Besitzer der kopierten
Datei. Dabei spielt es keine Rolle, von wo sie den Kopierauftrag startet. D.h.,
auch wenn sie zuvor in sein Directory wechselt und dann kopiert, bleibt sie trotzdem alleiniger Besitzer der kopierten Datei:
$ cd lusr/kurs/hans
$ cp ..Imonika/Uebungen/neu geschenk
$ Is -I
dfWXfWxr-x
-fW-f--f-dfWXfWXf-X
2
hans
monlka
2
hans
kurs
kurs
kurs
32 Aug 7
245 Nov 2
1985 befehle
12:28 geschenk
117 Spt
18:10 pro/ektS
kopierte Datei. die .Hans, zwar Jesen.
aber nicht verlindern durfte
Bild 3-126: Beispiel Besitzrechte beim Kopieren von Dateien
Nur Sie selbst als Besitzer oder der Systemverwalter k6nnen die Besitzrechte
andern. Das Kommando hierzu:
181
3
UNIX - praktisch angewandt
chown [- r] Besitzemame Dateiname(n) oder Directories
I
I
1
I L - - - - - ab der Version V.4 g b
l t as auch die Mbgllchkeit,
change owne,
rekursiv aile Dateien eines Directories zu lIndern
Wechsel des Besitzers
chown - Kornrnando, urn Besitzrechte zu andern
Um die kopierte Datei auf Hans umzuschreiben, ihm die 8esitzrechte zu Obergeben, muB Monika eingeben:
$ chown hans geschenk
$ Is -I
$
drwxrwx,-x
-rw-,--,--
2
hans
1
hans
drwx~
kurs
kurs
kurs
32 Aug 7
Nov 2
117 Spl
245
1985 be/ehle
12:28 geschenk
18:10 projektB
Nun gehOrt die Dalel Hans, und Monika
dart die Datei weder verllndern noch
loschen.
Bild 3-127: Beispiel Andem der Besitzerrechte - chown
182
3.4.7
Dateiverwaltung und -pflege
3.4.7 Suchen nach Dateien und Mustern in Dateiinhalten
In diesem Kapitel haben wir zu Beginn Ordnung gemacht. Geht es Ihnen manchmal auch so, daB Ihnen momentan nicht einfallt, wo Sie etwas hingeraumt haben? Auch fOr diese Situation gibt es unter UNIX hilfreiche Dienstprogramme.
Nehmen wir an, wir wissen, daB wir eine Datei mit dem Namen ,sichern· hatten.
Wir k6nnen uns aber nicht mehr erinnern, unter welchem Directory sie abgelegt
ist. Wo fangt man an zu suchen? Nun, wir k6nnten bei unserem Home-Directory
beginnen, mit Is uns die Dateien anzeigen lassen und aile vorkommenden ,Unter-Directories. auf die gleiche Weise durchforsten. Genau diesen Vorgang kann
uns das Kommando find abnehmen.
Das find-Kommando hat allerdings seine Besonderheiten:
o
Sie mOssen unbedingt angeben, von wo ab im Dateibaum gesucht werden
soli (Start-Directory).
ODie Optionen werden nicht abgekOrzt sondern ausgeschrieben.
o
Wenn Sie ein Ergebnis angezeigt haben wollen, mOssen Sie dies dem Kommando explizit angeben (Ausgabeart).
Doch sehen wir uns hierzu die Syntax (Regeln) an:
find
Start-Directory
[ SUC,kriterienIMuster)
I
I
I
relativer oder absoluter
Pfadname des Directories.
von dem ab gesucht
werden sOli.
auch fOr das aktuelle
Directory muB dann
der Punk! (. )angegeben
werden
[ Ausgabeart )
I
I
-print
-name
Dateiname
-user
Benutzername
-mtime n (Anzahl der Tage)
-newer Dateiname
Anzeige der gefundenen Dateien
-exec Befehl "."
(ausfiihren)
,
AusfOhrung der
nachfolgenden
Befehle
Ohne Angabe von Suchkriterien werden aile Dateien
gesucht und mit der Ausgaooart .-print. angezeigt.
find - Kommando, um Dateien zu suchen und zu finden
Beispiel:
find
lusrlkurs
Start-Directory
+-
-name
sichern -print
Suchkriterium
.,.
Ausgabeart
183
3
UNIX - praktisch angewandt
Das find-Kommando geh6rt zu den schwierigeren Kommandos unter UNIX.
Jede einzelne Position des Kommandos hat ihre Besonderheiten. Betrachten wir
diese der Reihe nach:
Start-Directory
Es muB unbedingt angegeben sein. Wenn Sie von Ihrem
aktuellen Directory suchen wollen, muB zumindest ein
Punkt als Kennzeichnung des Start-Directories angegeben werden. Die Pfadbezeichnung wird in gleicher Form
den gefundenen Dateien mitgegeben. Haben Sie das
Start-Directory mit einem >.< angegeben, beginnen die gefundenen Namen eben so mit .I
z. B. .!Befehle .!Texte usw.
Wurde als Start-Directory lusrlkurs angegeben, so werden die gefundenen Dateien ebenfalls mit dem absoluten
Pfadnamen ausgegeben
z. B. lusrlkurslmonikalBefehle lusrlkurslmonikalTexte,
usw.
Sie k6nnen auch mehrere Start-Directories angeben. Diese werden nacheinander, rekursiv durchsucht.
184
Suchkriterien
Wie auch bei anderen Kommandos sind hier nur die Optionen ausgewahlt worden, die haufig ben6tigt werden.
Zu ihnen gehOren (Bei den nachfolgenden Beispielen wird
einfachheitshalber jeweils vom aktuellen Directory ausgehend gesucht):
-name datei
Der Dateiname wird durch ein Leerzeichen getrennt
gleich nach der Option -name eingegeben. Hierbei k6nnen Metazeichen wie *, ?, [1 verwendet werden. Es ist
jedoch wichtig, diesen mit Metazeichen versehenen Namen in AnfOhrungszeichen zu setzen, damit er nicht sofort von der Shell ersetzt wird, sondern dem find-Kommando Obergeben werden kann.
Soli ab dem aktuellen Directory nach allen Namen gesucht werden, die mit >n< beginnen, so wird eingegeben:
find . -name "n*" -print
-user benutzer
Auch hier wird anschlieBend an die Option der Name des
Benutzers (so wie er in der Datei letc/passwd eingetragen
ist) angegeben. Hier dOrfen keine Metazeichen verwendet
werden, da es sich hierbei nicht um einen Dateinamen
handelt! Das find-Kommando sucht dann aile Dateien,
dessen Besitzer der angegebene Benutzer ist.
-mtimen
(modification date). Mit dieser Option werden Dateien mit
einem bestimmten Modifikationsdatum gesucht. Unter
Dateiverwaltung und -pflege
-mtimen
(Fortsetzung)
3.4.7
n wird hierbei die Anzahl der Tage angegeben, die zur
Ermittlung des gesuchten Datums fUhrt. Ohne Angabe
eines Vorzeichens werden aile Dateien gesucht, die genau vor n Tagen verandert wurden.
Soli z. B. nach allen Dateien gesucht werden, die genau
vor 2 Tagen verandert wurden, wird eingegeben:
find . -mtime 2 -print
-mtime -n
Es wird nach allen Dateien gesucht, die innerhalb der n
Tage verandert wurden.
Sollen beispielsweise aile Dateien, die innerhalb der letzten 7 Tage verandert wurden, gesucht werden, so wird
eingegeben:
find . -mtime -7 -print
-mtime +n
Es wird nach Dateien gesucht, die vor n Tagen und noch
fruher verandert wurden. Wollen Sie feststellen, welche
Dateien Sie vor einem Monat und noch frOher verandert
haben, so geben Sie ein:
find . -mtime +30 -print
-newer datei
Mit dieser Angabe wird nach allen Dateien gesucht, die
ein jungeres (neueres) Modifikationsdatum aufweisen
als die angegebene Datei.
Mochten Sie z. B. aile Dateien suchen, die Sie seit Ihrer
letzten Sicherung verandert oder neuerstellt haben, so
konnen Sie auf eine Datei abprOfen, die Sie zum Zeitpunkt
der Sicherung erstellt haben (z. B. sichlog). Die Eingabe
lautet dann:
find . -newer sichlog -print
Ausgabeart
Bei den obigen Beispielen haben Sie sicher bemerkt, daB
bei
-print
allen Aufrufen -print angegeben wurde. Sollten Sie vergessen, -print anzugeben, dann konnen Sie nicht sehen,
welche Dateien gefunden wurden. Bei einigen Systemen
wird die Ausgabeart print generell gesetzt.
-exec
(execute - ausfiihren). Mit dieser Ausgabeart konnen Sie
eine Kommandofolge angeben, die nach dem Suchvorgang durchgefUhrt werden soil. Hierbei konnen die gesuchten Dateien als Parameter (bzw. im Pipe-Mechanismus) Obergeben werden. Das Einsetzen der gefundenen
Dateien wird mit der Zeichenfolge "0" erreicht. Diese Option ist jedoch etwas kompliziert. Sie verlangt exakt die
Einhaltung bestimmter Regeln:
185
3
UNIX - praktisch angewandt
-exec
Fortsetzung
-exec Kommando "0" ";"
Statt der in AnfOhrungszeichen gesetzten geschweiften
Klammern werden die gefundenen Dateien an dieser
Stelle eingesetzt.
Das find-Kommando ist trotz seiner ,Feinheiten- ein sehr haufig benutztes und
wichtiges Kommando. Sie werden es hauptsachlich fOr die Sicherung Ihrer Dateien ben6tigen. Beachten Sie hierbei, daB die gefundenen Dateien immer mit
der gleichen Pfadbezeichnung beginnen, mit der Sie das Start-Directory angesprochen haben. Sehen wir uns hierzu einige Beispiele an:
$ find lusr/kurs -name sicher -print
lusrlkurslmonikalBefehlelsicher -
Angabe des gefundenenDateinamens
mit dem absoluten Pfadnamen /usr/kurs ...
lusrlkurslmonika
$ find. -name "s*" -print
.lTextelsprueche
.IBefehlelsicher
$ find. -print _ _ _ _ _ __
.lProjektA
.lProjektAlbeispiel.c
.IProjektAlio.c
.lProjektAlpro. c
.ITexte
.ITextelkekse
.ITextelsprueche
.IUebungen
.IUebungenlDatum
.lUebungenlinhalt
.IUebungenlneu
.IUebungenlneuer
.IUebungenlueb 1
.IUebungenldatum
.IBefehle
.lBefehlelsicher
Suche nach allen Namen mit '5- beginnend
Angabe der gefundenenDateinamen
mit dem relativen Pfadnamen ab Such posit ion j
$ cd
$ pwd
Anzeige aller Dateien mit dem Pfadnamen
ab Suchposition. die rekursiv in dem angegebenen Directory gefunden wurden .
Bild 3 -128: Beispiel Suchen und Finden von Dateien - find
Wenn Ihnen etwa nur der Anfangsbuchstabe einer Datei eintallt, nach der Sie suchen, so ist dies fOr das find-Kommando auch kein Problem. Sie k6nnen auch
Verknupfungen von Abfragen eingeben. Unter dem Anfangsbuchstaben ,n- haben Sie vielleicht mehrere Dateien. Sie wissen aber, daB Sie die gesuchte Datei
in den letzten 10 Tagen verandert haben. Geben Sie mehrere Suchkriterien an,
so bedeutet dies, daB aile Angaben erfullt sein mussen. Bei der Eingabe von
find. -name "n*" -mtime -10 -print
mussen die zu suchenden Dateien mit n beginnen und zusatzlich innerhalb der
letzten 10 Tage verandert worden sein.
186
3.4.7
Dateiverwaltung und -pflege
Eine oder-VerknOpfung ist m6glich durch die Option -0. Wenn Sie Dateien suchen, die entweder mit ,n< oder mit ,s< beginnen, also beide angezeigt werden
sollen, lautet der Aufruf
find. "(" -name "n*"
-0
-name "s*" ")" -print
Die Klammer wirkt hier ahnlich wie in der Mathematik. Wichtig ist hierbei, daB die
Klammer in AnfLihrungszeichen steht und mit Leerzeichen von den anderen
Eingaben getrennt wird, dam it sie an das find-Kommando weitergegeben und
nicht vorab durch die Shell interpretiert wird. Um die Sonderbedeutung der
Klammer fOr die Shell zu unterbinden, kann auch das Fluchtsymbol \ jeweils vor
die Klammer gesetzt werden:
find. \( -name "n*"
-0
-name "s*" \) -print
Wenn nicht nur die gefundenen Dateinamen mit der Pfadbezeichnung angezeigt, sondern zusatzlich auch die Merkmale der Datei mit Is -I angezeigt werden
sollen, so k6nnen Sie dem find-Kommando diese Aufgabe Ober die -exec-Anweisung mitgeben:
$ pwd
Die AnfOhrungszeichen mOssen eingegeben werden, damit Sonderzeichen nicht von der Shell
vorab interpretiert werden.
Wichtig sind auch die Leerzeichen zwischen den
einzelnen Eingaben!
lusrlkurslmonika / \
$ find. -name" n.. 11 -print -exec
./Uebungenlneu
-rw-r--r-1 monika kurs
./Uebungenlneuer
-rw-r--r-1 monika kurs
IS-I '
{t~
19
I
Aile gefundenen Dateien werden nacheinander als Parameter Obernommen
neu
neuer
Ohne Angabe von -print wird nur das nachfolgende Kommando durch -exec ausgefOhrt
$ find. -name "n*" -exec Is -I "{ }"
-rw-r--r--rw-r--r--
1 monika
1 monika
kurs
kurs
It. II
•
245 Okt 19 18:10 neu
245 Okt 19 18:10 neuer
Ab Version V.4 kann das Kommando
Is -I gleich als Ausgabefunktion angegeben werden :
$ find. -name "n· II -Is
Sollen die gefunden Dateien gelbscht werden, wird angegeben:
$ find. -name "*.bak" -exec rm -i "{}"
u ...
•
Bild 3-129: Beispiele Suchen und Finden von Dateien (find mit -exec Funktion)
Das find-Kommando ist, wie wir in den beiden letzten Beispielen gut sehen
konnten, leider nicht sehr einfach. Lassen Sie sich deshalb nicht entmutigen,
wenn Sie nicht gleich beim ersten Mal Erfolg haben.
187
3
UNIX - praktisch angewandt
Bei solch langen Kommandos wurde vielleicht eine Leerstelle zu wenig eingegeben oder das schlieBende AnfOhrungszeichen vergessen, oder nicht angegeben, was mit den gefundenen Dateien geschehen soil. Ein weiterer Trost: 1m Kapitel 3.7 Shell-Prozeduren lemen Sie u.a., wie Sie lange Kommandos, die Sie
haufig benetigen, in eine Datei schreiben und dann nur noch mit dem Namen
dieser Datei aufrufen kennen. 1m Kapitel Sicherung werden wir dann das findKommando mit weiteren Anwendungsbeispielen zeigen.
Ein weiteres Kommando, das Ihnen hilft, Dateien wiederzufinden, ist
grep
I
I .
g et regular exp ression
[-nilvwhJ
I
"Muster
II
Dateiname(n)
Ih eader
der Dateiname wird nicht mit ausgegeben
w ord
Such muster muB ein einzelnes Wort sein
invert
gibt aile leilen aus, die nicht dem Muster entsprechl
l ine
nur die Dateinamen werden angezeigt
i gnore case
GroB- und Kleinbuchstaben gleichbehandeln
numerierte lellenanzeige der gefundenen lei len
in einer Dalei
grep - Kommando, um nach Mustern in Dateiinhalten zu suchen
Erinnern Sie sich, dieses Kommando haben wir schon kurz im Kapitel ,Es shellt,
angesprochen. Falls Sie sich weder an den Dateinamen, noch an einen Teil des
Namens erinnern, aber wissen, daB es sich bei dem Dateiinhalt um einen Text
handelt, in dem z. B. ,Frosch, vorkommt, dann kennen Sie mit Hilfe des grepKommandos danach suchen. In "Muster" kennen Metazeichen und regulare
Ausdrucke wie im ed/vi verwendet werden (siehe Bild 3-90 auf Seite 134).
Durch die Sonderzeichen " " wird erst das Kommando find ausgeliihrt und aile getundenen Daleien als Parameter dem Kommando grep ubergeben. (ErselzungsmechaI
nismus der Shell)
$ grep "Frosch" "find. -print"
.lTexte/sprueche: Iss jeden Tag einen lebenden Frosch -
$ grep -n " Frosch" " find. -print"
.lTexte/sprueche: 1: Iss jeden Tag einen lebenden Frosch -
I Mil Anzeige der laufenden leilennummer
$ find. -exec grep -n "Frosch" "0" \j
188
(nur liir ca.
50 Daleien)
andere
Form der
Eingabe
Bi/d 3 -130: Beispiel Suchen und Finden von Dateiinhalten - grep
3.4.7
Dateiverwaltung und -pflege
Bei der Vielzahl von Dateien, die Sie im Laufe Ihres ,Lebens mit UNIX, anlegen
und aufraumen werden, konnte es auch passieren, daB Sie sich an eine Datei
nicht mehr erinnern und partout nicht wissen, was sich in dieser Datei verbirgt.
Hier hilft Ihnen das Kommando
file
I
Datei
Dateiname(n)
I
file - Kommando, das versucht, den Inhalt einer Datei zu klassifizieren
Ais file wird im Englischen eine Datei bezeichnet. Das Kommando file versucht
aufgrund der Anfangsdaten herauszufinden, um welchen Inhalt es sich bei der
angegebenen Datei oder den Dateien handelt. Hier einige der Klassifizierungen,
die file aufgrund der Anfangsdaten einer Datei vornimmt:
Erkennung
assembler program
ascii-text
c program text
commands text
Bedeutung
Quelltext eines Assemblerprogramms
Normale Datei mit Text
Quelltext eines C-Programms
Shellprozedur (Datei mit Kommandos)
data
Datei mit nicht druckbaren Zeichen (Biniircode)
empty
directory
fortran program
leere Datei
Directory
Quelltext eines Fortranprogramms
$ cd lusr/kurs/monika
Versuch, den Inhalt von
$ file 'find. -print'
Daleien zu klasslfizleren
.: lusrlkurslmonika
directory
c program text
.IProjekWbeispiel. c:
c program text
.IProjekWio.c
.IProjekWpro.c
c program text
.lTexte:
directory
.lTextelkekse:
English text
Es handell Sich hierbel z. B .
.ITexte/sprueche: English text
nicht um enghschen. sondem
.IUebungen:
directory
.IUebungenlDatum:
ascii text um deutschen Text
.IUebungenlinhalt:
ascii text
.IUebungenlneu.
English text
.IUebungenlneuer:
English text
.IUebungenlueb 1:
empty
.IUebungenldatum:
ascii text
.IBefehle:
directory
.IBefehle/sicher: commands text
Bild 3 - 131: Beispiel Versuch einer Dateiklassifizierung - file
189
3
UNIX - praktisch angewandt
1m Laufe von Tagen, Wochen und Monaten sammeln sich eine ganze Reihe von
Dateien an, die oft nicht mehr benotigt werden. Spatestens wenn der Systemverwalter eine Meldung auf der Systemconsole erhalt, die in etwa lauten konnte
no space on Idevlhd1
(dies bedeutet: kein Platz mehr auf der Platte - und damit sic her auch kein SpaB
mehr auf der Platte), ja dann bleibt nichts anderes Obrig, als eine Sauberungsaktion durchzufOhren.
Je nach System sind die Platten unterschiedlich bezeichnet. Lassen Sie sich am
besten von Ihrem Systemverwalter die Aufteilung der Platten Ihres Rechners zeigen. In der Regel wird eine physikalische Platte in mehrere Partitions aufgeteilt,
die dann jede fOr sich als eigene ,Platte< behandelt wird. Meist sind dann die
Plattenbezeichnungen entsprechend numeriert wie Idev/hd1 , /dev/hd2 usw. Bei
den spater behandelten Kommando df sehen Sie u.a., welche Platten in Ihrem
Rechner zur VerfOgung stehen (>mantiert, sind - bei dem Kapitel 3.5 Sicherung
werden Sie das Kommando mount kennenlernen, das hierfOr verwendet wird).
Kein Platz auf der Platte kann unter Umstanden bei bestimmten Anwenderprogrammen dazu fOhren, daB die letzten Veranderungen nicht mehr gesichert werden konnten und veri oren sind. Normalerweise wird der Systemverwalter dafOr
sorgen, daB jeweils genOgend Platz frei ist und die Benutzer u.U. auffordern,
nicht mehr benotigte Dateien zu loschen. Es schadet jedoch nichts, wenn Sie
selbst prOfen, wieviel Platz Ihnen noch zur VerfOgung steht, bzw. wieviel Platz
Sie benotigen oder verbraucht haben.
3.4.8 Oberprufen der Platten- oder Floppy-Belegung
Wie konnen Sie feststellen, wieviel Platz Ihnen noch auf der Platte (den Platten)
oder auf der Floppy zur VerfOgung steht?
HierfOr gibt es zwei kleine Kommandos, die Sie sich leicht merken konnen:
du [-5]
disk used
(plattenbelegung)
I
I
[ Directory]
sum
nur Gesamtsumme des Datelbaumes,
ab angegebenem DIrectory
du - Kommando, um den belegten Platz (Blockanzahl) anzuzeigen
(bei groBeren Dateibaumen kann dieses Kommando u.U. sehr lang dauern - also
Geduld) und das GegenstOck dazu:
190
3.4.8
Dateiverwaltung und -pflege
df
disk'ree
I
(freie Plattenkapazitat)
[-t]
[Platte]
I
total
Anzeige der freien Blocke je montierter
Platte und Gesamtanzahl der Plattenkapazitat
df - Kommando zur Anzeige der frei zur Verfugung stehenden Blocke
aller im System montierten Platten/Floppies
Auf einer GUUG-Tagung (German UNIX User Group) wurde zur Aufheiterung
eine Knobelecke eingerichtet, in der neue Begriffserlauterungen fOr UNIX-Kommandos gesucht wurden. Pramiert wurde u.a. das Kommando du - Deine Untaten. Sehen wir uns also unsere bisherigen Untaten an, und stell en wir fest,
wieviel Platz wir noch zur VerfOgung haben. Hier ein Beispiel des Seminarrechners, auf dem auch dieses Buch ursprOnglich entstanden ist (Auf Ihrem Rechner
sind, wie schon erwahnt, die Plattenbezeichnungen sicher anderslautend):
$ cd /usr/kurs/monika
$ du
.lProjektA
5
.lTexte
.lUebungen
.lBefehle
204
5
2
217
Summe der belegten BIOcke
- - - - - - fUr den gesamten Datelbaum
ab lusrlkurslmonika
$ df-t
lusrlkurs
/usr
I
Anzeige der belegten BIOcke je Directory
innerhalb des Dateibaumes
F
(ldev/iwO. 1)
total:
(ldevliwO.3)
total:
(ldevliwO.O)
total:
2386 blocks
10240 blocks
16088 blocks
81032 blocks
7438 blocks
16384 blocks
703
1280
7099
10128
1772
2048
i-nodes- frei
i-nodes - gesaml
i-nodes
i-nodes
i-nodes
i-nodes
Namen der Platten
Bild 3-132: Anzeige der freien und belegten PlattenkapaziUit
Das Directory lusr/kurs ist in dem obigen Beispiel vom Systemverwalter auf eine
eigene Platte mit dem Namen /dev/iwO.1 gelegt worden. In diesem Directory
sind bereits 10240 - 2386 = 7854 Blocke je 512 Bytes belegt worden. Die wichtigste Aussage ist fOr uns, daB noch 2386 Blocke frei sind und wir noch maximal
703 Dateien auf dieser Platte anlegen konnten. Bei einigen Systemen konnen
Siemit
df-k
die Gesamtanzeige in Kilobyte abfragen.
191
3
UNIX - praktisch angewandt
Die wichtigsten Dateiverwaltungskommandos haben Sie damit kennengelernt:
o
Sie wissen, wie neue Directories (Unter-Directories) angelegt werden und
wie Sie Directories loschen konnen;
o
o
wie Sie Dateien kopieren, umbenennen und loschen konnen;
o
o
Sie konnen sich jederzeit die wesentlichen Merkmale einer Datei ansehen;
den Inhalt einer Datei ausdrucken lassen;
Sie konnen die Zugriffsrechte und Besitzrechte Ihrer Dateien und Directories
verandern;
o
Sie konnen nach bestimmten Kriterien Dateien suchen oder Inhalte aus Dateien wiederfinden, und
o
den Inhalt einer Datei versuchen zu klassifizieren.
3.4.9 Zusammenfassung der Kommandos
Kommandoeingabe
Funktion
mkdir [-p] Directory-Name(n)
make directory
Legt Directories neu an
-p pass
noch nicht vorhandene
Unter-Directories werden mit angelegt
Soweit noch nicht vorhanden werden
die Directories
lusr/kurslben01
lusr/kurslben01/Uebung
angelegt
Beispiel:
cd lusrlkurs
mkdir -p ben011Uebung
Uotcr DOS:
mkdir, md
rmdir Directory
Unter DO :
mtdir (rd)
cp [-i] Dateialt Dateineu
cp [-i] Datei1 Datei2 ... Directory
cp [-ir ] Directory Directory
192
Umer DOS: copy, xcopy
remove directory
Loscht Directories, die keine Dateien
mehr enthalten
copy
Kopiert eine oder mehrere Datei(en)
in ein anderes Directory
-i interactive Falls eine Datei mit gleichem Namen schon existiert, wird nachgefragt, ob uberschrieben werden darf
-r recursive Der gesamte Dateibaum
wird kopiert
3.4.9
Dateiverwaltung und -pflege
Kommandoeingabe
Funktion
nn [-] [-fir] Dateiname(n)
remove - /oschen
Loscht Dateien (unwiederbringlichl)
- ohne weitere Angabe
Die nachfolgenden evtl. mit ,-< beginnenden Namen sind keine Optionen
(sondern z. B. versehentlich mit ,-< beginnend angelegte Dateien)
-f forced - verstarkt
Auch bei Dateien, die schreibgeschutzt
sind, wird ohne Nachfrage geloscht
-i interactive
die Loschung muB erst mit .y. bestatigt
werden
-r rekursiv
Vorsicht! Loscht radikal aile Dateien und
evtl. Unter-Directories!
UmcrDO : del
mv -i dateialt dateineu
mv -i datei1 datei2 ... Directory
UmerDO .
reo (renam )
In [-5] Origina/datei Unkname
In -5 Original-Directory Unk-Directory
move, bewegen
Andert einen Dateinamen oder verschiebt Dateien in ein anderes Directory
-i interactive
Eine bereits bestehende Datei wird nur
dann uberschrieben, wenn dies mit y
bestatigt wird
link
Vergibt Dateien zusatzliche Namen
bzw. verweist auf eine andere Datei
oder ein anderes Directory
Der lokale Link (ohne os) kann nur auf
Dateien innerhalb der gleichen Plattenpartition erfolgen
-5 symbolic link
Das Link-Directory soli mit vollem Pfadnamen eingetragen werden.
Der symbolische Link wird als eigener
Dateityp mit I (klein L -link) gekennzeichnet
193
3
UNIX - praktisch angewandt
Kommandoeingabe
Is -(abdFilRst)
Unleroo :
dir tree
Ip (-dDlVckername) Dateiname
UnrerooS:
print
cancel DlVck-Auftragsnr.
Beispiel:
cancel laser-124
Unl rOO :
Ipstat
194
type/c
Funktion
list
Zeigt den Inhalt von Directories bzw. Attribute von Dateien
-a all
Auch die mit Punkt beginnenden Dateien (.profile ... ) werden
angezeigt
-b binary
Zeigt auch nicht darstellbare Zeichen am Bildschirm an
-d directory Zeigt nur das Directory
(nicht seinen Inhalt) an
-F Format short
Directories sind mit "I" gekennzeichnet,
ausfOhrbare Kommandos/Programme
mit "''', symbolische Links mit "@"
-i inode
Die Adresse (inodeNummer) wird angezeigt
-I long format
Anzeige mit Attributen
Der Dateibaum mit samt-R Rekursiv
lichen Unter-Directories wird angezeigt
-s size
Es werden zusatzlich die
benotigten Blocke a 512 Bytes angezeigt
-t time
Die Liste wird chronologisch sortiert ausgegeben
line printer
Erstellt einen Druckauftrag fOr den IpSpooler
-d destination
Mit -d,Druckerqueue, kann ein Zieldrukker angegeben werden, soweit mehrere
Drucker eingerichtet wurden
annullieren, abbrechen
Loscht mit Ip gestartete Druckauftrage
Auftrags-Nr. fOr Drucker-Queue laser
line printer status
Zeigt aile mit Ip gestarteten Druckauftrage und deren Status an (analog
Ipq fOr Ipr-Auftrage)
3.4.9
Dateiverwaltung und -pflege
Kommandoeingabe
Funktion
line printer
Erstelit einen Druckauftrag fUr den
Ipq-Spooler (wird manchmal statt Ip
verwendet)
Ipr
Unter DOS:
print
Ipq
line printer queue
Zeigt die Queue der mit Ipr gestarteten Druckauftrage an (analog Ipstat fUr
Ip-Auftrage)
Iprm Auftrag-Nr.
line printer remove
Loscht mit Ipr gestartete Druckauftrage
pr [-In -on own -n Spaltenanzah/] \ print
Dateiname(n)
Bereitet Dateien fOr den Druck auf
-I length
Anzahl der leilen (Seitenlange)
-0 offset leicheneinrOckung yom linken
Rand (eine Einheit entspricht einem m)
-w width
Anzahl der leichen pro leile (Breite)
-n numbering
Die leilennummern werden mit ausgedruckt
1-9 (Spaltenanzahl)
Der Text wird in die angegebene Anzahl
Spalten umgebrochen
chmod [-R]
Directories
Art Dateinamenl
fUr wen wie was
I
I
I
chmod ugo :- rwx Dateinamenl
Directories
change modus
Andert die Zugriffsrechte
Art:
symbolisch oder
Ober Oktalzahl
-R Rekursivdie Anderung erfolgt fOr aile
Dateien/Unter-Directories
Andert die Zugriffsrechte mit symbolischer Angabe
user
der Dateibesitzer
die gleiche Gruppe
group
other
aile anderen
hinzufOgen
+
wegnehmen
read
Leseerlaubnis
write
Schreiberlaubnis
execute
ausfOhrbar
195
3
UNIX - praktisch angewandt
Kommandoeingabe
Funktion
chmod Oktalzahl Dateinamen/Directories
Errechnung der Oktalzahl
Andert die Zugriffsrechte mit Oktalzahl
r
w
x
read
4
write
2
executable1
Beispiel:
chmod 750 ben01
Das Directory erhalt die Zugriffsrechte:
drwxr-x---
chown [-R] Benutzer \
Dateinamen/ Directories
change owner
Andert den Besitzer
-R Rekursiv
Die Anderung erfolgt fUr aile Dateien/Unter-Directories
find Start Suchkriterien Ausgabe
finden
Sucht (findet) Dateien in Dateibaumen nach unterschiedlichen Suchkriterien
Es muB ein Start-Directory angegeben
werden (aktuelles Directory mit . angeben)
Die Ausgabe muB bei den meisten Systemen noch mit -print angegeben werden
Es wird eine Liste aller Dateien rekursiv
durch aile Unter-Directories mit reJativem Pfadnamen ausgegeben
Beispiel:
find • -print
Suchkriterien:
-name Dateiname
-mtimen
-mtime -n
-mtime +n
-newer Datei
-inum inode-Nr
-mount
196
Besitzer Gruppe Andere
r w x r-x --4+ 2+ 1 4+ 0+ 1 0+ 0+ 0
=5
=0
=7
Nach bestimmten Namen, Metazeichen
( *?[ ) )mit AnfUhrungszeichen eingeben
Modifikationsdatum
vor genau n Tagen
innerhalb von n Tagen
vor n Tagen und frOher
neuer als die angegebene
Datei
mit der angegebenen inode-Nummer
nur auf dem aktuellen (montierten) Plattenbereich
Fortsetzung nachste Seile
3.4.9
Dateiverwaltung und -pflege
Kommandoeingabe
Funktion
find Fortsetzung
-user Benutzername
Ausgabe:
-print
Dateien des angegebenen Benutzers
Dateien werden mit absolutem Pfadnamen angezeigt
-exec Kommando
0 \;
-Is
Logische Kombination
-a
-0
Beispie/e
find. \( -name "a*" -a -user \
hans \) -exec head 0 \j
find lusr \( -name core -0 \
-name "*.tmp" \) -exec rm 0 \;
grep [hilnvw] Muster Dateiname(n)
das Kommando wird mit jeder gefundenen Datei durchgefuhrt
die gefundenen Dateien werden mit allen Attributen (wie Is -I) angezeigt
Suchkriterien konnen logisch verbunden
werden
und-Verknupfung
Suchkriterien klammern
oder-Verknupfung
Sucht nach Dateien, die mit a beginnen
und "hans" gehOren. Von den gefundenen Dateien werden die ersten 10 Zeilen
angezeigt
Sucht ab lusr aile core-Dateien
undloder Dateien, die mit .tmp enden.
Die gefundenen Dateien werden gelescht
get regular expression
Durchsucht Dateiinhalte nach bestimmten Zeichenvorgaben/Suchmustern
1m Muster kennen Metazeichen (regular
expression) wie im edlvi verwendet werden
-h header
der Dateiname wird nicht mit ausgegeben
-i ignore case
behandelt GroB- und Kleinbuchstaben
gleich
-I line
nur die Dateinamen werden angezeigt
-n number
gibt zusatzlich die Zeilennummer mit
aus
Fortsetzung nachste Seite
197
3
UNIX - praktisch angewandt
Kommandoeingabe
grep Fortsetzung
Beispiel:
grep -v ""\." trofftext
Uoter DOS~
198
rmd
Funktion
-v invert
gibt aile Zeilen aus, die nicht dem Muster entsprechen
-w word
Suchmuster muB ein einzelnes Wort sein
Es werden aile Zeilen aus der Datei trofftext angezeigt, die nicht mit einem '.'
beginnen
file Dateiname(n)
Datei
Versucht den Inhalt oder die Art einer
Datei zu bestimmen
zum Beispiel
ascii text
c program text
commands text
directory
du [-s] Directory
disk used
Zeigt den verbrauchten Plattenplatz
-ssum
Zeigt nur jeweils die Summe der Directories in S12-Byte-Blocken an
df [-k]
disk free
Zeigt die verfugbare Plattenkapazitat
in 512-Byte-Blocken fur aile montierten Plattenbereiche an
-k kilo - Zeigt die Kapazitat in 1 KBBlocken an
3.5 Sicher ist sicher!
Zwischenzeitlich haben Sie UNIX so gut kennengelernt, daB
Sie vielleicht schon einige Dateien angelegt haben, die fOr
Sie wichtig sind und nicht ge/6scht werden sollen. Sie haben
auch gelernt, wie leicht versehentlich eine Datei Oberschrieben oder ge/6scht werden kann. Und noch etwas: Die Wahrscheinlichkeit, daB eine Platte in einem Rechner defekt wird,
ist gr6Ber a/s die, daB Ihr BOro abbrennt. Eine Platte ist ein
mechanisches Teil wie der Motor eines Autos, sie zeigt
Abnutzungserscheinungen und kann daher pl6tzlich Leseund Schreibfehler aufweisen. Deshalb sollten Sie Ihre Dateien,
zumindest jene, auf die Sie nicht verzichten wollen, sichern,
d. h. zusatzlich auf ein anderes Medium kopieren.
Die einzelnen Themen:
3.5.1 Was und worauf soil gesichert werden?
3.5.2 Montieren von Floppies oder Platten
3.5.3 Kopieren eines Dateibaumes mit epio
3.5.4 Einlesen gesieherter Dateien von einer Floppy
(als Dateisystem)
3.5.5 Verwendung von Magnetband oder Streamer
3.5.6 Sieherung mit epio als Arehiv
3.5.7 Einlesen gesieherter Daten aus einem epio-Arehiv
3.5.8 Erstellen einer Sieherung mit tar
3.5.9 Restaurieren von Dateien aus einem tar-Arehiv
3.5.10 In welehem Turnus soli eine Sieherung erfolgen?
3.5.11 Austauseh von Daten mit dem PC
3.5.12 Zusammenfassung der Kommandos
199
3
UNIX - praktisch angewandt
Sicher ist sicher!
Das Thema ,Sichern< ist nicht trivial. Damit bescMftigen sich nicht nur Banken
und Polizei. Seit es Datenverarbeitung Ober Computer gibt, hat das Thema ,Sicherung< eine besondere Bedeutung erhalten. Mancher Benutzer ist vor seinem
Rechner schon in Tranen ausgebrochen, hat Wutanfalle bekommen, weil bestimmte Daten nicht mehr vorhanden waren; sei es, daB sie versehentlich ge16scht wurden, daB die Platte nicht mehr lesbar war oder sonst irgendwas passierte.
Ober Sicherung wurden schon Doktorarbeiten geschrieben. Auf der GUUG-Tagung '86 war diesem Thema eine Reihe von Vortragen gewidmet. In einem dieser Vortrage wurde ein sehr passender Vergleich gebracht (auch 10 Jahre spater
hat sich daran nichts geandert):
Daten sichern ist wie Zahneputzen. Es kostet Zeit, und man sieht keinen sofortigen Nutzen. Doch wenn das Desaster zuschlagt, wOnscht man sich, man hatte
die Sache ernster genommen.
Auch wenn Sie in einer gr6Beren Firma arbeiten, in der eine eigene Abteilung fOr
die Systembetreuung und Sicherung Ihrer Rechner zustandig ist, sollten Sie dieses Kapitel nicht Oberblattern. Abgesehen von manchen wichtigen Daten, die
Sie vielleicht vorsichtshalber selbst sichern wollen, werden die Kommandos
zum Sichern auch anderweitig ben6tigt, etwa zum Datenaustausch mit anderen
Rechnern oder um Dateien noch straffer und platzsparender zu organisieren.
3.5.1 Was und worauf soli gesichert werden?
Bei dem Kapitel3.3 Editoren hatten wir u.a. bei der Texterstellung vorsichtshalber ,zwischendurch< gesichert. Das heiBt, wenn wir Texte erstellt haben, wurden
diese erst in einen sog. Arbeitspuffer geschrieben und dann mit einem speziellen
Kommando (z. B. w beim ed bzw. :w beim VI) auf die Platte zurOckgeschrieben.
Bei unseren Aufraumarbeiten wurden Dateien kopiert und die doppelten Dateien
erst gel6scht, nachdem wir kontrolliert hatten, ob aile Dateien ordnungsgemaB
Obernommen worden waren. Auch dies war eine Art der Sicherung. Wir k6nnen
Sicherungen gliedern je nachdem, was und wann gesichert werden soli:
200
Zu sichern sind z.B.:
o der aktuelle Stand wahrend der Erstellung von Dateien und die vorhergehende Version einer geanderten Datei
o bestimmte Dateien, z.B. Testprogramme, Texte zu einem Buch usw.
o wochentlich aile Dateien eines Benutzers oder einer Benutzergruppe oder
aller Benutzer (Dateibaum) und taglich davon nur die veranderten Dateien
Daile Benutzerprogramme (Anwenderprogramme), die meist ebenfalls
unter bestimmten Directories abgelegt sind
o Systemsoftware
0 gesamte Platte(n)
Sicher ist sicher!
3.5.2
In diesem Buch, das speziell fOr den Benutzer geschrieben ist, wird in erster Linie nur auf die Sicherung der Benutzerdateien oder Benutzergruppen eingegangen. Die Sicherung von Benutzerprogrammen, der Systemsoftware und gesamter Platten gehOrt in den Aufgabenbereich des Systemverwalters und ist nicht
Inhalt dieses Buches. Lediglich am Ende dieses Kapitels sind einige Anregungen
fOr ein Gesamtsicherungskonzept enthalten.
Wir haben uns Gedanken gemacht, was wir alles sichern wollen, doch nun bleibt
zu uberlegen: wie sichern wir und worauf? In einer Umfrage wahrend eines EinfOhrungsseminars wurden folgende Antworten gesammelt:
o
o
o
o
o
o
o
o
auf Papier
unter anderen Namen
in ein anderes Directory
auf eine andere Platte
auf einen anderen Rechner (File-Server)
auf Floppy (Diskette) oder entfernbare Wechselplatte
auf Streamer-Kassette
auf Magnetband
Aile Antworten sind richtig. Ja, auch auf Papier, den ken Sie an Texte, Quelltexte
von Programmen, Kalkulationen u. v. m. Abgesehen, daB durch FleiBarbeit die
Daten wieder abgetippt werden konnen, konnte man heutzutage sogar die Texte
durch Scannen und entsprechende Konvertierungssoftware wieder einlesen.
Doch dies ware sicher die Ausnahme. Je nachdem, was gesichert werden soli
und wieviel die Sicherung kosten dart, wird man eines der angebotenen Medien
aussuchen. Sichert man eine Datei unter anderem Namen oder in ein anderes
Directory, hat man bei Platten- oder Rechnerausfalileider Pech gehabt. Die teuerste Sicherung ist bestimmt ein zweiter Rechner, der aber bei bestimmten Anwendungen seine Berechtigung hatte und etlichen Komfort bietet, da die Sicherung automatisiert nachts laufen konnte. Bei dem heutigem Stand der Technik
sind natUrlich auch magnetooptische Platten (MODs) ja sogar CDs (compact
disk) ebenfalls als Sicherungsmedien geeignet. Floppy und Streamer-Kassetten
sind sicher die am haufigsten verwendeten. Es handelt sich hierbei um entfernbare Datentrager, die dann, um jedes Risiko auszuschlieBen, sogar an einem
anderen Ort und brandsicher untergebracht werden konnen.
3.5.2 Montieren von Floppies oder Platten
Eine Floppy sieht etwa aus wie eine kleine Schallplatte. Es gibt sie in verschiedenen GroBen (z. B. 3 1/2", 5 1/4" und die ganz alte, kaum mehr verwendete 8"Floppy). Die meist genutzte ist sicher die 3 1/2"-Floppy, die etwa 1,4 MB speichern kann. Die anderen GroBen sind altere Modelle, die kaum noch verwendet
werden. Welche Floppy Sie verwenden konnen, richtet sich nach dem Floppy201
3
UNIX - praktisch angewandt
Laufwerk. Um das Laufwerk zu betreiben, ben6tigt man die einen entsprechenden Controller und die Treiber-Software, die letztlich Ober die Geratedatei unter
/dev zugewiesen wird. Die verschiedenen UNIX-Rechner haben meist unterschiedliche Bezeichnungen fUr die Floppies, z.T. auch je nach dem, wie sie verwendet werden, als UNIX-Medium oder als DOS-Floppy. Bei unseren Beispielen
nennen wir die Floppy z. B. /dev/fdO.
Wie verwenden Sie eine Floppy?
Ruckseite der Floppy
Vorderseite der Floppy
Schieber:
oben schreibgeschiitzt
unten schreibbereit
Floppy-Laufwerk
Floppy
Bild 3-133: Floppy
Eine Floppy kann auf unterschiedliche Weise genutzt werden:
202
1.
Ahnlich wie eine Platte. Das bedeutet, Sie haben direkten Zugriff auf die
Floppy und mOssen sie in das Dateisystem einhiingen. HierfOr muB die Floppy
erstmalig formatiert (hier gibt es je nach System unterschiedliche Befehle)
und ein Dateisystem auf der Floppy angelegt (mkfs - make file system)
werden. Dies sind Aufgaben des Systemverwalters.
2.
Ais Datentrager fUr ein Sicherungsarchiv. Dazu werden wir spezielle Kommandos kennenlernen (epio und tar). HierfOr ist keine Formatierung notwendig, da
von den Sicherungsarchiv-Programmen eigene Strukturen verwendet werden.
3.
Ais Austausch-Datentrager zu PCs (DOS-Systeme, Windows-NT, OS/2). Hier
verwendet man am besten fUr DOS vorformatierte Floppies. Die meisten
Systeme k6nnen auch die Floppies mit eigenen Befehlen fUr DOS formatieren
(dosformat, siehe auch Seite 227).
3.5.2
Sic her ist sicher!
Wir wollen zuerst die Floppy als Erganzung zu unserem Dateisystem nutzen. Die
fUr Ihr System formatierte Floppy wird dann in das Dateisystem eingehangt
(,montiert<). Das Kommando hierzu lautet:
letc/mount
I
Geratenamen
Imontieren
Directory mit
Pfadnamen ab I
letc/mount - Kommando, urn Floppies oder Platten zu montieren
Das Directory muB mit dem vollstandigen Namen ab der root (I) angegeben werden. Oft ist fUr ,entfernbare Datentrager< vom Systemverwalter bereits ein Directory eingerichtet, z. B. Imnt. In Ihrem Directory konnten Sie sich fUr das Montieren der Floppy auch ein eigenes Directory einrichten.
Eine Floppy oder Platte wird in ein leeres Directory montiert und somit voll in
das gesamte Dateisystem integriert. (Auf alteren Systemen war es moglich,
Floppies/Platten auch in nicht leere Directories einzuhangen. Dann wurden die
bereits vorhandenen Dateien ,Oberdeckt<. Dies bedeutet, daB diese Dateien
nicht mehr sichtbar waren und auch nicht angesprochen werden konnten, solange ein anderes Dateisystem unter diesem Directory eingehangt ('montiert1
war. Erst wenn dieses Dateisystem wieder ausgehangt ('abmontiert)< wurde, kamen die Oberdeckten Dateien wieder zum Vorschein.)
Unter dem Directory, in dem Sie z. B. die Floppy eingehangt haben, konnen Sie
nun Dateien anlegen, kopieren, umbenennen, loschen und Unter-Directories anlegen, also samtliche Kommandos verwenden, die Sie bisher zur Dateiverwaltung und Pflege schon kennengelernt haben. FOr den Anwender ist nicht erkennbar, auf welchen Platten und Floppies das gesamte Dateisystem, d. h. der
Dateibaum beginnend von der root (I) mit allen Unter-Directories aufgeteilt ist.
Geben Sie das Kommando /etc/mount ohne Parameter an, erhalten Sie eine
Aufstellung der montierten Gerate (Platten und Floppies). Beachten Sie bitte
hierbei, daB natOrlich jeder Rechner eine eigene Aufteilung der Platten hat und
mit diesem Beispiel nur die Funktion erklart werden soil. Namen und Zuordnung
sind nur fUr den in diesem Buch genutzten Seminarrechner zutreffend.
$
/etc/mount
/
/usr
/usr/kurs
on /dev/iwO.O
on /dev/iwO.3
on /dev/iwO. 1
read/write on Thu Nov 6 9:03:34
read/write on Thu Nov 6 9:03:34
read/write on Thu Nov 6 9:03:34
Bild 3-134: Beispiel Anzeige der montierten Platten - fete/mount
203
3
UNIX - praktisch angewandt
Erinnern Sie sich an das Kommando df (disk free)? Hier hatten Sie ebenfalls eine
Aufteilung des Dateisystems erhalten mit den jeweils noch zur Verfugung stehenden freien Bl6cken. Diese Platten werden yom Systemverwalter bei der Konfigurierung des Systems zugeordnet und beim Hochfahren des Systems automatisch montiert.
Ais Anwender k6nnen wir z. B. eine Floppy in das Dateisystem montieren oder
einhangen. Hierfur richten wir uns in unserem Home-Directory einmalig beispielsweise das Directory >Floppy' ein. In dieses Directory montieren wir eine bereits formatierte und mit einem Dateisystem versehene Floppy (Ihr Systemverwalter wird Ihnen eine vorbereitete Floppy geben k6nnen). Ais Beispiel werden
wir aile Dateien des Directories Texte auf die Floppy sichern. Sehen wir uns
hierzu den Ablauf an.
$ mkdir Floppy
$ Is-F
Befehlel
Floppyl
ProjektA/ Textel
Uebungenl
$ Is -I Floppy
Das Directory, In das ein neues Dateisystem
total 0
montiert werden soli, muB leer sein.
$ letc/mount Idev/fdO lusr/kurs/monika/Floppy
$ lete/mount
I
lusr
lusrlkurs
lusrlkurslmonikalFloppy
on IdevliwO.O readlwn"te
on IdevliwO. 1 readlwn"te
on IdevliwO. 1 readlwn"te
on IdevlfdO readlwn"te
L
on
on
on
on
Thu Nov 6 9:03:34
Thu Nov 6 9:03:34
Thu Nov 6 9:03:34
Thu Nov 711 :20:02
Die Anzeige zeigt nun das ergllnzte Dateisystem
$
cp Texte/* Floppy Sicherung ~urch Kppieren von Dateien mit Hille
$ Is _I Floppy
von Metazelchen ' •
total 200
-rw-r--r-1 monika kurs 101699 Nov 4 19:33 kekse
1 monika kurs
290 Nov 4 19:33 sprueche
-rw-r--r--
Zur Orientierung der Teilbaum yom Directory lusr/kurs/monika
Floppy
204
Bild 3 -135: Beispiel Sichern von Dateien auf Floppy - letclmount, cp
3.5.2
Sicher ist sicherl
Die Sicherung wurde hier durch Kopieren bestimmter Dateien vorgenommen.
Die Dateien wurden mit Hilfe der Dateinamenexpansion (Metazeichen *) gefunden. K6nnten wir die Floppy nun wieder entfernen?
[> Beachten Sie: Bevor Sie eine mit /etc/mount ins Dateisystem eingehangte
Floppy (oder entfernbare Platte) auf einem UNIX-Rechner wieder herausnehmen, muB sie mit dem Kommando letclumount abmontiert (abgemeldet, ausgehangt) werden; dann erst kann sie auch physisch entfernt werden.
Also nicht wie beim PC, wo sie einfach aufs Kn6pfchen drOcken! Unter
UNIX werden aile Dateien immer kontrolliert, registriert, bewacht. Wenn sie
gewaltsam die Floppy entfernen wOrden, merkt das System die Inkonsistenz
spatestens beim nachsten Hochfahren. Der Systemverwalter muB dann eine
PlattenOberprOfung, sog. file system check (fsck), durchfOhren.
/etc/umount Geratename
I
abmontieren, aushangen
letc/umount - Kommando, urn Platten oder Floppies wieder auszuhangen
Dem Betriebssystem muB unbedingt mitgeteilt werden, daB ein Gerat, auf dem
ein Dateisystem eingerichtet wurde und das in den gesamten Dateibaum integriert wurde, wieder entfernt wird. UNIX beMlt die Informationen Ober ein Dateisystem im Speicher und schreibt nur nach einer bestimmten Zeit (wenn auch nur
Sekunden) die sich durch Neuanlage, Modifikationen und L6schung von Dateien
ergebenden Veranderungen auf die Platte oder Floppy zurOck.
Durch das Kommando umount ist eine ordnungsgemaBe ROckschreibung aller
Datei-Informationen gewahrleistet. Das Directory ,Floppy' ist auf der Platte wieder leer.
$ /etc/umount /dev/fdO
$ Is -I Floppy
Sobald das Dateisystem ausgeMngt
total 0
ist, ist das Directory wieder leer
Bild 3-136: Beispiel Mount-Directory nach dem Aushangen der Floppy
Die Dateien stehen ohne irgendwelche Pfadangaben auf der Floppy. Die Floppy
kann nun in jedes freie Directory eingehangt werden, wenn der Benutzer die
Schreiberlaubnis hierfOr besitzt.
205
3
UNIX - praktisch angewandt
Platte Dateisystem
unter UNIX
/
/
/
/
I
herausgenommene Floppy
mit UNIX-Dateisystem
Floppy
Bild 3-137: Beispiel des Dateibaumes mit ausgehangter Floppy
Die auf die Floppy kopierten Dateien bekommen automatisch den Pfadnamen
des Directories, unter dem die Floppy montiert wird. WOrde sie z. B. unter dem
Directory Imnt eingehangt werden, so lauteten die Dateinamen:
Imntlkekse und Imntlsprueche
Die Sicherung auf eine >entfernbare< Platte wOrde in gleicher Weise durchgefOhrt
werden. Die Platte ist nur durch einen anderen Geratenamen, z. B. Idevliw1 .0,
gekennzeichnet.
206
3.5.3
Sicher ist sicher!
3.5.3 Kopieren eines Dateibaumes mit cpio
In dem gerade gesehenen Beispiel wurden bestimmte Dateien mit Hilfe der Dateinamenexpansion Ober Metazeichen herausgesucht. Welche weiteren MogIichkeiten gibt es? Nun, im vorherigen Kapitel haben wir ein schwieriges, aber
sehr nOtzliches Kommando kennengelernt - das find-Kommando. Mit Hilfe von
find konnen wir aile Dateien und Unter-Directories von einem Directory oder
Dateien nach einem bestimmten Suchkriterium (alter als 2 Tage usw.) auswahlen
und anzeigen lassen. Mit dem Kommando cp konnen zwar ab Version V.4 gesamte Dateibaume kopiert werden, jedoch nicht nach einer bestimmten Auswahl und vor allem erhalten die kopierten Daten jeweils ein neues Datum. Vor
Version V.4 konnten mit cp nur Dateien, nicht aber Directories kopiert werden.
Um Dateien und Directories mit Originalinformationen zu kopieren, gibt es
das Kommando cpio (copy input output). Wie der Name andeutet, wird cpio sowohl fOr die Ausgabe einer Kopie, als auch fOr das Einlesen von kopierten Daten verwendet. Dieses Kommando hat die Besonderheit, daB es nur in Verbindung mit einer Dateiliste eine Ausgabe erstellt. Die Dateiliste wird entweder Ober
eine Pipe oder eine Umleitung Obergeben; oder die Namen der zu kopierenden
Dateien werden einzeln Ober die Standardeingabe (Terminal) eingetippt. Sehen
wir uns das Kommando cpio an, wie es in Verbindung mit dem find zum Kopieren eines Dateibaumes verwendet wird:
find
Directory
-print
I cpio -p[vmud] Ziel-Directory
'~----~vr--------~/
Ausgabe der Oateiliste des
Dateibaumes, der kopier!
werden soli
copy input output
Kopierbefehl fOr Einund Ausgabe.
p ass
kopiert die als Datelliste ubergebenen
Dateien und Unter-Directories in das
liel-Directory
I
I Name des Directories, unter
dem der kopierte Dateibaum
ausgegeben wird. (liel-Directory)
directory
Falls Unter-Oirectories noch nicht
vorhanden sind, werden sie angeleg!.
u nconditional
Ole koplerte Datei wird auf jed en
Fall ubernommen, auch wenn sie
schon vorhanden ist.
m odification date
Die kopierte Oatei erhillt das gleiche
Datum wie die Originaldatei.
verbose
Anzeige der kopierten Daleien
find •.. I cpio ••• - Kommandos, urn einen Dateibaum zu kopieren
207
3
UNIX - praktiseh angewandt
Es empfiehlt sich, folgende Optionen anzugeben:
-v (verbose), damit Sie am Bildschirm verfolgen kennen, welche Dateien kopiert
wurden;
-m (modification date), um das ursprungliehe Datum der kopierten Datei zu
erhalten (und nicht wie bei dem Kommando ep das aktuelle Datum);
-u
wenn die kopierte Datei auch dann ubernommen werden
wenn bereits eine Datei mit gleichem Namen und neuerem Datum vorhanden ist (ohne die Option -u werden bei cpio nur dann Dateien gleichen
Namens uberschrieben, wenn sie ein alteres Datum als die zu kopierende
Datei aufweisen);
(unconditiona~,
5011,
-d (directory), wenn Unter-Directories angelegt werden sollen.
Wenn wir aile Dateien von /usr/kurs/monika auf eine Floppy sichern wollen, sind
folgende Schritte notwendig:
1.
Floppy montieren;
2.
evtl. Daten auf der Floppy leschen;
3.
Kontrollieren, ob Sie sich in dem zu kopierenden Dateibaum befinden, um
uber find die relativen Dateinamen so zu erhalten, wie sie unter dem
Ziel-Directory mit gleichem Namen kopiert werden sollen;
4.
Kopieren des Dateibaumes mit cpio in Verbindung mit find;
$ fete/mount /dev/fdO /usr/kurs/monikaiFloppy
$ Is -I Floppy
1. Montieren der Floppy
{ota1200
-rw-r--r-1 monika kurs 101699 Nov 4 19:33 kekse
1 monika kurs
290 Nov 4 19:33 sprueche
-rw-r--r-$ rm -r Floppy/"
2. Vomandene Daten loschen
$ pwd
3. Kontrolle, ob im richtigen
/usr/kurs/monika
Directory
.
$ find. -print I epio -pvmd Floppy
4. Kopieren des Datelbaumes
Floppy/.
.r-.-----'-'-.....:.....--.- - - - - - - - - - - ' - - .
Floppy/ProjektA
Fortsetzung Blldschlrm
FloppylProjektAlbeisJ. FloppylUebungenlinhalt
FloppylProjektAlio.c
FloppylUebungenlneu
FloppylProjektAlpro.c FloppylUebungenlneuer
Floppy/Texte
FloppylUebungenlueb 1
FloppylTextelkekse
FloppylUebungenlOatum linked to
Floppy/Texte/spruech
FloppylUebungenldatum
FloppylUebungen
FloppylFloppy
FloppylUebungenlOa
FloppylBefehle
FloppylBefehle/sicher
209 blocks
Bild 3-138: Beispiel einer Sicherung auf Floppy mit find I cpio a/s Dateibaum
208
3.5.3
Sicher ist sicher!
5.
Ein Hilfsmittel zur Wiederauffindung von Dateien ist, ein Inhaltsverzeichnis
auszudrucken, das Sie zusammen mit der Floppy aufbewahren. Z. 8., indem
wir von dem Directory Floppy mit Is -I ein Inhaltsverzeichnis ausgeben und
auf den Drucker weiterleiten oder das find-Kommando nochmal aufrufen und
die Ausgabe an den Ip-Spooler weiterleiten:
find Floppy -print I Ip oder ab Version V.4 find Floppy -Is I Ip
6.
Die Floppy softwaremaBig abmontieren und herausnehmen und sofort beschriften, welche Daten wann und von wem gesichert wurden.
$ Is -R Floppy I Ip - - $
$
/etc/umount /dev/fdO
Is -I Floppy
total 0
Ausdruck eines Inhaltsverzeichnisses
Sobald das Dateisystem ausgeMngt
ist, ist das Directory wieder leer
Datelsystem auf der
ausgeMngten Floppy,
die Sie auch physikalisch aus dem Rechner
entnehmen
Bild 3-139: Beispiel Abmontieren (Aushiingen) von einer Floppy nach der
Sicherung eines Dateibaumes -/etc/umount
Eine Floppy ist als Sicherungsmedium von kleineren Datenmengen gut geeignet. Sie ben6tigt wenig Platz und laBt sich sogar in Ordnern oder Ablagekastchen unterbringen. Der Hauptzweck einer Sicherung ist, daB der Benutzer jederzeit schnell und zuverlassig Daten, die etwa versehentlich gel6scht wurden oder
nur noch teilweise lesbar sind, auch einzeln wieder restaurieren kann. Aus der
Beschriftung der Floppy sollten Sie deshalb ersehen k6nnen, welche Daten Sie
wann gesichert haben, so daB es fOr Sie kein Problem ist, die richtige Floppy mit
den gesuchten Daten wiederzufinden. Wir werden spater noch kennenlernen,
wie wir auch auf einer Floppy noch wesentlich mehr Daten unterbringen k6nnen
(epio oder tar als Archiv und verdichtet mit compress siehe Bild 3-157 auf
Seite 247).
209
3
UNIX - praktisch angewandt
3.5.4 Einlesen gesicherter Dateien von einer Floppy (als Dateisystem)
1.
Sie hiingen die Floppy in ein feeres Directory ein und kopieren die gewOnschte
Datei in das entsprechende Directory (cp).
2.
Soli ein ganzer Dateibaum kopiert werden, so wechsefn Sie in das Directory
der Floppy und
3.
kopieren mit cpio in Verbindung mit find. Ais Ziel wird das Directory angegeben, unter dem der Dateibaum restauriert werden soil. Sind nur einzelne
Dateien geloscht, oder zwischenzeitlich neuere Dateien mit gleichem Namen
auf der Platte vorhanden, werden nur die Daten kopiert, die auf der Floppy
ein neueres Datum aufweisen. Dies ist auch ein wesentficher Vorteil gegenOber dem Kommando cp -ri, mit dem Sie zwar ebenfalls einen Dateibaum
kopieren, bei dem aber nicht automatisch auf neuere Daten abgefragt wird.
Gehen wir in unserem Beispiel davon aus, daB etwa versehentfich unter
/usrlkurs/monika das Directory Texte vollstandig geloscht wurde. Wir nehmen
also die vorhin erstellte Sicherungs-Floppy und hiingen Sie unter dem leerem
Directory >Floppy' ein.
$/etc/mount /dev/fdO /usr/kurs/monikalFloppy
$pwd
~I______________
1. Montieren der Floppy
/usr/kurs/monika
$ cd Floppy _____________ 2. Wechselln das Directory
$ find. -print I cpio -pvmd .. _
..ITexte
}
..ITexte/sprueche
..ITexte/kekse
200 blocks
$
der Sicherung
I - - - - - - 3. Kopieren des Dateibaums,
Abfrage auf modificatio~ date
das Ziel-Directory ist
d.h., aile kopl~rten DateJen ~rlusr/kurslmonika,
h~lten. d.as glelche Datum wle
angegeben mit ' .. '
die OngJnaldatelen.
Das Directory Texte wird automatisch durch die Option d
angelegt.
Bild 3 - 140: Beispiel Einlesen von Dateibaumen aus der
Sicherung auf Floppies - cpio (als Dateisystem)
Sollte z. B. der gesamte Dateibaum ab /usr/kurs/monika nicht mehr vorhanden
sein, konnten wir die Floppy unter irgendeinem leeren Directory einhiingen, unter dem wir schreibberechtigt sind. Wichtig ist hier, daB zumindest das Directory
/usrlkurs/monika noch existiert, da relativ zu diesem Directory die Dateien gesichert wurden. Sollte auch das Home-Directory geloscht sein, mOBte der Systemverwalter erst wieder Ihr Home-Directory mit mkdir anlegen.
210
3.5.5
Sicher ist sicher!
Floppies gehOren zu den kostengOnstigen Datentragern. Aber Sie haben den
Nachteil, daB nur verhaltnismaBig geringe Datenmengen untergebracht werden
kennen. Die Kapazitaten der Floppies reichen von ca. 0,36 MB (Megabytes) bis
ca. 2,88 MB. AuBerdem ist es schwierig, Floppies auf unterschiedlichen UNIXRechnern zu lesen, da sich die Formatierungen von System zu System unterscheiden kennen.
Die Floppy kann .auch ,nur< als Datentrager verwendet werden. In diesem Fall
wird sie nicht in das Dateisystem eingehangt (kein mount-Befehl), sondern ahnlich wie das Magnetband oder der Streamer verwendet. Das Kommando cpio
wird dann mit den Optionen -0 > IdevlfdO (fOr output - Erstellen der Kopie) und
mit -i < IdevlfdO (zum Wiedereinlesen der Sicherung) verwendet. Sehen Sie
hierzu die Verwendung von cpio bei Magnetband oder Streamer. Das Kommando tar (siehe auch Seite 219), ahnlich dem cpio-Kommando, hat sich ebenfalls fOr Datentrageraustausch zwischen unterschiedlichen Rechnern bewahrt.
Ein Beispiel, wie Floppies als Austausch zwischen UNIX-Dateien und PC verwendet wird, erfahren Sie im Abschnitt 3.5.11 auf Seite 227.
3.5.5 Verwendung von Magnetband oder Streamer
Der Streamer kann als problem los bezeichnet werden. Er wird eingesetzt zur Sicherung von grOBeren Datenmengen und zum Austausch von Daten mit UNIXRechnern anderer Hersteller. Ein Streamer kann fast auf allen Rechnern gelesen
werden. Das Magnetband wird meist nur noch in Mainframe-Umgebung (GroBrechner) verwendet. Der wesentliche Unterschied zwischen Platte oder Floppy
und Magnetband oder Streamer ist die Zugriffsmethode.
Auf eine Platte kennen Sie direkt zugreifen, an einer bestimmten Stelle (Adresse)
lesen und schreiben; ahnlich wie Sie auf einer Schall platte den Tonarm auf eine
bestimmte Rille setzen kennen. Ein Magnetband oder Streamer kann nur sequentiell (hintereinander) beschrieben oder gelesen werden. Denken Sie an Musikkassetten. Wenn Sie ein bestimmtes StOck heren wollen, mOssen Sie vor- oder zurOckspulen. Dies ist zeitaufwendig. Man verwendet Magnetbander oder Streamer
nur als Datentrager. Dies bedeutet: ein Magnetband oder Streamer muB in der
Regel nicht formatiert zu werden und es wird kein Dateisystem angelegt. Auf
manchen Systemen werden Magnetbander vorab initialisiert, mit einer Kennung
(z. B. fortlaufende Bandnumerierung etc.) versehen. Wir wollen in diesem Buch die
einfachste Form kennenlernen, wie Magnetbander oder Streamer verwendet werden.
I
I
.,11
Magnetband-Gerat
Bild 3-141: Magnetband
Schreibring
Magnetband
211
3
UNIX - praktisch angewandt
Das Magnetband hat auf einer Seite einen Schreibring, den Sie abnehmen konnen. Ohne Schreibring kann das Magnetband nur gelesen und nicht beschrieben werden. Wenn Sie z. B. nur Daten von einem Magnetband einlesen wollen,
empfiehlt es sich, zur Sicherheit den Schreibring abzunehmen.
Je nach Bandgerat fadelt sich das Band automatisch ein oder Sie mOssen entsprechend einer Anleitung das Magnetband manuell einlegen. Danach wird meistens eine Taste gedrOckt, um das Band zu einer Anfangs-Bandmarke vorzuspulen (Beginn des beschreibbaren Bandes). In der Regel wird sichtbar
angezeigt, daB .hardwaremaBig' das Magnetband bereit ist und vom Rechner
gelesen und/oder beschrieben werden kann.
Beim Streamer ist die Handhabung wesentlicher einfacher. Es gibt unterschiedliche GroBen. Das sog. Ole-Format (60 MB bis ca. 1,2 GB Gigabyte) und Streamer fOr OAT-Laufwerke (Digital Archiv Tape - ca. von 1,2 GB bis etwa 10GB) gehoren zu den Z. Z. am meisten eingesetzten. FOr groBe Datenmengen werden
DL T-Bander verwendet, die sogar bis zu 40 GB speich ern konnen.
Sicherheitschieber:
offen: schreibgeschiitzt
geschlossen: schreibbereit
Streamer-Laufwerk OAT
Sicherheitschraube:
@ - SAVE
= schreibbereit
~ SAVE
Streamer-Laufwerk Qle
Qle-Streamer
~ . =schreibgeschiitzt
Bild 3 -142: Streamer
Die Kassette wird in ein Streamer-Laufwerk eingeschoben. Ahnlich wie beim
Magnetband konnen Sie die Kassette vor irrtOmlichem Beschreiben schOtzen.
Urn den Schreibschutz einzustellen, ist an den meisten Kassetten ein Schieber
vorgesehen oder eine kleine Schraube auf .SAVE, zu drehen.
Da unterschiedliche Gerate auf dem Markt sind, laBt sich hier nur allgemein die
Bedienung erklaren. Auch die Kontrollbefehle fOr Magnetband und Streamer
sind meist rechnerspezifisch und sind evtl. bei Ihrem Rechner unter anderen Namen aufzurufen. Fragen Sie Ihren Systemverwalter, welche Befehle fOr Ihren
Rechner gOltig sind.
212
Sie konnen auf ein Magnetband oder einen Streamer mehrere Sicherungen hintereinander schreiben. Bei jeder Sicherung (Schreibvorgang) wird automatisch
eine Bandmarke als Endemarkierung auf das Band geschrieben. Man nennt diesen Bereich auch Oateiset. Wenn Sie auf ein schon beschriebenes Magnetband oder Streamer eine Sicherung anhiingen wollen, mOssen Sie um die Anzahl der schon vorhanden .Dateien, (in diesem Fall Sicherungsbereiche, die
3.5.5
Sicher ist sicher!
durch Bandmarken voneinander getrennt sind) vorspulen. Das Kommando
hierzu lautet:
Funktion
ZurOckspulen um eine oder .ne Dateisets
Vorspulen um eine oder .ne Dateisets
Magnetband
mt
mt
-rew [ n)
-fsf [ n]
mt - Kommando, um ein Magnetband/Streamer vor- und zuruckzuspulen
Auf Magnetband und Streamer sind Etiketten vorhanden, auf denen Sie sofort
beschriften sonten, was, wann und wo und von wem gesichert wurde. Ich personlich empfehle, lieber auf den Rest freier Kapazitat eines Magnetbandes oder
Streamers zu verzichten und nur jeweils eine Sicherung pro Band zu schreiben.
Die Fehlerquelle, versehentlich eine falsche Sicherung einzulesen oder gar zu
Oberschreiben, ist zu groB.
Wenn Sie immer wieder die gleichen Bander in einem bestimmten Turnus verwenden, empfiehlt es sich, die Eintragungen mit Bleistift vorzunehmen. Bei DATBandern ist jedoch darauf zu achten, daB sie It. Garantie maximal nur 20-mal benutzt werden dOrian.
I>
Achten Sie darauf, daB Sie immer ausreichend Bander und/oder Kassetten
zur VeriOgung haben. Wir werden uns anschlieBend Gedanken darOber machen, wie lange ein Band, eine Kassette oder Sicherungsfloppy aufbewahrt
werden sollte.
Unsere Kassette oper das Magnetband ist nun startklar (ready - online), und wir
konnten sichern, doch wie? Um auf Magnetband oder Streamer-Kassetten zu
sichern, eignet sich hervorragend das bereits gelernte Kommando: epio. Das
Kommando wird sowohl fOr die Erstellung der Sicherung (output), als auch fOr
das Wiedereinlesen (input) der Dateien verwendet. Wie Sie es verwenden wollen, kennzeichnen Sie durch die Option -0 fOr output oder -i fOr input.
213
3
UNIX - praktiseh angewandt
3.5.6 Sieherung mit epio als Arehiv
Mit epio kann ein Arehiv auf Magnetband, Streamer, Floppy oder als Datei angelegt werden. Um eine Sicherung zu erstelien, ein Archiv anzulegen, wird epio wie
folgt verwendet:
Wichtig 1st hier die Angabe des Umleitungszeichens!
I
I
Dateifiste (z. B. Ober Is, echo
oder das find-Kommando)
I epio -o[vB] >
f
copy input output I
Kopierbefehl fUr Einund Ausgabe.
output
kopiert die als Daleiliste Obergebenen
Dateien und Unter-Direclories auf das
angegebene GerlU
verbose
Anzeige der kopierten Daleien
Block
Blockungsfaktor fOr Magnetband
epio
-0 -
Gerate'- oder Dateifame
z. B. I/deV/nrmlO
L-r:-"
fUr
no
Ma~nelband'
rewind
ohne automalisches
ROckspulen
IdevlrstO
IdevlrmtlO
IdevlfdO fOr Floppy
oder als Datei z. B.:
Sicherungcpio
Kommando, um ein Arehiv auf Magnetband, Streamer, Floppy
oder als Datei anzulegen, zu erstellen
Das epio-Kommando haben wir bereits beim Kopieren von Dateibaumen kennengelernt. Je naehdem, welche Option angegeben wird, kann epio verwendet
werden fOr:
epio -p[vmud] Ziel-Direetory
(pass) zum Kopieren von Dateibaumen
epio -o[vB] > Geratenamen
(output) zum Erstelien eines Archivs
auf Magnetband, Streamer, Floppy
oder als Datei
epio -i[vmudB] < Geratenamen
(input) zum Einlesen von vorher auf Magnetband oder Streamer gesieherten
Daten
Die Option -i wird unter 3.5.7 auf Seite 216 behandelt. Bei den ersten beiden
M6glichkeiten (-0 und -p) mOssen die zu kopierenden Dateien als sag. Dateiliste
im Pipe-Mechanismus Obergeben werden.
214
•
Die Geratenamen sind je Rechner unterschiedlich. Erkundigen Sie sich bei Ihrem Systemverwalter, welche Geratenamen fOr Streamer bzw. Floppy Ihnen zur VerfOgung stehen.
Sicher ist sicher!
3.5.6
Die Dateiliste kann erstellt werden z. B.:
Omit dem Kommando find
o
durch Dateinamenexpansion Ober Metazeichen (*, ?, [] ),
wobei die so gefundenen Dateien Ober das Kommando Is oder echo als
Liste ausgegeben werden
o
oder Umleitung der Eingabe von einer Datei (z. B. Iiste), in der die zu sichernden Dateinamen pro Zeile eingetragen sind.
cpio -ovB < Iiste > Idev/rmtO (Geratenamen nur als Beispiel)
Wenn Sie z. B. in einem bestimmten Directory aile Dateien, die mit .c enden, auf
Magnetband sichern wollen, geben Sie ein:
Is *.c I cpio -ovB > Idev/rmtO (Geratenamen nurals Beispiel)
Nur wenn Sie anschlieBend eine weitere Sicherung auf das gleiche Magnetband
schreiben wollten, wOrde als Geratenamen IdevlnrmtO verwendet werden. >n,
steht in diesem Fall fOr nicht zurOckspulen (no rewind).
Eine Sicherung auf Streamer wird in gleicher Form vorgenommen, lediglich der
Geratenamen kann anderslautend sein. Da jedoch kaum noch Magnetband-Gerate an UNIX-Rechner angeschlossen sind, sondern hauptsachlich StreamerLaufwerke, die Datenmengen in Gigabyte speichern konnen, wird IdevlrmtO
meist fOr den Streamer verwendet.
Es empfiehlt sich, die durch die Option >v, (verbose) angezeigte Liste der gesicherten Daten in eine Datei umzuleiten und anschlieBend auf dem Drucker auszugeben. Diese Umleitung wird erreicht durch >2><, obwohl es sich hierbei nicht
um Fehlermeldungen, sondern um >Meldungen des Programms< handelt. Wollen
wir bei dem letzten Beispiel das Protokoll in die Datei >sichliste< umleiten, lautet
die Eingabe:
Is *.c I cpio -ovB > Idev/rmtO 2> sichliste
Die Datei sichliste kann anschlieBend mit Ip sichliste ausgedruckt werden.
Sehen wir uns ein Obungsbeispiel zur Sicherung an. Aile Dateien von dem Directory lusrlkurslmonika sollen auf Streamer gesichert werden:
215
3
UNIX - praktiseh angewandt
(ROckspulen des Magnetbandes k.ann meist
entfallen, da Streamer automatisch zurOckspulen
Kontrolie, ob 1m richtigen Directory
$ mt rew
$ pwd
lusrlkurslmonika
$
find. -print I epio -ovB
> Idev/rmtO
ProjektA
- - - - Anzelge der Dateinamen durch die
ProjektA/beispiel.c
Option v.
Befehlelsicher
240 blocks
Bild 3 -143: Beispiel Sicherung als Archiv auf Streamercpio in Verbindung mit find
3.5.7 Einlesen gesieherter Daten aus einem epio-Arehiv
Um vom Magnetband, Streamer, Floppy oder aus einer Archivdatei Daten wieder einzulesen, wird das Kommando epio -i wie folgt verwendet: *
Beim Einlesen der Daten muB das Eingabe-Umleitungszeichen angegeben werdenl
I
I
epio -i [VUmdtjl
I
copy input output
Kopierbefehl fOr Einund Ausgabe.
I
input
Einlesen von Dateien
verbose
Anzeige der kopierten Dateien
unconditional
keine AbprOfung auf das Datum
[ Dateiname(n )]
I
<
Band
Blockungsfaktor fOr Magnetband
title
Ausgabe eines Inhaltsverzeichnisses
directory
Unter-Directories werden
eingerichtet
modification date
Obernahme des Originaldatums
Geratename·
I
I z. B. Idev/nrmtO
no rewind I
fOr Magnetbandl
Streamer ohne
automatisches
ROckspulen
/devlrstO
/dev/rmtJO
/dev/fdO fOr Floppy
oder als Datei z. B.:
Sicherungcplo
Umleitung der Standardeingabe
epio -i - Kommando, um Dateien aus einem epio-Arehiv wieder einzulesen
216
•
Die Geratenamen sind je Rechner unterschiedlich.
3.5.7
Sicher ist sicher!
Die einzelnen Optionen haben wir zum Teil schon kennengelernt. 1m einzelnen
bedeuten sie:
-v (verbose) Sie erhalten ein Protokoll (Anzeige auf dem Bildschirm) Ober samtliche Dateien, die eingelesen werden.
-u (unconditionaQ Mit dieser Option schalten Sie den Vergleich auf ein eventuell
neueres Datum einer schon existierenden Datei aus. Dies bedeutet: so lite
eine Datei mit gleichem Namen auf der Platte bereits existieren, wird sie mit
der Datei, die auf dem Band steht, Oberschrieben. Die Dateien erhalten das
aktuelle Datum.
-m (modification date) Die kopierten Dateien erhalten das gleiche Datum, wie es
die Originaldateien aufweisen.
-d (directory) Sind In dem einzulesenden Dateibaum Directories mit enthalten,
die noch nicht auf der Platte existieren, werden Sie vom Programm angelegt.
-t
(table) Mit dieser Option konnen Sie sich vorab den Inhalt eines Bandes
anzeigen lassen. Der Aufruf muB in Verbindung mit der Option -i erfolgen.
z.B. cpio -ivtB < IdevlmtO
-B (Block) Nur wenn das Sicherungsband ebenfalls mit der Option -B erstellt
wurde, muB auch das Einlesen mit dieser Option erfolgen. Die Daten werden
dann blockweise (ca. 5000 Bytes per Block) eingelesen.
Geben Sie beim Aufruf von cpio -i ... keinen Dateinamen an, so werden aile Dateien, die auf dem Sicherungsband stehen, eingelesen. Mochten Sie nur bestimmte Dateien einspielen, so muB die Datei mit der gleichen Bezeichnung, wie
sie auf dem Band gesichert ist, angegeben werden. Um sich zu vergewissern,
kann man sich vorab das Band mit cpio -ivt ansehen. Wichtig ist auch, daB die
Datei mit dem gleichen Pfadnamen zurOckgeschrieben wird.
l>
Achten Sie deshalb beim Einlesen von Dateien darauf, daB Sie sich im richtigen Directory befinden. Zu beachten ist auBerdem, daB Sie bei der Eingabe
von cpio -i nicht von der Standardeingabe lesen wollen, sondern von dem
Gerat bzw. der Archivdatei, d. h., Sie mOssen die Eingabe umleiten mit <.
Sehen wir uns anhand von Beispielen den Ablauf des Kommandos an. Angenommen, die Dateien unter dem Directory /usrlkurs/monika/Uebungen wurden versehentlich geloscht. Dies ist fOr uns kein Problem, da aile Dateien gesichert sind.
Um von dem richtigen Directory einzulesen, ist es wichtig zu wissen, mit welchem Pfadnamen die Datei auf das Sicherungsband geschrieben wurde. Sollte
es aus der Beschriftung des Etikettes nicht hervorgehen, so bietet das Kommando cpio die Moglichkeit, sich ein Inhaltsverzeichnis anzeigen zu lassen:
cpio -ivtB </dev/rmtO
(Die Bezeichnungen fOr die Geratenamen von Streamer oder Magnetband sind
auch hier wieder nur ein Beispiel. Fast jedes Rechnersystem verwendet andere
217
3
UNIX - praktisch angewandt
Bezeichnungen}. Sie erhalten eine Liste, die Ihnen ahnlich wie das Kommando
Is -I die Dateiattribute anzeigt.
$ cpio -ivt < Idev/rmtO - Anzeige des Inhaltsveneichnisses Qvt - table)
40775
monika 0
Nov 6 16:30:05
40755
monika 32 Oct 26 20:06:44
ProjektA
10664
monika 98 Oct 26 20:06:44
ProjektAlbeispiel.c
10664
monika 150 Oct 26 20:06:44
ProjektAlio.c
10664
40755
10755
monika 29
monika 32
monika128
Oct 19 18:18:06
Oct 26 13:36:44
Oct 18 21:02:26
Datum und Uhrzeit
verschliisselte
Nummer (Dateityp
und Zugriffsrechte)
GroBe der Datei in Bytes
Name des Dateibesitzers
Uebungenldatum
Befehle
Befehlelsicher
Name der Datei mit dem
Pfadnamen, wie er beim
Wiedereinlesen vom aktuellen Directory angelegt wird.
Bild 3-144: Beispiel Anzeige des Inhaltsverzeichnisses eines cpio-Archivs
Die Nummer, die mit angezeigt wird, verschlOsselt den Dateityp (Directory=4,
normale Datei=1).Die letzten drei Ziffern stelien die Oktalzahl der Zugriffsrechte
dar (die Summe je fOr user, group und other aus read=4, write=2, executable= 1).
Aus dem Inhaltsverzeichnis konnen Sie den Pfadnamen der Datei ersehen, den
Sie in der gleichen Form angeben mOssen, um die entsprechende Datei(en} wieder einzulesen. Bei cpio konnen Sie die Ihnen bekannten Metazeichen nOtzen.
Achten Sie darauf, daB Sie wie beim Kommando find AusdrOcke mit Metazeichen in AnfOhrungszeichen setzen, damit diese nicht sofort von der Shell expandiert werden, sondern erst bei AusfOhrung von cpio.
Beispiel fOr das Einlesen der Dateien unter lusrlkurs/monikalUebungen:
$
pwd
Kontrolle, ob Sie im richtigen Directory sind.
unter dem die gesicherten Dateien mit dem
eingetragenen Pfadnamen angelegt werden
lusrlkurslmonika
$ cpio -ivmdB "Ueb/*" < Idev/rmtO
L - Um aile Dateien aus dem Directory Uebungen
UebungenlDatu,t,
I
zu emalten. muB das Trennungszeichen / mit
Uebungenlinhalt
angegeben werden.
Uebungenlneu _
Ware das Directory Uebungen auch mit geUebungenlneuer
loscht worden. wiirde es automatisch wieder
Uebungenlueb1
angelegt werden.
UebungenlDatum linked to Uebungenldatum
240 blocks
1'--___
Zusatzlich vergebene Namen (In) werden
ebenfalls iibernommen
218
Bild 3 -145: Beispiel Einlesen bestimmter Daten aus einem cpio-Archiv
3.5.8
Sicher ist sicherl
3.5.8 Erstellen einer Sicherung mit tar
Statt des Kommandos cpio wird oft das Kommando tar (tape archiv) speziell
zum Austausch von Daten zwischen verschiedenen Rechnern verwendet. Das
Kommando tar ist kompatibel zu unterschiedlichen Rechnersystemen. Den Befehl tar gibt es z. B. auch fOr MS-DOS, OS/2 und fOr MAC-OS (Betriebssystem
vom Apple Macintosh). Auch ist tar etwas einfacher zu bedienen als cpio (hat allerdings auch nicht die Funktionalitat, z. B. Auswahl von Dateien nach bestimmten Kriterien, wie es bei cpio mit find in zahlreichen Variationen erfolgen kann).
Verlangt das Kommando cpio bei der Erstellung zusatzlich eine Dateiliste, so
wird bei tar der gesamte Dateibaum vom aktuellen Directory bzw. dem angegeben en Directory kopiert oder nur die angegebenen Dateien. Die wichtigsten
Funktionen, um ein Archiv mit tar zu erstellen, sind:
tar -c[bhvf Gerat-/Dateiname]
Start-Directory oder Dateiname(n
I
tape archive
create
Erstellen eines
tar-Archivs
file
Das direkt nachfolgende
Wort ist die Bezeichnung
fUr das Gerlit oder der
Name fiir die Archivdatei
f wird deshalb stets als
letzte Option eingeben
z. B. -f IdevlrmtO
-f IdevlfdO oder
als Datei -f ItmplSich.tar
I
Hier muS, wenn yom aktuellen Directory abgesichert werden soli, der
Punkt • angegeben werden;
Dateinamen kOnnen iiber
Dateinamenexpansion
(z.B. '.c) ermittett werden
verbose
zeigt aile kopierten Dateien an
-h (hard/ink)
verfolgt aile symbolischen Unks und kopiert die
dort aufgefundenen Dateien
block
Blockungsfaktor fUr Magnetband
l>
tar -c - Kommando, um ein tar-Archiv zu erstellen
Achtung: Bei tar -c wird ein Band oder eine Floppy uberschrieben bzw. eine
Datei automatisch neu angelegt bzw. eine bereits vorhandene geloscht.
Hatte man beim cpio-Kommando auf das Umleitungszeichen achten mussen,
so ist bei tar der Geratename/Archiv-Dateiname uber die Option -f anzugeben,
wenn es sich nicht um die Standardausgabe (meist /devlrmtO) handelt. Die Standardausgabe (default) bei tar ist auf den verschiedenen Rechnern unterschiedlich. Auch hier kann Ihnen Ihr Systemverwalter weiterhelfen - bzw. probieren Sie
es einfach aus. Meist ist das am Rechner angeschlossene Streamer-Laufwerk
die Standardausgabe.
Wie sie mit tar im Netz arbeiten, finden Sie im KapiteI3.6.3 auf Seite 241.
219
3
UNIX - praktisch angewandt
Sichern wir unser Directory lusrlkurslmonika in eine Archivdatei unter dem
Directory Itmp. Da, wie wir im Kapitel 3.6 spater erfahren, Archivdateien oft uber
Netz verschickt werden, ist es unter UNIX-Anwendern gebrauchlich, die tar-Archivdateien entsprechend mit . tar zu kennzeichnen (ist aber kein MuB).
$ pwd
Es wird eine Sich~rung vom gesamten Dateibaum
lusrlkurslmonika _ _ ab /usr/kurs/monlka erstellt
$ tar -cvf Itmp/SichJuli.tar I
.lProjektA
- - - Anzeige der Dateinamen durch die Option -v
.IProjektAlbeispiel.c
.IBefehlelsicher
175 blocks
$ Is -I Itmp/SichJulLtar
-rw-rw-r-- 1 monika kurs
89S12JuI3117:02SichJuli.tar
Bild 3-146: Beispiel Erstellung eines tar-Archivs
Die Archivdateien (cpio und tar) benotigen etwas weniger Platz als die Originaldateien, da samtliche Dateien (mit jeweils mindestens 1KB) in eine Datei gespeichert werden (die BlockgroBe ist 512 Byte). Wir werden im Kapitel 3.6.3 (Welche
Netzwerk-Kommandos sind fUr Sie interessant?) auf Seite 247 erfahren, wie Dateien weiter verdichtet werden konnen (compress). Doch die Platzersparnis ist
hier nur zweitranig zu sehen, wichtig ist in erster Linie, daB jederzeit aile oder nur
einzelne Dateien wiederhergestellt, restauriert werden konnen. Sehen wir uns
hierzu das Kommando an.
220
3.5.9
Sicher ist sicher!
3.5.9 Restaurieren von Dateien aus einem tar-Archiv
Wichtig beim Restaurieren von Dateien ist, daB Sie sich bewuBt sind, daB bei tar
die Dateien stets in das aktuelle Directory kopiert werden und zwar so, wie sie
bei der Sicherung mit ihrem relativen Pfadnamen angezeigt wurden. Wenn beim
Speich ern der Dateien die Anzeige z.B . .lBefehle/sicher erschien (siehe Bild 3146 auf Seite 220), wird in dem aktuellen Directory ein Unter-Directory Befehle
angelegt. Um sich zu vergewissern, wie die Dateien gespeichert sind, kennen
Sie sich vorab ein Inhaltsverzeichnis ausgeben lassen. Das Kommando hierzu
lautet:
tar -t[vf Gerat-IDateiname]
I I
tape archive
I
table
Inhaltsverzeichnis
I file
[Dateiname(n) ]
I
Das direkt nachfolgende Wort ist
die Bezeichnung fUr das Ger!!t
oder der Name fUr die Archivdatei
verbose
zeigt zuslitzlich Attribute der Dateien an
l.terden Dateinamen
angegeben. wird nur
nach diesen gesucht
und die gefundenen
angezeigt
tar -t - Kommando, um ein Inhaltsliste eines tar-Archivs zu erhalten
Es ist also empfehlenswert, sich noch einmal zu vergewissern, im richtigen
Directory zu sein (pwd). Erst dann sollten Sie Daten wieder einlesen bzw. Daten
aus dem Archiv extrahieren, herausholen (was allerdings nicht bedeutet, daB die
Datei aus dem Archiv gelescht wird. Sie wird nur zuruckkopiert, bleibt aber in
der Archivdatei erhalten).
l>
Bei tar werden Metazeichen in Dateinamen nicht expandiert (also nicht
wie bei cpio, wo Metazeichen verwendet werden kennen)
tar -x[mvf Gerat-IDateiname]
l
tape archive
extract
Herausholen
Kopieren
von Dateien
I file
Das direkt nachfolgende
Wort ist die Bezeichnung fur
das Gerat oder der Name fOr
die Archivdatei
Dateiname(n)
I
Wird kein Dateiname an·
gegeben. werden aile
Dateien aus dem Archiv
zu ruckko piert
verbose
zeigt zUrUckkopierten Dateien an
modification date
Obernahme des Originaldatums (wie auch bei cpio)
tar -x - Kommando, um Dateien aus einem tar-Archiv zuruckzukopieren
221
3
UNIX - praktisch angewandt
Auch hierzu ein kurzes Beispiel. Angenommen, Monika hat die Datei Uebungenldatum versehentlich geloscht, so kann sie aus dem tar-Archiv diese Datei
wieder restaurieren:
$ pwd
. . h .
O'
lusrlkurslmonika
___ KontroIIe, 0 b 1m
nc ligen Irectory
$ tar -xvf Itmp/tarSichJuli .IUebungenldatum
Uebungenldatum - - Anzeige der Oateinamen durch die Option -v
Bild 3-147: Beispiel Restaurieren einer Datei mit tar-x
Wir wissen jetzt, wie man sichert und Dateien zurOckkopiert. Doch wann ist es
sinnvoll zu sichern und wie lange sollten die Sicherungsdaten aufbewahrt werden? Lassen Sie uns hierzu ein paar Gedanken machen.
3.5.10 In welchem Turnus soli eine Sicherung erfolgen?
Hierbei sollten Sie berOcksichtigen, daB Sie nicht immer sofort einen evtl. Fehler
innerhalb von Dateien oder das Fehlen bestimmter Dateien bemerken. Auch ist
es bei einem groBen Datenbestand aus Zeit- und PlatzgrOnden zu empfehlen,
nicht jeden Tag aile Dateien zu sichern, sondern nur noch jene, die sich seit der
letzten Sicherung verandert haben oder neu angelegt wurden. Nehmen Sie die
Sicherung genau. Die Zeit, die Sie vielleicht einsparen, wenn Sie nur von Zeit zu
Zeit sichern, konnte Ihnen teuer zu stehen kommen. Denken Sie an den eingangs erwahnten Vergleich mit dem Zahneputzen. Die Sicherung sollte zur taglichen Routine werden. Am besten erstellen Sie einen Sicherungsplan.
Eine ideale Losung ware, die Sicherung z. B. nachts automatisch Ober das Netz
auf einen eigenen Rechner (File-Server) mit ausreichender Plattenkapazitat
durchzufOhren. Hier gibt es unter UNIX Kommandos, mit denen zu bestimmten
Zeiten Befehle gestartet werden sollen. Hierzu gehort
at Zeitangabe [Kommando]
[Kommando(s)]
I
I
Auszufuhrende Kommandos
konnen in eigenen Zeilen angageben werden. Ende mil <ClrI+d>
Eingabe mit HHMM (4 Ziffem)
z.B. 2330 (am selben Tag urn 23:30 Uhr)
at - Kommando, urn Befehle zu bestimmten Zeiten zu starten
222
3.5.10
Sic her ist sic her!
Das at-Kommando ist nicht auf allen Systemen fUr aile Benutzer verfOgbar. Sehen wir uns trotzdem kurz die Funktionen von at in einem Beispiel an:
$ at 2330
tar -cvf Julsich.tar .
<Ctrl +d>
Job monika.345678 wird am Mittwoch 31 Jul 2330 ausgefOhrt
I
at-Job-Nummer
$
Bild 3-148: Beispiel Kommando mit at zu einer bestimmten Zeit
ausfOhren zu lassen
Bereits gestartete at-Jobs kennen nachtraglich kontrolliert oder wieder gelescht werden. Hierzu wird das at-Kommando mit Optionen angegeben:
at
[-r Jobnummer] [-Ii Jobnummer]
remove
loscht den
angegebenen at-Job
I
I display
zeigt den Inhalt des at-Jobs an
list
zeigt aile noch vorhandenen at-Jobs an
at [rid] - Kommando, um at-Jobs anzuzeigen oder zu loschen
FOr den Systemverwalter gibt es noch das Kommando crontab, das eine gesamte Tabelle abarbeitet (welches Kommando an welchen Tagen um wieviel Uhr
gestartet werden soli).
Mit crontab kennen Sicherungen automatisch ablaufen. Der Systemverwalter
kann hier z. B. auch steuern, daB jeden Tag nachts um 3:00 Uhr die Sicherung
von bestimmten Platten oder Dateien erfolgen soil. Die nachfolgende Tabelle
enthalt Vorschlage fUr einen System-Sicherungsplan. Hierin ist, um einen Gesamteindruck zu erhalten, auch die Sicherung der System software mit aufgefUhrt, obwohl sie in diesem Buch nicht beschrieben wird.
Worauf gesichert werden soli, entscheidet letztlich, welche Gerate vorhanden sind
und wie groB die Datenmenge ist, die gesichert wird. Die Kapazitat von Streamern
reicht, wie zum Anfang dieses Kapitels erwahnt, von 60 MB bis 40 GB. Der Streamer ist sicher das am haufigsten verwendete Sicherungsmedium. Floppies dagegen kennen nur fUr geringe Datenmengen verwendet werden.
223
3
UNIX - praktisch angewandt
Doch was wann wie worauf gesichert wird und wie lange die Aufbewahrungszeit sein sollte oder muB, hangt von vielen Faktoren abo Jede Firma muB
letztlich ihr eigenes Sicherungskonzept erarbeiten. Hier einige Anregungen:
Was?
8emerkung
Wie lange aufbewahren
Original Systemsoftware UNIX
nach
Insta"ation
bis zur neuen Version danach ca. 1/2 Jahr
Backup der auf dem Rechner installierten und angepaBten System-Software
nach Insta"ation
wieoben
1.3
root- Oateisystem
monatlich
2 Monate
1.4
bestimmte verl:lnderte Systemdateien
(z.B. /etclpasswd u.a.)
UNIX-Systemsoftware
1
.-11.1
1.2
-
~
2
-
- -
2.1
2.2
-
-
I--
wOChentlich
---1
-<
I
Original-Software wie Oatenbanken, Textverarbeitung, Betriebswirtschaftliche Software
nach
Insta"ation
wie 1.1
Installierte und angepaBte
Software
nach
Insta"ation
wieoben
Zu~tzliche
-
monatlich
Spezifische Software-Verl:lnderungen
(z. B.Oatenbanken, t:>etriebsw. Software, wie SAP (meist mit eigenen Sicherungsprogrammen»
[ 2.4
--<
2 Wochen
Optionale Software -Pakete
. -2.3 Platten mit zu~tzlicher Software
Benutzerdaten allgemeln
3
3.1 Plattent:>ereiche der Benutzerdaten
-
-
---
tl:lglich/
wOchentlich
2 Wochen bzw. gesetzl.
Aufbewahrungspflicht
monatlich
zusatzlich
wOchentlich
12 Monate
4 Wochen
tl:lglich
14 Tage
~
-
tl:lglich verl:lnderte Benutzerdaten
Qnkremente"e Sicherung)
4
Spezl elle Dat en
4.1
z. B. eigene Software-Produktion, Dokumentation
nach Fertigste"ung - mit Versionspflege (evtl. spez. Versions-Software)
nach
Fertigste"ung
Teilbereiche - spezie"e Dokumentation
nach
Bedarf
nach
Bedarf
Finanzdaten
nach best. Abschliissen
gesetzl. Aufbewahrungspflicht
4.2
4.3
I
I
--I - r-
---
~d.
'"
~
2 Monate
3.2
_.
1 Ja: -
-~-~
-
Bild 3 -149: DenkanstOBe zu einem Sicherungsplan
224
~
Wann?
3.5.10
Sicher ist sicher!
Systemsoftware: Andert sich die Systemsoftware (z. B. durch eine neue Release, durch HinzufOgen weiterer Hardware etc.), muB die Originalsoftware u. U.
erneuert werden. Sie erhalten dann meist vom Hersteller ein neues Band. Sollten
Sie dagegen nur eine Erganzung zu den bisherigen Bandern oder dem entsprechenden Auslieferungsmedium erhalten haben, sind natOrlich beide Datentrager
aufzubewahren. Auf jeden Fall sollte die altere Version solange aufbewahrt werden, bis sich die neue Version als stabil gezeigt hat.
Benutzerdaten: Diesen Sicherungsplan k6nnen Sie analog fOr Ihre pers6nliche
Datensicherung verwenden. Bei groBen Systemen werden in der Regel samtliche Daten vom Systemverwalter gesichert. Bei kleineren Systemen obliegt die
Sicherung der Anwenderdaten den jeweiligen Benutzern. Sicherlich laBt sich
lange darOber diskutieren, wann, was, wie und worauf gesichert werden soli und
vor allem, wie lange die jeweiligen Sicherungen aufzubewahren sind.
Aufbewahrungsort: Generell sollten Sicherungen auf Datentrager vor Staub,
Schmutz, Feuchtigkeit, Feuer und magnetischen EinflOssen geschOtzt sein und
nur fOr Systemverwalter oder bestimmten Personen zuganglich sein - also gut
abgeschlossen z.8. in einem Schrank. FOr wichtige Dateien empfiehlt es sich,
die Sicherungsbander sogar in einen Tresor zu geben. Bei eigenen Produkten
(Software, Dokumentation etc.) ware als Aufbewahrungsort ein Banksafe nicht
verkehrt.
Allgemein: Der Sicherungsplan soli lediglich eine Anregung sein. Wie Sie Ihre
Sicherung einrichten, hangt zweifelsohne von der Wichtigkeit und Anderungshaufigkeit des Datenbestandes abo Doch nehmen Sie die Sicherung nicht auf die
leichte Schulter, fragen Sie nach, wie das Sicherungskonzept Ihrer Firma bzw.
Ihrer Abteilungsrechner aussieht.
Inkrementelle Sicherung: Sinnvoll ist z. 8., wahrend der Woche nur aile geanderten und neu angelegten Dateien zu sichern (inkrementelle Sicherung). Das
Kommando find bietet die M6glichkeit, aile Dateien anzuzeigen, die neuer als
eine bestimmte Datei sind. Wenn Sie also bei Ihrer Sicherung gleichzeitig eine
Datei anlegen, mit
date> sichlog
k6nnen Sie bei der nachsten inkrementellen Sicherung abfragen, welche Dateien neuer sind als das Modifikationsdatum von der Datei sich/og. Zusatzlich
k6nnen Sie selbst jeweils nachsehen, wann die letzte Sicherung durchgefOhrt
wurde (fag und Uhrzeit).
Wenn Sie sich vergewissert haben, daB Sie in Ihrem Home-Directory sind, geben Sie folgenden Kommandoaufruf fOr die inkrementelle Sicherung an:
find • -newer sichlog -print I cpio -ovB > Idev/rmtO
oder je nach Gerateauswahl z.B. auf die Floppy als Datentrager > IdevlfdO
225
3
UNIX - praktisch angewandt
oder falls Sie die Floppy vorab in das Dateisystem montiert haben:
cpio -pvmd Ziel-Directory
Nach dieser Sicherung mussen Sie die Datei sichlog mit dem neuem Sicherungsdatum uberschreiben, damit die nachste inkrementelle Sicherung erst ab
diesem Datum erfolgt:
date> sichlog
Da sich diese Kommandofolgen taglich wiederholen und dabei leicht Fehler getippt werden konnen, oder es vergessen wird, >sichlog< neu zu erstellen, wird es
fUr Sie hochste Zeit zu lernen, wie Sie eigene Prozeduren schreiben konnen.
Beispiele von Shell-Prozeduren fUr die tagliche und wochentliche Sicherung finden Sie im KapiteI3.7.2 auf Seite 259. Doch gonnen Sie sich erstmal eine kleine
Ruhepause.
226
Sicher ist sicher!
3.5.11
~~--------------~----~--~--~~~-
3.5.11 Austausch yon Daten mit dem PC
Bei dem vorigen Abschnitt hatten wir uns nur auf UNIX-Rechner bezogen. In der
Praxis zeigt sich jedoch mehr und mehr, daB in einer Firma nicht nur eine Rechner-Plattform genutzt wird, sondern verschiedene. In erster Linie aus KostengrOnden hat sich der PC (Personal Computer) mehr und mehr durchgesetzt. Daten mOssen also entsprechend ausgetauscht werden konnen. Die
komfortabelste Art ist sicher Ober das Netz, z. B. mit ftp (siehe auch Abschnitt
3.6.4 auf Seite 245), doch dies kann u. U. manchmal aufwendiger sein als Ober
einen Datentrager. Ais Datentrager bieten sich die fOr den PC bereits vorformatierten Floppies an. Fast jeder UNIX-Rechner kann diese Floppies lesen, beschreiben und auch formatieren. Um DOS-Floppies zu bearbeiten, wird die
Floppy lediglich in das Laufwerk geschoben. Die Kommandos sind leider nicht
auf allen Rechner gleich. Informieren Sie sich deshalb bei Ihrem Systemverwalter. Die gebrauchlichsten Kommandos sind:
dosdir
dosdir - Kommando, um sich den Inhalt eines Directories auf einer
DOS-Yorformatierten Floppy anzusehen
dosread DOS-Datei(en) UNIX-Datei (oder Directory)
dosread - Kommando, um DOS-Dateien auf einen UNIX-Rechner
zu kopieren
doswrite UNIX-Datei(en) DOS-Datei (oder -Directory)
doswrite - Kommando, um UNIX-Dateien auf eine DOS-Floppy
zu kopieren
Sollten Sie keine DOS-Floppy zur Hand haben, konnen Sie eine unformatierte
oder UNIX-Floppy neuformatieren:
dosformat
dosformat - Kommando, um eine Floppy im DOS-Format zu formatieren
Diese Kommandos sprechen das Standard-Floppy-Laufwerk an und schreiben/lesen dort im DOS-Format. Die Geratedatei wird bei diesen Kommandos
227
3
UNIX - praktisch angewandt
------------------------~--
nicht angegeben. Hier ein Beispiel, wie Monika von einer DOS-Floppy Textdateien in Ihr Directory Texte kopiert:
$pwd
lusrlkurs/monikafTexte
$ dosdir ________
Inhaltsverzeichnis der Floppy
Kopieren einer Datei in das
aktuelle UNIX-Directory mit
neuem Namen
gruSS. txt
text1.txt
text2.txt
$ dosread gruss_txt Dostext
$ dosread t*." .
~
Kopieren von mehreren Dateien, wobei die bisherigen
Namen beibehalten werden
Bild 3 - 150: Beispiel Kopieren von DOS-Dateien nach UNIX
l>
Beachten Sie, daB Metazeichen fOr DOS-Dateien nur fOr den 8-stelligen Namen gelten, fOr die durch den Punkt getrennte Extension mOssen die Metazeichen getrennt angegeben werden (z. B. t*.*).
Ein weiteres Beispiel. Mochte Monika nun umgekehrt aus Ihrem Directory z. B.
die Datei Uebungenlueb1 auf ihrem PC zu Hause weiterbearbeiten, also von
UNIX eine Datei auf die DOS-Floppy kopieren, gibt sie ein:
$ cd ../Uebungen
$ doswrite ueb1 ueb1.txt
$ dosdir
gruss.txt
text 1. txt ~
Ergllnzte Datei von UNIX
text2.txt
ueb 1. txt
Bild 3-151: Beispiel Kopieren von UNIX auf DOS-Floppy
l>
228
Achten Sie beim Kopieren von UNIX-Dateien nach DOS-Dateien darauf, daB
Sie unter DOS nur maximal achtstellige Namen vergeben dOrfen und eine
entsprechende Endung, z.B. >.txt, anhangen.
Sicher ist sicher!
3.5.11
Noch ein paar Tips fOr den Austausch zwischen PC und UNIX-Rechnern
I>
I>
Wenn Sie formatierten Text aus Textverarbeitungsprogrammen von UNIX fOr
ein anderes Programm auf DOS Obertragen wollen (oder umgekehrt z.B. von
MS-Words nach Applixware), empfiehlt es sich, das Austauschformat rtf
(rich text format) hierfOr zu verwenden. Es ist bei den meisten Textverarbeitungsprogrammen verfOgbar. Dieses Format hat den Vorteil, die unterschiedlichen Darstellungen der Umlaute zwischen DOS, UNIX und Macintosh richtig
zu interpretieren und die Textformatierungen (Fettschrift, kursiv, Absatze,
Kopfzeilen etc.) zu konvertieren (in ein anderes Format zu ubertragen).
Analog gilt fOr Kalkulations-Software als Austauschformat (z.B. von EXCEL
nach Applixware oder Lotus bzw. umgekehrt) das SYLK-Format, abgekOrzt
mit .slk. Es Obertragt die unterschiedlichen Aufzeichnungen der Spreadsheet-Programme in das jeweils richtige Format.
Da die Floppy im Beispiel Bild 3-151 auf Seite 228 nur als Datentrager genutzt
wird, also nicht im Dateisystem eingehangt wurde, kann sie einfach wieder entfernt werden. Bei manchen Systemen gibt es, um die Floppy zu entfernen, eigene Kommandos (z. B. bei Sun - eject).
Auf einigen Systemen werden DOS-Floppies auch Ober den Dateimanager automatisch erkannt, und die Dateien k6nnen dann Ober Drag and Drop' kopiert werden (z. B. bei Sun Open Win im Dateimanager und hier im Menu File -t Check
for Floppy) . Ober eine Schaltflache, auf der ein entsprechender Hinweis steht,
(z.B. eject Floppy) wird dann gesteuert, daB die Floppy wieder ausgeworfen
wird.
•
Drag und Drop bedeutet: mit der Maus die Datei(en) anwahlen und in ein anderes Fenster ziehen
229
3
UNIX - praktiseh angewandt
3.5.12 Zusammenfassung der Kommandos
Kommandoeingabe
Funktion
r- .
mount Idev/Gerat \
mont/eren
Directory mit absolutem Pfadnamen Montiert Platten/Floppies
Formatierte und mit einem UNIX-Dateisystem versehene Platten/Floppies werden in den Gesamtdateibaum unter dem
angegebenen Directory eingehangt
umount Idev/Geratename
mt [-rew] [-fst] [n]
I
'Wieder abmontieren
Hangt montierte Dateisysteme wiederab
magnetic tape
Kontrollfunktionen
-rew rewind
Spult um n Dateisets zuruck
-fsf files forward
Spult um n Dateisets vor
Ausgabe Dateiliste I epio \
-p[dmuv] Ziel-Directory
Beispiel:
cd /usr/kurslhans
find. -print I epio -pvmd \
/Sicherunglhans
Unler DOS:
230
copy
copy input output
-p pass - weiterreichen
Kopiert Dateien von Platte zu Platte
Uber eine Dateiliste, z. B. mit
find . -print
werden die zu kopierenden Dateien
ubergeben
-d directory
Unter-Directories werden angelegt, falls
sie noch nicht vorhanden sind
-m modification date
Die kopierte Datei erhalt das Datum der
Originaldatei
-u unconditional
Die kopierte Datei uberschreibt evtl.
schon vorhandene Dateien. Dateien
werden sonst nur dann uberschrieben,
wenn deren Modifikationsdatum alter ist
-v verbose - geschwatzig
Aile ausgefuhrten Kopien werden angezeigt
Aile Dateien des aktuellen Directories
werden mit gleichem Namen in das
D;rect"", !S;cherunglhans kO~
3.5.12
Sieher ist sieher!
Kommandoeingabe
Funktion
Ausgabe Datei/iste I epio -o[vB] \
> Gerate- oder Archivdatei
copy input output - Ausgabe
Kopiert Dateien auf einen Datentrager oder in eine Arehivdatei
Aehtung: Ausgabe-Umleitungszeichen
> angeben!
-0 output
kopiert die als Dateiliste Obergebenen
Dateien und Unter-Directories auf das
angegebene Gerat oder in die Archivdatei
-v verbose - geschwatzig
Aile ausgefOhrten Kopien werden angezeigt
Beispiel:
find. -print I epio -ovB > /dev/mtO -B block
Blockungsfaktor fUr Magnetband
Unter DO : xcopy
Aile Dateien vom aktuellen Directory
werden auf Magnetband geschrieben
Ci)iO -i[dmuv] [Dateien] \
< Gerat- oder Archivdatei
Unter DOS:
xcoPY.
copy input output - Einlesen
liest Dateien aus einem mit epio erstellten Datenarehiv (Datei oder Datentrager) zUrUek
Aehtung! Eingabe-Umleitungszeichen
< angegeben!
-i input
Einlesen/ZurUckschreiben der Sicherung
-d directory
Unter-Directories werden angelegt, falls
sie noch nicht vorhanden sind
-m modification date
Die kopierte Datei erhalt das Datum der
Originaldatei
-u unconditional
I
Die kopierte Datei Oberschreibt evtl.
schon vorhandene Dateien, sonst werden Dateien nur dann Oberschrieben,
wenn deren Modifikationsdatum alter ist
-v verbose - geschwatzig
Aile ausgefUhrten Kopien werden angezeigt
231
3
UNIX - praktisch angewandt
Kommandoeingabe
tar -c[bhvf Gerat-/Dateiname]
Start-Directory
Beispiel:
tar -cvf /tmp/Sich.tar.
tar -t[vf Gerat-/Dateiname]
tar -x[mvf Gerat-/Dateiname] [Datei(en)]
Beispiel:
tar -xvml /tmp/tarSich .Itext1
232
Funktion
~
.
--:-:--------~---
tape archive -c create
Sichert Dateien auf Magnetband oder
in eine Archivdatei
-8 Block
Blockungsfaktor fUr Magnetband
-h verfolgt aile symbolischen Links und
kopiert die dort aufgefundenen Dateien
-v verbose
aile ausgefUhrten Kopien werden angezeigt
-f file
Das direkt nachfolgende Wort ist die Bezeichnung fUr das Gerat oder der Name
fUr die Archivdatei
(f deshalb stets als letzte Option eingeben)
Kopiert aile Dateien des aktuellen Directories ( • )in die Archivdatei Itmp/Sich. tar
Die Datei Itmp/Sich.tar wird automatisch neu angelegt bzw. eine bereits vorhanden uberschrieben
-t table
Es wird nur ein Inhaltsverzeichnis des
Archivs ausgegeben
-v verbose
zeigt zusatzlich aile Attribute der Dateien an
tape archive -x extract extrahieren
Liest Dateien von einem mit tar erstellten Datentrager oder einer Archivdatei zUrUck
-m mOdify
die zUrUckgelesenen Dateien erhalten
das Original datum (nicht das aktuelle
Datum)
-v verbose
aile ausgefUhrten Kopien werden angezeigt
-I file
Das direkt nachfolgende Wort
ist die Bezeichnung fUr das Gerat oder
der Name fUr die Archivdatei
Kopiert aus der Archivdatei die Datei
./text1 zUrUck ins aktuelle Directory
Sicher ist sicher!
Kommandoeingabe
at [Zeit [Datum] ] [Kommando]
Beispiel:
at 18:00 write hans < Ende
Weitere Option en:
at [-~ (-r Jobnummer]
dosdir
Unter DO:
FOhrt Kommandos zu bestimmten Zeiten aus
Um 18:00 wird "hans" die Nachricht, die
in der Datei Ende steht, geschickt
-I list listet vorhandene at-Jobs
-r remove loscht den at-Job
DOS Directory
Zeigt den Inhatt eines DOS-Directories auf einer PC-Floppy
DOS Floppy formatieren
Formatiert eine DOS-Floppy
ronn t
dosread DOS-Datei UNIX-Datei
Unter DO:
Funktion
at - zu bestimmter Zeit
dir
dosformat
Unter DOS:
3.5.12
DOS Datei lesen
Kopiert eine DOS-Datei nach UNIX
copy
doswrite UNiX-Datei DOS-Datei
DOS Datei schreiben
Kopiert eine UNIX-Datei auf eine
DOS-Floppy
233
3
234
UNIX - praktisch angewandt
3.6 Wissenswertes uber Netze
In diesem Kapitel wollen wir nicht ins, sondern ans Netz
gehen, nicht gefangen werden, sondern neue Verbindungen
knDpfen. Das Thema Netzwerke fUlIt BDcherregale! Was sollten Sie als UNIX-An wender, Dber Netze wissen? Nur das
Wichtigste ist in diesem Kapitel kurz zusammengestellt. Damit
Sie die Vorteile von UNIX im Netz praktisch nutzen konnen.
Die einzelnen Themen:
3.6.1
Was ist ein Netz - ein paar Grundinformationen
3.6.2
Wie wird eine Verbindung hergestellt?
3.6.3
Welche Netzwerk-Kommandos sind fOr Sie
interessant?
3.6.4
Wie arbeiten Sie mit ftp?
3.6.5
Zusammenfassung der Kommandos
235
3
UNIX - praktisch angewandt
3.6.1 Was ist ein Netz - ein paar Grundinformationen
Was fallt Ihnen spontan zum Thema Netz ein? Vielleicht Fischernetz, Einkaufsnetz, Haarnetz, Spinnennetz - World Wide Web? Aile haben etwas gemeinsam,
sie sind >geknOpftc oder >verwoben c. 1m Bild 3-2 (M6gliche Terminalverbindungen) auf Seite 35 sahen Sie eine Netzverbindung, wobei hier Ober Kabel und ein
kleines Kastchen die Verbindung zu anderen Rechnern dargestellt war. Um
Rechner miteinander zu verbinden, gibt es je nach Art des Netzes mehrere M6glichkeiten. Zum einen ben6tigen wir hardwaremaBig eine Verbindung und zum
anderen entsprechende Software, die den Austausch zwischen den Rechnern
steuert.
Benotigte Hardware
o
Kabel, wie z. B. Terminalleitungen (V-24 reicht fOr uucp aus -unix to unix copy)
oder Ethernet-Kabel bzw. auch Cheapernet-Kabel (meist die Grundlage fOr
TCP/IP) mit dem entsprechenden Controller-Boards (z. B. Ethernet-Karte).
o
Ober gr6Bere Strecken mOssen diese Leitungen verstarkt, OberbrOckt oder neu
aufbereitet werden, man spricht hier auch von Repeater, Bridge und Router.
o
Wenn Verbindungen an andere Netze angeschlossen werden (z.B. ans Telefonnetz), ben6tigt man ein Modem (Modulator Demodulator - Umwandlung von digital auf analog und umgekehrt).
Benotigte Software
Hier unterscheidet man zwischen der Protokoll-Software, die den Austausch
von Informationen zwischen den Rechnern steuert, und den Diensten, die dem
Benutzer angeboten werden.
ODie einfachste Protokoll-Software Ober Terminal-Leitungen ist uuep, siehe
auch Seite 22.
236
o
Ais Protokoll-Software wird unter UNIX am haufigsten TCP/IP (Transmission
Control Protocol/Internet Protoco~ eingesetzt.
o
An Diensten steht fOr TCP/IP u. a. zur VerfOgung:
•
rep (remote copy), um Dateien im Netz zu kopieren
•
rsh (remote shell), um eine Shell zur AusfOhrung anderer Programme
auf einem entfernten Rechner im Netz zu starten
•
rlogin (remote login) oder tel net (telecommunication netware),
um sich an einem entfernten Rechner anzumelden
•
ftp (file transfer protoco~, um Dateien auszutauschen
AuBer dem UNIX-Netz gibt es eine Reihe anderer Netze, die herstellerspezifisch
sind: Hierzu geh6ren u.a. SNA von IBM, DNA oder DECNet von DEC oder
TRANSDATA von Siemens (SNI). Die meisten dieser Netze unterstOtzen die Einbindung von Netzwerkknoten mittels TCP/IP. Um nun herstelierObergreifende
unabhangige Kommunikation von unterschiedlichen Rechnerplattformen zu erm6glichen, wurden Standards von ISO (International Standards Organization),
3.6.1
Wissenswertes Ober Netze
einem internationalen NormungsausschuB, entwickelt. Die einzelnen Voraussetzungen und Dienste werden im sog. OSI-Model (Open Systems Interconnection) zusammengefaBt und in 7 Schichten (Layers) unterteilt. Ais Anwender ist es
zwar gut zu wissen, daB Standards existieren und gepflegt werden, aber letztlich
mOssen Sie die Zuordnung der einzelnen Schichten nicht kennen. Nachstehen de Tabelle dient nur als Hintergrundinformation (but irs nice to know):
Nr.
7
6
5
Schichten-Bezeichnung - Funktion
Application - Anwendungsschicht
Die hochste Ebene, die den Austausch zwischen Program men erlaubt
XAOOIX.SOO
3
Network - Vermittlungsschicht
Um eine Verbindung aufzubauen, sind Teilverbindungen notwendig. Diese werden hier verknOpft und die Daten >verpackt. (Paketierung)
>-
1/1
1/1
Dl
c:
:::J
"t:I
c:
Q)
~
c:
<
....
Q)
:J
o
a:
Data Link - Sicherungsschicht
Diese Schicht ist fOr die fehlerfreie Obertragung zustandig. Hier werden die Fehlerkontrollmechanismen und Zugangsverfahren
festgelegt.
PhysicalPhysikalische Bit-Ubertragungsschicht
Es ist die Schnittstelle zum Obertragunsmedium und basiert auf binaren Informationen.
Sie sendet und empfangt die Signale, die Ober
das physikalische Medium (z. B. Modem)
geschickt werden.
Bild 3 -152: OS/-Schichtenmodel
E
Q)
1/1
Session Kommunikations-Steuerungsschicht
Sie dient der Steuerung und Koordinierung der
Kommunikation zwischen den Prozessen beider Rechner
Transport - Transportschicht
Hier erfolgt der Auf- und Abbau einer Verbindung zwischen den zwei Rechnern und die
Umsetzung der logischen Namen in Netzadressen. Es ist zusatzlich die Schnittstelle
zwischen Anwendungssystem (S-7) und dem
Transportsystem (1-3)
1
ftp. rlogin,
tel net, Teletext,
Presentation - Datendarstellungschicht
Hier werden die Daten entsprechend .ausgepackt., Codekonvertierung, Kompression
4
2
Zuordnung
Q)
Cl
"0
.t:
co
....
Q)
w
~
n;
o
a.
Q)
o
~
Q)
a:
237
3
UNIX - praktisch angewandt
3.6.2 Wie wird eine Verbindung hergestellt?
Ais UNIX-Anwender konnen Sie davon ausgehen, wenn Ihr Rechner im Netz arbeitet, daB Ihr Systemverwalter die n6tigen Voraussetzungen geschaffen hat.
Dazu geh6rt u.a., daB er Rechnernamen mit den zugeh6rigen IP-Adressen verknOpft, dies wird z. B. in der Datei letelhosts eingetragen. Somit ist es fOr Sie
nicht notwendig, die IP-Adresse eines Rechners zu kennen, sondern der Rechnername genOgt. Eine typische IP-Adresse ist z. B. '150.270.115.7<. TCP/IP muB
installiert und die Startroutinen mOssen eingetragen sein. Damit nicht jeder, der
die IP-Adresse eines Rechners ken nt, Zugang zu dem Rechner Ober Netz erhalt,
hat der Systemverwalter mehrere M6glichkeiten, ein System vor fremden Zugriff
Ober Netz zu schOtzen. Eine M6glichkeit ist, in der Datei letclhosts.equ;v einzutragen, welche Rechner, Benutzer und Benutzergruppen Ober Netz mit den
Kommandos rlogin oder telnet, rsh und rcp arbeiten dOrfen, bzw. davon ausgeschlossen sind. Zusatzlich kann bei den einzelnen Benutzern im Home-Directory
in der Datei .rhosts eingetragen werden, wer von welchem Rechner zu diesem
login-Directory Zugang bzw. keinen Zugang hat.
3.6.3 Welehe Netzwerk-Kommandos sind fOr Sie interessant?
Um die Namen der Rechner, zu denen Sie direkten Kontakt aufnehmen m6chten,
zu erfahren, k6nnen Sie sich mit
pg letc/hosts
den Inhalt der Datei anzeigen lassen. Wollen Sie wissen, ob Sie einen bestimmten Rechner momentan erreichen k6nnen, geben Sie ein
ping Rechnername
ping - Kommando, um zu kontrollieren, ob andere Rechner
momentan erreichbar sind
Das Kommando ping gibt Ihnen dann eine entsprechende Information, z. B.
$ ping asterix
asterix is alive
$ ping idefix
no answer from idefix
$
238
Bild 3 -153: Beispiel ping - Erreichbarkeit anderer Rechner kontrollieren
3.6.3
Wissenswertes uber Netze
Wissen Sie den Namen Ihres Rechners nicht, geben Sie ein:
hostname
hostname - Kommando, um den eigenen Rechnername zu erfragen
Um Nachrichten an Benutzer anderer Rechner zu schicken, haben wir ja bereits
das Kommando mail kennengelernt (siehe auch Seite 73). Hier wurde der Benutzername zusammen mit dem Rechnernamen, verbunden mit @, angegeben:
mail benutzemame@Rechnemame
Mit diesem Kommando konnen auch Rechner weltweit erreicht werden. Die
Post wird, wie wir schon gehort haben, z. B. Ober sog. Provider weitergeleitet.
D. h. Sie konnen auch einemail an Benutzer anderer Netze wie Z. B. an CompuServe' schicken. Viele Systeme bieten zu diesem mail-Kommando komfortablere Mail-Software an, die es auch erlaubt, Dateien mit anzuhangen.
Doch auch ohne diese Zusatzsoftware konnen Sie Dateien von oder an entfernte
Rechner kopieren, wenn Sie hierfOr eine Berechtigung haben. U.a. sind hierfOr
die Dateien letclhost.equiv und falls vorhanden .rhosts in dem jeweiligen
Home-Directory des Benutzers auf dem entfernten Rechner maBgebend. Bei
groBen Firmen ist es abteilungsweit oder gar firmenweit so geregelt, daB Sie
sich mit Ihrem Benutzernamen auch bei anderen Rechnern innerhalb der Firma
anmelden konnen und demzufolge auch die nachfolgenden Kommandos verwenden dOrfen.
rep entfernter_Rechnername:Datei(en) DateCoder_Directory_(Iokal)
oder
rep Dateiname(n)jlokalj entfemter Rechnemame:DateCoder_Directory
rcp - Kommando, um Dateien von oder an entfernte Rechner
zu kopieren
Bei rep (remote copy) mOssen Sie allerdings die Directory-Strukturen des anderen Rechners kennen, wissen, wo die Datei, die Sie kopieren wollen, zu finden
,
Obrigens, wenn Sie mir eine e-mail schicken wollen,
100712.1411 @CompuServe.com
Sie erreichen mich unter
239
3
UNIX - praktisch angewandt
ist, bzw. wohin die Datei kopiert werden soil. Selbstverstandlich mOssen Sie in
dem dafOr vorgesehenen Directory Schreibberechtigung haben. Wissen Sie
noch, welches Directory Ihnen in solchen Fallen immer erlaubt, Dateien neu anzulegen (wenn auch meist nur temporar)? Der Hinweis temporar hat Sie sicherlich auf den richtigen Namen gebracht: das Directory /tmp.
[> Doch Vorsicht, auf vielen Systemen werden nachts oder spatestens beim
nachsten Neustart des Rechners aile Dateien im Directory /tmp gel6scht.
Nehmen wir an, Monika arbeitet auf dem Rechner idefix. Auf dem Rechner asterix ist fOr aile Benutzer des Rechners idefix die Zugriffsberechtigung erteilt. Monika k6nnte sich dann die Datei protokol/ ,abholen<. Die Datei protokol/ wurde ihr
zuvor von einem anderen Benutzer, der ebenfalls Erlaubnis hat, auf den Rechner
asterix zuzugreifen, in dem Directory /tmp auf asterix bereitgelegt. Dieses Verfahren, nur Ober einen bestimmten Rechner Dateien Ober Netz auszutauschen,
wird aus SicherheitsgrOnden oft angewendet. 1m Internet ist es auch Oblich, spezielle Directories auf den Netz-Rechner zum Austausch von Dateien bereitzustellen. Diese Directories sind z. B. /pub/incoming (public - 6ffentlich, eingehende Sendungen) und /pub/outgoing. Die Zugriffsrechte sind aus
SicherheitsgrOnden meist so gesetzt, daB Sie unter incoming nur Dateien ablegen dOrfen (Schreibrecht -wx) und bei outgoing Dateien nur lesen und somit kopieren dOrfen (Leseerlaubnis r-x).
Rechner malefix
Benutzer Xoo7
protokoll
Rechner idefix
/usrlkurs/monika
protokoll
Rechner asterix
Directory Itmp
protokoll
$ rep asterix:/tmp/protokoll
+
fremder Rechner
t
aktuelles Directory
$ rep protokoll asterix:ltmp
•
Datei im
aktuellen Directory
r
fremder Rechner
BNd 3 -154: Beispiel rcp - Kopieren von und auf fremde Rechner
240
Apropos Rechnername. Hier muB ich oft schmunzeln, wenn ich bei verschiedenen Firmen im Netz arbeite. Innerhalb einer Abteilung sind Namen fOr Rechner
vergeben, die auch ein biBchen die Interessen der Mitarbeiter widerspiegeln. So
z. B. wurden die Rechner nach bekannten Komponisten benannt, es gab also
Rechner mozart, bach, vivaldi, schubert, oder nach Comicfiguren: asterix, idefix,
obelix usw., andere hatten Sternbilder und Planeten gewahlt oder einfach nur
3.6.3
Wissenswertes tiber Netze
die Farbpalette (rot, blau, gelb usw.) verwendet. Wie lauten die Rechner in Ihrer
Firma? Wissen Sie noch, wie Sie dies herausfinden?
Vernetzte Rechner bieten neben diesem zur netten Arbeitsatmosphare beitragenden personlichen Touch auch eine Reihe von Vorteilen. So konnen Hardund Software auch von anderen Rechnern genutzt werden und auf gleiche Dateien (z. B. Datenbanken) zugegriffen werden.
Wollen Sie z. B. Ihre Dateien auf Streamer sichern, aber an Ihrem Rechner befindet sich hierfur kein Laufwerk, so konnen Sie auf einen anderen Rechner mit
Hilfe von rsh (remote shell) z. B. die Ausgabe von tar umleiten. Um dann auf
den Streamer zu schreiben, wird ein allerdings sehr getahrliches Kommando eingesetzt, das Kopien von einem Gerat zum anderen Gerat durchfUhrt: dd (device
to device). Seien Sie also vorsichtig.
[> Das Kommando dd ist deshalb so gefahrlich, weil es radikal Gerate (devices)
uberschreibt (soweit kein Schreibschutz dies verhindert). Speziell Systemverwalter konnten mit dd durch einen Fehler (falsche Ausgabe 0=) wichtige
Platten uberschreiben!
Wir benotigen, um auf ein Gerat eines entfernten Rechners zu schreiben, also
drei verschiedene Kommandos:
1.
das uns bereits bekannte Kommando tar (siehe auch Seite 219), das in
diesem Fall nicht auf ein Gerat oder eine Datei schreiben soli, sondern die
Ausgabe an eine Pipe umleitet. Statt eines Dateinamens wird hier dann ein
,-< eingegeben.
2.
das Kommando rsh, das ebenfalls voraussetzt, daB Sie eine Berechtigung
haben, auf den entfernten Rechner zuzugreifen (/etclhosts.equiv bzw .
.rhosts im jeweiligen Home-Directory des Benutzers auf dem entfernten
Rechner)
3.
und das Kommando dd
Neu sind fUr uns die Kommandos rsh und dd:
rsh Rechnemame [Kommando oder Date/]
"I
I
I
remote shell
I
Kommando, das ausgefOhrt werden 5011.
Wird eine Datei angegeben, nimmt die Shell an,
daB es sich hierbei urn ein Shellscript handelt.
wenn nicht, werden Fehlermeldungen ausgegeben
rsh - Kommando, um auf einem entfernten Rechner eine Shell zu starten
241
3
UNIX - praktisch angewandt
Nur kurz das N6tigste yom Kommando dd fOr die Umleitung von tar:
id
[if=eingabe] [of=ausgabe] optionr wert
z. B.
device to devici
bL64
blocksize=64 KB (Kilobyte)
output f ile
Angabe der Datei oder des Gerates
z. B. Idev/rmtlO
input file
Dateiname oder Gerat. Erfolgt die Eingabe wie in unserer Anwendung uber die Pipe, wird kein input file angegeben
dd - Kommando, um Dateien oder gesamte Platten 1:1 zu kopieren
Ausgabe wird uber die Pipe an die rsh ubergeben, die dann mit dem
Kommando dd auf den Streamer am entfemten Rechner schreibt
. I rsh rechnerB dd of=/dev/rmUO bs=64k
I
I
blocks;ze=64 KB (Kilobyte)
output file
Angabe der Datei oder des Gerates
z. B. IdevlrmtlO
samtliche Dateien des aktuellen Directories werden kopiert
Stall eines Dateinamens wird hier ,-, angegeben, wenn die Ausgabe umgeleitet wird.
Kurz zur Wiederholung:
create - erstellen, h - hard/inks verfolgen und kopieren
vemose - geschwalzig, anzeigen der erfolgten Kopien
Bild 3 -155: Beispiel Ausgabe von tar mit rsh und dd auf ein Gerat im Netz
Sind in einer Firma mehrere Rechner vernetzt, so werden bestimmte Systemverwalterdateien gemeinsam auf einem Server gehalten. Die Pflege und Verwaltung
kann Ober das Program NIS (Network Information Service) erfolgen. Mit NIS
werden z. B. innerhalb eines Netzes aile Benutzernamen einheitlich gefOhrt. Sie
k6nnen sich dann in der Regel unter Ihrem Benutzernamen auf einem entfernten
Rechner anmelden. Hierzu gibt es zwei Kommandos, die fast die gleichen Funktionen haben (sie sind aus den unterschiedlichen UNIX-Entwicklungen entstanden): telnet oder rlogin:
242
3.6.3
Wissenswertes uber Netze
telnet [Rechnername]
Wird beim Aufruf kein Rechnemame mit angegeben. kann mit den Kommandos
open Rechnername
die Verbindung aufgebaut werden. mit
close
die Verbindung zu dem Rechner abgebrochen werden
?
geben Sie ein Fragezeichen ein. erhalten Sie die moglichen
Kommandos angezeigt
Das Programm telnet kann beendet werden mit
quit oder <CTRL + d>
telnet - Kommando, um sich an einem entfernten Rechner anzumelden
rlogin [-I Loginname] [Rechnername]
I
remote login
I
I login -
I
Mit -I wird der Login-Name mit angegeben
Wird beim Aufruf kein Rechnemame mit angegeben. kann mit den Kommandos
open Rechnername
die Verbindung aufgebaut werden. mit
close
die Verbindung zu dem Rechner abgebrochen werden
Das Programm rlogin kann beendet werden mit
exit oder <CTRL + d>
rlogin - Kommando, um sich an einem entfernten Rechner anzumelden
In der Regel werden mit NIS bzw. Ober NFS (Network File System) aile Benutzerdaten. also auch Ihr Home-Directory auf einem eigenen Rechner (File-Server)
gefUhrt. Mit NFS werden Dateibaume eines anderen Systems im lokalen Dateisystem eingehangt (z. B. Ihr Home-Directory auf dem File-Server in das Dateisystem Ihres lokalen Rechners bzw. auf dem Rechner. auf dem Sie sich anmelden). Das EinMngen von Dateibaumen darf in der Regel nur durch den
Systemverwalter erfolgen (fetc/mount). Sie arbeiten dann also immer mit Ihren
Dateien, obwohl Sie sich auf einem anderen Rechner mit telnet oder rlogin angemeldet haben. Dies hat den Vorteil. daB Sie. z. B. auf einem dort verfOgbaren
Streamer mit tar direkt zugreifen k6nnen. Mit den Kommandos rlogin oder telnet
k6nnen Sie nach erfolgreicher Verbindung und Anmeldung aile UNIX-Kommandos aufrufen. wie Sie es bisher bei der direkten Eingabe an Ihrem Terminal gewohnt waren. Allerdings muB. um mit einer grafischen Oberflache zu arbeiten,
zusatzlich der Variablen DISPLAY der Name des Rechners, an dem Sie sitzen.
zugewiesen werden, z.B. DISPLAY=asterix:O.O; export DISPLAY (fOr die
Bourne- oder Korn-Shell) und setenv DISPLAY asterix:O.O (fOr die C-Shell)
243
3
UNIX - praktisch angewandt
Sie mOssen, um auf einem entfernten Rechner arbeiten zu kennen, einen dort
gefOhrten Benutzernamen und das PaBwort dazu wissen. Sie werden bei beiden Kommandos rlogin und telnet danach gefragt. Auch bei diesen beiden Kommandos wird die Zugriffsberechtigung Ober die Dateien letclhosts.equiv und
soweit vorhanden .rhosts in dem jeweiligen Home-Directory des Benutzers auf
dem entfernten Rechner geprOft. Erst wenn die Erlaubnis vorliegt und bei richtiger Eingabe des Passworts, kennen Sie auf dem entfernten Rechner arbeiten.
Wenn netzweit die gleiche Benutzerkennung, z. B. Ober NlS, eingerichtet ist,
kann die Abfrage der Passwerter entfallen. Ais Bereitzeichen der Shell wird bei
telnet der Rechnername angezeigt.
Eine Sitzung an einem entfernten Rechner, hier nur um Datum und Uhrzeit zu
kontrollieren, kennte dann wie folgt aussehen:
$ telnet asterix
asterix> trying 150.270.115.7
connected to asterix
login: monika
Password:
PaBwort nicht sichtbar
Last login: rue Jul 9 13:33 from asterix
asterix> date u+%d. %h % T"
to. Jul 15;20:03
asterix> exit
oder <CTRL + d>
connection closed by foreign host
$
wieder zurUck am eigenen Rechner
Bild 3 - 156: Beispiel Anmelden an einem entfemten Rechner mit telnet
Wenn Sie oft Ober Netz an anderen UNIX-Rechnern arbeiten, empfiehlt es sich,
das Bereitzeichen Ihrer Shell generell mit dem Rechnernamen zu erganzen. Wie
Sie Ihr Bereitzeichen abandern kennen, erfahren Sie etwas spater im Kapitel
3.8.6 auf Seite 316.
Ein sehr wichtiges Kommando, um netzweit Daten auszutauschen, ist ftp (file
transfer protocol). Mit diesem Kommando kennen Sie Verbindungen auch zu
anderen Rechnerplattformen (wie DOS, Macintosh oder zu Mainframes) knOpfen. Es ist ein komfortables Kommando, um auf Dateien von einem entfernten
Rechner zuzugreifen, Dateien zu kopieren oder auf den entfernten Rechner zu
Obertragen.
244
Wissenswertes uber Netze
3.6.3
3.6.4 Wie arbeiten Sie mit ftp?
Auch fOr dieses Kommando benetigen Sie eine Benutzerkennung und ein
PaBwort. Manche Herstellerfirmen bieten allerdings die Meglichkeit, sich als
,Gast, anzumelden. Vielleicht haben Sie in Fachzeitschriften schon ab und zu
den Hinweis gelesen, daB Updates oder Informationen mit ftp abgerufen werden
kennen, wie z. B. Filtersoftware von FrameMaker auf dem Rechner
ftp.frame.com. Hier kennen Sie sich dann mit Ihrem Namen anmelden und geben als PaBwort nur Ihren Rechnernamen an. Der Aufruf des Kommandos ist
ahnlich wie bei telnet oder rlogin. Sie geben entweder den Rechnernamen
gleich mit an oder mit dem internen Kommando open.
ftp [Rechnername]
'1
file transfer protocol
I
I
Wird beim Aufruf kein Rechnername mit angegeben, kann mit den Kommandos
open Rechnername
die Verbindung aufgebaut werden, mit
close
die Verbindung zu dem Rechner abgebrochen werden
Das Programm ftp kann beendet werden mit
quit oder bye
ftp - Kommando fur Arbeiten mit Dateien eines entfernten Rechners
Sobald die Verbindung zu dem anderen Rechner steht, kennen Sie mit einer
Reihe von internen Befehlen arbeiten.Hier eine Auswahl der wichtigsten Befehle:
Interner ftp-Befehl
Bedeutung/Hinweis
cd Directory
change directory
Wechselt in das Directory auf dem entfernten Rechnero soweit Sie Zugriffsrechte hierfur haben
pwd
print working directory
Zeigt das aktuelle Directory auf dem entfernten
Rechneran
Is oderdir
fist
Zeigt den Inhalt des aktuelien Directories auf dem
entfernten Rechner
get Dateiname
get - holen, bekommen
Kopiert die Datei des entfernten Rechners in das
aktuelle Directory des lokalen Rechners
mget Dateiname(n)
multiple get - mehrfach holen, bekommen
Kopiert aile angegebenen Dateien (z.B. Auswahl der
Dateien evtl. uber Dateinamenexpansion) in das
aktuelle Directory des lokalen Aechners
245
3
246
UNIX - praktiseh angewandt
Interner ftp-Befehl
Bedeutung/Hinweis
put Dateiname
put - abgeben
Kopiert die angegebene Datei von Ihrem lokalen
Rechner in das aktuelle Directory des entfernten
Rechners
mput Dateiname(n)
multiple put
Kopiert mehrere Dateien (z. B. Auswahl der Dateien
evtl. Ober Dateinamenexpansion) vom lokalen Rechner in das aktuelle Directory des entfernten Rechners
binary
binar
Schaltet in den Binarmodus um. Mit binary werden
z. B. Programme, tar- oder cpio-Archiv-Dateien
Obertragen, die im Binarformat gespeichert sind
ascii
ASCII-Obertragung ist als Standard eingestellt.
Wenn Sie zuvor mit binary Dateien Obertragen
haben, sollten Sie wieder auf ASCII (default-Einstellung) umstellen
delete Dateiname
16schen
Soweit es die Zugriffsrechte zulassen, kann eine
Datei auf dem entfernten Rechner gelescht werden
mdelete Dateinamen
16schen
Soweit es die Zugriffsrechte zulassen, kennen mehrere Dateien auf dem entfernten Rechner gel6scht
werden (z. B. Auswahl der Dateien evtl. Ober Dateinamenexpansion)
mkdir
make directory
Legt auf dem entfernten Rechner ein Directory an
led Directory
local chance directory
Wechselt auf dem lokalen Rechner das Directory
(Ieider gibt es kein Kommando, um sich die Dateien
auf dem lokalen Rechner anzusehen. Sie soli ten sich
deshalb, bevor Sie ftp starten, informieren, welche
Dateien sie fOr ftp von Ihrem lokalen Rechner ben6tigen. Am besten wechseln Sie dann gleich in das
betreffende Directory, bevor Sie ftp starten)
bye oder quit
Beendet die Verbindung zum anderen Rechner
3.6.4
Wissenswertes tiber Netze
Sehen wir uns hierzu ein Beispiel aus der Praxis an. Sollen mehrere Dateien Ober
Netz auf einen anderen Rechner geschickt werden, empfiehlt es sich vorab, die
Dateien zu komprimieren (verdichten) und mit tar eine Archivdatei zu erstellen.
Man kann jedoch auch vorab die Dateien in ein tar-Archiv schreiben und dieses
dann komprimieren. Hierbei ist die Ersparnis nicht ganz so hoch, aber immer
noch wesentlich besser, als die Dateien in ihrer OriginalgroBe zu verschicken.
Um Dateien zu komprimieren, gibt es das Kommando
compress Dateiname(n)
compress - Kommando, urn Dateien zu verdichten
Mit compress verdichtete Dateien sparen etwa 30 % - 65 % Plattenplatz. Der Dateiname wird mit .Z erganzt. Durch die Endung .Z erkennen Sie also, daB es sich
um eine mit compress verdichtete Datei handelt. Oft werden Dateien in dieser
Form bereitgestellt, da sie wesentlich weniger Platz benotigen. Doch sehen wir
uns nun ein Beispiel an.
Um einen Kurs vorzubereiten, wurden eine Reihe Obungen in ein tar-Archiv gesichert. Die GroBe ist betrachtlich mit 1,6 MB. Um die Dateien Ober ftp auf den
Schulungsrechner >seminar. zu Obertragen, wird zuerst mit compress die Datei
verdichtet.
$Is -I *.tar
-rw-r--r-- 1 root
olher
1 rool
other
1620480 Jul23 15:58 kursfiles.tar
$ compress kursfiles.tar
$ Is _I *Z
_____ Einsparung von ca. 65%
-rw-r-(--
574571 Jul23 15:58 kursfiles.Iar.Z
$ flp seminar
Connected to seminar.
220 seminar FTP Server
Name (seminar.hans): trainer
Anmeldung als trainer
Password:
PaBwort nicht sichtbar
230 Login ok, access restrictions apply.
ftp> binary
200 Type set to I.
ftp> cd lusr/kurs
ftp-CWD command successful.
ftp> put kursfiles.tar.Z kursfiles.tar.Z
200 PORT command successful.
150 Opening BINARY mode data connection for kursfiles.lar.Z
226 Transfer complete.
574571 bytes sent in 1.7 seconds (3.3e+02 Kbytesls)
ftp> quit
BNd 3-157: Beispiel komprimiertes tar-Archiv mit ftp auf einen anderen
Rechner Dbertragen
247
3
UNIX - praktisch angewandt
Um die Dateien auf dem entfernten Rechner wieder auszupacken, werden die
Kommandos un compress und tar -x ben6tigt.
uncompress Dateiname(n){.Z]
uncompress - Kommando, um mit compress verdichtete Dateien
wieder in den Normalzustand zu bringen
In unserem Beispiel meldete sich der Trainer am Schulungsrechner Ober rlogin
an, kontrollierte die Obertragene Datei, brachte sie wieder in den Normalzustand
und packte das tar-Archiv aus:
$ rlogin -I trainer seminar
connected to seminar
Password:
$ cd lusrlkurs
$Is -I *.Z
-rw-,--'--rw-,--,--
1 root
PaBwort nlchl slchlbar
574571 Jul23 15:58 kursfiles.tar.Z
other
$ uncompress kursfiles.tar; Is -I *.tar
1 root
other
1620480 Jul 23 15:58 kursfiles. tar
$ tar -xvf kursfiles.tar
.lGestalten.html
.IGestalten.txt
.IMuster
3156 blocks
$
Bild 3-158: Anmelden mit rlogin und Auspacken der komprimierten tar-ArchivObertragung mit uncompress und tar -x
Handelt es sich um eine Textdatei, kann eine Datei auch in komprimierter Form
angesehen werden. HierfOr gibt es das Kommando
zeat Dateiname(n)
zcat - Kommando, um mit compress komprimierte Text-Dateien
anzusehen
248
3.6.4
Wissenswertes Ober Netze
Die Datei Gestalten.txt soli in komprimierter Form abgelegt werden. Da es sich
hierbei nur um einen ASCII-Text handelt, kann sie jederzeit mit zcat angesehen
werden:
$ Is -I Gestalten.txt
-rw-r--'--
1 tempir2 30005
2088 Jul 23 17:43 Gestalten.txt
$ compress Gestalten.txt
$Is -I G*.Z
-rw-r--'--
1 tempir2 30005
$ zeat Gestalten.txt.Z
1322 Jul23 17:43 Gestalten.txt.Z
Gestalten von Dokumenten
Die Sprache a/s Verstilndigung zwischen Menschen wird erst lebendig
du,ch Betonung und Gesten. Umgesetzt in Schrift entfBllt diese wichtige
Ausdrucksform. Um geschriebenen Text dennoch schnell versttindlich zu
$
Bild 3-159: Ansehen einer komprimierten Textdatei mit zcat
Auch um Platz auf dem Rechner zu sparen, empfiehlt es sich, mit compress
ganze Dateibaume zu verdichten, wenn sie fOr langere Zeit nicht benotigt werden.
Hiermit sind wir zwar in diesem Kapitel beim ,Z< angelangt, doch es wird hochste
Zeit, daB wir etwas Ober die Vereinfachung von Kommandoeingaben lemen.
Doch zuvor wie bei allen Kapiteln eine Zusammenfassung.
249
3
UNIX - praktisch angewandt
3.6.5 Zusammenfassung der Kommandos
Kommandoeingabe
pg letc/hosts
Funktion
r---page
Zeigt aile Rechner an, die im Netz
eingebunden sind
I-:::-:'
p mgpong
ping Rechnername
Kontrolliert, ob der angegebene
Rechner erreichbar ist
hostname
Zeigt den eigenen Rechnernamen
an
crep Datei(en)[@Rechner 1\
remate copy
Datei(IDirectory)[@Rechner 1
Kopiert Dateien von/auf entfernte
Reehner, die mit TCP/IP verbunden
sind
Etwa gleiche Syntax wie cp
rsh Rechner
remote shell
Startet eine Shell auf einem entfernten Rechner
Auf dem entfernten Rechner muB der
gleiche Benutzername eingetragen sein.
Das PaBwort wird abgefragt.
I
dd if=Dateiname of=Geratename \ device to device
I
Option=Wert
Kopiert Dateien, Dateibereiehe oder
gesamte Platten 1:1
Beispiel: Ausgabe von tar Ober Netz auf
tar -evf - . I rsh Rechner \
einen Streamer an einen entfernten
Rechner bs block size Wert (in diesem
dd of=/dev/rmtlO bs=64
Beispiel) 64 KB
tel net Rechner
rlogin
250
H
Login-Name] Rechner
telecommunication netware
Anmelden an einem entfernten
Rechner
Wird die Verbindung hergestellt, muB ein
gOltiger Benutzername und ein PaBwort
eingegeben werden
d
Etwa gleich wie rlogin
remote login
Anmelden an einem entfernten Rechner, der mit TCP/IP verbunden ist
Wird die Verbindung hergestellt, muB ein
gOltiger Benutzername und ein PaBwort
eingegeben werden
Etwa gleich wie telnet
j
3.6.5
Wissenswertes uber Netze
Kommandoeingabe
Funktion
ftpRechner
connected to ...
login: Benutzemame
Password required for: Pa8wort
file transfer protocol
Kopiert Dateien von/auf entfemte
Rechner
Rechnername des entfernten Rechners
sowie ein dort gOltiger Benutzername
und PaBwort mOssen angegeben werden
Auswahl der meist ben6tigten
Kommandos
change directory
Wechselt in das Directory auf dem entfernten Rechner
print working directory
Zeigt das aktuelle Directory auf dem entfernten Rechner
list
Zeigt den Inhalt des aktuellen Directories auf dern entfernten Rechner
get - holen. bekommen
Kopiert in das aktuelle Directory des 10kalen Rechners die Datei des entfernten
Rechners
multiple get - mehrfach ho/en
Kopiert in das aktuelle Directory des
lokalen Rechners aile angegebenen
Dateien (z. B. Ober Dateinamenexpansion)
put - abgeben
Kopiert die angegebene Datei von Ihrem
lokalen Rechner in das aktuelle Directory des entfernten Rechners
multiple put
Kopiert mehrere Dateien (evtl. Ober Dateinamenexpansion) vorn lokalen Rechner in das aktuelle Directory des
entfernten Rechners
binar
Schaltet in den Binarmodus um. Mit binary werden z. B. Programme. tar- oder
cpio-Archiv-Dateien Obertragen. die im
Binarformat gespeichert sind
Umstellung wieder auf ASCII (defaultEinstellung)
Kommandos unter ftp:
cd
pwd
Is (dir)
get Dateiname
mget Dateiname(n)
put Dateiname
mput Dateiname(n)
binary
ascii
251
3
UNIX - praktiseh angewandt
Kommandoeingabe
ftp: Fortsetzung
delete Dateiname
mdelete Dateinamen
mkdir
led Directory
bye oder quit
compress Dateiname(n)
Beispiel:
compress farsicherung
zeat Dateiname.z
uncompress Datei[.Z]
t
Funktion
loschen
Soweit die Zugriffsrechte es zulassen ,
kann eine Datei auf dem entfernten
Rechner (mit mdelete mehrere) geloscht
werden
make Directory
Legt auf dem entfernten Rechner ein
Directory an
local chance directory
Wechselt auf dem lokalen Rechner das
Directory
Beendet die Verbindung zum anderen
Rechner
-
verdichten
VerdichtenlKomprimieren von Dateien
Oft in Verbindung mit tar/ftp Der Dateiname wird mit.Z erweitert.
-cat von .Z-Datelen
.
Zeigt den Dateiinhalt von mit compress
komprimierten Dateien an
dekomprimieren
Eine zuvor mit compress verdichtete Datei wird wieder in den Normalzustand gebracht
Wiehtige Dateien:
Datei
~
letc/hosts
Zuordnung von IP-Adressen zu Rechnernamen
letc/hosts.equiv
Datei, um den Zugriffsschutz im Netz zu
steuern fUr die Netzkommandos wie
rep, rsh, rlogin oder telnet
FOr aile oder nur den angegebenen Benutzer des Rechners erlaubt
nicht erlaubt
FOr den angegebenen Benutzer von alIen Rechnern aus erlaubt
Beispiel eines Eintrages
hostname [usemame]
-hostname [usemame]
+ usemame
$HOME/.rhosts
252
Bedeutung
Eintrag wie bei letclrhosts.equiv
Private Datei fUr den Benutzer, die zusatzlich zur letclhosts. equiv zur PrOfung
herangezogen wird
I
3.7 Shell-Prozeduren
Nun >shellt< es intensiver
Dieses Kapitel zeigt Ihnen, wie Sie unter UNIX durch Kommandofolgen in einer Datei eigene kleine Programme schreiben konnen, sog. Shell-Prozeduren. Das Wort Prozedur hat
bei uns im Deutschen zwar auch die Bedeutung von ,schwierige, unangenehme Behandlungsweise<, doch das Wort selbst
leitet sich von procedere (lat.) ab und bedeutet ,zu Werke
gehen<. Sie werden erfahren, daB die Programmierung unter
der Shell ,keine Prozedur< fOr Sie sein wird. FOr diejenigen von
Ihnen, die bereits eine Programmiersprache kennen, wird es
ein VergnOgen werden, ein Programm zu erstellen, ohne
schwierige Syntaxregeln beach ten zu mOssen, und es auszufOhren, ohne erst zu compilieren.
Die einzelnen Themen:
3.7.1
Die Vorteile von Shell-Prozeduren
3.7.2
Erstellen eigener Shell-Prozeduren
3.7.3
Vordefinierte Shell-Variable
3.7.4
Verwendung von Positionsparametern
3.7.5
Ablaufsteuerung einer Shell-Prozedur
3.7.6
Beispiele zur Erstellung von eigenen Shell-Prozeduren
3.7.7
Schleifenverarbeitung
3.7.8
Weitere nutzliche Kommandos fur Shell-Prozeduren
3.7.9
Zusammenfassung
253
3
UNIX - praktisch angewandt
Shell-Prozeduren - Nun >shellt< es intensiver
Wenn Sie bis zu diesem Kapitel vorgedrungen sind und die Beispiele nachvollzogen haben, k6nnen Sie bereits mit UNIX arbeiten. Meinen GIOckwunsch! Denn
es war sicher nicht immer leicht. Doch ich hoffe, Sie hatten auch SpaB daran und
haben sich Ober Ihre eigenen Erfolge gefreut.
Das, was Sie bisher Ober UNIX gelernt haben, reicht im Normalfall aus, um als
Anwender mit Softwarepaketen zu arbeiten, die auf UNIX basieren. Die meisten
Applikationen, wie Anwendungen fOr die verschiedenen Branchen im Handel und
in der Industrie, z. B. BOroautomation, Finanzbuchhaltung oder im CAD/CAMBereich, enthalten meist zusatzliche Hilfsprogramme, etwa zum Sichern und
zur Dateiverwaltung. FOr diese Faile ware es nicht notwendig zu wissen, wie
man unter der Shell eigene Shell-Prozeduren schreiben kann. FOr Sie ware das
nachfolgende Kapitel eher ein Hobby oder der erste Schritt, sich zum UNIXSpezialisten zu entwickeln. Auf der Shell-Ebene k6nnen Sie dann bereits kleine
Programme, sog. Shell-Prozeduren, mit vielen Raffinessen erstellen. Der nachste Schritt ist, Programme in Coder einer anderen Programmiersprache zu
schreiben.
Anhand von Beispielen, wie Sie eigene Kommandos zum Sichern, Listen von
Directories, Kopieren und L6schen von Dateien schreiben k6nnen, werden Sie
die wesentlichen Funktionen der Shell-Prozeduren kennenlernen.
3.7.1 Die Vorteile von Shell-Prozeduren
Was sind Shell-Prozeduren?
Shell-Prozeduren sind im Grunde nichts anderes als Kommandofolgen, abgelegt in einer DateL Kommandos, die Sie bisher am Terminal aufgerufen haben,
schreiben Sie in eine DateL Mit dem Kommando sh k6nnen Sie die Kommandofolgen in dieser Datei von Ihrer Shell ausfOhren lassen.
sh
Dateiname
shell
sh - Kommando, um Dateien mit Kommandofolgen auszufuhren
254
Bisher haben wir von Kommandos gesprochen, wenn wir einen Auftrag an den
Rechner schickten. Ein Kommando kann ein ausfUhrbares Programm sein, ein
,Shell-internes< Kommando oder eine Shell-Prozedur. Statt Shell-Prozedur
spricht man auch von Shell-Script. Ein ausfUhrbares Programm wurde ursprOnglich in einer Programmiersprache geschrieben und compiliert (ubersetzt)
in den entsprechenden Maschinencode des Rechners. Ein Shell-internes Kommando ist im Programm der Shell selbst verankert, also ein Teil der Shell. Eine
Shell-Prozeduren
3.7.1
Datei, die Kommandofolgen enthalt, kann eine eigenstandige Shell-Prozedur
werden, wenn die Zugriffsrechte z. B. mit
chmod +x
auf ausfOhrbar geandert werden (executable).
Nehmen wir an, es gibt eine Datei mit dem Namen heute, in der z. B. die Kommandos date und who stehen. Die Zugriffsrechte sind so geandert, daB aile die
Datei ausfOhren dOrfen (z. B. rwxr-xr-x). Damit sind bereits die Voraussetzungen
fOr eine Shell-Prozedur erfOlit.
Rufen Sie das Kommando heute auf, so sucht die Shell in all jenen Directories,
die in der Variablen PATH als Suchpfad angegeben sind, nach einer Datei mit
dem Namen heute, die als ausfOhrbar gekennzeichnet ist. Die so gefundene Datei wird von der Shell gelesen und die darin enthaltenen Kommandos werden
der Reihe nach ausgefOhrt. Die AusfOhrung dieser Shell-Prozedur soli die nachfolgende Grafik verdeutlichen:
Platte
Inhalt der
Datei heute
$ heute
Wed Nov 12 18.56:02 '-------':::...
root
console Nov 11
20:28
monika Hy22
Nov 12
13:25
$
Eingabe:
heute
----
~
Bild 3 -160: Ablauf einer Shell-Prozedur grafisch dargestellt
Aile Kommandos, also Programme, Shell-interne Kommandos und Shell-Prozeduren sind gleichberechtigt. Bei der Shell-EinfOhrung (3.2 Es >shellt.) haben Sie
gelernt, wie Sie Kommandos verwenden konnen:
255
3
UNIX - praktisch angewandt
Aufruf
des Kommandos
Kommandoname [Parameter 1 (z. B. Option -I)] \
[Parameter 2] ...
im Vorder- oder Hintergrund (&)
Die Parameter konnen hierbei Ober Metazeichen
(*,?, \, [] ) und die Ihnen bereits bekannten Ersetzungsmechanismen (" ","" ,$, \ Kommando \)
expandiert werden.
Abbruch
des Kommandos
(Unterbrechung des laufenden Programms):
bei Vordergrundprozessen je nach Rechner entsprechen de Funktionstasten z. B. <CTRL> + coder
bei Hintergrundprozessen mit dem Kommando
kill -9 ProzeBnummer
Hier werden Sie in der Korn-Shell noch weitere Moglichkeiten kennenlernen
Umleitung
der Standardeingabe und Standardausgabe:
<, >, », 2>
Verkettung
von Kommandos mit;
Pipe-Mechanismus
mit I
Bild 3-161: Eingabem6glichkeiten von Kommandos
Aile diese Moglichkeiten bestehen auch fOr Shell-Prozeduren. Sie konnen sich
also eigene Kommandos schreiben und diese genauso nutzen wie UNIX-Kommandos. Die Frage ist:
Benotigen Sie eigene Shell-Prozeduren?
Wenn Sie sich an das Kapitel Sicherung erinnern, an die langwierigen Kommandos von find und cpio, dann dOrfte Ihnen die Antwort zu einem ·Ja< nicht schwerfallen. Oder den ken Sie nur an die Kommandos mv und cp, die Ihnen wertvolle
Dateien Oberschreiben konnen oder gar an die zerstorende Wirkung von rm -r '.
Hier konnen Sie durch eigene Kommandos die Wirkung entscharfen.
Welche Vorteile bieten Ihnen eigene Shell-Prozeduren?
o
Sie konnen haufig benutzte und/oder langwierige Kommandofolgen mit
einem Aufruf (einem kurzen Namen) aktivieren.
o
Eigene Shell-Prozeduren konnen Sie auch auf andere UNIX-Rechner
ubernehmen.
ODie Funktionalitat der Shell-Prozeduren ahnelt der Programmiersprache C,
man benotigt aber keinen Ubersetzungslauf (Compilieren).
o
256
Sie konnen benutzerfreundliche, deutschsprachige und sichere Kommandos schaffen.
Shell-Prozeduren
3.7.2
3.7.2 Erstellen eigener Shell-Prozeduren
Wie erstellen Sie eigene Shell-Prozeduren?
Anstatt ein Kommando (oder eine Kommandofolge) direkt am Terminal aufzurufen, schreiben Sie es mit einem Editor in eine Datei, beenden den Editor, verand ern die Zugriffsrechte durch chmod +x Dateiname und schon haben Sie
eine eigene Shell-Prozedur. Diese konnen Sie nunmehr mit dem Namen der Datei aufrufen und die enthaltenen Kommandos werden ausgefOhrt.
Was konnen Sie in eine Prozedur eingeben?
Aile Meglichkeiten, die Sie bisher bei einem Kommandoaufruf kennengelernt haben, kennen Sie auch in einer Shell-Prozedur verwenden. Dies bedeutet:
o
Sie kennen auch in Shell-Prozeduren die Kommandos so eingeben, wie es
in der Tabelle, 3-161 (Eingabemoglichkeiten von Kommandos) auf der vorigen Seite gezeigt ist.
o
Um Erlauterungen einzufOgen, gibt es die Zeichen ':< und '#<, die den nachfolgenden Text bis Zeilenende als Kommentar kennzeichnen.
o
Wie Sie schon zu Beginn gehOrt haben, gibt es verschiedene Sheil-Programme, neben der hier besprochene Bourne-Shell, die Korn- und C-Shell. Um
zu gewahrleisten, daB die Shell-Prozedur von der richtigen Shell ausgefOhrt
wird, gibt man, soweit unterschiedliche Shells eingesetzt sind, in der 1. Zeile
ein sog. Run-Kommando an:
#!/bin/sh oder #!/bin/ksh oder #!/bin/csh
Dies ist besonders wichtig, wenn sonst die C-Shell verwendet wird, da die
Syntax und einige Befehle hier z.T. abweichen (siehe Kapitel 3.9).
o
Wie bei dem Ersetzungsmechanismus bereits erlautert, kennen Sie ShellVariable verwenden, die durch ${Name der Variablen} mit dem jeweils zugewiesenen Wert ersetzt werden. Sie lernen noch eine Reihe weiterer Einsatzmoglichkeiten von Variablen kennen; so z.8., wie Sie unterschiedliche
Parameter Obergeben, sog. Positionsparameter, oder wie Sie vordefinierte Variable verwenden kennen und wie Sie den Wert einer Shell-Variablen
verandern.
o
Um den Ablauf zu steuern, kennen Sie mit echo Nachrichten (Fragen) auf
den Bildschirm ausgeben, mit read eine Antwort am Bildschirm lesen und
mit test den Inhalt dieser Antwort prOfen.
o
In Abhangigkeit von Ergebnissen konnen Sie unterschiedliche Kommandofolgen aufrufen (&&, II und if - then - else - f/l
o
Kommandofolgen kennen mehrmals durchlaufen werden; man spricht hierbei von Schleifen (for - do - done).
o
Abhiingig von einem Wert konnen unterschiedliche Kommandofolgen ausgewahlt werden (case - esac).
257
3
UNIX - praktisch angewandt
o
Sie k6nnten sogar auftretende Fehler Ober die sog. trap-Behandlung abfangen (was soli Z. B. geschehen, wenn ein Unterbrechungssignal Ober
<CTRl> +c gesendet wird?). Auf die Fehlerbehandlung wird in diesem Buch
allerdings nicht tiefer eingegangen. Bei der Zusammenstellung der Kommandos find en Sie unter trap auf Seite 301 ein paar weitere Informationen.
Auch wenn wir hier nicht aile M6glichkeiten der Shell-Programmierung durchsprechen, verspricht dieses Kapitel, interessant zu werden.
Beginnen wir mit einem einfachen Beispiel. Erstellen Sie sich eine Datei heute,
andern Sie die Zugriffsrechte und probieren Sie einfach mal aus, ob es funktioniert.
Bevor Sie die Datei erstellen, richten Sie sich am besten, wie in unserem Beispiel, ein Unterdirectory Befehle ein, in das Sie samtliche von Ihnen selbst erstellten Kommandos (Shell-Prozeduren) ablegen:
append - anhilngen
Eingabemodus:
Beenden der Eingabe
Beenden vom vi
a
vi heute
1. Erstellun$! der Dalei mit
einen Editor
nicht sichtbar
ae
whO§
[zz
nicht sichtbar
$ chmod +x heute
$ heute
I
2. Andern der Zugriffsrechte
3. Autruf der Shell-Prozedur
Wed Nov 12 19:30:22 Anzeige von date
root
console Nov 11
20:28 von who
monika tty22
Nov 12
13:25
Bild 3 -162: Beispiel Erstellen einer Shell-Prozedur
Hat es geklappt? Erhalten Sie das Datum und eine Liste der aktiven Benutzer
angezeigt, wenn Sie heute aufrufen? Wenn nicht, prOfen Sie Ihre Variable
PATH, ob das aktuelle Directory (.) nach Kommandos durchsucht wird. Sie
k6nnten dann den Befehl, um zu testen, mit sh heute aufrufen.
Wenn es wirklich so einfach geht, dann schreiben wir gleich unser Sicherungskommando fUr die tagliche (tsich) und wochentliche Sicherung (wsich).
Falls Sie unter der grafischen Obertlache einen Texteditor zur VertOgung haben,
ist es sicher leichter, mit diesem zu arbeiten. Gerade wenn der vi Ihnen noch
nicht so recht von der Hand geht, ist die Anstrengung der Eingabe und die Fehlerquelle durch den vi gr6Ber als die Eingabe der Shell-Prozedur als solche.
258
Um beim Ablauf der Sicherung zu sehen, was im einzelnen passiert, geben wir
mit dem Kommando echo Nachrichten auf den Bildschirm aus. Unter der ShellEinfOhrung haben wir dieses Kommando kurz kennengelernt:
Shell-Prozeduren
3.7.2
Widerhan
no new line
(bel lilteren Versionen
von UNIX)
In der Texteingabe bedeuten folgende Steuerzeichen:
\007
\c
\n
\t
Klingelzeichen
Cursor bleibt in gleicher Zeile
neueZeile
Tabulator
echo - Kommando, um Nachrichten auszugeben
Das echo-Kommando gibt aile ihm Obergebenen Worter bis zum Zeilenende
oder einem ,;, als ,Echo, auf den Bildschirm aus. Es empfiehlt sich, den Text
grundsatzlich in AnfOhrungszeichen zu setzen, damit nicht z. B. ein Fragezeichen
oder Sternchen von der Shell durch vorhandene Dateinamen ersetzt wird.
Wollen Sie, daB die Antwort in derselben Zeile wie die Nachricht eingegeben
wird, geben Sie als letztes Text-Argument\c ein (bei alteren Versionen von UNIX
als Aufruf echo -n). Innerhalb des Textes konnen Sie mit \t ein Tabulatorzeichen setzen, mit \n eine Zeilenumbruch erwirken oder gar mit \007 ein Klingelzeichen aktivieren, allerdings muB hierfOr Ihr Terminal entsprechend voreingestellt sein. Urn einen Text Ober mehrere Zeilen auszugeben, konnen Sie
entweder in jeder Zeile neu das Kommando echo eingeben oder Sie setzen das
Anfilhrungszeichen II nur nach echo in der ersten Zeile und dann erst am Ende
der letzten Zeile.
r>
Einer der haufigsten Fehler ist, daB das schlie Ben de Anfilhrungszeichen
vergessen wurde (sei es bei dem Kommando echo, oder wie wir spater noch
sehen, beim Setzen von Variablen). Die Shell-Prozedur wird dann meistens
mit einem Fehlerhinweis der Shell abgebrochen. Also achten Sie darauf!
Die einzelnen Schritte zur Erstellung unserer Sicherungskommandos:
259
3
UNIX - praktisch angewandt
1.
Wir rufen einen Editor auf, schreiben die zur Sicherung notigen Kommandos
und die Nachrichten, die am Bildschirm erscheinen sollen, und beenden den
Editor.
2.
Wir andern die Zugriffsrechte auf ausfOhrbar.
3.
Das Kommando ist fertig, wir konnen es fOr unsere Sicherung benutzen.
vi wsich
a
C
1. Erstellen der Shell-Prozedur fUr
nicht sichtbar
wochentliche Sicherung mit vi
Wechsel in das Home-Directory
echo "Es wird eine woechentliche Sicherung ab"
echo "dem Directory pwd' erstellt."
Nachricht auf Bildschirm
mt rew
# ROckspulen des Bandes Bei Streamer nicht notwendig
find. -print I cpio -ovB :> Idev/rmtO # Sicherungskommando
date :> sichlog
# Datei sichlog erstellen ------ Kommentarzeichen
echo "Woechentliche Sicherung" )---- Nachricht auf Bildschirm
echo "vom \ date\ fertig II
§ - - Beenden der Eingabe und
Sichern (Schreiben) der Datei
ZZ - - - - - - - - - - - - - - - wsich auf Platte und
Beenden des Editors
2. Andern der Zugriffsrechte
$ chmod +x wsich
Bild 3 -163: Beispiel einer Shell-Prozedur zur wochentlichen Sicherung
Nun haben wir ein eigenes Sicherungskommando, das wir z. B. jeden Freitag
verwenden konnen. Wir brauchen nur noch das Band einzulegen und die Sicherung lauft sicher abo
$wsich
- - - - - - - - - - - ! ' 1 . Aufruf der Shell-Prozedur
Es wird eine woechentliche Sicherung ab
dem Directory lusrlkurslmonika erstellt
ProjektA
ProjektAlbeispiel. c
}
_ _ _ _ _ cpio gibt die Uste der gesicherten
Dateien aus (-v)
"fJ'efehlelwsich
sichlog
Der Streamer wird automatisch
240 blocks
_ _ _ _ _ _ zuriickgespult, es dauert ein
Woechentliche Sicherung
paar Sekunden bis die Nachricht
vom Fri Nov 14 13:20:57 fertig
$
am Bildschirm erscheint
Bild 3 -164: Beispiel Aufruf der Shell-Prozedur fOr wochentliche Sicherung
260
3.7.2
Shell-Prozeduren
Die gleichen Arbeitsschritte sind erforderlich, um die Shell-Prozedur fOr die tagliche Sicherung zu schreiben. Hier kennen wir mit einbauen, daB als Nachricht
angezeigt wird, wann das letzte Sicherungsdatum war, d.h., daB nur jene Dateien gesichert werden, die ein neueres Modifikationsdatum als die Datei sichlog
aufweisen. Erstellen wir uns mit einem Editor die Datei tsich, die folgenden Inhalt
aufweist:
1. Erstellen der Shell-Prozedur rur tagliche Sicherung mit einem Editor
$ vi tsich
a
nicht sichtbar
C
Wechsel In das Home-Directory
echo liEs werden aile veraenderten und
Nachricht auf Bildschirm
neuerstellten Dateien seit der
Sicherung vom 'cat sichlog
ab Directory 'pwd' gesichert" - - - SchlieBendes Anfiihrungszeichen
mt rew
zur 1. Zeile
find. -newer sichlog -print I cpio -ovB > Idev/rmtO $icherungsbefehl
date > sichl~g
.
echo "taegilche Sicherung"
echo "vom 'cat sichloQ' ist fertig"
~
Datei mit Sicherungsdatum erstellen
;- Nachricht auf Bildschirm
§---- Beenden der Eingabe und
Sichern (Schreiben) der Datei
- - - - - - - - - - - - - - - tsich auf Platte und
Beenden des Editors
chmod +x tsich
2. A.ndern der Zugriftsrechte
ZZ
$
Bild 3-165: Beispiel einer Shell-Prozedur zur taglichen Sicherung
Um unsere tagliche Sicherung zu erstellen, reicht es, das Band vorzubereiten
und tsich aufzurufen:
$tsich
3. Aufruf der Shell-Prozedur
Es werden aile veraenderten und
neuerstellten Dateien seit der
Sicherung vom Fri Nov 14 13:20:57
ab Directory lusrlkurslmonika gesichert
Befehle
Befehleltsich
120 blocks
taegliche Sicherung
vom Mon Nov 1714:00:00 ist fertig
$
Bild 3 -166: Beispiel Aufruf der Shell-Prozedur fOr tagliche Sicherung
Voraussetzung ist allerdings, daB Sie sich in jenem Directory befinden, in dem
Sie das Sicherungskommando angelegt haben. Zusatzlich muB in Ihrem PATH
261
3
UNIX - praktisch angewandt
(Suchpfad der Shell fOr Kommandos) zumindest enthalten sein, daB auch das
aktuelle Directory mit durchsucht wird. Wollen Sie Ihre Kommandos von jedem
beliebigen Verzeichnis (Directory) aufrufen, so mOssen Sie die Shell-Variable
PATH erweitern um jenes Directory, in das Sie Ihre eigenen Kommandos ablegen. Die Variable PATH geh6rt zu den vordefinierten Shell-Variablen.
3.7.3 Vordefinierte Shell-Variable
Wie konnen Sie Ihren .PATH. erweitern?
Um den PATH zu erweitern, sollten Sie sich erst vergewissern, welche Directories in dem fOr Sie vorgegebenen Suchpfad eingetragen sind. Das Kommando
echo $PATH gibt Ihnen hierOber Auskunft:
$ echo$PATH
: :. Ibin:lusrlbin:usrllocal:lusrlucb
I Der Punkt zwischen zwei Doppelpunkten zu 8eginn bedeutet, daB
zuerst das aktuelie Directory nach dem aufgerufenen Kommando durchsucht wird. Danach werden In der Reihenfolge von links nach rechts
alie Directories durchsucht, bis das Kommando gefunden wird.
Die Doppelpunkte zwischen den Directories gelten als Trennungszeichen.
Bild 3 - 167: Beispiel: Wert der Variablen PATH
Die Variable PATH wird von der Shell verwendet, um Kommandos zu suchen.
Sollen die von Ihnen erstellten Kommandos Vorrang vor den UNIX-Kommandos
erhalten, dann mOssen Sie den PATH so belegen, daB das vorrangig zu behandelnde Directory zu Beginn steht, z. B.:
PATH=/usr/kurs/monika/Befehle:$PATH; export PATH
Unter dem Kapitel ,Es shellt, wurde kurz bei dem Ersetzungsmechanismus die
Funktion der Variablen erklart. Bei der obigen Eingabe wird der Wert von PATH
neu gebildet, wobei $PATH ersetzt wird durch lusrlkurslmonikalBefehle plus
den bisherigen Werten, die PATH zugeordnet waren. Der Befehl export Obertragt die GOltigkeit der Variable fOr eventuelle Unterprogramme.
Mit dem Kommando set werden die in dem aktuellen Programm gesetzten Variablen angezeigt, mit env die Variablen, die exportiert wurden.
~_____se_t______~1 I~_____e_n_v______~
set - Kommando, um definierte Variable der aktuellen Shell anzuzeigen
262
env - Kommando, um definierte und exportierte Variablen anzuzeigen
3.7.3
Shell-Prozeduren
Sehen wir uns also die Variablen an, nachdem die Variable PATH neu gesetzt
wurde.
$ set
Zuordnung erfolgl baim Login (letc/passwd)
IFS=
Nichl sichlbare Zeichen fOr Separator (Leerzeichen, Tabulatorzeichen und Zeichen fOr Zeilenende (Internal Field Separators)
wird von cd verwendel, wenn Sie keine weiteren
HOME=I us~/k ursI mom'ka / " Angaben
machen
LOGNAME=monika - - - Zuordnung erfolgt beim Login (/etc/passwd)
PATH=lusrlkurslmonikalBefehle:.:lbin:lusrlbin:lusrllocal:1usrlucb
I erweiterte Variable PATH
PS1 =$ - ________ Bereitzeichen der Shell
PS2=> - - - - - - - - - Hinweiszeichen der Shell, wenn sie weitere Ein-
gaben zu einem Aufruf erwartet
Variable fOr Programme, die mit zusAtzlichen Angaben der Terminals arbeiten (z. B. vi, more etc)
Unler dem angegebenen Namen stehen unler
dem Directory lusrlliblterminfo charakteristische
Angaben fur das betrefiende Terminal
- - - - - - - Variable fur die Zeitzone, die bei .weltweiten.
mail-Aktionen jeweils beri.icksichtigt wird
TERM=vt220
TZ=MET-l
$
Bild 3 -168: Anzeige und Erlauterung der vordefinierten Shel/-Variablen
Die Variablen gelten immer nur fOr die Dauer des Programms. Die vordefinierten
Variablen werden beim Starten Ihrer Shell zugewiesen (beim login). Sobald Sie
sich abmelden, verlieren sie ihre GOItigkeit. Die Erweiterung des PATH mOBten
Sie also jeweils neu vornehmen. Um Ihre Shell-Umgebung automatisch mit den
Variablen zu besetzen, die fOr Sie GOltigkeit haben sollen, kennen Sie sich eine
Datei
.profile
in Ihrem Home-Directory einrichten. In der Regel wird diese Datei beim Einrichten eines Benutzers mit angelegt, wenn er mit einer Bourne- oder Korn-Shell arbeitet. FOr die C-Shell wird statt .profile die Datei .Iogin gelesen. Arbeiten Sie mit
einer grafischen Oberflache, mOssen die Angaben von .profile u. U. in andere
Datei Obernommen werden bzw. ein Querbezug in der Datei .dtprofile (Variable
DTSOURCEPROFlLE=true) erfolgen. In der Bourne- und Korn-Shell wird .profile
automatisch beim Login wie eine Shell-Prozedur ausgefOhrt. In dieser Datei kennen Sie auBer der Um- oder Neubesetzung von Variablen auch Kommandos mit
auffOhren, die dann nach Ihrem Login automatisch der Reihe nach ausgefOhrt
werden. Speziell beim CDE, das nicht unbedingt ein Terminal-Fenster beim Anmelden mit ereffnet, sind in .profile Befehle fOr eine Terminalausgabe nicht meglich.
263
3
UNIX - praktisch angewandt
Erstellen oder iindern wir mit einem Editor die Datei .profile mit folgendendem
Inhalt:
PATH=$HOMEIBefehle:$PATH;export PATH _ _ Anderung des Suchpfades
PS1="alies klar: "
Anderung des Bereitzeichens
PS2="da fehlt noch was. "; export PS1 PS2 __ Anderung des FoIgezeichens
k=/usr/kurs
}
Setzen von eigenen Varia bIen
h=/usr/kurslhans; export k h
echo "Guten Morgen, heute ist date •
~~~ "und es arbeiten bereits folgende kollegen:" auszufOhrende Kommandos'
who
echo ohne Angabe gibt eine Leerzeile aus
'r
• Unter CDE kOnnen Kommandos nicht aus der .profile gestartet werden (da keine direkte
Terrninal-Fenster-Ausgabe zugewiesen ist)
Bild 3-169: Beispiel von .profile mit Anderung der Variablen
In dem obigen Beispiel wurde die Variable $HOME verwendet, anstatt den
Pfadnamen lusrlkurslmonika auszuschreiben. Somit konnte die Datei .profile
auch fUr andere Benutzer kopiert werden und das jeweilige Home-Directory wird
richtig eingesetzt. Weiterhin wurden eigene Variable gebildet, um die Pfadnamen lusrlkurs oder lusrlkurslhans mit der entsprechenden Variablen $k oder $h
in kOrzerer Form eingeben zu konnen. Beenden Sie Ihre Sitzung lind melden Sie
sich neu an. Sehen wir uns an, welche Nachrichten uns das System bringt:
LOGIN
Bitte melden Sie sich an: monika
Password:
Guten Morgen, heute ist Fri Nov 148:30:22,
und es arbeiten bereits folgende Kollegen
monika tty11
Nov 148:33:00
hans tty13
Nov 148:05:00
gisela tty15
Nov 148:20:00
aJles klar: set
HOME=lusrlkurslmonika
IFS=
PATH=lusrlkurslmonikaIBefehle: :Ibin:lusrlbin:lusrllocal:lusrlucb
LOGNAME=monika
MAIL=lusrlmaillmonika
PS1 =alles klar:
PS2=da fehlt noch was:
TERM=vt 1OOc
TZ=MET-1
k=lusrlkurs
h=lusrlkurslhans
alles klar:
Bild 3 -170: Beispiel einer Anmeldung mit geandertem .profile
264
3.7.3
Shell-Prozeduren
Fassen wir das Wesentliche Ober die Shell-Variablen zusammen:
o
Shell-Variable werden gebildet durch eine Wertzuweisung
frei definierbar
oder vordefinierte Namen
Text oder Ziffern
Kommen in einem >Wert, Leerzeichen vor, so muB er in AnfOhrungszeichen
gesetzt werden, z.B. PS1="Alies klar". Zwischen dem Namen, dem Gleichheitszeichen und dem Wert durfen keine Leerzeichen sein.
o
$Name wird ersetzt durch den Wert, der der Variablen >Name' zugewiesen
wurde.
$ Name
Verwenden Sie den Wert der Variablen, um z. B. neue Dateinamen zu erstellen, wobei die Ersetzung nur ein Teil des Namens ist, dann wird der Name
der Variablen durch geschweifte Klammern abgegrenzt:
${Name}
M6chten Sie z. B. Dateien erstellen mit dem jeweiligen Login-Namen desjenigen, der die Prozedur aufgerufen hat, erganzt durch z. B. eine Nummer,
dann geben Sie an: > $(LOGNAME}1 bzw. touch $(LOGNAME}1
Das Gr6Berzeichen (Um/eitung der Standardausgabe) ohne Angabe eines
Kommandos erstellt eine leere Datei (dies gilt nicht bei der C-Shel/), stattdessen kann das Kommando touch verwendet werden. Die Datei wurde in
unserem Beispiel angelegt werden mit:
monika1
o
Variable k6nnen verandert werden durch die Zuweisung eines neuen Wertes.
1m Verlaufe dieses Kapitels werden wir das Kommando expr kennenlernen,
mit dem Sie eine Variable mit allen Grundrechenarten verandern k6nnen,
wenn es sich bei der Wertzuweisung um eine Zahl handelt. 1m Kapitel KornShell 3.8 lernen Sie eine noch einfachere Art kennen, um mit Variablen zu
rechnen (/nteger- Variable).
OShell-Variable gelten nur fOr das aktuelle Shell, sollen sie ebenfalls fOr Unterprogramme (Sohnprozesse) gelten, so sind sie zu exportieren.
export
Name der Variablen
265
3
UNIX - praktisch angewandt
Einige vordefinierte Shell-Variable
(gleich mit einigen Variablen und Hinweisen, die erst im Kapitel3.B Korn-Shell
naher erlautert werden):
266
Shell-Variable
Bedeutung
$OISPLAY
Diese Variable muB gesetzt sein, wenn eine grafische
Oberflache benutzt wird.
Ais Wert wird der Rechnername (bzw. Name des XTerminals) eingetragen. gefolgt von :0.0 z.B.
OISPLAY=amadeus:O.O
export OISPLAY
$ENV
Hier wird als Wert der Dateinamen angegeben. der
Voreinstellungen fUr die Korn-Shell enthalt. In der
Regel $HOME/.kshrc (im Kapitel 3.8.2 wird darauf
eingegangen)
$EXINIT
Als Wert werden Voreinstellungen fUr den ex- bzw. viEditor eingetragen (siehe auch Kapitet 3.3 Editoren)
$HOME
Beim Login wird der absolute Pfadname des LoginDirectories aus der letclpasswd der Variablen zugeordnet. Diese Variable wird u.a. von cd (ohne weitere
Angaben) als default verwendet
$IFS
Hier sind die Separatorzeichen zugewiesen.
Standard: Leerzeichen, Tabulator und Neue Zeile
$LANG
Als Wert wird die jeweilige Sprache zugewiesen, in
der die Systemmeldungen erfolgen sollen - soweit im
System enthalten
$LOGNAME
Hier wird als Wert der Login-Name des Benutzers
zugewiesen
$PATH
Als Wert sind all jene Directories mit absolutem Pfadnamen aufgefUhrt. unter denen die Shell nach Kommandos sucht. Getrennt werden die einzelnen
Directories durch Doppelpunkte
Beispiel einer Neubesetzung:
PATH=/usr/bin:/bin:/usr/ucb/bin
Beispiel einer Erganzung:
PATH=$PATH:$HOME/Eigenbefehle
$PS1
Ais Wert ist das Bereitzeichen der Shell zugewiesen.
Beispiel einer Neubesetzung:
PS1 ="" $PWO" > " nur ksh siehe Kapitel 3.8
Hiermit wird jeweils das aktuelle Directory als Bereitzeichen angezeigt
z. B. lusrlkurslhanslTexte >
I
3.7.3
Shell-Prozeduren
Shell-Variable
Bedeutung
$PS2
Ais Wert ist das Zeichen > zugeweisen
(Fortsetzungszeile eines Kommandos)
--
$PWD
$SHELL
$TERM
-
$TZ
$VISUAL
Manche Programme fragen den Wert dieser Variablen
ab, um die entsprechende Shell zu starten (z. B. Wertzuweisung csh, ksh)
-
-
~,
-
Ais Wert wird jeweils das aktuelle Directory zugeordnet
nur in der Korn-Shell
Ais Wert ist hier der Terminaltyp der Dialogstation
zugeordnet. Die richtige Zuordnung ist wichtig bei
vielen bildschirmorientierten Programmen (z. B. grafische Oberflache, vi, more etc.)
Dieser Variable kennen Angaben zur Zeitzone zugewiesen werden (z. B. fUr automatische Berechnung
der Ortszeiten bei mail)
1st diese Variable belegt, kann die Befehlszeile editiert
nur in der Korn-Shell
werden
-
Bild 3 -171: Obersichtstabelle vordefinierter Variablen
Vordefinierte Variable kennen Sie auch in Ihren Shell-Prozeduren verwenden
(soweit dies Sinn macht).
Innerhalb einer Shell-Prozedur stehen Ihnen weitere Shell-Variable zur Verfugung. Die Shell analysiert Ihren Kommandoaufruf und erkennt, getrennt durch
ein oder mehrere Leerzeichen, folgende Teile:
$0
,~_$_1__________~~~~__________~$n
~/
aile Parameter:
$*
Die einzelnen Teile eines Kommandoaufrufs werden je nach Position des Kommandoteils der Variablen 0, 1,2 bis 9 zugewiesen. Den Namen des Kommandoaufrufs kennen Sie innerhalb Ihrer Shell-Prozedur mit $0 erhalten, den Parameter 1 mit der Variablen $1. Aile Namen der Parameter werden durch die
Eingabe von $* ersetzt. Zusatzlich kennen die Anzahl der Parameter oder die
ProzeBnummer abgefragt werden. Diese Variablen werden auch Positionsparameter genannt. In der nachstehenden Aufstellung sind sie zusammengefaBt:
267
3
UNIX - praktisch angewandt
Positionsparameter
Bedeutung
Positionsparameter
$0
Name der Shell-Prozedur
$2
$1
Wert des 1. Parameters
Wert des 2. Parameters
$9
Wert des 9. Parameters
$*
Werte aller angegebenen Parameter
$#
Anzahl der Parameter
$1
Exit-Status des letzten Kommandos
$$
ProzeBnummer der Shell-Prozedur
'------_......
----------
Bild 3 -172: Obersichtstabe/le Positionsparameter
3.7.4 Verwendung von Positionsparametern
Um die Funktion der Positionsparameter zu verdeutlichen, erstellen wir eine
kleine Shell-Prozedur, die nichts anderes tun soli, als uns die Werte der einzelnen Parameter anzuzeigen. Wir erstellen mit einem Editor die Oatei posi mit folgendem Inhalt:
#!/bin/sh
Bafehl fOr die Shell, dieses Kommando mit der Bourne-Shell auszu!Uhren
#Diese Prozedur gibt nur die einzelnen Parameter aus
echo "Oer Name der Shell-Prozedur lautet: $0'
echo "Es wurden $# Parameter angegeben"
echo "Oer 1. Parameter lautet: $1 "
echo "Oer 2. Parameter lautet:$2"
echo "Oer 3. Parameter lautet:$3"
echo "Dies sind aile angegebenen Parameter: $ ••
echo "Die Nummer der Shell-Prozedur ist: $$"
Kommentarzeile
Bild 3 -173: Beispiel: She/l-Prozedur mit Positionsparameter
Andern wir die Zugriffsrechte auf ,ausfOhrbar< und rufen die Shell-Prozedur mit
unterschiedlichen Parameter auf:
268
3.7.4
Shell·Prozeduren
$ chmod +x posi
$ posi was passiert
Zuweisung der einzelnen lelle des Aufrufes:
posl
was
passiert
•• •
Der Name der Shell·Prozedur lautet: posi
o
1
Es wurden 2 Parameter angegeben
Der 1. Parameter lautet: was
Der 2. Parameter lautet: passiert
Der 3. Parameter lautet:
Dies sind aile angegebenen Parameter:
was passiert
Die Nummer der She/l·Prozedur ist: 84
2
Die ProzeBnummern werden ab Hochfahren des Systems durchnumeriert
$ posi nochmal aufgerufen mit mehr als nur 3 Parametern
Der Name der Shell-Prozedur lautet: posi
Es wurden 8 Parameter angegeben
Der 1. Parameter lautet: nochmal
Der 2. Parameter lautet: aufgerufen
Der 3. Parameter lautet: mit
Dies sind al/e angegebenen Parameter: nochmal aufgerufen mit mehr
als nur 3 Parametern
Die Nummer der Shell-Prozedur ist: 85
Bild 3 -174: Beispiel Ausgabe der Positionsparameter
In dem ersten Beispiel sehen Sie, daB der Positions parameter $3 keinen Wert
enthalt. 1m zweiten Beispiel wurden mehr als drei Parameter Obergeben, obwohl
in der Prozedur nur die ersten drei abgefragt werden. Eine Shell-Prozedur Obernimmt aile Obergebenen Parameter, auch wenn sie nicht in der Prozedur abgefragt, also nicht benotigt werden.
Wenn eine Prozedur mit bestimmten Parametern aufgerufen werden soli, dann
mOssen Sie in der Shell-Prozedur eigens darauf abfragen. Doch davon spater,
wenn wir den Ablauf einer Prozedur von bestimmten Bedingungen abhangig
machen.
In der Praxis benotigen Sie Positionsparameter, wenn Sie unterschiedliche
Werte mitgeben wollen. Zu den bisher am meisten verwendeten Kommandos
gehort Is. Einmal haben wir es fOr das aktuelle Directory aufgerufen, ein andermal fOr /bin oder unsere Unterdirectories Uebungen, Texte usw. Schreiben wir
ein eigenes Kommando listen, das folgende Funktionen ausfOhrt:
o
Es soli ein Inhaltsverzeichnis mit Oberschrift ausgegeben werden;
ODie aufgefOhrten Dateien sollen alphabetisch sortiert werden, wobei GroBund Kleinbuchstaben gleichberechtigt sein sollen;
ODie Dateien sollen seitenweise auf dem Bildschirm angezeigt werden;
269
3
UNIX - praktisch angewandt
o
Das Kommando soli von unterschiedlichen Directories aufgerufen werden
k6nnen.
Versuchen wir es. Mit einem Editor erstellen wir die Datei listen mit folgendem
Inhalt:
#!/binlsh Befehl fOr die Shell, dieses Kommando mit der Bourne-Shell auszufOhren
# Shell-Prozedur, um das Inhaltsverzeichnis von Directories auszugeben
echo "Um die naechste Seite zu sehen, druecken Sie bitte die Aeturntaste. Wollen Sie das Programm abbrechen, geben Sie q ein.
Das Directory $1 enthaelt folgende Dateien:"
Is -F $1 I sort -f I pg
Bild 3 - 175: Beispiel einer Shell-Prozedur ,Listen eines Directories'
Muster 1 - Positionsparameter
Nachdem wir die Zugriffsrechte der Datei mit
chmod +x listen
auf ausfOhrbar gesetzt haben, k6nnen wir listen mit unterschiedlichen Parametern aufrufen:
$ listen
Um die naechste Seite zu sehen, druecken Sie bitte die Returntaste. Wollen Sie das Programm abbrechen, geben Sie q ein.
Das Directo1Jj enthaelt folgende Dateien:
h,.etute.
Keine Ersetzung der Variablen $1
da kein Parameter mitgegeben wurde
sicher'
tscich.
wsich'
Ohne Angabe eines Parameters gibt das
Is-Kommando das aktuelie Directory aus
IS er'
POSI'
W°F):
Ausgabe vom pg-Kommando
Bild 3 -176: Beispiel Aufruf der erstellten Shell-Prozedur ,listen'
Aufen Sie das gleiche Kommando mit e n
i em Parameter auf, erhalten Sie folgende Ausgabe:
270
3.7.5
Shell-Prozeduren
$ listen •.IUeb*
Um die naechste Seite zu sehen, druecken Sie bitte die Returntaste. Wollen Sie das Programm abbrechen, geben Sie q ein.
Das Directo~ ..IUebungen enthaelt folgende Dateien:
Ersetzung der Variablen $1 durch die
Datum
datum
von der Shell expandierte Angabe .JUeb'
inhalt
neu
neuer
ueb1
W°F):
Ausgabe vom pg -Kommando
Bild 3 -177: Beispiel Aufruf der erstellten Shell-Prozedur >/isten, mit Parameter
Bisher haben wir mit verhaltnismaBig einfachen Mitteln schon komfortable Kommandos geschrieben. Wir haben unterschiedliche Kommandos verwendet mit
Umleitung der Ausgabe, mit Dateinamenexpansion; wir haben Nachrichten mit
echo auf den Bildschirm ausgegeben, den Benutzer informiert, was ertun kann,
was passiert, und wir haben uber Variable unterschiedliche Werte zugeteilt. Um
den Benutzer zu fOhren und den Ablauf der Prozedur zu steuern, gibt es weitere
schone Werkzeuge.
3.7.5 Ablaufsteuerung einer Shell-Prozedur
Um den Ablauf einer Prozedur nach dem Wunsch des Benutzers zu steuern,
muBten wir ihn fragen, was er wunscht. Seine Antwort muB vom Rechner erkannt und ausgewertet werden. Wie Sie eine Frage auf den Bildschirm ausgeben konnen, wissen Sie bereits: Mit dem Kommando echo. Um die Antwort des
Benutzers zu lesen, gibt es das Kommando read,
Name einer Variablen (bzw. mehrere)
lesen
read - internes Shell-Kommando, um eine Antwort vom Terminal zu lesen
Mit dem Kommando read wird von der Standardeingabe bis zum Zeichen fOr
Zeilenende gelesen. Dieser Wert wird der Variablen zugewiesen mit dem Namen, den Sie mit read angeben:
Name= "ge/esene Zeile vom Bildschirm II
Den Inhalt der Zeile konnen Sie wahrend der Prozedur mit $Name verwenden.
Geben Sie mehrere Namen an, so erreichen Sie dam it, daB der eingegebene
Text aufgesplittet wird und die einzelnen Worter (Text jeweils bis zum nachsten
Leerzeichen) den Namen zugewiesen wird. Werden mehr Worter ubergeben als
271
3
UNIX - praktisch angewandt
Variablennamen zur VerfOgung stehen, wird dem letzten Namen der Rest der
Zeile zugewiesen.
Um die Funktion von read zu demonstrieren, schreiben wir eine kleine Prozedur
anzeigen, die den Benutzer fragt, welche Datei angezeigt werden soli. Die angegebene Datei soli dann mit Zeilennummern auf dem Bildschirm seitenweise angezeigt werden:
# Shell-Prozedur, um eine Datei mit Zeilennummern seitenweise anzuzeigen
echo 'Welche Datei 5011 angezeigt werden?"
read Antwort
echo "Um die naechste Seite zu sehen, druecken Sie bitte die Return-"
echo" taste. Wollen Sie das Programm abbrechen, geben Sie q ein. '
pr -n $Antwort I pg
Bild 3 -178: Beispiel einer Shell-Prozedur >Anzeigen einer Datei,
Muster 2 - read-Funktion
Haben Sie es schon mal erlebt, daB Ihr Terminal blockiert war? Dies passiert
u.a., wenn Sie versuchen, ein Directory mitpg, more oder cat anzuzeigen. Ein
Directory enthalt nicht druckbare Zeichen (binar, nicht ASCII) und kann deshalb
nicht mit den oben aufgefOhrten Kommandos gelesen werden. Auch ist nicht sicher, ob die yom Benutzer angegebene Datei Oberhaupt existiert. Wenn Sie einen sicheren Ablauf eines Kommandos erreichen wollen, mOssen Sie vorab prOfen, ob die Voraussetzungen erfOlit sind (sog. PlausibilitatsprOfungen). Wie
OberprOfen Sie, ob eine Datei existiert und welche Merkmale sie aufweist?
HierfOr gibt es das Kommando test. Das Kommando test hat mehrere Funktionen. Es wird verwendet:
272
o
um zu prOfen, ob eine Datei existiert, welchem Dateityp sie angehort und
welche Zugriffsrechte gesetzt sind;
o
o
um zu OberprOfen, ob Zeichenfolgen (Strings) vorhanden sind;
um Zeichenfolgen miteinander zu vergleichen. Hierbei kann auf Textgleichheit abgefragt werden, oder es konnen, wenn es sich um Zahlen handelt, algebraische Vergleiche (gleich, groBer gleich, kleiner, kleiner gleich,
nicht gleich) vorgenommen werden.
3.7.5
Shell-Prozeduren
I
,est [-r w x f d
PriJfen
i ] Dateiname
ob die Datai existiert und nicht leer ist
(GroBe ungleich nulO (size)
ob die Datei existiert und ein Directory ist
ob die Datei existiert und as sich um eine
normale Datei handelt (file)
ob die Datei existiert und ausfOhrbar ist
(Kommando) (executable)
ob die Datei existiert und Schreibertaubnis hat (write)
ob die Datei existiert und Leseertaubnis hat (read)
Es kann jeweils nur eine Option abgefragt werden
test - Kommando, um Dateien zu Oberpriifen
Dieses Kommando wird nur innerhalb von Shell-Prozeduren benutzt. Wenn Sie
z. B. prOfen wollen, ob die Datei listen ausfOhrbar ist, dann wOrden Sie das Kommando eingeben mit
test -x listen
Ais Ergebnis wird nur ein Wert zurOckgeliefert, der als erfolgreich (positiv - ExitStatus 0) von der Shell erkannt wird oder nicht erfolgreich (nicht positiv - ExitStatus ungleich 0). Sie sehen kein Ergebnis. Das Ergebnis kann jedoch abgefragt werden.
Die einfachste Form, den Ablauf von Kommandos zu steuern, ist das nachste
Kommando nur dann zu starten, wenn das vorherige erfolgreich war. HierfOr
werden die Kommandos mit && verknOpft.
Kommando1 && Kommando2
&& - Zeichen fUr bedingte AusfUhrung von Kommandos:
nur wenn das vorherige erfolgreich war,
wird das nachfolgende ausgefUhrt
Um in unserer Shell-Prozedur anzeigen zu OberprOfen, ob es sich bei der angegebene Datei um eine normale Datei (-f) handelt, konnen wir das Kommando
test verwenden. Nur wenn dies zutrifft, wird die Datei angezeigt:
test -f $Antwort && pr -n $Antwort I pg
Falls es sich bei der Antwort nicht um eine Datei handelt, wOrde das Kommando
test nicht erfolgreich sein und damit die nachfolgenden Kommandos nicht mehr
ausgefOhrt werden. Mit dem doppelten Pipezeichen II kann gesteuert werden,
daB nur dann das nachfolgende Kommando ausgefOhrt wird, wenn das vorherige nicht erfolgreich war. z. B.:
test -f $Antwort II echo "$Antwort ist keine Datei/"
273
3
UNIX - praktisch angewandt
Kommando 1 II Kommando2
II - Zeichen fur bedingte Ausfuhrung von Kornrnandos:
nur wenn das vorherige nicht erfolgreich war,
wird das nachfolgende ausgefUhrt
Mehr M6glichkeiten, in Abhangigkeit von dem Erfolg oder Nichterfolg eines
Kommandos weitere Kommandos zu steuern, bietet die if-Bedingung.
Wenn es sich bei Antwort um eine normale Datei handelt, dann soli sie am Bildschirm angezeigt werden, sonst soli eine entsprechende Nachricht ausgegeben
und die Prozedur beendet werden. Wir wollen also den Ablauf der Prozedur
steuern, abhangig von bestimmten Bedingungen.
In dem vorigen Absatz sind die Worte wenn, dann und sonst durch Fettdruck
hervorgehoben. Ahnlich wie in der natOrlichen Sprache wird auch in der ShellProgrammierung (und in vielen h6heren Programmiersprachen) der Ablauf einer
Prozedur Ober ,if (wenn) then (dann) else (sonst), gesteuert.
Sehen wir uns hierzu die Regel an:
Wie verwenden Sie die if-Bedingung?
if Kommando(Bedingung) _ _ _ _ _ wenn das und das zutrifft
fi
then
Kommandofolge1
_ _ _ dann tue ....
[else
Kommandofolge2
- - - [sonst tue ..• J
- - - - - - - - - - - - - fertig (Ende der Abfrage)
if then else fi - internes Shell-Kornrnando, urn den Ablauf zu steuern
Mit fi wird die if-Abfrage beendet (es ist die Umkehrung von if). Die Worte if,
then, fi rnussen vorhanden sein und jeweils in einer eigenen Zeile stehen.
Schreiben wir unsere Forderung im Programmierstil:
if test -f $Antwort
fi
274
Wenn die angegebene Datei ($Antwort)
existiert und es sich urn eine normale Datei handelt
(test -Q
then pr -n $Antwort I pg
dann soli sie am Bildschirm angezeigt
werden (pg)
else echo "$Antwort ist keine Datei" _ sonst soli eine entsprechende Nachricht
exit
ausgegeben und die Prozedur beendet werden (echo; exit)
Ende (fi) Ende der Abfrage
Bild 3 -179: Beispiel if then else fi
3.7.5
Shell-Prozeduren
Wenn das Kommando test -f $Antwort eriolgreich ist, d.h., bei der gelesenen
Antwort (read Antwort) handelt es sich um eine existierende normale Datei, dann
(then) wird sie am Bildschirm angezeigt (pr -n Datei I pg). Nach then konnen
auch weitere Foigen von Kommandos angegeben werden, so kann etwa vorab
eine Nachricht auf den Bildschirm ausgegeben werden. War das Kommando
test -f $Antwort nicht eriolgreich, d. h., entweder existiert unter dem aktuellen
Directory keine Datei mit dem angegebenen Namen, oder es handelt sich nicht
um eine normale Datei, sondern z. B. um ein Directory, dann springt die Shell zu
else und fOhrt die dart aufgefOhrten Kommandos der Reihe nach aus. Ais AbschluB erwartet die Shell ein fi (Ende der Abfrage).
Erganzen wir die Shell-Prozedur anzeigen von Bild 3 -178 auf Seite 272 um
nachfolgende Zeilen (sie sind umrandet hervorgehoben).
# Shell-Prozedur, um eine Datei mit Zeilennummern seitenweise anzuzeigen
echo "Welche Datei soli angezeigt werden?"
if test -f Antwort
m Ie naechste Seite zu sehen, druecken Sie bitte die Return-'
ec 0
echo' taste. Wollen Sie das Programm abbrechen, geben Sie q ein.·
~ -n ~Antwort I ~
hO · Antwort jst:ne Datei ' : exit I
lEJ
Bild 3 -180: Beispiel einer Shell-Prozedur >Anzeigen einer Datei,
Muster 3 - erganzt um das Kommando test
und die Abfrage mit if then else fi
Bei diesem Beispiel haben wir das Shell-internes Kommando exit verwendet:
exit
I
abtreten, Ausgang
exit - Kommando, um eine Shell-Prozedur vorzeitig zu beenden
In dem obigen Beispiel ware es nicht notwendig gewesen, exit ausdrOcklich anzugeben, da die Prozedur keine weiteren Kommandos mehr beinhaltet, also sowieso am Ende war. WOrden weitere Kommandos folgen, konnte durch exit ein
frOhzeitiger Abbruch der Prozedur erreicht werden.
Wie konnen Sie if-8edingungen schachteln?
If-Bedingungen konnen auch geschachtelt werden. Dies bedeutet, daB Sie zum
Beispiel bei then wieder eine oder mehrere Abfragen mit if starten konnen.
Nach jedem if muB wieder ein then folgen und mit fi abgeschlossen werden.
Die nachstehende Grafik soli dies verdeutlichen:
275
3
UNIX - praktisch angewandt
if Kommando (Bedingung)
then if Kommando (Bedingung)
then Kommandofolge
(evtl. weitere Kommandofolgen)
if Kommando (Bedingung)
then Kommandofolge
fi
fi
fi
(weitere Kommandofolgen)
Bild 3-181: Verschachtelung von if-Bedingungen
Bei Verschachtelungen kann man leicht den Oberblick verlieren. Es empfiehlt
sich deshalb, bei Prozeduren mit verschachtelten if-Bedingungen jeweils einzurucken, um die Zusammenhange sichtbar hervorzuheben. Wird eine weitere ifBedingung in Verbindung mit else eingegeben, so kann sie als etif zusammengezogen werden. 'etif, verlangt ebenso ein then wie if. Allerdings benetigt
elif keinen eigenen AbschluB mit fi.
Eingabe mit else if
alternativ elif
if Kommando (Bedingung)
then Kommandofolge
else if Kommando (Bedingung)
then Kommandofolge
it Kommando (Bedingung)
then Kommandofolge
elit Kommando (Bedingung)
then Kommandofolge
fi
ti
---------- _
_I keine Eingabe
I
fi
Bild 3-182: Alternative Eingabe mit 'elif, statt 'else if,
Selbstverstandlich kennen weitere Verschachtelungen nach elif erfolgen und
kombiniert werden mit if then. Zu tiefe Verschachtelungen sind jedoch unubersichtlich und sollten vermieden werden. Wenden wir uns deshalb vom Labyrinth
der if- und elif-Bedingungen ab und befassen uns mit praktischen Anwendungen.
276
3.7.5
Shell-Prozeduren
Wir wollen den Benutzer unserer Kommandos noch mehr in den Ablauf einer
Prozedur einbeziehen. Er soli entscheiden, ob etwas geschehen soli oder nicht.
Wie kennen wir das erreichen?
o
Wir geben eine Frage mit dem Kommando echo auf den Bildschirm aus und
Olesen die Antwort mit dem Kommando read.
o
Wenn die Antwort mit einer vorgegebenen Zeichenkette Obereinstimmt
if test "',
dann soli eine bestimmte Kommandofolge durchgefOhrt werden (z. B. eine
Datei gelescht werden).
Bisher haben wir das Kommando test nur auf die Existenz von Dateien mit bestimmten Zugriffsrechten verwendet.
Wie verwenden Sie das test-Kommando, um eine ASCII-Zeichenkette
zu OberprOfen?
Das Kommando test kann eine Zeichenkette (wie sie z. B. eine Variable enthalt,
die durch das Kommando read erstellt wurde) Oberpriifen nach folgenden Merkmalen:
t' [:~
I
Zeichenkette
I
n (not zero) ob die Zelchenkette mcht leer 1St
PriJfen
oder
z (zero) ob die Zeichenkette leer ist
test - Kommando, um Zeichenketten zu OberprOfen
Auch hier gilt: Ais Ergebnis liefert das Kommando test nur einen sog. Exit-Status 0 fOr erfolgreich oder ungleich 0 fOr nicht erfolgreich. Auch wenn Sie Zeichenketten miteinander vergleichen, kennen Sie nur den Exit-Status abfragen
(z. B. Dber if then else).
Handelt es sich bei der Zeichenkette um ASCII-Text, dann kennen Sie aufTextgleichheit OberprOfen mit:
Zeichenkette-A
=
Zeichenkette-B
Beachten Sie, daB unbedingt Leerzeichen zwischen den einzelnen Feldern stehen mOssen!
test - Kommando, um Zeichenketten (Text in ASCII)
auf Gleichheit zu prOfen
277
3
UNIX - praktisch angewandt
Wollen Sie abfragen, ob der Text nicht gleich ist, vergleichen Sie mit:
if
test Zeichenkette-A
1=
Zeichenkette-B
hler 1st keln Leerzelchen dazwischenl
test - Kommando, um Zeichenketten (Text in ASCII)
auf Nichtgleichheit zu prufen
Das Kommando test ist erfolgreich, wenn Zeichenkette-A ,nicht gleich< der Zeichenkette-B ist. Das Ausrufezeichen zusammen mit Gleichheitszeichen bedeutet eine Negation (a/so ung/eich). Die Negativ-Abfrage ist jedoch mit Vorsicht zu
benutzen. Fragen Sie namlich ab, ob die Antwort nicht ,ja< ist, dann gelten aile
anderen Angaben als richtig (also auch +).
l>
Auch bei Dateien (siehe auch Seite 273) kennen Sie abfragen, ob die Datei
nicht existiert bzw. keine Schreib- oder Leseerlaubnis hat, kein Directory
ist. Doch Vorsicht, hier wird zwischen dem abzufragenden Wert (-fdrwx)
und dem Ausrufezeichen ein Leerzeichen gesetzt, z. B.
if test! -f $Antwort
Das Kommando test ist hier erfolgreich, wenn die Zeichen in $Antwort keiner
normalen Datei in dem aktuellem Directory entsprechen.
Ab UNIX System V kennen Sie das test-Kommando auch in vereinfachter Form
eingeben. Statt das Kommandos test auszuschreiben, wird der Vergleich in ekkige Klammern gesetzt. Diese Form gilt auch fUr aile anderen Abfragen mit test.
Zeichenkette-A
Beachten Sie. daB unbedingt Leerz8lChen zwischen den einzelnen Feldem setn mOssenl
test - modernere Schreibweise
In unseren Beispielen verwenden wir test in der auch fOr die alteren UNIX-Versionen gOltigen Form (sie ist meiner Ansicht weniger fehlerantallig, das ist aber
sicher nur eine Gewehnungssache).
Wenn Sie in einer Prozedur eine Frage stellen, kennen Sie z. B. mit test abfragen,
ob die Antwort ja ist. Sehen wir hierzu einen Teil einer Kommandoprozedur:
278
Shell-Prozeduren
3.7.5
echo "soli die Datei $1 geloscht werden?"
read Antwort
oder: if [ "$Antwort" =
if test "$Antwort" = "jaN
then rm $1
fi
"jaN J
Bild 3 -183: Beispiel test-Abfrage auf Textgleichheit
+
Bei diesem Vergleich wird nur auf >ja< geprOft. Wenn nur
oder >n< oder gar
nichts eingeben wird, ist das fOr den Ablauf der Prozedur wie ein >nein< - d. h.
nicht erfolgreich.
I>
Generell sei noch darauf hingewiesen, daB es am sichersten ist, wenn Sie
Zeichenketten in Anfuhrungszeichen setzen (also auch die Variable, die
als Zeichenkette ersetzt wird), damit werden auch evtl. Leerzeichen oder
>keine Eingabe< (wenn z. B. der Benutzer nur die Return-Taste drDckt) von der
Shell erkannt (test gibt dann eine Fehlermeldung >argument missing' aus, und
die Shell-Prozedur wOrde abgebrochen werden)
Um mehrere >richtige Antworten, gelten zu lassen, konnen Sie die Abfrage mit
test kombinieren, d. h. verschiedene PrOfungen miteinander verbinden (Iogische VerknDpfungen). HierfOr gibt es die Optionen
test
1. Vergleich
[~rl
I
]
2.
I (and)
Vergleich [ weitere VerknDpfungen
1
und-Verknupfung, beide Abfragen mOssen erlOlit sein
(or) oder-VerknOpfung, eine von beiden Abfragen muB erlOlit sein.
test - Kombination mit -a (and, und) und -0 (or, oder)
Eine VerknOpfung von zwei Abfragen kann z. B. dazu verwendet werden, eine
Antwort mit >ia' oder >i< als richtig anzuerkennen (siehe nachfolgendes Beispiel:
Teil eines Loschkommandos).
Eine VerknOpfung von zwei Bedingungen ist z. B. dann erforderlich, wenn der
Benutzer nur dann eine Datei kopieren darf, wenn er leseberechtigt ist und nicht
bereits eine Datei mit dem neu zu vergebenden Namen existiert (siehe nachfolgendes Beispiel: Teil eines Kopierkommandos).
279
3
UNIX - praktisch angewandt
z. B. Teil eines Loschkommandos:
echo 'soli die Datei $1 gelascht werden?'
read Antwort
if test u$Antwort" = Uja" -0 u$Antwort"
then rm $1
fi
= Uj"
z. B. Teil eines Kopierkommandos:
echo ' Welche Datei 5011 kopiert werden?'
read Datvon
echo ·Wie soli die kopierte Datei heissen?"
read Datnach
if test -r $Oatvon -a! -f $Oatnach
fi then cp $Datvon $Datnach
Bild 3-184: Beispiel Kombination des test-Kommandos (-a,-o)
Bisher haben wir mit dem test-Kommando Dateien OberprOft oder Zeichenfolgen (ASCII-Text) miteinander verglichen. Handelt es sich bei den zu vergleichenden Werten um Zahlen, dann wird ein algebraischer Vergleich durchgefOhrt.
Wie verwenden Sie test, um Zahlenwerte zu vergleichen?
Der Vergleich wird in ahnlicher Form wie bei Text-Zeichenketlen durchgefOhrt.
Allerdings dart hierbei nicht das Gleichheitszeichen verwendet werden, sondern der Vergleich wird mit der jeweiligen AbkOrzung der englischen Warter fOr
gleich, kleiner, graBer vorgenommen. Sehen wir uns hierzu eine Tabelle an, die
die mag lichen Vergleiche zeigt:
------------~------------~-,
Abfrage auf
Kommandoelngabe
equal
gleich
not equal
nicht gleich
alternative Schreibwelse
test
n1·
-eq
n2
[ n1
-eq
n2 ]
test
n1
-ne
n2
[ n1
-ne
n2 ]
test
n1
-It
n2
[ n1
-It
n2 ]
test
n1
-Ie
n2
[ n1
-Ie
n2 ]
test
n1
-gt
n2
[ n1
-gt
n2 ]
test
n1
-ge
n2
[ n1
-ge
n2 ~
---j
less than
kleiner als
less equal
kleiner gleich
greater than
groBer als
greater equal
groBer gleich
-
-
*) n1 und n2 stehen fOr die beiden Zahlen, die verglichen werden soilen
280
test - Kommando, um Zahlen zu vergleichen
----1
3.7.6
Shell-Prozeduren
--------------------~------------------
Wollen Sie z. B. in einer Prozedur sicherstellen, daB mindestens 2 Parameter angegeben werden mOssen, so konnen Sie mit test -It abfragen, ob weniger als 2
Parameter Obergeben wurden. Wurden weniger als 2 Parameter angegeben, so
soli die Prozedur abgebrochen werden. Sehen wir uns hierzu ein Beispiel an:
Teil einer Shell·Prozedur mit Abh'age auf die Anzahl der Parameter
if test
"$#" -It
"2"
--
Wenn die Anzahl der Parameter
k1einer als 2 ist, dann ...
then echo "Es mOssen mindestens 2 Parameter angegeben werden"
exit
fi
Bild 3 - 185: Beispiel Teil einer Shell-Prozedur mit algebraischem Vergleich
Mit den bisher kennengelernten Befehlen konnen Sie nun eigene, schon anspruchsvolle Prozeduren schreiben.
3.7.6 Beispiele zur Erstellung von eigenen Shell-Prozeduren
Eine Shell-Prozedur ist ein kleines Programm. Bevor Sie ein .Programm< schreiben, planen Sie. Wenn wir in unserem Beispiel ein eigenes Kommando zum Loschen von Dateien schreiben wollen, Oberlegen wir uns erstmal:
1.
Was wollen wir mit dem Kommando erreichen?
2.
Welche Fehlerquellen wollen wir unbedingt ausschlieBen?
3.
Welche einzelnen Schritte sind notwendig (Abhangigkeit - Struktur), und welche Kommandos verwenden wir?
Programmierer verwenden fOr groBe Programme ein FluBdiagramm (s. Allgemeine EinfOhrung, Bild 1-5 auf Seite 15 oder andere Strukturplane. Wir
wollen uns bei den kleinen Prozeduren mit einer Obersichtlichen Autzahlung
der einzelnen Schritte begnOgen. Spater werden Sie die Shell-Kommandos
wie eine Sprache benOtzen und sie ebenfalls in Obersichtlicher Form aufschreiben (EinrOckung z. B. bei if-Abfragen).
Beginnen wir mit einem Loschprogramm.
1.
Was wollen wir mit dem Kommando erreichen? Das Kommando soli den
Benutzer fragen, welche Datei gel6scht werden soli oder den Obergebenen
Parameter als zu loschende Datei annehmen. Um sicherzugehen, daB es die
richtige Datei ist, soli versucht werden, den Inhalt der Datei zu erkennen. Der
Benutzer soli sich den Inhalt der Datei vorab ansehen k6nnen. Erst nach
Bestatigung wird die Datei geloscht.
281
3
UNIX - praktisch angewandt
2.
3.
Welche Fehlerquellen wollen wir ausschlieBen? Es konnen keine Directories
geloscht werden. Es darf keine Datei geloscht werden, fOr die der Benutzer
keine Schreiberlaubnis besitzt.
Verarbeitungshinwaise
Einzelne ScMlte
1st ein Parameter ubergeben worden?
il test $# -ne 0
Wenn ja, ist der 1. Parameter die zu loschende
Datei
$1 der Variable loesch zuweisen
Sonsl Iragen, welche Datei geloscht werden soli
und die Anwort lesen
echo
read loesch
PrOlen. ob die zu loschende Datai ein Directory- - I -i-IC-test -d $"""Ioe
- sc-:h -0 I -w $Ioesch
ist oder ob keine Schreiberlaubnis fUr den Benulzer besteht
I
Wenn dies zulrifft, Nachricht ausgeben, daB die
Datel nichl geloescht werden dar! und Prozedur
beenden
echo
exit
--+--
Aile Bedingungen sind nun erlOlI!.
Die zu loschende Datei klassifizieren und Iragen;- file - echo -; read Antw ob sie angezeigt werden soli:
il test $Antw = ja; then pg
Fragen, ob die Datei wirklich geloschl werden
soli?
Wenn nein - Prozedur beenden
Wenn ja - Datei loschen.
echo
read Antw - il test $Antw = Ja
exit
- - - - - + -rm $Ioesch
L-
Nun, die Prozedur ist schon fast fertig. Jetzt brauchen wir nur noch sorgfaltig
den Rahmen ausfOllen. Achten wir also darauf und schreiben, um jede if-Bedingung klar zu erkennen, die Prozedur Obersichtlich mit entsprechenden EinrOkkungen. Um Ihnen das Nachvollziehen der einzelne Schritte besser zu ermoglichen, sind Kommentarzeilen (kursiv) eingefOgt und die Kommandos in
Fettschrift hervorgehoben. Jede if-Bedingung ist mit einem Kastchen umrandet:
282
3.7.6
Shell-Prozeduren
#! Ibinlsh
# She/l-Prozedur, um Dateien zu loschen
#
#
# 1st ein Parameter Obergeben worden?
if test "$#" -ne "0"
Wenn ja, ist der 1. Parameter die zu loschende Datei
Zuordnung einer Variablen
then loesch="$1"
Wenn nein, dann fragen we/che Datei ge/oscht werden sol/.
else echo" Welche Datei soli geloscht werden?"
read loesch # Die Antwort lesen
fi
-
-
# Priifen, ob die zu loschende Datei ein Directory ist oder keine Schreib# erlaubnis fOr den Benutzer besteht
Abfrage auf negativen Wert
if test -d $Ioesch -0 ! -w $Ioesch
.Wenn dies zutrifft, Nachricht ausgeben, daB die Datei
#
#
nicht ge/oescht werden darf
then echo" Die Datei $Ioesch darf nicht geloscht werden"
fi
exit
# und Prozedur beenden
# Wenn die Bedingungen aile erfOIlt sind, dann die zu loschende Datei
# klassifizieren und fragen, ob sie angezeigt werden soli
echo" Bei der Datei $Ioesch handelt es sich wahrscheinlich um:"
file $Ioesch
echo" Soli die Datei $Ioesch angezeigt werden?"
read Antw
if test "$Antw" = "jail -0 "$Antw" =
then pg $Ioesch # wenn ja, anzeigen:
fi
"j"
# Fragen ob die Datei wirklich ge/oscht werden 501/
echo "Soli die Datei $Ioesch wirkJich geloescht werden?"
read Antw
"j"
if test "$Antw" = "ja" -0 "$Antw" =
then rm $Ioesch # wenn ja, Datei loschen.
fi
Bild 3 -186: Beispiel der Shell-Prozedur - loschen
Bei der letzten if-Bedingung wurde keine Kommandofolge eingegeben fUr den
Fall, daB nicht mit ja geantwortet wurde. Wenn die Datei also nicht gel6scht werden soli, wurde die Shell-Prozedur beendet werden. Nun, diese Abfrage ist sowieso die letzte Anweisung (Statement), deshalb ist hier auf .else exit, verzichtet
worden. Probieren Sie dieses Beispiel doch mal aus oder schreiben Sie eine
283
3
UNIX - praktisch angewandt
ahnliche Shell-Prozedur. Andern Sie mit chmod +x die Zugriffsrechte und rufen
Sie die Prozedur auf. Sie werden sehen, es passiert zu leicht, daB sich ein kleiner
Fehler eingeschlichen hat. Vielleicht erhalten Sie folgenden Fehlerhinweis:
Syntax error at line .. 'end of file not expected'
(Rege/fehler in Zeile ... 'Ende der Datei nicht erwartet?
Mit dieser lapidaren Fehlernachricht, die sich nur auf die letzte Zeile bezieht,
kennen Sie leider nicht vie I anfangen. Die meisten Fehler in Shell-Prozeduren
sind zurOckzufOhren auf:
1.
AnfUhrungszeichen treten nicht paarweise auf.
2.
if-Bedingung wurde ohne then verwendet oder nicht mit fi abgeschlossen,
oder die entsprechenden Anweisungen (if, then, else) stehen nicht in eigenen
Zeilen. Spater werden wir weitere Ablaufsteuerungen mit for do done, mit
while do done oder case esae kennenlernen, bei denen die gleiche Fehlerquelle besteht.
3.
Das Kommando test wurde nicht mit Leerzeichen eingegeben, oder die
zu vergleichende Zeichenkette nicht in AnfOhrungszeichen gesetzt.
4.
Variablen wurden falsch gebildet, z. B. wurden Leerzeichen eingegeben anstatt >=c ohne Leerzeichen zwischen Namen der Variablen und dem zugewiesenem Wert zu verwenden; bzw. der Wert wurde nicht in AnfOhrungszeichen gesetzt, obwohl er Leerzeichen beinhaltet.
5.
Variablen wurden ohne $-Zeichen angegeben (Ersetzung des Wertes).
6.
Klammern wurden geeffnet, aber nicht geschlossen.
7.
Schreibfehler - z. B. Zuweisung bzw. spatere Abfrage der Variablen mit falschem Namen
Um eventuelle Fehler leichter zu finden, kennen Sie zu Beginn der Shell-Prozedur das Kommando set mit entsprechenden Optionen setzen:
Setzen von
Shell-Optionen
(execute)
aile ausgefUhrten Befehle werden angezeigt
Minuszeichen ohne weitere Angabe
bedeutet ZUrUcksetzen der Option x ,v
(verbose)
aile Zeilen der Prozedur werden angezeigt
set - Kommando, um Shell-Optionen zu setzen
Steht set -xv am Anfang einer Shell-Prozedur, so kennen Sie den Ablauf der
Prozedur verfolgen und sehen, wie die Variablen oder Metazeichen ersetzt wurden.
284
3.7.7
Shell-Prozeduren
3.7.7 Schleifenverarbeitung
Sobald eine (oder mehrere) Anweisungen nicht nur einmal durchgefOhrt werden
sollen, sondem mehrmals, benotigt man eine Schleife, so etwa, wenn eine Foige
von Kommandos so oft durchlaufen werden soli, wie Parameter mitgegeben
wurden.
Eine Schleife besteht aus drei Teilen:
o
dem Schleifenkopf (Schleifenaufrufe: for, while, until)
o
dem Schleifenrumpf, dies sind die mehrmals auszufOhrenden Kommandos
o
der Schleifenklammerung (do •• done).
Um eine Schleife, eine mehrmalige Wiederholung von Kommandos, einzuleiten,
gibt es unterschiedliche Aufrufe, je nachdem in welcher Abhiingigkeit die Wiederholung der Kommandofolgen steht. Die nachstehende Obersicht faBt die
Moglichkeiten zusammen:
Kommando zur
Einleitung der Schleife
Wiederholung der Kommandofolge
abhangig von:
for Name
do
Kommandoliste ....
der Anzahl der beim Aufruf der ShellProzedur ubergebenen Parameter. Wurden z. B. 3 Parameter ubergeben, wird
die angegebene Kommandoliste von do
bis done dreimal durchlaufen.
done
for Name in Wolt1 .. Wortn
do
Kommandoliste ....
done
while Kommando
da
Kommandoliste ....
done
until
Kommando
do
Kommandoliste ....
done
der Anzahl der angegebenen Worter.
Geben Sie z. B. ein
for i in otto hugo bernd iris
wird die angegebene Kommandoliste
viermal durchlaufen.
dem Ergebnis des Kommandos nach
while. SOlange die Kommandofolge erfolgreich ist (Exit-Status 0), wird die
Kommandoliste durchlaufen. Z. B. solange die Variable Antw den Wert ja hat,
wird die Kommandoliste zwischen do ..
done wiederholt.
dem Ergebnis des Kommandos nach
until. Solange die Kommandofolge nicht
erfolgreich ist (Exit-Status ungleich 0)
wird die Kommandoliste zwischen do
und done durchlaufen. Es handelt sich
um die Umkehrung der while-Schleife.
Bild 3 -187: Obersicht moglicher Schleifenkommandos
285
3
UNIX - praktisch angewandt
Wie verwenden Sie die for-Schleife?
Innerhalb einer Shell-Prozedur wollen Sie einen bestimmten Vorgang fOr aile
Obergebenen Parameter wiederholen.
Mit dem Kommando for werden aile bei dem Aufruf der Shell-Prozedur angegebenen Parameter der Reihe nach bearbeitet. Die Schleife wird aufgerufen mit
for Name. Ahnlich wie bei dem Kommando read weist das for-Kommando einer
frei definierbaren Variablen Werte zu, und zwar nacheinander die angegebenen
Parameter. FOr jeden Obergebenen Wert werden die zwischen do und done
aufgefOhrten Kommandos ausgefOhrt. Rufen Sie z. B. eine Shell-Prozedur (tue),
die eine for-Schleife enthalt, mit 3 Parametern auf (tue otto hans fritz), so wird die
for-Schleife dreimal durchlaufen. Beim 1. Durchlauf erhalt die Variable den Wert
otto, beim 2. Durchlauf den Wert hans und beim 3. Durchlauf den Wert fritz.
Sehen wir uns die Syntax von for an:
for
Name
do
done
Kommandoliste ....
Name der Variablen, die
nacheinander den Wert
von $1 -$n Obernimmt
Solange ein Wert da ist,
tue
fertig - gehe zu Beginn
for - Kommando, um eine Schleife einzuleiten
Die Anzahl der Schleifendurchlaufe ist gleich der Anzahl der Parameter.
Lassen Sie es uns an einem Beispiel ausprobieren. Sie erinnern sich an unser
Kommando listen, mit dem wir die Liste eines Directories anzeigen. Das Directory wurde als Parameter Obergeben. In der Shell-Prozedur wurde die Positionsvariable $1 verwendet, um jeweils den Namen des angegebenen Directories einzusetzen (Is -F $1 I sort -f I pg).
Wenn Sie mehrere Directories angegeben hiitten, ware nur von dem ersten $1
ein Inhaltsverzeichnis ausgegeben worden. Wenn wir statt $1 nun $* einsetzen,
wOrden die Inhaltsverzeichnisse aller Directories auf einmal ausgegeben und ineinander sortiert angezeigt werden. Wir wollen aber fOr jedes Directory, fOr sich
sortiert, eine alphabetische Liste der Dateien erhalten. Um nun der Reihe nach
fOr jedes der angegebenen Directories ein Inhaltsverzeichnis zu erhalten, benbtigen wir eine Variable, die nacheinander den Wert des jeweils nachsten Parameters zugewiesen bekommt. Genau dies erreichen wir mit einer for-Schleife.
Andern wir das Kommando listen so um, daB eine for-Schleife durchlaufen wird.
Damit Sie verfolgen kbnnen, was im Einzelnen passiert, schreiben wir vor den
Kommandoablauf set -x (Anzeige aller ausgefOhrten Kommandos).
286
3.7.7
Shell·Prozeduren
Wir setzen jetzt das Kommando for dir do erst nach der Nachricht mit echo,
damit der Hinweis uber das Programm pg nicht bei jedem anzuzeigenden Directory erscheint. AuBerdem werden wir prufen, ob es sich uberhaupt um ein Directory handelt. Sie sehen dabei, daB Sie innerhalb von Schleifen if-8edingungen
und weitere Schleifen aufrufen konnen. Also, auch bei Schleifen ist ein verschachtelter Aufruf erlaubt. In der nachstehenden Abbildung sind die vorgenommenen Anderungen mit einem helleren Raster herausgehoben:
#! /bin/sh
# Shell-Prozedur, um das Inhaltsverzeichnis von Directories auszugeben
echo 'Um die naechste Seite zu sehen, druecken Sie bitte die Return-"
echo 'taste. Wollen Sie das Programm abbrechen, geben Sie q ein. "
set -x
Ab hier soli die Verarbeitung der Reihe nach fUr aile Parameter gelten:
for dir - Schleifenkopf
do
if test -d ' $dir'
then
echo "Das Directory ' $dir' enthaelt folgende Dateien:"
Is -F "$dir' Isort -f I pg
fi
done
------------------------------------------------1
a.
~
Ol
c:
2
Q)
5i
E
E
bl
~
~
:2
<0
Rufen wir das Kommando nun auf (vom Directory lusr/kurs/monika):
$ listen Ueb* Texte
Um die naechste Seite zu sehen, druecken Sie bitte die Returntaste. Wollen Sie das Programm abbrechen, geben Sie q ein.
+ echo Das Directory Uebungen enthae/t fo/gende Dateien:
Das Directory Uebungen
enthae/t fo/gende Dateien:
,
+ /s -F Uebungen - - - - - - - Obemahme des 1. Parameters
+ pg
Ueb' wurde in Uebungen expandiert
+ sort-f
Datum
Die mit .+, gekennzeichneten Zeilen sind
die von der Shell ausgefUhrten Kommandatum
dos, die mit set -x angezeigt werden.
inhalt
neu
neuer
ueb1
(fOF):
Die Returntaste wurde gedruckt
Ausgabe vom pg-Kommando
+ echo Das Directory Texte enthae/t fo/gende Dateien:
Das Directory Texte enthae/tfo/gende Dateien:
+ /s -F Texte
'
Obernahrne des 2. Parameter: Texte
+ sort-f
+pg
kekse
sprueche
(EOF):
Bild 3 -188: Beispie/ Prozedur ./isten< erganzt mit einer for-Sch/eife
287
3
UNIX - praktlsch angewandt
Ais Namen der Variablen haben wir dir genom men, um anzudeuten, daB diese
Variable die Namen jener Directories der Reihe nach erMlt, die wir als Parameter
dem Kommando listen mitgeben.
Wie Sie sehen, wurde die Prozedur zweimal ausgefOhrt. Beim ersten Lauf wurde
fOr $dir >Uebungen< eingesetzt, beim zweitenmal ,Texte<.
Wie wird das Kommando .for Name in Wort ... ' verwendet?
Dieses Kommando funktioniert ahnlich wie das Kommando for ... do. Der Wert
der Variablen Name wird hier jedoch nacheinander durch die ,Worter< ersetzt,
die nach in stehen. Wenn z. B. in einer Prozedur fOr aile Dateien des aktuellen
Directories bestimmte Routinen ablaufen sollen, so kann dies erreicht werden
durch die Angabe von
for datei in *
Das Sternchen wird durch die Shell mit allen Dateinamen des aktuellen Directories expandiert. Der Variablen datei wird als Wert der Reihe nach jeder einzelne
Dateiname zugewiesen. Die folgenden Kommandos zwischen do und done,
werden fOr jede Datei durchgefOhrt. Sehen wir uns hierzu Funktionen des Kommandos an:
for
Name
I
in
!
Wort 1 Wortn -,
do
Kommandoliste ....
done
!
Wert, der der Variablen
Name zugeordnet wird
Solange ein Wert da ist,
tue
Ende der Schleife
for in do done - Kommando, um eine Schleife einzuleiten,
die so oft durchlaufen wird, wie Worter nach .in. angegeben wurden.
Um an einem Beispiel die einzelnen Funktionen auszuprobieren, erstellen wir
uns eine Shell-Prozedur, die aile Dateien eines Directories OberprOfen 5011. 1m
einzelnen sollen folgende Schritte durchgefOhrt werden:
288
1.
Feststellen, ob es eine normale Datei ist, wenn nicht,
nachste Datei bearbeiten.
2.
1st es eine Datei, dann den wahrscheinlichen Dateiinhalt feststellen (file).
3.
Fragen, ob die Datei angezeigt werden 5011.
4.
Wenn ja, mit pg die Datei ausgeben.
5.
Wenn nein, fragen, ob die Datei gel6scht werden 5011.
6.
Wird mit ja geantwortet, wird die Datei gel6scht.
7.
Danach 5011 die nachste Datei bearbeitet werden
(Ende der Schleife).
3.7.7
Shell-Prozeduren
Auch in dieser Prozedur werden die einzelnen Schritte in Schragschrift als Kommentarzeile (#) angegeben und die eigentlichen Kommandos in Fettschrift.
Wir ben6tigen auBerdem ein Kommando, um an das Ende einer Schleife zu
springen, d. h. den Rest der Schleife zu Oberspringen und mit dem nachsten
Schleifenwert fortzufahren. HierfOr gibt es das Kommando
continue
fortfOhren
continue - Kommando, um mit der nachsten Schleife fortzufahren
#! /binlsh
# Shell-Prozedur, um aile Dateien des aktuellen Directories zu ueberpruefen
for datei in * #. wird in aile Dateien expandiert
Schleifenkopf
# 1. Feststellen, ob es eine normale Datei ist, wenn nicht, naechste Datei
#
bearbeiten
# Beginn der Schleife
do if test! -f "$datei"
then
fi continue
# 2. 1st es eine Datei, dann den wahrscheinlichen DateHnhalt feststellen
echo" bei $datei handelt es sich wahrscheinlich um:"
file "$datei"
# 3. Fragen, ob die Datei angezeigt werden soli
echo "Soli $datei angezeigt werden? (ja/nein)"
# 4. Wenn ja, mit pg die Datei ausgeben
read Antw
if test "$Antw" = "ja" -0 "$Antw" = "j"
fi then pg $datei
# 5. Fragen, ob die Datei ge/oescht werden soli
echo "Soli $datei geloescht werden? (ja/nein)"
# 6. Wird mit ja geantwortet, die Datei /oeschen
readAntw
if test "$Antw" = "ja" -0 "$Antw" ="j"
fi then rm $datei
# 7. Die naechste Datei bearbeiten
done
# Ende der Schleife
Bild 3 -189: Beispiel der Shell-Prozedur - 'pruefe<. erganzt mit einer for inSchleife
Zum AbschluB dieser Shell-Prozeduren, von denen Sie bis jetzt immerhin einen
kleinen Vorgeschmack bekommen haben, wollen wir uns die Schleifenverarbeitung von while bzw. von until ansehen.
289
3
UNIX - praktisch angewandt
Wie wird das Kommando >while. oder >until. verwendet?
Soli eine Schleife ,fortwahrend, durchlaufen werden, bis ein bestimmter Zustand
erreicht wird, so wird das Kommando while oder until verwendet. Sehen wir uns
hierzu die beiden Kommandos an:
while
do
Kommando
Kommandoliste ....
So lange das Kommando ,wahr.
ist (Exit-Status 0 liefert),
tue ...
fertig - gehe zu Beginn der Schleife
done
while - Kommando, um eine Schleife einzuleiten, die so oft durchlaufen
wird, solange das einleitende Kommando erfolgreich ist (Exit-Status 0)
Until ist lediglich eine Umkehrung von while.
until
do
done
Kommando
Kommandoliste ....
So lange das Kommando >unwahr.
(Exit-Status ungleich 0) Hefert - nicht
erfolgreich war,
tue ...
fertig - gehe zu Beginn der Schleife
until - Kommando, um eine Schleife einzuleiten, die so oft durchlaufen
wird, solange das einleitende Kommando nicht erfolgreich ist
In der Praxis wird dieses Kommando z. B. verwendet, um immer wieder die gleiche Frage an den Benutzer zu stellen, solange, bis er sie richtig beantwortet hat.
Schreiben wir ein ,ubergeordnetes' Kommando dirpruef, das unser gemeinsam
erstelltes Kommando pruefe als eine Art Unterprogramm aufruft. Wir wollen eine
Schleife so oft durchlaufen, wie der Benutzer auf die Frage: ,Soli ein weiteres
Directory uberpruft werden? mit 'ia. antwortet.
Wie konnte diese Prozedur aussehen?
Verwenden wir in diesem Beispiel beide Abfragen mit while und until. Gibt er
ein Directory an, das nicht existiert, wird die Frage solange wiederholt, bis er uns
einen Namen nennt, unter dem ein Directory vorhanden ist. Gehen wir am besten wieder systematisch vor und zerlegen die Prozedur in Einzelschritte:
290
Shell-Prozeduren
1.
Fragen: Welches Directory soli OberprOft werden?
2.
Lesen der Antwort (Name des Directories).
3.
OberprOfen, ob es ein Directory ist, wenn nicht
4.
so lange daraufhinweisen und nach dem richtigen Namen fragen, bis es sich
wirklich um ein Directory handelt.
5.
Handelt es sich um ein Directory, dann in dieses Directory wechseln und das
Kommando pruefe aufrufen.
6.
Nachdem das Kommandopruefe abgelaufen ist, zurOckwechseln in dasAusgangs-Directory (Variable ausg).
7.
Fragen, ob ein weiteres Directory OberprOft werden soli, wenn ja, die Schleife
ab 1. wieder beginnen (Variable Antw).
3.7.7
Wir k6nnten die Schritte 1 bis 7 in eine while-Schleife packen, die solange
durchlaufen wird, bis der Benutzer unter 7. nicht mit ja (bzw. mit nein) antwortet.
DafOr mOssen wir jedoch, urn Oberhaupt das erstemal nach einem Directory zu
fragen, der Variablen Antw vorab den Wert >ja' zuweisen (A).
Auch so lite die Ausgangsposition fOr die Pfadnamen der Directories immer die
gleiche sein, namlich das aktuelle Directory des Benutzers zu dem Zeitpunkt,
wenn er das Kommando dirpruef aufruft. Um unsere bereits vorhandene Prozedur pruefe zu verwenden, wechseln wir wahrend der Verarbeitung in das jeweils
zu prOfende Directory und, sobald es OberprOft ist, zurOck in das AusgangsDirectory. Urn den Namen des Ausgangs-Directories auch zu einem spateren
Zeitpunkt noch zu wissen, weisen wir zu Beginn den Namen dieses Directories
(pwd) der Variablen ausg zu (B).
Wenn Sie den Ablauf dieser Prozedur verstanden haben und eine fehlerfreie Verarbeitung des Kommandos dirpruef allein zustande bringen, dann haben Sie ein
Talent zum Programmieren, und Ihnen wird es nicht schwerfallen, andere kleine
Prozeduren unter der Shell zu schreiben. Z6gern Sie aber nicht, sich auf der
nachsten Seite Anregungen zum Programmieren dieser Prozedur zu holen.
Auch wenn Sie unter der Shell nicht ganz so viele Syntax-Regeln wie bei einer
Programmiersprache beachten mOssen, es bleiben leider genOgend Fehlerquellen.
Treten Fehler auf, prOfen Sie Ihre Prozedur mit der Fehlercheckliste, die wir auf
Seite 284 angesprochen haben. Inzwischen kennen Sie auch das Kommando
>set -X', das Ihnen beim AufspOren von Fehlern hilft.
Nun viel SpaB beim Ausprobieren.
291
3
UNIX - praktisch angewandt
#! Ibinlsh
# Shell-Prozedur, um Directories zu OberprOfen
# A. Feststellen, wie das ,Ausgangs-Directory· heiBt und der Variablen
#
,ausg' zuordnen
ausg= pwd
# B. Der Variablen .Antwe vorab den Wert 'ja ezuweisen, damit
#
das 1. Directory abgefragt wird.
Antw="ja"
#
Beginn der while-Schleife
while test" $Antw" =" ja"
# 1. Frage, welches Directory OberprDft werden soli
do echo "Welches Directory soli ueberprueft werden?"
echo" Bitte mit Pfadnamen angeben"
# 2. Lesen der Antwort (Name des Directories)
read dir
# 3. OberprDfen, ob es ein Directory ist, wenn nicht
#
(Abfage auf Vorhandensein des Directories mit until-Schleife)
until test -d "$dir"
so/ange darauf hinweisen und nach dem richtigen
#
Namen fragen, bis es sich wirklich um ein Directory handelt
do echo "$dir ist kein Directory. "
echo "Welches Directory soli ueberprueft werden?'
echo" Bitte mit Pfadnamen angeben"
read dir
done
# 5. Handelt es sich um ein Directory. dann in dieses Directory wechseln
#
und das Kommando 'pruefe' aufrufen.
cd $dir
echo" Das Directory Sdir wird ueberprueft"
pruefe
# 6. Nachdem das Kommando 'pruefe' beendet 1st, soli
#
in das Ausgangsdirectory (Variable ,ausg.) zurDckgewechselt werden
cd $ausg
# 7. Fragen, ob ein weiteres Directory uberprOft werden soli
#
wenn ja, die Schleife ab 1. wieder begmnen.
(Variable .Antwe)
echo" Soli ein weiteres Directory ueberprueft werden?"
read Antw
done
# 4.
Bild 3 -190: Beispiel der Shell-Prozedur - ,dirpruef< mit while- und until-Schleife
Diese Beispiele erheben Obrigens nicht den Anspruch, >ausgereifie. PrOfprogramme zu sein, sondern sollen Ihnen in erster Linie die vielfaltigen Moglichkeiten der Shell-Programmierung aufzeigen. Gleichzeitig sollen sie Ihnen ein paar
Anregungen geben, wie Sie, auf Ihre Belange zugeschnitten, ahnliche Prozeduren erstellen konnten.
292
Shell-Prozeduren
3.7.7
3.7.8 Weitere nutzliche Kommandos fUr Shell-Prozeduren
Die Schleifen-Kommandos while oder until werden auch gerne zu Testzwekken verwendet. Um eine ,Endlosschleife, zu starten, konnen Sie zwei Kommandos mit verwenden, deren Funktion nichts anderes ist, als sich 'erfolgreich,
oder ,nicht erfolgreich, zurOckzumelden.
Das Kommando true (wahr) liefert immer den Exit-Status 0, ist also immer erfolgreich, das Kommando false (unwahr, falsch) einen Exit-Status ungleich 0,
immer nicht erfolgreich:
true
wahr- Exit-Status immer 0
true - Kommando, das nur den Exit-Status .Oc liefert
false
unwahr - Exit-Status immer ungleich 0
false - Kommando, das nur den Exit-Status .ungleich Oc liefert
Wie konnen Sie eine Schleife abbrechen?
Sie konnen in der Schleife abfragen, ob ein bestimmer Zustand erreicht ist, ob
eine Variable den Wert xy enthalt, und mit dem Kommando break die Schleifenverarbeitung abbrechen.
break
abbrechen
break - Kommando, um Schleifen vorzeitig abzubrechen
Meistens wird bei Endlos-Tests irgendeine Nachricht auf dem Bildschirm ausgegeben, allerdings nicht fortwahrend, sondern z. B. in einem Abstand von einer
Minute. Zwischenzeitlich soli der Rechner >schlafen<.
Das Kommando, um ,Ruhepausen c in einer Shell-Prozedur einzulegen, nennt
sich:
Anzahl der Sekunden
schlafen
sleep - Kommando, um Wartezeiten in Sekunden zu setzen
293
3
UNIX - praktisch angewandt
Ein Kommando, um Terminals zu testen, konnte z.B. lauten:
# Kommando, um Terminal zu testen
while true
do echo "Auf diesem Terminallaeuft ein Dauertest"
sleep 60
done
Bild 3 -191: Beispiel einer Endlosschleife
Diese Schleife lauft end los und kann nur durch einen Kommandoabbruch beendet werden (z. B. <CTRL> + c).
Interessant ware es herauszufinden, wieviel Schleifen dieses Kommando in einer Nacht von 20.00 Uhr bis morgens um 9.00 durchlauft. Wir wollen hier gar
kein Rechenexempel statuieren. SchlieBlich arbeiten wir mit einem Rechner und
sollten diesem auch das Rechnen Oberlassen. Die einfachste Methode ist daher,
den Rechner selbst zahlen zu lassen, wie oft er die Schleife bearbeitet hat.
Auch bei unserer Prozedur dirpruef sollten wir verhindern, daB wir eine Endlosschleife erhalten, falls ein Benutzer immer wieder eine falsche Antwort eingibt.
Hier konnten wir die Geduld des Rechners auf 3 oder maximal 4 falsche Eingaben fOr den Namen des Directories beschranken.
Wie fOhren Sie Rechenoperationen durch?
HierfOr gibt es das Kommando expr (expression - Ausdruck), mit dem Sie aile
Grundrechenfunktionen durchfOhren konnen. Sie rufen das Kommando auf und
geben zwei Zahlenwerte an, die entweder addiert, subtrahiert, multipliziert oder
dividiert werden sollen. AuBerdem konnen Sie den Modulo-Wert (Restwert) bei
der Division von ganzen Zahlen ermitleln. Die Rechenoperationen sind durch
ahnliche Zeichen wie in der Mathematik gekennzeichnet. Sehen wir uns die Syntax des Kommandos an:
expr Wert 1 Rechenoperation Wert2
expression
Ausdruck
+
*
I
%
Wert1 und Wert2 addieren
Wert2 von Wert1 subtrahieren
Wert1 mit Wert2 multiplizieren
Wert1 durch Wert2 d ividieren
Wert1 durch Wert2 dividieren und den
Restwert liefern (Zah11 modulo Zah12)
expr - Kommando, um Rechenoperationen auszufOhren
294
3.7.8
Shell-Prozeduren
Da es sich bei den Zeichen fOr die Rechenoperationen meist um Sonderzeichen
der Shell handelt, mussen Sie grundsatzlich die Zeichen fur die Rechenoperation in Hochkomma (z. B. '1') setzen oder das Fluchtsymbol (\) davorstellen.
Probieren Sie das Kommando expr an Ihrem Terminal aus:
expr 12 I
Sie erhalten als Ergebnis:
4
3
Was passiert wohl, wenn Sie z. B. die Kommandozeile mit
expr 7 * 7
eingeben? Mit dem Kommando set -x vorab k6nnen Sie sehen, daB das Sternchen ersetzt wird durch aile Dateien, die im aktuellen Directory zu finden sind
und Sie erhalten natOrlich
syntax error
Mit expr k6nnen auch Vergleiche, wie kleiner «), kleiner oder gleich «=), gleich
(=), ungleich (!=), gr6Ber (», und gr6Ber oder gleich (=» durchgefOhrt werden.
Als Wert wird >0< geliefert, falls das Ergebnis den Wert >wahr< ergibt.
Erganzen wir die Endlosschleife mit while true. Es soli bei jedem Durchlauf der
Schleife angezeigt werden, der wievielte Lauf es ist. Wie k6nnen wir dies erreichen? Erinnern Sie sich an die M6glichkeit, einer Variablen einen Zahlenwert zuzuweisen. Bevor wir mit der ersten Schleife beginnen, setzen wir die Variable
>zahl< auf den Wert o. In der Kommandoliste ab do wird dann das Kommando
expr $zahl + 1
durchgefuhrt und der sich neu ergebende Wert der Variablen $zahl zugewiesen.
Diese Funktion k6nnen Sie mit einer Kommandozeile erreichen:
zahl= \expr $zahl + 1\
Sehen wir uns die kleine Shell-Prozedur an, die nun bei jedem Lauf anzeigt, wie
oft der Text schon auf den Bildschirm geschrieben wurde:
# Kommando, um Terminal zu testen
zahl::"O'
while true
do echo 'Auf diesem Terminallaeuft ein Dauertest"
zahl:: \expr $zahl + 1\
echo 'Dies ist der ${zahl}. Durchlauf"
sleep 60
done
Bild 3 -192: Endlosschleife mit Rechenoperation
295
3
UNIX - praktisch angewandt
Jetzt dOrfte es Ihnen keine Schwierigkeit mehr bereiten, die Prozedur dirpruef so
abzuandern, daB nach dem 3. Versuch, den richtigen Namen eines vorhandenen
Directories einzugeben, die Prozedur sich hOflich, aber bestimmt verabschiedet.
Greifen wir uns nur den Teil der until-Schleife heraus.
Noch ein paar Tips zur Vorgehensweise.
o
Setzen Sie, bevor Sie die until-Schleife starten, eine Variable entweder auf
den Wert ,Q, und addieren Sie dann bei jedem Schleifendurchlauf jeweils ,1,
hinzu,
o
oder setzen Sie vorab den Wert auf ,3, und subtrahieren jeweils ,1,.
Sobald die Zahl ,3, (oder bei Subtraktion von 1 die Zahl ,Q,) erreicht ist, been den
Sie die Prozedur.
Hier ein mogliches Ergebnis der geanderten until-Schleife
Erweiterter Teil aus dar Shell-Prozedur dirpruef
#! /binfsh
# Abfrage auf Vorhandensein des Directories mit until-Schleife
zahl=O
until test -d "$dir"
# solange darauf hinweisen und nach dem richtigen
# Namen fragen, bis es sich wirklich um ein Directory handelt
do echo "$dir ist kein Directory "
if test $zahl -eq 3
then echo "Hallo, kennen Sie kein richtiges"
echo "Directory? - Schlafen Sie sich erstrnal aus und It
echo "ueberpruefen Sie ein anderes Mallhren Dateibaum"
exit
II
I'
fi echo "Welches Directory soli ueberprueft werden?"
echo "Bitte mit Pfadnamen angeben"
zahl='expr $zahl + l '
read dir
done
Bild 3-193: Beispiel Teil der Shell-Prozedur - ,dirpruef<, erganzt um expr
Obrigens werden Sie in der Korn-Shell eine wesentlich einfachere Methode kennenlernen, wie mit Variablen gerechnet werden kann (integer - auf Seite 314)
Doch noch ein letztes Kommando, um den Ablauf zu steuern: das Kommando
case_ Mit diesem Kommando konnen Sie aufgrund von Mustern eine bestimmte
Kommandofolge auswahlen. Dieses Kommando hat eine verhaitnismaBig
schwierige Syntax. Da es nicht unbedingt benotigt wird, werden hier nur die wesentlichen Funktionen kurz aufgezeigt.
296
3.7.8
Shell-Prozeduren
case Wort in
Muster1
Falls die Zeichenkette .Wort, mit
Muster1 ubereinstimmt, dann
tue (Kommandoliste1)
) Kommandoliste1;;
Muster2 I Muste(3)
Kommandoliste2jj stimmt sie mit Muster2 oder
Muster3 uberein, fUhre die
2 Semikolons als AbschluB der Kommandoliste
Kommandoliste aus
esac
J
Ende der .case-Bedingung,
case - Kommando, um eine gezielte Weiterverarbeitung zu erreichen, die
uber Vergleichsmuster angesteuert werden
Bei der Mustervorgabe (Muster1, Muster2, ... ) kennen auch Metazeichen verwendet werden (*, ?, [,]), die sich aber in diesem Fall nur auf die Zeichenkette
von Wort beziehen, nicht auf die Dateinamen des aktuellen Directories, wie wir
die Funktion der Metazeichen bisher kennengelernt haben. Wichtig ist bei diesem Kommando, daB die einzelnen Trennungszeichen zwischen Muster und
Kommandoliste, die Klammer .), und die zwei Semikolons 'jj' als AbschluB der
Kommandoliste je Muster nicht vergessen werden.
Sobald Sie sich daran gewehnt haben, ist auch dieses Kommando nett einzusetzen. Vorhin haben Sie das Kommando expr kennengelernt. Schreiben wir ein
kleines Rechenprogramm rechne, in dem der Benutzer
nach der 1. Zahl gefragt wird
dann, welche Rechenfunktion er wunscht (+, -, *, I, %)
und nach der 2. Zahl.
Abhangig von der eingegebenen Rechenfunktion wird uber das Kommando
case mit dem expr-Kommando das Ergebnis errechnet und angezeigt.
Da bei der Musterabfrage ebenfalls Metazeichen verwendet werden kennen,
muB mit dem Fluchtsymbol .\< bei einem Muster .*, die Metafunktion aufgehoben
werden. Das Sternchen .als Metafunktion, wird als letztes Muster angegeben,
um eine evtl. falsch angegebene Rechenfunktion abzufangen, die in den vorhergehenden Musterzeilen nicht enthalten war.
297
3
UNIX - praktisch angewandt
#l/binlsh
# Diese Shell-Prozedur ermoeglicht es dem Benutzer, Rechenoperationen in
einfacher Form einzugeben
antw="ja"
while test $antw = "ja"
do echo "Geben Sie bitte die 1. Zahl an:'
read z1
echo ' Welche Rechenfunktion wuenschen Sie?'
echo I addieren
+
echo subtrahieren
echo II multiplizieren
• '
echo dividieren
I
echo I Modulofunktion
%
echo "Bitte geben Sie eines der obenstehenden Zeichen an: '
read operator
echo "Geben Sie bitte die 2. Zahl an:'
read z2
echo "Das Ergebnis von $z1 $operator $z2 lautet"
case "$operator" in
+)
expr u$z1 U \+
"$z2" II
*
..
-)
expr u$z1" \-
u$z2u
\* )
expr U$z1" \*
11$z211
I)
expr "$z1" V
"$z2"
..
%)
expr "$z1" \%
R$z2U
..
*)
II
echo 'Der Operator $operator ist ungUltig'
esac
echo "Wollen Sie weitere Aechenoperationen vornehmen? Oalnein)"
read antw
done
BUd 3 -194: Beispiel einer Shell-Prozedur ,rechne' mit case ... und expr
Zum AbschluB der Bourne-Shell noch eine nOtzliche Funktion, namlich
,function •.
298
3.7.8
Shell-Prozeduren
Funktionen - functions
Mit function definieren Sie in einer Prozedur wiederkehrende Befehlsfolgen. Innerhalb dieser Shell-Prozedur geben Sie dann nur noch den Funktionsnamen an
und aile unter diesem Namen angegebenen Befehle werden ausgefUhrt.
function Funidionsname {Kommandofolge: }
function - Kommando, um Funktionen zu erstellen
Bei Funktionen wird, entgegen eigenstandigen Shell-Prozeduren, kein eigener
ProzeB gestartet, sondern sie werden als Programmteil von der Shell abgearbeitet (so, als ob sie anstelle des Funktionsnamens in der Prozedur geschrieben
waren).
Sie kennen Funktionen auch in Ihrem .profile definieren und diese dann ahnlich
wie ein Kommando benutzen. Hierzu ein kleines Beispiel, das in einfacher Form
function erklart:
Teil von .profile
...
#Bilden der Funktion wo
Name derl Fun~
function wo {
find. -name $1
1_____
...
Beginn der Funktion >{<,
Kommandos kennen gleich anschlieBend auf derselben Zeile geschrieben werden, ebenso das
Ende der Funktion mit >}c
$wo neuer
Beim Aufruf der Funktion wird als
Parameter die zu suchende Datei
mitgegeben
./Uebungenlneuer _
Die mit >find· gefundene Datei
J
Bild 3 - 195: Beispiel function
299
3
UNIX - praktisch angewandt
3.7.9 Zusammenfassung
Kommandos/Zeichen zur Ablaufsteuerung
Kommandoeingabe
&&
kom1 &&kom2
f~
II
kom111kom2
if Befehl1
then Befehlsfolge2
[ else Befehlsfolge3 ]
oder
elif Befehl4
then Befehlsfolge5
fi
Beispiel:
if test -f $Antwort
then pr -n $Antwort I pg
else echo "$Antwort ist keine
Datei"
fi
exit [Status]
Unt r DO:
e.xil
for Name
do
Befehlsfolge
done
for Name in Wert1 ... Wertn
do
Befehlsfolge
done
300
Funktion
Und-Verknupfung von Kommandos
kom2 wird nur dann ausgefUhrt, wenn
kom1 erfolgreich war
---Oder-Verknupfung von Kommandos
korn2 wird nur dann ausgefUhrt, wenn
korn1 nicht erfolgreich war
If-Verzweigung
wenn das und das zutrifft
dann tue .. .
sonst tue ... ]
sonst wenn
dann tue ...
fertig (Ende der if-Verzweigung)
Wenn die Datei ($Antwort) existiert und
es eine normale Datei ist, dann soli sie
angezeigt werden, sonst soli eine entsprechende Nachricht ausgegeben werden
I---
Ausgang
Bricht eine Shell-Prozedur ab
bzw. beendet die aktuelle Shell
Schleifenverarbeitung
Solange die Variable Name einen Wert
entMlt (sie erMlt nacheinander den
Wert von $1-$n, also die angegebenen
Parameter beim Aufruf des Kommandos)
tue
fertig - gehe zu Beginn der Schleife
Solange die Variable Name einen Wert
entMlt (hier wird nacheinander der
Wert1 ... Wertn zugewiesen)
tue
fertig - gehe zu Beginn der Schleife
3.7.9
Shell-Prozeduren
Kommandoeingabe
Funktion
while Kommando
Solange das Kommando erfolgreich ist
(Exit-Status O)
tue
do
Befeh/sfo/ge
done
until Kommando
do
Befeh/sfo/ge
done
...
fertig - gehe zu Beginn der Schleife
--
-
So lange das Kommando nicht erfolgreich ist (Exit-Status nicht O)
tue
...
fertig - gehe zu Beginn der Schleife
continue
fortfahren
Uberspringt den Rest einer Schleife,
um mit dem nachsten Schleifenwert
fortzufahren
break
brechen / abbrechen
Beendet vorzeitig eine Schleife
Case-Verarbeitung (Auswahl)
case Muster in
M1) Befeh/sfolge1;;
M21M3) Befeh/sfo/ge2;;
...
esac
-trap "Kommandos" Signale
Beispiel:
trap "rm hilts.dat; exit" 2
~
trap "" 1 2 3
-
Falls die Zeichenkette Muster
Obereinstimmt mit M1 , dann fUhre die
Befehlsfolge1 aus,
stimmt das Muster mit M2 oder M3
Oberein, fUhre Befehlsfolge2 aus
Ende der case-Bedingung
Behandelt Signale
Wird z.B. das Signal 2 (Ctrl+c) geschickt, wird, bevor der ProzeB abgebrochen wird, die Datei hilfs.dat
geloscht. Ohne Angabe , d h
. . nur mit
AnfOhrungszeichen
werden die
Signale ignoriert.
U
" ,
Eine Aufstellung vordefinierter Shell-Variablen
finden Sie im
Bild 3-171 auf Seite 266
Eine Ubersichtstabelle der Positionsparameter
finden Sie im
Bild 3-172 auf Seite 268
301
3
UNIX - praktisch angewandt
Weitere in diesem Kapitel verwendete Kommandos
Auch hier ist fOr Umsteiger eine Querverbindung zu DOS unter Kommandoeingabe vermerkt
Kommandoeingabe
Funktion
~
echo -n
Gibt Zeichenketten auf den Bildschinn aus
Beispiele:
-n no newline Cursor bleibt auf der lei Ie.
echo "5011 die Datei geloscht wer- Gibt in einer Shell-Prozedur die Nachricht
den?"
Ober Sildschirm aus
echo $PATH
leigt den Wert einer Variablen
Steuerzeichen:
Klingelzeichen
\007
\c
Cursor bleibt in gleicher leile
\n
neue leile
\t
Tabulator
Unler DO:
echo
touch Oatei(en)
Beispiel:
touch neu1 neu2
beliihren
Aktualisiert das Datum einer Datei
bzw. legt sie neu an
Legt die Dateien neu1 und neu2 an
export Name
Um Variable auch fOr Unterprogramme 1
zur VerfOgung zu stellen, werden sie exportiert
set
setzen
Zeigt die gesetzten Variablen der aktuellen Shell an
Setzt Shell-Optionen
-n no execution
die Kommandos
werden nur gelesen, nicht ausgefOhrt
-x execute
zeigt aile ausgefOhrten Sefehle an
-v verbose
zeigt aile Schritte einer Prozedur an
Hebt gesetzte Optionen (-vxn) wieder
auf
set [-vxn]
set Unlet DO:
set
read var1 [var2 ... vam]
302
I
lesen
Liest von der Standardeingabe und
weist die gelesenen Zeichen der/den
Variable(n) als Wert zu
Werden mehrere Variable angegeben,
gilt das Leerzeichen als Trennungszeichen, sonst werden aile leichen bis lei~ _ _ _ _ _ _ _ _ ~_ _ _ _ _ _ _ _ _ _ _ _ _ _ L lenende als Wert zugewiesen
3.7.9
Shell-Prozeduren
Kommandoeingabe
Funktion
test -fdrwxs datei
testen, prOfen
Priift Dateien auf Typ, Inhalt oder Zugriffsrechte
test wird meist in Verbindung mit if ...
verwendet
Modernere Schreibweise: statt test nur
die eckige Klammer [ 1, hierbei muB auf
Leerzeichen vor und nach den Klammern geachtet werden!
Bei den Optionen wird gepri.ift. ob die
angegebene Datei:
-f file
eine normale Datei ist
-d directory
ein Directory ist
Leseerlaubnis hat
-r read
-w write
Schreiberlaubnis hat
ausfOhrbar ist
-x execute
nicht leer ist
-s size
Negation
wird mit einem ! gefolgt von einem Leerzeichen abgefragt
[-f datei
1
Negation:
test ! -f datei
test -zn Zeichenkette
test Sfring-a = String-b
Negation:
test String-a != String-b
Auszug aus einem Script
read datei
if test -f $date; -a -w $date;
then ...
fi
readantw
if test $antw = ja -0 $antw = Ja
then ...
fi
PrUft Zeichenketten auf leer/nicht
leer
Abfrage auf:
.ist leer?
-zzero
.ist nicht leer?·
-n not zero
PrUft Zeichenketten auf Gleichheit
Zwischen den Argumenten und = mussen Leerzeichen stehen
Negation, d. h. test ist erfolgreich. wenn
die Zeichenketten nicht gleich sind.
!= ohne Leerzeichen!
Kombination von test-Kommandos
...
-a and
logische und-Verknupfung
or
logische oder-Verknupfung
-0
303
3
UNIX - praktisch angewandt
Kommandoeingabe
test
n1 -.. n2
[ n1 -.. n2 ]
test n1 -eq n2 ( n1
test n1 one n2 [ n1
test n1 -It n2 ( n1
test n1 -Ie n2 [ n1
test n1 -gt n2 [ n1
test n1 -ga n2 [ n1
true
Beispiel:
while true
do ...
done
-eq
n2
one
n2
-It
n2
-Ie
n2
-gt
n2
-ge
n2 ]
wahr
Gibt immer den Exit-Status 0 aus, ist
also immer wahr
Hiermit kennen z. B. Endlos-Schleifen
gestartet werden
false
falsch. unwahr
Der Exit-Status dieses Kommandos
ist immer unwahr (ungleich 0)
sleep Sekunden
schlafen
Leitet eine Wartezustand ein (Anzahl
Sekunden)
Wird meist in Shell-Prozeduren verwendet.
Oer Prozel3 wartet 3 Minuten
Beispiel:
sleep 180
expr Wert1 Symbol Wert2
+
\*
I
%
function name {
Kommandofolge
}
Beispiel:
function wo { find. \
-name $1}
wo brief1
304
I
I
I
I
I
Funktion
algebraischer Vergleich:
vergleicht zwei Zahlenwerte
equal
gleich
not equal
nicht gleich
kleiner als
less than
kleiner gleich
less equal
grOBer als
greater than
grOBer gleich
greater equal
expression
Rechenoperationen:
addieren
subtrahieren
multiplizieren
dividieren
modulo (Restwert)
----j
Funktion
Bildet eine Funktion, die ahnlich eines
Shell-internen Kommandos genutzt
werden kann
Die Funktion kann ein oder mehrere
Kommandos enthalten, wobei auch Positionsparameter ($1 , $2 usw.) verwendet werden kennen
Beim Aufruf von wo wird der Name der
Datei mitgegeben, nach der gesucht
wird
3.8 Die Korn-Shell
Hatte ich Ihnen zuviel versprochen? Das Programmieren mit
der Shell macht SpaB! Doch ein paar Funktionen der Shell
konnten ein biBchen benutzerfreundlicher sein. Seit die
Bourne-Shell entstanden ist, 1St ja bereits ein Vierteljahrhundert vergangen! Verbesserungen und neue Erkenntnisse sind
in der Korn-Shell verwirklicht worden. Sie basiert auf der
Bourne-Shell und kann ohne Probleme statt dieser verwendet
werden.
Welche Themen gibt es in diesem Kapitel?
3.8.1
Die Vorteile der Korn-Shell
3.8.3
Der History-Mechanismus
3.8.4
Der Befehlszeileneditor
3.8.5
Der Alias-Mechanismus
3.8.6
Variablen der Korn-Shell
3.8.7
Zusatzliche Optionen
3.8.8
ProzeBkontroile (Jobcontrol)
3.8.9
Zusammenfassung
305
3
UNIX - praktisch angewandt
Die Korn-Shell - nutzliche Erweiterungen zur Bourne-Shell
3.8.1 Die Vorteile der Korn-Shell
Aus den Oberschriften der Themen gehen die wesentlichen Vorteile eigentlich
schon hervor. Die Korn-Shell bietet viele Mechanismen und Funktionen, die das
Arbeiten am Rechner vereinfachen, freundlicher gestalten. 1m Gegensatz zur CShell, die bereits frOher viele zusatzliche Funktionen angeboten hat, ist die KornShell kompatibel zur Bourne-Shell. Da die Bourne-Shell grundsatzlich auf alIen Rechnern zur VerfOgung stand, sind viele Prozeduren zur Systemverwaltung
in der Bourne-Shell geschrieben worden. Deshalb ist es wichtig, daB auch unter
einer anderen Shell diese Prozeduren nach wie vor einwandfrei laufen. Die Kompatibilitat ist somit ein Hauptgrund, warum die Korn-Shell nun Bestandteil der
meisten UNIX-Derivate geworden ist. Der Trend geht eindeutig hin zur KornShell.
Entscheiden Sie selbst, was fOr Sie von Interesse ist. Kurz ein paar Erlauterungen zu den einzelnen Themen:
o
Der History-Mechanismus. Falls Sie UNIX schon live eingesetzt haben,
werden Sie feststellen, daB Sie oft die gleichen Kommandos ben6tigen. Es
gibt Obrigens unter der Bourne-Shell ein Kommando, mit dem Sie sich die
,Hitliste< Ihrer Kommandos seit dem letzten Anmelden ansehen k6nnen. Rufen Sie doch mal hash auf. Wie oft haben Sie z. B.ls oder pwd aufgerufen?
Der History-Mechanismus erlaubt, daB Sie mit einem KOrzel vorangegangene
Kommandos nochmals angezeigt und ausgefOhrt bekommen. Falls das
Kommando hierbei abgeandert werden soli, k6nnen Sie dies Ober den Befehlszeilen-Editor bewirken.
306
o
Der Befehlszeilen-Editor. Mit ihm k6nnen Sie, wie der Name schon sagt,
Ihre Eingabe fOr den Befehl (das Kommando) korrigieren, auch Zeilen, die
Sie sich Ober den History-Mechanismus nochmals zurOckgeholt haben. Unter der Bourne-Shell konnten Sie Korrekturen in der Befehlszeile nur mit der
Backspace-Taste durchfOhren oder gleich die gesamte Zeile 16schen. Und
wie oft verschreibt man sich, gerade dann, wenn es schnell gehen soli! Also,
hier wenigstens eine kleine Hilfe, soweit man den Fehler noch entdeckt. Aber
unter UNIX gew6hnt man sich sowieso schnell daran, die Kommandozeile
lieber erst nochmal zu kontrollieren und zu korrigieren, bevor man sie
abschickt.
o
Alias-Funktionen. Wenn Sie sich Ihre ,Hitliste< der Kommandos nochmals
ansehen, werden Sie auch feststellen, daB Sie wahrscheinlich mit 20 verschiedenen Kommandos in der Regel auskommen. HierfOr k6nnen Sie auch
kOrzere Bezeichnungen wahlen, die gleich die von Ihnen meist genutzten
Optionen beinhalten. Das Kommando wird kOrzer, und damit die Fehlerquelle
geringer. FOr DOS-Umsteiger k6nnen als alias bereits gelaufige Kommandos
gebildet werden, hinter denen sich dann UNIX-Kommandos verbergen (z. B.
Die Korn-Shell
3.8.1
dir als alias fOr ,Is -I,). In dem betreffendem Abschnitt werden Sie noch
weitere schone Beispiele fOr Aliase kennenlernen.
o
Variablen der Korn-Shell. 1m vorigen Abschnitt haben Sie in der Tabelle
'Einige vordefinierte Shell-Variable' Seite 266 schon Hinweise auf Variable
der Korn-Shell erhalten. Hatte ich vorhin noch erwahnt, daB eines der haufigsten Kommandos pwd sei, so wird sich dies in der Korn-Shell andern.
Hier benotigen Sie pwd eigentlich nicht mehr, denn Sie konnen sich das
Bereitschaftszeichen der Shell (PS1) so setzen, daB es Ihnen immer das
aktuelle Verzeichnis/Directory und, falls Sie auf unterschiedlichen Rechnern
im Netz arbeiten, zusatzlich noch den Rechnernamen anzeigt.
Eine weitere Vereinfachung ist natOrlich dann das CDE, wo Sie Ober den
Dateimanager grafisch Ihren Standort (das aktuelle Directory) und gleich die
darin enthaltenen Dateien angezeigt bekommen. Doch h\eiben wir erstmal
bei der Korn-Shell. Was bietet Sie noch?
o
Eine Reihe von zusatzlichen Optionen, mit denen Sie u. a. Ihr UNIX-Leben
sicherer gestalten konnen. Erinnern Sie sich noch an die Umleitung der Standardausgabe? Wehe, wenn Sie auf eine Datei umgeleitet haben (mit » und
in ihr waren wichtige Daten gespeichert, die Sie eigentlich dringend benotigten. Pech gehabt, die Daten waren unwiederhringlich verloren (soweit Sie
nicht zuvor eine Sicherung erstellten). Davor konnen Sie sich in der KornShell schOtzen. Sie konnen bestimmte Voreinstellungen fOr die Korn-Shell in
eine spezielle Datei setzen, z.B. um keine Dateien bei Standardumleitungen
zu Oberschreiben: set -0 noc/obber. DarOber und noch Ober ein paar weitere Optionen erfahren Sie in dem entsprechenden Abschnitt.
o
ProzeBkontrolle (Jobcontrol). Diese Erganzung ist vielleicht nur fOr Systemverwalter interessant, die sich Ober die Optimierung des Gesamtsystems Gedanken machen. Doch sollen in diesem Abschnitt wenigsten die
wichtigsten Funktionen kurz erlautert werden, falls Sie Ihre eigenen Prozesse
steuern mochten.
\ch selbst arbeite oft an unterschiedlichen Rechnern, auf denen mir meist ein
dort Obliches Login z.B. mit der C-Shell eingerichtet wurde. Ich muB gestehen,
daB ich, seit ich die Korn-Shell kennengelernt habe, immer sofort auf die KornShell umstelle, sobald ich mich angemeldet habe. Wie man die Korn-Shell aufruft und mit ihr arbeitet, beantwortet der nachste Abschnitt.
307
3
UNIX - praktisch angewandt
3.8.2 Wie arbeiten Sie mit der Korn-Shell?
Gut, ware meine Antwort hierauf. Doch uns geht es naturlich erst einmal darum,
wie Sie eine Korn-Shell starten, wie Sie sich anmelden, welche Voraussetzungen
erfullt sein mussen.
Wie starten Sie eine Korn-Shell?
Am besten ware es, wenn Ihr Systemverwalter Ihren Login-Eintrag in der
/etc/passwd entsprechend andert. Sie erinnern sich? Ais letzter Eintrag je Zeile
pro Benutzer ist angegeben, mit welchem Programm gestartet werden soli:
Auszug aus /etc/passwd:
hans::1 02:1 OO:Hans Mueller, Tel. 440:/usrlkurslhans: /binlksh
I
Start-Programm
Damit wird bei jedem Anmelden z.B. hans automatisch die Korn-Shell zur Verfugung gestellt. Die Korn-Shell Iiest als erstes wie die Bourne-Shell die Datei
.profile
im Home-Directory des Benutzers. In dieser Datei so lite fUr die Korn-Shell die
Variable ENV gesetzt sein. Ais Wert wird hier der Dateiname zugewiesen, in der
weitere Voreinstellungen fur die Korn-Shell eingetragen werden (z. B. alias, set
-0 noc/obber - im Laufe dieses Kapitels werden wir immer wieder auf diese
Datei zuruckkommen). Ais Name dieser Datei hat sich, angepaBt an andere
Shell programme, .kshrc eingeburgert (fUr die C-Shell heiBt die Voreinstellungsdatei .cshrc). Die Datei .profile hat dann folgenden Eintrag:
ENV=$HOME/.kshrc
export ENV
Bild 3 -196: Erganzungszeile in $HOME/.profile
Die der Variablen $ENV zugewiesene Datei wird dann jedesmal gelesen, sobald
eine Korn-Shell gestartet wird. Dies ist besonders wichtig, wenn Sie mit einer
grafischen Oberflache arbeiten, denn dann wird fUr jedes Fenster immer eine eigene Shell (Korn-Shell) gestartet, und aile Ihre Voreinstellungen (alias etc.)
mochten Sie dann ja ebenfalls nutzen.
Also auch, wenn Sie nicht generell mit der Korn-Shell arbeiten wollen, sollten Sie
sowohl die Erganzungszeile in .profile als auch die Voreinstellungsdatei in Ihrem
Home-Directory mit .kshrc fUhren. Was in die Datei .kshrc eingetragen wird, erfahren wir spater.
308
3.8.3
Die Korn-Shell
Sie kennen die Korn-Shell auch als sog. Sub-Shell (also unter einer bereits gestarteten Shell) aufrufen:
ksh [ Option en]
j
I z.B.
-0 vi
Voreinstellung fur den
Befehlszeilen-Editor
Kommando, um die Korn-Shell als Sub-Shell zu starten
Ais Bereitzeichen erhalten Sie, soweit Sie nicht als Voreinstellung in .kshre die
Variable PS1 neu gesetzt haben, wie in der Bourne-Shell ein $-Zeiehen.
Aile Meglichkeiten der Eingabe, wie Sie sie unter der Bourne-Shell kennengelernt haben, kennen Sie genauso in der Korn-Shell eingeben. Sie mOssen erst
einmal niehts Neues dazu lemen, um mit der Korn-Shell zu arbeiten.
Sie melden sieh auch genauso ab, wie in der Bourne-Shell:
oder
exit
3.8.3 Der History-Mechanismus
Um leiehter zu arbeiten, weniger Eingaben - und damit auch weniger Fehler zu
tippen, rentiert es sieh, ein paar neue Kommandos, Variable und Dateien kennenzulernen. Aile aufgerufen Kommandos (also Ihre Eingaben am Terminal) werden in Ihrem Home-Directory unter der Datei
.sh_history
gespeiehert. Gber die Variable HISTSIZE ist festgelegt, wie viele Kommandos Ihnen hiervon fOr eine evtl. Wiederverwendung bereitgestellt werden. Meist ist als
Voreinstellung 20 zugewiesen. Auf diese letzten Kommandos kennen Sie mit
dem Befehl fc (fix command) mit verschiedenen Optionen zurOckgreifen. Da fOr
dieses Kommando in der Korn-Shell bereits Aliase, je nach Option, voreingestellt sind, nimmt man stattdessen das Alias. Nur zur I~formation ist in der nachstehenden Tabelle das eigentliche Kommando fe, das zugrunde liegt, mit aufgefOhrt.
309
3
UNIX - praktisch angewandt
Alias
Beispiel
history [on, n,n n]
history -6
history 68
r [-] [nummer]
r
r -3
r3
I r Buchstabenfolge
rv
eigentl.
Befehl
Erlauterung
I
Zeigt die letzten n Sefehle an
ohne Angabe werden die letzten
Sefehle angezeigt entspr. der Anzahl
in der Variablen $HISTSIZE
Die Zeilen werden fortlaufend numeriert angezeigt. Die Nummer ist maBgebend fOr eine Direktanwahl
(siehe r n)
zeigt die letzten 6 Sefehle an
zeigt den 6. und 8. Sefehl an
~eat
fc -I-n
fc -e-n
Nochmaliger Aufruf des Sefehls
wiederholt den letzten Sefehl
wiederholt den 3.-letzten Sefehl
wiederholt den 3. Sefehl
wiederholt den letzten Sefehl, der
mit der Suchstabenfolge beginnt
wurde z.S. den letzten Sefehl mit vi
wiederholen
fc -e-xx
Mit dem Alias r kann also auf die Schnelle ein Kommando nochmals aufgerufen
werden. Wollen Sie dagegen die Sefehlszeile erst verandern, holen Sie sich die
Zeile uber den sog. Sefehlszeilen-Editor zuruck.
3.8.4 Der Befehlszeileneditor
Auch er basiert auf der unter History beschriebenen Datei .sh_history. Zusatzlich muB eine der nachstehenden Voreinstellungen getroffen sein.
o
Die Variable VISUAL ist mit vi oder emacs' zugewiesen
VISUAL=vi; export VISUAL oder
Dais Voreinstellung (.kshrc) wurde die Option gesetzt:
set -0 vi (siehe auch Seite 318) oder
Odie Korn-Shell wurde mit der Option
ksh -0 vi
-0
vi aufgerufen
In der Regel ist die Variable VISUAL mit dem Wert vi vordefiniert. Dies bedeutet,
daB Sie mit den Editierbefehlen vom vi auch Ihre Sefehlszeile korrigieren k6n-
310
• emacs ist ein weiterer Editor unter UNIX, der ahnlich wie der vi arbeitet, aber nicht auf allen
Systemen verfugbar ist.
3.8.4
Die Korn-Shell
nen. Um in den Sefehlszeilen-Editor zu kommen, drucken Sie dann die Taste,
die Sie im vi am haufigsten benetigten: die
[ESCJ - Taste
Nun kennen Sie mit den Sefehlen, die Sie im vi bereits kennengelernt haben, die
aktuelle leile oder vorhergehende leilen bearbeiten (oder falls Sie als Sefehlszeilen-Editor den emacs zugewiesen haben, die in der Tabelle angegebenen
Sefehle).
Hier eine kurze Obersicht jener Funktionen, die fUr die Korrektur von Sefehlszeilen benetigt werden:
Funktion
Taste im
vi
1
Tasteim
em acs
Positionieren:
Vorherige Sefehlszeile (nach oben)
k
<Ctrl + p>
Nachste Befehlszeile (nach unten)
j
<Ctrl +n>
lei chen nach links wandern (zuruck)
h
<Ctrl +b>
leichen nach rechts wandern (vorwarts)
I
<Ctr1+1>
(kleines L)
fo rward
1\
<Ctrl + a>
previous
next
back
Anfang der leile
anfang
Ende der leile
$
<Ctrl + e>
ende
Korrigieren:
leichen leschen
X
<CtrI +d>
delete
leichen einfUgen
i
Wort loschen
dw
bis zum Ende der leile loschen
d$
zuletzt Geloschtes einfUgen
p
auto matisch
vorein gestellt
<ESC+d>
(bis Wiortende)
<Ctrl + u>
p
paste
Bild 3 -197: Funktionen fOr den Befehlszeilen-Editor (vi und emacs)
Wenn Sie also die Escape-Taste gedruckt haben, kennen Sie bei der luordnung
von vi jeweils mit .k< eine leile heher wandern, bis zu jener Sefehlszeile, die Sie
311
3
UNIX - praktisch angewandt
bearbeiten mochten. Mit dem Buchstaben ,h< konnen Sie dann in der Zeile nach
links gehen und mit den (Ihnen bereits bekannten?) vi-Befehlen korrigieren.
Um das so wiedergeholte und evtl. geanderte Kommando abzuschicken, drOkken Sie die Return-Taste.
Es klingt komplizierter als es ist. Probieren Sie es am besten einmal aus. Der
emacs ist zwar etwas benutzerfreundlicher als der vi, da er jedoch nicht auf alIen System en verfOgbar ist, wird in diesem Buch nicht tiefer auf seine Funktionen eingegangen.
Am besten ist natUrlich, wir arbeiten ohne Fehler und mOssen nicht im Nachhinein Korrigieren. Nach dem Motto, wer viel arbeitet macht viele Fehler - versuchen wir es doch mal mit weniger Arbeit - weniger Tipparbeit.
Eine Moglichkeit ist, den File Completion Mechanismus (Mechanism us, um
Pfad- oder Dateinamen zu erganzen) einzusetzen. Dies erreichen Sie mit:
(ESC)+
CJ
bzw.
Der Backslash \ erganzt aile moglichen Pfadnamen, daB Sternchen * aile moglichen Dateinamen.
Die zweite Moglichkeit, Schreibarbeit einzusparen, ist die Alias-Funktionen.
3.8.5 Der Alias-Mechanismus
Bei dem History-Mechanismus haben wir einige Aliase bereits kennengelernt.
FOr fc -e - gab es z. B. das KOrzel r (fOr repeat). Wenn Sie das Kommando alias
aufrufen, werden Ihnen die bereits vorhandenen Aliase angezeigt. FOr Kommandos, die Sie oft benotigen, konnen Sie sich eigene KOrzel schreiben. Die Kommandosyntax hierzu lautet:
alias Aliasname=" Kommando"
alias - Kommando, um eine Aliasfunktion zu bilden
Sehen wir uns hierzu ein Beispiel an:
$ alias suche="find . -print -name"
$ suche inhalt
.IUebungenlinhalt
$ alias 1I="ls _In
$11
dfW}Cr-x--....... drwxr-x---
312
2
2
monika
monika
kurs
kurs
32 Oct 19 15:20 Texte
32 Oct 19 15:20 Uebungen
Bild 3 -198: Beispiel Erstel/en von einer Alias-Funktion
3.8.5
Die Korn-Shell
Die Alias-Funktionen im Beispiel gelten allerdings nur solange, bis man sich wieder abmeldet bzw. nur fUr das aktuelle Fenster, in dem man gerade arbeitet. Damit Sie statt Is -I immer nur /I anzugeben brauchen, schreiben Sie diese Befehle
mit einem Editor in die Datei .kshrc in Ihrem Home-Directory. Zusatzlich mOssen Sie Ihre Datei .profile erganzen mit der Zeile ENV=$HOME/.kshrc;export
ENV.
Wie schon erwahnt, konnen als Alias-Namen, auch bestehende Kommando-Namen angeben. Wenn Sie
alias rm="rm -i"
eingeben, mOssen Sie grundsatzlich bei allen Aufrufen von rm erst mit "y" die
Loschung von Dateien bestatigen. Sollten Sie fOr eine bestimmte Loschaktion
die ursprOngliche Form des Kommandos rm benotigen, so wird mit dem
Fluchtsymbol die Aliasfunktion fOr dieses eine Mal aufgehoben.
\rm
Soli das Loschkommando fUr die gesamte Sitzung aufgehoben werden, gibt es
hierfOr das Kommando
unalias Aliasname
unalias - Kommando, um einen Alias wieder aufzuheben
In unserem Beispiel wOrde mit
una lias rm
das Kommando rm wieder seine schlagkraftige Wirkung zurOckerhalten. Hier
zusammengefaBt die wichtigsten Funktionen von alias:
Befehl
Beispiel
Bedeutung
alias Aliasname="Befehl"
alias 1I="ls -I"
alias rm="rm _i"
Bildung eines Alias
\Aliasname
\rm datei
Aufhebung der Aliasfunktion
fUr den aktuellen Befehl
unalias Aliasname
unalias rm
Aliasfunktion aufheben
alias -x Aliasname
alias -x 1I="ls -I"
Aliasfunktion auch fUr SubShells exportieren
alias
alias
history=fc -I
r=fc -e
integer=typeset -i
Anzeige der vorhandenen
Aliasfunktionen
J.-
Bild 3-199: Zusammenfassung Alias-Funktionen
-
313
3
UNIX - praktisch angewandt
3.8.6 Variablen der Korn-Shell
Variablen haben wir ja schon in der Bourne-Shell kennengelernt. Dort wurde der
Wert einer Variablen zugewiesen mit
Name=Wert; export Name
Damit die Variable auch in Unterprogrammen GOltigkeit hat, wurde sie exportiert. In der Korn-Shell kennen Sie mit einem Aufruf der Variablen eine Wert zuweisen und sie gleichzeitig exportieren:
export Name=Wert
Bei der Korn-Shell kann Ober ein eigenes Kommando die Variable genauer definiert werden. Der Aufruf hierzu ist
typeset Option Name(=Wert]
typeset - Kornrnando, urn in der Korn-Shell Variable zu setzen
Als Option kann voreingestellt werden, was fOr ein Wert zugewiesen werden dart:
Option
c...-..
Ablenung von
I
Auswirkung auf den Wert der Variable
-i
integer
Es werden nur ganze Zahlen akzeptiert
Mit dieser Variablen kann spater direkt gerechnet werden
-u
uppercase
Zugewiesene Zeichenfolgen werden in Gro8buchstaben umgewandelt
-I
lowercase
lugewiesene leichenfolgen werden in Kleinbuchstaben umgewandelt
-x
export
Variable wird gleich exportiert
Wurde als Option -i integer angegeben, kennen Grundrechenfunktionen direkt
zugewiesen werden:
Operator
314
Ergebnis
echo $erg
Auswirkung
Beispiel - Wert von $erg
jew. von leile zuvor
+
Addition
typeset -i erg=5+12
17
-
Subtraktion
erg=$erg-3
14
*
Multiplikation
erg=$erg*3
42
1
Division
erg=$erg/3
14
%
Modulo
erg=$erg%3
2
3.8.6
Die Korn-Shell
FOr das Kommando typeset -i wird meist das voreingestellte Alias integer
verwendet:
integer Name[=Wert]
Ais Beispiel schreiben wir eine kleine Prozedur ,countdown-, die uns fragt, wie
lange der Countdown laufen 5011, jeweils zurOckzahlt und uns den Wert Ober
banner am Bildschirm anzeigt
#! Ibinlksh
# Prozedur urn einen Countdown auf dem Bildschirm auszugeben
integer Zahl
Definition der Variablen als Integer
echo • Mit welcher Zahl 5011 der Countdown starten?
clear _ Komrnando, um den aktuellen
Bitte geben Sie eine Zahl ein"
read Zahl
Bildschirminhalt zu loschen
clear
echo "Der Countdown startet" banner - Kommando, um Zeichenketten
im GroBformat auszugeben
while test $Zahl -gt 0
do clear
banner $Zahl
Direkte Rechenoperation mit der
Zahl=$Zahl-1
Integer-Variablen
done
Bild 3-200: Beispiel countdown Rechenoperation mit Integer-Variablen
l>
Bei Rechenoperationen mit Integer-Variablen durfen keine Leerzeichen
enthalten sein (dagegen muB bei Rechenoperationen mit dem Kommando
expr unbedingt auf Leerzeichen geachtet werden, siehe auch Seite 294).
Kurz zusammengefaBt:
Der Wert einer Variablen kann also auf drei Arten zugewiesen werden:
1.
wie bisher auch in Bourne-Shell
Name=Wert ; export Name
2.
Wertzuweisung und export
in einem Aufruf
export Name=Wert
3.
Ober ein eigenes Komrnando
typeset [-iuvx] Name[=Wert]
die Optionen bedeuten:
-i
integer
nur ganze Zahlen werden akzeptiert
-u
-I
lowercase
-x
export
uppercase
Eingabe wird in GroBbuchstaben zugewiesen
Eingabe wird in Kleinbuchstaben zugewiesen
Variable wird exportiert
FOr typeset -i kann Alias integer
verwendet werden:
integer Name[=Wert]
315
3
UNIX - praktisch angewandt
Spezielle vordefinierte Variable
Variable
Ableitung von
Bedeutung
$ENV
Environment
Ais Wert wird der Name der Datei zugeordnet, die ksh-spezifische Voreinstellung enthalt z.B. $HOMEI.kshrc und so lite in
.profile gesetzt werden
$HISTSIZE
GroBe der History
Ais Wert wird die Anzahl der Kommandos
eingetragen, auf die uber den HistoryMechanismus und den Befehlszeilen-Editor zuruckgegriffen werden darf
Ais Wert wird vi oder emacs zugeordnet,
der fUr als Befehlszeilen-Editor genommen
werden soli
$VISUAL
$PWD
$OLDPWD
print working
directory
Enthalt als Wert das aktuelle Directory
Enthalt als Wert das vor einem cd benutzte
Directory
Die Variablen $ENV, $VISUAL und $HISTSIZE haben wir bereits kennengelernt.
Die Variablen $PWD und $OLDPWD kennen recht praktisch angewendet werden. Wenn Sie nur mal kurz in ein anderes Directory wechseln, kennen Sie mit
dem Kommando
cd $OLDPWD
wieder in das vorherige Directory zuruckspringen und mussen hierfur nicht lange
nach dem Pfad suchen. Da die Eingabe trotzdem noch recht lang ist, empfiehlt
es sich, hierfur einen Alias zu bilden, z.B.
alias cdo="cd $OLDPWD"
Wenn Sie dieses Alias in Ihre Datei $HOMEI.kshrc mit aufnehmen, kennen Sie
mit cdo immer in das vorherige Directory zuruckkommen.
Mit der Variable $PWD kennen wir nun endlich unser Prompt-Zeichen so setzen, daB wir immer unser aktuelles Directory angezeigt bekommen. Hier mussen
wir jedoch die Variable in einfache Hochkommas' , setzen, damit die Variable
nicht sofort von der Shell bei der Zuweisung ersetzt wird, sondern jeweils erst
bei der Anzeige von dem Prompt. Probieren Sie am besten einmal die unterschiedlichen Auswirkungen aus. Sie werden erkennen, daB nur mit folgender
Eingabe die gewunschte Wirkung erzielt wird:
export PS1 ='$PWD'
oder besser, damit Sie eine klare Trennung zu Ihrer Eingabe haben:
export PS1='$PWD >'
316
3.8.6
Die Korn-Shell
Auch diese Zeile erganzen Sie in Ihrer Datei $HOMEI.kshrc. So schen die Anzeige des aktuellen Pfadnarnens ist, so lastig kann sie auch werden, namlich
dann, wenn Sie Ihr Home-Directory gut strukturiert haben und so recht lange
Pfadnamen entstehen. Es bleibt Ihnen dann kaum Platz fOr Ihre Befehlseingabe.
Die Korn-Shell bietet noch eine ganze Menge von Zusatzfunktionen, u.a. eine
Zeichenkettensubstitution, die fOr die Auswertung von Variablen eingesetzt wird.
Wir werden hierauf nicht weiter eingehen, Obernehmen aber ein Beispiel aus
dem Buch UNIX von J. Gulbins/K. Obermayr, das gerade fOr die Zuweisung des
aktuellen Pfades sehr schOn ist. Mit folgender Anweisung erhalten Sie nur das
letzte Directory Ihres aktuellen Pfadnamens angezeigt:
export PS1 =' .. .I${PWD##*I} >'
WOrde Monika z. B. in Ihr Unterdirectory lusr/kurs/monikaITexte wechseln,
wOrde der Prompt der Korn-Shell angezeigt werden mit:
.. .ITexte>
Wenn Sie Ihren Rechnernamen mit in die Promptanzeige Obernehmen mechten,
kennen Sie z. B. folgende Erganzung vornehmen:
export PS1="\hostname\:$PS1"
(Auf einigen Rechnern kann der Rechnername auch Ober die Variable $HOST
abgefragt werden.) WOrde Monika am Rechner idefix arbeiten, wOrde als Prompt
dann
idefix: .. .ITexte>
angezeigt werden.
In der Korn- und C-Shell gibt es, um in das jeweilige Home-Directory eines Benutzers zu wechseln, noch ein Sonderzeichen. Bisher hatten wir kennengelernt,
daB Sie mit
cd ohne Angabe
jeweils in Ihr eigenes Home-Directory wechseln kennen.
$HOME
konnten Sie angeben, wenn an dieser Stelle Ihr
Home-Directory eingesetzt werden soli.
-IBenutzer
I
Dies kennen Sie nun kOrzer mit dem Tildezeichen
erreichen.
Geben Sie zu dem Tildezeichen mit Schragstrich
getrennt einen Benutzernamen an, so wird hierfOr
das jeweilige Home-Directory des angegebenen
Benutzers eingesetzt. Z. B. wird fOr -Ihans
lusrlkurslhans ersetzt.
I
-, Sonderzeichen, urn den Namen des Home-Directories zu erhalten
317
3
UNIX - praktisch angewandt
3.8.7 Zusatzliche Optionen
Wie gefallen Ihnen die bisher kennengelernten Verbesserungen der Korn-Shell?
Noch fehlt uns eine Option, auf die in den vorigen Kapiteln schon aufmerksam
gemacht wurde, namlich, daB Sie verhindern kennen, daB bei der Umleitung der
Standardausgabe evtl. schon bestehende Dateien Dberschrieben werden.
Mit dem Kommando set werden die Optionen gesetzt:
set -0
set -0, Kornrnando, urn Optionen in der Korn-Shell zu setzen
Hier eine Auswahl rnoglicher Optionen::
Option
Bedeutung
all export
Aile gebildeten Variablen werden grundsatzlich exportiert
bgnice
Hintergrundprozesse laufen mit einer niedrigeren Prioritat
emacs oder vi
Der angegebene Editor wird zum Editieren der BefehlszeiIe genommen (Korrektur Ober ESC-Taste)
ignoreeof
Mit der Tastenkombination <Ctrl + d> kann die Shell
nicht mehr beendet werden (wird ignoriert)
noclobber
Bereits bestehende Dateien kennen Dber Umleitungszeichen >, » und 2> nicht mehr Dberschrieben werden
Geben Sie ein set-Kommando Dber Terminal ein, so gilt die Voreinstellung nur
solange, bis Sie sich wieder abmelden. Um die Voreinstellung generell zu setzen, werden diese Optionen ebenfalls in die Datei .kshrc eingetragen.
Mit dem Kommando set ohne Angaben erhalten Sie neben den Variablen auch
die gesetzten Optionen angezeigt. Mit set +0 kennen gesetzte Optionen wieder
ausgeschaltet werden.
Der Inhalt der Datei lusrlkurslmonikal.kshrc kennte dann wie folgt aussehen:
idefix: .. .lmonika > cat .kshrc
alias 11= '/s -/"
alias rm="rm -i"
alias cdo='cd $OLOPWO'
export PS1='.. .I$(PWO##·lj >'
set -0 vi
set -0 noclobber
idefix: .. .lmonika >
318
Bild 3-201: Beispiel Oatei $HOMEI.kshrc
3.8.8
Die Korn-Shell
3.8.8 ProzeBkontrolle (Jobcontrol)
1m Abschnitt 3.2.7 (Vordergrund- und Hintergrundprozesse, Seite 110) wurde
gezeigt, wie Prozesse unter der Bourne-Shell gestartet werden. Sie erinnern sich
an die dort vorgestellten Kommandos und Sonderzeichen:
ps
(process status) zeigt die aktuellen Prozesse
kill -9
bricht vorzeitig einen ProzeB ab
&
beim Aufruf eines Kommandos als letztes angegeben, bewirkt es, daB
dieses Kommando als HintergrundprozeB gestartet wird.
In der Korn-Shell wird, wenn ein HintergrundprozeB gestartet wird, eine zusatzliche Nummer in eckigen Klammern ausgegeben. Dies ist die sog. Jobnummer.
Hintergrundprozesse werden in der Korn-Shell zusatzlich uber eine Jobcontrol
gesteuert. Auch Vordergrund-Prozesse konnen der Jobcontrol ubergeben werden. Hierfur wird der ProzeB mit den Tasten
gestoppt.
Ober folgende Kommandos konnen die Jobs dann gesteuert werden .
Kommando
19 %Jobnummer
--
bg %Jobnummer
--
stop %Jobnummer
--
kill Signal %Jobnummer
oder
kill Symbol %Jobnummer
oder
kill Signal PIO
Erlauterung
--
foreground
Der Job/ProzeB lauft im Vordergrund weiter.
background
Der Job/ProzeB lauft im Hintergrund we iter.
Halt einen Job an (entspricht <Ctrl + Z>.
-
Der ProzeB wird abgebrochen. Das kill-Kommando kann unter der Korn-Shell sowohl mit
der Signalnummer als auch mit einem Signalnamen angegeben werden. Auch die Eingabe
mit der ProzeBnummer (process
identification), wie bisher unter der BourneShell, ist moglich.
I
Kommandos zur Job-Steuerung
319
3
UNIX - praktisch angewandt
Hierzu ein Beispiel:
lusrlkurslhans > find. -print> liste &
[1J 135
lusrlkurslhans > stop % 1
[1J stopped
lusrlkurslhans > fg %1
Bild 3-202: Beispiel Jobcontrol mit stop und fg
Soli der ProzeB abgebrochen werden, so kann das kill-Kommando mit der >sicheren< Signalnummer 9 (wie wir schon gelernt haben) abgebrochen werden
oder ein anderes Signal mitgegeben werden.
Einige dieser Signale lauten:
Signal
-
~
Namel
Symbol
Bedeutung
1
HUP
Die Terminalverbindung wird beendet (z. B. durch
das Abmelden eines Benutzers)
2
INT
Interrupt vom Terminal, z. B. wurde das Programm
mit <CTRL + c> abgebrochen
3
QUIT
Der ProzeB wird abgebrochen und ein Core-Dump
erzeugt
9
KILL
Der ProzeB wird unbedingt abgebrochen
15
TERM
Das Programm wird normal beendet
17
STOP
ProzeB stoppen
18
TSTP
Der ProzeB wird vom Terminal aus gestoppt
<CTRL + z>
19
CONT
Der gestoppte ProzeB soli im Hintergrund weiterlaufen (bg)
Bild 3-203: Tabelle mit einigen Signalen
Mit dem Kommando kill -/ kennen Sie sich eine Liste aller verfOgbaren Signale
ausgeben lassen. Mit dem Kommando jobs kennen die aktuellen Jobs angezeigt werden:
320
3.8.8
Die Korn-Shell
Die nachstehende Zeichnung stellt die m6glichen Jobsteuerungen dar.
$ find lusr -print
$ find. -print> liste &
[1]135
/usr/bin
ProzeB wird
gestoppt
ProzeB wird
abgebrochen
Bild 3-204: Die verschiedenen Jobsteuerungen
321
3
UNIX - praktisch angewandt
3.8.9 Zusammenfassung
Wichtige Dateien:
Datei
Sedeutung
.kshrc*
Wird von der Korn-Shell bei jedem Aufruf einer neuen
Korn-Shell (Subshell) gelesen, wenn im .profile die Variable ENV=$HOMEI.kshrc gesetzt wurde.
In .kshrc werden u.a. Alias-Zuweisungen und KornShell-spezifische Variablen, Funktionen und Optionen
gesetzt.
.profile
Wird nach dem Anmeldenllogin von der Sourne- oder
Korn-Shell gelesen, aber nicht von der C-Shell. In .profile werden u.a. Variable gesetzt, wie $PATH, $ENV
und/oder spezielle Anfangsroutinen fOr den Senutzer
gestartet.
In diesem Kapitel behandelte Kommandos
Kommandoeingabe
Funktion
ksh
Korn -Shell
Startet eine Korn-Shell
Hierbei wird die Datei
$HOMEI.kshrc gelesen, wenn die Variable ENV entsprechend gesetzt ist
i Voter DO:
rommand.com
history [-n]
---
-
Vergangenes
Zeigt die letzten 10 bzw. n Kommandosan
(alias zu ..... fc -I)
emacs und vi
als 8efehlszeilen-Editor
siehe 8ild 3 -197 auf Seite 311
fe [-I nJ [-e -]
fix command
Wiederholt bereits eingegebene
Kommandos/Befehle oder zeigt sie
an (History-Mechanism us)
-I list - bzw. history
zeigt die letzten 10 bzw. n Kommandos
-e edit - bzw. r repeat (unter csh nur I)
wiederholt den letzten Sefehl
wiederholt den n-tletzten Sefehl
wiederholt den n-ten Sefehl
wiederholt den letzten Sefehl, in dem
"name" enthalten ist
statt fe-I
gibt es ein Alias history
statt fc -e gibt es ein Alias r
r
r -n
rn
rname
322
I-
-
j
3.8.9
Die Korn-Shell
Kommandoeingabe
alias [-x) kOrzel="Befehl "
Beispiel:
alias 1I="ls -I"
unalias Kurzel
bzw. nur nachfolgender Alias wird
aufgehoben:
\KOrzel
typeset [-iulx)
integer name [ =Rechenoperationj
Beispiel:
integer zahl=10
mogliche Operatoren
+
*
I
%
19 %Jobnummer
i
Funktion
Zusatzname
Setzt Kurzel fur Befehle
Lost die Bedeutung eines Alias wieder
auf
Alias wird nur temporar aufgelost
Setzt Variable
-i integer alias: integer fUr ganze Zahlen
-u upper case
nur fUr GroBbuchstaben
-I lower case
nur fUr Kleinbuchstaben
-x export
Die Variable wird gleich exportiert
ganzeZahl
Bildet eine Integer-Variable
(alias zu typeset -i) --+ typeset
Bei der Zuweisung und innerhalb der
Rechenoperation dOrfen keine Leerzeichen enthalten sein
Auswirkung
Addition
Subtraktion
Multiplikation
Division
Modulo
foreground
Der Job/ProzeB lauft im Vordergrund
weiter.
I
bg %Jobnummer
background
Der Job/ProzeB lauft im HintergrUnd~
weiter.
stop %Jobnummer
Halt einen Job an
Von einem Vordergrund-ProzeB auch
Ober direkten Terminalzugriff mit
<etrl + z>. moglich
kill -9 [PID] [%Jobnr]
-
kill (toten)
Bricht einen ProzeB ab
-1
_ _ _ _ _ _1
323
3
UNIX - praktisch angewandt
Vordefinierte Variable bzw. Sonderzeichen
Shellvariable
Bedeutung
$ENV
Hier wird als Wert der Dateiname angegeben, der Voreinstellungen fUr die Korn-Shell enthalt. In der Regel
$HOME/.kshrc
$HISTSIZE
--
-
Ais Wert wird die Anzahl der Kommandos eingetragen, auf die Ober den History-Mechanismus und den
Befehlszeilen-Editor zurOckgegriffen werden darf
$PWD
Ais Wert wird jeweils das aktuelle Directory zugeordnet
$OLDPWD
Enthalt als Wert das vor einem cd benutzte Directory
$VISUAL
1st diese Variable belegt, kann die Befehlszeile editiert
werden
-IBenutzer
Beispiel
-Ihans
r--
Das Tildezeichen wird durch das Home-Directory von
dem aktuellen Benutzer ersetzt oder mit des durch
Schragstrich getrennten
wird ersetzt
/usrlkurslhans ersetzt.
~
Zusatzliche Optionen
Option
Bedeutung
allexport
Aile gebildeten Variablen werden grundsatzlich
exportiert
bgnice
emacs oder vi
---
----------- - - - - -
Hintergrundprozesse laufen mit einer niedrigeren
Prioritat
-Wird diese Option gesetzt, kann die Befehlszeile mit
dem angegebenen Programm editiert werden. HierfOr
muB, um zu korrigieren, die ESC-Taste gedrOckt werden. Der Befehlszeilen-Editor kann auch durch Setzen der Variable
VISUAL=vi eingeschaltet werden
324
ignoreeof
Mit der Tastenkombination Ctrl + d kann die Shell
nicht mehr beendet werden (wird ignoriert)
noclobber
Bereits bestehende Dateien konnen Ober Umleitungszeichen > nicht mehr Oberschrieben werden
3.9 Besonderheiten der C-Shell
Wie in den beiden vorherigen Kapiteln schon daraufhingewiesen, wird in diesem Buch die C-Shel/ nicht eigens behandelt.
Da speziel/ im Umfeld der Softwareentwicklung die C-Shel/ oft
eingesetzt ist, sol/en hier wenigstens die wichtigsten Unterschiede zur Bourne- und Korn-Shel/ aufgezeigt werden.
Die einzelnen Themen:
3.9.1
Eigenschaften der C-Shell
3.9.2
Wie wird die Fehlerumleitung eingegeben?
3.9.3
Was ist anders bei der Ablaufsteuerung?
3.9.4
Wie wird mit Variablen gearbeitet?
3.9.5
Aliasbildung/-aufhebung
325
3
UNIX - praktisch angewandt
------------------------------------
3.9.1 Eigenschaften der C-Shell
Ahnlich wie die Korn-Shell wurde die C-Shell als Alternative zur Bourne-Shell
entwickelt, um wesentliche Erweiterungen aufzunehmen.
Hierzu geh6ren:
o
o
Der History-Mechanismus mit der M6glichkeit, Befehlszeilen zu editieren
Der Alias-Mechanismus
ODie Job-Kontrolle (Stoppen eines Prozesses, Wiederstarten als Vorder- oder
Hintergrund-ProzeB)
o
o
o
Weitere vordefinierte Variable
Einfachere Behandlung von Variablen
(Integer-Variable mit Rechenoperationen)
Optionen, mit denen z. B. wie in der Korn-Shell das Oberschreiben von Dateien bei Standardausgabe-Umleitungen verhindert wird.
Ais Startroutinen liest die C-Shell, wenn sie durch das login Ober die Datei
letclpasswd gestartet wurde, im jeweiligen Home-Directory des Benutzers statt
.profile die Datei .Iogin.
Die Datei .cshrc wird generell bei jedem Aufruf der C-Shell gelesen.
Das Prompt der C-Shell ist das Prozentzeichen %.
Es kann mit dem Kommando
set prompt
= "neuer Wert"
neu zugewiesen werden.
I>
Hier auch gleich ein wesentlicher Unterschied zur Bourne- und Korn-Shell,
der oft zu Fehlern fOhrt: Variable sind meist in Kleinbuchstaben (prompt)
geschrieben, und das Gleichheitszeichen muB getrennt durch Leerzeichen
eingegeben werden!
Dateinamenexpansion, Ein-/Ausgabeumleitung auBer Fehlerausgabe-Umleitung, Aufruf eines Hintergrundprozesses und die Positionsparameter werden
genauso wie in der Bourne- oder Korn-Shell behandelt.
Doch wahrend die ksh ohne weiteres Shell-Prozeduren (Scripte) von der
Bourne-Shell (sh) richtig interpretiert und ausfOhrt, fOhren sh-Scripte, die mit csh
gestartet werden, oft zu fehlerhaftem Abbruch. Deshalb auch an dieser Stelle
nochmals der Hinweis, daB, wenn verschiedene Shells genutzt werden, in der
ersten Zeile einer Shell-Prozedur der run-Befehl stehen so lite: z. B.
#!/bin/sh oder #!/usr/binlcsh
Nachstehend eine Obersicht der wesentlichen Unterschiede, die, falls nicht explizit die C-Shell aufgerufen wurde, zu Fehlern fOhren k6nnten.
326
Besonderheiten der C-Shell
3.9.2
3.9.2 Wie wird die Fehlerumleitung eingegeben?
Eingabe unter sh/ksh
Eingabe unter csh
>&
3.9.3 Was ist anders bei der Ablaufsteuerung?
Eingabe unter sh/ksh
If-Bedingung:
if Befehl
then Befehlsfo/ge
else Befehlsfolge
fi
Eingabe unter csh
if ( ausdruck ) Befeh l
oder
if ( ausdruck ) then
Befehlsfolge
endif
oder
if ( ausdruck ) then
Befehlsfolge
else if ( ausdruck ) then
Befehlsfolge
else Befehlsfolge
endif
oder
if Befehl
then Befehlsfolge
elif Befehl
then Befehlsfolge
fi
Schleifenverarbeitung:
for Name in argumente
do Befehlsfolge
done
foreach Name ( argumente )
Befehlsfolge
end
while Befehl
do Befehlsfolge
done
while ( ausdruck )
Befehlsfolge
end
~---
Case-Verarbeitung
case Textmuster in
muster_1 ) Befehlsfolge ;;
muster_2) Befehlsfolge ;;
-_.-
-
switch (textmuster )
case Muster1 ; Befehlsfolge;
breaksw
esac
case Mustern ; Befehlsfolge;
breaksw
default: Befehlsfolge # optional
endsw
Goto-Anweisung
goto marke
nicht moglich
Repeat-Anweisung
nicht moglich
marke: Befehlsfolge
repeat n Befehl
327
3
UNIX - praktisch angewandt
3.9.4 Wie wird mit Varia bien gearbeitet?
Eingabe unter sh/ksh
Positionsparameter
Eingabe unter csh
--~----------------------------~
$0, $1, •..
Vordefinierte Variable
$argv[O], $argv[1], ...
und $0, $1, ...
f----
Statt Grol3- in Kleinbuchstaben
(nur einige gleichlautend)
$home
$HOME
ksh: zusatzlich
-[Ibenutzer]
oder -[Ibenutzer]
$PS1
$prompt
Bereitzeichen mit aktuellen
Pfadnamen zuweisen:
Nur uber Trick - Aliasbildung
(Quelle: UNIX, J.Gulbins, K.Obermayr)
alias defpr ' set prompt = "${cwd}%" '
defpr
alias cd 'chdir V· && defpr'
export PS1 ="' $PWO' >"
Setzen von Variablen
PATH =$PAT H:lusrlkurslbin
export PATH
Rechnen mit Variablen
zahl=10
zahl=' expr $zahl + l'
ksh zusatzlich:
integer zahl=10
zahl=$zahl+ 1
-
-
=
set path
($path lusrlkurslbin )x
oder
setenv Name Wert
@zahl10
@ zahl = ( $zahl + 1 )
3.9.5 Aliasbildung/-aufhebung
Eingabe unter ksh
alias [-x] kDrzel="Befehl"
alias 11="15 -I"
unalias kDrzel
328
Eingabe unter csh
alias kOrzel Befehl
unalias kOrzel
-
3.10 Noch ein paar Befehle
Mit Bourne- und Korn-Shell k6nnen Sie nun Ihre Arbeitsumgebung und Arbeitsablaufe auf einem UNIX-Rechner so gestalten, wie Sie sie ben6tigen. Hier noch ein paar Befehle mit
Beispielen aus der Praxis, die ganz nOtzlich sein k6nnen, um
knifflige Aufgaben zu 16sen.
Die einzelnen Themen:
3.10.1
Umleitung mit tee
3.10.2
Kommandos, um Dateien und Zeichenketten
zu verandern
•
Sortieren von Dateiinhalten oder Zeichenketten
•
Separieren (Ausschneiden) von Spalten aus Dateien
oder Zeichenketten
•
Vergleichen von Dateien
•
Das Kommando read in Verbindung mit dem PipeMechanismus
•
Nur ein kleiner Blick in Dateien
3.10.3
Programme starten, und Sie gehen schlafen
329
3
UNIX - praktiseh angewandt
3.10.1 Umleitung mit tee
Hatten wir in der Shell-EinfOhrung gelernt, daB die Ausgabe eines Kommandos
durch den Pipe-Mechanismus als Eingabe fOr das nachste Kommando umgeleitet wird, so konnen Sie durch das Kommando tee die Ausgabe zusatzlich in
eine Datei umleiten.
Is I tee inhalt I we -w
temperiire Datei im Speicher
Datum
befehle
,--~--...,
inhalt
neu
projektA
ueb1
Datei auf der
Platte
inhalt
6
Ergebnis am Bildschirm
tee - Kommando, urn eine Pipe-Ausgabe zusatzlieh in eine Datei
abzuleiten
Diese parallele Umleitung laBt sich auch gut mit nachfolgenden Kommandos
kombinieren, um einen veranderten Dateiinhalt sofort am Bildschirm kontrollieren zu konnen und zusatzlich in eine neue Datei zu speichen.
330
Noch ein paar Befehle
3.10.2
---------------------~
3.10.2 Kornrnandos, urn Dateien und Zeichenketten zu verandern
Unter Unix konnen Sie im groBen Stil ,Datei-Manipulationen< vornehmen. Das
machtigste Werkzeug hierfOr ist sicher der awk (von den Programmierern Aho,
Weinberger, Kernigham abgeleitet), das aber sic her den Rahmen dieses EinfOhrungsbuches sprengen wOrde. Der Volistandigkeit halber mochte ich es aber erwahnen. Sie konnen mit diesem Programm Dateien analysieren, neu aufbereiten, nach unterschiedlichen Kriterien sortieren, neue Dateien dam it generieren
und anspruchsvolle Listen ausgeben. Die Eingabe zu diesem Kommando gleicht
aber dementsprechend auch einem eigenen Programm. Der awk wird u.a. im
Buch von J.Gulbins/K.Obermayr behandelt. Von den Autoren des awk gibt es
auch ein Buch (The AWK Programming Language). 1m Literaturverzeichnis finden Sie hierzu weitere Angaben. Doch auch ohne den awk konnen Sie mit einer
Reihe von Kommandos Dateiinhalte oder Zeichenketten verandern, z. B.
o
o
o
o
sortieren mit sort
Zeichen oder Spalten herausschneiden mit cut
Dateien oder Zeichenketten (Strings) vergleichen mit diff (oder cmp)
bestimmte Zeilen aus Dateien selektieren mit grep. Das Kommando haben
wir bereits im Kapitel 3.4, Seite 188 kennengelernt.
Sehen wir uns zu den genannten Kommandos ein paar Beispiele an:
Sortieren von Dateiinhalten oder Zeichenketten
Auch das sort-Kommando hatten wir schon einmal kurz besprochen (Kapitel
3.2, Seite 97), um eine Ausgabe alphabetisch zu sortieren. Doch mit sort konnen
Sie auch nach unterschiedlichen Spa/ten innerhalb einer Datei oder Zeichenausgabe sortieren.
Oft wird in der Datei /etc/passwd unter Kommentar der vollstandige Name der
Benutzer, evtl. sogar Abteilung und Telefon-Nr. eingetragen. In der PasswortDatei sind die Benutzer aber nach der laufenden Benutzernummer sortiert.
Wenn wir aus dieser Datei eine alphabetische Namensdatei unserer Benutzer erstell en wollen, mOssen wir dem Kommando mitteilen, an welcher Stelle/Spalte
es die Sortierung durchfOhren soli. A/s Spa/te interpretiert das sort-Programm
zusammenhangende Zeichen, die durch ein oder mehrere Leerzeichen voneinander getrennt sind. Sehen wir uns die Syntax des Kommandos sort an:
331
3
UNIX - praktisch angewandt
sort [-frn] -tZeichen -kPosition, Position[nr]] Datei (Dateiname(n)]
K riterien fUr den Sort
Von Position Zahl1.Zahl2 bis Position Zahl1.Zahl2
Zahl1 =SpaltenNr
Zahl2=ZeichenNr innerhalb der Spalte
Trennzeichen
Wenn nicht das leerzeichen als Trennung zwischen Spalten dient, wird
hier das Trennungszeichen vorgegeben
numeric string
Am Zeilenanfang beginnende Zahlen , die durch leerzeichen von anderen
Zeichen gelrennt sind, werden in arilhmelischer Reihenfolge sortiert
reverse - Es wird in umgekehrter Richtung sortiert
fold - GroB- und Kleinbuchstaben werden gleich behandelt
sort - Kornrnando, urn Dateiinhalte oder Zeichenketten zu sortieren
In unserem Beispiel wollen wir den Dateiinhalt nach der Spalte vier sortieren.
Uns interessieren aber nur die Benutzer, die mit >ben' beginnen. Ober eine Pipe
konnen wir vorab mit grep diese Zeilen herausfiltern und geben die Ausgabe an
das sort-Programm weiter. Da wir die Ausgabe sowohl am Bildschirm kontrollieren wollen als auch in einer Datei abspeichern mochten, verwenden wir hier
gleich das Kommando tee. Um das Kommando sort besser kennenzulernen,
sortieren wir nur nach den ersten vier Buchstaben des Namens.
Um aus der Datei /etc/passwd die gewOnschten Spalten zu sortieren und in einer anderen Datei abzuspeichern, sehen wir uns kurz nochmal einen Ausschnitt
von /etc/passwd an. Die einzelnen Spalten sind durch einen >:' getrennt, den wir
beim Aufruf als Trennungssymbol mit der Option -t: angeben.
b: b:J ~ ~
5
5.1 5.4 ~ Position
.....-- Spalten 1 - 5
ben01 : xcziui: 01: 20: Mei~r, Eva, Te1.446: /usr/kurs/ben01 :/bin/ksh
ben02: xcber: 102: 20: Huber, Hans, Tel. 143 :/usr/kurs/ben02 :/bin/sh
ben03: nmxfz: 103: 20: Beck, Ute, Tel. 222 :/usr/kurs/ben03 :/bin/ksh
$ grep "Aben" /etc/passwd I sort -t: -k 5.1,5.41 tee bensort
ben03:nmxfz: 103:20:Beck, Ute, Tel. 222:/usrlkurs/ben03:/binlksh
ben02:xcber:102:20:Huber, Hans, Tel. 143:lusr/kurs/ben02:lbinlsh
ben01 :xcziui: 101 :20:Meier, Eva, Tel.446:lusrlkurs/benO 1:Ibin/ksh
$
Bi/d 3-205: Beispiel sort als Filterprogramm (Sortierung nach Spalten)
332
Noch ein paar Befehle
3.10.2
Separieren (Ausschneiden) von Spalten aus Dateien oder Zeichenketten
Der Inhalt unserer neuen Datei bensort entspricht den Zeilen am Bildschirm. Um
nun eine Liste nur mit Benutzername (ben01 ... ), dem vollstandigen Namen mit
Telefonnummer und das Home-Directory zu bekommen, benotigen wir nur die
Spalten 0,4 und 5. Aile anderen Spalten interessieren uns vorerst nicht. Um
Spalten ,herauszuschneiden< gibt es das Kommando cut:
cut [-dZeichen} -fFeldnr. [,Feldnr., Feldnr, ... } [Feldnr.-Feldnr}
field
Die Spallen werden beim cut-Programm a1s Felder bezeichnet. Auch
hier beginnl die Numerierung bei 0
Mehrere Spallen konnen durch Kommas gelrennl angegeben werden
(und/oder 'von bis<z.B. 2,4,6-9
1>
delimiter - Trennungszeichen
Achlung! Ais Standardeinstellung (default) nimml das cut-Programm das Tabulatorzeichen, nichl wie bei sort das Leerzeichen! Leider sind auch die Kennzeichen, um
das Trennungszeichen anzugeben, verschieden.
cut - Kommando, um Spalten auszuschneiden
Um die Spalten 0, 4 und 5 zu erhalten, geben wir ein:
$ cut -d: -fO,4-5 ben sort I tee benutzer
ben03:Beck, Ute, Tel. 222:/usr/kurs/ben03:
ben02:Huber, Hans, Tel. 143:/usrlkurslben02:
ben01 ::Meier. Eva, Tel. 446:/usrlkurs/benO 1:
$
BUd 3-206: Beispiel cut, Separieren der Spalten 0,4 und 5 aus letclpasswd
Wie mOBte die Eingabe lauten, wenn wir mit einem Aufruf nur die drei Spalten
von letc/passwd herausfiltern, sortieren, am Bildschirm anzeigen und gleichzeitig in eine Datei schreiben? Kein Problem. Wir konnen ja beliebig lange Pipes
schreiben. Versuchen Sie es einmal, benennen Sie die Ausgabedatei vorsichtshalber benutzer1 und fOr weitere Versuche benutzer2 usw. Um herauszufinden,
ob die Dateien das gleiche Ergebnis gebracht haben, konnen Sie dies mit dem
nachfolgenden Kommando prOfen.
333
3
UNIX - praktisch angewandt
Vergleichen von Dateien
Wie oft kommt es vor, daB zwei Dateien mit gleichem oder fast gleichem Inhalt
vorhanden sind? Mit bloB em Auge ist es oft schwer erkennbar, wo und ob Unterschiede bestehen. Welche der beiden Dateien darf geloscht werden? Mit Is -I
konnen wir vorab Datum und GroBe vergleichen, doch wir wissen dann noch
nicht, welcher Dateiinhalt der richtige ist, wo die Unterschiede liegen. Da ist es
sehr hilfreich, wenn diese Arbeit der Rechner Obernimmt. Unter UNIX gibt es
hierfOr verschiedene Kommandos. Ab System V.4 dOrfte auf allen System en das
Kommando diff zur VerfOgung stehen. Es vergleicht Zeile fOr Zeile und gibt ein
entsprechendes Protokoll aus. Ober Optionen konnen noch eine Reihe von Voreinstellungen gesteuert werden, doch wir wollen uns hier nur den einfachen Vergleich ansehen.
diff datei1 datei2
I
differential file compare
diff - Kommando, um Dateien miteinander zu vergleichen
Nehmen wir als Beispiel zwei kleine Dateien:
Datei1 h1:
Datei2h2:
hallo
dies ist die
erste Datei
dies ist die
zweite Datei
$ diff h1 h2
1dO
<.halfo
3c2
<erste Datei
Zeile 1 delete zu Zeile 0
Inhaltsanzeige
Zeile 3 change zu Zeile 2
Anzeige h1
>zweite Datei
Anzeige h2
Die Hinweise im Protokoll basieren auf den Befehlen yom Editor ed. Die am haufigsten vorkommenden Hinweise sind:
a
append, d. h., die Zeile mOBte eingefOgt werden,
d
delete, d. h., die Zeile mOBte geloscht werden,
c
change, d. h., die Zeile mOBte geandert werden,
damit die Datei1 gleich der Datei2 ware.
334
3.10.2
Noch ein paar Befehle
Ein weiteres Kommando, um Dateien zu vergleichen ist cmp. Sind die Dateien
gleich, Iiefert das Kommando den Exit-Status O. Sind die Dateien nicht gleich,
zeigt es standardmaBig nur die erste Position des Unterschiedes an. In unserem
obigen Beispiel:
cmp datei1 datei2
I
compare
crnp - Kornrnando, urn Dateien zu vergleichen
Datei2 h2:
Datei1 h1:
dies ist die
zweite Datei
hallo
dies ist die
erste Datei
$ cmp h1 h2
h1 h2 differ: char 1, line 1
Bild 3-207: Beispiel Vergleich von Dateien mit cmp
335
3
UNIX - praktisch angewandt
Cas Kommando read in Verbindung mit dem Pipe-Mechanismus
Ein weiteres Beispiel, das in der Praxis oft benotigt wird, ist, festzustellen, welche Prozesse von einem Benutzer oder einem bestimmten Programm noch laufen und diese Prozesse z. B. gleich abzubrechen.
HierfOr konnen die einzelnen Abfragen Ober die Pipe in einem Aufruf abgearbeitet werden:
$ ps -e1 I grep "ben01 II I while read uid PIC rest
do kill -9 $PIC
done
>
>
1234 killed
1356 killed
Solange, wie von benOl Zeilen aus der Anzeige von
ps -sf gefunden werden, wird dlese Zeile von read
gelesen und den Variablen uid PfO und der Rest
der Zeile rest zugewiesen. Fur das kill-Kommando
benOtigen wir nur den 2. Wert, namlich $PID.
ps -ef gibt folgeOOe Werte aus:
UfO
PIO
PPIO STIME TTY TIME COMMAND
Bild 3 - 208: Beispiel read in Verbindung mit Pipe
Falls Sie sich nochmal Ober das Kommando read informieren mochten, schlagen Sie nach bei Kapitel 3.7, Seite 271. Ober das Kommando ps finden Sie im
Kapitel3.2 auf Seite 113 weitere Informationen.
Man kann zwar die Pipe direkt Ober Terminal eintippen, doch es empfiehlt sich,
hier ein kleines Kommando zu schreiben und je nach dem, was gesucht werden
soli (z. B. Benutzer- oder Programmname), dies dann als Parameter mitzugeben.
In der Prozedur wird dann nach dem Parameter abgefragt:
ps -ef I grep $1 ...
336
3.10.2
Noch ein paar Befehle
Nur ein kleiner Blick in Dateien
Oft reicht nur ein kleiner Blick in eine Datei oder bei einer Pipe-Ausgabe in die ersten Zeilen, um die n6tigten Informationen zu erhalten. HierfOr zwei Kommandos:
head [-n] datei(en)
Kopt
I I
number
Anzahl der ersten Zeilen
ohne Angabe werden die ersten 10 Zeilen gezeigt
head - Kommando, um die ersten Zeilen einer Datei anzusehen
$ head -2 benutzer
ben03:Beck, Ute, Tel. 222:lusrlkurslben03:
ben02:Huber, Hans, Tel. 143:lusrlkurslben02:
$
Bild 3-209: Beispiel head
Das Kommando, um die letzten Zeilen einer Datei angezeigt zu bekommen (also
nicht den Kopf, sondern den Schwanz):
tail [-f] [-n] datei(en)
I
I
SChwanz l
Inumber
Anzahl der letzten Zeilen
ohne Angabe werden die letzten 10 Zeilen gezeigt
following
Wird die Datei gerade erstellt. konnen Sie hiermit
verfolgen. welche Zeilen hinzukommen
tail - Kommando, um die letzten Zeilen einer Datei anzusehen
$ tail -2 benutzer
ben02:Huber, Hans, Tel. 143:lusrlkurslben02:
benOl ::Meier, Eva, Tel.446:lusrlkurslben01:
$
Bild 3-210: Beispiel tail
337
3
UNIX - praktisch angewandt
3.10.3 Programme starten, und Sie gehen schlafen
Ja, das ware toll, nur dem Rechner kurz die Aufgaben ubergeben und wah rend
wir schlafen - oder den Tag genieBen - erledigt der Rechner unsere Arbeit. Gut
vorbereitet, lieBe sich da sicher einiges bewerkstelligen. Doch ganz so weit wollen wir gar nicht gehen, uns hilft schon eine kleine Verbesserung.
Angenommen, Sie mussen dringend zu einem Termin, wollen aber gerade noch
einen zeitaufwendigen ProzeB starten. Damit jedoch in der Zwischenzeit niemand Unfug an Ihrem Rechner treibt, ware es sicherer, sich vorher abzumelden.
Dies bedeutet im Normalfall, daB aile von Ihnen an diesem Terminal gestarteten
und noch laufenden Prozesse ebenfalls abgebrochen werden. Um dies zu vermeiden, k6nnen Sie einem Kommando beim Aufruf den Status mitgeben, daB es
unabhangig von dem VaterprozeB weiterlaufen soil. Allerdings so lite das Kommando dann im Hintergrund gestartet werden. Dies erfolgt mit:
nohup Kommando &
nOhangupl
nohup - Kommando, um Prozesse auch nach einem
logout weiterlaufen zu lassen
Wenn Sie bereits auf einer grafischen Oberflache arbeiten, gibt es auch hierfur
einfachere Methoden. Sie k6nnen softwaremaBig Ihr Terminal einfach abschlieBen. Die Anzeige am Bildschirm verschwindet (oft werden dann uber sog. Bildschirmschoner unterschiedliche Muster angezeigt) - wichtig aber ist, daB niemand, ohne Ihr PaBwort zu wissen und einzugeben, an diesem Terminal
arbeiten kann.
1m nachsten Kapitel erfahren Sie mehr uber die wesentlichen Erleichterungen
durch die grafische Oberflache CDE (Common Desktop Environment). Oberschlafen Sie erstmal das bisher uber UNIX Gelernte; ganz vergessen sollten Sie
es allerdings nicht, denn trotz Drag and Drop und Windowing laBt sich nicht alles
durch Mausklicken erreichen. Auch ist es wichtig, zu wissen, was im Hintergrund ablauft und noch wichtiger, immer direkt mit gezielten Kommandos ins
Geschehen eingreifen zu k6nnen.
338
4 CDE - die grafische
Benutzeroberflache unter UNIX
1m StraBenverkehr helfen uns Verkehrszeichen mit Symbolen,
wichtige Informationen, Hinweise und Regeln schnell zu erfassen. Genauso schnell und sicher werden wir im CDE Ober
Icons gefiihrt. Statt kryptischer Eingaben klicken wir auf vorgegebene Schaltflachen. Was dahintersteckt, wie Sie bequem
mit Bi/dern arbeiten konnen und wie Sie die Schreibtischumgebung an Ihre BedOrfnisse anpassen, erfahren Sie in diesem
Kapitel.
Die einzelnen Themen:
4.1
Wie melden Sie sich an?
4.2
Die Desktop-Anzeige
4.3
Wie arbeiten Sie auf dem Desktop - der Arbeitsflache?
4.4
Wie aktivieren Sie weitere Arbeitsbereiche?
4.5
Wie arbeiten Sie mit dem Texteditor?
4.6
Welche Hilfsfunktionen bietet das CDE?
4.7
Der Dateimanager
4.8
Wie passen Sie das CDE an Ihre WOnsche an?
339
C. Wolfinger, Keine Angst vor UNIX
© Springer-Verlag Berlin Heidelberg 2000
4
CDE - die grafische Benutzeroberflache unter UNIX
4.1 Wie melden Sie sich an?
1m Abschnitl 3.1.3 haben Sie erfahren, wie Sie mit einer grafischen Oberflache arbeiten. Auch wissen Sie bereits, wie Sie sich unter dem CDE an- und abmelden
kennen. Sehen wir uns hierzu kurz nochmal das Anmeldefenster an:
Welcome to UNIX
Language
Session
-----I
Command Une Login
Reset Login Screen
Bild 4 -1: Anmeldefenster im CDE
Unter Options kennen Sie auf den meisten Systemen die Sprache vorab einstell en und, falls Sie doch nicht mit CDE arbeiten wollen, kennen Sie hier auf
eine ASCII-Terminal-Einstellung (Command Line Login) oder auf eine andere zur
VerfOgung gestellte X-Window-/Motif-Oberflache umschalten.
Wenn auf Ihrem System die deutsche Sprache anwahlbar ist, erhalten Sie MenOs, Dialogboxen und evtl. Fehlerhinweise in deutsch, auch die Hilfe-MenOs sind
zum greBten Teil ebenfalls in der ausgewahlten Sprache. Leider sind dagegen die
UNIX-Manualseiten meistens nach wie vor in englisch. Da auf vielen Systemen
englisch voreingestellt ist (bzw. nur verfOgbar ist), werden die englischen MenOs
beschrieben, die aber im Aufbau identisch mit den deutschen MenOs sind.
340
Bild 4-2: Schreibtischumgebung - Arbeitsflache
4.2
Die Desktop-Anzeige
4.2 Die Desktop-Anzeige
Sehen wir uns die Anzeige genauer an. Was verbirgt sich hinter den kleinen Bildchen?
Schalffiache fUr Menuaufruf
weitere Programme In
einer ausTerminklappbaren
kalender Bedientafel
Zum AbschlieBen Ihres
Bildschirms das
SchloB
Lichtkontroll Anzeige
1
Arbeitsbereiche
Texteditor
Oateimanager
Abmelden vom
System
weitere Programme in
einer ausklappbaren
Bedientafel
Oruckmanager
Umgebungs- oder Style-Manager
D
0
-tCD
'0.
<Il
0..
Hille
Anwendungs- oder
ApplicationManger
Bild 4-3: Erlauterungen zur Oesktop-Anzeige
Zu den einzelnen Punkten von links nach rechts:
o
Schaltflache fur Menuaufruf
Nur an den markierten Stellen konnen Sie ein MenO aufrufen, um z. B. die
Desktap-Anzeige zu verschieben oder zu verkleinern. Die MenOs konnen Sie
mit der linken dder rechten Maustaste aufrufen.
Verkleinern der Anzeige
Anzeige an den unteren"----+
Bildschirmrand
Bildschirm neu aufbereiten
Abmelden - gleiche Funktion
wie die Schaltflache EXIT
Restore
Wiederherstellen der Anzeige
Move
Minimize
Lower
Refresh
Log out
Verschieben, d.h. , Siekennen dann mit
der linken Maus die Oesktop-Anzeige
anwahlen, die Taste gedruckt lassen
und die gesamte Anzeige dorthin verschieben, wo Sie sie gerne hatten.
Bild 4-4: Oesktop-Anzeige - MenD
o
Uhr
Hier sehen Sie immer die aktuelle Uhrzeit
o
Terminkalender mit Datum
Auf dem ersten Blatt steht jeweils das aktuelle Datum. Mit Dappelklick erhalten Sie einen Terminkalender, in dem Sie Ihre Termine
eintragen konnen. Sie haben hier sagar mehrere Kalender-Darstellungen zur VerfOgung, Obersichtskalender fOr das Jahr, den Manat
die Wac he und den Tag - und aile werden Ober einmalige Eintrage gesteuert.
341
4
coe - die grafische Benutzeroberflache unter UNIX
o
Oateimanager
Grafisch werden Directories und Dateien in Ordner und kleinen
Kastchen dargestellt. Mit Hilfe von Maus und Dialogboxen werden
die Dateien verwaltet. So k6nnen Sie z. B. Dateien kopieren, verschieben oder 16schen, ohne Kommandos einzugeben. Naheres
Ober den Dateimanager erfahren Sie im Abschnitt 4.7.
o
Texteditor
Mit dem Texteditor haben Sie jederzeit ein ,Blatt Papier< zur Hand
und mOssen nicht erst nach einem Kugelschreiber suchen, sondern
kennen schnell wichtige Gedanken notieren. Aber nicht nur fOr Notizen, sondern vor allem als Ersatz fOr den vi-Editor ist er einzusetzen. Mehr Ober den Texteditor im Abschnitt 4.5.
o
Bedientafel fiber dem Texteditor - auch diese kennen Sie bereits von
Abschnitt 3.1, Bild 3-5 (Neues Terminal-Fenster unter CDE) auf Seite 40.
Frei, um weitere Applikationen einzufUgen, Wie das funktioniert, erfahren Sie im Abschnitt 4.8
Oas Symbol fUr den Texteditor ist in die Hauptanzeige
Gbernommen.
Benotigen Sie ofter das Terminal, so empfiehlt sich, dieses in die Oesktop-Anzeige zu Gbernehmen. Wie, das erfahren Sie ebenfalls im Abschnitt 4,8.
Klicken Sie das Terminal an, erhalten Sie ein neues Fenster, um UNIX-Kommandos einzugeben
Oer Icon Editor und der Image Viewer sind nicht generell
verfGgbar. Sie sollen hier nur als MOglichkeit angezeigt werden, daB weitere Applikationen in einer Bedientafel aufgenommen werden konnen (siehe arstes Symbol oben)
Bi/d 4-5: Bedientafel Dber Texteditor
342
o
Mail-Tool
Abhangig von der Installation Ihres Systems erscheint das voreingestellte
Mail-Programm.
o
Oas SchloB
Falls Sie bisher schon mit dem CDE gearbeitet haben, kennen Sie bereits,
wie Sie den Bildschirm abschlieBen: Einfach anklicken - doch wehe Sie haben Ihr PaBwort vergessen. Nur mit einem gOltigen PaBwort kann der Bildschirm dann wieder benutzt werden. Andernfalls kann Ihnen nur Ihr Systemverwalter weiterhelfen (ein neues PaBwort vergeben). Welches Muster als
Schutz auf dem Bildschirm erscheinen soli, wird im Umgebungs- oder StyleManager eingestellt (siehe Abschnitt 4.8).
o
Arbeitsbereiche
WuBten Sie schon, daB Sie nicht nur einen, sondern mindestens vier Bildschirme zur VerfOgung haben? Hinter jedem dieser kleinen Balken (One,
Two, Three, Four) verbirgt sich eine neue Schreibtischumgebung. Es ist
Die Desktop-Anzeige
4.2
eine phantastische Einrichtung fOr all jene, die gleichzeitig mit mehreren
Programmen arbeiten. Wenn Sie sich das Bild 4-2 ansehen, ist ja jetzt
schon kaum mehr Platz, um z. B. mit FrameMaker ein Dokument zu bearbeiten. Denn sowohl Applixware als auch FrameMaker haben ja wiederum
eine Reihe von Dialogboxen, Menus usw. Hier macht es Sinn, diese Verarbeitungen unter einem anderen Arbeitsbereich aufzurufen. Wie, das erfahren Sie im Abschnitt 4.3.
o
Lichtkontrollanzeige
Wenn das Licht blinkt, zeigt es an, daB das System gerade Aktionen durchfOhrt.
o
Exit
Auch diese Schaltflache haben Sie bereits kennengelernt. Einmal anklicken,
und Sie erhalten ein Menu, ob Sie wirklich schon aufhoren wollen zu arbeiten
bzw. Ihre Sitzung am Bildschirm been den mochten.
o
Druckmanager
Der Pfeil daruber zeigt an, daB sich noch weitere Anwendun- ~ Persona
en
gen dahinter verbergen. Je nachdem welche Drucker vom Sylnatallcon
stemverwalter fur Ihren Rechner installiert wurden, erscheinen
hier die moglichen Drucker. 1m Dateimanager werden Sie kenDefault
nenlernen, daB Sie lediglich eine Datei mit der Maus anzuwahlen und auf das Drucksymbol zu ziehen brauchen, damit sie
Pnnt Managor
ausgedruckt wird. Klicken Sie den Printmanager an, erhalten
Sie eine Obersicht der noch abzuarbeiteten Druckauftrage.
BNd 4 - 6: Bedientafel fOr Drucker
o
Umgebungs- oder Style-Manager
Mit diesem Tool passen Sie Ihre Schreibtischumgebung so an, wie
Sie es gerne hatten. Aus dem Icon erkennen Sie schon, was Sie
z. B. verandern konnen: die Mausfunktionen (ob schnell oder langsam), die Farben, Schriftarten oder den Bildschirmhintergrund. AuBerdem
wird hier eingestellt, ob und welcher Bildschirmschoner eingesetzt werden
soil. Einige Tastaturfunktionen und noch einiges mehr kann geandert werden.
1m Abschnitt 4.8 werden die wesentlichen Anpassungen gezeigt.
o
Anwendungs- oder Application-Manager
Unter diesem Menu werden Ihnen u.a. mogliche Programme angeboten, die Sie mit drag and drop in Ihre Bedientafeln ubernehmen konnten. Auch hieruber mehr im Abschnitt 4.8.
o
Hilfe-Menu
Unter dem Symbol ,Bucher, finden Sie die fOr die CDE-Umgebung
notigen Informationen. Unter der Bedientafel sind oft noch komfortable Suchprogramme installiert, mit den en Sie Informationen uber
Ihr System und uber UNIX-Kommandos abrufen konnen. Auch hier
hangt es von der Installation des System ab, welche Hilfe-Kataloge Ihnen hier
angeboten werden.
343
4
CDE - die grafische Benutzeroberflache unter UNIX
o
Papierkorb
Wie Sie spater beim Dateimanager erfahren, konnen Sie mit der
Maus Dateien anklicken, ,festhalten, und in den Papierkorb ziehen
(wegwerfen - und achten Sie dabei darauf, wie das kleine Bildchen
darauf reagiert). Der groBe Vorteil, gegenOber dem rm-Kommando
ist, daB notfalls die Dateien auch wieder aus dem Papierkorb herausgeholt
werden kennen, solange Sie ihn nicht ausdrOcklich 'geleert, haben. Wie die
,MOliabfuhr, funktioniert, erfahren Sie im Abschnitt 4.7.
Doch bevor wir Dateien erstellen und wegwerfen , sehen wir uns kurz eine nette
CDE-Anwendung an, die nOtzlich sein kann, wenn Sie immer Zugang zu Ihrem
Rechner haben:
4.2.1 Der Terminkalender
Klicken Sie das Symbol einfach mal an. Die Eingaben sind selbsterklarend (CDE-like), so daB es reicht, hier nur kurz die Darstellung einer Kalenderart und die Dialogbox zum Editieren der Termine zu zeigen:
Um einen Termin zu selzen,
wllhlen Sie das Menu Edit und
erhallen nebenslehende Dialogbox, in der Sie die Termine edilieren wobei Sie gleichzeilig einen ,Weckdiensl, einrichlen
k6nnen
~';';';';r-
'noqUeftC,
_____----II 3 ,OO Abschluu
====
Inwrt
344
Bild 4-7: Beispiel Terminkalender
_.....
luc h
4.3
Wie arbeiten Sie auf dem Desktop - der Arbeitsflache?
4.3 Wie arbeiten Sie auf dem Desktop - der Arbeitsflache?
So wie bei der ersten kleinen Anwendung, die wir uns angesehen haben, sind die
meisten Programme unter CDE aufgebaut - selbsterklarend. Doch ein paar Hinweise sind recht hilfreich, um nicht zu lange Zeit beim Probieren (oder sollte man
sagen Spielen) zu verlieren. Bei der EinfOhrung in die grafische Oberflache (Abschnitt 3.1.3) haben Sie die wichtigsten Schritte bereits kennengelernt und wissen, wie Sie ein Terminalfenster erhalten und sich auf der Schreibtischoberflache
bewegen, wie Sie Fenster vergrOBern, verkleinern, verschieben und wie Sie Texte
von einem Fenster zum anderen kopieren. Dies hatte bisher ausgereicht, um
UNIX-Kommandos zu starten und Texte zu erstellen. Viele von Ihnen werden auf
Ihrem Rechner Software einsetzen, die speziell fOr Ihren Arbeitsbereich die notigen Werkzeuge bereitstellt. Wie werden diese Programme unter dem CDE gestartet? Hier gibt es mehrere Moglichkeiten:
1.
So wie wir bisher unsere Kommandos aufgerufen haben, geben Sie uber ein
Terminalfenster den Programm- oder Kommandonamen ein. (Wie Sie ein
Terminalfenster erhalten, ist auf Seite 40 beschrieben.) In der Regel hat Ihr
Systemverwalter die Variable PATH fOr aile Benutzer um jene Directories
erganzt, unter denen die in Ihrem Betrieb benotigte Software aufgerufen wird.
Wenn nicht, konnten Sie uber find herausfinden, unter welchem Directory die
Software gespeichert ist und Ihre Variable PATH selbst erganzen.
2.
Auf der freien Arbeitsflache drucken Sie die rechte Maustaste. Ober ein Menu,
das vom Systemverwalter zusammengestellt wird, konnen Sie die fOr Sie
wichtigen Programme auswahlen. Beispiel eines Menus:
COE Workspace
Lock Screen
COE-Programms
OW-Programms
-<>
-<>
Standard Applications -<>
Application Groups
Support Tools
Utilities
Log out
-<>
-<>
-
FrameMaker 4.0
FrameMaker 5.0
-
Appllx 4.2 (US)
Applix 4.2 (GY)
Lotus
Wingsz
Netscape
--
Bi/d 4-8: Arbeitsf/ache - Beispiel eines MenOs
3.
Ober den Dateimanager wahlen Sie die Programmdatei in dem entsprechenden Ordner und starten dieses durch Doppelklick.
4.
Dateien, die von bestimmten Programmen erzeugt wurden (z. B. FrameMaker-, Applix- oder tiff-Dateien, wie wir sie spater in unserem Muster sehen)
konnen durch Doppelklick das dazugehorige Programm starten. Hierzu ist
ebenfalls eine Voreinstellung durch den Systemverwalter notwendig.
Arbeiten Sie mit mehreren Program men gleichzeitig, konnte es eng auf Ihrem
virtuellem Schreibtisch werden. Durch Ikonisieren von gerade nicht benotigten
345
4
COE - die grafische BenutzeroberfHiche unter UNIX
Fenstern (Sie erinnern sich, die kleine Schaltflache mit dem Punkt auf der rechten oberen Ecke eines Fensters) bleibt Ihre Arbeitsflache zwar einigermaBen
ubersichtlich, doch einfacher ist es, auf weitere Schreibtische auszuweichen.
4.4 Wie aktivieren Sie weitere Arbeitsbereiche?
Um auf einen zweiten, dritten oder vierten virtuellen Schreibtisch zu arbeiten,
brauchen Sie nichts weiter zu tun, als auf den Balken mit Two, Three oder Four
zu klicken. Ein leere Arbeitsflache erscheint auf dem Bildschirm mit der Desktop-Anzeige.
......
IY,
[
:"-~;
i~~~Li·~ ~==:-~-.!;i "~--;;~~l
BUd 4-9: Neuer Arbeitsbereich
Hier konnen Sie weitere Terminalfenster, Dateimanager oder entsprechende
Programme starten. Um wieder zu Ihrem ursprunglichen Desktop zuruckzukehren, klicken Sie den Balken mit One.
1m Abschnitt 4.8 erfahren Sie, wie Sie den verschiedenen Arbeitsbereichen Namen, unterschiedliche Farben und Hintergrunde vergeben konnen und, falls Ihnen die vier Schreibtische nicht ausreichen, auch noch weitere hinzufUgen konnen.
Unter dem CDE sind Ihrem Arbeitsdrang keine Grenzen gesetzt - es sei denn,
der Rechner ist nicht mit ausreichendem Speicher ausgerustet, denn gleichzeitig mehrere Programme zu starten und verschiedene farbige Schreibtische zu
steuern, kostet entsprechenden Speicherplatz. Sie merken es spatestens daran,
daB dann neue Aktionen langsamer werden. Es kann dann auch mal unter UNIX
passieren, daB Ihr Rechner streikt. Doch meistens laBt sich noch ein Terminal
offnen und uber ps -ef sehen Sie, welche Prozesse u. U. den Rechner blockieren. Diese konnen Sie dann uber kill abbrechen.
346
Sie sehen, das bisher Gelernte ist auch bei der grafischen Oberflache gut anzuwenden und war nicht vergebens.
Wie arbeiten Sie mit dem Texteditor?
4.5
4.5 Wie arbeiten Sie mit dem Texteditor?
Kein Vergleich zum vi - wie schon! Sie benotigen keine Befehle, Sie starten den
Texteditor und konnen sofort intuitiv dam it arbeiten qook and fee~. Ober MenOs
wird Ihnen angezeigt, wie Sie korrigieren, sichern und neue Dateien offnen konnen.
4.5.1 Wie starten Sie den Texteditor?
ODie einfachste Art ist, das Bildchen mit dem Notizzettel anzuklicken. Es wird
ein neues Fenster geoffnet, und Sie konnen in dieser neuen Datei bereits
munter darauf losschreiben.
o
Wenn Sie eine bestehende Datei verandern wollen, konnen Sie im Dateimanager die entsprechende Datei mit einem Doppelklick offnen. Bei ASCIIDateien wird der Texteditor automatisch gestartel.
o
Eine andere Moglichkeit ist, im bereits gestarteten Texteditor aus der MenOzeile File ---+ Open zu wahlen. Es
offnet sich dann eine Dialogbox, Ober die Sie die gewOnschte Datei suchen und auswahlen konnen.
o
Mit Include konnten Sie eine weitere Datei in die bestehende Datei an der Stelle einfOgen, wo der Text-Cursor
(siehe hierzu Seite 37) stehl. Es erscheint die gleiche Dialogbox wie bei Open, um die Datei auszuwahlen.
New
Open
Include
Save
Save as
Print
Close
Ctr1+P
Alt +F4
Bild 4-10: Texteditor - MenD File
Sehen wir uns die Dialogbox,
um Dateien auszuwahlen, an:
Text Editor
Open a file
Das aktuelle Directory wird angezeigt,
bzw. jenes, das sie unter Folder mit Doppel klick auswahlen. Siekennen jedoch auch
direkt das gewOnschte Directory eintippen
Hier wahlen Sie das Directory aus
(1m CDE als Ordner bezeichnet).
Klicken Sie die zwei Punkte an, wechseln Sie
in das nachsthohere Directory
Uber einen Filter (dahinter verbirgt sich die
uns bekannte Dateinamenexpansion) konnen
Sie die Auswahl der Dateien einschranken
-ill< home
dead _leiter
desktop
Ooku
--+- - - ---
Die der Auswahl entsprechenden Dateien
werden hier angezeigt. Mit der Maus wahlen Sie
hieraus eine Datei, und diese wird dann
in dem unteren Feld eingesetzt. Sie kennen
natOrlich auch die Datei direkt angeben
Bild 4-11: Texteditor - Dialogbox, urn Dateien auszuwahlen
Wie Sie im obigen Beispiel sehen, ist es nicht einmal notig, den Pfad- und Dateinamen einzugeben, sondern diese nur mit der Maus anzuklicken.
347
4
CDE - die grafische Benutzeroberflache unter UNIX
4.5.2 Wie konnen Sie Texte verandern?
Ganz einfach. Sie gehen mit dem Maus-Cursor an die Stelle, an der Sie etwas
einfOgen wollen, und geben den Text ein. Um zu loschen, markieren Sie den
Text (wie, wurde im Kapitel 3.1 auf Seite 41 beschrieben) und wahlen aus der
MenOzeile Edit ~ Cut. Hier sehen Sie dann auch, daB Sie mit der Tastenkombination <Ctrl+x > (also die Ctrl-Taste gedrOckt lassen und x eingeben) ebenfalls
markierte Texte loschen konnen. Dies geht in der Regel schneller, als mit der
Maus Ober verschiedene MenOs die gewOnschte Funktion auszuwahlen. Durch
die Anzeige der moglichen Tastatureingaben im MenO konnen Sie sich die von
Ihnen haufig genutzten Funktionen so nach und nach aneignen.
Sehen wir uns einen Ausschnitt einer Textseite an. Mit Doppelklick wurde die
Datei Gestalten.html mit dem Texteditor geoffnet. Es ist ganz interessant, was
sich hinter HTML-Dateien fOr schreckliche Formatieranweisungen* verbergen
(besonders fOr Umlaute) - doch uns interessiert hier nur, wie Sie mit dem Texteditor arbeiten konnen.
.....
lext [dUor
FIle EdIt Format OptiOns
]
.....--
(,e,lallen hlml
MenOzeile
~~D
r
1!elp
~~L>
<HEAD>
<TITLE>Ges a 1ten</TITLE>
<'-F,ltered from Applh"W3re WOrds. Release
</HEAD>
'.l
on Tue luI 23 17:'2:23 1996->
<BODY>
Gestalten lIOn Dokumenten
<1'>
zw, schen M.nschen ." rd ers t 1ebend'g durch
Be onung und Gesten. Umgesetzt In Schnft .ntr&a .... , :l1t d,ese wl chtlge
Ausdrucksform. L)n geschrlebenen Text dennoch schnell verst&auonl :ndl,ch zu
v~LmilleJ.!1,~b!. tl....v~schlel!.enLGe~t~u'!!lSmet~den: _ _ _ _ _ _ _ _ _
01 e Sprach. a Is Vers t&a....,' : nd'gung
Unter dem MenOpunkt Edit finden Sie aile Befehle, die Sie zum Verandern von
Dateien benotigen. Hierzu ein paar Erlauterungen:
Die von Ihnen zuletzt durchgefUhrte Aktion (Ieschen. einfUgen,
Formatiinderungen etc.) wird wieder ruckgiingig gemacht
Schneidet den markierten Tex taus
Kopiert den markierten Text
FOgt den zuletzt geloschten od er kopierten Text ein
Oberschreibt den markierten Toext mit Leerzeichen
Lescht den markierten Text
Markiert den gesamten Text in Ihrer Datei
Offnet eine Dialogbox, mit der Sie nach Wortern oder Satzen
in der Datei suchen kennen
Startet ein Zusatzprogramm, das die Rechtschreibung OberprOft -
Undo
Ctrl+z
Cut
Copy
Pasle
Ctrl+x
Ctrl+c
Ctrl+v
Clear
Delete
Select all
..
Find/Change Ctrl+f
Check Spelling
Bild 4-12: Texteditor- Menu Edit
348
*
HTML·Dateien lassen sich natOrlich mit hierfOr eigens entwickelten Textprogrammen generie·
ren, kennen aber auch Ober den Texleditor veriindert werden.
4.5
Wie arbeiten Sie mit dem Texteditor?
Wahlen Sie Edit -+ Find/Change aus, offnet sich die nachfolgende Dialogbox,
in der Sie die Zeichen angeben, nach denen gesucht werden soli. Hierbei werden GroB- und Kleinbuchstaben beachtet. Unter Change to konnen Sie angeben, daB fOr den gefundenen Wert der hier eingegebene Text eingesetzt werden
soil.
~=.,.:T..:=ext Editor
Find/Change
Hier geben Sie ein, nach was gesuchl werden soli,
hier einen evtl. zu ersetzenden Wert
sucht bis zum nachslen
Vorkommen des Suchbegriffs
andert den gefundenen Wert andert aile gefundenen Werte
mit dem zu Ersetzenden
mit dem zu Ersetzenden
Bild 4 -13: Texteditor - Find/Change-Dia/ogbox
4.5.3 Wie konnen Sie Texte formatieren?
DerTexteditor bietet mehr als nur ein reiner Editor. Ererlaubt, daB einfache Textformatierungen durchgefOhrt werden konnen. Der MenOpunkt Format enthalt
folgende Unterpunkte:
Ruf! eine Dialogbox auf, in der eingegeben werden kann ,
wie der Text ausgerichlel werden soli
FOhrt die angegebenen Formal-Einslellungen fOr den
Absatz durch
FOhrt die angegebenen Format-Einstellungen fOr die
gesamte Dalei durch
-
Settings
Paragraph
All
Text Editor - Format Selling
Ausrichlung
des Textes: links
rechls
left M rgin
Left Align
Right Margin: 52
I
Randeinslellung:
links/rechts
Anzahl der Zeichen
Right Align
als Blocksatz
Justify
mittig
Center
Paragraph t
DurchfOhrung nur fOr den Absatz
Close
DurchfOhrung fOr die gesamle Datei
Bild 4-14: Texteditor- Format
349
4
COE - die grafische Benutzeroberflache unter UNIX
Unter dem Menu Options k6nnen einige Voreinstellungen gesetzt werden:
Ais Standard ist der EinfUgemodus eingestellt. Mit Overstrike
kennen Sie in den Oberschreibmodus umstellen - - - - - - i 0 Overstrike Insert
1st Wrap to Fit eingestellt, wird automatisch, entsprechend
der FenstergreBe die Zeile umgebrochen. Sonst muBte jeweils
Wrap to Fit
mit Return in die nachste Zeile geschaltet werden
Statusline
Wird Statuslinie angeklickt, erscheinl in der Datei am
unteren Rand eine Slatuszeile, in der Informationen uber
die Datei enthalten sind (Anzahl der Zeilen, welcher Modus
eingestellt ist, EinfUge- oder Oberschreibmodus u.l!.)
Bild 4 -15: Texteditor - Menu Options
AbschlieBend noch einige Tastatur-Befehle im Oberblick:
Texteditor beenden
@+E)
Markierten Text kopieren
@+0
Markierten Text ausschneiden
@+0
Markierten Text 16schen
@ W~1:~)
Suchen und Ersetzen
@+QJ
Einfugen der letzen L6schung/Speicherung
@+0
Ausdrucken der Datei
@+0
Gesamten Text auswahlen
@)+C]
Undo - Ungeschehen machen
@+0
Zeichen nach links loschen
@ ~~~t<e)
Zeichen nach rechts loschen
§D (Entfernen)
Zeichen bis zum Ende der Zeile loschen
@+§D
Zeichen zuruck bis zum Anfang der Zeile loschen
Umstellen auf Uberschreib-/Einfugemodus
Den Text-Cursor nach oben, unten, rechts und links
350
(Re- 0+§D
turn)
@
CDCD88
Zum nachsten Absatz
@+CD
Zum vorherigen Absatz
@)+CD
Zum Beginn der Zeile
(Hom~
Zum Ende der Zeile
(End]
Zum Beginn der Datei
@) +[Hom~
Zum Ende der Datei
@+[End]
Bild 4-16: Texteditor - Tastatur-Befehle
4.5
Wie arbeiten Sie mit dem Texteditor?
Falls auf Ihrem System die Tasten nicht so belegt sind wie angegeben, fragen
Sie am besten Ihren Systemverwalter.
Um vorwarts und rOckwarts in einer Datei zu blattern, nutzen Sie am besten den
Rollbalken am rechten Rand des Fensters.
Ja, was soli man noch erklaren? 1m Grunde ist, wie eingangs erwahnt, der Texteditor so einfach zu bedienen, daB Sie alles selbst herausfinden werden. Falls
dennoch eine Frage offen bleibt, rufen Sie am besten das HilfemenO auf.
file Idit
Vol u me"
~earch
Text Editor - Hel
_avigate
!:!elp
T~ EClJlOr He p
Ten EdItOr Help
T.bl. of Contents
TutEditor Task.
Text Editor Reference
• Editing and Cursor Keys
• Unix Key Bindings
T" lIl E.ll... M. . .
Ie?<! Ed"or Menu Accelerators
Ie?<! Ednor File Menu
Tel<! Ed"or Ed" Menu
Te?<! Ednor F onnat Menu
Ie?<! Edn0r Oplions Menu
Ie?<! Ednor Help Menu
• Ie?<! Editor Window
• lex! Edjlor Open a File Dialog Box
• Tel<! EdUor Save As Dialog Box
• leI<! Editor Save Dialog Box
• Tex! Ednor Include a File Dialog Box
• Tex! Editor Spell Dialog
Box
Bild 4-17: Beispiel einer Hilfe-Menu-Seite
351
4
CDE - die grafi sche Benutzeroberflache unter UN IX
4.6 Welche Hilfsfunktionen bietet das CDE?
Sie haben sicher schon bemerkt, daB in den meisten MenOs und Dialogboxen
immer ein kleine Schaltflache mit Help zu sehen war. Klicken Sie diese Schaltflache an, erhalten Sie Ober das gerade angewahlte MenO die entsprechenden
Informationen.
AuBerdem haben Sie Ober die Desktop-Anzeige immer
den Zugriff auf samtliche HilfemenOs. In der Bedientafel
oberhalb des Helpmanagers sind meist noch detaillierte
Beschreibungen anzuwahlen, wie in diesem Beispiel fOr
Desktop Introduction und Front Panel (Desktop-Anzeige). Doch auch diese Bedientafel ist abMngig von
der jeweiligen System installation und kann individuell
verandert werden. Rufen wir als Beispiel den Help-Manager fOr unser nachstes Thema, den File Manager, auf:
Help
f ile i dit
Hel
Help Manager
Desktop Introduction
Front Panel Help
Hiermit ktinnen Sie
jeweils zUrUck zu
Ihrer letzten Hilleaktion
In einer Uste sind
aile Ihre Hilfe-Aktionen aufgefi.ihrt, und
sie ktinnen durch
Anklicken darauf
zUrUckgehen
Durch Doppelklick wird
das angewahlteThema
angezeigt.
1st ein Text unterstrichen,
ktinnen uber
Hypertext jeweils weitergehendelnformationen
aufgerufen
werden
FlleM
T .....
_FlleM~_
• To Select a Sinole fll. or Folder
• To Select Munl
o"
Flies or Folders
• To Get Help on a file or folder
• To Drag and prop, Ell. or Fold"
• To C(eale a New FUe or Folder
Folger
• To Open a Ene or EOlger
• To Rename a file or
• To Moye , fl'. Or fOlqer
• To Copy a File or Eolder
• To ertal, ,
SymboJtc LInk
• Tp Execyto an Actign (p' a FHa pc Fglder
Bild 4 -18: Das Hilfe-Menii
352
Hier erhalten Sie
ein alphabetisch
sortiertes Stichwortverzeichnis aller mtiglichen Begriffe, Dber die Sie
nahere Informationen abrufen ktinnen
4.6
Welche Hilfsfunktionen bietet das CDE?
Ober den MenOpunkt Search erhalten Sie eine Dialogbox, Ober die Sie nach bestimmten Begriffen suchen kennen. Sie erhalten dann eine Liste mit der Anzahl
der gefunden Textstellen, unterteilt nach den Bereichen:
Help
Index Search
Search
+55 _ _ _ "",
. 2., Cek:.........
+]7S
c_"'"
+ ,~o
... _ " ' "
+ 17 c~. Ad_ HIlt
... 12 Ofttla, ..... 3yIl_
• .S
f,."..' ........
• ... "OI'I~or .....
• 255 _ v _ " " ,
I""
.205
DMila,
+
40 l~
_ _ "",
+ ~,
hbIIIIIfHlfp
• 43 IPIWbi .....
• 32
SfttlCln~
Slart Searc h
Help
Bild 4-19: Help -Index Search
Klicken Sie einen der Bereiche an, erhalten Sie die darin gefundenen Begriffe und wiederum mit weiterem Klicken die entsprechenden Beschreibungen
hierzu.
Sie kennen die Suche auf das aktuelle Kapitel (Current Help - Top Level), auf
samtliche HilfemenOs oder auf das gerade Angewahlte einschranken.
353
4
COE - die grafische Benutzeroberflache unter UNIX
4.7 Der Dateimanager
Um Dateien zu verwalten, werden diese, wie wir in Kapitel 3.1 erfuhren,
in Directories strukturiert. Wie eine Ablage mit lauter Schubladen und
Ordnern. Und dies ist auch das Symbol fOr den Dateimanager. In Kapitel
3.1 hatten Sie nachfolgendes Bild schon einmal gesehen. Dort wurde es
hauptsachlich deshalb gezeigt, um die Baumstruktur zu verdeutlichen.
Sehen wir uns nun das Bild etwas genauer an:
~__~~~______~F~I~le~M~a~n~a~ge~r_-_t~e~m~p~lr~2~~~==~____~1._·L~=fl
f.lle
/
tlelp
home tempi r2
/home/tempi r2
Klicken Sie auf dieses Symbol, wechseln Sie in den nilchstMheren Ordner
Je nach Ursprungsprogramm haOOn die Dateien unterschiedliche
Darstellungen. Hier ein
uOOr das Imagetool erstelltes Abbild eines
Bildschirmabzugs als
tif-Datei gespeichert
I 58 Items 38 Hidden
Hier ein paar weitere Symbole, die bestimmte Dateitypen darstellen:
Ein Ordner, dahinter verbirgt sich ein Directory
~r----. _
Eine Shell-Prozedur, die unter der Bourne-Shell ablauft
bzw. der Korn-Shell
oder der C-Shell
- - So sind allgemein ausfOhrbare Dateien gekennzeichnet
...
•
354
___ Dies hier ist eine Textdatei (ASCII), sie wOrde durch einen
Doppelklick automatisch durch den Texteditor ge6ffnet werden
--- Dies ist das Symbol fOr eine mit compress verdichtete Datei
FOr die einzelnen Programme wie FrameMaker, Applix, Lotus oder
--- mit tar erstellte Dateien gibt es noch weitere unterschiedliche
Icons. Der Systemverwalter kann Dateitypen bestimmten Programmen zuordnen, die dann automatisch gestartet werden
Bild 4 -20: Dateimanager - einige Dateitypen
Der Dateimanager
4.7
Viele Kommandos, die wir im Kapitel 3.4 kennengelernt haben, konnen wir unter
dem Dateimanager mit links (falls Sie die Maus mit der linken Hand fOhren) bzw.
rechts erledigen. Hier eine kleine Obersicht:
UNIXKommando
Aktionen im Dateimanager
cd
Durch Anklicken des entsprechenden Ordners oder uber
Go Home oder GoUp oder Go To
das Menu File
Is
Entfallt eigentlich - Sie sehen generell die Dateien, Sie konnen allerdings uber ein Auswahlmenu steuern, was und in
welcher Sortierung es angezeigt werden soli (dies entspricht
dann den verschiedenen Optionen von Is). Die Dialogbox
Set View
hierfur erhalten Sie uber das Menu View
Options (Bild 4-25 auf Seite 358)
mkdir
Einen neuen Ordner erstellen Sie uber das Menu
File ---> New Folder (Bild 4-23 auf Seite 357)
cp
Um Dateien zu kopieren, wahlen Sie diese per Maus an (fOr
die erste mit linker Maustaste), drucken dann die etrl- Taste
und lassen sie solange gedruckt, bis Sie aile weiteren
Dateien mit der Maus angeklickt haben.
Eine noch schnellere Methode ist, falls die Dateien zusammenhangend liegen, die linke Maustaste zu drucken,
gedrGckt zu lassen und sie uber aile Dateien zu ziehen, die
Sie auswahlen mochten.
Sind die Dateien ausgewahlt, konnen Sie das Menu Selected ---> Copy (Bild 4-23 auf Seite 357) aufrufen und geben
den Namen der neuen Datei an oder das Ziel-Directory.
Schneller geht es, wenn Sie nach dem Auswahlen der
Datei(en) die etrl-Taste driicken und gedriickt lassen
und mit der Maus dorthin ziehen, wohin sie kopiert werden
soll(en). Auf diese Art konnen Sie auch ganze Dateibaume
kopieren.
mv
(umbenennen)
Um Dateien umzubenennen, wahlen Sie die Datei an, gehen
in das Textfeld und korrigieren einfach. Mit der ReturnTaste wird die neue Beschriftung ubernommen.
mv
(verschieben)
Um Dateien in einen anderen Ordner zu legen, mussen
beide Ordner sichtbar sein. Am einfachsten, Sie starten ein
zweites Fenster mit dem Ordner, in den Sie kopieren wollen.
Wahlen Sie dann die Datei, Dateien oder einen Ordner aus
(Auswahl mehrerer Dateien siehe bei cp) und ziehen Sie sie
in den gewunschten Zielordner.
355
4
CDE - die grafische Benutzeroberflache unter UNIX
UNIXKommando
Aktionen im Dateimanager
chmod
Das Kommando unter UNIX ist ja
Dateiname
etwas aufwendig. Unter CDE brauChange Permission
chen Sie nur noch in einer Dialogbox
Put in Workspace
anzuklicken, welche Rechte fOr wen
Put in Trash
gesetzt werden sollen. Das Menu
hierzu kann mit der rechten MaustaBild 4-21: Pop-upste aufgerufen werden, sobald eine
Menu Datei
Datei oder ein Ordner angewahlt ist.
Darin klicken Sie Change Permission an. Es effnet sich dann die Dialogbox (Bild 4-27).
rm
Sie wahlen die Datei oder Dateien aus und ziehen
sie einfach in den Papierkorb oder wahlen mit der
rechten Taste das Menu (siehe bei chmod) und klikken Put in Trash an.
Ein Beispiel hierfur sehen Sie im Bild 4-29.
find
find ... -exec\
grep
Auch dieses Kommando ist unter UNIX ja wirklich nicht einfach einzugeben - doch mit CDE kein Problem. Ober das
Menu Find erhalten Sie eine Dialogbox, in der Sie die entsprechenden Suchkriterien angeben, ja in der Sie sogar
innerhalb der gefundenen Dateien noch nach Mustern
suchen kennen (Bild 4-28).
Ip
Ipstat
cancel
Dateien kennen einfach auf das Druckersymbol gezogen
werden, um ausgedruckt zu werden (z. B. unsere Shell-Prozeduren). Fur umfangreichere Texte verwenden Sie sicher
spezielle Programme (wie z. B. Applix oder FrameMaker).
Diese Dateien mussen durch eigene Druckmenus erst aufbereitet werden, bevor sie gedruckt werden kennen. Hier
verwenden Sie die internen Druckmenus der Programme.
Bi/d 4-22: Vereinfachung von UNIX-Kommandos unter CDE
Sehen wir uns nun die MenOs und Dialogboxen zu den oben aufgefOhrten Aktionen an.
356
4.7
Der Dateimanager
Die Menus des Dateimanagers:
fi la
Menu File
~alected
~I ew
~
New Folder
New File
Go Home
Go Up
Go to
Find
Hier offnet sich eine Dialogbox, und Sie geben den
Namen und die Zugriffsrechte an
Wechselt in den Ordner Ihres Home-Directories
Zeigt den Inhalt des nachsthOheren Ordners
Ober eine Dialogbox geben Sie das gewunschte Directory an
Hier offnet sich eine Dialogbox, siehe Sild 4-28
Open Terminal
Offnet ein Terminal-Fenster
Close
SchlieBt das Fenster mit dem Dateimanager
Menu Selected
nur aufzurufen, wenn Objekte ausgewahlt wurden
Offnet eine Dialogbox, in der angegeben wlrd, wohin die Datei
Move to
Ctrl+c
Copy 10
Copy as Unk
Put in Workspace" -
J r- verschoben oder kopiert werden soli.
Mit Copy as Unk kann ein symbolischer Unk erslelll werden
c- Die Datei kann als Unk mit einem Icon auf die Arbeitsflache
gelegt werden , um sie z.B. schnell im Zugriff zu haben
Pul in Trash"
Rename
Die ausgewiihlten Objekte werden in den Papierkorb gelegt
Ober eine Dialogbox kann ein neuer Name vergeben werden
-
I- Offnet eine Dialogbox, in der Sie die Zugriffsrechte iindern k6nChange Permissions
nen (Sild 4-27)
Ctrl+Backspace
Ctrl+1
r- Wiihlt aile Objekte in dem gaoffnelem Ordner aus
Select all
Hebt eine vorgenommene Auswahl wieder auf
Ctrl+\ _
Deselect all
-
c-
•
Diese Menupunkte bekommen Sie auch uber das Pop-Up-Menu (Sild 4-21), das Sie erhalten,
wenn Sie eine Datei anklicken und die rechte Maustaste drUcken. Um das Icon auf der Arbeitsflache wieder zu entfernen, mussen Sie das Pop-Up-Menu aufrufen, das Sie im Icon
selbst emalten, und Remove Workspace wahlen (Sild 4-24)
Menu View:
File
Selected
~ I ew
Open New View
Offnet ein neues Fenster mit dem Dateimanager
Sel View Options
Offnet eine Dialogbox, in der Sie die Anzeige- und Sortierkriterien fUr den gaoffneten Ordner einstellen konnen (Slid 4-25)
Save als Default Oplions
Setzt die Optionen zur Anzeige auf den Standard zurUck
Show Hidden Objecls
Ctrl+s
Zeigt die versteckten Dateien (z. B. mit. beginnend)
OHnet eine Dialogbox, i nder Sie uber Filter bestimmte Dateien
anzeigen lassen k6nnen (Auswahl uber Dateinamenexpansion)
Set Filter Options _ _-+
Clean up
Update
Richtet die Icons im Fenster ordentlich aus
_ ____+
Zeigt den aktuellen Stand des Ordners, falls zwischenzeitlich
Anderungen erfolgten
Bild 4-23: Dateimanager- Menus File, Selected und View
357
4
CDE - die grafische Benutzeroberflache unter UNIX
Dateien, die als Icon auf die Arbeitsflache gelegt wurden, k6nnen nur uber das
Menu Remove from Workspace zuruckgelegt werden. Das Menu erscheint,
wenn Sie das Icon angewahlt haben und die rechte Taste drucken.
Der Unk wird aufgehoben, und das Icon
wird gelCischt
Remove from Workspace
Open Parent Folder
Offnet den dazugeMrigen Ordner
Rename
- - - - - + - Benennt die Datei um (also auch die Originaldatei)
Actions
Zeigt evtl. Aktionen an, die die Datei betreffen
I>
Vorsicht: Wenn Sie das Icon in den Papierkorb werfen,
wird auch die Originaldatei gelCischti
Bild 4-24: Pop-up-MenO fOr auf die Arbeitsflache gelegte Dateien
4.7.1 Wie fOhren Sie die einzelnen Aktionen durch?
Urn die Darstellung des Ordners und die Sortierung der Dateien zu verandern,
rufen Sie das Menu View ---> Set View Options auf. Hier k6nnen Sie auswahlen, was und wie angezeigt werden soli:
File Manager - SetVlew Options
Headers
Iconic Path
Placement
JAS PLaced
Text Path
Darstellung des Pfads
z,B.
..iJ...il...J
Message Line
I
(i Rows and Colu ns
-j wie
Die Dateien und Ordner kCinnen in Reihen oder
einmal plaziert angezeigt werden
Show
(Ii By s lf19le Folder
Representa {Ion
Y:J By Name Only
U 8y Tree
(i By large Icons
(i Folders only
.J By Sma II
,j Folders then Files
,j8Y
Icons
a e, da e, slze_
,j Folders and Files
Direction
Order
(i Alphabetlca lIy
(i Ascending
,jBy Fi le Type
,) Descending
Angabe der Sortierung
aufsteigend, oder
absteigend
JBy Date
LJ By Size
I -oi< - I
-=-
Apply
I
'""-
Defaults
I
Cancel
I
He lp
I
Bild 4 -25: Dialogbox Set View Options
358
I
Darstellung der Ordner
als Baum-Hierarchie
oder wie im Beispiel
nur als Ordner
Die einzelnen Objekte
(Dateien, Ordner) als
Icons (groB, klein)
oder mit Name, Datum
(etwa wie bei Is -I)
nach Alphabet, Typ,
Datum oder
GroBe
4.7
Der Dateimanager
Zusatzlich k6nnen uber das Menu View ---> Set Filter Options bestimmte Dateien oder Dateiarten ausgewahlt werden, die im Ordner angezeigt oder nicht
angezeigt werden sollen.
Hier wird eingeslelll, ob die nachfolgend ausgewahlten Daleien in dem Ordner nicht angezeigl
(Hidden) oder angezeigt (Shown) wer~--+-~-~~----.., den sollen
r----___
r---------:=:--..;...-:=::---:=~_F::::;::~i Durch Anklicken der Dateitypen werden
sie ausgewahlt
~====~~===~=~~~~~~;~J Hiermit kennen aile Dateitypen, die im
...
Ordner vorkommen, ausgewahlt werden
bzw. die Auswahl kann aufgelest werden
~-==========""i Ober Dateinamenexpansion kennen hier
Auswahlkriterien angegeben werden,
I ::....:.~::..:.-.,~=~==~..:.~-=:.:.-.:.::.::...::_.J1 welche Dateien nicht angezeigt werden
...
sollen (wie hier aile mit. beginnenden )
Bild 4 -26: Dia/ogbox Set Filter Options
Andern der Zugriffsrechte
Um die Zugriffsrechte zu andern, k6nnen Sie Change Permissions im Menu
Select oder im Pop-up-Menu der entsprechenden Datei (siehe Bild 4-21) anwahlen. Sie erhalten dann nachfolgende Dialogbox:
Anzeige der Datei (Typ/lcon)
TfF
relm 1510n<!
Read
Owne
•
Wr e
•
J
Hier klicken Sie einfach an, wer was darf
(Entgegen dem Kommando chmod bedarf
es hier eigentlich keiner weiteren Erklarung)
Bild 4 -27: Dia/ogbox Permission - Andern von Zugriffsrechten
359
4
CDE - die grafische Benutzeroberflache unter UNIX
Finden von Dateien oder Dateiinhalten
Um Dateien zu finden, kennen Sie unter UNIX das Kommando find. Einfacher
geht es natOrlich im CDE. Hier wahlen Sie unter der Menuzeile File -> Find und
erhalten nachstehende Dialogbox.
Tragen Sie hier den Dateinamen ein, woOOi Sie
Dateinamenexpansionen verwenden konnen
(im Kapitel 3.2 im Bild Bild 3-53 auf Seite 99
zusammengefaBt)
Statt mit -exec und grep geOOn Sie hier einfach ein, nach welchen Inhalten in den gefunden Dateien gesucht werden soli
Diese EingaOO entspricht dem Start-Directory
unter find. GeOOn Sie nichts ein, wird das aktuelle Directory genommen
Aile gefundenen Dateien/Directories werden
hier angezeigt.
Um weitere Informationen
GOOr die Datei zu emalten,
offnen Sie den Ordner, in
dem sie gefunden wurde,
oder Sie legen sie als LinkIcon' auf Ihren Arbeitsbereich und konnen sie z.B.
durch Doppelklick offnen.
Bild 4 -28: Dia/ogbox Find
• Link-Icons auf dem Arbeitsbereich sollten nur Gber das Pop-up-Menii Remove from
Workspace (siehe BUd 4-24 auf Seite 358) zuriickgelegt werden. Wenn Sie sie in den Papierkorb werfen, wiirde auch die Originaldatei mitgeloscht werden.
360
Der Dateimanager
4.7
4.7.2 Loschen von Dateien - Entleeren des Papierkorbs
Sie haben schon gehOrt, daB Dateien unter dem CDE nicht sofort gel6scht werden wie beim rm-Kommando, sondern erstmal in den Papierkorb gelegt werden.
Dies geschieht entweder dadurch, daB Sie ein Datei-Icon in den Papierkorb ziehen oder uber das Pop-up-Menu der Datei (Bild 4-21) Put in Trash anwahlen
(dies k6nnen Sie auch, wenn Sie z. B. mehrere Dateien markiert haben, uber das
Menu Select -+ Put in Trash erreichen). Die Dateien sind zwar dann aus dem
Ordner entfernt, nehmen aber nach wie vor Platz auf der Platte ein. Um sie nun
endgOitig zu 16schen, mussen Sie den Papierkorb ausleeren. Vorab sollten Sie
vorsichtshalber einen Blick hineinwerfen.
Klicken Sie den Papierkorb an, eltnet sich dieses Fenster
Wenn Sie ein Icon auswiihlen, kennen Sie
mit der rechten Taste das Pop-up-Menu
aulrulen:
Blume.mit.backup
Pull back
Shred
-
Name der
ausgewiihlten Datei
Hiermit wird die Datei
zUrUck in den ursprunglichen Ordner gelegt
Mit Shred i,zerrei8en, in den Rei8wolf geben)
erhalten Sie zur Sicherheit nochmal eine
Warnung, bevor Sle mit
~hred
When tr .. ~h
obJe~ts
f Ie s
a,e shredded, they are permanently
rerTlOlled rom you, IllS tem
OK Ihre Zustimmung
zur endgultigen Zersterung
der Datei(en) geben
oder mit Ca ncel die
Aktion wieder abbrechen
Klicken Sie File an, erhalten Sie das Menu:
Select all
OeselctAlI
Put Back
r---shred
Set View Options _
r clOse
_
Hiermit kennen Sie aile Dateien im Papierkorb auswiihlen,
die Auswahl wieder aulheben,
aile ausgewiihlten Dateien in die ursprUnglichen Ordner
zurucklegen,
aile ausgewahlten Dateien leschen (wie oben erhallen Sie
vorab eine Warnung, die Sie bestatigen mussen)
Hiermit kennten Sie Voreinstellungen zur Ansicht eingeben
Mit Close wird der Papierkorb wieder geschlossen
Bild 4-29: Wie entleeren Sie den Papierkorb
361
4
CDE - die grafische Benutzeroberflache unter UNIX
4.7.3 Automatisches Starten von Kommandos
Wenn Sie eine Textdatei doppelt anklicken, wird, wie wir schon hOrten, automatisch der Texteditor aufgerufen. Je nach Systeminstallation konnen durch Doppelklick auf andere Dateien ebenfalls entsprechende Programme gestartet werden (wird z. B. bei einer Datei erkannt, daB sie von FrameMaker erstellt wurde,
wird das Programm FrameMaker auch gleich gestartet).
, handelt es sich um eine ausfOhrSehen Sie eine Datei mit diesem Symbol
bare Datei (chmod +x, bzw. bei den Zugriffsrechten wurde executable angewahlt). Hierbei so lite es sich dann auch um ausfOhrbare Programme bzw. ShellProzeduren handeln. Wenn in der ersten Zeile einer Shell-Prozedur ein RunKommando (z. B. #!/bin/ksh) eingegeben wurde, erscheint stattdessen das entsprechende Shell-Symbol
Klicken Sie das Symbol kurz zweimal an (Doppelklick), erscheint die Dialogbox, in der Sie evtl. Optionen und Argumente zu diesem Kommando erganzen
konnen.
Actoon Run
nl r Ih following Inform lion
"1
Option
Al'9um 111
o
nc I
Bild 4-30: Dialogbox fur Kommandoaufrufe
Sie starten das Kommando, in dem Sie OK drOcken.
Es ist tatsachlich eine neue Ara unter UNIX angebrochen, die verspricht, doch
wesentlich benutzerfreundlicher zu sein, als wir sie im Kapitel 3 kennengelernt
haben. Damit Sie sich auch wirklich in einer ,freundlichen< Umgebung befinden,
konnen Sie Ihren Arbeitsbereich so gestalten, wie Sie sich darin wohlfOhlen, Ihre
Lieblingsfarben wahlen und noch einiges mehr. Wie, erfahren Sie im nachsten
Kapitel.
362
4.8
Wie passen Sie das COE an Ihre Wunsche an?
4.8 Wie passen Sie das COE an Ihre WOnsche an?
Kochen Sie geme? Wenn ja, wissen Sie, daB es wichtig ist, sich aile Zutaten und
moglichen Gerate bereitzulegen, um sich ganz dem Gelingen eines Gerichtes zu
widmen. Dies gilt sic her nicht nur tors Kochen. Auch auf unserem Schreibtisch
sollten wir die Dinge, die wir oft benotigen, schnell im Zugriff haben. 1m CDE bietet sich hierfOr die Desktop-Anzeige an.
4.8.1 Andern der Oesktop-Anzeige
Wenn Sie z.B. ein neues Terminal-Fenster ofter benotigen als den Texteditor,
konnen Sie die Anzeige entsprechend andem. Offnen Sie hierfOr die Bedientafel
(subpanef) oberhalb des Notizblocks.
Gehen Sie mit der Maus neben das TerminalSymbol und rufen mit der rechten Maustaste
das Menu auf:
Hiermit wird das danebenstehende Symbol in die OeskCopy to Main Panel - top-Anzeige Obemommen
Install Icon
Text EdItor
Delete
Temllnal'
Icon Editor
Help
_
_
Mit Delete wird das Symbol
aus der Bedientafel geloscht
f-- Auf! das Hilfemenu auf
Wenn Sie Copy to Main Panel angeklickt haben, erscheint soforl
die neue Anzeige
Bild 4-31: Obernahme von Symbo/en aus der Bedientafe/
in die Desktop-Anzeige
Sollten Sie die angebotenen Programme in der Bedientafel nicht benotigen,
konnen Sie diese mit Delete loschen. Wie Sie neue Programme hinzuzutogen,
sehen Sie im nachsten Beispiel.
363
4
CDE - die grafische Benutzeroberflache unter UNIX
Hinzufi.igen einer Bedientafel und Erganzen der Programmauswahl
Bei Symbolen, uber denen bisher kein Pfeil ist, konnen Sie eine Bedientafel (sog.
subpanel) hinzufOgen. Hierfur klicken Sie mit der rechten Maustaste neben
oder auf das Symbol, z. B. die Uhr und wahlen aus dem dann angezeigten Menu
Add Subpanei
Gehen Sie mit der Maus neben oder
auf das Symbol und rufen Sie mit der
rechten Maustaste das MenO auf:
Add Subpanel
FOg! eine Bedientafel hinzu
Delete Subpanel
Loscht eine Bedientafel
Help
Ruf! das HilfemenO auf
Bild 4-32: HinzufOgen einer Bedientafel
Um ein weiteres Programm in ein Bedienfeld einzubinden, offnen Sie die Schublade mit den Werkzeugen, den Application Manager. Sie erhalten ein Menu,
in dem mogliche Programme nach verschiedenen Rubriken sortiert sind. In unserem Beispiel wahlen wir unter Desktop-Tools das Programm fOr eine DigitalUhr. Das Programmsymbol ziehen wir einfach auf den hierfur vorgesehenen freien
Rahmen zum Installieren von weiteren Program men, und schon konnen Sie zwischen einer Analog- oder Digital-Zeitanzeige wahlen.
1. Programm anwi:ihlen
I~ I
2. In die leere Fli:iche
von Install Icon zieh~e~n_ _~~~~!.!!:~~~=~~~~~~~==-~
-~P~
I
pacl
3. Fertig, wir konnen nun
auswahlen.
welche
Uhrwir
wOnschen
364
Bild 4-33: HinzufOgen von Programmen
4.8
Wie passen Sie das CDE an Ihre Wiinsche an?
Auf diese Art und Weise kennen Sie naturlich auch weitere Programme in die anderen Bedientafeln ubernehmen oder vorhandene leschen und Ihre OesktopAnzeige so mit den von Ihnen benetigten Werkzeugen erganzen.
1m Bild 4-9 auf Seite 346 hatten wir gesehen, wie Sie in verschiedene Arbeitsbereiche wechseln kennen. Wollen wir uns nun ansehen, wie Sie weitere Arbeitsbereiche anlegen und umbenennen kennen.
Anlegen von weiteren Arbeitsbereichen
Sollten Ihnen die vier Arbeitsbereiche (workspace, desktop) nicht mehr ausreichen, kennen Sie uber das Workspace-Menu mit Add Workspace weitere hinzufugen:
Gehen Sie mit der Maus auf
den Balken und rufen Sie mit der
rechten Maustaste das Menu auf:
•"
Add Workspace
Delete
Rename
Help
Fug! einen Arbeitsbereich
hinzu
Loscht den danebenstehenden Arbeitsbereich
Benennt den Arbeitsbereich um
Ruf! das Hilfemenu auf
Bild 4-34: HinzufOgen eines Arbeitsbereichs
Oamit Sie wissen, welche Verarbeitung Sie in welchem Arbeitsbereich gestartet
haben, gehen Sie mit der Maus einfach in die Textzeile des Balkens und geben
einen neuen Namen ein, oder Sie kennen im oben gezeigten Menu Rename anklicken.
Was fehlt Ihnen noch, um sich wohlzufi.ihlen? Richtig, das Ambiente. Wie wir das
AuBere unserer Arbeitsumgebung verandern kennen, erfahren Sie im folgenden
Abschnitt.
365
4
COE - die grafische Benutzeroberflache unter UNIX
4.8.2 Oer Style-Manager
Hiermit konnen wir alles stylen, nicht nur den Arbeitsbereich. Wenn Sie
das Symbol fOr den Style-Manager anklicken, erhalten Sie folgende MenOauswahl:
Auswahl
Zuordnung von
Farbpaletten
Auswahl eines
Hintergrunds
Mauseinstellung
BildschirmEinstellungen
Voreinstellung
fOr Neustart
Bild 4-35: Menu Style-Manager
Zu den einzelnen Menupunkten:
o
Color - Zuordnung der Farbpaletten
.. an • ., - Cdar
Wenn auf Ihrem System mehrere
Farbpaletten gespeichert sind, konnen Sie hier eine Zuordnung treffen. In den
Farbpaletten sind bereits unterschiedliche
Farben fOr den Schreibtischhintergrund, fOr
Fensterumrandungen etc. zugewiesen.
~
Bild 4-36: ColorAuswahl der Farben
HoIp
Empfehlung: Lassen Sie die detaillierte Farbzuordnung (Number of Colors ... und Modify)
durch den Systemverwalter vornehmen - damit die System-Ressourcen nicht zu schnell
aufgebraucht sind (Farben kosten Speicher!)
und damit in Foigeprogrammen keine unerwOnschten Effekte auftreten.
Es ist sicher einmal interessant, die Moglichkeiten durchzutesten, doch gerade bei Farben sollten Sie es nicht zu bunt treiben. Die voreingestellten
Pal etten sind meist schon auf harmonische und nicht zu grelle Farben abgestimmt. Wahlen Sie also eine der so schon klingenden Palettennamen wie
Delphinum. Aber auch hinter Grass oder Desert verbergen sich nette Farbspiele. Viel SpaB - aber vielleicht sollten Sie sich zuvor einen Termin setzen,
damit Ihnen die Zeit nicht davonlauft.
366
Wie passen Sie das COE an Ihre Wunsche an?
o
4.8
Font - Auswahl der Schriften
AaHbLcJdtet
f(;9~1..u45b71i~
Hier konnen Sie die
GroBe der Schrift voreinstellen.
Beim nachsten Aufruf, z. B. eines
Terminalfensters, wird die voreingestellte SchriftgroBe verwendet.
BUd 4-37: FontAuswahlderSchriften
o
Backdrop - Auswahl eines Hintergrunds
BUd 4-38: BackdropAuswahl eines Hintergrunds
Auch hier gibt es viele
nette Muster, wahlen Sie sich eines
fUr den Hintergrund des Arbeitsbereichs aus. Es empfiehlt sich, den
Arbeitsbereichen unterschiedliche
Hintergrundmuster und Farben zuzuweisen. Wechseln Sie hierfOr jeweils zuvor in den betreffenden Arbeitsbereich.
Probieren Sie einfach mal ein paar
Muster aus.
Was verbirgt sich z. B. hinter Southwest oder PinStripe? (Es konnte natOrlich sein, daB auf Ihrem System andere Muster vorgegeben sind - doch sicher ebenso schone).
367
4
CDE - die grafische Benutzeroberflache unter UNIX
o
Keyboard - Tastatureinstellung
Die Defaulteinstellung
" . ~
erlaubt, daB Tasten,
wenn Sie sie gedrOckt lassen, automatisch wiederholt werden (auto
repeat) und kein lastiges Klickgerausch ertont, wenn Sie auf den Tasten klimpern (click volume).
Je weiter Sie den Regier nach
rechts schieben, um so lauter klikken Ihre Tasten.
BUd 4-39: KeyboardTastatureinstellung
o
Mouse - Mauseinstellung
tilndedn
• Rl9hl
Ih'ooI,oId
BUd 4-40: MouseMauseinstellung
l
1
Bei Handedness konnen fOr
Linkshander die Tasten
links und rechts vertauscht werden.
AuBerdem konnen die Maustastenfunktionen umgestellt werden:
Transfer bedeutet, daB markierte Daten mit der 2. Maustaste (mitte) an
der Cursor-Position eingefOgt werden.
Adjust bedeutet, daB stattdessen bei
einer Auswahl von Texten weitere mit
dieser Taste hinzugefOgt werden.
Bei Double-Click wird mit dem RegIer die Geschwindigkeit eingestellt, mit der die Funktion Doppelklick erkannt
werden soli.
Mit Acceleration stellen Sie die Geschwindigkeit ein, mit der der Maus-Cursor
Ober den Bildschirm flitzt.
Mit Threshold kann das Minimum an Pixeln eingestellt werden, um die sich
eine Maus bewegt. Mit beiden Acceleration und Threshold kann die Maus
so eingestellt werden, daB sie ganz prazise bewegt werden kann, was bei
einigen Zeichenprogrammen wichtig sein konnte.
368
Wie passen Sie das CDE an Ihre Wunsche an?
o
Beep - Einstellung fur den Warnton
Wenn Sie bei manchen Fehlerhinweisen nur sanft vom
System darauf aufmerksam
gemacht werden wollen, sollten Sie
den Regier fOr Ton und Duration
(Dauer des Tons in Sekunden) weit
links lassen.
--=::;::::::::J.' o _~~1S]
Volume .....
Tone
':00
Our"UOII
Help
Mit Volume = 0% wird der Ton ganz
ausgestellt.
Bild 4-41: BeepEinstellung fOr den Warn ton
Unter Ton ist die Frequenz von 82
bis 9000 Hertz einzustellen.
e..... Le!
o
4.8
1
Screen - Bildschirmeinstellungen
Delaull
Auto ScrHn
8fAl1kln~
Screen '''''~~
On
Slart BI .. l>ng
1°JICIIlm_l2!la!ll!!l!I mln"l ..
lronl
Oil
P""elloc~
u~ 8ack9round~
for lock
Tr.mp.il",n1loc~
Spinning linn
TIme Per B.1ckground
minutn
Help
Bild 4-42: Screen - Bildschirmeinstellungen
Bei Auto Screen Blanking on, wird der Bildschirmschoner (Screen Blanker) eingestellt. Unter Start Blanking werden die Minuten eingestellt, nach denen automatisch der Bildschirm auf den Bildschirmschoner umgestellt wird.
Klicken Sie Use Backgrounds for Lock an, konnen Sie in der Auswahlliste ein
oder mehrere Muster fur den Bildschirmschoner anklicken, die gleich im Ausschnitt daneben angezeigt werden. Geben Sie mehrere Muster an, mussen Sie
zusatzlich die Zeit, nach wieviel Minuten gewechselt werden soli, angeben (Time
Per Background).
369
4
CDE - die grafische Benutzeroberflache unter UNIX
o
Window - Fenstervoreinstellung
Style Man lJer
Window
Default
Polnll" Window To
la~o
AClive
In dieser Dialogbox wird eingetragen, wie Ihre Fenster
behandelt werden sollen.
'I! I
Die wichtigste Einstellung ist, wie das
Fenster auf den Maus-Cursor reagieren
5011:
Allow Pnmary Windows On Top
Show Conlon" Outing Move
Window Icon
u elcon 80.
• Piau, On Workspace
Cancel
Help
Wahlen Sie Point in Window ... , wird
das Fenster sofort aktiv, sobald der
Maus-Cursor in dem Fenster ist.
Mit Click in ... wird es dagegen erst aktiv, wenn Sie das Fenster bewuBt anklikken (was ich empfehlen wurde, da die
andere Methode zu leicht zu Fehlern
fOhren kann).
Mit Raise Window ... steht das aktive
Fenster immer im Vordergrund.
Bild 4-43: WindowFenstervoreinstellung
o
Allow Primary ... stellt ein, daB das zuerst geeffnete Fenster immer vollstandig
sichtbar ist.
Startup - Voreinstellung fUr einen Neustart
Stvle Manager - Startup
Hier geben Sie ein, wie Ihr
Arbeitsbereich nach dem
Login dargestellt werden soli:
;!af!U'
so wie Sie ihn verlassen haben,
in die Default- oder Home-Session,
sie wollen sich erst beim Abmelden
entscheiden.
Hier kennen Sie ein zusatzliches Menu
aufrufen, urn die Home-Session zu definieren.
Help
Bild 4-44: StartupVoreinstellung fOr einen Neustart
370
Zum AbschluB noch ein paar Tips zum COE aus der Praxis
4.9
Nun, die Voreinstellungen sind zwar etwas zeitaufwendig, aber sie sollten ja
auch nur einmal eingetragen werden. Es ist ja auch ganz nett, ab und zu einen
neuen Tapetenwechsel fOr die Schreibtisch-Umgebung vorzunehmen, aber
wichtig ist es nicht unbedingt.
Und uberlassen Sie knifflige Einstellungen am besten Ihrem Systemverwalter.
4.9 Zum AbschluB noch ein paar Tips zum CDE aus der Praxis
o
o
Vermeiden Sie, zu viele Fenster ge6ffnet zu haben. Hier sollten Sie die M6glichkeit nutzen, sie als Icon an den Rand des Bildschirms zu legen oder
auf die verschiedenen Arbeitsbereiche auszuweichen.
o
Um schnell mit UNIX-Kommandos etwas uberprUfen zu k6nnen, ist es sinnvoll, immer ein Terminalfenster ge6ffnet zu halten - bzw. den Dateimanger
mit einem Ordner, in dem die von Ihnen am haufigsten genutzten Befehle
abgelegt sind. Bei Platzmangel legen Sie diesen Ordner am besten als Icon
an den Rand des Bildschirms.
o
Da, wie Sie gesehen haben, zwar UNIX-Kommandos durch Doppelklick gestartet werden k6nnen, ist es nun noch effektiver, sich eigene Kommandos
zu schreiben, die gleich die von Ihnen ben6tigten Optionen beinhalten oder
sie anzeigen und uber Menu abfragen, da Sie sonst doch die Optionen auswendig wissen muSten. Diese Kommandos k6nnen dann in einem speziellen
Ordner jederzeit abrufbereit sein.
o
Durch das kleine SchloS am Bildschirm ist es leicht, Ihr System zu schUtzen,
wenn Sie - auch nur fOr kurze Zeit - Ihren Arbeitsplatz verlassen.
o
Zur Sicherheit und um den Bildschirm zu schonen, sollten Sie die ScreenLock-M6glichkeiten nutzen.
War UNIX bisher eher etwas fOr Tuftier, macht es jetzt mit dem CDE richtig SpaS,
mit UNIX zu arbeiten. In diesem Sinne:
Viel Freude und Erfolg bei Ihrer taglichen Arbeit!
371
5 Obersichten
Dieses Kapitel soli Ihnen helfen, das Gelernte aufzufrischen
oder sich kurz und schnell zu informieren. Als zusiitzliche Hilfe
ist diesem Buch eine Kurzreferenzkarte beigefOgt, in der die
hiiufig verwendeten Kommandos und Sonderzeichen zusammengestellt sind. Die Karte enthiilt zusiitzlich noch Wissenswertes Ober UNIX (Editoren, wichtige Dateien fOr den Benutzer
und Zusammenfassungen der Bourne-, Korn- und C-SheIO.
Die einzelnen Themen:
5.1
Alphabetische der Kommandos
5.2
Verzeichnis der Bilder
5.3
Glossar
373
C. Wolfinger, Keine Angst vor UNIX
© Springer-Verlag Berlin Heidelberg 2000
5.1 Alphabetische Ubersicht
der Kommandos
In dieser Obersicht sind nur kurz die Funktionen der Kommandos aufgefDhrt, nicht die einzelnen Optionen. Unter der angegebenen Seitenzahl finden Sie die ausfDhrliche Beschreibung
des Kommandos und entsprechende Beispiele.
In der beigelegten Kurzreferenzkarte finden Sie auBerdem die
Mufig benotigten Kommandos als Obersicht nach Funktionen
geordnet und alphabetisch sortiert mit Angabe der wichtigen
Optionen.
374
5.1
A-C
Alphabetische Ubersicht der Kommandos
A
alias
um eine Aliasfunktion zu bilden
312
at
um Befehle zu bestimmten Zeiten zu starten
222
banner
um Zeichen im GroBformat auf den Bildschirm
auszugeben
315
bg
um einen Job (ProzeB) im Hintergrund weiterlaufen zu lassen
319,323
biff
um den Benutzer zu benachrichtigen, wenn neue
Post (mail) eingegangen ist
74
break
um Schleifen vorzeitig abzubrechen
293
cancel
um einen /p-Druckauftrag abzubrechen
172
cal
um einen Kalender anzuzeigen
(nur in der Kurzreferenzkarte aufgefUhrt)
case
um eine gezielte Weiterverarbeitung zu erreichen,
die Ober Vergleichsmuster angesteuert wird
cat
um Dateien aneinanderzuhangen
90
cat
um sich einen Dateiinhalt anzusehen
65
cat>
um schnell eine Datei zu erstellen
88
cd
um in Directories zu wechseln
58
chmod
um Zugriffsrechte zu andern (symbolisch)
177
chmod
um Zugriffsrechte zu andern (mit Oktalzahl)
179
chgrp
um die Gruppenzugehorigkeit zu andern
(nur in der Kurzreferenzkarte aufgefUhrt)
chown
um Besitzrechte zu andern
182
clear
um den aktuellen Bildschirminhalt zu loschen
315
cmp
um Dateien miteinander zu vergleichen
334
compress
um Dateien zu verdichten
continue
um an das Ende einer Schleife zu springen
289
cp
um Dateien zu kopieren
159
B
C
297
247,247
375
5
C-E
Ubersichten
cpio -i
um Dateien aus einem cpio-Archiv wieder
einzulesen
216
cpio
um ein Archiv auf Magnetband, Streamer, Floppy
oder als Datei anzulegen
214
cpio -p
um einen Dateibaum zu kopieren
207
csh
um die C-Shell aufzurufen
cut
um Spalten auszuschneiden
-0
85,326
333
D
date
um Datum und Uhrzeit anzuzeigen
dd
um Dateien, Dateibereiche oder gesamte Platten
1:1 zu kopieren
242
df
um die freien Blocke aller im System montierten
Platten/Floppies anzuzeigen
191
diff
um Dateien miteinander zu vergleichen
334
dosdir
um sich den Inhalt eines Directories auf einer
DOS-vorformatierten Floppy anzusehen
227
dosformat
um eine Floppy im DOS-Format zu formatieren
227
dosread
um DOS-Dateien auf einen UNIX-Rechner zu
kopieren
227
doswrite
um UNIX-Dateien auf eine DOS-Floppy zu kopieren
227
du
um den belegten Platz (Blockanzahl) anzuzeigen
190
echo
um Nachrichten auf den Bildschirm auszugeben
105, 259
ed
um Dateien zeilenweise zu editieren
122
env
um definierte und exportierte Variablen
anzuzeigen
262
exit
um eine Shellprozedur vorzeitig zu beenden
275
exit
Kommandos, um eine Terminalsitzung zu beenden
export
um die GOltigkeit von Variablen auf Unterprogramme zu Obertragen
expr
um Rechenoperationen auszufOhren
61
E
376
47
262,265
294
5.1
F-I
Alphabetische Ubersicht der Kommandos
F
293
false
liefert nur den Exitstatus >ungleich Oc
fc
wiederholt bereits eingegebene Kommandos/Befehle oder zeigt sie an (History-Mechanismus)
312,313
fg
um einen Job/ProzeB im Vordergrund weiterlaufen
zulassen
319,323
file
um den Inhalt einer Datei zu klassifizieren
189
find
um Dateien zu suchen und zu finden
183
find •.• 1
cpio •••
um einen Dateibaum zu kopieren
207
finger
um Benutzerinformation zu erhalten
for
um eine Schleife einzuleiten
286
for in
do done
um eine Schleife einzuleiten
288
ftp
um mit Dateien eines entfernten Rechners zu
arbeiten (kopieren, ansehen)
245
function
functions
um Funktionen zu erstellen
um bereits vorhandene Funktionen anzuzeigen
299
70
G
grep
um nach Mustern in Dateiinhalten zu suchen
98, 188
H
337
head
um die ersten Zeilen einer Datei anzusehen
history
(alias zu fc -I)
um die zuletzt eingegebenen Befehle anzuzeigen
hostname
um den eigenen Rechnername zu erfragen
239
if then else fi
um den Ablauf zu steuern
274
integer
(alias zu typeset -i)
um eine Variable als Integer-Typ zu kennzeichnen
(nur ganze Zahlen dOrfen zugewiesen werden
(gilt nur fOr ksh)
315
377
5
J-M
Ubersichten
J
jobs
um die aktuellen Jobs anzuzeigen
(gilt nur fUr csh/ksh)
320
K
kill
um Programme vorzeitig abzubrechen
ksh
um die Korn-Shell als Sub-Shell zu starten
112,320
309
L
165,166
In
um Dateien weitere Namen l/1ardlinks oder symbolische links) zu vergeben
logout
um eine Terminalsitzung zu beenden
Ip
um Dateien auszudrucken
172
Ipq
um eine aktuelle Anzeige der mit Ipr gestarteten
Druckauftrage zu erhalten analog zu Ipstat fUr IpAuftrage
174
Ipr
um Dateien auszudrucken analog zu Ip
174
Iprm
um einen Druckauftrag, der mit Ip gestartet wurde,
abzubrechen (analog zu cancel fUr Ip-Auftrage)
174
Ipstat
um eine aktuelle Anzeige des Spool-Programms
Ip mit den noch offen en Druckauftragen zu erhalten
173
Is
um Dateien in dem aktuellen Directory anzuzeigen
50
Is
um Dateimerkmale anzuzeigen
47
52,169
M
378
mail
um Nachrichten (Post) elektronisch zu senden
73
man
um die Beschreibung von Kommandos (Manualseiten) anzusehen
62
mesg
um den Bildschirm fUr Nachrichten zu sperren
bzw. wieder zu 6ffnen
73
mkdir
um Directories anzulegen
more
um einen DateHnhalt seitenweise anzuzeigen
/etc/mount
um Floppies oder Platten zu montieren
157
66
203
5.1
Alphabetisehe Ubersieht der Kommandos
M-S
mt
um ein Magnetband/Streamer vor- und zuruckzuspulen
213
mv
um Dateien umzubenennen oder in ein anderes
Directory zu schieben
163
um Prozesse auch nach einem logout weiterlaufen
zulassen
338
N
nohup
p
passwd
um das PaBwort zu i:indern
46
pg
um Dateiinhalte seitenweise anzuzeigen
68
ping
um zu kontrollieren, ob andere Rechner erreichbar
sind
238
pr
um Dateien fUr den Druck aufzubereiten
175
ps
um den Status der Programme abzufragen
113
pwd
um das Arbeitsdirectory anzuzeigen
49
R
rep
um Dateien von oder an entfernte Rechner zu
kopieren
239
read
um eine Antwort vom Terminal zu lesen
271
rlogin
um sich an einem entfernten Rechner anzumelden
243
rm
um Dateien und Dateibi:iume zu loschen
162
rmdir
um Directories zu loschen
158
rsh
um auf einem entfernten Rechner eine Shell zu
starten
241
sed
um Dateien im batch zu bearbeiten
151
set
um die definierten Variablen anzuzeigen
262
set
um Shell-Optionen zu setzen
284
sh
um Dateien mit Kommandofolgen auszufUhren
254
5
379
5
S-U
Obersichten
sleep
um Wartezeiten in Sekunden zu setzen
sort
um Dateiinhalte zu sortieren
sort
um Zeichenketten oder Dateien zu sortieren
332
stop
um einen Job/ProzeB zu anzuhalten
319
sync
um Dateiinformationen auf die Platte zurOckzuschreiben und den Rechner auszuschalten
293
97
76
T
tail
um die letzten Zeilen einer Datei anzusehen
337
talk
um ein Gesprach Ober Bildschirm zu fOhren
72
tar -c
um ein tar-Archiv zu erstellen
219
tar -t
um ein Inhaltsliste eines tar-Archivs zu erhalten
221
tar -x
um Dateien aus einem tar-Archiv zurOckzukopieren
221
tee
um eine Pipe-Ausgabe zusatzlich in eine Datei
abzuleiten
330
telnet
um sich an einem entfernten Rechner anzumelden
243
test
um Zahlen zu vergleichen
280
test
um Zeichenketten (Text in ASCII) auf Gleichheit zu
prOfen
277,278
touch
um eine Datei anzulegen oder das Modifikationsdatum up-to-date zu setzen
265
trap
um Signale zu behandeln
301
true
um Exitstatus ,0< zu erhalten
293
tty
um den Terminalnamen (Typ) anzuzeigen
typeset
um in der Korn-Shell Variable zu setzen
314
/etc/umount
um Platten oder Floppies wieder auszuhangen
205
unalias
um einen Alias wieder aufzuheben
313
uncompress
um mit compress verdichtete Dateien wieder in
den Normalzustand zu bringen
248
71
U
380
5.1
U·z
Alphabetische Obersicht der Kommandos
until
um eine Schleife einzuleiten, die so oft durchlaufen wird, wie die nachfolgende Kommandofolge
nicht erfolgreich ist
290
um bildschirmorientiert Dateien zu editieren
139
V
vi
W
we
um Zeilen, Worter und Zeichen zu zahlen
95
whatis
um eine Kurzinformation Ober ein Kommando zu
erhalten
65
whereis
um den Pfad von Befehlen zu erhalten
nur in der Kurzreferenzkarte
while
um eine Schleife einzuleiten, die so oft durchlaufen wird, wie die nachfolgende Kommandofolge
erfolgreich ist (Exitstatus 0)
who
um zu sehen, wer noch am System arbeitet
69
write
um Benutzern, die am System angemeldet sind,
eine Nachricht zu send en
71
290
Z
zeat
um mit compress komprimierte Text-Dateien
anzusehen
248
381
5.2 Verzeichnis der Bilder
Diese Aufstellung soli Ihnen helfen, bestimmte Beispiele oder
ein bestimmtes Bild schnell wiederzufinden. Die Bilder sind
nach der laufenden Bildnummer sortiert und nach den Hauptabschnitten unterteilt. Die Seitennumer ist jeweils als letztes in
der Zeile angegeben.
382
Verzeichnis der Bilder
5.2
Bilder in Kapitel 1 Allgemeine Einfuhrung
Bild
Bild
Bild
Bild
Bild
Bild
Bild
1-1
1-2
1-3
1-4
1-5
1-6
1-7
Schematische Darstellung eines Rechners .............................. .4
Innenleben eines Rechners mit Prozessorboard ...................... 5
Hauptaufgaben eines Betriebssystems .................................. 10
Beispiel des Dateisystems unter UNIX .................................... 12
Beispiel eines FluBdiagrammes .............................................. 15
Beispiel eines >Mini'-C-Quell-Programmes ............................. 16
UNIX-Portierungen verschiedener Firmen .............................. 20
Bilder in Kapitel 2 Konventionen und Begriffe zu diesem Buch
Bild 2-1
Bild 2-2
Bild 2-3
Bild 2-4
Syntax der Kommandos ......................................................... 26
Beispiel eines Dialoges mit dem Rechner ............................... 27
Beispiel einer engJischenlamerikanischen Tastatur ................ 29
Belegung der Funktionstasten ................................................ 30
Bilder in Kapitel 3 UNIX - praktisch angewandt
Abschnitt 3.1
Auf los geht's los ...
Bild 3 -1:
Beispiel einer Nachricht des Systems nach dem Hochfahren
in den Multi-User-Modus ........................................................ 34
MogJiche Terminalverbindungen ............................................. 35
Maus-Funktionen ....................................................................37
Beispiel einer Schreibtischumgebung unter CDE ................... 38
Neues Terminal-Fenster unter CDE ....................................... .40
Beispiel Pull-Down-Menu ...................................................... .40
Wesentliche Funktionen eines Fensters ................................. .41
Beispiel der Datei letclpasswd .............................................. .44
Erstes Anmelden ..................................................................... 45
Beispiel Erste Eingabe des PaBworts .................................... .45
Andern des PaBwortes ............................................................46
Abmelden vom System unter CDE ........................................ .47
Beispiel eines Dateibaumes mit Benutzerdateien .................. .49
Beispiel Hierarchie - Vergleich Arbeitszimmer ....................... 51
Beispiel Jisten, anzeigen von DirectorieslDateien (Is -I) ........... 52
Beispiel Jisten, anzeigen vom aktuellen Directory mit
Is -FR ...................................................................................... 53
Beispiel listen, anzeigen von DirectorieslDateien
(Is -FR) ..................................................................................... 53
Beispiel Jisten, anzeigen mit relativem Pfadnamen (..) ........... 54
Beispiel relative Pfadangabe (./../) ......................................... 55
Bild 3-2:
Bild 3-3:
Bild 3-4:
Bild 3-5:
Bild 3-6:
Bild 3 - 7:
Bild 3-8:
Bild 3-9:
Bild 3-10:
Bild 3 - 11:
Bild 3-12:
Bild 3-13:
Bild 3-14:
Bild 3-15:
Bild 3-16:
Bild 3 -17:
Bild 3 -18:
Bild 3-19:
383
5
Obersichten
Bild 3-20:
Bild 3-21:
Bild 3-22:
Bild 3-23:
Bild 3-24:
Bild 3-25:
Bild 3-26:
Bild 3-27:
Bild 3-28:
Bild 3-29:
Bild 3-30:
Bild 3-31:
Bild 3-32:
Bild 3-33:
Bild 3-34:
Bild 3-35:
Bild 3-36:
Bild 3-37:
Dateibaum des Seminarrechners 5 ............................................6
Darstellung der Baumstruktur im Dateimanager ..................... 57
Zugriffsrechte - Anzeige mit Is -I ........................ .................... 58
Beispiel cd Directory / pwd ..................................................... 59
Beispiel von date (Datumsanzeige) ......................................... 61
Beispiel von man (Anzeige von Manualseiten - date) .......... ... 62
Beispiel von man (Anzeige von Manualseiten)
Fortsetzung ............................................................................. 64
Beispiel von cat (Anzeige des Inhalts einer Dateij ................... 66
Beispiel von more (Blattem in Dateien)
mit Teilanzeige der Manualseite >date.1, ................................. 67
Beispiel von pg (page - Blattem in Dateien) ....... ...... ............... 68
Beispiel von who (Wer arbeitet am System) .... ....................... 69
Beispiel von who am i (wer bin ich) .......................... ............... 70
Beispiel von tty (Termina/-Typ) .. .............................................. 71
Beispiel write (Nachrichten senden) ........................................ 72
Beispiel write (Nachrichten empfangen) ................................. 72
Beispiel von mail - versenden ............................ ..................... 73
Beispiel von mail (Briefe empfangen) ............ .... ........ .......... .... 74
Beispiel des Hilfsmenue von mail ....................................... .... 75
Abschnitt 3.2 Es .shelltc
384
Bild 3-38:
Bild 3-39:
Bild 3 - 40:
Bild 3-41:
Bild 3-42:
Bild 3-43:
Bild 3-44:
Bild 3-45:
Bild 3 - 46:
Bild 3-47:
Bild 3-48:
Bild 3-49:
Bild 3-50:
Bild 3-51:
Bild 3-52:
Bild 3-53:
Bild 3-54:
Bild 3-55:
Shell a/s Schale des Betriebssystemkems .............................. 82
Bereitzeichen der Shell ........................................................... 84
Standardein- und Standardausgabe der Shell ........................ 86
Umleitung der Standardausgabe ............................................ 87
Umleitung der Standardausgabe ....................... ..................... 88
Beispiel Erstellen einer Datei .................................................. 89
Beispiel Umleitung der Standardausgabe (Erganzung) .......... .90
Beispiel Zusammenhangen von Dateien mit cat ..................... 91
Beispiel Fehlerumleitung ......................................................... 92
Beispiel Umleitung der Eingabe .............................................. 93
Beispiel einer Verkettung ........................................................ 94
Beispiel Pipe-Mechanismus .............................. ....... ............... 95
Beispiel Pipe mit Is I wc .......... ............................... ......... ........ 96
Beispiel Pipe mit Sortierprogramm ....................... .................. 98
Beispiel grep Suchen nach einem Muster .............................. 98
Dateinamenexpansion durch Metazeichen ........ .. ................... 99
Beispiel grep mit Dateinamenexpansion (*) ... ....................... 100
Beispiel Is mit Dateinamenexpansion (?) ...... ..... .................... 100
Verzeichnis der Bilder
Bild 3-56:
Bild 3-57:
Beispiel Is mit Dateinamenexpansion ([J) ............................. 101
Beispiel: Fehler durch Angabe von Metazeichen
bei Umleitung von Ein-/Ausgabe ......................................... 101
Bild 3-58:
Loschen von Dateien mit Metazeichen Beispiel Fluchtsymbol \ ........................................................ 102
Beispiel Aufhebung von Sonderzeichen
durch Backslash .................................................................... 103
Beispiel doppe/te AnfOhrungszeichen .................................. 104
Beispiel: Aufhebung von Metazeichen
(doppelte AnfOhrungszeichen) .............................................. 104
Ersetzungsmechanismen 1. Teil ............................................. 105
Beispiel echo mit Sonderzeichen .......................................... 106
Beispiel echo mit Sonderzeichen innerhalb von
AnfOhrungszeichen " ............................................................. 106
Beispiel: Bildung und Nutzung von Variablen ....................... 107
Beispiel: Ersetzung durch Ergebnisse von Kommandos ...... 108
Beispiel keinerlei Substitution durch ..................................... 109
Ersetzungsmechanismen 2. Teil ............................................ 109
Bild 3-59:
Bild 3-60:
Bild 3-61:
Bild 3-62:
Bild 3-63:
Bild 3-64:
Bild 3-65:
Bild 3-66:
Bild 3-67:
Bild 3-68:
5.2
Abschnitt 3.3 Editoren unter UNIX
Bild 3-69:
Bild 3-70:
Bild 3-71:
Bild 3-72:
Bild 3-73:
Bild 3-74:
Bild 3-75:
Bild 3-76:
Bild 3-77:
Bild 3-78:
Bild 3-79:
Bild 3-80:
Bild 3-81:
Bild 3-82:
Bild 3-83:
Bild 3-84:
Beispiel Aufruf eines Programmes, das im
Hintergrund ablaufen soli ...................................................... 111
Beispiel Abbruch eines Hintergrundprozesses ..................... 112
Beispiele der Kommandos ps und kill ................................... 113
Grafische Darstellung der ProzeBstruktur ............................. 115
Beispiel Aufruf des Editors ed .............................................. 122
Kommandoeingabe im ed ..................................................... 123
Bereichsdefinition im ed ....................................................... 123
Beispiel Anzeige von Zeilen im ed ........................................ 124
Beispiel Editor ed, numerierte Dateianzeige und
Beenden des Programms ..................................................... 124
Beispiel Editor ed, Warnung nicht existierende Datei ........... 125
Beispiel Editor ed, Eingabe und Ersetzung (substitute) ........ 125
Beispiel Editor ed, EinfOgen und Anh8.ngen
(insert, append) ..................................................................... 127
Beispiel Editor ed, Anzeige mit Zeilennummer ..................... 127
Beispiel Editor ed, Oberschreiben von Zeilen ....................... 128
Beispiel Editor ed, Kopieren von Zeilen (t - transfer) ............ 129
Beispiel Editor ed, ROckgangigrnachen der
letzten Anderung (undo) ........................................................ 130
385
5
Ubersichten
Bild 3 - 85:
Bild 3-86:
Bild 3-87:
Bild 3-88:
Bild 3 - 89:
Bild 3-90:
Bild 3-91:
Bild 3-92:
Bild 3-93:
Bild 3-94:
Bild 3-95:
Bild 3-96:
Bild 3-97:
Bild 3-98:
Bild 3-99:
Bild 3-100:
Bild3-101:
Bild 3-102:
Beispiel Editor, Sichern der Datei und Beenden
des Programmes ................................................................... 130
Beispiel Editor ed, Beenden des Programms fehlerhafte Eingabe .......................... .... ................................. 130
Beispiel Editor ed, Beenden des Programms - ohne Warnung
bei nicht zuruckgeschriebenen Dateien ................................ 131
Beispiel: Editor ed, Suchen in der Datei mit '//' .................... 132
Beispiel: Editor ed, Suchen und Ersetzen global .................. 133
Metazeichen - regulare Ausdrucke
(ed, vi, sed und grep) ............................................................ 134
Beispiel Editor ed, Suchen und Ersetzen je am
Anfang einer Zeile ...................................................... ........... 135
Beispiel Editor ed, Suchen und Ersetzen mit
Ubernahme der gefundenen Zeichenkette ........................... 135
Sonderzeichen im Editor ....................................................... 136
Beispiel Aufruf vi .................................................................. 139
Beispiel Korrekturen im vi: Anht:ingen am
Ende der Zeile ....................................................................... 140
Beispiel Korrekturen im vi: Umschalten in den
Kommandomodus - L6schen einer Zeile ............................. 140
Beispiel Korrekturen im vi:
Ersetzen durch Kommando R ............................................... 141
Beispiel Korrekturen im vi:
L6schen eines Zeichens mit x ................................ ............... 141
Beispiel Korrekturen im vi: wortweise Vorrucken
Ersetzen (Uberschreiben) eines Wortes ................................ 142
Beispiel Aufruf vi:
Suchen und Ersetzen im ex-Modus: s/alt/neu/ ..................... 144
Beenden des vi ..................................................................... 145
Beispiel sed als Filterprogramm ....... ..................................... 151
Abschnitt 3.4 Dateiverwaltung und Pflege
Bild 3-103:
Bild 3-104:
Bild 3-105:
386
Bild 3 - 106:
Bild 3-107:
Bild 3-108:
Bild 3-109:
Beispiel Strukturierung durch Directories ............................. 154
Beispiel listen, anzeigen von Directories/Dateien
(Is -RF) ................................................................................... 156
Beispiel Dateibaum - neue Aufteilung im
Ubungsdirectory /usrlkurs/monika .......... ... ....... ... ... ............ 156
Beispiel Anlegen von Directories - (mkdir und Is -I) .............. 157
Beispiel L6schen von Directories - rmdir ............................. 158
Beispiel Kopieren einer Datei - cp ........................................ 159
Beispiel Kopieren einer Datei - cp ................................... ..... 160
Verzeichnis der Bilder
Bild 3-110:
Bild 3-111:
Bild 3-112:
Bild 3-113:
Bild 3-114:
Bild 3-115:
Bild 3-116:
Bild3-117:
Bild 3-118:
Bild 3-119:
Bild3-120:
Bild 3-121:
Bild 3-122:
Bild3-123:
Bild3-124:
Bild3-125:
Bild 3-126:
Bild3-127:
Bild 3-128:
Bild 3-129:
Bild 3-130:
Bild 3-131:
Bild 3-132:
5.2
Beispiel Kopieren von mehreren Dateien in ein
Directory - cp ...................................................................... 161
Beispiel Kopieren eines Dateibaumes mit cp -r .................... 161
Beispiel Obernahme von Dateien in andere
Directories - mv .................................................................... 164
Beispiel Umbenennen von Dateien oder Directories mv ......................................................................................... 164
Beispiel zusatzliche Namensvergabe fOr Dateien In ........................................................................................... 165
Beispiel symbolischer Link (Softlink) ..................................... 166
Beispiel Anzeige der Dateien mit weiteren
Datei-Attributen (Is -lis) ......................................................... 168
Beispiel einiger Geratedateien (devices)
(Teilanzeige von Is -Ii /dev) .................................................... 170
Kennzeichen der Dateitypen ................................................. 171
Beispiel Ausdrucken von Dateien mit dem Spooler -Ip ....... 173
Beispiel Druckaufbereitung mit pr ........................................ 175
Beispiele Zugriffsrechte ........................................................ 176
Beispiel verschiedener Zugriffsrechte
(Anzeige mit Is -I) ................................................................... 177
Beispiel Andern der Zugriffsrechte
mit symbolischer Angabe - chmod ugo+-rwx ...................... 179
Beispiel Errechnung der Oktalzahl fOr Zugriffsrechte ........... 180
Beispiel Andern der Zugriffsrechte mit Oktalzahl .................. 181
Beispiel Besitzrechte beim Kopieren von Dateien ................ 181
Beispiel Andern der Besitzerrechte - chown ........................ 182
Beispiel Suchen und Finden von Dateien - find ................... 186
Beispiele Suchen und Finden von Dateien
(find mit -exec Funktion) ....................................................... 187
Beispiel Suchen und Finden von Dateiinhalten - grep ......... 188
Beispiel Versuch einer Dateiklassifizierung - file ................... 189
Anzeige der freien und belegten Plattenkapazitat ................. 191
Abschnitt 3.5 Sicher ist sicher!
Bild 3-133:
Bild 3-134:
Bild 3-135:
Bild 3-136:
Bild 3-137:
Floppy ................................................................................... 202
Beispiel Anzeige der montierten Platten - /etc/mount ......... 203
Beispiel Sichern von Dateien auf Floppy /etc/mount, cp ...................................................................... 204
Beispiel Mount-Directory nach dem
Aushangen der Floppy .......................................................... 205
Beispiel des Dateibaumes mit ausgehangter Floppy ............ 206
387
5
Ubersichten
Bild 3-138:
Bild 3-139:
Bild 3-140:
Bild 3-141:
Bild 3-142:
Bild 3-143:
Bild 3-144:
Bild 3-145:
Bild 3-146:
Bild 3-147:
Bild 3-148:
Bild3-149:
Bild 3-150:
Bild 3-151:
Beispiel einer Sicherung auf Floppy mit find I cpio
als Dateibaum ....................................................................... 208
Beispiel Abmontieren (Aushangen) von einer Floppy
nach der Sicherung eines Dateibaumes - /etc/umount ........ 209
Beispiel Einlesen von Dateibaumen aus der
Sicherung auf Floppies - cpio (als Dateisystem) ................... 210
Magnetband ..........................................................................211
Streamer ...............................................................................212
Beispiel Sicherung als Archiv auf Streamer cpio in Verbindung mit find ................................................... 216
Beispiel Anzeige des Inhaltsverzeichnisses eines
cpio-Archivs .......................................................................... 218
Beispiel Einlesen bestimmter Daten aus einem
cpio-Archiv ............................................................................ 218
Beispiel Erstellung eines tar-Archivs ..................................... 220
Beispiel Restaurieren einer Datei mit tar -x ........................... 222
Beispiel Kommando mit at zu einer bestimmten Zeit
ausfOhren zu lassen .............................................................. 223
DenkanstoBe zu einem Sicherungsplan ................................ 224
Beispiel Kopieren von DOS-Dateien nach UNIX ................... 228
Beispiel Kopieren von UNIX auf DOS-Floppy ....................... 228
Abschnitt 3.6 Wissenswertes fiber Netze
Bild 3-152:
Bild 3-153:
Bild 3-154:
Bild 3-155:
Bild 3-156:
Bild 3-157:
Bild 3-158:
Bild 3-159:
OSI-Schichtenmodel ............................................................ 237
Beispiel ping - Erreichbarkeit anderer
Rechner kontrollieren ............................................................ 238
Beispiel rcp - Kopieren von und auf fremde Rechner .... ....... 240
Beispiel Ausgabe von tar mit rsh und dd auf ein
Gerat im Netz ........................................................................ 242
Beispiel Anmelden an einem entfernten Rechner
mit telnet ...............................................................................244
Beispiel komprimiertes tar-Archiv mit ftp auf einen
anderen Rechner Obertragen ................................................ 247
Anmelden mit rlogin und Auspacken der komprimierten
tar-Archiv-Obertragung mit uncompress und tar -x ............. 248
Ansehen einer komprimierten Textdatei mit zcat .................. 249
Abschnitt 3.7 Shell-Prozeduren
388
Bild3-160:
Bild3-161:
Bild 3-162:
Ablauf einer Shell-Prozedur grafisch dargestellt ................... 255
Eingabemog/ichkeiten von Kommandos .............................. 256
Beispiel Erstellen einer Shell-Prozedur ................................. 258
Verzeichnis der Bilder
Bild 3-163:
Bild 3-164:
Bild 3-165:
Bild 3-166:
Bild 3-167:
Bild 3-168:
Bild3-169:
Bild 3-170:
Bild 3-171:
Bild 3-172:
Bild 3-173:
Bild 3-174:
Bild 3-175:
Bild 3-176:
Bild 3-177:
Bild 3-178:
Bild 3-179:
Bild3-180:
Bild 3-181:
Bild 3-182:
Bild 3-183:
Bild 3-184:
Bild 3-185:
Bild 3-186:
Bild 3-187:
Bild 3-188:
Bild3-189:
Bild 3-190:
Beispiel einer Shell-Prozedur zur
wochentlichen Sicherung ..................................................... 260
Beispiel Aufruf der Shell-Prozedur fUr
wochentliche Sicherung .......................................................260
Beispiel einer Shell-Prozedur zur Uiglichen Sicherung ......... 261
Beispiel Aufruf der Shell-Prozedur fOr
tagliche Sicherung ................................................................ 261
Beispiel: Wert der Variablen PATH ....................................... 262
Anzeige und Erlauterung der vordefinierten
Shell-Variablen ...................................................................... 263
Beispiel von .profile mit Anderung der Variablen .................. 264
Beispiel einer Anmeldung mit geandertem .profile ............... 264
Obersichtstabelle vordefinierter Variablen ............................ 267
Obersichtstabelle Positionsparameter .................................. 268
Beispiel: Shell-Prozedur mit Positionsparameter .................. 268
Beispiel Ausgabe der Positionsparameter ............................ 269
Beispiel einer Shell-Prozedur ,Listen eines Directories'
Muster 1- Positionsparameter ............................................. 270
Beispiel Aufruf der erstelften Shell-Prozedur ,listen, ............. 270
Beispiel Aufruf der erstelften Shell-Prozedur ,listen,
mit Parameter ....................................................................... 271
Beispiel einer Shell-Prozedur 'Anzeigen einer Datei,
Muster 2 - read-Funktion ...................................................... 272
Beispiel if then else fi ............................................................ 274
Beispiel einer Shell-Prozedur ,Anzeigen einer Datei,
Muster 3 - erganzt um das Kommando test
und die Abfrage mit if then else fi ......................................... 275
Verschachtelung von if-Bedingungen ................................... 276
Alternative Eingabe mit ,elif, statt 'else if, ............................. 276
Beispiel test-Abfrage auf Textgleichheit ............................... 279
Beispiel Kombination des test-Kommandos (-a,-o) .............. 280
Beispiel Teil einer Shell-Prozedur mit algebraischem
Vergleich ...............................................................................281
Beispiel der Shell-Prozedur -Ioschen .................................. 283
Obersicht moglicher Schleifenkommandos .......................... 285
Beispiel Prozedur ,listen' erganzt mit einer
for-Schleife ...........................................................................287
Beispiel der Shell-Prozedur - 'pruefe', erganzt mit einer
for in- Schleife ...................................................................... 289
Beispiel der Shell-Prozedur - ,dirpruef, mit while- und untilSchleife .................................................................................292
5.2
389
5
Obersichten
Bild 3-191:
Bild 3-192:
Bild 3-193:
Bild 3-194:
Bild 3-195:
Beispiel einer Endlosschleife ................................................ 294
Endlosschleife mit Rechenoperation .................................... 295
Beispiel Teil der Shell-Prozedur - ,dirpruef<,
erganzt um expr .................................................................... 296
Beispiel einer Shell-Prozedur 'rechne<
mit case .. und expr ............................................................. 298
Beispiel function ................................................................... 299
Abschnitt 3.8 Die Korn-Shell
Bild 3-196:
Bild 3-197:
Bild 3-198:
Bild 3-199:
Bild 3-200:
Bild 3-201:
Bild 3-202:
Bild 3-203:
Bild 3-204:
Erganzungszeile in $HOMEl.profile ...................................... 308
Funktionen fOr den Befehlszeileneditor (vi und emacs) ......... 311
Beispiel Erstellen von einer Alias-Funktion ........................... 312
Zusammenfassung Aias-Funktionen ..................................... 313
Beispiel countdown Rechenoperation mit
Integer-Variablen ................................................................... 315
Beispiel Datei $HOMEI.kshrc ................................................ 318
Beispiel Jobcontrol mit stop und fg ...................................... 320
Tabelle mit einigen Signalen ................................................. 320
Die verschiedenen Jobsteuerungen ..................................... 321
Abschnitt 3.10 Noch ein paar Befehle
Bild 3-205:
Bild 3-206:
Bild 3-207:
Bild 3-208:
Bild 3-209:
Bild 3-210:
Beispiel sort als Filterprogramm
(Sortierung nach Spa/ten) ..................................................... 332
Beispiel cut, Separieren der Spa/ten 0,4 und 5
aus letclpasswd .................................................................... 333
Beispiel Vergleich von Dateien mit cmp ............................... 335
Beispiel read in Verbindung mit Pipe .................................... 336
Beispiel head ........................................................................337
Beispiel tail ............................................................................337
Bilder in Kapitel 4 CDE - die grafische Benutzeroberflache unter UNIX
390
Bild 4-1:
Bild 4-2:
Bild 4-3:
Bild 4-4:
Bild 4-5:
Bild 4-6:
Bild 4-7:
Bild 4-8:
Bild 4-9:
Bild 4-10:
Anmeldefenster im CDE ....................................................... 340
Schreibtischumgebung - Arbeitsflache ................................ 340
Erlauterungen zur Desktopanzeige ....................................... 341
Desktopanzeige - MenD ........................................................ 341
Bedientafel Dber Texteditor .................................................. 342
Bedientafel fOr Drucker ......................................................... 343
Beispiel Terminkalender ........................................................ 344
Arbeitsflache - Beispiel eines MenDs ................................... 345
Neuer Arbeitsbereich ............................................................ 346
Texteditor - MenD File .......................................................... 347
Verzeichnis der Bilder
Bild 4-11:
Bild 4-12:
Bild 4-13:
Bild 4-14:
Bild 4-15:
Bild 4-16:
Bild 4-17:
Bild 4-18:
Bild 4-19:
Bild 4-20:
Bild 4-21:
Bild 4-22:
Bild 4-23:
Bild 4-24:
Bild 4-25:
Bild 4-26:
Bild 4-27:
Bild 4-28:
Bild 4-29:
Bild 4-30:
Bild 4-31:
Bild 4-32:
Bild 4-33:
Bild 4-34:
Bild 4-35:
Bild 4-36:
Bild 4-37:
Bild 4-38:
Bild 4-39:
Bild 4-40:
Bild 4-41:
Bild 4-42:
Bild 4-43:
Bild 4-44:
5.2
Texteditor- Dialogbox, um Dateien auszuwahlen ................ 347
Texteditor- Menu Edit .......................................................... 348
Texteditor- Find/Change-Dialogbox .................................... 349
Texteditor- Format ............................................................... 349
Texteditor - Menu Options ................................................... 350
Texteditor _ Tastatur-Befehle ................................................ 350
Beispiel einer Hilfe-Menu-Seite ............................................ 351
Das Hilfe-Menu ..................................................................... 352
Help -Index Search .............................................................. 353
Dateimanager einige Dateitypen ........................................... 354
Pop-up-Menu Datei .............................................................. 356
Vereinfachung von UNlX-Kommandos unter CDE ............... 356
Dateimanager Menus File, Selected und View .....................357
Pop-up-Menu fur auf die Arbeitsf/ache gelegte Dateien ...... 358
Dialogbox Set View Options ................................................. 358
Dialogbox Set Filter Options ................................................. 359
Dialogbox Permission - Andern von Zugriffsrechten ............ 359
Dialogbox Find ................... ................................................... 360
Wie entleeren Sie den Papierkorb ........................................ 361
Dialogbox fOr Kommandoaufrufe .......................................... 362
Obernahme von Symbolen aus der Bedientafel
in die Desktopanzeige ........................................................... 363
HinzufOgen einer Bedientafel ................................................ 364
Hinzufugen von Programmen ............................................... 364
HinzufOgen eines Arbeitsbereichs ........................................ 365
Menu Style-Manager ............................................................ 366
Color - Auswahl der Farben ................................................. 366
Font - Auswahl der Schriften ................................................ 367
Backdrop - Auswahl eines Hintergrunds .............................. 367
Keyboard - Tastatureinstellung ............................................. 368
Mouse - Mauseinstellung ..................................................... 368
Beep - Einstellung fOr den Warnton ..................................... 369
Screen - Bildschirmeinstellungen ......................................... 369
Window - Fenstervoreinstellung ........................................... 370
Startup - Voreinstellung fur einen Neustart............................ 370
391
5.3 Glossar
In diesem Kapitel sind die in diesem 8uch verwendeten
8egriffe erliiutert und die verwendeten englischen FachausdrOcke in die deutsche Sprache Obersetzt. Die 8egriffe sind
kursiv dargestel/t und alphabetisch sortiert.
392
5
A-B
Obersichten
A
Ablaufdiagramm oder FluBdiagramm - Grafische Darstellung eines Programmablaufs. Ein Ablauf- oder FluBdiagramm wird verwendet, um die Einzelschritte von komplexen Aufgaben fOr dieErstellung eines Programms Obersichtlich darzustellen
Ablaufsteuerung - In einer Shellprozedur konnen durch Abfragen wie >if .. then,
,for .. do, >case .. in .. , usw., unterschiedliche Kommandofolgen je nach
Ergebnis der Abfrage durchgefOhrt werden
Absoluter Pfadname - Er beginnt immer mit der root (Wurzel des Dateibaumes
>1,) und enthalt aile Directories bis zu dem gewOnschten Dateinamen (z. B.
lusr/kurs/monikal.profile)
append - anhangen
Arbeitsf/ache - 1m CDE wird die Bildschirmflache so benannt, auf der Objekte
wie Ordner, Notizblatter oder ein symbolisierter Bildschirm (Terminal) abgelegt werden konnen. Man spricht deshalb auch von einer Schreibtischumgebung.
Arithmetische Anweisung - Dies sind Anweisungen um in einem Programm Rechenoperationen durchzufOhren, hierzu gehoren u. a. die Grundrechen arten
(addieren, subtrahieren, multiplizieren, dividieren)
ASCI/-Code - (American Standard Code for Information Interchange IAmerikanischer Standard Code fOr Informationsaustausch) Eine allgemeine Regel
fOr die rechnerinterne Darstellung von Zahlen und Zeichen
AT& T - American Telephone and Telegraph
B
backup - Sicherung
Bandmarke - Zeichen, das zur Trennung von Dateien auf ein Band geschrieben
wird (z. B. um das Ende einer Datensicherung auf Band zu markieren)
BASIC - (BeginnersAII purpose Symbolic Instruction Code) einfache hOhere Programmiersprache
Bedientafel - siehe
->
subpanel
Befehl- Eine (oder mehrere) verstandliche Anweisung an den Rechner, etwas zu
tun (Kommando)
Bell Laboratories - Ein riesiges Zentrum fOr Forschung und Entwicklung der AT&T
Benutzerkennung - Namen, mit dem sich der Benutzer anmeldet. Er ist in der
Datei letc/passwd eingetragen
393
5.3
Glossar
B-C
Bereitzeichen oder Prompt - Die Shell zeigt durch folgende Symbole am Bildschirm an, ob sie weitere Auftrage annehmen kann:
$ Prompt fOr normale Benutzer in der Bourne- und Korn-Shell
% Prompt fOr normale Benutzer in der C-Shell
# Bereitzeichen fOr Systemverwalter
> Hinweiszeichen, daB die Shell weitere Angaben erwartet
Betriebssystem - Das Steuerungs- und Verwaltungsprogramm des Rechners, der
damit aile Fahigkeiten und Meglichkeiten den Anwendungsprogrammen zur
Verfugung stellt
Bildschirmorientierter Editor - Der gesamte Bildschirm steht fOr Eingabe und Anderung zur Verfugung. Meist wird mit Cursortasten gearbeitet, um an eine
bestimmte Stelle des Bildschirms zu gelangen
Bina.r- Binar bedeutet aus 2 Einheiten bestehend. Zahlen werden nur aus den
Werten 1 und 0 dargestellt: 1=00001, 2=00010, 3=00011, 4=00100
Bugs - (direkte Obersetzung: Kafer) Es handelt sich hierbei um Schwachen oder
Fehler in einem Programm
Byte - Eine adressierter physikalische Einheit, die Zusammenfassung von 8 bit,
in der ein Zeichen oder eine Zifter (nicht Zahl) im ASCII-Code binar dargestellt werden kann
C
C-
Programmiersprache unter UNIX
CAD - (Computer Aided Design) rechnerunterstUtztes Konstruieren, gemeinhin
die Obertragung aller Arbeiten vom Zeichenbrett auf den grafischen Bildschirm eines CAD-Systems
CAM - (Computer Aided Manufacturing) die rechnergestUtzte Produktion
Carriage Return (CR) - Wagenrucklauf
CDE - (Common Desktop Environment) eine grafische Oberflache, das die bisher
unterschiedlichen Desktop-Programme ablest bzw. erweitert. Es wurde gemeinsam von den Firmen Hewlett-Packard Company, IBM, Novell und Sun
Microsystems entwickelt
Chip - Mikrobaustein der integrierten Schaltungstechnik, in dem elektronische
Komponenten dicht gepackt sind (meist in Kunststoft oder Keramik verpackt)
CIM - (Computer integrated manufacturing) GesamtunterstUtzung der Fertigung
von Bestellung uber Entwicklung und Konstruktion bis hin zur Auftragsabwicklung
COBOL - (COmmercial Business Oriented Language) Programmiersprache, fOr
kommerzielle Problemlesungen
394
5
Ubersichten
c-o
Compiler- Obersetzungsprogramm, um Quelldateien einer Programmiersprache
in ein ausfOhrbares Programm zu ubersetzen (Binarcode oder Maschinencode)
concatenate - zusammenhangen
CPU - (Central Processing Unit) Prozessor. Ein Prozessor erkennt die Befehle
(Anweisungen) eines Programmes und setzt sie um
Cursor - Positionsanzeigesymbol (Schreibmarke) am Bildschirm, meist ein kleines blinkendes Rechteck
D
Datei - logische Einheit auf der Platte, die aus einer Foige von Zeichen, W6rtern
und Satzen besteht
Dateinamenexpansion - Ersetzung von ,Metazeichen' durch aile vorhandenen
Dateinamen, die den vorgegebenen Auswahlkriterien der Metazeichen entsprechen
Dateitypen - Unter Unix gibt es folgende Dateitypen, die durch ein bestimmtes
Zeichen in den Dateimerkmalen (anzusehen mit dem Kommando Is -I) gekennzeichnet sind
delete - 16schen
Delete-Taste - L6schtaste
device - Zuordnung, unter UNIX sind im Directory /dev diedevices (Geratedateien
wie Drucker, Terminal, Platte usw.) eingetragen
Desktop - 1m CDE die Schreibtischumgebung oder Arbeitsflache
Desktop-Anzeige - Die Steuerleiste im CDE, mit der CDE-Programme und -Menus aufgerufen werden
Dialogbox - Ein Menu-Fenster in dem verschiedene Programmaktionen ausgewahlt oder zusatzliche Angaben hierzu eingegeben werden k6nnen
Directory - Unter UNIX ein Knotenpunkt im Dateisystem (ahnlich einer Astverzweigung) die lediglich ein Inhaltsverzeichnis der unter diesem ,Zweig' enthaltenen Dateien und Unterdirectories enthiilt
disk - Platte
Doppelklick - Wenn mit der linken Maustaste (1) kurz hintereinander zweimal
geklickt wird (--t Klicken)
drag and drop - Auf der grafischen Oberflache ein Objekt anwahlen, die Maustaste gedruckt lassen und auf oder iii ein anderes Objekt (z. B. in ein anderes
Fenster) ziehen und dort loslassen. Hiermit k6nnen z. B. Dateien in ein anderes Fenster verschoben werden
395
5.3
Glossar
E-F
E
Editor - (abgeleitet von Herausgeber) Programm zum Erstellen und Andern von
Dateien
Eingabemodus - In den Editoren ed und vi wird zwischen Eingabe- und Kommandomodus unterschieden. 1m Eingabemodus kann Text eingegeben werden
Elektronikkarten - boards (Speicher, Prozessor, Steuereinheiten)
EOF - (End offile) Zeichen fUr DateiendeErsetzungsmechanismus- Hierzu geh6rt
die Dateinamenexpansion durch Metazeichen und die Einschrankung dieser
Expansion durch doppelte und einfache AnfUhrungszeichen; Variable werden mit dem ihr zugewiesenen Wert ersetzt ($); Ergebnisse von Kommandos
als Parameter eingesetzt, wenn sie in accent graves gesetzt sind (' ')
EUNET - European User Network
EUUG - European UNIX User Group
Example - Beispiel
execute - ausfUhren
Exitstatus - Jedes Kommando meldet der Shell zuruck, ob es >erfolgreich, (0) oder
>nicht erfolgreich, (ungleich 0) war
expression - Ausdruck
F
Fenster - (window) Auf einer grafischen Oberflache werden Fenster fUr unterschiedliche Arbeiten geoffnet. Fenster sind durch Rahmen begrenzt. Es konnen mehrere Fenster gleichzeitig geoffnet sein, die sich uberlappen konnen
FlFO-Datei - (firstin first out) Eine Datei, die als Puffer wirkt, wobei das, was zuerst
in die Datei geschrieben wurde, zuerst wieder weitergeleitet wird, z. B. die
named pipe, Kennzeichen >p'
File Manager - (Dateimanager) 1m CDE wird hiermit die Dateiverwaltung uber
grafische Symbole und Menus abgewickelt. Directories werden als Ordner
(folder'), Dateien, je nach Inhalt, als Notizblatt oder entsprechende Icons
dargestellt
Files - Dateien
Floppy Disk- (Diskette) Ahnlich einer kleinen Schallplatte. Geeignet fUr die Speicherung kleinerer Datenmengen
Fluchtsymbol - (Aufhebungszeichen) Unter der Shell wird mit dem nach hinten
weisenden Schragstrich (backslash) z. B. die Bedeutung der Sonderzeichen
(wie *,?) aufgehoben
396
5
Ubersichten
F-H
Font - Damit wird ein kompletter Satz einer Schrift (mit Buchstaben, Zahlen und
Zeichen) in einer GroBe und Art (kursiv, fett) bezeichnet, wie z. B. Helvetica,
10 Punkt, Fettschrift
formale Fehler- (Syntaxfehler) Jede Programmiersprache hat bestimmte Regeln.
Werden diese nicht eingehalten, spricht man von Syntaxfehlern oder formalen Fehlern
Formatieren - (Textformatierung) Eine Textdatei wird fOr den Druck aufbereitet,
wobei z. B. ein Randausgleich erfolgt, Kopfzeilen erstellt werden, Seiten
automatisch umbrochen und Seitenzahlen vergeben werden. Ober entsprechende Makros gesteuert, kann der Text eingeruckt, zentriert oder in einer
anderen Schriftart dargestellt werden
Formatierung einer Platte - Eine Platte wird in Blocke unterteilt und diese mit
Prufsummen und Blocknummern versehen
FORTRAN - (FORmula TRANslation) Eine Programmiersprache fOr technisch wissenschaftliche Anwendungen
front panel- 1m CDE die Steuerleiste oder -+ Desktop-Anzeige.
Funktionstasten - Tasten, denen bestimme Funktionen zugeordnet sind
G
group - Benutzergruppen. Jede Gruppe erhalt in der Datei /etc/passwd eine
Nummer. Zusatzlich wird unter dieser Nummer in der Datei /etc/group eingetragen, welche Benutzer dieser Gruppe angehoren
GU/ (Graphical User Interface) - Grafische Benutzeroberflache
GUUG - German UNIX User Group
H
Hardware - (harte Ware) Hardware sieht man und kann man anfassen. Zu ihr
gehoren z. B. Kabel, Platten, Gehause, Elektronikkarten
Hierarchisches Dateisystem - Unter UNIX ist das Dateisystem hierarchisch angelegt, d.h. es beginnt bei einer Wurzel (root = /), die sich uber ,Directories
in die Tiefe und Breite verzweigt (auch Baumstruktur genannt)
Home-Directory - Fur jeden Benutzer ist in der Datei /etc/passwd das Directory
eingetragen, in dem er nach dem Anmelden arbeitet
HTML -Dateien (Hypertext Markup Language) - Sie werden benotigt, um die
WWW-Seiten aufzubereiten, die dann z.8. mit dem Programm Netscape
dargestellt werden
Hyperlink - Verbindungen von einer Markierung zu einer anderen. 1m Hilfe-Menu
vom CDE sind Hyperlinks unterstrichen. Wenn Sie mit der Maus auf Hyperlinks doppelt klicken, wird automatisch die Seite mit den weitergehenden
Informationen aufgerufen
397
5.3
Glossar
I-M
Icon - (Kleines Bi/dchen)
I-node - Die Inode ist der Dateikopf einer Datei.
INlT-Taste - von initialisieren, beginnen. Meist eine Taste oder ein Schalter, um
einen Rechner zu starten
input - E:ingabe
Interface, Controller - Steuereinheit die dafUr sorgt, daB die jeweiligen Gerate
richtig betrieben und gesteuert werden. FOr jed en Geratetyp gibt es einen
eigenen Controller
K
Kabel- Neben Stromkabel sind verschiedene Kabel (abhangig von Leitungen/Pinbelegung) zur Obertragung von Dateninformationen und Steuersignalen in einem Rechner vorhanden
Klassifizierung - Zuordnung zu einer bestimmten Gruppe
Klicken - Wenn die linke (1.) Maustaste gedrOckt und gleich wieder losgelassen
wird
Kommandomodus - Bei den Editoren ed und vi wird nach Eingabe- und Kommandomodus unterschieden. 1m Kommandomodus konnen Befehle wie
z. B. ,Iosche Zeile, oder ,drucke von bis, erteilt werden
Kommandos - Programmaufrufe. Kommandos konnen ausfUhrbare Programme
(ursprOnglich in einer Programmiersprache geschrieben und in die Maschinensprache Obersetzt), eigene Shellprozeduren (ausfUhrbare Dateien mit
Kommandos) oder shell-interne Programme (Teil des Shellprogramms
selbst) sein
Kommentarzeichen - In Shellprozeduren konnen Zeilen oder der Rest einer Zeile
durch die Zeichen : und # als Kommentar ,entwertet, werden
Konventionen - Vereinbarungen, Regeln
L
LAN - (Local Area Network) Verbindung von Rechnersystemen an einem Standort
length - Lange
login - (log -
Protoko/~
eine Terminal-,Sitzung, beginnen, sich anmelden
Logischer Vergleich - Abfrage auf groBer, kleiner und VerknOpfungen mit ,und,
und ,oder,
logische Verknupfung - Verbindungen von Abfragen mit ,oder, und ,und,
M
398
Magnetplatten - Vergleichbar mit einem Plattenstapel. Platten mOssen formatiert
werden, bevor sie benutzt werden konnen, dann erst kann ein Dateisystem
5
Ubersichten
M-M
eingerichtet werden. Sie sind zur Speicherung von groBeren Datenmengen
geeignet
Main Memory - Hauptspeicher
major device number - Eine Zuordnungsnummer (Treiber-Nummer) fOr Geratedateieri, um die entsprechende Software (driver) zuzuordnen, damit das
Gerat richtig gesteuert wird
Makros - Kurzzeichen fOr besondere Verarbeitung (Anweisungen an das Programm) z. B..TH (Title Header) bewirkt, daB der nachfolgende Text als Kopfzeile aufbereitet wird
Maus-Cursor - Ein kleines Symbol (meistens ein Pfeil), das sich am Bildschirm
bewegt, wenn die Maus verschoben wird
memory - Speicher
message - Nachricht
mail- Briefpost
maximize - Ein MenOpunkt unter dem CDE, der ein Fenster auf die volle GroBe
der Bildschirmflache vergroBert. Dies kann auch Ober eine Schaltflache(Viereck) an der rechten oberen Ecke ertolgen (--> minimize)
Metazeichen - Zeichen mit einer erweiterten Bedeutung. Die Zeichen konnen
durch ein oder eine Auswahl verschiedener Zeichen. oder Zeichenfolgen
ersetzt werden. Unter der Shell wird z. B. das ,? ersetzt durch ein beliebiges
Zeichen, das ,*. ersetzt durch eine beliebige Zeichenfolge, oder es wird ein
Zeichen der in eckige Klammer, [ .. J< gesetzten Auswahl bestimmter Zeichen
Obernommen
minimize - Ein MenOpunkt unter dem CDE, der ein Fenster als Icon auf der Arbeitsflache ablegt. Dies kann auch Ober eine Schaltflache (Punkt) an der
rechten oberen Ecke ertolgen (--> maximize)
minor device number - Zuordnungsnummer fOr Geratedateien, wo sich das Gerat
im Rechner befindet (z. B. 1. oder 2. Stecker der Terminal anschlOsse)
modification date - Modifikationsdatum. Datum an dem eine Datei zuletzt verandert (bzw. das erste Mal erstellt) wurde
Modem - (Modulator Demodulator) Umwandlung von digital auf analog und
umgekehrt
Modulo - Restwert einer Division von ganzen Zahlen
mount - montieren, einhangen
Multi-Tasking - Mehrere Programme konnen parallel ablaufen
Multi-User-Betrieb - Mehrbenutzerbetrieb. Mehrere Benutzer konnen gleichzeitig
am System arbeiten
399
5.3
Glossar
N-P
N
New Line (NL) - Neue Zeile
no space - kein Platz mehr. Systemmeldung, wenn auf einer Platte oder Floppy
kein Platz mehr zum Anlegen oder Erweitern von Dateien vorhanden ist
NoscrolllScroll - Taste, um einen ,abrollenden Text, am Bildschirm zu stoppen
und wieder weiterlaufen zu lassen
o
Objectcode - Ein Obersetztes Quellcodeprogramm in dem fOr den betreffenden
Prozessor lesbaren Code (Maschinensprache binar-Format)
offset - bei Druckangaben linke Randeinstellung
Oktalzahl- Eine Ziffer (Zahl) wird mit 8 Zeichen dargestellt, wobei die Zahlenwerte
ganzen Zahlen (0,1,2 ...) eindeutig zugeordnet sind
Optionen - wahlweises Angeben z. B. von bestimmten Parametern (zusatzliche
Angaben), die eine unterschiedliche AusfOhrung des Programmes bewirken
other - (andere) 1st bei den Zugriffsrechten als der Rest der Benutzer (weder
Besitzer noch Gruppe) definiert
output - Ausgabe
p
Parameter - zusatzliche Angaben bei einem Programmaufruf
PATH - (Suchpfad) Die Shell sucht der Reihe nach in all jenen Directories nach
einem Kommando, die als Wert der Variablen PATH zugewiesen wurden
PaBwort - (Codewort, Geheimwort). Es wird beim Anmelden verlangt und ist beim
Eintippen nicht sichtbar
PID - (Process IDentification Number) Nummer des Prozesses
Pipe - (Rohr) Mehrere Kommandos k6nnen Ober den Pipe-Mechanismus zusammen verarbeitet werden, wobei jeweils die Ausgabe des vorhergehenden
Kommandos die Eingabe des nachfolgenden Kommandos wird. Das PipeZeichen ist >i'
Plattenkapazitat - Der zur VerfOgung stehende Platz zum Anlegen von Dateien
(meist in Megabytes berechnet)
Pop-up-Menu - siehe Pull-Down-Menu
Positionsparameter - Beim Aufruf eines Kommandos werden die einzelnen Parameterden Variablen $1, $2 .. $9 je nach Position (1.Parameter, 2.Parameter
usw.) zugewiesen. $0 gibt den Namen des Kommandos wieder
PPID - (Parent Process IDentification Number) Nummer ges ,Eltern,-Prozesses
print - drucken
400
5
Ubersichten
P-$
Programmiersprachen - Unter UNIX u.a. verfOgbar: COBOL, BASIC, FORTRAN,
C, PASCAL, MODULA-2, LISp, ADA, APL, PROLOG
Programmverzweigungen - Unterschiedliche FortfOhrung eines Programmes, je
nach erfOliter Bedingung (if ... wenn ... )
Provider - Dies sind Firmen, die Dienste im Internet oder anderen Netzen anbieten
Pull-Dawn-Menu - Auf der grafischen Oberflache werden MenOs so ben an nt, die
aufgrund von einer Schaltflache herausklappen. In den MenOs kann dann
eine Funktion ausgewahlt werden
Q
Quellcode -In einer Programmiersprache erstelltes Programm. Bei heheren Programmiersprachen meist der englischen Sprache angeglichen. Der Quellcode wird in ein Maschinenprogramm Obersetzt (kompiliert) und ergibt dann
den Objektcode
R
read- lesen
Realzeitsystem - Die Programme erhalten eine Prioritat zugewiesen. Wichtige
Aufgaben kennen somit vorrangig durchgefOhrt werden
Relativer Pfadname - Die Datei wird yom jeweiligen Standpunkt (Arbeitsdirectory)
relativ angesprochen. Liegt die Datei in einem Directory Ober dem aktuellen
Directory, wird das >Hinaufgehen< mit zwei Punkten (.f) gekennzeichnet. Die
einzelnen Directories werden jeweils durch einen Schragstrich von einander
getrennt. (z. B. wird die Datei lusr/kurs/monika/Uebungenlloesche relativ
yom Directory lusr/kurs/monika angesprochen mit: Uebungen/loesche)
S
Schaltflache - (push button) Auf einer grafischen Oberflache eine Markierung (oft
der Name in einer MenOzeile oder ein Icon in Form eines Schalters oder
eines Knopfes. Wird mit der Maus die Schaltflache angeklickt (-> Klicken),
wird eine Aktion gestartet (z. B. ein MenO ausgeklappt)
Schleifen - eine oder mehrere Anweisungen sollen mehrmals wiederholt werden.
Unter der Shell werden Schleifen eingeleitet durch die Kommandos:
for, while oder until
sequentielle Verarbeitung - Daten kennen nur nacheinander gelesen oder geschrieben werden (z. B. bei einem Magnetband), im Gegensatz zu einer direkten Verarbeitung (direct access - z. B. beim Zugriff auf die Platte)
Shell-Prozedur - Datei mit einem oder mehreren Kommandos bzw. Kommandofolgen. Um eine Shellprozedur selbstandig ablaufen zu lassen, muB die Datei
ausfOhrbar sein (chmod +x)
Shell-Variable - Unter einem Namen wird ein Wert zugewiesen, den Sie spater
mit $ und dem angegebenen Namen wieder abrufen kennen
401
5.3
Glossar
s-s
shutdown - Das System herunterfahren
Single-User-Modus - Ein-Benutzer-Betrieb
Software - (weiche Ware) Die Software kann weder gesehen noch angefaBt werden. Zur Software zahlen Programme, die zum Betrieb eines Rechners und
zur AusfOhrung der ihm ubertragenen Aufgaben notwendig sind
Speichermedien - Dies sind >Datentrager<, auf denen Daten geschrieben werden
k6nnen. Hierzu geh6ren Platten, Floppies, Magnetbander usw.
Spooler - (Spool simultaneous peripheral operation online) Ein Programm, das
Druckauftrage sam melt und sie der Reihe nach abarbeitet
Sprunganweisung - In Obereinstimmung mit einem vorgegebenen Muster wird
ein Programm unterschiedlich fortgesetzt
standalone - Ais >standalone< werden Programme bezeichnet, die ohne Hilfe des
Betriebssystems auf der nackten Hardware ablaufen k6nnen, z. B. das Betriebssystem UNIX beim Laden von einem Magnetband. (Es bleibt speicherresident - andauernd geladen)
Standardeingabe, Standardausgabe - Unter der Shell ist die Standardeingabe
und die Standardausgabe das Terminal. Die Ein- und Ausgabe kann durch
entsprechende Zeichen ( <, >, », 2» umgeleitet werden
Statement - (Aussage) Anweisung
Steuereinheiten - (Controller) Sie sorgen dafur, daB die einzelnen Gerate (Terminal, Drucker usw.) richtig betrieben, gesteuert werden
stream-oriented - (Datenstrom) zeichenweises Abarbeiten von Dateien
Streamer oder Streamer-Kassette - Ahnlich einer Musikkassette ein kleineres
Magnetband in einer Kassette. Es wird verwendet, um kleinere Datenmengen zu sichern
Strings - Zeichenketten, wie sie z. B. bei einer Pipe von dem vorherigen Kommando an das nachfolgende Kommando Obergeben werden
Stromversorgung - Rechner werden intern nicht mit 220 Volt betrieben und ben6tigen deshalb eine eigene Stromversorgung (Akku)
substitute - ersetzen
Superuser Systemverwalter - Ein mit besonderen Rechten (keine Einschrankung
der Zugriffsrechte) versehener Benutzer (root - Benutzernummer in
/etc/passwd = 0)
Style Manager - Ein Menu unter dem CDE, mit dem das AuBere der grafischen
Oberflache verandert werden kann (Farben, Hintergrund, Fonts etc.)
402
subpanel - Zusatzliche Bedientafel, die von der Desktop-Anzeige (front panel,
main pane~ ausgeklappt werden kann. Aus dieser Bedienflache heraus k6nnen weitere Programme/Funktionen gestartet werden
5
Obersichten
s-u
Synopsis - knappe Zusammenfassung
Syntax error - Regelfehler (z. B. formaler Fehler in einem Programm)
T
TCPIIP (Transmission Control Protocol I Internet Protocol), die bedeutendste Protokollfamilie, mit der die meisten Anbindungen zwischen UNIX-Rechnern
und zahlreichen anderen Systemen in einem LAN oder z. B. Ober Internet
verbunden sind.
temporarer Puffer - Viele Editoren, wie z. B. der ed und der vi, arbeiten nicht auf
der Originaldatei, sondern legen wah rend des Editierens einen temporaren
Puffer an (Bereich im Speicher), der durch ein Schreib-Kommando erst in
die Originaldatei auf der Platte zurOckgeschrieben wird
Terminal - Dialogstation (Bildschirm + Tastatur)
test - (prOfen) Ein shell-internes Kommando, das nicht als Dateiname benutzt
werden so lite
Text-Cursor - Sobald ein Maus-Cursor in ein Feld fOr Texteingabe kommt, verandert er sich zu einem anderem Symbol meistens zu einem kleinen Strich
Textverarbeitungsprogramm - Ein Programm, mit dem Texte erstellt und gleichzeitig ,druckgerecht< (Seitenumbruch, Seitenzahl, Randeinstellung, Tabellen, verschiedene Schriftarten etc.) aufbereitet werden
Time Sharing - Mehrere Programme erhalten quasi gleichzeitig Rechnerzeit. In
Wirklichkeit wird die Rechnerzeit in etwa gerecht aufgeteilt, und jeder ProzeB
erhalt immer wieder kurzfristig Rechnerzeit zugeteilt. (siehe auch Realzeitsystem)
Tools - (Werkzeuge) Ais Werkzeuge werden Kommandos bezeichnet, die bestimmte Aufgaben erledigen. z.B. gehoren zu Software-Tools Programme,
die die Softwareentwicklung unterstOtzen, wie Programme zurVersionspflege, Programmgenerierung etc.
U
Umleitungszeichen - Unter der Shell konnen Standardausgabe (> und »), Standardeingabe «), und Fehler (2)) mit den in Klammern angegebenen Zeichen
umgeleitet werden
unconditional- ohne Konditionen (Bedingungen)
undo - rOckgangig machen
unmount - demontieren, au shang en
user - Benutzer
403
5.3 Glossar
V-Z
V
verbose - Igeschwatzig, weitschweifend, wortreich) Wird unter UNIX die Option
-v angegeben, bedeutet dies, daB alles, was in dem Kommando vor sich
geht, ausfOhrlich angezeigt wird
Verschachtelung - Werden mehrere if-Bedingungen ineinander aufgerufen, oder
Kommandos rufen weitere Kommandos auf, spricht man von Verschachtelung, etwa vergleichbar mit Kinderspielzeugschachteln, die ineinandergesteckt werden
Vordefinierte Variable -In der Shell sind fOr jeden Benutzer bestimmte Werte von
Variablen vordefiniert (z. B. $HOME mit dem Directory, das in der Datei
letc/passwd als ,Home-Directory' eingetragen wurde)
W
WAN - (Wide Area Network) Verbindung von Rechnersystemen Ober ein Oberregionales Netzwerk
width - Breite
working directory - Arbeitsdirectory. Hierbei handelt es sich jeweils um jenes
Directory, unter dem gerade gearbeitet wird. Mit dem Kommando pwd (print
working directory) wird es angezeigt
workspace - siehe ..... Arbeitsf/ache
write - schreiben
Wurzel- (root, Kennzeichen ,I,) Beginn des Dateisystems
WWW - (World Wide Web) Weltweite Vernetzung von Informationen Ober das
Internet. HierfOr werden Informationen Ober HTML-Seiten aufbereitet, die
es erlauben, weitere Anfragen Ober Hyperlink zu verknOpfen. Mit Hyperlinks kennen wiederum weltweit Rechner angesprochen werden. Aile greBere Firmen bieten Ober das Internet einen Informations- oder Servicedienst an. Sogar die ARD und ZDF erreichen Sie seit Mitte 1996 unter
http://www.ard.de und http://www.zdf.de
Wysiwyg - (What you see is what you get) Damit werden Programme (in der Regel
Textverarbeitungsprogramme) bezeichnet, die am Bildschirm die Ausgabe
so anzeigen, wie sie spater auch ausgedruckt werden
Z
zeilenorientierter Editor - Anderungen kennen nur auf die Zeile bezogen erfolgen
Zugriffsrechte - FOr jede Datei sind Lese-, Schreib- und AusfOhrerlaubnis (read,
write, execute) fOr den Besitzer einer Datei, Benutzer der gleichen Gruppe
und die restlichen Benutzer (user; group, others) als Dateimerkmal eingetragen. Mit dem Kommando Is -I werden sie angezeigt, mit dem Kommando
chmod (change mode) kennen sie verandert werden
404
6 Literaturverzeichnis
Es gibt zwischenzeitlich eine ganze Reihe guter UNIX-Bucher.
Viele davon sind in englischer Sprache geschrieben. In diesem
Kapitel sind nur einige Bucher aus dem reichhaltigen Angebot
herausgesucht, die Ihnen, aufbauend auf diesem Lehrbuch,
einen tieferen Einstieg in UNIX ermoglichen.
Hierzu gehOrt auch die UNIX System V Standard-Dokumentation, herausgegeben von Prentice Hall, die aus verschiedenen
Manuals besteht.
Die einzelnen Themen:
5.1
Standarddokumentation UNIX SYSTEM V.4.2
5.2
WeiterfOhrende Literatur und Literaturangaben
405
C. Wolfinger, Keine Angst vor UNIX
© Springer-Verlag Berlin Heidelberg 2000
6.1 Standarddokumentation UNIX V.4.2
Die Dokumentation ist so umtangreich, daB Sie ein eigenes
Regal datOr ben6tigen wOrden. Hier nur ein kurzer Oberblick
mit den jewei/igen Inhalten.
406
Standarddokumentation UNIX V.4.2
UNIXSVR4.2
UNIX V.4.2 Referenz-Manuale
In der nachstehenden Aufzahlung sind jene Manuale in Fettdruck hervorgehoben, die fOr Sie interessant werden konnten, wenn Sie sich tiefer in UNIX einarbeiten mochten.
ADMIN-A
Basic System Administration
Handbuch fOr den Systemverwalter
ADMIN-B
Advanced System Administration
WeiterfOhrende Bedienungsanleitung
API
Operating System API
APLI
Application Builder Users's Guide
& Reference
AUDIT
Audit Trail Administration
CHAR
Character User Interface Programming
COM
Command Reference
Handbuch fOr den Anwender
zweiteilig: Kommandos von a bis I
und Kommandos von m bis z
C-TOOLS
Tools Programming in Standard C
DESK-GUIDE
Guide to UNIX Desktop
DESK-HAND
Desktop Handbook
DESK-Quick
Desktop Quick Start
DRIVER
Device Driver Reference
DRIVER-P
Portable Device Interface
FILES
System Files und Device Reference
GRAPHIC
Graphical User Interface Programming
INST
Installation Guide
NET-AD
Network Administration
NET-PR
Network Programming Interface
PC
PC Interface Administration
PROGREF
Programmer's Reference Manual
Handbuch fOr den Programmierer
SOFT
UNIX Software Development Tools
STREAMS
Streams Modules and Drivers
SYS
Programming with System Calls
USERS
User's Guide
WINDOW
Windowing System API Reference
407
3
UNIX - praktisch angewandt
Inhalt der Referenzbucher
Die in den ReferenzbOchern beschriebenen Kommandos sind unterteilt in Sektionen (Sections), die von 1 bis 7 und 0 (fOr Device Drivers) numeriert sind (z.T.
noch unternumeriert mit Buchstaben).
Command Reference (Commands a-I)
Command Reference (Commands m-z)
Diese HandbOcher sind als Nachschlagewerk zu verstehen. Sie finden in diesen
BOchern aile Kommandos alphabetisch sortiert, die Sie als "normaler Benutzer"
verwenden. Diese Kommandos sind im Dateisystem unter den Directories /bin
und /usr/bin (fur binary programs) abgelegt.
1
General-Purpose User Commands
Kommandos fOr den "normalen" Anwender,
wie z. B. date, Is
1C
Basic Networking Commands
1F
Form and Menu Language Interpreter
Operating Systems API
2
System calls
3
BSD System Compatibility Library
3C
Standard C Library
3curses
ETI-curses Library
3E
Executable and Linking Format Library
3G
General-Purpose Library
31
Identification an Authentication Library
3M
Math Library
3N
Networking Library
3S
Standard I/O Library
3W
MultibytelWide Character Conversion Library
3X
Specialized Libraries
Windowing System API
408
3Dt
Desktop Metaphor
3DnD
Drag and Drop
30LlT
MoO LIT
3curses
ETI-curses Library
System Files and Devices
4
System File Format
5
7
Special Files
01-05
Device Driver
Miscellaneous Facilities
6.2 WeiterfOhrende Literatur
Diese Auswahl soli kein Urteil uber andere auf dem Markt
erschienenen UNIX-Bucher sein. 1m deutschen Handel sind
zwischenzeitlich viele UNIX-Bucher erhaltlich, wobei viele nur
in englischer Sprache verfugbar sind. Einige sind spezialisiert
auf bestimmte Themen wie z.B. Wordprocessing (Textverarbeitung), Editor vi, Systemverwaltung, fortgeschrittene Programmierung, andere auf bestimmte UNIX-Portierungen
(SIN/X, bsd u. a.). Wie der Name dieses Kapitels schon sagt,
handelt es sich um weiterfuhrende Literatur, die Ihnen einen
tieferen Einstieg in UN/X ermoglicht.
Viele Buchhandlungen fUhren Informationslisten uber DV-Literatur, so auch JF Lehmanns, Fachbuchhandlung, 50937 Koln
mit Bestellservice zum Nul/tarif uber 0130-4372 oder E-mail:
bestellung@jf-Iehmanns.de.
409
3
UNIX - praktisch angewandt
Auswahl einiger im deutschen Handel erhaltlichen UNIX-Bucher:
J.Gulbins, K.Obermayr
UNIX V.4. Begriffe, Konzepte, Kommandos
Schnittstellen
Springer Verlag
Kernighan/Ritchie
Programmieren in C
Carl Hanser- Verlag MOnchen
Bolsky/Korn
The Korn-Shell Command and
Programming Language
Prentice Hall
OSF
OSF/1 Operating Systems mit folgenden Banden:
OSF/1 User's Guide
OSF/1 Command Reference
OSF/1 Programmer's Reference
OSF/1 System and Network
Administrator's Reference
Application Environment Specification (AES)
Operating
System Programming Interface Volume
Prentice Hall
I. Trommer
Bourne- und Korn-Shell
Oldenbourg Verlag
I. Trommer, S. Schmitz
Systemadministration unter UNIX
Oldenbourg Verlag
XlOPEN
Portability Guide Version 4 (XPG4)
Er besteht aus einem Satz aus 5 BOchern
X/OPEN Compo Ltd
Auswahl einiger LNIX-Bucher:
Hetze,Hohndel/MOlier/Kirch
Anwender LlNUX Handbuch
LunetlX MOiler Hetze GbR
Michael Kofler
LlNUX - Installation, Konfiguration, Anwendung
Addison-Wesley
Marc Andre Selig
LlNUX
Markt & Technik
Stefanie Teufel
Jetzt Ierne ich Linux
Markt & Technik
Zusatzliche Literaturangaben:
F. Vester
410
Denken, Lernen, Vergessen
Deutsche Verlags-Anstalt OVA
7 Stichwortverzeichnis
Dieses Stichwortverzeichnis soli Ihnen helfen, schnell nach
einem Begriff zu suchen. Findet sich ein Begriff auf mehreren
Seiten, sind die Seitenzahlen durch Kommas getrennt angegeben. Handelt es sich bei dem Stich wort um die Syntaxbeschreibung eines Befehls, ist das Wort ,Kommando< mit
angegeben.
Kommandos sind zusatzlich noch alphabetisch unter dem
Kapitel 5. 1 aufgefOhrt.
In der beigelegten Kurzreferenzkarte finden Sie auBerdem die
Mufig ben6tigten Kommandos als Obersicht nach Funktionen
und alphabetisch sortiert sowie Wissenswertes uber UNIX.
411
C. Wolfinger, Keine Angst vor UNIX
© Springer-Verlag Berlin Heidelberg 2000
Symbole-A
Symbole
412
" " - Ersetzungsmechanismus 103
#!lbin/csh 257
#!/bin/ksh 257
#!lbin/sh 257,326
#!/usr/bin/csh 326
$ - Bereitzeichen 84
$# 268
$$ 268
$0 - Kommandosubstitution 108
$* 268
$? 268
$0 267
$1 267
$DISPLAY 266
$ENV 266,316
$EXINIT 266
$HISTSIZE 316
$HOME 264, 266
$home 328
$HOMEI.exrc 150
$HOMEI.kshrc 317
$IFS 266
$LANG 266
$LOGNAME 266
$OLDPWD 316
$PATH 266
$prompt 328
$PS1 266
$PS2 267
$PWD 267, 316
$SHELL 267
$TERM 267
$TZ 267
$VISUAL 267, 316
% - Bereitzeichen C-Shell 84
&& - Zeichen fUr bedingte
AusfUhrung 273
; - Kommandos verketten 94
. (Punkt fOr aktuelles Directory) 54
.. (fOr darOberliegendes
Directory) 54
.cshrc 326
.dtprofile 263
.kshrc 308
.login 263, 326
.profile 263, 308
.,rhosts 238,241,244
.sh_history 309
I - root 51
Idev 170
Idev/fdO 202
Idev/nrmtO 215
Idev/null 91
letc/hosts 238
letc/hosts.equiv 238, 241 , 244
letc/mount (Kommando) 203
letc/passwd 43
letc/passwd
(Auszug aus der Datei) 44
letc/umount (Kommando) 205
Ipub/incoming 240
Ipub/outgoing 240
Itmp 240
= - Zuweisung von Variablen 107
> - Ausgabeumleitung 87
» - Ausgabeumleitung
(anhangen) 90
@zahl = 328
1- Pipe 95
II - Zeichen fOr bedingte
AusfOhrung 274
, , -keinerlei Substitution 109
, '- Kommandosubstitution 108
$argv 328
2> - Fehlermeldungen umleiten 92
A
Abbruch eines Kommandos 256
Abhangigkeit von Ergebnissen 257
Ablaufdiagramm 14
Abmelden yom System 47
absolute Pfadnamen 50
Acceleration (CDE) 368
Add Workspace 365
Addition 314
Adjust 368
Adobe Photoshop 23
AIX 20
A-B
7 Stichwortverzeichnis
Aktivieren weiterer Arbeitsbereiche
346
aktuelle Anzeige des SpoolProgramms Ip 173
aktuelles Directory 58
alias (Kommando) 312
alias kurzel Befehl (csh) 328
Alias-Funktionen 306
Alias-Mechanismus 312, 326
allexport 318
Allow Primary 370
American Telephone and Telegraph
18
An- und Abmelden
(Zusammenfassung) 48
Analog-Zeitanzeige 364
Andern der Desktop-Anzeige 363
Andern des PaBwortes 46
Andern von Zugriffs- und
Besitzerrechten 176
Andern von Zugriffsrechten
(CDE) 359
Anderungsdatum 167
AnfUhrungszeichen 103
Anmeldefenster im CDE 340
Anmelden 35
Anmeldung 44
Anwendungsschicht 237
Anzeige eines Datei-Inhaltes 65
Application-Manager 364
Application-Manager (CDE) 343
Applixware 23, 229
Arbeitsbereiche (CDE) 342
Arbeits-Directory 49
Arbeitsflache 38, 340, 345
Archiv 214
Arithmetische Anweisungen 13
ASCII 65
ASCII-Code 11
ASCII-Terminal-Einstellung 340
ASCII-Terminals 35
Assembler 18
at (Kommando) 222
AT&T 18
at-Jobs 223
Aufbewahrungsort 225
Aufhebung von Metazeichen 102
Aufruf eines Kommandos 256
Aufteilung der Platten 190
ausfUhrbar 255
Ausfuhrerlaubnis 179
Ausgabe eines Kommandos
>wegwerfen< 91
Ausgabeumleitung 87
Aushangen der Floppy 205
Ausschalten des Systems 76
Austausch von Daten mit
dem PC 227
Austausch-Datentrager zu
PCs 202
Austauschformat rtf 229
Auswahlmenu 35
auto repeat 368
Auto Screen Blanking 369
Automatisches Starten von
Kommandos 362
awk 331
B
Backdrop - Auswahl eines
Hintergrunds (CDE) 367
BACKSPACE 29
Bandmarke 212
banner 315
banner (Kommando) 315
BASIC 16
batchorientierter Editor sed 151
Baumstruktur 12, 57
Bedientafel uber dem
Texteditor (CDE) 342
Beep - Einstellung fUr
den Warnton (CDE) 369
Befehle 26
Befehlszeileneditor 306, 310
Befehlszeileneditor
(Funktionen) 311
Beispiel der Shell-Prozedur
-Ioschen 283
413
8-C
belegten Platz (Blockanzahl)
anzeigen 190
Bell Laboratories 18
Benutzer 43
Benutzerdaten, Sicherung 225
Benutzerinformation 70
Benutzername 167
Bereit-Zeichen 48
Bereitzeichen der Shell 84
Berkeley Universitat 18
Besitzerrechte 59
Besitzrechte andern 182
besondere Hinweise 27
Besonderheiten im vi 150
Betriebssystem 5, 6, 7
Betriebssystemkern 82
Betriebssystem
(Zusammenfassung) 9
bg %Jobnummer 319
bgnice 318
biff 74
Bildschirm fUr Nachrichten
sperren 73
Bildschirm stoppen 66
Bildschirm weiter laufen lassen 66
Bildschirmeinstellungen 369
bildschirmorientierte Editoren 121
binare Dateien 11
Binarformat 65
BISON 19
Bit-Obertragungschicht 237
block oriented 171
boot 33
Bourne 18
Bourne-Shell 85, 326
break (Kommando) 293
breaksw 327
Bridge 236
BSD 18
BSD-UNIX 20
Buroautomation 23
c
414
C 16
CAD/CAM 23
cancel (Kommando) 172
canceln 28
Carriage Return 28
case 257,327
case (Kommando) 297
cat 88
cat (Kommando) 65
cat (Kommando)
(aneinanderhi:ingen) 90
cat> (Kommando) 88
CATIA 23
cd 58
CDE 19, 22, 36
CDE (Common Desktop
Environment) 34
CDE Menu File 357
CDE Menu Remove from
Workspace 358
CDE Menu Selected 357
CDE Menu View 357
CDs 4
Central Processing Unit 6
Change Permission (CDE) 356
character oriented 171
Chips 5
chmod mit symbolischer Angabe
(Kommando) 177
chmod mit Zahlenwerten
(Kommando) 179
chown (Kommando) 182
clear (Kommando) 315
Click in (CDE) 370
click volume (CDE) 368
cmp 331
cmp (Kommando) 335
COBOL 16
Color - Auswahl der Farben 366
Command Line Login 340
COmmercial Business Oriented
Language 16
Common Desktop Environment 22
Compiler 17,18
compress (Kommando) 247
CO NT 320
continue (Kommando) 289
C-D
7 Stichwortverzeichnis
controller 4
Copy (CDE) 41, 355
Copy as Link 357
Corel Draw 23
COSE 19
cp (Kommando) (eine Datei) 159
cp (Kommando)
(mehrere Dateien) 160
CP/M 8
cpio - Inhaltsverzeichnis 217
cpio (copy input output) 207
cpio -i (Kommando) 216
cpio -0 (Kommando) 214
CPU 5,6
CPU-Leistung 8
C-Quell-Programm 16
crontab 223
C-Shell 85, 326
CTRL 28
CTRL+d 47, 72
CTRL+q Bildschirm we iter laufen
lassen 66
CTRL+s - Bildschirm stoppen 66
Current Help 353
Cursor 28
Cursortasten 28
cut 331
cut (Kommando) 333
cut (CDE) 41
o
Darstellung des Ordners (CDE) 358
date 33
date - Auszug Manualseite 64
date (Kommando) 61
Datei 11
Datei erganzen 90
Datei erstellen 88
Dateibaum 49
Dateien aneinanderhiingen 90
Dateien fUr den Druck
aufbereiten 175
Dateien in ein anderes Directory
>schieben< 163
Dateien 16schen 102
Dateien such en 183
Dateien umbenennen 163
Dateikopf 167
Dateimanager (CDE) 57, 342, 354
Dateimerkmale anzeigen 169
Dateinamen 155
Dateiset 212
Dateisystem 11, 49
Dateisystem einrichten 167
Dateityp 70, 167
Dateitypen (CDE) 354
Datenbanken 23
Datendarstellungschicht 237
DAT-Laufwerke 212
Datum 33
Datumsanzeige 61
dd 241
dd (Kommando) 242
DEC 18
default 58, 327
Delete (CDE Desktop-Anzeige) 363
DELETE-Taste 29
Denken, Lernen, Vergessen 2
DESCRIPTION 63
Desktop 22,36,345
Desktop-Anzeige 38, 341
df (Kommando) 191
DIAGNOSTICS 63
Dialogbox Find 360
Dialogbox fur
Kommandoaufrufe 362
Dialogbox Permission 359
Dialogbox Set Filter Options 359
Dialogbox Set View Options 358
Dialogbox, um Dateien
auszuwahlen 347
Dialogverarbeitung 21
Dienstprogramme 22
diff 331
diff (Kommando) 334
Digital Archiv Tape 212
Digital UNIX 20
Digital-Zeitanzeige 364
Directories (Erlauterung spez.
unter UNIX) 12
415
O-F
Directory 53
Directory (allgemeine
Beschreibung) 11
DISPLAY 243
ditroff 121
Division 314
DLT-Bander 212
Doppelklick 362, 368
DOS 244
dosdir (Kommando) 227
dosformat (Kommando) 227
dosread (Kommando) 227
doswrite (Kommando) 227
Double-Click 368
Druckauftrage 172
Druckersymbol (CDE) 356
Druckformatierprogramm 120
Druckmanager (CDE) 343
DTP - Desktop Publishing 23
DTP-Bereich 19
DTSOURCEPROFILE=true 263
du (Kommando) 190
Duration 369
E
416
echo 105,257
echo (Kommando) 259
ed 121
ed - Bereich definieren 123
ed (Kommando) 122
Editor 120
Ein- und Ausgabe 14
Eingabe an der Tastatur 28
Eingabemodus 122
Einlesen gesicherter Dateien
von einer Floppy 210
Einlesen gesicherter Daten aus
einem cpio-Archiv 216
eject 229
Elektronikkarten 4
elektronische Post 73
elif 276
emacs 310,318
Endezeichen (CTRL+d) 72
endif 327
Endlosschleife 295
endsw 327
entfernbare Datentrager 201
Entleeren des Papierkorbs
(CDE) 361
env (Kommando) 262
ENV=$HOMEI.kshrc 313
EOF 47,120
EOF (end of file - Zeichen fOr
Dateiende) 93
Ersetzungsmechanismus
der Shell 105
Erstellen eigener ShellProzeduren 257
Erstellen eines Archivs 214
Erstellungsdatum 167
Ethernet-Karte 236
EUCLID 23
EUnet 75
EXCEL 229
ex-Editor 144
exit (Kommando) 275
Exit (CDE) 343
export 262,314
export ENV 313
expr 265
expr (Kommando) 294
F
false (Kommando) 293
Farbzuordnung (CDE) 366
fc (fix command) 309
Fehler in Shell-Prozeduren 284
Fehlermeldungen 86
Fehlermeldungen umleiten 92
Fenster 36, 39
Fenster schlieBen 42
Fettdruck 27
fg %Jobnummer 319
FIFO-Datei 97
file (Kommando) 189
File (CDE) 355
File Manager (CDE) 354
File-Server 222
file transfer protocol 236
F-H
7 Stichwortverzeichnis
Filter Options (CDE) 359
Filterprogramm 151, 332
find (Kommando) 183, 207
Find (CDE) 356
find ... I cpio ... (Kommando) 207
Find/Change-Dialogbox
(Texteditor) (CDE) 349
Finden von Dateien oder
Dateiinhalten (CDE) 360
find-Kommando 207
finger (Kommando) 70
Floppies 201, 202
Floppies oder Platten
montieren 203
Fluchtsymbol 102
FluBdiagram 14,281
Font - Auswahl der Schriften 367
for 285
for do done 257
for in do done (Kommando) 288
foreach Name ( argumente )
Befehlsfolge end 327
formatiert 202
Formatierung 167
FORmula TRANslation 16
for-Schleife 286
FORTRAN 16
FrameMaker 23
frei zur VerfOgung stehende
Blocke 191
front panel 38
ftp 227,236
ftp - Auswahl der wichtigsten
Befehle 245
ftp (Kommando) 245
ftp (file transfer protocol) 244
function (Kommando) 299
G
Geratedateien (devices) 170
Go Home (CDE) 355
Go To (CDE) 355
goto 327
GoUp (CDE) 355
Grafik-Terminals 35
Grafische Benutzeroberflache 22
grafische Oberflache 36
grep 331
grep (Kommando) 98, 188
GroBe in Bytes 167
Grundrechenfunktionen 314
Gruppe 167
Gruppenzugehorigkeit 44
GUI22
GUUG 75
H
halt 76
Handedness 368
Hardlink 165
Hardware 5
Hardware und Software 4
Hauptspeicher 6
head (Kommando) 337
Header (Kopfzeile) - mail 74
Help - Index Search (CDE) 353
Hewlett Packard 18
hierarchisches Dateisystem 11
Hilfe (CDE) 42
Hilfe-MenO (CDE) 343, 352
Hilfsfunktionen im CDE 352
Hintergrund (CDE) 367
Hintergrundprozesse 110
HinzufOgen einer
Bedientafel (CDE) 364
HinzufOgen eines
Arbeitsbereichs (CDE) 365
HinzufOgen von
Program men (CDE) 364
history 310
History-Mechanismus
306,309,326
Home-Directory 43, 49
Home-Session 370
hostname (Kommando) 239
HP-UX 20
HTML-Dateien 67, 348
HUP 320
417
I-L
IBM 20
Icon 36,42
IDEAS 23
IEEE 19
if then else fi 257,274
if ( ausdruck ) then 327
ignoreeof 318
Ikonisieren (CDE) 345
Individuelle Zugriffsrechte fOr
Dateien 21
Informationen Ober Benutzer 70
Informix 23
Inhaltsverzeichnis von Dateien 12
INIT-Taste 33
Inkonsistenzen 76
Inkrementelle Sicherung 225
Innenleben eines Rechners 5
inode 167
INT 320
integer 314,315
Integer-Variable 265
Intel 8
Interface 6
International Standards
Organization 236
IRIX 20
ISO 236
J
Jobcontrol 114,307,319
Job-Kontrolle 326
Jobsteuerungen 321
K
418
Kabel 4
Kapazitaten der Floppies 211
keinerlei Substitution 109
Kennzeichen der Dateitypen 171
Keyboard Tastatureinstellung 368
KILL 320
kill (Kommando) 112
kill -9 319
kill Signal %Jobnummer 319
Kommandoaufruf 267
Kommandoaufruf - Syntax 83
Kommandomodus 122
Kommandos 26
Kommandos im ed 137
Kommandos verketten 94
Kommandosubstitution 108
Kommentar 257
Kommerzielle Software 24
Kommunikation 22
Konventionen 25
Kopieren eines Dateibaumes
mit cp -r 161
Kopieren eines Dateibaumes
mit cpio 207
Kopieren im CDE (Textbereiche) 41
Kopieren von Dateibaumen 214
Kopieren, L6schen und
Umbenennen von Dateien
159
Korn-Shell 85, 306
ksh -0 vi 310
KOnstliche Intelligenz 24
kursiv 27
l
LAN 22
Laufwerk 202
Lernmethode 2
Leseerlaubnis 179
Lichtkontrollanzeige (CDE) 343
Link-Icon 357, 360
Link-Icons 360
LlNUX 20
LISP 24
In (Kommando) 166
In (Kommando) (Hard link) 165
In (Kommando)
(symbolischer Link) 166
Local Area Network 22
Login 34,45
Login-Directory 48
Logische Vergleiche 13
logout 47
L-N
7 Stichwortverzeichnis
Loschen (Texte) im CDE 41
Loschen von Dateien (CDE) 361
Loschen von Dateien und
Dateibaumen 162
Loschprogramm 281
Loschtaste 28
Lotus 229
Lotus Notes 23
lowercase 314
Ip (Kommando) 172
Ip-Druckauftrag abbrechen 172
Ipq (Kommando) 174
Ipr 173
Iprm (Kommando) 174
Ipstat (Kommando) 173
Ipstat -t 172
Is 50
Is (Kommando), um Dateimerkmale
anzuzeigen 169
Is (-IFR) 52
M
Macintosh 244
Magnetband 211
Magnetooptische Platten 201
Magnetplatten 4
mail 239
mail (Kommando) 73
Mail-Tool 342
Main Memory 6
Mainframes 244
major device number 171
Makros 67
man (Kommando) 62
Manualseiten 63
Mathematica 23
Maus 36,37
Maus-Cursor 37
Maximize (CDE) 42
Menu File (CDE) 347
Menu Style-Manager 366
Menus des Dateimanagers 357
Merkmale einer Datei 167
mesg (Kommando) 73
message 71
Metazeichen
(ed, sed, grep und vi) 134
Metazeichen im Editor ed 133
Microsoft 18
Minimize (CDE) 42
minor device number 171
mkdir (Kommando) 157
mkfs 167, 202
MOD 201
Modem 236
modification date 184
Modulo 314
Modus 58
more (Kommando) 66
Motif 19
mount 190
Mouse - Mauseinstellung 368
MS/DOS 8
mt (Kommando) 213
Multiplikation 314
Multi-Tasking 21
Multi-User-8etrieb 21
Multi-User-Modus 33
MUNIX 18
mv (Kommando) 163
mwm 34
N
Nachrichten elektronisch
senden 73
Name der Datei 167
named pipe 171
Netz 236
Netzwerkfahigkeit 22
Neuanlegen und Loschen
von Directories 157
neue Zeile 28
neuer Arbeitsbereich 346
neues Terminal 40
Neustart (CDE) 370
New Folder (CDE) 355
NFS (Network File System) 243
NIS (Network Information
Service) 242
no rewind 215
419
N-R
no space 190
noclobber 318
nohup (Kommando) 338
normale Datei 53
Noscroll 28
Novell 19
nroff 121
o
Objectcode 17
Oktalzahl 179
Online-Manual 62
Open Systems
Interconnection 237
OpenWin 22
openwin 34
Optionen in der Korn-Shell 318
Options (CDE Anmeldefenster) 340
Oracle 23
OSF 19
OSI-Model 237
OSI-Schichtenmodel 237
p
420
Papierkorb 344
Papierkorb (CDE) 361
Parent Process IDentification
Number 112
Partitions 190
password (PaBwort) 45
PaBwort 42,244, 245
PATH 83,261
PATH als Suchpfad 255
PC (Personal Computer) 227
PCS 18
Personal Computer 227
Pfad 12
Pfadnamen 51
pg (Kommando) 68
PID 112
ping (Kommando) 238
Pipe-Mechanismus 95, 256
Pipe-Zeichen ( I) 95
Plattenbelegung 190
Plattencheck 76
Plausibilitatsprufungen 272
Point in Window (CDE) 370
Positionsparameter 257,267
Positionsparametern 268
POSIX 19
Post lesen 74
PPID 112
pr (Kommando) 175
Process IDentification Number 112
ProEngineer 23
Programm 5,13
Programme im Hintergrund
starten 110
Programme vorzeitig
abbrechen 112
Programmiersprache 14
Programmiersprachen 5, 16
Programmverzweigungen 13
Progres 23
PROLOG 24
Prompt 84
Provider 73
ProzeB 17
ProzeBkontrolle 307,319
ProzeBnummer 111
Prozessor 4
Prozessorboard 5
ps 319
ps (Kommando) 113
public domain 20
Pull-Down-Menus 36, 40
Put Back 361
Put in Trash (CDE) 356, 361
pwd 49
Q
QIC-Format 212
Quellcode 17
QUIT 320
R
r -3 (Korn-Shell, History) 310
Raise Window (CDE) 370
rcp 236
R-S
7 Stichwortverzeichnis
rcp (Kommando) 239
read 257
read - internes
Shell-Kommando 271
read in Verbindung mit dem
Pipe-Mechanismus 336
Realzeitsystem 7
Rechenoperationen 294
Rechner 4
Rechner starten 33
Rechnername 240
Referenzzahler 167
regularer Link 165
relative Namen 50
relative Pfadnamen 54
remote copy 236
remote login 236
remote shell 236
Remove from
Workspace (CDE) 358
Rename (CDE) 357,365
repeat 327
Repeater 236
Restaurieren von Dateien
aus einem tar-Archiv 221
Return 28
RETURN-Taste 29
rlogin 236
rlogin (Kommando) 243
rm (Kommando) 102, 162
rmdir (Kommando) zum Loschen
von Directories 158
Rollbalken 36, 42
root 12,43
Router 236
rsh 236
rsh (Kommando) 241
rtf (rich text format) 229
Run-Kommando 257
5
Santa Cruz Co 20
SAP-Rl324
Schaltflache fOr Menuaufruf 341
Schaltflachen 36, 41
Schleifen 14, 257
Schleifenklammerung 285
Schleifenkopf 285
Schleifenrumpf 285
Schleifenverarbeitung 285
SchloB (CDE) 342
Schragstrich 60
schreibbereit 202
Schreiberlaubnis 179
schreibgeschOtzt 202
Schreibring 211
Schreibschutz 212
Schreibtischumgebung 340, 342
Schrift voreinstellen 367
SCO-UNIX 19,20
Screen - Bildschirmeinstellungen 369
Scripte 326
Scroll 28
Scroll-Balken 36
sed (Kommando) 151
Selected (CDE) 355
Senden von Nachrichten 71
Server-System 19
set (Kommando) 262
set (Kommando) (Optionen) 284
set +0 318
Set Filter Options 359
set -0 vi 310
set -0 (Kommando) 318
set prompt 326
Set View Options (CDE) 355
set -x 286
setenv 328
SGI Silicon Graphics 20
sh (Kommando) 254
Shell - Benutzerschnittstelle und
Kommandointerpreter 21
Shell- Variable 257
Shell-Prozedur (Beispiel} 260
Shell-Prozeduren 254, 326
Shell-Script 254
Shell-Symbol 362
Shell-Variablen 107
Shred 361
421
S-T
422
shutdown 76
Sichern 200
Sichern von Dateien auf Floppy 204
Sicherung mit cpio als Archiv 214
Sicherung mit tar 219
Sicherung Systemsoftware 225
Sicherungskonzept 224
Sicherungsmedium von
kleineren Datenmengen 209
Sicherungsschicht 237
Siemens 20
Signale 320
Single-User-Modus 33
SINIX 20
Sitzung 47
sleep (Kommando) 293
softlink 166
Software 5
Software-Tools 22
SOLAR IS 20
Sonderzeichen 53
Sonderzeichen im ed 136
sort 331
sort (Kommando) 97,332
Sortierkriterien fOr den
ge6ffneten Ordner 357
Sortierung nach Spalten 332
Spec1170 19
Speichergerate 6
Spooler 88
Spool-Programm 172
Sprachen 22
Spreadsheet-Programme 229
Sprunganweisung 13
Standardausgabe 86
Standardeingabe 86
Start Blanking 369
Start des Rechners 76
Start-Directory 184
Starten einer Korn-Shell 308
Startup - Voreinstellung fOr
einen Neustart 370
Status der Programme
abfragen 113
Steuereinheiten 4
Steuerungsschicht 237
Steuerzeichen 83
STOP 320
stop %Jobnummer 319
Streamer 211
STRG 28
Strings 98
Stromversorgung 4
Strukturieren durch
Unterdirectories 154
Style-Manager 343
Subject (Betreff) - mail 74
subpanel (CDE) 363
Subtraktion 314
Suchen nach Dateien und
Mustern in
Dateiinhalten 183
Suchkriterien 184
Suchmechanismen im
Editor ed 131
Sun Microsystems 20
Superuser 33, 43
switch 327
Sybase 23
SYLK-Format 229
symbolischer Link 166
sync 76
SYNOPSIS 63
Syntax 26
syntax error 295
Syntaxfehler 17
Systemkonsole 33
Systemsoftware 200
Systemverwalter 33, 43
T
Tabulatortaste 28
tail (Kommando) 337
talk (Kommando) 72
tar -c (Kommando) 219
tar -t (Kommando) 221
tar -x (Kommando) 221
Tastatur 28
Tasteneingabe (kombiniert) 47
TCP/IP 22
T-V
7 Stichwortverzeichnis
technisch-wissenschaftliche
Anwendung 23
tee (Kommando) 330
telecommunication netware 236
telnet 236
telnet (Kommando) 243
tempo rarer Puffer 123
TERM 320
Terminal 35
Terminalnamen 70
Terminal-Symbol 40
Terminalverbindungen 35
Terminkalender (CDE) 344
test 257
test - Kombination (und, oder) 279
test (Kommando) 273
test (Kommando), um Zeichenketten zu OberprOfen 277
test - modernere
Schreibweise 278
Text-Cursor 37
Texte verandern (Texteditor) 348
Texteditor (CDE) 342,347
Texteditor - Find/Change
Dialogbox 349
Texteditor - Format 349
Texteditor - MenO Edit 348
Texteditor - MenO Options 350
Texteditor - Tastatur-Befehle 350
Textgleichheit 272
Textverarbeitung 120
Textverarbeitungsprogramme 229
Threshold (CDE) 368
Time Per Background (CDE) 369
Time Sharing System 7
Timesharing 21
Ton (CDE) 369
Transfer 368
Transportschicht 237
trap-Behandlung 258
Trennung zwischen Directories 155
troff 121
true (Kommando) 293
TSTP 320
tty (Kommando) 71
Turnus einer Sicherung 222
typeset (Kommando) 314
U
Ober Netz verbunden 35
Obernahme von Symbolen in
Desktop-Anzeige 363
OberprOfen der Platten- oder
Floppybelegung 190
Uhr (CDE) 341
ULTRIX 18,20
Umbenennen von Dateien 357
Umbenennung 164
Umgebungsmanager 343
Umleitung 256
Umleitung mit tee 330
Umschalttaste 28
unalias (Kommando) 313
unalias KOrzel 328
uncompress (Kommando) 248
Uniplex onGo 23
University of California at
Berkeley 20
UNIX 8
UNIX von J. Gulbins/K.
Obermayr 1
UNIX-Dateibaum 56
UNIX-Dateisystem 12
UNIX-Portierungen 20
Unixware 19
Unterschiede zur C-Shell 326
until 285
until (Kommando) 290
uppercase 314
Use Backgrounds for Lock 369
USL 19
uucp 22
V
Variable ENV 308
Variablen der Korn-Shell 307,314
VAX 18
Vereinfachung von UNIXKommandos unter CDE 356
Verkettung 256
423
v-z
Verkettung von Kommandos 94
Vermittlungsschicht 237
Verschachtelung von
if-Bedingungen 276
versteckte Dateien 357
Verweis zu einer
bestehenden Datei 166
vi 121,318
vi, Suchen und Ersetzen im
ex-Modus 144
vi, Besonderheiten 150
vi, Eingabemodus 138
vi, Kommandos 146
vi,Objekte 142
vi, Optionen 150
vi, Umschalten in den
Kommandomodus 140
vi, wesentlichen Eigenschaften 138
View (CDE) 355
VISUAL 310
Volume 369
vordefinierte She"-Variable 262
vordefinierte Variable 257
Vordergrundprozesse 110
Vorteile von She"-Prozeduren 256
VUE 22
W
WagenrOcklauf 28
WagenrOcklauf-Taste 29
WAN 22
Warnton (CDE) 369
wc (Kommando) 95
Wechsel des Directories 59
Wertzuweisung 265
wesentliche Eigenschaften
des Editors vi 138
whatis (Kommando) 65
while 285
while (Kommando) 290
while ( ausdruck ) Befehlsfolge
end 327
who (Kommando) 69
Wide Area Network 22
424
WindowFenstervoreinste"ung 370
windows 36
Windows-NT 19
wochentliche Sicherung
(Beispiel) 260
Workspace 36, 365
write (Kommando) 71
Wurzel des Baumes 12
WWW-Seiten 67
Wysiwyg-Programme 120
X
XlOPEN 19
xdm 34
XENIX 18
XPG 19
X-Terminals 35
X-Window 35
Z
Z80-CPU (Zilog) 8
zcat (Kommando) 248
Zeichenketten 98
Zeichensatze 28
zeilenorientierte Editoren 121
Zugriffsdatum 167
Zugriffsrechte 58,167,176
Zugriffsrechte andern 177
Zugriffsrechte andern (CDE) 357
zusatzliche Optionen (KornShe") 307
Zuweisung von Variablen 107
Nachwort
Dieses Nachwort ist an all jene gerichtet, denen dieses Buch ein Begleiter war,
UNIX im Selbststudium zu erlernen. In einem Seminar wOrden Sie, dessen bin
ich sicher, ein Zertifikat erhalten, daB Sie erfolgreich teilgenommen haben.
Zu Beginn wOnschte ich Ihnen ,guten Appetit!,; sind Sie auf den Geschmack von
UNIX gekommen? Nun, ich hoffe, Ihnen hat es SpaB gemacht, mit UNIX zu experimentieren.
Ich habe mich bemOht, die einzelnen Themen ausfOhrlich zu behandeln. Aile
Obungen sind ,live, nachvollzogen, doch trotzdem konnte es vorkommen, daB
eventuelle Unstimmigkeiten auf anderen UNIX-Rechnern aufgetreten sind. Sollten Sie beim Lemen oder Nachvollziehen der Obungen auf Unklarheiten oder
Unvollstandigkeiten gestoBen sein, ware es schon, wenn Sie mir diese mitteilen.
Auch wenn Sie Anregungen, Verbesserungsvorschlage oder selbst interessante
Beispiele zu den Themen dieses Buches haben, wOrde ich mich freuen, diese in
einer der nachsten Auflagen mit zu berOcksichtigen. Schreiben Sie bitte an den
VDI-Verlag, Kennwort ,UNIX" Abt. VBR, Postfach 101054, 40001 DOsseldorf
oder schicken Sie mir eine e-mail unter100712.1411@CompuServe.com.
Vielen Dank im voraus fOr Ihre MOhe.
August 1996
Christine Wolfinger
425