Sie sind auf Seite 1von 963

x.systems.

press
X.systems.press ist eine praxisorientierte Reihe des Springer-Verlages zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

3 3
Berlin Heidelberg Berlin New York Heidelberg Hongkong New York London Hongkong Mailand London Paris Mailand Tokio Paris Tokio

Peter H. Ganten beschftigt sich seit 1994 mit GNU/Linux, zunchst als Anwender, spter dann als Entwickler, Fachautor, Consultant, Trainer, Analyst und strategischer Berater und seit 2002 als Unternehmer in der von ihm gegrndeten Univention GmbH. Seine in vielen Projekten fr Verwaltungen und Unternehmen erworbenen Erfahrungen im GNU/Linux-Umfeld setzt er mit seinen Mitarbeitern dazu ein, Unternehmen und Behrden durch passende Produkte und Dienstleistungen darin zu untersttzen, Linux-basierte Infrastrukturen erfolgreich einzufhren und auszubauen. Univention ist Hersteller des Univention Corporate Server, einem auf Debian GNU/Linux basierenden Betriebssystem mit integriertem Managementsystem, das besonders in komplexen, verteilten IT-Infrastrukturen seine Strken hat. Darber hinaus bietet Univention professionelle Dienstleistungen an, wie Analyse, Beratung und Support. Schwerpunkte der Kompetenz von Univention sind neben Linux unter anderem auch Verzeichnisdienste und die Integration von Linux mit Windows-Systemen. Wulf Alex studierte Elektrotechnik mit der Fachrichtung Nachrichtentechnik an der TH Karlsruhe und promovierte dort an der Fakultt fr Chemie-Ingenieurwesen zum Dr.-Ing. Nach einem Forschungsaufenthalt an der Universitt Uppsala (Schweden) verantwortete er die gesamte EDV eines groen Hochschulinstitutes, anfangs mit einem zentralen UNIX-Rechner und zuletzt mit einem heterogenen Netz bestehend aus etwa zweihundert Maschinen unter UNIX, Linux, Mac OS und MS Windows. Ferner bernahm er Lehrauftrge unter anderem zur Partikelmesstechnik, zu UNIX und zur Programmierung in C/C++ und arbeitete an mehreren Bchern mit. Programmieren hat Wulf Alex noch auf einer Z 22 gelernt, die er auch als Nachtoperator gefahren hat. Heute ist er, mit etwas mehr verfgbarer Freizeit, vor allem Admin eines Domestic Area Networks und als Autor und Lehrbeauftragter weiterhin im Linux/UNIX-Umfeld aktiv.

Peter H. Ganten Wulf Alex

Debian GNU/Linux
Grundlagen, Installation, Administration und Anwendung
2., berarbeitete Auflage
Mit 50 Abbildungen und 10 Tabellen

13

Vorwort

Die Erndung des Buchdrucks schuf die technische Voraussetzung fr den Zugriff auf Wissen durch breite Bevlkerungsschichten. Es bedurfte allerdings gesellschaftlicher Umwlzungen wie der Reformation und der Aufklrung, bis die technische Mglichkeit tatschlich genutzt wurde und die Masse der Menschen geheime Schriften lesen durfte, wodurch sie letztlich mehr Freiheit und Mitbestimmungsrechte erhielt. Die Entwicklung von Computern und weltumspannenden Netzen ermglicht den freien Zugriff auf Computerprogramme und -daten, eine neue Form von Wissen, von der immer mehr Bereiche des Lebens abhngen. Auch hier fhrt die technische Mglichkeit nicht automatisch zu mehr Freiheit. Im Gegenteil: Es gibt machtvolle Bestrebungen mit dem Ziel, den Gebrauch dieses Wissens einzuschrnken und mit Hilfe der Computer den Einzelnen strker zu berwachen, als es je in der Geschichte mglich war. GNU und Linux sind Projekte, die sich gegen die Zurckhaltung von Wissen und gegen Einschrnkungen, Wissen zu verbreiten, damit zu arbeiten und es zu verbessern, richten. Das Debian-Projekt ist aus diesen Projekten hervorgegangen und stellt sehr erfolgreich ein umfangreiches System freier Software zur Verfgung, das vom Surfbrett bis hin zur Server-Farm fr fast alle Computeranwendungen benutzt werden kann. Diese sogenannte Open-Source-Revolution ist zur Zeit auf dem Vormarsch und hat in manchen Bereichen kommerzielle Programme und Betriebssysteme bereits auf die Pltze verwiesen. Die Freiheit dieser Software ist einer der Grnde fr ihren unglaublichen Erfolg. Qualitt, Stabilitt und Vielfalt sind sicherlich nicht weniger bedeutend. Bei Debian GNU/Linux stehen Qualitt und Freiheit im Vordergrund. Es ist nicht das wirtschaftliche Interesse, sondern das Ziel, eine Software-Distribution zu schaffen, mit der dauerhaft optimal gearbeitet werden kann, das die Entwicklung trgt. Debian wird dort gemacht, wo Software gebraucht wird, nmlich von Anwendern, Administratoren und Entwicklern fr Anwender, Administratoren und Entwickler. Anfnger und Umsteiger hatten es jedoch nicht immer ganz leicht, den Einstieg in diese faszinierende Linux-Distribution zu nden, nicht zuletzt aufgrund des feh-

VI

lenden Anwenderhandbuchs. Dieser Umstand und meine Erfahrung als Administrator einer Reihe von Debian-basierten Computern gaben den Anlass, das vorliegende Buch zu schreiben. Gerade bei der Einfhrung neuer Benutzer in die Arbeit mit dem System habe ich ein Buch dieser Art vermisst. Leider lieen sich nicht alle der ursprnglich geplanten Themen integrieren, es wren sonst zwei Bcher geworden. Die Entstehung des Buches wre nicht ohne die einfhlsame Untersttzung durch meine Freunde, insbesondere durch Stefanie Sommer, mglich gewesen. Zu besonderem Dank bin ich auch Frau Prof. Dr. Canan Baar-Ero lu verpichtet. In ihrem s g Labor hatte ich die Mglichkeit und jede Freiheit, mich so intensiv mit Debian, GNU und Linux auseinanderzusetzen, dass ich es mir schlielich zugetraut habe, dieses Buch in Angriff zu nehmen. Gewinnbringend und uerst hilfreich waren auerdem die zahlreichen inhaltlichen und orthographischen Hinweise von Det und Britta Buchholz, Volkmar Delitzsch, Michael Henkel, Andreas Heuer, Thomas Krebs, Dirk Meissner, Michael Miener, Andreas Schuldei, Jochen Sommer, Eduard Tlle und Torsten Warnke. Fr die wertvolle Hilfe beim Abfassen des Manuskriptes mchte ich mich bei Michael Miener und Sabine Pfaff bedanken. Und schlielich hat das Buch den qualizierten und freundlichen Mitgliedern der deutschsprachigen Debian-Mailingliste sowie den Mitgliedern der Linux User Group Bremen sehr viel zu verdanken. Meine Bewunderung mchte ich auerdem der Free Software Foundation, den Entwicklern des Linux-Kerns und den Mitgliedern des Debian-Projekts aussprechen. Fr die zweite Auflage wurde der Text aktualisiert. Einige Krzungen waren unvermeidlich. Ferner wurde die Terminologie nach Mglichkeit vereinheitlicht. Dem ursprnglichen Autor, P ETER H. G ANTEN, war es leider aus beruflichen und familiren Grnden nicht mglich, das Buch weiter zu pegen. Diese Arbeit wurde von Dr.-Ing. Wulf Alex, Karlsruhe geleistet, der auf ber vierzig Jahre Erfahrung mit Computern zurckblickt und an mehreren Bchern mitgewirkt hat. Ich hoffe, dass Sie dieses Buch ntzlich nden. ber Hinweise auf Fehler, konstruktive Kritik, aber natrlich auch ber Lob wrde ich mich sehr freuen. Bitte senden Sie Ihre Zuschriften an folgende Email-Adresse: debian-buch@ganten.org.

Bremen, den 29. Februar 2004 Peter H. Ganten

Karlsruhe Wulf Alex

Inhalt

Einfhrung 1.1 ber dieses Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 berblick ber den Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Arbeiten mit diesem Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.3 Konventionen im Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 GNU, Linux und freie Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 GNU is Not UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2 Freie Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.3 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.4 Debian GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.5 Internetadressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Warum Debian GNU/Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 1 1 2 3 4 4 6 8 9 11 12

Teil I Installation 2 Planung der Installation 2.1 Einsatzzweck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Koexistenz mit anderen Betriebssystemen . . . . . . . . . . . . . . . . . . . . . . 2.3 Auswahl der Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Hinweise zu wichtigen Hardwarekomponenten . . . . . . . . . . . 2.4 Planung des Massenspeicherbedarfs . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Partitionierung von Festplatten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Partitionstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Auf welche Partitionen kann installiert werden? . . . . . . . . . . . 2.5.3 Die 1024-Zylinder-Grenze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Planung der Partitionierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Gre und Anzahl von Swapbereichen . . . . . . . . . . . . . . . . . . 2.6.2 Bootpartition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.3 Rootpartition (Installationspartition) . . . . . . . . . . . . . . . . . . . . 17 17 18 19 21 25 27 28 29 30 31 31 32 32

VIII

Inhalt

2.6.4 Weitere Partitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7 Wahl einer Bootmethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8 Wahl des Installationsmediums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Vorbereitung der Installation 3.1 Fr die Installation bentigte Informationen . . . . . . . . . . . . . . . . . . . . 3.1.1 Informationen zur Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Netzdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3 Installationsquellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Vorbereitung der Installationsmedien . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Auswahl der bentigten Disketten und Dateien . . . . . . . . . . . 3.2.2 Herstellen der Installationsdisketten . . . . . . . . . . . . . . . . . . . . . 3.2.3 Erzeugung von Bootdisketten fr andere Betriebssysteme . . 3.3 Partitionierung unter einem anderen Betriebssystem . . . . . . . . . . . . . . 3.3.1 Partitionsgren verndern mit Fips . . . . . . . . . . . . . . . . . . . . . 3.3.2 Manuelles Umpartitionieren unter anderen Betriebssystemen 3.3.3 Laufwerksbuchstaben unter DOS und MS-Windows . . . . . . . 3.3.4 Vergabe von Laufwerksbuchstaben unter MSWindows NT/2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.5 Zuordnung von Gertedateien unter Linux . . . . . . . . . . . . . . . 3.3.6 Ein komplexes Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 BIOS-Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Starten des BIOS-Setup-Programms . . . . . . . . . . . . . . . . . . . . 3.4.2 BIOS-Einstellungen fr Linux . . . . . . . . . . . . . . . . . . . . . . . . . Durchfhrung der Basisinstallation 4.1 Der erste Start von Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Start von der Diskette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 Start von CD/DVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3 Das Bootmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.4 Start des Installationssystems unter DOS . . . . . . . . . . . . . . . . 4.1.5 Start des Linuxkerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Durchfhrung des Basisinstallation mit dbootstrap . . . . . . . . . . . . . . . 4.2.1 Auswahl des Tastaturlayouts . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Partitionieren von Festplatten . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3 Das Partitionierungsprogramm cfdisk . . . . . . . . . . . . . . . . . . . 4.2.4 Festlegen der Auslagerungs-Partition (Swapbereich) . . . . . . . 4.2.5 Formatieren von Partitionen fr Debian GNU/Linux . . . . . . . 4.2.6 Einbinden (mounten) der Partitionen . . . . . . . . . . . . . . . . . . . . 4.2.7 Installation des Kerns und der Treibermodule . . . . . . . . . . . . . 4.2.8 Konguration der PCMCIA-Untersttzung . . . . . . . . . . . . . . . 4.2.9 Konguration der Treibermodule mit modconf . . . . . . . . . . . 4.2.10 Basiskonguration des Netzes . . . . . . . . . . . . . . . . . . . . . . . . .

33 34 36 37 37 37 40 41 42 42 46 47 48 49 54 58 59 59 60 61 61 62 65 65 65 66 66 67 68 68 71 72 72 77 78 79 82 85 87 93

Inhalt

IX

4.2.11 Installation des Basissystems . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.12 Auswahl der Zeitzone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.13 Wahl der zuknftigen Bootmethode . . . . . . . . . . . . . . . . . . . . . 4.2.14 Neustart des Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Konguration des Basissystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Konguration von Benutzerkonten und Passwrtern . . . . . . . 4.3.2 PC-Card-Untersttzung (PCMCIA) . . . . . . . . . . . . . . . . . . . . . 4.3.3 Konguration einer PPP-Verbindung . . . . . . . . . . . . . . . . . . . . 4.3.4 Auswahl von Paketquellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.5 Auswahl und Installation von Paketen . . . . . . . . . . . . . . . . . . . 4.4 Einige Probleme bei der Basisinstallation . . . . . . . . . . . . . . . . . . . . . .

95 97 98 100 102 102 103 104 104 105 105

Teil II Grundlagen 5 Einfhrung fr Linux/UNIX-Anfnger 5.1 Anmeldung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Die Eingabeaufforderung (Prompt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Eingabe von Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Fehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Abmelden und Herunterfahren des Systems . . . . . . . . . . . . . . . . . . . . . 5.5.1 Abmelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2 Herunterfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 Arbeiten mit Verzeichnissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.1 Anzeigen des Arbeitsverzeichnisses . . . . . . . . . . . . . . . . . . . . . 5.6.2 Erzeugen von Verzeichnissen . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.3 Parameter fr Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.4 Anzeigen von Verzeichnissen und Dateien . . . . . . . . . . . . . . . 5.6.5 Wechseln des Arbeitsverzeichnisses . . . . . . . . . . . . . . . . . . . . . 5.6.6 Lschen von Verzeichnissen . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.7 Pfade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.8 Abkrzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7 Arbeiten mit Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7.1 Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7.2 Kopieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7.3 Lschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7.4 Verschieben und Umbenennen . . . . . . . . . . . . . . . . . . . . . . . . . 5.8 Automatische Vervollstndigung von Kommandos . . . . . . . . . . . . . . . 5.9 Verarbeiten von Textdateien mit dem Editor vi . . . . . . . . . . . . . . . . . . 5.9.1 Navigation im Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9.2 Suchen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9.3 Einfgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9.4 Lschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 109 110 111 111 112 112 112 113 114 115 115 115 116 116 116 118 118 119 120 121 121 122 123 123 124 124 124

Inhalt

5.10

5.11

5.12

5.13

5.14 5.15

5.16 5.17

5.18

5.19

5.9.5 Verschieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9.6 Zurcknehmen von nderungen . . . . . . . . . . . . . . . . . . . . . . . . 5.9.7 Speichern und Verlassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9.8 ben mit dem vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Links (Verweise, Verknpfungen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10.1 Harte Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10.2 Weiche Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verndern von Systemdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.11.1 Das Kommando su . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.11.2 ndern der Datei /etc/motd . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dateiattribute und Zugriffsrechte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12.1 Benutzer (user) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12.2 Gruppen (group) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12.3 Andere (others) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12.4 Anzeigen von Dateiattributen . . . . . . . . . . . . . . . . . . . . . . . . . . ndern von Dateiattributen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.13.1 Verndern von Besitzer und Gruppe . . . . . . . . . . . . . . . . . . . . . 5.13.2 Verndern der Rechte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Versteckte Dateien (Dotles) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Metazeichen in Dateinamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.15.1 Zweck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.15.2 Quoten von Metazeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mehrfache Anmeldungen und virtuelle Konsolen . . . . . . . . . . . . . . . . Arbeit mit externen Datentrgern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.17.1 Gertebezeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.17.2 Einbinden von Datentrgern (Mounten) . . . . . . . . . . . . . . . . . . 5.17.3 Entfernen von Datentrgern aus dem Dateisystem . . . . . . . . . 5.17.4 Kopieren von Dateien auf einen externen Datentrger . . . . . . 5.17.5 Fehler beim Entfernen von Datentrgern . . . . . . . . . . . . . . . . . 5.17.6 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.17.7 Datentrger als gewhnlicher Benutzer einbinden . . . . . . . . . 5.17.8 Die Dateisystemtabelle /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . 5.17.9 Verwendung des Kommandos mount als Benutzer . . . . . . . . . Suchen nach Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.1 Suchen mit nd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.2 Einige Suchkriterien fr nd . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.3 Verknpfen von Suchkriterien . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.4 Verwendung von Metazeichen mit nd . . . . . . . . . . . . . . . . . . 5.18.5 Ausfhren von Kommandos mit den Suchergebnissen . . . . . 5.18.6 Schnelles Suchen mit locate . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.7 bungen mit nd und locate . . . . . . . . . . . . . . . . . . . . . . . . . . . Programme zum Betrachten von Text (Pager) . . . . . . . . . . . . . . . . . . . 5.19.1 Benutzung von more . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

125 125 125 126 126 127 128 128 129 129 130 130 130 130 131 132 132 133 134 135 135 137 137 138 139 139 141 142 142 142 143 143 145 146 146 147 148 148 148 149 150 150 151

Inhalt

XI

5.19.2 Benutzung von less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 5.19.3 Betrachten komprimierter Dateien mit zless . . . . . . . . . . . . . . 153 5.19.4 Anzeigen spezieller Daten mit lessle und lesspipe . . . . . . . . 154 6 Dokumentation und Hilfe 6.1 Hilfe-Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Das Manual-System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Die Abschnitte des Manualsystems . . . . . . . . . . . . . . . . . . . . . 6.2.2 Aufbau einer Manualseite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.3 Manualseiten in unterschiedlichen Sprachen . . . . . . . . . . . . . . 6.2.4 Drucken von Manualseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.5 Suchen in Manualseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.6 Weitere Programme zur Arbeit mit Manualseiten . . . . . . . . . . 6.3 Das GNU Info-System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Benutzung von info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.2 Drucken und Konvertieren von Info-Dokumentation . . . . . . . 6.3.3 Info und (X)Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.4 Info-Dokumentation in GNOME und KDE . . . . . . . . . . . . . . . 6.4 Zustzliche Dokumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.1 Paketspezische Dokumentationsverzeichnisse . . . . . . . . . . . 6.4.2 Anleitungen, Bcher und allgemeine Dokumentation . . . . . . 6.5 Integrierte Hilfesysteme (dhelp und dwww) . . . . . . . . . . . . . . . . . . . . . 6.6 Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.1 Wichtige Web-Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2 Netnews (Newsgroups) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.3 Mailing-Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.4 Suchmaschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.5 Wenn es nicht an Ihnen liegt: Die Fehlerdatenbank . . . . . . . . Installation von Software 7.1 bersicht ber das Paketverwaltungssystem . . . . . . . . . . . . . . . . . . . . 7.2 Konguration von Paketquellen mit apt-setup . . . . . . . . . . . . . . . . . . . 7.3 Aufgabenbezogene Paketauswahl: tasksel . . . . . . . . . . . . . . . . . . . . . . 7.4 Das interaktive Installationsprogramm: dselect . . . . . . . . . . . . . . . . . . 7.4.1 Aufruf und Benutzung von dselect . . . . . . . . . . . . . . . . . . . . . . 7.4.2 Bestimmen der Installationsmethode . . . . . . . . . . . . . . . . . . . . 7.4.3 Aktualisierung der Liste der verfgbaren Pakete . . . . . . . . . . 7.4.4 Auswahl der zu installierenden Pakete . . . . . . . . . . . . . . . . . . . 7.4.5 Installation der Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.6 Konguration unkongurierter Pakete . . . . . . . . . . . . . . . . . . . 7.4.7 Lschen von Paketen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.8 Weitere Hinweise zur Benutzung von dselect . . . . . . . . . . . . . 7.5 Paketkonguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 156 156 157 158 158 159 160 160 162 163 163 165 166 166 166 167 169 170 170 172 172 173 174 175 175 179 181 182 182 184 189 189 199 201 201 201 202

XII

Inhalt

7.5.1 7.5.2

Arbeiten mit debconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Aktualisierung von Kongurationsdateien . . . . . . . . . . . . . . . . 205

Teil III Konguration und Verwaltung 8 Mehr ber Pakete und Paketverwaltung 8.1 Eigenschaften und Beziehungen von Paketen . . . . . . . . . . . . . . . . . . . 8.1.1 Benennung von Paketen und Paketdateien . . . . . . . . . . . . . . . . 8.1.2 Inhalt von Paketen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.3 Abhngigkeiten und Konikte . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.4 Was passiert whrend der Installation eines Pakets? . . . . . . . . 8.1.5 Zustnde von Paketen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Aufbau und Layout der ofziellen Distribution . . . . . . . . . . . . . . . . . . 8.2.1 Stabile und unstabile Versionen . . . . . . . . . . . . . . . . . . . . . . . . 8.2.2 Anordnung der Pakete auf Servern und CD/DVDs . . . . . . . . . 8.3 Benutzung des Paketmanagers dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1 Allgemeines zur Benutzung von dpkg . . . . . . . . . . . . . . . . . . . 8.3.2 Installation und Aktualisierung von Paketen . . . . . . . . . . . . . . 8.3.3 Deinstallieren (Entfernen) von Paketen . . . . . . . . . . . . . . . . . . 8.3.4 Informationen ber Pakete und Dateien . . . . . . . . . . . . . . . . . . 8.3.5 Arbeiten mit Paketdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.6 Anzeigen und Verndern der Datenbank verfgbarer Pakete . 8.3.7 Arbeiten mit der Paketauswahl . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.8 ndern von Voreinstellungen (force und refuse) . . . . . . . . . . . 8.3.9 Weitere Aktionen und Optionen . . . . . . . . . . . . . . . . . . . . . . . . 8.4 Advanced Package Tool (APT) Intelligenz fr dpkg . . . . . . . . . . . . 8.4.1 Konguration von APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.2 Arbeiten mit apt-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.3 Wichtige Optionen des Programms apt-get . . . . . . . . . . . . . . . 8.4.4 Arbeiten mit APTs Informationen apt-cache . . . . . . . . . . . . 8.5 Alternative Programme zur Paketverwaltung . . . . . . . . . . . . . . . . . . . . 8.5.1 Paketmanagement unter X11 mit gnome-apt . . . . . . . . . . . . . . 8.5.2 Interaktive Paketauswahl an der Konsole . . . . . . . . . . . . . . . . . 8.6 Werkzeuge zur Anpassung des Systems . . . . . . . . . . . . . . . . . . . . . . . . 8.6.1 Arbeiten mit Alternativen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6.2 Verwenden eigener Dateien mit dpkg-divert . . . . . . . . . . . . . . 8.6.3 Erstellen eigener Paketindices mit dpkg-scanpackages . . . . . 8.6.4 Erstellen angepasster Pakete mit dpkg-repack . . . . . . . . . . . . . 8.6.5 berschreiben von Abhngigkeiten mit equivs . . . . . . . . . . . . 211 211 211 211 212 214 215 216 217 218 222 223 223 227 228 230 231 232 234 236 237 237 242 255 255 256 257 263 267 267 269 270 271 272

Inhalt

XIII

Konguration wichtiger Systemkomponenten 9.1 Konguration der Maus (gpm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Einrichten von Druckern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.2 Auswahl und Installation der Software . . . . . . . . . . . . . . . . . . 9.2.3 Konguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.4 Fehlerbehebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.5 Hinweise zur Arbeit mit Druckern . . . . . . . . . . . . . . . . . . . . . . 9.2.6 Weiterfhrende Information zur Druckerverwaltung . . . . . . . 9.3 Cron: Regelmiges Ausfhren von Programmen . . . . . . . . . . . . . . . . 9.3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.2 Konguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.3 Gewhnliche Benutzer und cron . . . . . . . . . . . . . . . . . . . . . . . . 9.3.4 Cron und das Ausschalten von Rechnern (anacron) . . . . . . . . 9.3.5 Der at-Dmon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4 Das X Window System (X11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.2 Konguration von X11 mit anXious . . . . . . . . . . . . . . . . . . . . . 9.4.3 Welche Pakete werden bentigt? . . . . . . . . . . . . . . . . . . . . . . . 9.4.4 Installation der Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.5 Identizieren der Grakkarte mit SuperProbe . . . . . . . . . . . . 9.4.6 Konguration des X-Servers mit XF86Setup . . . . . . . . . . . . . . 9.4.7 Testen der Konguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.8 Probleme beim Start von XFree86 . . . . . . . . . . . . . . . . . . . . . . 9.4.9 Konguration von X11 mit xf86cong . . . . . . . . . . . . . . . . . . . 9.4.10 Aufbau der Datei /etc/X11/XF86Cong . . . . . . . . . . . . . . . . . . 9.4.11 Weitere Mglichkeiten zur Anpassung . . . . . . . . . . . . . . . . . . 9.4.12 Arbeiten mit X11: Besonderheiten . . . . . . . . . . . . . . . . . . . . . . 9.4.13 Window-Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.14 Display-Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.15 Weitere Informationen zu X11 . . . . . . . . . . . . . . . . . . . . . . . . . 9.5 Arbeitsplatzumgebungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.1 K Desktop Environment (KDE) . . . . . . . . . . . . . . . . . . . . . . . . 9.5.2 GNU Network Object Model Environment (GNOME) . . . . .

275 275 278 278 280 282 286 287 290 291 291 292 294 294 295 295 295 298 299 302 303 304 310 311 313 318 321 323 327 331 334 334 335 337 341 341 341 342 343 344 344 351

10 Starten von Linux Bootloader und Bootmanager 10.1 Der Bootprozess eines PCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.1 BIOS, MBR und Bootsektor . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.2 Situationen nach der Basisinstallation . . . . . . . . . . . . . . . . . . . 10.2 Bootverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1 Verwendung von Bootdisketten . . . . . . . . . . . . . . . . . . . . . . . . 10.2.2 Starten von Linux unter DOS mit Loadlin . . . . . . . . . . . . . . . . 10.2.3 Verwendung von Bootmanagern . . . . . . . . . . . . . . . . . . . . . . . .

XIV

Inhalt

10.3 LILO Der LInux LOader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.2 Auswahl eines Installationsortes fr LILO . . . . . . . . . . . . . . . 10.3.3 LILOs Bestandteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.4 Basiseinrichtung von LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.5 Installation von LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.6 Benutzung von LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.7 Erstellen eines Bootmens mit LILO . . . . . . . . . . . . . . . . . . . . 10.3.8 Referenz zu LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.9 Probleme und besondere Kongurationen . . . . . . . . . . . . . . . . 10.4 Alternative Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Anpassung und Erstellung des Betriebssystemkerns 11.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.1 Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.2 Erstellung angepasster Kerne . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.3 Was spricht fr einen angepassten Kern? . . . . . . . . . . . . . . . . . 11.1.4 Stabile Kerne und Entwicklerkerne (Kernversionen) . . . . . . . 11.1.5 Auswahl eines Kerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Installation der Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.1 Festplattenplatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.2 Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.3 Konguration des Pakets kernel-package . . . . . . . . . . . . . . . . 11.2.4 Installation und Entpacken des Quellcodes . . . . . . . . . . . . . . . 11.2.5 Das Verzeichnis /usr/src/linux . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Konguration des Kerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.1 Methoden der Konguration . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.2 Aktualisieren der Konguration . . . . . . . . . . . . . . . . . . . . . . . . 11.3.3 Manuelles Sichern und Anpassen der Konguration . . . . . . . 11.3.4 Kernbestandteil oder Modul? . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.5 Erstellen der Konguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4 bersetzen des Kerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.1 Revisionsnummern fr Kernpakete . . . . . . . . . . . . . . . . . . . . . 11.4.2 Weitere Verwendungen fr make-kpkg . . . . . . . . . . . . . . . . . . . 11.4.3 bersetzen der Kernquellen ohne make-kpkg . . . . . . . . . . . . . 11.5 Installation eines neuen Kerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5.1 Vorbereitung der Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5.2 Durchfhrung der Installation . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6 Starten des neuen Kerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.1 Laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.2 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.7 Aktualisieren des Kerns mit Patchdateien . . . . . . . . . . . . . . . . . . . . . . .

351 351 352 353 354 359 359 360 362 367 372 373 373 374 375 375 376 377 377 377 377 378 379 380 380 380 384 384 385 385 411 412 413 413 414 414 415 416 416 417 418

Inhalt

XV

12 Konguration von Kern und Modulen 12.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Der Bootprompt bergabe von Parametern an den Kern . . . . . . . . . 12.2.1 Syntaktischer Aufbau von Kernparametern . . . . . . . . . . . . . . . 12.2.2 Kernparameter und LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.3 Kernparameter und Loadlin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.4 Kernparameter und Syslinux . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.5 Kernparameter mit rdev setzen . . . . . . . . . . . . . . . . . . . . . . . . . 12.3 Verarbeitung von Parametern durch den Kern . . . . . . . . . . . . . . . . . . . 12.4 Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4.1 Manuelles Laden und Entfernen . . . . . . . . . . . . . . . . . . . . . . . . 12.4.2 Automatisches Laden und Entfernen . . . . . . . . . . . . . . . . . . . . 12.5 Allgemeine Kernparameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6 Parameter fr Treiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.1 (E)IDE-Festplatten und -CDs . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.2 Diskettenlaufwerke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.3 SCSI-Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.4 Ethernet-Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.5 Muse und Rollkugeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.6 Parallele Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.7 ltere (proprietre) CD-Laufwerke . . . . . . . . . . . . . . . . . . . . . 12.6.8 Soundkarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.7 Konguration von ISA-PNP-Karten . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.7.1 Erzeugen einer Kongurationsdatei fr isapnp . . . . . . . . . . . . 12.7.2 Aufbau der Kongurationsdatei fr isapnp . . . . . . . . . . . . . . . 12.7.3 Testen der Konguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.7.4 Weiterfhrende Informationen . . . . . . . . . . . . . . . . . . . . . . . . . 13 Der Startvorgang von Debian GNU/Linux 13.1 Runlevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2 Die Datei /etc/inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.1 Festlegen des Standardrunlevels . . . . . . . . . . . . . . . . . . . . . . . . 13.2.2 Systeminitialisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.3 Dauerhaft auszufhrende Programme (respawn) . . . . . . . . . . 13.2.4 Aktionen beim Wechsel des Runlevel . . . . . . . . . . . . . . . . . . . 13.2.5 Single-User-Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3 Benutzung von init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3.1 Wechsel des Runlevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3.2 Erneutes Einlesen der Konguration . . . . . . . . . . . . . . . . . . . . 13.3.3 Ersetzen des Programms init . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3.4 Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.4 Start- und Stopskripte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.4.1 Startskripte fr den Systemstart . . . . . . . . . . . . . . . . . . . . . . . .

421 421 422 422 423 424 425 425 425 426 426 428 431 433 433 436 436 441 442 442 443 443 444 445 446 447 448 449 449 450 451 451 451 452 452 453 453 454 454 454 455 455

XVI

Inhalt

13.4.2 Start- und Stopskripte fr einzelne Runlevel . . . . . . . . . . . . . . 13.4.3 Manuelles Verwenden von Startskripten . . . . . . . . . . . . . . . . . 13.5 Verwalten der Runlevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.5.1 Einrichten von Start-Stop-Links . . . . . . . . . . . . . . . . . . . . . . . . 13.5.2 Einrichten von Start-Stop-Skripten . . . . . . . . . . . . . . . . . . . . . . 14 Verzeichnisstruktur und Dateisysteme 14.1 Der File Hierarchy Standard (FHS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2 Namen und Aufgaben der wichtigsten Verzeichnisse . . . . . . . . . . . . . 14.3 Verwaltung des Dateisystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.1 Anzeigen eingebundener Partitionen . . . . . . . . . . . . . . . . . . . . 14.3.2 Anzeigen des Speicherplatzes . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.3 Einbinden und Entfernen von Datentrgern (Mounten) . . . . . 14.3.4 Prfen und Reparieren von Partitionen und Datentrgern . . . 14.3.5 Formatieren von Datentrgern . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.6 Verlegen von Teilen der Verzeichnisstruktur auf andere Partitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.7 Verwaltung von Auslagerungsspeicher (Swap) . . . . . . . . . . . . 14.3.8 Der Automounter im Kern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.9 Zeitstempel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Benutzer und Gruppen 15.1 Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2 Die Dateien /etc/passwd und /etc/group . . . . . . . . . . . . . . . . . . . . . . . . 15.3 Schattenpasswrter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4 Vordenierte Benutzerkonten und Gruppen . . . . . . . . . . . . . . . . . . . . . 15.5 Arbeiten mit Benutzer- und Gruppenkonten . . . . . . . . . . . . . . . . . . . . . 15.5.1 Verwaltung von Benutzern und Gruppen . . . . . . . . . . . . . . . . . 15.5.2 Gemeinsames Zugreifen auf Dateien und Verzeichnisse . . . . 15.5.3 Benutzern Verwalteraufgaben bertragen . . . . . . . . . . . . . . . . 15.6 Diskquotas Begrenzung von Speicherplatz . . . . . . . . . . . . . . . . . . . . 15.6.1 Einrichtung des Quotasystems . . . . . . . . . . . . . . . . . . . . . . . . . 15.6.2 Anzeigen und Auswerten von Begrenzungen . . . . . . . . . . . . .

456 458 458 458 459 461 462 462 468 468 469 470 473 475 475 480 481 485 487 487 488 489 490 491 492 493 494 498 500 502

Teil IV Anwendung 16 Der Kommandointerpreter Bash 16.1 Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.1.1 Ein Beispiel am Anfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.1.2 Aufrufen und Beenden der Bash . . . . . . . . . . . . . . . . . . . . . . . . 16.1.3 Interaktive versus nicht-interaktive Shell . . . . . . . . . . . . . . . . . 16.1.4 Konguration und Startdateien . . . . . . . . . . . . . . . . . . . . . . . . . 16.1.5 Die Dateien .inputrc und /etc/inputrc . . . . . . . . . . . . . . . . . . . . 505 505 506 508 509 509 509

Inhalt

XVII

16.2

16.3

16.4

16.5

16.6

16.7

16.8

16.9

16.1.6 Die Startdateien /etc/prole, ~/.bash_ prole und ~/.bashrc . 16.1.7 Die Datei /etc/prole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.1.8 Die Datei ~/.bash_ prole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.1.9 Die Datei ~/.bashrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.2.1 Externe und interne Kommandos . . . . . . . . . . . . . . . . . . . . . . . 16.2.2 Benutzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ein- und Ausgabeumleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.3.1 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.3.2 Standardein- und -ausgabe, Standardfehlerausgabe . . . . . . . . 16.3.3 Umleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.3.4 Kommandoverkettung (Pipe) . . . . . . . . . . . . . . . . . . . . . . . . . . Auftragsverwaltung (Jobverwaltung) und Prozessverwaltung . . . . . . 16.4.1 Der &-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.4.2 Umschalten zwischen Prozessen . . . . . . . . . . . . . . . . . . . . . . . . 16.4.3 Beenden von Prozessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aneinanderreihung von Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . 16.5.1 Der Operator ; (Semikolon) . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.5.2 Bedingte Ausfhrung mit den Operatoren && und . . . . . . . 16.5.3 Gruppierung von Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.6.1 Shell-Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.6.2 Eingebaute Shell-Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.6.3 Konguration des Prompts ber die Variable PS1 . . . . . . . . . 16.6.4 Umgebungsvariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution (Ersetzung) und Expansion (Erweiterung) . . . . . . . . . . . 16.7.1 Dateinamenerweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.7.2 Interpretation von Sonderzeichen unterdrcken . . . . . . . . . . . 16.7.3 Kommandosubstitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.7.4 Arithmetische Berechnungen . . . . . . . . . . . . . . . . . . . . . . . . . . 16.7.5 Feldvariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.7.6 Klammererweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.7.7 Bedingte Variablenexpansion . . . . . . . . . . . . . . . . . . . . . . . . . . Automatisierung von Vorgngen mit der Bash . . . . . . . . . . . . . . . . . . . 16.8.1 Allgemeine Bemerkungen zur Skripterstellung . . . . . . . . . . . 16.8.2 Die Parametervariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.8.3 Ablaufsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.8.4 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.8.5 Beispiel: Ein System-V-Startskript . . . . . . . . . . . . . . . . . . . . . . bersicht eingebauter Bash-Kommandos . . . . . . . . . . . . . . . . . . . . . . .

515 515 516 516 517 517 518 520 520 521 521 524 525 526 527 528 530 530 530 531 532 533 534 538 540 543 544 545 546 547 548 549 550 551 552 552 553 566 567 571

XVIII

Inhalt

17 Debian GNU/Linux im Netz 17.1 Einleitung und Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.1.1 Interfaces und Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.1.2 Netze und Subnetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.1.3 Wireless Local Area Network (WLAN) . . . . . . . . . . . . . . . . . . 17.1.4 Namensauflsung und DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.1.5 Ports und Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.1.6 Viren (Malware) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2 Basiskonguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2.1 Konguration der Namensauflsung . . . . . . . . . . . . . . . . . . . . 17.2.2 Automatische Netzkonguration whrend des Systemstarts . 17.3 Einwahl ber Internet Service Provider . . . . . . . . . . . . . . . . . . . . . . . . 17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem . . 17.4.1 Konguration der seriellen Schnittstelle . . . . . . . . . . . . . . . . . 17.4.2 PPP-Konguration mit pppcong . . . . . . . . . . . . . . . . . . . . . . . 17.4.3 Testen und Benutzen von PPP-Verbindungen . . . . . . . . . . . . . 17.4.4 Hintergrundinformationen und Fehlersuche . . . . . . . . . . . . . . 17.4.5 Weiterfhrende Informationen . . . . . . . . . . . . . . . . . . . . . . . . . 17.4.6 Alternative Kongurationsprogramme . . . . . . . . . . . . . . . . . . . 17.4.7 PPP over Ethernet (ADSL, T-DSL, T-ISDN-DSL) . . . . . . . . . 17.4.8 ADSL (T-DSL) mit eigenem Router . . . . . . . . . . . . . . . . . . . . 17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen . . . . 17.5.1 Konguration der Treiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.5.2 Basiskonguration einer ISDN-Einwahlverbindung . . . . . . . 17.5.3 Starten und Testen der Verbindung . . . . . . . . . . . . . . . . . . . . . . 17.5.4 Mehr ber ISDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.5.5 Weiterfhrende Informationen . . . . . . . . . . . . . . . . . . . . . . . . . 17.6 Klientprogramme fr Internet-Dienste . . . . . . . . . . . . . . . . . . . . . . . . . 17.6.1 Webbrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.6.2 Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.6.3 Netnews (Usenet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.6.4 Fernbenutzung von Rechnern (Telnet und Secure Shell) . . . . 17.6.5 File Transfer Protokoll (FTP) . . . . . . . . . . . . . . . . . . . . . . . . . . 17.7 Konguration von Netzdiensten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.7.1 Der Internet-Dmon inetd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.7.2 Zugangskontrolle mit tcpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.7.3 Vereinfachter Zugriff mit den r-Kommandos . . . . . . . . . . . . . 17.7.4 FTP- und Telnet-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.7.5 Einrichtung des Mail-Transport-Agents exim . . . . . . . . . . . . . 17.7.6 Abholen von Mail mit fetchmail . . . . . . . . . . . . . . . . . . . . . . . . 17.7.7 Network File System (NFS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.7.8 Network Information Service (NIS) . . . . . . . . . . . . . . . . . . . . . 17.7.9 Drucken im Netz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

593 593 593 595 598 599 601 602 604 609 611 615 617 617 618 623 626 628 632 634 635 637 638 641 644 646 652 652 652 656 660 665 667 670 670 672 675 677 680 690 695 700 706

Inhalt

XIX

17.8 Ausgewhlte weitere Netzdienste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.8.1 Einrichtung des Web-Servers apache . . . . . . . . . . . . . . . . . . . . 17.8.2 SAMBA Netzdienste fr MS-Windows und IBM-OS/2 . . . 17.8.3 Netatalk Netzdienste fr pfel . . . . . . . . . . . . . . . . . . . . . . . 17.8.4 Die Zeit im Netz (ntp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.8.5 Network Address Translation (IP-Masquerading) . . . . . . . . . 18 Hinweise zu Anwendungen und Paketen 18.1 Editoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2 Text- und Tabellenverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A 18.2.1 TEX und LTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2.2 Freie Ofce-Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2.3 Kommerzielle Ofce-Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3 Integration von Anwendungen fr DOS und MS-Windows . . . . . . . . 18.4 Weitere Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.4.1 Brennen von CDs und DVDs . . . . . . . . . . . . . . . . . . . . . . . . . . 18.4.2 Grakbearbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.4.3 Faxversand und -empfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.4.4 Sound- und Videoplayer, MP3 . . . . . . . . . . . . . . . . . . . . . . . . . 18.4.5 Spiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Kommandobersicht 19.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.1.1 Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.1.2 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.2 Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teil V Anhang 20 Regulre Ausdrcke 21 Wichtige Gertedateien 22 Debian-Gesellschaftsvertrag 23 GNU General Public License Index

709 709 720 739 742 745 753 753 754 754 757 759 760 761 761 762 763 763 764 765 765 765 766 766

895 899 901 905 915

Abbildungen

2.1

Aufteilung einer Festplatte in primre, erweiterte und logische Partitionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Das DOS-Programm fdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29 55

3.1 4.1 4.2 4.3 4.4 4.5 4.6 4.7 5.1 6.1 6.2 6.3 6.4 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8

Begrungsbildschirm des Installationssystems . . . . . . . . . . . . . . . . . . 69 Das Hauptmen des Installationsprogramms dbootstrap . . . . . . . . . . . 70 Auswahl des Tastaturlayouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Hauptmen des Partitionierungsprogramms cfdisk. . . . . . . . . . . . . . . . . 73 Hauptmen des Programms modconf . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Automatische Netzkonguration ber DHCP oder BOOTP. . . . . . . . . 94 Konguration von MD5-Passwrtern . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Bedeutung der Ausgabefelder des Kommandos ls -l. . . . . . . . . . . . . . . 132 Manualbrowser fr X11: xman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anzeigen von Manualseiten im GNOME-Hilfeprogramm gnome-help-browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anzeigen von Info-Dokumentation im PostScript-Format mit gv. . . . . Startseite des integrierten Hilfesystems dhelp. . . . . . . . . . . . . . . . . . . . . Das Paketverwaltungssystem unter Debian. Erluterung im Text. . . . . Konguration von Paketquellen mit apt-setup . . . . . . . . . . . . . . . . . . . . Hauptmen des Programms tasksel zur Auswahl von aufgabenbezogenen Task-Paketen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hauptmen von dselect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dselect: Liste der Installationsmethoden . . . . . . . . . . . . . . . . . . . . . . . . . dselect: Auswahl der Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dselect: Lsen von Konikten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kongurationsmen des Programms debconf . . . . . . . . . . . . . . . . . . . . 161 162 165 171 178 179 182 183 184 190 196 204

XXII

Abbildungen

8.1 8.2 8.3 8.4 8.5 9.1 9.2 9.3 9.4 9.5

Layout des Debian-Archivs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . gnome-apt Paket Management unter X11 . . . . . . . . . . . . . . . . . . . . . . Herunterladen von Paketen mit gnome-apt . . . . . . . . . . . . . . . . . . . . . . . Paketinstallation und -Konguration mit gnome-apt. . . . . . . . . . . . . . . Ansicht von Paketinformationen mit aptitude. . . . . . . . . . . . . . . . . . . . . Hauptmen des Programms apsltercong. . . . . . . . . . . . . . . . . . . . . . . Einrichtung von X11 mit anXious . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hauptbildschirm von XF86Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Arbeitsplatzumgebung KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Arbeitsplatzumgebung GNOME mit dem Window-Manager Enlightenment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

219 257 261 262 264 284 299 305 336 339

11.1 Kernkonguration unter X11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 11.2 Kernkonguration mit make menucong . . . . . . . . . . . . . . . . . . . . . . . . 382 16.1 Schematische Darstellung des Skriptablaufs bei Verwendung des if -Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 17.1 Netz mit zwei Subnetzen und Zugang zu einem Internet Service Provider (ISP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2 Hauptmen des Programms pppcong . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3 ndern von Verbindungseinstellungen mit pppcong . . . . . . . . . . . . . . 17.4 Konguration von PPP-Verbindungen mit gnome-ppp. . . . . . . . . . . . . 17.5 Ein- und Ausschalten von Verbindungen mit gpppon. . . . . . . . . . . . . . 17.6 Konguration des Web-Browsers Netscape. . . . . . . . . . . . . . . . . . . . . . 17.7 GNOMEs Email Klient-Programm Balsa. . . . . . . . . . . . . . . . . . . . . . . . 17.8 Hauptfenster von gftp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.9 Konguration des Email-Programms balsa zur Verwendung des lokalen Mailspools fr eingehende Mail und des lokalen SMTP-Servers fr ausgehende Mail. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.10Konguration von fetchmail mit fetchmailconf im Expertenmodus. . . 17.11Startseite nach der Installation des Web-Servers apache. . . . . . . . . . . . 17.12Konguration von SAMBA mit swat. . . . . . . . . . . . . . . . . . . . . . . . . . . .

596 618 624 633 634 654 659 669

685 691 711 737

A 18.1 Beispieldokument zur Textverarbeitung mit LTEX. . . . . . . . . . . . . . . . . 755 18.2 Textprogramm abiword. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758 18.3 Tabellenkalkulation mit gnumeric. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759

Tabellen

2.1 3.1

Speicherbedarf fr ausgesuchte Systemkomponenten . . . . . . . . . . . . . . Beispiel fr die Reprsentation von Partitionen durch Gertedateien und durch Laufwerksbuchstaben unter verschiedenen Betriebssystemen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

60

7.1 8.1 8.2 9.1 9.2

Wichtige dselect-Tastenkommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Verhaltensweisen von dpkg, die sich mit force einschalten und mit refuse abschalten lassen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Wichtige aptitude-Tastaturkommandos . . . . . . . . . . . . . . . . . . . . . . . . . 266 Typische Gertedateien fr Mausanschlsse. . . . . . . . . . . . . . . . . . . . . . 276 Bezeichnungen von Mausprotokollen fr gpm und XFree86. . . . . . . . 276

16.1 Wichtige Tastaturkommandos fr die bash und readline. Die Kommandos entsprechen der Benutzung des Editors Emacs. . . . . . . . 511 17.1 ISDN-Karten mit Untersttzung durch den hisax-Treiber . . . . . . . . . . 639 21.1 Wichtige Gertedateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899

1 Einfhrung

1.1 ber dieses Buch


Dieses Buch dient als Grundlage fr die Arbeit mit Debian GNU/Linux auf PCs, also auf Intel-80386-kompatiblen Computern, und zwar sowohl aus der Sicht des Anwenders als auch aus der des Systemverwalters. Es richtet sich an Leser, die von einem anderen Betriebssystem oder einer anderen Linux-Distribution zu Debian GNU/Linux wechseln oder von Grund auf in das System eingefhrt werden wollen. Erfahrenen Linux/UNIX-Anwendern soll es zum Nachschlagen dienen. Der Leser wird in die Lage versetzt, selbststndig mit dem System zu arbeiten, es zu pegen und an unterschiedliche Bedrfnisse anzupassen. 1.1.1 berblick ber den Inhalt Das Buch fhrt zunchst in die Grundlagen und Ideen freier Software ein, um dann die Planung von Debian-basierten Systemen sowie die Vorbereitung der Installation zu erlutern. Es wird gezeigt, wie Festplatten einzurichten sind, damit Debian und andere Betriebssysteme wie Microsoft Windows zusammen auf dem Rechner existieren knnen. Es folgt die Beschreibung der Basisinstallation des Systems von einer CD, ber ein lokales Netz oder aus dem Internet. Die beiden Kapitel des zweiten Teils fhren in die Grundlagen der Arbeit mit dem System ein. Dazu gehren die Benutzung der Kommandozeile, die Arbeit mit Dateien und Verzeichnissen sowie der Umgang mit Datentrgern. Ein weiterer Schwerpunkt ist die Benutzung der Hilfe- und Informationssysteme sowie die Beschaffung von Dokumentation aus dem Internet. Der umfangreichste Teil des Buches befasst sich mit der Einrichtung und Verwaltung des Systems. Dabei werden ausfhrlich die Grundlagen und die Benutzung der Paketverwaltung von Debian behandelt. Alsdann werden die Programme und Werkzeuge zur Installation und Deinstallation von Software sowie zur Anpassung des Systems an eigene Bedrfnisse vorgestellt und deren Benutzung erlutert. Bei der Installation einiger Pakete ist es notwendig, Angaben zur Konguration der Software

1 Einfhrung

zu machen. Dies wird fr wichtige Programme beschrieben. Insbesondere wird die Installation und Konguration von Druckern sowie des X Window Systems (X11) erlutert. Das X Window System stellt die Grundlage fr grasche Benutzeroberchen dar, auf deren Installation ebenfalls eingegangen wird. Wichtige Aufgaben bei der Anpassung des Systems sind die Konguration des Bootvorgangs, die Erstellung eines eigenen, angepassten Betriebssystemkerns sowie die Konguration von Gertetreibern und anderen Teilen des Betriebssystemkerns. Daran schliet sich die Erluterung des Startvorgangs, des Verzeichnissystems sowie der Benutzerverwaltung an. Im Anwendungsteil werden die Mglichkeiten des Kommandozeileninterpreters Bash bis hin zur Automatisierung von Vorgngen (Skriptprogrammierung) mit diesem Programm erlutert. Es folgt eine Einfhrung in die Konguration und Arbeit mit IP-basierten Netzen (Intranets, Internet) unter Debian GNU/Linux. Hier wird auch beschrieben, wie Einwahlverbindungen zu Internetprovidern ber ein Modem oder per ISDN oder ADSL-Verbindungen eingerichtet werden. Der Teil umfasst weiter eine Einfhrung in die Installation und Benutzung wichtiger Klientprogramme fr das Internet (Email, Netnews, Web). Danach wird erlutert, wie Server-Dienste mit Debian GNU/Linux aufgesetzt werden. Sie nden Informationen ber die Einrichtung von Datei- und Druckservern fr Linux/UNIX-, MS-Windows- und MacintoshRechner sowie ber den Aufbau eines einfachen Web-Servers. Am Ende des Netzabschnittes wird beschrieben, wie ein Debian-Rechner mit Hilfe der Network Address Translation (NAT) so eingerichtet wird, dass er fr ein kleines Netz als InternetEinwahlserver dient. Es folgt ein berblick ber Programme und Pakete fr unterschiedliche Anwendungszwecke mit Schwerpunkt Bro. Den Abschluss bildet eine Kommandoreferenz, in der wichtige Kommandos zusammen mit praktischen Beispielen aufgefhrt sind. 1.1.2 Arbeiten mit diesem Buch Zur Arbeit mit diesem Buch bentigen Sie einen PC und Debian GNU/Linux, wenigstens Version 3.0. Diese Version ist unter dem Codenamen woody bekannt und in der Power-Pack-Version des Buches enthalten. Die meisten Informationen gelten auch fr frhere Versionen von Debian GNU/Linux und fr andere Rechnerarchitekturen; sie beziehen sich jedoch auf diese Version und wurden damit getestet. Bitte haben Sie Verstndnis dafr, dass Einzelheiten sich laufend ndern und deswegen manchmal nicht mit den hier gegebenen Informationen bereinstimmen. Hilfreich aber nicht notwendig fr die Arbeit mit Debian GNU/Linux sind eine Verbindung zum Internet und elementare Englischkenntnisse (Lesen). Groe Teile der Online-Hilfe, der Ausgaben von Programmen und anderer Texte wurden zwar in die deutsche Sprache bersetzt, trotzdem muss man sagen, dass die englischen Originaltexte in vielen Fllen vollstndiger und aktueller als die deutschen bersetzungen sind. Aus diesem Grund wird an einigen Stellen des Buches absichtlich auf die englischen Originale bestimmter Dokumentationen verwiesen. Ein Internetzugang ist bei der Suche und Beschaffung von zustzlicher Dokumentation ntzlich, auerdem um mit anderen Debian-Benutzern zu kommunizieren

1.1 ber dieses Buch

und um aktuelle oder zustzliche Software zu beschaffen und zu installieren, die auf den CD/DVDs nicht enthalten ist. Das Lernen besteht aus zwei Schritten: Zuerst muss man die Begriffe oder Konzepte verstehen (Benutzer, Datei, Verzeichnis, Editor, Tabelle, Internet, Email, WLAN . . . ). Dabei kommt es nicht auf Einzelheiten an. Dieses Wissen ist auf Dauer angelegt. Zum Arbeiten bentigt man die Kenntnis vieler Einzelheiten. Da man sich diese aber kaum merken kann, muss man wissen, wo man sie nachschlgt. Derartige Kenntnisse knnen mit der nchsten Version eines Programmes berholt sein. 1.1.3 Konventionen im Buch Tasten Wann immer eine bestimmte Taste zu drcken ist, ist ihre Bezeichnung in kleinen Grobuchstaben (Small Caps) wiedergegeben. Falls in einer bestimmten Situation die Taste A zu drcken ist, nden Sie an der Stelle das Zeichen A. Sollte der Grobuchstabe A gemeint sein, werden Sie angewiesen, die Tasten S HIFT- A gleichzeitig zu bettigen. Shift steht dabei fr die Umschalttaste. Eingabeaufforderung (Prompt) Eine Reihe von Operationen auf einem Linux/UNIX-System darf nur vom Systemverwalter und nicht von gewhnlichen Benutzern ausgefhrt werden. Damit nicht jedesmal erneut darauf hingewiesen werden muss, ob fr eine bestimmte Aktion die Rechte des Systemverwalters (Superuser, root; auf anderen Systemen Administrator, Supervisor) bentigt werden, wird hier folgende Konvention benutzt: Wenn ein Kommando von einem gewhnlichen Benutzer einzugeben ist, wird das Kommando so dargestellt: joe@debian:~$ ls Die Zeichenkette joe@debian:~$ wird von der Shell (Ihrem Gesprchspartner im Rechner) erzeugt; sie wird Eingabeaufforderung oder Prompt genannt. Dabei steht fr joe Ihr Benutzername und fr debian der Name Ihres Rechners. Falls das betreffende Kommando nur vom Verwalter benutzt werden darf, nden Sie folgende Schreibweise: debian:~# ls Unter Umstnden ist es bei der Eingabe eines Kommandos erforderlich, dass Sie sich in einem bestimmten Verzeichnis benden. In solchen Fllen werden Kommandos so dargestellt: debian:/etc# ls

1 Einfhrung

Dieses Beispiel bedeutet, dass das Kommando ls vom Verwalter im Verzeichnis /etc eingegeben werden soll. Einige Kommandos sind so lang, dass sie nicht in eine Textzeile des Buches passen. Diese Kommandos werden deswegen umgebrochen. Wenn Sie solche Kommandos aufrufen, sind die entsprechenden Zeilen in einer durchgehenden Zeile einzugeben. Tasteneingaben werden zwischengespeichert (gepuffert). Erst nach Bettigen der Taste E INGABE werden sie vom Rechner verarbeitet. Programme lassen sich aber auch so schreiben, dass sie nach Eingabe genau eines Zeichens ohne E INGABE sofort reagieren; das kommt vor. In graschen Benutzeroberchen (Fenstern und dergleichen) ist eine mit den Pfeiltasten oder sonstwie getroffene Auswahl mit der Taste E INGABE zu besttigen. Auf diese Notwendigkeit weisen wir fortan nicht mehr stndig hin. Syntaxerluterungen An vielen Stellen in diesem Buch wird in einheitlicher Form angegeben, wie ein Kommando (Befehl) oder ein Programm zu verwenden ist. Solche Erluterungen folgen dem Schema: Kommando [Optionen] Datei | Verzeichnis Kommando ist dabei der Name des Programms, die Zeichenfolge, die einzugegeben ist, um das Programm aufzurufen. In eckigen Klammern angegebene Ausdrcke (wie hier Optionen) sind optional. Sie sind nicht zwingend notwendig, um das Programm sinnvoll benutzen zu knnen, sondern verndern das Verhalten des Programms. Ausdrcke, die durch einen Lngsstrich voneinander getrennt sind (wie hier Datei und Verzeichnis) sind alternativ (entweder - oder) zu benutzen. In dem Beispiel heit das, dass dem Kommando Kommando der Namen einer Datei oder eines Verzeichnisses folgen muss. Viele Kommandos und Programme lassen sich mit mehreren Argumenten desselben Typs hintereinander aufrufen. So kann man dem Kommando rm (lscht Dateien) mehrere Dateinamen hintereinander bergebeben; es werden dann alle angegebenen Dateien gelscht. In den Syntaxerluterungen wird dies durch drei Punkte . . . hinter dem betreffenden Argument angegeben.

1.2 GNU, Linux und freie Software


1.2.1 GNU is Not UNIX Der Programmierer R ICHARD S TALLMAN grndete 1983 das GNU-Projekt mit dem Ziel, ein System freier Software zu entwickeln, das den Software-Bedarf von Computer-Benutzern vollstndig abdecken sollte. Kern dieses Projekts war zunchst die Erstellung eines Compilers1 sowie die Programmierung eines Betriebssystems.
1 Ein Compiler ist ein Programm, das den von Menschen geschriebenen Programmcode in ein von Maschinen ausfhrbares Format bersetzt.

1.2 GNU, Linux und freie Software

Von Anfang an kmmerte sich das GNU-Projekt jedoch auch um die Entwicklung von Anwendungsprogrammen und Werkzeugen zur Benutzung des Systems. Eines der bekanntesten GNU-Anwendungsprogramme ist der Editor2 Emacs. Die GNUProgramme erfreuten sich schon frh groer Beliebtheit. Sie wurden und werden von vielen Computeranwendern eingesetzt, um kommerzielle Programme und Werkzeuge zu ersetzen, weil sie oft besser programmiert sind und mehr Mglichkeiten als die kommerziellen Gegenstcke bieten. Das GNU-Projekt ist eng mit dem Betriebssystem UNIX verbunden. Der Prototyp dieses Betriebssystems wurde 1969 von K ENNETH T HOMPSON und D ENNIS R ITCHIE in den Bell Labs der US-amerikanischen Telefongesellschaft AT&T entwickelt. Bei UNIX handelt es sich um ein Multiprozess- und Multiusersystem, ein System, auf dem mehrere Benutzer gleichzeitig unterschiedliche Programme ausfhren knnen. Zu Beginn war UNIX weitgehend frei verfgbar, was sich mit der Zeit durch wachsende kommerzielle Interessen nderte. Genau genommen ist UNIX eine geschtzte Markenbezeichnung, deren Besitzer mehrmals gewechselt haben. Die Bezeichnung wird aber auch als Gattungsnamen fr UNIX-artige Betriebssysteme gebraucht. Die Abkrzung GNU steht fr GNU is Not UNIX. Der Name drckt aus, dass GNU in enger Beziehung zu dem Betriebssystem UNIX steht, sich gleichzeitig jedoch von UNIX abgrenzt. Das vom GNU-Projekt geplante und entwickelte Betriebssystem verhlt sich in vielerlei Hinsicht wie eine Weiterentwicklung von UNIX. Es handelt sich jedoch nicht um UNIX, weil alle GNU-Programme unabhngig neu programmiert wurden. Hauptmotiv fr die Grndung des GNU-Projekts war, dass Anfang der 80er Jahre immer mehr Programme unter Copyright-Bestimmungen gestellt wurden, die es unmglich machten, die Programme zu verndern, Fehler zu korrigieren oder Anpassungen an eigene Bedrfnisse vorzunehmen. Darber hinaus stellten die CopyrightBestimmungen es unter Strafe, Programme oder eigene nderungen daran sofern sie doch mglich waren an Andere weiterzugeben. Eines der wesentlichen Bestandteile des GNU-Projekts ist deswegen eine eigene Softwarelizenz, die zum einen die Rechte des Programmierers schtzt, zum anderen jedoch verhindert, dass die Freiheit bei der Verwendung eines Programms auf diese Art eingeschrnkt werden kann. Diese GNU-Lizenz wird in Anspielung auf den Begriff Copyright auch als Copyleft bezeichnet. Ihr ofzieller Name ist GNU General Public License (GPL). Eine deutsche bersetzung der Lizenz nden Sie im Anhang ab Seite 905. Die Erstellung von Programmen luft gewhnlich in zwei Schritten ab. Zunchst wird ein Quelltext (Sourcecode) geschrieben. Dabei handelt es sich um eine oder mehrere Textdateien, die von Programmieren gelesen, verstanden und gendert werden knnen. Der Quelltext wird dann mit Hilfe eines bersetzer-Programms dem Compiler in ein Binrformat gebracht, das vom Betriebssystem in den Arbeitsspeicher geladen und vom Prozessor des Computers ausgefhrt wird. Die genaue Arbeitsweise eines Programms oder etwaige Fehler lassen sich anhand der Binrversion nicht oder nur mit sehr hohem Aufwand feststellen. Ebenso ist es beinahe un2

Ein Editor ist ein Programm, mit dem Daten bearbeitet werden.

1 Einfhrung

mglich, solche Programme zu verndern oder um neue Eigenschaften zu erweitern. Darber hinaus verbieten viele kommerzielle Softwarelizenzen, im Binrformat vorliegende Programme zu untersuchen oder zu verndern. Eine wichtige Bestimmung der GPL fordert deswegen, dass jedes Programm, das unter der GPL steht, zusammen mit seinem Quelltext verfgbar gemacht werden muss. Auerdem muss jeder, der ein GPL-lizenziertes Programm verndert oder weitergibt, dieses ebenfalls unter der GPL tun. Es muss der Quellcode einschlielich etwaiger nderungen offengelegt werden. Durch diese Bestimmung wird gewhrleistet, dass der ursprngliche Autor eines Programms, das unter der GPL verffentlicht wurde, von Verbesserungen und Erweiterungen des Programms durch die Lizenznehmer protiert. Die Verpichtung zur Offenlegung des Quellcodes ist keine einseitige Leistung des Programmautors, sondern ein Angebot an andere Personen, das Programm verndern und weitergeben zu drfen unter der Bedingung, dass die nderungen ebenfalls verffentlicht werden. 1.2.2 Freie Software Software, bei der man das Recht hat, den Quellcode einzusehen, diesen zu verndern und die Software in originaler oder vernderter Form weiterzugeben, bezeichnet man als freie Software. Es ist zu beachten, dass sich das Wort frei dabei nicht auf den Preis bezieht. Die GPL gestattet durchaus, Software zu verkaufen. Sie gestattet nicht, fr den Quellcode einen gesonderten Preis zu berechnen oder es zu verbieten, dass der Kufer die betreffenden Programme seinerseits weitergibt. Freie Software ist von Freeware zu unterscheiden. Bei Freeware handelt es sich um Programme, die zwar ohne Bezahlung beschafft und eingesetzt werden knnen, zu denen aber nicht notwendigerweise der Quellcode verfgbar ist. Bei Freeware bezieht sich das Wort free auf den Preis und nicht auf die Freiheit, dass Programm so zu benutzen, wie man vielleicht mchte. Freie Software muss nicht unbedingt unter der GPL stehen. Bei einer Reihe von Programmen handelt es sich um Public Domain Software. Solche Programme knnen ebenfalls von jedermann eingesetzt, verndert und weitergegeben werden, sie sind aber nicht lizenziert. Der Autor hat auf alle Rechte an dem Programm verzichtet und deswegen beispielsweise auch kein Recht zu verlangen, dass nderungen ebenfalls im Quellcode verffentlicht werden. Darber hinaus gibt es weitere Softwarelizenzen, die bestimmte Rechte des Autors bei der Verffentlichung freier Software schtzen. Die bekannteste dieser Lizenzen ist neben der GPL die Lizenz der Berkeley Software Distribution (BSD-Lizenz). Freie Software ist nicht nur aufgrund ideeller berlegungen oder ausgeklgelter Lizenzen erfolgreich. Vielmehr ist die Mglichkeit zur Vernderung eines Programms oft ein schlagkrftiges Argument fr die Auswahl freier Software. Neben Grnden der Flexibilitt und der Kosten spielen hug auch Aspekte der Sicherheit sowie der Softwarestabilitt eine entscheidende Rolle. Fehler in offengelegten Programmen, die von vielen Benutzern, Programmieren und Analytikern untersucht werden, sind in der Regel schneller entdeckt und behoben, als es bei kommerziellen Programmen, auf deren Quellcode nur ein enger Personenkreis zugreifen kann,

1.2 GNU, Linux und freie Software

der Fall ist. In offengelegten Programmen knnen auch keine geheimen Funktionen versteckt werden. Stellen Sie sich die folgende Situation vor: Ein Systemverwalter entdeckt ein eigenartiges Verhalten eines Programms. Er untersucht die Situation und stellt anhand des Quellcodes fest, dass das Programm unbeabsichtigter Weise die Mglichkeit bietet, ber das Netz auf den Rechner zuzugreifen und dort bendliche Daten zu manipulieren. Diese Entdeckung teilt er den Autoren und Benutzern des Programms ber eine Mailing-Liste3 mit. Aufgrund der genauen Angaben zu dem Fehler, die ohne den Quellcode nicht mglich gewesen wren, lst ein anderer Benutzer des Programms den Fehler innerhalb weniger Stunden. Die Lsung wird sofort verffentlicht, um die Gefahr des unbefugten Datenzugriffs zu bannen. Aus Sicht desjenigen, der die Problemlsung erarbeitet hat, sprechen weitere Grnde fr die schnelle Verffentlichung der Lsung: Bliebe sie unverffentlicht, msste sie in jede neue Version des betreffenden Programms erneut integriert werden. Durch die Verffentlichung wird die eigene Qualikation nachgewiesen. Es besteht u. U. das Bedrfnis, etwas an Menschen zurckzugeben, die einem in vergleichbaren Situationen ebenfalls geholfen haben. Zum Vergleich knnte sich die Geschichte bei einem kommerziellen Softwareprodukt folgendermaen abspielen: Der Systemverwalter bemerkt wieder ein eigenartiges Verhalten eines Programms. Er versucht, dieses Verhalten zu untersuchen, ist sich allerdings nicht darber im klaren, ob der Grund fr das Programmverhalten im Programm selbst oder im Zusammenspiel mit dem Betriebssystem liegt. Diese Frage kann er nicht ohne weiteres beantworten, weil der Quellcode von Programm und Betriebssystem nicht zur Verfgung steht und das fragliche Programm nur unter diesem Betriebssystem ausgefhrt werden kann. Daraufhin nimmt er Kontakt zum Support des Programmherstellers auf und erklrt diesem die Angelegenheit. Der Programmhersteller sieht sich nicht veranlasst, eine nderung an dem Programm vorzunehmen, weil ihm ja nicht nachgewiesen werden kann, dass tatschlich ein Fehler im Programm vorliegt. Das Gleiche gilt fr den Hersteller des Betriebssystems. Der Fehler wird zu einem spteren Zeitpunkt von bswilligen Angreifern bemerkt, die ihn tatschlich benutzen, um sich Zugriff zum betreffenden System zu verschaffen und dort Daten zu verndern. Erst zu diesem Zeitpunkt rumt der Hersteller des Programms eine mgliche Schwche ein und empehlt, das Programm zunchst in einem bestimmten Modus nicht mehr zu benutzen. Ein halbes Jahr spter bringt er ein Update des Programms heraus, fr das neue Lizenzgebhren fllig sind. Die Geschichte beleuchtet einen der zentralen Vorteile freier Software: Es ist erlaubt, sich und anderen selbst zu helfen. Freie Software wird seit einiger Zeit auch als Open-Source-Software bezeichnet. Der Begriff Open Source ist ein geschtzter Begriff, der mit bestimmten Bedingungen verbunden ist. Die Bedingungen knnen Sie im Internet unter http://www.opensource.org/osd.html nachlesen.

Eine Mailing-Liste ist ein Verteilerprogramm fr Email.

1 Einfhrung

1.2.3 Linux Im Jahr 1991 begann der nnische Student L INUS B ENEDICT T ORVALDS einen Betriebssystemkern4 zu entwickeln, der die Fhigkeiten des damals neuen Intel 80386Prozessors ausnutzen konnte. T ORVALDS benutzte zu diesem Zweck von Anfang an die Werkzeuge des GNU-Projektes. Insbesondere setzte er den GNU-C-Compiler ein, um den Quellcode seines Kerns in das Maschinenformat zu bersetzen. Das Design und die Schnittstellen dieses neuen Betriebssystemkerns orientierten sich an den Schnittstellen von UNIX, weswegen sich auch die brigen GNU-Programme sowie andere UNIX-Programme leicht auf das neue System bertragen lieen. Nach kurzer Zeit am 17. September 1991 verffentlichte T ORVALDS eine erste Version seines Kerns unter den Lizenzbedingungen der GPL im mittlerweile weltumspannenden Internet. Das System war zu diesem Zeitpunkt bereits in der Lage, den GNU-C-Compiler und den GNU-Kommandointerpreter Bash auszufhren. Von diesem Anfang lieen sich in kurzer Zeit andere Programmierer begeistern. Sie beteiligten sich an der Entwicklung, sodass der Kern schnell wuchs, stabiler wurde und um neue Eigenschaften ergnzt wurde. Zwei Jahre nach der ersten Verffentlichung des Linux-Kerns hatten sich bereits mehr als 100 Programmierer an der Entwicklung beteiligt. Die Menge des Quellcodes hatte sich bis dahin ungefhr verzehnfacht. Man schtzt, dass 1993 bereits 20.000 Benutzer Linux einsetzten. Diese Entwicklung hat sich bis heute fortgesetzt. Die Anzahl der Linux-Installationen wird zur Zeit auf 20 Millionen geschtzt, die Anzahl von Entwicklern, die einen Beitrag zu Linux geleistet haben, liegt bei weit ber 1.000, Tendenz weiter steigend. In einigen Bereichen ist Linux schon jetzt das verbreitetste Betriebssystem berhaupt, und zwar wen wundert es vor allem im Bereich von Internet-Servern. Auch im wissenschaftlichen Umfeld, als Server fr heterogene Netze und immer mehr im Bereich der Heim- und Arbeitsplatzrechner hat sich Linux einen bedeutenden Platz erobert. Niedrige Kosten, hohe Stabilitt, hohe Flexibilitt, ein hohes Ma an Sicherheit, eine umfangreiche Dokumentation und relativ geringe Hardwareanforderungen bewirken, dass sich immer mehr Einkufer, Entscheider, Entwickler und Benutzer fr GNU und Linux entscheiden. Behrden schtzen an Linux die niedrigen Kosten und die hohe Sicherheit. Whrend vor einigen Jahren vor allem in Unternehmen noch Bedenken bestanden, Linux einzusetzen, weil kein kommerzieller Support fr das System verfgbar war, so hat sich auch diese Situation mittlerweile gendert. Eine groe Anzahl neuer GNU/Linux-Firmen bietet Dienstleistungen wie Schulungen und Support, aber auch die Planung und Installation von Linux-basierten EDV-Landschaften an. Darber hinaus engagieren sich namhafte Firmen aus der IT-Branche wie IBM, HewlettDer Betriebssystemkern (kernel) ist das Herzstck des Betriebssystems. Er stellt die Schnittstellen zur Verfgung, die von anderen Programmen genutzt werden knnen und fhrt die eigentliche Ressourcenverwaltung durch. Gleichzeitig ist der Kern fr die Ansteuerung der Hardware zustndig. Der Kern ist praktisch das Betriebssystem abzglich der Mglichkeit, es zu benutzen.
4

1.2 GNU, Linux und freie Software

Packard oder Oracle im Linux-Bereich und bieten Hard- und Software sowie Dienstleistungen im Umfeld dieses Betriebssystems an. 1.2.4 Debian GNU/Linux Die Installation und Pege eines funktionsfhigen Linux-Systems wre mit groem Aufwand verbunden, gbe es nicht die Distributionen. Man msste sich den LinuxKern, viele GNU-Programme und eine Reihe weiterer Dienst- und Anwendungsprogramme aus unterschiedlichen Quellen besorgen und so anpassen, dass sie mit den brigen Komponenten zusammenarbeiten. Als nchstes wren die Programme vom Quellcode in das Binrformat zu bersetzen und dann zu installieren. Bei alledem msste man Unvertrglichkeiten zwischen verschiedenen Programmversionen beachten, protokollieren, was man zu welchem Zeitpunkt wohin installiert hat und immer wieder testen, ob die so erzeugte Installation berhaupt funktioniert. Kurz: Ein optimal eingerichtetes System zu erstellen und zu pegen, wre mit einem hohem Aufwand verbunden und fr Laien unmglich. Aus diesem Grund gibt es Linux-Distributoren. Hierbei handelt es sich in den meisten Fllen um Unternehmen, die den Linux-Kern, die GNU-Software, weitere Programme und viele Anwendungsprogramme aufeinander abstimmen, diese Software in das Binrformat bersetzen, dazu ein Installationsprogramm schreiben und alles zusammen auf CD/DVDs oder anderen Datentrgern zum Verkauf anbieten. Der Anwender braucht dann lediglich einen Satz CD/DVDs zu erwerben, mit denen er das Betriebssystem samt vieler Anwendungen auf seinen Rechnern installieren kann. Zu den grten kommerziellen Linux-Distributoren gehren die Firmen Red Hat, SUSE, Mandrake und Caldera. Bei dem Debian-Projekt handelt es sich um eine freie Organisation aus zur Zeit etwa 1000 Entwicklern, die es sich zum Ziel gesetzt hat, eine freie SoftwareDistribution herauszugeben. Das Projekt wurde 1993 von I AN M URDOCK gegrndet, der Name Debian entstand aus dem Vornamen seiner Frau D EBRA und M UR DOCK s eigenem Vornamen. Fr die Grndung des Debian-Projekts sprach vieles: Die kommerziellen Distributionen waren lange nicht so gut, wie sie es htten sein knnen, kommerzielle Distributoren bewarben ausgiebig neue, noch nicht ausgereifte Linux-Eigenschaften, wodurch bei der Kundschaft Enttuschungen hervorgerufen wurden, auerdem begannen einige Distributoren, freie und nicht-freie Software miteinander zu vermischen, was zur Folge hatte, dass die Distributionen nicht mehr frei benutzt werden durften. Ein weiterer wichtiger Grund fr die Entstehung von Debian war darber hinaus die Tatsache, dass es sich bei einer Distribution selbst um Software handelt, die genauso frei sein sollte wie ihre Bestandteile. Durch die Grndung von Debian wurde das Entwicklungsprinzip von Linux, nmlich das gemeinschaftliche Arbeiten vieler Entwickler, die ber das Internet miteinander kommunizieren, auf die Distribution ausgedehnt. Das Debian-Projekt selbst ist ohne Rechtsform. Weil es bei einem Projekt dieser Grenordnung jedoch notwendig ist, Gelder zu verwalten und Rechte wahrzunehmen, wurde von dem Projekt die anerkannt gemeinntzige Organisation

10

1 Einfhrung

Software in the Public Interest Inc. (SPI) gegrndet. Diese Organisation tritt beispielsweise als Inhaberin des Warenzeichens Debian sowie als Copyright-Halterin fr die Produkte des Debian-Projekts auf. Auerdem nimmt sie Geld- und Sachspenden an das Debian-Projekt entgegen. Der Name Debian GNU/Linux drckt aus, dass es sich dabei um eine Softwaredistribution handelt, die zwei Wurzeln hat, nmlich das GNU-System und den Linux-Kern. Zur Zeit wird daran gearbeitet, neben Linux auch andere freie Betriebssystemkerne in das System zu integrieren. Vor allem das GNU-Projekt arbeitet schon seit langem an einem eigenen Betriebssystemkern, der den Namen HURD trgt. Der Kern wird zur Zeit in das System integriert. Aus diesem Grund wird die Distribution auch einfach nur Debian genannt, weil Linux kein notwendiger Bestandteil mehr ist. In diesem Buch wird weiterhin von Debian GNU/Linux gesprochen, weil nur der Linux-basierte Teil der Distribution beschrieben wird. Das Debian-Projekt fhlt sich freier Software besonders verpichtet. Eine der tragenden Sulen des Projekts ist der Gesellschaftsvertrag (Social Contract), in dem die Ziele des Projekts deniert werden. Im Anhang zu diesem Dokument wird gezeigt, unter welchen Bedingungen Debian ein Programm als freie Software akzeptiert. Diese Richtlinien werden als Debian Free Software Guidelines (DFSG) bezeichnet. Gesellschaftsvertrag und DFSG sind im Anhang des Buches ab Seite 901 wiedergegeben. Die eigentliche Debian-Distribution besteht ausschlielich aus Programmen, die mit den DFSG in Einklang stehen. Als Service fr die Benutzer der Distribution bereiten Debian-Entwickler jedoch auch einige nicht-freie Programme fr den Einsatz auf Debian-Systemen vor. Der Grund hierfr ist im wesentlichen, dass es zur Zeit noch einige Programme gibt, fr die kein freies quivalent verfgbar ist. Freie und nicht-freie Software bendet sich auf den Debian-Servern im Internet sowie auf den Debian-CD/DVDs in unterschiedlichen Bereichen, sodass es fr die Benutzer sofort klar ist, aus welchem Bereich ein bestimmtes Programm stammt. Solange Sie nur Programme aus dem Hauptteil der Distribution (main) einsetzen, knnen Sie sicher sein, dass Sie das System im Sinne der DFSG frei benutzen drfen. Falls Sie jedoch Software aus den Abteilungen non-free oder contrib benutzen, sollten Sie prfen, ob Sie diese Programme fr den von Ihnen geplanten Zweck benutzen drfen. Die Entwicklung der Debian-Distribution ist vollkommen offen. Das Projekt bietet zwei Versionen an. Zum einen eine stabile und abgeschlossene Version, die in unregelmigen Abstnden aktualisiert wird. Zum anderen eine unstabile Version, an der die Entwickler des Projekts arbeiten und die sich deswegen stndig ndert. Fehler knnen von Benutzern und Entwicklern in eine Datenbank eingegeben werden. Der Inhalt dieser Datenbank kann ebenfalls von jedermann gelesen werden. Bevor eine neue Version der stabilen Distribution herausgegeben wird, sind alle schwerwiegenden Fehler beseitigt. Debian gehrt heute zu den bedeutendsten Linux-Distributionen, und es darf davon ausgegangen werden, dass Debian weltweit betrachtet die zweitgrte LinuxDistribution ist. Im Vergleich zu anderen Distributionen bietet Debian die grte Anzahl von Softwarepaketen, untersttzt neben Intel-80386er-kompatiblen PCs die grte Zahl weiterer Rechnerarchitekturen und ist vollstndig kostenlos ber das In-

1.2 GNU, Linux und freie Software

11

ternet verfgbar. Weil das Herunterladen der Distribution fr viele Benutzer jedoch mit Kosten verbunden ist, stellt das Debian-Projekt Abbilddateien der Distribution zur Verfgung, die aus dem Internet heruntergeladen und von Firmen zur Herstellung von CD/DVDs benutzt werden drfen. CD/DVD-Stze, die aus den Abbilddateien des Debian Projekts erstellt wurden, werden als ofzielle Debian-CD/DVDs bezeichnet. Daneben gibt es Anbieter, die selbst Debian-CD/DVDs zusammenstellen. Solche CD/DVDs knnen speziell auf bestimmte Bedingungen angepasst sein oder zustzliche Software enthalten, die das Debian-Projekt mit den ofziellen CD/DVDs nicht verteilen will. Natrlich hat jede Distribution ihre Strken und Schwchen. Kommerzielle Distributoren bemhen sich um besonders einfach zu benutzende oder ansprechend aussehende Installationsprogramme. Dies sind Programmteile, die vor allem von Zeitschriften bei Vergleichen von Linux-Distributionen oft getestet werden und mit denen sich schnell gute Testergebnisse erzielen lassen. Debian wird von Anwendern fr Anwender gemacht. Die Installation des Betriebssystems mit einem aufwendigen graschen Programm hat fr die tgliche Arbeit jedoch eine eher geringe Bedeutung (was nicht heit, dass Debian schwer zu installieren ist). Deswegen steht bei Debian im Vordergrund, dass dauerhaft sicher und stabil mit dem System gearbeitet werden kann. Aus Wettbewerbsgrnden sind in kommerziellen Distributionen oft jngere Versionen bekannter Programme enthalten. Diese werden gelegentlich in letzter Minute in die Distribution aufgenommen, ohne vorher ausreichend getestet worden zu sein. Auf der anderen Seite werden weniger bekannte, aber fr den Betrieb ebenso wichtige Programme von diesen Distributoren vernachlssigt, weil sich damit nicht werben lsst. Debian ist nicht auf Marketing angewiesen und nimmt deshalb auf solche berlegungen keine Rcksicht. Hier stehen die Stabilitt und Fehlerfreiheit bei gleichmiger Aktualitt aller Komponenten im Vordergrund. Dies macht sich bei Aktualisierungen des Systems bemerkbar: Ein Debian-System kann problemlos von einer auf die nchste Version der Distribution aktualisiert werden, ohne dass persnliche Anpassungen verlorengehen oder das System neu gestartet werden muss. Debian-Systeme lassen sich ber Jahre ohne Unterbrechung betreiben, es sei denn der Betriebssystemskern muss ausgetauscht werden oder ein Hardwareproblem zwingt dazu, den Rechner herunterzufahren. 1.2.5 Internetadressen Free Software Foundation (Trger des GNU-Projekts): http://www.fsf. org/, in Europa http://www.fsfeurope.org/ GNU-Projekt: http://www.gnu.org/ Linux Portalseiten: http://www.linux.org/ und http://www. linux.com/ The Linux Documentation Project: http://www.tldp.org/ Deutsches Linux HOWTO Projekt: http://www.linuxhaven.de/dlhp/ Homepage des Debian-Projekts: http://www.debian.org/ Deutsches Debian-Projekt: http://www.de.debian.org/

12

1 Einfhrung

Debian Backports: http://www.backports.org/ Denition des Begriffes Open Source: http://www.opensource.org/ docs/definition.php The Open Group (Trgerin der Markenrechte an UNIX und Quelle fr die Spezikationen POSIX und The Single UNIX Specication): http://www. opengroup.org/ und http://www.unix-systems.org/ SourceForge, eine Quelle von Open Source Software: http:// sourceforge.net/ Ein Dokumentations-Projekt: http://www.selflinux.org/ Weitere Dokumentationen zu Debian GNU/Linux: http://www. openoffice.de/ Zeitschriften (in zuflliger Reihenfolge): http://ctmagazin.de/ http://www.heise.de/ix/ http://www.linux-magazin.de/ http://www.linux.de/ http://www.linuxjournal.com/ http://www.linuxgazette.com/ http://linux-user.de/ http://www.linuxenterprise.de/

1.3 Warum Debian GNU/Linux?


Vor nicht langer Zeit war der Begriff Linux nur Eingeweihten vertraut. Heute lesen wir Neuigkeiten ber Linux in der Tageszeitung und sehen Berichte im Fernsehen zu diesem Thema. Welche Grnde sprechen fr den Einsatz von Linux-basierten Betriebssystemen? Und welche Grnde sprechen dafr, Debian GNU/Linux zu verwenden? Linux/UNIX ist das lteste der heute gebruchlichen Betriebssysteme und ausgereift. Seine Grundideen sind von anderen Betriebssystemen nach und nach bernommen worden. Es war von Anbeginn auf Zusammenarbeit unterschiedlicher Hardware, unterschiedlicher Software und zahlreicher Benutzer angelegt. Stabilitt Linux ist eines der sichersten und stabilsten Betriebssysteme fr PCs. Huge Abstrze gehren mit Linux der Vergangenheit an. Debian GNU/Linux wird lange ffentlich getestet, bevor es freigegeben wird. Es ist deswegen ein besonders stabiles und ausgereiftes Linux-System. Geringe Hardwareanforderungen Linux bentigt fr eine bestimmte Aufgabe in der Regel weniger Hardwareressourcen (CPU-Takt, Speicher) als andere Betriebssysteme. Das System ist auerdem modular aufgebaut. So braucht eine grasche Oberche nur dort installiert werden, wo sie auch tatschlich bentigt wird. Mehrbenutzerfhigkeit Linux ermglicht mehreren Benutzern, gleichzeitig mit dem System zu arbeiten. Dies beschrnkt sich nicht nur auf den Einsatz als Web-,

1.3 Warum Debian GNU/Linux?

13

Datei- oder Mail-Server, sondern gilt auch fr die Ausfhrung von Programmen. So lsst sich das System hervorragend als Anwendungsserver einsetzen. Sicherheit Unter Linux lassen sich Daten wirkungsvoll vor dem Zugriff durch Unbefugte schtzen. Weil der Quellcode des Betriebssystems offengelegt ist, wird er von vielen Leuten geprft; sicherheitsrelevante Fehler werden schnell gefunden und behoben. Kooperativitt Debian kann problemlos auf Rechnern installiert werden, auf denen sich bereits andere Betriebssysteme benden. Das System kann dann so eingerichtet werden, dass zum Startzeitpunkt ausgewhlt wird, welches der installierten Betriebssysteme gestartet werden soll. Benutzerfreundlichkeit Mit KDE und GNOME stehen zwei freie grasche Benutzeroberchen fr Linux zur Verfgung, mit denen das System hnlich einfach benutzt werden kann wie ein MS-Windows- oder Macintosh-basiertes System. Freiheit Alle Bestandteile von Debian GNU/Linux sind freie Software. Das bedeutet, dass sie im Quellcode verfgbar sind, beliebig oft eingesetzt werden drfen, angepasst und verndert werden knnen und weitergegeben werden drfen, ohne Gebhren zu zahlen oder um Erlaubnis zu fragen. Weil es in einigen Fllen leider notwendig ist, nicht-freie Software einzusetzen, wird eine Reihe von nicht-freien Programmen vom Debian-Projekt als Serviceleistung ebenfalls fr den Einsatz mit der Distribution vorbereitet. Diese Software ist jedoch kein ofzieller Bestandteil der Distribution und deutlich abgegrenzt. Preis Linux ist in der Regel gnstig erhltlich. Wenn Sie ber eine gute Internetanbindung verfgen, knnen Sie Debian GNU/Linux komplett aus dem Internet installieren und mssen abgesehen von den Verbindungskosten nichts bezahlen. Selbst die Debian-CD/DVDs kosten wenig. Investitionssicherheit Weil Debian keine kommerziellen Interessen verfolgt, werden Sie nicht in regelmigen Abstnden gezwungen, Updates oder neue Programmversionen zu bezahlen und zu installieren. Auerdem besteht keine Gefahr, dass die Distribution eines Tages aufgrund fehlendes kommerziellen Erfolges eingestellt wird. Debian kann auch nicht aufgekauft werden. Umfang Debian bietet eine groe Zahl an Softwarepaketen, die fr das System vorbereitet sind. Zur Zeit sind dies ber 6000 Pakete. Mit der Software lassen sich heute fast alle Aufgaben von der Broanwendung ber den Server bis hin zum Forschungsrechner abdecken. Kommerzielle Software Immer mehr Firmen setzen auf Linux. Die Groen der ITBranche wie IBM, Hewlett-Packard, SUN oder Oracle nanzieren mittlerweile die Entwicklung von Linux mit und bieten Software fr dieses Betriebssystem an. Aber auch viele neue Linux-Firmen sind mit diesem Betriebssystem gewachsen und bieten angepasste Linux-Lsungen an. Untersttzung Wenn Sie Fragen zu Linux oder Debian haben, sind zahlreiche kompetente Linux-Benutzer bereit zu antworten. In den meisten Stdten gibt es Linux-Benutzergruppen (User-Groups), die sich auf Ihren Besuch freuen. Weiter gibt es im Internet eine groe Anzahl von Foren, in denen alle mglichen Linuxund Debian-bezogenen Fragen rund um die Uhr und rund um die Welt diskutiert werden. Zustzlich bieten Unternehmen kommerziellen Linux-Support an.

14

1 Einfhrung

Flexibilitt Die Distribution enthlt fr viele Aufgaben unterschiedliche, alternativ oder nebeneinander einsetzbare Programmpakete, aus denen Sie eines auswhlen knnen. Falls Sie von einer anderen Linux-Distribution zu Debian wechseln, werden Sie feststellen, dass die meisten Programme, die Sie von Ihrer alten Distribution kennen, auch unter Debian verfgbar sind. Debian ist modular aufgebaut. Es braucht nicht erst ein groes Basispaket installiert zu werden, vielmehr kann jedes Paket einzeln ausgewhlt werden5 , wodurch weniger Festplattenplatz bentigt wird. Rechnerarchitekturen Debian untersttzt eine groe Anzahl an Rechnerarchitekturen. Neben dem klassischen Intel-80386-kompatiblen PC werden Amiga, Atari, Apple-Macintosh (sowohl m68000- als auch PowerPC-Prozessoren), SUNWorkstation (sparc) und DEC-Alpha-Computer untersttzt. Debian zu lernen und zu verwenden bedeutet, exibel zu bleiben. Softwaremanagement Das Paketverwaltungssystem von Debian ist eines der besten. Es erlaubt den nahtlosen bergang von einer Debian-Version zur nchsten und kann die Software direkt aus dem Internet installieren, Ihre Anpassungen werden beibehalten. Es kennt alle Beziehungen von verschiedenen Softwarebestandteilen untereinander und verhindert wirkungsvoll, dass unbenutzbare Programme installiert werden oder das System durch die Entfernung eines wichtigen Pakets zerstrt wird. Whrend der Installation von Software ist ein Neustart des Systems selten notwendig, sodass die Ausfallzeiten des Rechners auch whrend der Aktualisierung minimal sind.

Einige besonders wichtige Pakete mssen immer installiert sein.

Teil I

Installation

2 Planung der Installation

2.1 Einsatzzweck
Debian GNU/Linux wird fr ein breites Spektrum von Anwendungen eingesetzt. Dazu gehren Router1 , Dateiserver fr kleine und groe Netze, Internetserver (Email, Web, FTP, News etc.), Firewalls2 , Rechner zur Programmentwicklung, wissenschaftliche Arbeitspltze, einfache Netzterminals, die sich nur um Ein- und Ausgabe kmmern und auf einem anderen Computer rechnen lassen, sowie Heim-PCs, die zum Verfassen von Texten und Tabellen, zum Surfen im Internet, zur Verwaltung der Briefmarkensammlung oder eines kleinen Vereins, zum Spielen und vielleicht noch zum Brennen von CD/DVDs oder zum Musikhren verwendet werden. Fr alle diese Aufgaben gibt es nur ein Debian GNU/Linux. Sie brauchen sich also nicht zwischen einer Home-Edition, einer Ausgabe fr Pros oder einem Bundle fr Server zu entscheiden. Die Anpassung an den Einsatzzweck geschieht durch die Auswahl verschiedener Programmpakete; sie lsst sich jederzeit nachtrglich ndern. Die Basisinstallation ist ohnehin fr alle Aufgaben dieselbe. Den Einsatzzweck eines Rechners vor der Installation festzulegen ist hilfreich, wenn es um die folgenden Fragen geht: Beschaffung der Hardware, Bestimmung der Speichergren (Arbeitsspeicher, Massenspeicher), Einteilung der Festplatte(n) und Auswahl der zu installierenden Software. Es ist zweckmig, vor den Beschaffungen die folgenden Fragen zumindest grob zu beantworten: Soll auf dem Rechner eine grasche Benutzeroberche zur Verfgung stehen oder reicht es, den Rechner von einem textbasierten Terminal aus zu steuern?
Rechner, die Datenpakete von einem Netz in ein anderes leiten. Systeme, die Datenpakete nach bestimmten Regeln ltern und nur erwnschte Pakete durchlassen.
2 1

18

2 Planung der Installation

Welche Programme sollen auf dem Rechner installiert werden? Also beispielsweise Ofce-Pakete, Spiele, wissenschaftliche Anwendungen oder andere. Hierfr muss gengend Prozessorleistung und Speicherplatz vorhanden sein. Welche Datenmenge muss pro Benutzer auf dem Massenspeicher gelagert werden? Dies ist abhngig von der Art der Anwendungen und reicht von einigen Megabyte fr einfache Textverarbeitungen bis zu mehreren Gigabyte bei Anwendungen wie dem Brennen von CD/DVDs oder aufwendiger Musik-, Videooder Bildbearbeitung. Wie sichere ich die Daten (Backup)? Wieviele Personen werden insgesamt (nicht gleichzeitig) mit dem Rechner arbeiten? Wieviele Personen werden gleichzeitig mit dem Rechner arbeiten (etwa ber Terminals oder Internet-Verbindungen)? Mit jedem Benutzer, der ein Programm ausfhrt, wird zustzliche Rechenkapazitt und zustzlicher Arbeitsspeicher bentigt. Wie hoch sind die Sicherheitsanforderungen an das System? Ein Rechner, der stndig mit dem Internet oder einem anderen Netz verbunden ist, muss hinsichtlich seiner Sicherheit sorgfltiger konguriert werden als ein Heim-PC, der nur gelegentlich und fr kurze Zeit mit einem Netz verbunden ist. Wenn von einem Rechner Dienste (Email, Webserver) in einem Netz angeboten werden sollen, erhhen sich die Sicherheitsanforderungen weiter. Wenn der Rechner als Server dient: Wieviele Benutzer werden gleichzeitig auf ihn zugreifen? Sollen neben Debian GNU/Linux noch ein oder mehrere andere Betriebssysteme auf dem Rechner existieren? Das Nachdenken ber diese Fragen ist der richtige Moment, ein Heft, eine Kladde anzulegen, in der die Antworten und spter die Beschreibung der Hardware, die Einzelheiten der Installation und Konguration und noch spter etwaige nderungen schriftlich auf Papier festgehalten werden. Fr kleine Netze (SOHO = Small Ofce, Home) bis zu etwa einem Dutzend Rechnern reicht ein einfaches Heft von hundert Seiten, darber macht man sich Vordrucke zum Ablegen in Aktenordnern. Selbst bei einem kleinen Familiennetz gemeinsamer Drucker und Internetzugang fallen so viele Daten an, dass niemand sie zuverlssig im Kopf behalten kann. Und Netze streiken dann am liebsten, wenn der allwissende Netzverwalter weit weg ist und ein Vertreter die Karre aus dem Dreck ziehen soll. Man treibe den Aufwand nicht unntig hoch handschriftliche Notizen in chronologischer Folge sind besser als eine Datenbank, die nicht zugnglich ist, weil der Computer spinnt.

2.2 Koexistenz mit anderen Betriebssystemen


Debian GNU/Linux vertrgt sich reibungslos mit anderen Betriebssystemen. Trotzdem muss bei Installationen, bei denen Debian nachtrglich neben einem vorhandenen Betriebssystem auf dem Rechner eingerichtet werden soll, mit besonderer Sorgfalt vorgegangen werden, damit das alte System nicht beschdigt wird. Es ist nmlich

2.3 Auswahl der Hardware

19

zu beachten, dass jedes Betriebssystem einen eigenen Festplattenbereich (Partition) bentigt, der von anderen Betriebssystemen nicht verndert werden darf. Die einfachste, aber nicht kostengnstigste Methode besteht in solchen Fllen darin, dem Rechner eine weitere Festplatte hinzuzufgen, die vollstndig Debian GNU/Linux gehrt. Dies ist nicht immer mglich, weil das System-BIOS3 lterer Computer nicht von allen Festplatten ein Betriebssystem laden kann. Hier ist es mglich, das zweite System von einer bestehenden DOS- oder MS-Windows-Installation aus zu starten. Oft muss jedoch auf die Anschaffung einer weiteren Festplatte verzichtet werden. Es stehen dann immer noch mehrere Wege zur Verfgung: In vielen Fllen kann der einem Betriebssystem zugeordnete Bereich verkleinert werden4 , in anderen Fllen muss die Festplatte neu aufgeteilt werden. Bei der zweiten Mglichkeit ist das Anlegen einer vollstndigen Sicherungskopie aller Daten auf der Festplatte unausweichlich. Am einfachsten hat man es, wenn man mit einer leeren Platte beginnt, diese unter Bercksichtigung aller zu installierender Betriebssysteme aufteilt und dann zuerst die anderen Betriebssysteme einrichtet.

2.3 Auswahl der Hardware


Jeder Computer soll seine Aufgaben schnell erledigen. Nun sind an der Erledigung stets mehrere Komponenten beteiligt, sodass sich die Gesamtgeschwindigkeit aus mehreren Faktoren ergibt: Anzahl und Taktfrequenz der Zentralprozessoren (CPU), Vorhandensein von Coprozessoren fr spezielle Aufgaben (Grak, Signalverarbeitung), Auslastung des Arbeitsspeichers (oft zu klein), Geschwindigkeit und Auslastung des Massenspeichers, Geschwindigkeit und Auslastung der Netzanbindung, Eigenintelligenz peripherer Gerte (Drucker, SCSI- oder ISDN-Adapter), Konguration der Software, Qualitt der Software. Wichtig ist eine runde Abstimmung der Komponenten des Rechners im Hinblick auf seinen Einsatzzweck. Ein Porsche ist auch nicht unter allen Umstnden schneller als ein Traktor. Bevor ein kompletter Rechner oder eine Komponente gekauft wird, sollte man prfen, ob die Hardware von Linux untersttzt wird. Die Palette untersttzter Hardware ist in den letzten Jahren zwar stndig gewachsen, allerdings gibt es immer noch
BIOS steht fr Basic Input Output System, einem fest in den Computer eingebautem Programm zur Steuerung der Hardware. 4 Dies kann beispielsweise mit dem Debian GNU/Linux beiliegenden Programm ps.exe oder dem kommerziellen Programm Partition Magic geschehen.
3

20

2 Planung der Installation

Hardware-Hersteller, die keine Treiber fr Linux entwickeln und die Spezikationen ihrer Hardware nicht offenlegen. Eine gut gepegte und regelmig aktualisierte Liste von Hardware, die mit Linux eingesetzt werden kann, stellt das Linux-HardwareHOWTO dar. Es bendet sich nach der Installation von Debian in der Datei /usr/share/doc/HOWTO/en-txt/Hardware-HOWTO.txt.gz, wenn das Paket doc-linuxtext installiert ist, und kann auerdem unter der Internet-Adresse http://www. tldp.org/HOWTO/Hardware-HOWTO/index.html abgerufen werden. Die folgenden allgemeinen Hinweise sollten Sie bercksichtigen, wenn Sie Hardware fr den Aufbau eines Linux-Systems einkaufen: Lassen Sie sich von ihrem Hndler besttigen, dass die zu erwerbende Komponente mit Linux zusammenarbeitet. Achten Sie darauf, dass alle bentigten Betriebsarten der betreffenden Hardware untersttzt werden. Verzichten Sie darauf, die allerneuesten Komponenten zu kaufen. Solche Gerte sind meist unverhltnismig teuer, darber hinaus werden sie oft selbst fr die Betriebssysteme, die die Hersteller ofziell untersttzen, mit schlecht funktionierenden Treibern ausgeliefert. Es ist deswegen besser, erprobte Komponenten zu kaufen, die sich an bekannte Standards halten. Hingegen stehen die Chancen gut, fr alte Hardware noch Linux-Treiber zu nden. Grundstzlich sollten Sie nur solche Komponenten kaufen, deren Spezikationen vom Hersteller offengelegt werden. Black-Box-Hardware wird unter Linux selten oder nur unzureichend untersttzt. Oft lassen sich auf den Internetseiten der Hersteller Hinweise ber die Verfgbarkeit der Spezikationen nden. In Laptops steckt teilweise sehr spezielle Hardware oder solche, deren Spezikationen von den Herstellern nicht verffentlicht werden. Ausfhrliche Informationen zum Thema Laptops und Linux nden Sie im Internet unter http: //www.linux-on-laptops.com/. Hinweise zu den mit Laptops eingesetzten PCMCIA5 -Karten nden Sie im PCMCIA-HOWTO unter der InternetAdressen http://www.tldp.org/HOWTO/PCMCIA-HOWTO.html. Der Universal Serial Bus (USB) wird mittlerweile untersttzt. Nehmen Sie Abstand von Komponenten, die speziell fr die Betriebssysteme der MS-Windows-Familie entwickelt wurde. Solche Komponenten tragen oft Bezeichnungen wie WinModem, WinPrinter oder GDIPrinter. Diese Gerte wurden ihrer eigenen Intelligenz beraubt und berlassen smtliche Arbeit wie etwa das Interpretieren des Befehlssatzes eines Druckers dem Betriebssystem und dem Zentralprozessor. Ein einfacher Designed for Windows-Aufkleber ist noch kein Indiz dafr, dass es sich um solche unbenutzbaren Gerte handelt (sofern Sie den Aufkleber schnell entfernen, wenn Sie das Gert unter Linux betreiben).

PCMCIA steht fr Personal Computer Memory Card Interface Association. Es bezeichnet eine Klasse von Gerten, die ber die PCMCIA-Schnittstelle mit Rechnern verbunden werden. Diese Schnittstelle ist hug in Laptops zu nden. PCMCIA-Gerte werden auch als PC-Cards bezeichnet.

2.3 Auswahl der Hardware

21

2.3.1 Hinweise zu wichtigen Hardwarekomponenten Hauptprozessor(en) Die bentigte Prozessorleistung ist abhngig von Art und Anzahl der Programme, die gleichzeitig auf dem Rechner ausgefhrt werden. Rechenintensive Anwendungen sind unter anderem Spiele, Bild - und Musikverarbeitung, viele wissenschaftliche (mathematische) Anwendungen und die Entwicklung von Programmen, bei der vom Compiler eine hohe Rechenlast erzeugt wird. Auf der anderen Seite verbringen Anwendungen wie Textverarbeitungen oder Tabellenkalkulationen die meiste Zeit damit, auf Eingaben des Benutzers zu warten. Fr einen Heim-PC zum Verfassen von Texten und fr Internet-Anwendungen wie einem Web-Browser oder einem Email-Programm sind heutige Prozessoren mehr als ausreichend. Positiv bemerkbar macht sich der in den Prozessor eingebaute Cache-Speicher, der die Zugriffszeiten auf regelmig bentigte Speicherinhalte verkrzt. Wenn Sie die Wahl haben, sollten Sie lieber einen etwas langsameren Prozessor mit mehr Cache-Speicher nehmen. Bei Datei- und Web-Servern, auf denen keine umfangreichen Berechnungen ausgefhrt werden, wird meistens auf das Netz oder den Datenzugriff gewartet, sodass auch hier kein besonders schneller Prozessor bentigt wird. hnlich sieht es aus bei Routern: Ein Rechner, der einen Internetzugang ber eine ISDN-Leitung fr ein kleines Netz zur Verfgung stellen soll, ist sogar mit einem alten 486-Prozessor ausreichend bedient. Multiprozessorsysteme (SMP) sind dann sinnvoll, wenn auf dem Rechner viele Benutzer zeitgleich rechenintensive Programme ausfhren wollen. Ein einzelnes Programm nutzt mehrere Prozessoren nicht aus. Eine Ausnahme hiervon stellen spezielle Programme dar, beispielsweise fr mathematische Berechnungen oder zum Rendern von Bildern, die vorausgesetzt, sie wurden entsprechend programmiert von mehreren Prozessoren protieren. Die Untersttzung von Multiprozessorsystemen ist im Standard-Kern nicht enthalten. Sie mssen deswegen nach der Installation einen angepassten Kern erzeugen. Ein anderes Thema ist das Zusammenschalten mehrerer selbstndiger Linux-Rechner zu einem Cluster. Achtung: Die Minimalanforderung an den Prozessor ist bei Linux fr PCs ein Intel-80386 kompatibler Prozessor. 80286er Prozessoren und deren Vorgnger werden nicht untersttzt. Aber die mssen Sie schon in Museen suchen. Moderne Prozessoren dieser Familie weisen heute einen mathematischen Coprozessor sowie Multimediaerweiterungen (MMX oder hnliche) auf. Beides wird von Linux nicht zwingend bentigt. Arbeitsspeicher (RAM) Dies ist die Komponente, welche die Gesamtleistung eines Debian GNU/Linux Systems in vielen Fllen am ehesten beeinusst. Linux selbst kann zwar auf einem System ab 8 MB RAM ausgefhrt werden, moderne grasche Benutzeroberchen mit

22

2 Planung der Installation

integrierten Arbeitsplatzumgebungen wie KDE oder GNOME6 brauchen jedoch ein Vielfaches davon, und wenn noch Ofce-Pakete oder aufwendige Webbrowser wie Netscape dazu kommen, sind 64 MB RAM als Minimum anzusehen und 256 MB angemessen. Auch Serversysteme protieren von reichlich Arbeitsspeicher mehr als von hohem Prozessortakt, da sie Daten, auf die hug zugegriffen wird, im RAM puffern und die angeforderten Daten schneller zur Verfgung stellen. Bei Systemen, auf denen mehrere Benutzer gleichzeitig Programme ausfhren, wird zum Starten der ersten Instanz eines Programms mehr Arbeitsspeicher bentigt als bei den folgenden, da viele Programmbestandteile zwischen den Prozessen geteilt werden. So werden zum Starten eines bekannten Ofce-Paketes 35 MB Arbeitsspeicher bentigt, wohingegen fr jeden weiteren Benutzer nur 15 MB zustzlich anfallen. Wenig Arbeitsspeicher bentigen Rechner, die als reine Terminals dienen: hier knnen bei Verwendung des X Window Systems (X11, grasche Oberche) 32 MB schon ausreichen. Auch Router oder Druckserver ohne grasche Oberche sollten mit 32 MB RAM ber ausreichend Hauptspeicher verfgen7. Als Faustregel lsst sich empfehlen, lieber etwas mehr Arbeitsspeicher zu nehmen und dafr an anderen Komponenten zu sparen. In der Vergangenheit hat es Probleme mit ungenau arbeitenden Speicherchips gegeben. Zum Teil sind diese Probleme unter anderen Betriebssystemen nicht aufgetreten, weil diese geringere Anforderungen an den Speicher stellen. Wenn Ihr Rechner unter DOS oft einfach stehen geblieben ist oder unter MS-Windows hug allgemeine Schutzverletzungen erzeugt hat, kann es sein, dass sich in Ihrem Rechner fehlerhafte Speicherchips benden, mit denen Sie unter Linux Probleme bekommen. Vorbeugend keine Speicherchips zweiter Wahl kaufen und dafr sorgen, dass es dem Rechner nicht zu warm wird. Grakkarte Grakkarten fr Rechner mit grascher Benutzeroberche sollten eine ausreichende Auflsung bei ergonomischen Bildfrequenzen bieten. Fr eine Auflsung von 1024x768 Punkten bei 32 Bit Farbtiefe wird ein Grakspeicher von mindestens 4 MB bentigt, aber das hat jede neuere Karte. Eigenschaften wie zustzlicher Speicher oder 3D-Beschleunigung werden nur von speziellen Programmen wie Spielen oder besonderen Grakprogrammen ausgenutzt. Grasche Benutzeroberchen basieren unter Linux auf dem X Window System (X11). Dabei ist ein spezielles Programm, der X-Server, fr die Ansteuerung der Grakhardware zustndig. Unter Debian wird standardmig die freie Implementierung XFree86 von X11 benutzt. Welche Grakkarten bzw. Chipstze von
Bei KDE und GNOME handelt es sich um Arbeitsplatzumgebungen (Desktop Environments), die eine Reihe von Anwendungen mit einheitlicher Benutzung und einheitlichem Aussehen (Look and Feel) zur Verfgung stellen. 7 Druckserver, auf denen aufwendige Filterprozesse laufen, bentigen jedoch mehr Arbeitsspeicher.
6

2.3 Auswahl der Hardware

23

dieser Implementierung untersttzt werden, knnen Sie unter der Internet-Adresse http://www.xfree86.org/support.html nachlesen. Festplattenadapter (EIDE oder SCSI) EIDE (Enhanced Intelligent Drive Electronics) und SCSI (Small Computer Systems Interface) sind die heute gebruchlichsten Schnittstellen zum Anschluss von Massenspeichergerten wie Festplatten oder CD-Laufwerken. USB (Universal Serial Bus) kommt. Alle drei werden von Linux untersttzt. SCSI (das teurere System) hat auf Datei-Servern einige Vorteile: 1. SCSI-Adapter nehmen dem Hauptprozessor einige Arbeit ab, die dieser bei einem EIDE-System selbst durchfhren muss. 2. ber einen EIDE-Adapter lassen sich zwei Gerte an den Rechner anschlieen. Weil in den meisten modernen Rechnern heute zwei Adapter vorhanden sind, lassen sich insgesamt vier Festplatten oder CD-Laufwerke an diese Schnittstelle anschlieen. Mit einem SCSI-Adapter lassen sich hingegen 7 oder 15 Gerte verwenden. 3. Neben Festplatten und CD-Laufwerken lassen sich an SCSI-Adapter eine Reihe weiterer Gerte wie Bandlaufwerke oder Laufwerke fr Magneto-Optische Medien anschlieen, falls diese eine SCSI-Schnittstelle haben. Externe Gerte wie Scanner werden jedoch zunehmend an USB angeschlossen. Auch die EIDE-Schnittstelle ist im Lauf der Jahre schneller geworden. Weitere PlattenSchnittstellen wie Serial-ATA oder Firewire haben sich noch nicht durchgesetzt. Datensicherungssysteme Zur Datensicherung (Backup) knnen Disketten, Datentrger wie ZIP- oder JAZMedien, Magneto-Optische Medien (MO-Disks), verschiedene Floppy- oder Parallelportstreamer sowie DAT-Laufwerke eingesetzt werden. Auch das Brennen von Daten auf CD/DVDs oder das Spiegeln von Plattenbereichen auf andere Platten oder Server ist eine Lsung. Manuell durchzufhrende Methoden wie das Kopieren von Daten auf externe Datentrger kommen nur fr Einzelbenutzersysteme in Frage, bei denen eine Standardinstallation von Betriebssystem und Anwendungsprogrammen nach einem Datenverlust schnell wiederhergestellt werden kann und nur wenige Daten manuell restauriert werden mssen. Empfehlen lsst sich eine solche Lsung keinesfalls! Festplatten sterben schneller als man denkt, und meistens hat man bei einer solchen Methode doch wichtige Daten vergessen und verbringt darber hinaus lange Zeit damit, die mhsam eingerichtete Konguration wiederherzustellen. Fr Mehrbenutzersysteme und Server ist eine gute Sicherungsstrategie unausweichlich. Die Wahl einer entsprechenden Lsung ist abhngig von der Menge der zu sichernden Daten im Idealfall lsst sich das System ohne manuellen Eingriff komplett sichern der Geschwindigkeit des Sicherungssystems wieviel Zeit wird bentigt, um das System zu sichern beziehungsweise wiederherzustellen? sowie der Zuverlssigkeit der Medien und unter Umstnden der Zeit, die bentigt wird,

24

2 Planung der Installation

um einzelne Dateien auf den Sicherungsmedien zu nden und sie wiederherzustellen. Bei der Einrichtung professioneller Systeme wird man sich in der Regel fr eine DAT-basierte Lsung entscheiden. Ethernetkarte(n) Eine Netzkarte (Netzadapter) verbindet den Rechner mit einem Netz. Von verschiedenen Netztypen ist Ethernet in mehreren Ausfhrungen am weitesten verbreitet: 10 MBit/s 10Base5 (Thick Ethernet), ngerdickes Koaxialkabel RG11, Bus, zum Anschluss eines Rechners Transceiver und MAU-Kabel mit 15poligem Stecker erforderlich, im Aussterben begriffen. 10Base2 (Thin Ethernet, Cheapernet), dnnes Koaxialkabel RG58, Bus, Anschluss mittels BNC-Stecker. In kleinen Netzen gerade noch akzeptabel, nicht besonders zuverlssig. 10BaseT, mehradriges Kupferkabel (Kategorie 5 oder hher), Stern mit einem Hub oder Switch im Zentrum, 8poliger Telefonstecker RJ 45, verbreitet. 10BaseFL, Lichtwellenleiter (Glasfaser), aufwendig, selten, 100 MBit/s (Fast Ethernet) 100Base-T, mehradriges Kupferkabel (Kategorie 5 oder hher), Stern mit einem Hub oder huger Switch im Zentrum, 8poliger Telefonstecker RJ 45, mit 10BaseT vertrglich, sehr verbreitet. 100Base-FX, Lichtwellenleiter (Glasfaser), fr spezielle Flle wie Verbindung von Switches untereinander (Backbones), aufwendig. 1000 MBit/s (Gigabit Ethernet) 1000Base-T, mehradriges Kupferkabel (mindestens Kategorie 5), Stern mit einem Switch im Zentrum, 8poliger Telefonstecker RJ 45, erschwinglich geworden. 1000Base-CX, Twin-Axial-Kabel, selten. 1000Base-SX und 1000Base-LX, Lichtwellenleiter (Glasfaser), Stern mit einem Switch im Zentrum, aufwendig, fr Backbones. 10 GBit/s (10GBase): in Entwicklung, nur ber Glasfaser. Heute im Jahre 2004 ndet man am hugsten 100Base-T, wobei die Netzkarten und Switche meist auch 10BaseT verstehen. Vor dem Erwerb einer Netzkarte fr einen Linux-Rechner sollte man sich vergewissern, dass sie von Linux untersttzt wird, bei gngigen Karten fast immer der Fall. Gebudeverkabelungen plane man fr das Gigabit Ethernet, das in wenigen Jahren zumindest fr die Grundverkabelung (Backbone) die Regel sein wird. Achtung: Einige wenige Netzkarten, die zwar prinzipiell von Linux untersttzt werden, werden vom Installationssystem nicht untersttzt. Wenn Sie eine solche Netzkarte besitzen, mssen Sie nach der Installation einen angepassten Kern erstellen. Hinweise dazu nden Sie im Internet unter http://ftp.debian.org/dists/woody/main/disks-i386/

2.4 Planung des Massenspeicherbedarfs

25

current/doc/ch-hardware-req.en.html oder in der Dokumentation Ihrer Debian-CDs Drucker Viele Anwendungen unter Linux/UNIX erzeugen zum Drucken eine Ausgabe im PostScript-Format. Hierbei handelt es sich um eine Seitenbeschreibungssprache, die von PostScriptfhigen Druckern direkt verstanden wird. PostScript-Drucker lassen sich deswegen prinzipiell immer mit Debian verwenden. Da diese Drucker jedoch teurer sind als dumme Drucker, kann alternativ das Programm Ghostscript (gs) benutzt werden, um PostScript-Daten in ein Format zu bersetzen, das von nicht PostScript-fhigen Druckern verstanden wird. Dieser Vorgang luft normalerweise automatisch im Hintergrund ab, sodass der Drucker von den Anwendungen wie ein PostScript-fhiger Drucker angesprochen werden kann. Ob ein bestimmter nicht-PostScript-fhiger Drucker mit Debian benutzt werden kann, ist deswegen davon abhngig, ob er von dem Programm gs untersttzt wird. Eine Liste der von gs untersttzen Drucker nden Sie im Internet unter http://www.cs.wisc.edu/~ghost/doc/printer.htm. Unter der Adresse http://www.linuxprinting.org/~gtaylor/pht/ kann auf eine recht vollstndige Datenbank von Druckern zugegriffen werden. Hier lsst sich abfragen, wie gut ein bestimmtes Modell untersttzt wird. Soundkarten und andere Komponenten Fr eine groe Anzahl von Soundkarten ist die Untersttzung im Kern bereits enthalten. Daneben besteht die Mglichkeit, kommerzielle Soundkartentreiber oder die vom ALSA-Projekt entwickelten Treiber einzusetzen. Weitere Hinweise hierzu nden Sie auf Seite 410. Linux untersttzt eine groe Zahl weiterer Hardware. Dazu gehren CDund DVD-Brenner, Scanner, ZIP-Laufwerke, Magneto-Optische-Laufwerke, Speicherkarten, serielle Terminals, Joysticks, FrameGrabber-Karten, digitale Kameras, Analog-Digital-Wandler und ISDN-Karten. Sie sollten hier ebenfalls das HardwareHOWTO zu Rate ziehen, wenn Sie wissen mchten, ob ein bestimmtes Gert untersttzt wird. Zustzlich lassen sich mit Hilfe von Suchmaschinen aus dem Web oder den Netnews weitere Informationen ziehen.

2.4 Planung des Massenspeicherbedarfs


Die bentigte Festplattenkapazitt ist abhngig von Art und Menge der zu installierenden Anwendungen sowie von der Menge der Daten, die auf dem Rechner gespeichert werden sollen. Fr einen gut ausgestatteten Server sollten 4 GB fr das Betriebssystem ausreichend sein. Auf einem Arbeitsplatzrechner mit Ofcepaket, Webbrowser, KDE oder GNOME sollten mindestens 8 GB Festplattenplatz fr das

26

2 Planung der Installation

System zur Verfgung stehen. Sollen zustzlich noch Programme einer mittleren Gre auf dem Rechner bersetzt werden oder der Rechner als Entwicklungssystem dienen, so sind 20 GB sicher nicht zu wenig. Besonders viel Festplattenplatz wird beim Bearbeiten groer Bild-, Video- oder Musikdateien (ganzer Filme) gebraucht. Hier sollte eine Festplatte mit einer Mindestgre von 80 GB gewhlt werden. Bei der Wahl der Festplatte sollte auf eine kurze mittlere Zugriffszeit geachtet werden, da sich hierdurch die Geschwindigkeit des Systems bei Festplattenzugriffen erhht. Leider sind die schnellsten Platten laut und erzeugen viel Wrme. Bei Datei- und Internetservern sowie bei Mehrbenutzersystemen ist darber hinaus abzuwgen, wieviel Platz den einzelnen Benutzern zum Speichern ihrer Daten zur Verfgung gestellt werden soll. Ab einer gewissen Last ist es zweckmig, die Daten auf mehrere Festplatten zu verteilen, weil der Datenzugriff dann parallel erfolgt. Als Orientierungshilfe zur Abschtzung des Speicherplatzes, welcher fr die Installation des Systems bentigt wird, kann Tabelle 2.1 dienen. Mit Ausnahme des Basissystems knnen die meisten der dort dargestellten Komponenten unabhngig voneinander installiert werden. Wenn das System eine grasche Oberche bekommen soll, muss X11 in jedem Fall installiert werden. Ebenfalls mssen bei der Programmentwicklung die allgemeinen Dateien dafr in jedem Fall installiert sein. Fr die Erstellung eines angepassten Kerns bentigen Sie die allgemeinen Programme und Dateien zur Entwicklung sowie die Pakete fr C/C++. Sicherheitshalber und um einen optimalen Betrieb des Systems zu gewhrleisten, sollten auf den fr das System errechneten Speicherplatzbedarf noch einmal 15 % aufgeschlagen werden.
Tabelle 2.1. Speicherbedarf fr ausgesuchte Systemkomponenten. Die Werte dienen der Orientierung, sie beinhalten nicht den fr Benutzerdaten bentigten Speicherplatz.

Systemkomponenten Allgemeines Basissystem Backupprogramme Internet-Einwhlverbindungen Dokumentation Anfngerdokumentation Produktivittshilfen Arbeitsplatzzubehr Grasche Benutzeroberchen Basis X11 zustzliche X Programme Arbeitsplatzumgebung GNOME Arbeitsplatzumgebung KDE

Speicherbedarf 100 MB 5 MB 20 MB 50 MB 30 MB 20 MB 40 MB 30 MB 50 MB 90 MB 120 MB


Fortsetzung auf nchster Seite

2.5 Partitionierung von Festplatten

27

Fortsetzung

Systemkomponenten Programme zur Verwaltung Systemverwaltung Netzverwaltung Programmentwicklung Basis: allgemeine Dateien C/C++ Fortran Perl Python Erstellung angepasster Kerne Anwendungen Spiele Datenbank Postgresql Grakprogramme Textsatzsystem TEX wissenschaftliche Programme Netz DNS-Server FTP-Server Mailinglisten-Server Netzbackup-Server Internet-News-Server NIS-Server POP-Server SAMBA-Server Web-Server

Speicherbedarf 30 MB 20 MB 100 MB 50 MB 20 MB 25 MB 15 MB 80 MB 30 MB 25 MB 100 MB 120 MB 80 MB 5 MB 8 MB 10 MB 5 MB 5 MB 5 MB 5 MB 10 MB 20 MB

Die pro Benutzer bentigte Speicherkapazitt ist natrlich stark davon abhngig, welche Arbeiten die Benutzer ausfhren. Grundstzlich ist ein Wert von 1 GB pro Benutzer als angemessen anzusehen. Fr viele Aufgaben (Bearbeitung und Speicherung von Multimediadaten, Bearbeiten und bersetzen von Programmpaketen o. .) wird jedoch zustzliche Kapazitt bentigt. Bei der Einrichtung von Serversystemen ist Speicherplatz fr solche Daten einzuplanen, die mit dem Server zur Verfgung gestellt werden sollen (z. B. Web-Seiten).

2.5 Partitionierung von Festplatten


Festplatten werden in Partitionen unterteilt, wobei in einer Partition genau ein Dateisystem eingerichtet wird. Unter bestimmten Voraussetzungen kann sich eine Partition auch ber mehrere Festplatten erstrecken (spanning, RAID). Jede Partition bekommt einen eigenen Eintrag im Gerteverzeichnis /dev und verhlt sich logisch

28

2 Planung der Installation

wie ein selbstndiger Datentrger. Wenn Sie nach dem Lesen der folgenden Seiten den Eindruck haben, der Umgang mit Partitionen sei schwierig, so ist das normal, trifft aber nur auf die erste Zeit zu. Haben Sie einen ausgemusterten oder nagelneuen Rechner zum ben, erleichtert das die Eingewhnung. Sind auf Ihrem Rechner bereits Daten vorhanden, die nicht verloren gehen drfen, so ist eine Sicherungskopie (Backup) unerlsslich. Bei der heutigen Gre von Festplatten hat man mehr Mglichkeiten beim Partionieren als frher. Gesichtspunkte hierbei sind: Jedes Betriebssystem braucht seine eigene Partition. Wenn Sie neben Linux auch MS-Windows installieren wollen, sind mindestens zwei Partitionen erforderlich. Trennung der Systemdaten von den Benutzerdaten zwecks Vereinfachung des Backups. Trennung temporrer Daten von lngerfristig zu speichernden Daten. Unterschiedliche Anforderungen an die Geschwindigkeit des Datenzugriffs. Unterschiedliche Anforderungen an die Datensicherheit (Integritt und Vertraulichkeit). Die Sicherheit kann erfordern, bestimmte Partitionen eines Betriebssystems auf verschiedenen Platten oder sogar auf verschiedenen Rechnern an getrennten Orten zu halten. Die Verwendung mehrerer Partitionen ist unter Linux/UNIX schon deswegen dringend zu empfehlen, weil dieses Betriebssystem Inhalte des Arbeitsspeichers auf dafr vorgesehene Partitionen, sogenannte Swapbereiche, auslagern kann. Durch dieses Verfahren wird die Gre des Arbeitsspeichers scheinbar erhht. 2.5.1 Partitionstypen Auf jeder Festplatte bendet sich am Anfang im Bootsektor eine Partitionstabelle, in der festgehalten ist, wie die betreffende Platte partitioniert ist. Auf PC-Systemen ist hier Platz fr vier Partitionen vorgesehen. Diese im Bootsektor eingetragenen Partitionen bezeichnet man als primre Partitionen. Sollen auf einer Festplatte mehr als vier Partitionen zur Verfgung stehen, so knnen sie nicht alle als primre Partitionen angelegt werden. Es muss stattdessen eine der primren Partitionen als erweiterte Partition markiert und verwendet werden. Auf jeder Festplatte darf es nur eine erweiterte Partition geben. Wir kommen so auf maximal drei primre Partitionen und eine erweiterte. In der erweiterten Partition lassen sich dann nahezu unbegrenzt viele logische Partitionen anlegen. Tatschlich ist die Anzahl unter Linux verwendbarer logischer Partitionen zur Zeit auf 12 Partitionen bei SCSI-Festplatten und auf 60 Partitionen bei (E)IDE-Festplatten begrenzt. Eine SCSI-Festplatte sollte also zur Verwendung mit Linux in nicht mehr als 15 Partitionen (3 primre und 12 logische) und eine (E)IDE-Festplatte in nicht mehr als 63 Partitionen aufgeteilt werden. Das reicht. Fr eine zweite Festplatte geht die Zhlung von neuem los. Die Aufteilung einer Festplatte in Partitionen ist in Abbildung 2.1 dargestellt. Die dort gezeigte Festplatte ist in drei primre Partitionen aufgeteilt. Eine davon wird als

2.5 Partitionierung von Festplatten

29

erweiterte Partition verwendet, in der sich drei logische Partitionen benden. Ganz am Anfang liegt der MBR (Master Boot Record). Hier bendet sich die Partitionstabelle sowie Programmcode, der beim Einschalten des Rechners ausgefhrt wird, um ein Betriebssystem zu starten. Weiter bendet sich am Anfang jeder primren Partition ein Bootsektor (BS). Er kann Programmcode enthalten, der zum Starten des Betriebssystems auf der jeweiligen Partition notwendig ist.
BS BS BS

1. Logische Partition

2. Logische Partition

3. Logische Partition

MBR

2. Primre Partition

3. Primre (erweiterte) Partition

1. Primre Partition

Abbildung 2.1. Aufteilung einer Festplatte in primre, erweiterte und logische Partitionen.

2.5.2 Auf welche Partitionen kann installiert werden? Nicht jedes Betriebssystem kann auf jede beliebige Partition installiert werden. Welche Partitionen fr welches Betriebssystem in Frage kommt, ist einerseits von dem Betriebssystem selbst, andererseits vom BIOS des Rechners abhngig. Linux lsst sich prinzipiell sowohl von primren als auch von logischen Partitionen starten. DOS-basierte Betriebssysteme und MS-Windows NT bentigen zumindest eine primre Partition. Falls also solche Betriebssysteme neben Linux auf einer Festplatte installiert werden sollen, muss dies bei der Partitionierung bercksichtigt werden. Darber hinaus knnen viele Rechner Betriebssysteme nicht von jeder Festplatte starten8 . Dabei gilt oft, dass bei Misch-Systemen, also Systemen mit sowohl (E)IDE- als auch SCSI-Festplatten, nur von den (E)IDE-Festplatten gestartet werden kann. Weiter muss sich bei vielen Rechnern das zu startende Betriebssystem auf den ersten beiden (E)IDE-Festplatten oder auf der SCSI-Festplatte mit der ID (Identikationsnummer) 0 benden. Neuere Rechner zeigen sich hier exibler. Um herauszunden, von welchen Festplatten Sie Betriebssysteme starten knnen, sollten Sie die Dokumentation ihres Rechners befragen oder im BIOS-Setup nachsehen, welche
8 Der Grund dafr besteht darin, dass das BIOS u. U. nicht alle Festplatten sieht und deshalb nicht auf sie zugreifen kann.

30

2 Planung der Installation

Mglichkeiten zur Verfgung stehen (siehe Kap.: 3.4). Falls es nicht mglich sein sollte, Platz auf einer startbaren Partition bereitzustellen, knnen Sie Linux immer noch mit einer Diskette oder von DOS (siehe Kap.: 10.2.2) aus starten. Das wre allerdings wenig elegant. 2.5.3 Die 1024-Zylinder-Grenze Bei der Adressierung eines Bereiches der Festplatte wird dem BIOS die Nummer eines Zylinders und eines Sektors sowie die Nummer eines Schreib- und Lesekopfes der Festplatte mitgeteilt. Hierbei steht ausreichend Platz zur Verfgung, um 1024 Zylinder mit 63 Sektoren voneinander unterscheiden zu knnen. Da eine Festplatte in der Regel 16 logische Schreib- und Lesekpfe hat und die Sektorengre auf Festplatten normalerweise 512 Byte betrgt, ergibt sich eine ber diese Methode ansprechbare maximale Gesamtkapazitt von: B B (2.1)

Dies entspricht 504 MB. Bei lteren Computern bedeutet dies, dass vom BIOS aus nur auf Daten zugegriffen werden kann, die innerhalb der ersten 504 MB auf der Festplatte liegen. Modernen Betriebssystemen macht dies nichts aus, da sie zur Kommunikation mit dem Festplattenadapter nicht das BIOS verwenden, sondern direkt kommunizieren. Allerdings wird zum Laden von Betriebssystemen (Booten) immer noch das BIOS verwendet, da zu diesem Zeitpunkt nichts anderes zur Verfgung steht. Seit ungefhr 1994 wird von fast allen Rechnern der LBA (Logical Block Addressing) Modus verwendet. Hierbei wird die Tatsache ausgenutzt, dass bei der Adressierung eines Festplattenbereichs Platz fr 255 Schreib/Lesekpfe zur Verfgung steht. Das BIOS akzeptiert dann auch Adressen mit einer hheren Kopfnummer als 16 und rechnet sie in die tatschliche Adresse auf der Festplatte um. Dieser Modus lsst sich bei vielen Rechnern im BIOS-Setup ein- und ausschalten. Er sollte aktiviert sein, wenn Sie eine oder mehrere Festplatte(n), die grer als 504 MB sind, verwenden. Durch den LBA-Modus ergibt sich eine neue Grenze: Aus Sicht von Programmen, die mit dem BIOS kommunizieren, lassen sich nun 1024 Zylinder, 63 Sektoren und 255 Kpfe mit einer Sektorgre von blicherweise 512 Byte, also B B (2.2)

gleich 7,844 GB ansprechen. Die Bootpartitionen aller Betriebssysteme mssen also stets innerhalb dieses Bereiches liegen. Bei SCSI-Festplatten sieht die Situation anders aus: Hier entspricht die Festplattengeometrie, die der SCSI-Adapter an das BIOS weitergibt, selten der wirklichen Festplattengeometrie, da der SCSI-Adapter ebenfalls umrechnet. Aus diesem Grund lassen sich bei SCSI-Festplatten schon lange Festplattenbereiche oberhalb der 504MB-Grenze ohne einen Konikt mit der 1024-Zylinder-Grenze ansprechen.

2.6 Planung der Partitionierung

31

Achtung: Entscheidend ist in jedem Fall, welche Festplattengeometrie das BIOS berichtet. Da Linux im Normalfall mit Hilfe von BIOS-Routinen geladen wird, muss sich die Bootpartition immer unterhalb der Grenze von 1024 Zylindern benden. Wenn es also auf Ihrem System eng ist, sollte eine wenigstens 10 MB groe Partition unterhalb der 1024-Zylinder-Grenze angelegt werden, in die alle zum Starten des Systems notwendigen Dateien kommen. Dies sind bei Debian GNU/Linux die Dateien im Verzeichnis /boot. Der Rest des Systems kann dann auf eine Partition oberhalb dieser Grenze oder auf eine zum Booten nicht verwendbare Festplatte installiert werden.
Falls Sie ein DOS-basiertes Betriebssystem verwenden wie MS-Windows 98, knnen Sie das Programm Fips verwenden, um sich die Festplattengeometrie anzeigen zu lassen. Die Aufgabe dieses Programms besteht eigentlich darin, DOS-Partitionen zu verkleinern ohne sie zu lschen, was normalerweise nicht mglich ist. Fips wird ausfhrlich in Kapitel 3.3.1 beschrieben.

Achtung: Die aktuelle Version des Bootloaders LILO sowie das zu Debian gehrende MBR-Programm untersttzen eine BIOS-Erweiterung (int 0x13 large disk exentsion), mit der Betriebssysteme auch von Festplattenbereichen oberhalb der ersten 1024 Zylinder gestartet werden knnen. Falls Sie sich sicher sind, dass das BIOS Ihres Rechners diese Erweiterung ebenfalls untersttzt, brauchen Sie auf die 1024-Zylinder-Grenze keine Rcksicht zu nehmen. Es wird immer Grenzen fr die Ansprechbarkeit von Speichern geben, wenn sie auch weiter und weiter hinaus geschoben werden. Insofern bleibt das Problem, nur der Zahlenwert wchst.

2.6 Planung der Partitionierung


Eine Partition pro Betriebssystem ist das Minimum, aber damit hat man keine Freude. Dem zu installierenden Debian GNU/Linux sollen mindestens zwei Partitionen zur Verfgung stehen: 1. Eine Partition fr das System und die Daten der Benutzer, 2. ein Swapbereich zur Untersttzung des Arbeitsspeichers. Besser und keineswegs schwierig ist eine weiter gehende Partitionierung. Hierzu lassen sich Empfehlungen, aber keine ins Einzelne gehende Anweisungen geben. 2.6.1 Gre und Anzahl von Swapbereichen Die Menge des Festplattenplatzes, der dem System zum Auslagern von Inhalten des Arbeitsspeichers, also zum Swappen, bereitgestellt werden sollte, ist abhngig von der Menge tatschlich vorhandenen Arbeitsspeichers im System sowie der Menge

32

2 Planung der Installation

des Arbeitsspeichers, der vom Betriebssystem selbst und von den Anwendungen bentigt wird. Besonders speicherhungrig sind Anwendungen, die groe Datenmengen im Speicher halten mssen wie Programme zur Bildbearbeitung. Da der Zugriff auf ausgelagerte Speicherbereiche wesentlich langsamer ist als der Zugriff auf Daten im Arbeitsspeicher, ist Swappen nur ein Notbehelf, der einen Stillstand des Systems verhindert. Das Kommando top zeigt unter anderem die Benutzung des Swapbereiches an. Als Faustformel gilt, dass Swapbereiche in der zwei- bis dreifachen Gre des Arbeitsspeichers (RAMs) verfgbar sein sollten, bei kleinem Arbeitsspeicher eher mehr. Hat man nur eine Platte, legt man auch nur einen Swapbereich an. Optimal ist es, den Swapbereich in der Mitte der Festplatte unterzubringen, da dann die Wege der Schreib- und Lesekpfe im Mittel am krzesten sind. In Systemen mit mehreren Festplatten sollen sich die Swapbereiche auf den schnellsten Platten benden. Dabei ist es gnstig, wenn diese kaum fr andere Zwecke benutzt werden. 2.6.2 Bootpartition Von der Bootpartition wird Debian GNU/Linux nach dem Einschalten gestartet. Auf ihr brauchen nur die zum Starten notwendigen Dateien zu liegen, die sich bei Debian GNU/Linux in der Regel im Verzeichnis /boot benden. Diese Dateien reichen nur zum Starten des Systems. Gegebenenfalls die 1024-Zylinder-Grenze beachten, siehe oben. Ist Debian GNU/Linux das einzige Betriebssystem auf dem Rechner, erbrigt sich eine besondere Bootpartition; das System startet aus der nachfolgend beschriebenen Rootpartition. 2.6.3 Rootpartition (Installationspartition) Dies ist die Partition, auf die nach dem Start des Betriebssystemkerns als erstes zugegriffen wird. Das Wurzelverzeichnis dieser Partition ist gleichzeitig das Wurzelverzeichnis des gesamten Dateisystems, in dem die Benutzer arbeiten. Auf der Rootpartition benden sich in der Regel zumindest die Dateien und Programme, die nach dem Start von Linux automatisch ausgefhrt werden. Dazu gehren Kongurationsprogramme (etwa um das richtige Tastaturlayout einzustellen) oder Programme, mit denen Dienste im Hintergrund gestartet werden (siehe Kapitel 13). Die Rootpartition enthlt darber hinaus alle Programme, die notwendig sind, um eine Anmeldung des Systemverwalters an das System zu ermglichen und ihm soviel Funktionalitt zur Verfgung zu stellen, dass er das System im Fall eines Fehlers reparieren kann. Gre der Rootpartition Bei einfachen Installationen beherbergt diese Partition auch alle brigen installierten Komponenten des Systems und stellt Platz fr Benutzerdaten und zustzliche

2.6 Planung der Partitionierung

33

Anwendungen Verfgung. Sie sollte mindestens so gro sein, dass auf ihr ein Basissystem installiert werden kann (1 GB). Bis jetzt haben wir also ein bereits lauffhiges System mit zwei oder drei Partitionen: gegebenenfalls Bootpartition Swapbereich Rootpartitition Zur optimalen Verwendung des Rechners sollten weitere Partitionen hinzugefgt werden. 2.6.4 Weitere Partitionen Zustzliche Partitionen werden unter Linux/UNIX ins Rootdateisystem eingehngt. Diesen Vorgang bezeichnet man als mounten (siehe Kap. 5.17.2). Gesichtspunkte beim Anlegen weiterer Partitionen sind: Eine Partition (ein Dateisystem) kann sich nicht ohne weiteres ber die Grenze einer Festplatte hinaus erstrecken. Die Verwendung mehrerer Platten bedingt mehrere Partitionen. Unterschiedliche Dateisysteme (DOS, ext2, Reiser etc.) erfordern getrennte Partitionen. Wenn eine Partition voll luft, lsst sich auf ihr nicht mehr schreiben. Deshalb ist es zweckmig, die Home-Verzeichnisse (/home) der Benutzer aus der Rootpartition herauszunehmen. Dasselbe gilt fr Systemdateien, deren Gre im Betrieb stark schwankt (/var), sowie fr temporre Dateien (/tmp). Auch groe zustzliche Anwendungsprogramme knnen unerwartet viel Platz belegen (/opt). Das Ziehen von Sicherungskopien (Backups) ist einfacher, wenn Daten mit hnlichen Anforderungen zusammen in einer Partition liegen. Beispielsweise ndern sich Benutzerdaten hug, Systemprogramme selten. Temporre Daten werden gar nicht gesichert. Spiegeln einer Partition auf einer zweiten Platte ist im Prinzip ein stndiges, automatisches Backup. Aus Sicherheitsgrnden mchte man vielleicht eine Partition nur zu bestimmten Zeiten oder nur zum Lesen mounten. In einer bestehenden Partition wird es eng. Das Einhngen einer weiteren Partition ist der einfachste Weg, um Luft zu schaffen. Eine zu feine Unterteilung hat den Nachteil, dass leicht eine Partition voll luft, whrend in der Nachbarschaft noch reichlich Platz ist. Umpartitionieren ist nicht direkt unmglich, aber immer eine heikle Angelegenheit. Bei einer durchschnittlichen Linux/UNIX-Installation kommen wir ungefhr zu folgender Einteilung: gegebenenfalls Bootpartition (sehr klein, /boot) Rootpartition (gro, / ) Swapbereich (klein)

34

2 Planung der Installation

Home-Verzeichnisse der Benutzer (gro, /home) Vernderliche Systemdateien (mittel, /var) temporre Dateien (mittel, /tmp) erforderlichenfalls zustzliche Anwendungen (mittel bis gro, nach voraussichtlichem Bedarf, /opt) Zahlenwerte fr die Gren anzugeben, ist bei der heutigen schnellen Entwicklung der Hardware wenig hilfreich. Alles, was nicht in einer eigenen, nach dem Start einzuhngenden Partition untergebracht wird, kommt in die Rootpartition. Im folgenden nden Sie ein paar allgemeine Tipps, die Sie bei der Partitionierung beherzigen sollten: Bestimmte Betriebssysteme (dazu gehren alle DOS-basierten Betriebssysteme wie MS-Windows 95/98) knnen nur von einer primren Partition auf der ersten Festplatte gestartet werden. Da auf jeder Festplatte nur eine erweiterte Partition existieren kann, sollte man die bentigten primren Partitionen an den Anfang der betreffenden Festplatte legen und dahinter die erweiterte Partition mit den darin enthaltenen logischen Partitionen folgen lassen. Falls nmlich beispielsweise mit einer primren Partition gestartet wird, dann eine erweiterte Partition mit logischen Partitionen folgt, und dahinter wieder eine primre Partition liegt, so kann auf einer solchen Festplatte nur noch eine einzige primre Partition eingerichtet werden, da keine zweite erweiterte Partition eingerichtet werden darf und bereits drei primre Partitionen vergeben wurden. Es muss nicht der gesamte auf einer Platte zur Verfgung stehende Platz partitioniert sein. So kann es bei einer groen Festplatte durchaus sinnvoll sein, nur den tatschlich bentigten Platz zu partitionieren und den restlichen Raum zunchst unpartitioniert zu lassen. Zwischen den einzelnen Partitionen sollte kein ungenutzter freier Platz liegen (viele Festplattenpartitionierungsprogramme verhindern dies auch). Auf Festplatten, von denen kein Betriebssystem gestartet werden soll, das auf eine primre Partition angewiesen ist, reicht es in der Regel aus, eine einzige erweiterte Partition anzulegen, in der dann nach Bedarf logische Partitionen erzeugt werden. Wenn Linux mit einem anderen Betriebssystem zusammen verwendet wird, das zur Benennung von Partitionen Laufwerksbuchstaben verwendet, sollten freier Platz und die Partitionen fr Linux mglichst weit hinten liegen. Falls nmlich eine solche Partition eines Tages wieder fr das Betriebssystem mit den Laufwerksbuchstaben sichtbar wird, ordnet es eventuell einigen Partitionen neue Laufwerksbuchstaben zu. Das kann dazu fhren, dass dieses Betriebssystem seine eigenen Daten nicht mehr ndet und deswegen nicht mehr funktioniert.

2.7 Wahl einer Bootmethode


Normalerweise wird nach dem Einschalten des Rechners das installierte Betriebssystem automatisch gestartet. Falls jedoch mehrere Betriebssysteme (z. B. MS-

2.7 Wahl einer Bootmethode

35

Windows und Debian GNU/Linux) auf dem Rechner installiert sind, muss entschieden werden, welches dieser Systeme standardmig geladen wird und wie zwischen den Systemen ausgewhlt werden kann. Whrend der Basisinstallation besteht zum einen die Mglichkeit, eine geeignete Bootdiskette herzustellen, mit der Debian GNU/Linux gestartet werden kann, ohne dass nderungen an der Startkonguration des Rechners notwendig sind. Es wird dann normalerweise das bisher installierte System gestartet und Debian GNU/Linux nur ber die Bootdiskette. Zum anderen kann das Programm lilo (Linux Loader) installiert werden, mit dem Linux automatisch von der Festplatte gestartet wird. Dabei gibt es zwei Mglichkeiten, nmlich die Installation von lilo in den Master-Boot-Record (MBR), wodurch die bisherige Bootkonguration berschrieben wird, oder die Installation in den Bootsektor der Rootpartition, wodurch der Start von Linux aus einem bestehenden MBR heraus oder mit einem Bootmanager mglich ist. Mit dieser Konguration ist es nicht mglich, Debian GNU/Linux von einer anderen als der ersten Festplatte zu starten. Wird das System auf eine andere Platte installiert, muss zunchst mit einer Diskette, von CD/DVD oder von DOS aus gestartet werden und lilo dann manuell angepasst werden (siehe Kap.: 10.3). Neben der oben beschriebenen Bootkonguration, wie sie whrend der Basisinstallation eingerichtet wird, bestehen folgende Mglichkeiten, um beim Start des Rechners zwischen verschiedenen Betriebssystemen auswhlen zu knnen: 1. Der Bootloader lilo wird so konguriert, dass er neben Linux auch andere Betriebssysteme (dazu gehren DOS, MS-Windows und IBM-OS/2) starten kann. Nach dem Einschalten des Rechners hat man dann die Mglichkeit, zwischen den Betriebssystemen zu whlen. Dabei kann ein Vorgabewert festgelegt werden, sodass ohne Eingabe immer MS-Windows oder Debian GNU/Linux gestartet wird (Default, siehe Kap. 10.3). 2. Das Startprogramm vom MS-Windows wird so konguriert, dass es auch Linux starten kann. 3. Darber hinaus stehen auerhalb von Debian GNU/Linux eine Reihe weiterer Bootmanager zur Verfgung, die teilweise komfortable Oberchen zum Auswhlen und Starten von Betriebssystemen bieten. Bekannt sind der Bootmanager des Betriebssystems IBM-OS/2 sowie der zum Programm Partition Magic gehrende Bootmanager. Auch in der Linux-Welt nden sich weitere Bootmanager wie grub. 4. Falls an der Startkonguration des Rechners nichts verndert werden soll und neben Linux ein DOS-basiertes Betriebsystem (nicht MS-Windows NT/2000 oder IBM-OS/2) verwendet wird, so kann Debian GNU/Linux auch von DOS aus gestartet werden. Hierzu wird das Programm loadlin verwendet, das den Linux-Kern von der Festplatte in den Speicher liest und dann die Kontrolle an Linux bergibt. Der Nachteil einer solchen Konguration besteht darin, dass der Linux-Kern auf eine von DOS aus zugngliche Partition kopiert werden muss (siehe Kap. 10.2.2).

36

2 Planung der Installation

2.8 Wahl des Installationsmediums


Die letzte wichtige Entscheidung vor der Installation des Systems ist, von wo installiert werden soll. Hier stehen mehrere Mglichkeiten zur Auswahl: Installation von CDs9 . Der vollstndige Satz umfasst gegenwrtig 9 CDs, aber nur die ersten sind wichtig. Demnchst werden die CDs durch DVDs ersetzt. Installation von der Festplatte. Falls der Zielrechner unvernetzt ist und entweder nicht mit einem CD-Laufwerk ausgestattet ist oder das CD-Laufwerk whrend des Installationsprozesses nicht angesprochen werden kann, knnen die Installationsdaten unter einem anderen Betriebssystem auf die Festplatte kopiert werden und von dort whrend der Installation gelesen werden. Dieses Verfahren bentigt viel Festplattenkapazitt (ungefhr 1.5 GB, wenn der Inhalt von zwei CDs auf die Festplatte kopiert wird). Installation von einem anderen Rechner im Netz. Im einfachsten Fall hat hier ein Rechner (Server) die Installations-CD/DVD im Laufwerk, und andere Rechner beziehen die Installationsdateien von diesem. Voraussetzung dafr ist ein NFSServer (siehe Kapitel 695), der die zur Installation bentigten Dateien bereitstellt. Installation direkt von einem Debian-Server. Falls der zu installierende Rechner ber einen schnellen Internetanschluss verfgt, kann komplett auf die CD/DVDs verzichtet werden. Bei einer Modem-Verbindung ist es in der Regel kostengnstiger, von CD/DVDs zu arbeiten. Eine ISDN-Verbindung, besser eine EthernetVerbindung mit hoher bertragungsgeschwindigkeit (ADSL oder Standleitung) zum Debian-Server ist jedoch eine Alternative zur Installation von CD/DVD. Eine Liste der ofziellen Debian-Server ist unter http://www.debian.org/ misc/README.mirrors verfgbar. Alternativ knnen Sie in Ihrem Netz einen eigenen FTP- oder HTTP-Server einrichten, der die Installations-Dateien zur Verfgung stellt.

9 Falls Sie Schwierigkeiten haben, sich Debian-CDs zu besorgen, und Zugriff auf das Internet haben, suchen Sie mal bei Ebay (elektronischer Markt) nach dem Stichwort debian.

3 Vorbereitung der Installation

3.1 Fr die Installation bentigte Informationen


Dieser Abschnitt beschreibt, welche Informationen Sie whrend der Installation bentigen und wo Sie diese Informationen nden. Neben den hier genannten sollten Sie sich die aktuellen Informationen auf den CD/DVDs (Verzeichnis dists/woody/main/disks-i386/current/doc/ der ersten CD), falls Sie die Installation von CD/DVD durchfhren wollen, und im Internet unter dem URL http: //www.debian.org/releases/ durchlesen. Dort nden sich aktuelle Hinweise fr die Installation. Der URL leitet weiter zu einem prozessorspezischen Installation Manual in englischer Sprache, Umfang etwa 50 Seiten A4. Zum Glck ist nicht alles wichtig; ein betrchtlicher Teil der Informationen steht auch im vorliegenden Buch. 3.1.1 Informationen zur Hardware Zunchst sollten Sie sich ber Ihre Hardware informieren. Im Normalfall werden die wichtigen Komponenten des Computers zwar automatisch erkannt, bei einigen Gerten insbesondere lteren ist dies jedoch nicht mglich. Hardwarekomponenten, die direkt (und nicht ber eine Schnittstelle) mit dem Computer verbunden sind, belegen Systemressourcen. Das knnen physikalisch vorhandene Leitungen im Rechner sein, die nur einmal vorhanden sind und nicht von mehreren Gerten gleichzeitig benutzt werden drfen. Dabei sind die folgenden Ressourcen zu unterscheiden: IO-Adressen IO steht fr Input/Output oder Ein-/Ausgabe. IO-Adressen sind Bereiche im Adressbereich des Computers, ber die Hardwarekomponenten Daten von anderen Systemkomponenten (in der Regel dem Hauptprozessor) erhalten, beziehungsweise an sie senden. Die IO-Adresse dient als Bezeichner fr die Basisadresse des betreffenden Speicherbereichs und wird in hexadezimaler

38

3 Vorbereitung der Installation

Schreibweise angegeben. Hexadezimalen Zahlen wird das Krzel 0x vorangestellt, um die Schreibweise von der dezimalen zu trennen1. Interruptnummern Hardwareinterrupts sind Signale, die von einer Hardwarekomponente an den Hauptprozessor geschickt werden, in der Regel um zu verlangen, dass der Hauptprozessor eine Bedingung behandelt, die in der betreffenden Komponente eingetreten ist. Beispielsweise kann eine parallele Schnittstelle, an die ein Drucker angeschlossen ist, einen Interrupt dann senden, wenn der Drucker alle bereits empfangenen Daten bearbeitet hat und bereit ist, neue Daten zu empfangen. Hierdurch wird dem Betriebssystem erspart, immer wieder nachzuschauen, ob der Drucker gerade bereit ist, Daten zu empfangen. Auf Computern der Intel-Architektur stehen 15 Interrupts oder IRQs zur Verfgung, die ursprnglich nur jeweils einer Hardwarekomponente zugeordnet sein durften. Bei PCI-Gerten ist allerdings auch Interruptsharing mglich, was bedeutet, dass sich zwei oder mehr Komponenten einen Interrupt teilen. DMA-Kanal DMA bedeutet Direct Memory Access oder direkter Speicherzugriff. Hardwarekomponenten knnen ber DMA direkt in den Speicher schreiben, ohne hierzu den Prozessor zu bemhen. Dies ermglicht hohe Transferraten von und zu solchen Komponenten. Ein DMA-Kanal kann nur an ein Gert zur Zeit vergeben sein. Dieses Verfahren wird von lteren Hardwarekomponenten benutzt, die ber den ISA-Bus mit dem Rechner verbunden sind. Die Informationen darber, welche Systemressourcen von welcher Hardwarekomponente benutzt werden, sollten Sie in den Unterlagen zu Ihrem Computer bzw. zu den darin eingebauten Komponenten nden. Viele Karten sind dafr geeignet, unterschiedliche Ressourcen zu verwenden. Dabei wird ber Jumper2 auf der Karte oder spezielle Software zwischen den zu verwendenden Ressourcen ausgewhlt. Darber hinaus lassen sich viele neuere Karten (PnP- oder Plug-and-PlayKarten) direkt vom Betriebssystem kongurieren. Sie knnen dem Betriebssystem ber ein Protokoll mitteilen, welche Ressourcen sie verwenden, woraufhin die passenden Ressourcen ausgewhlt werden, mit denen das Gert dann konguriert wird. Zu dieser Familie von Gerten gehren auch die ISA-Plug-and-Play-Gerte, die unter Linux nur dann benutzt werden knnen, wenn sie entweder vom BIOS oder von einem Programm unter Linux zur Verwendung bestimmter Ressourcen konguriert wurden (siehe Kapitel 12.7, S. 444). Falls Sie einige der im folgenden genannten Informationen nicht nden knnen und auf dem betreffenden Rechner bereits ein Betriebssystem installiert ist, knnen Sie auch dieses verwenden, um sich die belegten Ressourcen anzeigen zu lassen. Unter MS-Windows knnen Sie dazu den Gertemanager verwenden. Falls auf dem Rechner bereits ein Linux-System installiert ist, knnen Sie die Programme lsdev (S. 825) und procinfo (S. 847) verwenden, um die Ressourcen der von diesem System eingebundenen Hardwarekomponenten anzuzeigen. In einer Arbeitsumgebung wie
Diese Konvention unterscheidet sich von der unter DOS/MS-Windows gebruchlichen Konvention, hexadezimalen Zahlen den Buchstaben h nachzustellen. 2 Jumper sind kleine Stecker, die dazu dienen, Kontaktstifte miteinander zu verbinden.
1

3.1 Fr die Installation bentigte Informationen

39

KDE nden sich unter dem Menpunkt Einstellungen (Preferences) diesbezgliche Werkzeuge. Die folgenden Informationen sollten vorliegen, bevor Sie mit der Installation beginnen: Festplattenadapter Handelt es sich um ein (E)IDE oder um ein SCSI-System? SCSI Welchen SCSI-Adapter verwenden Sie (Hersteller und Chipsatz)? Festplatten An welche Adapter sind die Festplatten angeschlossen? Bei (E)IDEAdaptern sollten Sie fr jede Festplatte wissen, an den wievielten Adapter sie angeschlossen ist und ob sie dort als Master oder als Slave arbeiten. Bei SCSIAdaptern sollten Sie die SCSI-IDs der Festplatten kennen. Tipp: Bei vielen Computern werden diese Informationen gleich nach dem Einschalten auf dem Bildschirm ausgegeben. CD/DVD-Laufwerke Hier gilt das gleiche wie bei Festplatten: An welchen (E)IDEAnschluss sind die Laufwerke angeschlossen, beziehungsweise welche SCSI-ID haben sie? ltere CD-Laufwerke sind oft ber eine eigene Schnittstelle oder die Soundkarte mit dem Rechner verbunden. Wenn dies so ist, sollten Sie den Typ der Schnittstelle und des Laufwerks sowie die davon belegten Systemressourcen kennen. Arbeitsspeicher (RAM) Menge in MB. Netzkarte Hersteller, Typ (z. B. Ethernet) Chipsatz und belegte Ressourcen (IOAdresse, IRQ-Nummer und DMA-Kanal, falls von der Karte benutzt). Videokarte Hersteller, Chipsatz und Menge des Grakspeichers auf der Karte. Bildschirm Frequenzbereich fr horizontale und vertikale Frequenzen. (Graphikkarten- und Bildschirmdaten werden nur bentigt, falls Sie Debian GNU/Linux mit einer graschen Oberche betreiben wollen.) Schnittstellen Falls IO-Adressen oder Interruptnummern der seriellen oder parallelen Schnittstellen vom Standard abweichen, mssen Sie diese unter Umstnden kennen, um Gerte wie Maus, Modem oder Drucker betreiben zu knnen. Maus Hier mssen Sie zum einen den Typ Ihrer Maus, also das Protokoll, mit dem sich Maus und Rechner unterhalten (meist Microsoft, Logitech oder PS/2), und die Schnittstelle, ber welche die Maus mit dem Rechner verbunden ist (unter DOS/MS-Windows meist COM1 oder COM2), kennen. Plug and Play Welche der verwendeten Karten sind PnP-Karten? Knnen diese Karten eventuell auch in einen nicht-Plug-and-Play-Modus versetzt werden (etwa durch Jumper) und welche Ressourcen bentigen sie dann? Modem (falls vorhanden) Typ und Schnittstelle (COM1, COM2 etc). Bei internen Modems zustzlich Interruptnummer und IO-Adresse. Diese Information ist nur dann notwendig, falls Sie die Installation ber eine Modem-basierte Netzverbindung durchfhren wollen. Unter Umstnden bentigen Sie ein Handbuch Ihres Modems mit dem untersttzten Befehlssatz. Notebooks Typ des verwendeten PCMCIA-Adapters sowie Informationen darber, welche PCMCIA-Gerte angeschlossen werden sollen Es gibt zwei weitverbreitete Typen von PCMCIA-Adaptern: Der am hugsten verwendete heit

40

3 Vorbereitung der Installation

i82365, seltener ndet man einen Adapter vom Typ tcic. Sie sollten unbedingt wissen, welcher von beiden in Ihr Notebook eingebaut ist. Drucker Hersteller, Typ und Schnittstelle (unter DOS/MS-Windows oft LPT1 oder LPT2). Da Drucker unter Debian nicht ber druckerspezische Treiber angesteuert werden, sondern zu druckende Dokumente durch entsprechende Filterprogramme geschickt werden, welche die Dokumente in ein von dem Drucker zu interpretierendes Format umwandeln, sollte man ein Handbuch des Druckers zur Verfgung haben, das Auskunft darber gibt, welche Formate der betreffende Drucker untersttzt, beziehungsweise mit welchen anderen Druckern er kompatibel ist. 3.1.2 Netzdaten Je nachdem, ob ihr Rechner keine Netzverbindung hat, nur gelegentlich mit einem Netz (etwa ber eine Einwahlverbindung) verbunden ist oder dauerhaft in einem Netz integriert sein soll, brauchen Sie einige weitere Informationen. Das Netz kann auch spter konguriert werden. Falls Sie aber eine Installation ber eine Netz- oder Einwahlverbindung planen, mssen Sie die Konguration whrend der Installation durchfhren. Keine Netzverbindung In diesem einfachsten Fall brauchen Sie sich nur einen netten Namen fr ihren Rechner auszudenken. Einwahlverbindung ber PPP Auch in diesem Fall drfen Sie sich den Namen Ihres Rechners ausdenken. Darber hinaus brauchen Sie die folgenden Daten von ihrem Internetprovider: Telefonnummer zur Einwahl Tonwahl oder Pulswahl auf Ihrer Telefonleitung Benutzernamen samt Passwort bei Ihrem Provider Authentizierungsmethode (PAP, CHAP oder seltener skriptgesteuerte Verfahren) Ob Sie von ihrem Provider dynamisch eine IP-Adresse zugewiesen bekommen (Normalfall) oder ob statische IP-Adressen verwendet werden. Bei statischen Adressen mssen Sie Ihre eigene IP-Nummer, eventuell auch die IPNummer der Gegenstelle kennen. An welche serielle Schnittstelle ist Ihr Modem angeschlossen? Maximale bertragungsrate Ihrer seriellen Schnittstelle (gewhnlich 115200 Bit/s). Ob Ihr Internetprovider Ihnen dynamisch den zu verwendenden DNS-Server zuweist oder ob Sie Ihr System fest fr die Benutzung eines bestimmten DNS-Servers kongurieren mssen. Im zweiten Fall bentigen Sie die IPAdresse des DNS-Servers Ihres Providers. Dauerhafter Netzanschluss (Standleitung) Wenn Ihr Rechner dauerhaft mit einem Netz verbunden ist, sollten Sie die Netzeinstellungen whrend der Installation des Basissystems vornehmen.

3.1 Fr die Installation bentigte Informationen

41

In vielen Ethernet-Netzen wird eines der Protokolle DHCP oder BOOTP zur automatischen Konguration der Netzeinstellungen der Rechner benutzt. Dieses Verfahren wird von Debian untersttzt. Sie brauchen dann lediglich den Namen Ihres Rechners zu kennen (der Ihnen u. U. von Ihrem Netzverwalter zugewiesen wurde). Falls in Ihrem Netz kein BOOTP oder DHCP zur Verfgung steht, bentigen Sie die folgenden zustzlichen Informationen, die Sie von Ihrem Netzverwalter erhalten: Die IP-Adresse ihres Rechners (z. B. 192.168.0.11), die Netzmaske ihres Netzes (z. B. 255.255.255.0), die IP-Adresse Ihres Netzes (z. B. 192.168.0), die Broadcast-Adresse ihres Netzes (dies ist gewhnlich die gleiche Adresse wie Ihre IP-Adresse, nur dass die letzte Ziffer 255 lautet, also z. B. 255.255.255.255), eventuell den Namen Ihres Rechners, ansonsten drfen Sie sich einen aussuchen, (falls vorhanden) den Namen Ihrer Internetdomne, (falls vorhanden) die IP-Adresse des Nameservers (DNS), (falls vorhanden) die IP-Adresse des Gateways (z. B. 192.168.0.254). 3.1.3 Installationsquellen Abhngig davon, welche Quelle Sie whlen und je nach der Hardware Ihres Rechners bentigen Sie vor der Installation bestimmte Dateien und mssen u. U. einige Installationsdisketten vorbereiten. Installation von ofziellen Debian-CD/DVDs Installation von nicht-ofziellen CD/DVDs Wenn Sie nicht-ofzielle DebianCD/DVDs benutzen, sollten Sie wissen, ob diese CD/DVDs dem Layout der ofziellen CD/DVDs entsprechen und falls dies nicht der Fall ist wissen, wo sich die Debian-Distribution bendet. Installation ber lokales Netz (NFS) Wenn Sie diese Installationsmethode verwenden wollen, mssen Sie die Adresse des Rechners kennen, der die Installationsdaten zur Verfgung stellt. Weiter mssen Sie das Verzeichnis, in dem sich die Installationsdaten benden und das von dem Server im Netz bereitgestellt (exportiert) wird, kennen. Installation von einem Debian-Internetserver Auch hier mssen Sie die Adresse des Servers kennen und darber hinaus wissen, in welchem Verzeichnis sich die Debian GNU/Linux Distribution auf dem Server bendet. Falls Sie die zur Zeit aktuelle und stabile Version von einem ofziellen Debian-Spiegel installieren wollen, so ist dies /debian/dists/stable. Installation von der Festplatte Wenn Sie die bentigten Dateien vor der Installation unter einem anderen Betriebssystem auf eine Festplatte kopiert haben, mssen Sie wissen, auf welcher Festplatte und in welchem Verzeichnis sich die Debian-Pakete dort benden (siehe Kap. 3.3.2).

42

3 Vorbereitung der Installation

Achtung: Falls die Debian-Pakete auf ihrem Installationsmedium anders angeordnet sind als auf den ofziellen CD/DVDs beziehungsweise den ofziellen Debian-Servern im Internet, sollten Sie sich vor der Installation einen berblick darber verschaffen, wo sich welche Pakete benden (siehe Kap. 8.2.2).

3.2 Vorbereitung der Installationsmedien


Weil es sich bei den Installationsprogrammen um Linux-Programme handelt, muss bereits vor der eigentlichen Durchfhrung der Installation ein kleines Linux-System auf dem Rechner laufen. Dieses kann natrlich nicht von der Festplatte gestartet werden. Das Installationssystem verwendet deswegen eine Ramdisk. Dabei handelt es sich um einen Bereich des Arbeitsspeichers, der wie eine Festplatte formatiert ist und in dem sich alle zu Beginn der Installation bentigten Dateien benden. Der vorbereitete Inhalt dieser Ramdisk wird vor dem Start des Installationssystems aus einer Datei in den Speicher geladen, sodass dem Kern danach ein hnliches Dateisystem zur Verfgung steht wie beim Start von der Festplatte. Normalerweise wird das Installationssystem zunchst mit einer speziellen Bootdiskette geladen, auf der sich der Kern bendet. Nachdem dieser geladen und gestartet wurde, wird dann eine weitere Diskette benutzt, auf der sich die Dateien fr das Installationssystem benden. Der Inhalt dieser Diskette wird dann in eine Ramdisk geladen. Danach wird die Ramdisk eingebunden und das Installationssystem gestartet. Um die hierzu bentigten Disketten zu erstellen, stehen Disketten-Abbilddateien (image) auf den Debian-CD/DVDs und -Servern bereit, die mit einem speziellen Programm auf die Disketten kopiert werden. In einigen Fllen ist es jedoch nicht notwendig, die Disketten zu erstellen, weil das Installationssystem auf eine andere Art gestartet wird: Sofern der Rechner das Starten von CD/DVD ermglicht und Sie eine bootfhige Installations-CD/DVD verwenden, brauchen Sie nachdem Sie sich vergewissert haben, dass Ihr BIOS richtig konguriert ist (siehe auch Kap. 3.4) nur die CD/DVD in das Laufwerk zu legen und den Rechner zu starten. Das Installationssystem wird dann von der CD/DVD geladen. Falls auf dem Rechner ein DOS-basiertes Betriebssystem (einschlielich MSWindows 95/98) installiert ist, knnen Ramdisk und Kern mit Hilfe des DOSProgrammes loadlin direkt unter DOS in den Arbeitsspeicher geladen und gestartet werden. 3.2.1 Auswahl der bentigten Disketten und Dateien Unabhngig davon, mit welchen Medien die Installation durchgefhrt wird, werden fr die einzelnen Phasen der Installation die folgenden Daten bentigt: Rescue-Diskette Auf dieser Diskette bendet sich der Kern fr das Installationssystem. Bei der Installation von CD/DVD aus wird der Inhalt dieser Diskette von

3.2 Vorbereitung der Installationsmedien

43

der CD/DVD geladen. Beim Start des Installationssystems von DOS aus wird der Kern aus einer Datei geladen. Rootdiskette Hier bendet sich der Inhalt der Ramdisk, die das Installationsprogramm mit den fr dieses Programm bentigten Dateien enthlt. Er wird bei der Installation von CD/DVD direkt von dieser geladen. Beim Start von DOS aus muss die Abbilddatei dieser Diskette zur Verfgung stehen. Treiber Neben dem Kern selbst werden Treiber fr Hardwarekomponenten wie Netzkarten bentigt, fr welche die Untersttzung im Standardkernel nicht enthalten ist. Basissystem Den grten Teil des Installationssystems bildet das Basissystem. Es handelt sich dabei um ein minimales Debian-System, das nach der Installation gestartet wird und von dem aus alle weiteren Komponenten installiert werden. Die hier beschriebenen Daten benden sich auf der ersten CD des ofziellen CD-Satzes im Verzeichnis dists/woody/main/disks-i386. Auf den Debian-Servern im Internet nden Sie diese Daten im Unterverzeichnis dists/woody/main/disks-i386 des Debian-Verzeichnisses auf diesen Servern. Eine Liste vieler Debian-Spiegelserver ist unter der Adresse http://www.debian.org/misc/README.mirrors verfgbar. In dem Verzeichnis disks-i386 benden sich verschiedene Unterverzeichnisse, deren Namen in der Regel aus einer Versionsbezeichnung und einem Datum bestehen. Wie sich vermuten lsst, benden sich in diesen Verzeichnissen unterschiedliche Versionen des Installations- und Basissystems. In der Regel sollten Sie die neueste Version verwenden. Auf diese zeigt ein symbolischer Link namens current. Wenn Sie den deutschen Debian-Spiegel verwenden, knnen Sie die neuesten Installationsdateien unter dem folgenden URL beziehen: http://ftp.de. debian.org/debian/dists/woody/main/disks-i386/current/. Die beschriebenen Daten benden sich in diesem Verzeichnis in unterschiedlichen Ausfhrungen. Welche Ausfhrung Sie bentigen, ist einerseits davon abhngig, von welchem Medium aus die Installation durchgefhrt werden soll, und andererseits von Ihrem Diskettenlaufwerk. Datei- und Verzeichnisnamen werden dabei relativ zum Verzeichnis current angegeben. Rettungsdiskette (Rescue-Floppy) Die Rescue-Floppy (Rettungsdiskette) trgt diesen Namen, weil sie neben ihrer Funktion als Bootdiskette auch spter genutzt werden kann, um das System zu starten, falls Debian GNU/Linux sich aus irgendeinem Grund nicht anders starten lsst. Die Diskette enthlt das Programm zum Starten von Linux (den Bootloader) sowie den Linux-Kern. Start der Installation von CD/DVD Es brauchen keine Vorbereitungen getroffen zu werden. Start der Installation von DOS aus Auf einem Datentrger, der unter DOS angesprochen werden kann, bentigen Sie die Datei linux (den Kern), sowie das Programm loadlin.exe aus dem Verzeichnis dosutils. Die Dateien mssen nicht auf

44

3 Vorbereitung der Installation

Disketten geschrieben werden; aus Sicherheitsgrnden empehlt es sich dennoch, die Rescue-Diskette zu erzeugen. Start der Installation von Disketten Wenn Sie ein 5.25-Zoll-Diskettenlaufwerk besitzen, bentigen Sie das Diskettenabbild der Rescue-Diskette fr 5.25-ZollDisketten. Die Abbilddateien fr diesen Typ benden sich im Unterverzeichnis images-1.20. Der Name der Datei ist rescue.bin. Fr 3.5-Zoll-Disketten mit 1.44 MB Fassungsvermgen sind die Dateien aus dem Verzeichnis images-1.44 zu verwenden. Auch dort lautet der Name der Rescue-Disketten-Abbilddatei rescue.bin. In den Verzeichnissen images-1.44 und images-1.20 benden sich Unterverzeichnisse fr spezielle Kongurationen. Das Unterverzeichnis compact enthlt einen kleineren Kern, der lediglich gngige Hardware untersttzt. Wenn Sie einen Standard-PC ohne besondere Komponenten benutzten, knnen Sie die Dateien in diesem Verzeichnis benutzen. Der Vorteil der compact-Variante besteht darin, dass weniger Daten heruntergeladen werden mssen und hinterher weniger Speicherplatz durch nicht bentigte Treiber belegt wird. hnliches gilt fr das Unterverzeichnis ide+pci. Der Kern in diesem Verzeichnis untersttzt keine SCSI-Systeme. Im Verzeichnis safe bendet sich eine Variante, die fr Rechner mit problematischer Hardware gedacht ist, welche mit der StandardRescue-Diskette nicht gestartet werden kann. In diesen Verzeichnissen bendet sich ebenfalls eine Datei mit dem Namen rescue.bin, welche Sie alternativ zur Standarddiskette verwenden knnen. Achtung: Nach der Installation muss unter Umstnden der Standardkern installiert oder ein eigener Kern erstellt werden, damit Treiber fr alle Hardwarekomponenten zur Verfgung stehen. Rootdiskette Diese Diskette enthlt das Installationsprogramm (dbootstrap) sowie alle von diesem Programm bentigten Dateien und Verzeichnisse. Der Inhalt dieser Diskette wird nach dem Start des Kerns in eine Ramdisk geladen und vom Kern eingebunden, bevor das Installationssystem gestartet wird. Start der Installation von CD/DVD Es brauchen keine Vorbereitungen getroffen zu werden. Start der Installation von DOS aus Fr dieses Verfahren bentigen Sie die Datei root.bin aus dem Verzeichnis, aus dem Sie auch die Datei rescue.bin bezogen haben. Sie sollten die Datei im gleichen Verzeichnis speichern, in dem sich auch die Dateien linux und loadlin.exe benden. Start der Installation von Diskette Je nach Diskettentyp (1.44 MB oder 1.2 MB) bentigen Sie die Datei root.bin aus demselben Verzeichnis, aus dem Sie auch die Datei rescue.bin verwenden. Falls diese Datei sich dort nicht bendet, verwenden Sie die Version aus dem bergeordneten Verzeichnis.

3.2 Vorbereitung der Installationsmedien

45

Treiberdisketten Auf diesen Disketten benden sich Treiber, die nicht im Kern enthalten sind. Dazu gehren Treiber fr Netzkarten oder fr ltere CD-Laufwerke, fr die ein eigener Treiber bentigt wird. Es ist mglich, diese Treiber von der Festplatte, von einer CD/DVD oder von Disketten zu installieren. Bei Verwendung eines speziell angepassten Installationskernels ist sogar die Installation der Treiber aus dem Netz mglich. Falls auf das CD-Laufwerk jedoch nur mit besonderen Treibern zugegriffen werden kann und die entsprechenden Dateien sich nicht auf der Festplatte benden, ist es notwendig, diese Disketten zu erstellen und die Treiber von den Disketten zu installieren. Danach knnen die bentigten Treibermodule geladen werden, sodass hinterher die Installation der weiteren Systembestandteile von CD oder ber das Netz mglich sein sollte. Installation von CD/DVD Ist das Laufwerk ber einen (E)IDE- oder SCSI-Adapter mit dem Rechner verbunden, brauchen keine Vorbereitungen getroffen werden. Ansonsten mssen diese Dateien von Diskette oder Festplatte installiert werden. Installation von Festplatte Sie bentigen die Datei drivers.tgz, welche sich im Basisverzeichnis bendet. Wenn Sie die compact-Variante des Kerns verwenden, bentigen Sie die Datei drivers.tgz aus dem Unterverzeichnis compact des Basisverzeichnisses. Es empehlt sich, die entsprechende Datei im selben Verzeichnis wie die brigen Installationsdateien abzulegen. Installation von Diskette Je nach Diskettenformat bentigen Sie alle Dateien, deren Namen mit driver- beginnen, aus dem Verzeichnis fr Ihre Diskettengre. Wenn Sie eine spezielle Variante (z. B. safe oder compact) verwenden, bentigen Sie die driver-Dateien aus dem entsprechenden Unterverzeichnis des Verzeichnisses fr Ihre Diskettengre. Basissystem Nachdem Kern und Treiber installiert sind, wird der Installationsprozess mit der Installation des Basissystems fortgesetzt. Hierbei handelt es sich um ein kleines, lauffhiges Debian GNU/Linux System, von dem aus spter die Anwendungsprogramme installiert werden. Zur Installation des Basissystems bestehen die folgenden Mglichkeiten: Das Basissystem wird von CD/DVD installiert. Dies ist die einfachste Variante. Sie brauchen keine weiteren Vorbereitungen zu treffen. Das Basissystem wird von Festplatte installiert. Dieses Verfahren kommt in Betracht, wenn Sie die zur Installation bentigten Dateien unter einem anderen Betriebssystem heruntergeladen haben. Sie bentigen dann die Datei base2_2.tgz aus dem Basisverzeichnis. Es wird von einem Verzeichnis aus installiert, dass sich auf einem anderen Rechner bendet, der das entsprechende Verzeichnis ber NFS im lokalen Netz fr Ihren Rechner freigegeben hat. Die Datei base2_2.tgz muss sich auf diesem Rechner benden.

46

3 Vorbereitung der Installation

Es wird direkt aus dem Internet von einem Debian-Server heruntergeladen und installiert. Dieses Verfahren kommt nur dann in Betracht, wenn der Rechner ber eine feste, schnelle Internetanbindung verfgt. Einwahlverbindungen mit einem Modem oder ber ISDN sind hierzu nicht geeignet, weil die dafr bentigte Software vor der Installation des Basissystems noch nicht zur Verfgung steht. Sie mssen dann den URL zu dem Rechner und Verzeichnis kennen, von dem die Daten heruntergeladen werden knnen. Schlielich kann auch das Basissystem von Disketten installiert werden. Das ist der mhsamste Weg und heute kaum noch zumutbar. Paketdateien Sobald das Basissystem installiert ist, kann mit der Auswahl der gewnschten Pakete auf dem System begonnen werden. Diese knnen von CD/DVDs, einem NFS-Server, von Festplatte oder aus dem Internet heruntergeladen und installiert werden. 3.2.2 Herstellen der Installationsdisketten Nachdem die Diskettenabbilddateien beschafft sind, mssen sie auf Disketten geschrieben werden. Dies ist sowohl unter DOS als auch unter Linux mglich. Sie bentigen fr jede Diskettenabbilddatei eine leere, fehlerfreie Diskette. Diskettenerstellung unter DOS oder MS-Windows Unter DOS erfolgt das Erstellen der Disketten mit dem Programm rawrite2.exe. Sie nden das Programm im Unterverzeichnis dosutils des Basisverzeichnisses fr die Installationsdateien. Dieses Programm kann theoretisch auch von den DOSEingabeaufforderungen unter MS-Windows ausgefhrt werden. Gelegentlich sind hierbei jedoch Probleme aufgetreten, wobei die Daten fehlerhaft geschrieben wurden. Unter DOS sind die folgenden Schritte durchzufhren: Wechseln Sie in das Verzeichnis, in dem sich die Diskettenabbilddateien sowie das Programm rawrite2.exe benden. Angenommen, diese Dateien benden sich im Verzeichnis \deb_inst auf dem Laufwerk C:, so msste dazu zunchst folgendes Kommando eingegeben werden, um in das richtige Verzeichnis zu wechseln: C:\> cd \deb_inst Falls Sie die Dateien in einem anderen Verzeichnis oder auf einem anderen Laufwerk gespeichert haben, mssen Laufwerksbuchstabe und Verzeichnis entsprechend gendert werden. Legen Sie eine leere, fehlerfreie Diskette in das Diskettenlaufwerk ein. Geben Sie folgendes Kommando ein: C:\deb_inst\> rawrite -f rescue.bin -d a: -n

3.2 Vorbereitung der Installationsmedien

47

Hierbei steht rescue.bin, fr den Namen der Abbilddatei und a: fr den Laufwerksbuchstaben des Diskettenlaufwerks, in dem sich die Diskette bendet. Um eine andere Diskettenabbilddatei zu schreiben, ist das Kommando entsprechend anzupassen. Nachdem das Kommando ausgefhrt worden ist und auf dem Diskettenlaufwerk nicht mehr geschrieben wird (das Lmpchen erlischt), entfernen Sie die Diskette wieder aus dem Laufwerk und beschriften sie. Wiederholen Sie, falls notwendig, diese Schritte fr alle Disketten. Diskettenerstellung unter Linux Um die Disketten unter Linux herzustellen, ist es notwendig, direkt auf das Diskettenlaufwerk zugreifen zu knnen. Hierzu bentigen Sie, abhngig von der Konguration des Systems, unter dem Sie die Disketten herstellen, unter Umstnden Verwalter(root)-Rechte. Wechseln Sie in das Verzeichnis, in dem sich die Dateien benden. Angenommen dies ist ein Verzeichnis mit dem Namen debian_install, das sich unterhalb Ihres Home-Verzeichnisses bendet, so geben Sie an der Kommandozeile folgendes Kommando ein: joe@debian:~$ cd ~/debian_install Zum Beschreiben der Disketten wird das Kommando dd benutzt. Um beispielsweise die Rescue-Diskette zu erzeugen, ist folgendes Kommando einzugeben: joe@debian:~/debian_install$ dd if=resc1440.bin of=/dev/fd0 bs=512 conv=sync; sync Das abschlieende sync bewirkt, dass die Daten nicht zwischengespeichert, sondern sofort auf die Diskette geschrieben werden. Siehe auch dd (S. 789). Natrlich mssen auch hier der Dateiname sowie der Name des Diskettenlaufwerkes /dev/fd0 angepasst werden. Nachdem der Schreibvorgang beendet ist, entfernen Sie die Diskette und beschriften Sie sie. Wiederholen Sie diese Schritte fr alle Disketten, die Sie erzeugen mssen. Beschriften Sie die Disketten entsprechend. 3.2.3 Erzeugung von Bootdisketten fr andere Betriebssysteme Bevor Sie mit der Installation von Debian GNU/Linux beginnen, sollten Sie sicherstellen, dass Sie sich im Besitz funktionsfhiger Bootdisketten fr alle Betriebssysteme benden, die sich in Zukunft neben Linux auf dem Rechner benden sollen.

48

3 Vorbereitung der Installation

Erstellung von Bootdisketten unter DOS Unter DOS knnen Sie eine leere Diskette zur Bootdiskette machen, indem Sie an der DOS-Eingabeaufforderung das Kommando C:\> format a: /s eingeben, wobei a: der Laufwerksbuchstabe Ihres Diskettenlaufwerks mit der leeren Diskette ist. Auf dieser Diskette sollten Sie alle wichtigen DOS-Programme haben, mit denen Sie das System wieder reparieren knnen. Dazu gehren die Programme fdisk.exe, sys.com, chkdsk.exe oder scandisk.exe, edit.com, qbasic.exe (dieses Programm enthlt den Editor) sowie die Dateien cong.sys und autoexec.bat samt allen Kommandos und den von ihnen aufgerufenen Programmen, die notwendig sind, um ein benutzbares Minimalsystem zu erhalten. Erstellung von Bootdisketten unter anderen Betriebssystemen Falls Sie andere Betriebssysteme verwenden, lesen Sie bitte die Dokumentation dieser Systeme. Es gibt viele Wege, die sich von Version zu Version ndern. Zudem verfgen nicht mehr alle PCs ber Diskettenlaufwerke, sodass als alternatives Bootmedium auch Speicherkarten, CDs oder DVDs in Frage kommen.

3.3 Partitionierung unter einem anderen Betriebssystem


Die (Um-)Partitionierung der Festplatte(n) erfolgt normalerweise whrend der Installation von Debian GNU/Linux. Dazu muss freier Platz auf der Platte verfgbar sein. Im einfachsten Fall ist die Platte ganz leer. Zumindest muss auf einer Platte, die bereits Daten enthlt, noch ausreichend viel freier (nicht partitionierter) Platz brig sein oder durch Lschen entbehrlicher Partitionen geschaffen werden. Manchmal ist auf dem Computer bereits ein Betriebssystem installiert, das auch nach der Installation von Debian GNU/Linux verwendbar bleiben soll. Viele Betriebssysteme (z. B. MS-Windows) legen bei einer Standardinstallation eine einzige groe Partition auf jeder Festplatte an. Die Folge ist, dass alle auf solchen Partitionen enthaltenen Daten gelscht werden, wenn diese Partitionen whrend der Installation von Debian GNU/Linux gelscht oder berschrieben werden. Aus diesem Grund ist es notwendig, vor der Installation von Debian GNU/Linux Festplattenplatz freizugeben. Achtung: Die Umpartitionierung von Festplatten ist unter jedem Betriebssystem ein kritischer Vorgang, bei dem mit hchster Sorgfalt vorgegangen werden sollte und im Falle eines Fehlers smtliche Daten einer oder sogar aller Festplatten gelscht werden knnen. In jedem Fall sollte vor der Umpartitionierung ein komplettes Backup des gesamten Systems, wenigstens jedoch aller wichtigen persnlichen Daten und der Kongurationsdateien angelegt werden.

3.3 Partitionierung unter einem anderen Betriebssystem

49

Jedes Betriebssystem wird mit einem Programm zur Partitionierung ausgeliefert. Diese Programme tragen meist den Namen fdisk (so unter allen DOS-Varianten inklusive MS-Windows). Unter MS-Windows NT ist das Programm windisk (Festplattenmanager) fr diese Aufgabe verantwortlich. Diese Programme lschen bestehende Partitionen und legen neue an. Es besteht keine Mglichkeit, die Gre bestehender Partitionen zu verndern! Dies bedeutet, dass beim Aufteilen einer Partition alle Daten auf der Partition gelscht werden. Ist nur eine einzige Partition vorhanden wie bei einer standardmigen DOS/MS-Windows-Installation, muss vor dem Umpartitionieren der gesamte Festplatteninhalt gesichert und die Partition gelscht werden. Dann werden neue, kleinere Partitionen angelegt, und zum Schluss wird das Backup wieder zurckgespielt. Im Gegensatz zu normalen Partitionierungsprogrammen kann das auf der Debian-CD/DVD bendliche DOS-Programm ps.exe (Fips) in vielen Situationen die Verkleinerung von Partitionen, die mit einem der DOS-Dateisysteme FAT, VFAT oder FAT32 formatiert sind, bernehmen. Wenn Sie eines der Betriebssysteme DOS, MS-Windows 3.1/3.11/95/98 verwenden oder Sie MS-Windows NT mit einem solchen Dateisystem ausgestattet haben (eher unwahrscheinlich), knnen Sie Partitionen mit diesem Programm verkleinern, um weitere primre Partitionen zu erhalten. Diese temporre(n) Partition(en) lschen Sie whrend der Installation von Debian GNU/Linux und legen in dem dadurch frei gewordenen Platz neue Partitionen an. Alternativ zu Fips knnen auch verschiedene kommerzielle Programme wie Partition Magic benutzt werden, um Partitionen zu verkleinern und dadurch Festplattenplatz freizugeben. Fr Linux gibt es ein freies Programm namens parted, es kann unter dem URL http://www.gnu.org/software/parted/ bezogen werden. Unter Debian GNU/Linux steht es im Paket parted zur Verfgung. 3.3.1 Partitionsgren verndern mit Fips Das Programm Fips ermglicht, primre Partitionen aufzuteilen. Achtung: Damit das Programm sicher funktioniert, mssen die folgenden Voraussetzungen erfllt sein: Es knnen nur primre Partitionen verkleinert werden. Nach einer standardmigen DOS/MS-Windows Installation benden sich auf dem Rechner nur solche Partitionen. Falls Sie mehrere Festplatten oder mehrere primre Partitionen haben, mssen Sie wissen, welche primre Partition auf welcher Festplatte verndert werden soll. Die Partition muss mit den Dateisystemen FAT, VFAT oder FAT32 formatiert sein. Die Partition muss defragmentiert sein. Durch die Defragmentierung werden alle Dateien an den Anfang der Partition verschoben. Der Computer sollte mit einer DOS-Bootdiskette gestartet werden, bevor Fips ausgefhrt wird. Dadurch wird sichergestellt, dass keine anderen Programme whrend der Verkleinerung auf die fragliche Partition zugreifen.

50

3 Vorbereitung der Installation

Die zu verkleinernde Partition darf nicht von einem Festplattenmanager wie ONTrack oder EZDrive verwaltet werden. Fips wurde zwar in Hinblick auf grte Sicherheit geschrieben, alle wichtigen Daten sollten auch vor der Ausfhrung von Fips durch ein Backup gesichert werden. Fips sollte sich auf allen Debian-CD/DVD-Stzen benden. Auf den ofziellen CDs liegt es auf der ersten Binary-CD im Verzeichnis /tools/ps20, wobei die Zahl am Ende des Namens fr die aktuelle Versionsnummer steht. Wenn Sie das Programm auf den Ca/DVDDs nicht nden, knnen Sie es auch unter dem URL http://ftp.debian.org/tools/ aus dem Internet herunterladen. Dort sollten Sie ein Zip-Archiv nden, das einen Namen wie ps20.zip trgt, wobei auch hier die Zahl fr die Versionsnummer des Programms steht. Falls Sie kein Programm haben, mit dem Sie zip-Archive auspacken knnen, nden Sie dort auch eine Datei mit einem Namen wie unz512x3.exe. Hierbei handelt es sich um ein selbstentpackendes zip-Archiv, das die Programme unzip.exe und unzip386.exe enthlt, mit denen Sie zip-Archive von der DOS-Kommandozeile aus entpacken knnen. Zum Herunterladen von Dateien per FTP siehe Kap. 17.6.5. Wenn Sie die zipArchive verwenden, gehen Sie wie folgt vor: Legen Sie ein leeres Verzeichnis fr Fips an. Dieses Verzeichnis trgt beispielsweise den Namen ps und bendet sich im Wurzelverzeichnis des Laufwerkes C:. Geben Sie dazu folgendes Kommando ein: C:\> mkdir c:\fips Sie knnen dieses Verzeichnis spter lschen, wenn Sie mit der Partitionsverkleinerung fertig sind. Speichern Sie die beiden Dateien ps*.zip und unz*.exe (die Sterne stehen fr die Versionsnummern) in diesem Verzeichnis. Stellen Sie sicher, dass Sie sich auf dem richtigen Laufwerk benden: C:\> c: und wechseln Sie in das Verzeichnis: C:\> cd \fips Packen Sie die Datei mit den Unzip-Programmen aus: c:\fips\> unz512x3 Sie sollten am Bildschirm eine Liste der ausgepackten Dateien sehen. Jetzt knnen Sie das zip-Archiv des Programms Fips auspacken. Geben Sie dazu das Kommando c:\fips\> unzip386 fips20.zip ein. Achten Sie auch hier auf die Versionsnummer. Sie sollten am Bildschirm wieder eine Liste der ausgepackten Dateien sehen. Fips ist nun einsatzbereit.

3.3 Partitionierung unter einem anderen Betriebssystem

51

Fips wird mit einer ausfhrlichen Dokumentation geliefert. Es empehlt sich, diese zu lesen, bevor Sie mit der Verkleinerung beginnen. Die Dokumentation bendet sich in den Dateien ps.doc sowie ps.faq. Die Umpartitionierung mit Fips wird folgendermaen ausgefhrt: 1. Sichern Sie alle Dateien, die auf keinen Fall verloren gehen drfen, auf externe Datentrger wie CD/DVD oder Band. 2. Erstellen Sie eine DOS-Startdiskette. Legen Sie dazu eine leere Diskette in das Diskettenlaufwerk ein und geben Sie das Kommando C:\> format a: /s ein. Wenn Sie ein anderes Betriebssystem verwenden, mssen Sie sich anderweitig eine DOS-Startdiskette besorgen. 3. Auf die Startdiskette kopieren Sie die folgenden Dateien aus dem angelegten Fips-Verzeichnis oder von der CD/DVD: ps.exe, errors.txt und restorrb.exe. Dies knnen Sie mit dem Explorer, dem Dateimanager oder mit dem DOSKommando copy tun. Zustzlich sollten Sie sich auf diese Diskette weitere Hilfsprogramme wie scandisk bzw. chkdsk und fdisk kopieren. 4. Untersuchen Sie die zu verkleinernde Partition auf etwaige Fehler im Dateisystem. Bei Verwendung von DOS (ohne MS-Windows) ist dazu folgendes Kommando einzugeben: C:\> scandisk Bei lteren DOS-Versionen muss anstelle von scandisk das Kommando chkdsk benutzt werden. Bei Verwendung von MS-Windows klicken Sie im Explorer mit der rechten Maustaste auf das entsprechende Laufwerk im Verzeichnis Arbeitsplatz und whlen Eigenschaften, dann Extras und dann Jetzt prfen. Falls bei der Prfung Fehler auftreten, die behoben werden konnten, sollten Sie den Vorgang so lange wiederholen, bis keine Fehler mehr gefunden werden. Wenn dies nicht gelingt, ist mit Ihrer Partition etwas nicht in Ordnung, und Sie sollten Fips zunchst nicht ausfhren, sondern dem Fehler auf den Grund gehen. 5. Nun mssen Sie die Partition defragmentieren. Hierzu knnen Sie das Programm defrag verwenden, das mit einigen DOS-Versionen ausgeliefert wird. Das Kommando lautet: C:\> defrag Bei Verwendung von MS-Windows klicken Sie im Explorer wieder mit der rechten Maustaste auf das Laufwerk, whlen dann Eigenschaften, dann Extras und Jetzt optimieren. Achtung: Falls Ihnen DOS-Defrag oder MS-Windows mitteilt, das Laufwerk sei nicht oder nur wenig fragmentiert, mssen Sie es trotzdem defragmentieren, um sicherzustellen, dass alle Dateien im Anfangsbereich der Partition liegen!

52

3 Vorbereitung der Installation

Whrend der Defragmentierung darf kein anderes Programm aktiv sein, und Sie sollten nicht mit dem Computer arbeiten, damit ausgeschlossen ist, dass whrend dieses Vorgangs auf die Festplatte geschrieben wird. 6. Nach der Defragmentierung starten Sie den Computer von der Bootdiskette: Legen Sie dazu die Diskette in das Laufwerk und starten Sie den Computer neu. DOS wird nun von der Diskette geladen. Falls dies nicht der Fall ist, ist Ihr Rechner wahrscheinlich so eingestellt, dass er immer direkt von der Festplatte bootet. Sie ndern dies im BIOS-Setup des Rechners (siehe Kap. 3.4). 7. Sie haben jetzt ein Minimal-DOS, bei dem nicht einmal die Untersttzung fr deutsche Tastaturen vorhanden ist. Wenn Sie eine deutsche Tastatur verwenden, sind die Buchstaben y und z vertauscht. Den Doppelpunkt erreichen sie durch die Tastenkombination S HIFT-. Geben Sie das Kommando A:\> dir C: ein, um zu testen, ob DOS die Festplatte erkennt. Sie sollten das Wurzelverzeichnis Ihres ersten Laufwerkes unter DOS/MS-Windows sehen. 8. Nun knnen Sie Fips aufrufen. Dazu geben Sie das Kommando A:\> fips ein. Fips begrt Sie mit einigen Hinweisen und bittet Sie, eine Taste zu drcken. Nachdem Sie das getan haben, untersucht Fips, wieviele Festplatten Sie haben. Falls mehr als eine Festplatte gefunden wird, werden Sie gefragt, welche Festplatte Sie umpartitionieren mchten. Geben dazu die entsprechende Ziffer ein. 9. Fips untersucht nun die Partitionstabelle der Festplatte. Unter Umstnden werden Sie darauf hingewiesen, dass sich die wirkliche Festplattengeometrie nicht mit der deckt, die das BIOS berichtet. Dies ist in der Regel kein Problem, da nur die berichtete Festplattengeometrie entscheidend ist. 10. Falls Fips mehrere Partitionen auf der Festplatte ndet, werden Sie nun gebeten, die Partition auszuwhlen, die Sie verkleinern mchten. Whlen Sie die entsprechende Ziffer. Falls Sie sich nicht sicher sind, welche Partition die richtige ist, sollten Sie hier abbrechen, die Startdiskette entfernen und den Computer erneut starten. Untersuchen Sie unter ihrem normalen Betriebssystem, welche Partition die zu verkleinernde ist. 11. Fips fhrt nun eine Reihe von Tests durch, die gewhrleisten sollen, dass bei der Umpartitionierung kein Fehler passiert. Falls hierbei ein Fehler auftritt, wird das Programm abgebrochen.
Die aktuelle Version von Fips weigert sich, Dateisysteme mit den Typennummern mit den Nummer 0E und 0F zu verkleinern. Hierbei handelt es sich um einen mit MS-Windows 95 eingefhrten Dateisystemstyp, der laut Microsoft identisch mit den Dateisystemtypen 06 bzw. 05 ist, die von Fips problemlos verndert werden knnen. Wenn Fips Ihre Partition nicht verndert, weil ein solcher Dateisystemtyp gefunden wurde, knnen Sie versuchen, den Dateisystemtyp manuell zu ndern: Dazu starten Sie die Debian GNU/Linux Installation, wie in Kapitel 4.1 beschrieben. Bevor von der Installation irgendwelche Vernderungen an der Festplatte vorgenommen werden, knnen Sie dort die Festplatte verndern. Dabei nehmen Sie dann keine Vernderungen an der Partitionierung vor, sondern verndern den Dateisystemtyp der zu verkleinernden Partition von 0E auf 06, bzw. von 0F auf 05. Dies ist ausfhrlich in Kapitel 4.2.3 beschrieben. Danach brechen Sie die Debian-Installation

3.3 Partitionierung unter einem anderen Betriebssystem

53

ab und starten erneut mit der DOS-Bootdiskette, auf der sich Fips bendet. Jetzt sollte die Umpartitionierung funktionieren. Danach knnen Sie die Dateisystemtypen mit der beschriebenen Methode wieder auf die alten Werte setzen, falls erforderlich.

Falls Fips mit der Fehlermeldung Last cylinder is not free abbrechen sollte, obwohl Sie defragmentiert haben und sich gengend freier Platz auf der Partition bendet, kann die Ursache darin bestehen, dass bei der Defragmentierung bestimmte Dateien mit den Attributen read-only, system oder hidden nicht verschoben wurden. Sie knnen diese Attribute lschen, indem Sie an dem DOSPrompt im Wurzelverzeichnis der Partition das Kommando C:\> attrib -r -s -h *.* /s eingeben (MS-Windows sollte dabei nicht aktiv sein). Unter Umstnden ist es auch hilfreich, die Verwendung virtuellen Speichers in der Systemsteuerung von MS-Windows abzuschalten. Nach einer solchen Vernderung mssen Sie die Defragmentierung wiederholen. Nachdem Fips festgestellt hat, dass es die Partition verkleinern kann, werden Sie gefragt, ob Sie eine Sicherungskopie des Root- sowie des Bootsektors der Festplatte anlegen wollen. Beantworten Sie diese Frage unbedingt mit Y (Achtung: Um y einzugeben mssen Sie vermutlich die Taste z drcken). Sie werden dann gefragt, ob sich eine Bootdiskette im Laufwerk A: bendet. Da Sie von dieser gebootet haben, antworten Sie wieder mit Y. Die beiden Sektoren werden dann auf die Diskette gesichert. Nun knnen Sie die Gre der zu erstellenden Partition festlegen. Auf dem Bildschirm wird unten links die Gre der alten Partition, in der Mitte der Zylinder, bei dem die neue Partition beginnt, und rechts die Gre der neuen Partition angezeigt. Bedenken Sie, dass jedes Betriebssystem vom BIOS nur von einer Partition unterhalb der Grenze von 1024 Zylindern gestartet werden kann (siehe Kap.:2.5.3). Sie knnen diese Werte mit den Pfeiltasten verndern: Die Gre der alten Partition steigt durch die Pfeiltaste nach links und sinkt durch die Pfeiltaste nach rechts, die anderen Werte ndern sich entsprechend. Nachdem Sie die richtigen Werte eingestellt haben, besttigen Sie. Nun erscheint die Partitionstabelle, wie sie nach Durchfhrung der nderungen gelten wrde. Sie haben die Mglichkeit, fortzufahren oder von vorne zu beginnen. Prfen Sie die Tabelle auf ihre Richtigkeit und drcken Sie dann entweder C, um fortzufahren oder R, um von vorne zu beginnen. Wenn Sie das Programm abbrechen mchten, drcken Sie S TRG - C. Wenn Sie fortfahren, erhalten Sie einige Angaben zu dem neuen Bootsektor der Festplatte, wie er von Fips geschrieben wird und dann die Meldung Ready to write new partition scheme to disk. Wenn Sie sich sicher sind, dass alles richtig ist, drcken Sie die Taste Y. Der neue Sektor wird nun geschrieben. Falls Sie eine Fehlermeldung erhalten, die Ihnen mitteilt, dass der Sektor nicht geschrieben werden konnte, hat unter Umstnden trotzdem alles geklappt. Sie sollten jetzt in jedem Fall die Bootdiskette entfernen und versuchen, Ihr System neu zu starten. Wenn dies funktioniert, sollten Sie ein zustzliches, unformatiertes Laufwerk sehen. Prfen Sie alle Laufwerke bis auf das neue mit chkdsk,

12.

13.

14.

15.

16.

54

3 Vorbereitung der Installation

scandisk oder MS-Windows (siehe oben), um sicherzugehen, dass Ihr altes Betriebssystem mit der neuen Partitionierung zurecht kommt. 17. Falls ein Fehler aufgetreten ist, starten Sie den Rechner wieder mit der vorbereiteten Diskette und geben das Kommando: A:\> restorrb ein. Sie werden gefragt, ob Sie den alten Bootsektor zurck schreiben mchten, antworten Sie hierauf mit Y (bzw. Z) und starten Sie den Rechner erneut, wenn der alte Bootsektor zurckgeschrieben wurde. Sie sollten jetzt wieder die gleiche Konguration vornden wie vor dem Vorgang und mssen nun manuell umpartitionieren, um Debian GNU/Linux zu installieren. Nachdem die Umpartitionierung mit Fips abgeschlossen ist, haben Sie eine zustzliche primre Partition. Diese kann whrend der Installation von Debian GNU/Linux gelscht werden. In dem dadurch entstehenden freien Bereich kann dann eine erweiterte Partition mit mehreren logischen Partitionen angelegt werden. In diese logischen Partitionen installieren Sie Linux. 3.3.2 Manuelles Umpartitionieren unter anderen Betriebssystemen Wenn die Verkleinerung bestehender Partitionen nicht mglich ist und kein freier (unpartitionierter) Festplattenplatz zur Verfgung steht, muss eine manuelle Neupartitionierung durchgefhrt werden. Dabei sollte das Anlegen von Partitionen jeweils mit dem Partitionierungsprogramm desjenigen Betriebssystems durchgefhrt werden, das die entsprechenden Partitionen auch nutzen soll. Im allgemeinen ist die folgende Vorgehensweise empfehlenswert: 1. Sichern aller Daten, die die Umpartitionierung berleben sollen. 2. Erstellen und berprfen einer Bootdiskette fr das betreffende Betriebssystem. Auf dieser Bootdiskette sollen sich alle Werkzeuge benden, mit der das System neu gestartet und das Backup zurckgespielt werden kann. 3. Lschen von Partitionen mit dem Betriebssystem, das diese Partitionen verwendet, und Neuanlegen von Partitionen in dem dadurch entstandenen freien Platz im gleichen Arbeitsschritt. Dabei sollten nur solche Partitionen angelegt werden, die das entsprechende Betriebssystem nutzt. Der restliche freie Platz kann spter unter Linux partitioniert werden. 4. Neustart des Computers mit demselben Betriebssystem. Falls sich auf der gelschten Partition das Betriebssystem befunden hat: Neuinstallation des Betriebssystem in der neuen, kleineren Partition oder Wiederherstellen des Betriebssystems von einer Sicherungskopie. 5. Wiederherstellen aller gesicherten Daten. Als Beispiel soll im folgenden die Umpartitionierung unter DOS mit dem DOSProgramm fdisk erlutert werden.

3.3 Partitionierung unter einem anderen Betriebssystem

55

Umpartitionierung unter DOS oder MS-Windows 95/98 Achtung: Die im folgenden beschriebene Prozedur lscht alle Daten auf mindestens einer Partition! Gehen Sie sorgfltig vor, da im Falle eines Fehlers auch andere Partitionen mit den darauf enthaltenen Daten gelscht werden knnen! Sie sollten die folgende Anleitung einmal komplett durchlesen, bevor Sie damit beginnen, die beschriebenen Schritte auszufhren. 1. Vergewissern Sie sich, dass Sie im Besitz einer funktionsfhigen Bootdiskette fr Ihr Betriebssystem sind. Auf der Diskette muss sich das Programm format.com benden. 2. Falls Sie MS-Windows verwenden, beenden Sie es. Unter MS-Windows 95/98 whlen Sie dazu Start, Beenden und dann Computer im DOS-Modus starten. 3. Um das Programm fdisk aufzurufen, geben Sie folgendes Kommando ein: C:\> fdisk Es erscheint der in Abbildung 3.1 dargestellte Bildschirm.

Abbildung 3.1. Das DOS-Programm fdisk

4. Wenn sich in ihrem Computer mehr als eine Festplatte bendet, drcken Sie 5 3 (Wechseln der aktuellen Festplatte) und E INGABE. Es erscheint eine Liste aller Festplatten mit den von DOS zugeordneten Laufwerksbuchstaben. Whlen Sie die Festplatte durch Drcken der richtigen Ziffer und besttigen Sie die Auswahl. Sie gelangen wieder in das Hauptmen, dort sollte jetzt oben die richtige Festplatte angezeigt sein (aktuelle Festplatte).
3 Diesen Menpunkt erscheint nur dann, wenn es in dem Rechner tatschlich mehr als eine Festplatte gibt. Er ist deswegen in der hier gezeigten Abbildung nicht zu sehen.

56

3 Vorbereitung der Installation

5. Whlen Sie 4 und E INGABE, um sich die Partitionierungsdaten der Festplatte anzeigen zu lassen. berprfen Sie anhand der angezeigten Daten, ob Sie die richtige Festplatte ausgewhlt haben und identizieren Sie die Partition, die gelscht werden soll. (Falls es nur eine primre Partition gibt, ist dies 1.) Wenn sich auf der Festplatte eine erweiterte Partition bendet, werden Sie gefragt, ob die logischen Laufwerke innerhalb dieser angezeigt werden sollen. Whlen Sie J und E INGABE, um sich diese anzeigen zu lassen. Danach drcken Sie E SC, um wieder ins Hauptmen zu gelangen. 6. Wenn Sie sich nicht sicher sind, welche Partition die zu lschende ist, wiederholen Sie die vorherigen beiden Punkte so lange, bis Sie die richtige Partition identiziert haben. Sie knnen nun auch E SC drcken, um das Programm zu verlassen und den Vorgang abzubrechen. 7. Drcken Sie 3 und E INGABE, um eine Partition zu lschen. 8. Whlen Sie aus, ob Sie eine primre DOS-Partition (1), eine erweiterte DOSPartition (2) oder eine logische Partition (3) innerhalb einer erweiterten Partition lschen mchten (siehe Kapitel 2.5.1). Erweiterte Partitionen lassen sich mit dem Programm nur lschen, wenn Sie keine logische Partitionen (logische Laufwerke) mehr enthalten. Drcken Sie die entsprechende Taste und besttigen Sie. 9. Es erscheint eine Warnung, und die vorhandenen Partitionen des entsprechenden Typs werden aufgelistet. Whlen Sie die richtige aus und besttigen Sie. Zur Sicherheit werden Sie aufgefordert, den Namen der Partition (Datentrgerbezeichnung) einzugeben; er ist in der Liste im oberen Teil des Bildschirms mit aufgefhrt. Geben Sie den Namen an und besttigen Sie (falls die Partition keinen Namen hat, drcken Sie einfach E INGABE). 10. Sie werden nochmals gefragt, ob Sie sich sicher sind, besttigen Sie mit J und E INGABE. 11. Die Partition ist gelscht. Drcken Sie E SC, um wieder ins Hauptmen zurckzukehren. 12. Gegebenenfalls weitere Partitionen lschen. 13. Jetzt knnen Sie neue (kleinere) Partitionen anlegen. Bettigen Sie dazu die Tasten 1 und E INGABE. 14. Whlen Sie aus, ob Sie eine primre DOS-Partition (1), eine erweiterte DOSPartition (2) oder eine logische Partition innerhalb einer erweiterten Partition (3) anlegen mchten. Falls Sie eine primre Partition gelscht haben, auf der das Betriebssystem installiert war und sie dieses wieder auf einer neuen verkleinerten Partition unterbringen wollen, mssen Sie wieder eine primre DOS-Partition (1) anlegen. Besttigen Sie ihre Auswahl. 15. Sie werden nun gefragt, ob der maximal verfgbare Speicherplatz der Partition zugeordnet werden soll. Weil Sie eine kleinere Partition anlegen wollen, whlen Sie N und drcken E INGABE. 16. Es wird angezeigt, wieviel Platz zum Anlegen der Partition zur Verfgung steht. Geben Sie die Gre der Partition, die Sie fr Ihr altes Betriebssystem verwenden mchten, ein und besttigen Sie.

3.3 Partitionierung unter einem anderen Betriebssystem

57

17. Falls Sie fr Ihr altes Betriebssystem weitere Partitionen anlegen mchten, gehen Sie analog vor. Beachten Sie, dass das Programm nicht ermglicht, auf einer Festplatte mehr als eine primre Partition anzulegen. Sie knnen lediglich eine erweiterte Partition mit darin enthaltenen logischen Laufwerken erzeugen. Wenn Sie eine erweiterte Partition erzeugen, springt das Programm danach direkt zum Erzeugen logischer Laufwerke. Wenn Sie weitere primre Partitionen auf derselben Festplatte bentigen sollten, legen Sie diese spter mit dem Betriebssystem an, das diese bentigt. Fr Debian GNU/Linux brauchen Sie jetzt keine weiteren Partitionen anzulegen. 18. Falls es sich bei einer der gelschten Partitionen um eine Partition handelte, von der Sie ihr Betriebssystem gestartet haben und Sie nun eine neue, kleinere dafr vorgesehen haben, mssen Sie diese Partition als aktiv markieren. Drcken Sie dazu 2 E INGABE und whlen Sie die Partition aus. Danach besttigen Sie und drcken E SC, um wieder ins Hauptmen von fdisk zu gelangen. 19. Wenn Sie mit der Partitionierung fertig sind, drcken Sie im Hauptmen nochmals E SC. Sie erhalten die Mitteilung, dass Ihr Rechner neu gestartet wird. Falls Sie die Partition mit Ihrem Betriebssystem gelscht haben, mssen Sie nun von der vorbereiteten Bootdiskette starten. Drcken Sie eine Taste, um den Rechner neu zu starten. Sollte Ihr Rechner nicht von der Diskette starten, kann das daran liegen, dass im BIOS die Bootreihenfolge falsch eingestellt ist. (Siehe Kap. 3.4). 20. Nun knnen Sie Ihre Daten auf der neuen, verkleinerten Partition wieder herstellen bzw. das Betriebssystem neu installieren.

Welcher Laufwerksbuchstabe entspricht welcher Gertedatei unter Linux?


Unter den Betriebssystemen IBM-OS/2, MS-Windows und DOS werden Speichermedien wie Diskettenlaufwerke und Festplattenpartitionen ber Laufwerksbuchstaben angesprochen. Diese Laufwerksbuchstaben werden mit einigen Ausnahmen whrend der Startphase des Betriebssystems vergeben und ndern sich danach nicht mehr. Unter Linux/UNIX gibt es das Konzept der Laufwerksbuchstaben nicht: ganze Festplatten, einzelne Partitionen oder Laufwerke fr auswechselbare Datentrger wie Disketten werden ber Gertedateien angesprochen. Ein weiterer Unterschied besteht darin, dass unter Linux alle Partitionen zur Verfgung stehen, jedoch vom Systemverwalter entschieden wird, ob diese auch ins Dateisystem eingebunden (gemountet) werden sollen. Unter den oben genannten Betriebssystemen werden hingegen automatisch grundstzlich alle Partitionen, die einen Dateisystemtyp aufweisen, von dem das System meint, es knne damit umgehen, ber Laufwerksbuchstaben ins Dateisystem eingebunden. Whrend der Installation von Debian GNU/Linux mssen Sie unter Umstnden neue Partitionen auf dem freien Bereich Ihrer Festplatte(n) anlegen und mindestens eine Partition angeben, auf die das System installiert werden soll. Darber hinaus werden Sie vermutlich einen Swapbereich (siehe Kap. 2.6.1) anlegen. Vielleicht mchten Sie auch die Partitionen Ihres alten Betriebssystems unter Linux einbinden,

58

3 Vorbereitung der Installation

um auf Ihre alten Daten zugreifen zu knnen. Da Linux von Laufwerksbuchstaben nichts wei, mssen Sie bei diesen Ttigkeiten die Linux-Gertedateien angeben. Achtung: Fr unerfahrene Anwender, die Debian GNU/Linux auf einen Computer installieren wollen, auf dem sich bereits ein anderes Betriebssystem bendet, ergibt sich die Schwierigkeit, anhand der Linux-Gertedateinamen Festplatten und Partitionen wiederzuerkennen, von denen sie nur die Laufwerksbuchstaben unter MS-Windows oder DOS wissen. Es ist deswegen zu empfehlen, die Partitionierungsdaten unter allen installierten Betriebssystemen zu sammeln, bevor mit der Installation von Debian GNU/Linux begonnen wird. Anhand von Informationen wie Partitionstyp (primr oder logisch), Partitionsgre usw. ist es dann mglich, die Partitionen unter Linux wiederzuerkennen. Im folgenden wird deswegen beschrieben, wie diese Informationen unter verschiedenen Betriebssystemen sichtbar gemacht und auf welche Weise Partitionen benannt werden. 3.3.3 Laufwerksbuchstaben unter DOS und MS-Windows Die Partitionstabelle knnen Sie sich unter DOS anzeigen lassen, in dem Sie das Programm fdisk folgendermaen aufrufen: C:\> fdisk /status Es erscheint dann eine Ausgabe, die sinngem der folgenden entspricht:
Festpl. 1 Lw. C: D: MByte 1028 24 251 502 243 1028 1028 frei 0 benutzt 100%

2 E:

100%

In dem System benden sich zwei Festplatten mit mehreren Partitionen, wobei nur drei dieser Partitionen von DOS einen Laufwerksbuchstaben zugewiesen bekommen haben. DOS-basierte Betriebssysteme vergeben Laufwerksbuchstaben whrend der Startphase nach dem folgenden Verfahren: 1. Der erste Laufwerksbuchstabe, der an eine Festplattenpartition vergeben wird, ist C:, A: und B: sind fr Diskettenlaufwerke reserviert. 2. Partitionen, deren Dateisystemtyp auf ein darauf bendliches Dateisystem zurckschlieen lassen, das DOS nicht kennt wie Linux- oder NTFS-Partitionen, werden bergangen und erhalten keinen Laufwerksbuchstaben. 3. Zunchst werden Laufwerksbuchstaben an die jeweils erste primre Partition auf jeder Festplatte vergeben.

3.3 Partitionierung unter einem anderen Betriebssystem

59

4. Danach werden Laufwerksbuchstaben an logische Partitionen in erweiterten Partitionen vergeben. Dabei erhalten zunchst die logischen Partitionen auf der ersten Festplatte in der Reihenfolge ihrer Anordnung Laufwerksbuchstaben, dann die logischen Partitionen auf der zweiten Festplatte und so weiter. 5. Zuletzt erhalten die zweiten und dritten primren Partitionen jeder Festplatte Laufwerksbuchstaben. 3.3.4 Vergabe von Laufwerksbuchstaben unter MS-Windows NT/2000 Unter MS-Windows NT verwenden Sie das Programm windisk.exe (Festplattenmanager), um die Partitionierungsdaten auszugeben. Das Programm zeigt Ihnen fr jede Festplatte unterschiedlich gefrbte Bereiche, die primren oder erweiterten Partitionen entsprechen. Gleichzeitig wird angezeigt, welcher Laufwerksbuchstabe an welche Partition vergeben wurde. Auch hier sollten Sie fr jede Festplatte die einzelnen Partitionen (in der richtigen Reihenfolge), die zugeordneten Laufwerksbuchstaben, die Information, ob es sich um primre oder erweiterte Partitionen handelt sowie die Gre und ob die Partition unter Linux gelscht werden darf, notieren. 3.3.5 Zuordnung von Gertedateien unter Linux Linux verwendet zum Ansprechen ganzer Festplatten oder einzelner Partitionen wie fr Hardware im allgemeinen sogenannte Gertedateien. ber diese Dateien knnen die Partitionen roh beschrieben und gelesen werden, das heit, auf dieser Ebene gibt es keine Dateien oder Verzeichnisse, sondern nur Bytes. Um solche Partitionen dann geordnet verwenden zu knnen, werden sie wie unter anderen Betriebssystemen formatiert und dann in das Dateisystem eingebunden (gemountet, siehe Kap. 5.17.2). Die Gertedateien benden sich unter Linux/UNIX im Verzeichnis /dev, gegebenenfalls in Unterverzeichnissen. Die Benennung der Festplatten und Partitionen verluft nach folgendem Schema: Zunchst erhlt jede Festplatte als Ganzes (ohne Rcksicht auf Partitionen) eine Gertedatei zugewiesen: Dabei heit die erste (E)IDE-Festplatte hda, die zweite hdb die dritte hdc und so weiter. hd steht hierbei fr Harddisk (Festplatte). SCSI-Festplatten erhalten die Namen sda, sdb usw. Da es auf jeder Festplatte nur maximal vier primre Partitionen geben kann (einschlielich einer erweiterten), erhalten diese die Namen hda1, hda2, hda3 und hda4 auf der ersten (E)IDE-Festplatte, beziehungsweise hdb1, hdb2, hdb3 und hdb4 auf der zweiten (E)IDE-Platte usw. Bei SCSI-Festplatten ist bei den Namen wieder das h durch ein s auszutauschen. hdb2 wrde die zweite primre Partition auf der zweiten (E)-IDE-Festplatte bezeichnen, hingegen sdc1 die erste primre Partition auf der dritten SCSI-Platte. Daraufhin folgen die logischen Partitionen in einer eventuell vorhandenen erweiterten Partition: Die logischen Partitionen auf der ersten (E)IDE-Festplatte

60

3 Vorbereitung der Installation

wrden beispielsweise hda5, hda6, hda7 usw. heien, wobei hda6 die zweite logische Partition auf der ersten (E)IDE-Platte bezeichnet. Analog dazu wre sdb9 die fnfte logische Partition auf der zweiten SCSI-Festplatte. Es ist wichtig zu verstehen, dass die Gertedateien unabhngig davon vorhanden sind, ob die zugehrige Partition wirklich existiert. Im Gegensatz zu DOS oder MSWindows, wo der Laufwerksbuchstabe D: auf jedem System eine andere Bedeutung haben kann (zweite Partition auf erster Festplatte, CD-Laufwerk oder zweite Festplatte) reprsentiert sdb3 unter Linux immer die dritte primre Partition auf der zweiten SCSI-Platte. Falls eine solche Partition nicht vorhanden sein sollte und man trotzdem darauf zugreift, gibt es eine Fehlermeldung. Viele Gertedateien werden auf Vorrat angelegt, was nichts schadet. CD/DVD-Laufwerke bekommen die gleichen Bezeichnungen wie Festplatten, wenn sie an einen (E)IDE-Adapter angeschlossen sind. So wrde ein CD-Laufwerk, dass an den zweiten Anschluss des ersten IDE-Adapters angeschlossen wre durch die Gertedatei /dev/hdb reprsentiert werden. SCSI-CD-Laufwerke erhalten dagegen andere Namen. So lautet der Name des ersten SCSI-CD-Laufwerks /dev/scd0, das zweite heit /dev/scd1 usw. 3.3.6 Ein komplexes Beispiel

Tabelle 3.1. Beispiel fr die Reprsentation von Partitionen durch Gertedateien und durch Laufwerksbuchstaben unter verschiedenen Betriebssystemen. (erw.) steht fr erweiterte primre Partition

Festplatte prim. P. log. P. Dsystem Win 98 Win NT Linux Kommentar 1 (EIDE) 1 VFAT C: C: /dev/hda1 Start Win 98 2 (erw.) 1 NTFS D: /dev/hda5 Start Win NT 2 ext2 /dev/hda6 Start Debian 3 VFAT D: E: /dev/hda7 Daten Win 98 2 (SCSI) 1 (erw.) 1 NTFS F: /dev/sda5 Daten Win NT 2 Swap /dev/sda6 Swap Linux 3 (SCSI) 1 1 ext2 /dev/sdb5 Daten Linux Frei 4 (CD) 0 iso9660 E: G: /dev/hdb CD-Laufwerk In einen Computer seien eine EIDE-Festplatte, ein CD-Laufwerk (an den EIDEAdapter als Slave angeschlossen) sowie ein SCSI-Adapter mit zwei daran angeschlossenen Festplatten eingebaut. Das BIOS des Rechners sei so konguriert, dass es Betriebssysteme nur von der EIDE-Festplatte startet. Auf dem Computer sollen die Betriebssysteme Debian GNU/Linux, MS-Windows NT und MS-Windows 98 installiert werden. Dazu muss jedes dieser Betriebssysteme eine Partition auf dieser Platte haben. Tabelle 3.1 zeigt eine sinnvolle Partitionierung fr diese Situation

3.4 BIOS-Einstellungen

61

mit den entsprechenden Laufwerksbuchstaben, wie sie von den beiden MicrosoftBetriebssystemen vergeben werden, und den Gertedateinamen unter Linux mit einer kurzen Beschreibung. Der Tabelle ist zu entnehmen, dass die verschiedenen Microsoft-Betriebssysteme ein- und derselben Partition unterschiedliche Laufwerksbuchstaben zuordnen. Die Gertedateien unter Linux/UNIX verhalten sich hingegen konsistent. Hier entspricht beispielsweise /dev/hda7 immer und auf jedem System der dritten logischen Partition auf der ersten EIDE-Festplatte.

3.4 BIOS-Einstellungen
Das BIOS ist fr den Start des Rechners nach dem Einschalten verantwortlich. Es fhrt eine Reihe von Tests durch und ldt ein Betriebssystem. Auerdem stellt es Funktionen zur Verfgung, die von Betriebssystemen und Programmen zum Zugriff auf die Hardware benutzt werden knnen, aber nicht mssen. Das BIOS bietet beim Systemsart Kongurationsmglichkeiten an. Hier sind unter Umstnden Einstellungen vorzunehmen, die die Installation von Debian GNU/Linux ermglichen und Bedingungen schaffen, unter denen Debian GNU/Linux auf dem System funktioniert. Darber hinaus lassen sich Optimierungen der Systemleistung erreichen. Dazu gehrt das Abschalten bestimmter Betriebsmodi, die fr andere Betriebssysteme zwar hilfreich sind, von Debian GNU/Linux jedoch nicht bentigt werden und unntig Systemressourcen beanspruchen. Im Lauf der Jahre sind die Einstellmglichkeiten immer umfangreicher geworden und selbst dem Fachmann heute nicht in allen Einzelheiten verstndlich. 3.4.1 Starten des BIOS-Setup-Programms Wie Sie das Setup-Programm Ihres BIOS erreichen, ist vom Hersteller abhngig. In den meisten Fllen drckt man hierzu die Taste E NTF, whrend der Rechner nach dem Einschalten den Arbeitsspeichertest durchfhrt. Bei einigen Computern wird das Setup-Programm aber auch durch Drcken der Taste E SC oder durch Tastenkombinationen wie S TRG-A LT-E SC aufgerufen. Falls Sie auch mit diesen Tastenkombinationen nichts erreichen, ziehen Sie die Dokumentation Ihres Rechners zu Rate. Wenn Sie zum ersten Mal nderungen am BIOS Ihres Computers durchfhren, sollten Sie sich diese notieren, damit Sie die alten Werte wieder herstellen knnen, falls Ihr Rechner nach den nderungen nicht mehr startet. Leider ist der Aufbau von BIOS-Setup-Programmen nicht standardisiert, sodass hier kein allgemeiner Hinweis gegeben werden kann, wo welche der im folgenden genannten Einstellungen gendert werden. In der Regel erscheint jedoch nach Aufruf des Programms ein Bildschirm, auf dem verschiedene Unterpunkte wie Standard

62

3 Vorbereitung der Installation

CMOS-Setup, Advanced Setup, Chipset Setup oder Save and Exit ausgewhlt werden knnen. Gewhnlich wird mit den Pfeiltasten oder der Maus zwischen den einzelnen Unterpunkten gewechselt und das Gewnschte mit der E INGABE Taste besttigt. Es erscheint dann ein weiterer Bildschirm, auf dem verschiedene Einstellungsmglichkeiten dargestellt werden, die wieder mit den Pfeiltasten ausgewhlt werden. Um die Verwirrung zu erhhen, unterscheiden sich auch die Methoden, durch die die Werte gendert werden, von Hersteller zu Hersteller: Manchmal erscheint nach Bettigung der E INGABE-Taste ein Fenster, in dem mit den Pfeiltasten zwischen verschiedenen Optionen gewhlt werden kann und dann wieder mit E IN GABE besttigt wird, und manchmal werden die Tasten S EITE - RAUF und S EITE RUNTER verwendet. In den meisten Fllen bendet sich auf dem Bildschirm ein Hinweis, welche Tasten wozu benutzt werden. Falls Sie eine der hier genannten Einstellungen nicht sofort nden, sollten Sie alle Untermens einmal durchsehen. Manchmal heien die entsprechenden Optionen etwas anders. Da nicht jede Kongurationsmglichkeit von jedem BIOS untersttzt wird, kann es auch sein, dass etwas wirklich nicht vorhanden ist. 3.4.2 BIOS-Einstellungen fr Linux Boot-Sequence Hiermit wird die Reihenfolge festgelegt, in der vom BIOS nach Datentrgern gesucht wird, von denen ein Betriebssystem geladen wird. Optimal ist die Reihenfolge Diskettenlaufwerk CD/DVD-Laufwerk Festplatte. Sie haben dann die Mglichkeit, Debian GNU/Linux direkt von der CD/DVD aus zu installieren, und knnen, falls dies nicht funktioniert, ebenso vom Diskettenlaufwerk starten. Beachten Sie, dass lteren BIOS die Mglichkeit zum Starten von CD/DVD fehlt. Oft nden Sie auch die unter DOS gebruchlichen Laufwerksbuchstaben. Achtung: Bei vielen SCSI-Systemen muss SCSI ebenfalls in die Bootreihenfolge aufgenommen werden, damit das System von SCSI-Festplatten gestartet werden kann. Aus Sicherheitsgrnden empehlt es sich, die Boot-Sequenz nach der Installation so einzustellen, dass zuerst oder nur von der Festplatte gestartet wird. Sonst ist es mglich, mit einer Bootdiskette oder -CD/DVD ohne Passwortschutz auf die Daten des Rechners zuzugreifen. Das BIOS-Setup selbst muss dann natrlich auch durch ein Passwort geschtzt werden. Virus Protection Falls vorhanden, schalten Sie diese Option ab. Nach der Installation knnen Sie diese BIOS-Eigenschaft wieder einschalten, falls Sie neben Debian GNU/Linux ein weiteres Betriebssystem verwenden, das keine so hohen Sicherheitsvorkehrungen mitbringt. Expanded Memory Falls vorhanden, schalten Sie diese Option ab oder reduzieren Sie sie so weit wie mglich. Debian GNU/Linux nutzt diese Form von Speicher nicht. Extended Memory Diesen Wert sollten Sie so hoch wie mglich einstellen. Shadow RAM Das ist die Mglichkeit, das System-BIOS sowie die Programme, die sich auf anderen Hardwarekomponenten benden, im Hauptspeicher zu spie-

3.4 BIOS-Einstellungen

63

geln, damit ltere Betriebssysteme, die diese Programme nutzen, schneller darauf zugreifen knnen. Unter Linux wird dies nicht bentigt und verbraucht nur unntig Arbeitsspeicher. Wenn Sie also Optionen wie Video BIOS Shadow oder C800 - CBFF Shadow entdecken, schalten Sie diese ab. Advanced Power Management (APM) APM wird vom Installationssystem nicht untersttzt. Wenn Sie es verwenden wollen, mssen Sie nach der Installation einen neuen Kern kompilieren (siehe Kapitel 11). Zur Installation sollten Sie APM komplett ausschalten. Wenn Sie spter dann einen Kern verwenden, der APM untersttzt, sollten Sie APM wieder aktivieren, aber alle weiteren Optionen, wie standby, sleep, suspend und vor allem Harddisk power-down abschalten, da solche Modi von Linux kontrolliert werden. 15-16MB Memory Hole Hiermit wird der genannte Speicherbereich ausgeschaltet, weil bestimmte Betriebssysteme damit nicht zurechtkommen. Debian GNU/Linux hat keine Probleme und erwartet den Speicher dort, wo er ist. Diese Eigenschaft muss ausgeschaltet sein. Internal und External Cache Der Cache-Speicher ist ein schneller Zwischenspeicher, in dem Daten abgelegt werden, die in den Arbeitsspeicher geschrieben oder von dort gelesen werden. Weil innerhalb kurzer Zeit statistisch fter auf die gleichen Speicherbereiche zugegriffen wird als auf andere, erhht sich durch den Einsatz von Cache die Arbeitsgeschwindigkeit des Rechners erheblich. Allerdings gibt es Berichte von Benutzern, deren Diskettenlaufwerke whrend der Installation bei eingeschaltetem Cache nicht richtig funktionierten. Wenn dieses Problem bei Ihnen auftritt, sollten Sie versuchen, ohne Cache zu arbeiten, ihn nach der Installation aber wieder einschalten. Systemzeit Falls der betreffende Rechner ausschlielich unter Linux/UNIX betrieben wird, empehlt es sich, die Systemuhr auf die Universal Time Coordinated (UTC), frher als Greenwich Mean Time bekannt, zu stellen. Diese Zeit ist in Deutschland zur Sommerzeit zwei Stunden und zur Winterzeit eine Stunde hinter der Ortszeit zurck. Nicht bentigte Komponenten Grundstzlich sollten Sie alle Eigenschaften des Systems abschalten, die Sie nicht verwenden. Oftmals benden sich auf einem Mainboard mit SCSI-Adapter zustzliche EIDE-Adapter, die abgeschaltet werden knnen, falls keine EIDE-Gerte angeschlossen sind. Gleiches gilt fr nicht benutzte serielle oder parallele Schnittstellen. IDE-Busmastering In Systemen mit IDE-Festplatten sollte IDE-Busmastering aktiviert werden, falls die Mglichkeit hierzu besteht. Dadurch knnen Festplattenzugriffszeiten verringert werden. PCI Latency Timer Dieser Wert ist gewhnlich niedrig gewhlt. Falls sich in dem Rechner keine ISA-Gerte benden, knnen Sie einen hheren Wert einstellen, um die Leistung des PCI-Systems zu erhhen. Abstand sollten Sie vom bertakten des Hauptprozessors (CPU) nehmen. Obwohl dies in einigen Fllen funktioniert, kann es dazu fhren, dass der Prozessor sich berhitzt und zerstrt wird. Der wahrscheinlichere Fall ist, dass unter Debian GNU/Linux in unregelmigen Abstnden Fehler auftreten, die nicht reproduzierbar sind, weil

64

3 Vorbereitung der Installation

der Prozessor nicht mehr genau arbeitet. Der Lebensdauer aller Elektronik sind hohe Temperaturen in jedem Fall abtrglich. Auerdem ist der Prozessortakt nur einer unter vielen Faktoren, die zur Systemleistung beitragen. Bei mangelnder Leistung gilt die erste Frage stets der Gre des Arbeitsspeichers. Weitere Hardwareeinstellungen Bei einigen Hardwarekomponenten ist es mglich, den Speicherbereich des Hauptspeichers anzugeben, in den Speicherbereiche der betreffenden Komponente eingeblendet werden sollen (mapped memory). Hier sollten Sie nach Mglichkeit Speicher-Adressen zwischen 0xA0000 und 0xFFFFFF, also zwischen 640 KB und 1 MB, whlen.

4 Durchfhrung der Basisinstallation

Auch auf die Gefahr hin, dass es langweilig wird: Jetzt besteht die letzte Mglichkeit, wichtige Daten zu sichern. Die Installation eines Betriebssystems ist immer ein Eingriff in die Organisation der Festplatte(n) des Rechners, bei dem kleine Fehler (etwa bei der Angabe einer zu formatierenden Partition) schwerwiegende Auswirkungen haben knnen. Debian GNU/Linux formatiert whrend der Installation zwar nicht ungefragt die Festplatte, aber natrlich knnen Missverstndnisse und Programmierfehler nicht hundertprozentig ausgeschlossen werden. Eine Sicherungskopie (Backup) zumindest der wichtigsten Daten auf einen externen Datentrger ist unbedingt zu empfehlen.

4.1 Der erste Start von Linux


Nachdem alles vorbereitet ist, kann das Installationssystem gestartet werden: Dieser Start sollte ein Kaltstart (Starkstrom ausschalten, warten und wieder einschalten) des Rechners sein, damit etwaige Initialisierungen von Hardwarekomponenten gelscht werden. 4.1.1 Start von der Diskette Schieben Sie die vorbereitete Startdiskette (Rescue-Diskette) in das Laufwerk und starten den Rechner. Nach kurzer Zeit und einiger Aktivitt des Laufwerks sollte ein Bildschirm mit einer Begrung erscheinen. Sollte dies nicht funktionieren, berprfen Sie bitte folgendes: Ist das BIOS so eingestellt, dass es als erstes versucht, den Rechner von der Diskette zu starten (siehe Kap.: 3.4)? Falls an dem Rechner mehrere Diskettenlaufwerke angeschlossen sind: Bendet sich die Diskette in dem Laufwerk, von dem der Rechner startet?

66

4 Durchfhrung der Basisinstallation

Ist das Diskettenlaufwerk als erstes Diskettenlaufwerk angeschlossen? Ein Indikator dafr, dass dies nicht so ist, ist die Zuordnung des Laufwerksbuchstabens B: fr das Diskettenlaufwerk unter DOS, obwohl es das einzige im Rechner ist. Unter Umstnden besteht dann die Mglichkeit, das BIOS des Rechners so einzustellen, dass es den Rechner von dem zweiten Diskettenlaufwerk startet. Ansonsten muss das Laufwerk anders angeschlossen werden. 4.1.2 Start von CD/DVD Sofern Sie bootfhige Installations-CD/DVDs zur Verfgung haben (was beim ofziellen CD-Satz der Fall ist) und das BIOS Ihres Rechners das Booten von einer CD untersttzt, sollten Sie diese Methode verwenden. Legen Sie die erste CD/DVD in das Laufwerk und starten Sie Ihren Rechner. Wenn alles funktioniert, sollten Sie nach kurzer Zeit den Begrungs-Bildschirm sehen. 4.1.3 Das Bootmen Der Begrungs-Bildschirm fhrt zum Bootmen des Installationssystems. Hier besteht die Mglichkeit, dem zu startenden Linux-Kern Parameter zu bergeben, die ihm helfen, bestimmte Hardwarekomponenten richtig zu erkennen und gegebenenfalls zu initialisieren. Darber hinaus knnen mit Hilfe der Funktionstasten (F1 F10) verschiedene Informationen und Hilfetexte zur Rescue-Diskette angezeigt werden. In der Regel ist es zur Installation nicht notwendig, irgendwelche Parameter anzugeben. Falls der Kern ohne Parameter jedoch nicht richtig startet oder die Hardware falsch erkennt, ist zu prfen, ob er mit geeigneten Parametern an die Hardware angepasst werden kann. Zu dem Zeitpunkt, zu dem das Bootmen angezeigt wird, ist die Umsetzung fr deutsche Tastaturen noch nicht aktiviert. So sind die Tasten Y und Z vertauscht. Die Z URCK-Taste sollte jedoch funktionieren, sodass Sie falsche Eingaben korrigieren knnen. Bootparameter In der folgenden Liste bezeichnet linux den zu startenden Kern. Wenn Sie mehrere Parameter angeben mssen, geben Sie das Wort linux nur einmal am Anfang der Zeile ein. Einige wichtige Bootparameter werden angezeigt, wenn Sie die Funktionstasten F5, F6 oder F7 drcken. IBM Thinkpad Computer Wenn Sie ein Laptop dieses Typs besitzen, mssen Sie u. U. den folgenden Parameter verwenden: linux floppy=thinkpad IBM PS/1 Computer Wenn Sie einen solchen Rechner verwenden und die Festplattengeometrie nicht richtig erkannt wird, mssen Sie dem Kern die Geometrie der Festplatte mitteilen. Dazu sind die Anzahl der Zylinder, Kpfe (heads) und Sektoren in folgender Form einzugeben:

4.1 Der erste Start von Linux

67

linux hd=Zylinder,Kpfe,Sektoren Hat Ihre Festplatte beispielsweise 360 Zylinder, 16 Kpfe und 63 Sektoren, so geben Sie ein: linux hd=360,16,63 Falls die Gre des Arbeitsspeichers falsch erkannt wird: Wenn der LinuxKern startet, erscheint am Bildschirm eine Meldung mit der Gre des erkannten Arbeitsspeichers1 . Falls diese Angabe nicht mit dem tatschlich vorhandenen Arbeitsspeicher bereinstimmt, weisen Sie den Kern mit der folgenden Angabe auf die richtige Gre hin: linux mem=ram Hierbei mssen Sie ram durch die Gre des Arbeitsspeicher ersetzen und die Einheit (k fr Kilobyte und m fr Megabyte) angeben. linux mem=256m gibt an, dass der Rechner 256 MB Arbeitsspeicher hat. Darber hinaus steht eine groe Anzahl weiterer Parameter zur Verfgung, die in Kapitel 12.5 beschrieben werden und nur in besonderen Fllen, bei schwieriger Hardware, gebraucht werden. Unabhngig davon, ob Sie einen Parameter eingegeben haben oder nicht, mssen Sie nun E INGABE drcken, um das Laden des Installationssystems zu starten. 4.1.4 Start des Installationssystems unter DOS Wenn Sie die Installation von DOS aus starten, gehen Sie wie folgt vor: Vergewissern Sie sich, dass MS-Windows nicht aktiv ist. Wechseln Sie in das Verzeichnis, in dem sich der Linuxkern, die Abbilddatei der Ramdisk (wenn Sie die Standarddateien verwenden, haben diese die Namen linux und root.bin) sowie das Programm loadlin.exe benden. Angenommen die Dateien benden sich auf dem Laufwerk C: im Verzeichnis deb_inst, so geben Sie dazu folgende Kommandos ein: C:\> C: C:\> cd \deb_inst Starten Sie das Installationssystem mit dem Kommando: C:\deb_inst\> loadlin linux root=/dev/ram initrd=root.bin
1 Zur Laufzeit kann die Menge des verfgbaren Arbeitsspeichers durch das Kommando free (S. 800) erfahren werden.

68

4 Durchfhrung der Basisinstallation

Hierbei steht linux fr den zu ladenden Linux-Kern und root.bin fr die Abbilddatei der Ramdisk. Wenn das Installationssystem von DOS aus gestartet wird, erscheint im Gegensatz zum Start von CD, DVD oder Diskette kein Bootmen, das System wird sofort geladen. Das Bootmen ist bei dieser Methode auch nicht notwendig, da eventuell bentigte Parameter direkt an der DOS-Kommandozeile bergeben werden knnen. Sollten Sie beispielsweise den Parameter oppy=thinkpad bentigen, so wrden Sie ihn an die oben beschriebene Kommandozeile anhngen und folgendes eingeben: C:\deb_inst\> loadlin linux root=/dev/ram initrd=root.bin floppy=thinkpad 4.1.5 Start des Linuxkerns Unabhngig davon, wie Sie das Installationssystem gestartet haben, wird nun der Linux-Kern gestartet. Dieser untersucht zunchst die Hardware des Rechners, wobei er eine ganze Reihe mglicher Komponenten durchprobiert. Bei diesem Vorgang werden viele Meldungen auf den Bildschirm ausgegeben. Lassen Sie sich nicht beunruhigen, die meisten Meldungen teilen Ihnen nur mit, dass irgendeine Komponente gestartet oder ein Teil Ihrer Hardware erkannt wurde. Vermutlich erscheinen auch einige Meldungen, die Ihnen mitteilen, dass irgendetwas fehlgeschlagen ist. Auch dies ist vllig normal, denn der Kern des Installationssystems ist so aufgebaut, dass er eine groe Palette an Hardwarekomponenten untersttzt. Diese versucht er zu nden, und da nicht jede mgliche Komponente auch tatschlich in den Ihren Rechner eingebaut ist, gibt es Fehlermeldungen. Sollte der Bootvorgang fehlschlagen, nden Sie in Kapitel 4.4 einige Lsungen. Wenn Sie das System vom Diskettenlaufwerk aus gestartet haben, erscheint nach dem Start des Kerns die folgende Aufforderung: VFS: Insert root floppy disk to be loaded into RAM disk and press ENTER Der Aufforderung mssen Sie nachkommen, indem Sie die Rescue-Diskette aus dem Laufwerk nehmen, die Rootdiskette einlegen und Enter drcken. Wenn der in Abbildung 4.1 gezeigte Bildschirm erscheint, sind Kern und Rootdateisystem fr die Installation erfolgreich geladen, und es kann mit der Installation begonnen werden. Drcken Sie die Taste E INGABE, nachdem Sie den Text auf dem Bildschirm gelesen haben.

4.2 Durchfhrung des Basisinstallation mit dbootstrap


Nach der Besttigung des Begrungsbildschirms erscheint das Hauptmen des Installationsprogramms. Das Programm versucht zu jedem Zeitpunkt festzustellen, welcher Schritt als nchstes durchgefhrt werden muss, und whlt den entsprechenden Schritt im Men aus, sodass es in der Regel ausreicht, die Auswahl zu besttigen.

4.2 Durchfhrung des Basisinstallation mit dbootstrap

69

Abbildung 4.1. Begrungsbildschirm des Installationssystems

Unter dem jeweiligen Hauptvorschlag benden sich einige Alternativen. Das sind Aktionen, die zu dem gegebenen Zeitpunkt ebenfalls durchgefhrt werden knnten. Beachten Sie, dass es zu jedem Zeitpunkt zustzlich mglich ist, einen Menpunkt auszuwhlen, der nicht vorgeschlagen wurde2 . Zur Navigation in dem Programm bentigen Sie im wesentlichen die Pfeiltasten, mit denen Sie in Mens wie dem Hauptmen eine Auswahl treffen, die Taste E IN GABE , mit der eine Auswahl besttigt wird, sowie die Taste TAB, mit der in einigen Bildschirmen zwischen verschiedenen Feldern gewechselt wird.
Whrend der Basisinstallation ist es zu jedem Zeitpunkt mglich, mit der Tastenkombination A LT-F2 auf eine zweite virtuelle Konsole (siehe Kap.: 5.16) zu schalten, die Sie mittels der Taste E INGABE aktivieren knnen. Dort steht dann eine einfache Shell zur Verfgung, an der von Anfang an gewisse Aufgaben der Systemkonguration durchgefhrt sowie die Einstellungen, die durch das Installationsprogramm vorgenommen wurden, feinabgestimmt oder korrigiert werden knnen. Unter anderem lassen sich von dieser Shell aus der Editor ae (S. 770), einige Kommandos zur Verwaltung von Kernmodulen (insmod, lsmod, rmmod), Netz (route, ifcong) und Dateisystem (cfdisk, mke2fs, mformat, ls, rm, mkdir, mount, umount etc.) aufrufen. Auf der dritten und vierten Konsole (A LT-F3, A LT-F4) werden die Meldungen des Syslog-Dmons sowie des Kerns angezeigt. Um die whrend des Startvorgang des Kerns entstandenen Kernmeldungen nochmals anzuzeigen, kann auf der zweiten virtuellen Konsole das Kommando dmesg (S. 792) eingegeben werden. Danach ist es mglich, mit den Tastenkombinationen S HIFT S EITE - RAUF und S HIFT S EITE - RUNTER auf dem Bildschirm nach oben und unten zu blttern. Wenn das Installationsprogramm nach dem Wechsel auf eine andere virtuelle Konsole fortgesetzt werden soll, wird mit der Tastenkombination A LT-F1 wieder auf die erste Konsole gewechselt. Falls eine zweite Shell bentigt wird, kann diese aus dem Hauptmen des Installationsprogramms durch Auswahl des Kommandos Execute a Shell gestartet werden. Dies ist jedoch nicht immer sinnvoll. Beispielsweise lassen sich keine Dateien auf die Festplatte kopieren, wenn noch nicht angegeben wurde, welche Partitionen eingebunden werden sollen.
2

70

4 Durchfhrung der Basisinstallation

Abbildung 4.2. Das Hauptmen des Installationsprogramms dbootstrap

Im Hauptmen stehen folgende Kommandos zur Auswahl, die normalerweise in der vom Installationsprogramm vorgeschlagenen Reihenfolge abgearbeitet werden: Congure the Keyboard Hiermit wird das Layout der Tastatur angegeben. Dies ist notwendig, um die deutsche Tastenbelegung verwenden zu knnen. Partition a Hard Disk Das Festplattenpartitionierungsprogramm cfdisk wird aufgerufen, mit dem die Festplatte(n) partitioniert werden. Initialize and Activate a Swap Partition Es kann angegeben werden, welche Partition Linux zum Auslagern von Arbeitsspeicherinhalten auf die Festplatte verwenden soll (swappen). Die ausgewhlte Partition wird fr diesen Zweck vorbereitet. Activate a Previously-Initialized Swap Partition Falls auf dem System bereits ein Linux-Swapbereich zur Verfgung steht, kann dieser verwendet werden. Do Without a Swap Partition Falls Linux keine Partition zum Auslagern von Speicherinhalten zur Verfgung gestellt werden soll, wird dieser Menpunkt ausgewhlt. Das ist aber ein schlechter Einfall. Initialize a Linux Partition Hiermit wird eine Partition fr die Verwendung mit Debian GNU/Linux vorbereitet (formatiert). Mount a Previously-Initialized Partition Eine fr Debian GNU/Linux vorbereitete Partition wird in das System eingebunden. Un-Mount a Partition Falls eine Partition wieder aus dem Dateisystem entfernt werden soll, geschieht dies durch Auswahl dieses Menpunktes. Install Operating System Kernel and Modules Kern und Kern-Module (Treiber) werden auf eine Festplatte kopiert. Congure Device Driver Modules Die Kern-Module (Treiber) werden ausgewhlt und konguriert.

4.2 Durchfhrung des Basisinstallation mit dbootstrap

71

Congure the Network Die Netzeinstellungen werden eingegeben. Install the Base System Das Basissystem wird auf eine bereits eingehngte Festplattenpartition kopiert. Congure the Base System Das Basissystem wird konguriert. Mit diesem Menpunkt wird bestimmt, wie das System die Uhrzeit verwalten soll. Make Linux Bootable Directly From Hard Disk Ein MBR und der Bootloader lilo werden installiert und konguriert. Make a Boot Floppy Eine Diskette zum Starten des installierten Systems wird erstellt. Reboot the System Mit diesem Kommando wird das System neu gestartet (Warmstart). View the Partition Table Die Partitionstabelle wird angezeigt. Execute a Shell Eine Shell (Kommandointerpreter) wird aufgerufen, mit der weitere Aktionen durchgefhrt werden knnen. Congure PCMCIA Support Die Untersttzung fr PCMCIA-Gerte (PC-Cards), die vor allem in Notebooks verwendet werden, wird konguriert. Restart the Installation System Das Installationsprogramm wird von vorne gestartet. 4.2.1 Auswahl des Tastaturlayouts

Abbildung 4.3. Auswahl des Tastaturlayouts

Abbildung 4.3 zeigt den Bildschirm zur Auswahl der Tastatur. Hier nden Sie auf der linken Seite der Liste die untersttzen Layouts (benannt nach den ersten sechs Buchstaben der ersten Buchstabenreihe auf der Tastatur, also qwertz fr ein

72

4 Durchfhrung der Basisinstallation

deutsches Layout) mit unterschiedlichen Belegungstabellen nach dem Schrgstrich. Auf der rechten Seite der Liste sind die Lnder aufgefhrt, in denen die Kombinationen aus Layout und Belegungstabelle Verwendung nden. Wenn Sie eine deutsche Tastatur benutzen, whlen Sie mit den Pfeiltasten Germany aus und drcken dann E INGABE, um zurck ins Hauptmen zu gelangen. Nach der Installation knnen Sie die Einstellung der Tastatur mit Hilfe des Kommandos kbdcong (S. 814) anpassen. 4.2.2 Partitionieren von Festplatten Als nchstes sollten Sie die Festplatte fr die Verwendung von Debian GNU/Linux partitionieren. Die Einteilung haben Sie ja bereits geplant. Whlen Sie Partition a Hard Disk aus. Es erscheint eine Liste der Festplatten, die in Ihrem System gefunden wurden. Sofern sich in dem Rechner nur eine Festplatte bendet, knnen Sie einfach E INGABE drcken um fortzufahren. Hat Ihr Rechner mehrere Festplatten, whlen Sie die richtige aus. Sollten Sie sich nicht sicher sein, welche Festplatte die richtige ist, vergleichen Sie bitte mit Kapitel 3.3.2. Whlen Sie die Festplatte aus, auf der sich der Platz zur Installation von Debian GNU/Linux bendet und besttigen Sie. Daraufhin erscheint zunchst ein Hinweis auf die 1024-Zylinder-Grenze und nach dessen Besttigung der in Abbildung 4.4 dargestellte Bildschirm. Dies ist das Hauptmen des Partitionierungsprogrammes cfdisk, das Sie auch spter zur Partitionierung von Festplatten unter Linux einsetzen knnen. Seine Benutzung ist im nchsten Abschnitt beschrieben. Wenn Sie mehrere Festplatten partitionieren wollen, whlen Sie nach der Beendigung von cfdisk im Hauptmen des Installationsprogramms einfach wieder Partition a Hard Disk aus und darauf die nchste zu partitionierende Festplatte. Diesen Vorgang knnen Sie wiederholen, bis alle Festplatten partitioniert sind. 4.2.3 Das Partitionierungsprogramm cfdisk Abbildung 4.4 zeigt das Hauptmen dieses komfortabel zu benutzenden Partitionierungsprogrammes. Der Bildschirm ist folgendermaen aufgebaut: Ganz oben bendet sich die Angabe des Programmnamens und der Versionsnummer. Darunter wird die Festplatte genannt, die zur Zeit bearbeitet wird. (Im Bild ist das /dev/sda.) In der vierten Zeile von oben wird die Geometrie der verwendeten Festplatte mitgeteilt. Hier wird die Anzahl der Kpfe (Heads), der Zylinder (Cylinders) sowie der Sektoren (Sectors per Track) angegeben. Nun folgt eine Tabelle der Partitionen, wie sie sich auf der Festplatte benden. In dieser Tabelle sind (von links nach rechts) folgende Informationen aufgefhrt: Name Name der Gertedatei, die die Partition unter Debian GNU/Linux reprsentiert.

4.2 Durchfhrung des Basisinstallation mit dbootstrap

73

Abbildung 4.4. Hauptmen des Partitionierungsprogramms cfdisk.

Flags Besondere Eigenschaften der Partition. Die Partition kann aktiv sein, das heit, von ihr wird beim Start des Rechners der Bootsektor geladen3. Sie erhlt dann das Flag boot (siehe Kap.: 2.7). Darber hinaus kann die Partition fr Debian GNU/Linux optimiert sein. Es steht dann zustzlicher Platz auf der Partition zur Verfgung, der unter anderen Betriebssystemen nicht genutzt werden kann, da diese besondere Anforderungen an die Anordnung der Partitionen auf der Festplatte stellen. Ist die Partition fr Debian GNU/Linux optimiert, so erhlt sie das Flag NC was Not Compatible bedeutet. Part Type Hier ist aufgefhrt, ob es sich bei der Partition um eine primre (Primary) Partition oder um eine logische (Logical) Partition in einer erweiterten primren Partition handelt. Bei freiem Platz ist hier vermerkt, welche Arten von Partitionen an dieser Stelle angelegt werden knnten. Pri/Log bedeutet dabei, dass es mglich ist, hier sowohl primre als auch logische Partitionen einzurichten. FS Type In der Partitionstabelle wird vermerkt, mit welchem Dateisystem (Filesystem oder FS) die Partition formatiert ist. Diese Information wird von vielen Betriebssystemen dazu genutzt zu entscheiden, ob die Partition automatisch eingebunden werden soll.

Dies trifft nur bei Verwendung eines Master-Boot-Records (MBR) zu, der sich an diese Konvention hlt. Ein solcher kann im weiteren Verlauf der Installation erzeugt werden. Falls jedoch lilo oder ein anderer Bootmanager im MBR installiert ist, dann ist es unerheblich, welche Partition als aktiv markiert ist.

74

4 Durchfhrung der Basisinstallation

Label Unter einigen Betriebssystemen ist es mglich, Partitionen Namen zu geben. Falls eine Partition einen Namen bekommen hat, ist er hier aufgefhrt und erleichtert die Erkennung der Partitionen von anderen Betriebssystemen. Size (MB) Hier ist die Gre der Partition in Megabyte angegeben. Mit den Pfeiltasten P FEIL R AUF und P FEIL RUNTER wird zwischen den Partitionen beziehungsweise freien Bereichen ausgewhlt. Der ausgewhlte Bereich ist wei unterlegt. Kommandos in cfdisk Unter der Partitionstabelle bendet sich eine Liste der fr den ausgewhlten Festplattenbereich verfgbaren Kommandos. Zwischen diesen Kommandos wird entweder mit den Pfeiltasten P FEIL L INKS und P FEIL R ECHTS oder durch Eingabe des Anfangsbuchstabens eines Kommandos gewechselt. Hierbei wird auf Gro- oder Kleinschreibung keine Rcksicht genommen. Eine Ausnahme stellt das Kommando Write dar, der aus Sicherheitsgrnden nur durch Eingabe des Grobuchstabens W oder ber die Pfeiltasten erreicht werden kann. Wenn ein Kommando durch Eingabe eines Buchstabens ausgewhlt ist, wird es sofort aufgerufen. Bei der Auswahl mit den Pfeiltasten muss zustzlich die E INGABE-Taste bettigt werden, um die Auswahl zu besttigen. Es gibt folgende Kommandos: Bootable Der Status der ausgewhlten Partition wird von startbar auf nicht-startbar gendert oder umgekehrt. Delete Die ausgewhlte Partition wird gelscht. Help Ein Hilfetext mit kurzer Erklrung der verfgbaren Kommandos wird angezeigt. Da dieser Text nicht auf eine Bildschirmseite passt, kann durch Drcken einer beliebigen Taste die jeweils nchste Seite angezeigt werden. Danach wird wieder das Hauptmen angezeigt. Maximize Die ausgewhlte Partition wird fr Debian GNU/Linux optimiert. Sie kann danach von anderen Betriebssystemen nicht mehr verwendet werden und erhlt deswegen nach der Optimierung das Flag Not-Compatible (s. o.). New Dieses Kommando steht zur Verfgung, wenn freier (unpartitionierter) Festplattenplatz ausgewhlt ist. Mit ihm werden neue Partitionen angelegt. Print Die Partitionstabelle wird in eine Datei oder auf den Bildschirm ausgegeben. Quit Das Programm wird verlassen, ohne die durchgefhrten nderungen auf die Festplatte zu schreiben. Type Der Dateisystemtyp, der in die Partitionstabelle eingetragen werden soll, wird ausgewhlt. Nach Auswahl des Kommandos erscheint ein Bildschirm, in dem die bekannten Dateisystemtypen mit ihren hexadezimalen Kennziffern aufgelistet sind. Dort ist die Kennziffer des gewnschten Typs einzugeben. Fr Linux-Datenpartitionen (Ext2-Format) ist dies 83, fr Linux-Swapbereiche 82. Units Die Angabe der Partitionsgre in der letzten Spalte der Partitionstabelle kann ausgetauscht werden gegen die Angabe der Zylinder- oder Sektorenzahl, bis zu der die Partitionen reichen. Dies ist dann hilfreich, wenn berprft werden soll, ob eine Partition unterhalb der 1024-Zylinder-Grenze liegt (siehe 2.5.3). Durch

4.2 Durchfhrung des Basisinstallation mit dbootstrap

75

wiederholtes Aufrufen dieses Kommandos wird zwischen den drei mglichen Angaben (Gre in MB, Sektoren- und Zylinderanzahl) hin- und hergeschaltet. Write Die Partitionstabelle wird auf die Festplatte geschrieben. Erst hierdurch werden eventuell durchgefhrte Vernderungen wirksam. Nach Auswahl dieses Kommandos wird gefragt, ob wirklich gewnscht ist, die Partitionstabelle zu schreiben. Hierauf muss mit yes geantwortet werden. Bis auf help, print, Write und quit beziehen sich die Kommandos immer auf den aktuell ausgewhlten Bereich der Festplatte in der darberliegenden Partitionstabelle. Unter den Kommandos benden sich zwei weitere Zeilen, in denen sich Ausgaben des Programms und eine kurze Erklrung des aktuell ausgewhlten Kommandos benden. Achtung: Bevor Sie beginnen, mit dem Programm die Partitionstabelle zu verndern, sollten Sie anhand der Gre der angezeigten Partitionen sowie eventuell unter anderen Betriebssystemen vergebenen Partitionsbezeichnungen unbedingt die Partitionen identizieren, die zu anderen Betriebssystemen gehren und auf keinen Fall verndert werden drfen. Legen Sie nun die Partitionen an, die Sie mit Debian GNU/Linux verwenden wollen. Das Programm steht Ihnen auch nach der Installation zur Verfgung, sodass Sie auch dann noch unbenutzte Partitionen oder freien Bereich einteilen und vergeben knnen. Im einzelnen werden Sie hierbei unter Umstnden bestehende Partitionen lschen, neue Partitionen in freien oder frei gewordenen Bereichen anlegen, die richtigen Dateisystemtypen spezizieren und entscheiden, ob eine Partition als startbar markiert oder fr Debian GNU/Linux optimiert sein soll. Dazu einige Hinweise: Sie knnen mit dem Programm verschiedene Partitionierungen durchspielen. Die Partitionstabelle wird erst dann geschrieben, wenn Sie das Kommando S HIFT- W eingeben. Sollten Sie versehentlich eine Partition gelscht haben, die nicht gelscht werden sollte, beenden Sie das Programm mit Q und rufen es danach erneut auf (dies funktioniert natrlich nur, solange die Partitionstabelle noch nicht geschrieben ist). Die Partitionen, die Sie unter Debian GNU/Linux verwenden wollen, sollten den Dateisystemtyp 83 tragen. Um den Dateisystemtyp zu ndern, whlen sie die richtige Partition und dann Type im Hauptmen (T). Danach sehen Sie eine Liste der bekannten Dateisystemtypen. Geben Sie fr Linux-Partitionen 83 ein und besttigen Sie. Vergessen Sie nicht, mindestens einen Swapbereich anzulegen. Diese Partitionen bekommen den Dateisystemtyp 82. Denken Sie an die 1024-Zylinder-Grenze (Kap.: 2.5.3) fr Partitionen, von denen Betriebssysteme gestartet werden sollen. Benutzen Sie das Kommando Units (Taste U), um sich die Anzahl Zylinder anzeigen zu lassen, bis zu denen eine Partition reicht.

76

4 Durchfhrung der Basisinstallation

Es sollte genau eine Partition als startbar (bootable) bzw. aktiv markiert sein. Dies sollte die Partition sein, auf der sich das Betriebssystem bendet, das normalerweise gestartet werden soll. Bei Verwendung eines Bootmanagers, der in einer eigenen Partition installiert ist, sollte die Partition des Bootmanagers als startbar markiert sein. Whlen Sie die Partition in der Liste und drcken Sie B, um diese als startbar zu markieren. Wenn Sie die Markierung wieder aufheben wollen, drcken Sie nochmals B. Seien Sie vorsichtig mit der Optimierung (Maximize)! Sie knnen optimierte Partitionen mit einigen Betriebssystemen nicht mehr benutzen. Falls nach der Umpartitionierung eine Warnung erscheint und ein Warnton erklingt, bezieht sich dieses auf das Anlegen von Partitionen, die unter DOS verwendet werden sollen. Wenn Sie nur Partitionen fr Debian GNU/Linux gendert oder angelegt haben, ignorieren Sie diese Warnung. Beispiel Nehmen wir an, Sie htten in Ihrem Rechner eine Festplatte, die an den ersten Anschluss eines (E)IDE-Adapters angeschlossen ist. Ihre Gertedatei unter Linux ist /dev/hda. Diese Festplatte stand vormals komplett MS-Windows 98 zur Verfgung, und Sie haben sie mit dem Programm ps.exe unter DOS in zwei primre Partitionen aufgeteilt, so wie es in Kapitel 3.3.1 beschrieben ist. Die zweite, neue primre Partition soll fr die Verwendung von Debian GNU/Linux in einen Swapbereich, eine Partition fr das Betriebssystem und Anwendungen sowie eine Partition fr Benutzerdaten aufgeteilt werden. Nach dem Aufruf von cfdisk durch das Installationsprogramm sehen Sie in der Partitionstabelle die beiden primren Partitionen. Sie erkennen die von MS-Windows verwendete Partition an ihrer Gre. Nun knnen Sie die folgenden Schritte ausfhren, um die Festplatte in der beschriebenen Weise zu partitionieren: 1. Whlen Sie die Partition aus, die den Raum fr Debian GNU/Linux belegt. Benutzen Sie dazu die Pfeiltasten P FEIL R AUF und P FEIL RUNTER. 2. Da der Platz im Moment noch von einer groen Partition belegt ist, muss diese gelscht werden. Drcken Sie D, um die Partition zu lschen. 3. Die Partition ist gelscht, und der nun entstandene freie Bereich ist ausgewhlt. Legen Sie die erste Partition (fr das Betriebssystem) an. Drcken Sie dazu N (fr new). 4. Sie werden gefragt, ob eine primre oder eine logische Partition angelegt werden soll. Drcken Sie L, um eine logische Partition anzulegen. 5. Nun werden Sie aufgefordert, die Gre der anzulegenden Partition einzugeben. Vorgegeben ist der gesamte freie Bereich. Da Sie aber noch weitere Partitionen anlegen wollen, geben Sie jetzt nur einen Teil davon ein. Korrigieren Sie Ihre Eingabe gegebenenfalls mit der Taste Z URCK und besttigen Sie. 6. Dann mssen Sie festlegen, ob die neue Partition am Anfang (Begin) oder am Ende (End) des freien Bereiches angelegt werden soll. Weil brigbleibender, freier Bereich jedoch prinzipiell am Ende der Festplatte liegen sollte, empehlt

4.2 Durchfhrung des Basisinstallation mit dbootstrap

77

7.

8.

9.

10.

11. 12.

13.

14.

es sich immer, neue Partitionen an den Anfang des zur Verfgung stehenden Bereiches zu legen. Geben Sie B fr Begin ein. Die neue Partition ist angelegt, jetzt muss sie den richtigen Dateisystemtyp erhalten: Geben Sie dazu T fr Type ein. Es erscheint eine Liste aller dem Programm bekannter Dateisystemtypen. Der Dateisystemtyp muss als hexadezimale Zahl eingegeben werden und lautet fr Linux Partitionen 83. Geben Sie 83 ein und besttigen Sie. Falls Sie sich sicher sind, dass Sie die Partition nicht unter einem anderen Betriebssystem verwenden wollen, knnen Sie jetzt noch M fr Maximize drcken, um die Partition fr den Gebrauch mit Debian GNU/Linux zu optimieren. Nun richten Sie den Swapbereich ein. Whlen Sie dazu in der Partitionstabelle den freien Bereich aus und wiederholen Sie die aufgefhrten Schritte. Der Swapbereich erhlt den Dateisystemtyp 82. Er wird nicht als startbar markiert. Als letztes legen Sie die Partition fr die Benutzerdaten an. Diese Partition erhlt wieder den Dateisystemtyp Linux Native mit der Nummer 83. Auch von ihr wird kein Betriebssystem gestartet, sodass sie nicht als startbar markiert wird. Wenn Sie mit der Partitionierung fertig sind, berprfen Sie noch einmal alles. Gegebenenfalls knnen Sie Partitionen mit D lschen und neu anlegen. Markieren Sie dann die Partition als startbar, von der Ihr Standardbetriebssytem gestartet werden soll. Das ist entweder die primre Partition mit MSWindows oder die logische Partition, die als Betriebssystemspartition von Debian GNU/Linux genutzt werden soll. Entfernen Sie gegebenenfalls alle bootableMarkierungen an anderen Partitionen (Taste B). Wenn alles richtig ist, drcken Sie S HIFT- W, um die neue Partitionstabelle auf die Festplatte zu schreiben. Achtung: Dies ist der allerletzte Moment, um die Partitionierung abzubrechen. Falls Sie eine Partition mit ungesicherten Daten gelscht haben, gehen diese nach dem Schreiben der Partitionstabelle verloren! Wenn Sie sich sicher fhlen, geben Sie yes ein, um die Partitionstabelle auf die Platte zu schreiben. Nun sollte in der zweiten Zeile von unten die Meldung Wrote partition table to disk erscheinen. Sie beenden das Programm, indem Sie Q drcken.

4.2.4 Festlegen der Auslagerungs-Partition (Swapbereich) Nachdem die Festplatte(n) partitioniert wurden, schlgt das Installationssystem vor, Partitionen zu benennen, die als Swapbereiche verwendet werden sollen. Der Menpunkt im Hauptmen lautet Initialize and Activate a Swap Partition. Damit wird eine Partition ausgewhlt, die vom Installationsprogramm fr die Verwendung als Swapbereich vorbereitet (formatiert) und anschlieend dem Linux-Kern zum Auslagern von Inhalten des Arbeitsspeichers zur Verfgung gestellt wird. Alternativ besteht die Mglichkeit, einen Swapbereich zu benennen, der bereits fr diesen Zweck eingerichtet wurde. Der Menpunkt lautet Activate a PreviouslyInitialized Swap Partition. Solche Bereiche benden sich auf dem Rechner, wenn ein Linux dort bereits installiert war.

78

4 Durchfhrung der Basisinstallation

Soll auf die Verwendung eines Swapbereiches verzichtet werden, ist der Menpunkt Do Without a Swap Partition auszuwhlen. Hiervon sei dringend abgeraten. Falls eine Umpartitionierung vermieden werden soll oder in Situationen mit wenig verfgbarem Festplattenplatz (gibt es das heute noch?), kann der Verzicht auf einen Swapbereich einen Ausweg darstellen. In solchen Fllen sollte spter eine Swapdatei angelegt werden (siehe Kap.: 14.3.7). Initialisieren eines Swapbereichs Nach Auswahl des Menpunktes Initialize and Activate a Swap Partition erscheint eine Liste der Partitionen, deren Dateisystemtyp auf Linux Swap (82) eingestellt ist. Whlen Sie eine der angezeigten Partition aus und besttigen Sie. Sollten Sie jedoch die Meldung No swap partitions that had not already be mounted were detected erhalten und dem System noch keinen Swapbereich zugeteilt haben, so haben Sie wahrscheinlich vergessen, einen Swapbereich einzurichten oder seinen Dateisystemtyp einzustellen. In diesem Fall rufen Sie den Menpunkt Partition a Hard Disk erneut auf, um die Partitionierung zu korrigieren. Dann erfolgt der Hinweis, dass das Initialisieren der Partition als Swapbereich alle Daten lscht, und Sie werden gefragt, ob Sie dies wirklich wnschen. Falls dies so ist, besttigen Sie, ansonsten wechseln Sie mit TAB auf No und besttigen dann. Nach der Besttigung wird die Partition initialisiert und eingebunden. Das Programm springt danach zurck in das Hauptmen. Falls Sie mehrere Swapbereiche verwenden wollen, rufen Sie den Menpunkt Initialize and Activate a Swap Partition erneut auf. Aktivieren eines vorhandenen Swapbereichs hnlich wie bei der Initialisierung von Swapbereichen erhalten Sie hier eine Liste aller Partitionen, deren Dateisystemtyp 82, also Linux-Swap, ist. Whlen Sie den bereits initialisierten Swapbereich aus und besttigen Sie. Es erfolgt wieder eine Warnung und die Frage, ob Sie sich sicher sind. Falls ja, besttigen Sie. Auch diesen Vorgang knnen Sie mit allen verfgbaren und bereits initialisierten Swapbereichen wiederholen. 4.2.5 Formatieren von Partitionen fr Debian GNU/Linux Nachdem Sie die Swapbereiche zugewiesen haben, schlgt das Installationsprogramm vor, eine Partition zur Verwendung mit Debian GNU/Linux vorzubereiten. Der Menpunkt lautet Initialize a Linux Partition. Sofern Sie zuvor Partitionen fr die Verwendung mit Debian GNU/Linux angelegt haben, mssen diese nun initialisiert (formatiert) werden.

4.2 Durchfhrung des Basisinstallation mit dbootstrap

79

Achtung: Falls sich auf dem Rechner bereits formatierte Linux-Partitionen benden, deren Inhalt nicht verlorengehen darf, wie eine Partition mit Benutzerdaten einer anderen Linux-Installation, drfen Sie solche Partitionen nicht initialisieren, da hierbei alle darauf bendlichen Daten verloren gehen. Es erscheint eine Liste der Partitionen, deren Dateisystemtyp 83 ist, die also als Ext2-Partitionen markiert sind. Whlen Sie die zu formatierende Partition mit den Pfeiltasten aus und besttigen Sie. Danach sehen Sie einen Hinweis, dass der Kern neue Dateisystemeigenschaften hat, die in vorherigen Versionen von Linux nicht vorhanden waren. Sie knnen whlen, ob Sie die neuen Eigenschaften nutzen wollen oder ob Sie ein Dateisystem erzeugen wollen, das mit lteren Linux-Versionen vertrglich ist. Dann erscheinen eine Sicherheitsabfrage und die Mitteilung, dass durch die Formatierung smtliche Daten auf der Partition gelscht werden. Wenn Sie mit Yes und E INGABE besttigen, wird die ausgewhlte Partition formatiert. Danach fragt das Programm, ob und wie die Partition in das Dateisystem eingebunden werden soll. 4.2.6 Einbinden (mounten) der Partitionen Das Einbinden von initialisierten Linux-Partitionen in das Dateisystem des zu installierenden Betriebssystems kann zum einen direkt nach der Formatierung geschehen. Zum anderen besteht die Mglichkeit, ber die Auswahl des Menpunktes Mount a Previously-Initialized Partition eine Partition einzubinden, die bereits fr die Verwendung unter Debian GNU/Linux formatiert wurde. Sofern die zweite Methode gewhlt wird, erscheint eine Liste, die neben den Linux-Partitionen (Typ 83) auch alle Partitionen enthlt, die einen Nicht-Linux-Dateisystemtyp aufweisen, aber trotzdem vom Installationssystem beschrieben und gelesen werden knnen. Dazu gehren beispielsweise Partitionen, die unter DOS oder MS-Windows formatiert wurden. Erst nach dem Einbinden einer initialisierten Partition in das Rootdateisystem (mounten, siehe Kap.: 5.17.2) steht sie unter Linux zur Verfgung, sodass auf ihr Dateien gespeichert werden knnen, beziehungsweise diese von ihr gelesen werden knnen. Daher ist es zwingend notwendig, dass genau eine Partition zur Rootpartition erklrt wird. Dies bedeutet, dass das Wurzelverzeichnis der Partition gleichzeitig das Wurzelverzeichnis des Linux-Dateisystems darstellt. Falls neben dem Swapbereich nur eine Partition fr Debian GNU/Linux verwendet werden soll, wird diese grundstzlich als Rootpartition in das Dateisystem gemountet. Wenn Sie mehrere Partitionen verwenden, mssen Sie nun festlegen, welche Partition an welchem Ort gemountet werden soll. Hinweise hierzu nden sich in Kapitel 2.6. Auch zu einem spteren Zeitpunkt knnen Sie Partitionen in das Dateisystem einbinden oder wieder entfernen. Falls Sie die Partitionierung jedoch bereits geplant und die Partitionen mit cfdisk angelegt haben, ist es sinnvoll, sie jetzt an der richtigen Stelle einzubinden, damit die Dateien whrend der weiteren Installation gleich auf der richtigen Partition landen.

80

4 Durchfhrung der Basisinstallation

Einbinden der Rootpartition Die Rootpartition muss als erste Partition eingebunden werden. Deshalb werden Sie entweder nach der Formatierung einer neuen Partition oder nach der Auswahl des Menpunktes Mount a Previously-Initialized Partition gefragt, ob Sie die gewhlte Partition als Rootpartition verwenden mchten, sofern Sie nicht bereits eine andere Partition hierfr benannt haben. Falls nach der Formatierung einer Partition oder der Auswahl des Kommandos zum Einbinden bereits formatierter Partitionen die Meldung You must mount your root filesystem (/) before you can mount any other filesystems. Would you like to mount ... as the root filesystem? erscheint, weist Sie diese Meldung darauf hin, dass noch keine Partition zur Rootpartition erklrt wurde. Wollen Sie die ausgewhlte Partition als Rootpartition verwenden, besttigen Sie die vorgeschlagene Antwort mit Yes und E INGABE. Sollten Sie eine andere Partition als Rootpartition verwenden wollen, wechseln Sie mit TAB auf No und drcken dann E INGABE. Das Programm springt dann zurck in das Hauptmen, und Sie haben die Mglichkeit, eine andere Partition als Rootpartition zu bestimmen. Die jetzt formatierte Partition wird dann nicht gemountet und spter mit Mount a Previously Initialized Linux-Partition eingebunden. Einbinden weiterer Partitionen Nachdem eine Partition als Rootpartition festgelegt und eingebunden wurde, werden weitere Partitionen entweder mit dem Kommando Initialize a Linux Partition formatiert und eingebunden oder ber das Kommando Mount a Previously-Initialized Partition ohne Formatierung in das Dateisystem von Debian GNU/Linux eingebunden. Das zweitgenannte Kommando ermglicht auch, Verzeichnisse einzubinden, die von anderen Rechnern ber NFS im Netz zur Verfgung gestellt werden. Diese Mglichkeit kann erst dann benutzt werden, wenn das Netz konguriert ist. Nach der Auswahl der Partition werden Sie gefragt, an welchem Punkt des Dateisystems die Partition eingebunden werden soll. Ein solcher Punkt im Dateisystem ist ein beliebiges leeres Verzeichnis. Nach dem Einbinden einer Partition werden alle Daten, die in dieses Verzeichnis (oder in ein Unterverzeichnis dieses Verzeichnisses) geschrieben werden, auf die entsprechende Partition geschrieben (siehe auch Kap.: 5.17.2). Je nach Einsatzzweck des Rechners kann es sich anbieten, Partitionen in die folgenden Verzeichnisse einzubinden (siehe auch Kap.: 14.2): /boot Verzeichnis mit Dateien zum Start des Systems. Hier wird eine eigene, kleine Partition bentigt, falls das System nicht von der Rootpartition gestartet werden soll (siehe Kap.: 2.6.2). /home Verzeichnis mit den Benutzerdateien. /tmp Verzeichnis fr temporre Dateien.

4.2 Durchfhrung des Basisinstallation mit dbootstrap

81

/usr Verzeichnis fr Programme und Dateien, die zu Debian GNU/Linux gehren und sich normalerweise nicht ndern. /var Hier benden sich alle Dateien, die vom System oder von Anwendungen verwaltet werden und deren Inhalt sich oft ndert, wie Druckerwarteschlangen oder zwischengelagerte elektronische Post. Sie knnen nun eines der oben beschriebenen Verzeichnisse auswhlen oder manuell ein anderes Verzeichnis angeben (other), in das die ausgewhlte Partition gemountet werden soll. Wenn es noch nicht existiert, wird es angelegt. Vergessen Sie dabei nicht den Schrgstrich (/) am Anfang und denken Sie daran, dass Gro- und Kleinschreibung bedeutsam ist. Nach der Eingabe des Verzeichnisses besttigen Sie, um die Partition einzubinden. Einbinden von Partitionen anderer Betriebssysteme Es ist auerdem mglich, ber das Installationsprogramm Nicht-Linux-Partitionen in das Dateisystem einzubinden. Das Installationssystem untersttzt zur Zeit Partitionen, die mit einem Linux-Dateisystem, mit einem DOS-Dateisystem (FAT, FAT32 und VFAT) oder mit einem Dateisystem der Typen minix, affs oder hfs formatiert sind. Die Liste wchst. Falls Sie beispielsweise eine Partition haben, die MSWindows 98 zur Verfgung steht, aber die Dateien auf dieser Partition auch unter Debian GNU/Linux benutzen wollen, knnen Sie diese ebenfalls mit dem Kommando Mount a Previously-Initialized Partition in das Dateisystem einbinden. Whlen Sie die Partition aus und geben Sie ein Verzeichnis an, in das diese gemountet werden soll. Das Einbinden von weiteren Partitionen, beispielsweise von NTFS- oder HPFSformatierten Partitionen, wie sie von MS-Windows NT verwendet werden, ist erst mglich, wenn die entsprechenden Treiber (Module) fr diese Dateisysteme geladen wurden. Wenn Sie solche Partitionen einbinden wollen, knnen Sie dies tun, nachdem Sie das Basissystem installiert haben (siehe Kap.: 14.3.3). Einbinden von NFS-Partitionen Die Option Mount a Previously-Initialized Partition erlaubt es auch, Verzeichnisse einzubinden, die von anderen Rechnern im Netz per NFS zur Verfgung gestellt (exportiert) werden. Dazu ist die Option NFS auszuwhlen und danach der Name des Rechners, welcher das Verzeichnis zur Verfgung stellt, sowie der Name des Verzeichnisses auf diesem Rechner anzugeben. Rechner- und Verzeichnisname werden durch einen Doppelpunkt voneinander getrennt. Um beispielsweise das Verzeichnis /daten vom Rechner datserver einzubinden, wre folgendes einzugeben: datserver:/daten Danach wird wie blich der Name des Verzeichnisses auf Ihrem Rechner erfragt, in welches das Verzeichnis eingebunden werden soll. Das NFS-Verzeichnis wird danach eingebunden.

82

4 Durchfhrung der Basisinstallation

Achtung: Bedenken Sie, dass Datentrger erst dann ber NFS eingebunden werden knnen, wenn das Netz bereits konguriert ist. Gegebenenfalls mssen Sie spter zu diesem Menpunkt zurckkehren. Weiter muss natrlich auf dem Server sichergestellt sein, dass das exportierte Verzeichnis von Ihrem Rechner eingebunden werden darf. Beispiel zum Einbinden von Festplattenpartitionen In dem Beispiel aus Abschnitt 4.2.3 zur Festplattenpartitionierung hatten wir drei Partitionen zur Verwendung mit Debian GNU/Linux angelegt: Einen Swapbereich, eine Partition fr das Betriebssystem sowie eine weitere Partition fr Benutzerdaten. Wenn wir dieses Beispiel weiter verfolgen, mssten zur Einbindung dieser Partitionen die folgenden Schritte durchlaufen werden: Der Swapbereich wurde bereits durch das Kommando Initialize and Activate a Swap Partition eingebunden. Danach wird das Kommando Initialize a Linux Partition ausgefhrt. In der Auswahlliste werden die beiden angelegten Partitionen gezeigt. Hier wird zunchst die erste Partition ausgewhlt, weil diese als Rootpartition eingesetzt werden soll. Nach der Sicherheitsabfrage wird die Partition initialisiert. Jetzt folgt die Frage, ob die Partition als Rootpartition gemountet werden soll, worauf weil dies zutrifft mit Yes geantwortet wird. Zurck im Hauptmen wird nun vorgeschlagen, mit dem Kommando Install the Operating System Kernel and Modules fortzufahren. Hierfr ist es jedoch noch zu frh, da eine zweite Partition formatiert und eingebunden werden soll. Deswegen wird mit den Pfeiltasten wieder der Menpunkt Initialize a Linux Partition ausgewhlt. Hier steht nur noch eine Partition zur Verfgung, die mit E INGABE ausgewhlt wird. Auch diese Partition wird nach der Sicherheitsabfrage formatiert. Nun folgt die Frage, in welches Verzeichnis diese zweite Partition gemountet werden soll. Da diese Partition die Benutzerdaten beherbergen soll, wird /home ausgewhlt und besttigt. Zum Schluss wird die MS-Windows-Partition gemountet. Hierzu wird im Hauptmen das Kommando Mount a Previously-Initialized Partition ausgewhlt. Da diese Partition die einzige noch nicht gemountete Partition ist, erscheint in der Liste nur sie. Wir mounten sie beispielsweise in das Verzeichnis /windows. Das Verzeichnis wird automatisch angelegt, da es bisher noch nicht existiert. 4.2.7 Installation des Kerns und der Treibermodule Nachdem alle Partitionen eingebunden sind, werden der Linux-Kern sowie die dazugehrigen Gertetreibermodule auf der Festplatte installiert. Hierzu ist das Kommando Install Operating System Kernel and Modules auszuwhlen. Nun erscheint eine Liste der mglichen Quellen, von denen der Kern und die Module installiert werden:

4.2 Durchfhrung des Basisinstallation mit dbootstrap

83

CD Whlen Sie diese Quelle aus, wenn Sie die Installation von einer CD durchfhren. Bei dem CD-Laufwerk muss es sich um ein ber einen (E)IDE- oder SCSIAdapter an den Rechner angeschlossenes Gert handeln. Falls Ihr Laufwerk ber einen anderen Adapter mit dem Rechner verbunden ist, knnen Sie zwar wahrscheinlich den Rest des Systems von diesem Laufwerk installieren, allerdings mssen Kern und Treibermodule anders geladen werden, da diese bentigt werden, um ein solches Laufwerk anzusprechen. Nach Besttigung der Auswahl teilt Ihnen das Installationsprogramm mit, ob es das CD-Laufwerk automatisch gefunden hat und falls ja durch welche Gertedatei das Laufwerk nach Meinung des Programms reprsentiert wird. Es erfolgt die Frage, ob das Laufwerk richtig erkannt wurde. Sollte das Laufwerk nicht richtig erkannt worden sein, mssen Sie selbst angeben, durch welche Gertedatei Ihr CD-Laufwerk reprsentiert wird. Es erscheint dann eine Liste, in der zunchst die Gertedateien fr das erste und das zweite SCSI-CD-Laufwerk /dev/scd0 und /dev/scd1 aufgefhrt sind. Darunter folgen die unterschiedlichen Gertedateien, die CD-Laufwerke reprsentieren, die an einen (E)IDE-Adapter angeschlossen sind. Die Benennung erfolgt nach dem folgenden Schema: /dev/hda entspricht dem Gert an dem ersten Anschluss (Master) des ersten (E)IDE-Adapters, /dev/hdb dem Gert am zweiten Anschluss (Slave) des ersten Adapters. /dev/hdc entspricht dem Gert am ersten Anschluss (Master) des zweiten (E)IDE-Adapters und so weiter. Bei StandardPCs mit einer Festplatte und einem CD-Laufwerk ist das CD-Laufwerk oft an den ersten Anschluss des zweiten (E)IDE-Adapters angeschlossen. Deshalb sollten Sie im Zweifelsfall /dev/hdc auswhlen und besttigen. Nach dem das CD-Laufwerk ausgewhlt wurde, werden Sie aufgefordert, die erste Debian-CD in das Laufwerk einzulegen und E INGABE zu drcken. Falls Sie daraufhin die Fehlermeldung The CD-ROM was not mounted succesfully erhalten, haben Sie entweder eine falsche Gertedatei benannt, oder Ihr Laufwerk wird vom Installationssystem nicht richtig erkannt. Sie landen dann wieder im Hauptmen des Installationsprogramms und knnen es mit einer anderen Gertedatei versuchen. Sobald das Laufwerk erfolgreich eingebunden wurde, erscheint die Aufforderung, den Pfad anzugeben, in dem sich die Debian-Distribution auf der CD bendet. Bei Verwendung des ofziellen CD-Satzes knnen Sie es hier bei dem Vorgabewert /instmnt belassen. Sollten Sie jedoch eine CD verwenden, die von dem ofziellen Layout abweicht, so mssen Sie einen anderen Pfad angeben. Wenn Sie mit der Taste TAB auf das Feld <. . . > wechseln und danach besttigen, besteht die Mglichkeit, die CD zu durchsuchen. Es werden alle Unterverzeichnisse des Ausgangsverzeichnisses instmnt angezeigt, und Sie knnen das richtige auswhlen. Alternativ zur Eingabe eines Verzeichnisses knnen Sie das Installationssystem wie im folgenden beschrieben nach den Dateien suchen lassen.

84

4 Durchfhrung der Basisinstallation

Nun muss das Installationssystem nmlich wissen, wo sich die Diskettenabbilder mit dem Kern (Abbilddatei der Rescue-Diskette) und mit den Modulen (Abbilddatei der Treiber-Diskette) unterhalb des angegebenen Verzeichnisses benden. Dabei besteht zum einen die Mglichkeit, eine Liste mit allen in Frage kommenden Verzeichnissen erzeugen zu lassen (List) oder den Pfad direkt einzugeben (manually). Im Normalfall whlen Sie List aus und besttigen Sie. Das Programm sucht nun auf der CD nach den bentigten Diskettenabbilddateien und prsentiert eine Liste mit den Verzeichnissen, in denen es solche Dateien gefunden hat. Je nach Layout der CDs nden sich u. U. verschiedene Eintrge mit unterschiedlichen Versionsnummern. In der Regel sollten Sie die jeweils neueste Version (current) verwenden. Es besteht aber auch die Mglichkeit, dass auf an besondere Zwecke angepassten CDs spezielle Versionen der Dateien zur Verfgung gestellt werden. Diese benden sich oft in einem Verzeichnis mit der Endung disks-i386/vendor. Wenn Sie ein solches Verzeichnis whlen, konsultieren Sie die Dokumentation Ihrer CDs. Wenn das Installationsprogramm die bentigten Dateien nicht auf der CD nden konnte, dann versuchen Sie es mit einer anderen CD aus dem Installationssatz. Nach der Auswahl eines Verzeichnisses werden Kern und Module auf die Festplatte kopiert, und das Programm bringt Sie zurck in das Hauptmen. /dev/fd0 oder /dev/fd1 Wenn Sie vor der Installation die Treiberdiskette(n) erzeugt haben, knnen Sie diese Quelle angeben. /dev/fd0 entspricht dabei dem ersten Diskettenlaufwerk (unter DOS/MS-Windows Laufwerk A:) und /dev/fd1 dem zweiten Diskettenlaufwerk (unter DOS/MS-Windows Laufwerk B:). Nach Auswahl dieser Methode werden Sie zunchst aufgefordert, die RescueDiskette in das Diskettenlaufwerk einzulegen (wo sie sich bei einer Installation von Disketten wahrscheinlich schon bendet). Nachdem sie dort ist, drcken Sie E INGABE, woraufhin der Kern installiert wird. Danach sind nacheinander die einzelnen Treiberdisketten einzulegen. Harddisk Whlen Sie diese Quelle, falls sich die Datei drivers.tgz sowie das Diskettenabbild der Rescue-Diskette auf eine Festplattenpartition benden, die Sie nicht in das Dateisystem eingebunden haben. Diese Partition muss so formatiert sein, dass auf sie vom Installationssystem zugegriffen werden kann, beispielsweise von DOS/MS-Windows im FAT32- oder von Linux im ext2-Format formatiert. Es erscheint dann eine Liste aller erkannten Partitionen, die noch nicht in das Dateisystem eingebunden wurden, beziehungsweise eine Fehlermeldung, die Ihnen mitteilt, dass eine solche Partition nicht gefunden wurde. Whlen Sie die richtige Partition aus und besttigen Sie. Sie werden dann gefragt, in welchem Verzeichnis sich die Dateien auf der Partition benden. Geben Sie den Verzeichnisnamen ein. Wenn Sie sich nicht sicher sind, lschen Sie den Vorgabewert und lassen Sie das Installationssystem suchen. Wie bei der Angabe eines CD-Laufwerkes werden Sie nun gefragt, ob das Installationsprogramm eine Liste von Verzeichnissen zusammenstellen soll, in denen sich die Dateien benden oder ob Sie selbst ein Unterverzeichnis angeben mchten. In der Regel sollten Sie hier die erste Option List whlen, woraufhin

4.2 Durchfhrung des Basisinstallation mit dbootstrap

85

Ihnen das Verzeichnis prsentiert werden sollte, in dem sich die Dateien benden. Wenn Sie die Dateien mehrmals in unterschiedlichen Verzeichnissen auf der gewhlten Partition gespeichert haben, so knnen Sie zwischen diesen Verzeichnissen whlen. Suchen Sie das richtige aus und besttigen Sie. Daraufhin werden Kern und Treibermodule installiert, und Sie gelangen zurck in das Hauptmen des Installationsprogramms. Mounted Whlen Sie diese Quelle, wenn sich die Abbilddatei der Rescue- sowie die Datei drivers.tgz auf einer Partition benden, die Sie bereits in das Dateisystem eingebunden haben (beispielsweise eine von MS-Windows verwendete Partition, die Sie zur Benutzung unter Debian GNU/Linux gemountet und auf die Sie die bentigten Dateien gespeichert haben). Ebenso wie bei der Installation von CD oder ungemounteter Partition knnen Sie nun einen Pfad eingeben, ab dem nach den Dateien gesucht werden soll. Auch hier ist es mglich, das Dateisystem nach Auswahl der Schaltche <. . . > zu durchsuchen. Beachten Sie, dass alle Partitionen, die Sie zuvor eingebunden haben, whrend der Installation unterhalb des Verzeichnisses /target liegen. Daraufhin whlen Sie zwischen automatischer Suche und manueller Eingabe des Pfades. Wenn Sie sich nicht sicher sind, entscheiden Sie sich fr die automatische Suche (Menpunkt List). Wie bei der Installation von CD oder nichteingebundener Partition wird dann eine Liste mit Verzeichnissen erstellt, in denen sich die bentigten Dateien benden. 4.2.8 Konguration der PCMCIA-Untersttzung Wenn Sie Debian GNU/Linux auf einem Laptop installieren, der mit einem PCMCIA-Adapter fr PC-Cards (PCMCIA = PC Memory Card International Association) ausgestattet ist, mssen Sie jetzt die PCMCIA-Untersttzung kongurieren, sofern Sie die weitere Installation ber ein Gert durchfhren wollen, das an diesen Adapter angeschlossen ist. Das ist beispielsweise dann der Fall, wenn die Installation von einem CD-Laufwerk, das ber den PCMCIA-Adapter mit dem Rechner verbunden ist, durchgefhrt werden soll, oder bei einer Installation ber das Netz, wenn die Netzkarte eine PCMCIA-Netzkarte ist. Whlen Sie dazu die Alternative Congure PCMCIA Support aus, bevor Sie mit Congure Device Driver Modules die Konguration der Treibermodule durchfhren. Die an den PCMCIA-Adapter angeschlossenen Gerte knnen von den Treibermodulen nmlich nur dann erkannt werden, wenn die PCMCIA-Untersttzung bereits konguriert und aktiviert ist. In allen anderen Fllen, in denen kein PCMCIA-Adapter vorhanden ist oder zwar ein solcher Adapter vorhanden ist, zur Installation aber nicht bentigt wird, knnen Sie direkt mit Congure Device Driver Modules fortfahren und die PCMCIAUntersttzung zu einem spteren Zeitpunkt kongurieren. Nachdem das entsprechende Kommando im Hauptmen ausgewhlt wurde, erscheint eine Eingabemaske, in der Sie angegeben, welche Teile des PCMCIASubsystems Sie von Hand kongurieren mchten. In der Regel ist es nicht notwendig, hiervon Gebrauch zu machen, da mit den Voreinstellungen alles funktionieren sollte. Sie sollten zunchst mit TAB auf OK springen und E INGABE drcken, um

86

4 Durchfhrung der Basisinstallation

es mit den Voreinstellungen zu versuchen. Erst wenn im weiteren Verlauf Probleme entstehen, etwa weil Ihre Netzkarte oder das CD-Laufwerk nicht gefunden werden, sollten Sie versuchen, hier andere Einstellungen vorzunehmen. Sofern Sie andere Einstellungen vornehmen, stehen folgende Gruppen zur Verfgung: PCMCIA Controller Hier geben Sie an, ob in das Notebook ein Adapter vom Typ i82365 oder vom Typ tcic eingebaut ist, sofern dies nicht automatisch erkannt wurde. Darber hinaus knnen Sie einige spezielle Einstellungen treffen, mit denen Sie den Adapter unter Umstnden zur Mitarbeit bewegen knnen. Serial Devices Ermglicht die Konguration serieller Gerte, beispielsweise von Modems, die an die PCMCIA-Schnittstelle angeschlossen sind. Sie legen hier fest, welche Gertedatei ein solches Gert reprsentieren soll (/dev/modem ist eine gute Wahl fr ein Modem), ob die Schnittstelle mit dem Programm setserial (S. 860) auf besondere Weise konguriert werden soll und ob sie nach dem Systemstart fr eingehende Verbindungen konguriert werden soll (Should we create an inittab entry for this port?). Letzteres bentigen Sie nur, wenn ber diese Schnittstelle beispielsweise Logins mglich sein oder Faxe empfangen werden sollen. Sie brauchen das nicht whrend der Installation des Basissystems zu kongurieren. Antworten Sie, wenn Sie sich nicht sicher sind, bei der Frage Should we generate a inittab entry. . . mit No. CD Devices Hier bestimmen Sie, ob und wie an einen PCMCIA-Adapter angeschlossene CD-Laufwerke nach der Verbindung mit dem Adapter automatisch gemountet, also in das Dateisystem eingebunden werden sollen. Sie knnen bestimmen, ob fr das Laufwerk ein Eintrag in der Dateisystemtabelle (/etc/fstab, siehe Kap.: 5.17.8) angelegt werden soll (empfehlenswert), ob das Laufwerk automatisch gemountet werden soll (was voraussetzt, dass sich immer eine CD in dem Laufwerk bendet, bevor Sie es anschlieen). Weiter, welchen Dateisystemtyp die in ihm bendlichen CDs haben (der Standard ist iso9660), mit welchen Optionen es gemountet werden soll (Vorgabewert ro bernehmen) und wohin es gemountet werden soll (die bernahme des Vorgabewerts /cdrom ist auch hier zu empfehlen). Sie bewegen sich in diesem Men mit den Pfeiltasten und der Leertaste. Danach whlen Sie mit TAB ok und besttigen Sie. Nun werden Ihnen die oben angesprochenen Fragen gestellt, die Sie entweder durch Eingabe des entsprechenden Textes oder durch Wechseln zwischen vorgegebenen Antworten wie Yes und No beantworten. Sobald eine Fragengruppe beantwortet ist, werden Ihre Angaben nochmals zusammengefasst dargestellt. Sie haben dann die Mglichkeit, die Angaben zu besttigen oder erneut vorzunehmen. Wenn alle Fragen beantwortet sind, versucht das Installationsprogramm, die PCMCIA-Dienste zu starten. Falls es dabei zu einem Fehler kommt, wird dies mitgeteilt, und das Programm springt zurck in das Hauptmen.

4.2 Durchfhrung des Basisinstallation mit dbootstrap

87

4.2.9 Konguration der Treibermodule mit modconf Nach der Installation von Kern und Modulen und gegebenenfalls Konguration der PCMCIA-Untersttzung, whlen Sie nun die bentigten Module aus und kongurieren sie. Whlen Sie dazu Congure Device Driver Modules.
Module sind Bestandteile des Linux-Kerns, die whrend der Laufzeit des Systems geladen und wieder entfernt werden knnen. Prinzipiell ist es mglich, dass Module alle mglichen Funktionen haben. Viele Module stellen jedoch Gertetreiber fr verschiedene Hardwarekomponenten dar. Darber hinaus gibt es Module, durch die der Kern Dateisysteme verwenden kann, die er normalerweise nicht kennt (z. B. von MS-Windows NT) oder die ihm irgendeine andere zustzliche Funktionalitt verleihen (wie den Umgang mit einem besonderen Netzprotokoll). Ein Vorteil von Linux gegenber vielen anderen Betriebssystemen, besteht darin, dass solche Module zu jeder Zeit geladen und wieder entfernt werden knnen, sofern sie nicht gerade benutzt werden. Das bedeutet, dass das System nicht neu gestartet werden muss, wenn ihm ein neuer Treiber hinzugefgt wird. Auerdem ist es mglich, Treiber nur dann zu laden, wenn man sie wirklich braucht (wie einen Treiber fr eine Soundkarte, die nur gelegentlich benutzt wird) und dadurch Speicherplatz zu sparen. Darber hinaus lassen sich einfach unterschiedliche Einstellungen eines Treibers ausprobieren, weil er ent- und mit neuen Einstellungen wieder geladen werden kann. Es ist sogar mglich, neue Versionen eines Treibers zu laden, ohne das System neu zu starten.

Linux kann Module automatisch laden, sobald auf das Gert oder auf die Funktion, die das Modul zur Verfgung stellt, zugegriffen wird. Dies ist in Kapitel 12.4, S. 426 beschrieben. Die Konguration der Module whrend der Installation geschieht mit dem zu Debian gehrenden Programm modconf, welches gestartet wird, sobald Sie das Kommando Congure Device Driver Modules im Hauptmen des Installationprogramms aufgerufen haben. Dieses Programm steht Ihnen auch spter zur Verfgung, sodass Sie sich whrend der Installation darauf beschrnken knnen, nur die wichtigen Hardwarekomponenten zu kongurieren. Achtung: Wenn Ihr Rechner mit einer Netzkarte oder mit einem CD-Laufwerk, fr das besondere Treiber bentigt werden, ausgestattet ist, mssen die Treiber fr diese Komponenten jetzt geladen werden, damit sie im weiteren Verlauf der Installation benutzt werden knnen. Falls Sie die Installation des Basissystems ber NFS durchfhren wollen, sollten Sie den Treiber fr dieses Dateisystem ebenfalls jetzt einbinden. Abbildung 4.5 zeigt den Hauptbildschirm des Programms modconf, wie er erscheint, nachdem Sie das Programm aus dem Installationsmen oder von der Kommandozeile aufgerufen haben. Es ist eine Liste von Kategorien zu sehen, die unterschiedliche Gruppen von Modulen beinhalten. Sie whlen mit den Pfeiltasten zwischen den einzelnen Gruppen, um sich dann mit der Taste E INGABE die verfgbaren Module aus der entsprechenden Kategorie anzeigen zu lassen und diese gegebenenfalls zu laden. Folgende Gruppen stehen zur Verfgung (beachten Sie, dass u. U. nicht alle Gruppen zu sehen sind und die Liste mit den Pfeiltasten nach oben und unten bewegt werden kann): block In dieser Gruppe nden sich Treiber fr Blockgerte. Dies sind in der Regel Speichermedien wie Festplatten. Sie nden hier u. a. Treiber fr alte XT-

88

4 Durchfhrung der Basisinstallation

Abbildung 4.5. Hauptmen des Programms modconf

Festplattenadapter und fr IDE-Gerte, die ber die parallele Schnittstelle angeschlossen sind. Darber hinaus stehen hier Treiber zur Realisierung von Software-Raid4 zur Verfgung. cdrom Hier nden sich Treiber fr CD-Laufwerke, die nicht ber eine SCSI- oder (E)IDE-Schnittstelle mit dem Rechner verbunden sind. fs Hier liegen alle Module, die bentigt werden, um Dateisysteme verwenden zu knnen, die von dem Standardkern des Installationssystems nicht untersttzt werden. Dazu gehren neben Festplattendateisystemen auch solche, mit denen auf Dateisysteme zugegriffen werden kann, die sich auf anderen Rechnern benden (NFS, SMB). Solche Dateisysteme knnen natrlich erst benutzt werden, nachdem das Netz konguriert ist. Weil einige Dateisysteme (z. B. FAT, VFAT und FAT32) Datei- und Verzeichnisnamen mit anderen Zeichentabellen kodieren, als es Standard unter Linux ist, nden Sie hier auch Module, welche die Untersttzung fr solche Zeichentabellen bieten. Diese Module werden normalerweise bei Bedarf automatisch geladen. ipv4 In dieser Rubrik benden sich Treiber fr Netzprotokolle, welche Teil des Internet Protokolls (IP) sind. Whrend der Basisinstallation ist es in der Regel nicht notwendig, explizit Module aus dieser Rubrik zu laden.

Dies ist eine Betriebsart von Festplatten, bei der mehrere Platten so miteinander verbunden werden, dass sie fr das Dateisystem wie eine einzige Platte aussehen. Dabei knnen Daten auf mehreren Platten gleichzeitig gespeichert werden, sodass bei dem Defekt einer einzelnen Platte immer noch alle Daten verfgbar sind. In Datei-Servern anzutreffen.

4.2 Durchfhrung des Basisinstallation mit dbootstrap

89

ipv6 Hier benden sich die Treiber fr das Internet Protokoll, Version 6 (ipv6), das einmal das heutige Internet Protokoll ablsen wird. misc Unterschiedliche Module, die in keine andere Kategorie passen. Sie nden hier Treiber fr verschiedene ISDN-Karten, fr die parallelen und seriellen Schnittstellen, fr besondere Muse, Protokolltreiber fr Novell- und Appletalk-Netze sowie Treiber fr Bandlaufwerke, die nicht an einen SCSI-Adapter angeschlossen sind, sowie Treiber fr Soundkarten und Freudenknppel (Joysticks). net Hier liegen die Treiber fr die verschiedensten Netzkarten, zustzlich Treiber fr das PPP5 - und das SLIP6 -Protokoll, das Sie verwenden, wenn Sie eine Whlverbindung zu einem Internetprovider herstellen. scsi Module, die Treiber fr SCSI-Adapter beinhalten, die vom Kern des Installationssystems nicht untersttzt werden. Falls sich in dem Rechner Gerte wie CD-Laufwerke, Scanner oder zustzliche Festplatten benden, die an einen solchen Adapter angeschlossen sind, knnen diese nach dem Laden solcher Module benutzt werden. Darber hinaus benden sich hier Treiber fr bestimmte SCSI-Protokolle, darunter ein Treiber fr ZIP-Laufwerke, die an die parallele Schnittstelle angeschlossen sind, und ein Treiber fr SCSI-Bandlaufwerke. video Hier nden Sie Treiber fr einige Grak- und Videokarten. In den meisten Fllen ist die Verwendung eines Treibers aus dieser Rubrik auch dann nicht notwendig, wenn Sie Linux mit einer graschen Benutzeroberche verwenden wollen. Die grasche Benutzerche basiert unter Linux auf dem X Window System (X11), das seine eigene Untersttzung fr Grakkarten mitbringt. Benutzung von modconf Im Hauptmen wechseln Sie mit den Pfeiltasten von einer Gruppe zur nchsten. Zustzlich steht der Menpunkt exit zur Verfgung, mit dem Sie das Programm verlassen und in das Hauptmen des Installationsprogramms zurckgelangen (oder dorthin, von wo aus Sie das Programm aufgerufen haben). Sobald Sie die Taste E INGABE drcken, wird die markierte Gruppe ausgewhlt. Es erscheint dann eine Liste mit den Modulen der Gruppe auf der linken Seite. Daneben bendet sich entweder das Zeichen -, was bedeutet, dass das Modul noch nicht geladen wurde, oder das Zeichen +, was anzeigt, dass das Modul bereits geladen ist. Mit den Pfeiltasten wechseln Sie nun wieder zwischen den Modulen und whlen ein Modul mit der Taste E INGABE aus. Daraufhin erscheint ein Men, das noch einmal den Namen des gewhlten Moduls anzeigt und Ihnen die Mglichkeit gibt, wieder in die Liste der Module zurckzukehren oder das Modul zu laden (installieren), falls es bisher noch nicht geladen war. Anderenfalls haben Sie die Mglichkeit, es wieder zu entfernen. Wenn Sie Install whlen, gibt es zwei Mglichkeiten: Dem Modul knnen entweder Parameter bergeben werden oder nicht. Werden keine Parameter bentigt, wird
Point to Point Protocol. Netzprotokoll, das bei der Verbindung mit einem Internetanbieter benutzt wird. 6 Serial Line Internet Protocol. Netzprotokoll, das ebenfalls fr Verbindungen zu Internetprovidern verwendet wird, mittlerweile jedoch von PPP abgelst ist.
5

90

4 Durchfhrung der Basisinstallation

sofort versucht, das Modul zu laden. Anderenfalls erscheint ein weiterer Dialog, in dem u. U. ein Hilfetext zu sehen ist, der die verfgbaren Parameter des Moduls erklrt. Leider wurde bisher nicht fr jedes Modul ein solcher Hilfetext geschrieben, sodass es auch passieren kann, dass eine unbedeutende Fehlermeldung erscheint. Wenn Sie die Fehlermeldung mit E INGABE quittieren, erhalten Sie ebenfalls (ohne Anleitung) die Mglichkeit, Parameter fr das zu ladende Modul einzugeben. Die Angabe von Parametern ist bei einigen Modulen zwingend erforderlich. Andere bieten zwar die Mglichkeit dazu, sind aber mit Vorgabewerten ausgestattet, die die Spezikation von Parametern im Normalfall unntig machen. Wenn Sie die Eingabe abgeschlossen haben, drcken Sie E INGABE, und es wird versucht, das Modul mit den angegebenen Werten zu installieren. Dabei erscheint ein schwarzer Bildschirm, der Ihnen mitteilt, dass das Modul geladen wird und der Rechner eine Zeit lang nicht reagieren kann, falls es zu einem Problem kommt. Daraufhin sollten Sie die Meldung Installation succeeded erhalten sowie die Aufforderung, mit der E INGABE-Taste wieder ins vorhergehende Men zurckzukehren. Sehen Sie jedoch die Meldung Installation failed so wurde das Modul nicht geladen. Ein solcher Fehler kann zwei Ursachen haben: Entweder Sie haben das falsche Modul geladen, zu dem keine Hardware in ihrem Rechner existiert, oder Sie haben Parameter angegeben, die entweder von dem Modul nicht interpretiert werden konnten7 oder nicht der Konguration ihrer Hardware entsprechen. Falls Sie sich bei der Auswahl des Moduls oder der Parameter nicht sicher waren, knnen Sie es dann mit einem anderen Modul oder mit anderen Parametern versuchen. Nachdem Sie mit den Modulen in einer Gruppe fertig sind, whlen Sie wieder den obersten Menpunkt (Exit) aus, wodurch Sie in das Hauptmen gelangen. Sie knnen nun entweder eine andere Gruppe whlen, um dort ebenfalls Module zu installieren, oder das Programm mit dem Menpunkt Exit verlassen. Entfernen von Modulen Mit dem Programm modconf werden Module auch wieder entfernt: Whlen Sie das zu entfernende Modul aus und drcken Sie E INGABE. Daraufhin erscheint die Frage, ob Sie das Modul wirklich entfernen mchten. Wenn dies so ist, whlen Sie remove, woraufhin das Modul entfernt wird. Sollte dabei die Fehlermeldung Device or resource busy

In einem solchen Fall erscheint zustzlich die Fehlermeldung

Symbol for parameter ... not found wodurch Sie erkennen knnen, welcher Parameter nicht interpretiert werden konnte.

4.2 Durchfhrung des Basisinstallation mit dbootstrap

91

erscheinen, bedeutet dies, dass das Modul nicht entfernt wurde, weil es zur Zeit von einem Programm oder einem anderen Modul benutzt wird. In diesem Fall mssen Sie erst das Programm beenden, welches das Modul verwendet (beispielsweise eine CD, die in das Dateisystem ber das Kommando mount eingebunden wurde, entfernen) oder andere Module entfernen, welche die Funktionen des Moduls verwenden. Angabe von Modulparametern Wie bereits beschrieben, ist die Angabe von Parametern beim Laden von Modulen meistens nicht notwendig. Viele Module bentigen entweder keine besonderen Informationen, um geladen zu werden, oder sind mit Routinen ausgestattet, die die Hardware selbst erkennen. Einige Module sind jedoch zwingend auf besondere Angaben angewiesen, da sie Informationen zur Konguration der Hardware nicht selbstttig erkennen knnen. Dies ist vor allem bei Treibermodulen fr Hardwarekomponenten der Fall, die ber den alten ISA-Bus mit dem Rechner verbunden sind. In solchen Fllen muss dem Modul in der Regel die IO-Adresse der Komponente sowie gelegentlich der Interrupt und der DMA-Kanal mitgeteilt werden (siehe Kap.: 3.1.1). Leider gibt es keinen einheitlichen Standard, wie diese Parameter zu spezizieren sind, sodass die Angaben von Modul zu Modul in unterschiedlicher Form einzugeben sind. Es lassen sich jedoch zwei Familien von Eingabeformen unterscheiden: 1. Dem Modul wird eine Zeichenkette bergeben, die sich zusammensetzt aus einer Bezeichnung, die die Hardwarekomponente identiziert, dem Gleichheitszeichen und einer Anzahl von Werten, die durch Kommas getrennt die eigentlichen Parameter darstellen. Dabei werden in der Regel zunchst die IO-Adresse und daraufhin optional eine Anzahl weiterer Parameter bergeben, die von Modul zu Modul unterschiedlich sind und gegebenenfalls den benutzten Interrupt sowie DMA-Kanal oder Anweisungen an das Modul, wie die Hardware zu kongurieren ist, beinhalten. Im Falle des Moduls sonycd535, das den Treiber fr CD-Laufwerke vom Typ Sony CDU-535 darstellt, lautet die Syntax beispielsweise: sonycd535=[address] Soll dieses Modul installiert werden, um als Treiber fr ein solches CDLaufwerk, das die IO-Adresse 0x320 hat, zu dienen, so wre in der Parameterzeile sonycd535=0x320 zu spezizieren. Bei anderen Gerten kann es komplizierter sein. So lautet die Syntax des Treibermoduls fr SCSI-Adapter, die Adaptecs aha152x-Chipsatz verwenden: aha152x=IOPORT[,IRQ[,SCSI-ID[,RECONNECT[,PARITY[, SYNCHRONOUS[,DELAY[, EXT_TRANS]]]]]]]

92

4 Durchfhrung der Basisinstallation

In eckigen Klammern angegebene Parameter sind wie blich optional. Die entsprechende Konguration vorausgesetzt knnte man diesen Treiber mit den Parametern aha152x=0x340,10,7 installieren. Hiermit wrde dem Modul mitgeteilt, dass der Adapter die Ein/Ausgabeadresse 0x340, den Interrupt 10 und die SCSI-ID 7 verwendet. Da die brigen Parameter (RECONNECT, PARITY etc.) im Beispiel nicht angegeben wurden, wrde der Treiber dafr Standardwerte verwenden. 2. Die zweite, hug anzutreffende Form der Parameterangabe beim Laden von Modulen setzt sich zusammen aus (1) einem Schlsselwort (beispielsweise IRQ), (2) dem Gleichheitszeichen und (3) einem Wert, der diesem Schlsselwort zugeordnet werden soll. Solche Ausdrcke knnen dann mit unterschiedlichen Schlsselwrtern und Werten (durch Leerzeichen voneinander getrennt) mehrmals vorkommen. So lautet beispielsweise die Syntax zum Laden des Moduls ne, das den Treiber fr NE2000-basierte Ethernetkarten, die ber den ISA-Bus mit dem Rechner verbunden sind, implementiert: io=IOPORT [irq=IRQ] Die eckigen Klammern um den Ausdruck irq=IRQ bedeuten auch hier, dass die Angabe dieses Parameters optional ist. Wre die Karte hardwareseitig zur Benutzung der Speicher-Adresse 0x240 und des Interrupts 7 konguriert, so wren die Parameter in der folgenden Form zu spezizieren: io=0x240 irq=7 Die Parameter io, irq und dma sind bei vielen Modulen in dieser Form anzugeben (beispielsweise bei vielen Treibermodulen fr Netzkarten). Andere Module benutzen jedoch besondere Schlsselwrter: IO-Adresse und IRQ bei dem Modul isp16 (einem weiteren CD-Treiber) werden durch Angabe der Schlsselwrter isp16_cdrom_base und isp16_cdrom_irq speziziert. Viele Module verwenden zustzliche Schlsselwrter. Lesen Sie sich sofern vorhanden die Anweisungen zur Parameterangabe des Moduls, das Sie installieren wollen, genau durch. Falls die Angabe von Parametern fr das Modul nicht zwingend vorgeschrieben ist, versuchen Sie zunchst, das Modul ohne Parameter zu laden. Wenn es ohne Parameter erfolgreich geladen werden konnte, ist in der Regel alles in Ordnung. Sollten Sie jedoch eine Fehlermeldung wie Device or resource busy erhalten, so sollten Sie es zunchst mit der Angabe der IO-Basisadresse (z.B.: 0x330), dann zustzlich mit der Angabe des von der Komponente verwendeten Interrupts und schlielich (sofern bentigt) mit der Angabe des DMA-Kanals versuchen. Diese Parameter sollten Sie der Dokumentation Ihrer Hardware entnehmen knnen. Beispiel: In dem Rechner bende sich eine ISA-Ethernetkarte vom Typ 3Com Etherlink II, die fr die Benutzung der IO-Adresse 0x2A0 und des Interrupts 9 konguriert wurde. Um den Treiber fr diese Karte zu laden, wird

4.2 Durchfhrung des Basisinstallation mit dbootstrap

93

nach dem Aufruf des Programms modconf die Gruppe net ausgewhlt und besttigt. Dann wird das Modul fr die Karte gesucht: Wie der Beschreibung der Module zu entnehmen ist, handelt es sich bei dem Modul 3c503 um das richtige. Das Modul wird ausgewhlt, und in dem folgenden Dialog wird install gewhlt. Daraufhin wird angezeigt, dass fr das Modul drei verschiedene Parameter angegeben werden knnen, nmlich io, irq und xcvr. Weiter ist dem Text zu entnehmen, dass der letzte Parameter (xcvr) nur bentigt wird, falls die Netzkarte mit einem externen Transceiver betrieben wird. Da dies nicht der Fall ist, werden die Parameter in der folgenden Form eingegeben: io=0x2A0 irq=9 Nach der Besttigung wird der Bildschirm schwarz, und nach kurzer Zeit erscheint die Meldung Installation succeeded Diese Nachricht wird durch die E INGABE-Taste quittiert, und es erscheint wieder die Liste mit den verfgbaren Treibermodulen fr Netzkarten, wobei hinter dem Modul 3c503 jetzt das Zeichen + zu sehen ist. Das Programm wird dann durch Auswahl des Menpunkts exit verlassen. Weitere Hinweise zur Arbeit mit Modulen nden Sie in Kapitel 12.4, S. 426. Beachten Sie bitte, dass Treibermodule fr Plug-and-Play Gerte u. U. nicht geladen werden knnen, bevor das Gert initialisiert worden ist. Hinweise hierzu in Abschnitt 12.7. 4.2.10 Basiskonguration des Netzes Nachdem die Treibermodule fr eventuell vorhandene Netzkarten konguriert und geladen wurden, knnen die notwendigen Netzeinstellungen vorgenommen werden. Das entsprechende Kommando im Hauptmen des Installationsprogramms lautet Congure the network. Dieser Kongurationsschritt muss auch dann durchgefhrt werden, falls Ihr Rechner nicht mit einem Netz verbunden ist oder nur gelegentlich ber eine Einwahlverbindung mit einem Netz verbunden wird. Als erstes erfragt das Programm den Rechnernamen. Geben Sie den Namen Ihres Rechners ein, den Sie entweder von ihrem Netzverwalter erhalten oder sich selbst ausgedacht haben, falls ihr Rechner nicht mit einem Netz verbunden ist oder in ihrem Netz kein Namensdienst (DNS) benutzt wird. Daraufhin untersucht das Installationsprogramm, welche Netzadapter (Interface)8 sich im Rechner benden. Es kann dabei nur solche Adapter nden, fr die zuvor ein Treibermodul geladen wurde. Zu beachten ist ferner, dass whrend der Installation des Basissystems nur genau ein Adapter konguriert werden kann. Aus diesem Grund die Frage, welcher Adapter konguriert werden soll, wenn mehr als eines gefunden wurde.
8 Das sind Schnittstellen wie Ethernetkarten, ber die der Rechner mit einem Netz verbunden ist.

94

4 Durchfhrung der Basisinstallation

Falls das Installationsprogramm kein einziges Netzinterface nden konnte, teilt es dies mit und fragt, ob die Netzinstallation abgebrochen werden soll. Wenn Ihr Rechner mit einem Netz verbunden ist und Sie bisher lediglich vergessen haben, den Treiber fr Ihre Netzkarte zu laden, dann sollten Sie die Netzkonguration jetzt abbrechen und zum Kommando Congure Device Driver Modules zurckkehren, um den Treiber zu laden. Sollte Ihr Rechner jedoch nicht mit einem Netz verbunden sein, dann whlen Sie hier aus, dass die Konguration des Netzes nicht abgebrochen werden soll: No. Der Rechner wird dann zunchst nicht fr die Verbindung mit einem Netz konguriert, und Sie knnen dies spter nachholen. Sofern ein Netzinterface gefunden wurde bzw. wenn Sie eines ausgewhlt haben, berprft das Installationsprogramm, ob es sich bei dem Gert um eine PCMCIAKarte handelt. Wenn das Programm der Meinung ist, das dem so ist, fragt es nach, ob dies zutrifft. Weil PCMCIA-Gerte nicht stndig zur Verfgung stehen, kann das System dann nicht so konguriert werden, dass das Netz automatisch beim Systemstart gestartet wird.

Abbildung 4.6. Automatische Netzkonguration ber DHCP oder BOOTP.

Wenn in Ihrem Netz ein DHCP- oder BOOTP-Server zur automatischen Netzkonguration verfgbar ist, sollte dieser benutzt werden, um alle weiteren Netzeinstellungen vorzunehmen. Sie sollten dann die Frage Automatic Network Conguration mit Yes beantworten (siehe Abb. 4.6). Geht alles gut, wird das Netz dann automatisch konguriert, und Sie knnen mit der Installation des Basissystems fortfahren. Sollte bei der automatischen Konguration jedoch ein Fehler auftreten, dann teilt das Programm dies mit und bietet an, zur manuellen Netzkonguration zu springen. Eventuell sollte dann berprft werden, ob das Modul fr die richtige Netzkarte geladen wurde und ob die physikalische Netzverbindung in Ordnung ist. Falls dabei

4.2 Durchfhrung des Basisinstallation mit dbootstrap

95

Fehler gefunden werden, kann die automatische Konguration nach Behebung des Fehlers erneut probiert werden. Manuelle Netzkonguration Wenn kein DHCP- oder BOOTP-Server zur Verfgung steht, mssen Sie die IPAdresse ihres Rechner angeben. Diese setzt sich gegenwrtig aus vier Zahlen im Bereich von 0-255 zusammen, die jeweils durch einen Punkt voneinander getrennt werden. Den vorgegebenen Wert knnen Sie gegebenenfalls mit der Z URCK-Taste lschen. Danach mssen Sie die Netzmaske Ihres Netzes angeben: Der Vorgabewert 255.255.255.0 ist in vielen Netzen richtig. Falls Sie jedoch eine andere Einstellung machen mssen, lschen Sie diesen Wert mit der Z URCK-Taste und tragen den richtigen Wert ein. Im nchsten Schritt wird gefragt, ob Ihr Netz ber ein Gateway mit einem anderen Netz wie dem Internet verbunden ist. Wenn dies der Fall ist, geben Sie die IP-Adresse des Gateways ein, ansonsten lschen Sie den Vorgabewert lschen und lassen das Feld leer. Nun knnen Sie den Namen Ihrer Internetdomne bzw. Ihres Netzes eingeben. Falls Ihr Netz keinen Namen hat, lassen Sie dieses Feld leer. Der Domnen- oder Netzname ist der rechte Teil des Internetnamens Ihres Rechners, also beispiel.de, wenn der Internetname Ihres Rechners debian.beispiel.de lautet. Im nchsten Schritt sind die IP-Adressen der DNS-Server anzugeben, die in Ihrem Netz verfgbar sind. Die einzelnen Adressen mssen durch Leerzeichen voneinander getrennt werden. Falls in Ihrem Netz kein DNS-Server benutzt wird, lassen Sie das Feld leer. Achtung: Wenn Sie sich whrend der Durchfhrung der Netzeinstellungen an einem Punkt vertippt haben sollten, rufen Sie das Kommando Congure the network erneut aus dem Hauptmen auf und wiederholen die Konguration. Informationen zur Konguration und zur berprfung des Netzes nden Sie in Kapitel 17, S. 593. Beachten Sie, dass es auch schon whrend der Basisinstallation mglich ist, die Netzeinstellungen auf der zweiten virtuellen Konsole zu berprfen und anzupassen. 4.2.11 Installation des Basissystems Nun knnen die Dateien des Basissystems auf die Festplatte(n) kopiert werden. Nach Auswahl des Menpunktes (Install the Base System) erscheint die gleiche Auswahl wie bei der Installation von Kern und Treibermodulen zur Angabe der Installationsquelle. Sie knnen nun zustzliche Methoden zur Installation benutzen, weil dem Installationsprogramm die Treiber zur Verfgung stehen: NFS Sie knnen die Installationsquelle NFS benutzten, wenn das Netz konguriert ist und in Ihrem Netz ein NFS-Server mit den Dateien zur Verfgung steht. Nach Auswahl dieser Installationsquelle mssen Sie den Rechnernamen oder die IPAdresse des Servers angeben, der die Daten im Netz bereithlt, sowie den Pfad

96

4 Durchfhrung der Basisinstallation

des Verzeichnisses, in dem die Daten auf diesem Rechner liegen. Der Server muss das entsprechende Verzeichnis zur Verfgung stellen (siehe Kap.: 17.7.7). Diese Angaben werden in der folgenden Form vorgenommen: Rechnername:/Verzeichnis Dabei ist fr Rechnername entweder der DNS-Name des NFS-Servers oder seine IP-Adresse anzugeben. Liegen in Ihrem Netz die Installationsdaten beispielsweise auf dem Server instserver und dort im Verzeichnis /public/deb_inst, so ist in das Dialogfeld folgender Text einzugeben: instserver:/public/deb_inst Die weitere Installation des Basissystems verluft genauso wie bei den anderen Installationsquellen. Network Die Dateien werden ber das Hypertext-Transfer-Protocol (HTTP) von einem Debian-Server bezogen und dann installiert. Voraussetzung fr dieses Verfahren ist, dass Sie ber eine funktionierende Netzanbindung zu einem WebServer verfgen, auf dem sich die Dateien benden. Nach der Auswahl dieser Option ist der URL zu dem Verzeichnis anzugeben, in dem sich das Archiv mit dem Basissystem bendet. Um die Dateien beispielsweise von dem DebianMirror ftp.de.debian.org zu installieren, ist http://ftp.de.debian. org/debian/dists/woody/main/disks-i386/current/ anzugeben. Falls Sie einen Proxy-Server9 verwenden wollen oder mssen, ist dies ebenfalls mglich. Wechseln Sie mit der Taste TAB in das Feld Proxy, lschen Sie dort den Text None und geben Sie den Namen des Proxy-Servers und im Feld Port die Portnummer des Servers an. Wenn Sie sich nicht sicher sind, sollten Sie es ohne Proxy-Server versuchen oder Ihren Netzverwalter fragen. Wenn Sie nach der Besttigung Ihrer Angaben eine Meldung wie HTTP/1.1 404 Not Found erhalten, haben Sie den URL vermutlich falsch eingeben. Wiederholen Sie den Vorgang mit korrigierten Angaben. Sollte das Installationsprogramm beim Versuch, die Dateien herunterzuladen, hngen bleiben, liegt dies hug an falschen Netzeinstellungen. Sie knnen das Programm neu starten, in dem Sie mit der Tastenkombination A LT-F2 auf die zweite Konsole wechseln und dort das Kommando debian:~# killall dbootstrap eingeben. Danach wechseln Sie mit A LT-F1 wieder zurck zur ersten Konsole und fahren mit der Installation fort. Sind alle Angaben richtig und funktioniert die Netzverbindung, sehen Sie auf dem Bildschirm den Fortschritt des Herunterladens sowie die verbleibende Wartezeit. CD Bei der Installationsquelle cdrom kann neben den bereits bekannten Gertedateien fr (E)IDE und SCSI-Laufwerke zustzlich ein Laufwerk mit nichtstandardisierter Schnittstelle angegeben werden. Falls Sie ein solches Laufwerk
9 Ein Zwischen-Server, der fr Sie die bentigten Dateien herunterldt und an Ihren Rechner weitergibt.

4.2 Durchfhrung des Basisinstallation mit dbootstrap

97

verwenden, whlen Sie aus der Liste der CD-Laufwerke den Listenpunkt proprietary aus. Daraufhin wird wieder das Programm modconf aufgerufen, um das Treibermodul fr Ihr CD-Laufwerk mit nicht-standardisierter Schnittstelle zu laden, falls Sie dies nicht bereits getan haben. Die Installation des Basissystems erfolgt genauso wie die Installation von Kern und Treibermodulen: Bei der Installation von Disketten werden Sie aufgefordert, die entsprechenden Disketten einzulegen. Bei der Installation von CD, Harddisk (nicht in das Dateisystem eingebundener Partition), eingebundener Partition (mounted) oder NFS erhalten Sie zunchst die Mglichkeit, einen Pfad anzugeben, unterhalb dem nach der Datei mit dem Basissystem (base2_2.tgz) gesucht werden soll. Daraufhin knnen Sie whlen, ob Sie den Pfad zu dem Verzeichnis mit dieser Datei angeben oder das Installationsprogramm suchen lassen wollen (List). Wenn Sie List whlen, erhalten Sie eine Liste der Verzeichnisse, in denen die Dateien gefunden wurden. Whlen Sie aus, besttigen Sie, und das Basissystem wird installiert. 4.2.12 Auswahl der Zeitzone Unter Linux/UNIX wird blicherweise die Hardwareuhr des Rechners auf Universal Time Coordinated (UTC), frher als Greenwich Mean Time (GMT) bekannt, gestellt (siehe auch Kap 3.4). Auerdem wird dem Rechner mitgeteilt, wo er sich auf der Welt bendet, woraufhin er die lokale Uhrzeit anhand des Standortes, der Jahreszeit und der Einstellung der Uhr des Rechners bestimmt. Andere Betriebssysteme gehen davon aus, dass die Systemuhr nach der lokalen Uhrzeit luft. Fr Rechner, auf denen neben Debian GNU/Linux noch ein weiteres Betriebssystem benutzt wird, das von einer auf Lokalzeit eingestellten Systemuhr ausgeht, wird deswegen empfohlen, die Systemuhr auf lokaler Zeit zu belassen. Die Systemzeit wird mit dem Kommando Congure the Base System im Hauptmen des Installationsprogramms eingestellt. Nach Auswahl dieses Kommandos erscheint ein zweigeteilter Bildschirm, der links die Auswahl einer bestimmten Zeit und rechts die Auswahl einer Region erlaubt. Zwischen den beiden Listen wird mit der Taste TAB gewechselt. Sie knnen nun entweder die lokale Zeit anhand eines vorgegebenen Schemas in der linken Liste (beispielsweise CET fr Central European Time) auswhlen oder in der rechten Liste die Region auswhlen, in der Sie sich benden. Im zweiten Fall (Auswahl der Region) erscheint auf der linken Seite eine neue Liste mit Stdten innerhalb dieser Region. Whlen Sie daraus eine Stadt in Ihrer Nhe, die dieselbe Uhrzeit wie Ihr Standort hat. Beispiel: Fr einen Rechner in Deutschland wrde zunchst in der rechten Liste die Region Europe ausgewhlt. In der daraufhin erscheinenden Liste mit Stdten wre dann Berlin auszuwhlen. Nach der Auswahl der Zeitzone erscheint ein Bildschirm, der auf den Unterschied zwischen lokaler Zeit und UTC hinweist und Ihnen die Mglichkeit gibt zu whlen, ob die Hardwareuhr auf lokale Zeit oder UTC gestellt werden soll. In jedem Fall sollten Sie die Einstellung der Uhr spter berprfen und entweder im

98

4 Durchfhrung der Basisinstallation

BIOS-Setup des Rechners, unter einem anderen Betriebssystem oder unter Debian GNU/Linux mit dem Programm hwclock (S. 809) richtig einstellen. Die Wahl der Zeitzone kann jederzeit mit dem Programm tzcong gendert werden. 4.2.13 Wahl der zuknftigen Bootmethode Nun fehlt noch die Mglichkeit, das frisch installierte System zu starten. Dazu bietet das Installationsprogramm zwei Mglichkeiten: Zum einen kann eine Bootdiskette erstellt werden, mit der das System gestartet wird, und zum anderen kann der Linux-Bootloader LILO installiert werden. Die dritte Mglichkeit, nmlich Linux von DOS aus zu starten, besteht weiterhin. Hierzu sind jedoch seitens des Installationsprogramms keine Schritte notwendig. Die Installation von LILO ist zu empfehlen. Sie ist nicht notwendig, wenn Sie Debian GNU/Linux ausschlielich von DOS oder von Diskette starten wollen (siehe Kap.: 2.2). Eine Bootdiskette sollte in jedem Fall erzeugt werden. Installation von LILO LILO wird ber das Kommando Make Linux Bootable Directly From Hard Disk installiert. Das Installationsprogramm kann LILO in zwei unterschiedlichen Kongurationen einrichten: 1. LILO wird in den MBR der ersten Festplatte kopiert. Mit diesem Verfahren knnen Sie Linux relativ sicher starten, falls die 1024-Zylinder-Grenze fr die zum Booten bentigten Dateien nicht berschritten ist und Sie Linux auf eine Festplatte installiert haben, die direkt vom BIOS angesprochen wird. 2. LILO wird in den Bootsektor der Partition installiert, welche die Rootpartition des installierten Systems ist. Es kann dann zustzlich ein MBR installiert werden, mit dem dieses System, aber auch ein anderes, bereits auf der Festplatte bendliches System, gestartet werden kann. Mit dieser Konguration ist es auch mglich, einen eventuell bereits installierten fremden Bootmanager weiterhin zu verwenden. Wenn Sie Debian GNU/Linux auf eine Partition installiert haben, die sich nicht auf der ersten Festplatte bendet, kann es sein, dass das DebianSystem nicht startbar ist und eine Bootdiskette bentigt wird. Achtung: Durch die Installation von LILO in den MBR wird eine eventuell zuvor vorhandene Bootkonguration berschrieben. Sie knnen Ihr altes Betriebssystem dann hinterher zunchst nicht mehr automatisch starten, sondern bentigen dazu eine Bootdiskette. Es wird empfohlen, LILO in den MBR zu installieren, wenn Sie Linux als einziges Betriebssystem auf dem Rechner verwenden wollen. Wenn Sie neben Linux noch andere Betriebssysteme verwenden wollen, dann sollten Sie LILO in den Bootsektor der Rootpartition installieren und den alternativen MBR benutzen. Sie knnen LILO

4.2 Durchfhrung des Basisinstallation mit dbootstrap

99

dann spter mit einer Konguration, die das alternative Starten verschiedener Betriebssysteme ermglicht, in den MBR installieren. Whlen Sie auf die Frage Where should the lilo boot loader be installed? die Antwort Install LILO in the MBR, um LILO in den MBR zu installieren, oder Install LILO in the /target boot sektor, um LILO in den Bootsektor zu schreiben.
Wenn Sie LILO in den Bootsektor der Installationspartition geschrieben haben und sich diese Partition nicht auf der ersten Festplatte bendet, erscheint nach Auswahl des Kommandos eine Warnung, dass das Starten eines Betriebssystems von der gewhlten Festplatte u. U. nicht vom BIOS untersttzt wird. Es wird dann empfohlen, den MBR trotzdem zu installieren und das System zunchst mit einer Bootdiskette oder von DOS aus zu starten, falls es nicht automatisch gestartet werden kann. Spter kann LILO dann so konguriert werden, dass Linux und andere Betriebssysteme alternativ gestartet werden (siehe Kap.: 10.3).

Falls die Rootpartition des Systems eine logische Partition ist, teilt Ihnen das Installationsprogramm nun mit, dass es nicht mglich ist, LILO in eine logische Partition zu installieren und bietet an, den Bootloader in eine erweiterte Partition zu schreiben. Falls auf dem System mehrere erweiterte Partitionen vorhanden sind, knnen Sie aus den vorhandenen eine auswhlen. Prinzipiell sollten Sie die erweiterte Partition whlen, in der sich die logische Partition bendet, die das Rootdateisystem der Installation beherbergt. U. U. empehlt es sich jedoch, die erweiterte Partition auf der ersten Festplatte zu verwenden, weil das System von dort direkt gestartet werden kann. In jedem Fall sollten Sie sich vergewissern, dass sich in der Zielpartition nicht bereits der Bootsektor eines anderen Betriebssystems bendet. Installation des MBR Wenn LILO nicht in den MBR installiert wurde, wird nun gefragt, ob dorthin ein anderes Programm installiert werden soll. Achtung: Durch die Installation eines neuen MBR wird die Bootkonguration Ihres Rechners verndert. Falls Sie einen Bootmanager verwenden, der aus dem MBR gestartet wird und diesen weiterhin benutzen wollen, drfen Sie keinen neuen MBR installieren. Ein MBR wird zwingend bentigt, um den Rechner berhaupt von der Festplatte starten zu knnen. Falls sich bisher noch kein Betriebssystem auf dem Rechner befunden hat, mssen Sie den MBR installieren. Die Installation des MBRs empehlt sich auch, wenn Sie bisher einen Standard-MBR benutzt haben, der lediglich das Betriebssystem auf der ersten aktiven Partition startet, weil es mit dem hier angebotenen MBR mglich ist, whrend des Startvorgangs auszuwhlen, von welcher Partition ein Betriebssystem geladen werden soll. Standardmig startet dieser MBR das Betriebssystem auf der ersten aktiven Partition. Wenn Sie sich fr die Installation des MBRs entschieden haben, erscheint ein Bildschirm mit Hinweisen. Schlielich kann festgelegt werden, ob Debian GNU/Linux als Standardbetriebssystem gestartet werden soll. Dadurch wird die Partition, in deren Bootsektor lilo installiert wurde, als aktiv (startbar) markiert. Die Folge ist, dass bei Einsatz eines

100

4 Durchfhrung der Basisinstallation

Standard-MBR Debian GNU/Linux nach dem Einschalten automatisch gestartet wird. Sie sollten die Frage Make Linux the Default Root Partition? mit No beantworten, wenn Sie Ihre bisherige Bootkonguration zunchst behalten wollen. Wenn Sie Debian GNU/Linux als Standardbetriebssystem verwenden wollen, beantworten Sie die Frage mit Yes. Herstellen einer Bootdiskette Durch die Auswahl des Menpunktes Make a Boot Floppy wird eine Diskette hergestellt, mit der Sie Debian GNU/Linux im Notfall starten knnen. Diese Bootdiskette unterscheidet sich von der Standard Rescue-Diskette, die Sie vielleicht schon erzeugt haben, dadurch, dass mit ihr automatisch das nun installierte System gestartet wird. Sie sollten diese Diskette auf jeden Fall erzeugen und sie vor versehentlichem berschreiben schtzen und beschriften10. Nach Auswahl des entsprechenden Menpunktes werden Sie aufgefordert, eine Diskette in das Laufwerk zu legen. Besttigen. 4.2.14 Neustart des Systems Die Installation des Basissystems ist nun beendet, und das System muss neu gestartet werden. Whlen Sie das Kommando Reboot the System aus dem Hauptmen. Wenn Sie das System mit einer Bootdiskette starten wollen, muss sich diese im Laufwerk benden. Wenn das neu installierte System jedoch mit LILO oder von DOS aus gestartet werden soll, entfernen Sie alle Disketten und CD/DVDs aus den Laufwerken. Falls das System nicht richtig starten sollte, verwenden Sie die Bootdiskette oder notfalls die Rescue-Diskette, um mit der Installation fortzufahren. Sie mssen die Bootkonguration dann manuell anpassen, wenn die Installation abgeschlossen ist (siehe Kapitel 10). Start des frisch installierten Systems mit Rescue-Diskette oder CD/DVD Um das frisch installierte System mit Hilfe der Rescue-Diskette oder der CD/DVD zu starten, ist am Bootprompt folgendes einzugeben: rescue root=Partition wobei Sie Partition durch die Bezeichnung der Gertedatei ersetzen mssen, durch welche die Partition mit dem Rootdateisystem reprsentiert wird. Beachten Sie, dass zu diesem Zeitpunkt noch keine Tastaturtabelle fr deutsche Tastaturen geladen ist. Wenn Sie Linux auf die Partition /dev/hda6 installiert haben, ist folgendes einzugeben:
Am besten erstellen Sie sogar zwei Bootdisketten, indem Sie zweimal hintereinander das Kommando Make a Boot Floppy auswhlen. Dann sind Sie auch vor einer fehlerhaften Diskette geschtzt.
10

4.3 Konguration des Basissystems

101

rescue root=/dev/hda6 Falls Sie bereits beim ersten Start von Debian GNU/Linux (zu Beginn der Installation) spezielle Bootparameter angeben mussten, so mssen Sie diese auch hier wieder verwenden und sie an die oben aufgefhrte Kommandozeile anhngen. Neustart des Systems unter DOS Um das neu installierte System von DOS aus zu starten, wechseln Sie in das Verzeichnis auf der Festplatte oder CD/DVD, in dem sich die Dateien loadlin.exe und linux benden. Geben Sie dann folgendes Kommando ein: C:\> loadlin linux root=Partition Auch hier mssen Sie Partition durch die Rootpartition der Debian GNU/LinuxInstallation ersetzen, beispielsweise: C:\> loadlin linux root=/dev/hda6 Wie beim Start von der Rescue-Diskette besteht auch hier die Mglichkeit, spezielle Parameter an die Kommandozeile anzuhngen. Auswahl des zu startenden Systems mit dem neuen MBR Wenn Sie LILO in den Bootsektor der Rootpartition des neu installierten Systems installiert haben und den Debian-MBR-Code in den MBR, whlen Sie auf die folgende Weise zwischen den zu startenden Betriebssystemen aus, sofern diese von primren Partitionen der ersten Festplatte gestartet werden: 1. Drcken Sie eine beliebige Taste, whrend der Rechner startet. 2. Es erscheint ein Prompt, der ungefhr folgendermaen aussieht: MBR 1FA 3. Sie drcken nun eine Taste, die den angezeigten Zahlen und Buchstaben entspricht. Die Zahlen (1 4) entsprechen dabei den primren Partitionen der ersten Festplatte, von denen ein Betriebssystem gestartet werden kann. Mit F wird von der Diskette (Floppy) gestartet. Der Buchstabe A steht fr advanced. Nach der Bettigung der Taste A besteht die Mglichkeit, jede primre Partition zu starten (was nicht unbedingt funktionieren muss). Falls sich Ihr altes Betriebssystem auf der ersten primren Partition der ersten Festplatte bendet, wre die Taste 1 zu bettigen, und wenn LILO in den Bootsektor der dritten primren Partition installiert ist, wre die Taste 3 zu drcken, um die Linux-Installation zu starten.

102

4 Durchfhrung der Basisinstallation

Abbildung 4.7. Konguration von MD5-Passwrtern

4.3 Konguration des Basissystems


Whrend das System startet, erscheint wieder eine Reihe von Meldungen auf dem Bildschirm, die Sie zum Teil bereits kennen. Schlielich folgt der in Abbildung 4.7 dargestellte Bildschirm. Dieser Bildschirm gehrt zum Kongurationsprogramm fr das Basissystem. Es kann zu einem spteren Zeitpunkt erneut gestartet werden, indem folgendes Kommando eingeben wird (siehe auch S. 203): debian:~# dpkg-reconfigure base-config - -frontend=dialog - -priority=low 4.3.1 Konguration von Benutzerkonten und Passwrtern Die ersten beiden Fragen beziehen sich auf Passwrter. Es bestehen verschiedene Mglichkeiten, wie Passwrter auf dem System verschlsselt und gespeichert werden. MD5-Passwrter erlauben es, Passwrter zu benutzen, bei denen mehr als die ersten acht Zeichen bedeutsam sind. Allerdings kann es bei Verwendung solcher Passwrter zu Kompatibilittsproblemen mit bestimmten Programmen und lteren Systemen kommen. Grundstzlich ist die Verwendung von MD5-Passwrtern jedoch zu empfehlen. Unter der Verwendung von Schattenpasswrtern (Shadow passwords) wird ein Verfahren verstanden, bei dem die verschlsselten Passwrter so gespeichert werden, dass sie von normalen Benutzern des Systems nicht gesehen werden knnen (siehe auch Kap. 15.2). Die Verwendung von Schattenpasswrtern erhht die Sicherheit des Systems deutlich und wird dringend empfohlen.

4.3 Konguration des Basissystems

103

Passwort fr das Konto des Systemverwalters Im nchsten Schritt ist das Passwort fr den Systemverwalter, dessen Benutzername auf Linux/UNIX-Systemen root lautet, anzugeben. Selbstverstndlich sollten Sie das Benutzerkonto des Systemverwalter mit einem guten Passwort schtzen. Wer das Passwort der root hat, dem gehrt das System. Ein gutes Passwort besteht aus kleinen und groen Buchstaben, Zahlen und Satzzeichen und sollte keine Wrter oder Namen verwenden11. Darber hinaus sollte es eine Lnge von wenigstens acht Zeichen haben. Whlen Sie ein gutes Passwort aus und geben Sie es ein. Da die Eingabe nicht auf dem Bildschirm erscheint (es knnte Sie ja jemand beobachten), werden Sie nach der Besttigung des Passworts aufgefordert, es zu wiederholen um sicherzustellen, dass Sie sich nicht vertippt haben. Wenn beide Eingaben nicht bereinstimmen, wird die Abfrage wiederholt. Sie mssen sich das Verwalterpasswort gut merken. Passwrter drfen aus Sicherheitsgrnden unter keinen Umstnden im Klartext auf Rechnern gespeichert werden. Einrichtung eines Benutzerkontos Es ist nicht empfehlenswert, die tgliche Arbeit eines gewhnlichen Benutzers mit dem Benutzerkonto des Systemverwalters durchzufhren. Dies wrde die Sicherheit, die Ihnen Debian GNU/Linux bietet, ausschalten und Sie in die Lage versetzen, jederzeit durch einen kleinen Fehler das System unbenutzbar zu machen oder wichtige Systemdateien zu zerstren. Es ist auch auf solchen Systemen, die nur von einer Person benutzt werden, mindestens ein gewhnliches Benutzerkonto einzurichten. Beantworten Sie dazu die Frage Shall I create a normal user account now durch Auswahl von Yes. Danach muss der Name des neuen Benutzerkontos angegeben werden. Ein solcher Name muss mit einem kleinen Buchstaben beginnen und darf desweiteren aus Zahlen und kleinen Buchstaben bestehen. Sie knnen beispielsweise Ihren kleingeschriebenen Vornamen fr Ihr Benutzerkonto verwenden. Lschen Sie den Vorgabewert mit der Taste Z URCK und geben Sie den Namen ein. Daraufhin muss der vollstndige Name des neuen Benutzers angegeben werden. Geben Sie hier Ihren brgerlichen Namen ein, nachdem Sie den Vorgabewert gelscht haben. Schlielich muss fr das neue Benutzerkonto ein Passwort angegeben werden. Hinweise dazu, wie Sie spter neue Benutzerkonten anlegen oder entfernen und Benutzer und Gruppen verwalten, nden Sie in Kapitel 15. 4.3.2 PC-Card-Untersttzung (PCMCIA) Falls Sie whrend der Basisinstallation PCMCIA nicht konguriert haben, wird dies bemerkt, und das System erkundigt sich, ob die Pakete, in denen die PCMCIAUntersttzung enthalten ist, wieder entfernt werden sollen. Falls Sie kein Notebook
Bei der Verwendung bestimmter Dienste (z. B. SAMBA) gibt es Probleme mit Ground Kleinschreibung in Passwrtern. Allerdings sollten diese Dienste fr den Systemverwalter nicht benutzbar sein, sodass Sie hierauf bei der Vergabe des Verwalterpasswortes keine Rcksicht zu nehmen brauchen.
11

104

4 Durchfhrung der Basisinstallation

mit PCMCIA-Adapter und zugehrigen Gerten verwenden, brauchen Sie diese Pakete nicht und antworten hier mit yes. Wenn Sie die PCMCIA-Untersttzung jedoch zu einem spteren Zeitpunkt kongurieren wollen, antworten Sie mit no. 4.3.3 Konguration einer PPP-Verbindung Unter Umstnden erfolgt nun die Frage, ob eine Einwahlverbindung in das Internet konguriert und gestartet werden soll. Falls Sie von CD/DVD, ber eine andere Netzanbindung (Ethernet, ADSL) oder von einer lokalen Festplattenpartition installieren, brauchen Sie die PPP-Konguration jetzt nicht durchzufhren. Zu diesem Zeitpunkt kann nur genau eine Einwahlverbindung ins Internet ber ein Moden konguriert werden. Fr ISDN-Verbindungen wird zustzliche Software bentigt, die im Basissystem nicht enthalten ist. Wenn Sie die Frage mit Yes beantworten, wird das Programm pppcong gestartet. Es dient zur interaktiven Konguration von Internet-Einwahlverbindungen. In Kapitel 17.4 wird es ausfhrlich beschrieben. Sobald pppcong beendet wird, startet das Installationsprogramm die PPP-Verbindung.
Sie knnen das Programm pppcong auch manuell starten. Wechseln Sie dazu durch Bettigung der Tasten A LT-F2 auf die zweite virtuelle Konsole, melden Sie sich dort als Systemverwalter an und geben Sie folgendes Kommando ein: debian:~# pppconfig Die Internetverbindung kann dann mit den Kommandos pon (S. 846) und poff (S. 846) manuell gestartet und beendet werden.

4.3.4 Auswahl von Paketquellen Nun muss angegeben werden, von welchen Installationsquellen Pakete installiert werden sollen. Zu diesem Zweck wird das Programm apt-setup aufgerufen, das Sie auch spter verwenden knnen, um die Konguration zu verndern. Mehr Hinweise dazu auf Seite 179. Wenn Sie die Installation von CDs durchfhren, legen Sie die erste CD/DVD des Satzes in das Laufwerk und whlen dann CD/DVD aus. Das Programm versucht, das Laufwerk selbststndig zu erkennen. Wenn dies nicht gelingt, mssen Sie die Gertedatei, durch die das Laufwerk reprsentiert wird, manuell angeben (siehe Seite 471). Danach untersucht das Programm die eingelegte CD/DVD nach Paketen und fordert Sie auf, die nchste CD/DVD einzulegen. Wiederholen Sie diese Prozedur fr alle CD/DVDs Ihres Satzes. Sofern Sie die Installation von einem Server im Netz vornehmen wollen, whlen Sie die den Quellentyp http. Das Programm leitet Sie so durch die Konguration der Paketquelle, wie es auf Seite 179 beschrieben ist. Sie brauchen eine funktionierende und aktive Internetverbindung.

4.4 Einige Probleme bei der Basisinstallation

105

4.3.5 Auswahl und Installation von Paketen Im nchsten Schritt wird ausgewhlt, welche Software installiert werden soll. Zur Auswahl der Pakete knnen von hier aus zwei verschiedene Programme aufgerufen werden, nmlich zum einen das Programm tasksel (siehe S. 181) und zum anderen das Programm dselect (siehe S. 182). Das Programm tasksel ermglicht, zwischen einer berschaubaren Anzahl aufgabenbezogener Pakete auszuwhlen. Dadurch lsst sich relativ einfach eine Ausgangskonguration von Paketen auswhlen. Mit dselect ist es hingegen mglich, eine detaillierte Auswahl zu treffen. Wenn Sie sich nicht sicher sind, sollten Sie zunchst tasksel benutzen und zu einem spteren Zeitpunkt dselect oder ein anderes Werkzeug verwenden. Whlen Sie auf die Frage How do you want to choose additional software to install? die Antwort simple, wenn Sie das Programm tasksel benutzen wollen, und advanced, wenn Sie die Paketauswahl mit dselect vornehmen wollen. Mit tasksel werden die Pakete nach Auswahl der Aufgaben automatisch installiert. Bei Verwendung von dselect sollten Sie jetzt Kapitel 7.4 lesen, um sich mit dem Programm vertraut zu machen. Bei einer Reihe von Paketen ist es notwendig, Fragen zur gewnschten Konguration der Pakete zu beantworten. Hinweise hierzu nden Sie in Kapitel 7.5, S. 202. Danach ist die Installation abgeschlossen, herzlichen Glckwunsch. Wenn Sie Linux/UNIX-Anfnger sind, sollten Sie sich nun zunchst mit dem System vertraut machen (Kapitel 5). Vielleicht mchten Sie auch die Bootkonguration des Rechners verfeinern. Hinweise hierzu nden Sie in Kapitel 10. Oder es kann (sofern noch nicht geschehen) eine grasche Benutzeroberche installiert werden. Voraussetzung hierfr ist die Installation und Konguration des X Window Systems (X11, siehe Kapitel 9.4).

4.4 Einige Probleme bei der Basisinstallation


Bootdiskette funktioniert nicht Beim Start des Rechners von Diskette mssen der Linux-Kern und das initiale Dateisystem mit Hilfe von BIOS-Routinen in den Arbeitsspeicher des Rechners geladen werden. Diese Routinen stellen bei vielen Rechnern hhere Anforderungen an die Qualitt einer Diskette sowie an die Justierung des Laufwerkes, als es die Leseroutinen der Betriebssysteme tun, die viele Fehler automatisch korrigieren. Wenn es zu einem Fehler kommt, nachdem die folgende Meldung ausgegeben ist und der Kern noch nicht gestartet wurde, sollte man eine bessere Diskette verwenden: loading linux ... Benutzer von Cyrix-Prozessoren sollten versuchen, whrend der Installation den Cache (siehe Kap.: 3.4) vorbergehend ausschalten.

106

4 Durchfhrung der Basisinstallation

Von der CD/DVD kann nicht gestartet werden Wenn Sie eine bootfhige CD/DVD zur Installation verwenden und dies von ihrem Rechner prinzipiell untersttzt wird, der Rechner jedoch von der Festplatte startet, berprfen Sie bitte folgendes: Ist das BIOS so eingestellt, dass der Rechner von CD/DVD starten kann (siehe Kap.: 3.4)? Bei einigen Laufwerken kommt es vorn, dass die CD/DVD nicht rechtzeitig erkannt wird. Legen Sie die CD/DVD in den Rechner ein und starten Sie ihn mit der Reset-Taste neu. Der Rechner startet whrend des Bootvorgangs neu Versuchen Sie es mit der save-Variante der Rescue-Diskette (siehe Kap.: 3.2). Wenn Sie das Installationssystem von CD starten, versuchen Sie, das Installationssystem von der zweiten CD zu starten. Der Rechner bleibt whrend des Bootvorgangs stehen Es kommt vor, dass bei der Erkennung oder Initialisierung von Hardware mit dem Kern des Installationssystems Probleme auftreten. Dann ist zu versuchen, den Kern durch Bootparameter auf die jeweilige Hardwarekonguration hinzuweisen. Wichtige Bootparameter nden Sie in Kapitel 12.2. Unter Umstnden braucht man eine spezielle Bootdiskette. Dazu muss ein fr das Zielsystem vorbereiteter Kern kompiliert und auf eine vorhandene Bootdiskette kopiert werden. Festplattenpartitionen lassen sich nicht formatieren Falls whrend der Formatierung einer Partition (Kommando: Initialize a Linux Partition) der Fehler mke2fs failed erscheint, sollten Sie versuchen, die Partitionierung geringfgig zu verndern. CD-Laufwerk wird nicht erkannt Falls Sie ein (E)IDE-CD-Laufwerk verwenden, knnen Sie versuchen, den Kern vor dem Start auf die Existenz des Laufwerkes hinzuweisen. Addieren Sie hdx=cdrom zu der Kommandozeile, mit der Sie Linux booten. hdx mssen Sie dabei durch den Namen der Gertedatei ersetzen, die Ihrem CD-Laufwerk entspricht, beispielsweise hdc.

Teil II

Grundlagen

5 Einfhrung fr Linux/UNIX-Anfnger

Dieses Kapitel richtet sich an Leser, die noch keine Erfahrung mit Linux- oder UNIX-Systemen haben. Es erlutert wichtige Konzepte wie die von Dateien, Rechten und Verzeichnissen. Darber hinaus werden Kenntnisse und Fhigkeiten zur Benutzung eines Linux- oder UNIX-Systems ber die Kommandozeile vermittelt. Der hierbei verwendete Kommandointerpreter (Shell, Ihr Gesprchspartner beim Dialog am Terminal) ist die GNU Bash. Die Kenntnisse reichen aus, um alle weiteren in diesem Buch beschriebenen Schritte durchzufhren. Falls auf Ihrem Rechner das X Window System (X11, grasche Oberche) luft, wechseln Sie bitte mit der Tastenkombination S TRG-A LT-F1 auf eine Textkonsole, um die hier aufgefhrten Aktionen und Kommandos nachzuvollziehen. Die Textkonsole ist zwar ein altmodischer Weg des Dialoges mit dem Rechner, aber immer noch der einfachste und zugleich mchtigste.

5.1 Anmeldung
Linux/UNIX ist ein Mehrbenutzersystem. Der erste Schritt jeder Sitzung mit Debian GNU/Linux ist daher, sich am System anzumelden (einzuloggen). Dies verlangt einerseits der Schutz vor Unbefugten, andererseits muss das System auch wissen, wer gerade eine Aktion ausfhrt, um beispielsweise Dateien immer den richtigen Benutzern zuzuordnen. Bei Ihrem eigenen Rechner haben Sie dazu mindestens zwei Mglichkeiten. Entweder Sie melden sich als Systemverwalter an oder als gewhnlicher Benutzer. Der Benutzername des Systemverwalters lautet unter Linux/UNIX stets root, die Namen aller anderen Benutzer werden vom Systemverwalter frei gewhlt. Der Systemverwalter hat das uneingeschrnkte Recht, jedwede Vernderung am System vorzunehmen, er kann viel zerstren. Normale Benutzer knnen hingegen nur ihre eigenen Dateien verndern und haben auch sonst nur begrenzte Rechte. Man sollte sich deswegen fr seine normale Arbeit immer als gewhnlicher Benutzer anmelden, um sich vor eigenen Fehlern zu schtzen. Noch wichtiger ist, dass dann auch die Programme, die Sie aufrufen, nur mit Ihren Rechten ausgefhrt werden.

110

5 Einfhrung fr Linux/UNIX-Anfnger

Ein Programm, das versucht, wichtige Systemdateien zu lschen, kann dies nur tun, wenn Sie es als root ausfhren. Die Trennung der Verwaltungsarbeit von der Arbeit als gewhnlicher Benutzer ist wesentlich fr die Sicherheit eines Systems. Selbst die Verwaltungsarbeit sollte so weit wie mglich eingeschrnkt werden. Das Einrichten eines Webservers oder einer Datenbank muss zwar der Systemverwalter durchfhren, den laufenden Betrieb jedoch nicht. Dafr sind Benutzer wie wwwadm oder dbadm einzurichten. Der Systemverwalter soll auch mglichst vor Ort arbeiten, nicht ber das Netz. Sobald das System hochgefahren ist, erscheint die Aufforderung, sich anzumelden (Login:). Geben Sie Ihren Benutzernamen ein, den Sie vom Systemverwalter bekommen haben, und besttigen Sie. Nun mssen Sie Ihr Passwort eingeben. Falls Benutzername und Passwort nicht zusammengehren, erscheint die Fehlermeldung: Login incorrect Sie knnen dann nach einer kurzen Pause erneut versuchen, sich anzumelden. Das Passwort ist der Haustrschlssel zum System. Es darf nicht zu kurz oder zu einfach und vor allem kein Wort aus einem Wrterbuch sein. Ferner soll es den ASCII-Zeichensatz voll ausnutzen. Ein Rezept: Man nehme ein kurzes zweisilbiges Wort, zum Beispiel einen Blumennamen (nelke). In die Silbenfuge fge man zwei Ziffern und ein Satzzeichen ein (nel7?2ke). Dann schreibe man eine der Silben mit Grobuchstaben (nel7?2KE). Manche Systeme beschrnken die Lnge des Passwortes auf acht Zeichen; das Beispiel wre geeignet, merkbar und schwierig zu knacken.

5.2 Die Eingabeaufforderung (Prompt)


Nach der Anmeldung erscheinen auf dem Bildschirm je nach Einstellung des Systems einige Meldungen und dann die Eingabeaufforderung, kurz Prompt genannt. Der Prompt wird von einem Programm erzeugt, das allgemein als Kommandointerpreter und in der Linux/UNIX-Welt speziell als Shell (Schale, Muschel) bezeichnet wird. Die Shell nimmt die Kommandos der Benutzer entgegen und leitet sie an das Betriebssystem weiter. Einige Kommandos (interne K.) fhrt die Shell selbst aus. Die Standardshell von Debian GNU/Linux heit bash, das Erscheinungsbild ihres Promptes ist kongurierbar (siehe S. 538). Nach der Standardinstallation sieht er folgendermaen aus: joe@debian:~$ Fr joe wird dabei Ihr Benutzername ausgegeben und fr debian der Name Ihres Rechners. Wenn Sie sich als root angemeldet haben, hat der Prompt folgendes Erscheinungsbild: debian:~# Sie erkennen anhand des Promptes, ob Sie gerade als root oder als normaler Benutzer arbeiten.

5.4 Fehlermeldungen

111

5.3 Eingabe von Kommandos


Nun knnen Sie beliebigen Text eingeben, der dann hinter dem Prompt erscheint. Mit den Tastenkombinationen S TRG - B und S TRG - F bewegen Sie den Cursor (Einfgemarke) nach links und rechts. Alternativ knnen Sie dazu die Pfeiltasten P FEIL L INKS und P FEIL R ECHTS benutzen. Um an den Anfang des Textes zu springen, benutzen Sie die Tastenkombination S TRG - A oder die Taste P OS 1. Analog knnen Sie die Tasten S TRG - E oder E NDE verwenden, um an das Ende des Textes zu springen. Die bash luft standardmig im Einfgemodus. Wenn sich der Cursor im Text bendet und neuer Text eingeben wird, dann wird dieser Text vor dem Cursor eingefgt und der dahinter stehende Text nach rechts verschoben. Sie lschen Text, indem Sie die Tastenkombination S TRG - D oder die Taste E NTF verwenden. Es wird dann der Text hinter dem Cursor gelscht. Wenn Sie den Text vor dem Cursor lschen wollen, benutzen Sie die Taste Z URCK. Geben Sie bungshalber folgende harmlosen Kommandos ein: joe@debian:~$ pwd joe@debian:~$ ls joe@debian:~$ ls -l joe@debian:~$ ls -l /bin joe@debian:~$ date joe@debian:~$ id

5.4 Fehlermeldungen
Geben Sie jetzt folgendes Kommando ein: joe@debian:~$ list Es erscheint die Fehlermeldung: bash: list: command not found Damit teilt Ihnen die bash mit, dass sie das Kommando list nicht nden konnte. Dass es die bash ist, die Ihnen dies mitteilt, erkennen Sie an dem Wort bash: am Anfang der Fehlermeldung. Wenn Sie jetzt das Kommando joe@debian:~$ ls eilig eingeben, erhalten Sie die Fehlermeldung: ls: eilig: No such file or directory

112

5 Einfhrung fr Linux/UNIX-Anfnger

Diesmal teilt Ihnen das Programm ls mit, dass es die Datei oder das Verzeichnis eilig nicht nden konnte. Die bash hatte mit der Ausfhrung des Kommandos keine Probleme, denn Sie kennt ja das Kommando ls und konnte es mit dem Argument eilig ausfhren. ls konnte jedoch im aktuellen Verzeichnis nichts nden, was den Namen eilig trgt. Es ist wichtig, darauf zu achten, welches Programm eine Fehlermeldung ausgibt. So lsst sich erkennen, bei welchem Teil des angegebenen Kommandos der Fehler liegt. Im ersten Beispiel (mit list) konnte das Kommando nicht ausgefhrt werden, und im zweiten Beispiel (mit ls) konnte ls zwar ausgefhrt werden, das Programm bemngelte dann jedoch ein ungltiges Argument. Begehen Sie einen dritten Fehler und geben Sie joe@debian:~$ cp ein. Das Kommando zum Kopieren einer Datei wre schon recht, aber Sie gebrauchen es syntaktisch falsch. Schlielich muss das Kommando wissen, was es wohin kopieren soll, es fehlen zwei Argumente. In solchen Fllen antwortet ein Kommando mit einer kurzen Hilfe.

5.5 Abmelden und Herunterfahren des Systems


5.5.1 Abmelden Die Sitzung wird beendet, wenn das Programm beendet wird, welches bei der Anmeldung automatisch aufgerufen wurde. Das ist standardmig die Shell bash. Sie verlassen die bash, indem Sie folgendes Kommando eingeben: joe@debian:~$ exit Danach erscheint wieder die Anmeldeaufforderung, und der nchste Benutzer kann eine neue Sitzung starten. 5.5.2 Herunterfahren Whrend des Betriebs von Linux/UNIX werden immer eine Reihe von Programmen ausgefhrt, die im Hintergrund laufen und verschiedene Dienste zur Verfgung stellen (Dmonen). Dazu gehrt das Protokollieren von Systemereignissen oder die Entgegennahme von Anmeldungen. Viele dieser Programme oder Prozesse drfen nicht brutal abgebrochen werden, sondern sollen geordnet beendet werden. Deswegen drfen Sie ein Linux/UNIX-System nicht einfach ausschalten, sondern mssen es herunterfahren. Ein weiterer Grund fr das Herunterfahren besteht darin, dass Vernderungen an Dateien nicht sofort auf die Festplatte geschrieben werden. Vielmehr werden Schreibaktionen erst dann ausgefhrt, wenn das Betriebssystem nicht ausgelastet ist oder andere Umstnde auftreten, die es zum sofortigen Schreiben aller Daten zwingen. Wenn Sie den Rechner einfach ausschalten, kann es passieren, dass wichtige

5.6 Arbeiten mit Verzeichnissen

113

Daten noch nicht auf die Festplatte geschrieben worden sind und beim nchsten Systemstart fehlen. Auerdem knnen sich die Daten auf der Festplatte dann in einem inkonsistenten Zustand benden, was dazu fhren kann, dass weitere Daten verloren gehen. Der einfachste Weg, ein Linux-System herunterzufahren und neu zu starten, besteht darin, gleichzeitig die Tasten S TRG, A LT und E NTF zu bettigen1 . Hierzu mssen Sie nicht angemeldet sein und bentigen keine besonderen Rechte. Der Rechner wird heruntergefahren und startet dann neu. Sie knnen ihn ausschalten, wenn Sie den Startbildschirm Ihres Rechners sehen. Alternativ kann der Systemverwalter folgendes Kommando eingeben: debian:~# init 0 Dies fhrt ebenso dazu, dass das System heruntergefahren wird. Es wird danach nicht neu gestartet. Stattdessen erscheint eine der folgenden beiden Meldungen auf dem Bildschirm: Power down oder System halted Danach knnen Sie den Rechner ebenfalls ausschalten oder per Reset-Taste am PCGehuse neu starten. Eine dritte Mglichkeit zum Herunterfahren des Systems besteht darin, als Systemverwalter folgendes Kommando einzugeben: debian:~# shutdown -h now Wenn das System mit shutdown (S. 864) heruntergefahren wird, erhalten alle angemeldeten Benutzer eine Meldung, bevor mit dem Herunterfahren begonnen wird. Das Kommando shutdown bietet weitere Mglichkeiten, beispielsweise die, den Zeitpunkt zum Herunterfahren festzulegen. In der Praxis eines Systems mit nur einem realen Benutzer ist es gleichgltig, welchen Weg Sie zum Herunterfahren gehen.

5.6 Arbeiten mit Verzeichnissen


Zusammengehrende Daten beispielsweise der Text eines Briefes werden in einer Datei abgelegt. Zusammengehrende Dateien beispielsweise alle Briefe an einen Empfnger werden in ein Verzeichnis (Ordner, Katalog) eingeordnet. Verzeichnisse knnen ihrerseits wieder in bergeordneten Verzeichnissen zusammengefasst

Dieses Verfahren funktioniert nicht, wenn Sie mit X11 arbeiten. Schalten Sie dann zunchst auf eine Textkonsole (z. B. mit den Tasten S TRG A LT F1) und benutzen Sie dann die angegebene Tastenkombination.

114

5 Einfhrung fr Linux/UNIX-Anfnger

werden, sodass sich eine Baumstruktur ergibt, deren Knoten die Verzeichnisse und deren Bltter die Dateien sind. Wurzel oben2 . Jedem Programm auch der bash ist ein Arbeitsverzeichnis (aktuelles V.) zugeordnet. Das Arbeitsverzeichnis bestimmt, wo Dateien gesucht oder neu angelegt werden. Immer wenn nicht ausdrcklich etwas anderes verlangt wird, werden Dateien in dem jeweiligen Arbeitsverzeichnis angelegt oder gesucht. Das Arbeitsverzeichnis kann immer unabhngig von seinem Namen mit einem einzelnen Punkt bezeichnet werden. Darber hinaus wird jedem Benutzer ein Home-Verzeichnis (Heimatverzeichnis, Hauptkatalog, Home Directory) zugeordnet. Das ist das Verzeichnis, in dem der Benutzer selbst Dateien und Unterverzeichnisse anlegen und verndern darf. Nach der Anmeldung am System ist das Home-Verzeichnis des Benutzers das Arbeitsverzeichnis seiner Shell. Man bendet sich nach der Anmeldung immer dort, wo man auch alle Rechte an den Dateien hat. Auerhalb seines Home-Verzeichnisses hat ein Benutzer nur begrenzte Rechte, in fremden Home-Verzeichnissen normalerweise keine. 5.6.1 Anzeigen des Arbeitsverzeichnisses Um Ihr Arbeitsverzeichnis anzuzeigen, geben Sie joe@debian:~$ pwd (print working directory) ein. Sie erhalten folgende Ausgabe: /home/joe wobei anstelle von joe Ihr Benutzername steht. Danach erscheint wieder der Prompt, und Sie knnen ein neues Kommando eingeben. Achtung: Unter Linux/UNIX ist die Gro- und Kleinschreibung von Kommandos und Dateinamen bedeutsam. Htten Sie eben das Kommando PWD eingegeben, so htten Sie eine Fehlermeldung erhalten, weil es dieses Kommando nicht gibt. An der Ausgabe /home/joe ist zu erkennen, dass das Verzeichnis joe ein Unterverzeichnis des Verzeichnisses home ist. Verzeichnisse werden unter Linux/UNIX durch einen Schrgstrich (/, engl: Slash) getrennt. Hieraus folgt, dass ein Schrgstrich niemals Teil eines Dateinamens sein darf. Dies ist fr viele Anfnger ungewohnt, weil andere Betriebssysteme Verzeichnisse durch einen umgekehrten Schrgstrich (engl.: Backslash) trennen. Per Konvention werden die Verzeichnisse der Benutzer in der Regel unterhalb des Verzeichnisses /home angelegt. Gbe es auf Ihrem System zwei Benutzer mit den Namen joe und eva, so wrde das Verzeichnis /home die beiden Unterverzeichnisse joe und eva beinhalten.
2

Baum: Wurzel unten = Wald, Wurzel oben = Informatik, keine Wurzel = Segelschiff

5.6 Arbeiten mit Verzeichnissen

115

Jetzt ist es an der Zeit, sich mit dem online-Handbuch (Manual, man-Seiten) vertraut zu machen. Zu fast allen Kommandos gibt es eine als Datei abgespeicherte, einheitlich aufgebaute Beschreibung. Geben Sie joe@debian:~$ man pwd ein, um die Beschreibung zu pwd auf den Bildschirm zu bekommen. pwd ist ein einfaches Kommando ohne Optionen oder Argumente, entsprechend kurz fllt die Beschreibung aus. Die Beschreibung des Manuals selbst erhalten Sie mittels joe@debian:~$ man man Sie sollten sich angewhnen, sich auf diese Weise ber fr Sie neue Kommandos zu unterrichten. Ausfhrlich wird das Manual im Abschnitt 6.2 auf Seite 156 erlutert. 5.6.2 Erzeugen von Verzeichnissen Auf die Dauer wird es unbersichtlich, wenn Sie alle Ihre Dateien in Ihrem HomeVerzeichnis aufbewahren. Vielleicht wollen Sie Ihr Debian-System in erster Linie dazu verwenden, Briefe zu schreiben und Bilddateien zu erstellen und zu bearbeiten. Es wre sinnvoll, fr diese beiden Gebiete je ein Unterverzeichnis anzulegen. Das geht mit dem Kommando: joe@debian:~$ mkdir grafik briefe mkdir braucht mindestens ein Argument, kann aber auch mehrere bernehmen. Eine Regel besagt, dass man ein Verzeichnis unterteilen soll, wenn es deutlich mehr als hundert Eintrge enthlt. 5.6.3 Parameter fr Kommandos Unter Kommando-Parametern versteht man Optionen und Argumente. Die Worte grak und briefe sind hier Argumente fr das Kommando mkdir. Argumente sind Zeichenketten, die durch Leerzeichen getrennt hinter dem eigentlichen Kommando eingegeben werden und dem Kommando mitteilen, was genau zu tun ist. So wrde die Eingabe von mkdir allein keinen Sinn machen, da bekannt sein muss, wie das zu erstellende Verzeichnis heien soll. Optionen eingeleitet mit einem oder zwei Minuszeichen modizieren das Verhalten eines Kommandos: joe@debian:~$ ls -la joe@debian:~$ install -version 5.6.4 Anzeigen von Verzeichnissen und Dateien Das Kommando ls (list) dient dem Anzeigen oder Auflisten von Verzeichnissen. Geben Sie folgendes Kommando ein: joe@debian:~$ ls Wenn Sie vorher die beiden Verzeichnisse erzeugt haben, sehen Sie sie jetzt. ls hat viele Optionen siehe man ls von denen aber nur wenige oft gebraucht werden.

116

5 Einfhrung fr Linux/UNIX-Anfnger

5.6.5 Wechseln des Arbeitsverzeichnisses Angenommen, Sie wollten nun einen Brief schreiben. Der soll natrlich im Verzeichnis briefe entstehen. Sie mssen dieses Verzeichnis zu Ihrem Arbeitsverzeichnis machen. Dazu dient das Kommando cd (change directory). Auch dieses Kommando bentigt ein Argument, nmlich den Namen des Verzeichnisses, in das gewechselt werden soll. Geben Sie das Kommando joe@debian:~$ cd briefe ein, um in das Verzeichnis briefe zu wechseln. Ohne Argument aufgerufen, wechselt cd in das Home-Verzeichnis. man cd funktioniert nicht, da cd ein internes Kommando der Shell ist. Sie nden seine Beschreibung mittels man bash. 5.6.6 Lschen von Verzeichnissen Vielleicht mchten Sie eines der eben angelegten Verzeichnisse wieder lschen. Sofern das Verzeichnis leer ist, dient hierzu das Kommando rmdir (remove directory). Um das Verzeichnis grak zu lschen, ist das Kommando joe@debian:~$ rmdir grafik einzugeben. Voraussetzung dafr, dass dies funktioniert, ist, dass Sie sich wieder im Home-Verzeichnis benden, weil das Verzeichnis grak dort liegt und von einem anderen Verzeichnis aus mit diesem Kommando nicht gefunden werden kann. Lschen Sie einmal das Verzeichnis grak und erzeugen Sie es danach erneut. Wechseln Sie dann in dieses Verzeichnis. Falls ein Verzeichnis nicht leer ist, lschen Sie es samt allen Unterverzeichnissen mittels joe@debian:~$ rm -rf verzeichnisname aber Vorsicht, das Kommando ist gnadenlos. 5.6.7 Pfade Absolute Pfade Wenn Sie jetzt wieder das Kommando pwd eingeben, erscheint folgende Ausgabe: /home/joe/grafik Sie benden sich im Verzeichnis grak, das Unterverzeichnis von joe ist, das wiederum ein Unterverzeichnis des Verzeichnisses home ist. home geht direkt vom Wurzelverzeichnis des Dateibaums aus. Eine Angabe wie /home/joe/grak bezeichnet man als Pfadnamen. Ein Pfadname speziziert den Weg von einem gegebenem Punkt zu einem bestimmten Verzeichnis oder einer Datei. Man kann sich diesen Pfadnamen wie folgende Anweisung vorstellen:

5.6 Arbeiten mit Verzeichnissen

117

Vom Wurzelverzeichnis des Dateisystems (/ ) gehe in das Verzeichnis home. Von dort gehe in das Verzeichnis joe. Dort angekommen, ist das Verzeichnis grak gefragt. Wenn man nur kurz etwas in einem Verzeichnis verndern mchte, ist es oft zu aufwendig, in dieses Verzeichnis zu wechseln, dort etwas auszufhren und dann zurck in das alte Verzeichnis zu wechseln. Man kann sich dann mit dem absoluten Pfadnamen helfen. Beispielsweise mchten Sie noch ein drittes Verzeichnis in Ihrem Home-Verzeichnis anlegen, das den Titel sound trgt, und Sie benden sich noch im Verzeichnis /home/joe/grak. Mit der eben beschriebenen Methode wrden Sie jetzt zurck in Ihr Home-Verzeichnis wechseln, dort das Kommando mkdir sound eingeben und dann wieder zurck in das Verzeichnis grak wechseln. Sie knnen aber auch direkt folgendes Kommando eingeben: joe@debian:~/grafik$ mkdir /home/joe/sound Achtung: Der absolute Pfadname bezeichnet den vollen Pfad mit allen Verzeichnissen und Unterverzeichnissen, ausgehend vom Wurzelverzeichnis des Dateibaums. Lschen Sie zur bung das Verzeichnis sound in Ihrem Home-Verzeichnis und erzeugen dann ein neues Verzeichnis mit dem Namen musik, welches ebenfalls ein Unterverzeichnis Ihres Home-Verzeichnisses darstellt. Wechseln Sie danach in Ihr Home-Verzeichnis und lassen Sie sich alle Dateien und Verzeichnisse dort mit ls anzeigen. Relative Pfade Manchmal hat die Verwendung absoluter Pfade Nachteile. Stellen Sie sich vor, Sie benden sich in Ihrem Home-Verzeichnis und mchten im dort bendlichen Verzeichnis briefe zwei Unterverzeichnisse mit den Namen privat und geschaeft anlegen. Sie knnten nun in das Verzeichnis briefe wechseln und die Unterverzeichnisse dort erzeugen. Sie knnen diese Verzeichnisse aber auch mit folgendem Kommando anlegen: joe@debian:~$ mkdir briefe/privat briefe/geschaeft Sie haben die beiden Verzeichnisse privat und geschaeft erzeugt, indem Sie den relativen Pfad, nmlich den Pfad ausgehend vom Arbeitsverzeichnis (momentan das Home-Verzeichnis) angegeben haben. Achtung: Relative Pfadnamen bezeichnen einen Pfad ausgehend vom Arbeitsverzeichnis. Wenn Sie jetzt in das Verzeichnis musik wechseln und sich dann den Inhalt von briefe anzeigen lassen wollen, geben Sie folgendes Kommando ein: joe@debian:~$ ls ../briefe

118

5 Einfhrung fr Linux/UNIX-Anfnger

Auch dies ist ein relativer Pfadname. Mit .. wird das ber dem Arbeitsverzeichnis liegende Verzeichnis speziziert, welches hier wieder das Home-Verzeichnis ist. Und von dort geht es dann weiter in das Verzeichnis briefe. Man knnte das Kommando auch bersetzen mit: Zeige mir die Dateien und Verzeichnisse, die sich in dem Verzeichnis benden das briefe heit und ein Unterverzeichnis von dem Verzeichnis ist, in dem auch das Verzeichnis liegt, in dem ich mich gerade bende. Ein einzelner Punkt bezeichnet das Arbeitsverzeichnis, wird manchmal bentigt. Wechseln Sie jetzt mit folgendem Kommando in das Verzeichnis briefe: joe@debian:~$ cd ../briefe Legen Sie dann im Verzeichnis musik die beiden Unterverzeichnisse klassisch und modern an. Gehen Sie dann zurck in ihr Home-Verzeichnis und lassen sich den Inhalt von musik anzeigen. 5.6.8 Abkrzungen Nun mchten Sie vielleicht wissen, wie Sie wieder zurck in Ihr Home-Verzeichnis gelangen. Es gibt folgende Mglichkeiten: 1. Mit dem Kommando cd .. gelangen Sie in das Verzeichnis ber dem Verzeichnis, in dem Sie sich gerade benden. Das wre /home/joe. Zwischen cd und .. muss ein Leerzeichen stehen. Die Zeichenkette .. symbolisiert immer das nchsthhere Verzeichnis. 2. Mit dem Kommando cd ~ gelangen Sie in Ihr Home-Verzeichnis, egal wo Sie sich vorher befanden. Das Zeichen ~ (Tilde) ist in der bash immer die Abkrzung fr das eigene Home-Verzeichnis. Dies geht auch einfacher, da das shell-interne Kommando cd ohne Argument immer ins Home-Verzeichnis wechselt. 3. Mit dem Kommando cd (Minus) gelangen Sie in das Verzeichnis, in dem Sie sich befanden, bevor Sie das letzte cd-Kommando eingegeben haben. Das war /home/joe. Zur bung knnen Sie jetzt einmal in das Verzeichnis grak wechseln und dann zurck in Ihr Home-Verzeichnis. berprfen Sie dabei jedesmal mit pwd, ob Sie im richtigen Verzeichnis sind.

5.7 Arbeiten mit Dateien


Dateien enthalten die Daten, mit denen gearbeitet wird. Unter einem Dateinamen werden zusammengehrige Daten zusammengefasst, beispielsweise ein Brief, ein Programm, eine Webseite, ein Kapitel eines Buches, eine Zeichnung, ein Foto, ein Musikstck. Unter Linux/UNIX drfen Dateinamen alle ASCII-Zeichen enthalten auer dem unsichtbaren ASCII-Zeichen Nr. 0 und dem Schrgstrich, weil dieser im Pfad Verzeichnisnamen voneinander trennt. Es empehlt sich jedoch, auf Sonderund Steuerzeichen zu verzichten. Heute drfen Datei- und Verzeichnisnamen bis zu 255 Zeichen lang sein, frher waren es 14.

5.7 Arbeiten mit Dateien

119

Auch Verzeichnisse sind Dateien. Es handelt sich dabei um eine spezielle Form, nmlich um eine zweispaltige Tabelle der Dateien und Unterverzeichnisse, die sich in dem Verzeichnis benden, samt einer eindeutigen Nummer der Inode-Nummer ber die man zu Informationen ber die Datei gelangt. Verzeichnisse werden vom System verwaltet. Um Dateien zu bearbeiten, werden Programme verwendet, die mit den speziellen Informationen, wie sie in einer bestimmten Datei zu nden sind, etwas anfangen knnen. So bearbeitet man Textdateien mit einem Texteditor oder einem Textverarbeitungsprogramm, Bilddateien mit Grakprogrammen usw. 5.7.1 Anzeigen Um den Inhalt einer Text-Datei auf dem Bildschirm auszugeben, kann das Kommando cat (concatenate) benutzt werden. Auf jedem Debian-System bendet sich die Datei /etc/debian_version, die Sie sich mit dem Kommando joe@debian:~$ cat /etc/debian_version anzeigen lassen knnen. Es erscheint eine Zeichenkette, die der Version Ihrer Debian-Distribution entspricht und in dieser Datei gespeichert ist. Geben Sie nun folgendes Kommando ein: joe@debian:~$ cat /usr/share/common-licenses/GPL Es wird der Text der GNU General Public License auf dem Bildschirm ausgegeben, der in der angegebenen Datei enthalten ist. Bei der Anzeige tritt ein Problem auf: Der Text ist so lang, dass er oben aus dem Bildschirm herausluft und Sie nur den Schluss lesen knnen. Es ist zwar mglich, mit den Tastenkombinationen S HIFTS EITE - RAUF und S HIFT-S EITE - RUNTER auf dem Bildschirm nach oben und unten zu blttern, allerdings ist auch der Teil des Textes, der zum Zurckblttern zwischengespeichert wird, krzer als der gesamte Text der Lizenz, sodass am Anfang immer noch etwas fehlt. Man braucht ein Werkzeug, mit dem auch grere Dateien am Bildschirm gelesen werden knnen. Dieses Werkzeug wird durch das Programm less dargestellt. Geben Sie folgendes Kommando ein: joe@debian:~$ less /usr/share/common-licenses/GPL Sie sehen jetzt den Anfang der Datei auf dem Bildschirm und knnen mit den Tasten S EITE - RAUF und S EITE - RUNTER sowie mit den Pfeiltasten in der Datei blttern. Ein besonderer Vorteil von less besteht darin, dass auch nach Text in der Datei gesucht werden kann. Dazu ist die Taste / zu drcken, dann die Zeichenkette einzugeben, nach der gesucht werden soll, und dann zu besttigen. Suchen Sie einmal nach dem Begriff free software in dieser Datei. Durch Bettigung der Taste N gelangen Sie nach dem Suchvorgang an die jeweils nchste Stelle des Textes, an dem der Begriff ebenfalls gefunden wurde. Sehen Sie sich einmal alle Stellen an, an denen dieser Begriff vorkommt.

120

5 Einfhrung fr Linux/UNIX-Anfnger

Wenn Sie less verlassen wollen, drcken Sie die Taste Q. Das Programm wird ausfhrlich in Kapitel 5.19.2, S. 151 beschrieben. In der UNIX-Welt leistet more hnliche Dienste. less wurde als intelligenteres Gegenstck zu more entwickelt. 5.7.2 Kopieren Weil Sie sich als gewhnlicher Benutzer am System angemeldet haben, drfen Sie die Datei /usr/share/common-licenses/GPL nicht verndern. Sie ist Bestandteil der Debian-GNU/Linux-Installation und kann nur vom Systemverwalter verndert werden. Auerdem wre es dumm, diese Datei zu verndern, weil Sie vom Paketverwaltungssystem gepegt und whrend einer Aktualisierung des Systems u. U. berschrieben wird, wodurch Ihre Vernderungen verloren gehen wrden. Wenn Sie diese Datei aber trotzdem bearbeiten mchten etwa um sie mit Anmerkungen zu versehen knnen Sie sie in Ihr Home-Verzeichnis kopieren. Zum Kopieren von Dateien dient das Kommando cp (copy). Diesem Kommando mssen mindestens zwei Argumente bergeben werden, nmlich der Name der Datei, die kopiert werden soll (Quelldatei) und der Name der zu erstellenden Datei, in die der Inhalt der Quelldatei kopiert werden soll (Zieldatei). Das Ziel kann auch ein Verzeichnis sein. Dann wird die Zieldatei in dem spezizierten Verzeichnis mit dem gleichen Namen wie die Quelldatei erzeugt. Die Syntax von cp lautet im einfachsten Fall: cp Quelle Ziel Um jetzt die GPL in Ihr Home-Verzeichnis zu kopieren, geben Sie folgendes Kommando ein: joe@debian:~$ cp /usr/share/common-licenses/GPL ~/ Hier verwenden wir wieder die Abkrzung ~, um das eigene Home-Verzeichnis anzugeben. Wenn Sie sich jetzt in Ihrem Home-Verzeichnis benden (berprfen Sie das mit pwd) knnen Sie sich Ihre persnliche Kopie der Datei ansehen. Die Kopie gehrt Ihnen. Auerdem mchten Sie vielleicht neben der Originalversion eine weitere Version, in die Sie Ihre Kommentare einfgen, in Ihrem Home-Verzeichnis haben. Dazu verwenden Sie folgendes Kommando: joe@debian:~$ cp GPL GPL-Kommentare Voraussetzung fr die korrekte Ausfhrung dieses Kommandos ist, dass Sie sich weiterhin in Ihrem Home-Verzeichnis benden, wo die kopierte Datei GPL liegt. Wenn Sie sich jetzt mit ls den Inhalt Ihres Home-Verzeichnisses anzeigen lassen, sollten Sie neben den vorher erzeugten Verzeichnissen die beiden Kopien der GPL sehen.

5.7 Arbeiten mit Dateien

121

5.7.3 Lschen Spter fllt Ihnen ein, dass Sie die unvernderte Version der GPL nicht in Ihrem Home-Verzeichnis aufbewahren wollen, weil Sie ja ohnehin auf dem System vorhanden ist und Sie sie jederzeit wieder in Ihr Home-Verzeichnis kopieren knnen. Dateien werden mit dem Kommando rm (remove) gelscht. Das Kommando bentigt mindestens ein Argument, nmlich den Namen der zu lschenden Datei. Es ist jedoch auch mglich, mehrere Dateien anzugeben. Die Syntax von rm lautet im einfachsten Fall: rm Dateinamen Lschen Sie nun die Datei GPL in Ihrem Home-Verzeichnis und berprfen Sie, ob die Datei wirklich gelscht wurde. Achtung: Unter Linux/UNIX sind gelschte Dateien wirklich gelscht. Sie stehen auch nicht mehr in einem Papierkorb oder ber eine Art undeleteKommando zur Verfgung. Seien Sie mit der Benutzung dieses Kommandos vorsichtig. Genau genommen sind sie logisch gelscht und knnten unter Umstnden auf einem mhsamen Weg teilweise rekonstruiert werden. Wenn Sie aus Grnden der Sicherheit eine Datei restlos vernichten wollen, mssen Sie sie vor dem Lschen mit Unsinn berschreiben. 5.7.4 Verschieben und Umbenennen Hoffentlich mchten Sie Ihr Home-Verzeichnis ordentlich gestalten. Deswegen soll die Datei GPL-Kommentare in einem Unterverzeichnis liegen, das den Namen texte trgt. Legen Sie dieses Verzeichnis jetzt an (mkdir). Nun kann die Datei mit dem Kommando mv (move) in dieses Verzeichnis verschoben werden. Das Kommando mv bentigt wie cp mindestens zwei Argumente, nmlich zum einen den alten Namen der zu verschiebenden Datei und zum anderen den neuen. Bei dem neuen Namen kann es sich ebenfalls um ein Verzeichnis handeln. Dann wird die zu verschiebende Datei in das angegebene Verzeichnis gelegt und behlt ihren Namen, den sie vorher im alten Verzeichnis hatte. Die Syntax von mv lautet im einfachsten Fall: mv Name-Alt Name-Neu Um die Datei GPL-Kommentare in das neue Verzeichnis texte zu verschieben, ist folgendes Kommando einzugeben: joe@debian:~$ mv GPL-Kommentare texte/ Wechseln Sie danach in das Verzeichnis texte und berprfen Sie, ob die Datei dort angekommen ist.

122

5 Einfhrung fr Linux/UNIX-Anfnger

5.8 Automatische Vervollstndigung von Kommandos


Die bash verfgt ber eine Eigenschaft, die Ihnen Schreibarbeit sparen kann. Denken Sie nochmal an das letzte Kommando: joe@debian:~$ mv GPL-Kommentare texte/ In Ihrem Home-Verzeichnis befand sich zu dem Zeitpunkt, als Sie dieses Kommando eingegeben haben, nur eine Datei, deren Name mit dem Zeichen G anng. Ein Teil Ihrer Absicht, die Datei GPL-Kommentare in das Verzeichnis texte zu verschieben, war deswegen bereits klar, als Sie nur mv G eingegeben hatten. Sie wollten die Datei GPL-Kommentare verschieben. Die bash erkennt das und vervollstndigt den Dateinamen deswegen automatisch. Angenommen, Sie wollen jetzt eine Kopie der Datei GPL-Kommentare mit dem Namen GPL-Gedanken anlegen. Dazu wre folgendes Kommando einzugeben: joe@debian:~/texte$ cp GPL-Kommentare GPL-Gedanken Geben Sie diesmal nur folgenden Text ein: cp GP und drcken Sie dann die Taste TAB. Wie sie sehen, wird der Name automatisch vervollstndigt, weil er eindeutig ist. Das zweite Argument mssen Sie selbst eingeben, weil die bash nicht raten kann, welchen Namen die Kopie tragen soll. Nachdem Sie die Kopie erstellt haben, wollen Sie sie wieder lschen. Dazu wre das Kommando rm GPL-Gedanken einzugeben. Geben Sie jetzt nur den folgenden Text ein: rm GP und drcken Sie dann wieder die Taste TAB. Es ertnt ein Warnton. Die bash teilt Ihnen damit mit, dass der eingegebene Name nicht eindeutig ist. Es gibt jetzt die Dateien GPL-Gedanken und GPL-Kommentare, die beide mit der Zeichenfolge GP beginnen. Wenn Sie nun nochmals die Taste TAB bettigen, zeigt Ihnen die bash die beiden mglichen Vervollstndigungen. Sie knnen dann bis rm GPL-G weiterschreiben. Nun ist der Name eindeutig. Wenn Sie jetzt wieder die Taste TAB drcken, wird er vervollstndigt. Die Benutzung dieser Eigenschaft hat noch einen weiteren Vorteil: Sie ersparen sich Schreibfehler. Versuchen Sie deswegen, so oft wie mglich mit der TAB-Taste zu arbeiten.
Bei der Vervollstndigung von Namen untersucht die bash, ob sich aus dem eingegebenen Anfang der Name einer existierenden Datei oder eines existierenden Verzeichnisses bilden lsst. Dabei werden eingegebene Pfadnamen mit bercksichtigt. So wird die Bezeichnung /usr/share/com zu /usr/share/common-lincenses/ vervollstndigt. Gebte bash-Benutzer geben deswegen immer nur die Teile von Dateinamen ein, die mehrdeutig sind. Um beispielsweise cp /usr/share/common-licenses/GPL zu schreiben, wrde es ausreichen, cp /u TAB sh TAB com TAB G TAB einzugeben. Etwas anders sieht es aus, wenn das zu vervollstndigende Wort am Anfang der Kommandozeile steht. Hier muss nicht ein Dateiname, sondern der Name eines Kommandos eingegeben werden. Deswegen versucht die bash in diesem Fall, aus der Menge der zur Verfgung stehenden Kommandos zu vervollstndigen. So zeigt die Eingabe von ls TAB-TAB alle verfgbaren Kommandos, die mit den Buchstaben ls beginnen inklusive ls selbst an.

5.9 Verarbeiten von Textdateien mit dem Editor vi

123

5.9 Verarbeiten von Textdateien mit dem Editor vi


Zum Erzeugen und Verarbeiten von Text-Dateien wird ein Texteditor bentigt. Solche Programme stellen den Inhalt der zu verarbeitenden Datei auf dem Bildschirm dar und ermglichen, durch Editier-Kommandos den angezeigten Text zu ndern. Unter Debian GNU/Linux steht Ihnen verschiedene Texteditoren zur Verfgung, die jedoch nicht alle auf Ihrem Rechner installiert sein mssen. Eine bersicht ber wichtige Editoren nden Sie in Kapitel 18.1. Der Standard-Editor auf allen Linux/UNIX-Systemen ist der Editor vi. Deshalb sind Grundkenntnisse des vi hilfreich, auch wenn Sie zur Arbeit einen anderen Editor bevorzugen. Ein weiterer Vorteil des vi besteht darin, dass er keine grasche Oberche braucht. Sie knnen ihn auch dann benutzen, wenn Sie sich ber das Netz auf einem anderen System angemeldet haben oder wenn Sie die Konguration Ihrer graschen Oberche reparieren mssen3 . Wenn Sie sich jetzt im Unterverzeichnis texte benden, geben Sie folgendes Kommando ein: joe@debian:~/texte$ vi GPL-Kommentare Achten Sie auch hier auf Gro- und Kleinschreibung und benutzen Sie so bald wie mglich die TAB-Taste. 5.9.1 Navigation im Text Sie sollten nun den Inhalt der Datei auf dem Bildschirm sehen. hnlich wie bei less sollten Sie in der Lage sein, mit den Tasten S EITE - RAUF und S EITE - RUNTER im Text vor- und zurckzublttern. Genauso knnen Sie die Pfeiltasten verwenden, um die Einfgemarke (den Cursor) im Text zu bewegen und zeilenweise vorwrts und rckwrts zu gehen. Weil diese Tasten jedoch nicht berall zu Verfgung stehen oder nicht richtig konguriert sind, dienen zur Bewegung des Cursors zustzlich die folgenden Kommandos (Kleinbuchstaben mit Ausnahme von G):
H L J K N

Cursor nach links Cursor nach rechts Cursor nach unten Cursor nach oben

S HIFT- G Cursor zur Zeile N S HIFT- G Cursor zum Textende


3

Der Original-vi steht unter Debian nicht zur Verfgung, dafr aber mehrere vi-hnliche Editoren wie vim oder nvi. Diese bieten zustzliche Eigenschaften, die im ursprnglichen vi nicht vorhanden sind. Sie verstehen jedoch alle die im folgenden gezeigten Kommandos. Welche vi-Variante nach Eingabe des Kommandos vi tatschlich aufgerufen wird, wird mit dem Alternativen-System festgelegt (siehe S. 267).

124

5 Einfhrung fr Linux/UNIX-Anfnger

5.9.2 Suchen Genauso wie in less knnen Sie mit vi durch Eingabe der Kommandofolge /-TextE INGABE nach bestimmten Textstellen suchen, wobei Text natrlich durch die Zeichenfolge ersetzt werden muss, nach der gesucht werden soll. Weiterhin ist es mglich, durch die Kommandofolge /E INGABE nach dem gleichen Text wie bei der vorhergehenden Suche zu suchen. Hierzu kann wie bei less auch das Kommando n benutzt werden. Das Suchmuster ist genau genommen ein regulrer Ausdruck, siehe Abschnitt 20 auf Seite ??. 5.9.3 Einfgen Zum Einfgen von Text dienen folgende Kommandos: Einfgen von Text vor dem Cursor (insert). Einfgen von Text hinter dem Cursor (append). O Erzeugen einer neuen (leeren) Zeile unterhalb der Zeile, in der sich der Cursor bendet, und Einfgen von Text in dieser Zeile (open). S HIFT- O Erzeugen einer neuen (leeren) Zeile oberhalb der Zeile, in der sich der Cursor bendet, und Einfgen von Text in dieser Zeile (Open). E SC Beenden der Eingabe (Umschalten auf Kommandos), kann auch mehrmals hintereinander gegeben werden.
I A

Nachdem eines der oben aufgefhrten Kommandos benutzt wurde, kann mit der Tastatur Text eingegeben werden. Falsche Eingaben knnen mit der Taste Z URCK (Backspace) rckgngig gemacht werden. Wenn Sie whrend der Texteingabe die Taste E INGABE drcken, wird eine neue Zeile unterhalb der aktuellen Zeile erzeugt. Achtung: Whrend der Eingabe von Text knnen Sie keines der oben aufgefhrten Kommandos zur Navigation im Text benutzen, da die Tasten ja dann als normale Texteingabe interpretiert werden. Um die Eingabe zu beenden, muss die Taste E SC bettigt werden. 5.9.4 Lschen Zum Lschen von Text stehen folgende Kommandos zur Verfgung:
X Lschen des Zeichens, auf dem sich der Cursor bendet. DW Lschen des Wortes, auf dessen Anfang sich der Cursor DD

bendet.

Lschen der Zeile, auf der sich der Cursor bendet.

Das Lschen funktioniert selbstverstndlich nur im Kommandomodus, andernfalls werden die Buchstaben geschrieben.

5.9 Verarbeiten von Textdateien mit dem Editor vi

125

5.9.5 Verschieben Mit folgenden Tastaturkommandos ist es mglich, Text zeilenweise zu verschieben: S HIFT- Y Die Zeile, auf der sich der Cursor bendet, wird in einen Zwischenspeicher kopiert. Falls sich vorher anderer Text im Zwischenspeicher befunden hat, wird dieser berschrieben. 3 S HIFT- Y Dasselbe fr drei Zeilen. P Die Zeilen im Zwischenspeicher werden unterhalb der Zeile, auf der sich der Cursor bendet, eingefgt (put). 5.9.6 Zurcknehmen von nderungen Mit dem Kommando U (undo) nehmen Sie die jeweils letzte nderung zurck. Damit ist die gesamte Auswirkung eines Kommandos gemeint. Wird beispielsweise nach Verwendung des Kommandos X die Taste U gedrckt, so wird das vorher gelschte Zeichen wieder eingesetzt. Wenn nach der Eingabe von Text (beispielsweise durch die Kommandos I Texteingabe E SC) U ausgefhrt wird, wird der gerade eingegebene Text komplett gelscht. 5.9.7 Speichern und Verlassen Es ist mglich, den vi zu verlassen, ohne die vorgenommen nderungen zu speichern. Auerdem kann die Datei unter einem neuen Namen gespeichert werden. Danach gibt es dann zwei Dateien. Einerseits die Datei mit dem alten Namen, die die vorgenommenen nderungen nicht enthlt und andererseits die Datei mit dem neuen Namen, die die nderungen enthlt. Auerdem ist es mglich, die bearbeitete Datei zwischendurch zu speichern, ohne den Editor zu verlassen (dringend anzuraten). Und schlielich kann die Datei gesichert und das Programm dann verlassen werden. Um diese Operationen durchzufhren, ist vi in einen speziellen Modus zu schalten, den ex-Modus4. Hierzu ist das Kommando : einzugeben. Genau wie den Eingabemodus knnen Sie auch den ex-Modus durch Bettigung der Taste E SC verlassen. Im ex-Modus stehen Ihnen folgende Kommandos zur Verfgung: w Speichern. Die Datei wird unter dem aktuellen Namen gespeichert. Dabei wird die ursprngliche Version der Datei berschrieben. Der Editor wird nicht verlassen. w Name Speichern unter. Die Datei wird unter dem mit Name angegebenen Dateinamen gespeichert. Hierbei kann auch ein relativer oder absoluter Pfadname angegeben werden. wq Speichern und verlassen. Die Datei wird unter dem aktuellen Namen gespeichert. Danach wird vi beendet. q Beenden. Der Editor wird beendet. Falls nderungen an der bearbeiteten Datei noch nicht gesichert sind, erscheint eine Warnung, und der Editor wird nicht beendet. q! Sofort verlassen. Der Editor wird in jedem Fall beendet. Ungespeicherte nderungen gehen verloren.
4

ex ist ein uralter zeilenorientierter Editor.

126

5 Einfhrung fr Linux/UNIX-Anfnger

5.9.8 ben mit dem vi Es ist wichtig, sich mit einem Editor vertraut zu machen, weil die meisten Kongurationsdateien unter Debian Textdateien sind und viele Einstellungen durch das Verndern dieser Textdateien vorgenommen werden. Sie mssen dazu nicht vi verwenden5, aber es ist sinnvoll, die wichtigsten Funktionen eines Editors zu beherrschen, der Ihnen in den meisten Situationen zur Verfgung steht. Ein guter Editor ist praktisch das Schweizer-Messer fr die Arbeit mit dem Debian-GNU/Linux-System. Hier sind einige bungsaufgaben, die Ihnen den Umgang mit vi vertraut machen sollen. Wenn Sie diese Aufgaben lsen knnen, sind Sie in der Lage, alle in diesem Buch beschriebenen Kongurationsnderungen durchzufhren. Suchen Sie in der Datei GPL-Kommentare die dritte Textstelle, in der die Zeichenfolge free software vorkommt, und schreiben Sie hinter diese Zeichenfolge die folgende Zeichenfolge: (not free lunch). Speichern Sie die genderte Datei dann unter dem Namen GPL-Beer in dem gleichen Verzeichnis, in dem auch die Ausgangsdatei liegt, und verlassen Sie den Editor. Rufen Sie den Editor nun mit der jetzt neu erzeugten Datei GPL-Beer auf. Suchen Sie Absatz 10 (er fngt mit der Zahl 10 an), fgen Sie davor die Bemerkung Hier war Absatz 10 ein und lschen Sie dann die erste Zeile des Absatzes. Machen Sie das Lschen sofort wieder rckgngig. Lschen Sie dann aus der eingefgten Zeile (Hier war Absatz 10) das Wort war und fgen stattdessen das Wort ist ein. Verschieben Sie diese Zeile dann vor Absatz 9 und ndern Sie die Zahl 10 in 9. Speichern Sie die Datei. Fgen Sie an einer beliebigen Stelle einige wirre Zeichen ein. Verlassen Sie den Editor, ohne zu speichern. Rufen Sie vi nun mit der Datei GPL-Beer auf und suchen die eingefgte Zeile (Hier ist . . . ). Verlassen Sie den Editor dann wieder.

5.10 Links (Verweise, Verknpfungen)


Eine Besonderheit des UNIX-Dateisystems stellen die Verweise oder Links dar. Man unterscheidet dabei zwischen zwei verschiedenen Typen, den weichen Verweisen (softlinks) und den harten Verweisen (hardlinks). Softlinks werden auch als symbolische Links bezeichnet; in anderen Welten ist die Bezeichnung Verknpfung verbreitet.

Man kann sich an jeden Editor gewhnen, nur nicht jede Woche an einen anderen.

5.10 Links (Verweise, Verknpfungen)

127

5.10.1 Harte Links Ein harter Link (Hardlink) ist ein Eintrag einer Datei in einem Verzeichnis. Wenn Sie sich eine Datei als eine Menge von Daten auf der Festplatte vorstellen, so knnen Sie sich einen Verzeichniseintrag als den Namen dieser Datei mit der Information, wo diese Datei auf der Festplatte zu nden ist, vorstellen. Fr jede Datei muss es mindestens einen Verzeichniseintrag (Hardlink) geben, damit sie berhaupt gefunden wird. Ebenso knnen Sie sich das Lschen einer Datei als das Entfernen dieses Eintrags aus dem Verzeichnis vorstellen. Es ist nun mglich, fr dieselbe Datei einen weiteren Verzeichniseintrag im selben, aber auch in einem anderen Verzeichnis anzulegen. Hierzu dient das Kommando ln. Er hat die gleiche Syntax wie die Kommandos cp und mv, nmlich: ln Quelle Ziel Stellen Sie sich vor, Sie bearbeiten die Datei GPL-Beer so oft, dass Sie sie gleich nach der Anmeldung in Ihrem Home-Verzeichnis vornden wollen. Trotzdem soll Sie auch im Verzeichnis texte liegen, weil sie zu Ihren Textdateien gehrt. Wenn Sie sich nun in diesem Unterverzeichnis Ihres Home-Verzeichnisses benden, knnen Sie mit folgendem Kommando einen weiteren Verzeichniseintrag fr die Datei GPLBeer in Ihrem Home-Verzeichnis erzeugen: joe@debian:~/texte$ ln GPL-Beer ../GPL-Beer oder aus Ihrem Home-Verzeichnis heraus: joe@debian:~/texte$ ln texte/GPL-Beer GPL-Beer Die Datei hat jetzt in Ihrem Home-Verzeichnis den gleichen Namen wie im Verzeichnis texte. Sie htten aber auch einen anderen Namen whlen knnen. Wechseln Sie nun in Ihr Home-Verzeichnis und verndern Sie die dortige Datei GPL-Beer geringfgig mit vi. Wechseln Sie danach wieder in das Verzeichnis texte und sehen Sie nach, ob die Vernderungen auch dort in GPL-Beer vorhanden sind. Sie sehen, es handelt sich wirklich um dieselbe Datei. Wenn Sie jetzt einen der beiden Verzeichniseintrge mit rm lschen, so knnen Sie auf die Datei immer noch unter dem anderen Verzeichniseintrag zugreifen. Erst wenn alle Verzeichniseintrge gelscht worden sind im Beispiel GPL-Beer in Ihrem Home-Verzeichnis und im Verzeichnis /texte kann auf die Datei nicht mehr zugegriffen werden, und der Platz, den Sie auf der Festplatte eingenommen hat, wird vom Betriebssystem anderweitig benutzt. Beim Erzeugen von harten Links gibt es zwei Einschrnkungen. Erstens knnen keine Hardlinks auf Verzeichnisse angelegt werden, weil dies zu Schleifen fhren kann. Zweitens mssen sich harte Links immer auf derselben Partition (Dateisystem) benden wie die Datei selbst; sie knnen die Grenzen einer Partition nicht berschreiten.

128

5 Einfhrung fr Linux/UNIX-Anfnger

5.10.2 Weiche Links Die beiden Einschrnkungen fr harte Links lassen sich durch weiche oder symbolische Links (Softlinks) umgehen. Weiche Links sind kleine Dateien, in denen die Anweisung an das Betriebssystem steht, eine andere Datei zu verwenden, sobald auf den weichen Link zugegriffen wird. Weiche Links knnen auch fr Verzeichnisse angelegt werden, sie drfen die Grenzen einer Partition berschreiten, und sie drfen geschachtelt oder verkettet werden. Existiert das Ziel eines weichen Links nicht mehr, fhrt sein Aufruf zu einer Fehlermeldung. Auch weiche Links werden mit dem Kommando ln erzeugt, dem dann der Parameter -s (fr symbolic) bergeben werden muss. Die Syntax zum Erzeugen eines weichen Links lautet: ln -s Quelle Ziel Um einen weichen Link mit dem Namen Verweis-auf-GPL-Beer in Ihrem HomeVerzeichnis auf die Datei GPL-Beer im Unterverzeichnis texte zu erzeugen, ist folgendes Kommando einzugeben: joe@debian:~/texte$ ln -s ~/texte/GPL-Beer ~/Verweis-auf-GPL-Beer Ebenso wie bei einem harten Link knnen Sie jetzt mit Verweis-auf-GPL-Beer genauso arbeiten wie mit der Originaldatei. Es werden in jedem Fall dieselben Daten bearbeitet. Ein Unterschied zwischen weichen und harten Verweisen besteht aber in der Auswirkung des Lschens auf Original und Verweis. Whrend das Lschen des Ursprungseintrags bei einer zweifach gelinkten Datei die Daten nicht wirklich lscht, weil sie ja noch unter dem zweiten Namen zu erreichen ist, sieht es bei weichen Links anders aus. Hier ist zwischen der Entfernung des Verweises und Entfernung der Ursprungsdatei zu unterscheiden.
Ein sinnvoller Anwendungsbereich fr die Arbeit mit weichen Links ist folgende Situation: Stellen Sie sich vor, Sie haben auf der Partition, auf der Sie Debian installiert haben, keinen Platz mehr und mchten zustzliche Pakete installieren. Deswegen bauen Sie eine weitere Festplatte in Ihren Rechner ein. Unter vielen anderen Betriebssystemen wrde dies oft bedeuten, dass Sie nun das Betriebssystem und alle Anwendungen neu installieren mssten. Unter UNIX/Linux kopieren Sie einfach einen Teil der Dateien und Verzeichnisse auf die neue Festplatte und lschen Sie dann auf der alten Platte. Dann erzeugen Sie weiche Links, die von der Position, wo sich die Dateien vorher befanden, auf die neue Position zeigen. In der Praxis wrde man hier einfach ein ganzes Verzeichnis mit allen Unterverzeichnissen auf die neue Platte kopieren und dann einen einzigen weichen Link auf die neue Position dieses Verzeichnisses einrichten.

5.11 Verndern von Systemdateien


Es wurde bereits darauf hingewiesen, dass Sie als gewhnlicher Benutzer keine Teile des Betriebssystems verndern knnen. Wenn Sie allerdings Ihr eigener Systemverwalter sind, werden Sie dies gelegentlich tun. Sie knnten sich dazu abmelden (s. o.) und sich dann als root wieder anmelden. Danach haben Sie alle notwendigen Rechte.

5.11 Verndern von Systemdateien

129

5.11.1 Das Kommando su Dieses Vorgehen ist unbequem, gerade wenn Sie bereits eine Reihe von Programmen aufgerufen haben, die Sie erst beenden und spter wieder neu starten mssten. Deswegen kann zum Wechsel der Identitt auch das Kommando su (substitute) verwendet werden. Wird su ohne Argument aufgerufen, so wird die Benutzeridentitt auf die des Systemverwalters (root) gewechselt. Es ist aber auch mglich, als Argument einen gewhnlichen Benutzernamen anzugeben, um kurzzeitig eine andere Identitt anzunehmen. 5.11.2 ndern der Datei /etc/motd Vielleicht mchten Sie nach der Anmeldung an Ihrem System etwas freundlicher begrt werden? Die Datei motd (message of the day) enthlt den Text, der nach der Anmeldung ausgegeben wird. Diese Datei bendet sich, wie viele Kongurationsdateien, im Verzeichnis /etc. Zur Verwaltung eines Debian-GNU/Linux-Systems mssen Sie deswegen vorwiegend Dateien in diesem Verzeichnis oder seinen Unterverzeichnissen ndern. Geben Sie nun folgendes Kommando ein, um Systemverwalter zu werden: joe@debian:~/texte$ su Sie werden nun nach einem Passwort gefragt. Geben Sie das Verwalterpasswort ein. Wenn Sie sich vertippen, schlgt su fehl, und Sie erhalten die Fehlermeldung: su: incorrect password su teilt Ihnen mit, dass das Passwort falsch war. Sie knnen es dann erneut versuchen, indem Sie nochmals su eingeben. Wenn Sie das richtige Passwort eingegeben haben, sehen Sie jetzt einen anderen Prompt. Es ist der Prompt des Systemverwalters, der oben bereits vorgestellt wurde. Jetzt haben Sie volle Verwalterrechte! Wenn Sie nun folgendes Kommando eingeben: debian:/home/joe/texte# vi /etc/motd starten Sie den Editor vi und ffnen damit gleichzeitig die Datei /etc/motd. Wie Sie sehen, wurde hier ein absoluter Pfadname benutzt. Sie knnten nun beispielsweise ganz unten eine neue Zeile mit dem Text Herzlich willkommen! einfgen und die Datei danach speichern. Um danach die root-Rechte sicherheitshalber wieder aufzugeben und als normaler Benutzer weiterzuarbeiten, geben Sie folgendes Kommando ein: debian:/home/joe/texte# exit Damit wird die Shell des Verwalters beendet, und Sie benden sich wieder in der Sitzungs-Shell, die Sie durch Ihre Anmeldung als Benutzer gestartet haben. Noch ein Hinweis: Mit dem Kommando whoami (Wer bin ich) oder id (identity) knnen Sie sich jederzeit Ihre Identitt ausgeben lassen. Probieren Sie es als Benutzer und als Systemverwalter aus.

130

5 Einfhrung fr Linux/UNIX-Anfnger

5.12 Dateiattribute und Zugriffsrechte


5.12.1 Benutzer (user) Die Information, ob ein Benutzer eine Datei lesen oder verndern darf, wird vom Betriebssystem zu jeder Datei gespeichert. Dabei wird festgehalten, wem die Datei gehrt. Besitzer ist per Standardeinstellung der Benutzer, der die Datei erzeugt hat. Weiter wird zu jeder Datei gespeichert, was dieser Besitzer mit der Datei machen darf. Dabei gibt es drei verschiedene Rechte: 1. Die Datei darf gelesen werden (read). Dieses Attribut wird durch den Buchstaben r abgekrzt. 2. Die Datei darf gendert werden (write). Dieses Attribut wird durch den Buchstaben w abgekrzt. 3. Die Datei darf ausgefhrt werden (execute). Dieses Attribut wird durch den Buchstaben x abgekrzt. Alle Programmdateien brauchen dieses Attribut. Kopieren einer Datei setzt die Leseerlaubnis voraus, Anlegen oder Lschen die Schreiberlaubnis im bergeordneten Verzeichnis. Bei Verzeichnissen bedeutet Ausfhren Hinein- oder Hindurchgehen. 5.12.2 Gruppen (group) Gelegentlich ist es erwnscht, einer Gruppe von Benutzern zu erlauben, bestimmte Dateien zu verndern. Hierbei kann es sich um eine Projektgruppe handeln, bei der alle Mitglieder mit den gleichen Daten arbeiten. Es wrde dann nicht ausreichen, einzelnen Benutzern Schreib- und Leserechte an diesen Daten zu erteilen. Deswegen wird neben dem Besitzer fr jede Datei eine Gruppe gespeichert, fr die besondere Rechte gelten. Jeder Benutzer gehrt mindestens einer Gruppe an. Wenn er neue Dateien erzeugt, gehren diese der Gruppe, der er angehrt. Wenn er mehreren Gruppen angehrt, muss zwischen der primren (oder aktiven) Gruppe unterschieden werden, die mit neu angelegten Dateien assoziiert wird, und zustzlichen Gruppen, denen der Benutzer auch angehrt. Hierdurch erhlt er u. U. das Recht, auf weitere Dateien zuzugreifen, die diesen Gruppen zugeordnet sind. Unter Debian/GNU Linux wird beim Anlegen eines neuen Benutzerkontos gleichzeitig eine neue Gruppe mit dem gleichen Namen angelegt, der der neue Benutzer automatisch angehrt. Die fr die Gruppe verwalteten Rechte sind die gleichen Rechte, wie sie auch fr den Besitzer verwaltet werden, also read, write und execute. Es kann festgelegt werden, dass die Gruppenmitglieder eine Datei lesen, verndern sowie ausfhren drfen. 5.12.3 Andere (others) Neben Benutzer und Gruppen werden die gleichen Rechte ein drittes Mal fr alle anderen Benutzer verwaltet, also fr alle, die weder der Gruppe, die mit einer Datei

5.12 Dateiattribute und Zugriffsrechte

131

assoziiert ist, angehren, noch Besitzer der Datei sind (Rest der Welt, anders als bei Microsoft, wo jeder wirklich jeder ist). Viele Dateien auf einem UNIX-System sind fr alle Benutzer lesbar, drfen jedoch nicht verndert werden. Dazu gehrt die Dokumentation, die fr alle Benutzer lesbar sein soll, aber von gewhnlichen Benutzern nicht verndert werden darf. Auch sind die meisten Programme von allen Benutzern ausfhrbar. 5.12.4 Anzeigen von Dateiattributen Wird das Kommando ls mit dem Parameter -l (long) aufgerufen, erfolgt die Ausgabe im langen Format. Es wird dann fr jede Datei die folgende Information ausgegeben: Art der Datei, beispielsweise gewhnliche Datei, Verzeichnis oder symbolischer Link. Rechte des Besitzers an der Datei. Rechte der Gruppe an der Datei. Rechte anderer Benutzer an der Datei. Anzahl der Verzeichniseintrge (hardlinks) der Datei. Besitzer der Datei. Gruppe der Datei. Gre der Datei (in Byte). Datum (Zeitstempel) der jngsten nderung der Datei. Name der Datei. Bei symbolischen Links wird neben dem Namen des Links zustzlich der Name der Datei angezeigt, auf die der Link zeigt. Geben Sie jetzt im Unterverzeichnis texte Ihres Home-Verzeichnisses den folgendes Kommando ein: joe@debian:~/texte$ ls -l Sie erhalten dann in etwa die folgende Ausgabe:
total 38 -rw-r- -r- -rw-r- -r- 1 1 joe joe joe joe 18007 Jun 24 15:21 GPL-Beer 18007 Jun 24 15:21 GPL-Kommentare

In der oberen Zeile wird der Platzbedarf aller angezeigten Dateien in Kilobyte dargestellt. Darunter benden sich detaillierte Angaben zu den beiden Dateien in dem Verzeichnis. Die Bedeutung der einzelnen Felder wird in Abbildung 5.1 dargestellt. Neben gewhnlichen Dateien, Verzeichnissen und Softlinks gibt es noch andere Dateitypen und zustzliche Rechte, die hier nicht besprochen werden. An der oben wiedergegebenen Ausgabe von ls -l lsst sich folgendes ablesen: Bei den beiden angezeigten Dateien handelt es sich um gewhnliche Dateien, denn das erste Zeichen des ersten Feldes ist ein Minuszeichen (-). Beide Dateien gehren dem Benutzer joe (drittes Feld) und der Gruppe joe (viertes Feld). Beide Dateien haben eine Gre von 18.007 Byte (fnftes Feld).

132

5 Einfhrung fr Linux/UNIX-Anfnger
Group Others Eintrge Anzahl Besitzer Name Gruppe Name Gre in Byte Datum Datum Dateiname Name

Typ User dl

rwx rwx rwx

d = Verzeichnis = Datei r = read l = Softlink w = write und andere x = execute = nicht gesetzt und andere

Anzahl der Verzeichniss Eintrge (Hardlinks)

Datum der letzten nderung

Abbildung 5.1. Bedeutung der Ausgabefelder des Kommandos ls -l.

Sie wurden zuletzt am 24. Juni des laufenden Jahres um 15:21 Uhr gendert (sechstes Feld). Der Besitzer joe darf die Dateien lesen (zweites Zeichen, erstes Feld ist r) und verndern (drittes Zeichen, erstes Feld ist w). Er darf die Datei nicht ausfhren (viertes Zeichen, erstes Feld ist nicht x, sondern -). Mitglieder der Gruppe joe drfen die Dateien lesen (fnftes Zeichen, erstes Feld), aber weder verndern noch ausfhren (sechstes und siebentes Zeichen, erstes Feld). Ebenso drfen alle anderen Benutzer die Dateien nur lesen (achtes Zeichen, erstes Feld), aber nicht verndern oder ausfhren (letzte beide Zeichen, erstes Feld).

5.13 ndern von Dateiattributen


Dateiattribute knnen grundstzlich nur von dem Besitzer einer Datei verndert werden. Darber hinaus hat der Systemverwalter das Recht, die Attribute aller Dateien zu verndern. Es gibt drei Kommandos zum ndern der Attribute: chown Change owner. Der Besitzer einer Datei wird gewechselt. chgrp Change group. Die mit einer Datei assoziierte Gruppe wird gewechselt chmod Die Rechte, die Besitzer, Gruppe und andere Benutzer an einer Datei haben, werden verndert. 5.13.1 Verndern von Besitzer und Gruppe Im einfachsten Fall lautet die Syntax von chown: chown Benutzer Datei Damit wird der mit Benutzer angegebene Benutzer der neue Besitzer der Datei, die mit Datei angegeben wurde. Das Kommando chgrp wird genauso verwendet. Es ist zu beachten, dass nur der Systemverwalter berechtigt ist, Dateien neuen Besitzern

5.13 ndern von Dateiattributen

133

zuzuordnen. Benutzer knnen Dateien anderen Gruppen zuordnen, wenn sie Besitzer der Datei und auerdem Mitglied der Gruppe sind. ndern Sie zur bung (als root, vorher su eingeben) Besitzer und Gruppe der Datei GPL-Beer auf root, lassen Sie sich zwischendurch das Ergebnis mit ls -l anzeigen, und machen Sie die nderungen hinterher rckgngig. Danach geben Sie die Verwalterrechte wieder auf. 5.13.2 Verndern der Rechte Das Kommando chmod ist etwas komplizierter zu benutzen. Ihm mssen mindestens zwei Argumente bergeben werden: 1. Ein Ausdruck, der die zu erteilenden Rechte festlegt. 2. Der oder die Namen der Datei(en), deren Rechte gendert werden sollen. Der Ausdruck, mit dem die Rechte festgelegt werden, setzt sich zusammen aus: 1. Einer Angabe, wessen Rechte (Besitzer, Gruppe oder Andere) gendert werden sollen. Diese Angabe besteht aus einem oder mehreren der folgenden Buchstaben: u Die Rechte des Besitzers (user, owner) sollen gendert werden. g Die Rechte der Gruppe (group) an der Datei sollen gendert werden. o Die Rechte aller anderen Benutzer (others) sollen gendert werden. a Die Rechte aller Benutzer (all), also Besitzer, Gruppenmitglieder und anderer Benutzer sollen gleichzeitig gendert werden. Diese Angabe ist nicht zwingend. Wenn sie fehlt, wird angenommen, dass die Rechte aller Benutzer, also a, gleichzeitig gendert werden sollen. 2. Einer Angabe, ob Rechte hinzugefgt oder entfernt werden sollen. Dabei steht + dafr, dass Rechte hinzugefgt werden sollen, dafr, dass Rechte entfernt werden sollen und = dafr, dass die Rechte exakt so wie angegeben gesetzt werden sollen. 3. Der Angabe, welche Rechte hinzugefgt, entfernt oder gesetzt werden sollen. Hierbei werden die gleichen Abkrzungen benutzt, die Sie schon aus der Ausgabe von ls -l kennen. Siehe auch chmod (S. 782). r Leserechte. w Schreibrechte. x Rechte zum Ausfhren der Datei. Zwischen den einzelnen Teilen eines solchen Ausdrucks darf kein Leerzeichen stehen. Der Ausdruck u+w wrde bewirken, dass chmod einer Datei Schreibrechte fr den Besitzer hinzufgt. Ebenso wrde das Argument g+w die Schreibrechte fr die Mitglieder der Gruppe, die mit der Datei assoziiert ist, hinzufgen. Der Ausdruck a-r wrde die Leserechte an eine Datei fr Besitzer, Gruppenmitglieder und andere Benutzer entfernen. Dies liee sich mit a+r wieder ndern. a=r wrde allen Benutzern ausschlielich Leserechte erteilen und alle weiteren Rechte entfernen.

134

5 Einfhrung fr Linux/UNIX-Anfnger

Kombinationen sind mglich. So fgt der Ausdruck ug+rwx Schreib-, Lese- und Ausfhrungsrechte hinzu, wohingegen go-rwx diese Rechte fr die Gruppe und andere Benutzer entfernt. Auerdem knnen unterschiedliche Ausdrcke durch Kommata voneinander getrennt angegeben werden (Bsp.: u+rwx,g+w,o-rwx). Um alle Rechte fr alle Benutzer an der Datei GPL-Beer aufzuheben, ist im Verzeichnis texte folgendes Kommando einzugeben: joe@debian:~$ chmod a-rwx GPL-Beer Danach kann niemand (auch nicht der Besitzer) die Datei lesen oder verndern. Versuchen Sie danach einmal, diese Datei mit vi zu bearbeiten. Glcklicherweise knnen aber der Besitzer der Datei sowie der Systemverwalter die Rechte wieder verndern und beispielsweise mit folgendem Kommando dem Besitzer wieder Leseund Schreibrechte einrumen: joe@debian:~$ chmod u+rw GPL-Beer Machen Sie sich jetzt mit dem Kommando chmod vertraut, indem Sie sich und der assoziierten Gruppe Ausfhrungsrechte an der Datei GPLKommentare geben. die Ausfhrungsrechte wieder aufheben. sicherstellen, dass nur Sie die beiden Dateien in dem Verzeichnis lesen drfen. Lassen Sie sich zwischendurch die Vernderungen mit ls -l anzeigen.

5.14 Versteckte Dateien (Dotles)


Eine besondere Form von Dateien sind die versteckten Dateien, auch als Dotles bezeichnet, weil ihr Name mit einem Punkt beginnt. Diese Dateien unterscheiden sich von anderen Dateien nicht bezglich ihrer Attribute. Sie sind in keiner Weise geheim oder verschlsselt. Solche Dateien werden nur normalerweise von ls oder von Dateimanagern nicht angezeigt. Der Grund hierfr besteht darin, dass in den Home-Verzeichnissen eine ganze Reihe von Dateien vorhanden ist, in denen die Einstellungen der Benutzer fr verschiedene Programme gespeichert werden. Dadurch knnen verschiedene Benutzer unterschiedliche Voreinstellungen fr dieselben Programme verwenden. Die Anzeige dieser Dateien, von denen bei Benutzung vieler Programme eine ganze Menge vorhanden sein knnen, strt jedoch einfach, wenn man sich den Inhalt seines Home-Verzeichnisses ansieht. Aufgrund der groen Anzahl von Dateien wird die Struktur unbersichtlich, und gesuchte Dateien lassen sich nur noch schwer nden. Manchmal ist es aber gewnscht, dass auch diese Dateien angezeigt werden. Hierzu dient die Option -a von ls. Wenn Sie jetzt in Ihr Home-Verzeichnis wechseln und dann das Kommando joe@debian:~$ ls -a

5.15 Metazeichen in Dateinamen

135

eingeben, sehen Sie, dass dort einige solche Dateien existieren. Sie sollten zumindest die Einstellungsdateien der bash nden, die die Namen .bashrc und .bash_prole tragen. Auerdem sehen Sie noch zwei besondere Eintrge, die .. und . lauten. Diese Eintrge bezeichnen das Verzeichnis, das ber dem angezeigten Verzeichnis liegt (..) sowie das angezeigte Verzeichnis selbst (.), das ebenfalls einen Eintrag in der Dateiliste des betreffenden Verzeichnisses hat. Selbstverstndlich ist es mglich, verschiedene Parameter beim Aufruf von ls und anderen Kommandos oder Programmen zu kombinieren. Das folgende Kommando zeigt Ihnen die vollstndige Liste aller Dateien in Ihrem Home-Verzeichnis im ausfhrlichen Format: joe@debian:~$ ls -l -a ~/ Und weil man sich gerne unntige Tipparbeit sparen mchte, lassen sich Optionen noch einfacher kombinieren. Das folgende Kommando hat genau die gleiche Wirkung wie das vorherige: joe@debian:~$ ls -la ~/

5.15 Metazeichen in Dateinamen


5.15.1 Zweck In vielen Situationen mchte man eine bestimmte Aktion auf eine begrenzte Menge von Dateien anwenden, die in einem bestimmten Verzeichnis liegen. Wenn man nach einer Datei sucht, von der man wei, dass sie im Systemkongurationsverzeichnis /etc liegt und ihr Name mit .conf endet, aber den Anfang des Namens vergessen hat, so gibt man folgendes Kommando ein: joe@debian:~$ ls /etc/*.conf Es werden dann alle Dateien im Verzeichnis /etc ausgegeben, die die Endung .conf haben. Zustzlich wird der Inhalt aller Unterverzeichnisse dieses Verzeichnisses angezeigt, deren Namen ebenfalls mit .conf endet. Der Stern ist ein Metazeichen (Jokerzeichen, Wildcard), welches nicht als Stern, sondern als Ersatz fr alle mglichen Zeichenkombinationen (eine beliebige Anzahl beliebiger Zeichen) interpretiert wird. Ebenso gibt das Kommando joe@debian:~$ ls *txt alle Dateien im aktuellen Arbeitsverzeichnis aus, deren Namen auf txt enden. Metazeichen sind auch in der Mitte oder am Ende eines Argumentes erlaubt. Beispiel: joe@debian:~$ ls GPL* Neben dem Stern gibt es weitere Metazeichen wie das Fragezeichen, das fr ein beliebiges Zeichen steht. So zeigt das folgende Kommando alle Dateien im aktuellen Verzeichnis an, deren Name mit notiz beginnt, dann genau ein beliebiges Zeichen enthlt und mit .txt endet:

136

5 Einfhrung fr Linux/UNIX-Anfnger

joe@debian:~$ ls notiz?.txt Wenn Sie die angegebenen Beispiele ausprobieren mchten, knnen Sie mit dem Kommando touch leere Dateien erzeugen. Das folgende Kommando erzeugt die leere Datei notiz1.txt: joe@debian:~$ touch notiz1.txt Vorausgesetzt, die Dateien existieren tatschlich, wrden beispielsweise die Namen der Dateien notiza.txt, notizb.txt und notiz5.txt, nicht aber der Name der Datei notiz17.txt oder notiz.txt ausgegeben werden. Wrde man anstatt des Fragezeichens den Stern verwenden, so wrden auch notiz17.txt und notiz.txt angezeigt werden. In eckige Klammern eingeschlossene Zeichen bedeuten, dass irgendeines der eingeschlossenen Zeichen an der entsprechenden Stelle vorkommen muss. Das folgende Kommando wrde die Dateien notiz1.txt und notiz2.txt, nicht aber notiza.txt ausgeben, da in den eckigen Klammern nur die Zeichen 1 und 2 vorkommen. joe@debian:~$ ls notiz[12].txt Selbstverstndlich knnen Metazeichen nicht nur mit dem Kommando ls benutzt werden. Durch das folgende Kommando wrden die Dateien notiz1.txt und notiz2.txt aus dem eigenen Home-Verzeichnis in das Unterverzeichnis texte verschoben: joe@debian:~$ mv ~/notiz[12].txt ~/texte Es ist wichtig zu verstehen, dass die Metazeichen von der Shell und nicht von dem aufgerufenen Kommando (z. B. ls) interpretiert werden. Wenn die Shell auf ein Metazeichen trifft, berprft sie, auf welche Namen existierender Dateien die angegebene Kombination aus normalen Zeichen und Meta-Zeichen zutrifft und bergibt diese an das aufgerufene Programm. Nach Eingabe des Kommandos joe@debian:~$ ls notiz[ab].txt passiert folgendes: Die Shell berprft, ob im Arbeitsverzeichnis die Dateien notiza.txt und notizb.txt existieren und setzt die gefundenen Dateinamen an der Stelle des Kommandos ein, an der sich die Kombination aus normalen und Metazeichen befunden hat. Wenn beide Dateien existieren, ist obiges Kommando gleichbedeutend mit dem Kommando: joe@debian:~$ ls notiza.txt notizb.txt Wenn die Shell keine Dateinamen ndet, auf welche die angegebene Kombination zutrifft, dann bergibt die Shell diese Kombination aus Meta- und normalen Zeichen unverndert an das aufgerufene Kommando. Wenn weder notiza.txt noch notizb.txt existieren, dann erhlt ls die Anweisung, den Namen der Datei notiz[ab].txt anzuzeigen, wobei die eckigen Klammern jetzt tatschlicher Bestandteil des Dateinamens sein mssen.

5.16 Mehrfache Anmeldungen und virtuelle Konsolen

137

5.15.2 Quoten von Metazeichen Gelegentlich ist es notwendig, die Shell daran zu hindern, Metazeichen zu interpretieren. Stellen Sie sich vor, es gibt die Datei notiz[ab].txt tatschlich, und Sie wollen sie lschen. Gleichzeitig gibt es noch die Datei notiza.txt, die nicht gelscht werden darf. Das folgende Kommando wre jetzt falsch, da es die Datei notiza.txt die ja existiert lschen wrde: joe@debian:~$ rm notiz[ab].txt Um die Shell an der Interpretation von Metazeichen zu hindern, ist entweder vor jedes Metazeichen, das nicht interpretiert werden soll, ein umgekehrter Schrgstrich (\) zu setzen oder die gesamte Kombination aus normalen und Metazeichen in Anfhrungsstriche zu setzen. Die beiden folgenden Kommandos htten dieselbe Wirkung: joe@debian:~$ rm "notiz[ab].txt" joe@debian:~$ rm notiz\[ab\].txt Den Metazeichen ihre besondere Bedeutung zu nehmen, nennt man quoten oder maskieren. Der Backslash quotet genau das nachfolgende Zeichen, die einfachen oder doppelten Anfhrungszeichen die eingeschlossene Zeichenkette. Was bedeutet ein Paar von Backslashes?

5.16 Mehrfache Anmeldungen und virtuelle Konsolen


Nehmen wir an, sie bearbeiten mit dem Editor vi gerade eine Datei und mssen zwischendurch etwas anderes machen, z. B. den Namen oder den Besitzer einer Datei mit ls nachsehen, dann mssten Sie die bearbeitete Datei zunchst sichern, den Editor verlassen, ls aufrufen und dann wieder vi aufrufen, um mit der Datei weiterzuarbeiten. Dieses Verfahren ist unpraktisch. Linux stellt deswegen mehrere virtuelle Konsolen zur Verfgung. Die virtuellen Konsolen dienen dem Zweck, mehrere Sitzungen gleichzeitig auszufhren und schnell von einer zur anderen umschalten zu knnen. Sie mssen sich an jeder virtuellen Konsole neu anmelden und knnen dazu natrlich auch unterschiedliche Benutzerkonten verwenden. Es ist beispielsweise denkbar, auf der ersten virtuellen Konsole als root angemeldet zu sein und auf drei weiteren Konsolen als gewhnlicher Benutzer, wobei an der ersten dieser drei Konsolen ein Editor ausgefhrt wird, an der zweiten mit less eine Datei betrachtet wird und an der dritten Konsole ein Prompt zur Verfgung steht, mit der neue Programme gestartet werden knnen. Standardmig stehen sechs virtuelle Konsolen bereit, die erste davon sehen Sie ohne umzuschalten nachdem der Rechner hochgefahren wurde. Auf die zweite Konsole schalten Sie durch Bettigung der Tastenkombination A LT-F2, auf die

138

5 Einfhrung fr Linux/UNIX-Anfnger

Dritte durch die Tastenkombination A LT-F3 usw. Um wieder zurck auf die erste Konsole zu gelangen, drcken Sie wieder A LT-F1. Die einzelnen Sitzungen an den verschiedenen Konsolen sind vllig unabhngig voneinander. Wenn Sie beispielsweise an der einen Konsole das aktuelle Arbeitsverzeichnis wechseln, sind die anderen Sitzungen davon nicht betroffen. Auch mssen Sie sich natrlich an jeder Konsole, an der Sie sich angemeldet haben, wieder abmelden, um die dortige Sitzung zu beenden. Probieren Sie einmal aus, sich auf der ersten (Standard-)Konsole eine Datei mit less anzuschauen und schalten Sie whrend dessen auf die zweite Konsole um, wo Sie dann eine andere Datei mit vi bearbeiten knnen. Zwischendurch knnen Sie jederzeit durch Bettigung von A LT-F1 bzw. A LT-F2 zwischen den beiden Konsolen hin- und herschalten. Bei einigen Programmen haben die Tastenkombinationen A LT-F1 usw. eine spezielle Bedeutung, sodass sie nicht zum Umschalten der Konsole fhren. Zu diesen Programmen gehren die X-Server des XFree86-Projekts und die DOSLaufzeitumgebung DOSemu. In diesen Programmen aber auch sonst knnen Sie die virtuellen Konsolen durch die Tastenkombinationen S TRG-A LT-F1 usw. wechseln. Neben den standardmig zur Verfgung stehenden sechs virtuellen Konsolen besteht die Mglichkeit, neue Konsolen zu ffnen. Hiervon macht vor allem X11 Gebrauch, das nach seinem Start die nchste freie virtuelle Konsole verwendet. Dies ist standardmig die siebte Konsole. Wenn Sie X11 benutzen, knnen Sie deswegen mit der Tastenkombination S TRG-A LT-F1 von X11 zur ersten virtuellen Konsole schalten und von dort mit A LT-F7 wieder zurck zur graschen Oberche wechseln.

5.17 Arbeit mit externen Datentrgern


Externe oder entfernbare Datentrger sind Speichermedien, die aus einem Rechner herausgenommen und zu einem anderen Rechner transportiert oder als Sicherungskopien aufbewahrt werden knnen. Dazu zhlen: Disketten (oppy discs) verschiedener Durchmesser, ZIP-Disketten, Magnetbnder, magnetooptische Platten (MO), Speicherkarten (Compact Flash, Smart Media, Secure Digital etc.), Compact Discs (CD), Digital Versatile Discs (DVD). Auf diese Medien kann auf zweierlei Arten zugegriffen werden: Sie enthalten ein von Linux/UNIX untersttztes Dateisystem. Dann werden sie in das Rootdateisystem vorbergehend eingebunden (gemountet).

5.17 Arbeit mit externen Datentrgern

139

Sie enthalten ein Archiv (tar, cpio). Dann schreibt oder liest das Kommando von der oder zur zugehrigen Gertedatei. Darber hinaus verfgt Linux ber besondere Werkzeuge (mtools) zum Arbeiten mit Disketten, auf denen ein DOS-Dateisystem eingerichtet ist. Im Laufe der Jahrzehnte sind entsprechend den unterschiedlichen Mglichkeiten und Anforderungen der Speichermedien mehrere Dutzend verschiedener Dateisysteme entwickelt worden. bersichten und Einzelheiten ndet man im Filesystems HOWTO. 5.17.1 Gertebezeichnungen Falls Sie Betriebssysteme wie DOS/MS-Windows kennen, werden Sie sich vielleicht darber gewundert haben, dass bei der Angabe von Pfadnamen nie ein Laufwerksbuchstabe benutzt wurde. Laufwerksbuchstaben existieren unter UNIX nicht. Es gibt keine Laufwerke, sondern nur ein groes Dateisystem, in das alle zur Verfgung stehenden Festplatten, Diskettenlaufwerke oder CDs eingebunden werden knnen. Trotzdem haben diese Gerte Namen, die anders gebraucht werden als unter DOS/MS-Windows. Gerte wie Festplatten oder Diskettenlaufwerke werden durch spezielle Dateien reprsentiert, die sich alle im Verzeichnis /dev benden. Diese Dateien werden Gertedateien (device les) genannt und dienen dazu, die Gerte, die sie reprsentieren, direkt anzusprechen. Einige Gertenamen fr Festplatten oder CDLaufwerke haben Sie whrend der Installation bereits kennengelernt. Es existiert jedoch eine Anzahl weiterer Gertedateien, beispielsweise auch solche, die Bandlaufwerke (Streamer) oder den Sound-Mixer auf einer Soundkarte reprsentieren. Die Gertedateien fr Diskettenlaufwerke heien fd0 (fr Floppy-Disk 0), fd1, fd2 usw. Dabei entspricht /dev/fd0 (absoluter Name) dem Diskettenlaufwerk, das Sie unter DOS ber den Laufwerksbuchstaben A: ansprechen, /dev/fd1 dem zweiten Laufwerk (unter DOS: B:) usw. 5.17.2 Einbinden von Datentrgern (Mounten) Externe, von Linux/UNIX untersttzte Dateisysteme auf beliebigen Datentrgern werden durch Mounten (Einbinden, Einhngen, Montieren) zu einem Zweig des eigenen Wurzel- oder Rootdateisystems. Mounten heit, ein Verzeichnis meist die Wurzel des externen Dateisystems auf ein Verzeichnis des eigenen Dateisystems abzubilden. Dieses eigene Verzeichnis nennt man den Mounting Point; es sollte keine Eintrge enthalten. Ist dies nicht der Fall, so sind die Eintrge nicht sichtbar, solange das externe Dateisystem gemountet ist. Sie sind jedoch nicht verloren. Es drfen mehrere Dateisysteme gleichzeitig gemountet sein, nur ist darauf zu achten, dass keine geschlossenen Wege (Schleifen) im Dateisystem erzeugt werden. Also nicht kreuz und quer mounten! Ein nicht mehr bentigtes externes Dateisystem lsst sich unmounten. Beim Herunterfahren des Systems geschieht dies automatisch. Normalerweise ist der direkte Zugriff auf Hardwarekomponenten nur dem Systemverwalter gestattet. Weil das Mounten von Datentrgern einen Hardwarezugriff

140

5 Einfhrung fr Linux/UNIX-Anfnger

darstellt, kann dieser Vorgang auch nur vom Systemverwalter durchgefhrt werden. Er hat die Mglichkeit zu erlauben, dass bestimmte Datentrger auch von gewhnlichen Benutzern gemountet werden. Einzelheiten zum mount-Kommando erfhrt man mittels joe@debian:~$ man mount Ohne Optionen oder Argumente aufgerufen zeigt mount eine Liste der augenblicklich gemounteten Dateisysteme an. Das Verzeichnis /oppy, welches zum Einbinden von Disketten gedacht ist, wurde whrend der Basisinstallation bereits angelegt. Dem Kommando mount mssen normalerweise mindestens zwei Argumente bergeben werden. Dies ist zum einen die Gertedatei, unter der das externe Dateisystem liegt, und zum anderen der Name des Verzeichnisses, in das das externe Dateisystem eingebunden werden soll (mounting point). Die Syntax des Kommandos lautet in einfachen Fllen: mount Gertedatei Verzeichnis
Das mag zunchst vielleicht kompliziert erscheinen. Es ist jedoch nur durch die Anmeldung eines Datentrgers beim Betriebssystem mglich, den Inhalt des Datentrgers zwischenzuspeichern. Dadurch knnen Schreib- und Lesevorgnge eher beendet werden, weil gegebenenfalls nur aus dem Zwischenspeicher gelesen bzw. in ihn geschrieben wird. Das wirkliche Schreiben ndet erst dann statt, wenn das Betriebssystem Zeit dazu hat oder der Datentrger wieder abgemeldet wird. Wrde das Betriebssystem sich nicht darauf verlassen knnen, dass der Datentrger noch vorhanden ist, msste es bei jeder Leseoperation nachschauen und Schreiboperationen sofort durchfhren, weil der Datentrger ja im nchsten Moment vom Benutzer entfernt werden knnte. Auerdem ist es mglich, dass andere Benutzer ber das Netz ebenfalls auf den Datentrger zugreifen. Hier wrde ein Fehlerzustand auftreten, wenn ein Benutzer gerade beispielsweise auf eine Diskette schreibt und ein anderer sie gleichzeitig aus dem Laufwerk nimmt. Die Folge wre eine zerstrte Datei, im schlimmsten Fall sogar ein zerstrtes Dateisystem auf der Diskette. Aus diesem Grunde sperren die meisten Laufwerke fr Wechseldatentrger (wie CD- oder ZIP-Laufwerke) die die Ausgabetaste, wenn der Datentrger benutzt wird. Diskettenlaufwerke bieten diese Mglichkeit bei PCs leider nicht, sodass man sich hier mit der vertrauensvollen An- und Abmeldung begngen muss. Wem das Mounten und Unmounten von Wechseldatentrgern auf Dauer zu aufwendig ist, kann zum einen mit den mtools (S. 838) direkt auf DOS-formatierte Datentrger zugreifen, wobei auf alle Vorteile der Einbindung in das Dateisystem verzichtet werden muss. Zum anderen besteht die Mglichkeit, einen Automounter einzusetzen, der Datentrger in dem Moment mountet, in dem auf sie zugegriffen wird und unmountet, wenn eine Zeit lang kein Zugriff mehr erfolgt ist (siehe Kap.: 14.3.8, S. 481). Darber hinaus wird das Einbinden von Datentrgern bei der Arbeit mit graschen Benutzeroberchen vereinfacht, weil der Vorgang hier durch Mausaktionen steuerbar ist.

Um jetzt eine Diskette zu mounten, sollten Sie die Diskette in das Laufwerk einlegen und als Systemverwalter folgendes Kommando eingeben. debian:/home/joe# mount /dev/fd0 /floppy In der Regel bemerken Sie dann, wie die Lampe am Diskettenlaufwerk kurz aufleuchtet und es anluft. Wenn Sie keine Fehlermeldung erhalten, ist der Datentrger nun mit dem Verzeichnis /oppy verbunden. Falls hierbei ein Fehler auftritt, sollten Sie folgende Punkte berprfen:

5.17 Arbeit mit externen Datentrgern

141

Ist /dev/fd0 die richtige Gertedatei? Versuchen Sie es einmal mit /dev/fd1. Ist die Diskette mit einem Dateisystem formatiert, dass von Ihrem Linux-Kern untersttzt wird? Vom Standardkern werden u. a. DOS/MS-Windows-, ext2- (Linux) und Minix-formatierte Datentrger erkannt und untersttzt. Ist die Untersttzung fr Diskettenlaufwerke in Ihren Kern einkompiliert? Dies ist beim Standardkern der Fall. Sind Sie als root angemeldet oder haben Sie Ihre Identitt mit su zur Identitt des Systemverwalters gewechselt? Den Inhalt der Diskette knnen Sie sich jetzt wie den Inhalt jedes anderen Verzeichnisses anzeigen lassen. Geben Sie folgendes Kommando ein: debian:/home/joe# ls /floppy Sie sollten jetzt die Dateien auf der Diskette angezeigt bekommen. Wenn die Diskette leer ist, bekommen Sie natrlich keine Dateien angezeigt. Vielleicht probieren Sie es dann nochmal mit einer anderen Diskette. Vorher mssen Sie die momentan gemountete Diskette jedoch wieder aus dem Dateisystem entfernen (s. u.) Fr CDs oder DVDs gilt dasselbe, nur dass das Dateisystem ein anderes ist. Auf CDs net man berwiegend das Filesystem nach ISO 9660 (ECMA 119/2), whrend auf DVDs zunehmend das Universal Disc Format (UDF) verwendet wird. 5.17.3 Entfernen von Datentrgern aus dem Dateisystem Achtung: Sie drfen eine Diskette oder CD nie aus dem Laufwerk nehmen, bevor Sie sie ordnungsgem vom Dateisystem getrennt haben. Zum Trennen (Unmounten) eines Datentrgers vom Rootdateisystem dient das Kommando umount. Sie knnen umount als Argument entweder die Gertedatei des gemounteten Datentrgers oder das Verzeichnis, in das sie diesen gemountet haben, (mounting point) bergeben. Die beiden Kommandos debian:/home/joe# umount /floppy debian:/home/joe# umount /dev/fd0 bewirken dasselbe. Der vorher in das Verzeichnis /oppy gemountete Datentrger /dev/fd0 wird aus dem Rootdateisystem entfernt. Erst danach drfen Sie den Datentrger (die Diskette) aus dem Laufwerk nehmen. Wiederholen von Kommandos Zur bung knnten Sie sich nun mit den Kommandos mount, ls und umount den Inhalt einiger Disketten oder CDs anzeigen lassen. Dazu ein Tipp: Um Schreibarbeit zu sparen, knnen Sie in der Bash mit der Taste P FEIL R AUF das als letztes eingegebene Kommando wiederholen. Sie brauchen es nur mit E INGABE zu besttigen. Durch zweimalige Bettigung von P FEIL R AUF erscheint das vor-vorhergehende Kommando usw. Mit der Taste P FEIL RUNTER gelangen Sie wieder jeweils ein Kommando

142

5 Einfhrung fr Linux/UNIX-Anfnger

zurck. Sie brauchen die Kommandos mount, ls und umount nur einmal zu schreiben und knnen sie dann durch dreimaliges Drcken der Taste P FEIL R AUF immer wieder bernehmen. 5.17.4 Kopieren von Dateien auf einen externen Datentrger Nachdem ein Datentrger gemountet ist, kann er wie ein normales Verzeichnis benutzt werden. Sie verwenden die gleichen Kommandos, die Sie schon kennengelernt haben, um Dateien zu kopieren, zu verschieben oder zu lschen. Die Ausgangsfragestellung dieses Abschnitts bestand darin, wie die Datei GPLBeer aus dem Unterverzeichnis texte Ihres Home-Verzeichnisses auf eine Diskette zu kopieren ist. Sie knnen die Diskette jetzt als root mounten (wenn sie nicht schon gemountet ist), in das Verzeichnis texte wechseln und die Datei dann mit dem Kommando debian:/home/joe/texte# cp GPL-Beer /floppy in das Verzeichnis /oppy, also auf die Diskette kopieren. Lassen Sie sich zur bung anzeigen, ob die Datei auf der Diskette angekommen ist. Wechseln Sie dazu in das Verzeichnis /oppy und geben dort das Kommando ls ein. 5.17.5 Fehler beim Entfernen von Datentrgern Dann knnen Sie versuchen, die Diskette mit dem Kommando debian:/floppy# umount /floppy wieder aus dem Dateisystem zu entfernen. Wenn Sie dieses tun, whrend Ihr Arbeitsverzeichnis mit dem Datentrger verbunden ist, den Sie unmounten wollen, erhalten Sie folgende Fehlermeldung: umount: /floppy: device is busy Das Programm /umount teilt Ihnen mit, dass das mit /oppy verbundene Gert beschftigt (busy) ist. Es wird gerade benutzt. Dies mag Sie wundern, wenn Sie alleine mit dem Rechner arbeiten. Jedoch stellt auch das aktuelle Verzeichnis Ihrer Sitzung eine Benutzung des Dateisystems dar. Sie mssen vorher wieder in Ihr Home-Verzeichnis wechseln. Wiederholen Sie dann das umount-Kommando. Denken Sie an die P FEIL R AUF-Taste. 5.17.6 bung Natrlich knnen Sie Dateien auf einem externen Datentrger auch direkt bearbeiten, sobald er gemountet ist. Mounten Sie die Diskette mit der Datei GPL-Beer nochmal und verndern Sie die darauf bendliche Datei dann mit dem Editor vi. Danach knnen Sie zur bung eine Datei von einer Diskette auf eine andere Diskette kopieren. Wenn Sie nur ein Diskettenlaufwerk haben, mssen Sie die Datei

5.17 Arbeit mit externen Datentrgern

143

zunchst in Ihr Home-Verzeichnis kopieren, dann die zweite Diskette mounten und die Datei dann von Ihrem Home-Verzeichnis auf diese Diskette kopieren. Die zum Zwischenspeichern bentigte Kopie in Ihrem Home-Verzeichnis knnen Sie danach lschen. 5.17.7 Datentrger als gewhnlicher Benutzer einbinden Auf Dauer ist es mit Nachteilen verbunden, wenn Sie fr jeden Zugriff auf das Diskettenlaufwerk die Rechte des Systemverwalters haben mssen. Erstens entsteht hierdurch zustzliche und oftmals unntige Schreibarbeit, und zweitens mssen Sie dadurch viel zu oft als root arbeiten, was Risiken birgt. 5.17.8 Die Dateisystemtabelle /etc/fstab Aufbau In der Systemkongurationsdatei /etc/fstab (fstab steht fr le system table) wird festgelegt, welcher Datentrger beim Systemstart automatisch in welches Verzeichnis gemountet werden soll. Diese Datei ist sehr wichtig, weil whrend des Systemstarts zumindest der Datentrger feststehen muss, auf dem sich das Wurzeldateisystem bendet. Sehen Sie sich diese Datei mit cat oder less an. Sie knnte nach der Standardinstallation folgendermaen aussehen:
# /etc/fstab: static file system information. # #<file sys> <mnt pt> <type> <options> <dump><pass> /dev/hda6 / ext2 defaults,errors=remount-ro 0 1 /dev/hda5 none swap sw 0 0 proc /proc proc defaults 0 0

Unter den hier wiedergegebenen Eintrgen benden sich noch weitere, wenn Sie bereits whrend der Basisinstallation zustzliche Datentrger eingebunden haben. Die Datei ist folgendermaen aufgebaut: Leere Zeilen und solche, die mit einem Doppelkreuz (#) beginnen, haben keine Bedeutung und dienen dem bersichtlichen Aufbau sowie der Kommentierung der Datei. Jede andere Zeile bezeichnet die Zuordnung eines Datentrgers zu einem Verzeichnis. Diese Zeilen bestehen aus verschiedenen Feldern (Spalten). Dabei steht in der ersten Spalte die Bezeichnung der Gertedatei, die den einzubindenden Datentrger reprsentiert. In der zweiten Spalte steht der Name des Verzeichnisses, in das der Datentrger gemountet werden soll (mounting point). In der dritten Spalte steht der Typ des Dateisystems auf dem Datentrger, also das Format, in dem der Datentrger formatiert ist.

144

5 Einfhrung fr Linux/UNIX-Anfnger

In der vierten Spalte knnen besondere Optionen stehen, die teilweise vom Typ des Dateisystems auf dem Datentrger abhngig sind. Einzelne Optionen werden durch Kommata voneinander getrennt. Zwischen den Optionen drfen sich keine Leerzeichen benden, weil dann die Optionen hinter dem Leerzeichen als Inhalt der nchsten Spalte interpretiert werden wrden. In der fnften Spalte stehen Informationen fr das Programm dump, die zur Zeit ignoriert werden. In der sechsten Spalte benden sich Informationen darber, wie und ob die entsprechenden Datentrger beim Systemstart auf Ihre Intaktheit geprft werden sollen. Der Wert 0 bedeutet, dass der Datentrger nicht geprft zu werden braucht (sinnvoll bei CDs). Der Wert 1 bedeutet, dass der Datentrger vor allen anderen Datentrgern geprft werden soll. Der Datentrger mit dem Rootdateisystem (/ ) sollte diesen Wert erhalten. Alle anderen Datentrger sollten anschlieend geprft werden und deswegen den Wert 2 erhalten. In der oben wiedergegebenen Datei /etc/fstab benden sich zwei besondere Eintrge, die auch auf Ihrem System vorhanden sein sollten. Dies ist einmal der Eintrag fr den Swapbereich. Dieser dient zum Auslagern von Inhalten des Arbeitsspeichers auf die Festplatte und ist deswegen nicht in das Dateisystem eingebunden. In der zweiten Spalte (mount point), in der normalerweise das Verzeichnis steht, in das die Partition gemountet werden soll, bendet sich hier der Eintrag none. Die zweite Besonderheit ist das /proc-Dateisystem. Dieses Dateisystem stellt eine Schnittstelle zum Linux-Kern dar, ber die Informationen aus dem Kern gelesen und an diesen bergeben werden knnen. Das proc-Dateisystem ist keinem physikalischen Datentrger zugeordnet, weswegen sich hier in der ersten Spalte, der Eintrag proc bendet. Sie knnen die Benutzung des /proc-Dateisystems ausprobieren, indem Sie das Kommando joe@debian:~$ cat /proc/interrupts eingeben. In dieser Datei stehen die vom Kern benutzten Interrupts, die durch das Kommando angezeigt werden. Selbstverstndlich mssen swap- und proc-Dateisystem nicht geprft werden, weil auf ihnen ja keine Daten gespeichert werden, die nach einem Neustart des Systems zur Verfgung stehen mssten. Anlegen eines Eintrags fr das Diskettenlaufwerk Bevor Sie die Datei /etc/fstab verndern, sollten Sie eine Sicherheitskopie anlegen. Kopieren Sie die Datei dazu mit cp in Ihr Home-Verzeichnis. Achtung: Wenn Sie als Systemverwalter die Abkrzung ~ verwenden, beziehen Sie sich damit auf das Home-Verzeichnis des Systemverwalters (/root). Nun knnen Sie die Datei mit vi editieren. Dazu mssen Sie natrlich rootRechte haben, weil es sich bei der Datei um eine Systemkongurationsdatei handelt, die von normalen Benutzern nicht verndert werden darf. Fgen Sie der Datei folgende Zeile hinzu:

5.17 Arbeit mit externen Datentrgern


/dev/fd0 /floppy msdos defaults,user,noauto 0 0

145

Damit spezizieren Sie in der ersten Spalte den Namen der Gertedatei Ihres Diskettenlaufwerks. Wenn Ihr Diskettenlaufwerk nicht /dev/fd0 ist, mssen Sie hier einen anderen Gertedateinamen angeben. In der zweiten Spalte geben Sie als Mountpunkt das Verzeichnis /oppy an. Hierhin sollen Disketten in Zukunft per Voreinstellung gemountet werden. Die dritte Spalte bestimmt wieder das Dateisystem. Weil Disketten in der Regel DOS/MS-Windows-formatiert sind, geben Sie hier msdos oder vfat an. Die zweite Variante (vfat) beinhaltet die Untersttzung fr lange Dateinamen auf DOS-formatierten Dateisystemen. In der Spalte mit den Optionen sind einige zustzliche Angaben zu machen. Zunchst bestimmt default, dass die Standardeinstellungen bernommen werden sollen. Der Eintrag user bestimmt, dass auch gewhnliche Benutzer berechtigt sind, dieses Dateisystem zu mounten. Und der Eintrag noauto legt fest, dass dieses Dateisystem nicht automatisch whrend des Systemstarts gemountet werden soll. Dies wrde bei einem Diskettenlaufwerk keinen Sinn machen, weil sich nicht immer eine Diskette im Laufwerk bendet. In den letzten beiden Feldern sind hier die Standardeinstellungen eingetragen. 5.17.9 Verwendung des Kommandos mount als Benutzer Wenn Sie die Datei /etc/fstab angepasst und gesichert haben, verlassen Sie den Editor wieder und geben die root-Rechte auf. Nun knnen Benutzer Disketten im Laufwerk /dev/fd0 mounten und unmounten. Hierbei muss nun nicht mehr die Gertedatei angegeben werden, die ja bereits in /etc/fstab festgelegt ist. Vielmehr reicht es aus, einfach das Verzeichnis als Parameter anzugeben, in das der vordenierte Datentrger eingebunden werden soll. Zum Mounten reicht folgendes Kommando: joe@debian:~$ mount /floppy Und zum Unmounten: joe@debian:~$ umount /floppy Das gleiche bequeme Vorgehen, das Sie fr die Verwendung von Disketten eingerichtet haben, mchten Sie vielleicht auch fr CDs nutzen knnen. Wenn sich in Ihrem Rechner ein CD-Laufwerk bendet, knnen Sie nun einen hnlichen Eintrag fr dieses Laufwerk anlegen. Es wird hier davon ausgegangen, dass Sie die Basisinstallation zumindest teilweise von CD durchgefhrt haben und deswegen wissen, wie Ihre CD angesprochen werden kann. Sie bentigen die folgenden zustzlichen Informationen: Der Dateisystemtyp von CDs ist meist iso9660. Analog zum Verzeichnis /oppy, in das Sie Disketten einbinden, wird whrend der Basisinstallation das Verzeichnis /cdrom erzeugt, das zum Einbinden von CDs vorgesehen ist.

146

5 Einfhrung fr Linux/UNIX-Anfnger

Weil es eine groe Anzahl verschiedener CD-Laufwerkstypen gibt, existiert eine groe Anzahl von Gertedateien, die diese reprsentieren. Whrend der Basisinstallation wurde die Datei /dev/cdrom angelegt, die einen Verweis auf die fr Ihr System gltige CD-Gertedatei ist. Verwenden Sie diese Datei, um CDs einzubinden. Weil von CDs nur gelesen werden kann und sie nicht beschrieben werden knnen, gibt es normalerweise eine Warnung beim Mounten dieser Datentrger. Verwenden Sie deswegen in der Datei /etc/fstab die zustzliche Option ro (fr readonly), um die Warnung zu unterdrcken. Wenn Sie den entsprechenden Eintrag vorgenommen haben, prfen Sie, ob Sie CDs als Benutzer mounten knnen, und lassen Sie sich den Inhalt einer CD anzeigen. Lassen Sie sich auch den Inhalt von Unterverzeichnissen auf der CD anzeigen. Wenn Sie die ofziellen Debian-CDs zur Verfgung haben, sehen Sie sich dann die Datei README.1ST auf der ersten CD an.

5.18 Suchen nach Dateien


Das Durchsuchen verschiedener Verzeichnisse mit cd und ls ist aufwendig. Oft wei man, wie eine Datei heit, aber nicht in welchem Verzeichnis sie liegt. Oder man kennt nur einen Teil des Namens genau. Oder man mchte eine Datei nden, die man eben verndert hat, aber deren Namen einem gerade nicht mehr einfllt. 5.18.1 Suchen mit nd Zum Suchen und Finden dient das Kommando nd. Es ermglicht, Dateien anhand unterschiedlicher Kriterien zu suchen, die auch miteinander verknpft werden knnen. Auerdem knnen mit den gefundenen Dateien unterschiedliche Aktionen durchgefhrt werden. Beispielsweise kann untersucht werden, ob Sie eine bestimmte Zeichenfolge enthalten oder nicht. In einfachen Fllen sieht die Syntax von nd folgendermaen aus: find [Verzeichnis] Suchkriterium [Argument] Verzeichnis bezeichnet dabei das Verzeichnis, das zusammen mit seinen Unterverzeichnissen und deren Unterverzeichnissen usw. durchsucht werden soll. Die Dokumentation von Debian bendet sich unterhalb des Verzeichnisses /usr/share/doc. Wenn nun hieraus ein bestimmtes Dokument gesucht werden soll, so sucht man nur unterhalb dieses Verzeichnisses, um den Suchvorgang abzukrzen. Fehlt die Angabe des Verzeichnisses, wird das Arbeitsverzeichnis benutzt. Suchkriterium stellt ein Argument dar, das nd angibt, wonach zu suchen ist. Bei den Suchkriterien handelt es sich um Tests, die fr jede Datei unterhalb des Startverzeichnisses durchgefhrt werden. Ein Beispiel fr einen Test ist das Suchkriterium -name, welches nd veranlasst, fr jede Datei zu berprfen, ob sie einen bestimmten Namen hat. Den Suchkriterien muss in den meisten Fllen noch ein weiteres

5.18 Suchen nach Dateien

147

Argument folgen, nmlich das Argument des Kriteriums. Im Beispiel von -name ist das der Dateiname, nach dem gesucht werden soll. Um alle Dateien zu nden, die unterhalb des Verzeichnisses /usr/share/doc liegen und den Namen README tragen, ist folgendes Kommando einzugeben: joe@debian:~$ find /usr/share/doc -name README 5.18.2 Einige Suchkriterien fr nd Neben -name gibt es noch eine Reihe weiterer Suchkriterien. Die wichtigsten sind: -iname Dateiname Es wird nach einem Dateinamen ohne Beachtung von Gro- und Kleinschreibung gesucht (das i steht fr case insensitive). Beispiel: wird nach GPL gesucht, wird auch gpl gefunden. -user Benutzername und -group Gruppenname Es wird nach Dateien gesucht, die einem bestimmten Benutzer oder einer bestimmten Gruppe zugeordnet sind. Beispiel: joe@debian:~$ find -user root Es werden die Namen aller Dateien ausgehend vom aktuellen Verzeichnis ausgegeben, die dem Systemverwalter gehren. -newer Datei Es werden Dateien gefunden, die spter als die mit Datei angegebene Datei gendert wurden. Beispiel: joe@debian:~$ find -newer /usr/share/common-licenses/GPL Es werden alle Dateien, ausgehend vom aktuellen Verzeichnis, ausgegeben, die nach dem Datum verndert wurden, an dem die Datei /usr/share/commonlicenses/GPL zuletzt gendert oder neu erzeugt wurde. -type Typ Es werden die Dateien ausgegeben, die vom Typ Typ sind. Fr Typ kann Folgendes eingesetzt werden: d Verzeichnis (directory). Es werden nur Verzeichnisse ausgegeben. l Symbolischer Link. Es werden nur symbolische Links ausgegeben. f Datei (le). Es werden nur gewhnliche Dateien ausgegeben. -size Gre Es werden Dateien ausgegeben, deren Gre Gre berschreitet, wenn Gre das Zeichen + vorangestellt ist, oder deren Gre Gre unterschreitet, wenn Gre ein - vorangestellt ist. Wenn Gre weder ein + noch ein - vorangestellt ist, werden nur die Namen der Dateien ausgegeben, deren Gre Gre exakt entspricht. Hinter der Angabe von Gre kann die Einheit angegeben werden. Dafr gibt es folgende Mglichkeiten: c Die Gre wird in Bytes angegeben (count). k Die Gre wird in KB (Kilobyte) angegeben. b Die Gre wird in Blcken angegeben. Das folgende Kommando sucht unterhalb des aktuellen Arbeitsverzeichnisses alle Dateien, die kleiner als 5 Kilobyte sind:

148

5 Einfhrung fr Linux/UNIX-Anfnger

joe@debian:~$ find -size -5k Und das nchste Kommando listet alle Dateien unterhalb des Verzeichnisses /usr/share/doc auf, die grer als 100 KB sind: joe@debian:~$ find /usr/share/doc -size +100k 5.18.3 Verknpfen von Suchkriterien Es ist mglich, Suchkriterien durch logische Operatoren zu verbinden. Hierzu stehen die Operatoren -and, -or und -not zur Verfgung. Beispielsweise sucht folgendes Kommando nach Dateien unterhalb des Verzeichnisses /usr/share/doc, deren Namen README lautet und deren Gre 4 KB bersteigt: joe@debian:~$ find /usr/share/doc -name README -and -size +4k Das nchste Kommando sucht unterhalb des aktuellen Arbeitsverzeichnisses alle Dateien, die nicht dem Systemverwalter gehren und gewhnliche Dateien (keine Verzeichnisse oder symbolische Links) sind: joe@debian:~$ find ./ -not -user root -and -type f Die Zeichenkette ./ bezeichnet das Arbeitsverzeichnis. 5.18.4 Verwendung von Metazeichen mit nd Wenn Sie nd mit den Suchkriterien -name oder -iname benutzen, drfen die Namen, nach denen gesucht wird, auch Metazeichen enthalten. Diese haben die gleiche Bedeutung wie fr die Shell. Bedenken Sie jedoch, dass Sie die Shell daran hindern mssen, die Metazeichen zu interpretieren. Quoten Sie die Zeichenkette, wenn Sie mchten, dass das Metazeichen an nd bergeben wird: joe@debian:~$ find /usr/share/doc "GPL*" 5.18.5 Ausfhren von Kommandos mit den Suchergebnissen Standardmig gibt nd den Pfad- und Dateinamen zu einer Datei aus, die den Suchkriterien entspricht. Gelegentlich ist es jedoch erwnscht, die Suchergebnisse gleich einem weiteren Kommando zuzufhren. Beispielsweise erzeugen viele Programme eine core-Datei, wenn ein unbehebbarer Fehler auftritt. Die Cores belegen viel Platz und helfen dem durchschnittlichen Benutzer nichts, weg damit. Dies wird erreicht, indem man nd nach core-Dateien suchen und dann das Programm rm direkt von nd aufrufen lsst. Zunchst wollen wir nd aber nur das Programm ls mit dem Argument -l aufrufen lassen, um nicht Dateien zu lschen, sondern die Gre der Dateien anzeigen zu lassen. Zum Ausfhren eines Programms durch nd dient das Argument -exec. Ihm muss als weiteres Argument der Name des Programms bergeben werden, das aufgerufen

5.18 Suchen nach Dateien

149

werden soll. Alle folgenden Parameter bergibt nd dem aufzurufenden Programm. Wird -exec ls -l angegeben, so ruft nd ls mit der Option -l auf. Deswegen muss nd wissen, wo die Parameter fr das aufzurufende Programm enden. Dies wird mit einem Semikolon angezeigt. Hierbei ist zu beachten, dass das Semikolon fr die Shell eine besondere Bedeutung hat (Metazeichen) und deswegen durch einen Backslash gequotet werden muss. Das Argument lautet dann -exec ls -l \;. Dies ist noch nicht alles. Bis jetzt wrde nd fr jede gefundene Datei das Kommando ls -l ausfhren, wodurch die Dateien im Arbeitsverzeichnis angezeigt werden wrden. Dies wrde genau so oft passieren, wie nd Dateien ndet, auf die die angegebenen Suchkriterien zutreffen. Da dies keinen Sinn macht, muss nd an ls noch ein Argument bergeben, das ls mitteilt, welche Datei anzuzeigen ist. Hierfr wird ein Paar geschweifter Klammern benutzt, an deren Stelle nd spter die Namen der gefundenen Dateien einsetzt. Wird nd der Parameter -exec ls -l {} \; bergeben und dann die Datei texte/core gefunden, so ruft nd ls folgendermaen auf: joe@debian:~$ ls -l texte/core Um die gefundenen Dateien automatisch durch rm lschen zu lassen, ist dieses Kommando zu verwenden: joe@debian:~$ find ~/ -name core -exec rm {} \; Alternativ zum Argument -exec kann das Argument -ok verwendet werden. Es bewirkt das Gleiche, dabei wird vor jedem Aufruf des auszufhrenden Kommandos nachgefragt, ob es tatschlich ausgefhrt werden soll. Das wird dann mit y oder n besttigt oder verneint. Die Syntax von nd variiert etwas zwischen den verschiedenen Linux/UNIXSystemen, im Manual nachlesen. Dem Microsoft-Kommando nd entspricht das Linux/UNIX-Kommando grep. 5.18.6 Schnelles Suchen mit locate Einen anderen Ansatz als nd verfolgt das Kommando locate. Whrend nd das Dateisystem nach jedem Aufruf tatschlich durchsucht, benutzt locate eine Datenbank, in der Namen und Verzeichnisse der meisten Dateien auf dem System gespeichert sind. Diese Datenbank wird standardmig einmal pro Nacht durch Aufruf des Programms updatedb aktualisiert6 Deswegen werden Dateien, die gerade eben erzeugt wurden, mit locate nicht gefunden. locate eignet sich gut zur Suche nach Dateien, die Bestandteil der Debian-Installation sind, weil diese sich nicht tglich ndert. Im einfachsten Fall rufen Sie locate folgendermaen auf: locate Suchzeichenfolge Die Suchzeichenfolge bezeichnet dabei eine Zeichenkette, die im Datei- oder Pfadnamen der gesuchten Datei vorkommt. Beispielsweise sucht folgendes Kommando nach allen in der Datenbank gespeicherten Dateien, in deren Namen die Zeichenkette README vorkommt und listet diese auf:
6

Verantwortlich hierfr ist der cron-Dmon, siehe 9.3.

150

5 Einfhrung fr Linux/UNIX-Anfnger

joe@debian:~$ locate README Sie knnen in der Suchzeichenfolge auch die Shell-Metazeichen *, ? und [] verwenden. Schtzen Sie die Metazeichen vor der Shell. Wenn Sie Metazeichen verwenden, werden nur Dateien ausgegeben, auf die die Suchzeichenfolge exakt zutrifft. Beispiel: die Suchzeichenfolge aa* trifft nicht exakt auf den Namen laang zu, weil das l mit ihr nicht abgedeckt ist, whrend ohne Metazeichen alle Dateien ausgegeben werden, die die Suchzeichenfolge enthlt. So durchsucht folgendes Kommando die Datenbank nach allen Eintrgen, die mit der Zeichenfolge README enden: joe@debian:~$ locate "*README" Das nchste Kommando gibt alle Dateien der Datenbank aus, die die Zeichenfolge README enthalten, gefolgt von einem Punkt und dann drei beliebigen Zeichen: joe@debian:~$ locate "*README.???" 5.18.7 bungen mit nd und locate Das Finden von Dateien und Verzeichnissen auf dem System ist aus vielen Grnden und in vielen Situationen eine wichtige Fertigkeit. Wenn Sie die aufgefhrten Beispiele nachvollzogen haben, wird es einfach sein, folgende Aufgaben zu lsen: Suchen Sie im Systemkongurationsverzeichnis /etc alle Dateien, die die Endung .conf haben. Untersuchen Sie, ob es auf dem System auer in Ihrem Home-Verzeichnis noch Dateien gibt, die Ihnen gehren. Suchen Sie im Systemdokumentationsverzeichnis alle Dateien, die die Bezeichnung copyright haben und gewhnliche Dateien sind. Untersuchen Sie fr jede gefundene Datei, ob sich in ihr die Zeichenfolge GNU General Public License bendet. Hinweis: Das Durchsuchen von Dateien nach einer bestimmten Zeichenfolge geschieht mit dem Kommando grep. Die Syntax von grep lautet: grep Suchzeichenkette Dateiname Suchzeichenkette muss in Anfhrungsstrichen stehen, wenn sie Leer- oder Metazeichen enthlt. Die Option -H bewirkt, dass grep vor jeder Zeile den Dateinamen ausgibt. Um die Aufgabe zu lsen, muss nd grep wie folgt aufrufen: find /usr/share/doc -name copyright -exec grep -H "GNU General Public License" {} \;

5.19 Programme zum Betrachten von Text (Pager)


Ein Pager ist ein Programm, das Text kontrolliert am Bildschirm ausgibt und dem Benutzer erlaubt, sich im Rahmen der Mglichkeiten des Programms in dem Text zu bewegen (also vorwrts und rckwrts zu blttern oder im Text nach Wrtern zu suchen). Ein Pager, der auf jedem UNIX System zu nden sein sollte, ist das

5.19 Programme zum Betrachten von Text (Pager)

151

Programm more (S. 835). Unter Debian GNU/Linux steht zustzlich das Programm less (S. 816) aus dem gleichnamigen Paket zur Verfgung, das mehr Funktionen kennt und bequemer zu benutzen ist als more. Programme zum Betrachten von Text sind Bestandteil des Alternativen-Systems von Debian. Sie knnen mehrere solche Programme gleichzeitig installieren. Welches Programm dann nach Eingabe des Kommandos pager aufgerufen wird, wird durch einen symbolischen Link im Verzeichnis /etc/alternatives festgelegt (siehe auch S. 267). Die Textbetrachter knnen natrlich auch direkt ber ihren eigentlichen Namen, also z. B. more oder less aufgerufen werden. Eine Reihe von Programmen, die einen Textbetrachter verwenden, um Text anzuzeigen, werten den Inhalt der Umgebungsvariable PAGER (siehe auch S. 540) aus, um zu entscheiden, welches Programm aufgerufen werden soll. Das bekannteste Beispiel hierfr ist das Programm man. Prinzipiell knnen Textbetrachter in zwei verschiedenen Modi arbeiten, indem sie den Text aus einer Datei anzeigen oder indem sie den Text aus einem Datenstrom (siehe Abschnitt 16.3.4) lesen und anzeigen. Um beispielsweise die Datei readme.txt im aktuellen Arbeitsverzeichnis mit less anzuzeigen, kann alternativ eines der beiden Kommandos benutzt werden: joe@debian:~$ less readme.txt joe@debian:~$ cat readme.txt | less 5.19.1 Benutzung von more Die Programme more und less werden beide mit der Tastatur benutzt, es ist also wichtig, einige Tastaturkommandos fr diese Programme zu kennen. Bei more sind die wichtigsten Kommandos: oder ? Ein Hilfebildschirm mit den Tastaturkommandos wird angezeigt. Drcken Sie die Leertaste, um ihn wieder zu verlassen. L EER Es wird die nchste Seite des Textes angezeigt. E INGABE Es wird eine weitere Zeile angezeigt. Q oder S HIFT- Q Das Programm wird sofort verlassen. S TRG - L Der Bildschirm wird neu gezeichnet.
H

Darberhinaus bietet more weitere Kommandos und Funktionen wie das Zurckblttern, die zum Teil jedoch nur dann funktionieren, wenn mit dem Programm eine Datei angezeigt wird und nicht, wenn more aus einem Datenstrom liest, wie es beispielsweise bei der Verwendung des Programms mit man (siehe S. 156) der Fall ist. 5.19.2 Benutzung von less Diese und andere Schwchen von more beseitigt das Programm less, mit dem Sie auch in Text aus einem Datenstrom vor- und zurckblttern knnen. Die wichtigsten Kommandos, die fr die Arbeit mit less bentigt werden, werden in der folgenden

152

5 Einfhrung fr Linux/UNIX-Anfnger

bersicht aufgefhrt. Vielen Kommandos kann dabei optional eine Zahl vorangestellt werden. Dazu ist zunchst die Zahl einzugeben (also beispielsweise die 5 zu drcken) und dann die Taste fr das Kommando zu bettigen. Die komplette Liste aller von less verstandenen Kommandos nden Sie in der Manualseite zu dem Programm sowie in der Onlinehilfe. Hier die wichtigsten Kommandos: oder S HIFT- H Die Onlinehilfe mit einer bersicht ber die verfgbaren Kommandos wird angezeigt. Um den Bildschirm zu verlassen, ist die Taste Q zu drcken. L EER, F oder S EITE - RUNTER Der Text wird um eine voreingestellte Menge Text vorwrts geblttert. In der Regel ist das die Menge Text, die auf einen Bildschirm passt. Wenn Sie eine Zahl eingeben, bevor Sie eine der beiden Tasten bettigen, wird um die entsprechende Anzahl Zeilen vorwrts geblttert. Z Wie L EER oder F , mit dem Unterschied, dass die optional vorangestellte Zahl zur neuen Voreinstellung wird. B, E SC - V oder S EITE - RAUF Es wird um die voreingestellte Menge Text rckwrts geblttert. Diese ist, wie bei L EER, voreingestellt auf die Menge Text, die auf einen Bildschirm passt. W Wie B, mit dem Unterschied, dass die optional vorangestellte Zahl zur neuen Voreinstellung wird. E INGABE, E oder P FEIL RUNTER Wenn Sie diesem Kommando keine Zahl voranstellen, wird um eine Zeile vorgeblttert, ansonsten um die Anzahl von Zeilen, die Sie angegeben haben. Y , K oder P FEIL R AUF Es wird um eine Zeile oder die spezizierte Anzahl von Zeilen rckwrts geblttert (wie E INGABE, nur in die andere Richtung). D Standardmig wird um die Hlfte der Zeilen, die auf einen Bildschirm passen, vorwrtsgeblttert. Alternativ um die Menge der Zeilen, die angegeben wurden. U Wie D , aber rckwrts. E SC -( oder P FEIL R ECHTS Der Text wird um die spezizierte Anzahl Spalten nach rechts verschoben. Wird keine Anzahl angegeben, sind dies acht Spalten. E SC -) oder P FEIL L INKS Der Text wird um die spezizierte Anzahl Spalten nach links verschoben. Der voreingestellte Wert ist wieder acht. R oder S TRG - L Der Bildschirm wird neu gezeichnet. P Es wird zu der Stelle des Textes gesprungen, die der spezizierten Menge des Textes in Prozent entspricht. Wenn Sie also 50 und dann P eingeben, gelangen Sie in die Mitte des Textes. / (Suchen) Nach der Bettigung dieser Taste ist eine Zeichenfolge einzugeben und dann E INGABE zu drcken. less sucht daraufhin nach der eingegebenen Zeichenfolge und springt an die erste Stelle des Textes, an dem die Zeichenfolge gefunden wurde. Wenn Sie dem Kommando eine Zahl vorangestellt haben, wird an die der Zahl entsprechende Stelle des Auftretens gesprungen. Wenn Sie beispielsweise 3, /, Schuhcreme und E INGABE eingegeben haben, wird an die Position des Textes gesprungen, an der das Wort Schuhcreme zum dritten Mal von der aktuellen Position gesehen vorkommt. Der Suchbegriff wird als regulrer Ausdruck interpretiert (siehe S. 895).
H

5.19 Programme zum Betrachten von Text (Pager)

153

Wenn Sie mehrmals nach der gleichen Zeichenfolge suchen, brauchen Sie den Suchbefehl nicht zu wiederholen, sondern knnen einfach N eingeben, womit zur nchsten Position, an der die entsprechende Zeichenfolge gefunden wurde, gesprungen wird. Geben Sie S HIFT- N ein, um rckwrts zur vorherigen Textstelle zu springen, an der die Zeichenfolge gefunden wurde. ? Wie /, nur dass rckwrts gesucht wird. Q oder S HIFT- Q Beendet das Programm less. V Es wird der voreingestellte Editor mit der Datei geffnet. Das Kommando funktioniert nicht, wenn Sie nicht eine Datei, sondern einen Datenstrom mit less ansehen. S Der Text wird in einer Datei gespeichert. Das Kommando funktioniert nur, wenn Sie einen Datenstrom betrachten. Die wichtigsten Kommandozeilenoptionen von less nden Sie auf Seite 816. Manchmal ist es notwendig, less mitzuteilen, welchen Zeichensatz das Programm benutzen soll. Hierzu dient die Umgebungsvariable (siehe Seite 540) LESSCHARSET. Mgliche Werte fr diese Variable sind u. a.: ascii Es werden nur die Zeichen des ASCII-Zeichensatzes angezeigt. Die deutschen Umlaute gehren nicht dazu. iso8859 Dieser Zeichensatz entspricht weitgehend dem ASCII-Zeichensatz, er enthlt jedoch zustzlich die Sonderzeichen westeuropischer Sprachen, wie z. B. Hollndisch, Franzsisch oder Deutsch. Dieser Wert ist die Standardeinstellung, wenn die Variable LESSCHARSET nicht gesetzt ist. dos MS-DOS Zeichensatz. koi-8r Zeichensatz fr die russische Sprache. Um den Inhalt von russischen Textdateien anzuzeigen, welche mit dem Zeichensatz koi-8r kodiert sind, ist folgendes Kommando einzugeben, bevor less aufgerufen wird: joe@debian:~$ export LESSCHARSET=koi-8r 5.19.3 Betrachten komprimierter Dateien mit zless Fast alle Textdateien in den Dokumentationsverzeichnissen unterhalb von /usr/share/doc liegen in mit dem Programm gzip (S. 807) komprimierter Form vor. Um diese Dateien mit less zu betrachten, sind sie zunchst zu dekomprimieren. Einfacher geht es mit dem Kommando zless. Das Kommando dekomprimiert die anzuzeigende Datei automatisch: joe@debian:~$ zless /usr/share/doc/bash/FAQ.gz Neben zless steht auch das Kommando zmore zur Verfgung, welcher den Inhalt komprimierter Dateien oder eines komprimierten Datenstroms mit dem Programm more anzeigt.

154

5 Einfhrung fr Linux/UNIX-Anfnger

5.19.4 Anzeigen spezieller Daten mit lessle und lesspipe Die beiden Programme lessle und lesspipe erlauben es, auch Dateien mit less zu betrachten, bei denen es sich nicht um Textdateien handelt. Die Programme knnen von less aufgerufen werden, bevor eine Datei angezeigt wird, und die Datei so konvertieren, dass ihr Inhalt wie gewhnlicher Text angezeigt wird. Die Programme unterscheiden sich dadurch, dass lesspipe die konvertierten Daten direkt auf die Standardausgabe gibt, die mit der Standardeingabe von less verbunden ist, whrend lessle zunchst die gesamte anzuzeigende Datei konvertiert, das Ergebnis in eine temporre Datei schreibt und den Inhalt dieser Datei nach Abschluss der Konvertierung mit less anzeigt. Die Datei wird dann bei Beendigung von less gelscht. Bei der Verwendung von lessle muss also gelegentlich lnger gewartet werden, bis Daten angezeigt werden, whrend lesspipe sofort Daten zur Verfgung stellt, die aber u. U. zu Beginn noch nicht komplett durchsucht werden knnen, weil sie noch nicht konvertiert wurden. Beide Programme entscheiden anhand der Endung des Namens einer Datei, wie die betreffenden Daten zu konvertieren sind. Daraus ergibt sich, dass dieses Verfahren nur dann funktioniert, wenn der Inhalt einer Datei angezeigt wird und nicht, wenn von der Standardeingabe gelesen wird. Im zweiten Fall steht nmlich kein Dateiname zur Verfgung. Das Programm less erfhrt durch die beiden Umgebungsvariablen LESSOPEN und LESSCLOSE davon, welche Programme vor und nach dem Anzeigen einer Datei aufgerufen werden sollen. Die beiden Variablen knnen komfortabel mit den Programmen lessle bzw. lesspipe gesetzt werden. Wenn Sie lessle benutzen wollen, geben Sie folgendes Kommando ein: joe@debian:~$ eval $(lessfile) Wenn Sie lesspipe benutzen wollen, ist dieses Kommando zu verwenden: joe@debian:~$ eval $(lesspipe) Um diese Einstellung dauerhaft zu verwenden, ist das entsprechende Kommando in der Startdatei der Standardshell anzugeben (siehe Seite 509). Danach kann less den Inhalt sowie die Beschreibung von Debian-Paketen oder von komprimierten Dateien anzeigen. Um beispielsweise den Inhalt des Debian-Archives lprng_3.6.12-5.deb anzuzeigen, ist folgendes Kommando einzugeben: joe@debian:~$ less lprng_3.6.12-5.deb

6 Dokumentation und Hilfe

Neben dem Betriebssystem und den Anwendungen stellt Debian GNU/Linux eine umfangreiche Dokumentation zur Verfgung. Ein Teil der Dokumente ist in den einzelnen Programmpaketen enthalten. Hierzu gehren vor allem Kurzbeschreibungen zur Benutzung der in den Paketen enthaltenen Programme. In anderen Paketen bendet sich ausschlielich Dokumentation. Diese reicht von ausfhrlichen Beschreibungen bestimmter Pakete bis hin zu kompletten Bchern zum Ausdrucken oder zum Lesen am Bildschirm. Darber hinaus liegt im Internet mehr Information zu UNIX, Linux, GNU und Debian, als ein Benutzer zu lesen vermag. Hier spielen nicht nur das World-Wide-Web (Web, WWW), sondern auch andere Internetdienste wie Netnews oder Mailing-Listen eine bedeutende Rolle. Die Dokumentation freier Software sttzt sich auf unterschiedliche Sulen. Zu den meisten Linux/UNIX-Programmen gibt es eine Handbuch- oder Manualseite, die eine kurze Beschreibung des Einsatzzweckes sowie eine Erluterung der Optionen und Argumente enthlt. Auf manchen Manualseiten benden sich auch ausfhrlichere Beschreibungen eines Programms, einer Funktion oder einer Kongurationsdatei. Neben dem Manualsystem sind viele GNU-Programme mit dem GNU-InfoSystem dokumentiert. Diese Dokumentation kann am Bildschirm mit speziellen Programmen gelesen werden; sie lsst sich jedoch auch so aufbereiten, dass aus ihr ansprechend gestaltete Handbcher gedruckt werden knnen. Zu vielen Paketen stehen zustzliche Dokumente zur Verfgung. Dazu gehren etwa Kurzanleitungen zur Benutzung des Pakets, Notizen des oder der Programmierer der Software oder Anleitungen und Hinweise, die von anderen Personen erstellt wurden. Diese Dokumente benden sich nach der Installation eines Pakets unterhalb des Verzeichnisses /usr/share/doc in einem Unterverzeichnis, das den gleichen Namen trgt wie das Paket selbst (bei Paketen, die noch nicht an den File Hierarchy Standard angepasst worden sind, nden Sie die Dokumente unterhalb von /usr/doc). Dort liegen oft auch Hinweise des Debian-Entwicklers, der die betreffende Software an das Debian-System angepasst hat. Schlielich sollten Sie sich bei der Arbeit mit dem System immer darber im klaren sein, dass Sie mit freier Software arbeiten, was bedeutet, dass der Quellcode zu allen Programmen vorhanden ist. Wie Sie den Quellcode zu einem Paket installieren

156

6 Dokumentation und Hilfe

knnen, ist ab Seite 252 beschrieben. Oft nden sich in den Dateien des Quellcodes Kommentare und Hinweise, mit denen sich Fragen beantworten lassen und die auch verstanden werden knnen, ohne dass tiefere Programmierkenntnisse erforderlich sind.

6.1 Hilfe-Optionen
Viele Linux/UNIX-Werkzeuge geben eine minimale Hilfe auf den Bildschirm aus, wenn man sie mit einer der Optionen -?, -h oder --help oder in syntaktisch fehlerhafter Weise aufruft. Probieren Sie folgende Kommandos aus: joe@debian:~$ sh -? joe@debian:~$ ls --help joe@debian:~$ cp Das Verhalten der Programme ist nicht standardisiert und liegt im Belieben des Programmautors.

6.2 Das Manual-System


Die im Rechner gespeicherten Seiten des Online-Manuals (Manual Pages, kurz ManPages genannt) stellen das klassische Hilfesystem auf Linux/UNIX-Systemen dar. Zu jedem Programm, jeder Funktion und jeder Kongurationsdatei gibt es einen einheitlich gegliederten, speziell formatierten Text, der sich auf einem Drucker ausgeben oder am Bildschirm anzeigen lsst. Um eine Manualseite anzuzeigen, ist folgendes Kommando einzugeben: man Programmname Hierbei ist Programmname durch den Namen des Programms, zu dem Informationen bentigt werden, zu ersetzen. Das Programm man ist in dem Paket man-db enthalten, welches installiert sein muss, um das Manual-System zu benutzen. Will man beispielsweise Informationen zu dem Kommando pwd erhalten, so gibt man dieses Kommando ein: joe@debian:~$ man pwd Das Kommando man sucht nach der entsprechenden Seite in vorgegebenen Verzeichnissen, formatiert diese und zeigt sie am Bildschirm an. Hierzu verwendet es ein Hilfsprogramm, einen Pager. Standardmig ist dies das Programm more. Es empehlt sich jedoch, das Paket less zu installieren, in dem ein komfortabel zu benutzender Pager enthalten ist, welcher nach der Installation des Pakets automatisch als Standard benutzt wird. In less knnen Sie sich mit den Pfeiltasten sowie mit den Tasten S EITE - RAUF und S EITE - RUNTER im Text bewegen und nach Bettigung der

6.2 Das Manual-System

157

Taste / nach Text suchen. Das Programm wird durch Bettigung der Taste Q verlassen (siehe auch Seite 151). Schauen Sie sich die Manualseiten zu den Programmen ls und man an. Drucken Sie auf keinen Fall das ganze Manual aus; die meisten Seiten braucht man nie. 6.2.1 Die Abschnitte des Manualsystems Das Manual ist in Abschnitte oder Sektionen eingeteilt. Jeder Abschnitt reprsentiert dabei einen bestimmten Bereich der Dokumentation. Die Abschnitte sind durchnummeriert und decken folgende Themen ab: 1. Programme, die zur Benutzung durch normale Anwender bestimmt sind, wie ls oder cp. 2. Systemaufrufe, die Schnittstellen des Linux-Kerns, fr Programmierer. 3. Funktionen aus Bibliotheken, fr Programmierer. 4. Gertedateien aus dem Verzeichnis /dev. 5. Dateiformate, viele der Kongurationsdateien aus dem Verzeichnis /etc. 6. Spiele. 7. Sonstige Themen, z. B. Macro-Pakete, Konventionen. 8. Programme und Dateien zur Systemverwaltung. 9. Kernroutinen, Glossar (nicht standardisiert). Die Einteilung hat sich im Lauf der Jahrzehnte etwas gendert und variiert auch zwischen verschiedenen UNIX-Derivaten leicht. Die Manualseiten selbst sind in den Paketen enthalten, in denen sich auch die zugehrigen Programme benden. Eine groe Anzahl allgemeiner Manualseiten, im wesentlichen aus den Abschnitten 3, 5 und 7, bendet sich jedoch im Paket manpages. Die Manualseiten liegen nach ihrer Installation unterhalb des Verzeichnisses /usr/share/man sowie unterhalb /usr/X11R6/man, wenn es sich um Dokumentation zum X Window System (X11) oder zu Programmen fr X11 handelt. Manualseiten fr lokale Programme werden unterhalb von /usr/local/man abgelegt1. In diesen Verzeichnissen benden sich Unterverzeichnisse, die den einzelnen Abschnitten des Manualsystems entsprechen, sowie weitere Unterverzeichnisse fr nicht-englische Sprachen. Im allgemeinen braucht man sich nicht dafr zu interessieren, in welchem Abschnitt sich eine bestimmte Manualseite bendet. In einigen Fllen gibt es jedoch in verschiedenen Abschnitten Manualseiten mit dem gleichen Namen. Ein Beispiel hierfr ist passwd. Mit dem Kommando passwd (S. 843) knnen Benutzer ihre Passwrter auf dem System ndern. Die Manualseite zu diesem Kommando bendet sich im Abschnitt 1. Ferner gibt es die Datei /etc/passwd, in der die Daten zu den Benutzerkonten des Systems gespeichert werden. Zum Aufbau dieser Datei gibt es ebenfalls eine Manualseite, die sich in der Sektion 5 bendet. Standardmig werden die Sektionen der Reihenfolge nach durchsucht, die erste passende Seite wird angezeigt. Gibt man das Kommando man passwd ein, wird die Dokumentation zu
1

ltere Pakete legen Manualseiten darber hinaus unterhalb von /usr/man ab.

158

6 Dokumentation und Hilfe

dem Programm passwd angezeigt. Um eine Seite aus einem anderen Abschnitt anzuzeigen, muss dem Programm man die Bezeichnung des entsprechenden Abschnittes mitgeteilt werden. Um die Dokumentation zur Datei /etc/passwd anzuzeigen, ist einzugeben: joe@debian:~$ man 5 passwd Es ist auch mglich, alle Manualseiten, die denselben Namen tragen, hintereinander anzuzeigen. Zu diesem Zweck ist das Programm mit der Option -a aufzurufen. Folgendes Kommando zeigt die beiden passwd-Manualseiten hintereinander an: joe@debian:~$ man -a passwd Oft ndet man in Dokumentationstexten Hinweise auf Programme oder Manualseiten in der Form ls(1) oder fopen(3). Damit wird ausgedrckt, dass das Programm ls gemeint ist, das im Abschnitt 1 des Manualsystems dokumentiert ist, bzw. die Standardfunktion fopen aus dem Abschnitt 3. 6.2.2 Aufbau einer Manualseite Alle Manualseiten sind einheitlich aufgebaut, was das Lesen erleichtert. Einzelne Abstze knnen fehlen oder weiter aufgegliedert sein. Die Abstze sind: Name (Name des Kommandos, Zweck) Synopsis, Syntax (Gebrauch) Remarks (Anmerkungen) Description (Beschreibung des Kommandos) Return Value (Rckgabewert nach Programmende) Examples (Beispiele) Hardware Dependencies (hardwareabhngige Eigenheiten) Author (Urheber des Kommandos) Environment (Umgebungsvariable) Files (vom Kommando betroffene Dateien) See Also (hnliche oder verwandte Kommandos) Diagnostics (Fehlermeldungen) Bugs (Mngel, soweit bekannt) Caveats, Warnings (Warnungen) International Support (Untersttzung europischer Absonderlichkeiten) Am Fu jeder Manualseite steht das Datum ihrer Verffentlichung. 6.2.3 Manualseiten in unterschiedlichen Sprachen Viele Manualseiten wurden in weitere Sprachen bersetzt. Diese bersetzten Manualseiten sind in gesonderten Paketen enthalten. Die Namen dieser Pakete bestehen aus der Zeichenkette manpages- sowie dem betreffenden Landes- oder Sprachkrzel. Die deutschsprachigen Manualseiten sind in dem Paket manpages-de zu nden.

6.2 Das Manual-System

159

Auf dem System knnen gleichzeitig Manualseiten in verschiedenen Sprachen installiert sein. Welche Sprache benutzt wird, lsst sich durch die Umgebungsvariablen (siehe S. 540) LC_MESSAGES oder LANG festlegen. Wenn einem Benutzer standardmig die deutschen Seiten angezeigt werden sollen, so setzt man die Umgebungsvariable LANG fr diesen Benutzer auf den Wert de_DE: joe@debian:~$ export LANG=de_DE Um die Einstellung dauerhaft wirksam zu machen, ist das Kommando in die Startdateien der Standard-Shell zu schreiben (siehe Seite 509). Die Beschreibung der Kommandos wird dann in deutscher Sprache angezeigt. Achtung: Aufgrund eines Problems mit den Paketen manpages-de (Version 0.22) und man-db (Version 2.3.14) ist der voreingestellte Suchpfad fr Manualseiten zu berschreiben, um die deutschen Manualseiten benutzen zu knnen. Dies kann durch die Umgebungsvariable MANPATH geschehen. Geben Sie dazu folgendes Kommando ein oder schreiben Sie das Kommando in die Startdatei Ihrer Standardshell: joe@debian:~$ export MANPATH=/usr/man:$(manpath) Mehr Informationen zur Benutzung von man nden Sie auf Seite 826 sowie in der Manualseite zu dem Programm. Diese Manualseite wird standardmig auch in deutscher Sprache installiert. 6.2.4 Drucken von Manualseiten Manualseiten liegen auf dem System im nroff -Format vor. Das Format lsst sich in eine Reihe anderer Formate umwandeln. Zu diesen gehren PostScript und DVI (Device Independent, Ausgabeformat des Textsatzsystems TEX). Standardmig werden die Manualseiten in ein Format umgewandelt, das zur Darstellung am Bildschirm geeignet ist. Zur Anforderung eines anderen Formats ist die Option -T zu verwenden. Dieser Option ist ohne Leerzeichen der Name der gewnschten Ausgabeformats nachzustellen. Dabei steht ps fr PostScript und dvi fr DVI. Mit X75 und X100 lassen sich die Seiten auch in einem Fenster unter X11 anzeigen. Um aus der Dokumentation zum Kommando ls ein PostScript-Dokument zu erzeugen, wird folgendes Kommando eingegeben: joe@debian:~$ man -Tps ls > ls.ps Das Ergebnis wird in die Datei ls.ps geschrieben. Diese Datei lsst sich mit diesem Kommando ausdrucken: joe@debian:~$ lpr ls.ps Einfacher geht es, wenn die Ausgabe von man direkt an das Programm lpr bergeben wird: joe@debian:~$ man -Tps ls | lpr

160

6 Dokumentation und Hilfe

Um die Manual-Seite zu dem DVI-Betrachter xdvi aus dem Paket tetex-bin in das DVI-Format zu bringen, wird dieses Kommando benutzt: joe@debian:~$ man -Tdvi xdvi > xdvi.dvi Das Ergebnis die Datei xdvi.dvi wird unter X11 mit dem Programm xdvi betrachtet: joe@debian:~$ xdvi xdvi.dvi 6.2.5 Suchen in Manualseiten Auf jeder Manualseite benden sich am Anfang der Name sowie eine Kurzbeschreibung des zugehrigen Kommandos bzw. der zugehrigen Datei oder Funktion. Mit dem Kommando apropos ist es mglich, die Kurzbeschreibungen zu durchsuchen. So liefert folgendes Kommando die Namen und Kurzbeschreibungen aller Manualseiten, in deren Kurzbeschreibungen das Wort directory (Verzeichnis) vorkommt: joe@debian:~$ apropos directory Weitere Informationen zu apropos nden Sie auf Seite 772 sowie in der Manualseite zu dem Programm. Das Kommando man -k ist gleichbedeutend mit apropos. Das Gegenstck zu dem Kommando apropos ist das Kommando whatis. Dem Kommando wird der Name eines Kommandos, einer Funktion oder einer Datei bergeben, fr den eine Manualseite existiert. Er liefert die Kurzbeschreibung: joe@debian:~$ whatis ls Dieses Kommando gibt folgende Meldung aus: ls (1) - list directory contents Das Kommando man -f ist gleichbedeutend mit whatis. 6.2.6 Weitere Programme zur Arbeit mit Manualseiten Neben dem Programm man stehen eine Reihe anderer Programme zur Verfgung, mit denen Manualseiten angezeigt werden. Der Klassiker unter diesen Programmen ist das Programm xman fr X11. Das Programm wird ber das Debian-Men oder folgendes Kommando gestartet: debian:~# xman & Es erscheint ein kleines Fenster, in welchem die Schaltche Manual Page angeklickt werden muss, um ein Fenster anzuzeigen, in dem dann mit den Manualseiten gearbeitet werden kann. In diesem Fenster kann im Men Sections einer der Bereiche des Manualsystems ausgewhlt werden, woraufhin die Liste der in dem betreffenden Bereich zur Verfgung stehenden Seiten angezeigt wird. Sobald der Name einer Manualseite mit der linken Maustaste angeklickt wird, wird die zugehrige Seite angezeigt. Wichtige Tastaturbefehle bei der Arbeit mit xman sind F (vorwrtsblttern) und B (rckwrtsblttern) sowie S TRG - D, wodurch zur Liste der verfgbaren Seiten zurckgesprungen wird, und S TRG - S, womit ein Dialog zum Durchsuchen der Seite angezeigt wird.

6.2 Das Manual-System

161

Abbildung 6.1. Manualbrowser fr X11: xman

Manualseiten in GNOME und KDE Wenn Sie mit den Arbeitsplatzumgebungen KDE oder GNOME arbeiten, mchten Sie vielleicht die Hilfeprogramme dieser Umgebungen verwenden, um mit Manualseiten zu arbeiten. Das Hilfeprogramm der Arbeitsplatzumgebung GNOME heit gnome-help-browser und ist im Paket gnome-help enthalten. Das KDEHilfeprogramm bendet sich im KDE-Paket kdebase und heit kdehelp. Beide Programme knnen sowohl Manual-Seiten, Info-Dateien (siehe nchstes Kapitel) als auch die im HTML-Format gehaltenen Hilfeseiten der jeweiligen Arbeitsplatzumgebung anzeigen Die beiden Programm lassen sich hnlich wie ein Web-Browser benutzen. In der Eingabezeile unterhalb der Werkzeugleiste kann ein URI (Uniform Resource Identier, siehe S. 238) eingegeben werden, wobei als Protokolltyp man angegeben werden muss, um eine Manualseite anzuzeigen. Hinter dem Doppelpunkt wird der Name der gewnschten Seite angegeben und dahinter in Klammern die Abteilung, falls notwendig. Der URI fr die Manualseite passwd aus der Sektion 5 (Dateiformate) sieht folgendermaen aus: man:passwd(5) Alternativ zur manuellen Eingabe eines URI kann man sich mit der Maus zur gewnschten Seite durchklicken.

162

6 Dokumentation und Hilfe

Abbildung 6.2. Anzeigen von Manualseiten im GNOME-Hilfeprogramm gnome-helpbrowser

Manualseiten in Emacs und Xemacs Nach Eingabe des Kommandos manual-entry in einem der beiden Editoren (etwa durch die Tastenfolge A LT- Xmanual-entry) wird man zur Eingabe des Namens der anzuzeigenden Manualseite aufgefordert. Die Seite wird dann sofern vorhanden im Editor angezeigt. Das ist recht bequem, wenn man ohnehin mit einer der beiden Emacs-Varianten arbeitet.

6.3 Das GNU Info-System


Ein Nachteil des Manualsystems besteht darin, dass es keine vernnftige Methode gibt, in Manualseiten mit Verweisen zu arbeiten, so wie es bei HTML-Dokumenten mglich ist. Dies ist einer der Grnde, warum bei der Free Software Foundation das GNU-Info-System (kurz: Info) entwickelt wurde. Das Info-System wird von vielen GNU-Programmen wie dem C-Compiler gcc als primres System zur Dokumentation benutzt. Zum Arbeiten mit Info an der Konsole oder in einem Terminalfenster ist das Programm info aus dem gleichnamigen Paket bestimmt. Wenn dieses Programm ohne

6.3 Das GNU Info-System

163

Argument aufgerufen wird, zeigt es das Inhaltsverzeichnis aller auf dem System installierten Info-Dateien an. Alternativ ist es mglich, den Namen eines Eintrags im Inhaltsverzeichnis als Argument in der Kommandozeile anzugeben. Das Programm zeigt dann den entsprechenden Eintrag an. Um die Dokumentation zum Werkzeug make anzuzeigen, ist folgendes Kommando einzugeben: joe@debian:~$ info make Wenn info den angeforderten Eintrag nicht nden kann, untersucht es, ob eine Manualseite mit dem Namen des gewnschten Eintrags existiert und zeigt diese an. 6.3.1 Benutzung von info Sie knnen sich in dem von info angezeigten Text mit den Pfeiltasten sowie mit den Tasten S EITE - RAUF und S EITE - RUNTER bewegen. Querverweise sind mit einem Stern gekennzeichnet. Um einen Querverweis zu benutzen, ist der Cursor auf den entsprechenden Verweis zu bewegen und dann die Taste E INGABE zu bettigen. Wenn Sie das Programm verlassen wollen, benutzen Sie die Taste Q. Im folgenden nden Sie eine bersicht der wichtigsten Tastaturkommandos innerhalb von info: L EER S EITE - RUNTER Eine Seite nach unten. Z URCK S EITE - RAUF Eine Seite nach oben. P FEIL RUNTER Eine Zeile nach unten. P FEIL R AUF Eine Zeile nach oben. TAB Zum jeweils nchsten Querverweis innerhalb der angezeigten Seite springen. E INGABE Den Querverweis ffnen, auf dem sich der Cursor bendet. B, E An den Anfang bzw. das Ende der angezeigten Seite springen. N Zur nchsten Einheit der gleichen Hierarchieebene springen. P Zur vorherigen Einheit der gleichen Hierarchieebene springen. U Eine Hierarchieebene nach oben springen. L Zurck zum zuletzt angezeigten Text springen. S Innerhalb des angezeigten Themas suchen. Q Das Programm verlassen. ? Die Kommandobersicht anzeigen. H Die ausfhrliche Hilfe (Tutorium) zu dem Programm starten. Zu Info selbst existiert eine ausfhrliche Dokumentation im info-Format, die durch Eingabe des folgenden Kommandos angezeigt wird: joe@debian:~$ info info Weitere Hinweise zum Aufruf des Programms nden Sie auf Seite 810 6.3.2 Drucken und Konvertieren von Info-Dokumentation Die Info-Dokumentation wird im Texinfo-Format erstellt. Texinfo-Dateien lassen sich in verschiedene andere Formate bersetzen, wozu die folgenden Programme dienen:

164

6 Dokumentation und Hilfe

texi2dvi Das Programm aus dem Paket texinfo erzeugt aus Texinfo-Dateien Dateien im TEX-Ausgabeformat DVI (Device Independent). Dokumente im DVI-Format lassen sich beispielsweise mit dem Programm xdvi am Bildschirm unter X11 betrachten oder mit dem Programm dvips in PostScriptdateien umwandeln, welche unter anderem mit dem Programm gv am Bildschirm betrachtet werden knnen. Abhngig davon, welches Druckltersystem installiert ist, lassen sich DVI- und PostScript-Dateien auch direkt ausdrucken. Auf diese Weise ist es mglich, aus Texinfo-Dokumenten ansprechend gesetzte Handbcher zu erzeugen. texi2pdf Dieses Programm erzeugt aus Info-Dateien Dokumente im PDF-Format. Es ist im Paket tetex-bin enthalten. PDF-Dateien lassen sich mit Programmen wie dem Acrobat Reader (acroread) anzeigen und ausdrucken. texi2html Dieses Programm aus dem Paket tetex-bin erzeugt wie der Name erraten lsst aus Texinfo-Dokumenten Dateien im HTML-Format. Diese Dateien eignen sich fr die Betrachtung mit einem Webbrowser oder die Verffentlichung ber einen Webserver. makeinfo Mit diesem Programm werden aus Texinfo-Quellen Info-Dateien erstellt, die mit dem Programm info betrachtet werden knnen. Das Programm ist im Paket texinfo enthalten. Die Texinfo-Quelldateien sind in den (Binr-)Debian-Paketen nicht enthalten, um Platz zu sparen. Normalerweise werden lediglich die Info-Dateien installiert, damit die Dokumentation mit info und anderen Programmen betrachtet werden kann, sowie oft zustzlich die in das HTML-Format konvertierte Dokumentation. Diese bendet sich in der Regel in einem Unterverzeichnis mit dem Namen html im Dokumentationsverzeichnis des entsprechenden Pakets unter /usr/share/doc. Wenn Sie aus einem Info-Dokument eine PostScript-Datei erzeugen mchten, ist es erforderlich, den Quellcode zu dem Paket zu installieren, in welchem die entsprechenden Dokumente enthalten sind. Dies kann mit dem Programm apt-get geschehen (siehe Kapitel 8.4.2, S. 252). Suchen Sie nach der Installation des Quellcodes eine Datei mit der Namensendung .texi, um den TexInfo-Quellcode zu nden. Dieser wird dann mit den oben genannten Programmen konvertiert. Beispiel: Um die Dokumentation zu dem Programm wget aus dem Paket wget in das PostScript-Format zu konvertieren und auszudrucken, sind folgende Schritte durchzufhren: Zunchst ist der Quellcode des Pakets zu installieren: joe@debian:~$ apt-get source wget Danach ist in das durch das Kommando erzeugte Verzeichnis mit dem Quellcode zu wechseln (Der tatschliche Verzeichnisname hngt ab von der aktuellen Version des Pakets.) und dort die Texinfo-Dokumentation zu suchen: joe@debian:~$ cd wget-1.8.1 joe@debian:~$ find ./ -name "*.texi" Im Beispiel erfolgt die Ausgabe: ./doc/wget.texi

6.3 Das GNU Info-System

165

Die Datei doc/wget.texi kann nun in das DVI-Format gebracht werden: joe@debian:~$ texi2dvi doc/wget.texi und daraufhin nach PostScript konvertiert werden. joe@debian:~$ dvips wget.dvi -o Die Option -o bewirkt, dass die Ausgabe von dvips in eine Datei geschrieben und nicht ber das Programm lpr ausgedruckt wird. Es entsteht dann eine PostScriptDatei mit dem Namen wget.ps. Diese Datei wird mit dem Programm gv aus dem gleichnamigen Paket betrachtet: joe@debian:~$ gv wget.ps

Abbildung 6.3. Anzeigen von Info-Dokumentation im PostScript-Format mit gv.

Die PostScript-Datei sollte sich problemlos ausdrucken lassen, indem dieses Kommando eingegeben wird (siehe auch S. 287): joe@debian:~$ lpr wget.ps 6.3.3 Info und (X)Emacs Eine der bequemstem Methoden, mit Info-Dokumentation zu arbeiten, besteht in der Verwendung einer der Editoren Emacs oder Xemacs. Wenn Sie einen dieser Editoren unter X11 benutzen, starten Sie den Info-Modus aus dem Help-Men heraus.

166

6 Dokumentation und Hilfe

Alternativ kann der Tastaturbefehl S TRG - H-I benutzt werden. Danach wird das Inhaltsverzeichnis des Info-Systems angezeigt, in dem Sie sich mit den Pfeiltasten oder der Maus bewegen. Verweise (Links) werden wie bei dem Programm info mit der Taste E INGABE oder unter X11 mit der mittleren Maustaste geffnet. Sie verlassen den Info Modus mit dem Kommando S TRG - X-K. 6.3.4 Info-Dokumentation in GNOME und KDE Auf die Hilfeprogramme kdehelp und gnome-help-browser der beiden Arbeitsplatzumgebungen KDE und GNOME wurden bereits auf Seite 161 hingewiesen. Beide Programme erlauben es auch, die auf dem System vorhandene Dokumentation im Info-Format anzuzeigen, indem man entweder die entsprechenden Hyperlinks in dem jeweiligen System anklickt oder einen URI eingibt, bei dem als Protokolltyp info genannt wird. Leider unterscheidet sich der weitere Aufbau der Info-URIs beider Programme. In kdehelp ist der Name des gewnschten Info-Dokuments in Klammern hinter dem Doppelpunkt anzugeben, dahinter kann optional der gewnschte Abschnitt speziziert werden. Beispiel: Um aus der Dokumentation zum Editor emacs (Version 20) den Abschnitt keys anzuzeigen, ist bei kdehelp folgender URI zu verwenden: info:(emacs-e20)Keys In gnome-help-browser ist nach dem Doppelpunkt der Name des gewnschten Dokuments ohne Klammern anzugeben. Ein bestimmter Abschnitt kann optional danach hinter einem Doppelkreuz eingegeben werden. Beispiel: Um den Abschnitt Installation aus der Info-Dokumentation zum Programm dvips anzuzeigen, ist bei Verwendung von gnome-help-browser dieser URI einzugeben: info:dvips#Installation Wenn Sie sich unsicher sind, sollten Sie das Hyperlink-System verwenden.

6.4 Zustzliche Dokumentation


6.4.1 Paketspezische Dokumentationsverzeichnisse Zu jedem installierten Paket bendet sich im Verzeichnis /usr/share/doc oder /usr/doc (bei solchen Paketen, die noch nicht an den File-Hierarchy-Standard angepasst worden sind, siehe S. 462) ein Unterverzeichnis mit dem Namen des betreffenden Pakets. In diesen Verzeichnissen liegen unterschiedliche Dokumente zu den betreffenden Paketen. In vielen Fllen handelt es sich dabei um Textdokumente. Viele Dateien unterhalb von /usr/share/doc liegen in komprimierter Form vor, um Platz zu sparen. Sie knnen komprimierte Textdateien mit dem Kommando zless (siehe Seite 153) betrachten, ohne sie vorher eigens dekomprimieren zu mssen. Einige Programme (wie das Programm gv zum Betrachten von PostScript-Dateien) knnen ebenfalls

6.4 Zustzliche Dokumentation

167

direkt mit komprimierten Dateien arbeiten, sodass auch bei diesen Dateitypen das getrennte Dekomprimieren der Dateien nicht notwendig ist. Neben Dokumenten im Text- oder PostScriptformat benden sich in vielen Dokumentationsverzeichnissen Dokumente im DVI-Format oder im HTML-Format. Zu einigen Paketen stehen auch zustzliche Informationen in gesonderten Paketen zur Verfgung. Beispiele hierfr sind die Pakete bash-doc oder samba-doc. Die Dokumentation zu diesen Paketen hat einen solchen Umfang, dass ein groer Teil davon in eigene Pakete verschoben wurde, um Platz einzusparen, falls die Dokumente nicht bentigt werden. In jedem Verzeichnis unterhalb von /usr/share/doc sollte sich eine Datei mit dem Namen copyright benden. Dabei handelt es sich um Textdateien mit Informationen darber, aus welchen Quellen das entsprechende Paket erstellt wurde, wo diese Quellen bezogen werden knnen und unter welchen Copyright-Bestimmungen das Paket steht. Weiter ndet sich in den meisten Dokumentationsverzeichnissen eine Datei mit dem Namen changelog.Debian.gz. In diesen Dateien ist dokumentiert, welche Vernderungen von Debian-Entwicklern an dem Paket vorgenommen wurden. Darber hinaus ist hier hug eine Datei mit dem Namen changelog.gz zu nden. Dort ist dokumentiert, welche Vernderungen die eigentlichen Programmierer des Pakets (die Upstream-Autoren) vorgenommen haben. Falls es sich bei Debian-Entwicklern und Upstream-Autoren um dieselben Personen handelt, ist in dem Verzeichnis nur die Datei changelog.gz zu nden. Zu vielen Paketen gibt es im Dokumentationsverzeichnis eine Datei mit dem Namen README.Debian oder README.Debian.gz. Diese Dateien enthalten Informationen darber, wie ein Paket an die Debian-Distribution angepasst worden ist und welche Besonderheiten zu beachten sind. In den Dokumentationsverzeichnissen zu den einzelnen Paketen benden sich oft Unterverzeichnisse wie examples mit Beispielen zur Konguration oder zur Benutzung des betreffenden Pakets oder wie html mit Dokumenten im HTML-Format zur Betrachtung mit Hilfe eines Webbrowsers. 6.4.2 Anleitungen, Bcher und allgemeine Dokumentation Rund um Debian, GNU und Linux existiert eine Reihe von Projekten zur Dokumentation des Systems sowie zur Arbeit mit Linux und den GNU-Werkzeugen. Dabei sind einige viel beachtete und hochwertige Bcher entstanden, die frei verfgbar sind und in Form von Debian-Paketen installiert oder aus dem Internet heruntergeladen werden. Zustzlich sind die Bcher im Buchhandel erhltlich, denn die Arbeit mit einem Buch ist ab einem gewissen Umfang oft angenehmer als der Umgang mit einer Zettelsammlung oder dem Bildschirm. Elektronische Information ist hingegen leichter aktuell zu halten als gedruckte Werke. Eine andere Klasse von Dokumenten sind die HOWTOs (Wie macht man?). Hierbei handelt es sich um Anleitungen und Erluterungen zu bestimmten Themen rund um Linux. HOWTOs sind unterteilt in normale, groe HOWTOs und Mini-HOWTOs. Mini-HOWTOs sind krzer, behandeln enger gefasste Themen und enthalten oft nur Kochrezepte. Die groen HOWTOs bieten hingegen neben den

168

6 Dokumentation und Hilfe

reinen Handlungsanweisungen auch Hintergrundwissen. HOWTOs und viele Bcher werden vom Linux Documentation Project erstellt und gepegt. Das Projekt ist unter der Internetadresse http://www.tldp.org/ zu erreichen. Dort nden Sie die neuesten Versionen der Bcher und HOWTOs zum Online-Lesen sowie zum Herunterladen. Viele HOWTOs sind in die deutsche Sprache bersetzt worden. Das deutsche Linux HOWTO Projekt ist unter der Internet-Adresse http: //www.linuxhaven.de/dlhp/ zu erreichen. Alle HOWTOs stehen auch in Form von Debian-Paketen zur Verfgung und brauchen nicht gesondert heruntergeladen zu werden. Neben dieser allgemeinen Linux-Dokumentation gibt es eine Anzahl von Debian-spezischen Dokumenten. Diese stehen alle in Form von Debian-Paketen zur Verfgung. Aktuellste Informationen zu Debian nden Sie darber hinaus auf den Internetseiten des Debian-Projekts unter http://www.debian.org/. Das Internet wird durch Requests for Comments (RFC) beschrieben. Das sind fortlaufend nummerierte Textdokumente, die im Netz frei verfgbar sind, unter anderem auf ftp://ftp.ripe.net/. Der RFC 0001 stammt von 1969, Anfang 2004 nherte sich ihre Anzahl den 4000. Wird ein RFC durch eine neuere Version ersetzt, bekommt er anders als die DIN-Normen eine neue Nummer. Viele RFCs sind daher technisch berholt. Andere behandeln spezielle Themen, die nur einen kleinen Kreis von Fachleuten betreffen. Aber es gibt auch RFCs, die sich an ein breites Publikum wenden, vor allem die Texte, die zugleich For Your Information (FYI) sind. Deren Anzahl liegt bei 40. Der FYI 20 trgt den Titel FYI on What is the Internet und stammt von 1993. Interessant sind auch die RFCs, die zugleich Best Current Practice (BCP) heien, und einige RFCs, die an einem 1. April erschienen sind. Im folgenden werden einige wichtige installierbare Dokumente aufgelistet. Pakete mit Dokumentation benden sich in der Unterabteilung doc der Abteilung main der Distribution. doc-linux-text HOWTOs und FAQs (Frequently Asked Questions) des Linux Documentation Projects in Form komprimierter Textdateien. Sie werden unterhalb des Verzeichnisses /usr/share/doc/HOWTO/en-txt installiert und lassen sich mit dem Programm zless lesen. Um den Inhalt des XFree86-HOWTOs zu lesen, ist folgendes Kommando einzugeben: joe@debian:~$ zless /usr/share/doc/HOWTO/en-txt/XFree86-HOWTO.txt.gz doc-linux-de Die deutschen bersetzungen der HOWTOs. Sie sind in dem Paket im HTML-Format enthalten und werden im Verzeichnis /usr/share/doc/HOWTO/de-html abgelegt. In einem Webbrowser ist der URL file:///usr/share/doc/HOWTO/de-html/ zu verwenden, um das Startdokument (Index) dieses Paketes zu ffnen. doc-debian Das Debian-FAQ (Dokument mit Antworten auf viele hug gestellte Fragen bezglich Debian) in den Formaten HTML, PostScript und DVI sowie einige kleinere Dateien zu Debian. Die Dokumente werden im Verzeichnis /usr/share/doc/debian installiert. Um den Index der FAQs zu lesen, benutzen Sie den URL: file:///usr/share/doc/debian/FAQ/.

6.5 Integrierte Hilfesysteme (dhelp und dwww)

169

debian-history HTML-Dateien zur Geschichte des Debian-Projekts im Verzeichnis /usr/share/doc/debian-history/html. debian-guide Die PostScript- sowie die HTML-Version des Buches Debian GNU/Linux: Guide to Installation and Usage von J OHN G OERZEN und O S SAMA OTHMAN . Die Dateien werden im Verzeichnis /usr/doc/debian-guide abgelegt. debian-policy Die verbindlichen Richtlinien fr die Erstellung von Debian-Paketen und den Aufbau der Distribution. Die Dateien werden im Text-, im SGMLsowie im HTML-Format unterhalb des Verzeichnisses /usr/share/doc/debianpolicy installiert. developers-reference Informationen fr Debian-Entwickler und solche, die Debian-Entwickler werden wollen. maint-guide Anleitung zum Erstellen von Debian-Paketen. (mglicherweise nicht installiert). Benutzen Sie den URL http://www.debian.org/doc/ maint-guide/, um die Anleitung mit einem Webbrowser zu lesen. doc-rfc RFCs (Request for Comments), in denen die Protokolle des Internets beschrieben werden. Die RFCs werden als komprimierte Textdateien in das Verzeichnis /usr/doc/doc-rfc installiert. jargon Lexikon der Hacker-Sprache im Info-Format, unterhaltsam. Geben Sie das Kommando jargon ein, um die Datei zu lesen, oder jargon Begriff, um einen Begriff nachzuschlagen. asr-manpages Einige nicht ganz ernst gemeinte Manualseiten zu Kommandos wie bosskill, guru oder luser, aus der Newsgruppe alt.sysadmin.recovery. kernel-doc-2.2.19 Dokumentationsdateien aus dem Quellcode des Linux-Kerns Version 2.2.19. hnliche Pakete stehen auch fr andere Kern-Versionen zur Verfgung. Wenn Sie den Kernquellcode bereits installiert haben oder installieren wollen, bentigen Sie dieses Paket nicht. ldp-nag Das Buch Network Administrator Guide des Linux Documentation Projects. sysadmin-guide Das Buch The Linux System Administrators Guide des Linux Documentation Projects. selfhtml Deutschsprachige Anleitung zur Erstellung von HTML-Dateien (mglicherweise nicht installiert). Benutzen Sie den URL http://ftp.debian. org/debian/pool/non-free/s/selfhtml/, um sie herunterzuladen.

6.5 Integrierte Hilfesysteme (dhelp und dwww)


Es gibt eine Reihe von Programmen und Systemen, mit denen die verschiedenen Formate der Dokumentation integriert und unter einer einheitlichen Oberche verfgbar gemacht werden sollen. In einem gewissen Umfang gehren dazu auch die beiden bereits vorgestellten Programme kdehelp und gnome-help-browser, die in erster Linie zur Darstellung der Hilfe in den Arbeitsplatzumgebungen KDE und GNOME benutzt werden, aber auch zur Arbeit mit Info- und Manual-Dokumentation benutzt werden knnen. Allerdings kann mit beiden Programmen nicht ohne weiteres auf

170

6 Dokumentation und Hilfe

die paketspezische und allgemeine Dokumentation unterhalb des Verzeichnisses /usr/share/doc zugegriffen werden. Den Versuch, smtliche auf dem System verfgbaren Dokumente innerhalb einer Umgebung darzustellen, unternehmen die Pakete dwww und dhelp. Beide Systeme benutzen zur Visualisierung der Dokumentation einen Webbrowser wie Netscape oder lynx. Im Fall von dwww muss darber hinaus zwingend ein Web-Server (httpd) installiert sein. Zu diesem Zweck knnen Sie das Paket apache verwenden, dessen Installation in Abschnitt 17.8.1, S. 709 beschrieben ist. Alternativ knnen Sie auch einen leichteren Server wie boa (Paket boa) benutzen. Das Paket dhelp ist nicht auf die Installation eines Web-Server-Programms angewiesen, allerdings lsst sich dieses System optimal auch nur zusammen mit einem Web-Server benutzen. Durch den Einsatz eines Web-Servers ergibt sich bei beiden Systemen der Vorteil, dass von allen Rechnern im Netz aus mit einem Webbrowser auf die Dokumentation zugegriffen werden kann. Fr die Arbeit mit dhelp wird zustzlich empfohlen, die Pakete info2www, man2html sowie glimpse zu installieren. Diese Pakete ermglichen es, Man- und Info-Dokumente ber einen Web-Server zur Verfgung zu stellen. Das Programm glimpse wird bentigt, um die Suchfunktion von dhelp zu benutzen. Auch wenn Sie sich fr dwww entscheiden, empehlt sich die Installation von info2www. Hier wird auerdem die Installation des Debian-Mensystems aus dem Paket menu empfohlen. Sind Web-Server und Hilfsprogramme installiert und funktionsfhig, kann mit einem Webbrowser auf die Hilfesysteme zugegriffen werden. Bei der Benutzung von dwww ist dazu der URL http://localhost/dwww/ zu verwenden. Die Startseite von dhelp erreichen Sie unter http://localhost/doc/HTML/ Beide Systeme drfen gleichzeitig installiert sein. Abbildung 6.4 zeigt die Startseite des Hilfesystems dhelp. In beiden Systemen besteht zum einen die Mglichkeit, ber ein strukturiertes System von Verweisen (Links) nach bestimmten Themen oder Programmen zu suchen. Auerdem steht jeweils eine Schnittstelle zum Info- und zum Manual-System zur Verfgung, und es ist darber hinaus mglich, direkt auf die Verzeichnisse unterhalb von /usr/share/doc bzw. /usr/doc zuzugreifen. Eine Suchfunktion gestattet in beiden Systemen die Volltextsuche in der auf dem System installierten Dokumentation. Im Fall von dhelp beschrnkt sich diese Suche auf Dateien im HTML-Format.

6.6 Internet
6.6.1 Wichtige Web-Adressen Die Entwicklung von Linux, freier Software und Debian ist eng mit dem Internet verknpft. Aus diesem Grund ist es kein Zufall, dass sich auf (fast) alle Fragen bezglich dieser Themen im Internet eine Antwort nden lsst. Dazu stehen zum einen Websites und Suchmaschinen zur Verfgung, von denen Informationen bezogen werden knnen. Zum anderen werden in Newsgroups und ber Mailing-Listen Mitteilungen

6.6 Internet

171

Abbildung 6.4. Startseite des integrierten Hilfesystems dhelp.

ausgetauscht. Hier knnen Fragen gestellt werden, auf die man anderweitig keine Antwort ndet. Die folgende Sammlung von Web-Adressen stellt eine kleine, subjektive Auswahl wichtiger Internetseiten zum Thema Debian GNU/Linux dar. Wenn Sie Fragen haben, sind diese Seiten ein guter Ausgangspunkt. Debian Projekt Unter dem bereits genannten URL http://www.debian. org/ erreichen Sie die Homepage des Debian Projekts. Hier nden Sie alle wichtigen Informationen zu Debian sowie die Mglichkeit, nach Paketen zu suchen, die Fehlerdatenbank, in der ebenfalls gesucht werden kann, und die Mglichkeit, in den Archiven aller Debian-Mailing-Listen zu suchen und alte Mails zu lesen. The Linux Documentation Project Dieses ebenfalls schon genannte Projekt stellt freie Bcher, HOWTOs und Manual-Seiten zu Linux zur Verfgung. Besuchen Sie diese Seite, wenn Sie die neueste Version eines Dokuments bentigen. URL: http://www.tldp.org/. Freshmeat Unter der Seite auf http://freshmeat.net/ wird tglich ber neu erschienene oder aktualisierte Programme berichtet. Die Seite bietet darber hinaus eine gute Mglichkeit, nach Linux-Anwendungen fr einen bestimmten Zweck zu suchen. Slashdot Tglich aktueller Klatsch und Tratsch zu den Themen Hacker, freie Software und Linux ist unter dem URL http://www.slashdot.org/ zu nden.

172

6 Dokumentation und Hilfe

Linux Today Unter der Adresse http://linuxtoday.com/ nden Sie Verweise auf wichtige Nachrichten zum Thema Linux. Linux.de Die deutschsprachige Linux-Homepage. Hier nden Sie unter anderem eine Liste der Linux-Benutzer-Gruppen (LUGs, Linux User Groups) im deutschsprachigen Raum mit Hinweisen zu Treffpunkten. Ihre rtliche LUG freut sich auf Ihren Besuch! URL: http://www.linux.de/ Linux Online Unter der Adresse http://www.linux.org/ nden Sie viele Verweise zum Thema Linux. Linux.com Diese Seite mit dem URL http://linux.com/ bietet Artikel und Informationen fr Anfnger und eine groe Menge weiterfhrender Verweise. Internet FAQs Auf der Seite http://www.faqs.org/ nden Sie die Antworten auf hug gestellte Fragen vieler Internet-Newsgroups nicht nur zum Thema Linux. Auerdem die Internet-RFCs. deja.com Diese Site archiviert alle Beitrge in Newsgroups und ermglicht die Suche in alten Artikeln. Gehrt mittlerweile der Suchmaschine Google: http: //groups.google.com/. Linux Kernel Unter http://www.kernel.org/ sind die Linux Kernel Archive zu erreichen. Linux Games Unter der Seite http://www.linuxgames.com/ nden Sie Informationen zum Thema Spiele unter Linux. For The People! Die Aufzhlung liee sich beliebig verlngern. 6.6.2 Netnews (Newsgroups) Manchmal ist die Lsung eines Problems einfach nicht zu nden. In solchen Fllen ist es hilfreich, wenn es Menschen gibt, denen man sein Problem darlegen kann und die bei der Lsung helfen. Zu diesem Zweck gibt es im Internet im wesentlichen zwei Dienste, nmlich Netnews und Mailing-Listen. Eine Einfhrung zu den Netnews einer Art von Zeitung im Internet nden Sie in Kapitel 17.6.3, ab S. 660. Dort ist auch beschrieben, welche Programme fr die Benutzung von Netnews in Frage kommen. Einige Internetseiten bieten die Mglichkeit, archivierte Beitrge der Netnews zu durchsuchen (siehe Seite 170). Diese Mglichkeit liefert oft schneller eine Antwort, als es der Fall ist, wenn man eine Frage stellt, die in derselben Newsgroup bereits vor kurzem beantwortet wurde. 6.6.3 Mailing-Listen Mailing-Listen funktionieren anders als Netnews. Sie lassen sich als Rundschreiben an bestimmte Benutzergruppen auffassen. Man meldet sich an einem Listen-Server in einer Liste an und bekommt dann alle Nachrichten per Email zugesendet, die an die Liste geschickt werden. An einige Mailing-Listen drfen Sie auch Mails senden, wenn Sie nicht Mitglied der Liste sind, whrend andere Listen dies nur gestatten, nachdem Sie sich in die Liste eingetragen haben. Der Unterschied zwischen Netnews und Mailing-Listen liegt vor allem in dem Ma an ffentlichkeit der Mitteilungen.

6.6 Internet

173

Fr den Umgang mit Mailing-Listen gilt prinzipiell das Gleiche wie fr Newsgroups (siehe Seite 660). Sie sollten zunchst immer versuchen, ein Problem selbst zu lsen. Die im allgemeinen hilfsbereiten Teilnehmer an den Diensten reagieren sauer oder gar nicht auf Fragen, deren Antwort in Manualseiten, FAQs oder HOWTOs etc. leicht zu nden ist. Das Debian-Projekt verwaltet eine groe Anzahl von Mailing-Listen zu unterschiedlichen Themen im Zusammenhang mit der Arbeit mit und der Entwicklung von Debian GNU/Linux. Auf der Internet-Seite http://www.debian.org/ MailingLists/ nden Sie allgemeine Informationen, unter http://lists. debian.org/ zu jeder Liste eine Beschreibung. Die Seite kann gleichzeitig dazu benutzt werden, um sich in Listen einzutragen. Die fr Debian-Benutzer wichtigste Liste hat den Namen debian-user. In dieser Liste drfen alle Fragen im Zusammenhang mit der Benutzung von Debian gestellt werden. Als Sprache ist dabei Englisch zu verwenden. Die Liste hat ein sehr hohes Aufkommen, sie sollten sich dort nur eintragen, wenn Sie bereit sind, tglich auch einmal 200 Mails zu empfangen. Unter dem URL http://lists.debian.org/search.html nden Sie eine Maske zum Suchen im Archiv der Mailing-Listen. Dort lassen sich alte Beitrge lesen. Nheres zur deutschsprachigen Debian-Benutzer-Mailing-Liste steht unter http://lists.debian.org/debian-user-german/. In dieser Liste sind eine Reihe von Debian-Entwicklern und viele weitere Kenner von Debian und Linux eingeschrieben, sodass immer mit kompetenten Antworten gerechnet werden kann, sofern man sich an den sachlich-freundlichen Ton der Liste hlt. 6.6.4 Suchmaschinen Das Internet ist mittlerweile so umfangreich geworden, dass man ohne maschinelle Hilfe nur noch einen Bruchteil der Informationen ndet. Selbst die Maschinen entdecken nicht alles, aber ihre Ausknfte bieten einen Einstieg. Die Suchmaschinen grasen regelmig Teile des Internets ab und speichern ihre Funde in Datenbanken. Anfragen werden aus den Datenbanken beantwortet, die Antworten sind nicht immer aktuell. Neben allgemeinen Suchmaschinen nden sich fachgebundene Maschinen im Netz. Bei manchen Fragen sind auch auslndische (fremdsprachige) Maschinen ergiebiger als die internationalen Groen, aber schwieriger aufzuspren. Neben den Suchmaschinen mit eigener Datenhaltung gibt es MetaSuchmaschinen, die keine eigenen Daten sammeln und halten, sondern Anfragen an die erstgenannten Suchmaschinen weiterleiten. Die Benutzung von MetaSuchmaschinen hat mehrere Vorteile: Eine Anfrage erreicht ein Dutzend und mehr Suchmaschinen. Die Antworten erscheinen in einheitlicher Form. Dubletten werden aussortiert. Den Betreibern echter Suchmaschinen sind die Meta-Suchmaschinen eine unwillkommene Konkurrenz. Nicht in jedem Fall ist eine ersprieliche Zusammenarbeit gewhrleistet. Einige Maschinen:

174

6 Dokumentation und Hilfe

Google Eine Suchmaschine die zum Thema Linux oft etwas ndet: http://www. google.de/. Metager Eine Meta-Suchmaschine, entstanden an der Uni Hannover: http:// metager.de/. Metacrawler Eine bewhrte nordamerikanische Suchmaschine: http://www. metacrawler.com/ Yahoo Eine Suchmaschine mit Redaktion (ein Katalog): http://de.yahoo. com/ Klug Suchen! Die Maschine, die nach Suchmaschinen sucht: http://www. klug-suchen.de/ Bei den Anfragen ist Gro- und Kleinschreibung unerheblich. Logische Verknpfungen (und - oder) verstehen fast alle, Jokerzeichen nicht alle. Die Treffer werden in der Antwort bei serisen Suchmaschinen nach dem Grad der bereinstimmung mit der Frage geordnet, bei anderen spielt Geld eine Rolle. Manche Antworten berraschen und haben einen Unterhaltungs- oder Bildungswert. Wer denkt bei einer Frage nach Informationen zu Blut an Wiener Blut oder Schlehenblut? 6.6.5 Wenn es nicht an Ihnen liegt: Die Fehlerdatenbank Auch Debian ist nicht fehlerfrei. Es kann durchaus vorkommen, dass Sie auf ein Problem stoen, dessen Ursache nicht in Unwissenheit oder falschem Gebrauch, sondern in einem Fehler eines Debian-Pakets begrndet ist. In einem solchen Fall sollten Sie einen Fehlerreport an das Debian Bug Tracking System schicken. Unter dem URL http://www.debian.org/Bugs/ nden Sie eine Suchmaske fr die Fehlerdatenbank, mit deren Hilfe Sie herausnden knnen, ob der Fehler bereits bekannt ist. Falls dies nicht der Fall ist, stehen dort weitere Informationen, wie eine Fehlermeldung zu erstellen und abzusenden ist. Sie sollten dabei im Hinterkopf behalten, dass Sie den Fehlerbericht an einen unbezahlten und unbezahlbaren Freiwilligen schicken und sich bemhen, alle erforderlichen Informationen zu liefern.

7 Installation von Software

7.1 bersicht ber das Paketverwaltungssystem


Dieses Kapitel beschreibt nach einer Einfhrung in das Paketverwaltungssystem die wichtigsten Werkzeuge zur Beschaffung, Installation und Entfernung von Paketen. Ein Programm sei es der Linux-Kern, ein Systemprogramm oder eine Anwendung besteht heute nicht mehr aus nur einer Datei. Vielmehr umfasst ein modernes Programm mehrere Module in Quell- und Maschinencode, Bibliotheken, Kongurationsdateien, Dokumentation, Beispiele, Makeles, Testrahmen, Versionsgeschichte und vieles andere mehr. Deshalb ist das Debian GNU/Linux System wie andere Linux-Distributionen in Pakete unterteilt. Pakete beinhalten zusammengehrige Teile des Betriebssystems, Anwendungen, Dokumentation oder andere Formen von Daten, die sich auf einem Rechner installieren lassen. Installieren oder Einrichten eines Paketes bedeutet mehr als Kopieren einer Datei. Debian verwendet ein eigenes Paketformat, das Debian-Format. Dateien mit Debian-Paketen haben die Namensendung (Kennung, extension) .deb. Ein anderes verbreitetes Paketformat ist das Redhat-Paketmanager-Format (RPM), welches von den Distributionen Redhat. Mandrake und SUSE verwendet wird. Die Kennung dieser Pakete ist .rpm. In der Linux/UNIX-Welt sind seit altersher komprimierte Archive gebruchlich, deren Kennung heute meist .tar.gz oder .tgz lautet. Bei diesen Dateien handelt es sich um mit gzip komprimierte tar-Archive. Nheres auf den Manualseiten der beiden Kommandos. Das Debian-Paketsystem ermglicht, genau die Komponenten zu installieren, die tatschlich bentigt werden. Auerdem lsst sich bei der Auswahl eines Pakets oft aus einer Reihe von Alternativen whlen. Durch das Wachstum von Debian und die Aufteilung groer Pakete in mehrere kleine ist die Anzahl verfgbarer Pakete in jngerer Zeit stark angestiegen. Die hohe Modularitt des Debian-Systems erlaubt Installationen durchzufhren, die optimal an bestimmte Aufgaben angepasst sind. Die groe Anzahl der Pakete stellt fr Anfnger ein Problem dar. Aus diesem Grund stehen Werkzeuge zur Verfgung, mit denen Pakete gesucht und ausgewhlt werden knnen.

176

7 Installation von Software

Es gibt eine Reihe von Programmen fr die Verwaltung und Installation von Paketen unter Debian. Der eigentliche Paketmanager ist das Programm dpkg. Es installiert Pakete und wirft sie wieder raus, erteilt Auskunft ber den Status von Paketen auf dem System und zeigt Informationen zu Paketen an. Bei der Installation eines Pakets prft dpkg Paketabhngigkeiten. Viele Pakete funktionieren nur dann, wenn andere Pakete ebenfalls installiert sind. So wird fr die Ausfhrung eines Programms in der Regel eine Anzahl von Programmbibliotheken bentigt. Bibliotheken enthalten Programmcode, der von mehreren Programmen benutzt werden kann und deswegen nicht in jedem Programm einzeln enthalten zu sein braucht. Er wird mit dem betreffenden Programm erst whrend des Starts oder zur Laufzeit verbunden. Eine zentrale Bibliothek auf jedem Linux-System ist die C-Laufzeitbibliothek (libc), die von fast allen Programmen bentigt wird. Sie ist wie viele andere Bibliotheken in einem eigenen Debian-Paket enthalten. Neben der berprfung des Vorhandenseins bestimmter Pakete muss dpkg weiter sicherstellen, dass die notwendigen Pakete in der richtigen Version vorliegen. Die meisten Programme funktionieren nmlich nur mit bestimmten Versionen von Bibliotheken oder anderen Programmen richtig. Wenn ein Paket entfernt werden soll, berprft dpkg, ob dadurch die Systemintegritt gestrt wird. Wenn beispielsweise versucht wird, das Paket mit der CLaufzeitbibliothek zu entfernen, wre die fatale Folge, dass sich hinterher fast kein Programm mehr benutzen liee. Der Paketmanager dpkg wrde dies anzeigen und sich weigern, das Paket zu entfernen, es sei denn, alle Pakete, die das zu entfernende Paket bentigen, sollten ebenfalls entfernt werden. Das Programm dpkg ist ein Kommandozeilenprogramm. Es kann mit unterschiedlichen Argumenten und Optionen aufgerufen werden, die ihm sagen, ob es Pakete installieren oder entfernen soll oder ob es Informationen zu Paketen oder dem System anzeigen soll. Wenn ein Paket installiert wird, muss dpkg der Name der Paketdatei mitgeteilt werden. Angenommen, das Paket modconf wurde aus dem Internet heruntergeladen und in der Datei modconf_0.2.26.9_all.deb gespeichert, so wird es mit dem folgenden Kommando installiert oder aktualisiert: debian:~# dpkg --install modconf_0.2.26.9_all.deb Bevor ein Programm mit dpkg installiert wird, muss bekannt sein, wo sich die Paketdatei bendet und welche anderen Pakete installiert sein mssen, damit alle Abhngigkeiten erfllt sind. Bei der hohen Anzahl der Pakete und den komplexen Abhngigkeiten der Pakete untereinander ist es jedoch schwierig, den berblick zu behalten. Auerdem brauchen sich die verfgbaren Pakete nicht unbedingt auf einem lokalen Datentrger wie der Festplatte oder einer CD/DVD zu benden, sie knnen auch auf einem Server im lokalen Netz oder im Internet liegen. Dann mssen sie erst heruntergeladen werden. Dieser Gruppe von Problemen widmet sich das APT-System. Es handelt sich dabei um Programme, welche die Abhngigkeiten von Paketen untereinander sowie eine groe Zahl von Paketquellen verwalten. Das wichtigste Programm aus dieser Familie ist apt-get. Es kann ebenso wie dpkg zur Installation oder Deinstallation von Paketen an der Kommandozeile eingesetzt werden. Wenn es ein bestimmtes Paket

7.1 bersicht ber das Paketverwaltungssystem

177

installieren soll, prft apt-get zunchst, welche anderen Pakete notwendigerweise installiert sein mssen, damit das gewnschte Paket installiert werden kann. Danach versucht es, alle bentigten Pakete zur Verfgung zu stellen. Das kann bedeuten, dass es den Benutzer auffordert, eine bestimmte CD in das Laufwerk zu legen oder dass es Pakete von einem Server aus dem Internet herunterldt. Wenn die Pakete auf dem Rechner vorhanden sind, ruft apt-get dpkg auf, um sie zu installieren. Weil apt-get die Abhngigkeiten der Pakete untereinander kennt, geht es dabei so vor, dass es dpkg zunchst die Pakete installieren lsst, die bentigt werden, um das gewnschte Paket zu installieren. Dann fhrt apt-get mit der Anweisung fort, das ausgewhlte Paket zu installieren. Auf diese Weise sind Fehler aufgrund unbercksichtigter Abhngigkeiten bei der Installation von Paketen nahezu ausgeschlossen. Neben dpkg und apt-get stehen einige Programme zur bequemen interaktiven Verwaltung von Paketen zur Verfgung. Diese Programme zeigen dem Benutzer die verfgbaren und die installierten Pakete in listen- oder baumartigen Strukturen an und ermglichen die Auswahl, Installation oder Deinstallation von Paketen innerhalb der angezeigten Paketlisten. Auerdem lassen sich mit diesen Programmen Zusatzinformationen zu allen Paketen wie Beschreibungen oder Installationsempfehlungen abrufen. Das klassische Programm zur interaktiven Paketverwaltung ist das Programm dselect. Es stellt alle verfgbaren und installierten Pakete in einer Liste dar, die nach unterschiedlichen Kriterien sortiert werden kann; es ermglicht die Suche nach Paketen und untersttzt den Benutzer beim Lsen von Konikten zwischen verschiedenen Paketen. Das Programm dselect kann mit oder ohne Verwendung von APT benutzt werden. Im allgemeinen ist die Verwendung mit APT zu empfehlen, dselect ist dann nur fr die Untersttzung des Benutzers bei der Auswahl von Paketen zustndig und berlsst APT die Bereitstellung der ausgewhlten Pakete sowie den Aufruf von dpkg. Die Mglichkeit der Verwendung von dselect ohne APT stammt aus der Zeit, als es APT noch nicht gab. Das Programm muss dazu fr die Benutzung einer anderen Installationsmethode konguriert werden und kmmert sich selbst um die Bereitstellung von Paketen und den Aufruf von dpkg. Seit einiger Zeit wird an der Entwicklung von Programmen gearbeitet, die dselect ablsen sollen. Dazu gehren die Programme gnome-apt (Paketverwaltungsprogramm fr die grasche Benutzeroberche GNOME), console-apt (Paketverwaltungsprogramm fr die Arbeit an der Konsole oder einem Terminal) und aptitude (ein weiteres Programm fr die Konsole, das einen anderen Ansatz verfolgt). Diese neueren Programme sind alle fr die Verwendung mit APT vorgesehen, der direkte Aufruf von dpkg wird nicht mehr untersttzt. Eine Reihe von Aufgaben, die klassischerweise mit dselect gelst werden, lassen sich bereits bequemer mit diesen Programmen vollziehen. Allerdings bietet keines der genannten Programme zur Zeit den vollen Funktionsumfang von dselect, sodass das letztgenannte Programm im Moment noch das Werkzeug der Wahl bei der interaktiven Paketauswahl ist. Um die Paketauswahl fr Anfnger zu erleichtern, haben sich die DebianEntwickler ein weiteres Instrument einfallen lassen. Das Programm tasksel bietet eine besondere Form von Debian-Paketen zur Auswahl an, nmlich sogenannte TaskPakete. Diese Pakete enthalten keine eigenen Programme oder Dateien, sondern im wesentlichen Abhngigkeiten zu anderen Paketen. Nach der Auswahl eines oder

178

7 Installation von Software

mehrerer Task-Pakete ruft tasksel das Programm apt-get auf, welches die in diesen Paketen als notwendigerweise zu installierend vermerkten Pakete beschafft und installiert. Wie der Name sagt, werden auf diese Weise durch task-Pakete mehrere Pakete installiert, die fr einen bestimmten Aufgaben- oder Anwendungsbereich bentigt werden. So werden nach Auswahl des Pakets task-german eine Reihe von Paketen installiert, die deutschsprachigen Benutzern die Arbeit mit dem System erleichtern (deutschsprachige Dokumentation, Wrterbcher etc.). Ein weiteres Beispiel ist das Paket task-games, das die Installation einer Reihe von Spielen bewirkt.

dselect PaketDB aptget StatusDB dpkg

Quellen
(z.B. CDROMs, Festplatte, NFS, Internet)

Pakete

DebianSystem (alle installierten Dateien und Programme)


Abbildung 7.1. Das Paketverwaltungssystem unter Debian. Erluterung im Text.

Abbildung 7.1 zeigt den Aufbau des Paketverwaltungssystems schematisch sowie das Zusammenwirken der einzelnen Werkzeuge. Das Programm dpkg ist fr die Installation und Deinstallation der Pakete zustndig. Dafr bentigt es den Zugriff auf die Paketdateien (Pakete). Von dem Programm werden zwei Datenbanken gepegt, nmlich eine Datenbank, die alle verfgbaren Pakete enthlt (Paket-DB) und eine weitere, die den Status jedes einzelnen Paketes auf dem System enthlt (StatusDB). Status eines Pakets kann sein, dass es installiert oder nicht installiert ist, oder aber, dass im Zusammenhang mit dem Paket ein Fehler aufgetreten ist. Die Beschaffung von Paketen sowie der Aufruf von dpkg zur eigentlichen Installation wird von dem Programm apt-get durchgefhrt. Dieses Programm kann wiederum von anderen Programmen aufgerufen werden, die eine bequeme interaktive Auswahl der zu installierenden oder zu entfernenden Software ermglichen. Das wichtigste dieser Programme ist dselect, dass auch dpkg direkt aufrufen kann. Das Programm apt-get sowie die interaktiven Installationsprogramme mssen Kenntnis von den zu verwendenden Installationsquellen, also CD/DVDs, Internetserver usw. haben. Dies ermglicht ihnen, die verfgbaren Pakete anzuzeigen und zu installierende Pakete bei Bedarf zu beschaffen. Auerdem knnen die Programme ebenfalls

7.2 Konguration von Paketquellen mit apt-setup

179

auf die Status-Datenbank sowie die Paketdatenbank zugreifen, damit sie entscheiden knnen, welche Pakete nach einer erfolgten Auswahl installiert oder entfernt werden mssen.

7.2 Konguration von Paketquellen mit apt-setup


Das Programm apt-setup dient dazu, die Paketquellen (etwa CD/DVDs oder Server im Internet) einzustellen, von denen APT Pakete zur Installation beziehen kann. Die Konguration von Paketquellen ist zwingend notwendig, bevor mit APT gearbeitet wird. Das Programm wird whrend der Basisinstallation automatisch aufgerufen. Um das Programm zu einem spteren Zeitpunkt erneut aufzurufen, ist folgendes Kommando einzugeben: debian:~# apt-setup Achtung: Falls Sie das Programm verwenden wollen, um eine Installationsquelle einzurichten, auf die Sie ber das Netz zugreifen, und Sie eine Einwahlverbindung benutzen, mssen Sie die Verbindung starten, bevor Sie apt-setup aufrufen. Das Programm benutzt die Verbindung, um zu prfen, ob die kongurierten Quellen tatschlich verfgbar sind. Nach Aufruf des Programms erscheint der in Abbildung 7.2 dargestellte Bildschirm.

Abbildung 7.2. Konguration von Paketquellen mit apt-setup

In dem Men kann per Pfeiltasten die Art der zu verwendenden Paketquelle ausgewhlt werden. Die Bedeutung entspricht den URI-Typen, wie sie im Ab-

180

7 Installation von Software

schnitt 8.4.1 beschrieben sind. Die Auswahl ist mit der Taste E INGABE zu besttigen. Wenn Sie CD/DVDs als Paketquellen verwenden, mssen Sie die erste CD in das Laufwerk eingelegt haben, bevor Sie den Quellentyp auswhlen. Das Programm erwartet, dass der Zugriff auf das CD-Laufwerk ber die Datei /dev/cdrom mglich ist. Dies sollte der Fall sein, wenn die Basisinstallation ebenfalls von CD durchgefhrt wurde. Wenn der Zugriff ber diese Datei nicht mglich ist, werden Sie aufgefordert, die Gertedatei des Laufwerks anzugeben. Vergleichen Sie hierzu Kapitel 14.3.3 (Seite 471). Die im Laufwerk bendliche CD wird daraufhin nach Paketindices durchsucht. Danach werden Sie gefragt, ob Sie weitere CDs verwenden wollen. Wenn Sie einen Satz von CDs verwenden, beantworten Sie die Frage mit Yes und wiederholen den Vorgang fr jede CD. Die Auswahl der Paketquellen vom Typ ftp und http erfordert, dass Sie eine funktionierende Internetanbindung haben. Wenn Sie ber einen Debian-Spiegel verfgen, der im Dateisystem Ihres Computers liegt (weil er sich auf einer eingebundenen Festplattenpartition bendet oder ber NFS eingebunden ist), whlen Sie den Typ lesystem. Sie mssen dann spter das Verzeichnis angegeben, in dem sich Ihr Debian-Spiegel bendet1. Weiter besteht die Mglichkeit, die Kongurationsdatei /etc/apt/sources.list von Hand zu bearbeiten (siehe S. 238). Hierzu ist der Menpunkt edit sources list by hand auszuwhlen. Es wird dann ein Texteditor mit der Datei geffnet. Falls Sie die Softwareinstallation aus dem Internet durchfhren wollen, sollten Sie http auswhlen. U. U. erfolgt nun die Abfrage, welche Distribution Sie installieren mchten. Whlen Sie stable, gegenwrtig gleichbedeutend mit woody, im absehbarer Zukunft mit sarge. Nach Wahl einer Paketquelle kann entschieden werden, ob neben der Abteilung main auch Software aus den Abteilungen non-free und contrib benutzt werden soll. Achtung: Die Auswahl von non-free und contrib bewirkt, dass auf Ihrem Computer Software installiert wird, die keiner freien Lizenz unterliegt. Andererseits ist die Auswahl dieser Abteilungen notwendig, um Programme wie Netscape zu installieren (siehe auch S. 218). Wenn Sie eine der Quellentypen http oder ftp gewhlt haben, knnen Sie nun ein Land angeben. Grundstzlich ist es empfehlenswert, hier das Land anzugeben, in dem Sie sich benden. Einige Internet-Provider haben jedoch schnellere Anbindungen zu Servern beispielsweise in den USA. Am Ende der Liste ndet sich ein Menpunkt, mit dem Sie selbst einen Server angeben knnen. Nach Auswahl dieser Option wird der Name des Servers und dann das Basisverzeichnis auf dem Server angegeben, unterhalb dessen sich die Debian-Distribution bendet (Beispiel: /pub/mirrors/debian). Nach der Auswahl eines Landes erscheint eine Liste der dortigen Server. Sie sollten den Server auswhlen, der die schnellste Datenbertragung ermglicht. Wenn sie eine Quelle vom Typ http verwenden, erscheint zum Schluss ein Eingabefeld, mit dem Sie die Verwendung eines Proxy-Servers kongurieren knnen (siehe S. 243).
1

Das ist das Verzeichnis, in dem sich das Unterverzeichnis dists bendet.

7.3 Aufgabenbezogene Paketauswahl: tasksel

181

Nachdem die Konguration der Quelle abgeschlossen ist, testet das Programm die Angaben, damit es bei der Installation von Paketen nicht zu Fehlern kommt. Einige Hinweise zu Fehlern nden Sie auf Seite 242. Nach erfolgreichem Test wird gefragt, ob eine weitere Installationsquelle konguriert werden soll, woraufhin bei bejahender Antwort der Vorgang wiederholt wird. Falls Sie ber einen Internetzugang verfgen, aber in erster Linie von CD/DVDs installieren, knnen Sie hier, nachdem Sie die CD/DVDs als Installationsquelle eingerichtet haben, einen Debian-Mirror angeben. Es werden dann nur die Pakete von dem Server bezogen, die dort in einer aktuelleren Fassung vorhanden sind als auf Ihren CD/DVDs.

7.3 Aufgabenbezogene Paketauswahl: tasksel


Das Programm tasksel (task selection) dient zur Auswahl von task-Paketen. TaskPakete enthalten selbst keine Programme, aber eine Reihe von Abhngigkeiten zu anderen Paketen, die deswegen whrend der Installation des Task-Paketes installiert werden. Auf diese Weise werden Pakete, die sinnvollerweise gemeinsam fr einen bestimmten Zweck bentigt werden, zu einem Paket zusammengefasst. Anfngern wird dadurch die Auswahl der richtigen Pakete aus der groen Menge gewhnlicher Pakete erspart. Das Programm wird whrend der Erstinstallation automatisch aufgerufen, wenn Sie sich dort fr das einfache Verfahren (simple) zur Paketauswahl entschieden haben. Ansonsten knnen Sie tasksel erneut starten, in dem Sie dieses Kommando eingeben: debian:~# tasksel Achtung: Bevor Sie tasksel manuell aufrufen, sollte die Datenbank von dpkg ber verfgbare Pakete aktualisiert werden. Dies geschieht am einfachsten ber das Kommando Update im Hauptmen von dselect. Whrend der Basisinstallation wird dieser Vorgang automatisch erledigt. Abbildung 7.3 zeigt das Hauptmen des Programms. Durch die Pfeiltasten P FEIL R AUF und P FEIL RUNTER kann zwischen den Aufgabenpaketen gewechselt werden. Mit der Taste TAB wird zwischen der Liste von Task-Paketen und den Kommandos Quit, Task Info und Help gewechselt. Nach Auswahl des Kommandos Task Info werden Informationen zu dem ausgewhlten Task-Paket angezeigt. Schlielich lassen sich durch die Taste E INGABE Task-Pakete zur Installation auswhlen. Dabei kann eine beliebige Anzahl von Paketen ausgewhlt werden. Wenn das Programm ber das Kommando quit verlassen wird, dann wird automatisch das Programm apt-get aufgerufen, das die ausgewhlten Pakete nach einer Abfrage installiert. Dabei sind einige Fragen zu beantworten, wie ab Seite 202 beschrieben.

182

7 Installation von Software

Abbildung 7.3. Hauptmen des Programms tasksel zur Auswahl von aufgabenbezogenen Task-Paketen.

7.4 Das interaktive Installationsprogramm: dselect


7.4.1 Aufruf und Benutzung von dselect Das Programm dselect wird nach der Erstinstallation automatisch aufgerufen, wenn Sie als Verfahren zur Paketauswahl die fortgeschrittene Methode (advanced) ausgewhlt haben. Wenn Sie das Programm spter wieder aufrufen mchten, geben Sie als Verwalter (root) folgendes Kommando ein: debian:~# dselect Das Programm kann auch von gewhnlichen Benutzern aufgerufen werden. Diese haben keine Mglichkeit, Pakete zu installieren oder zu deinstallieren; sie knnen das Programm lediglich nutzen, um zu sehen, welche Pakete verfgbar und installiert sind. Nach dem Programmaufruf erscheint der in Abbildung 7.4 dargestellte Bildschirm2 . Sie benden sich nun im Hauptmen von dselect. Ganz oben teilt Ihnen das Programm mit der Zeile Debian Linux dselect package handling frontend noch einmal mit, was es ist. Darunter benden sich eine Reihe von Kommandos, die im folgenden erlutert werden. Unter diesen Kommandos erscheint eine kurze Hilfezeile, die mitteilt, wie man zwischen den einzelnen Kommandos whlen kann: Ausgewhlt ist das zur Zeit hervorgehobene (in der Regel wei unterlegte) Kommando. Nach dem Aufruf des Programms ist dies Access. Andere Kommandos werden ausgewhlt, indem entweder der Anfangsbuchstabe des Kommandos eingegeben wird (in eckige Klammern gestellt), die Zahl, die sich vor dem Kommando bendet, eingegeben wird
2

Weitere Mglichkeiten zum Aufruf von dselect sind auf Seite 794 beschrieben.

7.4 Das interaktive Installationsprogramm: dselect

183

Abbildung 7.4. Hauptmen von dselect.

oder mit den Pfeiltasten von einem Kommando zum nchsten gewechselt wird. Falls Ihre Tastatur keine Pfeiltasten hat oder diese bei Ihnen nicht funktionieren, knnen sie auch die Tastenkombinationen S TRG - N und S TRG - P (next und previous) verwenden, um von Kommando zu Kommando zu wechseln. Wenn Sie das gewnschte Kommando ausgewhlt haben, drcken Sie E INGABE. Weitere wichtige Tastaturbefehle in dselect sind S TRG - L, mit dem ein Neuzeichnen des Bildschirms veranlasst werden kann, falls dieser nicht mehr lesbar ist, sowie die Taste ?, mit der Hilfe angefordert werden kann. Die Hilfe listet unter anderem die Tastenkommandos auf, die in dem gerade aktiven Bereich von dselect zur Verfgung stehen, und erlutert deren Bedeutung. Beginnt eine solche Tastenkombination mit dem Zeichen ^ (Circumex, Caret), so ist damit die Taste S TRG gemeint. ^n steht fr die Tastenkombination S TRG - N. Sie verlassen die Hilfe, indem sie die Taste L EER drcken. Im Normalfall sollten alle Kommandos des Hauptmens einmal ausgefhrt werden. Damit wird festgelegt, von wo Software installiert werden soll, die Datenbank verfgbarer Pakete wird aktualisiert und die gewnschte Software ausgewhlt und installiert. Schlielich werden Pakete konguriert, und zu entfernende Software wird gelscht. Achtung: Whrend der Basisinstallation wurden die ersten beiden Schritte durchgefhrt. Sie brauchen im Normalfall nicht mehr anzugeben, von wo Software installiert werden soll, und die Datenbank verfgbarer Pakete sollte bereits aktualisiert sein. Sie knnen nach der Basisinstallation direkt mit der Auswahl der gewnschten Software fortfahren. In spteren Sitzungen mit dselect brauchen Sie ebenfalls nicht alle Schritte zu wiederholen: So muss die Wahl der Installationsmethode erst dann wieder aufgerufen

184

7 Installation von Software

werden, wenn sich die gewnschte Installationsmethode gendert hat. Die Aktualisierung der Liste verfgbarer Pakete sollte immer dann durchgefhrt werden, wenn man den Verdacht hat, dass sich an dieser etwas gendert haben knnte. Falls Sie von CD/DVDs installieren, ist dies dann der Fall, wenn Sie die CD/DVDs gegen andere austauschen. Falls Sie jedoch von einem anderen Rechner (beispielsweise von einem ofziellen Debian-Server) installieren, kann sich die Liste der verfgbaren Pakete verndern etwa weil neue Programmversionen erschienen sind sodass Sie in einem solchen Fall das Update der Liste vor jeder Auswahl von Paketen durchfhren sollten. 7.4.2 Bestimmen der Installationsmethode Das erste Kommando in dselects Hauptmen lautet Access. Wenn Sie dieses Kommando ausgewhlt haben, erhalten Sie eine Liste der zur Verfgung stehenden Installationsmethoden, wie sie in Abbildung 7.5 dargestellt ist. Oben auf dem Bildschirm

Abbildung 7.5. dselect: Liste der Installationsmethoden

bendet sich die Liste mit einem abgekrzten Namen (Abbrev.) auf der linken Seite und einer Beschreibung (Description) auf der rechten. Im unteren Teil des Bildschirms bendet sich eine ausfhrliche Beschreibung der ausgewhlten Installationsmethode. Sie knnen in dieser Liste wieder, wie im Hauptmen, mit den Pfeiltasten navigieren. Darber hinaus gibt es eine Reihe von Tastaturbefehlen und Tastenkombinationen, mit denen Sie sich in dieser Liste bewegen und die dazugehrigen Informationen lesen knnen. Die wichtigsten sind:
X

und S HIFT- X Verlassen der Auswahl ohne Speicherung der nderungen.

7.4 Das interaktive Installationsprogramm: dselect

185

E INGABE Die unterlegte Installationsmethode wird ausgewhlt. Gegebenenfalls werden Ihnen nach dieser Auswahl einige Fragen zu der Installationsmethode gestellt (Adresse des Rechners, von dem installiert werden soll). N und P Vorwrts (next) und rckwrts (previous) in der Liste. Der ausgewhlte Eintrag der Liste (wei unterlegt) wird dabei verschoben. S HIFT- N und S HIFT- P Die Liste wird seitenweise vorwrts bzw. rckwrts geblttert. Hierzu knnen Sie auch die Tasten S EITE - RUNTER und S EITE - RAUF verwenden. T und E An den Anfang oder das Ende der Liste springen. Sie knnen dazu auch die Tasten P OS 1 oder E NDE benutzen. U und D Die Informationen im unteren Teil des Bildschirms werden um jeweils eine Seite vor- (up) oder zurck- (down) geblttert. S TRG - U und S TRG - D Die Informationen im unteren Teil des Bildschirms werden zeilenweise vor- oder zurckgeblttert. S HIFT- B und S HIFT- F Der Bildschirm wird um ein Drittel seines Inhalts nach rechts oder nach links verschoben. Benutzen Sie diese Tasten, falls die Lnge eines Eintrags den sichtbaren Bereich einer Zeile bersteigt. Es ist wichtig, sich mit diesen Tastenkommandos vertraut zu machen, da es sich bei ihnen um dieselben handelt, mit denen Sie sich spter im Paketauswahlmen des Programms bewegen. Installationsmethoden sind Module von dselect, die sich einzeln installieren und deinstallieren lassen. Dadurch ist dselect erweiterbar und bietet eine einfache Mglichkeit, Distributionen zu erstellen, die an die Bedrfnisse bestimmter Umgebungen angepasst sind. Die im folgenden aufgelisteten Installationsmethoden sind zum Teil im Paket dpkg-multicd enthalten und werden standardmig whrend der Basisinstallation nicht installiert. Hersteller von Debian-CD/DVDs knnen eigene Installationsmethoden anbieten, die Sie in diesem Men nden. Achtung: Seit Debian GNU/Linux 2.2 sollte ausschlielich die Installationsmethode APT benutzt werden, die bereits whrend der Konguration des Basissystems eingerichtet wird. Multi CD Es wird von mehreren CDs installiert. Fr diese Methode benden sich normalerweise auf der letzten CD mit Binrpaketen Listen der auf allen CDs verfgbaren Pakete. Bei Verwendung der ofziellen Debian-CDs sollten Sie die letzte (Binr-)CD im Laufwerk liegen haben, wenn Sie diese Methode auswhlen3 . Im der Regel sollten Sie jedoch die Methode APT verwenden, wenn Sie von mehreren CD/DVDs installieren. NFS Installation von einem fremden Rechner, der ein Verzeichnis mit den DebianPaketen ber NFS (Network Filesystem) im Netz zur Verfgung stellt. Wenn Sie diese Methode verwenden, mssen Sie den Netznamen oder die IP-Adresse des
3 Dies kann bei CDs, die von der ofziellen Version abweichen, anders sein. Konsultieren Sie dann sicherheitshalber die Dokumentation Ihrer CD-Ausgabe.

186

7 Installation von Software

Rechners kennen, auf dem sich die Pakete benden. Auerdem mssen Sie das Verzeichnis kennen, in dem die Pakete auf dem fremden Rechner liegen. Multi NFS Wie NFS mit dem Unterschied, dass sich der Inhalt des im Netz freigegebenen Verzeichnisses ndern darf. Dadurch ist es mglich, auch bei einem Satz von CD/DVDs einfach das Laufwerk eines Serverrechners freizugeben (zu exportieren), ber NFS zu installieren und bei Bedarf die notwendigen CDs in das Laufwerk des Servers einzulegen. Floppy Installation von Disketten. Diese Installationsmethode ist bei dem Umfang der Debian-Distribution nicht zu empfehlen. apt APT ermglicht es, unterschiedliche Quellen fr Debian-Pakete zu denieren. So kann deniert werden, dass zunchst die Pakete auf den lokalen CDs verwendet werden sollen, danach auf einem Server im lokalen Netz nachgesehen und schlielich auf einem ofziellen Debian-Server nach Paketen gesucht werden soll. APT bietet viele Mglichkeiten, die ber den Einsatzbereich von dselect hinausgehen. Deswegen ist diesem Programm ein eigener Abschnitt gewidmet (Kapitel 8.4). Mit dselect ist es mglich, APT zur Beschaffung und zur Installation von Paketen zu verwenden. Deswegen eignet sich diese Installationsmethode gut dafr, die Installation von einem Web- oder FTP-Server im Internet oder einem Satz CDs durchzufhren. Nach der Basisinstallation ist diese Methode vorausgewhlt. Konguration der Installationsmethoden Wenn Sie eine neue Installationsmethode ausgewhlt haben, wird ein Skript (ein Programm) aufgerufen, das Sie fragt, wo genau sich die Debian-Pakete benden. Die einzelnen Installationsmethoden verwenden hierzu unterschiedliche Skripte, die von unterschiedlichen Voreinstellungen ausgehen und versuchen, diese Einstellungen an Ihr System anzupassen. Deswegen ist es ntig, dass Sie alle Fragen sorgfltig lesen und gegebenenfalls prfen, ob die vorgeschlagenen Einstellungen tatschlich auf Ihr System und Ihre Installationsquelle zutreffen. Vorgeschlagene Werte (Default-Werte) nden Sie in der Regel bei jeder Frage in eckigen Klammern. Wenn Sie einverstanden sind, brauchen Sie nur die E INGABE Taste zu bettigen, um die Werte zu bernehmen. Bei leeren Klammern stellt das Skript keine Voreinstellungen zur Verfgung, und Sie mssen einen Wert angeben. Wenn Sie einen Pfadnamen angeben, der sich auf eine Datei oder ein Verzeichnis auf einer CD/DVD bezieht, sind diese Namen meist ausgehend vom Wurzelverzeichnis der CD/DVD anzugeben. Falls sich beispielsweise auf Ihrer CD/DVD die DebianDistribution im Verzeichnis Distributionen bendet, das wiederum im Verzeichnis Linux des Wurzelverzeichnisses liegt und sie nach diesem Verzeichnis gefragt werden, so sollten sie /Linux/Distributionen/Debian angeben. Wenn Sie sich bei der Beantwortung von Fragen vertippt haben, lschen Sie den bereits eingegebenen Text mit der Taste Z URCK, solange Sie ihn noch nicht mit E INGABE besttigt haben. Falls Ihnen ein Fehler erst nach der Besttigung auffllt, drcken Sie S TRG - C, um das Skript abzubrechen. Sie landen dann wieder im Men

7.4 Das interaktive Installationsprogramm: dselect

187

zur Installationsmethodenauswahl und knnen die Methode erneut auswhlen. Im folgenden nden Sie einige Hinweise zu den Installationsmethoden. Installationsmethode Multi-CD Legen Sie die letzte CD mit Binrpaketen ein, bevor Sie diese Installationsmethode kongurieren. Das Kongurationsskript fr diese Methode untersucht zunchst, ob auf Ihrem System bereits CDs in das Dateisystem eingebunden sind. Falls es mehrere ndet, zeigt es Ihnen eine nummerierte Liste aller gemounteten CDs und bittet Sie, durch Drcken einer Zahl die richtige auszuwhlen. Wenn nur eine einzige gemountete CD gefunden wird, werden Sie gefragt, ob es sich um die richtige handelt. Sie knnen dann entweder mit E INGABE die Vorgabe (Yes) besttigen oder No eingeben, woraufhin Sie die Mglichkeit erhalten, die richtige CD einzulegen. Gewhnlich wird eine CD nach dem Einlegen jedoch nicht automatisch gemountet. Also wird das Skript keine gemountete CD nden und versuchen, herauszunden, welche Gertedatei ihrem CD-Laufwerk entspricht, um sie spter selbst mounten zu knnen. Falls Sie schon die Basisinstallation von CD durchgefhrt haben, existiert bereits der symbolische Link (Verweis) /dev/cdrom auf die Gertedatei ihres Laufwerkes. Sie brauchen nur mit E INGABE zu besttigen. Sollten Sie von einem zweiten oder dritten CD-Laufwerk installieren wollen, so mssen Sie die entsprechende Gertedatei angeben und E INGABE drcken. Nachdem Ihr CD-Laufwerk gefunden bzw. das richtige Laufwerk ausgewhlt wurde, werden Sie gefragt, wo auf der CD sich das Debian-Hauptverzeichnis bendet. Bei den ofziellen CDs ist es das Verzeichnis /debian/. Wenn Sie diese CDs verwenden, sollten Sie nur mit E INGABE besttigen. Ansonsten mssen Sie den Pfad eingeben. Hierauf wird untersucht, ob sich ein Katalog verfgbarer Pakete fr jede Abteilung der Distribution nden lsst. Falls ein Katalog nicht gefunden wird, knnen Sie den Pfad eingeben, an dem er sich bendet. Fr Abteilungen, die auf Ihrer CD nicht vorhanden sind, geben Sie einfach none an. Dies ist bei Verwendung der ofziellen CDs bei den Abteilungen non-free und non-US der Fall. Wenn alle Kataloge gefunden bzw. abgefragt worden sind, werden Sie aufgefordert, E INGABE zu drcken, und landen im Hauptmen von dselect. Installationsmethode NFS Das Kongurationsskript fr diese Methode fragt nach der Adresse des NFS-Servers (siehe Kapitel 17). Hier geben Sie entweder den Rechnernamen oder die IP-Adresse ein. Auerdem mssen Sie das vom Server exportierte Verzeichnis kennen, in dem sich die Distribution bendet. Sind Rechner und Verzeichnis eingegeben, wird festgelegt, in welchem Verzeichnis unterhalb des exportierten Verzeichnisses sich die Debian-Distribution bendet. Geben Sie den Pfad relativ zum exportierten Verzeichnis ohne einen fhrenden Schrgstrich an. Beispiel: pub/mirrors/debian/dists/woody.

188

7 Installation von Software

Das Skript untersucht dann, wo sich unterhalb des Verzeichnisses der DebianDistribution die Verzeichnisse der einzelnen Abteilungen (Sections main, contrib, non-Free usw. siehe Abschnitt 8.2.2) benden. Es macht dabei die Annahme, dass die Verzeichnisse aller Abteilungen in dem Hauptverzeichnis der Distribution liegen. Falls dies nicht der Fall ist, wird nachgefragt. Geben Sie dann wieder die Pfade zu den richtigen Verzeichnissen an und besttigen Sie mit E INGABE. Wenn eine Abteilung (Section) auf dem Server nicht vorhanden ist (was zumindest bei local der Fall sein knnte), geben Sie none ein und besttigen mit E INGABE. Nachdem Sie mit der Eingabe fertig sind, werden Sie noch einmal aufgefordert, E INGABE zu drcken, und gelangen zurck in das Hauptmen von dselect, wo Sie mit der Aktualisierung der Liste der verfgbaren Pakete fortfahren. Installationsmethode Multi-NFS Der Vorteil von Multi-NFS liegt darin, dass mit einem einzigen CD-Laufwerk in einem Netz auf mehreren Rechnern ohne ein Laufwerk von einem Satz CDs aus installiert werden kann. Beachten Sie jedoch, dass dies nur dann praktikabel ist, wenn nicht unabhngig voneinander auf verschiedenen Rechnern installiert wird. MultiNFS verlangt, dass Sie gelegentlich zu Ihrem Server gehen und die CD wechseln. Wie bei der einfachen NFS-Methode werden Sie bei dieser Installationsmethode nach Adresse und exportiertem Verzeichnis des NFS-Servers gefragt und knnen danach genauso verfahren, wie es im Abschnitt 7.4.2 fr das Multi-CD-Verfahren beschrieben ist. Installationsmethode Floppy Das Skript fragt zunchst nach der Gertedatei, die dem Diskettenlaufwerk entspricht, von dem installiert werden soll. Dabei ist ausnahmsweise nicht das Verzeichnis /dev mit anzugeben, sondern nur die Gertedatei in diesem Verzeichnis. In der Regel ist dies fd0 (erstes Diskettenlaufwerk) oder fd1 (zweites Diskettenlaufwerk). In einem zweiten Schritt muss dselect erfahren, in welchem Format die Disketten formatiert sind. Dieses Format muss vom Linux-Kern untersttzt werden. Geben Sie msdos fr DOS/MS-Windows-formatierte Disketten oder minix bzw. ext2 fr Disketten an, die mit einem unter Linux gebruchlichen Dateisystem formatiert wurden. Installationsmethode APT Die von APT zu verwendenden Paketquellen knnen entweder manuell oder mit Hilfe des Programms apt-setup in die Kongurationsdatei /etc/apt/sources.list eingetragen werden. Eine Ausgangskonguration wird whrend der Basisinstallation durch automatischen Aufruf des Programm apt-setup angelegt. Die Konguration von APT ist ausfhrlich in Kapitel 8.4.1, S. 237 beschrieben. Wenn Sie innerhalb von dselect die Installationsmethode APT whlen, prft das Programm, ob die Kongurationsdatei /etc/apt/sources.list bereits existiert. Wenn

7.4 Das interaktive Installationsprogramm: dselect

189

dies der Fall ist, wird die Datei am Bildschirm ausgegeben und nachgefragt, ob sie berschrieben werden soll. In der Regel ist dies nicht gewnscht, weswegen Sie hier N auswhlen sollten. Sollten Sie y auswhlen, fragt das Programm, welche Installationsquellen APT verwenden soll. Die Konguration ist jedoch einfacher mit apt-setup durchzufhren. 7.4.3 Aktualisierung der Liste der verfgbaren Pakete Immer wenn die Installationsmethode neu konguriert wurde oder wenn der Verdacht besteht, dass sich der Inhalt der Installationsquelle gendert hat (was bei Installation von einem Internetserver und Verwendung der unstabilen Variante mehrmals tglich der Fall sein kann), sollte die auf dem System gespeicherte Liste der verfgbaren Pakete aktualisiert werden. Geschieht dies nicht, kann das zur Folge haben, dass ein Paket zur Auswahl steht, das die Installationsquelle gar nicht mehr zur Verfgung stellt. Wenn es dann ausgewhlt wird, tritt sptestens bei dem Versuch, es zu installieren, ein Fehler auf. Die Aktualisierung wird durch Auswahl des Kommandos Update im Hauptmen von dselect durchgefhrt. Abhngig von der gewhlten Installationsmethode werden dann die ausgewhlten Quellen auf ihren Inhalt untersucht, und die lokale Datenbank wird aktualisiert. Falls es hierbei zu einem Fehler kommt, erscheint eine Meldung wie: update available list returned exit status 1 sowie die Aufforderung, die E INGABE-Taste zu bettigen. In diesem Fall sollten Sie zu der Auswahl der Installationsmethode zurckkehren und nochmals berprfen, ob Sie alle Angaben richtig vorgenommen haben. Falls alles richtig ist, knnen Sie weiterhin berprfen, ob mit den Installationsquellen alles in Ordnung ist, beispielsweise, ob die richtige CD im Laufwerk liegt oder ob bei Verwendung von APT die gewhlten Server tatschlich erreichbar sind. 7.4.4 Auswahl der zu installierenden Pakete Mit dem Kommando select im Hauptmen von dselect werden die Pakete ausgewhlt, die installiert oder entfernt werden sollen. Nach der Anwahl dieses Kommandos erscheint zunchst ein Hilfebildschirm4, der eine kurze Einfhrung in die Paketliste gibt. Mit der Taste L EER gelangen Sie von dort direkt zur Auswahl, mit der Taste ? oder E INGABE in den Auswahlbildschirm der Hilfe. Dort knnen Sie sich durch Drcken der angezeigten Tasten Informationen zu speziellen Themen wie der Tastenbelegung und detaillierten Beschreibungen zur Auswahlliste anzeigen lassen. Auch hier verlassen Sie die Hilfe jederzeit durch Bettigen der Taste L EER. Danach erscheint die Liste der verfgbaren und installierten Pakete, wie sie in Abbildung 7.6 zu sehen ist.
4 Sie knnen das Anzeigen des Hilfebildschirms unterdrcken, indem Sie dselect mit der Option - -expert aufrufen.

190

7 Installation von Software

Abbildung 7.6. dselect: Auswahl der Pakete

Bedeutung der Informationen im Auswahlbildschirm Diese Liste enthlt eine Reihe wichtiger Informationen, und es erfordert eine gewisse bung, sie alle auf einen Blick zu erkennen. Im oberen Teil des Bildschirms benden sich untereinander die einzelnen installierten oder verfgbaren Pakete. Diese sind nach den folgenden Kategorien sortiert: Broken Pakete, die zwar installiert sind, bei denen das Paket-Management-System aber meint, dass sie nicht mehr funktionieren, etwa weil andere Pakete nicht mehr vorhanden sind (Abhngigkeiten). Obsolete Pakete, die installiert sind, jedoch in der Liste der verfgbaren Pakete nicht erscheinen. Sie sollten zurckhaltend mit dem Lschen dieser Pakete sein. Falls Sie beispielsweise manuell ein Paket installiert haben, das nicht Bestandteil der ofziellen Distribution ist, wird dieses Paket unter Umstnden als Obsolete eingestuft. Trotzdem wollen Sie es vermutlich behalten. New Pakete, die neu sind, sich also bisher nicht in der Liste der verfgbaren Pakete befanden, jedoch nach der letzten Aktualisierung dieser Liste dort eingetragen worden sind. Updated Pakete, die auf dem System installiert sind und von denen neuere Versionen verfgbar sind. Sie werden von dselect automatisch zum Aktualisieren ausgewhlt, was in der Regel auch gewnscht ist. Auch nach einer frischen Installation des Basissystem kommt es vor, dass hier Pakete aufgefhrt sind. Gelegentlich basiert das Basissystem nmlich auf lteren Versionen der in ihm enthaltenen Pakete. Dies ist auch nicht weiter schlimm, da solche Pakete sofort nach der Installation des Basissystems aktualisiert werden. Up-to-date Pakete, die installiert sind und deren Version der verfgbaren Version entspricht.

7.4 Das interaktive Installationsprogramm: dselect

191

Available Pakete, die verfgbar, aber nicht auf dem System installiert sind. Innerhalb dieser Kategorien sind die Pakete nach Dringlichkeitsstufen (Prioritten) sortiert. Diese reichen von Required (unbedingt notwendig) ber Important (wichtig) und Standard (gewhnliche Pakete) bis hin zu Optional (optional installierbare Pakete) und Extra (zustzliche Pakete). Wichtig ist nur zu wissen, dass Pakete der Stufe Required prinzipiell nicht gelscht werden drfen. Eine weitere Gliederungsebene stellen die Unterabteilungen dar. Sie haben eher informellen Charakter und dienen der Einordnung von Paketen in bestimmte Anwendungsarten (siehe Kap.: 8.2.2). Die wichtigsten sind: base Bestandteile des Basissystems, meist mit der Dringlichkeitsstufe required, drfen nicht gelscht werden. admin Programme und Pakete zur Verwaltung des Systems. doc Dokumentationen aller Art. editors Editoren (Programme zum Bearbeiten von Dateien, meist Textdateien). devel (Developer) Werkzeuge zur Programmentwicklung sowie zum Kompilieren bentigte Pakete. interpreters Programme zur Ausfhrung interpretierter Programmiersprachen (Perl, Python, BASIC etc.) net Netzprogramme und Verwaltungswerkzeuge. mail Email-Programme aller Art. Dazu gehren alle Programme, die irgendwie zur Bearbeitung, Versendung oder Aufbewahrung von Email benutzt werden. news Programme, die im Zusammenhang mit Netnews stehen. text Textverarbeitungsprogramme. Hierzu gehren Ofce-Anwendungen sowie viele kleine, auf UNIX-Systemen wichtige Werkzeuge zur Bearbeitung und Konvertierung von Texten in unterschiedlichen Formaten. A tex Alle Programme fr TEXund LTEX, dem leistungsfhigen Textsatzsystem. utils (Utilities) Werkzeuge und Ntzliches aller Art. libs (Libraries) Bibliotheken. Vorausgesetzt dass eine Bibliothek nicht zur Entwicklung von Programmen installiert werden soll, braucht man Bibliotheken in der Regel nicht von Hand auszuwhlen. Ist ein Paket auf eine bestimmte Bibliothek angewiesen, so wird hierauf nach Auswahl des Paketes hingewiesen, und man erhlt die Mglichkeit, die bentigte Bibliothek ebenfalls auszuwhlen. misc (Miscelaneous) Verschiedenes, das sich nicht besser einordnen lsst. oldlibs (Alte Bibliotheken) Programmbibliotheken, die von Debian nicht mehr benutzt werden. Oftmals ist es fr den Betrieb von Programmen, die nicht zu Debian gehren, notwendig, Bibliotheken aus diesem Bereich zu installieren. Beispielsweise gibt es eine Reihe kommerzieller Programme, die fr die Verwendung einer lteren C-Laufzeitbibliothek bersetzt wurden (libc5) und mit der aktuellen Bibliothek von Debian (glibc) nicht funktionieren. otherosfs (Other Operating Systems File Systems) Programme, die im Zusammenhang mit anderen Betriebssystemen stehen. Hierzu gehren Werkzeuge fr den Umgang mit deren Dateisystemen ebenso wie der DOS-Emulator DOSEmu und die Laufzeitumgebung fr MS-Windows-Programme wine.

192

7 Installation von Software

web Programme fr das World Wide Web (Web, WWW), beispielsweise WebBrowser. x11 Das X Window System (X11, die Grundlage aller graschen Benutzeroberchen) sowie Window-Manager, Arbeitsplatzumgebungen und viele Anwendungen. games Spiele und Spielzeuge. graphics Programme zum Ansehen und Bearbeiten von Graken. math Mathematische Programme. sound Programme zum Anhren und Bearbeiten von akustischen Daten. Statusinformationen In der Zeile jedes verfgbaren oder installierten Pakets bendet sich zunchst ganz links eine aus vier Zeichen bestehende Zeichenkette, die Aufschluss ber den Status des Paketes auf dem System gibt. Diese Zeichenkette ist mit EIOM berschrieben. Die einzelnen Zeichen haben folgende Bedeutungen: E (Error) Fehler: Ein Leerzeichen bedeutet hier, dass bezglich des Pakets kein Fehler aufgetreten ist. R bedeutet, dass ein schwerwiegender Fehler vorliegt und das Paket neu installiert werden muss. I (Installed) Die Spalte gibt Auskunft ber den Status, den das Paket auf dem System hat. Dabei bedeuten (siehe auch Kap 8.1.5): - (Remove) Das Paket ist nicht installiert. Es knnen jedoch Kongurationsdateien vorhanden sein. * (Install) Das Paket ist installiert. U (Unpacked) Das Paket ist ausgepackt, aber noch nicht konguriert (Fehler). C (Half-congured) Whrend der Konguration des Pakets ist ein Fehler aufgetreten. I (Half-installed) Whrend der Installation des Pakets ist ein Fehler aufgetreten. O (Old) Der Status, der fr das Paket vorgesehen war, bevor in dieser Sitzung nderungen durchgefhrt wurden (wie unten). M (Mark) Der Status, der fr das Paket vorgesehen ist. Hierbei bedeuten: - (Remove) Das Paket soll vom System entfernt bzw. nicht installiert werden. Beim Lschen bleiben die Kongurationsdateien erhalten, sodass es sich ohne neue Konguration wieder installieren lsst und dann wie vor dem Lschen benutzt werden kann. * (Install) Das Paket soll installiert werden bzw. bleiben. Falls die verfgbare Version neuer ist als die installierte, soll es aktualisiert werden. = (Hold) Das Paket soll den Status behalten, den es hat. Es soll nicht aktualisiert werden, falls eine neue Version zur Verfgung steht. _ (Purge) Das Paket soll inklusive seiner Kongurationsdateien gelscht werden. Falls sich lediglich die Kongurationsdateien auf dem System benden, werden diese gelscht. n (New) Das Paket ist neu; es wurde noch nicht festgelegt, ob es installiert oder entfernt werden soll. Wenn es nicht explizit zur Installation ausgewhlt wird, hat es beim nchsten Aufruf den Status Remove.

7.4 Das interaktive Installationsprogramm: dselect

193

Durch Bettigung der Taste V (verbose) werden ausfhrliche Informationen fr jedes Paket angezeigt. Durch nochmaliges Drcken derselben Taste wird die Anzeige wieder in den ursprnglichen Zustand versetzt. Neben der Statusbeschreibung steht die Prioritt oder Dringlichkeitsstufe, wie oben beschrieben, in abgekrzter Form. Dann folgt die Gruppe des Paketes (base oder x11 usw.), daneben seine Bezeichnung. Noch weiter rechts folgt die Versionsnummer des Pakets, wie auf dem System installiert. Hier steht <none>, falls es nicht installiert ist. Dann die Versionsnummer, in der das Paket verfgbar ist. Hier bedeutet <none>, dass es nicht mehr verfgbar (obsolete) ist. Die Zeile wird abgeschlossen durch eine kurze Beschreibung des Paketes. Durch Bettigung der Taste O (order) knnen die Reihenfolge der Pakete sowie die Informationen fr jedes Paket verndert werden. Hierbei stehen drei verschiedenen Modi zur Verfgung: 1. Anzeige nach Verfgbarkeit und Prioritt (Dringlichkeitsstufe) (avail., priority). 2. Anzeige nach Verfgbarkeit und Gruppe (avail., section). 3. Anzeige nur nach Verfgbarkeit (availability). Der zur Zeit dargestellte Modus steht in Klammern in der obersten Zeile. Durch wiederholtes Bettigen der Taste O wird von einem Modus zum nchsten geschaltet. Im unteren Teil des Bildschirms wird eine ausfhrliche Beschreibung des Paketes angezeigt, deren Inhalt mit Tastenkommandos (s. u.) gendert werden kann. Benutzung des Auswahlbildschirms Innerhalb der Liste werden mit verschiedenen Tastenkommandos Pakete gesucht, unterschiedliche Informationen zu den Paketen angezeigt und Pakete zur Installation oder zur Entfernung ausgewhlt. Die im unteren Teil des Bildschirms angezeigten Informationen sowie alle Kommandos, die den Status eines Pakets verndern, beziehen sich dabei auf das gerade ausgewhlte, durch invertierte Schrift hervorgehobene Paket. Wichtig zu wissen ist, dass alle Kommandos erst dann wirksam werden, wenn Sie nochmals besttigt werden. Es ist mglich durchzuspielen, was passiert, wenn verschiedene Pakete gelscht oder installiert werden, ohne dass wirklich etwas gendert wird. Im einzelnen lassen sich folgende Aktionen durchzufhren (siehe auch Tabelle: 7.1): Suchen nach Paketen Nach Bettigung der Taste / kann in der untersten Zeile des Bildschirms die Zeichenkette eingegeben werden, nach der gesucht werden soll. Nach Besttigung wird das nchste Paket ausgewhlt, in dessen Namen die Zeichenkette vorkommt. Damit die Zeichenkette nicht immer wieder eingegeben zu werden braucht, wenn mehrmals nach ihr gesucht werden soll, kann danach mit der Taste N zu den nchsten Paketen gesprungen werden. Soll beispielsweise nach Paketen gesucht werden, in deren Namen die Zeichenkette mp3 vorkommt, so ist zunchst die Taste / zu bettigen, daraufhin die Zeichenkette mp3 (MP3-Musikformat) einzugeben und dann E INGABE zu drcken. Durch weiteres Bettigen der Taste N knnen dann alle weiteren Pakete angezeigt werden, in denen diese Zeichenkette vorkommt. Eine mchtigere Funktion zum

194

7 Installation von Software

Durchsuchen der Liste verfgbarer Pakete wird mit dem Programm apt-cache zur Verfgung gestellt. Siehe Abschnitt 8.4.4, S. 255. Manuelles Durchsuchen der Liste Hier stehen die gleichen Tastenkommandos zur Verfgung wie schon bei der Liste zur Auswahl des Installationsverfahrens: Durch die Pfeiltasten sowie die Tasten S EITE - RAUF und S EITE - RUNTER wird in der Liste vor- und zurckgeblttert. Auf Terminals, bei denen diese Tasten nicht zur Verfgung stehen oder nicht funktionieren, knnen auch die Tasten L EER oder S HIFT- N zum Vorwrtsblttern sowie Z URCK oder S HIFT- P zum Zurckblttern verwendet werden. Zum Auswhlen eines Paketes knnen darber hinaus auch die Tasten N oder J (vorwrts) sowie P oder K (rckwrts) verwendet werden. Durch die Tasten P OS 1 oder T gelangt man an den Anfang der Liste und durch die Tasten E NDE oder E an das Ende. Weiter kann durch die Tasten P FEIL R ECHTS oder S HIFT- F sowie die Tasten P FEIL L INKS oder S HIFT- B die Anzeige nach links beziehungsweise nach rechts verschoben werden. Anzeigen unterschiedlicher Informationen zum ausgewhlten Paket Die in der unteren Hlfte des Bildschirms angezeigten Informationen passen oft nicht ganz in den zur Verfgung stehenden Rahmen. Deswegen kann mit den Tasten D und U um eine Seite vor- oder zurckgeblttert werden. Zeilenweises Scrollen ist durch die Tastenkombinationen S TRG - D oder S TRG - U mglich. Darber hinaus kann die Art der angezeigten Informationen verndert werden: Standardmig wird eine ausfhrliche Beschreibung angezeigt. Durch Bettigen der Taste I wird auf die internen Kontrollinformationen des Paketes gewechselt. Auch hier wird durch wiederholtes Drcken dieser Taste in den jeweils nchsten Modus geschaltet. Die Kontrollinformationen enthalten neben der ausfhrlichen Beschreibung Angaben zu Abhngigkeiten und Vorschlgen, sodass man sich ber die Konsequenzen einer Installation unterrichten kann. Auswahl von Paketen zur Installation Um fr das ausgewhlte Paket festzulegen, dass es installiert werden soll, ist die Taste + oder die Taste E INFG zu drcken. Daraufhin erscheint u. U. ein Bildschirm, der ber etwaige Konikte informiert und die Mglichkeit bietet, diese zu lsen (s. u.). Einfrieren eines Pakets Gelegentlich ist es unerwnscht, ein Paket zu aktualisieren, obwohl es in einer neueren Version zur Verfgung steht. Da dselect normalerweise alle installierten Pakete automatisch zur Aktualisierung auswhlt, sobald diese in einer neueren Version vorliegen, kann fr einzelne Pakete der Status Hold ausgewhlt werden. Dies geschieht durch Bettigen einer der Tasten = oder S HIFT- H. Entschliet man sich spter, das Paket wieder zur Aktualisierung freizugeben, so kann der Hold-Status mit den Tasten : oder S HIFT- G wieder aufgehoben werden. Auswahl von Paketen zum Lschen Um ein ausgewhltes Paket zum Lschen anzumelden, ist entweder die Taste E NTF oder die Taste - zu drcken. Auch das Lschen kann zu Konikten fhren, sodass Sie sich danach im weiter unten beschriebenen Bildschirm zur Lsung von Konikten wiedernden. Die Kongurationsdateien eines Pakets bleiben nach dem Lschen auf dem System vorhanden. Soll ein Paket mit allem Zubehr gelscht werden, das System

7.4 Das interaktive Installationsprogramm: dselect

195

also in einen Zustand versetzt werden, als sei das Paket nie installiert gewesen, so ist durch die Taste _ die Aktion Purge auszuwhlen. Verlassen der Liste, ohne eventuelle nderungen zu bernehmen Durch Bettigung einer der Tasten X oder E SC wird die Auswahl abgebrochen. Alle nderungen gehen dabei verloren. Weiter ist es mglich, durch das Kommando S HIFT- R smtliche nderungen rckgngig zu machen, ohne die Liste zu verlassen. Verlassen der Liste mit Sicherung der durchgefhrten nderungen Mit der Taste E INGABE wird die Liste mit allen nderungen gespeichert. Dabei wird eine letzte berprfung der Abhngigkeiten durchgefhrt. Falls irgendwelche Abhngigkeiten nicht erfllt sind, erscheint der Bildschirm zum Lsen von Konikten. Ansonsten wird das Hauptmen von dselect angezeigt. Soll die abschlieende Konikt- und Abhngigkeitsprfung bersprungen werden, etwa weil bekannt ist, dass Konikte bestehen, die aufgrund nicht verfgbarer Pakete nicht gelst werden knnen, so wird die Auswahl auch durch das Kommando S HIFT- Q beendet. Auch hier werden alle nderungen gespeichert, die Abhngigkeitsprfung allerdings bersprungen. Dies kann bei der spteren tatschlichen Installation oder Entfernung von Paketen zu Problemen fhren. Weitere Kommandos Ein Neuzeichnen des Bildschirms wird durch die Tastenkombination S TRG - L bewirkt. Durch die Tasten V oder S HIFT- V werden die Statusinformationen ausfhrlicher. Lsen von Konikten Nach jeder Aktion, die den Status eines Paketes auf dem System verndern wrde, beispielsweise nach dem Auswhlen eines Paketes zur Installation, berprft dselect, ob alle Abhngigkeiten dieses Paketes erfllt sind und ob Konikte zwischen dem ausgewhlten Paket und einem anderen Paket, dass bereits auf dem System installiert ist, zu erwarten sind. Wenn dies nicht der Fall ist, wird das Paket fr die gewnschte Aktion ausgewhlt. Sollten jedoch Konikte auftreten, Abhngigkeiten nicht erfllt sein oder ein zur Installation ausgewhltes Paket andere Pakete zur Installation vorschlagen, die noch nicht auf dem System installiert sind, so wird zunchst ein Hilfetext angezeigt, der ber die Situation aufklrt. Nach Bettigung der Taste L EER erscheint dann eine Anzeige, wie sie in Abbildung 7.7 dargestellt wird. In dem abgebildeten Beispiel wurde versucht, das Mail-Transport-System exim auf einem System zur Installation auszuwhlen, auf dem bereits ein anderes Mail-Transport-System, nmlich smail, installiert war. Da es auf einem Debian GNU/Linux System nur ein einziges aktives Mail-Transport-System geben darf, trat ein Konikt auf. Der angezeigte Bildschirm zum Lsen von Konikten ist genauso aufgebaut wie die normale Paketliste, mit dem Unterschied, dass hier nur die an der zu lsenden Situation beteiligten Pakete aufgefhrt werden. Darber hinaus bendet sich im unteren Teil des Bildschirms neben den schon bekannten Informationen, die weiterhin mit I erreicht werden knnen eine Beschreibung der Art des Konikts aus Sicht des Paketes, welches im oberen Teil des Bildschirms ausgewhlt ist. Dabei

196

7 Installation von Software

Abbildung 7.7. dselect: Lsen von Konikten

erscheint im oberen Teil zunchst das Paket, welches den Konikt ausgelst hat, in unserem Beispiel exim. In der Abbildung sind fr dieses Paket im unteren Teil des Bildschirms folgende Informationen zu erkennen: Die erste Zeile (exim suggests eximon) stellt keinen Konikt dar. Hier handelt es sich lediglich um die Empfehlung, das Paket eximon ebenfalls zu installieren. Dieses Paket ist deswegen in der Liste aufgefhrt und kann dort ausgewhlt werden. Die Zeilen zwei und drei (exim conicts with mail-transport-agent) machen auf den Konikt aufmerksam: Es ist zumindest ein weiteres Programm installiert oder zur Installation ausgewhlt, das ebenfalls einen mail-transportagent zur Verfgung stellt. Unter eximon sind deswegen alle verfgbaren Pakete aufgefhrt, die das virtuelle Paket mail-transport-agent anbieten. Klar zu erkennen ist auch, dass der Konikt mit dem Paket smail besteht, da dieses (zu erkennen an den beiden Sternen) bereits installiert ist. Die letzte Zeile exim provides mail-transport-agent teilt uns mit, was wir schon wissen, nmlich, dass auch exim einen mail-transport-agent zur Verfgung stellt. dselect versucht in solchen Situationen, sinnvolle Vorschlge zu machen. In dem Beispiel ist dem Programm bekannt, dass exim zur Installation ausgewhlt wurde und smail bereits auf dem System installiert ist. Deswegen ist es sinnvoll, smail zum Lschen auszuwhlen, wie es in der vorgegebenen Liste der Fall ist. Da der Benutzer jedoch unter Umstnden nicht wei, dass die Installation eines Paketes das Lschen eines anderen erzwingt, soll dies nicht automatisch geschehen. Die nderungen lassen sich wieder rckgngig machen. Zur Lsung eines Konikts stehen die folgenden Aktionen zur Verfgung:

7.4 Das interaktive Installationsprogramm: dselect

197

Manuelle Auswahl In dem Koniktbildschirm stehen alle Kommandos zur Verfgung, die auch in der normalen Liste (mit allen Paketen) zur Verfgung stehen. Es ist mglich, von Hand Pakete zur Deinstallation auszuwhlen, mit denen ein Konikt besteht oder die von einem zum Lschen ausgewhlten Paket abhngig sind. Ebenso kann die Auswahl zum Lschen eines Paketes aufgrund der angezeigten Abhngigkeiten rckgngig gemacht werden oder ein Paket, das zur Installation ausgewhlt wurde, wieder entfernt werden. Annullierung der Auswahl, die zum Konikt fhrte Durch Bettigung der Taste S HIFT- R wird der Status aller am Konikt beteiligten Pakete wieder so eingestellt, wie er zuvor war. bernahme der Vorschlge von dselect Die Taste S HIFT- U bewirkt, dass alle am Konikt beteiligten Pakete den Status erhalten, den dselect vorschlgt. Hierbei ist zu beachten, dass dselect nicht jeden Konikt lsen kann, da gelegentlich Entscheidungen fr oder gegen ein Paket getroffen werden mssen. Die Vorschlge von dselect sollten immer berprft und gegebenenfalls nachbearbeitet werden. Beibehaltung der Koniktsituation Durch das Kommando S HIFT- D erhalten alle beteiligten Pakete den Status, wie er ausgewhlt wurde, ohne dass die Vorschlge von dselect bercksichtigt werden. Der Konikt wird nicht gelst, was voraussichtlich zu Strungen fhrt. Nachdem der Konikt gelst wurde, wird die Auswahl mit der Taste E INGABE bernommen. Daraufhin erfolgt erneut die berprfung von Konikten und Abhngigkeiten, was dazu fhren kann, dass wieder der Bildschirm zum Lsen von Konikten erscheint. Ursachen hierfr knnen darin bestehen, dass ein Problem entweder nicht vollstndig gelst wurde, oder dass mit der Lsung neue Konikte geschaffen wurden. In diesem Fall mssen die neuen Probleme wie beschrieben gelst werden. Man kann nur hoffen, dass das Verfahren in endlicher Zeit einem Ziel zustrebt (konvergiert). Darber hinaus besteht wie im Auswahlbildschirm die Mglichkeit, durch Drcken der Taste S HIFT- Q die Konikt- und Abhngigkeitsprfung zu unterdrcken. Die Folge ist, dass mit der Paketauswahl fortgefahren wird, obwohl ein Problem besteht. Dieses Vorgehen ist nur in Ausnahmesituationen zu empfehlen und birgt das Risiko, dass das System hinterher nicht richtig funktioniert. Dafr muss dann der Systemverwalter den Kopf oder andere Krperteile hinhalten. Grundstzlich wird zur Koniktbehebung sowie zur Erfllung von Abhngigkeiten die folgende Vorgehensweise empfohlen: 1. Wenn Sie ausreichend Platz haben, sollten Sie alle auf Grund von Abhngigkeiten bentigten Pakete installieren. Das gleiche gilt im allgemeinen fr Vorschlge (Recommendations, Suggestions). 2. Es ist sinnvoll, sich bei der Auswahl der Pakete von Konikten und Abhngigkeiten leiten zu lassen. Gerade wenn Sie nicht genau wissen, welche Pakete Sie bentigen, beschrnken Sie sich auf die notwendigen und von die von diesen bentigten Pakete. Nachinstallationen optionaler Pakete sind immer mglich.

198

7 Installation von Software

3. Im Falle eines Konikts sollten Sie prfen, ob Sie das Paket, durch das der Konikt verursacht wurde, wirklich brauchen. Wenn Sie sich nicht sicher sind, sollten Sie die Auswahl lieber rckgngig machen. 4. Falls es Ihnen nicht gelingt, einen Konikt zu lsen, kann das daran liegen, dass die Liste der verfgbaren Pakete unvollstndig ist. Beispielsweise, weil Sie nur eine CD aus einem Satz verwenden. Sie erkennen das daran, dass zu einem bentigten Paket die Meldung . . . seems not to be available erscheint. berprfen Sie in diesem Fall die Installationsmethode. 5. In einigen Fllen stehen mehrere Pakete zur Verfgung, um eine Abhngigkeit zu befriedigen. Versuchen Sie in solchen Fllen, sich anhand der Informationen im unteren Teil des Bildschirms (umschalten mit I) fr eine Alternative zu entscheiden. Oft knnen Sie auch mehrere Alternativen gleichzeitig installieren. Dies verbraucht zwar Platz, aber Sie haben so die Mglichkeit, spter festzustellen, welche der Alternativen Sie wirklich benutzen wollen. Die anderen Pakete knnen Sie dann mit dselect oder einem anderen Programm lschen.
Tabelle 7.1. Wichtige dselect-Tastenkommandos

Bedeutung Allgemein Neuzeichnen des Bildschirms: Besttigung der Auswahl: Navigation Vorwrts: Rckwrts: Seite runter: Seite rauf: An den Anfang: An das Ende: Inhalt nach links: Inhalt nach rechts: Suchen: Suche wiederholen: Informationsteil Seite runter: Seite rauf: Aktionen allgemein Sichern aller Einstellungen: Verlassen ohne sichern: Ansicht Paketauswahl Ausfhrliche Form:

Eingabe S TRG - L E INGABE


N,

P FEIL RUNTER

P , P FEIL R AUF S HIFT- N, S EITE - RUNTER

S HIFT- P, S EITE - RAUF P OS 1 E NDE S HIFT- F, P FEIL R ECHTS S HIFT- B, P FEIL L INKS / Suchbegriff E INGABE \
T, E, D U

E INGABE X , E SC
V

Fortsetzung auf nchster Seite

7.4 Das interaktive Installationsprogramm: dselect

199

Fortsetzung

Bedeutung Sortierung umschalten: Paketinformationen umschalten: Aktionen Paketauswahl Auswahl zur Installation (install): Auswahl zur Deinstallation (deinstall): Auswahl zum vollstndigen Lschen (purge): Einfrieren des Status (hold): Freigeben des Status (unhold): Alle Einstellungen rckgngig: Sichern ohne Koniktprfung: Lsen von Konikten Manuelles Auswhlen: Zurck zur Ausgangssituation: bernahme der Vorschlge: Beibehalten des Konikts:

Eingabe
O I

+, E INFG -, E NTF _(Unterstrich) S HIFT- H, = S HIFT- G, : S HIFT- R S HIFT- Q (wie oben) S HIFT- R S HIFT- U S HIFT- D

7.4.5 Installation der Pakete Nachdem die Pakete ausgewhlt worden sind, mssen sie noch installiert beziehungsweise entfernt werden. Im Hauptmen von dselect ist dazu das Kommando Install auszuwhlen. Abhngig von der unter Access gewhlten Installationsmethode mssen die bentigten Pakete u. U. zunchst bereitgestellt werden, beispielsweise von einem Server heruntergeladen werden. Bei der Installation von CD/DVD oder einem anderen lokalen Dateisystem ist dies nicht notwendig. Dafr kann es aber bei den Multi-Verfahren (Multi-CD oder Multi-NFS) vorkommen, dass Sie bestimmte CDs in das Laufwerk einlegen mssen. Wurde APT als Installationsmethode gewhlt, so wird vor dem eigentlichen Beginn der Installation eine bersicht ausgegeben, wieviele Pakete gelscht, aktualisiert und installiert werden sollen. Unter Umstnden wird hier nochmals auf Fehler hingewiesen. Daraufhin wird gefragt, ob tatschlich mit der Installation begonnen werden soll. In der Regel wird man diese Frage mit y beantworten. APT unterscheidet sich von anderen Installationsmethoden auerdem dadurch, dass es zur Deinstallation ausgewhlte Pakete entfernt, bevor und whrend die Installation und Aktualisierung anderer Pakete stattndet. Bei Benutzung von APT braucht das Kommando remove im Hauptmen nicht mehr aufgerufen zu werden. Sobald alle bentigten Pakete zur Verfgung stehen, werden sie nach dem in Kapitel 8.1.4 beschriebenen Verfahren installiert. Es werden die Skripte zur Vorbereitung der Installation (preinst), bei einer Aktualisierung auch die zur Vorbereitung der Entfernung von Paketen (prerm) ausgefhrt, woraufhin die Pakete ausgepackt werden. Ist dies fr alle zu installierenden Pakete geschehen, werden sie konguriert. Das heit, es werden die postinst-Skripte ausgefhrt.

200

7 Installation von Software

Natrlich kann es bei diesen Schritten zu Fehlern kommen. Dies wird besonders dann der Fall sein, wenn whrend der Auswahl von Paketen Abhngigkeiten oder Konikte explizit berschrieben wurden. Sollte hier eine Fehlermeldung auftreten, so muss unter Umstnden zur Paketauswahl zurckgekehrt werden, um etwaige Probleme zu beseitigen. Gelegentlich kommt es jedoch auch vor, dass Pakete whrend ihrer Konguration voraussetzen, dass andere Pakete bereits vollstndig installiert und konguriert sind. Solche Fehler lassen sich in der Regel dadurch beheben, dass nach der Installation das Kommando Cong im Hauptmen von dselect aufgerufen wird, wodurch bisher nicht kongurierte Pakete ebenfalls konguriert werden. In schwierigen Situationen ist dies sogar mehrmals notwendig. Die Verwendung von APT ist auch deswegen zu empfehlen, weil dieses Programm solche Fehler in der Regel von Anfang an vermeidet. Weitere Fehlerquellen sind beschdigte oder unvollstndige Paketdateien, bei Installationen ber ein Netz unerreichbare Netzadressen oder fehlende Berechtigungen zum Zugriff auf die ausgewhlten Ressourcen. Bei CD/DVD-Laufwerken kommt es darber hinaus gelegentlich zu Lesefehlern. Allgemein kann hier nur empfohlen werden, etwaige Fehlermeldungen genau zu lesen, um der Ursache auf die Spur zu kommen. Wichtig ist dabei zu bedenken, dass das Fehlschlagen der Installation eines wichtigen Paketes weitere Fehlermeldungen nach sich ziehen kann. Versuchen Sie im Falle einer Reihe von Fehlermeldungen zunchst, den als erstes auftauchenden Fehler zu beheben. Wenn Sie die Installationsmethode APT verwenden, erfolgt nach der Installation die Frage, ob die heruntergeladenen Paketdateien gelscht werden sollen. Dadurch lsst sich Speicherplatz freigeben. Auf der anderen Seite mssen gelschte Paketdateien erneut beschafft werden, wenn die Pakete spter nochmals installiert werden sollen. Kongurationsphase Whrend der Kongurationsphase mancher Pakete ist es notwendig, Fragen zu beantworten. So braucht beispielsweise ein zu installierendes Drucksubsystem Informationen ber die angeschlossenen Drucker, und ein Mail-Transport-System muss wissen, ob der Rechner direkt mit dem Internet verbunden ist oder ein unvernetzter Heimrechner ist, auf dem Email nur an lokale Benutzer zugestellt werden kann. Glcklicherweise werden viele Pakete mit einem speziellen Kongurationsskript ausgeliefert, durch dessen Aufruf die in ihnen enthaltene Programme auch spter konguriert werden knnen. Deswegen knnen Sie die Konguration vieler Pakete verschieben und brauchen bei einer Erstinstallation nicht gleich das gesamte System vollstndig durchzukongurieren. Kapitel 7.5 (Seite 202) befasst sich ausfhrlich mit der Konguration von Paketen, die in Standardumgebungen hug installiert werden. Dort werden viele Fragen, die von solchen Paketen whrend der Kongurationsphase gestellt werden, behandelt, sodass eine Standardinstallation ohne groe Schwierigkeiten gelingen sollte. Da die whrend der Kongurationsphase abgefragten Informationen abhngig von den Paketen sind, kommt es schon einmal vor, dass Fragen gestellt werden, die

7.4 Das interaktive Installationsprogramm: dselect

201

Sie nicht sofort beantworten knnen. In diesen Fllen knnen Sie meist die vorgegeben Einstellungen bernehmen und die Konguration spter verbessern. 7.4.6 Konguration unkongurierter Pakete Nach Abschluss der Installation sollte sicherheitshalber in jedem Fall das Kommando Cong im Hauptmen von dselect aufgerufen werden. Sind alle installierten Pakete konguriert, bewirkt dieses Kommando nichts. Falls jedoch ein oder mehrere Pakete bisher zwar installiert, aber nicht konguriert sind, werden diese nun konguriert. 7.4.7 Lschen von Paketen Wenn eine andere Installationsmethode als APT benutzt wird, mssen zum Lschen ausgewhlte Pakete durch das Kommando Remove explizit gelscht werden. Die Entfernung von Paketen sollte dann nmlich erst nach der Installation oder Aktualisierung durchgefhrt werden, weil denkbar ist, dass zu lschende Pakete von den vor einer Aktualisierung installierten Paketen noch bentigt werden. In solchen Fllen wrde das Lschen von Paketen vor der Aktualisierung zu Fehlern oder einem inkonsistenten System fhren. Da Pakete auch automatisch zum Lschen ausgewhlt werden knnen, etwa weil ein neues Paket ein lteres mit einem anderen Namen ersetzt, sollte nach der Installation oder Aktualisierung von Paketen immer das Kommando Remove im Hauptmen von dselect aufgerufen werden. Dadurch werden auch die Pakete, die zur vollstndigen Deinstallation (Purge) ausgewhlt wurden, vom System entfernt. 7.4.8 Weitere Hinweise zur Benutzung von dselect Noch einige Tipps und Tricks zur Arbeit mit dselect: Wenn Sie dselect in einem Terminalfenster unter X11 verwenden, beispielsweise in einem xterm- oder konsole5 -Fenster, und sich wundern, warum keine Farben mehr dargestellt werden, sollten Sie die Umgebungsvariable TERM auf den Wert linux setzen. Geben Sie dazu das Kommando debian:~# export TERM=linux ein, bevor Sie dselect starten. Falls Sie eine CD-basierte Installationsmethode gewhlt haben, bernimmt dselect unter Umstnden das Einbinden des betreffenden Mediums in das Dateisystem. Es kann dabei zu Fehlern kommen, falls die CD schon in das Dateisystem eingebunden ist. Sie knnen dies leicht berprfen, in dem Sie versuchen, mit ls das oberste Verzeichnis der CD zu lesen. Funktioniert das, ist die CD bereits gemountet. Geben Sie dann das Kommando
5

Das KDE-Terminalemulationsprogramm.

202

7 Installation von Software

debian:~# umount /cdrom ein, wobei Sie /cdrom durch ein anderes Verzeichnis ersetzen mssen, wenn die CD woandershin eingebunden ist. Falls wichtige Pakete in der Liste der installierten oder verfgbaren Pakete fehlen, sollten Sie prfen, ob Sie Ihre Installationsmethode richtig konguriert haben. Bei Installation von CD sollten Sie darber hinaus prfen, ob bei der Aktualisierung der Liste der verfgbaren Pakete wirklich die CD mit den vollstndigen Katalogen im Laufwerk war. Dies ist meist die letzte CD mit Binrpaketen. Einige Hersteller von Debian-CDs legen zustzliche Pakete in Verzeichnisse auf CDs, die von den Installationsmethoden nicht gefunden werden. Solche Pakete knnen Sie von Hand mit dpkg (siehe 8.3) installieren.

7.5 Paketkonguration
Der letzte Teil der Installation eines Pakets besteht in der Konguration. Dabei nden zwei unterschiedliche Vorgnge statt: 1. Das Paket wird mit Kongurationsdateien ausgestattet. Dies kann bedeuten, dass die in dem Paket enthaltenen Kongurationsdateien an den richtigen Platz kopiert werden oder dass gar nichts geschieht, weil es sich bei der Konguration um eine Aktualisierung handelt und die Kongurationsdateien bereits vorhanden sind. In bestimmten Fllen kann nicht automatisch entschieden werden, was getan werden soll, weswegen dpkg den Benutzer nach seinen Wnschen fragen muss. 2. Es wird das postinst-Skript ausgefhrt. Aufgabe des Skriptes ist es, die endgltige Konguration des Pakets festzulegen. Das Skript kann ebenfalls mit dem Benutzer interagieren. Beispielsweise knnte whrend der Installation eines WebBrowsers gefragt werden, welche Web-Seite defaultmig beim Start des Browsers geladen werden soll. Dieses Verfahren ist leider mit zwei Nachteilen verbunden: Wenn eine groe Anzahl von Paketen installiert wird, wie etwa whrend einer Neuinstallation des gesamten Systems, werden immer wieder und mit greren Zeitabstnden Fragen gestellt, nmlich dann, wenn gerade irgendein Paket konguriert wird. Installationen lassen sich deswegen schwer unbeaufsichtigt durchfhren. Es ist nicht klar, wie die Konguration eines Pakets wiederholt werden kann. Die postinst-Skripte sind nmlich nur fr den Aufruf durch dpkg bestimmt und knnen nicht ohne weiteres vom Benutzer aufgerufen werden. Das zweite Problem ist bei vielen Paketen durch ein weiteres Skript gelst worden, mit dem die eigentliche Konguration vorgenommen wird. Dieses Skript wird vom postinst-Skript oder vom Benutzer aufgerufen und steht spter weiterhin zur Verfgung. Solche Pakete brauchen nicht unbedingt schon whrend der Installation konguriert zu werden.

7.5 Paketkonguration

203

Das Verfahren wird von einer Reihe von Paketen benutzt. Die in den Paketen enthaltenen Kongurationsskripte werden von solchen Paketen normalerweise im Verzeichnis /usr/sbin abgelegt und tragen Namen, die sich aus den Namen des Pakets sowie der Zeichenkette cong zusammensetzen. Zur Konguration des MTAs exim steht beispielsweise das Skript eximcong zur Verfgung, welches folgendermaen aufgerufen wird: debian:~# /usr/sbin/eximconfig Durch Verwendung solcher Skripte wird jedoch nicht das Problem gelst, dass die Installation grerer Mengen von Paketen immer wieder angehalten wird, weil Fragen zur Konguration gestellt werden. Aus diesem Grund wurde das Programm debconf entwickelt, mit dem ein vollstndig neuer Ansatz zur Paketkonguration vorliegt. Das Programm debconf verwaltet eine Datenbank mit Informationen zur Konguration von Paketen. Wenn das postinst-Skript whrend der Installation eines Pakets ausgefhrt wird, kann dieses die Informationen aus der Datenbank abfragen und das Paket automatisch kongurieren, vorausgesetzt, alle bentigten Informationen sind in der Datenbank vorhanden. Informationen, die einmal in die debconf Datenbank eingegeben wurde, bleiben dort und knnen bei der erneuten Installation des Pakets genutzt werden. Auerdem knnen Pakete, die debconf verwenden, zu jeder Zeit neu konguriert werden. Optimal ist der Einsatz von debconf zusammen mit APT. Bevor APT damit beginnt, Pakete zu installieren, ruft es dann nmlich das Programm dpkg-precongure (ein Teil von debconf ) auf, mit dem alle zur Konguration bentigten Informationen abgefragt werden, bevor das erste Paket konguriert wird. Die aktuelle Version von Debian GNU/Linux (woody, 3.0) ist von der Umstellung auf dieses System gekennzeichnet. Eine groe Anzahl von Paketen verwendet debconf bereits, allerdings noch nicht alle. 7.5.1 Arbeiten mit debconf Konguration von debconf Das Programm debconf wird selbst ber debconf konguriert. Wenn es das erste Mal installiert wird, stellt es einige Fragen zu seiner Konguration. Sie knnen die Konguration spter erneuern, indem Sie folgendes Kommando eingeben: debian:~# dpkg-reconfigure -plow -fdialog debconf Es erscheint dann der in Abbildung 7.8 dargestellte Bildschirm. Das in diesem Bildschirm gezeigte Men dient zur Auswahl des Frontends, mit dem Pakete in Zukunft konguriert werden sollen. Damit sind Programme gemeint, welche dafr verantwortlich sind, Fragen darzustellen und Antworten entgegenzunehmen. Zur Zeit stehen die folgenden Frontends zur Auswahl: dialog Dies ist das in Abbildung 7.8 gezeigte Frontend. Es bietet eine mengesteuerte Benutzerfhrung und kann an der Konsole oder in einem Terminalfenster benutzt werden. In der Regel ist die Auswahl dieses Frontends zu empfehlen.

204

7 Installation von Software

Abbildung 7.8. Kongurationsmen des Programms debconf

readline Bei der Verwendung dieses Frontends gehen Fragen und Antworten als Text ber die Konsole, wie in alten Zeiten. editor Fr ergraute Linux/UNIX-Verwalter, die gewohnt sind, Kongurationsdateien mit einem Texteditor zu bearbeiten. gnome Konguration unter einer X11-Oberche. GNOME muss installiert sein. web Dieses Frontend ist eine Art Web-Server. debconf nennt einen URL, der in einen Web-Browser einzugegeben ist. Die Fragen werden im Browser angezeigt und dort beantwortet. noninteractive Dieses Frontend ist eigentlich keines. Seine Auswahl bewirkt, dass debconf in Zukunft keine Fragen zur Konguration stellt und stattdessen Voreinstellungswerte (Defaults) benutzt. Nach Auswahl des Frontends kann mit der Taste TAB auf das Feld OK gesprungen werden, um die Auswahl zu besttigen. Danach erscheint ein Bildschirm, welcher die Auswahl der Prioritt im nchsten Bildschirm erlutert. Dort legen Sie fest, welche Fragen Ihnen knftig berhaupt vorgelegt werden sollen: low Diese Einstellung bewirkt, dass Sie jede mgliche Einstellung von Hand vornehmen mssen, auch wenn dafr Voreinstellungen (Defaults) bekannt sind. medium Ermglicht, auch solche Einstellungen selbst vorzunehmen, fr die in der Regel sinnvolle Voreinstellungen verfgbar sind. high Nach der Auswahl dieser Prioritt werden nur Fragen gestellt, fr die es keine Voreinstellungen gibt. Beispielsweise kann in einem Paket nicht die Information enthalten sein, welchen Internetprovider Sie verwenden. critical Mit dieser Einstellung werden nur noch solche Informationen erfragt, die bentigt werden, damit das System richtig funktioniert.

7.5 Paketkonguration

205

Normalerweise ist zu empfehlen, die Einstellung medium zu verwenden, wenn Sie ein hohes Ma an Kontrolle ber die Konguration Ihres Systems wnschen oder die Einstellung high, wenn Sie sich auf Voreinstellungen verlassen wollen. Danach knnen Sie auswhlen, ob Fragen zur Konguration tatschlich vor der Installation von Paketen gestellt werden sollen. Es ist zu empfehlen, diese Frage mit Yes zu beantworten. Zum Schluss kann ausgewhlt werden, ob bereits bekannte Informationen jedesmal neu erfragt werden sollen, wenn ein Paket neu installiert oder aktualisiert wird. Wir empfehlen, dies mit No abzulehnen. Konguration von Paketen mit debconf Die Konguration von Paketen mit debconf funktioniert genau wie die Konguration von debconf selbst. Je nachdem, welches Frontend Sie ausgewhlt haben, werden Fragen zur Konguration in einem Men dargestellt, direkt auf der Konsole ausgegeben oder als Webseite geladen. Wenn ein Paket nach der Installation erneut konguriert werden soll, ist hierzu das Programm dpkg-recongure zu verwenden. Dieses Programm kann mit den folgenden Optionen aufgerufen werden: -fTyp | - -frontend=Typ Hiermit wird das zu verwendende Frontend ausgewhlt. Wenn diese Option nicht benutzt wird, wird das bei der Konguration von debconf eingestellte Frontend benutzt. Wenn Sie das zu benutzende Frontend dauerhaft neu einstellen wollen, mssen Sie debconf neu kongurieren. -pWert | - -priority=Wert Mit dieser Option bestimmen Sie, welche Informationen erfragt werden sollen. Fr Wert ist eine der Prioritten zu verwenden, die Sie von debconf her kennen. Wenn die Prioritt dauerhaft neu eingestellt werden soll, muss debconf neu konguriert werden. - -all Die Option bewirkt, dass alle Pakete, die installiert sind und debconf zur Konguration benutzen, neu konguriert werden. Wenn das Paket netbase neu konguriert werden soll, knnte dpkg-recongure folgendermaen aufgerufen werden: debian:~# dpkg-reconfigure -plow netbase Der Parameter -plow (niedrigste Prioritt) bewirkt, dass alle Informationen neu erfragt werden. Bedenken Sie, dass mglicherweise nach dem Aufruf von dpkgrecongure berhaupt keine Informationen erfragt werden. Die Ursache ist vermutlich, dass die Prioritt zu hoch eingestellt wurde. 7.5.2 Aktualisierung von Kongurationsdateien Viele Pakete beinhalten vorgefertigte Kongurationsdateien fr die in ihnen enthaltenen Programme. Diese Dateien werden oft vom Systemverwalter angepasst. Um diese Anpassungen bei der Aktualisierung nicht zu berschreiben, werden Kongurationsdateien standardmig nicht automatisch ersetzt. Vielmehr berprft dpkg,

206

7 Installation von Software

ob eine Kongurationsdatei angepasst wurde, also von der Originaldatei abweicht. Wenn dies nicht der Fall ist, wird davon ausgegangen, dass der Systemverwalter keine nderungen an der Konguration des Pakets vorgenommen hat. Eine neue Version der Kongurationsdatei kann bedenkenlos installiert werden. Wenn jedoch Anpassungen vorgenommen worden sind, wird geprft, ob sich das Original der Kongurationsdatei, wie sie in der alten Paketversion enthalten war, von der Kongurationsdatei der neuen Paketversion unterscheidet. Wenn dies nicht der Fall ist, wird davon ausgegangen, dass sich das Format der Kongurationsdatei sowie die darin vorzunehmenden Einstellungen zwischen den beiden Paketversionen nicht gendert haben. Die manuell angepasste Version wird weiterbenutzt. Falls sich die Kongurationsdateien zwischen beiden Paketversionen unterscheiden, besteht die Gefahr, dass bei der aktualisierten Fassung des Pakets eine andere Kongurationssyntax zu verwenden ist oder Einstellungen vorgenommen werden mssen, die fr die alte Version nicht erforderlich waren. Diese nderungen sind in der manuell angepassten Version mglicherweise nicht enthalten, weswegen die Weiterverwendung der alten, angepassten Datei im schlimmsten Fall dazu fhren knnte, dass das Paket nicht mehr funktioniert. Aus diesem Grund fragt dpkg in solchen Situationen nach, wie verfahren werden soll. Es erscheint dann eine Ausgabe, die sinngem so aussieht:
Configuration file /etc/wgetrc ==> File on system created by you or by a script. ==> File also in package provided by package maintainer. What would you like to do about it? Your options are: Y or I : install the package maintainers version N or O : keep your currently-installed version D : show the differences between the versions Z : background this process to examine the situation The default action is to keep your current version. *** wgetrc (Y/I/N/O/D/Z) [default=N]?

Im Beispiel ist das Paket wget installiert worden, das die Kongurationsdatei /etc/wgetrc enthlt, die auf dem System bereits vorhanden ist und von der Originalversion abweicht. dpkg bietet nun die folgenden Mglichkeiten zur Auswahl an: berschreiben der alten Version Durch Auswahl von Y oder I wird die in dem Paket enthaltene Version der Kongurationsdatei installiert. Die vorher vorhandene Datei wird zuvor mit der Namensendung .dpkg-old gesichert, sodass sie weiterhin zur Verfgung steht und nderungen spter manuell bernommen werden knnen. Im Beispiel wrde die alte, gesicherte Datei den Namen /etc/wgetrc.dpkg-old tragen. Beibehalten der alten Version Durch Auswahl von N oder O wird die neue Kongurationsdatei nicht installiert. Stattdessen wird sie mit der Endung .dpkg-dist ins gleiche Verzeichnis abgelegt, in dem auch die alte Version liegt (im Beispiel /etc/wgetrc.dpkg-dist). Auch hier besteht spter die Mglichkeit, beide Dateien miteinander zu vergleichen und nderungen manuell zu bernehmen. Anzeigen der Unterschiede Durch Auswahl von D wird das Programm diff (S. 791) aufgerufen, dass Unterschiede zwischen der alten und der neuen

7.5 Paketkonguration

207

Kongurationsdatei mit dem Standardtextbetrachter (in der Regel less) anzeigt. Zeilen, die nur in der alten Kongurationsdatei vorhanden sind, werden mit einem vorangestellten Minuszeichen dargestellt, whrend Zeilen, die nur in der neuen Datei existieren, mit einem vorangestellten Pluszeichen erscheinen. Anhand der Unterschiede zwischen beiden Dateien kann beurteilt werden, ob die neue Version installiert oder die alte beibehalten werden soll. Wenn der Textbetrachter beendet wird, erscheint wieder das Auswahlmen. Untersuchen der Situation Durch Auswahl von Z wird der Prozess in den Hintergrund gestellt. Vorher wird die neue Version der Datei mit der Endung .dpkg-new (im Beispiel /etc/wgetrc.dpkg-new) in das Verzeichnis abgelegt, in dem sich auch die Originalversion bendet. Es besteht dann die Mglichkeit, die beiden Dateien zu vergleichen, bevor das Paketverwaltungssystem irgendetwas unternimmt. Auch knnen nderungen bereits jetzt vorgenommen werden. Durch Eingabe des Kommandos exit wird danach wieder zur Abfrage zurckgekehrt. Achten Sie darauf, eine eventuell eben erst genderte Datei nicht zu berschreiben. Whlen Sie N, wenn Sie die Originaldatei angepasst haben oder Y , wenn Sie die neue Kongurationsdatei bernehmen wollen. Durch Drcken der E INGABE-Taste wird der eingegebene Wert bernommen oder der Vorgabewert (alte Version beibehalten) ausgewhlt. Wenn Sie sich nicht sicher sind, sollten Sie jeweils die neue Kongurationsdatei, die mit einem Paket geliefert wird, whlen. Wenn es sich dabei um wichtige Kongurationsdateien handelt, sollten Sie hinterher die alte, gesicherte Version mit der neuen vergleichen. Hierbei sind Kommentare zu den von Ihnen vorgenommenen nderungen hilfreich.

Teil III

Konguration und Verwaltung

8 Mehr ber Pakete und Paketverwaltung

8.1 Eigenschaften und Beziehungen von Paketen


8.1.1 Benennung von Paketen und Paketdateien Pakete tragen normalerweise den Namen des Programms, das sie zur Verfgung stellen. So bendet sich beispielsweise das Programm The Gimp eine Bildbearbeitungs-Software in dem Paket gimp. Namen von Task-Paketen beginnen mit der Zeichenkette task, z. B. task-german. Von den Paketnamen sind die Namen der Paketdateien zu unterscheiden. Per Konvention bestehen sie aus dem Paketnamen, an den mit einem Unterstrich (underscore) die Versionsnummer des Programms angehngt ist. Die Versionsnummer wird auch als Upstream-Version bezeichnet, weil es die Versionsnummer ist, die der ursprngliche Autor des Programms vergeben hat. Daran schliet sich mit einem Bindestrich die Versionsnummer des Paketes an, die vom Hersteller des Pakets vergeben wurde. Dies ist die Paketversion. Wenn der Hersteller des Paketes gimp_1.0.4-2 (The Gimp, Version 1.0.4) das Paket aus demselben Originalquellcode erneut erstellt, etwa weil er eine weitere Anpassung an Debian vorgenommen hat, wrde das Paket danach den Namen gimp_1.0.4-3 tragen. Wie schon erwhnt, wird Debian-Paketen die Endung (Kennung) .deb angehngt. Der Dateiname des Gimp-Paketes wrde also gimp_1.0.4-3.deb lauten. Wenn Pakete fr unterschiedliche Rechnerarchitekturen (Prozessoren) in einem Verzeichnis aufbewahrt werden sollen, ist es notwendig, ihnen Namen zu geben, auf Grund derer auf die Rechnerarchitektur geschlossen werden kann. In solchen Fllen wird dem Paketnamen hinter einem Unterstrich die Bezeichnung der Rechnerarchitektur angehngt. Beispiel: gimp_1.0.4-3_i386.deb. 8.1.2 Inhalt von Paketen Bei Debian-Paketen handelt es sich um ar-Archive. Unter einem Archiv wird eine Datei verstanden, die eine Anzahl weiterer Dateien samt einigen VerwaltungsInformationen enthlt. Das Werkzeug ar wird meist benutzt, um Archive von ObjektDateien zu erstellen, wie sie bei der Entwicklung ausfhrbarer Programme anfallen.

212

8 Mehr ber Pakete und Paketverwaltung

Mit dem Programm ar ist es mglich, den Inhalt eines ar-Archivs anzuzeigen. Dazu wird es mit der Option t (table of contents) aufgerufen. Zustzlich kann die Option v (verbose) benutzt werden, um neben den Namen der Dateien zustzliche Informationen zu erhalten. Wenn sich beispielsweise das Paket modconf_0.2.26.9_all.deb im Arbeitsverzeichnis bendet, wird sein Inhalt mit dem folgenden Kommando angezeigt (mehr zu ar in seiner Manual-Seite): joe@debian:~$ ar vt modconf_0.2.26.9_all.deb Bei den Kommandos ar und tar darf der sonst vor Optionen erforderliche Bindestrich weggelassen werden. Die Ausgabe sieht ungefhr so aus:
rw-r- -r-- 0/0 4 Feb rw-r- -r-- 0/0 616 Feb rw-r- -r-- 0/0 167467 Feb 8 07:55 2000 debian-binary 8 07:55 2000 control.tar.gz 8 07:55 2000 data.tar.gz

Das Paket enthlt drei Dateien, nmlich debian-binary, control.tar.gz und data.tar.gz. Diese drei Dateien sind in allen Paketen enthalten, ihr Inhalt unterscheidet sich natrlich von Paket zu Paket. Die Datei debian-binary enthlt Informationen darber, fr welche Version von dpkg das Paket bestimmt ist. Bei den Dateien data.tar.gz und control.tar.gz handelt es sich wiederum um Archive, diesmal um gzipkomprimierte tar-Archive. Im Archiv data.tar.gz sind die eigentlichen Dateien enthalten, die durch das Paket installiert werden, und im Archiv control.tar.gz benden sich Kontrollinformationen darber, welche Kongurationsdateien zu dem Paket gehren und welche Aktionen vor oder nach der Installation oder der Entfernung des Pakets ausgefhrt werden mssen. Auerdem bendet sich hier eine Beschreibung des Pakets mit verschiedenen Informationen wie Abhngigkeiten, Namen und EmailAdresse des Paket-Herstellers usw. 8.1.3 Abhngigkeiten und Konikte Wie beschrieben, ist es meist notwendig, dass neben einem bestimmten Paket noch andere Pakete installiert sind, damit die Programme in dem betreffenden Paket funktionieren. Diese Abhngigkeiten (Dependencies) sind in den Steuerdateien der Pakete vermerkt, und dpkg hat deswegen die Mglichkeit zu verhindern, dass sinnlos nicht lauffhige Programme installiert werden oder durch das Entfernen von wichtigen Systembestandteilen andere Pakete nicht mehr nutzbar sind. Die interaktiven Installationsprogramme knnen den Anwender in einem solchen Fall zwingen, bestimmte andere Programme zu installieren oder eine bestimmte Bibliothek nicht zu entfernen. Virtuelle Pakete Neben Abhngigkeiten von realen Paketen knnen auch Abhngigkeiten von virtuellen Paketen bestehen. Virtuelle Pakete existieren nicht wirklich, sondern werden aus realen Paketen zusammengestellt.

8.1 Eigenschaften und Beziehungen von Paketen

213

Beispiel: Die Dokumentation zu einem Programm wird im HTML-Format geliefert. Um Dokumente in diesem Format bequem lesen zu knnen, bentigt man einen Webbrowser. Das Paket, das die Dokumentation enthlt, ist also abhngig davon, dass auf dem System ein Webbrowser installiert ist. Es wre jedoch schlecht, wenn es als Abhngigkeit beispielsweise netscape verlangen wrde, weil der Verwalter eines Systems u. U. einen anderen Webbrowser verwendet. Deswegen verlangt das Dokumentations-Paket, dass das virtuelle Paket www-browser installiert ist, welches von Paketen wie netscape, mosaic oder lynx zur Verfgung gestellt wird. Virtuelle Pakete ermglichen dem Verwalter, aus einer Reihe von Paketen auszuwhlen, die alle eine bestimmte Funktionalitt bieten, um die Abhngigkeit eines anderen Pakets, welches diese Funktionalitt bentigt, zu befriedigen. Empfehlungen von Paketen (Suggestions und Recommendations) Neben den harten Abhngigkeiten gibt es auch Programme oder Systembestandteile, die von einem Programm nicht zwingend bentigt werden, jedoch sinnvollerweise vorhanden sein sollten. Will man beispielsweise das Bildbearbeitungsprogramm The Gimp (gimp) installieren, so ist es sinnvoll, eine Reihe zustzlicher Hilfsprogramme, Dokumentationsdateien oder Schriftarten zu installieren. Die Hersteller von Paketen knnen solche Empfehlungen in dringende Hinweise (Recommendations) und eher gut gemeinte Vorschlge (Suggestions) zu unterteilen. Recommendations Dies sind Empfehlungen, zustzliche Pakete zu installieren, von denen der Hersteller eines Pakets meint, dass das Paket ohne sie zwar funktioniert, aber kaum vernnftig zu benutzen ist. Suggestions beziehen sich auf Pakete, die empfohlen werden, weil sie die Funktionalitt des Ausgangspakets ergnzen. Es ist also sehr zu empfehlen, Pakete, die als Recommendations angegeben werden, grundstzlich zu installieren, wohingegen bei Suggestions geprft werden kann, ob die Pakete bentigt werden. Konikte zwischen Paketen Es kommt vor, dass Pakete in Konikt (Conicts) mit anderen Paketen stehen. Dann ist es nur mglich, entweder das eine oder das andere Paket zu installieren. So darf auf einem System nur ein Programm zum Transportieren elektronischer Mail (Mail Transport Agent, MTA, wie exim) aktiv sein. Wenn bereits ein MTA installiert ist und Sie versuchen, einen weiteren MTA zu installieren, gestattet dpkg dies nicht. Sie mssen sich dann entscheiden, welches von beiden Paketen Sie verwenden wollen.

214

8 Mehr ber Pakete und Paketverwaltung

Weitere Beziehungen zwischen Paketen Neben den bereits genannten Beziehungen (Abhngigkeiten und Konikte) gibt es einige weitere wichtige Eigenschaften von Paketen, die bei der Installation oder Deinstallation bercksichtigt werden mssen. Dazu gehren: Die Eigenschaft eines Paketes, ein anderes zu ersetzen (replace). In einem solchen Fall wird das zu ersetzende Paket von dem System entfernt, whrend das neue Paket installiert wird. Diese Eigenschaft ist beispielsweise dann ntzlich, wenn die Funktionalitt eines Pakets nach einer Aktualisierung von einem anderen Paket bernommen wird. Ein Paket kann eine besondere Form der Abhngigkeit zu einem anderen Paket haben (Pre-Depends). Das bedeutet, dass das entsprechende Paket nicht entpackt werden darf, bevor das andere Paket, zu dem diese Abhngigkeit besteht, vollstndig installiert ist. Normalerweise werden Pakete mit Abhngigkeiten zwar entpackt, aber nicht konguriert, wenn Abhngigkeiten nicht erfllt sind. Sie sind dann vorhanden, aber noch nicht benutzbar. 8.1.4 Was passiert whrend der Installation eines Pakets? berprfung von Konikten Whrend der Installation eines Paketes berprft dpkg zunchst, ob das zu installierende Paket in Konikt zu irgendeinem anderen Paket steht, das bereits installiert ist. Falls dies so ist, wird der Installationsprozess abgebrochen. Eine Ausnahme hiervon wird gemacht, wenn das installierte Paket, welches mit dem zu installierenden in Konikt steht, zur Deinstallation vorgesehen ist. Vor der Entfernung oder Aktualisierung Falls die berprfung keinen Konikt entdeckt hat, wird geprft, ob es sich bei der Installation um eine Aktualisierung (Update) des Pakets oder um eine Neuinstallation handelt. Im Falle der Aktualisierung wird ein Skript (Programm) der alten Version ausgefhrt, mit dem diese darauf vorbereitet wird, gelscht zu werden. Dies ist beispielsweise wichtig fr Pakete, die Programme zur Verfgung stellen, welche stndig im Hintergrund ausgefhrt werden (Dmonen) und vor der Entfernung oder der Aktualisierung gestoppt werden mssen. Es handelt sich hierbei um das prerm-Skript. prerm steht fr Pre-Remove. Vor der Installation Danach wird, falls vorhanden, ein Skript ausgefhrt, mit dem das zu installierende Paket seine Installation vorbereitet. Hier kann gegebenenfalls geprft werden, ob wirklich alle Voraussetzungen zur Installation des Paketes erfllt sind. Falls dies nicht der Fall ist, werden die Voraussetzungen u. U. erfllt, oder der Installationsprozess wird abgebrochen. Dies ist das preinst-Skript. preinst steht fr Pre-Installation.

8.1 Eigenschaften und Beziehungen von Paketen

215

Installation (Auspacken des Paket-Inhalts) Im nchsten Schritt wird das Paket entpackt. Gleichzeitig werden Dateien, die zu einer eventuell vorhandenen lteren Version des Pakets gehren, gelscht. Falls eine ltere Version vorhanden war, erhlt sie danach noch einmal die Mglichkeit, ein Skript auszufhren, durch das sie alle noch verbliebenen und durch sie vorgenommenen Vernderungen am System rckgngig machen soll. Dieses Skript heit postrm-Skript, fr Post-Remove. Falls mehrere Pakete installiert oder aktualisiert werden, wird an dieser Stelle unterbrochen, und es werden zunchst die brigen Pakete bis hin zu diesem Punkt installiert. Der Grund hierfr besteht darin, dass ein neues Paket ja von einem anderen Paket abhngen knnte, das auch installiert werden soll, es aber noch nicht ist. Deswegen wird erst nach dem Entpacken aller zu installierenden Pakete berprft, ob alle Abhngigkeiten eines bestimmten Paketes erfllt sind. Falls nicht, wird abgebrochen und das Paket in einem ausgepackten, aber noch nicht kongurierten Zustand hinterlassen und eine Fehlermeldung ausgegeben. Nach der Installation (Konguration) Sind hingegen alle Abhngigkeiten erfllt, wird das zu installierende Paket konguriert. Dabei werden zunchst die Kongurationsdateien des Pakets installiert. Wenn es sich bei der Installation um eine Aktualisierung handelt, wird zunchst geprft, ob an den Kongurationsdateien der alten Version nderungen vorgenommen worden sind und dann falls sich alte und neue Version der betreffenden Kongurationsdatei voneinander unterscheiden nachgefragt, ob die alten (angepassten) Kongurationsdateien durch die neuen ersetzt werden sollen. Dadurch ist sichergestellt, dass mhsam angelegte Kongurationsdateien nie automatisch whrend der Aktualisierung von Paketen berschrieben werden. (siehe auch Kap.: 7.5.2). In einem letzten Schritt wird ein Skript ausgefhrt, mit dem das neue Paket Anpassungen am System vornehmen und dem Benutzer Fragen zur gewnschten Konguration stellen kann. Bei diesem Skript handelt es sich um das postinst-Skript (fr Post-Installation). 8.1.5 Zustnde von Paketen Aktueller Status Wie bereits erwhnt, verwaltet dpkg eine Datenbank mit einer Liste aller installierten und verfgbaren Pakete. In dieser Liste benden sich neben den eigentliche Paketinformationen (z. B. den Abhngigkeiten), Informationen ber den Zustand oder Status des Pakets auf dem jeweiligen System, Die beiden einfachsten Zustnde sind: installed Das Paket ist installiert oder not installed Das Paket ist nicht installiert.

216

8 Mehr ber Pakete und Paketverwaltung

Ein Paket, das vom System entfernt wurde, erhlt den Status cong. Dies bedeutet, dass sich die eigentlichen Dateien des Pakets nicht auf dem System benden, jedoch die Kongurationsdateien noch vorhanden sind. Mit einem besonderen Kommando (dpkg - -purge) werden auch diese Dateien gelscht, wonach das Paket wieder als nicht installiert gilt. Darber hinaus knnen (im allgemeinen dann, wenn Probleme aufgetreten sind) folgende Zustnde auftreten: unpacked Das Paket wurde entpackt, jedoch noch nicht konguriert, Es kann noch nicht eingesetzt werden. half installed Beim Entpacken des Pakets trat ein Fehler auf. Um das Paket zu verwenden, muss es neu entpackt und konguriert werden. Es muss also neu installiert werden. half congured Das Paket wurde bereits entpackt, bei der Konguration ist jedoch ein Fehler aufgetreten. Um das Paket verwenden zu knnen, muss es erneut konguriert werden. Vorgesehener Status oder Wunschstatus Neben dem Status, den ein Paket auf dem System hat, wird ein zweiter Status verwaltet, nmlich der, den der Systemverwalter fr das Paket vorgesehen hat. Ein Paket kann installiert, aber zum Lschen ausgewhlt sein. Ebenso kann es noch nicht installiert, aber fr die Installation vorgesehen sein. Ein Paket, das installiert ist und auch installiert bleiben soll, gilt ebenfalls als zur Installation vorgesehen. Weiter ist es mglich, dass nur noch die Kongurationsdateien vorhanden sind und das Paket zum Lschen der Kongurationsdateien ausgewhlt ist. Darber hinaus kann bestimmt werden, dass ein Paket eingefroren werden soll. Die Folge ist, dass es nicht durch eine neuere Version ersetzt wird, wenn das System aktualisiert wird. Dieser Status wird Hold genannt. Der Auswahl-Status kann noch eine weitere Ausprgung annehmen: unbekannt. Es wurde noch nie verlangt, das betreffende Paket zu installieren oder zu lschen, etwa weil das Paket der Liste verfgbarer Pakete erst krzlich hinzugefgt wurde. Der Auswahl-Status wird normalerweise nicht von dpkg direkt verndert, sondern von Programmen zur interaktiven Paketauswahl, wie beispielsweise dselect.

8.2 Aufbau und Layout der ofziellen Distribution


Die vollstndige Debian-Distribution besteht aus mehreren tausend Paketen, die stndig weiterentwickelt und von Hunderten von Entwicklern gepegt werden. Bei dieser Gre ist es klar, dass es einer gewissen Organisation bedarf, um eine stabile und ausgereifte Distribution bereit zu stellen und gleichzeitig die Weiterentwicklung nicht zu behindern.

8.2 Aufbau und Layout der ofziellen Distribution

217

8.2.1 Stabile und unstabile Versionen Das Debian-Projekt verwaltet zeitgleich immer mindestens zwei unterschiedliche Distributionen: Eine, die als voll funktionsfhig, stabil und fertig entwickelt gilt (stable) und eine weitere, die noch unfertig ist und der die Mitwirkenden des Projekts laufend neue oder aktualisierte Pakete hinzufgen (unstable). Eingefrorene Version (frozen) Darber hinaus gibt es in gewissen Phasen des Projekts noch eine dritte Variante: Sie nennt sich frozen (eingefroren) und ist immer dann vorhanden, wenn die Entwicklerversion kurz vor der Fertigstellung steht. Der eingefrorenen Version drfen keine neuen Pakete mehr hinzugefgt werden, es drfen lediglich Pakete aktualisiert werden, um Fehler zu beheben. Ungefhr zu dem Zeitpunkt, an dem eine Version der Distribution von unstable zu frozen wechselt, wird wieder eine neue unstabile Version erzeugt. Wenn dann in der eingefrorenen Variante alle schwerwiegenden Fehler behoben sind, wird diese bislang unstabile Version zur neuen stabilen Version, Die unstabile Variante ist immer auch eine vollstndige Version. Sie wird prinzipiell dadurch erzeugt, dass ein Abbild der eingefrorenen Variante hergestellt wird. Kurz nach dem Entstehen einer neuen unstabilen Version ist diese also nahezu deckungsgleich mit der eingefrorenen Distribution und unterscheidet sich von dieser nur dadurch, dass die Debian-Entwickler neue Pakete in sie einbringen knnen. Sie verndert sich naturgem stndig, und es kann durchaus vorkommen, dass sie ber den Zeitraum von einigen Tagen nicht installierbar ist oder bestimmte Pakete aus ihr nicht funktionieren. Da unstable jedoch immer vollstndig ist, lsst sie sich theoretisch immer installieren und verwenden. Codenamen Neben den Bezeichnungen unstable, frozen und stable erhalten die einzelnen Versionen Nummern und, weil das anscheinend in der Softwarebranche notwendig ist, Codenamen. So hatte die Version 2.2 den Codenamen potato, die Version, auf die sich dieses Buch bezieht (3.0), hat den Codenamen woody, und die folgende, zur Zeit noch unstabile Version 3.1 hat den Codenamen sarge. Die Code-Namen stammen aus dem Film Toy Story von Pixar. Sie dienen ebenso wie die Versionsnummern auch dazu, die Entwicklung einer bestimmten Version leichter verfolgen zu knnen. Ausgaben (Releases) Gelegentlich werden an der aktuellen stabilen Version nderungen vorgenommen, etwa dann, wenn sich herausstellt, dass ein Paket nach der Fertigstellung dieser Version doch noch einen kritischen Fehler beinhaltet. Dies lsst sich dann an den Versionsnummern erkennen, denen in einem solchen Fall eine Release- oder AusgabeNummer angehngt wird. So hat die dritte Ausgabe der Debian-Version mit dem Codenamen woody im November 2003 die Versionsnummer 3.0r2 erhalten.

218

8 Mehr ber Pakete und Paketverwaltung

Hersteller von Debian-CD/DVDs bringen neue Versionen meist dann heraus, wenn ein Entwicklungszirkel abgeschlossen ist, also eine Version ihren Status von unstable zu stable gendert hat. Mixen von Versionen Es ist mglich, Versionen zu mixen, solange alle Abhngigkeiten erfllt bleiben. Wenn Sie ein Programm in einer neueren Version bentigen, knnen Sie versuchen, das entsprechende Paket aus der unstabilen Distribution zu verwenden. Sie mssen dann allerdings damit rechnen, dass Sie eine Reihe weiterer Pakete zu aktualisieren haben, um alle Abhngigkeiten zu erfllen. Das macht sich insbesondere dann bemerkbar, wenn in der neueren Version eine wichtige Systemkomponente erneuert wurde, die mit der alten Version nicht kompatibel ist. Wird dann ein Paket installiert, welches die neue Version der betreffenden Komponente bentigt, muss diese ebenfalls installiert werden, was u. U. zu Konikten mit den anderen auf dem System installierten Paketen fhrt, welche die alte Version der Komponente bentigen. Die Folge ist, dass alle Pakete, die von der alten Version abhngig sind, ebenfalls aktualisiert werden mssen1 . Backports sind Programmversionen aus testing oder unstable, die unter stable kompiliert worden sind, soweit mglich. Auf diese Weise lassen sich auf einem Rechner, der unter stable luft, neuere Versionen einzelner Programme benutzen. Backports sind auf http://www.backports.org/ verfgbar; man spart sich die Mhe des Kompilierens. Die Verwendung von Paketen aus der unstabilen Distribution erhht die Wahrscheinlichkeit, kritische Fehler zu nden, sodass Sie darauf verzichten sollten, wenn es auf Stabilitt und Sicherheit ankommt. Andererseits verwenden viele DebianAnwender stndig die unstabile Variante, weil sie immer auf dem neuesten Stand sein wollen und behaupten, dass selbst diese unstabile Debian-Distribution stabiler als manch andere Distribution sei. 8.2.2 Anordnung der Pakete auf Servern und CD/DVDs Auf den Servern, welche die Debian-Distribution beherbergen2, nden sich die beschriebenen Distributionsvarianten wieder: Im Verzeichnis dists (fr Distributionen) auf dem Server liegen die Unterverzeichnisse stable, unstable und manchmal auch frozen. Diese Verzeichnisse sind symbolische Links (Verweise) auf andere Verzeichnisse, welche Namen tragen, die den Codenamen der entsprechenden Distributionen entsprechen (beispielsweise woody oder sarge) und die die zur Distribution gehrenden Dateien beinhalten.

Ein Ausweg einer solchen Situation ist oft die Installation von Quellcode-Paketen (siehe Seite.: 252). 2 Z. B. ftp://ftp.debian.org/debian/.

8.2 Aufbau und Layout der ofziellen Distribution

219

Wenn Sie die ofziellen Debian-CD/DVDs verwenden, nden sie eine hnliche Struktur3, in denen jedoch die unstabile Variante fehlt. Unterhalb des Verzeichnisses Ihrer Distributionsversion auf den CD/DVDs sollten sich prinzipiell die gleichen Verzeichnisse benden wie im Debian-Hauptarchiv. Dabei ist zu beachten, dass sich die Gesamtdistribution wegen des Umfangs auf sieben bis neun CDs aufteilt, von denen aber nur die erste wichtig und fr den Start unerlsslich ist. Auerdem werden Sie auf Ihren CD/DVDs wahrscheinlich nur den Teil der Distribution nden, der fr Ihre Rechnerarchitektur hergestellt wurde. Wenn Sie sich die Debian-CD/DVDs unter einem anderen Betriebssystem ansehen, wundern Sie sich vielleicht, dass einige der beschriebenen Verzeichnisse nicht vorhanden sind. Dies liegt daran, dass solche Betriebssysteme symbolische Links nach Art von Linux/UNIX nicht untersttzen.
debian/dists/

stable/ > aktuelle stabile Version

unstable/ > aktuelle Entwicklerversion

main/

contrib/ wie main

nonfree/ wie main

main/

contrib/

nonfree/

Der Aufbau von unstable entspricht dem Aufbau von stable

binaryi386/ source/ binary.../ binaryall/ wie binaryi386 wie binaryi386 wie binaryi386

admin/ base/ devel/ .../ x11/

Abbildung 8.1. Layout des Debian-Archivs.

Abbildung 8.1 zeigt schematisch das Layout des Debian-Archivs. Die Pfeile hinter stable und unstable symbolisieren die Verweise auf die tatschlichen Distributionsverzeichnisse, welche die Codenamen der jeweiligen Distributionen (z. B. woody) tragen, die in der Abbildung dargestellten Unterverzeichnisse werden im folgenden beschrieben. Freie und Nicht-freie Software Im Hauptverzeichnis einer Distribution (auf den ofziellen Debian-CD/DVDs beispielsweise im Verzeichnis /dists/woody) bendet sich eine Anzahl von Unterverzeichnissen, die alle in sich gleich aufgebaut sind. Diese Unterverzeichnisse tragen
3

im Verzeichnis /dists/ auf den CD/DVDs.

220

8 Mehr ber Pakete und Paketverwaltung

Namen wie main, contrib oder non-free und grenzen die einzelnen Abteilungen (Sections) der Debian-Distribution voneinander ab. Die Abteilungen wurden eingefhrt, da das Debian-Projekt eine freie Distribution zur Verfgung stellen will, die denierten Kriterien gengt (siehe Kapitel 1.2.4). Trotzdem soll jedoch auch Software, die diesen Kriterien nicht gengt, in das System integrierbar sein und bereit gestellt werden knnen. Achtung: Nur die Pakete unterhalb des Unterverzeichnisses main sind ofzieller Bestandteil der Debian-Distribution. Nur fr diese Pakete ist gesichert, dass sie mit den Debian-Richtlinien bereinstimmen. Wenn Sie Pakete aus einem anderen Verzeichnis verwenden, sollten Sie immer prfen, ob Sie die Bedingungen, unter denen Ihnen diese Pakete zur Verfgung gestellt werden, akzeptieren knnen, wollen und drfen. In den weiteren Unterverzeichnissen, benden sich Pakete mit folgenden Einschrnkungen: contrib Pakete, die aus unterschiedlichen Grnden nicht mit den Debian-Richtlinien bereinstimmen, aber frei verteilt werden drfen. Grnde hierfr sind in der Regel Lizenzbedingungen, die die Verwendung des Quellcodes in einer Weise einschrnken, wie sie das Debian-Projekt nicht akzeptiert oder die ausschlielich in binrer Form zur Verfgung stehen. Auch Programme, die zwar selbst den Debian-Kriterien gengen, allerdings andere Programme bentigen, die den Kriterien nicht gengen, um benutzt werden zu knnen, landen in dieser Abteilung. non-free Fr Pakete unterhalb des Verzeichnisses non-free bestehen weitere Einschrnkungen. Die wichtigste ist, dass diese Pakete nicht frei verteilt werden drfen. So mssen Hersteller von Debian-CD/DVDs hier prfen, ob sie berechtigt sind, diese Software auf ihren CD/DVDs zur Verfgung zu stellen. Deswegen kann es sein, dass Sie im Verzeichnis non-free des Debian-Hauptarchivs mehr Pakete nden als auf Ihren CD/DVDs (wenn es auf den CD/DVDs berhaupt vorhanden ist). In diesem Verzeichnis knnen sich auch Demo-Versionen von Programmen benden oder Shareware, bei der man nach einer gewissen Zeit der Benutzung verpichtet ist, eine Gebhr an den Urheber zu zahlen. Auf den ofziellen Debian-CD/DVDs benden sich, aufgrund dieser Einschrnkungen, nur die Abteilungen main und contrib. Exportbeschrnkte Software In den USA bestehen strenge Bestimmungen, die den Export bestimmter Software verbieten. Als Export gilt dabei auch, freie Software auf einem Internetserver abzulegen, von dem diese aus anderen Lndern heruntergeladen werden kann. Die Exportbeschrnkungen gelten im wesentlichen fr kryptograsche Software, also fr solche Programme, die zum Ver- und Entschlsseln von Daten benutzt werden knnen. Kryptograe gilt in den USA als Waffe, was sie in der Vergangenheit auch gelegentlich war (Enigma).

8.2 Aufbau und Layout der ofziellen Distribution

221

Damit Debian-Benutzer Programme, die unter die Exportbestimmungen der USA fallen, trotzdem benutzen knnen, gibt es einen zweiten Debian-Server (ftp: //non-us.debian.org/debian-non-US/), der sich nicht in den USA bendet und der prinzipiell genauso aufgebaut ist wie der Hauptserver. Auch hier gibt es Unterverzeichnisse fr die Distributionen (stable und unstable) und Unterverzeichnisse fr die Abteilungen main, contrib und non-free. Im Unterschied zum Hauptserver liegen diese Unterverzeichnisse jedoch in einem eigenen Verzeichnis, das den Namen non-US trgt. Architekturabhngige Pakete Da Debian GNU/Linux fr eine Reihe von Rechnerarchitekturen verfgbar ist, wurden die einzelnen Abteilungen weiter in Unterverzeichnisse aufgeteilt, die Namen wie binary-i386 tragen. Unterhalb dieser Verzeichnisse benden sich dann nur noch Pakete, die fr die Verwendung auf einer bestimmten Architektur gedacht sind. Gewhnliche Pakete werden auch Binr-Pakete genannt, weil sie fertig kompilierten und nach der Installation sofort ausfhrbaren Programmcode enthalten, was bei tar.gz-Archiven direkt aus dem GNU-Projekt die Ausnahme ist. Darber hinaus gibt es hier ein Verzeichnis mit dem Namen binary-all, in welchem plattformunabhngige Pakete liegen. Das sind in der Regel solche Pakete, die Dokumente oder Software beinhalten, die auf jeder von Debian GNU/Linux untersttzen Rechnerarchitektur benutzt werden knnen, ohne angepasst werden zu mssen. Quellcodepakete Weil es sich bei Debian GNU/Linux um freie Software handelt, steht auch der Quellcode fr jedes Paket zur Verfgung. In jedem Verzeichnis einer Abteilung gibt es ein Unterverzeichnis source, in dem der Quellcode zu Paketen liegt, die in den binary-Verzeichnissen zu nden sind. Diese Quellcodepakete bestehen normalerweise aus jeweils drei Dateien, nmlich einer Datei, die den Quellcode enthlt (Endung .orig.tar.gz), einer Datei, welche alle nderungen enthlt, die Debian-Entwickler an dem Paket vorgenommen haben (Endung .diff.gz) und einer weiteren Datei mit einer Beschreibung des Pakets (Endung .dsc). Einige Quellcode-Pakete bestehen nur aus zwei Dateien. Dies sind Pakete, die direkt vom Debian-Projekt entwickelt wurden wie dpkg. Bei diesen Paketen fehlt die .diff.gz-Datei, weil das Paket ja nicht an Debian angepasst zu werden braucht. Aus den zwei oder drei Dateien lsst sich ein normales Paket (Binr-Paket) erstellen, vorausgesetzt, die dafr bentigten Werkzeuge sind auf dem System installiert (siehe Seite 252). Boot- und Installationsdisketten Zustzlich benden sich in der Abteilung main noch Verzeichnisse, in denen Abbilder der zur Erstinstallation bentigten Disketten abgelegt sind. Diese sind architekturabhngig und tragen deswegen Namen wie disks-i386. Hier sind die Bootdisketten fr PCs zu nden.

222

8 Mehr ber Pakete und Paketverwaltung

Themenspezische Unterabteilungen Da in den einzelnen Abteilungen auch fr jede Rechnerarchitektur noch eine unberschaubare Menge von Paketen existiert, wurden Unterabteilungen eingerichtet, die die einzelnen Pakete thematisch lose gruppieren. Die Gruppierung dient lediglich der bersicht und ist weniger fest organisiert als die bisher beschriebenen Einteilungen. Sie kann bei Bedarf jederzeit von den Verwaltern des Debian-Hauptarchivs gendert werden. blich sind beispielsweise Unterabteilungen wie libs, in der sich Programmbibliotheken (libraries) benden, oder devel mit Werkzeugen und Programmen zur Softwareentwicklung (development). Sobald Sie die Mglichkeit haben, sich den Inhalt Ihrer CD/DVDs anzusehen, sollten Sie dies einmal tun, um sich mit dem Aufbau des Archivs sowie den einzelnen Abteilungen und Unterabteilungen vertraut zu machen. Empfohlene Aktualisierungen Gelegentlich liegt auf dem Hauptserver ein Verzeichnis mit dem Namen proposedupdates. In diesem Verzeichnis benden sich Pakete, die zwar nicht ofzieller Teil der aktuellen stabilen Debian-Distribution sind, von denen die Entwickler jedoch vorschlagen, dass sie zur Aktualisierung des Systems benutzt werden sollen. Spiegel-Server (Mirrors) Im allgemeinen ist es nicht zu empfehlen, den Debian-Hauptserver zu verwenden, um Pakete zu beziehen. Vielmehr gibt es eine Reihe weiterer Server, die stndig automatisch auf den Stand des Hauptservers gebracht werden. Diesen Vorgang nennt man Spiegeln. Die Verwendung eines Spiegel-Servers bietet zwei Vorteile: 1. Ein Spiegelserver ist von Ihrem Rechner aus einfacher zu erreichen, die Dateien werden schneller auf Ihren Rechner geladen. 2. Die Last auf dem Hauptserver wird verringert. Er kann deswegen die SpiegelServer schneller beliefern. Wenn Sie mehrere Debian-Rechner in Ihrem lokalen Netz verwenden, empehlt sich u. U. die Einrichtung eines eigenen lokalen Spiegels. Die Pakete mssen dann nur einmal in Ihr Netz heruntergeladen werden. Eine Liste aller ofziellen Spiegel ist unter dem URL ftp://ftp.debian.org/debian/README.mirrors.html verfgbar. In Deutschland empehlt sich die Verwendung des Spiegels ftp.de. debian.org. Er bendet sich im Wissenschaftsnetz und ist deswegen gut von Hochschulen zu erreichen.

8.3 Benutzung des Paketmanagers dpkg


Whrend die Programme dselect und apt-get unterschiedliche Hilfestellungen bei der Auswahl und der Installation von Paketen bieten, stellt dpkg die wesentlichen

8.3 Benutzung des Paketmanagers dpkg

223

Funktionen der Paketverwaltung zur Verfgung. Das Programm ist nicht dafr geeignet, interaktiv Pakete zu suchen und auszuwhlen oder Konikte zu lsen. Auch die Aktualisierung des Systems von einer Debian-Version auf eine neuere ist mit dpkg eher schwierig. Auf der anderen Seite lsst sich mit dem Programm schnell ein Paket installieren, von dem man wei, in welcher Datei es sich bendet. Weiter knnen Informationen schnell und gezielt abgefragt werden. Und schlielich gibt es einige Informationen und Aktionen, die ausschlielich dpkg bietet. 8.3.1 Allgemeines zur Benutzung von dpkg dpkg wird von der Kommandozeile aus aufgerufen und kann eine groe Anzahl unterschiedlicher Aufgaben bernehmen. Diese Aktionen mssen an der Kommandozeile durch Angabe entsprechender Optionen ausgewhlt werden, beispielsweise die Installation eines Paketes durch die Option - -install. Zustzlich kennt das Programm eine Reihe von Optionen, mit denen sein Verhalten in bestimmten Situationen beeinusst wird. So lsst sich durch die Option - -skipsame-version global verhindern, dass ein Paket durch dieselbe Version desselben Pakets ersetzt wird (also Arbeit ausgefhrt wird, die unntig ist). Eine besondere Klasse von Optionen verndert die Voreinstellungen von dpkg. Diese Optionen beginnen alle mit der Zeichenkette --force- (erzwingen), wenn ein Verhalten erzwungen werden soll, das normalerweise nicht vorgesehen ist, oder mit - -refuse (zurckweisen), wenn ein solches Verhalten verhindert werden soll. So werden Pakete, deren Abhngigkeiten nicht erfllt sind, blicherweise nicht konguriert. Dies fhrt dazu, dass sie nach der Installation nicht benutzbar sind. Durch die Option --force-depends lsst sich die Konguration in einem solchen Fall erzwingen und durch --refuse-depends verhindern. Die Benutzung dieser Optionen fhrt in der Regel zu einem inkonsistenten und teilweise unbenutzbaren System. Sie sind also uerst vorsichtig zu verwenden. Das Programm zeigt einen berblick ber die verfgbaren Aktionen und allgemeinen Optionen an, wenn es mit der Option - -help aufgerufen wird. Die Optionen zum Verhalten in Fehlersituationen lassen sich mit der Option --force-help anzeigen. Eine Einfhrung in die Benutzung der Kommandozeile bendet sich in Kapitel 5, S. 109. 8.3.2 Installation und Aktualisierung von Paketen Um Pakete zu installieren, ist dpkg mit folgender Syntax aufzurufen: dpkg - -install | -i Paketdateiname [Paketdateiname ...] Dem Programm sind dabei die Namen der Dateien, in denen sich die zu installierenden Pakete benden, zu bergeben. Diese mssen sich im Arbeitsverzeichnis benden oder mit Pfad angegeben werden. Pakete, die bereits auf dem System installiert sind, werden durch das Kommando erneut installiert. Das heit, sie werden aktualisiert, wenn die zu installierende Paketdatei eine neuere Version des Pakets enthlt. Es

224

8 Mehr ber Pakete und Paketverwaltung

kann aber auch eine bereits installierte Version eines Pakets erneut installiert werden. Dies ist notwendig, wenn Bestandteile eines installierten Pakets gelscht wurden. Auerdem ist es mglich, eine ltere Version zu installieren. Soll beispielsweise das Paket biff_0.10-3.deb installiert werden, ist folgendes Kommando einzugeben (Paketdatei im Arbeitsverzeichnis): debian:~# dpkg -i biff_0.10-3.deb Falls das Paket bisher noch nicht installiert war und keine Probleme auftreten, erscheint daraufhin ungefhr die folgende Ausgabe:
Selecting previously deselected package biff. (Reading database 53378 files and directories currently installed.) Unpacking biff (from biff_0.10-3.deb) ... Setting up biff (0.10-3) ...

In der ersten Zeile teilt dpkg mit, dass es das Paket biff zur Installation auswhlt. Wrde dies nicht passieren, bestnde die Gefahr, dass es beim nchsten Aufruf von dselect oder apt wieder deinstalliert werden wrde, da es dann ja nicht zur Installation ausgewhlt wre. Dann liest dpkg Informationen ber alle bereits installierten Pakete ein (Reading Database. . . ) und packt das Paket aus (Unpacking biff. . . ). Zu Schluss wird das Paket konguriert (Setting up biff. . . ). Abhngig vom installierten Paket knnen hierbei Fragen zur Konguration erscheinen (siehe auch Seite 202). Installation eines Paketes von CD/DVD Um ein Paket von CD/DVD zu installieren, ist das Paket zunchst zu lokalisieren und kann dann wie beschrieben mit dpkg installiert werden. Falls das Paket biff direkt von der CD/DVD installiert werden soll, ist die CD/DVD in das Dateisystem einzubinden (siehe auch Kap.: 14.3.3, S. 471): debian:~# mount -t iso9660 -o ro /dev/cdrom /cdrom Danach muss die entsprechende Datei auf der CD/DVD gesucht werden. Dies kann mit dem Kommando nd (S. 798) geschehen. Als Suchzeichenkette wird hierbei der Paketname benutzt, weil Paketdateinamen mit dem Namen des Pakets beginnen, das sie beinhalten: debian:~# find /cdrom -name "biff*" Dann werden die Namen von Dateien auf der CD/DVD ausgegeben, die mit der angegebenen Suchzeichenkette beginnen, beispielsweise: /cdrom/dists/woody/main/binary-i386/mail/ biff_0.10-3.deb Wenn keine Datei mit passendem Namen gefunden wurde, erfolgt keine Ausgabe. Ansonsten kann die Ausgabe benutzt werden, um dpkg den richtigen Pfad- und Dateinamen zu bergeben:

8.3 Benutzung des Paketmanagers dpkg

225

debian:~# dpkg -i /cdrom/dists/woody/main/binary-i386/mail/ biff_0.10-3.deb Unerfllte Abhngigkeiten Falls versucht wird, ein Paket zu installieren, dessen Abhngigkeiten nicht erfllt sind, liefert dpkg eine Fehlermeldung. So fhrt der Versuch, das Paket whiptail zu installieren, zu folgender Ausgabe, wenn das Paket libnewt0 nicht installiert ist:
Selecting previously deselected package whiptail. (Reading database 53350 files and directories currently installed.) Unpacking whiptail (from whiptail_0.50-5.2.deb) ... dpkg: dependency problems prevent configuration of whiptail: whiptail depends on libnewt0; however: Package libnewt0 is not installed. dpkg: error processing whiptail (- -install): dependency problems - leaving unconfigured Errors were encountered while processing: whiptail

Der erste Teil dieser Ausgabe ist vergleichbar mit der oben gezeigten Ausgabe, die bei der Installation des Pakets biff entstanden ist. Das Paket wird zunchst ausgepackt. Die dann folgende Abhngigkeitsprfung liefert das Ergebnis, dass nicht alle Voraussetzungen zur Installation von whiptail erfllt sind. whiptail ist abhngig von libnewt0, und dieses Paket ist nicht installiert. Daraufhin teilt dpkg mit, dass bei der Bearbeitung von whiptail ein Fehler aufgetreten ist und das Paket unkonguriert bleibt. Zum Schluss wird nochmals ausgegeben, bei welchem Paket ein Fehler aufgetreten ist. Diese letzte Ausgabe ist hilfreich, wenn mit einem Aufruf von dpkg eine groe Anzahl von Paketen installiert wird und nicht mehr alle Fehlermeldungen auf dem Bildschirm sichtbar sind. Um das hier gezeigte Problem zu lsen, ist zunchst das Paket libnewt0 zu installieren und dann whiptail zu kongurieren. Einfacher ist es, beide Pakete gleichzeitig zu installieren. Dies bietet sich vor allem dann an, wenn innerhalb einer Gruppe zu installierender Pakete Abhngigkeiten bestehen, die es unmglich machen, einzelne Pakete aus der Gruppe zu installieren. Gleichzeitige Installation mehrere Pakete Die Pakete whiptail und libnewt0 werden mit folgendem Kommando gleichzeitig installiert: debian:~# dpkg -i whiptail_0.50-5.2.deb libnewt0_0.50-5.deb Voraussetzung ist auch hier, dass sich die Paketdateien im Arbeitsverzeichnis benden. Bei der Ausfhrung dieses Kommandos werden zunchst beide Pakete nacheinander ausgepackt und dann konguriert. Die Abhngigkeitsprfung schlgt nun

226

8 Mehr ber Pakete und Paketverwaltung

nicht mehr fehl, weil das Paket libnewt0 bereits ausgepackt und zur Installation ausgewhlt ist, wenn whiptail konguriert werden soll. Darber hinaus kann dpkg die Reihenfolge der Konguration dieser Pakete jetzt an die Abhngigkeiten anpassen. Installieren aller Pakete eines Verzeichnisses und seiner Unterverzeichnisse Mit der Option -R oder --recursive wird dpkg dazu gebracht, alle Pakete eines Verzeichnisses und seiner Unterverzeichnisse zu installieren. Die Option wird beispielsweise dazu benutzt, alle Pakete auf einer CD/DVD mit einem Kommando zu installieren. Wenn diese Option benutzt wird, kann es hilfreich sein, eine der folgenden Optionen zustzlich zu verwenden: -G | - -refuse-downgrade Pakete, die bereits in einer neueren Version installiert sind, als die zu installierenden, werden nicht installiert. -O | - -selected-only Es werden nur solche Pakete installiert, die zur Installation ausgewhlt sind. Die eigentliche Auswahl wird dann vorher mit dem Programm dselect vorgenommen. -E | - -skip-same-version Pakete, die bereits in derselben Version installiert sind wie die neu zu installierenden, werden nicht installiert. -B | - -auto-deconfigure Wenn ein Paket aktualisiert wird, kann es passieren, dass Abhngigkeiten von anderen Paketen zu dem betreffenden Paket hinterher nicht mehr erfllt sind. Diese Option bewirkt, dass solche Pakete dann automatisch in den Zustand unpacked versetzt werden. Sie mssen spter erneut konguriert werden. Angenommen, auf einer CD/DVD bende sich eine Anzahl von Paketen, von denen ein Teil mit dselect ausgewhlt worden sei. Die ausgewhlten Pakete sollen nun in einem Durchgang installiert werden, wobei solche Pakete, die bereits in der Version auf der CD/DVD oder in einer neueren Version installiert sind, nicht erneut installiert werden sollen. Die Pakete werden mit folgendem Kommando installiert: debian:~# dpkg -iGROEB /cdrom Voraussetzung ist, dass die CD/DVD zuvor in das Verzeichnis /cdrom gemountet wurde. Bei Verwendung langer Optionen wrde das Kommando so aussehen: debian:~# dpkg - -install - -recursive - -refuse-downgrade - -selected-only - -skip-same-version - -auto-deconfigure /cdrom Schrittweises Installieren von Paketen Wie erwhnt, werden Pakete whrend der Installation zunchst ausgepackt und spter (nachdem alle anderen zu installierenden Pakete ausgepackt sind) konguriert. Diese Schritte lassen sich mit dpkg auch einzeln durchfhren, was in bestimmten Situationen notwendig sein kann, um komplexe Situationen von Abhngigkeiten und Konikten whrend der Installation von Paketen zu lsen4 .
4

In den meisten Fllen ist das Programm apt-get besser dazu in der Lage.

8.3 Benutzung des Paketmanagers dpkg

227

Bis zum Status unpacked (ausgepackt) wird ein Paket installiert, wenn dpkg mit der Option - -unpack aufgerufen wird. Hinterher kann das Paket mit der Option - -congure konguriert werden. Zu beachten ist dabei, dass dpkg zum Auspacken der Name der betreffenden Paketdatei bergeben werden muss (z. B. modconf_0.2.26.9_all.deb), whrend dem Programm zum Kongurieren der Name des Paketes bergeben wird (z. B. modconf ). Um das Paket modconf lediglich auszupacken, ist folgendes Kommando zu benutzen, vorausgesetzt die Paketdatei bendet sich im Arbeitsverzeichnis: debian:~# dpkg - -unpack modconf_0.2.26.9_all.deb Danach wird das Paket konguriert: debian:~# dpkg - -configure modconf Zusammen mit der Option - -congure kann die Option - -pending benutzt werden. Dadurch werden alle Pakete, die bereits ausgepackt, aber noch nicht konguriert sind, konguriert: debian:~# dpkg - -configure - -pending 8.3.3 Deinstallieren (Entfernen) von Paketen Um Pakete vom System zu entfernen, wird die Option - -remove oder -r benutzt. Whrend der Entfernung wird zunchst berprft, ob andere Pakete Abhngigkeiten zu dem zu entfernenden Paket haben. Wenn dies der Fall ist, wird das Paket nicht entfernt, es sei denn, die Pakete mit Abhngigkeiten zu dem betreffenden Paket sollten ebenfalls entfernt werden. Beim Entfernen sind dpkg die Namen der Pakete (nicht die Dateinamen) zu bergeben. Um das Programm modconf zu entfernen, ist dieses Kommando zu verwenden: debian:~# dpkg - -remove modconf Whrend der Entfernung bleiben die Kongurationsdateien, die zu dem Paket gehren, erhalten. Es erhlt den Status cong-les. Dadurch kann das Paket nach einer erneuten Installation sofort wieder mit der alten Konguration benutzt werden. Gelegentlich ist es jedoch erwnscht, auch die Kongurationsdateien zu lschen5 . Dies wird mit der Option - -purge gemacht. Um das Paket modconf mitsamt seinen Kongurationsdateien zu lschen, ist dpkg folgendermaen aufzurufen: debian:~# dpkg - -purge modconf Achtung: Wenn Sie das Programm modconf whrend der Basisinstallation oder spter dazu benutzt haben anzugeben, mit welchen Parametern Kernmodule (z. B. Treiber) geladen werden sollen, gehen diese Informationen durch das gezeigte Kommando verloren, und Sie mssen modconf erneut installieren und aufrufen, um die Einstellungen vorzunehmen.
5 Bedenken Sie, dass Kongurationsdateien in der Regel nur wenig Festplattenplatz bentigen, aber viel Mhe gekostet haben.

228

8 Mehr ber Pakete und Paketverwaltung

Nachdem ein Paket mitsamt seinen Kongurationsdateien gelscht worden ist, hat es den gleichen Status wie ein Paket, das noch nie installiert war. Die Optionen -remove und - -purge knnen ebenfalls zusammen mit der Option - -pending benutzt werden. Die Folge ist, dass alle Pakete, die zum Lschen ausgewhlt sind, gelscht werden, gegebenenfalls mitsamt ihren Kongurationsdateien. 8.3.4 Informationen ber Pakete und Dateien Anzeigen und Durchsuchen der Liste installierter Pakete Zum Anzeigen der Liste installierter Pakete dient die Option - -list bzw. -l. Die Syntax ist folgende: dpkg - -list | -l [Suchausdruck] Wenn dpkg nur mit der Option - -list aufgerufen wird, gibt es eine Liste aller auf dem System installierter Pakete aus, einschlielich der Pakete, von denen nur noch die Kongurationsdateien vorhanden sind. Wenn man sich die Ausgabe dieses Kommandos ansehen mchte, sollte man sie durch einen Pager wie less schicken: joe@debian:~$ dpkg - -list | less Die Ausgabe entspricht ungefhr der folgenden (in Wirklichkeit lnger):
Desired=Unknown/Install/Remove/Purge | Status=Not/Instd/Config-files/Unpacked/Failed-config/Half-instd |/ Err?=(none)/Hold/Reinst-required/X=both-probs (Stat,Err: uc=bad) ||/ Name Version Description +++-=====-============-============================================ ii a2p 4.10.4-4 GNU a2ps Anything to PostScript converter ii add 3.8 Add users and groups to the system. ii ae 962-21.1 Anthonys Editor -- a tiny full-screen edito rc dia 0.98.2-0.1 dial on demand daemon for PPP and SLIP.

Die ersten drei Zeilen beinhalten eine Zeichenerklrung, von der jede Zeile die Bedeutung eines der drei ersten Zeichen in der darauf folgenden Ausgabe beschreibt: 1. Das Zeichen ganz am Anfang jeder Zeile der Ausgabe beschreibt den Wunschstatus des betreffenden Pakets, den es auf dem System hat. Die Buchstaben entsprechen dabei den Anfangsbuchstaben der Wrter unknown, install, remove und purge. Der obigen Ausgabe ist zu entnehmen, dass die Pakete a2ps, adduser und ae installiert sein sollen, whrend das Paket diald entfernt sein soll (r=remove). 2. Das nchste Zeichen beschreibt den aktuellen Status des Paketes auf dem System. Auch hier entsprechen die Anfangsbuchstaben den in der Zeichenerklrung angezeigten Wrtern, nmlich not (installed), installed, cong-les, unpacked, failed-cong und half-installed. Der Ausgabe ist zu entnehmen, dass die ersten drei Pakete tatschlich installiert sind, whrend sich von dem letzten Paket diald lediglich die Kongurationsdateien auf dem System benden. 3. Das dritte Zeichen jeder Zeile ist fr Fehlermeldungen reserviert. In obiger Ausgabe bendet sich hier bei keinem Paket ein Zeichen, es liegen keine Fehler vor.

8.3 Benutzung des Paketmanagers dpkg

229

Wenn dpkg - -list mit der Angabe eines Suchbegriffs aufgerufen wird, zeigt es nur solche Pakete an, deren Namen mit dem Suchbegriff bereinstimmen. Hierbei werden im Gegensatz zum Aufruf ohne Suchbegriff auch die Pakete mit angezeigt, die nicht installiert sind. Suchbegriffe drfen die gleichen Meta-Zeichen (Joker) enthalten, wie sie von der Bash her bekannt sind (siehe Seite 135). Um die Ausgabe auf alle Pakete zu beschrnken, deren Namen mit der Zeichenkette dpkg beginnt, ist dieses Kommando einzugeben. joe@debian:~$ dpkg - -list "dpkg*" Die Anfhrungszeichen sind notwendig, damit das Metazeichen * nicht von der Shell interpretiert wird. Anzeigen des Status eines Pakets Wenn man sich nur fr den Status bestimmter Pakets interessiert, kann auch die Option - -status oder -s benutzt werden. Dem Programm mssen dann die Namen der Pakete bergeben werden, deren Status angezeigt werden soll. Ausgegeben wird der gesamte Eintrag der betreffenden Pakete in der Status-Datenbank. Welche Dateien gehren zu einem installierten Paket? Nach der Installation eines Pakets mchte man manchmal wissen, welche Dateien dem System hinzugefgt wurden. Die Option - -listles bzw. -L bewirkt, dass dies angezeigt wird. Dem Programm muss der Namen des Paketes bergeben werden. Um beispielsweise anzuzeigen, welche Dateien durch das Paket xteddy installiert wurden, ist dieses Kommando zu verwenden: joe@debian:~$ dpkg - -listfiles xteddy Zu welchem Paket gehrt eine bestimmte Datei? Gelegentlich stellt sich auch die Frage, zu welchem Paket eine bestimmte Datei gehrt. Um dies herauszubekommen, ist dpkg mit der Option - -search bzw. -S aufzurufen. Dem Programm wird dazu ein Suchbegriff bergeben, der einem Dateinamen oder einem Teil davon entspricht. Wenn angezeigt werden soll, zu welchem Paket die Datei /bin/ls gehrt, wird folgendes Kommando eingesetzt: joe@debian:~$ dpkg -S /bin/ls Um die Namen aller Pakete zu erhalten, welche Dateien enthalten, in deren Namen die Zeichenkette FAQ vorkommt, ist dieses Kommando einzugeben: joe@debian:~$ dpkg -S FAQ

230

8 Mehr ber Pakete und Paketverwaltung

Eine einfachere und schnellere Methode, die mit dpkg -L und dpkg -S erhltlichen Informationen abzufragen, stellt das Paket dlocate zur Verfgung. Das in diesem Paket enthaltene Programm dlocate kann ferner anzeigen, bei welchen Dateien es sich um Kongurationsdateien handelt und wieviel Platz ein Paket auf der Festplatte belegt. In vielen Fllen ist es mit dem Programm sogar mglich zu berprfen, ob sich die Dateien auf der Festplatte von den Originalversionen eines Pakets unterscheiden. Nheres im Manual. Welches Paket stellt eine bestimmte Datei zur Verfgung? Manchmal wird nach dem Namen eines Pakets gesucht, dass eine bestimmte Datei zur Verfgung stellt, die auf dem System noch nicht vorhanden ist. Leider kann dpkg hierzu nicht benutzt werden, weil das Programm nur die Namen der installierten Dateien sowie der verfgbaren Pakete, nicht aber die Namen der Dateien, die in den nicht installierten Paketen enthalten sind, kennt. Zur Lsung des Problems gibt es zwei Mglichkeiten: Im Basisverzeichnis jeder Distribution (z. B. /dists/woody) auf dem Debian-Server benden sich Dateien mit Namen wie Contents-i386.gz. Jede dieser Dateien enthlt fr eine Rechnerarchitektur (Contents-i386.gz fr PCs) die Zuordnungen zwischen allen verfgbaren Paketen und den darin enthaltenen Dateien. Die Datei kann mit dem Kommando zgrep (S. 891) durchsucht werden. Wenn man auf diese Weise herausnden mchte, in welchem Paket die Datei /etc/samba/smb.conf enthalten ist, ist folgendes Kommando einzugeben: joe@debian:~$ zgrep /etc/samba/smb.conf Contents-i386.gz Als Ausgabe erscheinen dann alle Zeilen, in denen die Zeichenkette /etc/samba/smb.conf enthalten ist. Die andere Mglichkeit ist, den Debian-Web-Server zu benutzen. Unter der Adresse http://www.debian.org/distrib/packages ndet man eine Suchmaske, mit der nach der gewnschten Information gesucht werden kann. 8.3.5 Arbeiten mit Paketdateien Eine weitere Gruppe von Optionen ermglicht es, Informationen ber Paketdateien anzuzeigen oder Dateien aus ihnen zu extrahieren. Hierzu ist dem Programm dpkg eine der folgenden Optionen sowie der Name einer Paketdatei zu bergeben. -c | - -contents Mit dieser Option wird angezeigt, welche Dateien auf dem System installiert werden, wenn das betreffende Paket installiert wird. -I | - -info Die Option bewirkt, dass eine Reihe von Informationen ber das Paket angezeigt werden. Dazu gehren die Paketversion, die Namen von Paketen, von denen das Paket abhngig ist, die Namen von anderen Paketen, zu denen das Paket in Konikt steht, Informationen darber, welche Dateien zur Kontrolle der Installation in dem Paket enthalten sind, sowie eine Beschreibung des Pakets.

8.3 Benutzung des Paketmanagers dpkg

231

-f | - -field Hiermit werden die Kontrollinformationen in dem Paket ausgegeben. Optional kann nach dem Paketnamen der Name eines Feldes der Kontrollinformationen angegeben werden. Es wird dann nur der Wert dieses Feldes ausgegeben. -e | - -control Extrahiert die Skripte, welche bei der Installation oder Deinstallation des Pakets ausgefhrt werden, in ein Unterverzeichnis mit dem Namen DEBIAN des aktuellen Arbeitsverzeichnisses. -x | - -extract Extrahiert die Dateien in ein Verzeichnis, welches hinter dem Paketdateinamen in der Kommandozeile angegeben werden muss. Hierdurch ist es mglich, die Dateien, die whrend der Installation des betreffenden Pakets installiert werden zu untersuchen, ohne das Paket tatschlich zu installieren. -X | - -vextract Wie die vorherige Option mit dem Unterschied, dass die Namen der Dateien whrend des Extrahierens angezeigt werden. - -fsys-tarfile Gibt das in dem Paket enthaltene tar-Archiv mit den zu installierenden Dateien auf die Standardausgabe. Diese kann in die Standardeingabe des Programms tar (S. 870) weitergeleitet werden, um den Archivinhalt weiter zu verarbeiten. Hier einige Beispiele. Die Kommandos setzen voraus, dass sich die Paketdatei modconf_0.2.26.9_all.deb im aktuellen Arbeitsverzeichnis bendet: joe@debian:~$ dpkg - -contents modconf_0.2.26.9_all.deb Der Inhalt (die zu installierenden Dateien) der Paketdatei werden angezeigt. joe@debian:~$ dpkg - -info modconf_0.2.26.9_all.deb Die in dem Paket enthaltenen Kontrollinformationen werden angezeigt. joe@debian:~$ dpkg - -control modconf_0.2.26.9_all.deb Die whrend der Installation und Deinstallation auszufhrenden Skripte werden in ein Unterverzeichnis mit dem Namen DEBIAN extrahiert. joe@debian:~$ dpkg - -vextract modconf_0.2.26.9_all.deb tmp Der Inhalt (die zu installierenden Dateien) der Paketdatei werden extrahiert und unterhalb des Verzeichnisses tmp abgelegt. 8.3.6 Anzeigen und Verndern der Datenbank verfgbarer Pakete Die folgenden Optionen sind zur Arbeit mit der Datenbank verfgbarer Pakete geeignet. Um den Eintrag eines oder mehrerer Pakete aus dieser Datenbank auszugeben, ist die Option - -print-avail zu verwenden. Dem Programm mssen dazu die Namen eines oder mehrerer Pakete bergeben werden, deren Eintrge angezeigt werden sollen. Um beispielsweise die Eintrge fr die Pakete dpkg und apt mit dem Pager less anzuzeigen, wird dieses Kommando benutzt: joe@debian:~$ dpkg - -print-avail dpkg apt | less

232

8 Mehr ber Pakete und Paketverwaltung

Zustzlich stehen Optionen zur Verfgung, mit denen die Datenbank gelscht, neu erstellt oder aktualisiert wird. Normalerweise ist es jedoch nicht notwendig, diese Operationen manuell auszufhren. Vielmehr werden sie von dselect benutzt, um die Datenbank zu pegen. - -clear-avail Lscht die Datenbank verfgbarer Pakete. - -forget-old-unavail Lscht Informationen ber Pakete, die nicht mehr verfgbar sind und nicht installiert sind. - -record-avail Paketdatei ... Bewirkt, dass der Datenbank verfgbare Pakete die Informationen ber das mit Paketdatei angegebene Paket hinzugefgt werden. Die Option kann zusammen mit der Option -R benutzt werden. Dem Kommando sind Namen eines oder mehrere Verzeichnisse zu bergeben, in dem sich Pakete benden. Der Datenbank werden die Informationen ber alle in diesen Verzeichnissen und Unterverzeichnissen davon bendlichen Pakete hinzugefgt. - -update-avail Packages-Datei Die Datenbank verfgbarer Pakete wird durch die Informationen in dem mit Packages-Datei angegebenen PaketIndex ersetzt. Paketindices haben in der Regel den Namen Packages. Sie benden sich in den architekturabhngigen Wurzelverzeichnissen der einzelnen Abteilungen jeder Distribution (z. B. dists/woody/main/binary-i386/Packages). - -merge-avail Packages-Datei Wie die vorherige Option mit dem Unterschied, dass die Datenbank nicht durch die Informationen in Packages-Datei ersetzt, sondern mit ihr kombiniert wird. 8.3.7 Arbeiten mit der Paketauswahl Mit den Optionen - -get-selections und - -set-selections ist es mglich, den fr ein Paket vorgesehenen Status (Wunschstatus) auszulesen oder neu zu setzen. Dadurch lsst sich die einmal auf einem System getroffene Auswahl sichern und spter wieder herstellen. Die Methode eignet sich auch dazu, auf verschiedenen Rechnern dieselben Pakete zu installieren, ohne dass auf jedem der Rechner erneut eine manuelle Paketauswahl vorgenommen werden muss. Das folgende Kommando gibt die auf einem System aktuell bestehende Paketauswahl in die Datei selections. Der Status wird dabei nur fr solche Pakete ausgegeben, fr die er tatschlich bekannt ist. joe@debian:~$ dpkg - -get-selections > selections Wenn Sie sich die Datei ansehen, stellen Sie fest, dass es sich dabei um eine Textdatei handelt, in welcher in jeder Zeile zunchst der Name eines Pakets und dann der fr dieses Paket gewnschte Status aufgefhrt ist, z. B.: apache install Achtung: Die Ausgabe von dpkg - -get-selections kann von dem aktuellen Status der auf dem System installierten Paketen abweichen. Sie beschreibt den Wunschstatus.

8.3 Benutzung des Paketmanagers dpkg

233

Dem Kommando kann ein Suchbegriff bergeben werden, der die Meta-Zeichen der Bash enthalten darf. Das Programm gibt dann den gewnschten Status fr alle Pakete aus, auf die der Suchbegriff zutrifft, also auch fr Pakete, fr die bisher noch keine explizite Auswahl getroffen wurde. Diese Pakete werden dann mit dem Status purge versehen, das heit, sie sollen zusammen mit ihren Kongurationsdateien gelscht werden, falls sie installiert sind. Um den Wunschstatus fr alle Pakete, deren Name mit der Zeichenkette dpkg beginnt, in die Datei dpkg-selections auszugeben, wird dieses Kommando eingesetzt: joe@debian:~$ dpkg - -get-selections "dpkg*" > dpkg-selections Die Anfhrungszeichen sind notwendig, um das Meta-Zeichen vor der Shell zu schtzen. Um den Wunschstatus fr alle installierten oder verfgbaren Pakete in die Datei selections-all zu geben, ist folgendes Kommando zu benutzen: joe@debian:~$ dpkg - -get-selections "*" > selections-all Um den gewnschten Status von Paketen zu setzen, ist die Option - -setselections zu verwenden. Das Programm dpkg liest dann Daten von der Standardeingabe, die so aufgebaut sein mssen, wie sie von dpkg - -get-selections ausgegeben werden. Um den in der Datei selections gespeicherten Wunschstatus auf einem System zu setzen, wird dieses Kommando benutzt: debian:~# dpkg - -set-selections < selections Dabei wird nur der Wunschstatus der Pakete gendert, die auch in der Datei selections aufgefhrt sind. Wenn auf einem System fr das Paket apache der Status install vorgesehen ist und dieses Paket in der Datei selections nicht genannt wird, wird der Wunschstatus von apache durch das Kommando nicht verndert. Um den Wunschstatus exakt zu reproduzieren, ist eine Datei zu verwenden, die Informationen fr alle Pakete enthlt, die auf dem System, auf dem die Reproduktion stattnden soll, installiert sind oder als verfgbar gelten. Dazu ist es notwendig, zunchst die Datenbank verfgbarer Pakete des Rechners, auf dem die Auswahldatei erstellt wird, und des Rechners, auf dem sie benutzt wird, anzugleichen. Selbstverstndlich knnen die Auswahldateien auch manuell oder mit einem anderen Verfahren erstellt werden. Die wichtigsten Schlsselwrter sind: install Das Paket soll installiert werden. Wenn es bereits installiert ist, soll es installiert bleiben. deinstall Das Paket soll nicht installiert werden. Wenn es installiert ist, soll es entfernt werden. purge Das Paket soll nicht installiert werden. Wenn es installiert ist, soll es mit seinen Kongurationsdateien gelscht werden. hold Wenn das Paket installiert ist und eine neuere Version des Pakets zur Verfgung steht, soll es nicht aktualisiert werden.

234

8 Mehr ber Pakete und Paketverwaltung

Um ein Paket mit - -set-selections manuell zur Installation auszuwhlen, kann auch folgendes Kommando benutzt werden: debian:~# echo "apache install" | dpkg - -get-selections Der Name des Pakets apache ist dabei durch den Namen des gewnschten Pakets zu ersetzen. 8.3.8 ndern von Voreinstellungen (force und refuse) dpkg muss in einigen Situationen entscheiden, wie bestimmte Probleme gelst werden sollen. Dazu ist es mit Voreinstellungen ausgestattet, die so getroffen wurden, dass keine Aktionen ausgefhrt werden, welche die Systemintegritt oder das Funktionieren einzelner Pakete ernsthaft gefhrden. In manchen Situationen ist es aber notwendig, die Voreinstellungen zu berschreiben, beispielsweise um Pakete zu installieren, die mit den konservativen Standardeinstellungen nicht installiert werden knnen. Dies fhrt im schlimmsten Fall zur teilweisen oder vollstndigen Unbenutzbarkeit des Systems. Die Optionen zum berschreiben der Voreinstellungen werden jeweils mit --force- eingeleitet, wenn ein Verhalten erzwungen werden soll, und mit --refuse-, wenn eine Aktion nicht ausgefhrt werden soll, die per Voreinstellung stattndet. Es ist mglich, mehrere Optionen hinter --force- oder --refuse- anzugeben. Sie mssen dann durch Kommata ohne Leerzeichen getrennt werden. Ein Paket, das eine Abhngigkeit zu einem anderen, nicht installierten Paket hat, wird normalerweise nicht konguriert. Dieses Verhalten lsst sich durch die Option --force-depends berschreiben. Auerdem werden normalerweise keine Pakete installiert, die Dateien enthalten, welche bereits durch ein anderes Paket installiert wurden, weil die bereits installierte Datei dann durch die Installation des neuen Pakets berschrieben werden wrde. Dieses Verhalten lsst sich durch die Option -force-overwrite ndern. Wenn beide Verhaltensweisen erzwungen werden sollen, ist die Option folgendermaen zu verwenden: debian:~# dpkg --force-depends,overwrite Paket Damit wird das mit Paket bezeichnete Paket auch dann installiert, wenn es unerfllte Abhngigkeiten hat und/oder Dateien anderer, bereits installierter Pakete berschreibt. Die Optionen sind mit uerster Vorsicht zu gebrauchen. Sie knnen das System in einen unbenutzbaren Zustand bringen! Die folgende Tabelle zeigt alle Optionen, die sich mit force oder refuse ein- bzw. ausschalten lassen:
Tabelle 8.1. Verhaltensweisen von dpkg, die sich mit force einschalten und mit refuse abschalten lassen.

Option downgrade

Beschreibung Vorgabe Pakete knnen auch dann installiert werden, Ja wenn bereits eine neuere Version installiert ist.
Fortsetzung auf nchster Seite

8.3 Benutzung des Paketmanagers dpkg

235

Fortsetzung

Option auto-select

remove-reinstreq

remove-essential

configure-any

depends

depends-version

conflicts

confnew

Beschreibung Vorgabe Ja Pakete, die installiert werden, werden automatisch zur Installation ausgewhlt. Pakete, die entfernt werden sollen, werden automatisch zur Entfernung ausgewhlt. Dies betrifft den Wunschstatus. Pakete, bezglich derer ein schwerwiegender Nein Fehler vorliegt und die deswegen erneut installiert werden mssen, werden mit dieser Option entfernt. Die Folge kann sein, dass auf dem System Dateien brig bleiben, die nicht mehr von dpkg verwaltet werden. Pakete, die in ihren Kontrollinformationen als Nein besonders wichtig (essential) markiert sind, knnen mit dieser Option gelscht werden. Pakete, die ausgepackt, aber noch nicht konNein guriert sind, werden konguriert, wenn ein Paket installiert wird, das von diesem Paket abhngt. Es wird auch dann versucht, Pakete zu konNein gurieren, wenn sie unerfllte Abhngigkeiten haben. Es wird auch dann versucht, Pakete zu konNein gurieren, wenn sie Abhngigkeiten zu anderen Paketen haben, die zwar installiert sind, allerdings nicht in der bentigten Version. Es wird versucht, Pakete zu installieren, die in Nein Konikt zu anderen, bereits installierten Paketen stehen. Wenn ein Paket aktualisiert wird und dieses eiNein ne (im Vergleich zur alten Version) genderte Kongurationsdatei enthlt und die alte Version der Kongurationsdatei manuell oder durch ein Skript gendert wurde, fragt dpkg normalerweise nach, ob die alte (angepasste) Version weiterhin benutzt werden soll, oder ob die neue Version installiert werden soll. Mit der Option wird ohne Nachfrage die neue Version installiert.
Fortsetzung auf nchster Seite

236

8 Mehr ber Pakete und Paketverwaltung

Fortsetzung

Beschreibung Vorgabe Nein Wie confnew mit dem Unterschied, dass automatisch die alten Versionen von Kongurationsdateien beibehalten werden. confdef Wie confold oder confnew mit dem UnNein terschied, dass automatisch die Version einer Kongurationsdatei installiert wird, die dem Benutzer als Voreinstellung vorgeschlagen wird. overwrite Pakete, die Dateien beinhalten, die bereits Nein durch andere Pakete installiert wurden, werden normalerweise nicht installiert. Dieses Verhalten wird durch die Option berschrieben. overwrite-dir Wenn ein Paket ein Verzeichnis mit einem beNein stimmten Namen angelegt hat, ist es mit dieser Option mglich, das betreffende Verzeichnis zu lschen und an Stelle dessen eine Datei zu installieren, die den gleichen Namen wie das Verzeichnis hat. overwrite-diverted Ermglicht das berschreiben von Dateien, Nein die mit dpkg-divert verschoben wurden. architecture Ermglicht die Installation von Paketen, die Nein fr eine andere Rechnerarchitektur bestimmt sind. bad-path Lsst dpkg auch dann versuchen, die angeforNein derten Aktionen auszufhren, wenn wichtige Programme nicht im Suchpfad fr Programme enthalten sind. not-root Es wird auch dann versucht, die angeforderten Nein Aktionen auszufhren, wenn das Programm nicht vom Verwalter aufgerufen wird.

Option confold

8.3.9 Weitere Aktionen und Optionen Im folgenden nden Sie eine Anzahl weiterer Optionen: - -audit Mit dieser Option aufgerufen, gibt dpkg die Namen aller Pakete aus, bezglich derer Fehler aufgetreten sind oder die noch nicht vollstndig installiert sind. Das Programm macht dann Vorschlge, wie die Fehler behoben werden knnen. - -yet-to-unpack Listet die Namen aller Pakete auf, die zur Installation ausgewhlt, aber noch nicht ausgepackt sind.

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

237

- -abort-after=Anzahl Gibt mit Anzahl an, nach wievielen Fehlern das Programm abbrechen soll. Voreinstellungswert ist 50. Zu niedrig, wenn gleichzeitig eine sehr groe Anzahl von Paketen installiert wird. - -no-act Das Programm fhrt keine der ausgewhlten Aktionen wirklich aus, sondern zeigt nur an, was es tun wrde. - -ignore-depends=Paket[,Paket ...] Mit dieser Option lsst sich bestimmen, dass die Abhngigkeiten der mit Paket bezeichneten Pakete nicht berprft werden sollen. Dadurch kann eine feinere Einstellung als mit der Option --force-depends erreicht werden.

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg


Bei dem Advanced Package Tool (APT) handelt es sich um eine Reihe von Programmen und Bibliotheken, die den Aufruf von dpkg steuern und somit Pakete installieren oder deinstallieren. Dabei werden die Abhngigkeiten oder Konikte der Pakete untereinander zunchst analysiert, sodass beim Aufruf von dpkg keine Fehler mehr auftreten sollten. Auf diese Weise lassen sich auch komplexe Aufgaben wie die Umstellung einer Installation von einer Debian-Version auf die nchste automatisch durchfhren. Weiterhin verwaltet APT eine Reihe von Paketquellen: CD/DVDs, die lokale Festplatte oder Server im lokalen Netz, Server im Internet. Wenn ein bestimmtes Paket installiert werden soll, braucht nur noch der Name des Pakets bekannt zu sein, APT kmmert sich um alles weitere automatisch. Das Programm fordert dann beispielsweise auf, eine bestimmte CD/DVD in das Laufwerk zu legen, oder ldt die Paketdateien aus dem Internet herunter. Es erkennt auch, wenn das zu installierende Paket Abhngigkeiten zu Paketen hat, die noch nicht installiert sind, und besorgt und installiert diese zustzlich bentigten Pakete ebenfalls. Falls ein zu installierendes Paket in Konikt mit einem Paket steht, dass bereits installiert ist, erkennt APT dies und entfernt das Paket, welches den Konikt erzeugt, bevor das neue Paket installiert wird. Standardmig wird zunchst berechnet, was geschehen muss, um die angeforderte Aktion auszufhren. Danach wird ein Bericht ausgegeben, der die notwendigen nderungen am System darstellt. Der Benutzer hat dann die Mglichkeit, abzubrechen oder die Vernderungen am System auszufhren. 8.4.1 Konguration von APT APT wird durch zwei Dateien konguriert. Dies sind die Dateien /etc/apt/apt.conf sowie /etc/apt/sources.list. In der ersten Datei werden allgemeine Einstellungen vorgenommen. Dazu gehren Einstellungen, die bestimmen, wie APT dpkg aufruft, welche Verzeichnisse APT verwenden soll oder wie APT arbeiten soll, wenn es von dselect aus benutzt wird. In der Regel ist es nicht notwendig, nderungen an dieser Datei vorzunehmen. Die zweite Datei (/etc/apt/sources.list) legt fest, welche Paketquellen das Programm verwenden soll. In dieser Datei werden dem System bekannte CD/DVDs,

238

8 Mehr ber Pakete und Paketverwaltung

Verzeichnisse und Server aufgefhrt, die APT benutzen darf, wenn es Pakete beschaffen muss. Diese Datei muss an die lokalen Gegebenheiten angepasst werden. Dies kann zum einen manuell mit einem Texteditor geschehen oder mit dem Programm apt-setup, welches im Paket base-cong enthalten ist (siehe Seite 179). Die Datei /etc/apt/sources.list Wie unter Linux/UNIX blich handelt es sich bei dieser Kongurationsdatei um eine Textdatei. Leere Zeilen und solche, die mit einem Doppelkreuz (#) beginnen, haben fr APT keine Bedeutung und knnen benutzt werden, um die Datei zu strukturieren und kommentieren. Jede andere Zeile beschreibt eine Installationsquelle und ist folgendermaen aufgebaut: Typ URI Distribution [Abteilung ...] Fr Typ ist der Typ der Installationsquelle anzugeben. Zur Zeit werden zwei Typen von Installationsquellen erkannt: deb Der Typ deb beschreibt Installationsquellen, von denen gewhnliche Pakete bezogen werden knnen. Dabei handelt es sich um Binr-Pakete, welche Programme in kompilierter Form enthalten, die nach ihrer Installation sofort ausgefhrt werden knnen. deb-src Dieser Typ beschreibt Quellen, von den Quellcodepakete bezogen werden knnen. Wie der Name sagt, beinhalten Quellcodepakete Dateien, die bersetzt (kompiliert) werden mssen, bevor die darin enthaltenen Programme ausgefhrt werden knnen. APT kann Quellcodepakete zur Verfgung stellen und aus diesen Binrpakete erstellen. Dafr muss eine Reihe von Programmen zum bersetzen von Quellcode sowie zum Erstellen von Paketen installiert sein (siehe auch S 252). Nach dem Typ ist der Universal Resource Identier (URI) anzugeben. Das ist eine Erweiterung des vom Internet bekannten Uniform Resource Locators (URL), mit dem eine bestimmte Adresse im Internet sowie das zum Zugriff auf diese Adresse zu benutzende Protokoll beschrieben wird. Wie URLs bestehen URIs aus drei Komponenten: 1. Einer Bezeichnung des Protokolls oder der Zugriffsart, die verwendet wird, um auf die Quelle zuzugreifen. APT untersttzt zur Zeit die folgenden Typen (Protokolle) von URIs: le Quellen, auf die ber das Dateisystem des Rechners zugegriffen werden kann, also Verzeichnisse, in denen sich Pakete benden. cdrom Ermglicht einen speziell fr CDs geeigneten Zugriff auf Pakete. Auf CDs kann zwar ebenfalls ber das Dateisystem zugegriffen werden, allerdings stehen sie nicht immer zur Verfgung und mssen u. U. ausgewechselt werden, damit auf alle Pakete zugegriffen werden kann, die sich auf einem Satz von CDs benden.

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

239

Achtung: Paketquellen mit URIs vom Typ CD drfen nicht manuell in die Datei /etc/apt/sources.list eingetragen werden. Vielmehr ist hierzu ein spezielles Programm (apt-cdrom, siehe Seite 241) zu verwenden! copy Der Zugriff auf Pakete ber den URI-Typen copy ist hnlich wie ber den Typen le. Allerdings werden Pakete zunchst auf die Festplatte kopiert, bevor sie installiert werden. Dies ist sinnvoll beim Einsatz von entfernbaren Datentrgern wie MO-Disks oder ZIP-Disketten, wenn die Pakete auch nach der Installation noch verfgbar sein sollen. http Zugriff auf andere Rechner ber das Hyper Text Transfer Protocol (HTTP), das von Web-Browsern zum Herunterladen von Dateien benutzt wird. ftp Das File Transfer Protocol (FTP) zum Austausch (Fernkopieren) von Dateien, von allen ofziellen Debian-Spiegel-Servern untersttzt. 2. Auf den URI-Typ folgt die Adresse des Rechners, auf dem sich die Quelle bendet. Bei den lokalen URIs le, cdrom und copy entfllt dieser Teil. Rechneradressen knnen als IP-Adressen (z. B 141.76.2.4) oder als DNS-Namen (z. B. ftp.de.debian.org) angegeben werden. Wenn eine Rechneradresse angegeben ist, wird diese von der Bezeichnung des URI-Typen durch einen Doppelpunkt und zwei darauffolgende Schrgstriche getrennt. Wenn keine Rechneradresse angegeben ist, bendet sich hinter dem URI-Typen nur ein Doppelpunkt. 3. Zum Schluss folgt der Name des Pfades zur Debian-Distribution (der Verzeichnisname) auf dem Rechner, der die Quelle zur Verfgung stellt. Nach dem URI muss der Name der Distribution angegeben werden, auf welche mit der beschriebenen Quellendenition zugegriffen werden soll. Diese Namen entsprechen den Namen der Verzeichnisse, unterhalb derer sich die zu beschaffenden Pakete benden, beispielsweise woody, sarge, stable oder unstable. Ob die Codenamen einer Distribution oder die Bezeichnungen stable bzw. unstable benutzt werden, ist abhngig davon, was man mchte. Wer als Distribution unstable angibt, bekommt immer die neuesten (unstabilen) Pakete, auch wenn der Status einer unstabilen Version in frozen gendert und eine neue unstabile Version erzeugt wird. Wer hingegen den Codenamen einer Distribution (z. B. woody) benutzt, kann sicher sein, weiterhin die gleiche Distribution zu verwenden, auch wenn ihr Status von unstable nach frozen oder von frozen nach stable wechselt. Zum Schluss mssen die gewnschten Abteilungen der zu verwendenden Distribution angegeben werden, z. B. main, contrib und non-free. Die Eintrge in der Datei /etc/apt/sources.list setzen voraus, dass sich die Verzeichnisstruktur der Installationsquellen an den ofziellen Debian-Servern oder CDs orientiert. Das heit, dass dort Distributionen, Abteilungen und Unterverzeichnisse fr verschiedene Rechnerarchitekturen vorhanden sind. Gelegentlich hat man es aber mit Quellen zu tun, bei denen alle Pakete einfach in einem Verzeichnis liegen, die also nicht wie ofzielle Debian-Server aufgebaut sind. In solchen Fllen ist an Stelle des Namens der Distribution der Name eines Verzeichnisses gefolgt von einem

240

8 Mehr ber Pakete und Paketverwaltung

Schrgstrich anzugeben. Namen von Distributionsabteilungen knnen dann nicht angegeben werden. Der Name dieses Verzeichnisses wird von APT beim Zugriff auf die Quelle an den Verzeichnisteil des URIs angehngt. Durch die Reihenfolge der Eintrge in der Datei /etc/apt/sources.list wird bestimmt, mit welcher Prioritt die angegebenen Quellen benutzt werden sollen. APT versucht immer, Pakete von der zuerst genannten Quelle zu beziehen. Wenn das Paket dort nicht vorhanden ist, wird die nchste Quelle probiert usw. Zu beachten ist dabei, dass APT stets die neueste verfgbare Version eines Paketes beschafft. Es kann also sein, dass ein bestimmtes Paket zwar in der ersten genannten Quelle vorhanden ist, aber trotzdem von der dritten bezogen wird, weil es dort in einer neueren Version vorliegt. Im allgemeinen ist zu empfehlen, lokal vorhandene Datentrger zuerst aufzufhren. So werden Netzverbindungen nur dann aufgebaut, wenn ein Paket lokal nicht mehr in der neuesten Version zur Verfgung steht. Ein Beispiel fr die Datei /etc/apt/sources.list:
# Pakete auf CD sollen mit hchster Prioritt benutzt werden: deb "cdrom:woody 20.5.2000/debian/" woody contrib main non-free # Danach wird der lokale Debian-Spiegel benutzt: deb file:/pub/mirrors/debian woody main contrib non-free # Pakete, die in den beiden oben aufgefhrten Quellen nicht oder # nicht in der aktuellsten Fassung vorhanden sind, sollen von den # folgenden Internet-Servern besorgt werden: deb ftp://ftp.de.debian.org/debian woody main contrib non-free deb ftp://non-US.debian.org/debian-non-US woody non-US/main non-US/ contrib non-US/non-free # Mit dem folgenden Eintrag wird keine Distribution, sondern ein # Verzeichnis bezeichnet: deb ftp://ftp.kde.org/pub/kde/stable/1.1.2/distribution/deb/ woody i386/ # Quellcode-Pakete sollen von diesem Server bezogen werden: deb-src ftp://ftp.de.debian.org/debian woody main contrib non-free

Der erste Eintrag in diesem Beispiel ist ein Eintrag fr eine CD. Solche Eintrge sind mit dem Programm apt-cdrom zu erstellen (siehe Seite 241). Der nchste Eintrag bezeichnet einen Debian-Spiegel, der lokal zur Verfgung steht. Er bendet sich unterhalb des Verzeichnisses /pub/mirrors/debian. Von hier soll die Distribution woody mit den Komponenten main, contrib und non-free bezogen werden. Weil dieser lokale Spiegel nach dem CD-Eintrag aufgefhrt ist, werden Pakete von APT bevorzugt von CD installiert. Die Beispieldatei bestimmt weiter, dass Pakete, die weder auf der angegebenen CD noch auf dem lokalen Spiegel in aktueller Fassung vorhanden sind, aus dem Internet bezogen werden sollen. Dazu ist zunchst ein deutscher Debian-Spiegel aufgefhrt und dahinter der Server non-US.debian.org6. Zu beachten ist, dass die Namen der Abteilungen beim non-US-Server non-US/main usw. lauten. Wie beschrieben, gibt es auf diesem Server ein zustzliches Unterverzeichnis.
6 Der deutsche Spiegel-Server knnte auch fr den non-US-Teil der Distribution benutzt werden, da sich dieser ebenfalls auf dem Server bendet.

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

241

Danach ist der Server des KDE-Projekts aufgefhrt. Dieser Server hlt keine Verzeichnisstruktur vor, die dem Layout der Debian-Server gleicht. Deswegen ist hier an Stelle des Namen der gewnschten Distribution einfach ein Verzeichnis (i386/ ) angegeben. Die von diesem Server zu beziehenden Pakete benden sich dort im Verzeichnis /pub/kde/stable/1.1.2/distribution/deb/woody/i386. Der letzte Eintrag ist vom Typ deb-src. Mit diesem Eintrag knnen Quellcodepakete bezogen werden. Er unterscheidet sich in seinem Aufbau nicht von den brigen Eintrgen. Addieren von CDs Wenn CDs mit Paketen von APT benutzt werden sollen, muss APT von deren Existenz und Inhalt in Kenntnis gesetzt werden. Diese Aufgabe bernimmt das Programm apt-cdrom. Damit es funktioniert, muss das Programm in der Lage sein, auf das CD-Laufwerk zuzugreifen. Das bedeutet, dass in der Datei /etc/fstab ein Eintrag zum Mounten von CDs vorhanden sein muss (siehe auch Seite 14.3.3). Das Programm wird folgendermaen aufgerufen: debian:~# apt-cdrom add Daraufhin wird versucht, eine eventuell bereits eingebundene CD aus dem Dateisystem zu entfernen, und es erscheint die Aufforderung, die CD in das Laufwerk einzulegen, von deren Existenz APT in Kenntnis gesetzt werden soll. Wenn dies geschehen ist, muss die Taste E INGABE bettigt werden, und das Programm untersucht die CD nach Paketindices. Falls auf der CD kein Name enthalten ist, werden Sie aufgefordert, eine Bezeichnung fr die CD einzugeben. Der Vorgang ist fr alle CDs zu wiederholen, die angemeldet werden sollen. Wenn Sie einen Satz von Debian-CDs besitzen, mssen Sie apt-cdrom fr jede darin enthaltene CD einmal aufrufen. Danach sollte sich in der Datei /etc/apt/sources.list ein Eintrag fr jede CD benden. Achtung: Das Programm apt-cdrom kann nicht mit CDs umgehen, auf denen sich einfach nur eine Anzahl von Paketen bendet. Es ist erforderlich, dass die CDs wenigstens grob dem Verzeichnislayout der Debian-Distribution folgen und dass in den entsprechenden Verzeichnissen Paketindices vorhanden sind. Das Programm apt-cdrom kennt einige Optionen, im Manual beschrieben. Die wichtigsten sind: -d | - -cdrom Verzeichnis Gibt mit Verzeichnis das Verzeichnis an, in das CDs eingebunden werden. Standardwert ist /cdrom. -m | - -no-mount Bewirkt, dass die bereits eingebundene CD verwendet wird und keine Aufforderung zum Einlegen einer neuen CD ergeht. Wenn Sie mchten, dass bestimmte CDs nicht mehr benutzt werden, knnen Sie die entsprechenden Eintrge manuell aus der Datei /etc/apt/sources.list entfernen.

242

8 Mehr ber Pakete und Paketverwaltung

Nicht-ofzielle Paketquellen Neben dem Debian-Projekt gibt es eine Reihe anderer Anbieter von Debian-Paketen. Wenn Sie die Server dieser Anbieter in die Datei /etc/apt/sources.list aufnehmen, knnen Sie die entsprechenden Pakete ebenso mit apt-get oder dselect verwalten wie den ofziellen Teil der Distribution. Eine Liste einiger Anbieter von inofziellen Debian-Paketen, mit entsprechenden sources.list-Eintrgen und Beschreibungen, ist unter der Web-Adresse http://www.apt-get.org/ zu nden. Achtung: Inofzielle Pakete sollten mit Vorsicht genossen werden. Sie knnen zwar wie ofzielle Pakete installiert werden, sind aber nicht Teil von Debian und bieten deswegen nicht die gewohnten Sicherheiten und Dienstleistungen. Vorsicht auch vor trojanischen Pferden. 8.4.2 Arbeiten mit apt-get Das Programm apt-get ist die Benutzer-Schnittstelle zu APT, mit der Pakete installiert, deinstalliert oder auch das ganze System aktualisiert werden kann. APT pegt eine eigene Datenbank verfgbarer Pakete, die getrennt ist von der dpkg-Datenbank. Der Grund dafr ist folgender: In der von dpkg gepegten Datenbank darf jedes Paket nur einmal vorkommen. APT kann jedoch eine Reihe von Installationsquellen kennen, auf denen das gleiche Paket mehrmals, u. U. in unterschiedlichen Versionen, vorhanden ist. Die Folge ist, dass ein Paket, von dem APT Kenntnis hat, fr dpkg unbekannt sein kann und umgekehrt. Es ist allerdings mglich, die beiden Datenbanken abzugleichen dadurch, dass in dselect das Kommando update aufgerufen wird und APT dort als Installationsmethode ausgewhlt ist. Aktualisieren der Datenbank verfgbarer Pakete Bevor apt-get das erste Mal benutzt wird, muss APTs Datenbank der auf den kongurierten Paketquellen verfgbaren Pakete initialisiert werden. Hierzu ist das Programm wie folgt aufzurufen: debian:~# apt-get update Je nachdem, welche Paketquellen in der Datei /etc/apt/sources.list deniert worden sind, verbindet sich das Programm dann mit den entsprechenden Rechnern und ldt die dort vorhandenen Paketindices herunter. Hierbei kann es zu Fehlern kommen. Die hugsten sind: Es werden Syntaxfehler in der Datei sources.list festgestellt (E: Malformed line). Korrigieren Sie die Datei und versuchen Sie es erneut. Die Verbindung zu als Paketquellen denierten Rechnern kann nicht aufgebaut werden (Could not resolve bedeutet: der Rechnername ist nicht bekannt, oder could not connect bedeutet: Der ferne Rechner meldet sich nicht). berprfen Sie, ob die Rechnernamen in den URIs richtig angegeben sind und ob Ihre Netzkonguration stimmt.

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

243

Die Paketindices konnten auf den Paketquellen nicht gefunden werden (Couldnt stat source package list). berprfen Sie in diesem Fall, ob die Verzeichnisteile der URIs sowie Distributionsnamen und Abteilungsnamen richtig angegeben sind. Wenn alles gut geht (kommt vor), sollten keine Fehlermeldungen und zum Schluss der Satz Building Dependency Tree . . . Done erscheinen. Das Programm ist bereit fr den Einsatz. Achtung: Dieser Schritt muss immer dann wiederholt werden, wenn sich die Pakete, die durch die Quellen zur Verfgung gestellt werden, gendert haben. Ansonsten wrde APT versuchen, Pakete zu beziehen, die gar nicht mehr vorhanden sind, was zu Fehlern fhrt. Wenn Sie nur CD/DVDs oder lokale Verzeichnisse verwenden, haben Sie selbst die Kontrolle darber, welche Pakete zur Verfgung stehen. Sollten in der Datei /etc/apt/sources.list fremde Rechner als Quellen speziziert worden sein, empehlt es sich, das Kommando apt-get update auszufhren, bevor mit der Installation von Paketen begonnen wird. Alternativ zum manuellen Aufruf des Kommandos kann auch der Menpunkt update im Hauptmen von dselect ausgewhlt werden. Dabei werden die Datenbanken von APT und dpkg aneinander angeglichen. Verwendung von Proxy-Servern In einer Reihe von Netzen (insbesondere in Unternehmen) kann auf externe FTPoder HTTP-Server (Web) nur ber Proxy-Server zugegriffen werden. Hierbei handelt es sich um Zwischenserver, mit denen an Stelle des eigentlichen Zielrechners eine Verbindung aufgebaut wird. Der Proxy ist dann dafr verantwortlich, die angeforderten Daten zur Verfgung zu stellen und an den lokalen Rechner zu schicken. APT kann fr die Verwendung von Proxies konguriert werden. Zur Verwendung eines HTTP-Proxies ist vor dem Aufruf von apt-get die Umgebungsvariable http_proxy zu setzen (siehe auch Kapitel 16.6.4, S. 540). Dies kann in der Bash mit dem Kommando export geschehen. Die Syntax ist folgende: export http_proxy=[Benutzer:Passwort@]Proxy:Port/ Die Angabe von Benutzername und Passwort ist optional und bei den meisten Proxy-Servern nicht erforderlich. Mit Proxy-Server wird der Name des Servers und mit Port der zu benutzende TCP/IP-Port auf dem Server angegeben. Beispiel: debian:~# export http_proxy=proxy.firma.de:8080/ Die Verwendung eines FTP-Proxies ist auf die gleiche Art zu kongurieren mit dem Unterschied, dass hier die Umgebungsvariable ftp_proxy zu benutzen ist. Viele HTTP-Proxies verstehen auch FTP-URLs.

244

8 Mehr ber Pakete und Paketverwaltung

Automatische Aktualisierung des Systems Nachdem APT wei, welche Pakete auf den Installationsquellen zur Verfgung stehen und welche Pakete installiert sind, kann es das System auf den neuesten Stand bringen, das heit alle Pakete aktualisieren, die in einer neueren Version verfgbar sind, als sie zur Zeit installiert sind. Hierzu ist das Programm so aufzurufen: debian:~# apt-get upgrade Daraufhin erscheint eine Ausgabe, die sinngem der folgenden entspricht:
Reading Package Lists... Done Building Dependency Tree... Done 10 packs upgraded, 0 newly installed, 0 to remove, 0 not upgraded Need to get 4456kB of archives. After unpacking 2634kB will be used Do you want to continue? [Y/n]

Das Programm gibt aus, wieviele Pakete in einer neueren Version vorhanden sind und aktualisiert werden. In der nchsten Zeile wird angezeigt, wieviel Daten von fremden Rechnern heruntergeladen werden mssen und wieviel zustzlicher Speicherplatz nach der Installation bentigt wird 7 . Gelegentlich kommt es vor, dass durch die Aktualisierung Speicherplatz freigegeben wird (weil Pakete kleiner geworden sind). Auch dies wird von dem Programm angezeigt. Bedenken Sie bitte, dass Sie zustzlich zu dem Speicherplatz fr die Installation der Pakete Platz bentigen, um diejenigen Pakete zwischenzuspeichern, die von anderen Rechnern heruntergeladen werden8. Sie knnen den Vorgang fortsetzen (Taste E INGABE) oder abbrechen (Taste N). Wenn der Vorgang fortgesetzt wird, stellt APT die Verbindungen zu den betreffenden Rechnern her und ldt die bentigten Pakete herunter. Dabei erfolgt eine Statusanzeige, anhand derer abgeschtzt werden kann, wann der Download abgeschlossen ist. Sobald alle Dateien zur Verfgung stehen, beginnt das Programm sie zu installieren. Wenn das Programm debconf (siehe Seite 7.5.1) benutzt wird, werden nun alle Pakete auf bentigte Kongurationsangaben hin untersucht. Gegebenenfalls wird danach die Konguration erfragt. Danach wird dpkg aufgerufen, und die Pakete werden installiert. Wenn Sie CDs als Installationsquelle verwenden, kann es dabei vorkommen, dass APT Sie zum Einlegen bestimmter CDs auffordert. Die Installation der Pakete erfolgt anschlieend wie blich. Hier kann es passieren, dass Ihnen whrend der Kongurationsphase Fragen zur Konguration einzelner Pakete gestellt werden (siehe S. 202). Sowohl bei der Beschaffung von Paketen als auch whrend ihrer Installation knnen Fehler auftreten. Die hugsten sind:

Weil die meisten Dateien von Paketen unterhalb des Verzeichnisses /usr installiert werden, wird der Speicherplatz in der Regel auf der Partition bentigt, auf der sich dieses Verzeichnis bendet. 8 APT speichert heruntergeladene Pakete im Verzeichnis /var/cache/apt/archives.

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

245

Die Verbindung zu einem Rechner konnte nicht aufgebaut werden. In diesem Fall sollten Sie die Netzkonguration Ihres Rechners berprfen. Ein Paket konnte nicht heruntergeladen werden. Die Ursache hierfr ist in der Regel, dass APTs Datenbank verfgbarer Pakete nicht mit den tatschlich auf den Installationsquellen vorhandenen Paketen bereinstimmt. Fhren Sie dann das Kommando apt-get update aus und versuchen Sie danach erneut, die Aktualisierung durchzufhren. Eine andere Ursache ist, dass die Paketindices und die Pakete auf der Installationsquelle nicht bereinstimmen. Dies kann schon mal der Fall sein, wenn Pakete gerade aktualisiert worden sind, aber die Indices noch nicht. Warten Sie in so einem Fall ein paar Stunden oder versuchen Sie es mit einem anderen Debian-Mirror. Wenn Pakete mit falschen Angaben ber Abhngigkeiten oder Konikte versehen sind, lsst apt-get Pakete u. U. in einer falschen Reihenfolge installieren, was zu Fehlern bei der Installation der Pakete fhren kann. Solche Fehler sollten bei der ofziellen, stabilen Debian-Distribution nicht auftreten. Falls es doch passiert, mssen Pakete direkt mit dpkg installiert oder konguriert werden. Die von apt-get heruntergeladenen Paketdateien benden sich im Verzeichnis /var/cache/apt/archives. Bei der Benutzung von apt-get upgrade werden keine Pakete installiert, die bisher nicht installiert waren, und es werden auch keine Pakete von dem System entfernt. Dies kann jedoch gelegentlich zur vollstndigen Aktualisierung notwendig sein. Stellen Sie sich vor, ein aktualisiertes Paket hat eine neue Abhngigkeit zu einem Paket, das nicht auf dem System installiert ist. Dieses (aktualisierte) Paket kann dann nicht installiert werden, wenn nicht auch das neue Paket installiert wird, zu dem die Abhngigkeit besteht. In solchen Fllen werden die entsprechenden Pakete von der Aktualisierung ausgeschlossen. Es erscheint eine Meldung, die sinngem wie die folgende aussieht:
Reading Package Lists... Done Building Dependency Tree... Done The following packages have been kept back imagemagick libc6 libc6-dev libc6-pic libmagick4g locales 120 packs upgraded, 0 newly installed, 0 to remove, 6 not upgraded Need to get 15.5MB/64.7MB of archives. After unpacking 9787kB will be used.

Die Pakete, die unter der Zeile The following packages have been kept back aufgefhrt sind, werden von APT nicht aktualisiert, weil dazu neue zustzliche Pakete installiert oder bisher installierte Pakete vom System entfernt werden mssten. Die Ausgabe unterscheidet sich von der oben gezeigten in einem zweiten Punkt: Die Angabe ber die zu beschaffende Datenmenge ist in zwei Angaben aufgeteilt (15.5 MB/64.7 MB). Die erste Angabe bezeichnet hier die Menge der Daten, die von fremden Rechnern beschafft werden mssen und fr die Speicherplatz zur Zwischenspeicherung auf dem lokalen Rechner bentigt wird. Die zweite Angabe bezeichnet die Gesamtdatenmenge aller zu installierender Pakete.

246

8 Mehr ber Pakete und Paketverwaltung

Aktualisieren der gesamten Installation Wie oben angesprochen, gibt es Situationen, in denen zustzliche Pakete installiert und andere vom Rechner entfernt werden mssen, um das System komplett zu aktualisieren. Dies ist insbesondere dann der Fall, wenn von einer Version der Distribution auf eine neuere aktualisiert wird (z. B. von potato zu woody). Um eine solche komplette Aktualisierung durchzufhren, ist apt-get folgendermaen aufzurufen: debian:~# apt-get dist-upgrade Achtung: Durch die Verwendung dieses Kommandos knnen Pakete von dem System gelscht werden! Sie sollten die Ausgabe des Programms apt-get genau prfen, bevor Sie besttigen, dass die Aktion tatschlich ausgefhrt wird. APT arbeitet mit einer Reihe von Algorithmen, mit denen festgestellt wird, welche Pakete tatschlich installiert sein sollen und welche nur installiert sind, um Abhngigkeiten zu erfllen. In der Regel fhrt dies dazu, dass Systemaktualisierungen im Sinne des Verwalters durchgefhrt werden. U. U. ist es aber nach einer Aktualisierung notwendig, einzelne Pakete nachzuinstallieren oder Pakete zu entfernen, die flschlicherweise installiert wurden. Nach der Eingabe des Kommandos erscheint eine Ausgabe folgender Art:
Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Done The following packages will be REMOVED: console-apt fsresize gconv-modules gnome-apt The following NEW packages will be installed: libhdf4g libreadline4 130 packs upgraded, 2 newly installed, 4 to remove, 0 not upgraded. Need to get 21.7MB/73.3MB of archives. After unpacking 18.6MB will be used. Do you want to continue? [Y/n]

Besonders sollten Sie hier die Ausgabe unter der Zeile The following packages will be REMOVED: prfen. Hier werden solche Pakete aufgefhrt, die nach der Aktualisierung nicht mehr auf dem System vorhanden sein werden, etwa weil sich Abhngigkeiten verndert haben, die fr diese Pakete nicht mehr befriedigt werden knnen, oder Konikte zu anderen wichtigen Paketen bestehen. berprfen Sie, ob sich in dieser Liste Pakete benden, die Sie unbedingt bentigen und brechen Sie das Programm gegebenenfalls ab. Oft handelt es sich bei den zu entfernenden Paketen allerdings um solche, deren Funktionalitt nach der Aktualisierung durch andere Pakete bereit gestellt wird, sodass die vorgeschlagenen nderungen akzeptiert werden knnen. Wenn Sie den Vorgang fortsetzen, geschieht das Gleiche wie bei der einfachen Aktualisierung des Systems. Gegebenenfalls werden Verbindungen zu anderen Rechnern aufgebaut und Pakete heruntergeladen. Sobald alle Pakete zur Verfgung stehen, ruft apt-get das Programm dpkg auf, um sie zu installieren.

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

247

Installation von neuen Paketen Wenn dem System einzelne Pakete hinzugefgt werden sollen, wird apt-get in der folgenden Form aufgerufen: apt-get install Paketname [Paketname ...] Dem Programm sind die Namen der zu installierenden Pakete hintereinander an der Kommandozeile zu bergeben. Es ist dabei nicht notwendig, Pakete mit anzugeben, die von den zu installierenden Paketen aufgrund von Abhngigkeiten bentigt werden. APT kmmert sich selbst um solche Pakete und installiert diese ebenfalls. Die wichtigsten Entscheidungen, die APT bei der Installation neuer Pakete treffen muss, sind folgende: 1. Ein zu installierendes Paket ist abhngig von Paketen, die noch nicht auf dem System installiert sind. APT entscheidet dann, die bentigten Pakete ebenfalls zu installieren. 2. Ein zu installierendes Paket steht in Konikt mit einem anderen, bereits installierten Paket. APT entscheidet in diesem Fall, das bereits installierte Paket zu entfernen, weil der Benutzer das neue, zu installierende Paket explizit ausgewhlt hat. Konikte knnen auch dadurch ausgelst werden, dass neue Pakete aufgrund von Abhngigkeiten installiert werden mssen, die nicht explizit zur Installation vorgesehen sind. In solchen Fllen wird APT keine Vernderungen am System durchfhren, weil die auf Grund von Abhngigkeiten zu installierenden Pakete nicht explizit vom Verwalter zur Installation ausgewhlt wurden. Das Programm gibt eine Fehlermeldung aus. 3. Schlielich kommt es vor, dass zwei Pakete, die miteinander in Konikt stehen, installiert werden sollen. Solche widersprchlichen Situationen werden von APT bemerkt und mit einer Fehlermeldung quittiert. Ein einfaches Beispiel fr die Installation eines Pakets mit apt-get ist folgendes: debian:~# apt-get install xteddy Die Ausgabe sieht dann z. B. so aus:
Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: imlib1 The following NEW packages will be installed: imlib1 xteddy 0 packs upgraded, 2 newly installed, 0 to remove, 0 not upgraded. Need to get 0B/356kB of archives. After unpacking 590kB will be used. Do you want to continue? [Y/n]

Das Programm teilt mit, dass es neben dem angeforderten Paket das Paket imlib1 installieren muss (extra packages). Als Konsequenz werden durch die angeforderte

248

8 Mehr ber Pakete und Paketverwaltung

Aktion in diesem Fall die Pakete imlib1 und xteddy installiert. Wenn dies besttigt wird, erfolgt die Installation auf die gleiche Weise, wie bereits beschrieben. Falls es bei der Installation neuer Pakete lediglich erforderlich ist, die an der Kommandozeile angeforderten Pakete zu installieren, wartet apt-get nicht auf eine Besttigung, sondern startet sofort. Etwas komplexer ist es, wenn zur Installation neuer Pakete Konikte gelst werden mssen. Angenommen, auf dem System ist der Mail-Transport-Agent (MTA) exim installiert, und es soll das Paket sendmail installiert werden, ebenfalls ein MTA. Weil auf einem System nur ein MTA arbeiten darf, ergibt sich hieraus ein Konikt: debian:~# apt-get install sendmail Nun erscheint folgende Ausgabe:
The following extra packages will be installed: procmail The following packages will be REMOVED: exim The following NEW packages will be installed: procmail sendmail 0 packs upgraded, 2 newly installed, 1 to remove, 0 not upgraded. Need to get 0B/1041kB of archives. After unpacking 868kB will be used. Do you want to continue? [Y/n]

Wie oben teilt das Programm zunchst mit, dass ein zustzliches Paket installiert werden muss, um Abhngigkeiten des zu installierenden Programms zu befriedigen (procmail). Darunter bendet sich die Warnung, dass das Paket exim entfernt werden muss, um das angeforderte Paket zu installieren. Wie bei der Aktualisierung des Systems sollte in einer solchen Situation sorgfltig geprft werden, ob zu entfernende Pakete gelscht werden drfen. Wenn jedoch ein Paket installiert werden soll, welches eine Abhngigkeit zu einem anderen, nicht installierten, Paket hat, und dieses nicht explizit angeforderte, aber bentigte Paket in Konikt zu einem bereits installierten Paket steht, dann entscheidet APT, dass die Entfernung des installierten Pakets, zu welchem der Konikt besteht, nicht gewnscht ist, und teilt dies mit. Beispiel: Das Paket sharc ist von dem Paket sendmail abhngig. Auf einem System, auf dem exim als MTA benutzt wird, muss das Paket exim entfernt werden, bevor sharc installiert werden kann. Die Ausgabe von apt-get sieht dann folgendermaen aus:
Building Dependency Tree... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. Since you only requested a single operation it is extremely likely that the package is simply not installable and a bug report against that package should be filed.

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

249

The following information may help to resolve the situation: Sorry, but the following packages have unmet dependencies: sharc: Depends: sendmail (>= 8.9.1) but it is not going to be installed E: Sorry, broken packages

Das Programm teilt hier mit, dass das Paket sharc Abhngigkeiten zu Paketen hat, die nicht installiert werden sollen. Wenn sharc trotzdem installiert und exim deswegen gelscht werden soll, so ist die Installation des von sharc bentigten Pakets sendmail explizit anzufordern: debian:~# apt-get install sharc sendmail Durch dieses Kommando erfhrt APT, dass die Installation von sendmail tatschlich gewnscht ist, und fhrt die Installation der Pakete inklusive der Deinstallation von exim nach Besttigung durch. Entfernen von Paketen Um Pakete von dem System zu entfernen, ist apt-get in der folgenden Form aufzurufen: apt-get remove Paketname [Paketname ...] Dabei kommt es vor, dass Pakete entfernt werden sollen, von denen andere Pakete abhngig sind. Weil diese anderen Pakete nach der Entfernung der spezizierten Pakete nicht mehr funktionsfhig wren, mssen auch sie entfernt werden. Das Programm gibt deswegen zunchst eine Liste der Pakete aus, die hiervon betroffen sind. Angenommen, auf einem System ist der MTA exim installiert und soll entfernt werden. Weil eine Reihe anderer Pakete einen MTA bentigen, haben diese eine Abhngigkeit zu dem virtuellen Paket mail-transport-agent, das durch exim zur Verfgung gestellt wird. Diese Pakete mssen nun ebenfalls entfernt werden, weil nach der Entfernung von exim kein MTA mehr verfgbar ist: debian:~# apt-get remove exim Auf dieses Kommando hin erscheint eine Ausgabe, die der folgenden entspricht:
Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: at exim eximon logrotate mailx 0 packs upgraded, 0 newly installed, 5 to remove, 0 not upgraded. Need to get 0B of archives. After unpacking 1497kB will be freed. Do you want to continue? [Y/n]

Hier werden unter der Zeile The following packages will be REMOVED: die Pakete aufgelistet, die von der Entfernung des Paketes exim betroffen sind und ebenfalls entfernt werden mssen. Auch hier ist zu berprfen, ob die angeforderte Aktion tatschlich gewnscht ist. Die Ausfhrung muss gegebenenfalls abgebrochen werden.

250

8 Mehr ber Pakete und Paketverwaltung

Wenn ein Paket entfernt werden soll, um durch ein anderes ersetzt zu werden, das ebenfalls die Abhngigkeiten der installierten Pakete befriedigen kann, ist es nicht sinnvoll, das entsprechende Paket zu entfernen und danach das neue Paket zu installieren, weil dann alle Pakete mit Abhngigkeiten zu diesem Paket hinterher erneut installiert werden mssten. Vielmehr empehlt es sich in einer solchen Situation, beide Aktionen (Entfernung eines Pakets und Installation eines anderen) mit einem einzigen Aufruf von apt-get zu erledigen. Bei der Verwendung von apt-get install ist es deswegen mglich, an die Paketnamen Plus- oder Minuszeichen anzuhngen, durch die angezeigt wird, welche Pakete installiert und welche entfernt werden sollen. Beispiel: debian:~# apt-get install sendmail+ eximWenn das Kommando in dieser Form benutzt wird, mssen die Pakete, die von dem virtuellen Paket mail-transport-agent abhngen, nicht entfernt werden, weil ein MTA weiterhin installiert bleibt (exim wird durch sendmail ersetzt). Pege des Paket-Caches APT speichert alle Pakete, die es von fremden Rechnern heruntergeladen hat, im Verzeichnis /var/cache/apt/archives. Nach der Installation werden diese Pakete standardmig nicht gelscht. Pakete, die einmal heruntergeladen und installiert wurden, knnen deswegen vom System entfernt und erneut installiert werden, ohne dass eine Netzverbindung aufgebaut werden muss. Auf die Dauer kann sich dadurch jedoch eine groe Menge von Paketen in diesem Verzeichnis ansammeln. Gerade wenn mit der unstabilen Version von Debian gearbeitet wird, stehen aktualisierte Pakete in sehr kurzen Intervallen zur Verfgung, und im Paket-Cache sammeln sich alte Pakete an, die nicht mehr bentigt werden. Es ist also zweckmig, den Paketcache von Zeit zu Zeit aufzurumen. Hierzu stehen zwei Kommandos zur Verfgung: debian:~# apt-get clean Durch dieses Kommando werden alle Paketdateien gelscht, die sich im PaketCache benden. Die Folge ist, dass sie erneut heruntergeladen werden mssen, wenn sie nochmals installiert werden sollen. Auf der anderen Seite lsst sich mit diesem Kommando eine groe Menge Speicherplatz freigeben. debian:~# apt-get autoclean Dieses Kommando lscht nur die Pakete aus dem Paketcache, die auf den in der Datei /etc/apt/sources.list kongurierten Installationsquellen nicht mehr zur Verfgung stehen. Es werden also nur die Pakete gelscht, die sowieso nicht mehr bentigt werden, weil bei einer erneuten Installation neuere Versionen benutzt werden. Durch die regelmige Verwendung dieses Kommandos lsst sich der Paket-Cache dauerhaft in einer vertretbaren Gre halten, und es wird vermieden, die gleichen Dateien mehrmals herunterzuladen.

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

251

Paketverwaltung mit apt-move Wenn mehrere miteinander vernetzte Debian-Rechner regelmig aktualisiert werden sollen, ist es lstig, dieselben Paketdateien auf jeden dieser Rechner herunterladen zu mssen. In solchen Fllen empehlt sich die Verwendung eines lokalen Debian-Spiegels, auf den alle Rechner im lokalen Netz Zugriff haben. Ein solcher Spiegel kann mit dem Paket mirror angelegt und gepegt werden. Dabei wird allerdings ein vollstndiger Spiegel der Debian-Distribution erzeugt, der sehr viel Festplattenplatz bentigt. Auerdem muss zur Erstellung und Aktualisierung eines Debian-Spiegels eine hohe Netzbandbreite zur Verfgung stehen. Weil auf verschiedenen Rechnern in einem Netz oft die gleichen Pakete installiert sind und der Groteil der verfgbaren Pakete berhaupt nicht bentigt wird, ist es meistens ausreichend, einen partiellen Spiegel zu verwenden, der lediglich die Pakete enthlt, die von Rechnern im lokalen Netz bereits heruntergeladen worden sind. Dieser Aufgabe widmet sich das Programm apt-move aus dem gleichnamigen Paket. Es verschiebt die im Paket-Cache vorhandenen Pakete in einen lokalen Spiegel und pegt dort Paketindices, die nur die tatschlich vorhandenen Pakete enthalten. Das Programm wird ber die Datei /etc/apt-move.conf konguriert und ist ausfhrlich im Manual beschrieben. In der Regel ist es erforderlich, das Verzeichnis anzugeben, unterhalb dessen der Spiegel liegen soll. Dies geschieht durch den folgende Eintrag in der Kongurationsdatei: LOCALDIR=/pub/mirrors/debian Hierdurch wird die Debian-Verzeichnisstruktur unterhalb des Verzeichnisses /pub/mirrors/debian erzeugt. Zustzlich muss angegeben werden, welche Distribution (z. B. potato oder woody bzw. stable, frozen oder unstable) gespiegelt werden soll. Diese Angabe sollte mit den entsprechenden Eintragungen in der Datei /etc/apt/sources.list bereinstimmen. Um beispielsweise die Distribution woody zu spiegeln, ist dieser Eintrag geeignet: MIRROR=woody Als letztes mssen Sie in der Kongurationsdatei angeben, welche Server Sie verwenden wollen. Hier sind zwei Eintrge mglich, nmlich einer fr den Server mit dem Hauptarchiv und ein weiterer fr den Server mit den Non-US-Paketen. Beispiel:
USSITE=ftp.de.debian.org NONUSSITE=non-us.debian.org

Achtung: In der Kongurationsdatei sind bereits Eintrge vorhanden, die als Beispiel dienen. Sie mssen die vorhandenen Eintrge ndern, um die gewnschten Einstellungen vorzunehmen. Nun kann nach jeder Installation von Paketen mit apt-get, im Zuge derer neue Pakete heruntergeladen wurden, das Programm apt-move aufgerufen werden. Dies geschieht in der folgenden Form:

252

8 Mehr ber Pakete und Paketverwaltung

debian:~# apt-move update Durch dieses Kommando werden zunchst die Paketindices sowie die overrideDateien von dem kongurierten Server heruntergeladen. Dies ist notwendig, damit apt-move eine Verzeichnisstruktur erzeugen kann, die dem ofziellen Archiv entspricht. Im nchsten Schritt werden die Pakete aus dem Paket-Cache von APT in den lokalen Spiegel verschoben, danach werden alte Pakete gelscht, die auf dem zu spiegelnden Server nicht mehr vorhanden sind (z. B. weil sie aktualisiert worden sind), und zum Schluss werden Indices erstellt, die nur die im Spiegel vorhandenen Pakete enthalten. Es ist nicht unbedingt erforderlich, die Original-Indices bei jedem Aufruf von apt-move erneut herunterzuladen. Wenn das Programm wie folgt aufgerufen wird, werden die bereits vorhanden Indices benutzt: debian:~# apt-move local Damit Original-Server und Spiegel jedoch halbwegs bereinstimmen, sollten die Indices regelmig aktualisiert werden. Der lokale Spiegel ist in die Datei /etc/apt/sources.list einzutragen: deb file:/pub/mirrors/debian woody main contrib non-free Zum Schluss muss APT ber den Inhalt des Spiegels informiert werden. Es ist also einmal apt-get update auszufhren. Arbeiten mit Quellcodepaketen Wie bereits bei der Beschreibung der Datei /etc/apt/sources.list angedeutet, ist aptget auch in der Lage, Quellcodepakete zu beschaffen. Diese Pakete knnen nicht wie Binr-Pakete installiert werden, weil ihr Inhalt kompiliert werden muss, bevor er ausgefhrt werden kann. Standardmig werden Quellcodepakete deswegen lediglich im aktuellen Arbeitsverzeichnis abgelegt9 und dort ausgepackt. Danach wird mit dem Kommando dpkg-buildpackage ein Binrpaket erstellt. Die Verwendung von Quellcodepaketen empehlt sich in folgenden Situationen: Wenn der Quellcode eines Paketes verndert werden soll. Wenn ein bestimmtes Paket (in der aktuellen Fassung) nicht fr Ihre Distribution zur Verfgung steht, weil es von Paketen abhngig ist, die sie nicht installieren mchten. Dies kann der Fall sein, wenn sie die stabile Variante der Distribution verwenden, aber ein Paket in der neuesten Version nur fr die unstabile Ausgabe zur Verfgung steht. Die Installation des Binr-Pakets aus der unstabilen Distribution wrde dann zur Folge haben, dass eine Reihe weiterer Pakete (meist Programmbibliotheken) aktualisiert werden mssten, was oft nicht erwnscht ist.
Wenn die Quellcodepakete auf einem lokalen Datentrger (URI-Typ le:) zur Verfgung stehen, werden sie nicht in das aktuelle Verzeichnis kopiert. An Stelle dessen werden dort symbolische Links auf die bentigten Dateien angelegt.
9

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

253

Selbst erstellte Binrpakete haben in der Regel nur Abhngigkeiten zu installierten Programmbibliotheken und knnen deswegen dort installiert werden, wo sie erstellt worden sind. Um das Quellcodepaket xteddy zu installieren, wird dieses Kommando benutzt: joe@debian:~$ apt-get source xteddy Dies setzt voraus, dass in der Datei /etc/apt/sources.list eine Paket-Quelle von Typ deb-src angegeben ist und dass das gewnschte Quellcodepaket von dieser Quelle bezogen werden kann. Wenn das Kommando erfolgreich ausgefhrt wurde, nden Sie folgende Dateien und Verzeichnisse im aktuellen Arbeitsverzeichnis (Die Versionsnummern knnen abweichen): xteddy_2.0.1.orig.tar.gz Dieses komprimierte tar-Archiv enthlt den Originalquellcode des Pakets, der von dem oder den Programmier(n) des Programms zur Verfgung gestellt worden ist. Dieser Quellcode dient als Ausgangsbasis bei der Erstellung des Pakets. Sie entpacken die Datei mit dem Programm tar (S. 870). xteddy_2.0.1-2.diff.gz Diese mit gzip (S. 807) komprimierte Datei enthlt alle nderungen, die von Debian-Entwicklern an dem Originalquellcode vorgenommen worden sind. Die Datei fehlt bei Paketen, die eigens fr das Debian-Projekt erstellt wurden. xteddy_2.0.1-2.dsc Die Datei enthlt eine Beschreibung des Pakets sowie die elektronische Signatur des Debian-Entwicklers, der das Paket erstellt hat. xteddy-2.0.1 In diesem Verzeichnis bendet sich der ausgepackte Quellcode des Pakets. Die nderungen aus der Datei xteddy_2.0.1-2.diff.gz sind enthalten. Sie knnen nun den Quellcode des Pakets ndern. Damit aus dem Quellcode ein Binrpaket erstellt werden kann, muss auf dem System eine Anzahl von Paketen installiert sein, mit denen Quellcode bersetzt (kompiliert) werden kann und mit denen Pakete erstellt werden. Ob und welchen Compiler Sie bentigen, ist abhngig davon, in welcher Programmiersprache das Paket erstellt wurde. Zustzlich bentigen Sie in der Regel eine Reihe von Entwicklerpaketen, die Headerdateien und zum Linken bentigte Bibliotheken enthalten. Leider gibt es fr Quellcodepakete noch kein System von Abhngigkeiten wie bei der Installation von Binrpaketen. Es sind gewisse Kenntnisse erforderlich, um entscheiden zu knnen, welche Pakete bentigt werden. Fr den Anfang sollten Sie mit den folgenden Paketen starten: dpkg-dev Die wichtigsten Programme und Werkzeuge zur Erstellung von Binrpaketen. task-c-dev C-Compiler und wichtige Headerdateien. task-c++-dev Zustzlich C++-Compiler sowie fr diese Sprache bentigte Bibliotheken und Headerdateien. fakeroot Ermglicht gewhnlichen Benutzern die Erstellung von Paketen. Um zu entscheiden, welche Entwicklerpakete zu Bibliotheken bentigt werden, ist es hilfreich zu untersuchen, von welchen Paketen das entsprechende Binrpaket abhngig ist. Diese Information lsst sich beispielsweise mit dem Kommando dpkg - -print-avail anzeigen. Dabei ist zu beachten, dass dann die Information ausgegeben

254

8 Mehr ber Pakete und Paketverwaltung

wird, die fr das verfgbare Paket gilt, bei dem es sich u. U. um eine ltere Version handelt. Notfalls muss das aktuelle Binrpaket manuell heruntergeladen und mit dem Kommando dpkg - -info untersucht werden. Um beim Beispiel xteddy zu bleiben, lassen sich Hinweise ber vermutlich bentigte Entwicklerpakete mit folgendem Kommando anzeigen: joe@debian:~$ dpkg - -print-avail xteddy In der Ausgabe ist die folgende Zeile enthalten:
Depends: imlib1 (>= 1.9.8-2), libc6 (>= 2.1), libjpeg62, libpng2(>=1.0.3), libtiff3g, libungif3g (>= 3.0-2) | giflib3g (>= 3.0-5.2), libz1, xlib6g (>= 3.3.5-1)

Jedes Paket, in dessen Namen die Zeichenfolge lib (library) vorkommt, beinhaltet in der Regel eine Programmbibliothek. Um den Quellcode des Pakets xteddy zu bersetzen, ist es also vermutlich notwendig, die Entwicklerdateien zu diesen Bibliotheken installiert zu haben. Die Entwicklerdateien sind in Paketen enthalten, welche die gleichen Namen tragen wie die Pakete mit den Bibliotheken, jedoch mit der Endung -dev. So benden sich die Entwicklerdateien zur Bibliothek imlib1 im Paket imlib-dev und zur Bibliothek libjpeg62 im Paket libjpeg62-dev. Wenn alle notwendigen Pakete installiert sind, kann das Binrpaket erzeugt werden, indem in das Basisverzeichnis des Quellcodes gewechselt wird: joe@debian:~$ cd xteddy-2.0.1 Dort ist folgendes Kommando aufzurufen: joe@debian:~$ fakeroot dpkg-buildpackage Sollte das Paket fakeroot nicht installiert sein, muss das Kommando mit Verwalterrechten ohne fakeroot ausgefhrt werden. Whrend der Erstellung eines Pakets wird oft zunchst ein congure-Skript ausgefhrt. Dessen Aufgabe ist es zu berprfen, ob die notwendigen Dateien auf dem System vorhanden sind. Unter Umstnden gibt dieses Skript eine Fehlermeldung aus, wenn es eine bentigte Datei oder Systemeigenschaft nicht ndet. Sie mssen dann anhand der Fehlermeldung entscheiden, welche zustzlichen Pakete zu installieren oder aktualisieren sind. Dasselbe gilt fr die eigentliche bersetzung. Hier knnen Fehlermeldungen des Compilers auftreten, die meist aussagen, dass eine bestimmte Headerdatei nicht gefunden werden konnte. Oft lsst sich am Namen der vermissten Datei erkennen, welches Paket installiert werden muss. Nachdem das Paket erstellt ist, bendet sich im bergeordneten Verzeichnis (in dem auch die von apt-get beschafften Dateien liegen) das neu erstellte Paket. Es wird dann wie gewohnt folgendermaen installiert: debian:~# dpkg - -install xteddy_2.0.1-2_i386.deb

8.4 Advanced Package Tool (APT) Intelligenz fr dpkg

255

8.4.3 Wichtige Optionen des Programms apt-get Das Programm apt-get versteht eine Reihe von Optionen, durch die sich sein Verhalten in bestimmten Situationen beeinussen lsst. Alle diese Einstellungen lassen sich auch dauerhaft in der Datei /etc/apt/apt.conf vornehmen. Beschreibungen aller Optionen nden Sie im Manual. Lesenswert sind auerdem die Texte im Verzeichnis /usr/share/doc/apt. Hier die wichtigsten apt-get-Optionen: -f | - -fix-broken Mit dieser Option versucht apt-get, Installationen zu korrigieren, bei denen es installierte Pakete mit unerfllten Abhngigkeiten gibt. -m | - -fix-missing Die Option bewirkt, dass apt-get auch dann versucht, die vorhandenen Pakete zu installieren, wenn aus irgendwelchen Grnden nicht alle Pakete beschafft werden konnten. -s | - -simulate Das System wird nicht verndert. Stattdessen wird ausgegeben, welche Aktionen ausgefhrt werden wrden. -y | - -yes Keine Nachfragen, ob Pakete tatschlich installiert, aktualisiert oder entfernt werden sollen. Es wird sofort damit begonnen, die angeforderte Aktion auszufhren. -u | - -show-upgraded Bewirkt, dass apt-get auch die Namen der zu aktualisierenden Pakete ausgibt. - -purge Wenn Pakete entfernt werden, werden diese samt den zugehrigen Kongurationsdateien gelscht. - -reinstall Ermglicht, Pakete erneut zu installieren, die bereits in der aktuellen Version installiert sind. 8.4.4 Arbeiten mit APTs Informationen apt-cache Einige Informationen, die APT gespeichert hat, lassen sich mit dem Programm aptcache auswerten und verwenden. So lsst sich beispielsweise APTs Datenbank verfgbarer Pakete bequem mit apt-cache durchsuchen, und es knnen verschiedene Informationen zu bekannten Paketen angezeigt werden. Die komplette Liste der von diesem Programm untersttzten Mglichkeiten nden Sie in der Manual-Seite zu apt-cache. Hier die wichtigsten: Anzeigen der Eintrge von Paketen Mit dem Kommando apt-cache show werden die Datenbankeintrge eines oder mehrerer Pakete ausgegeben. Die Funktion ist vergleichbar mit der Option - -print-avail von dpkg, allerdings wird hier nicht die Datenbank von dpkg, sondern die von APT benutzt. Die Datenbankeintrge enthalten Informationen ber den von dem Paket bentigten Speicherplatz, ber Abhngigkeiten und Konikte des Pakets sowie eine Beschreibung. Um die Datenbankeintrge der Pakete xbill und xteddy auszugeben, ist dieses Kommando zu verwenden: joe@debian:~$ apt-cache show xteddy xbill

256

8 Mehr ber Pakete und Paketverwaltung

Durchsuchen der Datenbank verfgbarer Pakete Um die APT-Datenbank verfgbarer Pakete zu durchsuchen, ist apt-cache mit dem Parameter search aufzurufen. Danach ist an der Kommandozeile genau ein Suchbegriff anzugeben, nach welchem dann sowohl die Namen der Pakete als auch die Beschreibungen durchsucht werden. Soll die Datenbank beispielsweise nach allen Paketen durchsucht werden, in denen der Begriff gnome vorkommt, wird dieses Kommando benutzt: joe@debian:~$ apt-cache search gnome Der Suchbegriff wird dabei als regulrer Ausdruck (siehe Seite 895) behandelt, welcher eine Teilzeichenkette im Paketnamen oder in der Paketbeschreibung reprsentiert. Gro- und Kleinschreibung werden nicht bercksichtigt. Wenn nur die Paketnamen durchsucht werden sollen, ist zustzlich die Option - -names-only anzugeben. Um die Datenbank beispielsweise nach Paketen zu durchsuchen, deren Namen mit der Zeichenfolge gnome- beginnt, ist folgendes Kommando einzugeben: joe@debian:~$ apt-cache search - -names-only "^gnome-" Das Zeichen ^ gibt bei regulren Ausdrcken den Anfang der Zeile an. Bei der Suche werden standardmig nur die Namen und Kurzbeschreibungen der Pakete ausgegeben. Falls die gesamten Eintrge ausgegeben werden sollen, ist zustzlich die Option - -full zu verwenden. Anzeigen der Abhngigkeiten von Paketen Die Option depends gibt eine Liste aller Abhngigkeiten und Konikte zu einem oder mehreren angegebenen Paketen aus. Dabei werden auch die Pakete bercksichtigt, zu denen keine zwingenden Abhngigkeiten, sondern nur Vorschlge oder Empfehlungen bestehen (Suggestions und Recommendations). Bei Abhngigkeiten zu virtuellen Paketen wird angezeigt, welche realen Pakete die bentigten virtuellen Pakete zur Verfgung stellen. Um sich beispielsweise alle Abhngigkeiten des Pakets exim anzeigen zu lassen, ist das Programm so aufzurufen: joe@debian:~$ apt-cache depends exim Mit der Option showpkg knnen die umgekehrten Abhngigkeiten eines Pakets angezeigt werden. Das sind solche, die andere Pakete zu dem gegebenen Paket haben: joe@debian:~$ apt-cache showpkg exim

8.5 Alternative Programme zur Paketverwaltung


Das Programm dselect wurde entwickelt, als die Anzahl verfgbarer Debian-Pakete viel kleiner war als heute. Es eignet sich deswegen nicht besonders gut dazu, manuell

8.5 Alternative Programme zur Paketverwaltung

257

nach Paketen fr einen bestimmten Zweck zu suchen, deren Namen man nicht kennt, und wirkt auerdem etwas angestaubt. Aus diesem Grund gibt es unterschiedliche Anstze zur Entwicklung neuer Programme, die dselect ablsen sollen. Gemeinsam ist allen diesen Programmen, dass sie direkt auf APT aufsetzen und deshalb in der Regel automatisch mit Abhngigkeiten und Konikten umgehen knnen. Es muss allerdings auch erwhnt werden, dass zur Zeit noch kein Programm zur Verfgung steht, welches die gesamte Funktionalitt von dselect bietet, weswegen dselect bisher noch das Standardprogramm zur Benutzerfhrung bei der Installation und Deinstallation von Paketen unter Debian ist. 8.5.1 Paketmanagement unter X11 mit gnome-apt Das Programm gnome-apt aus dem gleichnamigen Paket bietet eine komfortable grasche Oberche zur Suche, Installation und Deinstallation von Paketen. Die Entwicklung des Programms ist noch im Fluss, sodass eine Reihe von Eigenschaften erst teilweise implementiert ist. Trotzdem bietet das Programm bereits jetzt fast alle Funktionen, die auch mit apt-get an der Kommandozeile zur Verfgung stehen. Herausragende Eigenschaften von gnome-apt sind die sehr mchtige Funktion zum Suchen nach Paketen sowie die kongurierbare und bersichtliche Paketliste. Das Programm wird entweder aus dem Debian-Men oder durch Eingabe des folgenden Kommandos gestartet (Dabei ist es erforderlich, dass X11 aktiv bzw. die Umgebungsvariable DISPLAY richtig gesetzt ist): debian:~# gnome-apt

Abbildung 8.2. gnome-apt Paket Management unter X11

258

8 Mehr ber Pakete und Paketverwaltung

Arbeiten mit der Paketliste Nach dem Start des Programms nden Sie im rechten Teil des Bildschirms eine alphabetische Liste aller Pakete. Sie knnen sich die Pakete, deren Namen mit einem bestimmten Buchstaben beginnen, anzeigen lassen, indem Sie auf den entsprechenden Buchstaben doppelklicken oder einmal auf das Plus-Zeichen vor dem Buchstaben klicken. Durch nochmaliges Doppelklicken auf denselben Buchstaben wird die Liste wieder eingeklappt. Neben der alphabetischen Gruppierung ist es mglich, die Pakete nach ihrem Status (nicht installiert, installiert usw.), nach ihrer Prioritt (Required, Standard usw.) oder nach ihrer Unterabteilung (admin, base, devel usw.) zu ordnen. Whlen Sie die gewnschte Methode zur Gruppierung im Men View, Untermen Group aus. Die Reihenfolge der Pakete innerhalb eine Gruppe (beispielsweise innerhalb aller Pakete, die mit dem Buchstaben A beginnen oder aller installierten Pakete) lsst sich durch das Untermen Order im Men View einstellen. Hier stehen die gleichen Kategorien zur Verfgung wie bei der Gruppierung der Pakete. Durch die beiden Mens Status und Priority ber der Paketliste ist es auerdem mglich, Filterregeln einzustellen. Im Men Status wird ausgewhlt, dass nur die Pakete angezeigt werden, bezglich derer ein Problem besteht (broken) oder die aktualisiert werden sollen (to be upgraded). Pakete, die installiert sind und weder aktualisiert, neu installiert oder entfernt werden sollen, benden sich hier in der Rubrik Kept. Einmal denierte Filterregeln lassen sich durch das Kommando Clear All im Men Filters aufheben oder durch das Kommando Reverse All umkehren. Standardmig werden alle Pakete angezeigt, weswegen nach Auswahl von Reverse All in diesem Men berhaupt keine Pakete mehr angezeigt werden. Danach knnen dann die Statusgruppen und Prioritten ausgewhlt werden, aus denen Pakete angezeigt werden sollen. Zu jedem Paket knnen in der Liste unterschiedliche Informationen wie Name, installierte Version, verfgbare Version oder Beschreibung angezeigt werden. Welche dieser Informationen angezeigt werden, lsst sich ber das Untermen Columns im Men View kongurieren. Wenn im Men File das Kommando General Preferences ausgewhlt wird, erscheint ein Dialog zur Konguration des Programms. Dort wird nach Auswahl der Indexzunge Column Order angegeben, in welcher Reihenfolge die Paketinformationen dargestellt werden. Die Breiten der Spalten fr die einzelnen Informationen werden justiert, indem mit der Maus auf die Spaltentrenner im Index der Liste (ganz oben) geklickt wird und diese dann nach links oder nach rechts bewegt wird, whrend die Maustaste gedrckt bleibt. Sobald ein Paket in der Liste mit der Maus oder der E INGABE-Taste ausgewhlt ist, erscheint im linken Teil des Fensters die vollstndige Beschreibung des Pakets mit einigen zustzlichen Informationen, beispielsweise zum Status oder zur Gre des betreffenden Pakets. Die Paketbeschreibung wird abgeschaltet, indem im Men File das Kommando General Preferences ausgewhlt wird und im daraufhin erscheinenden Dialog die Auswahl Show Package Details in Main Windows deselektiert wird. Wenn Sie doppelt auf einen Paketnamen klicken oder das Plus-Zeichen vor dem Paket einmal anklicken, erscheinen unter dem betreffenden Paket die Pakete, zu de-

8.5 Alternative Programme zur Paketverwaltung

259

nen das Paket Abhngigkeiten oder Konikte aufweist. Die Art der Beziehung wird dabei durch ein Icon gekennzeichnet. Eine Legende der einzelnen Icons wird angezeigt, wenn Sie im Men Help das Kommando Icon Key auswhlen. Suchen nach Paketen Wie bereits angesprochen, besitzt gnome-apt eine mchtige Suchfunktion. Die Funktion ist ber das Kommando Search im Men Package zu erreichen. Der Suchdialog, welcher nach Auswahl dieses Kommandos erscheint, ist in Abbildung 8.2 dargestellt. Im oberen Teil des Dialoges ist der Suchbegriff einzugeben. Dabei ist ein regulrer Ausdruck (siehe S. 895) zu verwenden. Die Suche ndet entweder mit oder ohne Bercksichtigung von Gro- und Kleinschreibung statt (case sensitive). Im unteren Teil des Dialoges wird speziziert, welche Felder der Paketinformationen durchsucht werden sollen. Standardmig sind alle verfgbaren Felder aktiviert. Nach der Suche erscheint ein Fenster, in dem die Namen der gefundenen Pakete untereinander dargestellt sind. Wird mit der Maus auf einen Paketnamen in diesem Fenster geklickt, so wird in der Paketliste des Hauptfensters automatisch zu dem entsprechenden Paket gesprungen. Es ist mglich, eine Suche auszufhren, ohne das Ergebnisfenster einer etwaigen vorherigen Suche zu schlieen. Arbeiten mit der Paketauswahl Installierte Pakete erkennen Sie daran, dass sich in der Paketliste neben diesen Paketen zwei Auswahlknpfe in den Spalten K (wie Keep) und D (wie Delete) benden. Um ein installiertes Paket zum Lschen vorzumerken, ist der Auswahlknopf in der Spalte D des Pakets anzuklicken. Um die Aktion wieder rckgngig zu machen, ist der Auswahlknopf in der Spalte K zu bettigen. Nicht installierte Pakete haben hingegen nur einen Auswahlknopf in der Spalte I (wie Install). Wie der Name sagt, dient dieser Knopf dazu, das Paket zur Installation vorzumerken. Wenn Sie Pakete zur Installation oder zur Deinstallation auswhlen, sollten Sie auf die Informationen in der Statuszeile des Fensters ganz unten links achten. Dort wird angezeigt, wieviele Pakete aufgrund der ausgewhlten nderungen installiert, aktualisiert oder entfernt werden mssen. Wenn die Auswahl zu einer Fehlersituation fhrt, wird dort die Information *Broken Packages* angezeigt. Durch den Blick auf die Statuszeile kann die Konsequenz einer nderung sofort abgeschtzt werden. Neben Paketen, die zwar installiert sind, aber in einer neueren Version als der installierten zur Verfgung stehen, benden sich alle drei Auswahlknpfe. Standardmig ist bei diesen Paketen der Knopf Keep ausgewhlt, sodass diese Pakete nicht automatisch aktualisiert werden. Durch die Auswahl von Install wird das entsprechende Paket zur Aktualisierung ausgewhlt. Um alle Pakete, die in einer neueren Version verfgbar sind, zur Aktualisierung auszuwhlen, ist im Men Actions der Menpunkt Mark Upgrades auszuwhlen. Dieses Kommando hat die gleiche Wirkung wie die Option upgrade bei dem Programm apt-get, das heit es werden alle erneuerten Pakete zur Aktualisierung ausgewhlt, so lange dadurch keine Pakete vom System entfernt oder neue Pakete installiert werden mssen (siehe Abschnitt 8.4.2,

260

8 Mehr ber Pakete und Paketverwaltung

S. 242). Das Kommando Smart Mark Upgrades entspricht der Option dist-upgrade bei apt-get. Bei dieser Operation wird das System vollstndig aktualisiert, was zur Folge haben kann, dass neue Pakete installiert werden mssen oder Pakete, die installiert sind, entfernt werden. Im Men Actions ist auch das Kommando Fix Broken zu nden. Dieses Kommando fhrt wie die Option - -x-broken bei apt-get dazu, dass versucht wird, ein System mit Fehlern wie unerfllten Abhngigkeiten oder Paketkonikten zu reparieren, wobei installierte Pakete zur Deinstallation ausgewhlt und neue Paket installiert werden knnen. Um die zur Aktualisierung, Installation oder Deinstallation ausgewhlten Pakete im berblick angezeigt zu bekommen, verwenden Sie die Filtermglichkeiten im Men Status. Um beispielsweise nach Auswahl des Kommandos Mark Upgrades im Men Actions anzuzeigen, welche Pakete durch das Kommando zur Aktualisierung ausgewhlt wurden, ist es am einfachsten, im Men Status zunchst das Kommando Reverse und dann To be upgraded auszuwhlen. Alternativ knnen Sie die Gruppierung nach Status auswhlen (Men View, Untermen Group). Achtung: Das Programm speichert die von Ihnen vorgenommene Auswahl nicht. Es darf also nicht verlassen werden, bevor die nderungen auch tatschlich durchgefhrt worden sind, sonst gehen alle gewnschten nderungen verloren. Diese Eigenschaft ist dann ntzlich, wenn man noch einmal von vorne mit der Auswahl beginnen und nicht alle nderungen manuell rckgngig machen mchte. Es reicht dann aus, das Programm einfach zu verlassen und neu zu starten. Installieren, Aktualisieren und Deinstallieren Wenn Sie die zu installierenden, zu aktualisierenden und zu lschenden Pakete ausgewhlt haben, fhren Sie die gewnschten nderungen durch, indem Sie im Men Actions das Kommando Complete Run auswhlen. Es erscheint ein Dialog, in dem Ihnen mitgeteilt wird, wieviele Pakete aktualisiert, neu installiert, entfernt oder nicht aktualisiert werden. Im unteren Teil des Dialoges bendet sich eine Baumansicht der Pakete, bezglich derer Vernderungen durchgefhrt werden sollen. Klicken Sie auf das Plus-Zeichen vor einer Kategorie, um beispielsweise zu sehen, welche Pakete aktualisiert oder entfernt werden sollen. Wenn Sie mit den nderungen einverstanden sind, klicken Sie auf die Schaltche OK. Lsen von Konikten Falls Sie eine Auswahl getroffen haben, die von APT nicht automatisch gelst werden kann, etwa weil Sie Pakete ausgewhlt haben, die in Konikt mit solchen Paketen stehen, die installiert sind und von denen andere installierte Pakete abhngen, dann erscheint nach Auswahl des Kommandos Complete Run eine Fehlermeldung, in der die Namen der Pakete genannt werden, bezglich derer ein Fehler aufgetreten ist. Sie mssen dann zur Paketliste zurckkehren und die Auswahl ndern. Am einfachsten gelingt dies, wenn Sie dazu die Gruppierung nach Status (Men View, Untermen

8.5 Alternative Programme zur Paketverwaltung

261

Group) auswhlen und dann die Pakete in der Statusgruppe Would be broken bearbeiten. Gelegentlich ist es erforderlich, Pakete in der Gruppe To be installed von der Installation auszunehmen oder in der Gruppe To be deleted nach Paketen zu suchen, von denen Pakete abhngig sind, die nicht gelscht werden sollen. Pakete, bezglich derer ein Problem besteht, sind rot dargestellt. Beschaffung der Pakete Wenn keine Konikte bestehen und die vorzunehmenden nderungen besttigt worden sind, erscheint ein Dialog, in dem mitgeteilt wird, wieviel Kilo- oder Megabyte an Paketen heruntergeladen werden mssen. Sie haben dann nochmals die Mglichkeit, den Vorgang abzubrechen, falls Sie die Pakete zu einem spteren Zeitpunkt oder auf eine andere Weise besorgen mchten.

Abbildung 8.3. Herunterladen von Paketen mit gnome-apt

Sobald das Herunterladen der Pakete besttigt worden ist, erscheint das in Abbildung 8.3 dargestellte Fenster. Im oberen Teil wird angezeigt, welche Pakete gerade heruntergeladen werden und wieviel Zeit voraussichtlich noch fr den gesamten Download bentigt wird. Etwaige Fehlermeldungen werden in der Mitte des Fensters ausgegeben, einige Fehlerursachen sind auf Seite 242 beschrieben. Sie knnen das Herunterladen von Paketen jederzeit durch das Kommando Cancel abbrechen. Wenn Sie dann spter wieder das Kommando Complete Run auswhlen, wird der Download dort wieder aufgenommen, wo er abgebrochen wurde. Achtung: Wenn Sie ausschlielich von lokalen Datentrgern wie CD/DVDs oder einem lokalen Debian-Spiegel installieren, brauchen keine Dateien heruntergeladen zu werden, und der hier beschriebene Dialog erscheint nicht.

262

8 Mehr ber Pakete und Paketverwaltung

Durchfhrung der Installation Nachdem alle zu installierenden bzw. zu aktualisierenden Pakete zur Verfgung stehen, erscheint das in Abbildung 8.4 dargestellte Fenster. In diesem Fenster passiert dasselbe, was whrend der Installation von Paketen mit anderen Programmen (dpkg oder apt-get) in einem Terminalfenster oder an der Konsole passiert: Es werden Fragen zur Konguration von Paketen gestellt. Auerdem erscheinen hier die Meldungen von dpkg und den Installationsskripten, anhand derer der eigentliche Installationsvorgang nachvollzogen werden kann.

Abbildung 8.4. Paketinstallation und -Konguration mit gnome-apt.

Am Ende der Installation erscheint in dem Fenster der folgende Text: GNOME Apt: Install successful. It is now safe to close this window. Sie knnen das Fenster schlieen. Danach werden die Paketinformationen neu eingelesen, und es kann weiter mit dem Programm gearbeitet werden.

8.5 Alternative Programme zur Paketverwaltung

263

8.5.2 Interaktive Paketauswahl an der Konsole Das Programm aptitude (Paket aptitude) lsst sich am ehesten als APT-basierter Ersatz fr dselect beschreiben. Das Programm wird durch Eingabe des folgenden Kommandos gestartet: debian:~# aptitude Das Programm organisiert die Pakete und Informationen in verschiedenen baumartigen Strukturen sowie unterschiedlichen Bildschirmen. Nach dem Start von aptitude werden einige der im folgenden beschriebenen Bume angezeigt: New Packages Pakete, die das Programm noch nicht gesehen hat und deswegen fr neu hlt. Sie markieren Pakete als gesehen, indem Sie die Taste F drcken. Danach ist der Baum leer und wird nicht mehr angezeigt. Hier tauchen alle Pakete auf, wenn Sie das erste Mal mit dem Programm arbeiten, weil dann alle Pakete als neu gelten. Sie sollten deswegen nach dem ersten Aufruf des Programms einmal die Taste F drcken. Upgradable Packages Pakete, die in einer neueren als der installierten Version zur Verfgung stehen. Installed Packages Pakete, die zur Zeit auf dem System installiert sind. Not installed Packages Pakete, die nicht installiert sind. Virtual Packages Alle virtuellen Pakete. Virtuelle Pakete werden nicht direkt zur Installation oder Deinstallation ausgewhlt. Vielmehr lsst sich mit diesem Baum bestimmen, durch welches reale Paket ein bestimmtes virtuelles Paket zur Verfgung gestellt werden soll. Es werden nur die Bume angezeigt, in denen auch tatschlich Pakete vorhanden sind. Wenn es beispielsweise keine Pakete gibt, die aktualisiert werden knnen, wird der Baum Upgradable Packages nicht angezeigt. Eine Alternative zu aptitude ist synaptic aus dem gleichnamigen Paket. Nach der Einrichtung wird es vom Verwalter von der Kommandozeile aus aufgerufen: debian:~# synaptic und zeigt die verfgbaren und die eingerichteten Pakete an, aus denen welche zur Einrichtung oder zum Rauswurf ausgewhlt werden. Das Werkzeug speichert alle Wnsche und fhrt die Aktionen zum Schluss in einem Block aus. Aktualisierung der Liste verfgbarer Pakete Nach Bettigung der Taste U aktualisiert das Programm APTs Datenbank verfgbarer Pakete entsprechend den in der Datei /etc/apt/source.list aufgefhrten Paketquellen. Der Vorgang ist gleichbedeutend mit der Verwendung der Option update bei dem Programm apt-get.

264

8 Mehr ber Pakete und Paketverwaltung

Navigation Innerhalb eines Bildschirms bewegen Sie sich mit den Tasten P FEIL R AUF und P FEIL RUNTER sowie S EITE - RAUF und S EITE - RUNTER. Ausgewhlt ist jeweils die invertiert dargestellte Zeile (normalerweise ist das die Zeile mit dunkler Schrift auf hellem Grund). Die Ausgangspunkte der verschiedenen Bume sind mit einem Minuszeichen bzw. einem Pluszeichen in eckigen Klammern gekennzeichnet. Ein Minuszeichen bedeutet, dass der betreffenden Baum eingeklappt ist, die darin bendlichen Pakete und Informationen also nicht sichtbar sind. Ein Pluszeichen bedeutet hingegen, dass der Baum ausgeklappt ist. Die ste (Bestandteile) des Baumes sind dann darunter eingerckt dargestellt. Wenn sich der Cursor auf dem Ausgangspunkt eines Baumes oder Astes bendet, knnen Sie diesen durch Bettigung der Taste E INGABE einoder ausklappen. Die von jedem Baum abgehenden ste reprsentieren die Abteilungen main, contrib, non-free usw. der Distribution. Dahinter verbergen sich die Unterabteilungen wie base, admin oder devel, in denen sich schlielich die einzelnen Pakete benden. Wenn Sie einen Baum soweit ausgeklappt haben, dass Sie die Namen der Pakete sehen, knnen Sie sich mit den Pfeiltasten auf die Paketnamen begeben und dort E INGABE drcken, um Informationen ber das ausgewhlte Paket zu erhalten.

Abbildung 8.5. Ansicht von Paketinformationen mit aptitude.

Es wird ein neuer Bildschirm geffnet, in dem die ausfhrliche Beschreibung des Pakets sowie Informationen ber den Debian-Entwickler (Maintainer) und die Gre des Pakets angezeigt werden. Darunter benden sich dann wieder Baumstrukturen, in denen die Pakete dargestellt werden, zu denen das betreffenden Paket Beziehungen hat, beispielsweise Pakete von denen das Paket abhngig ist (Recommendations

8.5 Alternative Programme zur Paketverwaltung

265

und Suggestions) oder zu denen Konikte bestehen. Sie verlassen den aktiven Bildschirm, indem Sie die Taste Q bettigen. Dadurch wird das Programm verlassen, wenn Sie sich in dem ersten Bildschirm benden. Im unteren Teil des Bildschirms bendet sich eine Statuszeile, in denen die Kurzbeschreibung des aktuell ausgewhlten Pakets angezeigt wird. Im Falle eines Fehlers oder eines Problems wird diese Zeile rot, und es erscheint dort eine Fehlermeldung sowie ein Hinweis, was zu tun ist, um den Fehler zu beheben. Suchen nach Paketen In dem Programm steht eine Suchfunktion zur Verfgung, die mit der von dselect zu vergleichen ist. Nach Bettigung der Taste / kann eine Suchzeichenfolge eingegeben werden, nach denen die Paketnamen durchsucht werden. Das Durchsuchen von Beschreibungen oder anderen Feldern der Pakteinformationen ist mit aptitude noch nicht mglich. Paketauswahl zur Installation, Aktualisierung oder Deinstallation Nach der Auswahl eines Pakets mit den Pfeiltasten wird durch die Tasten +, - und = angegeben, was mit dem Paket passieren soll. Die Taste + fhrt dazu, dass ein Paket installiert bzw. aktualisiert wird, whrend die Taste - zur Deinstallation eines installierten Paketes fhrt. Durch die Taste = wird der Zustand eines Paketes eingefroren. Pakete, die bereits installiert sind, werden mit fetter Schrift dargestellt. Die Namen von Paketen, deren Status eingefroren wurden, erscheinen auf weiem Hintergrund. Wenn ein Paket zur Installation ausgewhlt wurde (mit +), wird es hinterher entweder mit grnen Buchstaben dargestellt oder mit roten. Grn bedeutet, dass die Auswahl unproblematisch ist und dass das betreffende Paket ohne weiteres installiert werden kann. Rote Buchstaben bedeuten, dass es Probleme gibt. Es besteht dann die Mglichkeit, entweder das Paket wieder zu deselektieren (mit -) oder es mit der E INGABE-Taste auszuwhlen. Daraufhin erscheint der oben beschriebene Bildschirm mit allen Informationen zu dem Paket. Hier ist es mglich, den Status der Pakete zu ndern, die mit dem Paket in Beziehung stehen, also etwa ein Paket zur Entfernung auszuwhlen, das mit dem ursprnglichen Paket in Konikt steht. In vielen Fllen lst APT die entstandenen Probleme selbststndig ohne manuellen Eingriff. aptitude-Pakete werden automatisch zur Aktualisierung ausgewhlt, sofern ihr Status nicht eingefroren wurde. Sie erkennen zu aktualisierende Pakete daran, dass ihre Namen mit blauem Hintergrund dargestellt werden. Wenn Sie ein bestimmtes Paket nicht aktualisieren mchten, sollten Sie dieses im Baum Upgradable Packages suchen und mit - von der Aktualisierung ausschlieen. bersicht ber die Tastaturbefehle in aptitude Die folgende Tabelle fasst die zur Benutzung des Programms aptitude verfgbaren Tastaturbefehle zusammen. Sowohl die Tastaturbelegung als auch die von dem

266

8 Mehr ber Pakete und Paketverwaltung

Programm verwendeten Farben lassen sich vollstndig kongurieren. Wie dies geschieht, ist in der Datei /usr/share/doc/aptitude/README.gz beschrieben. Hier die Standardtastenbelegung:
Tabelle 8.2. Wichtige aptitude-Tastaturkommandos

Wirkung Taste Navigation Ein Paket/Gegenstand nach oben P FEIL R AUF Ein Paket/Gegenstand nach unten P FEIL RUNTER Eine Seite nach oben S EITE - RAUF Eine Seite nach unten S EITE - RUNTER An die Spitze des aktuellen Bereichs ^ I Zeigt die Beschreibung des ausgewhlten Pakets an Zeigt die verfgbaren Versionen des ausgewhlten Pakets an V Zeigt Abhngigkeiten an D Baum auf- und zuklappen. Wenn ein Paket ausgewhlt ist, werE INGABE den alle Informationen zu dem Paket in einem neuen Bildschirm angezeigt Aus einem Bildschirm in den vorhergehenden wechseln bzw. Q das Programm beenden Paketauswahl Auswahl eines Pakets zur Installation bzw. zur Aktualisierung + (Paket wird grn, wenn es tatschlich installiert/aktualisiert werden kann) Auswahl eines Pakets zur Deinstallation (Paket wird rot) Einfrieren (Hold) des Status eines Paketes = F Lschen der Information des Programms darber, welche Pakete neu sind. Suchen (nur in den Paketnamen). Nach Bettigung dieser Ta/ ste kann ein Suchbegriff eingegeben werden, der mit Z URCK korrigiert und mit E INGABE abgeschickt werden kann. Aktualisierung und Installation U Aktualisieren der Informationen ber verfgbare Pakete Installiert, aktualisiert und entfernt Pakete entsprechend der G Auswahl

Durchfhrung der ausgewhlten nderungen Um die ausgewhlten nderungen am System wirksam werden zu lassen, also die ausgewhlten Pakete zu installieren, zu entfernen oder zu aktualisieren, ist die Taste G (Go) zu bettigen. Es erscheint dann ein Bildschirm, in dem die zu installierenden, zu lschenden oder zu aktualisierenden Pakete nochmals untereinander

8.6 Werkzeuge zur Anpassung des Systems

267

dargestellt werden. Hier knnen mit den oben beschriebenen Tastaturbefehlen Korrekturen an der Auswahl vorgenommen werden. Der Bildschirm wird mit Q wieder verlassen. Durch nochmaliges Bettigen der Taste G werden die Pakete gem der Konguration von APT beschafft. Wenn die Beschaffung beendet ist, ist eine Taste zu drcken, um mit der Installation der Pakete zu beginnen. Die eigentliche Installation erfolgt auf die gleiche Art und Weise, wie mit jedem anderen APT-basierten Installationsprogramm.

8.6 Werkzeuge zur Anpassung des Systems


8.6.1 Arbeiten mit Alternativen Es gibt eine Reihe von Programmen, die eine hnliche Funktionalitt zur Verfgung stellen und im allgemeinen sogar mit demselben Namen aufgerufen werden. Ein Beispiel hierfr ist der Editor vi. Eine Anzahl von Paketen (u. a. nvi, elvis oder vim) stellen vi-hnliche Programme zur Verfgung. Alle in diesen Paketen enthaltenen Editoren bieten die gleiche Grundfunktionalitt, aber unterschiedliche Erweiterungen und Zusatz-Eigenschaften. Der Linux/UNIX-gewohnte Benutzer eines Debian-Systems erwartet, dass er an der Kommandozeile das Kommando vi eingeben kann und daraufhin ein Programm mit vi-Funktionalitt gestartet wird. Hieraus ergibt sich ein Problem: Es kann nur eine Datei (ein Programm) mit diesem Namen geben, dass dann ausgefhrt wird, wenn das Kommando ohne Pfadangabe eingegeben wird. Dieses Problem knnte durch Paket-Konikte gelst werden. Dann drfte nur eines der vi-hnlichen Programme zur Zeit installiert sein. Das wiederum wrde bedeuten, dass verschiedene Benutzer des Systems nicht gleichzeitig ihren Lieblingseditor benutzen knnten. Das Problem wird deswegen unter Debian mit Hilfe von Alternativen gelst. Pakete, die Alternativen zur Verfgung stellen, legen Dateien nicht unter dem Namen ab, mit dem spter auf sie zugegriffen wird, sondern unter einem anderen, der nicht von einem anderen Paket beansprucht wird. So wird der vi-hnliche Editor whrend der Installation des Pakets nvi mit dem Namen /usr/bin/nvi installiert, und das Paket elvis installiert seine Variante dieses Editors mit dem Namen /usr/sbin/elvisnox. Damit eine der Alternativen trotzdem mit dem Namen vi benutzt werden kann, wird ein symbolischer Link mit dem Namen /usr/bin/vi angelegt, der auf einen weiteren symbolischen Link im Verzeichnis /etc/alternatives mit dem gleichen Namen zeigt. Dieser Link (/etc/alternatives/vi) zeigt dann auf das Programm, welches letztlich aufgerufen wird, wenn das Kommando vi eingegeben wird. Standardmig wird dabei ein automatisches, durch Prioritten gesteuertes System benutzt, mit dem festgelegt wird, welches Programm dies ist. Als Systemverwalter knnen Sie die Links in /etc/alternatives an Ihre Bedrfnisse anpassen und die voreingestellten Prioritten berschreiben. Das System gewhrleistet auf diese Weise, dass ein automatisch oder vom Verwalter ausgewhlter Editor mit dem Namen vi aufgerufen werden kann und

268

8 Mehr ber Pakete und Paketverwaltung

trotzdem weitere hnliche Programme installiert sein drfen, die mit anderen Namen aufgerufen werden mssen. Zu beachten ist bei der Verwaltung von Alternativen, dass in der Regel eine Reihe von Alternativen zusammengehren. So macht es wenig Sinn, wenn durch Eingabe des Kommandos vi der Editor nvi aufgerufen wird, aber nach Eingabe des Kommandos man vi die Manualseite zu dem Editor vim angezeigt wird. Das AlternativenSystem kennt deswegen Master-Alternativen und dazugehrige Slave-Alternativen, die zusammen mit den Master-Alternativen gendert werden sollen. Zur Verwaltung von Alternativen dient das Skript update-alternatives. Um die fr ein Programm oder eine Datei vorhandenen Alternativen anzuzeigen, ist es mit dem Parameter - -display sowie mit dem Namen des betreffenden Programms oder der betreffenden Datei aufzurufen. Um die Alternativen fr den Editor vi anzuzeigen, ist das Programm so aufzurufen: joe@debian:~$ /usr/sbin/update-alternatives - -display vi Die Ausgabe sieht dann je nachdem, welche Alternativen tatschlich installiert sind ungefhr folgendermaen aus:
vi - status is auto. link currently points to /usr/bin/elvisnox /usr/bin/elvis-tiny - priority 10 slave vi.1.gz: /usr/man/man1/elvis-tiny.1.gz /usr/bin/nvi - priority 30 slave vi.1.gz: /usr/share/man/man1/nvi.1.gz /usr/bin/elvisnox - priority 120 slave vi.1.gz: /usr/man/man1/elvis.1.gz Current best version is /usr/bin/elvisnox.

Der Ausgabe knnen Sie entnehmen, welche Alternative zur Zeit eingestellt ist und welche anderen Alternativen mit welcher Prioritt zur Verfgung stehen. Auerdem werden fr jede Alternative eventuell vorhandene Slave-Alternativen angezeigt. Wenn Sie wissen mchten, welche Alternativen auf ihrem System vorhanden sind, sollten Sie sich den Inhalt des Verzeichnisses /etc/alternatives mit ls -l anzeigen lassen. Alternativen werden verndert, indem die entsprechenden symbolischen Links im Verzeichnis /etc/alternatives neu gesetzt werden. Um das System so zu kongurieren, dass nach Eingabe des Kommandos vi das Programm nvi aufgerufen wird, ist dieses Kommando zu verwenden10: debian:~# ln -sf /usr/bin/nvi /etc/alternatives/vi Zustzlich sollte auch die Slave-Alternative angepasst werden: debian:~# ln -sf /usr/share/man/man1/nvi.1.gz /etc/alternatives/nvi.1.gz
10 Alternativ zum manuellen Setzen der Links kann update-alternatives auch mit der Option - -cong aufgerufen werden.

8.6 Werkzeuge zur Anpassung des Systems

269

Die damit angelegten Links werden bei der Aktualisierung oder Neuinstallation von Paketen, die Alternativen fr das Programm vi beinhalten, in Zukunft nicht mehr gendert. Alternativ zum manuellen ndern der Links kann das Programm updatealternatives auch mit der Option - -cong aufgerufen werden. Es zeigt dann ein Men der verfgbaren Alternativen an, aus dem die gewnschte Alternative durch Eingabe einer Zahl ausgewhlt wird11 . Beispiel: debian:~# update-alternatives - -config vi Wenn Sie wieder die automatisch eingestellten Voreinstellungwerte verwenden wollen, rufen Sie das Programm update-alternatives folgendermaen auf: debian:~# update-alternatives - -auto vi Mehr Informationen zu update-alternatives nden Sie in der Manualseite zu dem Programm. Sofern Sie die Programmiersprache Perl verinnerlicht haben, steht einem Lesen des Skriptes /usr/sbin/update-alternatives auch nichts im Wege. 8.6.2 Verwenden eigener Dateien mit dpkg-divert Manchmal ist es notwendig, Dateien aus einem Paket gegen eigene Versionen auszutauschen. Stellen Sie sich vor, Sie mchten an Stelle der in dem Paket tetex-extra installierten Datei /usr/share/texmf/tex/latex/dinbrief/dinbrief.cls eine vernderte Version dieser Datei verwenden. Sie knnten die Datei nun einfach verndern oder eine vernderte Version an ihren Platz kopieren. Dies htte den Nachteil, dass die Datei bei jeder Aktualisierung berschrieben werden wrde. Sie mssen dpkg also mitteilen, dass die Datei nicht berschrieben werden darf. Dies geschieht mit dem Kommando dpkg-divert. Um die Datei dinbrief.cls zu diversizieren, ist das Kommando folgendermaen aufzurufen: debian:~# dpkg-divert - -add /usr/share/texmf/tex/latex/dinbrief/dinbrief.cls Durch den Parameter - -add wird dem Programm mitgeteilt, dass eine Diversikation erzeugt werden soll. Es erscheint dann die folgende Ausgabe:
Adding local diversion of /usr/share/texmf/tex/latex/dinbrief/dinbrief.cls to /usr/share/texmf/tex/latex/dinbrief/dinbrief.cls.distrib

Damit wird mitgeteilt, dass die Datei in Zukunft den Namen /usr/share/texmf/tex/latex/dinbrief/dinbrief.cls.distrib erhlt, wenn sie whrend der Installation oder Aktualisierung eines Paketes neu installiert wird. Sie knnen nun Ihre Version der Datei an den entsprechenden Ort bringen und sicher sein, dass sie von dpkg nicht

11 Leider aktualisiert update-alternatives zur Zeit (dpkg-Version 1.6.11) nicht die SlaveAlternativen.

270

8 Mehr ber Pakete und Paketverwaltung

berschrieben werden wird. Wenn zustzlich der Parameter - -rename mit angegeben wird, dann wird die Datei gleichzeitig an den neuen Platz verschoben12. Um die Diversikation wieder aufzuheben, ist das Programm mit dem Parameter - -remove aufzurufen. Im Beispiel also: debian:~# dpkg-divert - -remove /usr/share/texmf/tex/latex/dinbrief/dinbrief.cls Alle auf dem System bestehenden Diversikationen werden durch folgendes Kommando angezeigt: joe@debian:~$ /usr/sbin/dpkg-divert - -list Dabei werden vermutlich auch einige Diversikationen ausgegeben, die bei der Installation von Paketen automatisch vorgenommen worden sind. Diese Einstellungen sollten nicht manuell gelscht werden. Mehr Informationen zu dpkg-divert nden Sie in der Manual-Seite des Programms, das ebenfalls ein Perl-Skript ist. 8.6.3 Erstellen eigener Paketindices mit dpkg-scanpackages Wenn Sie ein eigenes Verzeichnis mit Paketen anlegen mchten und wnschen, dieses Verzeichnis wie CDs oder andere Paketquellen benutzen zu knnen, ist es erforderlich, dass sie in dem Verzeichnis einen Paket-Index anlegen. Hierzu dient das Programm dpkg-scanpackages, welches im Paket dpkg-dev enthalten ist. Das Programm wird in der folgenden Form aufgerufen: dpkg-scanpackages Verzeichnis override-Datei [Pfad] > Packages Mit Verzeichnis ist der Name des Verzeichnisses anzugeben, in dem sich die Pakete benden. Dieser Verzeichnisname muss relativ zu dem Verzeichnis angegeben werden, in dem die Index-Datei abgelegt werden soll. Mit override-Datei wird der Name einer Datei angegeben, in der Einstellungen vorgenommen werden, mit denen die Angaben in den Kontrollinformationen der Pakete berschrieben werden. Ihr Format ist in der Manual-Seite zu dpkg-scanpackages erlutert. Wenn Sie eine solche Datei nicht verwenden wollen, knnen Sie hier den Namen einer leeren Datei oder der Gertedatei /dev/null angeben. Optional wird mit Pfad ein Pfadbestandteil angegeben. Er wird dann den Pfadeintrgen in der Indexdatei vorangestellt. Wenn sich alle Pakete beispielsweise in dem Verzeichnis non-ofcial benden, welches ein Unterverzeichnis von /pub/local_stuff ist, sollten Sie zunchst in das Verzeichnis /pub/local_stuff wechseln und dort folgendes Kommando eingeben, um den Index zu erzeugen: joe@debian:~$ dpkg-scanpackages non-official /dev/null > non-official/Packages
Eine andere Lsung ist, eine Kopie von dinbrief.cls unter dem Namen meindinbrief.cls anzulegen und zu editieren. Die vernderte Kopie kann in dem latex-Verzeichnis oder in Ihrem Briefe-Verzeichnis liegen.
12

8.6 Werkzeuge zur Anpassung des Systems

271

Der Paketindex wird mit diesem Kommando in die Datei Packages geschrieben, welche im Verzeichnis non-ofcial abgelegt wird. Paketindices mssen immer den Dateinamen Packages haben, weil apt-get und andere Paketverwaltungsprogramme nach diesem Namen suchen. Die Indices drfen mit gzip (S. 807) komprimiert werden. Um das Verzeichnis mit APT benutzen zu knnen, mssen Sie es noch der Kongurationsdatei /etc/apt/sources.list hinzufgen. Wenn der Name ihres Paketverzeichnisses non-ofcial lautet und sich im Verzeichnis /pub/local_stuff bendet, so sieht der Eintrag folgendermaen aus: deb file:/pub/local_stuff non-official/ Der Schrgstrich am Ende des Namens non-ofcial ist erforderlich, um APT anzuzeigen, dass es sich bei dem Eintrag um ein einzelnes Verzeichnis handelt. Um auf die Paketdateien in dem Verzeichnis zugreifen zu knnen, muss wie gewohnt das Kommando apt-get update ausgefhrt werden. 8.6.4 Erstellen angepasster Pakete mit dpkg-repack Das Programm dpkg-repack aus dem gleichnamigen Paket erlaubt, aus den Dateien, die auf dem System installiert sind, Pakete zusammenzustellen. Dies kann in verschiedenen Situationen ntzlich sein: Wenn Sie ein lteres Paket bentigen, das auf den ofziellen Servern nicht mehr verfgbar ist, aber noch auf einem Ihrer Rechner installiert ist. Wenn Sie Pakete nicht erneut herunterladen wollen, die Sie bereits auf einem Rechner installiert haben, von denen die Paketdateien jedoch bereits gelscht sind. Weil die Pakete mit dpkg-repack aus den Dateien erzeugt werden, die auf dem System installiert sind, knnen modizierte Pakete erstellt werden, die beispielsweise Kongurationsdateien enthalten, welche an lokale Bedrfnisse angepasst sind. Neben dem Paket dpkg-repack sollten Sie das Paket fakeroot installieren, damit Sie die Pakete nicht als Verwalter erstellen mssen. Das Programm ist mit dem Namen des Pakets aufzurufen, das rekonstruiert werden soll. Wenn Sie das Paket apt neu erzeugen wollen, ist folgendes Kommando einzugeben: joe@debian:~$ fakeroot dpkg-repack apt Wenn Sie fakeroot nicht verwenden, mssen Sie das Kommando ohne fakeroot als Verwalter aufrufen. Nachdem das Programm seine Arbeit beendet hat, sollte sich die rekonstruierte Paketdatei im Arbeitsverzeichnis benden. Sie knnen dem Programm auch mehrere Paketnamen bergeben. Achtung: Sie drfen die so erstellten Pakete nicht wie ofzielle Debian-Pakete verwenden. Die Pakete knnen andere Dateien enthalten als die ofziellen Pakete und wurden nicht mit dem eigentlich dafr vorgesehenen Verfahren erstellt!

272

8 Mehr ber Pakete und Paketverwaltung

8.6.5 berschreiben von Abhngigkeiten mit equivs Wenn Sie ein bestimmtes Programm auf Ihrem Rechner kompiliert und ohne Verwendung von Debian-Paketen installiert haben, kann das Problem auftreten, dass Sie andere Pakete, die von diesem Programm abhngig sind, nicht mehr installieren knnen, weil das entsprechende Paket nicht installiert ist. Sie mssen dem Paketmanager also mitteilen, dass das bentigte Programm doch auf dem System vorhanden ist und davon abhngige Pakete installiert werden knnen. Mit dem Paket equivs knnen in solchen Fllen Dummy-Pakete erstellt werden, deren Aufgabe einzig und allein darin besteht, dem Paketmanager mitzuteilen, dass bestimmte Komponenten installiert sind. Die Erstellung von Dummy-Paketen erfolgt in mehreren Schritten. Zunchst muss eine Kontrolldatei erstellt werden; eine Vorlage kann mit dem Programm equivs-control erzeugt werden. Alternativ knnen vorgefertigte Vorlagen aus dem Verzeichnis /usr/share/doc/equivs/examples benutzt werden. Dem Programm equivscontrol ist der Name der zu erzeugenden Kontrolldatei zu bergeben. Um im Arbeitsverzeichnis eine Kontrolldatei mit dem Namen dummy-control zu erzeugen, ist das Programm so aufzurufen: joe@debian:~$ equivs-control dummy-control Die damit erzeugte Datei ist hnlich aufgebaut wie eine echte Kontrolldatei eines Debian-Pakets. Sie mssen die Datei nun mit einem Texteditor bearbeiten und an Ihre Bedrfnisse anpassen. In der Datei benden sich verschiedene Kontrollfelder, die jeweils mit ihrem Namen und einem Doppelpunkt eingeleitet werden. Werte von Feldern, die angepasst werden sollten, sind durch die Zeichen < und > markiert. Zwischen den beiden Zeichen bendet sich bei den meisten Feldern ein Hilfetext, der anzeigt, welcher Wert benutzt wird, wenn Sie dort keinen Wert angeben. Sie mssen fr jedes Feld entweder einen Wert angeben oder das Feld lschen, damit equivs dann den Vorgabewert benutzt. Der Aufbau von Kontrolldateien ist in der Manualseite deb-control beschrieben, die in dem Paket dpkg-dev enthalten ist. Die Kontrolldateien fr equivs drfen einige zustzliche Felder enthalten, die im Normalfall nicht vorgesehen sind. Folgende Felder stehen zur Verfgung: Section Das Feld bestimmt die Unterabteilung, in die das Paket gehrt. Hier sollte die Unterabteilung angegeben werden, zu der das zu ersetzende Paket gehrt. Priority Hier sollte die Prioritt des zu ersetzenden Pakets angegeben werden. Package Dieses Feld bestimmt den Namen des zu erstellenden Dummy-Pakets. Hier sollte der Name des zu ersetzenden Pakets angegeben werden. Version Dieses Feld bestimmt die Versionsnummer des zu erstellenden Pakets. Sie sollten hier mindestens die gleiche Versionsnummer angeben, die das zu ersetzende Paket hat. Um zu verhindern, dass das Dummy-Paket whrend einer Aktualisierung des Systems wieder durch das zu ersetzende Paket berschrieben wird, sollte besser eine hhere Versionsnummer gewhlt werden. Maintainer Hier sollten sie Ihren Namen und Ihre Email-Adresse in der folgenden Form eingeben: Vorname Name <name@domain>.

8.6 Werkzeuge zur Anpassung des Systems

273

Pre-Depends In diesem Feld knnen Pakete angegeben werden, die vollstndig installiert und konguriert sein mssen, bevor Ihr Paket installiert wird. Fr Dummy-Pakete wird dieses Feld normalerweise nicht bentigt. Depends Mit diesem Feld wird bestimmt, zu welchen Paketen das Paket Abhngigkeiten haben soll (Komma-getrennte Liste). Recommends Pakete, die dringend zur Installation mit diesem Paket empfohlen werden. Suggests Pakete, die zur Installation mit diesem Paket empfohlen werden. Provides Virtuelle Pakete, die mit diesem Paket zur Verfgung gestellt werden. Fr virtuelle Pakete drfen keine Versionsnummern angegeben werden. Conicts Pakete, mit denen das zu erstellende Paket in Konikt steht. Architecture Rechnerarchitektur, fr die das Paket bestimmt ist. Fr Intel-basierte PCs ist hier der Wert i386 anzugeben. Copyright Dateiname der Datei, die das Copyright fr das Paket enthlt. Standardwert ist die GPL, Version 2. Readme Name der Datei, die whrend der Installation des Pakets als README.Debian im Dokumentationsverzeichnis des Pakets abgelegt wird. Changelog Name der Datei, die whrend der Installation des Pakets als changelog.Debian.gz im Dokumentationsverzeichnis des Pakets abgelegt wird. Extra-Files Namen von Dateien, die zustzlich im Dokumentationsverzeichnis des Pakets vorhanden sein sollen (Komma-getrennte Liste). Description Beschreibung des Pakets. Die erste Zeile enthlt dabei die Kurzbeschreibung, darunter die lange Beschreibung. Abstze knnen durch Zeilen erzeugt werden, die lediglich einen Punkt enthalten. Das erste Zeichen jeder Zeile in der ausfhrliche Beschreibung muss leer sein (Zwischenraum, space). Die Kontrolldatei knnte also folgendermaen aussehen:
Section: misc Priority: optional Standards-Version: 3.0.1 Package: foobar Version: 2.9.3-2 Maintainer: Foo Bar <foo@bar.org> Depends: libc6, xlib6g Provides: bar-foo-foo Architecture: i386 Description: The final foobar This is foo . This is bar

Wenn die Kontrolldatei fertig angepasst ist, wird das Paket mit dem Kommando equivs-build erzeugt. Dem Kommando ist der Name der Kontrolldatei zu bergeben. Im Beispiel so: joe@debian:~$ equivs-build dummy-control

274

8 Mehr ber Pakete und Paketverwaltung

Danach bendet sich das neue Paket im Arbeitsverzeichnis. Es wird dann mit dpkg installiert: debian:~# dpkg - -install foobar_2.9.3-2_i386.deb Achtung: Bei der Installation des Dummy-Pakets werden alle Dateien des zu ersetzenden Pakets gelscht. Sie mssen also vorher sichergestellt haben, dass das System auch ohne die Dateien des zu ersetzenden Pakets lauffhig ist! Nach der Installation sollte geprft werden, ob alle Eintrge in der Kontrolldatei richtig sind. Dies kann mit dem folgenden Kommando geschehen: debian:~# apt-cache gencaches Wenn hierbei Fehler auftreten, stimmen Eintrge in den Kontrollinformationen nicht. Sie sollten die Kontrolldatei dann berarbeiten und das Paket neu erstellen und installieren.

9 Konguration wichtiger Systemkomponenten

9.1 Konguration der Maus (gpm)


Das Programm gpm aus dem gleichnamigen Paket ermglicht, auch ohne grasche Benutzeroberche, also an der Konsole, eine Maus oder einen Trackball (Rollkugel) zu benutzen und mit Funktionen wie dem Markieren und Einfgen von Text zu arbeiten. Darber hinaus kann gpm so konguriert werden, dass es die Maus komplett verwaltet. Andere Programme, die ebenfalls auf die Maus zugreifen wie ein X-Server, kommunizieren dann mit gpm und nicht direkt mit der Maus. Das Programm gpm stellt zu diesem Zweck eine Pipe (siehe S. 524) zur Verfgung, die von anderen Programmen wie eine Maus-Gertedatei benutzt werden kann. Diesen Betriebsmodus von gpm bezeichnet man als Repeater-Modus. Zur Konguration des Programms dient das Skript gpmcong. Es wird whrend der Installation des Pakets automatisch aufgerufen und lsst sich spter mit diesem Kommando neu starten: debian:~# gpmconfig Nach dem Aufruf wird zunchst die aktuelle Konguration von gpm dargestellt, wobei es sich bei der erstmaligen Installation um die Vorgaben des Paketes handelt. Diese Vorgaben sind geeignet fr eine PS/2-Maus, welche ber die PS/2-Schnittstelle des Rechners (/dev/psaux) angeschlossen ist. Besitzen Sie eine andere Maus oder ist diese an eine andere Schnittstelle angeschlossen, so sollten Sie auf die Frage Do you want to change anything? mit y antworten. Ansonsten knnen Sie die Vorgaben mit n bernehmen. Testen Sie danach unbedingt durch Bewegen der Maus, ob die Mausuntersttzung funktioniert und rufen Sie gpmcong erneut auf, falls dies nicht so ist. Wenn Sie die Einstellungen ndern, wird Ihnen mitgeteilt, dass ein Testprogramm aufgerufen werden kann, mit dem versucht wird, Art sowie Anschlussschnittstelle der Maus festzustellen, und Sie werden gefragt, ob dies gewnscht ist. Dies kann nur funktionieren, wenn nicht gleichzeitig Programme aktiv sind, die ebenfalls die Maus benutzen, wie X11. Wenn Sie das Testprogramm ausfhren lassen, werden Sie unter Umstnden aufgefordert, die Maus zu bewegen oder bestimmte Tasten

276

9 Konguration wichtiger Systemkomponenten

der Maus zu drcken. Dies ist notwendig, damit die Maus identiziert werden kann. Nach Erfahrung der Autoren funktioniert die Mauserkennung mit dem Programm nicht besonders gut; es wird deswegen empfohlen, die Einstellungen manuell vorzunehmen. Falls die Identikation der Maus nicht gelingt oder Sie gleich die manuelle Konguration gewhlt haben, mssen Sie zunchst angeben, an welche Schnittstelle Ihre Maus angeschlossen ist. Die Mglichkeiten sind in Tabelle 9.1 dargestellt.
Tabelle 9.1. Typische Gertedateien fr Mausanschlsse.

Maustyp oder Anschluss Erste serielle Schnittstelle (Unter DOS COM1) Zweite serielle Schnittstelle (Unter DOS COM2) Dritte serielle Schnittstelle (Unter DOS COM3) Vierte serielle Schnittstelle (Unter DOS COM4) Logitech Bus Maus PS/2 Maus Microsoft Inport Bus Maus ATI XL Bus Maus J-Maus

Gertedatei /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 /dev/logibm /dev/psaux /dev/inportbm /dev/atibm /dev/jbm

Die verbreitesten Muse werden entweder ber serielle Schnittstellen oder die PS/2-Mausschnittstelle mit dem Rechner verbunden (auch bei Logitech-Musen handelt es sich oft um einen dieser beiden Typen), sodass Sie wahrscheinlich /dev/ttyS0, /dev/ttyS1 bzw. /dev/psaux angeben mssen. Der PS/2-Anschluss ist ein kleiner, runder Stecker mit 6 Stiften. Nach Angabe der Schnittstelle werden Sie nach dem Typ Ihrer Maus gefragt. Hiermit ist das Protokoll gemeint, mit dem die Maus dem Rechner mitteilt, dass Bewegungen stattgefunden haben oder Tasten gedrckt wurden. Die meisten heutigen Muse sind entweder Microsoft-Muse oder PS/2-Muse. Wenn Sie eine solche Standardmaus verwenden, geben Sie hier ms oder ps2 an. Darber hinaus wird aber eine groe Anzahl weiterer Maustypen untersttzt, wie Tabelle 9.2 zu entnehmen ist.
Tabelle 9.2. Bezeichnungen von Mausprotokollen fr gpm und XFree86.

Maustyp MouseMan Muse (einige neuere Muse von Logitech) Microsoft Muse mit zwei oder drei Tasten (Bei zwei Tasten wird die mittlere Taste durch Bettigung beider Tasten simuliert)

gpm mman ms

XFree86 MouseMan Microsoft

Fortsetzung auf nchster Seite

9.1 Konguration der Maus (gpm)

277

Fortsetzung

Maustyp gpm XFree86 Microsoft Muse mit zwei Tasten bare Microsoft Muse mit drei Tasten und Untersttzung ms+ zum Ziehen mit gedrckter mittlerer Taste Wie ms+ mit der Mglichkeit, die Maus durch ms+lr gleichzeitiges Drcken von linker und rechter Maustaste zurckzusetzen MouseSystems (serielle Muse mit drei Tasten) msc MouseSystems Alte serielle Logitech Muse logi Logitech Viele Busmuse (u. a. Microsoft und Logitech) bm BusMouse MM Muse mm MMSeries PS/2 Muse ps2 PS/2 Logitechmuse, die im 3-Tasten MouseSystemslogim MouseSystems Modus betrieben werden knnen Microsoft IntelliMouse und einige Logitech Wheelimps2 IMPS/2 und Cordless- Muse am PS/2-Anschluss Microsoft Plug-and-Play Muse PnP Microsoft IntelliMouse am seriellen Anschluss mit ms3 IntelliMouse drei Tasten Genius NetMouse netmouse NetMousePS/2 Sun Sparc-Muse sun Nach der Angabe des Maustyps knnen Sie die Antwortgeschwindigkeit der Maus festlegen. Dies ist normalerweise nicht notwendig. Falls sich der Mauszeiger jedoch zu schnell oder zu langsam bewegt, sollten Sie diesen Parameter verndern. Der Wert 0 entspricht dabei fast gar keiner Mauszeigerbewegung, whrend der Wert 50 den Mauszeiger in der Regel so schnell bewegen lsst, dass es schwierig wird, die Maus richtig zu positionieren. Gnstige Werte liegen zwischen 5 und 15. Danach wird angegeben, ob gpm im Repeater-Modus betrieben werden soll. Dies ist in der Regel zu empfehlen. Auf die Frage Repeat Protocol . . . ? ist deswegen der Name des Mausprotokolls anzugeben, welches anderen Anwendungen ber die Repeater-Funktion zur Verfgung gestellt werden soll. Dies ist nicht notwendig dasselbe Protokoll wie zwischen Maus und gpm. Erfahrungsgem eignet sich das MouseSystems-Protokoll gut fr diese Funktion. Geben Sie deswegen den Wert msc ein, um den Repeater fr die Verwendung dieses Protokolls zu kongurieren. Als letztes bekommen Sie die Mglichkeit, zustzliche Parameter zur Konguration von gpm anzugeben. Normalerweise knnen Sie hier die voreingestellten Parameter bernehmen, indem Sie einfach E INGABE drcken. Eine bersicht aller von gpm verstandenen Parameter nden Sie in der Manualseite des Programms. Nachdem alle Einstellungen vorgenommen sind, fragt das Programm, ob Sie es testen mchten. Sie sollten diese Frage mit Y beantworten. Bewegen Sie danach die Maus und versuchen Sie, mit der linken Maustaste Text auf dem Bildschirm zu markieren. Falls Sie den Mauszeiger (ein kleines weies Rechteck) nicht sehen

278

9 Konguration wichtiger Systemkomponenten

knnen, stimmt irgendetwas nicht, und Sie sollten die Konguration nochmals mit anderen Werten wiederholen. Beenden Sie den Test durch Bettigung der Tastenkombination S TRG - D. gpmcong fragt dann, ob Sie die Einstellungen bernehmen wollen. Wenn Sie mit Y antworten, wird das Programm gestartet und luft im Hintergrund weiter. Antworten Sie mit N, wird der Kongurationsvorgang wiederholt. Von nun an knnen Sie an der Konsole mit der linken Taste Text markieren und diesen mit der mittleren Maustaste an der aktuellen Eingabeposition einfgen. Mit der rechten Maustaste kann der Bereich zwischen zwei Punkten markiert werden: Klicken Sie dazu zunchst auf den Anfang des zu markierenden Bereichs und dann auf das Ende. Falls Ihre Maus nur zwei Tasten hat, wird je nach verwendetem Protokoll die dritte Maustaste durch gleichzeitiges Bettigen beider Maustasten emuliert, oder die Funktionalitt der dritten Maustaste entfllt, und die rechte Taste bernimmt die Aufgabe der mittleren Maustaste. Bei Problemen mit gpm empehlt sich das Studium der Datei /usr/share/doc/gpm/faq.gz, in der sich Antworten auf hug gestellte Fragen benden.

9.2 Einrichten von Druckern


9.2.1 Einleitung Im Prinzip knnte man unter Linux/UNIX drucken, indem man die zu druckende Datei auf die Gertedatei des Druckers kopiert. Das htte zwei Nachteile: Auf einem Mehrbenutzersystem knnten zwei Benutzer gleichzeitig auf den Gedanken verfallen, drucken zu wollen. Ein Drucker druckt gnadenlos das, was bei ihm eintrifft, in diesem Fall Textsalat. Text- oder Grakdateien gibt es in vielerlei Formaten, Drucker haben unterschiedliche Fhigkeiten und sind unterschiedlich konguriert. Die meisten Dateien mssen durch ein Programm, ein Filter bearbeitet werden, ehe sie zum Drucker gehen. Aus diesen und weiteren Grnden nehmen Druckauftrge unter Linux/UNIX den Umweg ber ein Drucksystem. Das Einrichten und Pegen der Drucksysteme in einem heterogenen Netz (Linux/UNIX, MS-Windows in mehreren Versionen, MacOS) lsst Verwalter vorzeitig ergrauen, in einem reinen Linux-UNIX-Netz ist die Aufgabe beherrschbar. Bevor wir in die Tiefen des Drucksystems steigen, wollen wir uns zwei Dinge verdeutlichen, deren Verstndnis die Einrichtung und die Fehleranalyse erleichtert. Drucker sind angeschlossen: entweder an einen Rechner ber eine parallele oder serielle Schnittstelle oder den Universal Serial Bus (USB) oder direkt an das Netz ber eine eigene Ethernet-Schnittstelle.

9.2 Einrichten von Druckern

279

Im ersten Fall hat man auf dem Rechner alle Mglichkeiten, die Druckauftrge zu beeinussen. Der Drucker selbst braucht fast keine eigene Intelligenz. Im zweiten Fall ist der Drucker ein Knoten im Netz mit eigener Adresse wie ein Rechner. Er muss so viel Intelligenz mitbringen, dass er sich im Netz gesittet verhlt und einfache Protokolle beherrscht. Aus diesem Grund kostet die Karte fr den Netzanschluss eines Druckers manchmal mehr als der Drucker. Andererseits reicht die Intelligenz handelsblicher Netzdrucker lange nicht an die eines Rechners heran, sodass der Drucker nur einen geringen Teil der Aufgaben des Drucksystems selbst bernehmen kann. In kleinen Netzen ndet man huger die erste Lsung, in mittleren die zweite. Der zweite Punkt betrifft die Frage, wo das Ergebnis eines Druckauftrags beeinusst werden kann. Das sind leider mehrere Stellen: Der Autor kann mit einem Editor in seine Texte Steuerzeichen (EscapeSequenzen) einfgen, beispielsweise um die Breite des linken Randes vorzugeben. Hierhin gehrt auch die Darstellung des Zeilenwechsels (LF, CR) in den unterschiedlichen Rechnerwelten. Das den Druckauftrag erteilende Programm ein Browser, ein Textprozessor, der Acrobat Reader meint auch, dem Drucker Anweisungen geben zu mssen. Filter im Drucksystem machen alles mit dem Text, was sie fr richtig halten. Der Drucker hat Voreinstellungen, die ihm teils per Hardware, teils per Software mitgeteilt worden sind. Das Gesagte bezieht sich auf Text; bei Grak liegen die Verhltnisse teilweise anders, sind aber nicht einfacher. Mit Farbe kommt noch eine Fehlerquelle hinzu. Wenn ein Druckergebnis nicht den Erwartungen entspricht, geht die Suche nach der Ursache los. Niemand will es gewesen sein. Unter Linux/UNIX schickt ein Benutzer einen Druckauftrag nicht an einen Drucker, sondern an einen Spooler. Dabei handelt es sich um ein Programm, das eingehende Druckauftrge annimmt, in Warteschlangen einreiht und der Reihe nach an die Drucker schickt. Jeder (logische) Drucker hat seine eigene Warteschlange. So knnen von mehreren Benutzern oder Programmen gleichzeitig Druckauftrge abgeschickt werden, die dann der Reihe nach abgearbeitet werden. Weil es sich bei dem Protokoll, mit dem Druckauftrge an den Spooler bertragen werden, um ein Internetprotokoll (Line Printer Daemon Protocol nach RFC 1179) handelt, ist gewhrleistet, dass Druckauftrge im Netz von jedem Rechner an jeden Drucker geschickt werden knnen, die bentigten Rechte vorausgesetzt (siehe auch Kapitel 17.7.9, S. 706). Wie oft in der heutigen Computerei ist auch bei Druckern zwischen physikalischen und logischen Gerten oder Ressourcen zu unterscheiden. Ein physikalischer Drucker steht irgendwo herum, beansprucht Platz, zieht Strom und hat Geld gekostet. Er vermag zu einem Zeitpunkt nur einen Druckauftrag zu bearbeiten. Das Spoolsystem kann aus einem physikalischen Drucker mehrere logische Drucker machen, indem es fr ihn mehrere Warteschlangen mit gegebenenfalls unterschiedlichen Eigenschaften einrichtet. Alle Warteschlangen drfen gleichzeitig Auftrge annehmen, aber jeweils nur eine darf Auftrge an den physikalischen Drucker weiterleiten. Umgekehrt lassen sich bei starkem Andrang mehrere physikalische Drucker zu einem logischen Drucker zusammenfassen. Das Spoolsystem leitet einen Auftrag an einen

280

9 Konguration wichtiger Systemkomponenten

gerade freien physikalischen Drucker weiter. In kleinen Netzen verzichtet man jedoch auf dieses logisch-physikalische Durcheinander. Weil zu druckende Dokumente in unterschiedlichen Formaten (ASCII-Text, PostScript, Portable Document Format (pdf), Grak usw.) an den Spooler geschickt werden und auf der anderen Seite unterschiedliche Drucker angeschlossen sind, die diese Dateiformate nicht von sich aus interpretieren und drucken knnen, bedarf es weiterer Programme, welche die Konvertierung des Eingangsdatenformats in ein vom Drucker verstandenes Format (PCL oder PostScript) bernehmen. Solche Programme werden Filter genannt. In den Filtern lassen sich weitere Dinge unterbringen wie das Erzeugen von Trennblttern zwischen den Auftrgen, Zurckweisen binrer Daten (die den Drucker verwirren), Versenden von Email an den Auftraggeber oder von Abrechnungsdaten an die Buchhaltung. Viele Programme beispielsweise Webbrowser erzeugen PostScript-Dateien fr die Druckausgabe. Wird ein Drucker eingesetzt, der nicht PostScript-fhig ist, so mssen im PostScript-Format eingehende Druckauftrge in ein anderes, vom Drucker interpretierbares Format bersetzt werden. Diese Aufgabe bernimmt das Programm Ghostscript (gs), das eine groe Anzahl unterschiedlicher Drucker als Ausgabegerte untersttzt (siehe auch S. 25). Unter Debian GNU/Linux stehen zwei unterschiedliche Versionen von Ghostscript zur Verfgung, nmlich zum einen GNU Ghostscript (Paket gs) und zum anderen Aladdin Ghostscript (Paket gs-aladdin). Bei der zweiten Variante handelt es sich um eine neuere Version, die mehr Drucker untersttzt und teilweise bessere Ergebnisse erzielt. Diese Variante steht jedoch unter einer Lizenz, die nicht den Debian-Richtlinien gengt und bendet sich deswegen im Non-Free-Bereich der Distribution. In der Regel werden fr das Drucksystem auf einem Rechner mit angeschlossenen Drucker drei Programmpakete bentigt: 1. Spooler 2. Filter 3. Ghostscript Dem Drucksystem lassen sich weitere Programme hinzufgen, die die Konvertierung bestimmter Dateiformate nach PostScript bernehmen. Die Programme werden vom Filter automatisch aufgerufen. Umgekehrt verstehen PostScript-fhige Drucker meist auch die zweite gngige Druckersprache (PCL Version 5 oder 6) und erkennen die Sprache eines Dokumentes automatisch. Fast immer. 9.2.2 Auswahl und Installation der Software In der Linux/UNIX-Welt nden sich mittlerweile zwei klassische und zwei neuere Drucksysteme: das System-V-Drucksystem, Druckkommando lp, das Berkeley-Drucksystem (BSD), Paket und Druckkommando lpr, das Berkeley-Drucksystem, nchste Generation, Paket lprng,

9.2 Einrichten von Druckern

281

das Common UNIX Printing System (CUPS). Unter Debian GNU/Linux stehen zwei Spooler zur Verfgung, nmlich zum einen der klassische BSD-Spooler, der im Paket lpr enthalten ist, zum anderen mit dem Paket lprng eine Weiterentwicklung. Im allgemeinen ist die Verwendung des Spoolerpakets lprng zu empfehlen. Weiter stehen zwei unterschiedliche Filtersysteme zur Verfgung, nmlich das Paket apslter sowie das Paket magiclter. Es ist nicht einfach, eine Empfehlung fr eines der beiden Pakete abzugeben, weil beide Systeme zum Teil unterschiedliche Drucker untersttzen und die Wahl deswegen von der vorhandenen Hardware abhngig ist. Beide Systeme ermglichen die automatische Konvertierung einer Vielzahl von Eingabeformaten in ein vom Drucker verstandenes Ausgabeformat. Traditionell ist magiclter unter Debian GNU/Linux weiter verbreitet. Wenn Sie sich fr lprng und magiclter entscheiden und das System mit allen Filterprogrammen installieren wollen, verwenden Sie folgendes Kommando: debian:~# apt-get install lprng gs tetex-bin netpbm libjpeg-progs libtiff-tools enscript recode djtools Etwa 35 MB Speicherplatz lsst sich einsparen, wenn bei dem Kommando auf die Installation des Pakets tetex-bin verzichtet wird. Es besteht dann keine Mglichkeit, A DVI-Dateien (Ausgabeformat von TEX und LTEX) auszudrucken oder am Bildschirm zu betrachten. Zur Installation des Systems lprng und apslter benutzen Sie das als nchstes gezeigte Kommando. Auch hier kann auf die Installation von tetex-bin verzichtet werden. debian:~# apt-get install lprng apsfilter gs tetex-bin a2ps transfig netpbm mailx Eine Alternative zu den Paketen lpr oder lprng stellt das Common UNIX Printing System (CUPS) dar. Das System steht unter Debian GNU/Linux mit dem Paket cupsys zur Verfgung und wird wie folgt eingerichtet: debian:~# apt-get install cupsys Bei der Einrichtung werden noch einige weitere Pakete verlangt. Das System beit sich nicht mit einem laufenden BSD-Druckdmon, weshalb kein Paket entfernt wird. Auf Dauer ist es jedoch unsinnig, zwei Drucksysteme gleichzeitig zu betreiben. Mittels joe@debian:~$ ps -ef | grep cups stellt man anschlieend fest, dass die Schar der Dmonen Zuwachs bekommen hat. Die Konguration liegt unter /etc/cups/, eine Manualseite zu cupsd gibt es auch. Weitere Dokumentation im html- und im pdf-Format ndet sich unter /usr/share/cups/doc-root/ sowie im Netz auf dem Webserver http://www. cups.org/. CUPS verwirklicht das Internet Printing Protocol 1.1 nach RFC 2910 und 2911 und lst vielleicht langfristig die lteren Drucksysteme ab.

282

9 Konguration wichtiger Systemkomponenten

9.2.3 Konguration Die wichtigste Kongurationsdatei fr den Spooler ist die Datei /etc/printcap. In dieser Datei wird festgelegt, welche Drucker auf dem System zur Verfgung stehen, an welche Schnittstellen diese angeschlossen sind bzw. an welche fremden Rechner, falls es sich nicht um lokale Drucker handelt. Auerdem wird hier speziziert, welche Filterprogramme aufgerufen werden, bevor ein Druckauftrag gedruckt wird. Das Format dieser Datei ist in der Manualseite printcap im Abschnitt 5 des Manuals beschrieben. Meist ist es nicht notwendig, die Eintrge in der Datei manuell anzulegen. Vielmehr beinhalten die Pakete apslter und magiclter jeweils ein Skript, mit welchem die Druckerkonguration durchgefhrt werden kann. Neben der Einrichtung der Filter fr Ihren Drucker kmmern sich die Skripte auch um die Eintrge in der Datei /etc/printcap. Konguration von magiclter Dieses Filter wird ber das Skript magicltercong eingerichtet. magicltercong prft zunchst, ob die Datei /etc/printcap bereits vorhanden ist und beendet sich mit einer Meldung, falls dies der Fall ist. Wenn die Datei noch nicht vorhanden ist oder das Skript mit dem Parameter - -force aufgerufen wird, startet es die Druckerkonguration. Geben Sie folgendes Kommando ein, um eine neue Druckerkonguration anzulegen (eine eventuell vorhandene alte Konguration geht dabei verloren): debian:~# magicfilterconfig - -force magicltercong erfragt dann fr eine beliebige Anzahl von Druckern eine Reihe von Informationen. Hierbei erscheinen in eckigen Klammern Vorgabewerte. Zunchst ist der Name anzugeben, unter dem der Drucker angesprochen werden soll, beispielsweise HP Laserjet 4100 oder Canon BJC4000. Nach Bettigung der E IN GABE -Taste muss eine Abkrzung fr diesen Namen angegeben werden. Hier sind kurze Eingaben wie hp4100 oder bjc4 in Betracht zu ziehen. Weiter ist die Gertedatei anzugeben, durch welche die Schnittstelle reprsentiert wird, an die der Drucker angeschlossen ist. Wenn Ihr Drucker beispielsweise an die erste parallele Schnittstelle (unter DOS LPT1) angeschlossen ist, so wrden Sie die Frage mit /dev/lp0 beantworten. Im folgenden muss magiclter wissen, welchen Filter es fr den zu verwendenden Drucker benutzen soll. Die Wahl des Filters ist zum einen abhngig von Modell und Fhigkeiten des Druckers, zum anderen knnen fr einige Drucker auch unterschiedliche Filter benutzt werden, die sich hinsichtlich der Auflsung unterscheiden. In solchen Fllen ist es empfehlenswert, zwei oder mehrere logische Drucker zu denieren, wobei beispielsweise der eine schwarz-wei und der andere in Farbe oder in einer hheren Auflsung druckt, beide jedoch denselben physikalischen Drucker reprsentieren. Wenn magiclter kein genau passendes Filter fr Ihren Drucker anbietet, sollten Sie einen Versuch mit einem Filter fr ein Vorgngermodell unternehmen.

9.2 Einrichten von Druckern

283

Die wesentlichen Fhigkeiten werden meist untersttzt, einige der jngsten Errungenschaften mglicherweise nicht. Nach Eingabe des Filters ist die Druckerkonguration abgeschlossen. Sie erhalten nun die Mglichkeit, einen weiteren Drucker einzurichten. Wenn dies nicht gewnscht wird, ist das Wort done einzugeben. Daraufhin erscheint eine Liste aller von Ihnen denierten Drucker, wobei der Standarddrucker, also der Drucker, auf den gedruckt wird, wenn bei einem Druckauftrag kein Drucker explizit angegeben wird, mit einem Stern am Ende der Zeile gekennzeichnet ist. Wenn Sie mehr als einen Drucker angegeben haben, erhalten Sie die Mglichkeit, den Standarddrucker zu ndern. Sollten Sie dies wnschen, geben Sie Y ein und danach den Kurznamen des Druckers, den Sie in Zukunft als Standarddrucker verwenden mchten. Als letztes erscheint die Frage Is this ok? Wenn Sie diese Frage mit Y beantworten, wird die Druckerkonguration gesichert. Falls Sie einen Fehler gemacht haben, knnen Sie hier N angeben, woraufhin von vorn begonnen wird. Dann hlt magicltercong den Spooler an, schreibt die Datei /etc/printcap und startet den Spooler erneut, sodass die nderungen sofort wirksam werden. Achtung: Falls whrend des Installationsprozesses magiclter konguriert wird, bevor der Spooler installiert ist, wird whrend der Installation des Spoolers erfragt, ob die bereits erzeugte Datei /etc/printcap durch die Version im Spoolerpaket ersetzt werden soll. Diese Frage mssen Sie unbedingt verneinen, damit die mit magicltercong erzeugte Dokumentation nicht berschrieben wird. Konguration von apslter Whrend der Installation von apslter wird erfragt, ob das Paket sofort konguriert werden soll. Alternativ kann die Konguration spter durchgefhrt werden, indem folgendes Kommando eingegeben wird: debian:~# apsfilterconfig Im ersten Schritt mssen Sie der Lizenz des Programms zustimmen. Das Programm steht unter der GPL, auerdem bittet der Autor von apslter darum, dass Sie ihm eine Postkarte schicken. Whlen Sie Y, um die Lizenz zu akzeptieren. Dann werden Sie gefragt, ob Sie von dem System aus Email versenden knnen. Wenn Sie diese Frage mit Y beantworten, erkundigt sich das Programm nach Ihrer EmailAdresse und schickt eine Mail an den Autor des Programms. Sie sollten spter eine Nachricht bekommen, in der sich die postalische Adresse des Autors bendet, an die Sie eine Postkarte schicken sollen. Falls Sie dies nicht wnschen, geben Sie einfach an, von dem System keine Mail versenden zu knnen. Das Programm untersucht danach, welche Programme zur Konvertierung von Druckauftrgen auf dem System vorhanden sind. Whrenddessen mssen Sie mehrmals E INGABE drcken. Danach erscheint ein Begrungsbildschirm, den Sie ebenfalls mit E INGABE quittieren. Nach einem weiteren Bildschirm, in dem eine kurze Einfhrung zu dem Programm gegeben wird, erscheint das Hauptmen des Programms, das in Abbildung 9.1 zu sehen ist.

284

9 Konguration wichtiger Systemkomponenten

Abbildung 9.1. Hauptmen des Programms apsltercong.

Aus den dort zur Verfgung stehenden Kommandos whlen Sie aus, indem Sie den Buchstaben oder die Zahl eingeben, die sich vor dem gewnschten Kommando bendet, und dann E INGABE drcken. Normalerweise sollten Sie die folgenden Schritte hintereinander abarbeiten: 1 Printer Driver Selection Nach Auswahl dieses Kommandos erscheint ein Men, aus dem eine Druckerfamilie auszuwhlen ist. Nach der Auswahl der Familie werden die dazu gehrenden Druckermodelle angezeigt. Aus der Liste ist dann der eigene Drucker auszuwhlen. Wenn Sie sich nicht sicher sind, zu welcher Familie Ihr Drucker gehrt, knnen Sie sich die einzelnen Listen anzeigen lassen, indem Sie jeweils eine Familie auswhlen und aus der dann erscheinenden Liste keinen Drucker auswhlen. Wenn Sie danach E INGABE drcken, erscheint wieder das Auswahlmen der Druckerfamilien. Hier geht es nicht darum, einen Drucker auszuwhlen, dessen Bezeichnung exakt der Bezeichnung Ihres Druckers entspricht. Vielmehr mssen Sie ein Modell auswhlen, dass mit Ihrem Drucker kompatibel ist. Entsprechende Listen sollten sich in der Dokumentation Ihres Druckers benden. Nach der Auswahl eines Druckers, mssen Sie Ihre Auswahl einmal besttigen. 2 Interface Setup Hier knnen Sie angeben, ob Ihr Drucker ber eine serielle oder eine parallele Schnittstelle mit dem Rechner verbunden ist. In den meisten Fllen werden Drucker heute noch ber eine parallele Schnittstelle verbunden. Nach der Auswahl des Schnittstellentyps ist bei parallelen Schnittstellen lediglich der Name der Gertedatei anzugeben, durch welche die Schnittstelle auf dem System reprsentiert wird. Geben Sie hier z. B. /dev/lp0 fr die erste parallele Schnittstelle (unter DOS LPT1) oder /dev/lp1 fr die zweite parallele Schnittstelle (unter DOS LPT2) ein.

9.2 Einrichten von Druckern

285

Falls Ihr Drucker ber eine serielle Schnittstelle angeschlossen ist, sind u. U. einige zustzliche Angaben zur Konguration der Schnittstelle notwendig. Deswegen erscheint dann ein weiteres Men, welches diese Einstellungen ermglicht. Sie mssen dort mindestens den Namen der Gertedatei angeben, welche die serielle Schnittstelle untersttzt. Dies ist z. B. /dev/ttyS0 fr die erste serielle Schnittstelle (unter DOS COM1) oder /dev/ttyS1 fr die zweite serielle Schnittstelle (unter DOS COM2). 3 Page Format Hier geben Sie das Papierformat an. Die Einstellung wirkt sich nicht auf den normalen Druckerbetrieb aus. 4 Print Resolution Nach der Auswahl dieses Menpunkts kann bestimmt werden, mit welcher Auflsung der Drucker arbeiten sollen. Selbstverstndlich muss die gewhlte Auflsung von Ihrem Drucker untersttzt werden. Im Zweifelsfall sollten Sie d) back to default resolution. . . auswhlen oder in der Dokumentation Ihres Druckers nachsehen, welche Auflsungen dieser untersttzt. Leider mssen viele Drucker mit einer niedrigeren Auflsung betrieben werden, als es theoretisch mglich wre, wenn die Geschwindigkeit des Druckers voll ausgenutzt werden soll. Ursache hierfr ist meist zu wenig Speicher im Drucker. 5 Toggle Monochrome/Color Hier kann ausgewhlt werden, mit welcher Farbtiefe der Drucker benutzt werden soll. Im allgemeinen wird empfohlen, hier mit der Voreinstellung d) default zu arbeiten. T Print Test Page Mit diesem Kommando knnen Sie die Druckereinstellungen berprfen. Nach der Auswahl des Kommandos muss im dann folgenden Bildschirm zunchst angegeben werden, dass die Testseite tatschlich gedruckt werden soll. Danach gibt das Programm das Kommando aus, mit dem es die Seite druckt und fragt, ob das Kommando ausgefhrt werden soll. Auf der Testseite benden sich recht aufwendige PostScript-Graken, weswegen die Konvertierung in das Druckerformat bei langsameren Rechnern einen gewissen Zeitraum in Anspruch nimmt. Sobald die Konvertierung abgeschlossen ist, erscheint die Meldung Printing test page auf dem Bildschirm. Die Seite sollte dann ausgedruckt werden. Wenn der Drucker nach einer angemessenen Zeit nicht reagiert und sichergestellt ist, dass er funktionsfhig, eingeschaltet und mit dem Rechner verbunden ist, mssen Sie das Programm abbrechen. Benutzen Sie hierzu die Tastenkombination S TRG - C. V View perf.log Das Kommando zeigt an, wieviel Zeit zur Konvertierung der Testseite sowie zum Ausdrucken der Seite bentigt wurde. C Continue printer setup with values shown above Whlen Sie dieses Kommando aus, wenn Sie die Testseite erfolgreich drucken konnten. Sie werden dann gefragt, ob es sich bei dem Drucker um einen Farb- (color) oder einen SchwarzWei- (mono) Modell handelt. Whlen Sie die Ihrem Drucker entsprechende Einstellung aus. Die Druckerkonguration wird dann erzeugt. Nachdem die Konguration abgeschlossen ist, erscheint hintereinander eine Reihe von Bildschirmen, in denen Hinweise und Informationen zu dem Programm und verschiedenen anderen Dingen ausgegeben werden. Lesen Sie die Texte und betti-

286

9 Konguration wichtiger Systemkomponenten

gen Sie die Taste E INGABE, um zum jeweils nchsten Bildschirm zu gelangen. Sobald das Programm beendet ist, mssen Sie das Spoolersystem neu starten, damit die Vernderungen der Konguration wirksam werden. Geben Sie dazu bei Verwendung von lprng dieses Kommando ein: debian:~# /etc/init.d/lprng restart Wenn Sie das Paket lpr benutzern, mssen Sie das Kommando anpassen. Ein Warmstart (Reboot) tut es auch. Im Verzeichnis /usr/share/doc/apslter bendet sich eine Reihe von Dokumenten zu dem Programm. Bei Problemen sollten Sie zuerst die Datei FAQ.gz in diesem Verzeichnis lesen; sie enthlt Antworten auf eine Reihe hug gestellter Fragen und Lsungen fr oft auftretende Probleme. Weitere Informationen nden Sie unter dem URL http://www.FreeBSD.org/~andreas/apsfilter/ index.html. Falls Sie dem System Programme hinzufgen, die von apslter als Filterprogramme benutzt werden knnen oder nachdem Sie solche Programme vom System entfernt haben, mssen Sie folgendes Kommando ausfhren: debian:~# /usr/share/apsfilter/setup/filtersetup Dadurch wird sichergestellt, dass apslter nicht versucht, Programme zu benutzen, die nicht mehr installiert sind und neu installierte Programme auch tatschlich verwendet. Wenn Sie sich nicht sicher sind, ob ein installiertes oder entferntes Paket solche Programme enthlt, sollten Sie das Kommando einmal aufrufen. Es werden dann die Namen der Programme ausgegeben, nach denen ltersetup sucht. Testen der Konguration Nachdem Spooler und Filter installiert und konguriert sind, sollten Sie das System zunchst mit PostScript-Dateien testen. Ein Anzahl solcher Dateien werden mit Ghostscript mitgeliefert. Diese Dateien benden sich nach der Installation des Paketes gs bzw. gs-aladdin im Verzeichnis /usr/share/doc/gs/examples oder /usr/doc/gsaladdin/examples. Um beispielsweise die Datei escher.ps.gz auszudrucken, ist folgendes Kommando einzugeben: joe@debian:~$ lpr /usr/share/doc/gs/examples/escher.ps.gz Fr gs-aladdin ist das Kommando anzupassen. 9.2.4 Fehlerbehebung Falls die zu druckende Datei nicht ausgedruckt wird, sollten Sie die folgenden Punkte berprfen: Funktioniert der Drucker berhaupt? Ist er angeschlossen und eingeschaltet? Falls neben Linux ein anderes Betriebssystem benutzt wird: Funktioniert das Drucken dort?

9.2 Einrichten von Druckern

287

Ist der Drucker On-Line (auf den Empfang von Daten) geschaltet? Wird der Druckspooler ausgefhrt? Sie knnen dies testen, indem Sie folgendes Kommando eingeben: joe@debian:~$ lpq Wenn daraufhin nach einer gewissen Zeit die Meldung Make sure the LPD server is running on the server erscheint, bedeutet dies, dass der Spooler nicht erreicht werden kann, also wahrscheinlich nicht ausgefhrt wird. Starten Sie den Spooler, indem Sie dieses Kommando eingeben: debian:~# /etc/init.d/lprng start Wenn Sie danach immer noch dieselbe Fehlermeldung von lpq erhalten, mssen Sie die Netzeinstellungen des Rechners berprfen. Insbesondere sollten Sie dann berprfen, ob das Loopback-Interface aktiviert ist (siehe S. 604) Kommt berhaupt etwas am Drucker an? Dies ist beispielsweise dann der Fall, wenn der Drucker anfngt zu blinken, sobald gedruckt wird oder wirre Zeichenketten ausgegeben werden. Falls der Drucker nichts empfngt, ist zu berprfen, ob (1) die richtige Gertedatei angegeben wurde und (2) falls ein selbsterstellter Kern eingesetzt wird, ob dieser die Untersttzung fr die Druckerschnittstelle enthlt. Falls der Drucker Daten empfngt, aber nichts Sinnvolles druckt, muss u. U. ein anderer Druckertreiber benutzt werden. Kongurieren Sie den Drucker dann mit magicltercong oder apsltercong neu. Eventuell ist es auch notwendig, den Drucker in einen speziellen Modus zu schalten, damit er die an ihn gesendeten Daten richtig interpretieren kann (Druckerhandbuch). 9.2.5 Hinweise zur Arbeit mit Druckern Kommandos Die Pakete lpr und lprng stellen beide eine Reihe von Kommandos zur Benutzung der Drucker zur Verfgung. Die folgenden Erluterungen beziehen sich auf die lprng-Versionen der Kommandos. Die Benutzung beider Systeme hnelt sich jedoch in vielerlei Hinsicht, sodass Sie die hier beschriebenen Kommandos in hnlicher Weise auch mit dem Paket lpr benutzen knnen. Wie viele Bestandteile eines Linux/UNIX-Systems ist auch das Drucksystem nach dem Klient-/Server-Prinzip aufgebaut. Ein Programm (der Druckserver) kontrolliert den Drucker und nimmt von anderen Programmen (den Klienten) Druckauftrge an. Druckserver und Druckklienten kommunizieren miteinander ber ein Internet-Protokoll (LPD oder IPP), weswegen sie auf getrennten Rechnern laufen knnen. Hinweise dazu, wie sie das Drucksystem im Netz einsetzen knnen, nden Sie in Kapitel 17.7.9, S. 706. Im folgenden die wichtigsten Programme des Spoolsystems: lpd Dies ist der Druckserver (Line Printer Daemon). Er wird whrend des Systemstarts ber ein Startskript im Verzeichnis /etc/init.d gestartet. Das Programm ist

288

9 Konguration wichtiger Systemkomponenten

zum einen dafr zustndig, die verfgbaren Drucker zu kontrollieren. Zum anderen nimmt es Druckauftrge von Programmen auf demselben Rechner oder ber Netzverbindungen entgegen. Auerdem kann es Druckauftrge an andere Rechner weiterleiten. lpr Dies ist das Klientprogramm, mit welchem die Druckauftrge an lpd bergeben werden. lpq Mit diesem Programm lsst sich der Status von Druckwarteschlangen anzeigen (query). lprm Das Programm dient zum Lschen von Druckauftrgen (remove), solange sie sich noch im Rechner benden. Daten, die bereits im Drucker gespeichert sind, knnen nur dort gelscht werden. lpc Mit diesem Programm lassen sich unterschiedlicher Aufgaben zur Druckerverwaltung ausfhren (control). Drucken Um eine Datei auszudrucken, ist sie mit dem Programm lpr an den Druckserver zu bergeben. Beispiel: joe@debian:~$ lpr datei.ps Welche Dateitypen Sie direkt ausdrucken knnen, hngt von der Konguration des Drucklters ab. Sowohl mit magiclter als auch mit apslter sollten Sie in der Lage sein, eine groe Anzahl gngiger Grak- und Textformate direkt ausdrucken zu knnen, ohne die Dateien erst mit einem anderen Werkzeug konvertieren zu mssen. Hinweise zur Konvertierung von Daten benden sich im Printing-HOWTO (Datei /usr/share/doc/HOWTO/en-txt/Printing-HOWTO.txt.gz, Paket doc-linux-text). Grundstzlich sollten Sie versuchen, Dateien in das PostScript-Format zu konvertieren. Wenn Sie mehrere Druckerdenitionen in der Datei /etc/printcap haben, knnen Sie den gewnschten Drucker beim Aufruf von lpr mit angeben. Hierzu ist die Option -P zu verwenden. Beispiel: joe@debian:~$ lpr -Pcolor datei.ps Das Kommando druckt die Datei datei.ps auf den Drucker, welcher in der Datei /etc/printcap den Namen color erhalten hat. Eine Reihe weiterer wichtiger Parameter von lpr nden Sie im Referenzteil des Buches sowie in der Manualseite zum Programm. Anzeigen von Statusinformationen Nachdem ein Druckauftrag an den Spooler bergeben ist, wird er von diesem so lange aufbewahrt, bis er vollstndig ausgedruckt ist. Das Kommando lpq dient dazu, die augenblicklich im Spooler bendlichen Auftrge anzuzeigen. Wenn lpq ohne weitere Parameter aufgerufen wird, zeigt das Programm die Auftrge fr den Standarddrucker an. Auch lpq kann mit dem Parameter -P mitgeteilt werden, fr welchen Drucker die wartenden Auftrge angezeigt werden sollen. Beispiel:

9.2 Einrichten von Druckern

289

joe@debian:~$ lpq -Pcolor Daraufhin erscheint eine Ausgabe, die sinngem der folgenden entspricht:
Printer: color@beethoven Color Printer Queue: 1 printable job Server: pid 27973 active Unspooler: pid 27974 active Status: printing data file dfA972, size 31487 at 00:03:36.353 Rank Owner/ID Class Job Files Size Time active peter@beethoven+972 A 972 datei.ps 31487 00:03:36 2 karl@beethoven+998 A 998 brief.dvi 2127 00:09:19 3 heinz@beethoven+921 A 921 bild.jpg 123221 00:10:13

In der ersten Zeile wird angezeigt, auf welchen Drucker sich die Ausgabe bezieht. color@beethoven bedeutet dabei, dass sich die Ausgabe auf den Drucker color, welcher an den Rechner beethoven angeschlossen ist, bezieht. Darunter benden sich verschiedene Statusinformationen, und zum Schluss folgt die Liste der Druckauftrge. In den Spalten der Liste nden sich folgende Informationen: Rank Hier wird angezeigt, welcher Auftrag gerade gedruckt wird und in welcher Reihenfolge die nchsten Auftrge gedruckt werden sollen. Owner/ID Benutzernamen der Auftraggeber sowie die IDs der einzelnen Auftrge. Class Prioritten der Auftrge. Die Prioritt eines Auftrags lsst sich zusammen mit dem Kommando lpr beim Drucken eines Dokuments angeben. A entspricht der niedrigsten und Z der hchsten Prioritt. Auftrags-ID nochmals die ID des Auftrags. Files Originaldateinamen der auszudruckenden Daten, sofern bekannt. Size Gre des Druckauftrags in Byte. Time Uhrzeit, zu welcher der Auftrag abgeschickt wurde, im Format Stunde:Minute:Sekunde Sie knnen das Ausgabeformat des Kommandos lpq mit verschiedenen Optionen beeinussen. Durch die Option -l werden zustzliche Statusinformationen mit ausgegeben, wobei um so mehr Informationen ausgegeben werden, je fter die Option an der Kommandozeile wiederholt wurde. Beispiel: joe@debian:~$ lpq -l -l -l Mit der Option -L werden alle verfgbaren Statusinformationen angezeigt. Die Option -s reduziert die Ausgabe auf eine kurze Statusmitteilung. Mehr Informationen zu lpq im Referenzteil sowie in der Manualseite zu dem Programm. Lschen von Druckauftrgen Mit dem Kommando lprm werden Druckauftrge gelscht, die sich noch in der Warteschlange benden. Standardmig darf der Systemverwalter alle Druckauftrge lschen oder anderweitig beeinussen, whrend normale Benutzer nur ihre eigenen Auftrge widerrufen drfen.

290

9 Konguration wichtiger Systemkomponenten

Ebenso wie mit den Kommandos lpr und lpq kann auch bei lprm mit der Option -P angegeben werden, von welchem Drucker Auftrge entfernt werden sollen. Wenn die Option nicht benutzt wird, werden die Auftrge vom Standarddrucker entfernt. Mit der Option -a wird angegeben, dass Druckauftrge von allen Druckern gelscht werden sollen. Dem Kommando lprm muss mitgeteilt werden, welche Druckauftrge entfernt werden sollen. Dazu knnen die Auftrags-IDs, welche von lpq ausgegeben werden, benutzt werden. Weiter ist es mglich, einen Benutzernamen anzugeben, wodurch alle Druckauftrge des Benutzers entfernt werden. Wenn das Schlsselwort all angegeben wird, werden alle Druckauftrge entfernt, sofern die Berechtigung dazu vorhanden ist. Hier einige Beispiele: lprm 231 Das Kommando lscht den Auftrag mit der ID 231. lprm -Pcolor kurt Das Kommando lscht alle Auftrge des Benutzers kurt, die auf dem Drucker color ausgegeben werden sollen. lprm -a all Alle Druckauftrge des aufrufenden Benutzers auf allen Druckern werden gelscht. Falls das Kommando vom Verwalter benutzt wird, werden alle Druckauftrge berhaupt gelscht. Weitere Hinweise zur Verwendung von lpq im Referenzteil sowie in der Manualseite zu dem Programm. Kontrolle von Druckern und Druckauftrgen Das Kommando lpc dient der Kontrolle und Verwaltung von Druckern. Mit diesem Werkzeug ist es mglich, die Prioritt von Druckauftrgen zu verndern, Auftrge von einem Drucker zu einem anderen zu verschieben, einzelne Drucker ein- oder auszuschalten oder zu bewirken, dass bestimmte Auftrge nicht gedruckt werden, ohne sie zu lschen. Nach dem Aufruf des Programms durch Eingabe des Kommandos lpc meldet sich das Programm mit einem eigenen Prompt, an dem Sie spezielle Kommandos zur Manipulation der Drucker und Druckauftrge eingeben knnen. Eine bersicht der verfgbaren Kommandos wird ausgegeben, wenn Sie das Kommando help eingeben. Sie verlassen das Programm durch eines der Kommandos exit oder quit. 9.2.6 Weiterfhrende Information zur Druckerverwaltung Programme zur Arbeit mit Druckern Unter Debian GNU/Linux stehen eine Reihe weiterer Programme zur Druckerverwaltung zur Verfgung. Hier eine bersicht ber die wichtigsten Pakete:

9.3 Cron: Regelmiges Ausfhren von Programmen

291

printtool Das Paket enthlt das Programm zur Druckereinrichtung der LinuxDistribution Red Hat. Es zeichnet sich vor allem dadurch aus, dass mit dem Programm leicht Eintrge in der Datei /etc/printcap deniert werden knnen, mit denen auf Drucker an MS-Windows- oder Novell-Netware-Rechnern gedruckt werden kann. djtools In diesem Paket nden Sie einige Werkzeuge zur Kontrolle von Druckern der Deskjet-Reihe von HP. rlpr Das Paket enthlt ein Programm, mit dem Dateien auf einen Drucker an einem anderen Rechner ausgegeben werden knnen, ohne dass ein Eintrag in der Datei /etc/printcap bentigt wird. printtop Das Paket enthlt ein Programm zur Visualisierung der Druckerwarteschlangen sowie zur Manipulation von Druckauftrgen mit der Maus. Dokumentation Zum Thema Drucken unter Linux steht eine Vielzahl unterschiedlicher Dokumente zur Verfgung. Im Paket doc-linux-text benden sich zwei HOWTOs zu dem Thema, nmlich das Printing-HOWTO, welches eher auf die Einrichtung von Druckern eingeht, sowie das Printing-Usage-HOWTO, das sich verschiedenen Aspekten der Benutzung von Druckern unter Linux widmet. Beide HOWTOs liegen im Verzeichnis /usr/share/doc/HOWTO/en-txt, wenn das Paket doc-linux-text installiert ist. Im Paket gs-aladdin-manual bendet sich das Handbuch des PostScriptInterpreters Ghostscript. Hier gibt es sogar eine deutschsprachige Version, welche Sie im Paket gs-aladdin-manual-de nden. Eine Anleitung zur Konguration von lprng sowie zur Arbeit mit dem System nden Sie in dem Paket lprng-doc. Dieses Paket enthlt Dokumentation im HTML-Format, das Inhaltsverzeichnis bendet sich in der Datei /usr/share/doc/lprng-doc/html/LPRng-HOWTO.html.

9.3 Cron: Regelmiges Ausfhren von Programmen


9.3.1 Einleitung Aus verschiedenen Grnden sind einige Programme in regelmigen Abstnden aufzurufen. Ein Beispiel hierfr ist das Programm locate (S. 819). Es wird dazu benutzt, Dateien und Verzeichnisse auf dem Rechner zu suchen. Im Gegensatz zu nd (S. 798) durchsucht locate das Dateisystem nicht selbst, sondern benutzt eine Datenbank, in der die Namen aller auf dem System vorhandenen Dateien enthalten sind. Dieses Verfahren bietet gegenber nd einen deutlichen Geschwindigkeitsvorteil. Auf der anderen Seite ist es jedoch notwendig, die von locate benutzte Datenbank regelmig zu aktualisieren. Zur Aktualisierung der locate-Datenbank wird das Programm updatedb benutzt. Man knnte updatedb nun gelegentlich manuell aufrufen, etwa nachdem Pakete neu installiert oder von dem System entfernt worden sind. Dann besteht die Gefahr, dass man es doch einmal vergisst. Weil die Datenbankaktualisierung eine gewisse Last auf dem Rechner erzeugt, wre es auerdem sinnvoll, updatedb automatisch und regelmig zu einem Zeitpunkt auszufhren, zu dem

292

9 Konguration wichtiger Systemkomponenten

wahrscheinlich kaum jemand mit dem Rechner arbeitet (beispielsweise um 6 Uhr morgens). Aus diesem Grund gibt es das Paket cron. Es stellt einen Dmon-Prozess zur Verfgung, der Programme in regelmigen Intervallen ausfhrt. Tatschlich sind eine groe Anzahl von Paketen darauf angewiesen, dass gelegentlich Aufrumarbeiten ausgefhrt werden. So mssen Protokolldateien regelmig durch neue ersetzt werden, damit sie nicht zu viel Platz verbrauchen, verschiedene Datenbanken mssen aktualisiert werden oder Backups von wichtigen Dateien erzeugt werden1 . Dieser Dmon wird wie andere Systemdienste ber ein Skript im Verzeichnis /etc/init.d gestartet. 9.3.2 Konguration Die zentrale Kongurationsdatei fr cron ist die Datei /etc/crontab. Ihr Aufbau ist in der Manualseite crontab im Abschnitt 5 des Manuals beschrieben. In dieser Datei wird bestimmt, welche Programme zu welchem Zeitpunkt ausgefhrt werden. Standardmig benden sich dort die folgende Anweisungen (die Sie normalerweise nicht ndern sollten): Tglich um 6:25 Uhr werden alle Programme und Skripte ausgefhrt, die sich im Verzeichnis /etc/cron.daily benden. Jeweils Sonntags um 6:47 Uhr werden alle Programme und Skripte ausgefhrt, die sich im Verzeichnis /etc/cron.weekly benden. Am ersten Tag in jedem Monat um 6:52 werden alle Programme und Skripte ausgefhrt, die sich im Verzeichnis /etc/cron.monthly benden. Tatschlich werden diese Skripte nur dann zu den angegebenen Zeiten ausgefhrt, wenn das Paket anacron nicht installiert ist. Dazu spter mehr. Die Eintrge in der Datei haben das folgende Format: Minute Stunde Tag-im-Monat Monat Wochentag Benutzer Kommando [Argumente] Mit Minute und Stunde wird die Uhrzeit angegeben, zu welcher das Kommando ausgefhrt werden soll. Mit Tag-im-Monat, Monat und Wochentag kann angegeben werden, an welchen Tagen der Eintrag bercksichtigt werden soll. Beim Wochentag entspricht die Zahl 1 Montag, fr Sonntag kann sowohl 0 als auch 7 angegeben werden. Fr jedes dieser Felder kann ein Stern (*) eingesetzt werden. Die Folge ist, dass das zugehrige Kommando jede Minute oder Stunde bzw. an jedem Tag ausgefhrt wird. Mit Benutzer wird angegeben, unter wessen Benutzer-ID das Kommando ausgefhrt werden soll. Danach folgt das Kommando in derselben Form, wie es an der Kommandozeile eingegeben wird. Gegebenenfalls ist es notwendig, den Namen eines aufzurufenden Programms mit absolutem Pfad anzugeben, damit es von cron gefunden wird. Zu Beginn der Datei bendet sich eine PATH=-Anweisung, aus der
1 So benden sich im Verzeichnis /var/backups immer Sicherheitskopien der Benutzerund Gruppendateien /etc/passwd und /etc/group sowie einiger anderer wichtiger Dateien.

9.3 Cron: Regelmiges Ausfhren von Programmen

293

hervorgeht, welche Verzeichnisse automatisch durchsucht werden, wenn kein absoluter Pfad- und Dateiname angegeben wurde. Hier drei Beispiele: 0 * * * * root echo "hallo Admin!" Zu jeder vollen Stunden wird das Kommando echo "hallo Admin!" ausgefhrt. Die Ausgaben von cron-Auftrgen (wie hier hallo Admin!) werden per Email an den aufrufenden Benutzer geschickt. Voraussetzung hierfr ist ein funktionsfhig eingerichtetes Mail-Transport-Programm (siehe S. 680). * 3 * * * root reboot Tglich um 3 Uhr morgens wird der Rechner warm gestartet (etwas hug, aber wchentlich wre nicht verkehrt). * 5 * * 7 root /usr/local/sbin/backupscript full Jeden Sonntag um 5 Uhr morgens wird das Skript /usr/local/sbin/backupscript mit dem Parameter full aufgerufen. In vielen Fllen mssen Aktionen mehrmals tglich zu unterschiedlichen Uhrzeiten ausgefhrt werden. Aus diesem Grund ist es mglich, Bereiche von Zeiten, Aufzhlungen unterschiedlicher Zeitpunkte sowie Intervalle von Zeitpunkten zu spezizieren. Hierzu noch zwei Beispiele: 0,15,30,45 8-17 * * 1-5 root lpq -a An den Wochentagen Montag bis Freitag soll zwischen 8 und 17 Uhr alle 15 Minuten das Kommando lpq mit der Option -a aufgerufen werden. 10 10-17/2 * * 6,7 kurt ping -c 1 -q rechner2 Sonnabends und sonntags soll im Zeitraum zwischen 10 und 17 Uhr alle zwei Stunden das Kmmando ping -c 1 -q rechner2 unter der Benutzer-ID des Benutzers kurt ausgefhrt werden, und zwar jeweils 10 Minuten nach einer vollen Stunde. Jede crontab-Anweisung muss sich in einer eignen Zeile benden. Die Datei kann auch Kommentare enthalten, denen ein Doppelkreuz (#) vorangestellt sein muss, oder leere Zeilen, die nicht beachtet werden. Im Unterschied zu den meisten anderen Systemdiensten braucht cron nicht neu gestartet zu werden, wenn die Datei /etc/crontab gendert wurde. Das Programm liest den Inhalt der Datei automatisch neu ein, wenn er sich gendert hat. Mehr Informationen zu dieser Datei nden Sie in der Manualseite crontab im Abschnitt 5 des Manuals. Eine Debian-Besonderheit ist das Verzeichnis /etc/cron.d. In diesem Verzeichnis werden Dateien abgelegt, deren Inhalt genauso wie der Inhalt der Datei /etc/crontab aufgebaut sein muss. Diese Dateien werden von cron ebenfalls bercksichtigt. Es ist zu empfehlen, eigene Auftrge in einer Datei in diesem Verzeichnis (etwa /etc/cron.d/local) zu denieren, damit die Datei /etc/crontab nicht verndert wird und bei Systemaktualisierungen automatisch ausgetauscht werden kann.

294

9 Konguration wichtiger Systemkomponenten

9.3.3 Gewhnliche Benutzer und cron Neben dem Systemverwalter drfen auch gewhnliche Benutzer den cron-Dmon benutzen. Weil Sie die Datei /etc/crontab nicht selbst verndern drfen, mssen sie ein spezielles Programm benutzen, mit dem sie eigene crontab-Dateien bearbeiten knnen. Dieses Programm trgt ebenfalls den Namen crontab; es ist in der Kommandobersicht auf Seite 786 sowie in einer Manualseite beschrieben. Achtung: Die crontab-Dateien der Benutzer unterscheiden sich von den Eintrgen in /etc/crontab dadurch, dass das Feld mit dem Benutzernamen fehlt. Dieses Feld ist hier nicht notwendig, weil Auftrge von Benutzern immer mit der zugehrigen Benutzer-ID ausgefhrt werden. Durch die Dateien /etc/cron.allow und /etc/cron.deny lsst sich einschrnken, welche Benutzer cron verwenden drfen. Falls die Datei /etc/cron.allow existiert, drfen nur solche Benutzer cron verwenden, deren Namen in die Datei eingetragen sind. Wenn die Datei /etc/cron.deny existiert, drfen nur solche Benutzer von cron Gebrauch machen, deren Namen nicht in die Datei eingetragen sind. Standardmig existieren beide Dateien nicht, und jeder Benutzer darf das Programm crontab verwenden. 9.3.4 Cron und das Ausschalten von Rechnern (anacron) Das cron-Konzept geht davon aus, dass der Rechner durchgehend luft. Der Dmon arbeitet liegen gebliebene Auftrge nicht nach. Durchgehender Betrieb ist jedoch bei vielen Heimcomputern oder bei Laptops nicht gegeben. Die Folge ist, dass wichtige Programme zur Pege des Systems u. U. nie ausgefhrt werden, weil der Rechner zum betreffenden Zeitpunkt nicht eingeschaltet ist. Als Konsequenz liefert dann beispielsweise das Programm locate falsche Ergebnisse, Protokolldateien werden nicht mehr erneuert und verbrauchen deswegen zu viel Festplattenplatz, und Backups von wichtigen Dateien werden nicht erstellt. Dieses Problem wird von dem Paket anacron gelst. Sie sollten es installieren, wenn Ihr Rechner innerhalb von 24 Stunden mehrmals abgeschaltet wird. Programme, welche von anacron ausgefhrt werden sollen, werden in der Datei /etc/anacrontab aufgelistet. Eintrge in dieser Datei haben das folgende Format: Tage Verzgerung Bezeichnung Kommando Argumente Mit Tage wird hier angegeben, nach jeweils wievielen Tagen das Kommando aufgerufen werden soll. Verzgerung erlaubt es anzugeben, wieviele Minuten nach dem Start von anacron das Kommando frhestens ausgefhrt werden darf. Zweck dieses Feldes ist es zu verhindern, dass unmittelbar nach dem Systemstart (wenn anacron aufgerufen wird) eine sehr hohe Systemlast erzeugt wird. Mit Bezeichnung ist eine eindeutige Bezeichnung fr den Eintrag zu vergeben, und mit Kommando und Argumente wird bestimmt, welches Programm mit welchen Parametern aufgerufen werden soll.

9.4 Das X Window System (X11)

295

Standardmig enthlt die Datei Eintrge, mit denen sichergestellt wird, dass die Skripte und Programme in den Verzeichnissen /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly tglich, wchentlich und ungefhr monatlich ausgefhrt werden, vorausgesetzt der Rechner wird oft genug eingeschaltet. Aus diesem Grund haben die Eintrge in der Datei /etc/crontab das folgende Format: 25 6 * * * root test -e /usr/sbin/anacron || run-parts - -report /etc/cron.daily Die test-Anweisung bewirkt, dass die Programme in /etc/cron.daily nur dann ausgefhrt werden, wenn anacron nicht installiert ist. Ansonsten wrden cron und anacron nmlich beide versuchen, die Auftrge auszufhren. Sie sollten andere Anweisungen in der Datei /etc/crontab bzw. in Dateien unterhalb des Verzeichnisses /etc/cron.d ebenfalls durch eine solche Anweisung schtzen, falls die Auftrge von anacron ausgefhrt werden sollen. Das Programm wird whrend des Systemstarts ber die Datei /etc/init.d/anacron gestartet und beendet sich, nachdem es alle Programme und Skripte aufgerufen hat, die berfllig waren. Dies ist der Grund fr die zustzliche Aktivitt des Rechners nach dem Systemstart, welche zu beobachten ist, wenn das Paket installiert ist. Weitere Informationen zu anacron nden Sie im Verzeichnis /usr/share/doc/anacron sowie in der Manualseite zu dem Programm. 9.3.5 Der at-Dmon Ein Verwandter des cron-Dmons ist der at-Dmon atd. Der Unterschied besteht darin, dass der at-Dmon einmalige in der Zukunft liegende Auftrge ausfhrt. Beispielsweise lsst sich ein umfangreiches, den Rechner hoch belastendes Rechenprogramm freitags abends um 22:15 Uhr starten, ohne dass der Benutzer eingeloggt ist. Er braucht nur zu einer bequemen Tageszeit das at-Kommando aufzurufen und ihm seine Wnsche zu bergeben, den Rest erledigt der Dmon: joe@debian:~$ at 2215 today /home/myhome/wichtiges.projekt/sehr.lange.rechnung ST R G-D Einzelheiten auf den Manualseiten zu at und atd. Das Kommando versteht eine Vielfalt von Zeitangaben, darunter teatime.

9.4 Das X Window System (X11)


9.4.1 Einleitung Das X Window System (kurz X11 oder X, als Release 6 auch X11R6) stellt die Grundlage fr grasche Benutzeroberchen unter Linux/UNIX dar. In einem wesentlichen Punkt unterscheidet es sich von graschen Oberchen, die Sie vielleicht von MS-Windows oder dem Macintosh her kennen: Es ist netzfhig. Unter X11 wird

296

9 Konguration wichtiger Systemkomponenten

ein Netzprotokoll das X-Protokoll benutzt, ber das Anwendungen einem Server mitteilen, wie Fenster und andere Dinge auf dem Bildschirm dargestellt werden sollen. Im Gegenzug teilt der Server der Anwendung mit, wenn vom Benutzer Aktionen wie Mausbewegungen oder Tastenanschlge ausgefhrt worden sind. Dadurch macht es aus Sicht des Benutzers prinzipiell keinen Unterschied, ob eine Anwendung auf demselben Rechner ausgefhrt wird, von dem aus sie auch benutzt wird, oder auf einem anderen Rechner, der vielleicht mehr Rechenleistung hat. Der lokale Rechner bernimmt dann lediglich die Darstellung der Fenster und die Weitergabe von Benutzereingaben (Tastatur- und Mausereignissen). Das X Window System wurde um 1987 am Massachusetts Institute of Technology (MIT) entwickelt. Damals war bezahlbare Hardware noch nicht leistungsfhig genug fr diesen Brocken Software, aber heute ist das kein Thema mehr. X-Server und X-Klientprogramme Der X-Server ist verantwortlich fr die Darstellung auf dem Bildschirm und fr die Entgegennahme von Eingaben. Er ist auf dem Rechner zuhause, vor dem der Benutzer sitzt. Das luft der blichen Vorstellung von Servern als dicken Maschinen fernab im Netz zuwider. Auf der anderen Seite stehen die Anwendungen, die X-Klienten, die ber das X-Protokoll mit dem X-Server kommunizieren und diesen beispielsweise anweisen, Fenster auf dem Bildschirm zu ffnen, oder von ihm die Mitteilung erhalten, dass der Benutzer eine Taste gedrckt hat. Natrlich und das ist bei Einzelsystemen immer der Fall knnen sich X-Server und X-Klienten auch auf demselben Rechner benden. Oft laufen sogar einige Klienten lokal, andere irgendwo im Netz, nur der Server ist an den Arbeitsplatz des Benutzers gebunden. Window-Manager Eine weitere Besonderheit besteht in der Aufgabentrennung zwischen X-Server und Window-Managern: Whrend der X-Server nur fr die Darstellung der Fenster und ihrer Inhalte auf dem Bildschirm verantwortlich ist, kmmert sich der WindowManager um das Erscheinungsbild der Fenster. Der Window-Manager ist verantwortlich fr einheitliche Rahmen und Kontrollleisten jedes Fensters, fr Fenstern zugeordnete Schaltchen wie den Knpfen zum Minimieren und Maximieren, aber auch fr das Umschalten von einem Fenster zum nchsten oder fr die Verbindung von bestimmten Geruschen mit Ereignissen. Darber hinaus bieten Window-Manager weitere Mglichkeiten wie die Darstellung von System-Mens oder einer Taskbar, ber die zwischen Anwendungen hin- und hergeschaltet werden kann. Weil WindowManager ebenfalls X-Anwendungen sind, knnen sie auf einem anderen Rechner als dem Arbeitsplatzrechner ausgefhrt werden. Damit wren dann drei Rechner im Spiel: der X-Server am Arbeitsplatz, der Window-Manager im Netz und die Anwendung auf einem weiteren Rechner im Netz. Auf einem X-Server kann nur ein Window-Manager zu einem Zeitpunkt das Sagen haben. Es ist jedoch mglich, verschiedene Window-Manager zu installieren und nach Lust und Laune zwischen diesen zu wechseln. Aber man gewhnt sich meist an einen Window-Manager und bleibt ihm treu.

9.4 Das X Window System (X11)

297

Arbeitsplatzumgebungen Eine weitere Ebene oberhalb von Bildschirm und Fenstern (Desktop) stellen Arbeitsplatzumgebungen wie GNOME oder KDE dar. Hierbei handelt es sich um Sammlungen von Programmen, die auf einheitlichen Bibliotheken beruhen. Diese Programme erscheinen alle mit dem gleichen Look and Feel, wodurch eine homogene Gesamterscheinung des Arbeitsplatzes und aller Anwendungen erreicht wird. Zu den Arbeitsplatzumgebungen gehren Datei-Manager, die in der Lage sind, Icons2 auf dem Bildschirm darzustellen. Auerdem bieten die Umgebungen Hilfsprogramme, die das Finden und Starten von Programmen erleichtern und bestimmten Dateitypen bestimmte Programmen zuordnen, wodurch mit dem Anklicken einer Datei gleich das hoffentlich richtige Programm zum Anzeigen oder Bearbeiten gestartet wird. Bestandteil solcher Umgebungen ist normalerweise auch ein an die Umgebung angepasster Window-Manager. Im Gegensatz zu Window-Managern knnen Programme, die zu unterschiedlichen Arbeitsplatzumgebungen gehren, gleichzeitig und nebeneinander betrieben werden. Voraussetzung hierfr ist lediglich, dass die bentigten Komponenten der Umgebungen auf dem System installiert sind. Es kann dabei allerdings vorkommen, dass die Anwendungen nicht richtig miteinander kommunizieren, sodass ein Programm einer Arbeitsplatzumgebung beispielsweise nichts damit anfangen kann, wenn mit der Maus ein Objekt aus einem Programm einer anderen Arbeitsplatzumgebung auf dieses Programm gezogen wird. In der Regel bleibt man in einer Sitzung bei einer Arbeitsplatzumgebung. Display-Manager Eine dritte Programmgruppe stellen die Display-Manager dar. Hierbei handelt es sich um Programme, die gestartet werden, bevor sich Benutzer an dem System anmelden. Sie starten den X-Server und stellen auf diesem ein Fenster dar, das die Anmeldung an das System erlaubt. Nach erfolgreicher Anmeldung starten sie meist einen Window-Manager. Durch den Einsatz eines Display-Managers kann auf die Anmeldung an der Textkonsole verzichtet werden: Das System schaltet nach seinem Start sofort in den graschen Modus, in dem sich Benutzer anmelden und ihren Window-Manager starten. Darber hinaus ermglicht das Protokoll XDMCP (X Display Manager Control Protocol) die Verwendung eines Display-Managers, der auf einem anderen Rechner luft, wodurch auf einem Arbeitsplatzrechner lediglich ein X-Server bentigt wird und die Benutzerauthentizierung sowie alle Anwendungen inklusive Window-Manager auf einem anderen Rechner ausgefhrt werden knnen. X11 ist ein offener Standard, der auf vielen Betriebssystemen der Linux/UNIXFamilie und weiteren zur Verfgung steht. Daraus ergibt sich der Vorteil, dass Anwendungen, die auf anderen Linux/UNIXen ausgefhrt werden, auch von einem Debian-System aus benutzt werden knnen, eine Netzverbindung zwischen den

Das sind Bildchen, durch deren Anklicken Programme gestartet werden.

298

9 Konguration wichtiger Systemkomponenten

Rechnern vorausgesetzt. Darber hinaus sind X-Server fr fast alle modernen Betriebssysteme erhltlich, sodass auch von einem MS-Windows-Rechner oder Macintosh aus mit Anwendungen gearbeitet werden kann, die auf einem Linux/UNIXRechner ausgefhrt werden. X-Implementierungen Debian GNU/Linux wird standardmig mit der freien X-Implementierung XFree86 ausgeliefert. Diese untersttzt eine breite Palette handelsblicher Grakkarten, leider jedoch nicht jede. Es gibt eine Reihe unterschiedlicher X-Server, die jeweils fr die Untersttzung bestimmter Grakkarten geeignet sind. Soll auf einem Rechner ein X-Server installiert werden, so muss dieser in Abhngigkeit von der in dem Rechner vorhandenen Grakkarte ausgewhlt werden. Neben XFree86 gibt es einige kommerzielle X-Implementierungen, z. B. von der Firma XIGraphics (http://www. xig.com/) oder von der Firma Metrolink (http://www.metrolink.com/). Die Konguration von X11 ist etwas aufwendig. Ein Grund ist, dass die X-Server direkt mit der Hardware kommunizieren. So muss whrend der Konguration angegeben werden, was fr eine Grakkarte, Maus und Tastatur benutzt wird. Fehler uern sich meist darin, dass der Rechner im Grakmodus hngt und nur noch per Kommandozeile zu steuern ist. 9.4.2 Konguration von X11 mit anXious Das Programm anXious aus dem Paket xviddetect ist ein Werkzeug zum Erstellen und Kongurieren einer einfachen XFree86-Installation. Bewhrte Alternativen sind die Programme XF86Setup oder xf86cong, ab Seite 299 beschrieben. anXious versucht selbststndig herauszunden, welche Schritte notwendig sind, um die Konguration zu vervollstndigen. Falls der Kongurationsprozess komplett neu gestartet werden soll, ist das Programm folgendermaen aufzurufen: debian:~# anXious - -forceconfig - -forcesetup Weitere Parameter werden angezeigt, wenn Sie das Programm mit der Option - -help aufrufen. Falls das Programm feststellt, dass X11 auf Ihrem Rechner bereits konguriert ist, fragt es, ob die bestehende Konguration berschrieben werden soll. Danach erscheint der in Abbildung 9.2 gezeigte Bildschirm, in dem sich das Programm erkundigt, ob es herausnden soll, welche Grakkarte in den Rechner eingebaut ist. Sie sollten diese Frage mit Yes beantworten. Falls das Programm die Karte nicht identizieren kann, teilt es dieses mit und beendet sich. Wenn die Karte identiziert wurde, mssen Sie einige Fragen beantworten. Nacheinander wird gefragt, welche Pakete mit Schriftarten (Fonts), welche TerminalEmulationsprogramme und welche Window-Manager installiert werden sollen. Danach kann angegeben werden, ob der Display-Manager xdm installiert werden soll. Im nchsten Schritt wird die Kongurationsdatei /etc/X11/XF86Cong erzeugt. Dazu mssen die im folgenden genannten Angaben gemacht werden. Es handelt sich hierbei im wesentlichen um dieselben Informationen, die auch von den Programmen XF86Setup (Seite 304) und xf86cong (Seite 313) erfragt werden:

9.4 Das X Window System (X11)

299

Abbildung 9.2. Einrichtung von X11 mit anXious

Typ der Maus, ob die mittlere Maustaste durch Bettigung der linken und rechten Maustaste gleichzeitig emuliert werden soll (Emulate3Bottons) sowie der Name der Gertedatei, durch welche die Maus reprsentiert wird. Art und Layout der Tastatur. Horizontaler und vertikaler Frequenzbereich des Bildschirms sowie seine Bezeichnung. Die Frequenzen mssen unbedingt mit den tatschlichen Eigenschaften des Bildschirms bereinstimmen! Menge des Grakspeichers auf der Videokarte sowie Bezeichnung der Videokarte. Typ des Clockchips (normalerweise none) und ob Clock-Probing durchgefhrt werden soll (normalerweise nicht). Standard-Farbtiefe und Standard-Auflsung sowie weitere Auflsungen. Zu Schluss muss besttigt werden, dass die neue Konguration tatschlich nach /etc/X11/XF86Cong geschrieben werden soll. Danach erzeugt das Programm die Kongurationsdatei und whlt alle notwendigen Pakete zur Installation aus. Um die Pakete zu installieren, sollte dem Hinweis des Programms gefolgt und dieses Kommando benutzt werden: debian:~# apt-get dselect-upgrade 9.4.3 Welche Pakete werden bentigt? Prinzipiell lassen sich drei Installationsarten unterscheiden: Alleinstehender Rechner Die Anwendungen werden auf dem Rechner ausgefhrt, von dem aus sie auch benutzt werden. Dazu mssen sowohl ein geeigneter XServer als auch die bentigten Anwendungen inklusive Window-Manager etc.

300

9 Konguration wichtiger Systemkomponenten

installiert werden. Dies ist die Standardkonguration. Sie schliet die beiden anderen Mglichkeiten ein. X-Terminal Von dem Rechner aus sollen nur X-Anwendungen, die auf anderen Rechnern ausgefhrt werden, benutzt werden. Hier bedarf es nur des X-Servers und eventuell noch eines Display- und Window-Managers. X-Anwendungsserver Auf dem Rechner sollen X-Anwendungen ausgefhrt werden, die von anderen Rechnern (X-Terminals) aus benutzt werden. Es brauchen nur die Anwendungen inklusive der bentigten Infrastruktur, aber keine X-Server installiert zu werden. Die grundlegende Infrastruktur, die sowohl von X-Anwendungen als auch vom X-Server bentigt wird, bendet sich in dem Paket xfree86-common. Darber hinaus bentigen so gut wie alle X-Anwendungen die Bibliothek xlib6g, auch als XBibliothek bezeichnet. Wenn auf dem Rechner ein X-Server ausgefhrt werden soll, muss zustzlich das Paket xserver-common installiert werden, in welchem sich die Dateien benden, die von allen X-Servern bentigt werden. Auf alleinstehenden Rechnern, auf denen sowohl X-Anwendungen als auch ein X-Server ausgefhrt werden soll, mssen alle genannten Bestandteile installiert sein. Welches der richtige X-Server fr Ihr System ist, lsst sich mit dem Programm xviddetect aus dem gleichnamigen Paket feststellen. Das Programm ist folgendermaen aufzurufen: debian:~# xviddetect Daraufhin erscheint eine Ausgabe, die sinngem der folgenden entspricht:
The XFree86 server for S3 Inc. Vision 968 is s3

berprfen Sie, ob die ausgegebene Bezeichnung (in diesem Fall S3 Inc. Vision 968) mit der in Ihrem Rechner vorhandenen Grakkarte bereinstimmt. Wenn dies der Fall ist, sollte auch die Bezeichnung des bentigten X-Servers stimmen. Der Name des entsprechenden Debian-Pakets setzt sich aus der Zeichenkette xserver- sowie der Bezeichnung des Servers (hier s3) zusammen. Im Beispiel wre also das XServer-Paket xserver-s3 zu installieren. Falls xviddetect Ihre Grakkarte nicht identizieren kann, knnen Sie unter der Internet-Adresse http://www.xfree86. org/support.html nachsehen, welcher X-Server fr Ihre Karte zustndig ist. Alternativ nden Sie diese Information im Hardware-HOWTO (siehe Seite 19). Um die eigentlichen Basiskomponenten herum gibt es eine Reihe von Paketen, die zu einer normalen X-Installation gehren und teilweise zwingend bentigt werden, sofern der Rechner alleinstehend betrieben wird. Ein Beispiel hierfr sind Schriftdateien (Fonts): Diese werden zur Darstellung von Text auf der graschen Oberche bentigt. Allerdings kann in Netzumgebungen auch ein X-Fontserver (z. B. xfs) eingesetzt werden, sodass sich die Fonts nicht auf demselben Rechner wie der X-Server benden mssen. Fr eine alleinstehende X-Installation, bei der X-Server und Anwendungen vorhanden sind, sollten Sie mit dselect oder apt-get mindestens die folgenden Pakete installieren:

9.4 Das X Window System (X11)

301

xfree86-common Dieses Paket stellt die Infrastruktur bereit, die sowohl vom XServer als auch von X-Anwendungen bentigt wird. xlib6g Bibliothek, ber die X-Anwendungen mit dem X-Server kommunizieren. xserver-common Dateien, die von allen X-Servern bentigt werden. xserver-??? Der zu Ihrer Grakkarte passende X-Server. Die entsprechenden Pakete tragen Namen wie xserver-s3 fr Grakkarten, die mit einem S3-Chip ausgerstet sind, oder xserver-svga fr Super-VGA-Grakkarten. In den Paketbeschreibungen der einzelnen X-Server nden Sie Informationen darber, fr welche Grakkarten die jeweiligen Server geeignet sind. Wenn Sie sich nicht sicher sind, sollten Sie alle in Frage kommenden X-Server installieren. Nach der Konguration knnen die nicht bentigten Server entfernt werden. Den X-Server xserver-vga16 sollten Sie in jedem Fall zustzlich installieren, da dieser bentigt wird, um das Kongurationsprogramm XF86Setup auszufhren. Dieser Server bietet die Mglichkeit, nahezu alle Grakkarten in einem eingeschrnkten graschen Modus zu betreiben, der fr die Einrichtung von X11 ausreicht. Schriftartendateien (Fonts) Es sollten die folgenden Pakete mit Schriftarten installiert werden: xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable und xfont-pex. Darber hinaus stehen weitere Pakete mit Fonts fr X11 bereit, die Sie aber nicht unbedingt bentigen, wie kyrillische Fonts. Window-Manager Zunchst reicht es aus, den etwas primitiven Window-Manager twm zu installieren. Wenn Sie X11 fertig konguriert haben, knnen Sie dann einen anderen Window-Manager nachinstallieren und twm entfernen. xbase-clients In diesem Paket benden sich Zubehr-Programme von XFree86. Dazu gehren ein einfacher Texteditor, ein Bitmapeditor, Werkzeuge zur Feineinstellung des X-Servers, aber auch Programme, mit denen der X-Server von der Kommandozeile aus gestartet werden kann. xf86setup Ein Programm zur Konguration von X11. Das Programm bentigt zwingend den VGA16-Server xserver-vga16. xterm Mit diesem Terminal-Emulationsprogramm knnen Sie textbasierte Anwendungen in einem Fenster unter X11 laufen lassen. Die wichtigste Anwendung des Programms xterm besteht darin, auch unter X11 eine Shell (die ja ebenfalls eine textbasierte Anwendung ist) zu benutzen. Zu xterm gibt es mittlerweile einige (teilweise hbschere, teilweise auch funktionalere) Alternativen, die Sie spter ebenfalls installieren knnen. Dazu gehren die Programme konsole, das zu KDE gehrt, oder gnome-terminal, das Teil von GNOME ist. Unter Umstnden wollen Sie noch das Paket xdm installieren. Hierbei handelt es sich um den standardmigen Display-Manager von XFree86, also das Programm, das es ermglicht, X11 nach dem Start des Rechners automatisch zu starten und Benutzern einen graschen Begrungsbildschirm zu prsentieren. Es stehen weitere Display-Manager zur Verfgung, sodass Sie spter einen anderen Display-Manager installieren knnen, der besser zu Ihrem Window-Manager passt. So kommt etwa die Arbeitsplatzumgebung GNOME mit einem eigenen Display-Manager, der optisch an diese Umgebung angepasst ist und so ein einheitliches Look and Feel von Anfang bis Ende einer Sitzung bietet.

302

9 Konguration wichtiger Systemkomponenten

9.4.4 Installation der Pakete Sie whlen die bentigten Pakete mit dselect oder einem anderen Programm zur interaktiven Paketverwaltung aus. Alternativ knnen Sie das Task-Paket (siehe Kap. 7.3) task-x-window-system installieren, wodurch eine grundlegende Ausstattung an Software fr X11 installiert wird. Damit gleich der richtige X-Server fr Ihre Grakkarte installiert wird, sollten Sie diesen zusammen mit task-x-window-system installieren. Angenommen, fr Ihre Hardware msste der S3-Server benutzt werden, so wrde die Software mit dem folgenden Kommando installiert: debian:~# apt-get install xserver-vga16 xserver-s3 Der VGA16-Server wurde hier mitinstalliert, damit es mglich ist, das Programm XF86Setup zur Konguration zu benutzen. Als Alternative zu task-x-window-system steht das Task-Paket task-x-windowsystem-core zur Verfgung. Mit diesem Paket werden lediglich X-Server und die Infrastruktur zum Ausfhren von X-basierten Programmen installiert, jedoch kein Window-Manager und kein Terminal-Emulator. Das Paket eignet sich zur Verwendung mit Arbeitsplatzumgebungen wie KDE oder GNOME, die eigene WindowManager und Terminal-Emulationsprogramme mitbringen. Whrend der Installation der Pakete erfolgt unter Umstnden die Frage, ob Sie einen bestimmten X-Server als Standard-X-Server kongurieren mchten: Do you want to make the S3 X server the default instead? (y/n) Diese Frage beantworten Sie bei dem X-Server fr Ihre Hardware mit Y. Falls X11 noch nicht konguriert wurde, erfolgt nach der Installation jedes X-Servers die Frage, ob sofort eine Kongurationsdatei erstellt werden soll: Do you want to create the XFree86 configuration file? (y/n) [y] Wir empfehlen, diese Frage zu verneinen und die Konguration nach der Installation so durchzufhren, wie es nachfolgend beschrieben ist. Zur Konguration des X-Servers stehen neben anXious zwei Programme bereit: Zum einen das grasche Programm XF86Setup, zum anderen das Programm xf86cong, mit dem eine Kongurationsdatei durch Beantwortung von Fragen an der Textkonsole erstellt wird. Die Benutzung von xf86cong ist weniger komfortabel als die Arbeit mit XF86Setup, allerdings werden von xf86cong Kongurationsdateien erzeugt, die sich spter leichter anpassen lassen und die mehr Flexibilitt bieten. Unabhngig davon, mit welchem der beiden Programme Sie den X-Server kongurieren, sollten Sie vorher wissen, welche Grakkarte mit welchem Chipsatz sich in Ihrem Rechner bendet und mit wieviel Speicher diese ausgestattet ist. Neben den Eigenschaften der Grakkarte mssen Sie die horizontale und vertikale Ablenkungsfrequenzen Ihres Bildschirms kennen. Dabei handelt es sich um Frequenzbereiche, die horizontal im Kilohertzbereich und vertikal im Hertzbereich liegen.

9.4 Das X Window System (X11)

303

9.4.5 Identizieren der Grakkarte mit SuperProbe Das Programm SuperProbe fhrt verschiedene Tests durch, um den Chipsatz auf der Grakkarte zu bestimmen. Daneben kann es Auskunft ber den RAMDAC (Random Access Memory Digital to Analog Converter, Baustein, der das Ausgangssignal fr den Bildschirm erzeugt) auf der Karte und die Menge des Grakspeichers geben. Achtung: SuperProbe funktioniert zwar in den meisten Fllen problemlos, allerdings kann die Identikation der Grakkarte im schlimmsten Fall auch zu einem Systemstillstand fhren. Das Programm testet nmlich verschiedene Hardwareadressen, die in ungnstigen Situationen bereits von anderen Gerten belegt sind, welche die an sie gesandten Kommandos oder Tests zur Identikation falsch interpretieren und das System zum Stillstand bringen. Sie sollten keine Programme mit ungesicherten Daten ausfhren, wenn Sie SuperProbe aufrufen. Auerdem sollte vor dem Aufruf des Programms sichergestellt werden, dass Festplatteninhalte, die noch nicht geschrieben wurden, tatschlich auf die Festplatte geschrieben werden, damit das Dateisystem nach einem Neustart in einem konsistenten Zustand ist. Dazu geben Sie vor dem Aufruf von SuperProbe folgendes Kommando ein: debian:~# sync Es sollte kein X-Server ausgefhrt werden, wenn Sie SuperProbe aufrufen, und auch andere Software, die direkt auf die Grakkarte zugreift, sollte beendet werden. Nachdem diese Bedingungen sichergestellt sind, rufen Sie SuperProbe auf: debian:~# SuperProbe Das Programm warnt und wartet 5 Sekunden, um Ihnen die Mglichkeit zu geben, es abzubrechen. Wenn Sie abbrechen wollen, bettigen Sie die Tastenkombination S TRG - C. Anderenfalls wird nach der Karte gesucht, und Sie sollten nach kurzer Zeit eine Ausgabe erhalten, die sinngem wie die folgende aussieht:
First video: Super-VGA Chipset: S3 Vision968 (PCI Probed) Memory: 2048 Kbytes RAMDAC: TI ViewPoint3026 24-bit TrueColor DAC w/cursor,pixel-mux,clock (with 6-bit wide lookup tables (or in 6-bit mode)) (programmable for 6/8-bit wide lookup tables)

Notieren Sie sich die genaue Bezeichnung des Chipsatzes (Chipset), die Gre des auf der Grakkarte bendlichen Speichers (Memory) sowie die Bezeichnung des RAMDAC (hier reicht es aus, die Information in der ersten Zeile zu notieren). Falls Ihr Rechner hngen bleibt oder SuperProbe Ihnen die Ausgabe Generic VGA (or unknown SVGA) gibt, mssen Sie die bentigten Informationen aus dem Handbuch Ihrer Grakkarte beziehen.

304

9 Konguration wichtiger Systemkomponenten

9.4.6 Konguration des X-Servers mit XF86Setup Das Programm XF86Setup ermglicht die komfortable Konguration von X11 ber ein Programm, das selbst eine X-Anwendung ist und deswegen mit Hilfe des VGA16-X-Servers ausgefhrt wird. X und gpm Wenn Sie das Programm gpm (siehe Kapitel 9.1) verwenden und bei diesem nicht die Repeater-Funktion aktiviert ist, sollten Sie es stoppen, bevor Sie mit der Konguration von X11 beginnen. XFree86 und gpm wrden sonst zugleich auf die Maus zuzugreifen, was in einigen Fllen dazu fhrt, dass sie nicht mehr benutzt werden kann. Um gpm zu beenden, geben Sie folgendes Kommando ein: debian:~# /etc/init.d/gpm stop Start von XF86Setup Um das XF86Setup zu starten, geben Sie folgendes Kommando ein: debian:~# XF86Setup Wenn auf Ihrem Rechner das Paket dialog installiert ist, erfolgen alle weiteren Fragen und Mitteilungen im Textmodus in der Form, wie Sie sie schon von der Einrichtung des Basissystems und vom Programm modconf her kennen. Ansonsten werden Fragen und Mitteilungen im gewhnlichen Textmodus ausgegeben. Falls bereits eine Kongurationsdatei fr X11 vorhanden ist, werden Sie gefragt, ob die bestehende Kongurationsdatei verwendet werden soll, um aus ihr Vorgabewerte zu entnehmen. Dies sollten Sie mit Y beantworten. Sie knnen das Programm spter auch direkt unter X11 aufrufen, um die Konguration zu verndern. Hierzu wird der VGA16-Server nicht mehr bentigt, da es in diesem Fall ja bereits ein funktionierendes X11-System gibt. XF86Cong bemerkt eine solche Situation und fragt, ob X11 nachkonguriert werden soll. Die Frage ist zu bejahen. Dann werden Sie aufgefordert, die E INGABE-Taste zu bettigen, um in den graschen Modus zu schalten. Das System sollte auf Grak schalten und Sie mit dem in Abbildung 9.3 dargestellten Bildschirm begren. Das Programm XF86Setup ist in Bereiche eingeteilt, die es Ihnen ermglichen, verschiedene Aspekte von X11 zu kongurieren. Die Bereiche whlen Sie aus, indem Sie entweder mit der Maus eine der Schaltchen am oberen Bildschirmrand anklicken oder den jeweils unterstrichenen Buchstaben auf der gewnschten Schaltche gemeinsam mit der S TRG-Taste bettigen. Sie sollten mit der Konguration der Maus beginnen, damit Sie diese zur weiteren Benutzung des Programms heranziehen knnen.

9.4 Das X Window System (X11)

305

Abbildung 9.3. Hauptbildschirm von XF86Setup

Konguration der Maus Nach dem Start des Programms mssen Sie E INGABE oder S TRG - M drcken, um die Maus zu kongurieren. Es erscheint ein Hilfefenster, in dem die verfgbaren Tastaturbefehle whrend dieses Schritts erklrt werden. Bettigen Sie die TAB-Taste, um den Text in diesem Fenster mit den Pfeiltasten auf- und abwrts bewegen zu knnen. Nach nochmaliger Bettigung der TAB-Taste ist wieder das Schaltfeld Dismiss aktiv, und Sie beenden das Hilfefenster durch Bettigung der E INGABE-Taste. Danach knnen Sie die Hilfe jederzeit durch Bettigung der Tastenkombination S TRG - H wieder aufrufen. Nun knnen Sie durch Bettigung der Taste P den Typ (gemeint ist das Protokoll, mit dem Maus und X-Server miteinander kommunizieren) Ihrer Maus festlegen. Bettigen Sie die Taste so lange, bis der richtige Typ hervorgehoben ist. Wenn Sie sich nicht sicher sind, vergleichen Sie mit Tabelle 9.2 auf Seite 276. Achtung: Falls Sie gpm im Repeater-Modus verwenden, mssen Sie hier den von gpm emulierten Maustyp angeben. blicherweise ist dies MouseSystems. Danach teilen Sie X11 mit, durch welche Gertedatei Ihre Maus reprsentiert wird. Die fr Muse in Frage kommenden Anschlsse sind in Tabelle 9.1 auf Seite 276 aufgefhrt. Drcken Sie die Taste N, um zu dem entsprechenden Eingabefeld zu gelangen. Daraufhin knnen Sie entweder den Namen der entsprechenden Gertedatei eingeben (lschen Sie die Vorgabe mit Z URCK) oder mit den Pfeiltasten eine

306

9 Konguration wichtiger Systemkomponenten

Gertedatei aus der Liste auswhlen. Bei Verwendung von gpm im Repeater-Modus geben Sie hier /dev/gpmdata an. Testen Sie dann die Maus. Dazu drcken Sie die Taste A fr Apply. Eventuell mssen Sie das Eingabefeld fr die Gertedatei vorher mit TAB verlassen. Wenn alles gut geht, sollten Sie den Mauszeiger dann bewegen knnen. Testen Sie auch, ob alle Tasten der Maus richtig erkannt werden: Bewegen Sie den Mauszeiger dazu auf das Testfeld (die weie Flche) und drcken Sie hintereinander die linke, die mittlere und die rechte Maustaste. Es sollten die entsprechenden Felder auf dem Testfeld reagieren. Falls Ihre Maus nur zwei Tasten besitzt, sollten Sie die Option Emulate3Buttons aktivieren. Danach (Apply oder A nicht vergessen) knnen Sie die Funktionalitt der dritten Maustaste durch gleichzeitiges Drcken von linker und rechter Taste erreichen. Weiter gibt es einige Muse, die beim Bettigen der mittleren Maustaste die Information an den Rechner senden, es seien linke und rechte Taste gleichzeitig gedrckt worden. Bei diesen Musen kann die Option ChordMiddle benutzt werden, um mit der mittleren Maustaste normal arbeiten zu knnen. Falls Sie die Maus nach dem ersten Versuch nicht verwenden knnen, berprfen Sie nochmals Maustyp und Gertedatei und versuchen Sie es erneut. Unter Umstnden mssen Sie auch die Baudrate durch Bettigung der Taste B verndern. Bei MouseSystems-Musen mssen Sie mglicherweise die Optionen ClearDTR und ClearRTS setzen, um die Maus in den MouseSystems-Modus zu schalten. Diese Optionen schalten Sie mit den Tasten D bzw. R ein- und aus. Wenn die Maus prinzipiell ansprechbar ist, knnen Sie verschiedene Feineinstellungen wie die Sampling-Rate oder die Latenzzeit fr die emulierte dritte Maustaste einstellen. Die Vorgaben sind in der Regel angemessen. Konguration der Tastatur Klicken Sie mit der Maus auf die Schaltche Keyboard, um die Tastatur zu kongurieren. Whlen Sie dann aus der Liste unter Model die richtige Tastatur aus (durch Klicken auf den Pfeil erscheint die Liste). Im deutschsprachigen Raum blicherweise verwendete Tastaturen sind internationale 102-Tasten-Modelle (Generic 102-key (Intl) PC) oder 104-Tasten-Modelle (Generic 104-key PC). Danach whlen Sie das Sprachlayout Ihrer Tastatur in der darunterliegenden Liste, also german oder swissgerman, in Programmiererkreisen oft us-english. Zustzlich besteht die Mglichkeit, unter Variant die Option Eliminate dead keys auszuwhlen. Tote Tasten zeigen erst dann eine Wirkung, wenn nach ihrer Bettigung eine weitere Taste bettigt wird (eine Akzent-Taste und dann eine Buchstabentaste). Die Optionen auf der rechten Seite knnen Sie erst einmal bei den Voreinstellungen belassen. Bettigen Sie die Schaltche Apply, bevor Sie fortfahren. Konguration der Grakkarte Nachdem Sie die Schaltche Card angeklickt oder S TRG - K gedrckt haben, erscheint eine Liste verschiedener Grakkarten und Chipstze. Im einfachsten Fall

9.4 Das X Window System (X11)

307

reicht es hier aus, die verwendete Grakkarte auszuwhlen und danach die Schaltche Detailed Setup zu bettigen. Wenn Sie Ihre Grakkarte nicht in der Liste nden, sollten Sie untersuchen, ob der Chipsatz der Karte in der Liste vorkommt und diesen auswhlen. Den Chipsatzbezeichnungen ist oft der Hersteller vorangestellt, sodass Sie unter Umstnden unter der Herstellerbezeichnung suchen mssen. Eine Karte oder einen Chipsatz mit einer hnlichen Bezeichnung wie der Ihrer Karte/Ihres Chipsatzes sollten Sie nur dann auswhlen, wenn Sie genau wissen, dass beide Karten/Chipstze die gleichen Eigenschaften haben. Unter Umstnden erklingt nach der Kartenauswahl ein Warnton, und im unteren Teil des Bildschirms erscheint die Meldung, dass der richtige X-Server nicht installiert sei. Tun Sie in diesem Fall, was das Programm Ihnen empehlt: Notieren Sie sich den Namen des bentigten X-Servers, klicken Sie auf Abort und installieren Sie den Server. Falls weder Grakkarte noch Chipsatz in der Liste vorkommen, mssen Sie in den sauren Apfel beien und zunchst versuchen, anhand der mitgelieferten Dokumentation herauszunden, ob Ihre Grakkarte berhaupt untersttzt wird. Im Verzeichnis /usr/share/doc/xserver-common benden sich ausfhrliche Beschreibungen zu allen mit XFree86 verfgbaren X-Servern, und die Datei /usr/share/doc/xservercommon/README.gz enthlt eine Liste aller von XFree86 untersttzten Chipsatztypen. Darber hinaus knnen Sie sich auf den Web-Seiten von XFree86 unter http://www.xfree86.org/ ber den aktuellen Stand der Entwicklung informieren und eventuell zustzliche Informationen ber die Zusammenarbeit von XFree86 mit Ihrer Grakkarte erhalten oder einen neueren X-Server herunterladen. Wenn Sie genau wissen, dass Ihre Grakkarte mit einem bestimmten X-Server funktioniert und Sie diesen X-Server bereits installiert haben, dann whlen Sie jetzt Detailled Setup. Danach knnen Sie den Server auch manuell auswhlen. Sollte Ihre Grakkarte jedoch tatschlich nicht untersttzt werden, so mssen Sie generic VGA compatible auswhlen. Damit knnen Sie X11 zwar benutzen, allerdings in einer schlechten Auflsung. Ihnen bleibt dann nichts anderes brig, als auf die Untersttzung Ihrer Karte durch XFree86 zu warten, einen kommerziellen X-Server einzusetzen oder eine andere Grakkarte zu beschaffen. Gelegentlich gibt es noch einen Ausweg: Immer mehr Karten knnen direkt vom Linux-Kern angesprochen werden, der ein Framebuffer-Device zur Verfgung stellt (Seite 409), auf das ein spezieller X-Server, der Framebuffer-Server (Paket: xserverfbdev), zugreifen kann. Auf diese Weise lsst sich auch manche Grakkarte, die von XFree86 nicht untersttzt wird, in einer hheren Auflsung betreiben als mit dem Standard-VGA16 Server. Lesen Sie dazu das Vesafb-Mini-HOWTO (Dateiname /usr/share/doc/HOWTO/en-txt/mini/Vesafb.txt.gz, Paket doc-linux-text). Nach Anklicken der Schaltche Detailed Setup besteht die Mglichkeit, manuell Auswahl und Einstellungen des X-Servers vorzunehmen. Im oberen Bereich des Fensters knnen Sie den gewnschten X-Server auswhlen (hier sollte nach vorheriger Auswahl einer Karte bereits der richtige Server eingetragen sein). Darber hinaus knnen Sie Chipsatz, RAMDAC und Clockchip Ihrer Karte manuell auswhlen. Dies ist selten notwendig. Auerdem kann die Gre des Grakspeichers auf der Karte angegeben werden.

308

9 Konguration wichtiger Systemkomponenten

Im allgemeinen sollten Sie nach Auswahl der richtigen Grakkarte bzw. des Chipsatzes die Voreinstellungen bernehmen und erst spter, falls irgendetwas nicht zufriedenstellend funktioniert, Anpassungen vornehmen. Bei einigen Karten nden Sie in dem weien Feld in der Mitte des Bildschirms bereits Hinweise, welche Optionen Sie benutzen sollten, falls es zu Problemen kommt. Konguration des Bildschirms Nachdem Sie auf die Schaltche Monitor geklickt haben, gibt es zwei Mglichkeiten zur Konguration des Bildschirms: 1. Sie geben die horizontalen und vertikalen Frequenzbereiche, mit denen Ihr Bildschirm arbeiten kann, in den beiden entsprechenden Eingabefeldern im oberen Teil des Fensters von Hand ein. Dabei knnen Sie entweder Bereiche in der Form 31.5-82.0 oder einzelne, durch Kommata getrennte Werte in der Form 31.5,35.5 eingeben. Es sind auch Kombinationen mglich. Nachkommaziffern werden durch einen Punkt, nicht durch ein Komma getrennt. 2. Sie whlen einen vordenierten Bildschirmtyp aus. Dies ist die einfachere Methode. Achtung: Halten Sie sich bei diesen Angaben genau an die Dokumentation Ihres Bildschirms. Moderne Bildschirme schalten sich zwar automatisch ab, falls sie mit falschen Frequenzen angesteuert werden, bei alten Modellen jedoch knnen falsche Werte den Bildschirm zerstren. Auswahl der Darstellungsmodi Nach der Konguration des Bildschirms legen Sie fest, mit welchen Auflsungen und Farbtiefen Sie den X-Server betreiben wollen. Klicken Sie hierzu die Schaltche Modeselection an. Whlen Sie durch Anklicken die Auflsungen, die Sie in Zukunft benutzen wollen. Sie knnen dann spter, whrend des Betriebs von X11, zwischen den ausgewhlten Auflsungen umschalten, sofern Ihre Hardware dies untersttzt. Voraussetzung dafr, dass Sie eine gewhlte Auflsung auch benutzen knnen, ist gengend Grakspeicher. Der bentigte Grakspeicher berechnet sich aus der verwendeten Farbtiefe (also der Einstellung, wieviele Farben gleichzeitig angezeigt werden knnen) und der Auflsung. Falls Sie eine Auflsung von 1024x768 Punkten mit einer Farbtiefe von 32 Bit pro Pixel verwenden mchten, bentigen Sie dazu: (9.1) Bit, was 3072 KB oder 3 MB Grakspeicher entspricht. Eine solche Darstellung knnten Sie also mit einer 2 MB-Karte nicht verwenden. Moderne Karten verfgen ber weit mehr Speicher. Sie knnen auch unbliche Auflsungen (z. B. 1152x864) auswhlen. Hierbei verwendet XFree86 einen virtuellen Bildschirm, der grer ist als der angezeigte

9.4 Das X Window System (X11)

309

Bereich und sich mit der Maus verschieben lsst. Dadurch wird der verfgbare Arbeitsspeicher besser ausgenutzt, und auf dem Bildschirm steht eine grere Flche zur Verfgung. Neben dem verfgbaren Grakspeicher sollten Sie bei der Auswahl der Auflsung auch die Gre Ihres Bildschirms bercksichtigen. Eine Auflsung von 1280x1024 Punkten ist erst ab einer Bildschirmdiagonalen von 17 Zoll zu empfehlen. Im unteren Teil des Bildschirmes knnen Sie die Farbtiefe einstellen, mit der der X-Server standardmig starten soll. Fr den Anfang sind 16 Bit ein vernnftiger Wert. Weitere Einstellungen Wenn Sie die Schaltche Other anklicken, knnen Sie eine Reihe weiterer Einstellungen vornehmen. Normalerweise ist es sinnvoll, die Vorgaben zu bernehmen. Folgende Einstellungen knnen hier vorgenommen werden. Allow Server to be killed with hotkey-sequence (Ctrl-Alt-Backspace) Mit dieser Option ist es mglich, den X-Server zu fast jedem Zeitpunkt zu beenden. Dies kann ntzlich sein, falls bestimmte Programme aufgrund von Fehlern keine Eingabe mehr zulassen und deswegen nicht regulr beendet werden knnen, vor allem aber, falls der X-Server selbst so konguriert wurde, dass er den Bildschirm falsch ansteuert und dieser abschaltet. Zum Beenden des X-Servers wird dann die Tastenkombination S TRG-A LT-Z URCK benutzt. Allow video mode switching Hierdurch wird das Umschalten von einer Auflsung in eine andere ermglicht. Wenn Sie diese Option whlen, knnen Sie mit den Tastenkombinationen S TRG-A LT-+ und S TRG-A LT-- zwischen den verfgbaren Auflsungen hin- und herschalten. Dont Trap Signals Diese Option verhindert das ordnungsgeme Beenden des XServers im Falle eines unvorhergesehenen Ereignisses. Anstatt dessen beendet sich der Server dann sofort und erzeugt einen Core-Dump, mit dem Entwickler die Ursache des Fehlers herausnden knnen. Sie sollten die Option nicht verwenden. Allow video mode changes from other hosts Hiermit wird ermglicht, dass auch von anderen Rechnern im Netz die Auflsung des X-Servers verndert werden kann. Normalerweise ist das nicht erwnscht, manchmal jedoch notwendig, beispielsweise wenn Sie ein Programm auf einem anderen Rechner ausfhren, welches seine Ausgabe auf Ihrem X-Server vornimmt und diesen in einen bestimmten Video-Modus schalten muss. Allow changes to keyboard and mouse settings from other hosts Dasselbe gilt fr Maus- und Tastatureinstellungen. Normalerweise mchte man nicht, das diese von anderen Rechnern aus verndert werden knnen.

310

9 Konguration wichtiger Systemkomponenten

Abschluss der Konguration Nachdem Sie die Schaltche Done bettigt oder S TRG - D gedrckt haben, erscheint eine Mitteilung, dass Sie durch Anwhlen einer Kongurationskategorie mit der Konguration fortfahren oder sie durch Anklicken der Schaltche Okay beenden knnen. Wenn Sie Okay anklicken, wird der laufende X-Server beendet. Das Programm schaltet wieder in den Textmodus und versucht, den ausgewhlten X-Server mit den vorgenommenen Einstellungen zu starten. Achtung: Sollte sich Ihr Bildschirm hierbei abschalten oder etwas anderes passieren, was Ihnen irgendwie ungesund erscheint, drcken Sie sofort gleichzeitig die Tasten S TRG-A LT-Z URCK! Damit schieen Sie den X-Server ab und kehren in den Textmodus zurck. Im Falle eines Fehlers, oder wenn Sie den Server durch Drcken der Tasten S TRG-A LT-Z URCK beendet haben, versucht XF86Setup, wieder den VGA16Server zu starten, um Ihnen die Mglichkeit zu geben, die Konguration zu verbessern. Falls auch dies nicht gelingt, wird das Programm beendet. Sie knnen es dann erneut aufrufen, um eine andere Konguration (notfalls mit dem VGA16-Server als Standard-X-Server) festzulegen. Wenn alles gut geht, sollte sich das System jetzt wieder im graschen Modus benden, und zwar in der von Ihnen eingestellten Auflsung. Unter Umstnden mssen Sie Ihren Bildschirm nun noch so einstellen, dass das angezeigte Bild die verfgbare Flche des Bildschirms ausfllt. Probieren Sie dann, ob die Maus richtig funktioniert und ob Sie mit den Tastenkombinationen S TRG-A LT-+ und S TRG-A LT-- zwischen verschiedenen Auflsungen hin- und herschalten knnen.
Es besteht nun die Mglichkeit, das Programm xvidtune aufzurufen, mit dem Sie eine Feinjustierung der Ansteuerung der Grakkarte durchfhren knnen. Weil das Programm bei fehlenden Kenntnissen nicht einfach zu benutzen ist und Sie mit falschen Einstellungen Ihre Hardware zerstren, wird dieser Schritt hier nicht empfohlen.

Sie sollten die erzeugte Konguration nun in der Datei /etc/X11/XF86Cong abspeichern. Geben Sie diesen Dateinamen dazu in das Eingabefeld hinter Save Conguration to ein, wenn er sich dort noch nicht bendet, und klicken Sie auf die Schaltche Save the conguration and exit. Wenn es bereits eine alte Version dieser Kongurationsdatei auf Ihrem System gibt, erhalten Sie die Mitteilung, dass diese in der Datei /etc/X11/XF86Cong.bak gesichert wurde. Besttigen Sie die Meldung durch Bettigung der Schaltche Okay. Das System schaltet nun wieder in den Textmodus und gibt die Meldung Conguration complete aus. Die Konguration des X-Servers ist erfolgreich beendet. 9.4.7 Testen der Konguration Sie knnen XFree86 nun starten, indem Sie an der Kommandozeile das Kommando joe@debian:~$ startx

9.4 Das X Window System (X11)

311

eingeben. Daraufhin sollte das System in den graschen Modus schalten und den von Ihnen als Standard ausgewhlten Window-Manager starten. Weil es abhngig vom verwendeten Window-Manager ist, was nun auf dem Bildschirm dargestellt wird und welche Funktionen Ihnen zu Verfgung stehen, kann hier nicht allgemeingltig beschrieben werden, wie X11 wieder beendet wird. Falls der voreingestellte Window-Manager twm ist, beenden Sie diesen, indem Sie mit der linken Maustaste auf den Bildschirm klicken und aus dem dann erscheinenden Men das Kommando exit auswhlen. Eine Auswahl von Window-Managern ist in Kapitel 9.4.13 auf Seite 327 beschrieben. Falls Sie die entsprechende Option aktiviert haben, sollten Sie X11 immer brutal durch die Tastenkombination S TRG-A LT-Z URCK beenden knnen. Wenn Sie nderungen an der Konguration vornehmen mchten, beenden Sie X11 und rufen XF86Setup auf. In diesem Fall sollten Sie angeben, dass die bereits vorhandene Datei /etc/X11/XF86Cong fr Voreinstellungen verwendet werden soll (das Programm fragt danach). Alternativ rufen Sie XF86Setup direkt unter X11 in einem xterm-Fenster auf. In diesem Fall mssen Sie angeben, dass es sich um eine Kongurationsnderung (reconguration) und nicht um eine Neukonguration handelt. Wenn Sie auf diese Art nderungen an der Konguration vornehmen, mssen Sie hinterher X11 beenden und wieder neu starten, damit die nderungen wirksam werden. Umschalten zwischen graschem Modus und Textmodus Wenn ein Display-Manager aktiv ist oder Sie den X-Server manuell mit startx gestartet haben, knnen Sie trotzdem weiterhin im Textmodus arbeiten. Durch Bettigen der Tastenkombinationen S TRG-A LT-F1 bis S TRG-A LT-F7 schalten Sie zwischen den virtuellen Konsolen hin- und her. Der erste X-Server luft dabei gewhnlich auf der siebenten virtuellen Konsole. Um wieder zurck auf die erste Konsole zu schalten, drcken Sie S TRG-A LT-F1. Um dann wieder in die grasche Oberche (zum X-Server) zu schalten, drcken Sie S TRG-A LT-F7 (siehe Kap. 5.16). 9.4.8 Probleme beim Start von XFree86 Beim Start und whrend des Betriebs von X11 werden eine Reihe von Meldungen auf die Konsole geschrieben, von der aus X11 aufgerufen wurde. Um der Ursache eines Problems auf die Spur zu kommen, sollten Sie die Ausgaben in eine Datei umleiten. Starten Sie X11 dazu auf die folgende Weise: joe@debian:~$ startx 1>&2 2>x.log Dadurch werden alle Meldungen in die Datei x.log geschrieben. Sie knnen die Meldungen spter mit dem Programm less betrachten. Wenn Sie einen DisplayManager verwenden, werden die entsprechenden Meldungen in eine Protokolldatei im Verzeichnis /var/log geschrieben. Bei Verwendung von gdm werden die Protokolldateien im Verzeichnis /var/log/gdm abgelegt. Im folgenden sind einige hug auftretende Probleme beim Konguration von XFree86 mit Ursachen und Vorschlgen zur Behebung aufgefhrt.

312

9 Konguration wichtiger Systemkomponenten

Das Programm XF86Setup schaltet nicht in den graschen Modus In diesem Fall sollten Sie berprfen, ob Sie eine Grakkarte haben, die mit dem Standard-VGA-Modus kompatibel ist (640x480 Punkte bei 8 Bit Farbtiefe). Wenn dies nicht der Fall ist, knnen Sie das Programm nicht benutzen. Kongurieren Sie X11 dann mit dem Programm xf86cong. Trotz nderung der Datei /etc/X11/XF86Cong verndert sich das Verhalten des X-Servers nicht Die X-Server untersuchen zunchst, ob sich im aktuellen Arbeitsverzeichnis eine Datei mit dem Namen XF86Cong bendet, und verwenden gegebenenfalls diese Datei. Sie mssen in einem solchen Fall entweder die betreffende Datei in ein anderes Verzeichnis verschieben oder das Arbeitsverzeichnis wechseln. Die Maus lsst sich unter X11 nicht benutzen, funktioniert jedoch mit gpm Stellen Sie sicher, dass gpm nicht aktiv ist, wenn der X-Server gestartet wird. Dauerhaft sollten Sie die Repeater-Funktion von gpm benutzen, um X11 und gpm gleichzeitig ausfhren zu knnen. Fehlermeldung No valid modes found Die im folgenden gezeigte Fehlermeldung besagt, dass der X-Server keinen gltigen Betriebsmodus fr Ihren Bildschirm gefunden hat.
Fatal Server Error: No valid modes found

Hierfr kommen folgende Ursachen in Betracht: Sie haben ausschlielich Auflsungen und Farbtiefen gewhlt, fr die nicht gengend Grakspeicher vorhanden ist. Sie haben Frequenzen angegeben, fr die keine Modus-Denitionen (Modelines) zur Verfgung stehen, um die gewnschten Auflsungen zu verwenden. berprfen Sie zunchst, ob Sie die Frequenzen richtig angegeben haben. Wenn dies der Fall ist, die Auflsungen ebenfalls stimmen und Sie die Konguration bisher mit XF86Setup erstellt haben, versuchen Sie, die Konguration nun mit xf86cong durchzufhren. Dieses Programm erzeugt mehr Modus-Denitionen, sodass die Wahrscheinlichkeit grer ist, einen passenden Modus zu nden. Fehlermeldung unable to start X session Die folgende Fehlermeldung weist darauf hin, dass Sie vermutlich vergessen haben, einen Window-Manager zu installieren:
Xsession: Unable to start X session: No /home/user/.xsession found, no window managers and no terminal emulators found.

9.4 Das X Window System (X11)

313

Der Bildschirm schaltet ab oder zeigt eine Fehlermeldung Dieser Fehler ist mit grter Wahrscheinlichkeit darauf zurckzufhren, dass der horizontale oder der vertikale Frequenzbereich des Bildschirms falsch angegeben wurde. Das Bild wird falsch dargestellt Wenn auf dem Bildschirm eigenartige Strungen wie Lngs- oder Querstreifen zu sehen sind, knnte eine Ursache sein, dass Sie die Menge des verfgbaren Grakspeichers falsch angegeben haben oder diese nicht richtig erkannt wurde. Sie sollten die Konguration wiederholen und den richtigen Wert explizit angeben. Andere Ursachen sind Frequenzen, die sich nicht mit dem Bildschirm vertragen. In solchen Fllen kann es helfen, die Frequenzen geringfgig zu ndern. Bestimmte Tasten funktionieren nicht wie erwartet Passen Sie die Datei /etc/X11/XF86Cong manuell so an, wie es auf Seite 319 empfohlen ist. Wenn auch dies nicht hilft, verwenden Sie das Programm xkeycaps aus dem gleichnamigen Paket, um die Konguration anzupassen. Fehlermeldung: could not open default font xed Die Fehlermeldung sagt aus, dass der X-Server den Standard-Font nicht nden konnte. Stellen Sie sicher, dass die Pakete mit den Schriftarten, insbesondere das Paket xfonts-base installiert sind. 9.4.9 Konguration von X11 mit xf86cong Das Programm xf86cong ist ein textbasiertes Programm, das nach Abfrage einiger Daten eine Kongurationsdatei /etc/X11/XF86Cong anlegt. Sie brauchen dieses Programm nur dann zu verwenden, wenn die Konguration mit XF86Setup nicht funktioniert oder nicht befriedigt. Das Programm fordert Sie in der Regel auf, Fragen entweder mit Y (fr Ja) oder N, durch Eingabe einer Zahl, mit der eine bestimmte Option ausgewhlt wird, oder durch die direkte Eingabe einer Einstellung wie der Gertedatei, durch welche die Maus reprsentiert wird, zu beantworten. Nach Beendigung jeder Eingabe mssen Sie E INGABE drcken, um sie zu bernehmen. Eine Unannehmlichkeit von xf86cong besteht darin, dass es in dem Programm keine Mglichkeit gibt, zu einer bereits vorgenommenen, aber verkehrten Einstellung zurckzukehren. Das einzige Verfahren, einen solchen Fehler zu korrigieren, besteht darin, das Programm abzubrechen (S TRG - C) und erneut aufzurufen. Wenn Sie vor dem Aufruf von xf86cong bereits ber eine Kongurationsdatei fr X11 verfgen, sollten Sie diese zunchst sichern. Geben Sie dazu folgendes Kommando ein:

314

9 Konguration wichtiger Systemkomponenten

debian:~# cp /etc/X11/XF86Config /etc/X11/XF86Config.pre-xf86setup Benutzen Sie dieses Kommando, um xf86cong zu starten: debian:~# xf86config Es erscheint eine Mitteilung, dass mit dem Programm nur eine einfache Konguration erstellt werden kann, die erforderlichenfalls manuell verbessert werden muss. Drcken Sie E INGABE, um fortzufahren. Konguration der Maus Sie werden nun nach dem Typ Ihrer Maus gefragt (vergleiche auch Tabelle 9.2 auf Seite 276). Geben Sie hier die Zahl ein, die sich vor der Typenbezeichnung Ihrer Maus bendet, und drcken Sie E INGABE. Wenn Sie den Typ Mouse Systems gewhlt haben, knnen Sie nun angeben, ob Sie die Optionen ClearDTR und ClearRTS verwenden mchten. Diese Optionen werden bei manchen Musen bentigt, um sie in den MouseSystems-Modus zu schalten, bevor der X-Server startet. Wenn Sie eine Zwei-Tasten-Maus besitzen oder die mittlere Maustaste nicht benutzbar ist, sollten Sie nun die Frage, ob die mittlere Maustaste durch Drcken von linker und rechter Maustaste gleichzeitig emuliert werden soll (Emulate3Buttons), mit Y beantworten. Bei Bedarf knnen Sie auch angeben, dass Ihre Maus bei Bettigung der mittleren Maustaste die Information an den Rechner sendet, dass linke und rechte Taste gleichzeitig gedrckt worden seien. Die entsprechende Option lautet ChordMiddle. Zu Schluss mssen Sie die Gertedatei angeben, welche die Maus reprsentiert. Wenn Sie sich nicht sicher sind, sehen Sie in Tabelle 9.1 auf Seite 276 nach. Achtung: Wenn Sie X11 zusammen mit gpm im Repeater-Modus verwenden wollen, whlen Sie als Maustyp Mouse Systems und als Gertedatei /dev/gpmdata. Konguration der Tastatur Im nchsten Schritt ist die Tastatur auszuwhlen. Drcken Sie die Taste E INGABE. Nun knnen Sie eine Tastatur aus der Liste durch Eingabe der entsprechenden Ziffer auswhlen oder None of the above whlen, um das Layout selbst festzulegen. Wenn Sie eine deutsche Standardtastatur verwenden, whlen Sie 5 (Standard 101-key, German encoding). None of the above sollten Sie whlen, wenn Sie eine spezielle Tastatur wie ein Microsoft Natural Keyboard verwenden, weil die vordenierten Layouts hierfr nicht gut geeignet sind. Nach der Wahl von None of the above erhalten Sie eine Liste von Tastaturen, aus der Sie auswhlen. In Deutschland sind 102-Tasten-Tastaturen gebruchlich. Wenn Sie eine Tastatur mit MS-Windows-Tasten besitzen, handelt es sich normalerweise um eine 104-Tasten-Tastatur. Sie sollten jeweils die Variante mit

9.4 Das X Window System (X11)

315

Mode_switch auswhlen. Geben Sie die entsprechende Zahl ein und drcken Sie E INGABE. Danach erfolgt die Auswahl des nationalen Layouts. Whlen Sie dort beispielsweise Germany oder Switzerland/German layout. Nicht alle verfgbaren Layouts werden auf einmal angezeigt. Benutzen Sie die Taste E INGABE, um zur nchsten Seite zu schalten. Die gewhlten Einstellungen werden ausgegeben, und es erscheint eine Warnung, dass die Konguration mglicherweise nicht funktioniert. Konguration des Bildschirms Bevor mit der Konguration des Bildschirms begonnen wird, weist eine Meldung Sie darauf hin, dass Sie bei der Angabe der von Ihrem Bildschirm untersttzten Frequenzbereiche nach Mglichkeit keinen Fehler machen sollten. Quittieren Sie diese Meldung mit E INGABE. Es erscheint dann eine Liste verschiedener horizontaler Frequenzbereiche. Sie knnen hier entweder eine vorgegebene, Ihrem Bildschirm entsprechende Einstellung bernehmen oder durch Auswahl von Enter your own horizontal sync range eigene Angaben machen. Achtung: Gehen Sie hierbei uerst vorsichtig vor: Bei lteren Bildschirmen kann die Angabe zu hoher Werte zur Zerstrung des Bildschirms fhren! Wenn Sie die Frequenzen manuell eingeben wollen, haben Sie zum einen die Mglichkeit, Frequenzbereiche in der Form 31.5-79 oder einzelne Werte, die von Ihrem Bildschirm untersttzt werden, in der Form 31.5,48,60 anzugeben. Es sind auch Kombinationen wie 42-55, 60-72 mglich. Danach mssen Sie den vertikalen Frequenzbereich Ihres Bildschirms angeben. Auch hier besteht wieder die Mglichkeit, zwischen verschiedenen vorgegebenen Bereichen zu whlen oder den Bereich durch Auswahl von Enter your own vertical sync range selbst anzugeben. Zum Abschluss mssen Sie Ihrem Bildschirm eine Bezeichnung geben (Enter an identier for your monitor denition) sowie eine Bezeichnung fr den Hersteller/Verkufer (Enter the vendor name of your monitor) und die Typenbezeichnung Ihres Bildschirms (Enter the model name of your monitor). Diese Angaben wirken sich auf das Verhalten von XFree86 nicht aus; sie dienen lediglich dazu, bei Kongurationen mit mehreren Bildschirmen oder unterschiedlichen Kongurationen desselben Bildschirms die einzelnen Beschreibungen auseinanderzuhalten. Es reicht aus, einfache Abkrzungen fr die drei Kategorien einzugeben. Konguration der Grakkarte Nun erklrt ein Text, dass die Mglichkeit besteht, eine Grakkartendenition aus der mitgelieferten Datenbank zu bernehmen. Dieser Text enthlt den wichtigen Hinweis, dass falls die eigene Karte nicht in der Datenbank aufgefhrt ist auf keinen Fall eine Grakkarte mit hnlicher Bezeichnung gewhlt werden sollte. Oft

316

9 Konguration wichtiger Systemkomponenten

unterscheiden sich Karten mit hnlichen Bezeichnungen erheblich bezglich ihrer Eigenschaften. Um eine Karte aus der Datenbank auszuwhlen, antworten Sie auf die Frage Do you want to look at the card database mit Y. Daraufhin erscheint eine alphabetisch sortierte Liste der vorkongurierten Grakkarten. Sie haben die Mglichkeit, die Taste E INGABE zu drcken, um die jeweils nchste Seite anzeigen zu lassen (zurckblttern geht leider nicht, allerdings wird, nachdem die letzte Seite angezeigt wurde, wieder die erste angezeigt), Q zu drcken, um das Anzeigen der Liste abzubrechen oder die Nummer einer Kartendenition einzugeben, wodurch die entsprechende Karte ausgewhlt wird. Nach Auswahl einer Karte werden Kartenbezeichnung, Chipsatz und X-Server fr die Grakkarte am Bildschirm ausgegeben. Hier knnen Sie berprfen, ob Sie die richtige Karte ausgewhlt haben. Falls nicht, sollten Sie mit S TRG - C abbrechen und von vorne beginnen. Nun mssen Sie festlegen, welcher X-Server standardmig gestartet werden soll. xf86cong erzeugt vier verschiedene Kongurationen, die fr einen X-Server fr den Schwarz-Wei-Modus, fr den VGA16-Server, fr den SVGA-Server, der eine Reihe von verschiedenen SVGA-Karten mit hohen Auflsungen und Farbtiefen untersttzt, und fr die Verwendung mit einem der X-Server fr Grakkarten mit Hardwarebeschleunigung (acceleration) geeignet sind. Falls Sie vorher aus der Datenbank eine Kartendenition ausgewhlt haben, besteht darber hinaus die Mglichkeit, den Server als Standard zu verwenden, der von der Kartendenition vorgesehen wurde. Sie sollten unbedingt diese Option whlen. Ansonsten whlen Sie einen Server, von dem Sie wissen, dass er Ihre Grakkarte untersttzt, notfalls den VGA16-Server. Danach werden Sie gefragt, ob die Datei /etc/X11/Xserver angepasst werden soll. Dies ist die Datei, in der unter Debian GNU/Linux festgelegt wird, welcher X-Server als Standard-Server benutzt wird. Beantworten Sie diese Frage mit y. Falls Sie vorher ausgewhlt hatten, einen Server fr Grakkarten mit Hardwarebeschleunigung zu verwenden, der nicht durch eine vorgegebene Kartendenition festgelegt worden war, mssen Sie nun noch angeben, welchen dieser Server Sie standardmig verwenden mchten. Nun geben Sie an, wieviel Grakspeicher auf Ihrer Karte vorhanden ist. Whlen Sie entweder eine vorgegebene Option oder Other aus und geben Sie die Gre dann in KiloByte (KB) ein. Denken Sie daran, dass 1 MB 1024 KB entspricht. Bei einer Karte mit 16 MB Grakspeicher wre hier den Wert 16384 anzugeben. Ebenso wie bei der Bildschirmkonguration mssen Sie nun einen Bezeichner, den Namen des Herstellers und die Modell-Bezeichnung Ihrer Grakkarte angeben. Auch hier wirken sich die Angaben nicht auf das Verhalten von XFree86 aus, sodass Sie beliebige Angaben machen knnen. Wichtig ist nur, berhaupt irgendwelche Angaben vorzunehmen. Hiernach knnen Sie den RAMDAC Ihrer Karte festlegen. In der Regel ist dies nicht notwendig, sodass Sie es erst einmal ohne RAMDAC-Angabe versuchen sollten (Q drcken). Da die Angabe bei einigen Karten allerdings zwingend erforderlich ist, mssen Sie gegebenenfalls nachbessern und durch Angabe der entsprechenden

9.4 Das X Window System (X11)

317

Zahl den RAMDAC festlegen. Selbiges gilt fr die Auswahl des Clockchips. Auch diese ist in der Regel nicht notwendig, muss aber bei manchen Karten vorgenommen werden. Drcken Sie E INGABE, um ohne Auswahl eines Clockchips fortzufahren, oder whlen Sie den Chip Ihrer Karte durch Angabe der Nummer aus. Als nchstes wird gefragt, ob der X-Server testweise zum Feststellen der untersttzten Frequenzen aufgerufen werden soll. Wenn Sie zuvor eine Karte aus der Datenbank ausgewhlt haben, erhalten Sie mit dieser Frage u. U. die Meldung: The card denition says to NOT probe clocks. In diesem Fall sollten Sie mit n antworten. Konguration der verfgbaren Auflsungen Nun wird eine Liste von Bildschirmauflsungen bei verschiedenen Farbtiefen ausgegeben. Die zuerst angegebene Auflsung fr eine Farbtiefe ist dabei die Auflsung, in welcher der Server in Zukunft standardmig gestartet wird. Danach lsst sich zwar sofort in eine andere Auflsung umschalten, aber es ist komfortabler, gleich in der richtigen Auflsung zu starten. Deshalb knnen Sie die Reihenfolge und die Auflsungen ndern, indem Sie die einer bestimmten Farbtiefe entsprechende Zahl eingeben und dann die Auflsungen in der Reihenfolge auswhlen, in der sie vom X-Server benutzt werden sollen. Um beispielsweise die Auflsungen fr 32 Bit Farbtiefe zu verndern, geben Sie zunchst 4 ein und dann 4325, um die Auflsungen 1024x768, 800x600, 640x480 und 1280x1024 festzulegen. Da die Ausung 1024x768 (4) hierbei zuerst genannt wurde, benutzt der X-Server am Anfang diese Auflsung. Nach der Auswahl der Auflsungen wird nachgefragt, ob erwnscht ist, virtuelle Auflsungen zu verwenden, welche die physikalische Auflsung des Bildschirms bertreffen. Dies ist ein Trick, mit dem eine grere Arbeitsplatzche auf dem Bildschirm zur Verfgung steht, als sie eigentlich vom Bildschirm dargestellt werden kann. Der Bildschirm dient dann als Fenster auf diese Arbeitsche, das mit der Maus verschoben werden kann. Hierdurch wird der zur Verfgung stehende Grakspeicher auf der Karte besser ausgenutzt, und es lassen sich mehr Fenster bersichtlich auf der Arbeitsche anordnen. Einige Benutzer nden diese Einstellung jedoch verwirrend. Nachdem Sie fr alle Farbtiefen die Auflsungen ausgewhlt haben, schlieen Sie mit The modes are ok . . . die Konguration ab. Abschluss der Konguration Das Programm fragt nun, ob es die Datei /etc/X11/XF86Cong erstellen soll. Generell sollten Sie diese Frage mit Y beantworten. Sie knnen allerdings auch N angeben, woraufhin gefragt wird, ob die Datei XF86Cong im aktuellen Arbeitsverzeichnis gespeichert werden soll. Testen Sie die mit xf86setup erzeugte Konguration so, wie es ab Seite 310 fr die Konguration mit dem Programm XF86Setup beschrieben ist.

318

9 Konguration wichtiger Systemkomponenten

9.4.10 Aufbau der Datei /etc/X11/XF86Cong Diese Datei ist die zentrale Kongurationsdatei fr den X-Server. Sie ist in verschiedene Abschnitte aufgeteilt, die mit dem Schlsselwort Section sowie einer Bezeichnung beginnen und mit dem Schlsselwort EndSection enden. Innerhalb eines Abschnittes wird jeweils ein Teilaspekt wie die Tastatur oder die Grakkarte konguriert. Die Datei darf leere Zeilen und Kommentare enthalten. Kommentare sind mit einem Doppelkreuz (#) einzuleiten. Kongurationsdateien, welche mit dem Programm xf86cong erzeugt wurden, enthalten eine groe Anzahl von Kommentaren. Eine bersicht ber alle in der Datei mglichen Direktiven und Optionen nden Sie in der Manualseite XF86Cong im Abschnitt 5 des Manuals. Die Arbeit mit der Datei ist etwas komplizierter als die Arbeit mit anderen Kongurationsdateien, weil sich in /etc/X11/XF86Cong gleich mehrere Kongurationen fr unterschiedliche Grakkarten und Bildschirme benden knnen. Abschnitte zur Denition eines Bildschirms tragen den Namen Monitor und solche zur Denition einer Grakkarte die Bezeichnung Device. Beides zusammen ergibt eine Einheit, die als Screen bezeichnet wird. Weil sich die unterschiedlichen Denitionen fr Grakkarten mit den unterschiedlichen Bildschirmdenitionen theoretisch beliebig kombinieren lassen, kann es auch mehrere Screen-Abschnitte geben. In vielen Fllen ist es mglich, eine Kombination aus Grakkarte und X-Server alternativ mit dem VGA16-Server, dem Super-VGA-Server und einem speziellen kartenspezischen Server zu betreiben. Aufgrund der Mglichkeit, gleichzeitig unterschiedliche Denitionen fr die Grakkarte in der Datei zu haben, lassen sich diese Kongurationen nebeneinander in der Datei speichern. Welche Einstellungen dann tatschlich benutzt werden, ergibt sich daraus, welcher X-Server gestartet wird. Dateien, Pfade (Files) und Module (Modules) Im ersten Abschnitt mit dem Namen Files wird deniert, wo vom X-Server bentigte Dateien zu nden sind. Dazu gehren Verzeichnisse mit Schriftartendateien (FontPath) sowie Verzeichnisse, in denen sich Module benden, mit denen der Server um zustzliche Fhigkeiten erweitert wird (ModulePath). Mit FontPath wre auch anzugeben, ob ein Fontserver3 benutzt werden soll. Nheres hierzu in der Manualseite XF86Cong. Im Abschnitt Modules wird angegeben, welche Server-Module geladen werden sollen. Allgemeine Optionen fr den X-Server (ServerFlags) In diesem Abschnitt nden Sie die bereits auf Seite 309 beschriebenen Einstellungen wieder.

Ein Fontserver ist ein Programm, das Schriftarten im Netz zur Verfgung stellt.

9.4 Das X Window System (X11)

319

Einstellung der Tastatur (Keyboard) Die Konguration der Tastatur unter X11 ist schwieriger, als zu erwarten wre. Sie sollten die Funktionsfhigkeit der Tastatur nicht in einem Terminalfenster, sondern mit einem Editor prfen. Dazu knnen Sie das Programm xedit aus dem Paket xcontrib verwenden. In einem Terminalfenster besteht nmlich die Gefahr, dass Tastenanschlge nicht vom X-Server, sondern von der Shell falsch interpretiert werden (siehe auch Seite 509). Wenn Sie mit den Programmen XF86Setup oder xf86cong keine befriedigende Tastaturkonguration hinbekommen, knnen Sie es mit den folgenden Werten probieren. Den Wert hinter XkbModel sollten Sie auf pc104 ndern, falls Sie eine Tastatur mit MS-Windows-Tasten besitzen. Einige Benutzer konnten auch erst mit der Einstellung pc105 alle Tasten zur Mitarbeit bewegen.
Section "Keyboard" Protocol "Standard" AutoRepeat 500 30 XkbRules "xfree86" XkbModel "pc102" XkbLayout "de" XkbVariant "nodeadkeys" XkbOptions "grp:switch" EndSection

Mauskonguration (Pointer) In diesem Abschnitt wird festgelegt, welches Protokoll zur Kommunikation mit der Maus benutzt werden soll und durch welche Gertedatei diese reprsentiert wird. Darber hinaus lassen sich die angesprochenen Optionen Emulate3Buttons und ChordMiddle ein- und ausschalten. Bildschirmeinstellungen (Monitor) In diesen Abschnitt(en) werden die Eigenschaften des Bildschirms angegeben und festgelegt, wie dieser betrieben werden soll. Damit es spter mglich ist, sich auf eine einmal vorgenommene Bildschirmdenition zu beziehen, wird der Denition zunchst mit dem Schlsselwort Identier ein Name zugeordnet. Mit Vendorname und ModelName knnen darber hinaus Hersteller- und Modellname angegeben werden. Mit HorizSync und VertRefresh werden die horizontalen und vertikalen Frequenzbereiche des Bildschirms angegeben. Wie bereits beschrieben, lassen diese sich als Bereiche (31-65) oder als einzelne durch Kommata getrennte Werte (31.8,48.2) angeben. Die hier angegebenen Werte mssen unbedingt mit den tatschlichen Werten Ihrer Hardware bereinstimmen! Weiter nden Sie in diesem Abschnitt Modeline-Denitionen. Hierbei handelt es sich um Anweisungen, wie der Bildschirm angesteuert werden soll. Es kann innerhalb eines Monitor-Abschnitts beliebig viele Modeline-Denitionen geben. Der X-Server verwendet automatisch die Denition, die innerhalb der durch

320

9 Konguration wichtiger Systemkomponenten

HorizSync und VertRefresch bestimmten Grenzen fr eine angeforderte Auflsung am besten geeignet ist. In seltenen Fllen ist es notwendig, eigene ModelineDenitionen zu errechnen und anzugeben. Informationen hierzu nden Sie im Xfree86 Video-Timings-HOWTO (Datei /usr/share/doc/HOWTO/en-txt/XFree86Video-Timings-HOWTO.txt.gz, Paket doc-linux-text). Konguration der Grakkarte (Device) Ebenso wie der Bildschirm ist es bei den Abschnitten fr Grakkarten notwendig, diesen mit Identier, VendorName und BoardName eine eindeutige Bezeichnung zu geben. Weiter kann in diesem Abschnitt angegeben werden, welcher Chipsatz und wieviel Grakspeicher sich auf der Karte bendet und welche Hardwareressourcen das Gert benutzt. Nheres hierzu nden Sie in der Manualseite XF86Cong (Abschnitt 5). Die Spezikation der Menge des Grakspeichers ist in einigen Fllen notwendig und sollte vorgenommen werden, falls es zu Problemen kommt. Bevor Sie Optionen in diesem Abschnitt ndern, lschen oder hinzufgen, sollten Sie die Dokumentation zum X-Server fr Ihre Grakkarte lesen. Die entsprechenden Textdateien benden sich im Verzeichnis /usr/share/doc/xserver-common. Screen-Denitionen Sie werden sich fragen, woher der X-Server wei, welche Screen-Denition zu verwenden ist. Jeder dieser Abschnitte beginnt mit einer Driver-Direktive. Jeder XServer hat ebenfalls einen Driver-Typ eingebaut, sodass immer der Screen-Abschnitt benutzt wird, bei dem Driver-Typ des gestarteten X-Servers und Driver-Denition des entsprechenden Abschnittes bereinstimmen. Daraus ergibt sich dann auch, welcher Device-Abschnitt und welcher Monitor-Abschnitt benutzt werden soll, denn jede Screen-Denition ist mit den Direktiven Device und Monitor ausgestattet, mit denen die Namen der zu benutzenden Abschnitte angegeben werden. Die Namen wurden in den Abschnitten mit Identier festgelegt. Wenn Sie einen Hardware-beschleunigten X-Server wie den S3-Server verwenden, hat dieser den Driver-Typ accel. Es ist dann der Screen-Abschnitt zu bearbeiten, in dem sich die Direktive driver "accel" bendet. Der SVGA-Server hat den DriverTyp svga und der VGA16-Server den Typ vga16. In jedem Screen-Abschnitt benden sich ein oder mehrerer Unterabschnitte (SubSection) mit der Bezeichnung Display. In diesen Unterabschnitten werden die verschiedenen Betriebsarten einer Kombination aus Grakkarte und Bildschirm deniert. Hier benden sich hinter der Anweisung Modes die Auflsungen, in denen der Bildschirm betrieben werden soll und zwischen denen mit S TRG-A LT-- und S TRGA LT-+ hin- und hergeschaltet wird. Die jeweils zuerst genannte Auflsung ist die, mit welcher der Server standardmig startet. Mit Depth wird die Farbtiefe des betreffenden Modus festgelegt und mit Virtual die virtuelle Bildschirmauflsung, also die Flche, die tatschlich auf der Arbeitsche zum Anordnen von Fenstern zur

9.4 Das X Window System (X11)

321

Verfgung steht. Durch die Direktive DefaultColorDepth wird bestimmt, in welcher Farbtiefe der Server standardmig gestartet werden soll. Wenn Sie einen XServer mit Hardware-Beschleunigung standardmig mit 32 Bit Farbtiefe und einer Auflsung von 1024x768 Pixeln benutzen wollen, dann knnte Ihre ScreenDenition folgendermaen aussehen:
Section "Screen" Driver "accel" Device "FastBoard" Monitor "BigScreen" DefaultColorDepth 32 Subsection "Display" Depth 16 Modes "1024x768" "800x600" "640x480" "1280x1024" ViewPort 0 0 Virtual 1280 1024 EndSubsection Subsection "Display" Depth 32 Modes "1024x768" "800x600" "640x480" "1280x1024" ViewPort 0 0 Virtual 1024 768 EndSubsection EndSection

Dieses Beispiel enthlt aus Platzgrnden keine Eintrge fr die Farbtiefen 8 und 24Bit. Diese sollten normalerweise ebenfalls vorhanden sein. Weiter ist zu erkennen, dass bei der Farbtiefe 16 Bit ein virtueller Bildschirm mit der Gre von 1280x1024 Punkten benutzt wird. 9.4.11 Weitere Mglichkeiten zur Anpassung Wie Sie sich vielleicht schon gedacht haben, benden sich die Kongurationsdateien fr X11 und fr viele X11-basierte Programme unterhalb des Verzeichnisses /etc/X11. Im folgenden werden die wichtigsten Dateien und Verzeichnisse in dem Verzeichnis kurz vorgestellt. Feineinstellung der Tastatur XFree86 erlaubt es, die Bedeutung einzelner Tasten zu berschreiben. Hierzu dient das Programm xmodmap aus dem Paket xbase-clients. Diese Anpassungen werden global fr alle Benutzer in der Datei /etc/X11/Xmodmap gespeichert. Jeder Benutzer kann darber hinaus eigene Tastaturdenitionen in der Datei .Xmodmap in seinem Home-Verzeichnis speichern. Besonders komfortabel lassen sich solche Dateien mit dem Programm xkeycaps aus dem gleichnamigen Paket erzeugen. Mehr Informationen in der Manualseite zu xmodmap.

322

9 Konguration wichtiger Systemkomponenten

X-Ressourcen X11 verfgt ber eine eigene Methode zur Konguration von Anwendungen, die man als X-Ressourcen bezeichnet. Der X-Server verwaltet dabei eine Hierarchie von Variablen und Werten, mit denen beispielsweise die Hintergrundfarbe von Fenstern, die von einer Anwendung zu verwendenden Schriftarten oder das Erscheinungsbild einer Werkzeugleiste bestimmt werden knnen. Die X-Ressourcen lassen sich als eine mchtige Erweiterung der Optionen blicher Linux/UNIX-Kommandos auffassen. Whrend des Starts einer X-Sitzung werden die X-Ressourcen in den Server geladen. Dies geschieht mit dem Programm xrdb. Dabei werden zunchst die systemweit geltenden X-Ressourcen aus den Dateien im Verzeichnis /etc/X11/Xresources und dann falls vorhanden die Ressourcen-Denitionen aus der Datei .Xresources im Home-Verzeichnis des Benutzers geladen. Die Syntax dieser Dateien unterscheidet sich etwas von anderen Kongurationsdateien. Kommentare werden hier nicht mit einem Doppelkreuz (#), sondern mit einem Ausrufungszeichen eingeleitet. Jede Ressourcendenition besteht prinzipiell aus einer Zeile, in der sich der Name der Ressource gefolgt von einem Doppelpunkt sowie dem Wert der Ressource bendet. Falls fr die Spezikation einer Ressource mehr als eine Zeile bentigt wird, sind fortzusetzende Zeilen mit einem Backslash (\) abzuschlieen. Bezeichner von Ressourcen setzen sich aus unterschiedlichen Elementen zusammen, die durch Punkte voneinander getrennt werden. Das erste Element bezeichnet in der Regel den Namen der Anwendung, die nchsten Elemente einzelne Teile des oder der Fenster der betreffenden Anwendung (Widget = Window Gadget = geniales Dingsbums des Fensters) und der letzte Teil ein Merkmal des betreffenden Elements. Dies soll am Beispiel des Terminal-Emulators xterm erlutert werden. Die Fenster des Programms setzen sich aus verschiedenen Widgets zusammen, wobei der Name des Widgets im Hauptfenster von xterm VT100 lautet. Mchte man den Hintergrund des xterm-Fensters in blauer Farbe haben, so ist die folgende X-Ressource zu setzen: xterm.vt100.background: blue Mens und andere Fenster des Programms benutzen andere Widgets; sie werden durch diese Ressource nicht verndert. Durch den Stern (*) lassen sich jedoch alle mglichen Kombinationen auf einmal spezizieren. So fhrt die folgende Anweisung dazu, dass der Hintergrund aller Teile von xterm in Blau dargestellt wird: xterm*background: blue Um den Hintergrund aller Anwendungen, die mit X-Ressourcen arbeiten, in Blau darzustellen, ist diese Anweisung in die Datei .Xresources aufzunehmen: *background: blue Nicht alle Anwendungen verwenden X-Ressourcen. Die voreingestellten Ressourcen fr die meisten Programme, die mit X-Ressourcen arbeiten, benden sich in Dateien im Verzeichnis /usr/X11R6/lib/X11/app-defaults. Die Namen der Dateien

9.4 Das X Window System (X11)

323

in diesem Verzeichnis entsprechen den Namen der Anwendungen, fr die sie gelten. Sie sollten diese Dateien nicht verndern, sondern als Vorlagen fr Eintrge in der Datei .Xresources in Ihrem Home-Verzeichnis oder in einer Datei unterhalb von /etc/X11/Xresources verwenden. Mehr ber X-Ressourcen nden Sie in der Manualseite zu X11. Wie Sie Ressourcen zur Laufzeit von X11 verndern, ist in der Manualseite zu xrdb beschrieben. Damit eine Anwendung Gebrauch von einer vernderten X-Ressource macht, ist diese neu zu starten. Auswahl des X-Servers und Vergabe von Startberechtigungen In der Datei /etc/X11/Xserver wird festgelegt, welches Programm als X-Server zu starten ist. Wenn Sie den S3-Server verwenden, bendet sich in dieser Datei folgender Eintrag in der ersten Zeile: /usr/bin/X11/XF86_S3 Darber hinaus wird hier bestimmt, wer berechtigt ist, X11 zu starten. Mgliche Werte sind: RootOnly Der X-Server darf nur vom Verwalter gestartet werden. Die Folge dieser Einstellung ist, dass gewhnliche Benutzer das Kommando startx nicht benutzen knnen. Anybody Der X-Server kann von jedem Benutzer gestartet werden. Console Der X-Server kann nur von solchen Benutzern gestartet werden, die direkt an dem Rechner angemeldet sind und nicht etwa ber eine Telnet-Verbindung. Entscheidend ist, welches der drei oben aufgefhrten Schlsselwrter in der Datei als erstes genannt wird. Die Voreinstellung Console sollte normalerweise nicht gendert werden. 9.4.12 Arbeiten mit X11: Besonderheiten Es wurde bereits darauf hingewiesen, dass das Erscheinungsbild des Desktops und der Fenster von Anwendungen in den Zustndigkeitsbereich der Window-Manager fllt und von X11 insofern unabhngig ist. Hierzu gehrt auch die Frage, wie Programme gestartet werden und welche Funktionen mit Maustasten verbunden sind. Es gibt jedoch einige Eigenschaften von X11, die sich von den graschen Benutzeroberchen anderer Betriebssysteme unterscheiden und unabhngig vom eingesetzten Window-Manager vorhanden sind. Cut and Paste Text kann in fast allen Anwendungen mit der linken Maustaste markiert und im selben oder in einem anderen Fenster mit der mittleren Maustaste eingefgt werden. Es ist dabei nicht notwendig, zunchst in einem Men ein Kommando zum Kopieren in die Zwischenablage und hinterher ein Kommando zum Einfgen aus der Zwischenablage zu verwenden.

324

9 Konguration wichtiger Systemkomponenten

Scrollbars (Rollbalken) ltere X-Anwendungen sind oft mit Scrollbars (Leisten am Rand eines Fensters, mit dem der Fensterinhalt bewegt werden kann) ausgestattet, die anders benutzt werden, als Sie es vielleicht von MS-Windows her kennen. Ein Beispiel fr eine solche Anwendung ist das Terminal-Emulationsprogramm xterm. Bei diesen Anwendungen wird der Fensterinhalt mit der linken Maustaste vorwrts und mit der rechten Maustaste rckwrts bewegt, und zwar unabhngig davon, wo man auf den Scrollbar klickt. Mit der mittleren Maustaste wird der Scrollbar an die Position bewegt, an der sich die Maus bendet. Kontextmens Mit vielen Window-Managern und Anwendungen erreichen Sie Funktionen dadurch, dass Sie mit der Maus auf das Fenster der Anwendung bzw. auf den Bildschirmhintergrund klicken. Manche Funktionen lassen sich nur mit diesem Verfahren erreichen. Es erscheint dann ein Men, aus dem Kommandos ausgewhlt werden knnen. Teilweise mssen solche Mens festgehalten werden, das heit, sie werden nur so lange dargestellt, wie die Maustaste gedrckt ist. Andere Mens bleiben so lange auf dem Bildschirm, bis ein Kommando ausgewhlt wurde oder in einen anderen Bereich des Bildschirms geklickt worden ist. Linker, mittlerer und rechter Maustaste sind dabei meistens unterschiedliche Mens zugeordnet. Virtuelle Desktops Wie bereits erwhnt knnen X-Server so konguriert werden, dass die virtuelle Flche des Bildschirms grer ist als die tatschliche. Der Bildschirm dient dann als Fenster auf diese Flche, das mit der Maus verschoben wird, sobald der Cursor an den Rand des Bildschirms bewegt wird. Fast alle Window-Manager untersttzen darber hinaus mehrere virtuelle Bildschirme. Man kann sich das so vorstellen, dass mehrere Bildschirme an den Rechner angeschlossenen sind, zwischen denen hinund hergeschaltet wird. Die zur Verfgung stehende Flche des Bildschirms vergrert sich dadurch, auerdem lassen sich zusammengehrende Anwendungen auf den einzelnen virtuellen Bildschirmen gruppieren. Terminal-Emulatoren Fr viele alte Hasen oder Fchse besteht der einzige Sinn von X11 in der Mglichkeit, mehrere Terminal-Fenster nebeneinander laufen zu lassen. Moderne Arbeitsplatzumgebungen wie GNOME oder KDE machen die Arbeit mit der Kommandozeile zwar immer seltener notwendig, effektives Arbeiten ist in vielen Situationen jedoch ohne Shell nicht mglich. Darber hinaus sind viele Linux/UNIX-Programme nicht fr die Verwendung mit einem Fenstersystem programmiert. Damit unter X11 ebenso gut wie an der Konsole mit solchen Programmen gearbeitet werden kann, gibt es Terminal-Emulatoren. Dies sind Programme, die anderen

9.4 Das X Window System (X11)

325

Programmen die gleichen Mglichkeiten zur Verfgung stellen, wie sie normalerweise an der Konsole bestehen, beispielsweise die Mglichkeit, Text auszugeben und vom Anwender entgegenzunehmen, einfache Graken darzustellen oder Warntne auszustoen. Solche Programme stellen auf dem Bildschirm ein Fenster dar, mit dem genauso gearbeitet wird wie an der klassischen Konsole. Das bekannteste dieser Programme ist das bereits genannte Programm xterm. Mittlerweile gibt es jedoch eine groe Anzahl von Alternativen zu xterm wie das Programm gnome-terminal fr GNOME oder konsole als Bestandteil von KDE. Programme, die fr die Ausfhrung in einem Terminal oder an der Konsole bestimmt sind, werden unter X11 in dem Programm x-terminal-emulator ausgefhrt. Hierbei handelt es sich wie bei x-window-manager um einen symbolischen Link, der ber das Alternativen-System (siehe S. 267) verwaltet wird. Zugriffssteuerung und -Kontrolle X11 ist ein Netzprotokoll. Anwendungen, die X11 benutzen, mssen daher wissen, auf welchem Rechner der X-Server luft, den sie zur Darstellung verwenden sollen. Dies wird ihnen mit Hilfe der Umgebungsvariablen DISPLAY (siehe Seite 540) mitgeteilt. Die Variable wird gewhnlich whrend des Starts von X11 gesetzt, sodass alle innerhalb von X11 gestarteten Anwendungen wissen, welchen Server sie zu benutzen haben. Der Wert der Variablen DISPLAY setzt sich aus dem Rechnernamen, der Nummer des Displays auf diesem Rechner und der Nummer des Bildschirms, der zu dem betreffenden Display gehrt, zusammen. Daraus folgt, dass es auf einem Rechner mehrere Anzeigeeinheiten geben kann. Rechnername und Displaynummer werden durch einen Doppelpunkt voneinander getrennt, whrend Displaynummer und Bildschirmnummer durch einen einfachen Punkt getrennt werden. Ein Beispiel: DISPLAY=blackmagic:1.0 Damit versuchen X-Anwendungen, den Rechner mit dem Namen blackmagic zu kontaktieren und dessen zweites Display sowie dort den ersten Schirm zu verwenden Displays und Bildschirme werden mit der Zahl 0 beginnend durchnummeriert. Rechnername und Bildschirmnummern sind optional. Wenn kein Rechnername angegeben ist, wird der X-Server auf dem lokalen Rechnern gesucht. Wenn keine Bildschirmnummer angegeben ist, wird der erste Bildschirm benutzt. Normalerweise hat die Variable deshalb diesen Wert: DISPLAY=:0 Er bedeutet, X-Anwendungen auf dem ersten Display des Rechners darzustellen, auf dem die Anwendung selbst ausgefhrt wird. Sie knnen auf Ihrem Rechner auch mehrere X-Server gleichzeitig ausfhren. Dazu ist es erforderlich, dass jeder XServer ein eigenes Display verwaltet. Um mit dem Kommando startx eine X-Sitzung auf dem zweiten Display zu starten, wird dieses Kommando eingegeben: joe@debian:~$ startx - - :1

326

9 Konguration wichtiger Systemkomponenten

Hier wird dem X-Server mit dem Parameter :1 die Bezeichnung des zu verwendenden Displays angegeben. Auf diese Art lassen sich auch mehrere X-Server mit unterschiedlichen Farbtiefen nebeneinander betreiben. Mehr dazu in der Manualseite Xserver. Alternativ zur Umgebungsvariablen DISPLAY werten die meisten XAnwendungen die Kommandozeilenoption -display aus, hinter welcher der zu benutzende X-Server in derselben Form angegeben wird wie mit der Umgebungsvariablen. Um das Terminal-Emulationsprogramm xterm zu starten und dessen Ausgabe auf dem ersten Display des Rechners redmagic darzustellen, wird das Programm so aufgerufen: joe@debian:~$ xterm -display redmagic:1 Weil es mglich ist, jedem Programm mit Hilfe der Umgebungsvariablen DISPLAY oder einer Kommandozeilenoption mitzuteilen, auf welchem Rechner es seine Ausgaben vornehmen soll, muss sichergestellt werden, dass von den X-Servern nur solche Programme akzeptiert werden, die tatschlich erwnscht sind. Oder wrden Sie es lustig nden, wenn Ihr Kollege ein kleiner Scherzbold stndig irgendwelche Fenster auf Ihrem Bildschirm ffnet und schliet? Zur Zugriffskontrolle gibt es zwei Verfahren. Das ltere, unsicherere Verfahren ist in der Manualseite zu dem Programm xhost beschrieben. Das neuere und sicherere Verfahren erlaubt die benutzerabhngige Zugriffskontrolle. Es wird standardmig benutzt. Beim Start einer X-Sitzung, also nach der Anmeldung am Display-Manager oder nach Eingabe des Kommandos startx, wird dabei in der Datei .Xauthority im Home-Verzeichnis desjenigen Benutzers, der die Sitzung startet, ein Schlssel abgelegt. Jeder, der im Besitz des Schlssels ist, darf das Display benutzen. Die Datei .Xauthority sollte deswegen aus Sicherheitsgrnden nur fr den Besitzer lesbar sein. Soll nun einem anderen Benutzer die Mglichkeit eingerumt werden, das Display zu benutzen, kann der Schlssel aus der Datei extrahiert werden. Hierzu dient das Kommando xauth. Ihm ist zu diesem Zweck das Schlsselwort extract, der Name der Datei, in die der Schlssel geschrieben werden soll, sowie der Name des Displays, zu dem der Schlssel gehrt, zu bergeben. Beispiel: joe@debian:~$ xauth extract mykey :0 Hiermit wird der Schlssel des aufrufenden Benutzers fr das Display :0 in die Datei mykey im Arbeitsverzeichnis geschrieben. Die Datei wird durch das Kommando berschrieben, falls Sie vorher bereits existiert. Die Datei kann nun einem anderen Benutzer bergeben werden oder auf einen anderen Rechner transferiert werden. Dort lsst sich der in ihr enthaltene Schlssel mit folgendem Kommando in die Schlsselsammlung aufnehmen: joe@debian:~$ xauth merge mykey Nun kann auch dieser Benutzer das betreffende Display benutzen. Dabei ist es unerheblich, ob es sich um einen Benutzer desselben Rechners oder eines anderen Systems handelt. Mehr Informationen zu xauth in der Manualseite zu dem Programm.

9.4 Das X Window System (X11)

327

Viele Verwalter arbeiten normalerweise mit ihrem gewhnlichen Benutzerkonto unter X11 und benutzen Kommandos wie su (S. 867) oder sudo (S. 868), um die Benutzeridentitt des Verwalters anzunehmen. Dies ist die empfohlene Arbeitsweise. Sollen nun X-Programme mit den Rechten des Verwalters ausgefhrt werden, ergibt sich das Problem, dass der Verwalter nicht im Besitz des Schlssels fr den X-Server ist und seine Programme den Server nicht benutzen knnen. Er wrde dann die folgende Fehlermeldung erhalten:
Xlib: connection to ":0.0" refused by server Xlib: Client is not authorized to connect to Server Error: Cant open display: :0

Der Schlssel muss dem Verwalter also bertragen werden, bevor dieser den XServer kann. Bei Verwendung von su zur Erlangung der Privilegien kann dies automatisch durch die folgenden Zeilen in der Datei .bashrc im Home-Verzeichnis des Verwalters geschehen:
if [ $DISPLAY ] ; then su $USER -c dqxauth extract - $DISPLAY" | xauth merge fi;

In der ersten Zeile wird zunchst getestet, ob die Variable DISPLAY berhaupt gesetzt ist. Falls dies der Fall ist, wird mit dem Kommando su zurck zur Identitt des Benutzers gewechselt, der das Kommando su benutzt hat (sein Name ist weiterhin in der Variablen USER gespeichert), dann wird der Schlssel extrahiert, der danach wieder mit der Identitt des Verwalters in die Schlsselsammlung des Verwalters aufgenommen wird. 9.4.13 Window-Manager Die Wahl des Window-Managers hngt stark von dem persnlichen Bedrfnissen und vor allem vom Geschmack ab. Hier kann deswegen nur empfohlen werden, einige Window-Manager zu installieren und mit ihnen zu spielen, bis man den passenden gefunden hat. Einige Einschrnkungen: Wenn Sie die Arbeitsplatzumgebung GNOME verwenden wollen, sollten Sie einen GNOME-kompatiblen WindowManager verwenden. Falls Sie KDE benutzen wollen, brauchen Sie keinen zustzlichen Window-Manager, weil KDE einen eigenen hat. Dies bedeutet nicht, dass Sie KDE Programme nicht auch mit einem fremden Window-Manager verwenden knnen. Im folgenden nden Sie eine Auswahl an Paketen wichtiger Window-Manager: afterstep Dieser Window-Managers empndet das Look and Feel des Betriebssystems NeXTStep nach. Es handelt sich um einen besonders hbschen WindowManager, der jedoch viele Farben braucht und deswegen bei einer Farbtiefe von 8 Bit nicht zu empfehlen ist. asclassic Dies ist eine ltere Version von afterstep. blackbox Ein einfacher Window-Manager, der sich gut fr den Einsatz auf Systemen mit schwachen Ressourcen eignet.

328

9 Konguration wichtiger Systemkomponenten

enlightenment Ein hochkongurierbarer Window-Manager mit aufwendiger Grak und vielen interessanten Eigenschaften. GNOME und KDE-kompatibel. fvwm Der Klassiker unter den Window-Managern fr Linux. fvwm95 Eine Abart des FVWM im Look and Feel von MS-Windows 95, wenns denn sein soll. icewm Ein einfacher, funktionaler Window-Manager, der wahlweise im Look and Feel von MS-Windows, IBM-OS/2 oder Motif betrieben werden kann. Das Programm hat eine Taskbar, Uhr, Mailboxanzeige u. a. icewm-gnome Dieses Paket enthlt den Window-Manager icewm mit integrierter GNOME-Untersttzung. wmaker Auch dieser Window-Manager orientiert sich am NeXTStep-Design. Er lsst sich bequem kongurieren, zeichnet sich durch hohe Geschwindigkeit aus und bietet einige interessante Konzepte. Festlegen des standardmigen Window-Managers Normalerweise wird whrend des Starts einer Sitzung das Programm x-windowmanager aufgerufen. Hierbei handelt es sich um einen symbolischen Link auf den tatschlich zu startenden Window-Manager. Dieser Link wird mit Hilfe des Alternativen-Systems (siehe Kapitel 8.6.1, S. 267) verwaltet. Um aus den installierten Window-Managern einen als Standard festzulegen, wird folgendes Kommando eingegeben: debian:~# update-alternatives - -config x-window-manager Es erscheint ein Men, aus dem durch Eingabe einer Zahl der gewnschte Window-Manager festgelegt wird. Einige Display-Manager (z. B. der zu KDE gehrende kdm) ermglichen die Auswahl des zu startenden Window-Managers, wodurch die hier vorgenommene Voreinstellung berschrieben werden kann. Der systemweite Standard kann von jedem Benutzer berschrieben werden, indem eine Datei mit dem Namen .xsession im Home-Verzeichnis angelegt wird. Diese Datei kann alle mglichen Shell-Kommandos enthalten, sie kann also auch benutzt werden, um bestimmte Programme zu starten oder Umgebungsvariablen zu setzen, bevor der Window-Manager gestartet wird. Der Window-Manager sollte in der Regel das letzte Programm sein, das aus dieser Datei heraus gestartet wird, weil die Sitzung beendet wird, sobald die Abarbeitung der Datei .xsession beendet ist. Angenommen ein Benutzer mchte ausschlielich mit dem Window-Manager afterstep arbeiten, unabhngig davon, welcher Window-Manager als Systemstandard eingestellt ist. Auerdem mchte dieser Benutzer, dass die Programme xbiff (Paket xcontrib) und xdaliclock (aus dem gleichnamigen Paket) automatisch gestartet werden, sobald die X-Sitzung gestartet wird. Dieser Benutzer knnte die folgende Datei .xsession in seinem Arbeitsverzeichnis anlegen:

9.4 Das X Window System (X11)


# .xsession Beispiel xbiff & xdaliclock & afterstep

329

Die Programme xbiff und xdaliclock mssen im Hintergrund ausgefhrt werden (&-Operator), ansonsten wrde die Ausfhrung der Datei .xsession so lange angehalten werden, bis die Programme beendet wren. Das Debian-Men Die meisten Window-Manager weisen einen Mechanismus auf, mit dem sich Programme starten lassen, ohne dass der Name des zu startenden Programms in einer Shell eingegeben werden muss. Hierbei handelt es sich um Mens, die mit dem Startmen unter MS-Windows oder dem Finder bei Macintosh-Systemen vergleichbar sind. Leider sind die Methoden zur Konguration solcher Mens vllig unterschiedlich, sodass es eine lstige Aufgabe ist, die Mens aller installierten WindowManager konsistent zu halten, also Meneintrge hinzuzufgen, wenn eine Anwendung installiert wurde, bzw. zu entfernen, wenn ein Programm gelscht wurde. Um die automatisierte Pege der Mens beinahe aller Window-Manager kmmern sich die in dem Paket menu enthaltenen Programme. Sie sollten dieses Paket unbedingt installieren, um die installierten Anwendungen bequem ber Mens Ihres WindowManagers zu erreichen. Jedes Paket, das Programme enthlt, die ber Mens aufrufbar sein sollen, legt dazu im Verzeichnis /usr/lib/menu eine Datei ab, in der beschrieben ist, welcher Eintrge den Mens hinzugefgt werden sollen. Jeder Window-Manager (und jedes andere Programm, das einen Auswahlmechanismus ber Mens bereitstellt) enthlt darber hinaus ein Programm, welches aus den einzelnen Meninformationen Kongurationsdateien fr den Window-Manager oder das entsprechende Programm erzeugt, durch welche die richtige Menstruktur aufgebaut wird. Diese Kongurationsdateien mssen immer dann neu angelegt werden, wenn ein Paket mit Programmen, die im Mensystem bercksichtigt werden sollen, installiert oder deinstalliert wird. Aus diesem Grund rufen die Installationsskripte solcher Pakete nach der Installation oder Deinstallation das Programm update-menus auf, das die Menaktualisierung durchfhrt. Gelegentlich ist es erwnscht, dem Mensystem eigene Eintrge hinzuzufgen oder standardmig vorgesehene Eintrge zu berschreiben. Systemverwalter knnen deshalb im Verzeichnis /etc/menu eigene Mendenitionen ablegen, durch die entweder neue Mens erzeugt werden oder bestehende Denitionen berschrieben werden. Darber hinaus knnen Benutzer ein Unterverzeichnis .menu in ihrem Home-Verzeichnis anlegen und dort ebenfalls Mendenitionsdateien ablegen. Jede Denition eines Meneintrags in einer Mendenitionsdatei beginnt mit einem Fragezeichen und der Zeichenkette package, hinter der sich in Klammern der Name des Pakets bendet, zu dem der Meneintrag gehrt. Der Meneintrag wird nur dann generiert, wenn das betreffende Paket auch tatschlich installiert ist. Fr

330

9 Konguration wichtiger Systemkomponenten

Meneintrge, die keinem Paket zugeordnet sind, ist ein beliebiger Paketname zu verwenden, der mit der Zeichenfolge local. beginnt. Nach dem Paketname folgt ein Doppelpunkt, und daraufhin knnen verschiedenen vorgegebenen Variablen Werte zugewiesen werden. Wenn mehr als eine Zeile fr einen Eintrag bentigt wird, sind fortzusetzende Zeilen mit einem Backslash abzuschlieen. Im folgenden nden Sie als Beispiel eine Mendenition, mit der ein Eintrag fr das Programm wine erzeugt wird:
?package(local.wine):needs="x11" section="Apps/Editors" \ title="MS Winword" \ command="wine - -language de - -managed \ /dosC/Programme/MSOffice/Winword/winword.exe"

Mit local.wine als Paketbezeichnung wird hier festgelegt, dass es sich um eine lokale Mendenition handelt und der Meneintrag unabhngig von dem Vorhandensein irgendwelcher Pakete erzeugt werden soll. Die einzelnen Variablenbezeichner haben die folgende Bedeutung: needs=Voraussetzung Hiermit wird angegeben, welche Voraussetzung erfllt sein muss, damit das Programm benutzt werden kann. Programme fr X11 knnen beispielsweise nicht ausgefhrt werden, wenn kein X-Server zur Verfgung steht. Ebenso knnen Programme fr die Konsole unter X11 nicht direkt, sondern nur in einem Terminalfenster ausgefhrt werden. Fr Voraussetzung kann folgendes angegeben werden: x11 das Programm kann nur unter X11 ausgefhrt werden; text das Programm muss in einem Terminalfenster oder an der Konsole ausgefhrt werden; vc das Programm kann nur an einer virtuellen Konsole, nicht aber in einem Terminalfenster ausgefhrt werden. section="Menname[/Untermen ...]" Die Mens zum Starten von Anwendungen weisen normalerweise eine baumartige Struktur auf, in der zunchst alle Programme einer Kategorie (z. B. Spiele) in einem Men zusammengefasst werden und sich verschiedene Unterkategorien in Untermens benden (z. B. Denkspiele, Actionspiele). Hiermit kann der Platz in der Menstruktur fr den betreffenden Menbefehl angegeben werden. Mens und Untermens sind durch einen Schrgstrich voneinander zu trennen. Beispiel: Games/Action. Informationen zur Menstruktur nden Sie in der Manualseite menule (Abschnitt 5). icon="Bilddatei" Diese Variable deniert, welches Bild (Icon) neben dem betreffenden Meneintrag angezeigt werden soll. Die Angabe ist optional. Nicht alle Mens knnen Bilder anzeigen. Fr solche Mens hat diese Variable keine Bedeutung. Icondateien sollten im XPM-Format vorliegen. title="Titel" Gibt mit Titel die Bezeichnung des Meneintrags an. longtitle="Beschreibung" Gibt eine Beschreibung des Meneintrags an. Abhngig vom Window-Manager werden diese Beschreibungen beispielsweise mit Hilfe der Bubble Help angezeigt. command="Kommando" Gibt mit Kommando den Namen des Programms an, das bei Auswahl des zugehrigen Menpunkts aufgerufen werden soll. Programm-

9.4 Das X Window System (X11)

331

namen sind mit vollem Pfad- und Dateinamen anzugeben. Optionen werden durch Leerzeichen getrennt hinter dem Programmnamen angefgt. Um einen Meneintrag zu lschen, der durch ein Paket erzeugt wurde, wird in /etc/menu oder im Verzeichnis .menu im Home-Verzeichnis des Benutzers eine leere Mendatei angelegt. Die Datei muss den gleichen Namen haben wie die Datei im Verzeichnis /usr/lib/menu, durch welche der Eintrag deniert wird. Nachdem eine Mendenition hinzugefgt, verndert oder entfernt wurde, muss das Kommando update-menus aufgerufen werden: debian:~# update-menus Darber hinaus ist es notwendig, den Window-Manager neu zu starten, weil er Mendenitionen nur bei seinem Start einliest. Wenn Sie die Arbeitsplatzumgebungen KDE oder GNOME verwenden reicht es, das Panel neu zu starten. Wenn eine Mendenition im Verzeichnis .menu eines Benutzers verndert wurde, ist update-menus von dem betreffenden Benutzer aufzurufen. Auch in diesem Fall ist der Window-Manager neu zu starten. Mehr Informationen zu Mendenitionen nden Sie in der Manualseite menule, zu dem Programm update-menus in der dazugehrigen Manualseite sowie allgemein zum Mensystem in der Programmdokumentation unterhalb des Verzeichnisses /usr/share/doc/menu. 9.4.14 Display-Manager Ein Display-Manager stellt einen Server-Prozess zur Verfgung, mit dem sich XServer verbinden knnen, um sich von diesem steuern zu lassen. Der DisplayManager ist dann fr alles verantwortlich, was auf dem betreffenden Server dargestellt wird. Normalerweise ist dies zunchst ein Fenster fr die Anmeldung. Nach der Anmeldung wird die X-Sitzung gestartet, beispielsweise ein WindowManager und andere Programme. Display-Manager und X-Server kommunizieren miteinander ber das Netz, sie knnen deswegen auf unterschiedlichen Rechnern ausgefhrt werden. Die Authentizierung sowie die X-Sitzungen werden auf dem Rechner ausgefhrt, auf dem der Display-Manager luft. Ein Spezialfall und gleichzeitig die am meisten genutzte Anwendung von Display-Managern besteht in der Verwaltung eines X-Servers durch einen DisplayManager, der auf demselben Rechner ausgefhrt wird wie der X-Server. In diesem Fall bernimmt der Display-Manager eine weitere Aufgabe: Er startet den X-Server und berwacht ihn. Wenn der X-Server beendet wird, startet der Display-Manager ihn neu. Nach der Installation sind alle Displaymanager zunchst so konguriert, dass sie lediglich einen lokalen X-Server verwalten und aus Sicherheitsgrnden keine Anfragen von X-Servern auf anderen Rechnern beantworten. Display-Manager werden wie andere Systemdienste ber Skripte im Verzeichnis /etc/init.d gestartet. Prinzipiell sollte nur ein Display-Manager auf dem System aktiv sein. Allerdings ist es mglich, mehrere Displaymanager zu installieren. In solchen Fllen mssen die Links in den Verzeichnissen rc2.d bis rc5.d manuell angepasst

332

9 Konguration wichtiger Systemkomponenten

werden, damit in einem Runlevel nicht zwei Display-Manager gleichzeitig ausgefhrt werden. Dies knnte zu Konikten fhren (siehe Seite 456). Ein Problem ergibt sich, wenn whrend des Systemstarts ein Display-Manager gestartet wird, aber der X-Server noch nicht richtig konguriert ist. In diesem Fall startet der Display-Manager den X-Server, der sich sofort auf Grund einer ungltigen Konguration beendet, woraufhin der Display-Manager den Server erneut startet usw. Das System kann dadurch im schlimmsten Fall unbenutzbar werden, weil es stndig zwischen graschem und Textmodus hin- und her schaltet. Ein Ausweg in einer solchen Situation besteht darin, den Rechner im Single-User-Modus zu starten und den Link auf das Startskript des Display-Managers zu entfernen (siehe Seite 452). In der folgenden Liste nden Sie die wichtigsten Display-Manager unter Debian GNU/Linux: xdm Dies ist der klassische Display-Manager unter Linux. Das Programm kann mehrere X-Server auf mehreren Rechnern gleichzeitig verwalten und kommt mit einem Programm zur Auswahl des Rechners, auf dem eine X-Sitzung gestartet werden soll (Chooser). Informationen zur Konguration von xdm liefert die zugehrige Manualseite. Um den Hintergrund des xdm-Anmeldebildschirms anzupassen, knnen Sie das Paket xbanner verwenden. wdm Dieses Paket beinhaltet einen Ersatz fr xdm, der sich im Look and Feel des Window-Managers Window-Maker prsentiert. kdm Dies ist der KDE-Display-Manager. Dieser Display-Manager wird zum Teil ber Dateien im Verzeichnis /etc/X11/kdm konguriert, welche die gleiche Bedeutung und den gleichen Aufbau haben wie die entsprechenden Dateien fr xdm. Erscheinungsbild und andere Eigenschaften werden ber das Programm kdmcong vorgenommen, das vom Verwalter unter X11 auszufhren ist. gdm Der GNOME-Display-Manager. Wenn Sie GNOME verwenden, ist zu empfehlen, diesen Display-Manager einzusetzen, weil dadurch zum einen vom Anfang bis zum Ende der Sitzung ein einheitliches Erscheinungsbild des Desktops geboten wird, zum anderen, weil dieser Display-Manager in der Lage ist, GNOME-Sitzungen automatisch richtig zu starten. Auch dieser DisplayManager enthlt ein Programm zur Auswahl des Rechners, auf dem eine XSitzung gestartet werden soll. Konguration von gdm. Die Konguration dieses Display-Managers geschieht ber Dateien im Verzeichnis /etc/X11/gdm. Die wichtigste Datei in diesem Verzeichnis ist gdm.conf, in der die Zugriffsrechte auf den Display-Manager konguriert werden. Die Datei besteht aus verschiedenen Abschnitten, wobei jeder Abschnitt mit einer Zeile beginnt, in der sich die Abschnittsbezeichnung in eckigen Klammern bendet. Unter der Abschnittsbezeichnung stehen die Namen verschiedener Kongurationsvariablen, denen nach einem Gleichheitszeichen Werte zugewiesen werden. Die Datei kann leere Zeilen und Kommentare enthalten. Kommentare sind mit einem Doppelkreuz (#) einzuleiten.

9.4 Das X Window System (X11)

333

Im Abschnitt [daemon] werden die allgemeinen Einstellungen des DisplayManagers vorgenommen. Das sind im wesentlichen Datei- und Verzeichnisnamen, die normalerweise nicht gendert werden. Im Abschnitt [xdmcp] wird bestimmt, ob von anderen Rechnern aus auf den Display-Manager zugegriffen werden darf. Hierzu ist die Variable Enable auf den Wert 1 zu setzen. Der Abschnitt [Greeter] bestimmt das Erscheinungsbild des Anmeldefensters. Wenn der Wert der Variablen Browser auf 1 gesetzt wird, zeigt gdm in diesem Fenster die Namen aller bekannten Benutzer mit zugehrigen Bildchen4 . Mit der Variable Exclude kann bestimmt werden, welche Benutzer in diesem Dialog nicht angezeigt werden sollen. Hier sollten die Namen aller Systembenutzerkonten aufgefhrt sein. Im Abschnitt [servers] wird schlielich festgelegt, wieviele und welche lokalen X-Server von gdm gestartet und kontrolliert werden sollen. Achtung: Wenn Sie den Zugriff auf den Display-Manager per xdmcp gestatten, sollten Sie diesen ber die Dateien /etc/hosts.allow und /etc/hosts.deny aus Sicherheitsgrnden auf solche Rechner einschrnken, denen Sie den Zugriff tatschlich gestatten wollen. (siehe Kapitel 17.7.2, S. 672)! Mehr Informationen zu gdm nden Sie in der Online-Hilfe zu dem Programm. Diese Hilfe knnen Sie mit einem Webbrowser oder dem GNOME-Hilfeprogramm gnome-help-browser lesen. Das Inhaltsverzeichnis der gdm-Hilfe bendet sich in der Datei /usr/share/gnome/help/gdm/C/index.html. Umgebungsvariablen und Display-Manager Wenn Sie X11 mit einem Display-Manager starten, erfolgt die Benutzeranmeldung nicht wie blich an der Konsole mit dem Programm login, sondern ber den DisplayManager. Dieses Programm startet keine Shell, sondern eine X-Sitzung, sodass Umgebungsvariablen (siehe Seite 540), die normalerweise durch die Shell gesetzt werden, nicht gesetzt werden. Die Folge ist, dass ber Umgebungsvariablen vorgenommene Einstellungen nicht zur Verfgung stehen. Allerdings steht hier ein hnlicher Mechanismus wie bei der Shell zur Verfgung. Whrend des Starts eine X-Sitzung werden die Anweisungen ausgefhrt, die sich in der Datei /etc/environment benden, sofern diese Datei existiert. In dieser Datei drfen alle blichen Shell-Anweisungen vorkommen. Wenn Sie beispielsweise deutsche Spracheinstellungen auch unter X11 verwenden mchten, schreiben Sie die folgende Anweisung in die Datei: export LANG=de_DE

Das Programm lsst sich sogar so kongurieren, dass fr jeden Benutzer ein individuelles Bild angezeigt wird. Dies ist in der Online-Hilfe zu dem Programm beschrieben, die am einfachsten mit dem Programm gnome-help-browser zu lesen ist.

334

9 Konguration wichtiger Systemkomponenten

9.4.15 Weitere Informationen zu X11 Auch zu X11 ist reichlich Information frei verfgbar. Im Paket xserver-common benden sich Dateien mit ausfhrlichen Informationen zu bestimmten GrakChipstzen und den unterschiedlichen X-Servern. Diese Dateien werden im Verzeichnis /usr/share/doc/xserver-common abgelegt. Dort liegt auch die Datei README.Cong, in der Sie weitere Informationen zur Konguration von X11 nden. Grundlegende Informationen zu X11 und zur Benutzung der Server entnehmen Sie den Manualseiten X, Xfree86, Xserver, startx sowie xinit. Dort nden Sie auch Verweise auf weitere lesenswerte Manualseiten. Desweiteren stehen im Paket doc-linux-text drei HOWTOs zu X11 zur Verfgung. Das XFree86-HOWTO (/usr/share/doc/HOWTO/en-txt/XFreee86HOWTO.txt.gz) befasst sich insbesondere mit der Installation von X11. Auf die Aspekte der Arbeit mit X11 geht das X-Window-User-HOWTO ein, und im XFree86-Video-Timings-HOWTO nden Sie Informationen zur manuellen Berechnung von Modelines fr die Datei /etc/X11/XF86Cong. Wer sich fr die Hintergrnde, Protokolle und Funktionsweise von X11 interessiert, sollte das Paket xbooks installieren. Dort liegen PostScript-Dokumente zu diesen Themen. Weitere Informationen im Internet, beispielsweise auf der Startseite des XFree86-Projektes (http://www.xfree86.org/) oder auf der XFree86-Seite von B RANDEN ROBINSON, dem Entwickler, der die X-Pakete fr Debian erstellt (http://www.debian.org/~branden/).

9.5 Arbeitsplatzumgebungen
Arbeitsplatzumgebungen (Desktop environments oder kurz Desktops) bestehen aus Bibliotheken und Programmen. Weil alle Programme einer Arbeitsplatzumgebung dieselben Funktionen verwenden, lassen sie sich in vielerlei Hinsicht hnlich gebrauchen und bieten ein hnliches Erscheinungsbild. Auerdem knnen verschiedene Anwendungen einer Umgebung in bestimmten Situationen miteinander kommunizieren. Teil von Arbeitsplatzumgebungen ist in der Regel ein Dateimanager, also ein Programm, mit dem die Dateien und Verzeichnisse des Systems visualisiert werden und sich mit der Maus und ber Mens manipulieren lassen. Dazu kommt meist ein Programm, mit dem Anwendungen gestartet werden knnen. Innerhalb einer Arbeitsplatzumgebung ist es oft mglich, eine Datei aus dem Dateimanager mit der Maus auf eine Anwendung zu ziehen und die Datei so mit der Anwendung zu ffnen. Dies ist einfacher als der Weg ber Mens oder Dialoge. Die beiden wichtigsten Arbeitsplatzumgebungen fr Linux sind KDE und GNOME. Kommerziell erhltlich ist die nicht freie, Motif-basierte Arbeitsplatzumgebung CDE (Common Desktop Environment), die auf vielen kommerziellen UNIXSystemen eingesetzt wird. Es ist mglich, mit Programmen fr eine bestimmte Arbeitsplatzumgebung zu arbeiten, obwohl eine andere Umgebung benutzt wird. Dann ist lediglich erforderlich, dass die notwendigen Bibliotheken fr beide Umgebungen installiert sind.

9.5 Arbeitsplatzumgebungen

335

9.5.1 K Desktop Environment (KDE) Die aktuelle Version der Arbeitsplatzumgebung KDE (Version 3.1.4) basiert auf einer Bibliothek (Qt), bei der es sich nicht um freie Software handelt. KDE selbst ist ein Open-Source-Projekt, das im wesentlichen unter den Bedingungen der GPL verffentlicht ist. Das KDE-Projekt stellt neben dem Quellcode auch Pakete im DebianFormat zur Verfgung. Mehr Informationen hierber auf der Homepage des KDEProjektes unter dem URL http://www.kde.org/. Diese Pakete sind keine ofziellen Debian-Pakete. Sie knnen KDE mit APT installieren, wenn Sie der Datei /etc/apt/sources.list folgende Zeile hinzufgen (siehe Kapitel 8.4.1, S. 238): deb ftp://ftp.kde.org/pub/kde/stable/3.1.4/ distribution/deb/woody i386/ Alternativ oder zustzlich knnen Sie auch diesen Eintrag benutzen: deb http://kde.tdyc.com/ woody kde kde2 contrib rkrusty Aktualisieren Sie danach APTs Datenbank verfgbarer Pakete. Wenn Sie eine andere Version von KDE oder andere Server verwenden, mssen Sie die Eintrge anpassen. KDE besteht aus mehreren Paketen, die wichtigsten sind: kdebase Basisdateien und -anwendungen fr KDE. Hier bendet sich der WindowManager kwm sowie der Dateimanager kfm. kdebase-doc Dokumentation der Basisanwendungen von KDE. kdebase-i18n Untersttzung fr nicht-englische Sprachen. kdelibs2g Basisbibliotheken. kdelibs2g-dev Entwicklerdateien fr die Basisbibliotheken. Installieren Sie dieses Paket, wenn Sie den Quellcode fr KDE-Programme bersetzen mchten. kdesupport0g Zustzliche Bibliotheken, die von KDE bentigt werden. kdeadmin Werkzeuge zur Systemverwaltung fr KDE. In dem Paket bendet sich ein Programm zum Bearbeiten von Runlevels sowie ein Programm zur Benutzerverwaltung. kdegames Eine Sammlung von Spielen fr KDE. kdegraphics Einige Programme zum Betrachten und Bearbeiten von Grakdateien. kdemultimedia Multimedia-Anwendungen fr KDE (CD-Player etc.) kdenetwork Netzanwendungen fr KDE. Das Paket enthlt im wesentlichen ein Email- und ein Internet-News-Programm. kdetoys Einige Spielzeuge (Puzzle, Mondphasen, Aphorismen . . . ). kdeutils Einige Werkzeuge wie Taschenrechner, Editor, Hexadezimaleditor usw. kdewallpapers Hintergrundbilder fr KDE. kdm KDE-Display-Manager Um KDE benutzen zu knnen, mssen Sie die Pakete kdelibs2g, kdebase und kdesupport installieren. Wenn Sie KDE in deutscher Sprache verwenden wollen, sollten Sie zustzlich das Paket kdebase-i18n installieren. Falls Sie gengend Festplattenplatz (ca. 100 MB) zur Verfgung haben, sollten Sie jedoch das gesamte Paket installieren. Dazu verwenden Sie das folgende Kommando:

336

9 Konguration wichtiger Systemkomponenten

debian:~# apt-get install kdebase kdebase-doc kdebase-i18n kdelibs2g-dev kdeadmin kdegraphics kdemultimedia kdenetwork kdesupport0g kdetoys kdeutils kdewallpapers kdegames kdm Wenn Sie die Installation von der Konsole aus durchfhren und kein anderer Display-Manager aktiv ist, sollte der KDE-Display-Manager whrend der Installation automatisch gestartet werden. Falls dies nicht der Fall ist, knnen Sie ihn manuell durch die Eingabe des folgenden Kommandos starten (whrenddessen sollte kein anderer X-Server ausgefhrt werden): debian:~# /etc/init.d/kdm start Geht alles gut, erscheint ein Fenster, in dem Sie Ihren Benutzernamen und Ihr Passwort eingeben. Im Men Session Type sollten Sie KDE auswhlen. Die beiden wichtigsten Programme in KDE sind das Panel sowie der Dateimanager.

Abbildung 9.4. Die Arbeitsplatzumgebung KDE

Der Dateimanager (kfm) malt die Icons auf den Bildschirmhintergrund und ist fr alle Fenster verantwortlich, in denen Verzeichnisinhalte dargestellt werden. In Abbildung 9.4 sehen Sie das Home-Verzeichnis des Benutzers meier in einem solchen Fenster. Der kfm ist mittlerweile durch den KDE-Web-Browser konqueror abgelst worden. Das Panel ist fr die Aufnahme des K-Mens zustndig. Hinter diesem Men verbergen sich alle KDE-Anwendungen sowie das Debian-Men. Die Einstellun-

9.5 Arbeitsplatzumgebungen

337

gen von KDE werden mit dem KDE-Kontrollzentrum verndert, das sich ebenfalls aus dem K-Men heraus starten lsst. Um die Sitzung zu beenden, ist im K-Men das Kommando Abmelden, bzw. Logout auszuwhlen. 9.5.2 GNU Network Object Model Environment (GNOME) Installation GNOME besteht aus einer groen Anzahl von Programmen und Bibliotheken, die sich in unterschiedlichen Paketen benden. Zu trennen sind dabei die eigentlichen Herz-Anwendungen und Bibliotheken, die GNOME selbst ausmachen, von solchen Programmen, welche die Bibliotheken und Dienste des GNOME-Systems benutzen und es in seiner Funktionalitt erweitern. Um die Installation von GNOME zu erleichtern, wurden die einzelnen GNOME-Pakete in den folgenden vier TaskPaketen zusammengefasst: task-gnome-desktop Dieses Task-Paket installiert alle Pakete, die den Kern von GNOME beinhalten. Dazu gehren das Panel, das Kontrollzentrum, das Terminal-Emulationsprogramm sowie der Dateimanager. task-gnome-apps Mit diesem Paket wird eine groe Anzahl an Werkzeugen wie ein Programm zur Arbeit mit Archiven, ein Bildbetrachtungsprogramm, ein Programm zur Prozessverwaltung oder Multimedia-Programme installiert. Dazu kommen einige groe Anwendungen wie Editoren und eine Tabellenkalkulation. task-gnome-net Durch die Installation dieses Task-Pakets werden einige Anwendungen und Werkzeuge fr die Arbeit im Netz installiert. Dazu gehren das Email-Programm balsa (siehe S. 658), ein ICQ-Programm (gnomeICU)5 und ein IRC6 -Klient. task-gnome-games Dieses Task-Paket fasst eine groe Menge GNOME-basierter Spiele zusammen. Sie mssen mindestens das Paket task-gnome-desktop installieren, die anderen Pakete sind optional. Um GNOME komplett mit allen Paketen zu installieren, geben Sie folgendes Kommando ein (die installierten Pakete bentigen ungefhr 100 MB zustzlichen Festplattenplatz): debian:~# apt-get install "task-gnome-*" Falls es nach der Eingabe dieses Kommandos zu einer Fehlermeldung kommt, in der mitgeteilt wird, dass bestimmte Pakete installiert werden mssen, um Abhngigkeiten aufzulsen, aber nicht installiert werden, whlen Sie die betreffenden Pakete ebenfalls an der Kommandozeile aus:
5

Der Internetdienst ICQ ermglicht es zu sehen, wann andere Teilnehmer online sind, und mit diesen zu kommunizieren. Mehr Informationen dazu unter http://www.icq.com/. 6 IRC steht fr Internet Relay Chat, ein Dienst zur Online-Kommunikation zwischen den Benutzern (Chat).

338

9 Konguration wichtiger Systemkomponenten

debian:~# apt-get install "task-gnome-*" gmc gnome-faq Sie bentigen zustzlich einen Window-Manager (z. B. enlightenment oder icewm-gnome). In den folgenden Erluterungen wird von enlightenment als WindowManager ausgegangen. Auerdem sollten Sie das Paket gnome-help installieren, damit Sie die Online-Hilfe von GNOME-Anwendungen benutzen knnen. Weiter empehlt sich die Installation von Netscape (siehe S. 652), weil dieser Webbrowser von einigen GNOME-Anwendungen vorausgesetzt wird. Damit Sie mit GNOME Bildschirmschoner benutzen knnen, muss das Paket xscreensaver installiert sein. Arbeiten mit GNOME und Enlightenment Wenn Sie den Display-Manager gdm verwenden (empfohlen), wird die GNOMESitzung nach der Anmeldung automatisch gestartet, falls Sie als Sitzung im Men Session des Anmeldebildschirms GNOME auswhlen. Falls Sie X11 mit einem anderen Display-Manager oder ber das Kommando startx starten, mssen Sie folgendes Kommando in die Datei .xsession in Ihrem Home-Verzeichnis schreiben: gnome-session Dies sollte das letzte Kommando in der Datei sein. Falls sich dort vorher der Aufruf eines Window-Managers befunden hat, ist dieser aus der Datei zu lschen bzw. auszukommentieren. Enlightenment ist standardmig so eingestellt, dass Tastatureingaben an das Fenster geschickt werden, ber dem sich der Mauszeiger bendet. Wenn Sie dieses Verhalten strt, ndern Sie es, indem Sie mit der rechten Maustaste auf eine freie Stelle des Bildschirms klicken und dort den Menpunkt Focus Settings auswhlen. Aktivieren Sie in dem daraufhin erscheinenden Dialog Focus follows mouse clicks sowie Clicking in a window always raises it und danach die Schaltche OK, um das unter MS-Windows bliche Verhalten zu erreichen, bei dem ein Fenster nur dann aktiviert wird, wenn man es mit der Maus anklickt. Wenn Sie mit der mittleren Maustaste auf einen freien Bereich des Bildschirms klicken, erscheint ein Men, in welches das Debian-Men integriert ist. Von hier aus knnen Sie alle Anwendungen aufrufen. In demselben Men bendet sich auch der Punkt Help, mit dem die Online-Hilfe des Window-Managers aktiviert wird. Ein Fenster wird verschoben, indem es entweder an der Kontrollleiste (Balken am oberen Rand eines Fensters) mit der linken Maustaste festgehalten wird oder die Taste A LT gedrckt wird und das Fenster gleichzeitig an einer beliebigen Stelle mit der linken Maustaste festgehalten und dann verschoben wird. An der Kontrollleiste jedes Fensters benden sich rechts drei Knpfe, mit denen das Fenster minimiert, vergrert und geschlossen werden kann. Minimierte Fenster landen in der Iconbox (Abbildung 9.5 ganz oben in der Mitte). Sie mssen dort angeklickt werden, um wieder hergestellt zu werden. In der Abbildung oben links ist der Pager zu sehen. Seine Aufgabe besteht darin, den Inhalt der virtuellen Bildschirmche darzustellen. Um auf einen anderen Bereich der virtuellen Flche zu

9.5 Arbeitsplatzumgebungen

339

Abbildung 9.5. Die Arbeitsplatzumgebung GNOME mit dem Window-Manager Enlightenment.

wechseln, ist mit der linken Maustaste in den entsprechenden Bereich des Pagers zu klicken. Sie knnen mit mehreren virtuellen Oberchen arbeiten; fr jeden dieser virtuellen Bildschirme existiert dann ein Pager. Die Icons auf dem Bildschirm gehren zum GNOMEs Dateimanager gmc. Jedem Icon ist eine bestimmte Aktion zugeordnet. Die Aktion wird ausgelst, wenn mit der linken Maustaste doppelt auf das entsprechende Icon geklickt wird. Wenn Sie mit der rechten Maustaste auf ein Icon klicken, erscheint ein Kontextmen, aus dem unterschiedliche Kommandos aufgerufen werden knnen, durch die das Object, das durch das Icon reprsentiert wird, manipuliert wird. ber das Kontextmen eines CD-Icons ist es mglich, die CD in das Dateisystem einzubinden und sie wieder zu entfernen oder sie aus dem Laufwerk auszuwerfen. Durch Doppelklick auf das Icon Home Directory ffnet sich ein Fenster des Dateimanagers, in dem sich auf der linken Seite eine baumartige Struktur bendet, die das Dateisystem reprsentiert, und auf der rechten Seite die Dateien und Verzeichnisse im Home-Verzeichnis zu sehen sind. Mit diesem Fenster kann im Dateisystem navigiert werden. Um Dateien zu kopieren oder zu verschieben, ffnet man am besten zwei Fenster des Dateimanagers und zieht die zu kopierenden Dateien mit der linken Maustaste von einem Fenster in das andere. Sie knnen mehrere Dateien gleichzeitig bearbeiten, wenn diese gemeinsam selektiert sind. Diesem Zweck dient das Gummiband, das Sie mit der linken Maustaste um eine Gruppe von Dateien le-

340

9 Konguration wichtiger Systemkomponenten

gen. Auerdem knnen Sie mehrere Dateien durch einfaches Anklicken auswhlen, wenn Sie gleichzeitig die S TRG-Taste gedrckt halten. Das Objekt ganz unten in der Abbildung 9.5 ist das Panel. In diesem bendet sich unter dem Fuabdruck das Hauptmen, wo Sie alle installierten GNOMEProgramme sowie das Debian-Men nden. Das Panel selbst beeinussen Sie ber die Kommandos im Untermen Panel des Hauptmens. Dort liegt ein weiteres Untermen (add applet), das gestattet, verschiedene Programme und Werkzeuge in das Panel aufzunehmen. ber das Untermen Settings starten Sie das GNOME Control Center. Das Programm dient dazu, verschiedene Aspekte von GNOME interaktiv zu kongurieren. Hier lsst sich angeben, welcher Window-Manager standardmig mit GNOME benutzt werden soll. Auerdem knnen Sie das System hier fr die Verwendung von Themen kongurieren. Weitere Informationen zu GNOME in der Online-Hilfe gnome-help-browser mit einer ausfhrlichen Anleitung unter GNOME User Guide aus dem Paket gnomeusers-guide-en. Die Homepage des GNOME-Projekts erreichen Sie unter http: //www.gnome.org/.

10 Starten von Linux Bootloader und Bootmanager

10.1 Der Bootprozess eines PCs


10.1.1 BIOS, MBR und Bootsektor Nach dem Einschalten eines PC wird ein fest in den Rechner eingebautes Programm, das BIOS, gestartet. Dieses Programm fhrt zunchst einige Selbsttests durch und bietet dem Benutzer die Mglichkeit, durch Bettigung einer bestimmten Taste oder Tastenkombination in ein Setup-Men zu gelangen, mit dem Einstellungen des BIOS verndert werden knnen. Nachdem die Initialisierung abgeschlossen ist, ldt das BIOS die ersten 446 Byte des Masterbootrecords (MBR) der ersten Festplatte in den Speicher und fhrt diese als Programm aus. Der MBR liegt auf dem ersten Sektor der Festplatte. Insgesamt ist er 512 Byte gro und umfasst neben dem vom BIOS zu ladenden Startprogramm die Partitionstabelle der Festplatte. Das BIOS enthlt einige Routinen, mit denen auf die Hardware des Rechners zugegriffen werden kann. Sie sind gegenber den Funktionen der Betriebssysteme sehr eingeschrnkt. So lassen sich mit dem BIOS nur die ersten 1024 Zylinder jeder Festplatte ansprechen. Ferner kann nur eine eng begrenzte Anzahl von Platten erkannt werden. Zum Zeitpunkt, zu dem das Startprogramm im MBR ausgefhrt wird, steht noch kein Betriebssystem zur Verfgung. Das Startprogramm muss seine eigenen Routinen zur Hardwareansteuerung mitbringen oder die des BIOS benutzen und kann dann Betriebssysteme nur von Festplattenbereichen laden, die durch das BIOS angesprochen werden. Ein solches Startprogramm wird von den meisten Betriebssystemen whrend ihrer Installation in den MBR geschrieben. Es ist Voraussetzung dafr, dass berhaupt ein Betriebssystem gestartet werden kann. Neben dem MBR einer Festplatte hat jede Partition einen eigenen Bootsektor, der ebenfalls 512 Byte gro ist und am Anfang der jeweiligen Partition liegt. Per Konvention berprft das Startprogramm im MBR zunchst, welche Partition in der Partitionstabelle als aktiv markiert ist, und ldt dann den Inhalt des Bootsektors der

342

10 Starten von Linux Bootloader und Bootmanager

aktiven Partition in den Arbeitsspeicher, um diesen ebenfalls als Programm auszufhren. Der Programmcode im Bootsektor der aktiven Partition ist dann in der Regel fr das Laden des Betriebssystems zustndig. Dieses von den meisten Betriebssystemen untersttzte Startkonzept ermglicht, auf einfache Weise das zu startende Betriebssystem festzulegen, indem eine Partition als aktiv markiert wird. Unter Debian GNU/Linux geschieht dies mit dem Kommando activate (S. 768) aus dem Paket util-linux. Unter DOS-basierten Betriebssystemen ist das Programm fdisk zu verwenden. Whrend der Installation von Debian GNU/Linux kann der Bootloader LILO in den Bootsektor einer Partition installiert werden. Dies geschieht jedoch nicht automatisch. Hierfr gibt es verschiedene Grnde. Im Gegensatz zu anderen Betriebssystemen kann Debian GNU/Linux auch in eine logische Partition installiert werden oder auf eine Festplatte, die durch das BIOS nicht angesprochen wird. In solchen Fllen wre der Code im Bootsektor ohnehin nicht nutzbar. Um Linux automatisch starten zu knnen, ist es erforderlich, ein Programm zu installieren, mit dem der Kern nach dem Einschalten des Rechners gestartet wird. Dieses Programm kann wie bei anderen Betriebssystemen in den Bootsektor einer von Linux benutzten Partition installiert werden. Es kann jedoch auch in den MBR installiert werden und dann den kompletten Bootprozess des Rechners steuern. Eine dritte Mglichkeit ist, ein DOS-Programm zu verwenden, mit dem Linux nach dem Start eines DOS-basierten Betriebssystems gestartet wird. 10.1.2 Situationen nach der Basisinstallation Installation von LILO Das Installationsprogramm des Basissystems bietet an, den Standard-Bootloader fr Linux, LILO, in den Bootsektor der primren Partition zu schreiben, in die Sie Debian GNU/Linux installiert haben. Falls Sie Debian GNU/Linux in eine logische Partition installiert haben, besteht die Mglichkeit, den Bootloader in den Bootsektor der erweiterten Partition zu schreiben, in der die betreffende logische Partition liegt. Hierdurch wird es mglich, Linux automatisch zu starten, falls die entsprechende Partition in der Partitionstabelle als aktiv markiert ist, ein MBR vorhanden ist, der den Bootsektor der aktiven Partition startet, und sich die betreffende Partition innerhalb der ersten 1024 Zylinder auf der ersten Festplatte bendet. Ist eine dieser Voraussetzungen nicht erfllt, kann es zu Problemen beim automatischen Start von Linux kommen, und die Bootkonguration muss entsprechend angepasst werden. Alternativ dazu besteht whrend der Installation des Basissystems die Mglichkeit, LILO direkt in den MBR zu installieren. Damit lsst sich Linux auch von anderen Festplatten als der ersten starten, sofern diese vom BIOS angesprochen werden. Eine solche Konguration muss angepasst werden, wenn auer Linux noch andere Betriebssysteme gestartet werden sollen.

10.2 Bootverfahren

343

Installation des MBR Das Installationsprogramm des Basissystems bietet auerdem die Mglichkeit, einen neuen MBR auf die erste Festplatte zu schreiben. Dieser MBR entspricht der oben beschriebenen Konvention, den Programmcode im Bootsektor der aktiven Partition zu laden, mit dem dann ein Betriebssystem geladen werden kann. Gegenber den von DOS-basierten Betriebssystemen installierten MBRs bietet der MBR des DebianSystems eine Reihe von Vorteilen. Beispielsweise kann dieser MBR so konguriert werden, dass die zu startende Partition vom Benutzer ausgewhlt wird. Der Debian-MBR ist in dem Paket mbr enthalten. In dem Paket bendet sich auch das Programm install-mbr, mit dem der MBR neu installiert wird. Dabei wird ein eventuell vorhandener MBR berschrieben. Die Partitionstabelle ist davon nicht betroffen. Zur Installation des MBRs ist folgendes Kommando einzugeben: debian:~# install-mbr /dev/hda Der Parameter /dev/hda bezeichnet die erste Festplatte. Bei SCSI-Systemen wird die erste Festplatte durch die Gertedatei /dev/sda reprsentiert. Weitere Hinweise zu install-mbr auf der Manual-Seite des Programms. Die Benutzung des MBRs ist in der Datei /usr/share/doc/mbr/README beschrieben. Aktive Partition Zustzlich kann whrend der Basisinstallation die Partition, in deren Bootsektor der Bootloader LILO installiert wurde, als aktiv markiert werden. Um die aktive Partition spter zu verndern, ist das Kommando activate aus dem Paket lilo zu verwenden. Diesem Kommando mssen zwei Argumente bergeben werden: zum einen der Name der Gertedatei, welche die zu verndernde Festplatte reprsentiert, und zum anderen die Nummer der Partition, die aktiviert werden soll. Es ist nur mglich, primre oder erweiterte Partitionen zu aktivieren. Sie knnen zwar Partitionen auf allen Festplatten aktivieren, nur die aktive Partition der ersten Festplatte ist jedoch normalerweise von Bedeutung. Um die zweite Partition der ersten IDE-Festplatte zu aktivieren, ist folgendes Kommando einzugeben: debian:~# activate /dev/hda 1 Wenn das Programm ohne Angabe einer Partitionsnummer aufgerufen wird, zeigt es den Namen der aktiven Partition an.

10.2 Bootverfahren
Die beschriebene Einrichtung von Bootsektor, MBR und aktiver Partition whrend der Basisinstallation ist gut geeignet fr Rechner, auf denen Debian GNU/Linux als einziges Betriebssystem installiert wird. Bei Verwendung mehrerer Betriebssysteme empehlt es sich jedoch, ein modiziertes Verfahren zu verwenden, um zur Zeit des Systemstarts die Mglichkeit zu haben, das zu startende Betriebssystem auszuwhlen oder um Linux von einer anderen Festplatte als der ersten zu starten.

344

10 Starten von Linux Bootloader und Bootmanager

10.2.1 Verwendung von Bootdisketten Die simpelste Methode ist die Verwendung einer Bootdiskette, wie sie bei der Installation des Basissystems erzeugt werden kann. Dabei braucht die bestehende Bootkonguration des Rechners nicht verndert zu werden; auerdem gibt es keine Probleme mit der 1024-Zylinder-Grenze. Eine Bootdiskette wird mit dem Kommando mkboot (S. 828) erzeugt. Um eine Bootdiskette mit dem aktuell installierten Kern zu erzeugen, ist folgendes Kommando einzugeben: debian:~# mkboot /vmlinuz Voraussetzung ist, dass die Datei /vmlinuz den zu bootenden Kern enthlt oder einen Link auf die Kerndatei darstellt. Dies ist die Standardeinstellung nach der Installation des Kerns. Alternativ zu Bootdisketten bietet sich die Verwendung von bootfhigen CD/DVDs an, sofern dies vom BIOS des Rechners untersttzt wird. 10.2.2 Starten von Linux unter DOS mit Loadlin Wenn Sie neben Linux ein DOS-basiertes Betriebssystem verwenden, knnen Sie das Programm loadlin.exe verwenden, um Linux von DOS aus zu starten. Loadlin funktioniert nicht mit den Betriebssystemen MS-Windows NT/2000 und IBM-OS/2. Der wesentliche Vorteil bei der Verwendung von Loadlin besteht darin, dass Linux komfortabel gestartet werden kann, ohne die Bootkonguration des Rechners zu verndern. Um Loadlin zu verwenden, bentigen Sie neben dem eigentlichen Programm loadlin.exe aus dem Paket loadlin die Abbilddatei des zu startenden Kerns auf der DOS-Partition. Diese Abbilddatei wird whrend der Basisinstallation auf die Festplatte kopiert; sie bendet sich im Verzeichnis /boot und trgt den Namen vmlinuz, gefolgt von der Versionsnummer des Kerns, beispielsweise vmlinuz-2.4.18. blicherweise bendet sich zustzlich im Rootverzeichnis ein symbolischer Link mit dem Namen /vmlinuz. Installation von Loadlin Um die bentigten Dateien auf die DOS-Partition zu kopieren, muss die Partition in das Dateisystem eingebunden werden. Dies geschieht mit dem Kommando mount (S. 835). Weil DOS normalerweise von der ersten primren Partition der ersten Festplatte gestartet wird, hat die Partition gewhnlich den Namen /dev/hda1 oder /dev/sda1. Legen Sie zunchst ein Verzeichnis an, in das die Partition gemountet werden soll: debian:~# mkdir /dosC Nun binden Sie die Partition ein: debian:~# mount -t msdos /dev/hda1 /dosC

10.2 Bootverfahren

345

Die Partitionsbezeichnung /dev/hda1 ist an den tatschlichen Namen der DOSPartition anzupassen. Im nchsten Schritt wird auf der DOS-Partition ein Verzeichnis erzeugt, in das die Dateien kopiert werden: debian:~# mkdir /dosC/loadlin Die Dateien werden dann in dieses Verzeichnis kopiert: debian:~# cp /boot/vmlinuz-2.4.18 /dosC/loadlin/vmlinuz Hierbei muss die Bezeichnung der Abbilddatei des Kerns (vmlinuz-2.4.18) an den Namen der tatschlich zu verwendenden Datei angepasst werden. Mit: debian:~# cp /usr/lib/loadlin/loadlin.exe.gz /dosC/loadlin kopieren Sie loadlin.exe.gz in das Verzeichnis. Weil das Programm in komprimierter Form vorliegt, wird es nun dekomprimiert: debian:~# gunzip /dosC/loadlin/loadlin.exe.gz Zu Schluss wird die DOS-Partition wieder aus dem Dateisystem entfernt: debian:~# umount /dosC Verwendung von Loadlin Um loadlin.exe zu verwenden, muss der Name der mit Linux verwendeten Rootpartition bekannt sein. Benutzen Sie das Kommando mount ohne Parameter, um die eingebundenen Partitionen zu erfahren:
/dev/sda7 on / type ext2 (rw) proc on /proc type proc (rw) /dev/sda6 on /home type vfat (rw)

Der Ausgabe ist zu entnehmen, dass die Rootpartition in diesem Fall /dev/sda7 ist. Das ist die Partition, die in das Wurzelverzeichnis des Dateisystems, also /, eingebunden ist. Merken Sie sich den Namen der Partition. Wenn der Rechner nun mit einem DOS-basierten Betriebssystem startet, kann Linux ber loadlin.exe gebootet werden. Dies funktioniert nicht, solange MS-Windows ausgefhrt wird. MS-Windows ist deswegen zunchst zu beenden und der Rechner im DOS-Modus zu starten (Startmen -> Beenden -> Computer im DOS-Modus starten). Daraufhin ist in das Verzeichnis zu wechseln, in das loadlin.exe und der Kern kopiert wurden: C:\> cd \loadlin Nun starten Sie Linux mit folgendem Kommando: C:\LOADLIN\> loadlin vmlinuz root=/dev/sda7

346

10 Starten von Linux Bootloader und Bootmanager

Die Angabe des Rootverzeichnisses ist notwendig, damit der zu startende Kern wei, welches Verzeichnis er als Rootverzeichnis einbinden soll. Mit vmlinuz wurde in diesem Beispiel der Name der Datei des zu startenden Kerns angegeben. Wenn Sie den Kern in einer anderen Datei haben, ist das Kommando entsprechend anzupassen. Falls Sie den Standardkern des Installationssystems verwenden, fordert loadlin.exe u. U. dazu auf, die Diskette mit dem Rootdateisystem einzulegen. Sie knnen dann E INGABE drcken, ohne eine Diskette einzulegen. Um die Aufforderung dauerhaft zu umgehen, ist zustzlich die Kommandozeilenoption ramdisk=none zu verwenden. Loadlin Parameter Neben dem Namen des zu startenden Kerns und dem zu verwendenden Rootverzeichnis knnen loadlin weitere Parameter bergeben werden. Dazu gehren alle Bootparameter fr den Linux-Kern (siehe Kapitel 12.2) sowie einige Optionen, die direkt von loadlin.exe interpretiert werden. Folgendes Kommando zeigt die Mglichkeiten an: C:\LOADLIN\> loadlin | more Die wichtigsten Optionen sind: -v Das Programm zeigt an, welches Aktionen es ausfhrt. -t Das Programm testet lediglich die Konguration, aber startet Linux nicht. -txmode Der Bildschirm wird auf 80 Spalten und 25 Zeilen zurckgesetzt, bevor Linux gestartet wird. -dskreset Festplatten werden zurckgesetzt, bevor Linux gestartet wird. Dadurch werden Einstellungen, die durch DOS-Treiber vorgenommen worden und mit Linux nicht vertrglich sind, rckgngig gemacht. Weil die DOS-Kommandozeile nicht lnger als 127 Zeichen sein darf, erlaubt Loadlin, alle Parameter in eine Datei zu schreiben. Dazu sind alle bentigten Parameter untereinander mit einem Texteditor in die Datei zu schreiben. Zustzlich darf eine solche Datei leere Zeilen und Kommentare enthalten, die mit dem Zeichen # eingeleitet werden. Ein Beispiel fr eine Parameterdatei ist:
# Angabe des zu startenden Kerns C:\LOADLIN\VMLINUZ # Loadlin soll ausgefhrte Aktionen anzeigen -v # Angabe der Rootpartition root=/dev/hda3 ramdisk=none # Die Rootpartition soll vom Kern nur zum Lesen eingebunden werden ro # Kernparameter fr den Treiber von AHA152x basierten SCSI-Adaptern aha152x=0x340,10

10.2 Bootverfahren

347

Der Parameter ramdisk=none wird bentigt, wenn Sie den Standardkern des Installationssystems verwenden und loadlin.exe nach dem Laden des Kerns zum Einlegen einer Diskette mit dem Inhalt der Ramdisk auffordert. Der Kernparameter aha152x=0x340,10 wird nur in besonderen Fllen bentigt. Er dient als Beispiel dafr, wie Kernparameter in einer Parameterdatei fr loadlin.exe anzugeben sind. Um Loadlin anzuweisen, die Parameter aus einer Datei zu verwenden, ist das Programm folgendermaen aufzurufen: C:\LOADLIN\> loadlin @params.txt Mit params.txt wird die Parameter-Datei bezeichnet. Diesem Dateinamen muss das @-Zeichen vorangestellt werden. Einrichtung eines Bootmens mit DOS/MS-Windows Mit DOS ist es seit Version 6.0 mglich, ein Bootmen zu erzeugen, das den Start mit unterschiedlichen Kongurationen ermglicht. Hierzu sind die Dateien CONFIG.SYS und AUTOEXEC.BAT, die sich im Wurzelverzeichnis des Startlaufwerks von DOS benden (C:), zu editieren. Das folgende Beispiel zeigt, wie die Datei CONFIG.SYS aufgebaut sein muss, um ein Startmen zu realisieren. Im ersten Abschnitt unter [menu] werden die einzelnen Eintrge des Mens deniert. Der Eintrag menudefault legt fest, welche Konguration standardmig gestartet werden soll und wie lange auf eine Auswahl gewartet werden soll (10 Sekunden). Er ist optional. Kommentare in den Dateien CONFIG.SYS und AUTOEXEC.BAT werden mit dem Schlsselwort rem (remark) eingeleitet. C:\> edit c:\config.sys
[menu] menuitem=WIN, Boot MS-Windows menuitem=LINUX, Boot Linux menuitem=DOS, Boot DOS menudefault=WIN, 10 [WIN] rem hier gehren alle Eintrge hin, die nur beim Start von MS-Windows rem bentigt werden [LINUX] rem dieser Eintrag bewirkt, dass nach der Auswahl von LINUX rem Loadlin gestartet wird shell=c:\loadlin\loadlin.exe @c:\loadlin\params.txt [DOS] rem hier gehren alle Eintrge hin, die nur beim Start von DOS rem bentigt werden device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1) Country=049,850,C:\WINDOWS\COMMAND\country.sys [COMMON] rem hier gehren alle Eintrge hin, die beim Start von jedem System rem bentigt werden. Der Bereich bleibt in der Regel leer.

348

10 Starten von Linux Bootloader und Bootmanager

Die Abschnitte ([WIN], [LINUX] und [DOS]) bestimmen die Einstellungen, die nach Auswahl der entsprechenden Konguration vorgenommen werden sollen. Eine besondere Stellung nimmt der Abschnitt [COMMON] ein. Hier stehen Eintrge, die fr jede Konguration gelten. Um Loadlin zu verwenden, empehlt es sich jedoch, hier keine Einstellungen vorzunehmen, damit nicht irgendwelche DOS-Treiber oder -Programme geladen werden, bevor Linux gestartet wird. Alle Anweisungen, die sich vor dem Einfgen der Menbefehle in der Datei CONFIG.SYS befunden haben, sollten nun sowohl im Abschnitt unter DOS als auch im Abschnitt unter WIN stehen, damit sie bercksichtigt werden, wenn DOS oder MS-Windows gestartet wird. Anweisungen, die nur fr DOS oder nur fr MSWindows bentigt werden, kommen nur in den entsprechenden Abschnitten vor. Die Anweisung shell=. . . im Abschnitt [LINUX] bewirkt, dass loadlin.exe unmittelbar nach dem Start von DOS aufgerufen wird. Im Beispiel wird Loadlin mit einer Parameterdatei benutzt. Bei Verwendung von MS-Windows 95/98 empehlt es sich, zustzlich zwei nderungen in der Datei MSDOS.SYS vorzunehmen, die bewirken, dass MS-Windows nicht automatisch gestartet wird und dass das MS-Windows-Logo nicht gezeigt wird. Der Start von MS-Windows kann dann in der Datei AUTOEXEC.BAT nachgeholt werden. Das MS-Windows-Logo fhrt bei einigen Grakkarten unter Linux zu Problemen. Die Datei MSDOS.SYS ist normalerweise verborgen und schreibgeschtzt. Dies wird mit folgendem DOS-Kommando gendert: C:\> attrib -h -r -s C:\MSDOS.SYS Danach kann die Datei mit einem Editor bearbeitet werden. In der Datei bendet sich ein Abschnitt, der mit [Options] eingeleitet wird. In diesem Abschnitt sind die beiden Optionen Bootgui und Logo auf den Wert 0 zu setzen. Falls die Optionen nicht vorhanden sind, sind sie einzufgen. Der genderte Abschnitt sieht folgendermaen aus:
[Options] Bootgui=0 Logo=0 BootMulti=1 Network=1

Achtung: Wenn Sie DOS 6.22 oder eine ltere Version von DOS verwenden, drfen Sie die Datei boot.sys nicht verndern. Nach abgeschlossener Bearbeitung der Datei werden die Attribute wieder auf ihren ursprnglichen Wert gesetzt: C:\> attrib +h +r +s C:\MSDOS.SYS Die im vorhergehenden Abschnitt beschriebenen nderungen der Datei MSDOS.SYS bewirken, dass sich MS-Windows95/98 wie frhere Versionen von DOS verhalten. MS-Windows wird nicht automatisch gestartet, sondern nach Eingabe des

10.2 Bootverfahren

349

Kommandos win. Um diesen Vorgang in Abhngigkeit von der Auswahl im Bootmen zu steuern, sind die nachfolgend beschriebenen nderungen in der Datei AUTOEXEC.BAT vorzunehmen. Falls Linux durch die Auswahl im Bootmen nicht gestartet wird, fhrt DOS die Anweisungen in dieser Datei aus. Im folgenden Beispiel wird die Umgebungsvariable cong ausgewertet, deren Wert der Auswahl im Startmen entspricht. Abhngig von der zu startenden Konguration wird dann zu verschiedenen Blcken von Kommandos gesprungen.
@echo off rem config ist eine Umgebungsvariable, die das Ergebnis der Auswahl rem im Startmen enthlt. rem Mit folgendem Kommando werden Aktionen abhngig von der Auswahl rem im Startmen ausgef"uhrt goto %config% :LINUX rem kein Eintrag, weil Linux aus der Datei config.sys gestartet wird :WIN rem alle Kommandos, die ausgefhrt werden sollen, bevor MS-Windows rem gestartet wird. rem mit dem Kommando "win" wird MS-Windows gestartet win goto end :DOS rem alle AUTOEXEC.BAT Kommandos, die beim Start von DOS ausgefhrt rem werden sollen. mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi) mode con codepage select=850 keyb gr,,C:\WINDOWS\COMMAND\keyboard.sys doskey :end

Der Abschnitt unter :LINUX ist nur der Vollstndigkeit halber aufgefhrt. Die Anweisungen in diesem Abschnitt werden nie ausgefhrt, weil DOS nach Auswahl von Linux direkt loadlin startet. Im Abschnitt unter :WIN wird MS-Windows aufgerufen, sodass sich MS-Windows auch trotz der nderungen in der Datei MSDOS.SYS automatisch starten lsst. Im letzten Abschnitt benden sich einige Anweisungen, die ausgefhrt werden, wenn DOS allein benutzt werden soll. Alle Anweisungen, die sich bisher in dieser Datei befunden haben, sollten Sie in den Abschnitt unter :WIN nehmen. Sie sollten dort vor der Zeile stehen, mit der MSWindows aufgerufen wird. Anweisungen, die nur bentigt werden, wenn mit DOS ohne MS-Windows gearbeitet werden soll, gehren in den Abschnitt unter :DOS. Anweisungen, die in beiden Fllen bentigt werden, sollten sich vor dem Kommando goto benden.

350

10 Starten von Linux Bootloader und Bootmanager

Problemlsungen bei der Verwendung von Loadlin Das Rootdateisystem kann nicht eingebunden werden Wenn Sie nach dem Start von Linux mit Loadlin die Fehlermeldung VFS: Unable to mount root fs on 0807 erhalten, so ist die wahrscheinlichste Erklrung die, dass Sie beim Aufruf von Loadlin das Rootdateisystem nicht richtig angegeben haben. berprfen Sie den Parameter root= bzw. die Einstellung in der Parameterdatei. Kommandointerpreter kann nicht gestartet werden Wenn Sie ein DOS-Bootmen eingerichtet haben und nach Auswahl von Linux folgende Fehlermeldung erscheint: Die folgende Datei ist beschdigt oder fehlt: command.com dann bedeutet dies in der Regel, dass DOS das Programm loadlin.exe nicht nden und laden konnte. berprfen Sie die mit shell= beginnende Anweisung im LinuxAbschnitt der Datei CONFIG.SYS. Kernparameter werden nicht richtig interpretiert Wenn Sie Loadlin ber eine shell=-Anweisung in der Datei CONFIG.SYS starten und dort angegebene Parameter vom Kern nicht richtig interpretiert werden, liegt das vermutlich daran, dass die shell=-Zeile von DOS in Grobuchstaben an Loadlin bergeben wird. Verwenden Sie in solchen Fllen eine Parameterdatei. CPU ist im V86-Modus Loadlin kann Linux nicht starten, wenn es unter MS-Windows ausgefhrt wird. Beenden Sie MS-Windows und starten Sie den Rechner im DOS-Modus. Sie knnen Loadlin nicht mit MS-Windows NT und Nachfolgern oder IBM-OS/2 verwenden. Ursache ist, dass diese Programme den Prozessor des Rechners im geschtzten Modus betreiben. Dadurch wird es fr Linux unmglich, ebenfalls in diesen Modus zu schalten. Es gibt auch einige DOS-Programme, die den Prozessor in den geschtzten Modus schalten. Wenn diese Programme aktiv sind, knnen Sie Loadlin ebenfalls nicht verwenden. Beenden Sie diese Programme oder verwenden Sie ein Bootmen, aus dem Loadlin gestartet werden kann, bevor solche Programme gestartet werden.

10.3 LILO Der LInux LOader

351

DOS oder MS-Windows lassen sich nicht mehr starten Wenn Sie bei der Bearbeitung der Datei CONFIG.SYS Fehler gemacht haben, kann es im ungnstigsten Fall vorkommen, dass sich DOS oder MS-Windows nicht mehr starten lsst. Sie sollten das System dann mit einer DOS-Bootdiskette starten und den Fehler korrigieren. Alternativ dazu knnen Sie unmittelbar nach dem Start von DOS die Taste F8 drcken und im dann erscheinenden Men Einzelbesttigung auswhlen. Sie werden gefragt, ob die Gertetreiber aus der Datei CONFIG.SYS geladen werden sollen. Beantworten Sie diese Frage mit N. Weitere Informationen zu Loadlin Wenn Sie das Paket loadlin installiert haben, bendet sich die Dokumentation im Verzeichnis /usr/share/doc/loadlin/. Lesenswert sind die Dateien manual.txt.gz sowie examples/test.par. Letztere enthlt ein Beispiel fr eine Parameterdatei. 10.2.3 Verwendung von Bootmanagern Auf dem Markt sind eine Reihe freier und kommerzieller Bootmanager erhltlich. Hierbei handelt es sich um Programme, die nach dem Start des Rechners die Auswahl des zu ladenden Betriebssystems ermglichen und das ausgewhlte starten. Solche Bootmanager werden in der Regel aus dem MBR heraus gestartet. In einigen Fllen bentigen sie ein eigene kleine Partition. Die meisten Bootmanager verfahren nach der Auswahl des Betriebssystems hnlich wie ein Standard-MBR. Sie laden den Programmcode im Bootsektor der Partition, auf der sich das ausgewhlte Betriebssystem bendet. Wenn Sie Linux mit einem solchen Bootmanager starten wollen, ist es erforderlich, ebenfalls entsprechenden Code im Bootsektor der Linux-Partition zu installieren. Dazu empehlt sich die Verwendung von LILO. LILO ist aber auch selbst ein Bootmanager. Das Programm kann neben Linux andere Betriebssystem laden und ermglicht nach entsprechender Konguration die Auswahl zwischen den verfgbaren Systemen.

10.3 LILO Der LInux LOader


10.3.1 Einleitung Das Programm LILO ist der standardmige Bootloader fr Linux auf PCs. Der primre Zweck von LILO besteht darin, Programmcode in den Bootsektor einer LinuxPartition zu installieren, mit dem der Linux-Kern geladen und gestartet wird. LILO ldt auch andere Betriebssysteme wie DOS, MS-Windows, IBM-OS/2 oder Sun Solaris. Er lsst sich so kongurieren, dass er wie ein Bootmanager die verschiedenen Systeme zur Auswahl stellt und das gewnschte System startet. Dabei kann LILO auch so eingestellt werden, dass er je nach Auswahl unterschiedliche

352

10 Starten von Linux Bootloader und Bootmanager

Linux-Systeme oder unterschiedliche Linux-Kerne startet. LILO ist wie Loadlin in der Lage, dem Kern alle notwendigen Parameter zu bergeben, und kann durch bestimmte Einstellungen auch Betriebssysteme von Partitionen booten, von denen sie normalerweise nicht gestartet werden knnen. Um ein Betriebssystem zu laden, benutzt LILO die vom BIOS zur Verfgung gestellten Routinen. Die Folge ist, dass er keine Betriebssysteme von Festplatten oder Partitionen laden kann, auf die nicht direkt vom BIOS aus zugegriffen werden kann. So lsst sich mit dem BIOS nicht auf Daten oberhalb der ersten 1024 Zylinder einer Festplatte zugreifen, weshalb LILO von dort keine Betriebssysteme laden kann. Diese Grenze entspricht bei EIDE-Festplatten, die im LBA-Modus betrieben werden, knapp 8 GB1 (siehe auch Kap. 2.5.3 auf Seite 30). 10.3.2 Auswahl eines Installationsortes fr LILO Wenn LILO in den MBR der ersten Festplatte installiert wird, dient er als MasterBootmanager. Er ist dann fr das Laden aller vorhandenen Betriebssysteme verantwortlich. Im allgemeinen ist jedoch zu empfehlen, LILO in den Bootsektor einer Linux-Partition zu installieren. Dies bietet den Vorteil, dass man ein zweistuges Bootverfahren hat, bei dem zunchst durch die aktive Partition oder einen anderen Bootmanager bestimmt wird, von welchem Bootsektor weiter gebootet wird. Auch wenn LILO nicht im MBR installiert ist, kann er andere Betriebssystem laden. Es ist also auch bei einer solchen Konguration nicht notwendig, durch Aktivierung der zu startenden Partition das Betriebssystem festzulegen, sondern es reicht aus, die Partition zu aktivieren, in die LILO installiert wurde, und dann das zu startende Betriebssystem auszuwhlen. Auf der anderen Seite kann eine alte Bootkonguration schnell wieder hergestellt werden, indem eine Partition mit einem anderen Betriebssystem aktiviert wird. Prinzipiell kann LILO in jede Linux-Partition installiert werden. Normalerweise verwendet es die von Linux benutzte Root- oder Bootpartition. Wenn Linux in eine logische Partition installiert wurde, sollte LILO in dem Bootsektor der erweiterten Partition installiert werden, in dem sich die betreffende logische Partition bendet. Der Grund hierfr ist, dass mit den meisten MBRs nur Bootsektoren von primren Partitionen geladen werden knnen und erweiterte Partitionen zugleich primre Partitionen sind2 . Es gibt eine Ausnahme von der Regel, LILO in den Bootsektor der LinuxPartition zu installieren. Der Code im MBR ist in der Regel nur dazu in der Lage, Bootsektoren von der ersten Festplatte zu laden. Dies gilt fr die MBRs, die von DOS oder MS-Windows installiert werden, sowie fr den Debian-MBR aus dem Pa1 LILO untersttzt ab Version 22 eine neuere BIOS-Erweiterung, mit der auch Daten oberhalb von 1024 Zylindern gelesen werden knnen. 2 Dies kann zu Problemen fhren, falls dort bereits ein anderes Betriebssystem seinen Bootsektor installiert hat, also etwa eine andere Linux-Installation, die sich ebenfalls auf einer der logischen Partitionen innerhalb der erweiterten Partition bendet. Bei Verwendung von DOS oder MS-Windows ist das jedoch nicht zu befrchten.

10.3 LILO Der LInux LOader

353

ket mbr. Wird durch den MBR jedoch ein Bootmanager gestartet, ist dieser in der Lage, Betriebssysteme von anderen Festplatten zu laden. Wenn also neben LILO kein Bootmanager benutzt wird und Linux sich nicht auf der ersten Festplatte bendet, kann LILO in den MBR installiert werden, um Linux von einer anderen Festplatte zu laden. Hierbei gilt weiterhin die Einschrnkung, dass das BIOS in der Lage sein muss, die zustzliche Platte, auf der sich Linux bendet, anzusprechen. ltere BIOS knnen nur die ersten zwei Festplatten ansprechen, Bei Mischsystemen (SCSI- und IDE-Festplatten) knnen in der Regel nur die IDEFestplatten angesprochen werden. Neuere BIOS knnen hingegen die ersten vier Festplatten ansprechen und auch bei Mischsystemen von SCSI-Festplatten booten. 10.3.3 LILOs Bestandteile Neben dem Code im Bootsektor einer Partition bentigt LILO einige weitere Dateien, die sich im Verzeichnis /boot benden. Weil im Bootsektor selbst nur relativ wenig Platz (446 Byte) vorhanden ist, bendet sich dort im wesentlichen nur Code, der andere Teile LILOs von der Festplatte ldt und diese dann ausfhrt. Der eigentliche LInux LOader bendet sich in der Datei /boot/boot.b3. Zustzlich braucht LILO die Datei /boot/map, in die er whrend seiner Installation eintrgt, wo sich die zu ladenden Daten physikalisch auf der Festplatte benden. Weiter wird die eigentliche Kerndatei bentigt, die ebenfalls im Verzeichnis /boot liegen sollte und normalerweise den Namen vmlinuz-(Kern-Version), beispielsweise vmlinuz-2.4.18, trgt. Wenn LILO bei seinem Start Meldungen anzeigen soll, mssen diese in einer Datei stehen, die sich auch im Verzeichnis /boot benden sollte. Darber hinaus benden sich im Verzeichnis /boot nach der Installation von LILO die beiden Dateien chain.b und os2_d.b. Die erste Datei dient zum Laden anderer Betriebssysteme und die zweite zum Laden von IBM-OS/2, wenn es auf der zweiten Festplatte installiert wurde. Achtung: Auf alle genannten Bestandteile LILOs muss whrend des Bootens mit Hilfe des BIOS zugegriffen werden. Das Verzeichnis /boot muss sich deswegen auf einer Festplatte benden, die ber das BIOS angesprochen werden kann. Es muss innerhalb der ersten 1024 Zylinder auf der Festplatte liegen. Neben diesen Teilen von LILO gehrt zu dem System das Programm /sbin/lilo, mit dem LILO in den Bootsektor einer Partition oder in den MBR installiert wird. Dieses Programm erzeugt auch die Datei /boot/map. Es wird deswegen auch als Map-Installer bezeichnet. Das Programm /sbin/lilo wird ber die Datei /etc/lilo.conf konguriert. In dieser Datei ist anzugeben, wie LILO installiert werden soll. Achtung: Immer, wenn eine der zu LILO gehrenden Dateien verndert, verschoben oder neu geschrieben wird, stimmen die Informationen in der Datei /boot/map nicht mehr mit der tatschlichen Lage der Dateien auf der Festplatte berein. In diesen Fllen, beispielsweise nach der Installation eines neuen Kerns, muss LILO mit /sbin/lilo erneut installiert werden!
3

Er wird auch als second stage loader bezeichnet.

354

10 Starten von Linux Bootloader und Bootmanager

Ein huger Fehler besteht darin, die Datei /etc/lilo.conf zu ndern und zu vergessen, /sbin/lilo auszufhren. Die Anweisungen in dieser Datei werden erst wirksam, wenn /sbin/lilo ausgefhrt wurde. 10.3.4 Basiseinrichtung von LILO Installation des Pakets lilo Die Bestandteile von LILO sind in dem Paket lilo enthalten. Dieses Paket gehrt zum Basissystem und sollte deswegen nach der Installation von Debian GNU/Linux bereits eingerichtet sein. Wenn das Paket neu installiert oder aktualisiert wird, wird das Skript /usr/sbin/lilocong aufgerufen. Dieses Skript berprft zunchst, ob die Kongurationsdatei fr LILO (/etc/lilo.conf ) bereits vorhanden ist und fhrt /sbin/lilo nach einer Sicherheitsabfrage aus, sofern dies der Fall ist. Das ist notwendig, weil sich die Bestandteile von LILO im Verzeichnis /boot durch eine Aktualisierung verndern und die Datei /etc/map deswegen neu erzeugt werden muss. Falls /usr/sbin/lilocong keine Kongurationsdatei ndet, versucht es, nach einer entsprechenden Abfrage selbst eine solche Datei zu erstellen und LILO mit dieser Datei zu installieren. Die Datei kann als Ausgangsbasis fr die zu verwendende LILO-Konguration benutzt werden. Sie sollte jedoch auf jeden Fall berprft werden. Dokumentation Das Paket lilo enthlt die Datei /usr/share/doc/lilo/Manual.txt.gz, welche die ausfhrliche Dokumentation zu LILO beinhaltet. Am Ende der Datei stehen Erluterungen zu Problemen, die bei der Verwendung von LILO auftreten knnen. Eine zum Ausdrucken geeignete PostScript-Version des Manuals ist in dem Paket lilodoc vorhanden. Sie bendet sich nach Installation im Verzeichnis /usr/share/doc/lilodoc/user.ps.gz. Ausserdem gibt es ein Mini-HOWTO zu LILO, das sich in der Datei /usr/share/doc/HOWTO/en-txt/mini/LILO.txt.gz bendet. Dieses Paket enthlt weitere Dokumente, die sich mit speziellen Kongurationen befassen, beispielsweise das Linux+DOS+Win95+OS2-mini-HOWTO, das eine Schritt-fr-Schritt-Anleitung zur Installation dieser Betriebssysteme auf einer Festplatte enthlt. Aufbau der Datei /etc/lilo.conf In LILOs Kongurationsdatei gibt es drei Arten von Eintrgen: globale Einstellungen, welche die allgemeine Arbeitsweise und Installation von LILO beeinussen, Anweisungen zum Laden eines bestimmten Kerns oder eines anderen Betriebssystems und Anweisungen, die nur beim Laden eines bestimmten Kerns oder Betriebssystems ausgefhrt werden.

10.3 LILO Der LInux LOader

355

Jede dieser Anweisungen steht in einer eigenen Zeile. Anweisungen, die nur einen bestimmten Kern oder ein Betriebssystem betreffen, mssen sich unter der Anweisung zum Laden dieses Betriebssystems benden. Die Datei /etc/lilo.conf darf darber hinaus Leerzeilen und Kommentare enthalten. Kommentare werden mit dem Doppelkreuz # eingeleitet. Das folgende Beispiel zeigt eine einfache Kongurationsdatei, die zum Laden von Linux und einem alternativen Betriebssystem benutzt werden kann.
boot=/dev/hda2 install=/boot/boot.b compact delay=20 map=/boot/map vga=normal image=/vmlinuz label=Debian root=/dev/hda5 read-only other=/dev/hda1 label=Dos

In der ersten Anweisung beginnend mit boot= wird festgelegt, wohin LILO installiert werden soll. Im Beispiel ist dies der Bootsektor der zweiten primren Partition auf der ersten IDE-Festplatte (/dev/hda2). Wenn LILO nicht in den Bootsektor einer Partition, sondern in den MBR installiert werden soll, ist hier nicht der Name einer Partition, sondern der Name der Festplatte anzugeben. Um LILO in den MBR der ersten IDE-Festplatte zu installieren, muss die Anweisung folgendermaen aussehen: boot=/dev/hda Die Anweisung install=/boot/boot.b gibt an, welcher Programmteil vom Code im Bootsektor bzw. im MBR geladen werden soll. Die Anweisung ist optional. Fehlt Sie, wird die Voreinstellung /boot/boot.b benutzt. Die nchste Anweisung, compact, weist LILO an, den Lesezugriff auf den Datentrger zu optimieren. Sie fhrt zu besseren Ladezeiten, kann aber auf einigen Systemen Probleme verursachen. Wenn Sie Probleme mit LILO haben, sollten Sie es ohne diese Anweisung versuchen. Mit delay=20 wird verlangt, dass LILO zwei Sekunden warten soll, bis ein Betriebssystem gestartet wird, falls keine Auswahl vom Benutzer getroffen wird. Die Zahl gibt die Wartezeit in Zehntelsekunden an. Wenn diese Anweisung fehlt, startet LILO sofort ein System. Die letzte Anweisung des allgemeinen Teils (vga=normal) bestimmt, den Bildschirm in der Standardeinstellung (80 Spalten, 25 Zeilen) zu belassen. Die Anweisung ist optional. Bei dieser Anweisung ist es mglich, zwei andere Schlsselwrter zu verwenden. Mit vga=extended wird der Bildschirm im Modus 80 Spalten, 50 Zeilen betrieben, und mit vga=ask wird ein Men mit Bildschirmauflsungen erzeugt, aus denen ausgewhlt werden kann. Auerdem ist es mglich, eine hexadezimale

356

10 Starten von Linux Bootloader und Bootmanager

Zahl anzugeben (z. B. vga=0xf01), mit der ein bestimmter Bildschirmmodus voreingestellt wird. Die hier mglichen Zahlen erscheinen auch im Men, das mit vga=ask erzeugt wird. Eine sinnvolle Vorgehensweise ist es deswegen, zunchst vga=ask zu verwenden und, nachdem man den gewnschten Modus gefunden hat, den richtigen Wert einzusetzen4 . Mit der Anweisung image=/vmlinuz wird LILO angewiesen, die Kerndatei /vmlinuz zu laden. Die Datei /vmlinuz ist ein symbolischer Link auf die Abbilddatei des zu verwendenden Kerns im Verzeichnis /boot. Weil diese Anweisung im Beispiel die erste Anweisung zum Laden eines Kerns oder eines Betriebssystems darstellt, wird der hier bezeichnete Kern von LILO geladen, wenn whrend des Bootens keine andere Auswahl getroffen wird. Alle folgenden Anweisungen beziehen sich nur auf den hier genannten Kern. Sie haben keinerlei Auswirkung, wenn ein anderer Kern oder ein anderes Betriebssystem geladen wird. Dies gilt, bis eine neue Anweisung zum Laden eines Kerns oder eines Betriebssystems folgt. Die drei nchsten Anweisungen bezeichnen Optionen, die beim Laden des Kerns /vmlinuz gelten. Mit label=Debian wird festgelegt, dass dieser Kern beim Booten mit der Bezeichnung Debian ausgewhlt werden kann. Die Zeile root=/dev/hda5 weist den zu ladenden Kern an, die Partition /dev/hda5 als Rootpartition einzubinden. Die Anweisung ist notwendig, damit der Kern seine Rootpartition ndet. Mit read-only wird die Rootpartition nur zum Lesen eingebunden. Das ist eine sinnvolle Voreinstellung, damit das Rootdateisystem gegebenenfalls auf Fehler berprft werden kann. Es wird im weiteren Verlauf des Bootprozesses zum Schreiben und Lesen eingebunden. Die nchste Anweisung other=/dev/hda1 gibt LILO an, das Betriebssystem zu starten, das seinen eigenen Bootloader im Bootsektor der Partition /dev/hda1, der ersten primren Partition auf der ersten IDE-Festplatte, hat. Eine solche Anweisung ist geeignet, um Betriebssysteme wie DOS oder MS-Windows 95/98 zu laden. Die letzte Anweisung bezieht sich wieder nur auf das zuvor genannte Betriebssystem. Mit der Anweisung label=Dos wird bestimmt, dass das Betriebssystem mit dem Bootsektor in /dev/hda1 beim Booten ber die Bezeichnung Dos ausgewhlt werden kann. Die beiden Anweisungen sind optional und werden nur bentigt, wenn mit LILO auer Linux ein anderes Betriebssystem gestartet werden soll. Sichern und Wiederherstellen eines alten Bootsektors Wenn LILO installiert wird, legt der Map-Installer eine Sicherungskopie des alten Bootsektors in einer Datei im Verzeichnis /boot ab. Der Name dieser Datei beginnt mit boot. und endet mit vier Zahlen, die der Gertenummer der Partition oder Festplatte entsprechen, in deren Bootsektor oder MBR LILO installiert wurde. Die Gertenummern knnen mit dem Kommando ls (S. 823) mit der Option l angezeigt werden. Um die Gertenummer der Partition /dev/hda2 einzusehen, ist folgendes Kommando einzugeben:
Wenn Linux mit dem VESA-Framebuffer-Treiber betrieben wird, muss der gewnschte Framebuffer-Modus mit diesem Parameter bergeben werden. Hierzu ist der Kern neu zu bersetzen (siehe Kapitel 11, S. 373).
4

10.3 LILO Der LInux LOader

357

joe@debian:~$ ls -l /dev/hda2 Die Ausgabe sieht ungefhr folgendermaen aus:


brw-rw---1 root disk 3, 2 Aug 1 1997 /dev/hda2

Die Gertenummer wird mit den beiden Zahlen hinter der Gruppenbezeichnung angegeben. Sie lautet fr /dev/hda2 also 0302 (fhrende Nullen werden von ls nicht ausgegeben, aber von /sbin/lilo benutzt, um die Backup-Dateien eindeutig zu benennen)5. Das Programm /sbin/lilo legt ein Backup in der Datei /boot/boot.0302 an, wenn es mit der Beispielkongurationsdatei aus dem vorhergehenden Abschnitt aufgerufen wird. In dieser Datei befand sich die Anweisung, LILO in den Bootsektor der Partition /dev/hda2 zu installieren (/boot=/dev/hda2). Achtung: Die Backup-Datei wird nur dann angelegt, wenn sie nicht schon existiert. Der Grund dafr ist, dass ein Bootsektor, der vor der ersten Installation von LILO vorhanden war, erhalten bleiben soll, auch wenn /sbin/lilo mehrmals aufgerufen wird. Sie erzwingen die Erzeugung eines Backups, indem Sie das alte Backup umbenennen oder mit der Anweisung backup=Dateiname eine andere Datei festlegen. Sicherung eines MBRs auf Diskette Im allgemeinen ist es ratsam, die MBRs aller Festplatten auf einen externen Datentrger zu sichern. Wenn die Partitionstabelle im MBR zerstrt ist, kann auf die Daten der betroffenen Festplatte nicht mehr zugegriffen werden und deswegen auch kein Backup mehr von der Festplatte zurckgespielt werden. Um den MBR der ersten IDE-Festplatte auf eine DOS-formatierte Diskette zu sichern, ist diese in das Laufwerk einzulegen und mit dem folgenden Kommando einzubinden: debian:~# mount -t msdos /dev/fd0 /floppy Der Bootsektor kann nun mit dem Kommando dd (S. 789) auf die Diskette gesichert werden: debian:~# dd if=/dev/hda bs=512 count=1 of=/floppy/mbr_hda Dieser Schritt ist fr eventuell vorhandene weitere Festplatten zu wiederholen. Dabei sind fr /dev/hda und fr mbr_hda entsprechend andere Angaben zu machen. Zu Schluss muss die Diskette wieder aus dem Dateisystem entfernt werden: debian:~# umount /floppy Achtung: Diese Sicherungskopien werden ungltig, wenn sich die Partitionierung der Festplatte ndert oder ein anderer MBR installiert wird. Wiederholen Sie in solchen Fllen die Sicherung!
In Wirklichkeit unterscheidet man zwei Klassen von Gertenummern: Major- und MinorNummern. Die erste Zahl in der Ausgabe von ls ist die Major-Nummer, die zweite die MinorNummer.
5

358

10 Starten von Linux Bootloader und Bootmanager

Wiederherstellung eines gesicherten Bootsektors Ein auf Diskette gesicherter MBR wird mit der folgenden Prozedur wieder zurckgeschrieben. Das System ist vorher erforderlichenfalls mit einer Rettungsdiskette zu starten. Zunchst ist die Diskette, auf der sich die Sicherungskopien benden, in das Laufwerk einzulegen und mit dem oben gezeigten mount-Kommando einzubinden. Dann wird der MBR von der Diskette auf die Festplatte geschrieben: debian:~# dd if=/floppy/mbr_hda bs=512 count=1 of=/dev/hda Soll der Bootsektor einer anderen Festplatte als /dev/hda zurckgeschrieben werden, ist das Kommando entsprechend anzupassen. Wenn nur der Bootcode im MBR, nicht aber die Partitionstabelle zurckgeschrieben werden soll, ist das Kommando wie folgt zu ndern: debian:~# dd if=/floppy/mbr_hda bs=446 count=1 of=/dev/hda Wenn nur die Partitionstabelle, nicht aber der Programmcode im Bootsektor zurckgeschrieben werden soll, ist folgendes Kommando zu verwenden: debian:~# dd if=/floppy/mbr_hda bs=1 count=64 skip=446 seek=446 of=/dev/hda Nach dem Zurckschreiben wird die Diskette wieder aus dem Dateisystem entfernt. Das System sollte danach sofort neu gestartet werden. Die von /sbin/lilo angelegten Bootsektoren knnen prinzipiell auf die gleiche Art zurckgeschrieben werden. Allerdings empehlt sich zu diesem Zweck eher die Verwendung von sbin/lilo selbst. Das Programm schreibt Sicherungskopien zurck, wenn es mit der Option -u aufgerufen wird. Installation eines neuen MBRs unter DOS Unter DOS kann ein neuer DOS-MBR mit folgendem Kommando installiert werden: C:\> fdisk /mbr Damit wird der alte MBR gelscht. Ein Backup wird hierbei nicht erstellt. Wiederherstellen einer Partitionstabelle mit gpart Wenn trotz aller Sicherheitsmanahmen die Partitionstabelle im MBR beschdigt worden ist und nicht wieder hergestellt werden kann, kann auf die Daten der betreffenden Festplatte nicht mehr zugegriffen werden. Sie sind aber trotzdem noch vorhanden. Die Lsung eines solchen Problems besteht darin, die Partitionstabelle neu zu erzeugen. Hierbei untersttzt Sie das Programm gpart aus dem Paket gpart. Das Programm untersucht die gesamte Festplatte und versucht dabei herauszunden, wo sich Partitionsgrenzen benden knnten. Weil dies nicht immer eindeutig ist, kann es dabei zu Fehlern kommen. Allerdings lsst sich gpart so verwenden,

10.3 LILO Der LInux LOader

359

dass es nachfragt, ob vorgeschlagenen Partitionsgrenzen stimmen. Wer die Partitionierung seiner Festplatte noch halbwegs im Kopf oder aufgeschrieben hat, sollte in der Lage sein, die ursprngliche Partitionierung wieder herzustellen. gpart ist ausfhrlich durch eine Manual-Seite dokumentiert. Das Programm bendet sich nach der Installation im Verzeichnis /sbin. Es sollte rechtzeitig auf eine Diskette kopiert werden, damit es im Falle des Falles zur Verfgung steht. 10.3.5 Installation von LILO Nachdem die Datei /etc/lilo.conf fertig editiert ist, wird LILO installiert. Hierzu ist mit Verwalterrechten folgendes einzugeben: debian:~# /sbin/lilo Wenn LILO mit einer Konguration wie im Beispiel benutzt wird, erscheint die folgende Ausgabe:
Added Debian * Added Dos

Hiermit meldet das Programm, dass es LILO installiert hat und Bootoptionen fr die mit Debian und Dos bezeichneten Kerne bzw. Betriebssysteme eingerichtet hat. Der Stern hinter Debian zeigt an, dass Debian GNU/Linux als Standardbetriebssystem geladen wird. Wenn Sie LILO wie empfohlen nicht in den MBR installiert haben, sollten Sie nach seiner Installation sicherstellen, dass die Partition, in deren Bootsektor sich LILO nun bendet, aktiv ist (siehe Seite 343). 10.3.6 Benutzung von LILO Wenn LILO nach dem Start des Rechners geladen wird, berprft es, ob eine der Tasten S HIFT, A LT oder S TRG gedrckt ist oder ob die Tasten S HIFT-L OCK oder ROLLEN aktiviert wurden. Wenn dies der Fall ist, zeigt LILO seinen Prompt an, mit dem das zu ladende Betriebssystem ausgewhlt werden kann. Anderenfalls wartet LILO so lange, wie in der Kongurationsdatei mit der Anweisung delay= angegeben ist und startet danach das Standardbetriebssystem. Dies ist der Kern oder das Betriebssystem, das in der Datei /etc/lilo.conf als erstes angegeben oder mit der Anweisung default= festgelegt wurde. Der Prompt sieht folgendermaen aus: boot: Am Prompt kann der Name des Betriebssystems eingegeben werden, das gestartet werden soll. Das ist der Name, der in der Kongurationsdatei mit label= festgelegt wurde. Nach Bettigung einer der Tasten TAB oder ? werden die kongurierten Betriebssysteme angezeigt. Schreibfehler werden mit den Tasten Z URCK oder E NTF sowie mit der Tastenkombination S TRG - U und S TRG - X korrigiert. Die Auswahl wird mit E INGABE besttigt. Wird E INGABE ohne eine Auswahl gedrckt, startet das Standardsystem.

360

10 Starten von Linux Bootloader und Bootmanager

Zu dem Zeitpunkt, zu dem LILO ausgefhrt wird, sind noch keine Tastaturtreiber geladen. Die Tastatur wird deswegen wie eine US-amerikanische Tastatur behandelt (zum ndern der von LILO benutzten Tastaturtabelle siehe S. 363). Wenn am Prompt ein Linux-Kern zum Start ausgewhlt wird (im Beispiel Debian), knnen hinter dem Namen zustzliche Bootoptionen fr den ausgewhlten Kern angegeben werden. Beispielsweise kann es vorkommen, dass in der Datei /etc/lilo.conf die falsche Partition als Rootpartition angegeben wurde und LILO Linux deswegen nicht richtig startet. In diesem Fall kann das Rootdateisystem am Prompt angegeben werden: boot: Debian root=/dev/hda6 10.3.7 Erstellen eines Bootmens mit LILO Zur Erstellung eines Bootmens sind drei Dinge notwendig: 1. Der Prompt muss in jedem Fall erscheinen. Dies kann durch die Anweisung prompt in der Datei /etc/lilo.conf erreicht werden. 2. Das eigentliche Men muss ausgegeben werden. Dazu ist eine Textdatei mit dem Mentext zu erstellen. Durch die Anweisung message=(Dateiname) wird der Inhalt der Datei vor dem Prompt auf dem Bildschirm ausgegeben. 3. Mit der Anweisung single-key=(Buchstabe) hinter einer image= oder other=Anweisung wird erreicht, dass der betreffende Kern oder das betreffende Betriebssystem durch Bettigung einer einzelnen Taste gestartet wird. Zustzlich kann mit der Anweisung timeout=(Anzahl) die Zeit in Zehntelsekunden festgelegt werden, die auf eine Eingabe am Prompt gewartet wird. Somit ist der automatische Start des voreingestellten Betriebssystems auch mit einem Bootmen mglich. Die Textdatei fr das Bootmen knnte wie folgt aussehen:
=== LILO Bootmenue === Bitte druecken Sie eine der in eckigen Klammern angegebenen Zahlen, um das jeweilige Betriebssystem zu starten. Oder geben Sie den Namen des Systems zusammen mit eventuell benoetigten Optionen ein. Mit der Taste <TAB> werden die verfuegbaren Systeme angezeigt. [1] [2] [3] [4] Debian GNU/Linux (3.0) Kern 2.4.18 (normaler Bildschirm) Debian GNU/Linux (3.0) Kern 2.4.18 (80 Spalten, 50 Zeilen) Debian GNU/Linux (3.0) Kern 2.4.18 (Single-User Modus) Microsoft Windows

Bitte waehlen Sie 1-4 aus!

Weil diese Datei whrend des Systemstarts bentigt wird, muss sie sich im Verzeichnis /boot benden. Sie knnte als /boot/lilo.msg gespeichert werden. Eine zu diesem Men passende Kongurationsdatei fr LILO sieht so aus:

10.3 LILO Der LInux LOader

361

# LILO wird in den Bootsektor der zweiten primren Partition auf der # ersten SCSI-Platte installiert boot=/dev/sda2 # Der Prompt soll immer angezeigt werden. prompt # Wenn nach 5 sec keine Auswahl erfolgt, soll das Standardsystem # gestartet werden timeout = 50 # Schnelle Zugriffe auf den Datentrger compact # Standardmig werden normale Bildschirmeinstellungen benutzt vga=normal # Betriebssysteme sollen durch einen einzigen Tastendruck gestartet # werden single-key # Der erste zu bootende Kern image=/vmlinuz label=Debian # Mit alias wird ein zweiter Name fr diesen Kern festgelegt alias=1 # Das Rootdateisystem fr diesen Kern befindet sich auf der # Partition /dev/sda5 root=/dev/sda5 read-only image=/vmlinuz label=DebianExt alias=2 root=/dev/sda5 read-only # Bei dieser Auswahl soll der Bildschirm im Modus 80 Zeilen # 50 Spalten betrieben werden vga=extended image=/vmlinuz label=DebianSingle alias=3 root=/dev/sda5 read-only # Bei dieser Auswahl soll das System im Single-User-Modus # gestartet werden single # Eintrag fr MS-Windows~98 other=/dev/sda1 label=Win98 alias=4

In dieser Kongurationsdatei ist dreimal hintereinander dieselbe Abbilddatei des Kerns (/vmlinuz) angegeben worden, die Optionen unterscheiden sich jedoch in jedem Fall. Es wre auch mglich, hier unterschiedliche Kerne zu verwenden oder denselben Kern mit unterschiedlichen Rootdateisystemen zu starten, wenn mehrere Linux-Installationen zur Verfgung stehen. Die Anweisung single-key verlangt, dass jeder Kern und jedes Betriebssystem einen Namen hat, der nur aus einem einzigen Zeichen besteht. Dies wird hier mit den alias-Anweisungen erreicht. Weiter drfen die Ein-Buchstaben-Bezeichnungen bei Verwendung der Option single-key nicht mit dem Anfangsbuchstaben einer anderen Kern- oder Betriebssystemsbezeichnung bereinstimmen. Dieses Problem lsst sich

362

10 Starten von Linux Bootloader und Bootmanager

leicht durch die Verwendung von Zahlen fr die single-key-Variante und Buchstaben fr die vollen Namen lsen. Neu ist in dieser Datei das Schlsselwort single. Es wird vom Kern nach dem Start an das Programm init bergeben. Dieses Programm ist fr den Prozess nach dem Start des Kerns verantwortlich. Wenn es vom Kern mit dem Parameter single aufgerufen wird, bootet es in den Single-User-Modus. In diesem Modus wird lediglich das Programm sulogin aufgerufen, mit dem der Verwalter sich anmelden kann. Der Modus eignet sich fr Reparaturen und Wartungsarbeiten am System, wenn das System nicht im normalen Modus gestartet werden kann oder keine weiteren Benutzer angemeldet sein sollen (siehe Kap. 13 auf Seite 449). Denken Sie daran, das Programm /sbin/lilo auszufhren, nachdem Sie die Textdatei mit dem Mentext oder die Datei /etc/lilo.conf verndert haben. 10.3.8 Referenz zu LILO In diesem Abschnitt nden Sie die wichtigsten Anweisungen fr LILOs Kongurationsdatei /etc/lilo.conf sowie einige Optionen, die das Verhalten des Map-Installers /sbin/lilo verndern. Die Anweisungen fr die Kongurationsdatei sind in drei Klassen unterteilt, nmlich solche fr den allgemeinen Teil, die das Verhalten sowie Installationsort und -art im allgemeinen beeinussen, und Anweisungen, die nur einen Kern oder ein Betriebssystem betreffen. Die dritte Klasse umfasst Anweisungen, die sowohl im allgemeinen Teil vorkommen drfen als auch im Teil fr einen bestimmten Kern oder ein bestimmtes Betriebssystem. Wenn diese Anweisungen im allgemeinen Teil stehen, gelten sie fr alle Kerne und Betriebssysteme, ansonsten gelten Sie nur fr den betreffenden Kern oder das betreffende Betriebssystem. Allgemeine Anweisungen in der Datei /etc/lilo.conf backup=Datei Weist /sbin/lilo an, ein Backup des Bootsektors in der mit Datei angegebenen Datei zu erstellen. boot=Gertedatei LILO wird in den Bootsektor der durch Gertedatei spezizierten Festplattenpartition, Festplatte oder Diskette installiert. Wenn eine ganze Festplatte angegeben wird (/dev/hda), erfolgt die Installation in den MBR. Es ist auch mglich, den Namen einer existierenden Datei anzugeben. LILO wird dann in diese Datei installiert. Sie kann u. U. von einem anderen Bootmanager zum Starten von LILO benutzt werden. compact Bewirkt, dass LILO benachbarte Sektoren gleichzeitig liest. Die Option beschleunigt den Ladevorgang, ist aber mit einigen BIOS nicht vertrglich. default=Name Standardmig wird der Kern oder das Betriebssystem geladen, das in der Datei /etc/lilo.conf als erstes eingerichtet ist. Mit dieser Option wird das mit Name bezeichnete System standardmig gestartet. delay=Zahl Zahl bezeichnet die Anzahl von Zehntelsekunden, die auf die Bettigung der Tasten S HIFT, A LT oder S TRG gewartet werden soll, um den Prompt

10.3 LILO Der LInux LOader

363

anzuzeigen. Wenn diese Anweisung nicht gegeben wird, wird das Standardsystem sofort gestartet, falls nicht die Tasten S HIFT-L OCK oder ROLLEN aktiviert sind. Sobald der Prompt angezeigt wird, wird unbegrenzt lange gewartet. disk=Gertedatei Mit dieser Anweisung werden spezielle Einstellungen wie die Geometrie fr eine Festplatte festgelegt. Dies ist notwendig, wenn das BIOS eine andere Vorstellung von der Geometrie einer Platte hat als der Kern. Dieser Anweisung folgen weitere Anweisungen, mit denen angegeben wird, welche Einstellungen wie zu treffen sind. Beispiel:
disk=/dev/sda bios=0x80 sectors=63 heads=255 cylinders=1111

Mit der Zeile bios=0x80 wird die Nummer der Festplatte angegeben, wie sie das BIOS verwendet. Standardmig hat die erste Festplatte die BIOS-Nummer 0x80, die zweite die Nummer 0x81 usw. Die Angabe ist optional. Mit den drei weiteren Zeilen wird die Geometrie der Platte speziziert. Diese Daten sind dem BIOS-Setup-Programm zu entnehmen. Zustzlich ist unter der disk=Anweisung das Schlsselwort inaccessible mglich. Hiermit wird /sbin/lilo mitgeteilt, dass die betreffende Platte nicht vom BIOS angesprochen werden kann. Das Programm warnt dann, falls versucht wird, Bestandteile von LILO auf einer solchen Festplatte zu installieren. force-backup=Datei Wie die Option backup mit dem Unterschied, dass ein Backup auch dann erzeugt wird, falls die mit Datei angegebene Datei schon existiert. Ein altes Backup wird mit dieser Anweisung berschrieben. keytable=Datei LILO sieht die Tastatur normalerweise so wie das BIOS. Die Folge ist, dass von einem US-amerikanischem Tastaturlayout ausgegangen wird und Sonderzeichen mit einer deutschen Tastatur nur eingegeben werden knnen, wenn man die Lage dieser Zeichen auf einer US-Tastatur kennt. Mit dieser Anweisung kann eine andere Tastaturtabelle benutzt werden. Dazu muss der Name einer Datei angegeben werden, die eine Beschreibung enthlt, wie sich das Tastaturlayout des BIOS von dem tatschlichen Tastaturlayout unterscheidet. Eine solche Datei wird mit dem Programm keytab-lilo erzeugt. Dem Programm muss mit dem ersten Argument der Name einer Datei bergeben werden, die eine Tastaturtabelle enthlt, die der des BIOS entspricht. Mit dem zweiten Argument wird dem Programm der Name der Tastaturtabelle bergeben, die dem tatschlichen Layout entspricht. Hierzu knnen die Tastaturtabellen benutzt werden, die in dem Paket console-data enthalten sind. Das Programm gibt die von LILO bentigten Informationen auf die Standardausgabe aus. Um die von LILO bentigten Tastaturinformationen zu erzeugen, falls eine deutsche Tastatur benutzt wird und das BIOS von einem US-amerikanischem Layout ausgeht, ist das folgende Kommando zu verwenden (standardmige deutsche 102-Tasten-Tastatur): debian:~# keytab-lilo /usr/share/keymaps/i386/qwerty/us-latin1.kmap.gz /usr/share/keymaps/i386/qwertz/ de-latin1-nodeadkeys.kmap.gz > /boot/keymap

364

10 Starten von Linux Bootloader und Bootmanager

Damit werden die Tastaturinformationen in die Datei /boot/keymap geschrieben. Der Datei /etc/lilo.conf ist die Zeile keytable=/boot/keymap hinzuzufgen, damit LILO diese Datei verwendet. linear LILO verwendet mit dieser Option logische Adressen an Stelle physikalischer, um auf die Festplatte zuzugreifen. Diese Anweisung kann Probleme lsen, die auftreten, wenn das BIOS von einer anderen Festplattengeometrie ausgeht als der Linux-Kern. linear ist in einigen Fllen nicht mit der Anweisung compact vertrglich und sollte normalerweise vermieden werden. message=Datei Bewirkt, dass der Inhalt der mit Datei angegebenen Datei auf dem Bildschirm ausgegeben wird, bevor LILO den Prompt zeigt. prompt Mit dieser Anweisung bringt LILO den Prompt in jedem Fall und nicht erst, wenn eine der Tasten S HIFT, A LT oder S TRG bettigt wurde oder die Tasten S HIFT-L OCK oder ROLLEN aktiviert sind. Mit dieser Anweisung muss das zu startende System ausgewhlt werden, falls nicht zustzlich die Anweisung timeout benutzt wird. timeout=Zahl Weist LILO an, die mit Zahl angegebene Anzahl von Zehntelsekunden auf Eingaben zu warten, nachdem der Prompt angezeigt wurde. Falls whrend dieser Zeit keine Eingabe erfolgt, wird das Standardsystem gestartet. Betriebssystem- oder kernspezische Anweisungen Die im folgenden aufgefhrten Anweisungen beziehen sich jeweils auf ein Betriebssystem oder einen Kern, wenn sie in der Datei /etc/lilo.conf unter einem Kerneintrag (image=) oder einem Betriebssystemseintrag (other=) stehen. Die Anweisungen password und single-key drfen auch im allgemeinen Teil stehen. Sie gelten dann fr alle Betriebssysteme und Kerne. alias=Name Weist dem betreffenden Betriebssystem oder Kern einen zweiten Namen fr die Auswahl am Prompt zu. label=Name Weist dem betreffenden Betriebssystem oder Kern den mit Name angegebenen Namen fr die Auswahl am Prompt zu. optional Das betreffende Betriebssystem oder der betreffende Kern werden nur fr die Auswahl mit LILO konguriert, wenn diese whrend der Installation von LILO tatschlich vorhanden sind. Die Anweisung ist sinnvoll, wenn in der Datei /etc/lilo.conf dauerhaft Eintrge fr Kerne vorhanden sein sollen, die nicht immer tatschlich existieren, beispielsweise experimentelle oder Backup-Kerne. password=Passwort Nach Auswahl des betreffenden Systems oder Kerns muss das mit Passwort angegebene Passwort eingegeben werden, um die Auswahl starten zu knnen. Wird zustzlich die Anweisung restricted gegeben, muss das Passwort nur dann angegeben werden, wenn am Prompt zustzliche Parameter angegeben wurden. Das Passwort wird in der Datei /etc/lilo.conf sowie in der Datei /boot/map unverschlsselt gespeichert. Bei Verwendung eines Passworts sollten diese Dateien deswegen nur fr den Verwalter lesbar sein. single-key Kerne oder Betriebssysteme, fr die diese Anweisung gegeben wurde, werden am Prompt durch Drcken einer einzelnen Taste ausgewhlt, die Be-

10.3 LILO Der LInux LOader

365

sttigung mit E INGABE ist nicht erforderlich. Voraussetzung ist, dass den betreffenden Systemen mit label= oder alias= ein Name gegeben wurde, der aus einem Buchstaben oder einer Zahl besteht. Dieses Zeichen darf nicht Anfangsbuchstabe eines anderen Namens sein. Anweisungen zum Start von Linux-Kernen Die folgenden Anweisungen knnen sowohl fr einzelne Kerne unter einer image=Anweisung als auch im allgemeinen Teil vorkommen. Im allgemeinen Teil vor dem ersten image- oder other- Eintrag gelten Sie fr alle Kerne, ansonsten nur fr den Kern, unter dessen Eintrag sie stehen. Eintrge im kernspezischen Teil haben Vorrang. append=Zeichenkette Dem Kern wird die mit Zeichenkette angegebene Zeichenkette als Bootparameter bergeben. Hierdurch lassen sich Parameter fr fest in den Kern einkompilierte Treiber spezizieren. Wenn Zeichenkette Leer-, Gleichheits- oder andere Sonderzeichen enthlt, muss sie in Anfhrungszeichen gesetzt werden. Um Fehler zu vermeiden, sollte man dies immer tun. Beispiel: append= "aha152x=0x340,10 mcd=0x300,10,5" Hier werden dem Treiber fr Adaptec-AHA152x-basierte SCSI-Adapter sowie dem Treiber fr Mitsumi CD-Laufwerke Parameter bergeben. Mehr ber Bootparameter in Kapitel 12.5 auf Seite 431 . read-only Das Rootdateisystem soll vom Kern lediglich zum Lesen eingebunden werden. Dies ist in den meisten Fllen erforderlich, damit das Dateisystem whrend des Systemstarts auf Fehler berprft werden kann. Es wird dann im weiteren Verlauf des Bootprozesses zum Lesen und Schreiben eingebunden. read-write Bewirkt, dass das Rootdateisystem vom Kern zum Lesen und Schreiben eingebunden wird. root=Gertedatei Hiermit wird dem betreffenden Kern mitgeteilt, welche Partition er als Rootdateisystem verwenden soll. Obwohl dies auch mit dem Kommando rdev (S. 850) festgelegt werden kann, sollte die Information in der Datei /etc/lilo.conf angegeben werden. Wenn der Kern versucht, einen falschen Datentrger als Rootdateisystem zu verwenden, kann dies dazu fhren, dass das System nicht gestartet wird. Beispiel: root=/dev/hdb6. Hiermit wird der Kern angewiesen, die zweite logische Partition auf der zweiten IDE-Festplatte als Rootdateisystem einzubinden. vga=Modus Beim Systemstart soll der mit Modus bezeichnete Modus verwendet ), extended ( ) werden. Fr Modus sind die Schlsselwrter normal ( und ask (Auswahlmen) erlaubt. Daneben knnen bestimmte Modi durch hexadezimale Zahlen angegeben werden. Diese Zahlen werden dem mit vga=ask erzeugbaren Bootmen entnommen. Bei Verwendung eines Framebuffertreibers (siehe Seite 409) sind spezielle Zahlen zu verwenden. Beispiel: vga=0x318.

366

10 Starten von Linux Bootloader und Bootmanager

Kommandozeilen-Optionen fr /sbin/lilo Der Map-Installer versteht eine groe Anzahl von Optionen. Die meisten bewirken dasselbe wie entsprechende Angaben in der Datei /etc/lilo.conf. So lsst sich mit der Option -d die Zeit angeben, die auf einen Tastendruck gewartet werden soll, bis das Standardbetriebssystem geladen wird. Dies entspricht der Anweisung delay= in der Kongurationsdatei. -C Datei Das Programm verwendet an Stelle der Datei /etc/lilo.conf die mit Datei angegebene Kongurationsdatei. -v Das Programm zeigt an, welche Schritte es ausfhrt. Diese Option darf mehrmals angegeben werden, wodurch die Menge der ausgegebenen Information erhht wird. -r Verzeichnis Bevor es LILO installiert, wechselt das Programm in das angegebene Verzeichnis und verwendet es als Wurzelverzeichnis. Das ist hilfreich, um ein System wieder startbar zu machen, das mit einer Rettungsdiskette gestartet wurde. Das Rootdateisystem des Diskettensystems entspricht dann u. U. nmlich nicht dem Dateisystem, das von dem zu reparierenden System als Rootdateisystem benutzt wird, und /sbin/lilo wrde ohne diese Option in falschen Verzeichnissen nach seinen Dateien suchen. Beispiel: Angenommen, das Rootdateisystem des zu reparierenden Systems bendet sich auf der Partition /dev/hdb5, und der Rechner wurde mit Debians Rescue-Diskette gestartet, sodass sich das Rootdateisystem des gestarteten Notfallsystems in einer Ramdisk bendet. Die Partition /dev/hdb5 kann nun vom Notfallsystem aus mit dem folgendem Kommando eingebunden werden: debian:~# mount -t ext2 /dev/hdb5 /mnt Danach benden sich die von LILO bentigten Dateien im Verzeichnis /mnt/boot und nicht im Verzeichnis /boot. Die Kongurationsdatei heit jetzt /mnt/etc/lilo.conf. Damit /sbin/lilo die Dateien trotzdem ndet, muss die Option -r benutzt werden. Das Programm ist dann folgendermaen aufzurufen: debian:~# /sbin/lilo -r /mnt -s Datei Bewirkt, dass eine Backupdatei mit dem alten Bootsektor unter dem mit Datei angegebenen Namen erzeugt wird. Die Datei wird nicht berschrieben, falls Sie bereits existiert. -S Datei Wie die Option -s mit dem Unterschied, dass die Datei berschrieben wird, falls sie schon existiert. -t Testmodus. Mit dieser Option fhrt /sbin/lilo alle notwendigen Schritte durch, verndert das System jedoch nicht. -u [Gertedatei] Hiermit wird der Bootsektor der mit Gertedatei angegebenen Partition bzw. der MBR der mit Gertedatei angegebenen Festplatte aus einem Backup wieder zurck geschrieben. Um eine andere Backupdatei als die standardmig im Verzeichnis /boot angelegte Datei zu verwenden, wird mit der Option -s eine Datei angegeben. Das Programm berprft die Gltigkeit

10.3 LILO Der LInux LOader

367

der Backupdatei anhand eines Zeitstempels. Wenn diese berprfung nicht gewnscht ist, kann alternativ die Option -U benutzt werden. -V Die Option bewirkt, dass die Versionsnummer von LILO ausgegeben wird und keine weiteren Aktionen stattnden. Weitere Optionen in der Manualseite zu LILO. 10.3.9 Probleme und besondere Kongurationen Allgemeine Ratschlge Der Map-Installer (/sbin/lilo) fhrt whrend der Installation von LILO eine Reihe von Tests durch, die gewhrleisten sollen, dass LILO nach der Installation richtig funktioniert. In einigen Fllen werden dabei Warnungen ausgegeben, und LILO wird trotzdem installiert. Bei schwerwiegenden Fehlern wird eine Fehlermeldung ausgegeben, LILO wird nicht installiert. Sie sollten Warnungen und Fehlermeldungen in jedem Fall ernstnehmen und versuchen, die Ursache zu beseitigen. Alle Fehler und Warnungen sind ausfhrlich in der Datei /usr/share/doc/lilo/Manual.txt.gz beschrieben. Trotz der berprfung kann nicht vollstndig ausgeschlossen werden, dass es auch nach der fehlerfreien Installation von LILO zu Problemen kommt. Im Falle einer Fehlfunktion sollten Sie folgende Punkte berprfen: Haben sich Bestandteile von LILO verndert? Dies ist der Fall, wenn das Paket lilo neu installiert oder aktualisiert wurde oder wenn Sie einen neuen Kern installiert haben. Fhren Sie /sbin/lilo erneut aus. Ist die Partition als aktive Partition markiert, in deren Bootsektor LILO installiert wurde? berprfen Sie dies mit dem Programm activate (S. 768). Einige Partitionierungsprogramme erlauben, mehrere Partitionen als aktiv zu markieren. Dies ist jedoch unvertrglich mit den meisten MBRs. Die meisten MBRs knnen nur Bootsektoren von primren (auch erweiterten, aber nicht logischen) Partitionen laden. Ist LILO auf einen Bootsektor der ersten Festplatte installiert? Im Normalfall kann vom MBR nur ein Bootsektor von der ersten Platte geladen werden. Benden sich alle Teile von LILO auf einer Festplatte, auf die das BIOS zugreifen kann? Benden Sie sich innerhalb der ersten 1024 Zylinder? U. U. mssen Sie das Verzeichnis /boot auf eine andere Partition legen, damit LILO korrekt funktioniert. Stimmen die Angaben in der Kongurationsdatei /etc/lilo.conf ? Insbesondere sollten Sie prfen, ob das Rootdateisystem richtig angegeben wurde. Probieren Sie die Anweisung linear, wenn alles richtig ist, aber LILO dennoch nicht mitspielt. Wenn Sie das Verzeichnis /boot auf einer DOS-Partition haben, drfen Sie die Partition nicht defragmentieren, ohne LILO hinterher neu auszufhren. Durch die Defragmentierung werden die Dateien physikalisch auf der Festplatte verschoben, und LILOs Informationen ber die Lage der bentigten Daten auf der Festplatte sind falsch.

368

10 Starten von Linux Bootloader und Bootmanager

Unter Umstnden gibt es Probleme mit Ihrem BIOS, auf Grund derer LILO nicht richtig funktioniert. Versuchen Sie, einen kleineren Kern zu verwenden. Dazu mssen Sie das Programm make-kpkg mit der Option - -zimage aufrufen. U. U. mssen Sie dann einige Bestandteile des Kerns als Modul kompilieren, die Sie bisher fest in den Kern integriert hatten (siehe Kap. 11). Fehlerdiagnose: Bedeutung der Buchstaben LILO Wenn LILO whrend des Systemstarts geladen wird, gibt er nacheinander die Buchstaben LILO aus. Jeder Buchstabe entspricht dabei einem Schritt, der zum Laden des Programms notwendig ist. Im Fall eines Fehlers lsst sich deswegen an den ausgegebenen Buchstaben erkennen, bei welchem Schritt LILO gescheitert ist. Die Buchstaben bedeuten im einzelnen: (kein Buchstabe) Kein Teil von LILO wurde geladen. Huge Ursachen sind, dass LILO nicht installiert wurde oder nicht die richtige Partition aktiv ist. L Fehlercode Der Code im Bootsektor wurde geladen, aber der zweite Teil (/boot/boot.b) konnte nicht von der Platte geladen werden. Ursache hierfr ist oft, dass das BIOS mit einer anderen Festplattengeometrie arbeitet, als es der Linux-Kern tut. Versuchen Sie, LILO mit der disk=-Anweisung die richtige Geometrie mitzuteilen. LI LILO konnte den zweiten Teil von der Festplatte laden, ihn aber nicht ausfhren. Ursachen sind Geometriefehler oder eine Vernderung der Datei /boot/boot.b, ohne dass /sbin/lilo neu ausgefhrt wurde. LIL Die Map-Datei /boot/map konnte nicht geladen werden. Ursachen sind Geometriefehler oder eine Vernderung der Datei /boot/map. LIL- Der zweite Teil von LILO wurde an eine falsche Speicheradresse geladen. Ursachen sind Geometriefehler oder ein Verschieben der Datei /boot/boot.b. LIL? Die Daten in der Map-Datei sind inkonsistent. Ursachen sind Geometriefehler oder ein Verschieben der Datei /boot/map ohne Neuinstallation von LILO. Linux auf einer anderen Festplatte als der ersten Wenn sich auf der ersten Festplatte keine Linuxpartition bendet, kann LILO nicht in den Bootsektor einer Linuxpartition installiert werden, solange ein Standard-MBR verwendet wird, weil dieser nur Bootsektoren von primren Partitionen der ersten Festplatte verwenden kann6 . Die folgenden Mglichkeiten kommen in Betracht, um Linux von einer anderen Festplatte als der ersten zu starten: Wenn auf der ersten Festplatte eine erweiterte Partition vorhanden ist, kann LILO in den Bootsektor dieser Partition installiert werden und Linux von einer anderen Festplatte laden, wenn auf diese mit BIOS-Routinen zugegriffen werden
6 Verschiedene Bootmanager knnen auch die Bootsektoren von weiteren Festplatten benutzen.

10.3 LILO Der LInux LOader

369

kann. Beispiel: Die erweiterte Partition auf der ersten Festplatte ist /dev/hda3, Linux bendet sich auf der Partition /dev/hdb2. LILO knnte dann mit folgender Kongurationsdatei installiert werden:
boot=/dev/hda3 image=/vmlinuz root=/dev/hdb2 label=Debian

LILO kann in den MBR der ersten Festplatte installiert werden und als Bootmanager fr alle Betriebssysteme dienen. Voraussetzung ist ebenfalls, dass sich LILOs Dateien im Verzeichnis /boot auf einer Partition benden, auf die mit BIOS-Routinen zugegriffen werden kann. Das gleiche gilt fr die Bootsektoren der anderen Betriebssysteme. Wenn ein DOS basiertes Betriebssystem zur Verfgung steht, kann Linux mit Loadlin geladen werden. Linux und MS-Windows NT/2000 LILO muss im MBR installiert sein und die NT-Partition wie eine DOS-Partition behandelt werden. Angenommen, die Startpartition von MS-Windows NT/2000 ist die erste primre Partition auf der ersten SCSI-Festplatte und das Rootdateisystem von Linux bendet sich auf der zweiten primren Partition derselben Platte, so sollte LILO mit folgender Datei /etc/lilo.conf eingerichtet werden, um zwischen den beiden Systemen whlen zu knnen:
# Installation von LILO in den MBR root=/dev/sda image=/vmlinuz root=/dev/sda2 label=Linux other=/dev/sda1 label=eNTe

In einigen Fllen weigert sich MS-Windows NT/2000 jedoch zu starten, wenn sich LILO im MBR bendet. Hier hilft folgender Trick: LILO wird nicht in den Bootsektor einer Partition oder Festplatte installiert, sondern in eine Datei. Diese Datei wird auf die NT-Partition kopiert und dort vom NT-Bootloader ausgefhrt. Dazu ist zunchst eine Kongurationsdatei fr LILO zu erstellen, mit der Linux gestartet werden kann. Falls das Rootdateisystem von Linux auf der Partition /dev/sda2 liegt, knnte diese folgendermaen aussehen:
# LILO soll in eine Datei installiert werden root=/boot/bootsec image=/vmlinuz root=/dev/sda2 label=Linux

Die Anweisung root=/boot/bootsec bewirkt, dass /sbin/lilo den Code fr den Bootsektor in die Datei /boot/bootsec schreibt. Diese Datei muss mindestens die Gre eines Bootsektors (512 Byte) haben und wird mit folgendem Kommando erzeugt:

370

10 Starten von Linux Bootloader und Bootmanager

debian:~# dd if=/dev/zero bs=512 count=1 of=/boot/bootsec Hiermit wird eine 512 Byte groe Datei voller Nullen mit dem Namen /boot/bootsec erzeugt. Nun ist /sbin/lilo auszufhren, um den Startcode in diese Datei zu schreiben: debian:~# /sbin/lilo Die Datei /boot/bootsec muss auf die Startpartition von MS-Windows NT/2000 installiert werden. Wenn Sie die Untersttzung fr schreibenden und lesenden Zugriff auf NTFS-Partitionen im Kern haben, reicht es aus, die betreffende Partition mit mount (S. 835) in das Dateisystem einzubinden. Gleiches gilt, wenn Sie NT/2000 auf einer FAT-Partition haben. Ansosnten knnen Sie eine Diskette verwenden. Legen Sie dazu eine FAT-formatierte Diskette in das Laufwerk und binden Sie diese ein: debian:~# mount -t msdos /dev/fd0 /floppy Nun kopieren Sie die eben erzeugte Bootsektor-Datei auf die Diskette: debian:~# cp /boot/bootsec /floppy Danach entfernen Sie die Diskette wieder aus dem Dateisystem: debian:~# umount /floppy Starten Sie den Rechner mit MS-Windows NT/2000 neu und kopieren Sie die Datei bootsec in das Wurzelverzeichnis des Startlaufwerks von MS-Windows NT/2000 (in der Regel das Laufwerk C:): C:\> copy a:\bootsec c:\bootsec Nun mssen Sie die Datei boot.ini im Wurzelverzeichnis des Startlaufwerks von MS-Windows NT/2000 editieren. Diese Datei ist meist schreibgeschtzt und verborgen. Dies ndern Sie mit folgendem Kommando: C:\> attrib -r -h -s c:\boot.ini Fgen Sie der Datei mit einem Texteditor folgenden Eintrag am Ende hinzu: C:\bootsec="Debian GNU/Linux" Setzen Sie die Attribute der Datei boot.ini wieder auf den Ausgangswert: C:\> attrib +r +h +s c:\boot.ini Nun sollten Sie beim Start von MS-Windows NT/2000 die Mglichkeit haben, Linux auszuwhlen. Achtung: Die Bootsektor-Datei muss jedesmal erneut auf die NT-Partition transferiert werden, wenn /sbin/lilo ausgefhrt wurde.

10.3 LILO Der LInux LOader

371

Wenn Sie die NT-Partition sowieso stndig mit Schreib-Lese-Zugriff eingebunden haben, knnen Sie den Map-Installer auch so kongurieren, dass er den Bootsektor gleich in die Datei auf der NT-Partition schreibt. Ist die NT-Startpartition in das Verzeichnis /winntC gemountet, so liee sich dieses mit folgender Anweisung in der Datei /etc/lilo.conf bewirken: root=/winntC/bootsec Keine freie Partition innerhalb der ersten 1024 Zylinder Wenn keine Linux-Partition verfgbar ist, die unterhalb der 1024-Zylinder-Grenze liegt (siehe Kap. 2.5.3) und durch das BIOS ansprechbar ist, mssen die von LILO bentigten Dateien auf die Partition eines fremden Betriebssystems kopiert werden, die unterhalb der Grenze liegt. Die Gefahr bei diesem Verfahren besteht darin, dass andere Betriebssysteme die Dateien dann verschieben und LILO hinterher nicht mehr funktioniert. Eine DOS-Partition darf beispielsweise nicht defragmentiert werden, wenn sich auf dieser von LILO bentigte Dateien benden, es sei denn, unmittelbar nach der Defragmentierung wird LILO mit /sbin/lilo neu installiert. Linux muss nach der Defragmentierung mit einer Bootdiskette, einer CD/DVD oder mit Loadlin gestartet werden, um LILO neu zu installieren. Angenommen, in einem Rechner bendet sich eine IDE-Festplatte mit einer primren FAT-Partition, auf der MS-Windows 95 installiert ist, und einer weiteren primren Partition, auf der Linux installiert ist, die oberhalb der 1024-Zylinder-Grenze liegt, deren Anfang sich jedoch unterhalb der Grenze bendet. Um die von LILO bentigten Dateien dauerhaft auf der DOS-Partition zu speichern, ist diese Partition zunchst in das Dateisystem von Linux einzubinden. Soll die Partition in das Verzeichnis /dosC gemountet werden, so ist das Verzeichnis zunchst anzulegen: debian:~# mkdir /dosC Nun ist der Datei /etc/fstab ein Eintrag zuzufgen, mit der die DOS-Partition beim Systemstart eingebunden wird: /dev/hda1 /dosC vfat defaults Nachdem dieser Eintrag hinzugefgt worden ist, wird die Partition mit folgendem Kommando eingebunden, ohne das System neu zu starten: debian:~# mount /dosC Jetzt muss auf der DOS-Partition ein Verzeichnis angelegt werden, in das die zum Booten mit LILO bentigten Dateien kommen: debian:~# mkdir /dosC/lin_boot Die Dateien werden in das neue Verzeichnis kopiert: debian:~# cp /boot/* /dosC/lin_boot

372

10 Starten von Linux Bootloader und Bootmanager

Das alte Verzeichnis /boot erhlt einen anderen Namen und dient als Sicherungskopie. Wenn alles funktioniert, kann es gelscht werden. Nun wird ein symbolischer Link von dem Verzeichnis /dosC/lin_boot auf /boot gesetzt. Programme, die auf /boot zugreifen, benutzen in Wirklichkeit das Verzeichnis /dosC/lin_boot: debian:~# ln -s /dosC/lin_boot /boot Die Kongurationsdatei fr LILO (/etc/lilo.conf ) unterscheidet sich bei dieser Konguration nicht von anderen. LILO wird weiterhin in den Bootsektor der LinuxPartition installiert, der sich ja unterhalb der 1024-Zylinder-Grenze bendet. Wre dies nicht der Fall, msste LILO in den MBR installiert werden, Ein weiteres Problem wre dann, dass die DOS-Partition ber die 1024-Zylinder-Grenze hinausreichen wrde und man nicht sicher sein knnte, dass die von LILO bentigten Dateien unterhalb dieser Grenze abgelegt werden.
root=/dev/hda2 delay=50 image=/vmlinuz label=Linux root=/dev/hda2 other=/dev/hda1 label=Win95

LILO wird durch Aufruf des Map-Installers installiert: debian:~# sbin/lilo

10.4 Alternative Bootloader


Mit dem Paket chos steht ein Bootmanager zur Verfgung, der LILO hnelt, bei dessen Design jedoch mehr Wert auf ansprechende Mens gelegt wurde. Ein weiterer Bootmanager ist GRUB (GRand Unied Bootloader) aus dem gleichnamigen Paket. Das Programm wurde entwickelt, um den HURD-Kern zu booten. Es ist jedoch auch in der Lage, Linux, DOS, MS-Windows und weitere Betriebssysteme zu starten. GRUB bietet gegenber LILO Vorteile. Der wichtigste ist, dass dieser Bootmanager eine Reihe von Dateisystemen kennt und Kerne direkt aus dem Dateisystem laden kann. Dadurch entfllt der Zwang zur Neuinstallation des Bootmanagers, wenn sich Kerndateien gendert haben. Auerdem knnen Kerne und Betriebssysteme mit GRUB whrend des Systemstarts ausgewhlt werden, ohne dass der Bootmanager zuvor dafr eingerichtet wurde. Ein besonders fr Bootdisketten geeigneter Bootloader ist syslinux aus dem gleichnamigen Paket. Der Bootloader wird auf den Rescue-Disketten benutzt. Er ist einfach zu installieren und bietet eine Reihe Mglichkeiten zur Konguration. Syslinux verwendet zum Laden des Kerns das FAT-Dateisystem von DOS. Um einen anderen Kern mit Bootdisketten zu starten, auf denen Syslinux benutzt wird, reicht es deswegen aus, die Abbilddatei des Kerns auf die Diskette zu kopieren. Eine Anleitung zu syslinux bendet sich in der Datei /usr/share/doc/syslinux/syslinux.txt.gz.

11 Anpassung und Erstellung des Betriebssystemkerns

11.1 Grundlagen
Der Linux-Kern stellt das Herz von Debian GNU/Linux dar. Er bietet allen anderen Programmen auf dem System eine denierte Schnittstelle zum Lesen von Daten oder zur Kommunikation ber das Netz. Wenn er eine solche Anforderung erhlt, ist es seine Aufgabe, die Hardware unmittelbar anzusprechen, also die Festplatte zu steuern oder Daten ber die Netzkarte zu senden. Der Kern nimmt darber hinaus eine Reihe weiterer Aufgaben war, die nicht direkt mit der Hardware zu tun haben, wie die Verwaltung von Prozessen oder das Aufrumen nach Beenden eines Prozesses. Ein Programm verwendet zum ffnen einer Datei immer denselben Aufruf einer Funktion im Kern (Systemaufruf, system call) unabhngig davon, auf welcher Festplatte sich die Datei bendet, ber welchen Typ von Adapter die Festplatte mit dem Rechner verbunden ist oder mit welchem Dateisystem die Festplatte formatiert ist. Der Kern muss hingegen die genannten Umstnde kennen, um die entsprechenden Daten an das Programm liefern zu knnen. Er muss also entweder in der Lage sein, eine groe Zahl unterschiedlicher Hardwarekomponenten anzusteuern, damit er auf mglichst vielen verschiedenen Systemen funktioniert, oder an die Hardware eines bestimmten Systems angepasst sein. Die standardisierte Schnittstelle des Kerns ermglicht, Programme unverndert auf Rechnern mit unterschiedlichen Hardwarekomponenten auszufhren, solange es sich um die gleiche Prozessorfamilie handelt und die Schnittstellen der von diesen Programmen bentigten Bibliotheken dieselben sind. Sie stehen deshalb in Form von Binrpaketen zur Verfgung, ebenso wie der Kern. Die Varianten des Kerns sind zum einen aus verschieden Versionen des Quellcodes und zum anderen fr die Untersttzung unterschiedlicher Rechner erstellt worden. Welche Kern-Binrpakete zur Verfgung stehen, knnen Sie sich bei Verwendung von APT durch die Eingabe des folgenden Kommandos anzeigen lassen: joe@debian:~$ apt-cache search kernel-image - -names-only

374

11 Anpassung und Erstellung des Betriebssystemkerns

Anfang 2004 lautet die Antwort, dass die aktuelle Version die Nr. 2.4.18 ist und fr rund ein Dutzend Architekturen vorliegt. Bei http://www.kernel.org/ ist man etwas weiter und bei der Nr. 2.4.23 angekommen. Die Verzgerung erklrt sich durch den Aufwand zum Einfgen des Kerns in das Debian-System. Die Binrpakete des Kerns tragen die Bezeichnung kernel-image, gefolgt von der Versionsnummer des Linux-Kerns, aus denen sie erstellt wurden und einer Revisionsnummer des Debian-Paketes. Einen eigenen Kern zu erzeugen, der spezielle Aufgaben oder Hardwareausstattungen bercksichtigt, ist immer dann notwendig, wenn Hardwarekomponenten des Systems zwar von Linux, aber nicht vom Standardkern untersttzt werden oder wenn ein Kern fr bestimmte Aufgaben bentigt wird, die vom Standardkern nicht gemeistert werden. In seltenen Fllen kann es sogar erwnscht sein, Vernderungen am Kern selbst vorzunehmen. Auch dann ist der Bau eines eigenen Kerns notwendig. 11.1.1 Module Whrend zur Anfangszeit von Linux die Erstellung eines angepassten Kerns zu den Routineaugaben bei der Installation gehrte, ist dies durch die Einfhrung von Modulen immer seltener notwendig geworden. Module sind dynamisch zur Laufzeit ladbare Teile des Kerns, die ihn um bestimmte Eigenschaften erweitern. Ein Modul kann den Treiber fr eine Hardwarekomponente beinhalten oder eine Funktionalitt wie die Fhigkeit, Datenpakete ber ein Modem zu verschicken. Mit der Verwendung von Modulen ist es einerseits mglich, die Untersttzung fr eine Vielzahl von Eigenschaften bereitzustellen, ohne sie fest in den Kern zu integrieren, und andererseits diese Eigenschaften vorbergehend in den Kern einzubauen, wenn sie bentigt werden. Beispielsweise kann ein Modul, das einen Treiber fr ISDN-Karten enthlt, vor dem Aufbau einer ISDN Verbindung in den Kern geladen und hinterher wieder entfernt werden. Im Gegensatz zu manchen anderen Betriebssystemen entfllt mit der Verwendung von Modulen die Notwendigkeit zum Neustart des Systems, wenn ein neuer Treiber eingebunden oder ein bereits benutzter gegen eine andere Version ausgetauscht wird. Achtung: Hierbei gibt es eine wichtige Ausnahme: Weil der Kern whrend seines eigenen Starts keine Module laden kann, mssen sich alle Treiber und sonstigen Teile des Kerns, die zum Start des Systems bentigt werden, im Kern benden und drfen nicht in Form von Modulen vorliegen. Zu diesen wichtigen Teilen gehren alle Treiber, die bentigt werden, um auf die Rootpartition (siehe Kapitel 2.6.3) zuzugreifen. Wenn Debian GNU/Linux auf eine Partition installiert wurde, die mit dem Ext2Dateisystem formatiert ist und sich auf einer SCSI-Festplatte bendet, die ber einen SCSI-Adapter der Firma Adaptec vom Typ AHA2940 mit dem Rechner verbunden ist, so mssen sich die Treiber fr diesen SCSI-Adapter und fr das Ext2Dateisystem fest im Kern benden. Sollten sich in dem betreffenden Rechner noch weitere Festplatten benden, die ber einen anderen Adapter mit dem Rechner verbunden sind und die mit anderen Dateisystemen formatiert sind, so sind hierfr keine

11.1 Grundlagen

375

Treiber im Kern erforderlich. Weil diese Festplatten nicht zum Systemstart bentigt werden, reicht es aus, die Treiber hierfr nach dem Start des Kerns als Module zu laden. Dies kann whrend der Initialisierung des Systems geschehen, bevor die Dateisysteme auf diesen Festplatten eingebunden werden. Gleiches gilt fr Sound- oder ISDN-Karten. Die Standardkerne aus den kernel-image-Paketen enthalten eine Vielzahl von wichtigen Treibern, die fest in den Kern integriert sind, damit der Start des Kerns auf vielen System mglich ist. Darber hinaus enthalten sie eine groe Anzahl von ladbaren Modulen beispielsweise fr Netzkarten oder Dateisysteme. Um eine bestimmte Funktionalitt hinzuzufgen, reicht es aus, das entsprechende Modul zu laden. Unter Debian GNU/Linux lsst sich dies mit dem Programm modconf machen. 11.1.2 Erstellung angepasster Kerne Neben den Binrpaketen stehen Pakete zur Verfgung, die den Quellcode des Kerns enthalten; sie tragen den Namen (kernel-source), gefolgt von der Versionsnummer des Kerns. Im Gegensatz zu den meisten anderen Paketen handelt es sich hierbei um gewhnliche Debian-Pakete, die den Quellcode zu einem Programm, nmlich zum Linux-Kern, enthalten. Der Quellcode wird mit einem Compiler in die binre, ausfhrbare Form bersetzt. Dabei knnen eine Reihe von Vorgaben gemacht werden, etwa fr welchen Prozessortyp der Kern optimiert werden soll oder welche Treiber in ihn integriert, als Modul oder gar nicht bersetzt werden sollen. Der gesamte Vorgang der bersetzung wird durch Makeles gesteuert, aus denen hervorgeht, mit welchen Optionen und Argumenten der Compiler aufzurufen ist. Auerdem wird der Prprozessor1 durch verschiedene Denitionen angewiesen, bestimmte Teile des Quellcodes einund andere auszuschlieen. Glcklicherweise sind im Linux-Quellcode verschiedene Werkzeuge enthalten, die es auf einfache Weise ermglichen, die Kernquellen nach Wunsch zu kongurieren. Debian stellt darber hinaus mit dem Paket kernel-package ein System bereit, mit dem sich nach der Konguration neue Kern-Pakete erzeugen lassen, die wie gewohnt mit dpkg installiert werden. Dadurch wird gewhrleistet, dass auch speziell angepasste Kerne, die nicht Teil der Distribution sind, durch das Paket-ManagementSystem verwaltet werden. 11.1.3 Was spricht fr einen angepassten Kern? Grundstzlich ist die Erstellung eines eigenen Kerns in vielen Fllen nicht notwendig: Wenn nach der Installation des Systems alle Hardwarekomponenten funktionieren und auch jede ansonsten bentigte Funktionalitt des Kerns in ihm selbst oder mit Modulen zur Verfgung steht, kann hierauf verzichtet werden.
1 Der C-Prprozessor ist ein Programm, das den Quellcode vor seiner eigentlichen bersetzung aufbereitet.

376

11 Anpassung und Erstellung des Betriebssystemkerns

Die Tatsache, dass der Standardkern eine breite Palette von Hardware untersttzt, bedeutet aber auch, dass er ziemlich gro ist und unntig viele Ressourcen verbraucht. Auch wenn der Standardkern als ausreichend erscheint, macht es Sinn, einen eigenen Kern zu erstellen, weil er nur die tatschlich vorhandene Hardware sowie die verlangten Eigenschaften zu untersttzen braucht. Auf diese Art lsst sich Speicherplatz sparen. Auerdem wird der Startprozess des Kerns beschleunigt, wenn dieser nicht nach fehlender Hardware sucht. Unter bestimmten Bedingungen sollte die Erstellung eines angepassten Kerns jedoch auf jeden Fall durchgefhrt werden. Beispielsweise untersttzen die Standardkerne nur Ein-Prozessor-Systeme, was bedeutet, dass alle weiteren Prozessoren eines Mehr-Prozessor-Systems nicht benutzt werden. In vielen Fllen ist darber hinaus die Optimierung fr eine bestimmte Hardwareausstattung oder bestimmte Aufgaben (z. B. als Router) lohnenswert. Wenn Sie Hardwarekomponenten in einem Rechner haben, fr die Sie keine Untersttzung im Standardkern nden, sollten Sie ebenfalls nachsehen, ob die Untersttzung hierfr im Kern-Quellcode vorhanden ist. 11.1.4 Stabile Kerne und Entwicklerkerne (Kernversionen) Auch der Linux-Kern wird stndig weiterentwickelt. Ebenso wie bei Debian ist deswegen zwischen Versionen zu unterscheiden, in denen die neuesten Entwicklungen enthalten sind, die aber auch Fehler aufweisen knnen, und auf der anderen Seite Versionen, die in Hinblick auf fehlerfreie Funktion fr Arbeitsrechner konzipiert sind. Diese beiden Arten von Versionen werden durch ihre Versionsnummern voneinander unterschieden. Stabile Kerne tragen eine gerade Zahl als Versionsnummer hinter dem ersten Punkt (beispielsweise 2.0.38, 2.2.14 oder 2.4.3), whrend unstabile Entwicklerversionen hier eine ungerade Zahl tragen (2.3.36 oder 2.5.2). Debian GNU/Linux 3.0 (woody) wurde fr die Kerne der Versionsfamilie 2.4.x konzipiert. Anfang 2004 ist die jngste stabile Kernversion die Nr. 2.4.23. Die nchste stabile Kernversion mit der Nr. 2.6.0 ist in Erprobung. Neben vielen kleinen Verbesserungen soll sie erweiterte Grenzen in extremen Situationen aufweisen und sich durch erhhte Ordnung auszeichnen. Die nchste stabile Debian-Version (3.1, sarge) bringt voraussichtlich den neuen Kern mit. Wenn Sie die neuere Versionsfamilie (2.6.x) schon unter Debian GNU/Linux 3.0 (woody) verwenden wollen, sollten Sie vorher sicherstellen, dass Ihr System mit diesen Kernen vertrglich ist. Achtung: Entwicklerversionen sollten Sie nur dann einsetzen, wenn Sie mit Ihrem Rechner experimentieren wollen. Sie mssen sich beim Einsatz der unstabilen Kerne immer darber im klaren sein, dass hier eine erhhte Wahrscheinlichkeit fr Fehler vorhanden ist, die im schlimmsten Fall zum vlligen Datenverlust fhren. Grnde, die gelegentlich fr den Einsatz eines unstabilen Kerns sprechen, sind Eigenschaften, die in den stabilen Varianten nicht enthalten sind (z. B. Treiber), Entwicklung von Kernbestandteilen oder der Wunsch, die neueste Software auszuprobieren. Allerdings wird auch die jeweils stabile Variante des Kerns stndig gepegt,

11.2 Installation der Software

377

um wichtige Eigenschaften ergnzt oder von Fehlern befreit, sodass kein triftiger Grund fr den Einsatz eines Entwicklerkerns auf Produktionsrechnern besteht. Aus Kompatibilittsgrnden wird neben der aktuellen stabilen Version und der Entwicklerversion auch die vorletzte stabile Version noch eine Zeit lang gepegt. Wenn die aktuelle stabile Version beispielsweise 2.4.23 ist, so kann damit gerechnet werden, dass auch fr die Kerne der 2.2.x Familie whrend einer bergangszeit Updates erhltlich sind. Solche Updates betreffen in der Regel Sicherheitslcken und andere wichtige Fehler. Neue Eigenschaften werden den alten Kernen nicht mehr hinzugefgt. Das ist wie bei alten Kerlen. 11.1.5 Auswahl eines Kerns Zwischen Versionsfamilien (2.4.x und 2.6.x) bestehen oft grundstzliche Unterschiede in der Funktionsweise verschiedener Bereiche. Die Folge ist, dass beim Umstieg von einer Versionsfamilie auf eine aktuellere auch eine Reihe von weiteren Programmen ausgetauscht werden muss, weil einzelne Schnittstellen des Kerns gendert wurden. Bevor man sich fr einen Kern entscheidet, sollte geprft werden, ob die kritischen Bestandteile der eingesetzten Distribution mit der fraglichen Kernversion problemlos zusammenarbeiten. Informationen ber die verfgbaren Kerne erhalten Sie unter http://www.kernelnotes.org/. Dort nden Sie zu jeder Versionsfamilie eine Seite, auf der die Softwarevoraussetzungen erlutert sind.

11.2 Installation der Software


11.2.1 Festplattenplatz Die Menge des zum bersetzen des Quellcodes und zur Erstellung von DebianPaketen bentigten Festplattenplatzes ist abhngig von den whrend der Konguration ausgewhlten Optionen sowie der Art der zu erstellenden Debian-Pakete. Im Normalfall (Erstellung eines Kerns mit Treibern fr eine gegebene Hardwarekonguration sowie Erstellung eines Debian-Pakets mit der Kern-Datei und Modulen) sollten 100 MB Festplattenplatz ausreichen. Nach Erstellung des Kerns kann der Platz wieder freigegeben werden. 11.2.2 Pakete Zum bersetzen bentigen Sie neben dem Quellcode des Kerns den C-Compiler gcc und die Entwicklerdateien der C-Bibliothek aus dem Paket libc6-dev. Weiter brauchen Sie das Programm make sowie eine Reihe von Werkzeugen, die in den Paketen bin86 und binutils enthalten sind. Darber hinaus wird empfohlen, das Paket kernelpackage zu installieren. Dieses Paket ermglicht die automatische Erstellung von Debian-Paketen aus dem Kernquellcode. Dann sollten Sie noch das Paket fakeroot verwenden. Mit dem darin enthaltenen Programm knnen Sie Debian-Pakete erstellen, ohne als Systemverwalter angemeldet zu sein. Weitere Pakete, die auf Ihrem

378

11 Anpassung und Erstellung des Betriebssystemkerns

System vorhanden sein sollten, sind mawk oder gawk, gzip, shellutils und grep. Zur Konguration des Kerns stehen drei Wege offen: 1. Ein einfaches Programm, das Fragen zu den verschiedenen Kongurationsbereichen des Kerns stellt. Wenn Sie den Kern auf diese Weise kongurieren mchten, brauchen Sie keine zustzliche Software zu installieren. 2. Ein mengesteuertes Programm fr die Konsole. Sie mssen die Entwicklerdateien fr die curses-Bibliothek installieren, wenn Sie dieses Verfahren verwenden wollen (Paket: libncurses5-dev). 3. Ein Programm zur Konguration des Kerns unter X11. Wenn Sie X11 verwenden, sollten Sie dieses Verfahren whlen. Hierzu mssen Sie die Entwicklerdateien fr tk installieren (Paket: tk8.2-dev oder tk8.0-dev). Bei Verwendung von apt geben Sie folgendes Kommando ein, um die bentigte Software inklusive der Pakete fr die Konguration unter X11 zu installieren: debian:~# apt-get install gcc binutils bin86 make kernel-package tk8.2-dev fakeroot 11.2.3 Konguration des Pakets kernel-package Die in dem Paket kernel-package enthaltenen Skripte steuern die Erstellung von Debian-Paketen aus dem Kernquellcode. Es ist zwar auch mglich, einen fertig erzeugten Kern direkt zu installieren, allerdings wre dann der Paketmanager nicht mehr richtig ber die installierten Dateien sowie die benutzte Kernversion informiert. Die Erstellung von Debian-Kern-Paketen bietet auerdem den Vorteil, dass sich unterschiedliche Kernversionen samt den erzeugten Paketen leicht speichern lassen, ohne dass es erforderlich ist, den gesamten Quellcode der entsprechenden Version zu sichern. Darber hinaus lassen sich mit kernel-package unterschiedlich kongurierte Kerne aus der gleichen Version des Quellcodes erzeugen. Dies ist von Vorteil, wenn auf einem Rechner Kerne fr andere Rechner erzeugt werden sollen oder mit verschiedenen Kernkongurationen experimentiert werden soll. Weil kernel-package Debian-Pakete erzeugt, sind bei der Konguration einige Angaben zu machen, die sich darauf auswirken, welche Informationen in die zu erzeugenden Pakete aufgenommen werden und wie sich diese bei ihrer Installation verhalten. Whrend der Installation von kernel-package wird das Skript /usr/sbin/kernel-packagecong aufgerufen. Dieses Skript fragt Sie nach dem Namen und der Email-Adresse desjenigen, der fr die Erstellung des Kerns auf Ihrem System verantwortlich ist. Diese Information wird dazu benutzt, die erstellten Pakete zu signieren, und erscheint in den Kontrollinformationen der zu erzeugenden Pakete. Sie sollten hier sinnvolle Angaben machen, damit Sie und andere spter Ihre KernPakete von den ofziellen Paketen unterscheiden knnen. Die Informationen werden in der Datei /etc/kernel-pkg.conf abgelegt. Dort lassen sich einige weitere Angaben vornehmen, wie in der Manualseite zu der Datei kernelpkg.conf(5) erlutert.

11.2 Installation der Software

379

11.2.4 Installation und Entpacken des Quellcodes Die Kernquellen werden in Form von Debian-Paketen bereit gestellt. In der Regel hat man die Wahl zwischen mehreren Versionen. Die zur Verfgung stehenden Versionen der Kernquellen knnen Sie mit dselect (Seite 7.4) suchen oder sofern Sie apt verwenden durch die Eingabe des folgenden Kommandos angezeigen lassen. joe@debian:~$ apt-cache search - -names-only kernel-source Nach der Auswahl des in Frage kommenden Quellcodes installieren Sie das Paket, beispielsweise den Quellcode fr den Kern 2.4.18: joe@debian:~$ apt-get install kernel-source-2.4.18 Sie brauchen den Quellcode des Kerns nicht aus einem Debian-Paket zu installieren, sondern knnen diesen auch direkt aus dem Internet beziehen. Der zentrale Server im Internet zum Bezug des Kernquellcodes ist unter http://www.kernel. org/ erreichbar. Dort nden Sie auch eine Liste weiterer Server. Sie sollten jedoch in jedem Fall einen vertrauenswrdigen Server verwenden und den heruntergeladenen Quellcode verizieren. Dazu mssen Sie gnupg installiert haben. Weitere Hinweise nden Sie auf der Webseite unter http://www.kernel.org/ signature.html. Einen Vorteil bietet der Bezug des Quellcodes aus dem Internet: Wenn Sie von einer Version auf eine neuere updaten mchten, knnen Sie eine Patchdatei herunterladen, die nur die nderungen zwischen den beiden Versionen enthlt. Auf diese Weise lsst sich die Menge der herunter zu ladenden Daten auf einen Bruchteil reduzieren. Auf Seite 418 nden Sie Hinweise, wie Sie diese Patchdateien in den vorhandenen Quellcode einbauen. Der Kernquellcode, der mit Debian-Paketen zur Verfgung gestellt wird, kann sich von dem ofziellen Quellcode unterscheiden. So knnen hier wichtige Vernderungen vorgenommen sein, die zustzliche Eigenschaften zur Verfgung stellen oder Fehler entfernen. Die Verwendung der Debian-Pakete hat also den Vorteil, u. U. einen besseren Kern als den ofziellen einzusetzen. Allerdings kann es zu Problemen kommen, wenn Patchdateien in den Quellcode aus Debian-Paketen integriert werden. Wenn Sie den Kernquellcode aus dem Internet herunterladen, knnen Sie in der Regel zwischen zwei verschiedenen Formaten whlen, nmlich zwischen einem tarArchiv, das mit GNU-Zip komprimiert wurde, und einem weiteren, das mit dem Kompressionsprogramm bzip2 komprimiert wurde. Dessen Archive haben die Endung .bz2. Wenn Sie den Kernquellcode mit einem Debian-Paket installiert haben, nden Sie im Verzeichnis /usr/src das komprimierte Archiv des Quellcodes, beispielsweise eine Datei mit dem Namen kernel-source-2.4.18.tar.bz2. Dieses Archiv entpacken Sie mit den Programmen bunzip2 (S. 776) und tar (S. 870). Vorher sollten Sie jedoch sicherstellen, dass Sie die Quellen in ein leeres Verzeichnis entpacken. In /usr/src sollte noch kein Verzeichnis mit der jeweiligen Versionsnummer existieren, hier kernel-source-2.4.18. Das Verzeichnis wird von tar angelegt und benutzt.

380

11 Anpassung und Erstellung des Betriebssystemkerns

Die im Internet erhltlichen Archive legen den Quellcode in der Regel unterhalb des Verzeichnisses linux ab, whrend die Archive aus den Debian-Paketen den Code in ein Verzeichnis ablegen, dessen Namen aus kernel-source und der entsprechenden Versionsnummer besteht. Letzteres Verfahren bietet den Vorteil, dass beim Entpacken einer neueren Version die alte nicht berschrieben wird. Falls im Verzeichnis, in dem sie den Quellcode entpacken wollen, bereits ein Verzeichnis linux bzw. das entsprechende kernel-source Verzeichnis existiert, sollten Sie dieses verschieben oder lschen, bevor Sie den Quellcode entpacken. Zum Entpacken des Quellcodes geben Sie folgende Kommandos ein: joe@debian:~$ bunzip2 /usr/src/kernel-source-2.4.18.tar.bz2 joe@debian:~$ tar -xvf /usr/src/kernel-source-2.4.18.tar Verwenden Sie den Quellcode aus dem Internet, sollten Sie das Verzeichnis linux, das beim Entpacken erzeugt wurde, aussagekrftiger umbenennen, beispielsweise linux-2.4.18. 11.2.5 Das Verzeichnis /usr/src/linux Sofern Sie selbst Quellcode anderer Programme bersetzen, kann es vorkommen, dass hierzu Informationen direkt aus dem Kernquellcode bentigt werden. In solchen Fllen wird der Kernquellcode unterhalb des Verzeichnisses /usr/src/linux erwartet. Sie sollten deswegen einen symbolischen Link vom Basisverzeichnis der Kernquellen hierhin setzen. Wenn das Basisverzeichnis des Quellcodes /home/jakob/linux2.4.18 ist, geben Sie dazu folgendes Kommando ein: debian:~# ln -s /home/jakob/linux-2.4.18 /usr/src/linux Die Header-Dateien in den Verzeichnissen /usr/include/asm, /usr/include/scsi sowie /usr/include/linux sind unter Debian GNU/Linux Bestandteil der Entwicklerdateien fr die C-Bibliothek (Paket: libc6-dev) und unabhngig vom installierten Kern.

11.3 Konguration des Kerns


11.3.1 Methoden der Konguration Vorbereitungen Um den Kernquellcode zu kongurieren, wechseln Sie zunchst in das Basisverzeichnis des installierten Kerns: joe@debian:~$ cd kernel-source-2.4.18

11.3 Konguration des Kerns

381

Wenn Sie mit dem Quellcode in diesem Verzeichnis bereits einen Kern erzeugt haben, lschen Sie alle hierbei entstandenen temporren Dateien, bevor Sie beginnen, einen Kern zu erstellen, dessen Konguration sich von der des vorherigen Kerns unterscheidet. Geben Sie dazu folgendes Kommando ein: joe@debian:~$ make-kpkg clean Die alte Konguration selbst wird dabei nicht gelscht. Sie knnen dieses Kommando auch gleich nach der Erzeugung eines neuen Kerns benutzen, um den durch die temporren Dateien belegten Speicherplatz freizugeben. Konguration unter X11 Wie erwhnt stehen zur Konguration des Kerns verschiedene Programme zur Verfgung, die im Kernquellcode enthalten sind. Wenn Sie unter X11 arbeiten, geben Sie folgendes Kommando ein, um das Kongurationswerkzeug zu starten: joe@debian:~$ make xconfig Das Werkzeug wird daraufhin bersetzt und gestartet. Es sollte der in Abbildung 11.1 dargestellte Bildschirm erscheinen.

Abbildung 11.1. Kernkonguration unter X11

Das Programm ist einfach zu benutzen: Im Hauptfenster nden Sie eine Anzahl von Knpfen, welche die verschiedenen Gruppen von Optionen reprsentieren. Durch Mausklick auf einen dieser Knpfe ffnet sich ein weiteres Fenster, in dem die Optionen der entsprechenden Gruppe untereinander aufgelistet sind. Neben jeder Option bendet sich ein Hilfeknopf, mit dem Sie Informationen zu den Optionen abrufen. Im unteren Bereich des Fenster knnen Sie mit den Knpfen Next und Prev

382

11 Anpassung und Erstellung des Betriebssystemkerns

zur jeweils nchsten bzw. vorhergehenden Optionsgruppe schalten. ber den Knopf Main Menu gelangen Sie zum Hauptmen. Links neben jeder Option benden sich drei Auswahlknpfe, mit denen Sie bestimmen, ob der jeweilige Bestandteil fest in den Kern integriert werden soll (y), ob er als Modul bersetzt werden soll (m) oder ob er nicht bersetzt werden soll (n). In einigen Fllen ist die Angabe von Zahlen notwendig; hier benden sich Texteingabefelder neben den Optionen. Einige Optionen und Optionsgruppen erscheinen in hellerer Farbe und knnen nicht verndert werden. Der Grund besteht darin, dass diese Optionen durch andere ausgeschlossen worden sind. Beispielsweise ist es nicht mglich, Treiber fr bestimmte SCSI-Adapter in den Kern zu integrieren, so lange nicht die generelle Untersttzung fr SCSI aktiviert wurde. Das Programm wird durch Auswahl der Schaltche Save and Exit verlassen, wobei die nderungen der Konguration gesichert werden. Wenn Sie das Programm verlassen wollen, ohne Ihre nderungen zu sichern, whlen Sie Quit Without Saving. Mit den Knpfen Load Conguration from File sowie Save Conguration to File speichern Sie die Kernkonguration in einer Datei Ihrer Wahl unabhngig vom Quellcode des Kerns. Konguration an der Konsole Um den Kern an der Konsole oder in einem Terminalfenster mit einem menorientierten Werkzeug zu kongurieren, ist folgendes Kommando einzugeben: joe@debian:~$ make menuconfig Es sollte der in Abbildung 11.2 gezeigte Bildschirm erscheinen.

Abbildung 11.2. Kernkonguration mit make menucong

11.3 Konguration des Kerns

383

Das Programm ist hnlich zu benutzen wie das Installationsprogramm. Nach dem Start sehen Sie die Liste aller Optionsgruppen. Mit den Pfeiltasten P FEIL R AUF und P FEIL RUNTER bewegen Sie sich in dieser Liste, mit E INGABE whlen Sie eine Optionsgruppe. Daraufhin erscheinen die Optionen der betreffenden Gruppe untereinander. Auch hier dienen die Pfeiltasten zum Auswahl. Der Status einer Option lsst sich mit der Taste L EER umschalten und wechselt nach Bettigung dieser Taste zwischen folgenden Zustnden: Option/Treiber wird als Modul erstellt (M). Option/Treiber wird fest in den Kern integriert (*). Option/Treiber wird nicht bersetzt. Einige Optionen lassen sich nur fest oder nur als Modul bersetzen. Die brigen Optionen knnen dann nicht aktiviert werden. Durch Bettigung der Taste M bestimmen Sie direkt, die ausgewhlte Option als Modul zu erzeugen. Falls dies nicht mglich ist, bewirkt die Taste M dasselbe wie die Taste L EER. In einigen Fllen mssen zur Konguration bestimmter Kernbestandteile Zahlen eingegeben werden. Solche Optionen sind mit E INGABE auszuwhlen. Es erscheint eine Texteingabebox fr die entsprechende Angabe. Mit den Pfeiltasten P FEIL L INKS und P FEIL R ECHTS whlen Sie zwischen den Aktionen Select, Exit und Help im unteren Teil des Bildschirms. Nach der Auswahl von Exit wird gefragt, ob die Sicherung der Konguration gewnscht ist. Durch Help erhalten Sie Informationen zu der gerade ausgewhlten Option. Im unteren Teil des Hauptmens (Liste aller Optionsgruppen) benden sich zwei Menpunkte, mit denen Sie eine bestehende Konguration unabhngig von den Kernquellen speichern bzw. laden knnen. Frage-Antwort Konguration Das Kommando: joe@debian:~$ make config ruft ein Skript auf, das nacheinander die einzelnen Optionen abfragt. Hinter jeder Frage benden sich in Klammern die zulssigen Antworten, wobei die Voreinstellung gro und die brigen Antworten klein geschrieben sind. Wenn Sie die Voreinstellung auswhlen mchten, reicht es, E INGABE zu drcken. Als Antwort stehen bei den meisten Optionen zur Verfgung: Die Eigenschaft soll fest in den Kern integriert werden (y). Die Eigenschaft soll als Modul bersetzt werden (m). Die Eigenschaft soll nicht bersetzt werden (n). Durch Auswahl von ? wird die Hilfe zu der aktuellen Option angezeigt. Insgesamt sind rund 200 Fragen zu beantworten. Das hrt sich schlimmer an. als es ist. Sie sollten Ihre Hardware kennen und haben im Grunde zwei Mglichkeiten: Sie verstehen die Frage und wissen die Antwort.

384

11 Anpassung und Erstellung des Betriebssystemkerns

Sie verstehen oder wissen nichts. Dann bernehmen Sie die Vorgabe. In letzterem Fall gert Ihr Kern vermutlich suboptimal, weil die Vorgaben vorsichtig gehalten sind, aber er funktioniert. Im brigen knnen Sie gengend Plattenplatz vorausgesetzt so viele und so verquere Kerne bersetzen, wie Sie wollen. Ernst wird es erst, wenn Sie einen neuen Kern dorthin kopieren, wo er vom Bootloader abgeholt wird. 11.3.2 Aktualisieren der Konguration Eine abgewandelte Form der Konguration mit make cong steht mit dem Kommando: joe@debian:~$ make oldconfig zur Verfgung. Hierbei wird berprft, welche Optionen bei der bestehenden Kernkonguration noch nicht vorhanden waren. Es werden nur solche Fragen gestellt, die neu hinzu gekommen sind. Dies ist hilfreich, wenn der Kern mit einer Patchdatei auf eine neuere Version aktualisiert wurde und es nicht erwnscht ist, alle bereits beantworteten Fragen erneut zu beantworten. Dadurch, dass nur nach neuen Optionen gefragt wird, verschafft das Kommando make oldcong auerdem einen gewissen berblick ber neu hinzugekommene Kerneigenschaften. Die Benutzung ist dieselbe wie bei make cong. 11.3.3 Manuelles Sichern und Anpassen der Konguration Die aktuelle Konguration wird in der Datei .cong im Basisverzeichnis des Kernquellcodes abgelegt. Sie sollten diese Datei sichern, bevor Sie das Quellcodeverzeichnis lschen oder beginnen, eine neue Konguration zu erstellen. Natrlich knnen Sie auch eine andere Kongurationsdatei nehmen und diese nach .cong kopieren. Sie erhalten dann bei der Konguration des Kerns die Einstellungen aus einer solchen Datei als Vorgaben. Nach der Installation aus einem Debian-Paket bendet sich die Kongurationsdatei des Kerns im Verzeichnis /boot und trgt den Namen cong-(Kernversion). Dadurch lsst sich nachvollziehen, mit welchen Optionen ein installierter Kern bersetzt wurde. In verschiedenen Dokumentationstexten nden sich Hinweise darauf, welche Eigenschaften im Kern vorhanden sein mssen, damit der Kern eine bestimmte Aufgabe wahrnehmen kann. So ndet sich im IP-Masquerade-HOWTO der Hinweis, dass die Eigenschaften:
CONFIG_EXPERIMENTAL CONFIG_MODULES CONFIG_NET CONFIG_FIREWALL

11.3 Konguration des Kerns

385

aktiviert sein mssen, um Network Address Translation (NAT, Masquerading) zu nutzen. Die Angaben entsprechen dem Format, in dem die Konguration in der Datei .cong abgespeichert ist. Sie knnen die Datei auch mit einem Texteditor bearbeiten und dann beispielsweise den Eintrag: # CONFIG_EXPERIMENTAL is not set folgendermaen ndern: CONFIG_EXPERIMENTAL=y 11.3.4 Kernbestandteil oder Modul? Bei der berlegung, ob ein bestimmter Bestandteil fest in den Kern integriert oder als Modul bersetzt werden soll, sind folgende Punkte zu bedenken: Alle Treiber, die bentigt werden, um auf die Rootpartition und das darauf bendliche Dateisystem zuzugreifen, mssen fest in den Kern integriert werden. Treiber fr Tastatur und Bildschirmausgabe sollten sich ebenfalls fest im Kern benden. Bestandteile, die stndig bentigt werden (z. B. Treiber fr Dateisysteme, die stndig benutzt werden), knnen bedenkenlos fest integriert werden. Alle Bestandteile, die nur gelegentlich bentigt werden, sollten als Modul kompiliert werden, um den Kern nicht unntig aufzublhen. Module bieten den Vorteil, dass sie oftmals mit Parametern geladen werden knnen, die ihr Verhalten beeinussen. Bei Verwendung von Modulen kann mit Parametern experimentiert werden, ohne dass das System neu gestartet werden muss. Fest integrierten Bestandteilen knnen Parameter nur beim Systemstart bergeben werden. Beim Laden eines Moduls, das einen Hardwaretreiber beinhaltet, wird die entsprechende Hardwarekomponente neu initialisiert. Hardwarekomponenten, die sich aufgehngt haben oder in einen inkonsistenten Zustand geraten sind, knnen durch das Ent- und Neuladen eines Moduls oft wieder zur Mitarbeit bewegt werden, wohingegen das System bei fest in den Kern integrierten Bestandteilen in solchen Fllen neu gestartet werden muss. 11.3.5 Erstellen der Konguration Der folgende Abschnitt gibt Hinweise zu ausgewhlten Optionen bei der Konguration des Kerns. Weitere Hinweise nden Sie in den Hilfetexten zu den einzelnen Optionen, im Kernel-HOWTO (das Kernel-HOWTO ist im Paket doc-linux-text enthalten und bendet sich nach dessen Installation im Verzeichnis /usr/share/doc/entxt/Kernel-HOWTO.txt.gz) sowie in den Dokumentationsdateien des Kerns im Unterverzeichnis Documentation des Basisverzeichnisses der Kernquellen. Die Optionen werden hier in ungefhr der Reihenfolge vorgestellt, wie sie von den Kongurationsprogrammen abgefragt werden. Einige Abfragen haben wir weggelassen, weil sie nicht von allgemeinem Interesse sind. Die Angaben beziehen sich

386

11 Anpassung und Erstellung des Betriebssystemkerns

auf Version 2.4.18 des Linux-Kerns; andere Kern-Versionen knnen hiervon abweichende Optionen anbieten. Die Empfehlungen gelten fr eine Verwendung des Kerns als Allround-Arbeitsplatzsystem. Im Fall von Hardwaretreibern knnen keine Empfehlungen ausgesprochen werden, da die Entscheidung, einen solchen Treiber zu integrieren, ausschlielich von der jeweiligen Hardware abhngt. Deshalb ist es angebracht, beim Kongurieren alle Unterlagen zur Hardware griffbereit zu haben. Code maturity level options Die erste Optionsgruppe beinhaltet nur eine einzige Option, die nicht den Kern selbst, sondern die Kongurationsskripte beeinusst. Durch die Option prompt for development and/or incomplete code/drivers wird festgelegt, ob die Kongurationsskripte auch solche Kernbestandteile zur Auswahl anbieten sollen, die von den Entwicklern als noch nicht ausgereift (experimentell) angesehen werden. Wenn Sie einen Kern erzeugen, der fr ein Produktionssystem bestimmt ist, sollten Sie diese Option nicht whlen. Falls Sie neue oder experimentelle Bestandteile testen mchten oder Hardware betreiben, fr die noch keine stabilen Treiber zur Verfgung stehen, whlen Sie diese Option. Die Auswahl wird reichhaltiger, ablehnen knnen Sie eine Option immer noch, zumal das die Vorgabe bei experimentellen Optionen ist. Loadable module support Enable loadable module support Die Untersttzung fr Module ist zu empfehlen: y. Set version information on all symbols for modules Die Aktivierung dieser Option ermglicht, Module in den Kern zu laden, die nicht explizit fr den zu erstellenden Kern bersetzt wurden. Empfehlung: y. Kernel module loader Mit dieser Option wird der Kern in die Lage versetzt, Module automatisch zu laden, sobald eine Eigenschaft bentigt wird, die nicht im Kern, jedoch als Modul vorhanden ist. Empfehlung: y. Processor type and features Processor family Hier whlen Sie aus, fr welchen Prozessortyp der Kern optimiert werden soll. Prinzipiell wird die Arbeitsgeschwindigkeit durch einen optimierten Kern erhht. Optimierte Kerne sind u. U. nicht abwrts-kompatibel. Ein Kern, der fr einen PentiumProzessor optimiert wurde, kann nicht auf einem 386- oder 486-Prozessor ausgefhrt werden. Fr Pentium II oder III Prozessoren whlen Sie PPro/6x86MX aus.

11.3 Konguration des Kerns

387

High memory support Mit dieser Option bestimmen Sie, wieviel physikalischen Arbeitsspeicher (RAM) der Kern adressieren kann. Fr Rechner mit weniger als 4 GB RAM whlen Sie off. Math emulation Alte Prozessoren der Intel x86-Familie besitzen keinen mathematischen Coprozessor. Dieser kann jedoch von Linux emuliert werden. Falls sie ein solches Modell einsetzen (386- oder 486SX-Prozessor ohne Coprozessor), mssen Sie diese Option auswhlen. In allen anderen Fllen soll darauf verzichtet werden. Prozessoren der Pentium-Klasse oder hher sind mit einem mathematischen Coprozessor ausgestattet. MTRR (Memory Type Range Register) support Diese Eigenschaft ermglicht bestimmten Programmen einen beschleunigten Zugriff auf Hardwarebestandteile insbesondere auf den Videospeicher vorausgesetzt sie wird vom Kern untersttzt. Wenn Sie sich nicht sicher sind, sollten Sie MTRR-Untersttzung aktivieren, weil sie sich nicht negativ auswirkt, wenn sie in der Hardware nicht vorhanden ist. Symmetric multi-processing support Mit dieser Option wird die Untersttzung mehrerer Prozessoren in einem Rechner aktiviert. Wenn Sie den Kern fr einen Rechner mit mehreren Prozessoren erzeugen, sollten Sie diese Option einschalten, weil sonst nur ein Prozessor genutzt wird. General setup Networking support Diese Option muss in fast allen Fllen eingeschaltet sein. Viele Programme bentigen die Netzfhigkeit des Kerns auch dann, wenn der Rechner unvernetzt ist. PCI support Moderne Rechner sind mit einem PCI-Bus ausgestattet. Diese Option sollte deswegen in der Regel ausgewhlt werden. PCI access mode Diese Option bestimmt, wie der Kern die an den PCI-Bus angeschlossenen Gerte identiziert. Normalerweise sollten Sie hier Any auswhlen.

388

11 Anpassung und Erstellung des Betriebssystemkerns

MCA support MCA steht fr Microchannel, eine Bus-Architektur, die in PS/2-Rechnern von IBM verwendet wird. Wenn Ihr Rechner mit einem solchen Bus ausgestattet ist, mssen Sie y whlen. Die meisten Rechner besitzen keinen Microchannel Bus. Support for hot-pluggable devices Empfehlung y. PCMCIA/CardBus support Falls Sie PCMCIA-Gerte (PC-Cards) verwenden: y oder m. WLAN-Karten brauchen diesen Bus mitunter, auch wenn sie als PCI-Karte angeschlossen sind. PCI hotplug support Empfehlung y. Bei den Unterfragen Vorgaben bernehmen. System V IPC Diese Option ermglicht eine oft genutzte Mglichkeit zur Kommunikation zwischen verschiedenen Prozessen (IPC = Inter Process Communication). Unsere Empfehlung: y. BSD Process Accounting Mit dieser Option wird Programmen ermglicht, Informationen ber die Benutzung des Rechners durch einzelne Benutzer zu ermitteln. Hiervon machen die GNU Accounting utilities (Paket: acct) Gebrauch. Empfehlung: n. Sysctl support Hiermit wird ermglicht, verschiedene Eigenschaften des Kerns zu seiner Laufzeit zu verndern. Empfehlung: y. Kernel core format Empfehlung: ELF. Kernel support for a.out binaries Das a.out-Format ist ein veraltetes Programmformat, das frher unter Linux/UNIX genutzt wurde. Programme aus Debian-Paketen liegen nicht in diesem Format vor. Empfehlung: Modul (m). Kernel support for ELF binaries Das Executable and Linkable Format (ELF) ist das Standarddateiformat fr ausfhrbare Programme und Programmbibliotheken unter Debian GNU/Linux. Sie mssen die Untersttzung fr dieses Format fest in den Kern kompilieren (y).

11.3 Konguration des Kerns

389

Kernel support for MISC binaries Die Option ermglicht, fr verschiedene Dateitypen Programme beim Kern zu registrieren, mit denen die Dateien ausgefhrt oder geffnet werden sollen. Auf diese Weise lassen sich beispielsweise MS-Windows-Programme automatisch mit wine (S. 887) ausfhren, ohne dass wine explizit aufgerufen werden muss. Unsere Empfehlung: m. Power management support Bei neueren Rechnern y, bei alten n. Untersttzt das Advanced Power Management (APM). Parallel port support Hiermit wird die Untersttzung fr parallele Schnittstellen im Kern aktiviert. Sie bentigen diese Untersttzung, wenn Sie einen Drucker oder ein ZIP-Laufwerk an die parallele Schnittstelle anschlieen wollen. Empfehlung: y oder m. Falls Sie die parallele Schnittstelle schon im BIOS deaktiviert haben: n. Plug and Play Support Mit dem Plug-and-Play-Protokoll (PnP) knnen Hardwarekomponenten durch das Betriebssystem fr die Benutzung bestimmter Ressourcen konguriert werden. Unter Linux wurde diese Aufgabe in der Regel von dem Programm isapnp (S. 447) (Paket: isapnptools) wahrgenommen. Mittlerweile wird die PnP-Untersttzung in den Kern integriert. Empfehlung: y. Block Devices Hierbei handelt es sich um eine Klasse von Gerten, die Festplatten und Diskettenlaufwerke umfasst. Normal PC oppy disk support Wenn Ihr Rechner mit einem gewhnlichen Diskettenlaufwerk ausgestattet ist, sollten Sie diese Option aktivieren. XT Hard disk support Untersttzung fr sehr alte Festplattencontroller. Empfehlung: n. Loopback device support Mit der Option lassen sich Dateien wie Festplattenpartitionen oder CDs in das Dateisystem einbinden. Dies ist sinnvoll, um eine CD-Image-Datei zu testen, bevor sie endgltig auf eine CD gebrannt wird. Die Option wird fr Kerne bentigt, mit denen die Installation von Debian GNU/Linux durchgefhrt werden soll. Empfehlung: m.

390

11 Anpassung und Erstellung des Betriebssystemkerns

Network block device Der Treiber ermglicht, Blockgerte zu verwenden, die im Netz von einem anderen Rechner bereitgestellt werden. Nhere Informationen in der Datei nbd.txt im Dokumentationsverzeichnis des Kerns. Empfehlung: n. RAM disk support Der Treiber ermglicht, einen Teil des Arbeitsspeichers als Blockgert (wie eine Diskette) zu verwenden. Er muss fest in den Kern integriert werden, wenn Sie ihn fr Debian-Installationsdisketten verwenden wollen. Empfehlung: m. Multiple devices driver support Mit der Option wird ermglicht, mehrere Blockgerte (z. B. Festplattenpartitionen) wie eine einzige Partition anzusprechen. Sie mssen die Option auch dann verwenden, wenn Sie Software-RAID benutzen wollen. Mehr Informationen im SoftwareRAID Mini-HOWTO, das sich nach Installation des Paketes doc-linux-text in der Datei /usr/share/doc/HOWTO/en-txt/mini/Software-RAID.txt.gz bendet. Unsere Empfehlung: n. Enhanced IDE/MFM/RLL disk/cdrom/tape/oppy support Mit dieser Option wird die Untersttzung fr (E)IDE-Adapter aktiviert. Sie mssen diese Eigenschaft fest in den Kern integrieren, wenn die Festplatte, auf der sich das Rootdateisystem bendet, an einen solchen Adapter angeschlossen ist (y). Wenn Sie ein reines SCSI-System verwenden, brauchen Sie diese Option nicht zu aktivieren. Bei Mischsystemen empehlt es sich, die (E)IDE-Treiber als Modul zu kompilieren, wenn lediglich ein CD-Laufwerk an den EIDE-Treiber angeschlossen ist, das selten benutzt wird. Hard disk (MFM/RLL/IDE) driver Hierbei handelt es sich um einen alternativ zu verwendenden Treiber fr IDEFestplatten. Sie sollten den Treiber ausprobieren, wenn Sie ein lteres IDE-System besitzen und es mit dem neuen Treiber zu Problemen kommt. Sie knnen nur einen der beiden Treiber auswhlen. Empfehlung: n. Use old disk only driver on primary interface Mit der Option wird der ltere IDE-Treiber nur fr die erste IDE-Schnittstelle benutzt. Alle weiteren Schnittstellen werden ber den neueren Treiber angesteuert. Dadurch lassen sich die Fhigkeiten des neuen Treibers auch in solchen Systemen verwenden, bei denen es zu Problemen kommt, wenn die Festplatte an der ersten IDE-Schnittstelle durch den neuen Treiber angesteuert wird. Empfehlung: n.

11.3 Konguration des Kerns

391

Include IDE/ATA-2 DISK support Hiermit aktivieren Sie den Festplatten-Teil des neuen IDE-Treibers. Sie mssen diese Eigenschaft fest in den Kern integrieren, wenn Sie von einer IDE-Festplatte booten und nicht den lteren IDE-Treiber fr den ersten IDE-Adapter verwenden. Empfehlung: y. Include IDE/ATAPI CDROM support Aktivieren Sie die Option, wenn Sie ein CD-Laufwerk besitzen, dass an den IDEAdapter angeschlossen ist. Empfehlung: m. Include IDE/ATAPI TAPE support Wenn Sie ein Bandlaufwerk besitzen, dass ber einen IDE-Adapter mit dem Rechner verbunden ist, sollten Sie die Option aktivieren. Empfehlung: m. Include IDE/ATAPI FLOPPY support Mit der Option aktivieren Sie die Untersttzung fr Floppy-Laufwerke, die an den IDE-Adapter angeschlossen sind. Dies trifft nicht fr gewhnliche Diskettenlaufwerke zu, aber beispielsweise fr ATAPI-ZIP-Laufwerke der Firma Iomega. Empfehlung: m. SCSI Emulation support Die Option erlaubt, IDE-Gerte, fr die kein Treiber existiert, ber den SCSI-Treiber anzusprechen. Dies ist bei IDE-CD-Brennern notwendig. Wenn Sie diese Option benutzen, mssen Sie zustzlich die SCSI-Untersttzung sowie die Untersttzung fr generische SCSI-Gerte aktivieren. Empfehlung: m. CMD640 chipset bugx/support Hiermit aktivieren Sie einen Teil des IDE-Treibers, der Probleme mit dem CMD640 IDE-Chip lst. Empfehlung: y. RZ1000 chipset bugx/support Die Option aktiviert einen Teil des IDE-Treibers, der Probleme mit dem RZ1000 IDE-Chip lst. Empfehlung: y. Generic PCI IDE chipset support Verwenden Sie die Option, wenn der Kern fr ein System mit IDE-Adapter am PCIBus bestimmt ist. Empfehlung: y.

392

11 Anpassung und Erstellung des Betriebssystemkerns

Generic PCI busmaster DMA support Sofern die Hardware diese Eigenschaft bereitstellt, lsst sich die Geschwindigkeit des Systems durch Aktivierung der Option steigern. Aufgrund von Problemen mit einigen Chipstzen wird DMA jedoch nicht automatisch aktiviert, sondern muss spter mit dem Programm hdparm (S. 808) eingeschaltet werden. Empfehlung: y. Use PCI-DMA by default when available Hiermit wird die DMA-Untersttzung fr IDE-Adapter automatisch aktiviert. Sie sollten die Option nicht verwenden, wenn Sie einen VIA VP2 Chipsatz haben. Ansonsten Empfehlung: y. Untersttzung fr spezielle IDE-Adapter Eine Reihe weiterer Optionen betrifft spezielle IDE-Adapter. In der Regel wird durch diese Optionen nicht die grundstzliche Fhigkeit des Kerns, mit diesen Adaptern zu arbeiten, verndert, sondern er wird in die Lage versetzt, spezielle Eigenschaften solcher Adapter besser ausnutzen zu knnen. Ein Teil dieser Optionen steht nur zur Verfgung, wenn Sie zuvor die Option prompt for development and/or incomplete code/drivers aktiviert haben und ist noch nicht ausreichend getestet. Einen weitere Anzahl erreichen Sie nur, wenn Sie die Option Other IDE chipset support gewhlt haben. Einige der Optionen werden nicht automatisch aktiviert, auch wenn Sie in den Kern integriert worden sind. Sie werden erst durch einen bestimmten Bootparameter eingeschaltet. Weitergehende Informationen nden Sie in der Datei ide.txt im Unterverzeichnis Documentation des Basisverzeichnisses mit dem Kernquellcode. Wenn sich Ihr IDE-Adapter unter den aufgelisteten bendet, empehlt es sich, die entsprechende Option zu aktivieren. ATA/IDE/MFM/RLL support Bei reinen SCSI-Maschinen n, sonst y. Networking Options Packet socket Einige Programme wie tcpdump aus dem gleichnamigen Paket greifen direkt auf Netzgerte zu. Die Option muss aktiviert sein, damit dies funktioniert. Unsere Empfehlung: m. Network packet ltering (replaces ipchains) Empfehlung n.

11.3 Konguration des Kerns

393

Socket Filtering Die Option erlaubt, Daten, die ber ein Socket gehen, zu ltern. Empfehlung: y. Unix Domain Socket Bei Unix Domain Sockets handelt es sich um einen speziellen Typ von Sockets, der von wichtigen Programmen benutzt wird (beispielsweise von X11). Empfehlung: y. TCP/IP networking TCP/IP ist das Netzprotokoll des Internets, das gleichzeitig auch das standardmige Netzprotokoll unter Linux/UNIX ist. Unzhlige Programme bauen auf diesem Protokoll auf; Sie sollten es deswegen unbedingt fest in den Kern integrieren. IP: mulicasting Die Option erlaubt, ein Linux System so zu kongurieren, dass es als Teil einer Gruppe mehrerer Rechner fungiert, die unter einer Netzadresse angesprochen werden. Empfehlung: n. IP: advanced router Ein Router ist ein Rechner, der Pakete aus einem Netz in ein anderes weiterleitet. Wenn Sie den zu erstellenden Kern in erster Linie als Router einsetzen, sollten Sie diese Option aktivieren. Sie erhalten dann die Mglichkeit, mit einer Reihe weiterer Optionen die Fhigkeiten des Kerns in Bezug auf das Routing einzustellen. Empfehlung: n. IP: kernel level autoconguration Rechner ohne eigene Festplatte mssen schon ihre Netzeinstellungen vornehmen, bevor das Rootdateisystem eingebunden wird, weil dieses sich in solchen Fllen auf einem anderen Rechner bendet. Zur automatischen Konguration des Netzes zur Zeit des Kernstarts werden zwei Protokolle untersttzt, nmlich BOOTP und RARP. Wenn Sie die Option aktivieren, knnen Sie auswhlen, welches der Protokolle Sie verwenden mchten. Empfehlung: n. IP: tunneling Empfehlung n. IP: GRE tunneling Empfehlung: n. IP: TCP syncookie support (disabled by default) Hiermit schlieen Sie eine Sicherheitslcke im Internet-Protokoll. Empfehlung: y.

394

11 Anpassung und Erstellung des Betriebssystemkerns

The IPX protocol IPX ist das in Novell-Netzen benutzte Netzprotokoll. Wenn der zu erstellende Kern als Server oder Klient in einem Novell-Netz arbeiten soll, aktivieren Sie die Option. Sie erhalten dann die Mglichkeit, durch weitere Optionen die IPX-Untersttzung des Kerns zu kongurieren. Empfehlung: n oder m. Appletalk protocol support Das Netzprotokoll Appletalk wird von Apple-Macintosh-Rechnern benutzt. Wenn Sie den Rechner als Datei- oder Druckserver fr Apple-Netze einsetzen wollen, mssen Sie diesen Treiber verwenden. Zustzlich mssen Sie dann noch das Paket netatalk installieren und kongurieren. Empfehlung: n oder m. Ethernet Bridging Durch das mit Bridging bezeichnete Verfahren knnen verschiedene EthernetSegmente so miteinander verbunden werden, dass sie den Rechnern in diesen Segmenten als ein groes Ethernet erscheinen. Um diesen Dienst zu kongurieren und zu steuern, verwenden Sie die Programme aus dem Paket bridge. Empfehlung: n. Linux telephony support Empfehlung n, es sei denn, Sie wollten ber Ihren Rechner telefonieren. QoS and/or fair queueing Die Optionsgruppe beinhaltet eine Reihe von Optionen, mit denen das Verhalten des Kernels beim Verschicken von Datenpaketen beeinusst wird. Insbesondere lsst sich bei einem Kern, der mit diesen Optionen bersetzt wurde, bestimmen, in welcher Reihenfolge Pakete verschickt werden oder welche Netzinterfaces mit welcher Prioritt behandelt werden sollen. Im allgemeinen wird empfohlen, es bei den Standardeinstellungen zu belassen und die Option nicht zu aktivieren. SCSI support Die Optionsgruppe umfasst die allgemeinen Einstellungen fr die SCSIUntersttzung (Small Computer Systems Interface) im Kern. Die einzelnen Treiber fr SCSI-Adapter nden Sie in der nchsten Optionsgruppe. Wenn Ihr Rechner mit einem SCSI-Controller ausgestattet ist, sollten Sie die SCSI-Untersttzung zumindest als Modul bersetzen. Dasselbe gilt, wenn Sie die SCSI-Emulation im IDE-Abschnitt ausgewhlt haben. Wenn Ihr Rechner von einer SCSI-Festplatte bootet, mssen Sie die SCSI-Untersttzung fest in den Kern integrieren. Reine IDE-Systeme bentigen keine SCSI-Untersttzung.

11.3 Konguration des Kerns

395

SCSI disk support Integrieren Sie die Untersttzung fr SCSI-Festplatten fest in den Kern, wenn sich das Rootdateisystem auf einer SCSI-Festplatte bendet. Empfehlung: y. SCSI tape support Die Untersttzung fr SCSI-Bandlaufwerke (DAT-Tapes) braucht in der Regel nicht fest in den Kern integriert werden. Empfehlung: m. SCSI CDROM support Wenn Sie ein SCSI-CD-Laufwerk besitzen, sollten Sie die Option whlen. Empfehlung: m. SCSI generic support Die Option ermglicht Programmen, direkt mit SCSI-Gerten zu kommunizieren. Hiervon machen eine Reihe von Programmen zur Steuerung von Scannern oder CDBrennern Gebrauch. Wenn Sie solche Gerte besitzen oder die SCSI-Emulation im IDE-Abschnitt ausgewhlt haben, mssen Sie die Option aktivieren. Empfehlung: m. Probe all LUNs on each SCSI device Mit der Option werden die SCSI-Treiber angewiesen, solche SCSI-Adapter, die mehrere logische Adapter zur Verfgung stellen, nach allen logischen Adaptern zu untersuchen. Die meisten SCSI-Adapter stellen nur einen logischen Adapter zur Verfgung, weshalb die Option in der Regel nicht gewhlt zu werden braucht. Verbose SCSI error reporting Wenn es zu Problemen mit SCSI-Adaptern oder -Endgerten kommt, sollten Sie die Option whlen, um aussagekrftigere Fehlermeldungen zu erhalten. Empfehlung: n. SCSI logging facility Die Option lsst sich nutzen, um Probleme mit dem SCSI-Subsystem zu untersuchen. Empfehlung: n. SCSI low level drivers In dieser Optionsgruppe nden Sie die eigentlichen Treiber fr SCSI-Adapter von Adaptec bis UltraStor. Sie sollten nur die Untersttzung fr die SCSI-Adapter auswhlen, die sich in Ihrem Rechner benden. Denken Sie auch hier daran, dass die Untersttzung fr den Adapter, an den die Festplatte mit der Rootpartition angeschlossen ist, fest in den Kern integriert werden muss. Zu einigen Adaptern lassen sich eine Reihe von zustzlichen Spezikationen angeben. Lesen Sie hier die Hilfetexte zu den einzelnen Optionen. Wenn Sie sich nicht sicher sind, belassen Sie es bei den Vorgabewerten.

396

11 Anpassung und Erstellung des Betriebssystemkerns

Network Device Support Mit der ersten Option der Gruppe (Network Device Support) kontrollieren Sie, ob der zu erstellende Kern prinzipiell Netzgerte untersttzen soll. Unter einem Netzgert werden hier physikalische Gerte wie Netzkarten oder Kabelmodems, aber auch virtuelle Netzgerte, die durch einige Treiber zur Verfgung gestellt werden, verstanden. Die Untersttzung fr Netzgerte sollte in jedem Fall fest in den Kern eingebaut werden, auch wenn der betreffende Rechner keine Netzkarte besitzt oder keine Einwahlverbindungen geplant sind. Nach Aktivierung der Untersttzung fr Netzgerte knnen mit den folgenden Optionen in diesem Abschnitt Treiber fr verschiedene besondere Netzgerte ausgewhlt werden. Treiber fr Ethernet- oder Token-Ring-Karten nden Sie in den nchsten sechs Abschnitten, wenn Sie den Kern mit make xcong kongurieren. Bei Verwendung von make menucong benden sich diese Treiber in Untergruppen der Gruppe Network Device Support. ARCNet support Nur noch fr Museumsstcke, ansonsten n. War nicht schlecht, das ARCNet, aber Ethernet hat das Rennen gewonnen. Appletalk interfaces Nur noch fr ziemlich alte Apple-Rechner ohne Ethernet, ansonsten n. Dummy net driver support Wie der Name sagt, handelt es sich hierbei um einen Treiber, der ein datenverschluckendes, physikalisch nicht existentes Netzinterface implementiert. Dieses Interface lsst sich zum Experimentieren und als Platzhalter fr eine nicht aufgebaute Einwahlverbindung verwenden. Empfehlung: m. EQL (serial line load balancing) support Mit dieser Option knnen zwei Netzverbindungen ber serielle Leitungen wie PPPEinwahlverbindungen ber Modem zu einer Leitung mit hherer Kapazitt verbunden werden. Das Verfahren muss von der Gegenseite untersttzt werden. Empfehlung: n. Ethernet (10 or 100MBit) Hier nden Sie die Treiber fr gngige Ethernet-Karten. Die Karten sind zum Teil Kategorien wie Herstellern (3Com, Western Digital) oder Bussystemen (ISA, PCI) zugeordnet. Sie mssen zunchst die richtige Kategorie aktivieren, bevor Sie den Treiber fr Ihre Karte auswhlen knnen. Normalerweise wird das Netz whrend der Startphase des Rechners konguriert und bleibt solange geladen, bis der Rechner heruntergefahren wird. Der Netztreiber

11.3 Konguration des Kerns

397

muss whrend der gesamten Laufzeit des Systems geladen sein. Aus diesem Grund macht es Sinn, Netztreiber, die dauernd bentigt werden, direkt in den Kern zu kompilieren. Rechner ohne eigene Festplatte, die das Rootdateisystem von einem anderen Rechner im Netz beziehen, sind auf die Untersttzung der Netzkarte im Kern angewiesen. Wenn Sie dem Treiber fr Ihre Netzkarte Parameter beim Laden bergeben wollen, empehlt sich jedoch, diesen als Modul zu bersetzen. Beachten Sie bitte den Hilfetext zu Ihrem Netzkartentreiber. Ethernet (1000 Mbit) Die Hardware fr 1000-Mbit-Ethernet ist im Lauf des Jahres 2003 bezahlbar geworden, sodass es sich fr hoch belastete Verbindungen lohnt, diese Technik einzusetzen. Auf durchschnittlichen Arbeitsplatzrechnern protiert man noch nicht davon. Auerdem mssen mindestens zwei Rechner im Netz die Geschwindigkeit untersttzen, ohne durch langsamere Zwischenglieder (Hubs, Switche) ausgebremst zu werden. Zur Zeit nur in besonderen Fllen sinnvoll, aber im Kommen. Ethernet (10 GB) Zukunftsmusik, zur Zeit noch unerschwinglich. FDDI. PPP und SLIP FDDI ist am Arbeitsplatz ungewhnlich, PPP brauchen Sie mglicherweise als Modul, SLIP ist veraltet. Wireless LAN Falls Sie es nutzen: y. Bei vielen WLAN-Adaptern muss auch PCMCIA eingerichtet werden, selbst wenn es sich um einen PCI-Adapter handelt. Wireless PCMCIA Cards Support Bei Bedarf y oder m. Token ring devices Falls Sie in einem Token-Ring-Netz arbeiten: y, sonst n. Fibre channel driver support Meist n. WAN interfaces support Untersttzung fr X.25, Frame Relay, Standleitungen, sehr spezielle Karten. Empfehlung: n.

398

11 Anpassung und Erstellung des Betriebssystemkerns

PCMCIA network device support Bei Bedarf y oder m. Eine Unterfrage betrifft PCMCIA Wireless LAN. Amateur Radio Support Mit den Treibern und Optionen in dieser Gruppe wird Linux in die Lage versetzt, ber Amateurfunk mit anderen Rechnern zu kommunizieren. Informationen nden sich im AX25-HOWTO (/usr/share/doc/en-txt/AX25-HOWTO.txt.gz), Informationen zu Programmen, die diese Fhigkeiten benutzen, im HAM-HOWTO (/usr/share/doc/en-txt/HAM-HOWTO.txt.gz). Beide HOWTOs sind im Paket doclinux-text enthalten. Weitere Informationen nden sich unter http://www.tapr. org/tapr/html/pktf.html. Wenn Sie kein Amateurfunker sind (wie die Autoren dieses Buches), brauchen Sie die Option Amateur Radio Support nicht zu aktivieren. IrDA subsystem support IrDA (Infrared Digital Association) ist der Standard fr die Kommunikation zwischen Rechnern und Peripheriegerten ber Infrarot-Schnittstellen. IrDA-kompatible Hardware bendet sich in den meisten Laptops; sie kann zur Kommunikation von Laptop und Drucker benutzt werden. Die Alternative Bluetooth (Funk ber kurze Strecken) gewinnt jedoch an Boden, sodass Sie voraussichtlich an IrDA ein abnehmendes Interesse haben. Um IrDA zu verwenden, bentigen Sie neben den Protokoll- und Hardwaretreibern aus dieser Optionsgruppe noch einige Programme, die in den Paketen irdacommon und irda-tools enthalten sind. Hintergrundwissen und Hinweise zur Benutzung von IrDA liefert das IR-HOWTO (Datei: /usr/share/doc/HOWTO/en-txt/IRHOWTO.txt.gz) aus dem Paket doc-linux-text. Es wird empfohlen, die Untersttzung fr IrDA als Modul zu erstellen. Falls Sie keine IrDA-Schnittstelle haben: n. ISDN subsystem Hier bendet sich die ISDN-Untersttzung fr Linux. Sie knnen in der Optionsgruppe die bentigten Hardware- und Protokolltreiber auswhlen. Viele der heute verwendeten passiven ISDN-Karten sind mit einem Chip vom Typ HiSax der Firma Siemens ausgestattet. Sie knnen deswegen die Untersttzung fr solche Karten erst aktivieren, wenn Sie die Option HiSax Siemens ChipSet driver support eingeschaltet haben. Zur Benutzung von ISDN-Karten sind darber hinaus einige Programme notwendig, die mit dem Paket isdnutils zur Verfgung gestellt werden. Wenn Sie Ihre ISDN-Karte fr Verbindungen zu einem Internet-Provider nutzen wollen, empehlt es sich, das Paket task-dialup-isdn zu installieren. Das ISDN-Subsystem sollte in Form von Modulen bersetzt werden. Die Konguration von ISDN-basierten Einwahlverbindungen zu einem Internetprovider ist in Kapitel 17.5, Seite 637 beschrieben.

11.3 Konguration des Kerns

399

ISDN support Empfehlung: m. Support synchronous PPP Dies ist eine abgewandelte Form des PPP-Protokolls, das von vielen InternetProvidern mit ISDN benutzt wird. Empfehlung: y. Use VJ compression with synchronous PPP Van-Jacobsen-Kompression ist ein Verfahren, um PPP-Verbindungen effektiver zu nutzen. Empfehlung: y. Support Generic MP (RFC 1717) Mit der Option knnen mehrere ISDN-Leitungen gebndelt werden, um eine Verbindung mit hherer Kapazitt zu erhalten, sofern das Verfahren von der Gegenstelle untersttzt wird. Empfehlung: y. Support Audio via ISDN Hiermit kann ein Software-Anrufbeantworter aufgebaut werden. Die Option funktioniert zur Zeit nur mit dem Hardware-Treiber fr ISDN-Karten, die auf dem Siemens HiSax-Chip beruhen. Empfehlung: y. Support AT-Fax Class 2 commands Der Empfang und Versand von Faxen funktioniert zur Zeit unter Linux nur mit einigen aktiven ISDN-Karten. Empfehlung: n. Support isdn diversion services Wenn Sie eine HiSax-ISDN-Karte besitzen, knnen Sie mit der Option einige ISDNLeistungen wie Rufumleitung kongurieren und nutzen. Empfehlung: y isdnloop support Der Treiber stellt eine virtuelle ISDN-Karte zur Verfgung, die sich zum Testen von Kongurationen eignet, ohne Telefongebhren bezahlen zu mssen. Empfehlung: n. HiSax Siemens ChipSet driver support Der HiSax-Chip ist der heute bei passiven ISDN-Karten am weitesten verbreitete Chip. Durch die Option aktivieren Sie den allgemeinen Teil des Treibers. Mit weiteren Optionen bestimmen Sie, welche Karten und Protokolle der Treiber untersttzen soll. Empfehlung: m.

400

11 Anpassung und Erstellung des Betriebssystemkerns

HiSax support for EURO/DSS1 EURO-ISDN ist das heute auch in Deutschland gngige Protokoll fr ISDNVerbindungen. Empfehlung: y. Support for german chargeinfo Mit der Option wird ermglicht, Gebhrenmitteilungen des Telekommunikationsanbieters auszuwerten, sofern er sie sendet. Empfehlung: y Disable sending complete Die Option sollte nicht bentigt werden. Empfehlung: n. Disable sending low layer compatibility Die Option sollte nicht bentigt werden. Empfehlung: n. HiSax support for german 1TR6 Wenn Sie an eine sehr alte ISDN-Vermittlungsstelle angeschlossen sind, die dieses aussterbende Protokoll benutzt, mssen Sie die Option aktivieren. Empfehlung: n. Support non-SCSI/IDE/ATAPI CDROM drives Wie der Name sagt, benden sich hier Treiber fr CD-Laufwerke lterer Bauart. Diese Laufwerke zeichnen sich dadurch aus, dass sie ber eine spezielle Karte, oft auch ber die Soundkarte, mit dem Rechner verbunden sind. Moderne Rechner sind mit CD-Laufwerken ausgestattet, die ber einen IDE- oder SCSI-Adapter angeschlossen werden, und brauchen keinen Treiber aus dieser Kategorie. Besitzen Sie ein solches lteres Laufwerk, dann mssen Sie zunchst die Option Support non-SCSI/IDE/ATAPI CDROM Drives auswhlen und dann den richtigen Treiber fr Ihr Laufwerk aktivieren. Normalerweise empehlt es sich, den Treiber als Modul zu bersetzen. Noch besser wre der Erwerb eines modernen Laufwerks. Input core support Wird fr USB-HIDs (Human Interface Devices) wie Tastaturen, Gameports und Freudenknppel (Joysticks) gebraucht. Character devices Zeichenorientierte Gerte umfassen eine Klasse von Gerten wie serielle Schnittstellen, Drucker oder Terminals.

11.3 Konguration des Kerns

401

Virtual Terminal Obgleich ein PC in der Regel nur ein Terminal (Tastatur und Bildschirm) zur Verfgung stellt, kann mit virtuellen Terminals wie an mehreren Arbeitspltzen gleichzeitig gearbeitet werden, zwischen denen mit den Tastenkombinationen A LT-F1 bis A LT-F12 umgeschaltet wird. Die Option muss aktiviert sein, wenn Sie mit Ihrem Rechner ber Tastatur und Bildschirm reden wollen, also: y. Support for console on virtual terminal Meldungen des Kerns werden auf die Konsole geschrieben. Diese kann beispielsweise an eine serielle Schnittstelle angeschlossen oder mit einem Terminal verbunden sein. Die Option bewirkt standardmig, dass Kern-Meldungen auf die gerade aktive virtuelle Konsole geschrieben werden. Sie ermglicht auerdem die Anmeldung am System im Single-User-Modus. Empfehlung: y. Support for console on serial port Mit dieser Eigenschaft wird ermglicht, Kern-Meldungen ber eine serielle Schnittstelle auszugeben, an die beispielsweise ein Drucker angeschlossen sein kann. Empfehlung: n. Extended dumb serial driver options Aktivieren Sie die Option, wenn Sie besondere Einstellungen fr den Treiber fr serielle Schnittstellen verwenden wollen. Dies ist notwendig, um mehr als vier serielle Schnittstellen benutzen zu knnen. Nach Auswahl des entsprechenden Menpunkts knnen Sie die gewnschten Einstellungen mit einer Reihe von weiteren Optionen vornehmen. Empfehlung: n. Non-standard serial port support Wenn Sie die Option aktivieren, knnen Sie aus einer Anzahl von Treibern fr besondere serielle Schnittstellen auswhlen, die normalerweise in PCs nicht vorhanden sind. Dabei handelt es sich meist um Treiber fr Karten, die eine groe Anzahl serieller Schnittstellen zur Verfgung stellen, wie sie ein Internet Service Provider bentigt, um viele Modems mit einem Rechner zu verbinden. Empfehlung: n. Unix98 PTY support Aktiviert die Untersttzung fr Unix98 Pseudo-Terminals. Die maximale Anzahl von 256 gleichzeitig genutzten Pseudo-Terminals sollte ausreichen. Empfehlung: y. Parallel printer support Der Treiber fr Drucker, die ber die parallele Schnittstelle mit dem Rechner verbunden sind. Dies ist bei den meisten heute gebruchlichen Druckern der Fall. Wenn an Ihren Rechner ein Drucker angeschlossen ist, sollten Sie neben dieser Untersttzung im Kern noch einen Spooler sowie Software zur Filterung und Konvertierung von zu druckenden Daten installieren. Solche Software wird durch die Pakete lprng und magiclter zur Verfgung gestellt. Empfehlung: m.

402

11 Anpassung und Erstellung des Betriebssystemkerns

IEEE 1394 (Firewire) Firewire steht nur als experimentelle Option zur Verfgung. I2C Support Untersttzung fr einen seriellen Microcontroller-Bus: n. PCMCIA Character Devices Falls vorhanden: m, sonst n. Mice Die am meisten verbreiteten Maustypen sind serielle Muse, fr die Sie keinen speziellen Treiber bentigen, sowie PS/2-Muse, die ber einen kleinen runden Stecker mit dem Rechner verbunden werden. Der Treiber fr PS/2-Muse bendet sich neben anderen in dieser Optionsgruppe. Die Optionsgruppe steht nur zur Verfgung, wenn Sie in der Gruppe Character devices die Option Mouse support (not serial mice) ausgewhlt haben. Zur Nutzung der Maus bentigen Sie weitere Software wie X11 oder das Mauskontrollprogramm gpm fr die Konsole. Joysticks Hier bendet sich der Treiber fr eine groe Anzahl an Spastcken und artverwandten Gerten wie GamePads, Feedback Wheels u. a. Eine Liste der untersttzen Hardware steht in der Datei joystick.txt im Dokumentationsverzeichnis des Kerns. Dort nden sich auch Hinweise zur Kalibrierung der Gerte sowie Antworten auf hug gestellte Fragen. Werkzeuge zum Testen und Kalibrieren von Joysticks sind im Paket joystick enthalten. Die Untersttzung fr Joysticks aktivieren Sie, indem Sie zunchst die Option Joystick support (Empfehlung: m) aktivieren und dann den gertespezischen Treiber fr Ihren Joystick auswhlen. Watchdog Cards In dieser Optionsgruppe knnen Sie Treiber fr Hardware-Watchdogs sowie fr einen Software-Watchdog auswhlen. Zum Betrieb eines Watchdogs bentigen Sie ein Kontrollprogramm, das mit dem Paket watchdog zur Verfgung gestellt wird. Disable watchdog shutdown on close Sobald das Kontrollprogramm beendet wird, wird der Watchdog normalerweise deaktiviert. Diese Option fhrt zum Neustart des Systems nach Beendigung des Kontrollprogramms. Empfehlung: n.

11.3 Konguration des Kerns

403

Software Watchdog Hiermit bestimmen Sie, den Software-Watchdog zu kompilieren. Empfehlung: m. Ftape, the oppy tape device driver In der Optionsgruppe bestimmen Sie, ob und mit welchen Eigenschaften der Treiber fr Floppy-Bandlaufwerke kompiliert werden soll. Floppy-Bandlaufwerke sind ber den Disketten-Controller oder einen vergleichbaren Controller mit dem Rechner verbunden, selten geworden. Sie bentigen diesen Treiber nicht, wenn Sie ein Bandlaufwerk verwenden, dass ber einen SCSI- oder IDE-Adapter angeschlossen ist (DAT-Laufwerke). Weitere Informationen zu dem Treiber benden sich im Ftape-HOWTO (Datei /usr/share/doc/HOWTO/en-txt/Ftape-HOWTO.txt.gz, Paket doc-linux-text) sowie in der Datei ftape.txt im Dokumentationsverzeichnis des Kerns. Mit den Paketen ftape-util, ftape-doc, ftape-source und ftape-module-(Kernversion) wird ein alternativer Treiber fr Floppy-Bandlaufwerke bereitgestellt, der zustzliche Eigenschaften enthlt. Wenn Sie den im Kernquellcode enthaltenen Treiber benutzen wollen, sollten Sie ihn als Modul bersetzen. Aktivieren Sie dazu die Optionen Ftape (QIC-80/Travan) support sowie ZFtape, the VFS interface. Fr einige Laufwerke, die nicht ber den Floppy-Controller, sondern mit einem speziellen Adapter verbunden sind, mssen Sie die Einstellung Floppy tape controllers von Standard auf den Typ Ihres Laufwerks ndern. Sie knnen noch einige zustzliche Angaben zur Konguration des Treibers vornehmen, normalerweise sollten Sie es jedoch bei den Vorgabewerten belassen. Die Option Enable procfs status report sollten Sie nicht aktivieren, wenn Sie den Treiber als Modul bersetzen. Multimedia Devices Video for Linux Video fr Linux stellt ein Sammlung von Treibern fr Video- und Radio-Karten sowie eine einheitliche Schnittstelle zur Erstellung von Programmen, die mit solchen Karten arbeiten, dar. Damit Sie Ihre Video- oder Radiokarte unter Linux nutzen knnen, bentigen Sie neben dem eigentlichen Treiber noch Programme zur Steuerung der Karten und zur Ausgabe von Radio- oder Videodaten. Solche Programme stehen unter Debian GNU/Linux mit den Paketen xawtv oder gradio zur Verfgung. Der Treiber sollte als Modul bersetzt werden. Dazu ist die Option Video for Linux mit m zu aktivieren sowie der gertespezische Treiber auszuwhlen. Eine grere Anzahl von Videokarten wird durch den bttv-Treiber untersttzt, der sich mit der Option bt848 Video for Linux aktivieren lsst. Informationen zu diesem Treiber nden sich im Unterverzeichnis Documentation/video4linux/bttv. Dort liegt auch die Datei CARDS, die Auskunft ber untersttze Chips und Karten gibt.

404

11 Anpassung und Erstellung des Betriebssystemkerns

Filesystems Dateisysteme sind Formate, in denen Datentrger formatiert werden. In der Regel wird fr jedes Dateisystem ein eigener Treiber bentigt, weil unterschiedliche Dateisysteme Daten auf unterschiedliche Art und Weise auf den Datentrgern ablegen. Das standardmig mit Linux verwendete Dateisystem ist das Ext2-Dateisystem. Sie sollten dieses Dateisystem auf allen Datentrgern benutzen, die Sie mit Linux verwenden wollen. Allerdings ist es oft nicht sinnvoll, Datentrger, die zum Austausch von Daten dienen wie Disketten, mit dem Ext2-Dateisystem zu formatieren, weil sie dann von anderen Betriebssystemen nicht gelesen werden knnen. Hier empehlt sich die Verwendung des von DOS und MS-Windows benutzten FAT-Dateisystems, das auch von einer Reihe anderer Betriebssysteme gelesen und geschrieben werden kann. Eine andere Mglichkeit ist die Verwendung des Programms tar (S. 870). tar-Archive werden auf den meisten Linux/UNIX-Systemen problemlos gelesen, und fr viele andere Betriebssysteme stehen ebenfalls tar-Portierungen zur Verfgung. Auch wenn Sie Datentrger benutzen wollen oder Festplattenpartitionen in Ihrem Rechner haben, die von einem anderen Betriebssystem formatiert worden sind, sollten Sie die Untersttzung fr die fremden Dateisysteme aktivieren, damit Sie solche Datentrger unter Debian GNU/Linux einbinden knnen. Quota support Diskquotas stellen die Mglichkeit dar, den pro Benutzer oder Gruppe verfgbaren Speicherplatz auf Datentrgern einzuschrnken und zu berwachen. Ohne Diskquotas kann ein Benutzer so lange Daten auf eine Partition schreiben, bis diese voll ist, Dies ist bei Datentrgern, die von mehreren Benutzern benutzt werden, unerwnscht. Wenn Sie auf Ihrem System Diskquotas verwenden wollen, mssen Sie die Untersttzung hierfr aktivieren. Die Programme zur berwachung und Verwaltung von Quotas nden Sie im Paket quota. Diskquotas werden nur vom Ext2-Dateisystem untersttzt. Empfehlung: y. Kernel automounter support Der Kern-Automounter stellt eine bequeme Mglichkeit dar, Datentrger einzubinden, sobald auf sie zugegriffen wird. Dies erspart das hndische Einbinden von Disketten oder CDs. Um den Kern-Automounter zu verwenden, mssen Sie auerdem das Paket autofs installieren (siehe auch Seite 481). Empfehlung: m. Reiserfs support Empfehlung: n. Ext3 journaling le system support Empfehlung: n.

11.3 Konguration des Kerns

405

DOS fat support Die Option aktiviert die Basisuntersttzung fr DOS und MS-Windows basierte Dateisysteme wie FAT und VFAT. Um solche Dateisysteme einzubinden, mssen Sie zustzlich einen der Treiber fr FAT-Dateisysteme anwhlen. Die Verwendung der Option allein macht keinen Sinn. Wenn Sie nur mit den mtools (S. 838) auf FATformatierte Disketten oder Partitionen zugreifen wollen, brauchen Sie hierfr keine Untersttzung durch den Kern. DOS fat support ist fr Kerne, die mit dem DebianInstallationssystem benutzt werden sollen, zwingend erforderlich. Empfehlung: m. MSDOS fs support Dies ist der Treiber fr das klassische DOS-Dateisystem FAT, wie es von DOS 6.22 erzeugt wird. Er ist ebenfalls fr das Installationssystem erforderlich. Unsere Empfehlung: m. UMSDOS: Unix-like lesystem on top of standard MSDOS lesystems Der Treiber erlaubt, Eigenschaften von Dateien, die unter Linux/UNIX im Dateisystem gespeichert werden, auch auf DOS-Dateisystemen zu speichern. Dadurch ist es mglich, Linux in eine DOS-Partition zu installieren. Dieser Weg ist jedoch mit einer Reihe von Problemen verbunden. Empfehlung: n. VFAT (MS-Windows 95) fs support Mit der Option aktivieren Sie die Untersttzung fr die neueren Formen des FATDateisystems, wie Sie von MS-Windows 95/98 und MS-Windows NT/2000 erzeugt werden. Sie bentigen diese Eigenschaft u. a., um lange Dateinamen mit FATDatentrgern verwenden zu knnen. Empfehlung: m. Compressed ROM le system support Empfehlung: n. Virtual memory le system support Empfehlung: n. Simple RAM based le system support Empfehlung: n. ISO 9660 CDROM lesystem support ISO 9660 ist das Dateisystem, das sich auf Daten-CDs bendet. Aktivieren Sie die Option, wenn an Ihren Rechner ein CD-Laufwerk angeschlossen ist. Unsere Empfehlung: m.

406

11 Anpassung und Erstellung des Betriebssystemkerns

Microsoft Joliet CDROM extensions Hiermit aktivieren Sie die Untersttzung fr eine von Microsoft vorgenommene Erweiterung des ISO 9660 Standards. Empfehlung: y. Minix fs support Minix ist ein frhes UNIX-hnliches Betriebssystem von A NDREW S. TANEN BAUM, das zur Not auf einem PC mit einem Diskettenlaufwerk als einzigem Massenspeicher lief. Linux hat das Minix-Dateisystem zu Beginn als Standarddateisystem benutzt. Das Dateisystem besitzt Schwchen, weswegen es durch das Ext2Dateisystem abgelst wurde. Es sollte heute nicht mehr benutzt werden. Unsere Empfehlung: n. NTFS lesystem support (read only) NTFS ist das Standarddateisystem von MS-Windows NT/2000. Whlen Sie die Option, wenn sich in dem betreffenden Rechner Partitionen benden, die mit diesem Dateisystem formatiert sind. MS-Windows NT kann auch auf ein FAT-Dateisystem installiert werden, unter Verzicht auf einige Vorteile von MS-Windows NT. Wenn dies der Fall ist, bentigen Sie die Untersttzung fr NTFS nicht. Empfehlung: m. IBM-OS/2 HPFS lesystem support (read-only) Mit dem Treiber knnen Sie Partitionen, die mit dem Betriebssystem IBM-OS/2 im HPFS-Format formatiert worden sind, einbinden und Daten von ihnen lesen. Unsere Empfehlung: m. /proc lesystem support Das /proc-Dateisystem ist ein virtuelles Dateisystem, das eine Schnittstelle zum Zugriff auf Informationen des Kerns und zur Vernderung von Kerneinstellungen darstellt. Viele Standardprogramme setzen die Existenz des /proc-Dateisystems voraus. Es sollte unbedingt vorhanden sein: y. /dev/pts lesystem for UNIX98 PTYs Dieses ebenfalls virtuelle Dateisystem stellt eine Schnittstelle zu Pseudo-Terminals dar. Empfehlung: y. Second extended fs support Wie beschrieben ist das Ext2-Dateisystem, dessen Untersttzung mit der Option aktiviert wird, das Standarddateisystem unter Linux. Die Untersttzung fr dieses Dateisystem muss fest in den Kern integriert werden.

11.3 Konguration des Kerns

407

System V and coherent lesystem support Mit der Option aktivieren Sie die Untersttzung fr ein Dateisystem, das von einer Reihe kommerzieller UNIXe benutzt wird. Empfehlung: m. UDF le system support Empfehlung: n. UFS lesystem support Das Dateisystem UFS wird von einigen Betriebsystemen wie SunOS, FreeBSD oder NeXTstep benutzt. Wenn Sie die Untersttzung aktivieren, knnen Sie whlen, ob Code zum Schreiben auf dieses Dateisystem integriert werden soll. Empfehlung: m. Network File Systems In dieser Gruppe nden Sie die Treiber fr verschiedene Netzdateisysteme. Das sind Dateisysteme, bei denen sich der physikalische Speicherplatz nicht auf dem Rechner (Klient) bendet, der auf ihn zugreift, sondern auf einem anderen Rechner (Server) im Netz. Wenn Sie nur einen einzigen Rechner verwenden, bentigen Sie keine Untersttzung fr Netzdateisysteme. Allerdings kann es vorkommen, dass Sie ein Dateisystem ber eine Einwahlverbindung einbinden mchten oder das Dateisystem eines virtuellen Rechners (z. B. mit VMWare) nutzen wollen. Coda lesystem support Das Coda-Dateisystem ist ein gegenber dem weit verbreiteten NFS verbessertes Netzdateisystem. Empfehlung: n. NFS lesystem support Das Network File System (NFS) ist das unter Linux/UNIX standardmig eingesetzte Netzdateisystem. Empfehlung: m. Root lesystem on NFS Die Option mssen Sie aktivieren, wenn der Rechner, fr den Sie einen Kern erstellen, keine eigene Festplatte besitzt, sondern auch das Rootdateisystem von einem Server bezieht. Sie ist nur dann verfgbar, wenn Sie NFS direkt in den Kern einbinden. Empfehlung: n. NFS server support Mit der Option aktivieren Sie den in den Kern integrierten NFS-Server. Alternativ hierzu kann man den normalen vom Kern unabhngigen NFS-Server verwenden, den Debian mit dem Paket nfs-server zur Verfgung stellt. Dieser Server ist zwar etwas langsamer als der Kern-Server, gilt aber als gut erprobt. Wenn Sie den Kern-Server verwenden mchten, mssen Sie die Option aktivieren und das Paket nfs-kernelserver installieren, das die Steuerprogramme enthlt. Empfehlung: m.

408

11 Anpassung und Erstellung des Betriebssystemkerns

SMB lesystem support (to mount WfW shares etc.) Mit dieser Eigenschaft und den Werkzeugen aus dem Paket smbfs binden Sie Dateisysteme ein, die von MS-Windows, IBM-OS/2 oder auch Linux-Rechnern als Netzlaufwerke freigegeben worden sind. Sie brauchen die Option nicht zu aktivieren, wenn Ihr Rechner mit SAMBA selbst als Server fr MS-Windows-Netze arbeiten soll. Empfehlung: m. NCP lesystem support (to mount NetWare volumes) Wenn in Ihrem Netz Novell-NetWare-Server vorhanden sind und Sie Dateisysteme von diesen Servern einbinden mchten, mssen Sie diese Option aktivieren. Zustzlich mssen Sie das Paket ncpfs installieren, das Programme zum Einbinden von NetWare-Volumes und zum Drucken auf NetWare-Drucker enthlt. Weitere Informationen im IPX-HOWTO (/usr/share/doc/HOWTO/en-txt/IPX-HOWTO.txt.gz, Paket doc-linux-txt). Nach Auswahl der Option knnen Sie den Treiber mit weiteren Einstellungen kongurieren. Empfehlung: m. Partition types Unterschiedliche Betriebssysteme verwenden unterschiedliche Verfahren, Festplatten in Partitionen aufzuteilen. Linux untersttzt alle von DOS, MS-Windows 95/98, MS-Windows NT/2000 und IBM-OS/2 erzeugten Partitionstypen, ohne dass eine der Optionen aus dieser Gruppe aktiviert werden muss. Wenn Sie jedoch Partitionen, die unter den Betriebssystemen FreeBSD oder Solaris erzeugt worden sind, einbinden mchten, sollten Sie hier die entsprechende Option aktivieren. Native language support Eine Reihe von Microsoft-Dateisystemen (VFAT und FAT32) benutzen zum Speichern von Dateinamen mit Sonderzeichen besondere, von der eingestellten Sprache abhngige Zeichensatztabellen. Damit Linux solche Dateinamen richtig wiedergeben und schreiben kann, muss die Untersttzung fr bestimmte Zeichensatztabellen aktiviert sein. Wenn Sie Partitionen einbinden mchten, die von Microsoft-Betriebssystemen erzeugt worden sind, sollten Sie die entsprechende Untersttzung als Modul bersetzen. Im europischen Raum reicht es aus, die Zeichensatzinformationen fr Codepage 850, Codepage 437 und NLS ISO 8859-1 in Form von Modulen bereitzustellen. In der Linux/UNIX-Welt sind die Zeichenstze Latin-1 und Unicode mit UTF-8Codierung verbreitet. Diese sollten als Module geladen werden. Console drivers Wie beschrieben, stellt die Konsole das Gert dar, auf das der Kern Meldungen ausgibt und von dem er im Ein-Benutzer-Modus Eingaben entgegen nimmt. Virtuelle

11.3 Konguration des Kerns

409

Terminals, mit denen normalerweise gearbeitet wird, setzen auf dem Konsolentreiber auf. Deswegen wird ein Konsolentreiber unbedingt bentigt, wenn mit dem Rechner direkt und nicht ausschlielich ber Netzverbindungen gearbeitet werden soll. VGA Text Console Dies ist der klassische Konsolentreiber, der mit allen PCs funktioniert. Er sollte unbedingt fest in den Kern integriert werden, auch wenn beabsichtigt ist, in der Regel einen anderen Konsolentreiber zu verwenden. Empfehlung: y. Video mode selection support Die Option ermglicht, Linux zur Startzeit mitzuteilen, welcher Videomodus benutzt werden soll. Mit dem Paramter vga=ask kann sogar ein Men zur Auswahl des Videomodus angezeigt werden. Empfehlung: y. Support for frame buffer devices Ein Framebuffergert stellt eine standardisierte Schnittstelle dar, ber die Programme die Videohardware des Rechners ansprechen knnen. Zur Zeit existieren einige Programme, die Framebuffer benutzen, darunter ein X-Server, dessen Einsatz sich empehlt, wenn kein anderer X-Server die vorhandene Hardware direkt untersttzt. Die Verwendung des Framebuffertreibers ist bei einigen Nicht-PC-Architekturen zwingend notwendig, bei PCs ist sie mit Vor- und Nachteilen verbunden. Auf der einen Seite lsst sich die Konsole mit dem Framebuffertreiber in verschiedenen Auflsungen betreiben, die mit dem Standard-VGA-Treiber nicht mglich sind. Auf der anderen Seite kann es zu Problemen kommen, wenn andere Programme wie ein X-Server direkt auf die Videohardware zugreifen. Wenn Sie den Framebuffertreiber verwenden wollen, bentigen Sie zustzlich einen Hardwaretreiber fr die im Rechner vorhandene Videokarte. Zur Verfgung stehen ein Treiber fr VESA-2.0 kompatible Grakkarten sowie einige Treiber fr spezielle Karten. Viele moderne Video-Karten sind heute zu VESA-2.0 kompatibel. Der Framebuffer lsst sich mit dem Programm fbset aus dem gleichnamigen Paket kontrollieren. Eine Reihe von Hardwaretreibern fr Framebuffergerte kann nur zur Startzeit des Systems initialisiert werden. Dem Kern muss deswegen ber einen entsprechenden Bootparameter zur Startzeit mitgeteilt werden, ob der normale VGAModus oder der Framebuffertreiber (und in welcher Auflsung) benutzt werden soll. Hierzu ist es erforderlich, die Option Video mode selection support ausgewhlt zu haben. Die Auswahl geschieht dann mit dem Bootparameter vga=. Im Unterverzeichnis fb des Dokumentationsverzeichnisses vom Kernquellcode benden sich Textdokumente, die Videomodi der einzelnen Hardwaretreiber beschreiben. Weitere Informationen zur Verwendung des Framebuffertreibers nden Sie im Framebuffer-HOWTO (Datei /usr/share/doc/en-txt/FramebufferHOWTO.txt.gz, Paket doc-linux-text). Empfehlung: n.

410

11 Anpassung und Erstellung des Betriebssystemkerns

Sound In der Gruppe benden sich Treiber fr Soundkarten sowie weitere Optionen, mit denen das Verhalten dieser Gerte beeinusst wird. Wenn Sie eine vom Kern untersttzte Soundkarte besitzen, sollten Sie zunchst die allgemeine Option Sound Card Support aktivieren. In den meisten Fllen ist zu empfehlen, die Untersttzung in Form von Modulen zu bersetzen. Auf diese Weise lassen sich leicht unterschiedliche Treiber mit unterschiedlichen Parametern ausprobieren. Wenn Sie eine Plugand-Play-Karte verwenden, mssen Sie die Sounduntersttzung als Modul erstellen. Solche Karten knnen nmlich erst angesprochen werden, nachdem Sie durch die Plug-and-Play-Software aus dem Paket isapnptools initialisiert worden sind. Es gibt zwei weitere Familien von Soundtreibern fr Linux, die nicht im Kernquellcode vorhanden sind, nmlich zum einen die kommerziellen Treiber des OpenSound-Systems der Firma 4Front Technologies, die unter der Web-Adresse http: //www.opensound.com/ bezogen werden knnen, zum anderen die Soundtreiber des ALSA-Projekts (Advanced Linux Sound Architecture), die mit den DebianPaketen alsa-modules-(Kern-Version) zur Verfgung gestellt werden. Wenn Sie die ALSA-Treiber verwenden wollen, sollten Sie zustzlich zu dem Modul-Paket die Pakete alsautils und alsaconf installieren, um die Treiber verwenden und kongurieren zu knnen. Weitere Informationen zum ALSA-Projekt sind unter der Adresse http://www.alsa-project.org/ verfgbar. Nachdem Sie die Sounduntersttzung aktiviert haben, knnen Sie aus einer Reihe von Treibern fr verschiedene Soundkarten whlen. In einigen Fllen kommt es vor, dass fr Ihre Karte mehrere Treiber geeignet sind. Sie sollten dann alle passenden Treiber als Module kompilieren und spter ausprobieren, mit welchem Modul Sie die besten Ergebnisse erzielen. Die freien Treiber des Open-Sound-Systems (OSS) knnen Sie erst auswhlen, wenn Sie die Option OSS sound modules aktiviert haben. Bei manchen Soundkarten ist es erforderlich, dass Sie die Namen von Dateien mit der Firmware fr die entsprechende Karte angeben. Bei der Firmware handelt es sich um Programmcode, der whrend der Initialisierung der Karte auf die Karte bertragen wird und sie steuert. Dieser Code untersteht oft besonderen CopyrightBestimmungen und ist deswegen nicht im Kern enthalten. In der Hilfe zu den entsprechenden Optionen nden sich Hinweise, wie die Firmware-Dateien bezogen werden knnen. Sofern Sie die Sounduntersttzung fest in den Kern integrieren, mssen Sie bei vielen Karten angeben, welche Hardwareressourcen von diesen Karten benutzt werden sollen. Diese Angaben mssen mit den Einstellungen der Karten bereinstimmen, die durch Jumper auf der Karte oder durch das Programm isapnp vorgenommen werden. Bei Verwendung von Modulen mssen diese Angaben zum Zeitpunkt des Ladens der Module in Form von Modulparametern bergeben werden. In der Optionsgruppe Additional low level sound drivers nden Sie weitere Treiber fr Soundkarten. In einigen Fllen mssen Sie zunchst die Basisuntersttzung fr eine Karte und danach Treiber fr spezielle Eigenschaften der Karte auswhlen. So muss bei Soundkarten vom Typ Soundblaster AWE32 zunchst die Untersttzung fr Soundblaster-kompatible Karten in der Gruppe Sound aktiviert werden, um die

11.4 bersetzen des Kerns

411

Basisfunktionalitt zu erhalten. Zustzliche Eigenschaften dieses Kartentyps werden dann in der Gruppe Additional low level sound drivers mit der Option AWE32 synth angewhlt. USB-Support Der Universal Serial Bus (USB) ist bei halbwegs modernen Rechnern eine wichtige Schnittstelle, der Nachfolger von serieller und paralleler Schnittstelle. Er dient zum Anschluss von Druckern, Scannern, Modems, externen Massenspeichern, Tastaturen, Musen, Freudenknppeln und Digitalkameras. Unsere Empfehlung daher y oder m. Bluetooth Support Die Bluetooth-Option erscheint nur, wenn man zu Anfang auch experimentelle Optionen zugelassen hat, obwohl die Treiber nicht als experimentell gekennzeichnet sind. Bluetooth kann man als die Funk-Alternative zum Universal Serial Bus ansehen. Zu den unter dem USB genannten Gerten kommen Mobiltelefone (Handies), GPS-Gerte, Kopfhrer (Headsets), Lap- und Palmtops sowie telemedizinische Apparate. Bluetooth ist nicht als Grundlage fr ein WLAN gedacht. Auf kurze Entfernungen und fr wenige Teilnehmer lsst es sich dafr missbrauchen, so wie man frher kleine Netze ber die seriellen Schnittstellen verwirklicht hat. Die bertragungsgeschwindigkeit betrgt 2 MBit/s, die Reichweite liegt bei einigen Metern. Wer Bluetooth-Hardware nutzt, sollte die Option mindestens als Modul bersetzen. Kernel Hacking In der Optionsgruppe bendet sich lediglich die Option Magic SysRq key. Mit einem Kern, der mit dieser Option bersetzt wurde, lassen sich durch verschiedene, jeweils mit den Tasten A LT-D RUCK begonnene Tastenkombinationen unterschiedliche Aktionen auslsen. Dies ist auch dann oft noch mglich, wenn das System ansonsten nicht mehr auf Benutzereingaben reagiert. Mit der Option besteht die Mglichkeit, den Festplattencache sofort zurckzuschreiben, Prozesse zu beenden oder das System neu zu starten. Nheres nden Sie in der Datei sysrq.txt im Dokumentationsverzeichnis des Kernquellcodes. Fr Kerne, die in Produktionsumgebungen eingesetzt werden sollen, wird die Option nicht empfohlen: n. Wenn Sie bis hierhin gekommen sind, bittet der Rechner Sie, die Abhngigkeiten zu erstellen: joe@debian:~$ make dep

11.4 bersetzen des Kerns


Nachdem der Kern konguriert und die Konguration abgespeichert ist, knnen Sie ihn bersetzen. Dieser Schritt lsst sich am einfachsten durchfhren, wenn Sie

412

11 Anpassung und Erstellung des Betriebssystemkerns

die Pakete kernel-package und fakeroot installiert haben. Geben Sie dann folgendes Kommando ein: joe@debian:~$ fakeroot make-kpkg kernel_image - -revision=angepasst.1 Das Programm fakeroot ruft das mit dem ersten Argument angegebene Programm (hier make-kpkg) auf, wobei das aufgerufene Programm einige Aktionen so ausfhren kann, als wrde es mit den Rechten des Verwalters laufen. Dies ist bei der Erstellung von Debian-Paketen notwendig. ber die Angabe des Arguments kernel_image wird make-kpkg aufgefordert, ein Debian-Paket zu erstellen, das die Abbilddatei des neuen Kerns sowie die ausgewhlten Module enthlt. Die bersetzung des Kerns beansprucht auf langsamen Rechnern eine gewisse Zeit und belastet einige Komponenten des Rechners sehr. Bei fehlerhafter Hardware kommt es gelegentlich zu Fehlermeldungen der folgenden Art: gcc: Internal compiler error: program cc1 got fatal signal 11 Ursachen dieses Fehlers (SIGSEGV) sind in der Regel ein bertakteter Prozessor, fehlerhafter Cache-Speicher oder fehlerhafter RAM-Speicher. Mehr Informationen nden Sie unter der Web-Adresse http://www.BitWizard.nl/sig11/. 11.4.1 Revisionsnummern fr Kernpakete Die Option - -revision=angepasst.1 bewirkt, dass die Revisionsnummer des neuen Debian-Pakets angepasst.1 lautet. Die Verwendung der Option ist aus zwei Grnden sinnvoll: 1. Ohne die Angabe einer Revisionsnummer verwendet make-kpkg die Versionsnummer 1.0. Wenn das System regelmig aktualisiert wird, kommt es vor, dass auf einer Installationsquelle das gleiche Paket mit einer hheren Versionsnummer zur Verfgung steht. Dies wrde dazu fhren, dass Paketmanagementprogramme wie apt-get oder dselect den eigenen, angepassten Kern berschreiben, weil sie davon ausgehen, es handle sich bei den Paketen um eine aktualisierte Fassung des installierten Pakets. Weil mit Buchstaben beginnende Revisionsnummern vom Paketmanager hher als solche eingestuft werden, die mit Zahlen beginnen, und die ofziellen Kern-Image-Pakete nur Zahlen als Revisionsnummer verwenden, stellen Sie so sicher, dass der angepasste Kern nicht berschrieben wird. 2. Wenn Sie Kerne fr verschiedene Rechner erstellen, sind diese u. U. unterschiedlich konguriert. Mit Revisionsnummern wie printserver1.0 oder arbeitsplatz2.0 knnen Sie die neuen Debian-Pakete leicht voneinander unterscheiden. Bei der Auswahl von Revisionsnummern ist zu beachten, dass diese nur aus Buchstaben, Zahlen sowie den Zeichen +, -, und . bestehen drfen. Revisionsnummern sollten einen Punkt enthalten.

11.4 bersetzen des Kerns

413

11.4.2 Weitere Verwendungen fr make-kpkg Das Programm make-kpkg stellt eine Anzahl weiterer Optionen bereit, mit denen sich neben dem Kern-Image andere Debian-Pakete erzeugen lassen. Diese sind u. a.: kernel_source Erstellt ein Debian-Paket mit dem Kernquellcode. kernel_headers Erstellt ein Debian-Paket mit den Header-Dateien des Kerns. Die Dateien werden whrend der bersetzung von einigen kern-nah programmierten Programmen bentigt. kernel_doc Erstellt ein Debian-Paket mit den Dokumentationsdateien des Kerns. Weitere Optionen und Anwendungen von make-kpkg sind in der Manual-Seite zu dem Programm beschrieben. Die mit den oben genannten Optionen erzeugbaren Debian-Pakete sind auch in der Standarddistribution vorhanden. Wenn Sie diese Pakete selbst erstellen, sollten Sie immer dieselbe Revisionsnummer verwenden, die Sie auch bei Erstellung des Kern-Image benutzt haben. 11.4.3 bersetzen der Kernquellen ohne make-kpkg Der Vollstndigkeit halber wird hier kurz beschrieben, wie sich der Kern ohne Verwendung von make-kpkg bersetzen lsst. Dazu sind die folgenden Kommandos nacheinander aufzurufen: joe@debian:~$ make dep Das Kommando erzeugt oder aktualisiert die Abhngigkeiten der Quellcodedateien untereinander. Das Programm make entscheidet anhand dieser Abhngigkeiten, welche Quellcodedateien neu bersetzt werden mssen. joe@debian:~$ make clean Hiermit werden alle berbleibsel einer vorhergehenden Kernerzeugung gelscht. joe@debian:~$ make bzImage Erzeugt die Abbilddatei des Kerns (bzImage steht fr big compressed Image). Sie bendet sich hinterher im Unterverzeichnis arch/i386/boot. Alternativ kann das Kommando make bzdisk benutzt werden, um die Kerndatei zu erzeugen und sie auf eine Diskette zu schreiben, mit welcher der Rechner dann gebootet werden kann, um den neuen Kern auszuprobieren. joe@debian:~$ make modules Erzeugt die bentigten Kernmodule. debian:~# make install Installiert den Kern direkt und unter Umgehung des Paketmanagers. Dies wird fr ein Debian-System nicht empfohlen. debian:~# make modules_install Installiert die Kernmodule direkt und unter Umgehung des Paketmanagers. Dies wird ebenfalls nicht empfohlen.

414

11 Anpassung und Erstellung des Betriebssystemkerns

11.5 Installation eines neuen Kerns


11.5.1 Vorbereitung der Installation Erstellung einer Bootdiskette Bevor Sie den neuen Kern installieren, sollten Sie sicherstellen, dass Sie das System im Notfall weiterhin mit dem alten Kern starten knnen. Hierzu ist eine Bootdiskette mit dem alten Kern zu erstellen. Legen Sie eine Diskette in das erste Diskettenlaufwerk (/dev/fd0) ein und geben Sie folgendes Kommando ein: debian:~# mkboot /vmlinuz Das Kommando muss mit Verwalter-Rechten ausgefhrt werden. Der Parameter /vmlinuz speziziert die Kerndatei, die fr die Bootdiskette benutzt werden soll. Standardmig ist /vmlinuz ein symbolischer Link auf den aktuell benutzten Kern. Wenn Sie Ihren Kern an einer anderen Stelle lagern, mssen Sie das Kommando anpassen. Verwendung von LILO Wenn Sie den Bootloader LILO verwenden, knnen Sie ihn so kongurieren, dass Sie beim Systemstart zwischen altem und neuem Kern auswhlen knnen. ffnen Sie dazu die Datei /etc/lilo.conf mit Verwalter-Rechten in einem Editor. In der Datei sollte sich ein Abschnitt benden, der ungefhr folgendermaen aussieht:
image=/vmlinuz label=Linux read-only

Der Dateiname hinter image= bezeichnet dabei den Namen der zu startenden Kerndatei und der Wert hinter label= den Namen, mit dem dieser Kern beim Systemstart ausgewhlt wird. Nach der Installation eines neuen Kernpakets ist die Datei /vmlinuz ein symbolischer Link auf den installierten Kern und /vmlinuz.old ein symbolischer Link auf den vorher benutzten Kern. Reproduzieren Sie den oben gezeigten Abschnitt fr den alten Kern folgendermaen:
image=/vmlinuz label=Linux read-only image=/vmlinuz.old label=LinuxAlt read-only

Der zuerst genannte Eintrag bezeichnet den Kern, der standardmig gestartet wird. Wenn Sie beim Systemstart den alten Kern verwenden mchten, drcken Sie die Taste TAB, whrend die Buchstaben LILO erscheinen, und geben LinuxAlt ein.

11.5 Installation eines neuen Kerns

415

Achtung: Dieses Verfahren funktioniert nicht, wenn Sie einen neuen Kern derselben Kernversion installieren, beispielsweise einen 2.4.18-Kern, der mit anderen Optionen bersetzt wurde als der bisher installierte 2.4.18-Kern. Kopieren Sie in diesem Fall den alten Kern manuell an einen sicheren Ort und legen Sie einen entsprechenden Eintrag in der Datei /etc/lilo.conf an oder verwenden Sie eine Bootdiskette. Verwendung anderer Bootloader Wenn Sie Linux nicht mit LILO starten, sollten Sie ebenfalls die Konguration Ihres Bootloaders so anpassen, dass Sie zwischen altem und neuem Kern whlen knnen. Benutzer von loadlin mssen den neu installierten Kern in den meisten Fllen nach der Installation auf eine DOS-Partition kopieren. 11.5.2 Durchfhrung der Installation Die Datei des von make-kpkg erzeugten Debian-Pakets wird in dem Verzeichnis abgelegt, in dem sich auch das Basisverzeichnis des Kernquellcodes bendet. Wechseln Sie also zunchst in dieses Verzeichnis: joe@debian:~$ cd .. Unabhngig davon, ob Sie einen eigenen Kern als Debian-Paket erzeugt haben oder einen Standardkern der Distribution verwenden, kann dieser Kern wie jedes andere Debian-Paket mit folgendem Kommando installiert werden: debian:~# dpkg - -install kernel-image-2.4.18_angepasst.1_i386.deb Fr dieses Kommando bentigen Sie Verwalterrechte. Wenn Sie eine andere Quellcodeversion als 2.4.18 oder eine andere Revisionsnummer als angepasst.1 benutzt haben, mssen Sie den Dateinamen im Kommando anpassen. Installation eines neuen Kerns derselben Version Bevor der Kern tatschlich installiert wird, berprft das preinst-Skript des Pakets, ob bereits ein Kern derselben Version installiert ist. Falls dies der Fall ist, erfolgt ein Hinweis, dass es hierdurch zu Problemen kommen kann, wenn sich die Module des bereits installierten Kerns von denen im zu installierenden Paket unterscheiden. In einer solchen Situation sollten Sie dem Vorschlag des Skripts folgen und die Installation abbrechen. Verschieben Sie dann dass Modulverzeichnis des alten Kerns an einen anderen Ort, indem Sie folgendes Kommando eingeben: debian:~# mv /lib/modules/2.4.18 /lib/modules/2.4.18.old

416

11 Anpassung und Erstellung des Betriebssystemkerns

2.4.18 entspricht hierbei der Versionsnummer des betreffenden Kerns. Installieren Sie den neuen Kern danach erneut. Weil in diesem Fall nach der Installation des neuen Kerns die Eigenschaften des laufenden Kerns nicht mehr mit den Modulen im Modulverzeichnis bereinstimmen, sollten Sie nach Abschluss der Installation baldmglichst einen Neustart des Systems durchfhren. Das Sicherungsverzeichnis knnen Sie lschen, sobald gewhrleistet ist, dass der neue Kern richtig funktioniert. Erstellung einer Bootdiskette Whrend der Kongurationsphase des Kernpakets knnen Sie eine Bootdiskette mit dem neuen Kern anlegen. Dies ist zu empfehlen. Zu diesem Zweck ist die entsprechende Frage mit yes zu beantworten und anzugeben, welches Diskettenlaufwerk benutzt werden soll (0 fr /dev/fd0). Wenn Sie das Paket fdutils installiert haben, erfolgt die Frage, ob die Diskette formatiert werden soll. Auch diese Frage sollte mit y beantwortet werden. Die Diskette ist nach Beendigung der Installation aus dem Laufwerk zu entfernen. Installation von LILO Wenn LILO auf dem System installiert ist, berprft das Skript, ob bereits eine Kongurationsdatei fr LILO existiert und fragt in diesem Fall, ob ein neuer Bootblock mit den bestehenden Kongurationseinstellungen installiert werden soll. Achtung: Dieser Schritt ist notwendig, damit LILO den neu installierten Kern bei Start des Systems booten kann. In der Datei /etc/lilo.conf muss sich dazu ein Eintrag fr den neuen Kern benden. Der meist benutzte Eintrag image=/vmlinuz reicht aus. Sofern LILO installiert ist, aber noch keine Kongurationsdatei vorhanden ist, fragt das Skript, ob eine Standardkongurationsdatei erstellt und der Bootblock mit der neuen Datei erzeugt werden soll. In diesem Fall spricht die Tatsache, dass keine Datei /etc/lilo.conf existiert, dafr, dass LILO nicht zum Starten des Systems benutzt werden soll. Es wird deswegen empfohlen, den Bootloader nicht whrend der Installation des Kerns zu kongurieren und zu installieren. Weitere Hinweise zur Konguration von LILO nden Sie in Kapitel 10.3 auf Seite 351. Sie mssen den neuen Kern dann zunchst mit einer Bootdiskette oder anderweitig (z. B. mit loadlin) starten.

11.6 Starten des neuen Kerns


11.6.1 Laden Nach erfolgreicher Installation eines neuen Kerns muss das System neu gestartet werden, um den neuen Kern zu laden. Bevor Sie diesen Schritt durchfhren, sollte nochmals geprft werden, ob die Voraussetzungen erfllt sind, sowohl den alten als

11.6 Starten des neuen Kerns

417

auch den neuen Kern starten zu knnen. Wenn dies nmlich nicht mglich ist, kommt es vor, dass das System nicht mehr startbar ist und deswegen auch keine Mglichkeit mehr besteht, den Kern zu korrigieren. Wenn LILO zum Starten des Systems benutzt wird, sollte sich in der Datei /etc/lilo.conf jeweils ein Eintrag fr den alten und fr den neuen Kern benden. Nach manueller nderung dieser Datei muss das Programm /sbin/lilo aufgerufen werden! Wenn Loadlin zum Starten des Systems benutzt wird, sollten sich die Abbilddateien des alten und des neuen Kerns im Loadlin-Verzeichnis auf der richtigen DOS-Partition benden. In jedem Fall sollten Bootdisketten mit dem alten und dem neuen Kern bereit liegen. Wenn Sie den neuen Kern zunchst von einer Diskette booten wollen, legen Sie die Diskette in das Laufwerk. Das BIOS des Rechners muss so eingestellt sein, dass es zuerst versucht, den Rechner vom Diskettenlaufwerk aus zu starten. Um einen Neustart des Rechners durchzufhren, schlieen Sie zunchst alle Programme und geben dann folgendes Kommando ein: debian:~# reboot Nach Neustart des Kerns berprfen Sie, ob der richtige Kern gestartet wurde: joe@debian:~$ dmesg | head -1 Die Ausgabe dieses Kommandos hat folgende Form: Linux version 2.4.18-686 (herbert@gondolin) (gcc version 2.95.4 20011002) #1 Sun Apr 14 EST 2002 Anhand des Datums sowie der Email-Anschrift lsst sich feststellen, ob es sich um den richtigen Kern handelt. 11.6.2 Probleme Keine Ausgabe auf dem Bildschirm Die wahrscheinlichste Erklrung fr diesen Fehler ist, dass sich der Treiber fr die Konsole nicht im Kern bendet. Booten Sie den alten Kern und stellen Sie sicher, dass in der Optionsgruppe Character Devices die Option Virtual Terminal sowie in der Optionsgruppe Console Drivers die Option VGA text console aktiviert ist. bersetzen und Installieren Sie den Kern erneut. Kein Zugriff auf das Rootdateisystem Wenn der neue Kern normal startet, jedoch mit einer Meldung der Art: VFS: Unable to mount root fs on 0807

418

11 Anpassung und Erstellung des Betriebssystemkerns

stehen bleibt und diese Meldung mit dem alten Kern nicht aufgetreten ist, dann haben Sie vermutlich vergessen, die Treiber fr den Zugriff auf das Rootdateisystem fest in den Kern zu integrieren. Starten Sie das System mit dem alten Kern und berprfen Sie, ob sich die Untersttzung fr IDE- bzw. SCSI-Adapter im Kern bendet, ob der richtige Hardwaretreiber fr den im Rechner vorhandenen Adapter im Kern ist und ob der Treiber fr das Ext2-Dateisystem eingebunden wurde. Module knnen beim Systemstart nicht geladen werden Wenn Sie bestimmte Treiber bisher automatisch whrend des Systemstarts aus Modulen geladen haben und diese Treiber beim neuen Kern entweder nicht mehr vorhanden sind oder fest in den Kern integriert worden sind, treten beim Systemstart u. U. Fehlermeldungen der folgenden Art auf: Loading modules: foobar modprobe: Cant locate module foobar wobei foobar durch den Namen eines Moduls zu ersetzen ist, das nicht geladen werden kann. Bei diesen Fehlermeldungen handelt es sich um Schnheitsfehler. Module, die beim Systemstart geladen werden sollen, sind in der Datei /etc/modules eingetragen. Um die Fehlermeldungen in Zukunft zu vermeiden, knnen Sie die Datei mit einem Texteditor ffnen und die Eintrge auskommentieren (Doppelkreuz). Treiber werden nicht geladen In einigen Fllen ist es notwendig, Treibern Parameter zu bergeben, damit diese die von ihnen kontrollierte Hardware richtig erkennen. Wenn solche Treiber mit dem alten Kern in Form von Modulen geladen wurden, so haben Sie die entsprechenden Parameter wahrscheinlich mit dem Programm modconf angegeben. Die entsprechenden Parameter sollten sich dann in der Datei /etc/modutils/modconf benden. Dieses Verfahren funktioniert nicht mit Treibern, die sich fest im Kern benden. Die Parameter mssen solchen Treibern am Bootprompt bergeben werden. Bei Verwendung von LILO knnen Parameter durch eine append=-Zeile bergeben werden. Mehr Informationen nden Sie in Kapitel 12.2, ab Seite 422.

11.7 Aktualisieren des Kerns mit Patchdateien


Neben komprimierten tar-Archiven mit dem Kernquellcode werden im Internet (http://www.kernel.org/) Patchdateien bereitgestellt, mit denen der vorhandene Quellcode einer lteren Version auf eine neuere aktualisiert werden kann. Diese Patchdateien liegen ebenfalls in komprimierter Form vor und sind in der Regel deutlich kleiner als die kompletten Archive. Durch die Verwendung dieser Dateien lsst sich Online-Zeit einsparen.

11.7 Aktualisieren des Kerns mit Patchdateien

419

Es ist allerdings nicht empfehlenswert, den durch die kernel-source-Pakete bereitgestellten Quellcode mit Patchdateien zu aktualisieren. Der von Debian bereitgestellte Quellcode enthlt bereits nderungen gegenber der ofziellen Version des Quellcodes. Die in den Patchdateien beschriebenen nderungen lassen sich deswegen nicht auf den Debian-Quellcode anwenden. Patchdateien werden immer zur Aktualisierung von einer Kernversion auf die nchste angeboten. Wenn von einem Kern der Version 2.4.18 auf die Version 2.4.20 aktualisiert werden soll, dann wird ein Patch zur Aktualisierung von 2.4.18 auf 2.4.19 und ein weiterer zur Aktualisierung von 2.4.19 auf 2.4.20 bentigt. Die Patchdateien liegen auf dem Server www.kernel.org im selben Verzeichnis wie die kompletten Archive. Sie tragen Dateinamen wie patch-2.4.19.bz2, wenn sie mit dem Programm bzip2 komprimiert wurden, oder patch-2.4.19.gz, wenn Sie mit gzip komprimiert wurden. Die Versionsnummer bezeichnet die Version des Kerns, auf die mit dem Patch aktualisiert wird (Zielversion). Zur Anwendung eines Patches ist zunchst die Patchdatei zu dekomprimieren: joe@debian:~$ bunzip2 patch-2.4.19.bz2 Die Verwendung des Kommandos setzt voraus, dass sich die Patchdatei im Arbeitsverzeichnis bendet. Der Dateiname patch-2.4.19.bz2 ist an die tatschlich benutzte Patchdatei anzupassen. Im Falle einer mit gzip (S. 807) komprimierten Patchdatei ist anstelle von bunzip2 das Programm gunzip zu verwenden. Im nchsten Schritt muss in das Basisverzeichnis des Kernquellcodes gewechselt werden. Vorausgesetzt, das Verzeichnis heit linux-2.4.18 und bendet sich unterhalb des Arbeitsverzeichnisses, wird dazu folgendes Kommando eingegeben: joe@debian:~$ cd linux-2.4.18 Der Patch wird dann durch die Eingabe des folgenden Kommandos angewandt: joe@debian:~$ patch -p1 < ../patch-2.4.19 Dies setzt voraus, dass sich der Patch eine Verzeichnisebene unter dem Basisverzeichnis des Kernquellcodes bendet. Der Dateiname patch-2.4.19 ist auch hier anzupassen. Wenn mit mehreren Patchdateien ber mehrere Versionen hinweg aktualisiert werden soll, so sind die einzelnen Patches in der Reihenfolge ihrer Versionsnummern anzuwenden. Nach Anwendung des Patches sollte der Name des Quellcodeverzeichnisses der neuen Version angepasst werden. Auch der symbolische Link /usr/src/linux muss aktualisiert werden. Im Fall der Aktualisierung von Version 2.4.18 auf 2.4.19 geschieht dies mit folgenden Kommandos:
cd mv rm ln cd .. linux-2.4.18 linux-2.4.19 /usr/src/linux -s pwd/linux-2.4.19 /usr/src/linux linux-2.4.19

420

11 Anpassung und Erstellung des Betriebssystemkerns

Die Kommandos sind bei Verwendung anderer Verzeichnisnamen anzupassen. Nach Anwendung des Patches empehlt es sich, den Quellcodebaum von alten temporren Dateien zu bereinigen: joe@debian:~$ make clean Zum Schluss muss die Konguration des Quellcodes an die neue Version angepasst werden. Dies kann wie gewohnt mit make menucong oder durch das Kommando joe@debian:~$ make oldconfig geschehen. Nach Eingabe dieses Kommandos werden nur solche Fragen gestellt, die bei der alten Version noch nicht erforderlich waren und deswegen noch nicht beantwortet wurden.

12 Konguration von Kern und Modulen

12.1 Einleitung
Wie vielen Anwendungsprogrammen knnen auch dem Kern beim Start Parameter bergeben werden. Die meisten Parameter dienen dazu, bestimmten Hardwaretreibern mitzuteilen, wo sich die von ihnen gesteuerte Hardware bendet, wie sie zu initialisieren oder wie sie im weiteren Verlauf zu betreiben ist. Eine Reihe anderer Parameter beeinusst das Verhalten des Kerns. Eng verwandt mit den Kernparametern sind Parameter, die beim Laden eines Kernmoduls bergeben werden. Ein Kernmodul ist ein dynamisch ladbarer Teil des Kerns, das diesen um bestimmte Eigenschaften ergnzt. Die meisten Treiber und eine Reihe anderer Kernkomponenten knnen wahlweise fest in den Kern integriert sein oder als Modul vorliegen (siehe Kapitel 11). Kernmodule stehen beim Start des Kerns noch nicht zur Verfgung und knnen erst nach seinem Start geladen werden. Wenn beispielsweise ein Hardwaretreiber einen Hinweis bentigt, welche Einund Ausgabeadresse die von ihm gesteuerte Hardwarekomponente verwendet, dann muss dem Treiber diese Information in Form eines Kernparameters bergeben werden, wenn er sich fest im Kern bendet. Liegt der Treiber jedoch in Form eines Moduls vor, dann wird die entsprechende Komponente nicht whrend des Systemstarts initialisiert und diese Information noch nicht bentigt. Der betreffende Parameter fr den Treiber wird dann spter beim Laden des Moduls angegeben. Die Art, wie Parameter fr Kernbestandteile angegeben werden, hngt davon ab, ob der betreffende Bestandteil fest im Kern eingebaut ist oder als Modul nachgeladen wird. Beim Laden eines Moduls werden die Parameter an der Kommandozeile des Modulladeprogramms bergeben. Ein Kernparameter muss hingegen vom Bootloader (z. B. LILO oder Loadlin) bergeben werden. In vielen Fllen unterscheidet sich auch die Syntax der Parameterbergabe. Darber hinaus knnen einer Reihe von Modulen Optionen bergeben werden, die nicht zur Verfgung stehen, wenn sich der betreffende Bestandteil fest im Kern bendet. In diesem Kapitel wird zunchst dargestellt, wie Kern- und Modulparameter bergeben und fest eingestellt werden knnen. Im weiteren werden dann die wichtigsten allgemeinen und hardwarespezischen Parameter beschrieben. Grundstzlich

422

12 Konguration von Kern und Modulen

sollte beachtet werden, dass die meisten Treiber ber Autoprobing verfgen, das heit, sie erkennen selbst, welche Ressourcen sie zu verwenden haben und wie die betreffende Hardware zu initialisieren ist. Durch die explizite Angabe der Ressourcen mittels Parametern wird das Autoprobing abgeschaltet. Im Zweifelsfall empehlt es sich immer, einen Treiber ohne die Angabe von Parametern zu laden und auf das Autoprobing zu vertrauen. Erst wenn hiermit nicht die gewnschten Ergebnisse erzielt werden, sollte man versuchen, die betreffende Kernkomponente auf die zu verwendenden Ressourcen hinzuweisen.

12.2 Der Bootprompt bergabe von Parametern an den Kern


Wie beschrieben mssen die Kernparameter zur Verfgung stehen, bevor der Kern gestartet ist. Es stellt sich die Frage, wie das geschehen kann, weil zu diesem Zeitpunkt ja noch kein Betriebssystem luft und somit auch keine Shell, an der Parameter eingegeben werden knnen. Bootloader wie LILO oder Syslinux stellen deswegen eine eigene einfache Kommandozeile zur Verfgung, die nur der Auswahl des zu startenden Kerns und der bergabe von Parametern an den Kern dient. Bei Verwendung von Loadlin ist die Situation etwas anders. Weil es sich bei Loadlin um ein DOS-Programm handelt, steht eine Shell (der DOS-Kommandointerpreter command.com) zur Verfgung, und Kernparameter knnen an der Loadlin-Kommandozeile oder durch eine Parameterdatei bergeben werden. Mehr ber die Einrichtung von Bootloadern nden Sie in Kapitel 10 auf Seite 341. Ferner knnen die drei genannten Bootloader so konguriert werden, dass regelmig bentigte Parameter automatisch bergeben werden. Dies ist dann hilfreich, wenn bestimmte Parameter erforderlich sind, um das System berhaupt starten zu knnen und der Systemstart automatisch erfolgen soll. Im allgemeinen ist zu empfehlen, Parameter zunchst manuell zu bergeben und auszuprobieren, ob sie die gewnschte Wirkung zeigen. Wenn dies der Fall ist, kann der Bootloader so konguriert werden, dass er die bentigten Parameter automatisch bergibt. 12.2.1 Syntaktischer Aufbau von Kernparametern Prinzipiell gibt es zwei Gruppen von Kernparametern: Parameter, die nur aus einem einzigen Wort bestehen, etwa no387 oder debug. Mit diesen Parametern wird eine bestimmte Eigenschaft ein- oder ausgeschaltet. Parameter, die sich aus einem Schlsselwort, einem Gleichheitszeichen und parameterspezischen Angaben zusammensetzen. Beispiele sind aha152x=0x340,10 oder video=vesa:ywrap,mtrr. Diese Parameter dienen meist dazu, bestimmten Treibern Angaben ber zu verwendende Hardwareressourcen oder die gewnschte Benutzung der Hardware zu bergeben.

12.2 Der Bootprompt bergabe von Parametern an den Kern

423

Wenn mehr als ein Parameter bergeben werden soll, sind die einzelnen Parameter durch Leerzeichen zu trennen. Damit der Kern die Parameter voneinander unterscheiden kann, ist darauf zu achten, dass kein Parameter selbst Leerzeichen enthlt. Falsch wre also folgende Parameterangabe: no387 video=vesa: ywrap,mtrr Der Kern wrde hier von drei Parametern ausgehen und die Angabe ywrap,mtrr nicht dem mit video= beginnenden Parameter zuordnen. Damit die Parameter richtig interpretiert werden, muss die Angabe folgendermaen aussehen: no387 video=vesa:ywrap,mtrr Der Kern speichert alle beim Start bergebenen Parameter in der Datei /proc/cmdline. Anhand dieser Datei lsst sich berprfen, ob alle Parameter syntaktisch richtig bergeben wurden. Dies kann mit folgendem Kommando geschehen: joe@debian:~$ cat /proc/cmdline Der Ausgabe des Kommandos ist zu entnehmen, dass dem Kern neben den explizit benutzten Parametern noch weitere Parameter bergeben worden sind. Hierbei handelt es sich um Parameter, die vom Bootloader automatisch bergeben werden. Beispielsweise bergibt LILO automatisch den Parameter BOOT_IMAGE=Datei, wobei fr Datei der Name der gestarteten Kernabbilddatei eingesetzt wird. 12.2.2 Kernparameter und LILO Der Standardbootloader LILO (siehe Kap. 10.3) implementiert einen Bootprompt, an dem vorkongurierte Kerne ausgewhlt und Parameter bergeben werden knnen. Im Normalfall muss LILOs Bootprompt durch Bettigung einer der Tasten S HIFT, S TRG oder A LT aktiviert werden. Standardmig ldt LILO ohne Bootprompt automatisch einen Kern mit vorkongurierten Parametern. Manuelle bergabe von Parametern Angenommen, LILO wurde mit der folgenden Kongurationsdatei (/etc/lilo.conf ) konguriert und installiert:
boot=/dev/hda2 delay=20 image=/vmlinuz root=/dev/hda2 label=linux image=/vmlinuz.old root=/dev/hda2 label=linuxAlt

Bei dieser Konguration stehen zwei Kerne zur Auswahl: /vmlinuz und /vmlinuz.old, die sich am Bootprompt mit den Namen linux und linuxAlt auswhlen lassen. Aufgrund der Anweisung delay=20 wartet LILO zwei Sekunden lang darauf,

424

12 Konguration von Kern und Modulen

dass der Bootprompt aktiviert wird und bootet den mit linux bezeichneten Kern automatisch, falls dies nicht geschieht. LILO whlt diesen Kern aus, weil er in der Kongurationsdatei als erster genannt wird. Wenn der zweite kongurierte Kern linuxAlt mit den beiden Parametern root=/dev/hda6 und single gestartet werden soll, ist der Bootprompt zu aktivieren und folgendes einzugeben: linuxAlt root=/dev/hda6 single Bootparameter sind hinter den Namen eines vorkongurierten Kerns zu schreiben. Zur Entgegennahme von Eingaben an LILOs Bootprompt werden BIOSRoutinen verwendet, die von einem US-amerikanischen Tastaturlayout ausgehen. LILO lsst sich allerdings fr die Verwendung mit anderen Tastaturen kongurieren (siehe Abschnitt 10.3.8 auf Seite 363). Automatische bergabe von Parametern Eine Reihe von Parametern bergibt LILO dem zu startenden Kern in Abhngigkeit von seiner Konguration automatisch. So bewirkt die Anweisung read-only in der Kongurationsdatei /etc/lilo.conf, dass dem Kern der Parameter ro bergeben wird. Die Anweisung root=Partitionsname (z. B. root=/dev/hda2), mit der das vom Kern einzubindende Rootdateisystem ausgewhlt wird, wird ebenfalls als Parameter an den Kern bergeben. Darber hinaus lassen sich alle Parameter durch die append=-Anweisung in LILOs Kongurationsdatei spezizieren. Um Syntaxfehler zu vermeiden, sollten die mit append= bergebenen Parameter durch Anfhrungszeichen von den brigen Anweisungen in der Kongurationsdatei abgegrenzt werden. Wenn es notwendig sein sollte, besonders viele oder lange Parameter zu bergeben, knnen diese auf mehrere Zeilen der Kongurationsdatei verteilt werden. Dazu ist an das Ende jeder Zeile, die in der nchsten Zeile fortgesetzt wird, ein Backslash zu setzen. Beispiel:
boot=/dev/hda2 delay=20 image=/vmlinuz root=/dev/hda2 append= "aha152x=0x340,10 \ debug ether=10,0x280"

12.2.3 Kernparameter und Loadlin Wenn Sie Loadlin (siehe Kap. 10.2.2) verwenden, knnen die bentigten Kernparameter direkt an der DOS-Kommandozeile hinter dem Dateinamen des zu startenden Linux-Kerns angegeben werden. Beispiel: C:\> loadlin vmlinuz root=/dev/hda2 ro ether=10,0x280

12.3 Verarbeitung von Parametern durch den Kern

425

Eine Kommandozeile darf unter DOS nicht lnger als 128 Zeichen sein. Bei Verwendung vieler oder langer Parameter reicht dies gelegentlich nicht aus. Die Parameter sind dann in eine Parameterdatei zu schreiben. Der Name der Parameterdatei wird Loadlin folgendermaen bergeben: C:\> loadlin @params.txt Mehr dazu in Abschnitt 10.2.2 auf Seite 344. 12.2.4 Kernparameter und Syslinux Syslinux ist der auf den Installations- und Rettungsdisketten (rescue-disk) verwendete Bootloader. Das Programm stellt wie LILO einen Bootprompt zur Verfgung, mit welchem der zu startende Kern ausgewhlt wird und diesem Parameter bergeben werden. Syslinux ist auf der Debian-Rettungsdiskette so konguriert, dass der Bootprompt in jedem Fall erscheint. Bei anderen Kongurationen muss er gegebenenfalls durch Drcken der Tasten S HIFT oder A LT oder durch Aktivierung von S HIFT-L OCK oder ROLLEN angefordert werden. Am Bootprompt von Syslinux muss zunchst der zu startende Kern (das ist der Name der Kernabbilddatei auf der Diskette) gefolgt von eventuell bentigten Optionen angegeben werden. Beispiel: linux root=/dev/hdb2 ro Das Programm ist ber eine Datei kongurierbar. Sie muss den Namen syslinux.cfg tragen und sich im Wurzelverzeichnis der Diskette benden. In dieser Datei lassen sich ebenso wie bei LILO durch eine append-Anweisung standardmig zu verwendende Kernparameter angeben. Ein Beispiel fr eine solche Kongurationsdatei bendet sich auf der Debian-Rettungsdiskette. 12.2.5 Kernparameter mit rdev setzen Fr die Voreinstellungswerte einiger Kernparameter gibt es genau denierte Positionen in den Kernabbilddateien. Sie lassen sich deswegen mit dem Programm rdev (S. 850) ndern. Zu diesen mit rdev einstellbaren Parametern gehrt die fr das Rootdateisystem zu verwendende Partition oder der standardmig zu verwendende Videomodus. Das Programm rdev ist ntzlich, wenn Linux direkt aus dem Bootsektor einer Diskette gestartet und kein Bootloader verwendet wird.

12.3 Verarbeitung von Parametern durch den Kern


Whrend seiner Startphase untersucht der Kern jeden Parameter daraufhin, ob er ihn kennt. Wenn dies der Fall ist, wird er an den Teil des Kerns bergeben, der fr diesen Parameter zustndig ist. Dies ist meist ein im Kern vorhandener Hardwaretreiber. Der betreffende Parameter wird danach als erledigt angesehen. Alle Parameter, die whrend dieser Phase nicht verarbeitet wurden, werden folgendermaen behandelt:

426

12 Konguration von Kern und Modulen

Parameter, die ein Gleichheitszeichen enthalten, werden als Umgebungsvariable gesetzt. Wenn dem Kern der Parameter doit=yes bergeben wird, bewirkt dies, dass eine Umgebungsvariable mit dem Namen doit erzeugt wird, die den Wert yes erhlt. Umgebungsvariable knnen von Programmen ausgewertet werden. Parameter, die kein Gleichheitszeichen enthalten, werden dem Programm als Argument bergeben, dass vom Kern als erstes aufgerufen wird. Dies ist in der Regel das Programm init (S. 811), welches den Start des Systems organisiert, nachdem die Startphase des Kerns abgeschlossen ist. Ein Beispiel fr einen solchen Parameter ist single. Dieser Parameter wird nicht vom Kern ausgewertet, sondern an init bergeben, das den Rechner mit diesem Parameter im SingleUser-Modus startet (siehe Kap. 13). Parameter fr Kernbestandteile, die nicht in den Kern integriert wurden, werden vom Kern nicht erkannt und deswegen wie oben beschrieben behandelt. Achten Sie deswegen darauf, dem Kern nur solche Parameter zu bergeben, fr die sich auch die entsprechenden Bestandteile im Kern benden. Wenn Sie einen neuen Kern erstellen und einen Treiber als Modul bersetzen, der bisher fest im Kern vorhanden war, mssen Sie die Parameter fr diesen Treiber aus der Parameterliste fr den Kern entfernen und sie beim Laden des Moduls bergeben.

12.4 Module
Kernbestandteile, die in Form von Modulen vorliegen, knnen zur Laufzeit des Systems manuell ge- und entladen werden. Dabei ist es mglich, ber Kommandozeilenargumente Parameter anzugeben, die von den Modulen whrend ihrer Initialisierung ausgewertet werden. In vielen Fllen sind hierbei dieselben Parameter verwendbar, die als Kernparameter angegeben werden knnen, wenn der entsprechende Kernbestandteil fest integriert ist. In einer Reihe von Fllen unterscheidet sich die Syntax allerdings. Ein groer Vorteil bei der Verwendung von Modulen besteht darin, dass Parameter leichter ausprobiert werden knnen. Whrend die Parameter fr einen fest integrierten Treiber nur beim Systemstart bergeben werden, kann ein Modul schnell entladen und mit neuen Parametern wieder geladen werden. 12.4.1 Manuelles Laden und Entfernen Laden Zum Laden von Modulen dienen die Programme insmod (S. 812) und modprobe (S. 834). Sie unterscheiden sich folgendermaen: Das Programm insmod ldt ein Modul in den Kern und bergibt ihm an der Kommandozeile eingegebene Parameter. Dabei kann es vorkommen, dass das Modul die Funktionalitt eines anderen Moduls bentigt und nicht erfolgreich initialisiert werden kann, weil das andere Modul fehlt.

12.4 Module

427

Obiges Problem wird von modprobe gelst. Das Programm greift auf eine Datenbank von Modulabhngigkeiten zu, der es entnimmt, welche Module vor dem angeforderten Modul zu laden sind. Die Datenbank wird whrend des Systemstarts automatisch durch Aufruf des Programms depmod (S. 790) erzeugt. Zustzlich kann in einer Kongurationsdatei angegeben werden, wo Module zu suchen sind, mit welchen Parametern diese zu laden sind oder dass bestimmte Programme vor oder nach dem Laden eines Moduls auszufhren sind. Letztere Mglichkeit vereinfacht die Initialisierung von manchen Hardwarekomponenten sehr. So ist es bei einigen Soundkarten notwendig, Soundfonts auf die Karte zu laden, bevor bestimmte Eigenschaften genutzt werden knnen. Der Aufruf des entsprechenden Programms kann dann mit modprobe automatisiert werden. Im allgemeinen sollte modprobe zum Laden von Modulen benutzt werden. Die Programme insmod und modprobe gehren zum Paket modutils und sind Bestandteil jeder Debian GNU/Linux Installation. Um das Modul zur Untersttzung des CD-Dateisystems zu laden, ist folgendes Kommando einzugeben: debian:~# modprobe isofs Wenn einem Modul Parameter bergeben werden sollen, sind diese hinter den Modulnamen zu schreiben. Beispiel: debian:~# modprobe aha152x aha152x=0x340,10 Das erste Argument aha152x bezeichnet den Modulnamen, das zweite aha152x=0x340,10 den Parameter fr diesen Treiber. Anzeigen geladener Module Zum Anzeigen der bereits geladenen Module dient das Programm lsmod (S. 825). Nach Eingabe des Kommandos debian:~# lsmod werden die im Kern bendlichen Module untereinander aufgelistet. Es wird auerdem angezeigt, ob die betreffenden Module zur Zeit benutzt werden. Fr Module, die von anderen Modulen benutzt werden, wird weiter ausgegeben, welche das sind. Entfernen geladener Module Zum Entfernen von Modulen werden die Programme rmmod (S. 856) und modprobe mit dem Parameter -r benutzt. Auch hier empehlt sich die Verwendung von modprobe, weil dann auch weitere Module entfernt werden, die nur bentigt wurden, damit das zu entfernende Modul geladen werden konnte. Um das Modul isofs zu entfernen, ist folgendes Kommando einzugeben: debian:~# modprobe -r isofs

428

12 Konguration von Kern und Modulen

Hierbei kommt es immer dann zu einem Fehler, wenn das zu entfernende Modul von einem Programm oder einem anderen Modul bentigt wird. Haben Sie beispielsweise eine CD in das Dateisystem eingebunden, knnen Sie den Treiber fr das CD-Dateisystem nicht entfernen. Sie mssen die CD zuerst aus dem Dateisystem aushngen und knnen danach das Modul entfernen. Modulverwaltung mit modconf Eine bequeme Methode zum Laden von Modulen wird mit dem Programm modconf bereitgestellt. Das Programm kennen Sie bereits von der Basisinstallation. Es wird auf Seite 87 ff. beschrieben. Mit modconf ausgewhlte Module werden whrend des Systemstarts geladen und bleiben normalerweise so lange geladen, bis sie manuell entfernt werden oder das System heruntergefahren wird. Die Liste der zu ladenden Module wird von modconf in der Datei /etc/modules gespeichert. Modulparameter, die bei Verwendung von modconf angegeben wurden, nden Sie in der Datei /etc/modutils/modconf. Das Programm modconf ist in dem gleichnamigen Paket enthalten. 12.4.2 Automatisches Laden und Entfernen Linux-Kerne der 2.4.x-Serie und spter besitzen die Fhigkeit, Module automatisch zu laden, sobald auf eine bestimmte Eigenschaft des Kerns zugegriffen wird, die in einem Modul vorhanden ist. Der Modulloader des Kerns heit kmod. Bei der Konguration selbst erstellter Kerne muss die Option Kernel module loader aktiviert werden, um kmod verwenden zu knnen. Die Standardkerne sind mit dieser Option bersetzt worden1 . Wenn der Kern feststellt, dass ein bestimmtes Modul geladen werden muss, ruft er ber kmod das Programm modprobe auf. Dadurch werden die von dem zu ladenden Modul bentigten weiteren Module ebenfalls geladen und externe Programme zur Initialisierung der Hardware oder zu anderen Zwecken ausgefhrt, falls modprobe entsprechend konguriert ist. Die Verwendung von kmod ist unbedingt zu empfehlen. Bei richtiger Konguration von modprobe ist es berhaupt nicht mehr notwendig, Module manuell zu laden. Der Kern speichert zu jedem Modul, ob es automatisch entfernt werden darf, wenn es eine Zeitlang nicht bentigt worden ist. Dies gilt standardmig fr alle Module, die automatisch mittels kmod geladen worden sind, nicht aber fr Module, die manuell geladen wurden. Durch die Option -k, die von den Programmen modprobe und insmod verstanden wird, lassen sich jedoch auch manuell Module mit dieser Eigenschaft laden. Die automatisch entfernbaren Module werden bei der Ausgabe von lsmod mit dem Attribut autoclean versehen.
ltere Kerne der 2.0-Serie benutzten zum automatischen Laden von Modulen ein externes Programm (kerneld). Es wird seit den 2.2.x-Kernen nicht mehr bentigt, steht aber weiterhin zur Verfgung und wird automatisch beim Systemstart gestartet, wenn ein 2.0.x-Kern benutzt wird.
1

12.4 Module

429

Obwohl der Kern dieses Attribut speichert, entldt er Module jedoch nie selbst. Hierzu dient ebenfalls das Programm modprobe, welches alle unbenutzten und als autoclean markierten Module entldt, wenn es auf die folgende Weise aufgerufen wird: debian:~# modprobe -r Der Vorgang lsst sich durch den folgenden Eintrag in der Datei /etc/crontab automatisieren (siehe Kap. 9.3): */5 * * * * root /sbin/modprobe -rs Die Option -s bewirkt, dass Meldungen von modprobe nicht auf die Konsole geschrieben werden, sondern an den Syslog-Dmon zwecks Protokollierung weitergereicht werden. Konguration von modprobe Die zentrale Kongurationsdatei fr modprobe ist /etc/modules.conf. Die Datei wird automatisch durch das Programm update-modules erstellt. Aus diesem Grund soll /etc/modules.conf nicht von Hand bearbeitet werden. nderungen wrden beim nchsten Aufruf von update-modules verloren gehen. Das Programm update-modules erstellt die Datei /etc/modules.conf aus einer Anzahl einzelner Dateien, die sich unterhalb des Verzeichnisses /etc/modutils benden. Soll der Konguration von modprobe etwas hinzugefgt werden, so ist in diesem Verzeichnis eine Datei anzulegen, welche die Kongurationsanweisungen enthlt, und update-modules auszufhren. Debian-Pakete, die Kern-Module, fr die eine besondere Konguration notwendig ist, enthalten, legen ebenfalls in diesem Verzeichnis Kongurationsdateien an und rufen whrend ihrer Installation update-modules auf. Kongurationssyntax Zur Konguration von Modulen dient eine spezielle Kongurationssyntax, die in der Manualseite zur Datei modules.conf beschrieben ist. Neben einfachen Schlsselwrtern sind hier sogar bedingte Anweisungen mglich. Die wichtigsten Konstrukte sind: insmod_opt=Optionen Zum eigentlichen Laden von Modulen ruft modprobe das Programm insmod auf. Wenn dieses Programm in allen Fllen mit bestimmten Optionen aufgerufen werden soll, knnen diese hier mit Optionen angegeben werden. path=Pfad Die Anweisung gibt modprobe einen Pfad an, in dem nach Modulen gesucht werden soll. Die Standardverzeichnisse fr Module sind bereits

430

12 Konguration von Kern und Modulen

fest in modprobe eingebaut sind und brauchen nicht angegeben zu werden. Zustzliche path-Anweisungen werden nur bentigt, wenn Sie Module in nichtstandardmigen Verzeichnissen speichern und von dort automatisch laden wollen. Die path-Anweisung bewirkt zustzlich, dass die eingebaute Pfadkonguration nicht mehr beachtet wird, was bedeutet, dass alle Modulverzeichnisse angegeben werden mssen. Dieses Verhalten lsst sich durch die Anweisung keep berschreiben. path-Anweisungen knnen mit einer Marke (tag) versehen werden, mit denen die Module in dem angegebenen Verzeichnis einer Gruppe zugeordnet werden. Die Marke ist in eckige Klammern hinter das Schlsselwort path zu setzen. Beispiel: path[net]=/lib/modules/extra/net . alias Bezeichnung Modulname Die Anweisung bewirkt, dass modprobe das mit Modulname spezizierte Modul ldt, wenn ein Modul angefordert wird, welches den mit Bezeichnung genannten Namen trgt. Beispielsweise wird mit der Anweisung alias iso9660 isofs bewirkt, dass das Modul isofs durch das Kommando modprobe iso9660 geladen wird. In einigen Fllen fordert der Kern ber kmod Module an, deren Funktionalitt von mehreren Modulen implementiert ist. Ein Beispiel hierfr ist der Treiber fr parallele Schnittstellen, der vom Kern mit dem Namen parport_lowlevel angefordert wird, dessen Modul bei PCs jedoch den Namen parport_pc trgt. Die Anweisung alias parport_lowlevel parport_pc in der Datei /etc/modules.conf bewirkt in diesem Fall, dass modprobe automatisch das richtige Modul ldt. Es gibt zwei Spezialflle der Alias-Anweisung. Mit alias Name off, wird erzwungen, dass modprobe das mit Name angegebene Modul nie ldt. Mit alias Name null wird bewirkt, dass modprobe so tut, als htte es das mit Name genannte Modul erfolgreich geladen, obwohl es in Wirklichkeit kein Modul ldt. options Name Optionen Das mit Name bezeichnete Modul wird standardmig mit den mit Optionen genannten Optionen geladen. Die Anweisung ermglicht, Module, die bestimmte Optionen bentigen, automatisch zu laden. pre-install Name Kommando Bevor das mit Name bezeichnete Modul geladen wird, wird das mit Kommando bezeichnete Kommando ausgefhrt. install Name Kommando An Stelle des normalen insmod-Kommandos ruft modprobe das mit Kommando-bezeichnete Kommando auf, um das mit Name spezizierte Modul zu laden. post-install Name Kommando Das mit Kommando bezeichnete Kommando wird ausgefhrt, nachdem das mit Name genannte Modul geladen wurde. pre-remove Name Kommando Bevor das mit Name bezeichnete Modul entfernt wird, wird das mit Kommando bezeichnete Kommando ausgefhrt. remove Name Kommando An Stelle des normalen rmmod-Kommandos ruft modprobe das mit Kommando-bezeichneten Kommando auf, um das mit name spezizierte Modul zu entfernen.

12.5 Allgemeine Kernparameter

431

post-remove Name Kommando Das mit Kommando bezeichnete Kommando wird ausgefhrt, nachdem das mit Name genannte Modul entfernt wurde. Beispiele fr Modulkongurationen nden Sie im Verzeichnis /etc/modutils. Denken Sie daran, update-modules aufzurufen, wenn Sie neue Modulkongurationsdateien angelegt oder bestehende verndert haben.

12.5 Allgemeine Kernparameter


root=Gertedatei ber diesen Parameter wird dem Kern mitgeteilt, auf welchem Datentrger sich das Rootdateisystem bendet. Dies ist normalerweise eine Festplattenpartition, kann aber auch eine Ramdisk sein. Der Parameter ist fr den Start des Kerns unbedingt erforderlich. Er muss entweder durch den Bootloader, manuell am Bootprompt oder mit dem Programm rdev (S. 850) festgelegt werden. Beispiel: root=/dev/hda2. ro Der Kern wird angewiesen, das Rootdateisystem nur zum Lesen zu ffnen. Dies ist erforderlich, damit das Rootdateisystem whrend des Systemstarts auf Fehler berprft werden kann. Nach der berprfung wird das Rootdateisystem im weiteren Verlauf des Systemstarts zum Lesen und Schreiben geffnet. Mit LILO wird dieser Parameter ber den Eintrag read-only in LILOs Kongurationsdatei (/etc/lilo.conf ) festgelegt. Alternativ wird mit rw bewirkt, dass der Kern das Rootdateisystem zum Lesen und Schreiben ffnet (LILO: read-write). Diese Einstellung ist nicht zu empfehlen. mem=Speichergre Es kommt vor, dass der Kern die Menge des im Rechner vorhandenen Arbeitsspeichers (RAM) nicht richtig feststellt. In solchen Fllen wird er mit diesem Parameter auf die tatschliche Gre hingewiesen. Der mit Speichergre angegebenen Zahl kann der Buchstabe k (Kilobyte) oder m (Megabyte) folgen. Die Angabe ist dann in der entsprechenden Einheit vorzunehmen. Beispiel: mem=256m. Mit neueren Kernen (2.4.x) ist die Angabe des vorhandenen Speichers normalerweise nicht notwendig. Falsche (zu hohe) Angaben fhren in der Regel zu Systemabstrzen. init=Programm Nach seiner Startphase ruft der Kern das Programm init auf, das den weiteren Verlauf des Systemstarts kontrolliert. Mit diesem Parameter wird dem Kern angegeben, an Stelle von init ein anderes Programm aufzurufen. Dadurch kann nach dem Start des Kerns eine Shell aufgerufen werden, wenn das System ansonsten nicht mehr startfhig ist. Beispiel: init=/bin/bash. Dadurch ist es mglich, ohne Passwort mit den Rechten des Verwalters auf den Rechner zuzugreifen. kbd-reset Der Tastaturcontroller soll normalerweise vom BIOS whrend des Systemstarts zurckgesetzt werden. Bei einigen fehlerhaften BIOS funktioniert dies jedoch nicht. Mit diesem Parameter setzt der Kern den Tastaturcontroller beim Start zurck.

432

12 Konguration von Kern und Modulen

no387 Moderne Intel-386-kompatible Prozessoren sind mit einem mathematischen Coprozessor ausgestattet. Wenn dieser defekt ist, kann Linux mit diesem Parameter dazu gebracht werden, ihn nicht zu benutzen, obwohl er erkannt worden ist. Der Kern muss dann mit der Option Math emulation bersetzt worden sein. maxcpus=Anzahl Legt bei Multiprozessorsystemen fest, wieviele Prozessoren initialisiert und benutzt werden sollen. Standardmig verwendet Linux alle CPUs. panic=Sekunden Im Falle einer Kern-Panik, einem internen Fehler im Kern, der so schwerwiegend ist, dass alle Prozesse angehalten werden, gibt Linux eine Fehlermeldung aus und wartet, bis das System manuell neu gestartet wird. Dieser Parameter bewirkt, dass das System nach der mit Sekunden angegebenen Anzahl von Sekunden automatisch neu gestartet wird. Der Wert 0 bewirkt, dass das System nicht neu gestartet wird (Standardeinstellung). Beispiel: panic=30. no-hlt Wenn das System nichts zu tun hat, fhrt Linux normalerweise die hltInstruktion aus, die den Prozessor in einen stromsparenden und wenig Wrme erzeugenden Schlafmodus versetzt. Einige Prozessoren (frhe Modelle der Intel 486DX100-Reihe) haben mit dieser Instruktion Probleme. Mit dem Parameter no-hlt fhrt Linux diese Instruktion nicht aus, sondern wartet stattdessen in einer Endlosschleife. reboot=w Wenn der Kern den Rechner neu startet, fhrt er einen Kaltstart durch, bei dem das BIOS erneut einen Speichertest macht und alle Hardwarekomponenten zurcksetzt. Mit reboot=w wird beim Neustart ein Warmstart durchgefhrt, bei dem die Hardware nicht zurckgesetzt wird und kein Speichertest stattndet. Neustarts bentigen somit weniger Zeit. Bestimmte Hardwarekomponenten erfordern jedoch einen Kaltstart, um zu funktionieren. no-scroll Schaltet die Mglichkeit ab, auf der Textkonsole mit der Tastenkombination S HIFT-S EITE - RAUF zurckzublttern. mca-pentium Dieser Parameter ist bei IBM-Microchannel-Rechnern vom Typ Modell 95 notwendig, um einen Systemstillstand beim Start des Kerns zu vermeiden. reserve=Speicheradresse,Gre[,Speicheradresse,Gre,...] Eine Reihe von Hardwaretreibern versucht beim Systemstart automatisch festzustellen, welche Ein-/Ausgabeadressen (IO-Ports) die von ihnen gesteuerte Hardware benutzt. Dabei werden die in Betracht kommenden Adressen getestet. Der Vorgang wird Autoprobing genannt. Er ermglicht die automatische Initialisierung von Treibern ohne Angabe zu verwendender Ressourcen ber Parameter. Es kommt dabei jedoch vor, dass ein Treiber beim Autoprobing auf eine Adresse zugreift, die von einer anderen Hardwarekomponente benutzt wird, fr die noch kein Treiber installiert wurde. In ungnstigen Fllen interpretiert die betreffende Hardwarekomponente die zum Aufspren einer anderen Komponenten an sie geschickten Befehle falsch und fngt an, verrckt zu spielen. Mit dem reserve-Parameter werden bestimmte Adressen vom Probing ausgeschlossen. Der Treiber, der die reservierte Adresse benutzt, muss dann mit ei-

12.6 Parameter fr Treiber

433

nem anderen Parameter explizit auf die zu verwendende Adresse hingewiesen werden (er kann sie ebenfalls nicht per Autoprobing herausbekommen). Dem Parameter muss mit Speicheradresse die Basisadresse des auszuschlieenden Bereichs und mit Gre seine Gre bergeben werden. Die beiden Angaben drfen sich mehrmals wiederholen, um mehrere Adressbereiche vom Probing auszuschlieen. Beispiel: reserve=0x340,32 aha152x=0x340,10 Mit dem ersten Parameter wird verhindert, dass irgendein Treiber im Adressbereich von 0x340 bis 0x35f nach Hardwarekomponenten sucht. Mit dem zweiten Parameter wird dem Treiber aha152x explizit mitgeteilt, die Hardware an dieser Stelle zu suchen. single Bei diesem Parameter handelt es sich nicht um einen Kernparameter. Er wird nach dem Start des Kerns an das Programm init bergeben. Das Programm startet den Rechner im Single-User-Modus, wenn es mit dem Parameter single aufgerufen wird (siehe auch Kapitel 13).

12.6 Parameter fr Treiber


In diesem Abschnitt werden wichtige Parameter fr Treiber aufgelistet und beschrieben. Treiberoptionen, die zusammen mit einem Parameter in eckigen Klammern angegeben werden, sind optional. Die folgenden Optionen knnen sehr vielen Treibern bergeben werden. Sie werden deshalb hier und nicht fr jeden Treiber einzeln erklrt. Adresse Mit diesem Parameter wird angegeben, welche Speicheradresse ein Gert fr die Ein- und Ausgabe benutzt (IO-Port oder IO-Adresse). IRQ Hiermit wird der von einem Gert verwendete Interrupt speziziert. DMA Gibt den von einem Gert zu verwendenden DMA-Kanal an. par Gibt bei SCSI-Adaptern an, ob zur Kommunikation mit SCSI-Gerten Parittswerte benutzt werden sollen. Der Wert 1 fr par bedeutet, dass Paritt benutzt werden soll, 0 bedeutet keine Paritt. SCSI-ID Gibt bei SCSI-Adaptern an, welche SCSI-ID der Adapter hat. blicherweise ist dies die ID 7. Weiterfhrende Hinweise zu vielen Parametern nden Sie im BootpromptHOWTO (/usr/share/doc/HOWTO/en-txt/BootPrompt-HOWTO.txt.gz, Paket doclinux-txt) sowie im Dokumentationsverzeichnis des Kernquellcodes. Im Zweifelsfall lohnt es sich auch, einmal direkt in die Quellcodedatei eines Treibers zu sehen. Dort nden sich oft Erklrungen zu Parametern in Form von Kommentaren. 12.6.1 (E)IDE-Festplatten und -CDs Der (E)IDE-Treiber untersttzt eine Anzahl von Optionen, mit denen sowohl die (E)IDE-Adapter selbst als auch die angeschlossenen Gerte konguriert werden. In der Regel ist die Angabe von Parametern nicht erforderlich.

434

12 Konguration von Kern und Modulen

Die meisten Rechner sind heute mit zwei IDE-Adaptern ausgestattet, an die sich jeweils zwei Gerte anschlieen lassen, wobei eines als Master und eines als Slave betrieben wird. Viele Parameter des IDE-Treibers lassen sich zur Laufzeit mit dem Programm hdparm (S. 808) einstellen. Der Treiber ist in der Datei Documentation/ide.txt im Quellcodeverzeichnis des Kerns dokumentiert. idebus=Geschwindigkeit Weist den IDE-Treiber darauf hin, mit welcher Geschwindigkeit der VL- oder PCI-Bus betrieben werden soll. Mgliche Werte sind 20, 25, 33 und 66 MHz. Im Zweifelsfall sollte 33 MHz benutzt werden. Adapter-Parameter Parameter fr den oder die IDE-Adapter werden durch ein Schlsselwort bestehend aus den Buchstaben ide und der Adapternummer eingeleitet (z. B. ide0= oder ide1=). Es knnen mehrere Parameter benutzt werden, die verschiedene Einstellungen des gleichen Adapters spezizieren. Im folgenden wird idex= verwendet. Der Buchstabe x ist durch die Nummer des Adapters auszutauschen, fr den die Einstellung gelten soll. idex=noprobe Verhindert, dass der Treiber den mit x bezeichneten Adapter benutzt. idex=Adresse[,Kontrollregister[,Interrupt]] Gibt IO-Adresse, Adresse des Kontrollregister und Interrupt des mit x bezeichneten Adapters an. bliche Werte fr die Basisadresse sind 0x1f0 und 0x170, fr Kontrollregister 0x3f6 und 0x376 sowie die Interruptnummern 14, 15, 11 und 10. idex=autotune Weist den Treiber an, die Geschwindigkeit fr Datentransfers auf den hchsten, von allen angeschlossenen Gerten untersttzten, Wert zu setzten. Die Option kann mit lteren IDE-Adaptern zu Problemen fhren. idex=noautotune Der Treiber versucht nicht, die Geschwindigkeit selbst festzulegen. Dies ist die Voreinstellung fr alle Adapter, mit Ausnahme von CMD640-basierten IDE-Adaptern. idex=reset Der Adapter wird whrend der Initialisierung zurckgesetzt. idex=serialize Es werden keine zeitgleichen Operationen auf dem mit x bezeichneten und dem nchsten Adapter durchgefhrt. idex=dma Der Treiber versucht die Benutzung von DMA automatisch zu kongurieren. Die folgenden Parameter knnen nur fr den ersten Adapter angegeben werden. Sie dienen dazu, den Treiber auf einen bestimmten fehlerhaften Chipsatz hinzuweisen. Wenn einer dieser Parameter benutzt wird, drfen die Einstellungen fr IOAdresse und Kontrollregister nicht verndert werden. ide0=dtc2278 Untersttzung fr DTC2278-basierte Adapter. ide0=ht6560b Untersttzung fr HT6560B-basierte Adapter. ide0=cmd640_vlb Untersttzung fr CMD640-basierte Adapter, die ber den Vesa-Local-Bus (VLB) angeschlossen sind. Der Parameter muss bei solchen Adaptern angegeben werden, damit sie erkannt werden.

12.6 Parameter fr Treiber

435

ide0=qd6580 Untersttzung fr QD6580-basierte Adapter. ide0=ali14xx Untersttzung fr ALI14xx-basierte Adapter. Gerte-Parameter Parameter, mit denen Einstellungen fr an einen IDE-Adapter angeschlossene Gerte verndert werden, werden mit einem Schlsselwort bestehend aus den Buchstaben hd und einem weiteren Buchstaben, welcher das Gert speziziert, angegeben. Beispiele sind hda=, um eine Einstellung fr das erste Gert zu treffen, oder hdd= fr Einstellungen am vierten Gert (dem zweiten Gert am zweiten Adapter). Im folgenden wird hdx verwendet. Der Buchstabe x ist anzupassen. hdx=none Das durch x reprsentierte Gert ist nicht vorhanden. Der Parameter kann benutzt werden, um zu verhindern, dass Fehler bei der Suche nach nicht vorhandenen Gerten auftauchen. hdx=noprobe Das durch x reprsentierte Gert ist vorhanden, der Treiber soll jedoch nicht danach suchen. hdx=nowerr Das WRERR_STAT-Bit soll bei diesem Gert ignoriert werden. hdx=cdrom Bei dem mit x bezeichneten Gert handelt es sich um ein CDLaufwerk. Der Parameter ist zu verwenden, wenn das CD-Laufwerk nicht automatisch erkannt wird. hdx=Zylinder,Kpfe,Sektoren Gibt die Geometrie der mit x genannten Festplatte an. Notwendig, wenn der Treiber die Festplattengeometrie falsch erkennt. hdx=autotune Weist den Treiber an, das Gert mit der hchsten mglichen Geschwindigkeit zu betreiben. Der Parameter kann Probleme mit einigen lteren, fehlerhaften IDE-Adaptern verursachen. hdx=slow Nach jedem Zugriff auf das spezizierte Gert werden lngere Pausen eingelegt. Nur verwenden, wenn das betreffende Gert anderweitig nicht zu betreiben ist. Beispiel: ide0=autotune ide1=autotune ide1=reset hda=1111,255,63 hdc=cdrom Diese Parameter weisen den Kern an, die Geschwindigkeit des ersten und des zweiten IDE-Adapters automatisch zu optimieren. Der zweite Adapter soll nach der Initialisierung zurckgesetzt werden. Das erste Gert am ersten Adapter ist eine Festplatte mit der Geometrie 1111 Zylinder, 255 Kpfe und 63 Sektoren. Das erste Gert am zweiten Adapter ist ein CD-Laufwerk. Wenn der Treiber als Modul geladen wird, muss den Parametern das Schlsselwort options= vorangestellt werden. Alle Parameter mssen dann in einer durchgehenden Zeichenkette bergeben werden. Kommata sind durch Semikolons zu ersetzen. Beispiel: debian:~# modprobe ide options="ide0=autotune hda=1111;255;63"

436

12 Konguration von Kern und Modulen

12.6.2 Diskettenlaufwerke Der Treiber fr Standard-Diskettenlaufwerke wird ber den Parameter oppy= konguriert. Dem Schlsselwort ist eine von verschiedenen Optionen nachzustellen. Wenn mehrere Optionen bentigt werden, muss der oppy-Parameter mehrmals angegeben werden. Die Parameter sind in der Datei /drivers/block/README.fd im Quellcodeverzeichnis des Kerns dokumentiert. floppy=0,daring Das Diskettenlaufwerk wird besonders vorsichtig benutzt. Der Parameter kann Probleme bei fehlerhaften Laufwerken vermeiden. floppy=[Adresse,]two_fdc Teilt dem Treiber mit, dass es im Rechner zwei Diskettenlaufwerkcontroller gibt. Optional kann mit Adresse die IO-Adresse des zweiten Controllers bergeben werden. floppy=thinkpad IBM-Laptops vom Typ Thinkpad mssen mit diesem Parameter benutzt werden, weil die Diskettenlaufwerke in diesen Rechnern anders geschaltet sind. floppy=nodma Es soll kein DMA fr Datentransfers benutzt werden. Der Parameter ist beispielsweise bei Laptops vom Typ HP Omnibook erforderlich. floppy=broken_dcl Weist den Treiber an, die Disk-Change-Line (dcl) nicht zu verwenden. Es wird dann bei jedem Zugriff auf eine Diskette davon ausgegangen, dass die Diskette gewechselt wurde. floppy=nofifo Schaltet den FIFO-Baustein des Controllers ab. floppy=IRQ,irq Gibt mit IRQ den vom Controller benutzten Interrupt an. floppy=DMA,dma Gibt mit DMA den vom Controller benutzten DMA-Kanal an. Beispiel: floppy=0,daring floppy=thinkpad Wenn der Treiber als Modul geladen wird, ist das Schlsselwort oppy= nur einmal aufzufhren. Alle Parameter mssen dann in einer durchgehenden Zeichenkette bergeben werden. Beispiel: debian:~# modprobe floppy "floppy=0,daring thinkpad" 12.6.3 SCSI-Subsystem Allgemeine Parameter max_scsi_luns=Anzahl Einige SCSI-Gerte (Small Computer Systems Interface) knnen mehrere logische Gerte (logical unit) beinhalten. Dies wird normalerweise fr jedes SCSI-Gert bei der Initialisierung geprft. Das Problem dabei ist jedoch, dass einige fehlerhafte Gerte bei dieser Prfung falsch reagieren und das System durcheinander bringen. Mit Anzahl wird angegeben, nach wievielen logischen SCSI-Gerten bei jedem Gert gesucht wird. Beispiel: max_scsi_luns=1.

12.6 Parameter fr Treiber

437

st=Puffergre,Schwellenwert[,Maximale Pufferanzahl] Dieser Parameter gibt dem Treiber fr SCSI-Bandlaufwerke die Gre des zu verwendenden Datenpuffers (Puffergre) in Kilobyte, den Schwellenwert, bei dessen berschreiten der Inhalt des Puffers auf Band geschrieben wird (Schwellenwert) in Kilobyte und die maximale Anzahl von Datenpuffern (Maximale Pufferanzahl) an. Beispiel: st=64,60,2. Parameter fr spezielle SCSI-Adapter Adaptec AHA151x, AHA152x, AIC6260, AIC6360, Soundblaster 16 SCSI u. a. aha152x=Adresse[,IRQ[,SCSI-ID[,rec[,par]]]] Dieser SCSI-Chip bendet sich in vielen billigen SCSI-Adaptern und oft auf Soundkarten mit SCSI-Interface. Einige der SCSI-Karten mit diesem Chip besitzen ein eigenes SCSI-BIOS und werden automatisch erkannt. Bei den anderen ist es notwendig, zumindest mit Adresse die verwendete Speicheradresse und mit IRQ den verwendeten Interrupt anzugeben. Fr rec knnen die Werte 1 oder 0 bergeben werden. Damit wird gesteuert, ob der Adapter Disconnect/Reconnect untersttzen soll. Wenn der Treiber als Modul geladen wird, ist der Parameter in derselben Form zu bergeben. Hier ist es mglich, auch einen Parameter fr einen zweiten Adapter desselben Typs zu bergeben. Dazu ist das Schlsselwort aha152x1= an Stelle von aha152x= zu verwenden. Beispiel: debian:~# modprobe aha152x aha152x=0x340,10 aha152x1=0x300,11 Das Kommando ldt das Treibermodul und weist es an, zwei SCSI-Adapter dieses Typs zu steuern, welche die angegebenen Ressourcen benutzen. Adaptec AHA1540 und AHA1542 aha154x=Adresse[,buson,busoff[,DMA Geschwindigkeit]] Mit den Parametern buson und busoff wird festgelegt, wie lange der ISA-Bus durch den Adapter belegt wird. Die voreingestellten Werte sind 11 s (buson) und 4 s (busoff ). Mit DMA Geschwindigkeit wird festgelegt, wie schnell Daten ber den DMA-Kanal geschickt werden. Voreinstellung ist 5 MB/s. Adaptec AHA274x, AHA284x, AHA294x, AIC7xxx u. a. aic7xxx=option[,option ...] Dies ist ein Treiber fr einen weitverbreiteten SCSI-Chip, der auch auf vielen Mainboards mit eingebauter SCSIUntersttzung vorhanden ist. Er wird automatisch erkannt, die Angabe von Optionen ist in den meisten Fllen nicht notwendig. Optionen knnen in beliebiger Reihenfolge angegeben werden. Ihnen kann ein Wert folgen, der vom Optionsnamen durch einen Doppelpunkt zu trennen ist.

438

12 Konguration von Kern und Modulen

extended Aktiviert die bersetzung der Festplattengeometrie (extended:1 oder extended) oder schaltet sie ab (extended:0). no_reset Verhindert, dass der SCSI-Bus whrend der Initialisierung des Treibers zurckgesetzt wird (no_reset oder no_reset:1). Die Option kann bei manchen Systemen einen Hnger whrend des Starts vermeiden. verbose Erzeugt zustzliche Status- und Fehlerausgaben des Treibers. reverse_scan Wenn mehr als ein SCSI-Adapters dieses Typs in den Rechner eingebaut ist, wird die Reihenfolge, in der die Adapter gefunden werden, durch die Option umgekehrt. Adapter mit ausgeschaltetem BIOS werden immer als letzte erkannt. pci_parity PCI-Parittsprfung lst keine Probleme, kann aber bei fehlerhaften PCI-Chipstzen eine Menge falscher Fehlermeldungen erzeugen. Die Parittsprfung wird mit pci_parity eingeschaltet. Mit pci_parity:1 wird Parittsprfung mit umgekehrter Polaritt benutzt. Beispiel: aic7xxx=extended:1,verbose,no_reset:1. AdvanSys SCSI-Adapter advansys=Adresse1[,Adresse2[,Adresse3[,Adresse4]]] Dem Treiber knnen bis zu vier IO-Adressen bergeben werden, an denen nach einem AdvanSys-Adapter gesucht werden soll, der ber den ISA-Bus mit dem Rechner verbunden ist. Wenn der Treiber als Modul geladen wird, kann mit dem Parameter asc_ioag= angegeben werden, ob automatisch nach dem Adapter gesucht werden soll (1) oder nicht (0). Die Liste der zu durchsuchenden Adressen wird mit dem Parameter asc_ioport= bergeben. Beispiel: debian:~# modprobe advansys asc_ioflag=0 asc_ioport=0x110,0x330 Always IN2000 SCSI-Adapter in2000=Option1[,Option2 ...] Dem Treiber knnen in beliebiger Reihenfolge verschieden Optionen bergeben werden. Den meisten folgt ein Wert, der von dem Optionsnamen durch einen Doppelpunkt zu trennen ist. ioport:Adresse Teilt dem Treiber mit Adresse die zu verwendende IO-Adresse mit. noreset Verhindert das Zurcksetzen des SCSI-Busses whrend der Initialisierung des Treibers. nosync:Bitmaske Mit Bitmaske wird ein Wert bergeben, der eine Bitmaske darstellt, bei der die ersten sieben Bit den sieben SCSI-Gerten entsprechen. Ist eines dieser Bits auf 1 gesetzt, ndet die Synchronisationsverhandlung mit dem entsprechenden Gert nicht statt. disconnect:Wert Mit Wert wird angegeben, ob Trennungen erlaubt werden. disconnect:0 Trennungen werden nicht erlaubt. disconnect:1 Trennungen

12.6 Parameter fr Treiber

439

werden in bestimmten Fllen erlaubt (Voreinstellung). disconnect:2 Trennungen werden immer erlaubt. Beispiel: in2000=ioport:0x220,noreset AMD AM53C974 SCSI-Adapter AM53C974=Adapter-ID,Gert-ID,Transferrate,Transfermodus Dem Treiber kann ber die Parameter mitgeteilt werden, welche Transferrate und welcher Transfermodus zur Kommunikation mit einem bestimmten Gert zu verwenden ist. Dazu ist mit Adapter-ID die SCSI-ID des Adapters (normalerweise 7), mit Gert-ID die SCSI-ID des betreffenden Gerts, mit Transferrate die Transferrate in Megahertz (3 - 10 MHz, Voreinstellung ist 5 MHz) und mit Transfermodus der maximale Offset anzugeben. Der Wert 0 stellt asynchrone Kommunikation ein. Der Parameter AM53C974= ist mehrmals zu wiederholen, um Einstellungen fr mehrere angeschlossene Gerte vorzunehmen. Beispiel: AM53C974=7,2,8,15 (das Gert mit der SCSI-ID 2 soll mit einer Transferrate von 8 MHz und einem Offset von 15 Bit betrieben werden. BusLogic SCSI-Adapter BusLogic=Option1[,Option2 ...] Dem Treiber kann eine Anzahl von Optionen in beliebiger Reihenfolge bergeben werden. Zu einigen Optionen muss ein Wert angegeben werden, der von dem Optionsnamen durch einen Doppelpunkt zu trennen ist. Wenn mehrere Adapter in dem Rechner vorhanden sind, kann der Parameter BusLogic mehrmals wiederholt werden, um mehrere Adapter zu kongurieren. IO:Adresse Gibt die zu verwendende IO-Adresse an (Nur fr ISA-Karten). NoProbeISA Auf dem ISA-Bus wird nicht nach Adaptern dieses Typs gesucht. NoProbePCI Auf dem PCI-Bus wird nicht nach Adaptern dieses Typs gesucht. Eine Anzahl weiterer Parameter nden Sie am Ende der Datei drivers/scsi/BusLogic.c im Quellcodeverzeichnis des Kerns. Beispiel: BusLogic=IO:0x230,NoProbePCI. EATA SCSI-Adapter eata=Adresse1[,Adresse2[,Adresse3[,Adresse4]]] Dem Treiber knnen bis zu vier IO-Adressen bergeben werden, an denen nach dem Adapter gesucht werden soll. Future Domain TMC-8xx und TMC-950 SCSI-Adapter tmc8xx=Adresse,IRQ Der Treiber sucht whrend der Initialisierung nach dem SCSI-BIOS auf diesen Karten. Wenn die Karte kein eigenes BIOS hat oder das BIOS nicht erkannt wird, mssen die zu verwendende IO-Adresse mit Adresse und der Interrupt mit IRQ angegeben werden.

440

12 Konguration von Kern und Modulen

Future Domain TMC-16xx, TMC-3260 und Adaptec AHA-2920 SCSI-Adapter fdomain=Adresse,IRQ,SCSI-ID Der Treiber erkennt die betreffenden SCSI-Adapter normalerweise anhand des SCSI-BIOS auf den Karten. Wenn der Treiber als Modul geladen wird, wird die Basisadresse mit dem Parameter port_base bergeben. Beispiel: debian:~# modprobe fdomain port_base=0x300 IOMEGA ZIP-Lauf werke fr die parallele Schnittstelle ppa=Adresse Diese Laufwerke sind mit einem internen SCSI-Adapter ausgestattet und werden deswegen ber einen SCSI-Treiber betrieben. Liegt der Treiber als Modul vor, wird die Basisadresse mit dem Parameter ppa_base bergeben. Beispiel: debian:~# modprobe ppa ppa_base=0x378 NCR5380-basierte SCSI-Adapter ncr5380=Adresse,IRQ,DMA Fr Karten, die keinen Interrupt benutzen, kann der IRQ-Wert 255 benutzt werden. Der IRQ-Wert 254 bewirkt, dass der Treiber versucht, selbst den richtigen Interrupt zu nden. NCR53c400-basierte SCSI-Adapter ncr53c400=Adresse,IRQ Auch bei diesem Treiber knnen fr IRQ die Werte 255 (kein Interrupt) und 254 (automatische Interrupterkennung) benutzt werden. NCR53c406A-basierte SCSI-Adapter ncr53c406a=Adresse[,IRQ[,fastpio]] Fr IRQ kann der Wert 0 benutzt werden, wenn der Adapter keinen Interrupt benutzt. Wenn fr fastpio der Wert 0 eingesetzt wird, verwendet der Adapter keinen schnellen PIO-Modus. Pro Audio Spectrum (16) SCSI-Adapter pas16=Adresse,IRQ Dieser Treiber bedient die SCSI-Adapter auf Pro-AudioSpectrum Soundkarten. Es handelt sich dabei um einen NCR5380 SCSI-Chip. Wird fr IRQ der Wert 255 gewhlt, verwendet der Treiber keinen Interrupt. Die IO-Adresse ist normalerweise 0x388. Seagate ST-0x SCSI-Adapter st0x=Adresse,IRQ

12.6 Parameter fr Treiber

441

Trantor T128-basierte SCSI-Adapter t128=Adresse,IRQ Achtung: Trantor 130B SCSI-Adapter werden nicht mit diesem Treiber, sondern mit dem Treiber ncr53c400 betrieben. Ultrastor 14F und 34F SCSI-Adapter uf14-34f=Adresse1[,Adresse2 ...] Dem Treiber kann eine Liste von IO-Adressen bergeben werden, an denen nach dem Adapter gesucht werden soll. Western Digital WD7000 SCSI-Adapter wd7000=IRQ,DMA,Adresse 12.6.4 Ethernet-Adapter Abhngig davon, ob ein Treiber fr eine Ethernetkarte als Modul oder als fester Kernbestandteil vorliegt, unterscheidet sich die Form der Parameterbergabe vollstndig. Die Treiber fr Ethernetkarten liegen beim Standardkern in Form von Modulen vor. Parameter fr Ethernetkarten-Treiber im Kern Fr fest in den Kern einkompilierte Treiber gibt es einen einzigen Parameter ether=, der fr alle Treiber gilt. Wenn sich mehrere Karten im Rechner benden und fr diese Karten Treiber im Kern vorhanden sind, so ist der Parameter ether= mehrfach zu verwenden. ether=IRQ,Adresse[,Option1[,Option2 ...],Name Alle Ethernetkarten benutzen eine IO-Adresse und einen Interrupt. Auerdem wird ihnen vom Kern ein Name zugeteilt. Die ersten beiden Angaben werden mit IRQ und Adresse vorgenommen. Die Namen lauten eth0 fr die erste Karte, eth1 fr die zweite usw. Wenn fr IRQ oder Adresse der Wert 0 angegeben wird, bedeutet dies, dass die Werte automatisch festgestellt werden sollen (was nicht bei allen Karten funktioniert). Mit Option1, Option2 usw. lassen sich kartenspezische Angaben machen. Standardmig sucht der Kern beim Start nur nach einer Netzkarte. Wenn auch eine zweite Karte gefunden werden soll, ist folgender Parameter zu verwenden: ether=0,0,eth1 Weil nach der ersten Karte (eth0) automatisch gesucht wurde, wird dem Kern hiermit mitgeteilt, die zweite Karte (eth1) zu suchen. Wenn fr die erste Ethernetkarte Angaben ber IO-Adresse und IRQ vorgenommen werden sollen und nach der zweiten Karte automatisch gesucht werden soll, wren folgende Parameter denkbar: ether=15,0x280,eth0 ether=0,0,eth1

442

12 Konguration von Kern und Modulen

Parameter fr Ethernetkarten-Treibermodule Wenn Treibermodule fr Ethernetkarten eingebunden werden sollen, kann den Modulen in der Regel die IO-Basisadresse (eingeleitet mit dem Schlsselwort io=) sowie der benutzte Interrupt (irq=) bergeben werden. Zustzlich gibt es einige kartenspezische Angaben. Zum Laden des Treibers fr SMC-Ultra-Karten kann folgendes Kommando dienen: debian:~# modprobe smc-ultra io=0x300 irq=10 Der interne Name der Karte wird dann vom Kern automatisch festgelegt (eth0 fr die erste Karte, eth1 fr die zweite usw.). Weitere Informationen enthlt das EthernetHOWTO (/usr/share/doc/HOWTO/en-txt/Ethernet-HOWTO.txt.gz, Paket doc-linuxtext). Wenn Sie das Programm modconf zum Laden von Modulen verwenden, nden Sie dort nach Auswahl eines Moduls in den meisten Fllen Beschreibungen der verfgbaren Optionen. 12.6.5 Muse und Rollkugeln Fr serielle oder PS/2-Muse und -Rollkugeln werden keine Parameter bentigt. Den Treibern fr Busmuse muss erforderlichenfalls der IRQ mitgeteilt werden. Busmuse bmouse=IRQ Mit IRQ wird der Interrupt bergeben. Microsoft-Busmuse msmouse=IRQ Mit IRQ wird der Interrupt bergeben. Verwenden Sie diesen Parameter nicht fr normale (serielle) Microsoft-kompatible Muse. 12.6.6 Parallele Schnittstellen Die parallelen Schnittstellen werden zum einen von einem Lowlevel-Treiber angesteuert (bei PCs wird dieser mit dem Modul parport_pc zur Verfgung gestellt). Zum anderen stehen neben Lowlevel-Treibern verschiedene Treiber fr Gerte zur Verfgung, die sich an parallele Schnittstellen anschlieen lassen, zum Beispiel das Modul lp fr Drucker. Lowlevel-Treiber (parport_pc) parport=Adresse,IRQ Gibt mit Adresse und IRQ IO-Adresse und IRQ einer parallelen Schnittstelle an. Der Parameter kann wiederholt werden, um Angaben fr mehrere parallele Schnittstellen vorzunehmen. Der Parameter parport=0 bewirkt, dass die Untersttzung fr parallele Schnittstellen abgeschaltet wird. Mit parport=auto erkennt der Kern die verwendeten Ressourcen selbststndig.

12.6 Parameter fr Treiber

443

Das Schlsselwort auto kann auch fr den zu verwendenden Interrupt angegeben werden. Mit dem Wort none fr IRQ wird eine parallele Schnittstelle so konguriert, dass kein Interrupt benutzt wird. Beispiel: parport=0x378,7 parport=0x278,auto. Wenn der Treiber als Modul geladen wird, werden die Optionen folgendermaen bergeben: Hinter dem Schlsselwort io= werden alle IO-Adressen in ihrer Reihenfolge aufgefhrt und hinter dem Schlsselwort irq= die Interrupts. Beispiel: debian:~# modprobe parport_pc io=0x378,0x278 irq=7,auto Druckertreiber (lp) lp=Schnittstelle Dem Treiber wird mit Schnittstelle der Name der zu verwendenden Schnittstelle bergeben. Die Namen lauten parport0 fr die erste Schnittstelle, parport1 fr die zweite usw. Der Parameter kann mehrmals wiederholt werden, um mehrere Schnittstellen explizit fr die Verwendung mit dem lp-Treiber zu kongurieren. Beispiel: lp=parport0 lp=parport1. Wenn der Treiber als Modul geladen wird, ist hinter dem Schlsselwort parport eine Liste der Schnittstellennummern zu bergeben. Beispiel: debian:~# modprobe lp parport=0,1 12.6.7 ltere (proprietre) CD-Laufwerke CD-Laufwerke in neueren Rechnern sind in der Regel ber die IDE- oder SCSISchnittstelle mit dem Rechner verbunden. Alte CD-Laufwerke benutzen hingegen oft eigene Interface-Karten oder eine Schnittstelle auf der Soundkarte. Fr diese Laufwerke werden eigene Treiber bentigt. Sie werden auch durch eigene Gertedateien reprsentiert. Mehr Informationen hierzu nden Sie im CD-HOWTO (/usr/share/doc/HOWTO/en-txt/CD-HOWTO.txt.gz, Paket doc-linux-text) sowie im Verzeichnis Documentation/cdrom im Quellcodeverzeichnis des Kerns. Unabhngig davon, ob diese Treiber sich fest im Kern benden oder als Modul vorliegen, sind CD-Parameter in den meisten Fllen mit derselben Syntax anzugeben. 12.6.8 Soundkarten Es ist zwar mglich, Treiber fr Soundkarten fest in den Kern zu kompilieren, jedoch wird hiervon dringend abgeraten. Die Syntax, mit der den Soundkartentreibern Parameter bergeben werden, ist komplex, und auerdem gehren Soundkarten nicht zu den Gerten, die zum Starten des Systems bentigt werden. Wer sich fr die Parametersyntax fr Soundtreiber am Bootprompt interessiert, sei auf das BootpromptHOWTO verwiesen.

444

12 Konguration von Kern und Modulen

Die modulare Sounduntersttzung besteht aus einigen Modulen, welche die allgemeine Infrastruktur im Kern bereitstellen. Diese mssen geladen werden, bevor der karten- oder chipspezische Treiber geladen wird. Bei der Verwendung von modprobe geschieht dies automatisch. Die Namen dieser allgemeinen Module sind soundcore, soundlow und sound. In vielen Fllen muss daraufhin die Untersttzung fr bestimmte Funktionen oder Chips geladen werden. So bendet sich auf Soundblaster-kompatiblen Karten normalerweise ein UART401-Chip, weswegen das Modul uart401 geladen sein muss, bevor der Soundblaster-Treiber geladen werden kann. Der kartenspezische Treiber wird im nchsten Schritt geladen. Dabei ist es erforderlich, die von der Karte verwendeten Hardwareressourcen anzugeben, also IO-Adresse, Interrupt und verwendete DMA-Kanle. Bei vielen Modulen ist es nicht notwendig, alle verfgbaren Parameter tatschlich zu verwenden. Manche Karten besitzen besondere Eigenschaften, sind aber ansonsten baugleich mit einem anderen Typ. Fr solche Eigenschaften steht ein zustzliches Modul zur Verfgung, welches nach dem Kartentreiber geladen werden kann. So werden Karten vom Typ Soundblaster AWE(32) wie die meisten Soundblaster-Karten vom Treiber im Modul sb angesteuert. Fr den Sequencer auf diesen Karten steht jedoch ein zustzliches Modul awe_wave zur Verfgung. Plug-and-Play-Soundkarten mssen zunchst mit dem Programm isapnp konguriert werden, bevor die Soundtreiber geladen werden knnen. Weitere Hinweise zu Treibern fr Soundkarten nden Sie in Kapitel 11.3.5 auf Seite 410.

12.7 Konguration von ISA-PNP-Karten


Plug-and-Play-Karten (PnP-Karten), die ber den ISA-Bus mit dem Rechner verbunden sind, mssen mit dem Programm isapnp initialisiert werden, bevor sie mit Linux benutzt werden knnen.
Das PnP-Protokoll wurde entwickelt, um eine automatische Konguration von ISAKarten zu ermglichen. Solche Karten knnen in den meisten Fllen nicht sicher vom Betriebssystem erkannt und konguriert werden, sondern sind durch Jumper (kleine Stecker auf der Karte) fr die Verwendung bestimmter Systemressourcen (IO-Adressen, Interrupts, DMA-Kanle usw.) zu kongurieren. Dem Betriebssystem muss beim Laden des Treibers fr die entsprechende Karte mitgeteilt werden, welche Ressourcen sie benutzt. Mit dem PnP-Protokoll ist es mglich, die Gerte zu befragen, welche Ressourcen sie verwenden knnen. Nachdem die Information fr alle PnP-Gerte vorliegt, entscheidet das Betriebssystem, wie es die Ressourcen auf die Karten verteilt, und teilt diesen dann mit, welche Ressourcen sie zu verwenden haben. Eine ISA-PnP-Karte kann erst benutzt werden, wenn sie diese Information erhalten hat. Eine Reihe von ISA-Karten lsst sich durch Jumper (manchmal auch mit einem DOSProgramm) als PnP- oder Nicht-PnP-Gert kongurieren. Wenn Sie mit der PnPKonguration Schwierigkeiten haben, sollten Sie das betreffende Gert als gewhnliches Gert ohne PnP betreiben. Grundstzlich gibt es zwei Mglichkeiten zur Konguration von PnP-Gerten. Zum einen sind moderne BIOS in der Lage, die Konguration durchzufhren. Die Gerte sind dann bereits fertig konguriert, wenn das Betriebssystem gestartet wird, und die Treiber knnen sofort geladen werden. Einige BIOS bieten die automatische Konguration von PnP-Gerten zwar an, fhren sie jedoch nicht korrekt aus. Zum anderen kann die

12.7 Konguration von ISA-PNP-Karten

445

PnP-Konguration direkt vom Betriebssystem vorgenommen werden. Sie muss stattnden, bevor die Treiber fr PnP-Gerte geladen werden. Diese Mglichkeit kann auch zur Neukonguration von PnP-Gerten benutzt werden, nachdem das BIOS Einstellungen vorgenommen hat. Der Menpunkt im BIOS-Setup lautet meist Plug and Play aware OS?. Wenn hier N(o) ausgewhlt wird, versucht das BIOS selbst, die PnP-Konguration vorzunehmen. Bei alleiniger Verwendung von Linux ist dies meist die beste Einstellung. Bei Verwendung von MS-Windows ist es jedoch besser, die PnP-Konguration dem Betriebssystem zu berlassen. Wenn sich beide Betriebssysteme auf dem Rechner benden, ergibt sich hieraus ein gewisser Konikt. Es wird dann empfohlen, die PnP-Konguration nicht vom BIOS ausfhren zu lassen.

Die Konguration von ISA-PnP-Gerten wird unter Linux nicht direkt vom Kern ausgefhrt, sondern durch Programme, die nach dem Start des Kerns aufgerufen werden. Zur Einrichtung der Programme sind drei Schritte notwendig: 1. Mit dem Programm pnpdump werden PnP-Gerte befragt, welche Hardwareressource sie verwenden knnen. Das Programm kann gleichzeitig versuchen, sinnvolle Vorschlge zur Konguration der Gerte zu machen. Das Ergebnis wird in eine Datei geschrieben. 2. Die Datei sollte berprft werden, ob alle PnP-Gerte erkannt wurden und ob die Vorschlge zur Konguration nicht zu Konikten mit anderen Gerten fhren. 3. Schlielich wird das Programm isapnp aufgerufen, das die Angaben aus der Kongurationsdatei einliest und die PnP-Gerte konguriert. Die ersten beiden Schritte brauchen nur ein einziges Mal ausgefhrt zu werden, whrend der letzte Schritt nach jedem Systemstart wiederholt werden muss. Die Programme pnpdump und isapnp sowie die dazu gehrende Dokumentation sind in dem Paket isapnptools enthalten. Whrend der Installation des Pakets wird auch ein Startskript (/etc/init.d/isapnp) installiert, das die Konguration von PnP-Karten whrend des Systemstarts automatisch durchfhrt. Voraussetzung ist, dass sich die gltigen Kongurationsdaten in der Datei /etc/isapnp.conf benden. Achtung: Treiber fr PnP-Karten, die mit isapnp konguriert werden, drfen nicht fest in den Kern integriert sein, weil das dazu fhren wrde, dass die entsprechende Hardware gesucht wird, bevor sie mit isapnp initialisiert worden ist. Solche Treiber mssen immer in Form von Modulen vorliegen. Die Module drfen erst geladen werden, wenn isapnp ausgefhrt worden ist und die Hardware initialisiert hat (siehe Seite 373). 12.7.1 Erzeugen einer Kongurationsdatei fr isapnp Das Programm pnpdump gibt die mglichen Kongurationsdaten gefundener PnPHardware standardmig in einem Format aus, in dem alle Kongurationen auskommentiert sind. Unverndert lsst sich die Ausgabedatei nicht mit isapnp benutzen; es wrde keine Karte konguriert werden. Wird pnpdump jedoch mit der Option -c aufgerufen, versucht das Programm selbst, eine brauchbare Konguration zu erstellen. Dabei werden alle Systemressourcen bercksichtigt, die bereits von anderen

446

12 Konguration von Kern und Modulen

Treibern bentigt werden. Falls Sie Gerte benutzen, deren Treiber nur gelegentlich geladen sind, sollten diese aktiviert werden, bevor pnpdump aufgerufen wird. Ansonsten wrde pnpdump davon ausgehen, dass die Ressourcen fr die entsprechenden Gerte frei sind und sie PnP-Gerten zuweisen. Dies wrde spter zu Konikten fhren. Auf der anderen Seite drfen whrend der PnP-Konguration keine Treibermodule fr PnP-Gerte geladen sein. Eine Ausgangskonguration wird erstellt, indem pnpdump folgendermaen aufgerufen wird: debian:~# pnpdump -c > isapnp.conf Dadurch werden die Kongurationsdaten in die Datei isapnp.conf im Arbeitsverzeichnis geschrieben. Die Datei kann mit einem Texteditor bearbeitet werden. 12.7.2 Aufbau der Kongurationsdatei fr isapnp Alle Zeilen, die nicht leer sind oder an deren Beginn kein Doppelkreuz steht (Kommentare), haben fr isapnp eine Bedeutung. Am Anfang der Datei bendet sich eine Prambel mit allgemeinen Einstellungen fr das Programm. Die Prambel kann so aussehen:
# (DEBUG) (READPORT 0x0203) (ISOLATE) (IDENTIFY *)

Hier bestimmt die Anweisung (READPORT 0x0203), welche IO-Adresse zur Kommunikation mit PnP-Gerten benutzt werden soll. Normalerweise sollte die Angabe beibehalten werden. Das Schlsselwort (ISOLATE) bewirkt, dass alle PnPKarten zurckgesetzt werden, bevor pnpdump sie konguriert. Durch (IDENTIFY *) wird bestimmt, dass alle PnP-Gerte erkannt werden sollen. Das Schlsselwort (DEBUG) ist auskommentiert, um die Ausgabe zustzlicher Informationen zu verhindern. Nach der Prambel folgen Eintrge fr die Gerte. Dabei kommt es vor, dass mehrere Gerte aufgelistet werden, obwohl in dem Rechner nur eine einzige PnPKarte vorhanden ist. Die Ursache ist, dass sich auf der Karte mehrere logische Gerte benden. So kann sich auf einer Soundkarte zustzlich ein Sequencer und ein Joystick-Anschluss benden. Jeder Eintrag fr ein Gert beginnt mit einer Zeile, die folgendermaen aussieht: (CONFIGURE CTL0043/54664 (LD 0 Entscheidend ist hier das Schlsselwort CONFIGURE, die nachfolgenden Ziffern sind gertespezisch. Die Eintrge fr ein Gert enden mit diesen beiden Zeilen:
(ACT Y) ))

12.7 Konguration von ISA-PNP-Karten

447

Die Zeile mit (ACT Y) darf nicht auskommentiert sein, das Gert wird sonst nicht konguriert. Zwischen den Start- und Endzeilen fr ein Gert benden sich mehrere Blcke, die durch Leerzeilen getrennt sind. Jeder dieser Blcke enthlt eine mgliche Konguration fr das betreffende Gert. Sie knnen einen Block auswhlen und diesen anpassen. Alle anderen Blcke mssen auskommentiert sein. In der Regel benden sich ber jedem Eintrag Kommentare, die beschreiben, welche Werte fr eine bestimmte Einstellung zulssig sind:
# Start dependent functions: priority acceptable # IRQ 5, 7 or 10. # High true, edge sensitive interrupt (by default) (INT 0 (IRQ 5 (MODE +E)))

Im Beispiel wird angegeben, dass fr die Einstellung IRQ 5 auch die Werte 7 oder 10 mglich sind. Die Information bezieht sich nur darauf, welche Werte von dem Gert untersttzt werden. Wenn Sie die Datei manuell bearbeiten, sind Sie selbst dafr verantwortlich, dass es keine Konikte mit anderen Gerten gibt. hnliche Eintrge wie oben gezeigt nden sich auch fr IO-Adressen und DMAKanle. Das Men zur Auswahl eines DMA-Kanals sieht so aus:
# Next DMA channel 5, 6 or 7. # 16 bit DMA only # Logical device is not a bus master # DMA may not execute in count by byte mode # DMA may execute in count by word mode # DMA channel speed in compatible mode (DMA 1 (CHANNEL 5))

Der Angabe ist zu entnehmen, dass fr die Einstellung CHANNEL 5 auch die Werte 6 oder 7 erlaubt sind. Ein vollstndiger Eintrag fr eine Soundblaster-AWE32-PnP-Karte knnte folgendermaen aussehen (um die Kommentare gekrzt):
(CONFIGURE CTL0043/54664 (LD 0 (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 1)) (DMA 1 (CHANNEL 5)) (IO 0 (BASE 0x0220)) (IO 1 (BASE 0x0330)) (IO 2 (BASE 0x0388)) (ACT Y) ))

12.7.3 Testen der Konguration Wenn Sie sich sicher sind, dass die Kongurationsdatei korrekt ist, oder die automatisch erstellte Datei ausprobieren wollen, geben Sie folgendes Kommando ein, um die PnP-Gerte zu initialisieren: debian:~# isapnp isapnp.conf

448

12 Konguration von Kern und Modulen

Dadurch werden die PnP-Gerte anhand der Informationen in der Datei isapnp.conf im Arbeitsverzeichnis konguriert. Wenn alles gut geht, sollte fr jedes kongurierte Gert sinngem die folgende Ausgabe erscheinen:
Board 1 has Identity e5 ff ff ff ff 70 00 8c 0e: CTL0043 Serial No -1 [checksum e5] CTL0070/-1[0]Audio Ports 0x220 0x330 0x388; IRQ5 DMA1 DMA5 --- Enabled OK

Wenn jedoch eine Meldung wie die folgende erscheint, konnte ein Gert nicht konguriert werden: Fatal - ressource conflict allocating 16 bytes Ursache ist vermutlich, dass eine Ressource, die Sie in der Kongurationsdatei ausgewhlt haben, bereits anderweitig im System benutzt wird. Sollten die Gerte erfolgreich initialisiert worden sein, knnen nun die Treibermodule fr die Gerte geladen werden. Dabei ist es normalerweise erforderlich, mit den Treiberparametern dieselben Ressourcen anzugeben, die mit isapnp konguriert wurden. Um das Treibermodul sb.o mit den im Beispiel vorgenommenen Einstellungen zu laden, benutzen Sie dieses Kommando: debian:~# modprobe sb irq=5 dma=1 dma16=5 io=0x220 mpu_io=0x330 Wenn das Gert funktioniert, sollten Sie die Datei isapnp.conf in das Verzeichnis /etc kopieren. Dadurch wird sichergestellt, dass die PnP-Gerte bei knftigen Systemstarts automatisch, mit den vorgenommenen Einstellungen initialisiert werden (gegebenenfalls eine alte Version der Datei vorher sichern): debian:~# cp isapnp.conf /etc/isapnp.conf Durch diesen Schritt wird nur die PnP-Konguration automatisiert. Um die bentigten Treibermodule ebenfalls automatisch mit den richtigen Parametern zu laden, mssen Sie das Programm modprobe kongurieren. Dies ist unabhngig von PnP und wird in Abschnitt 12.4.2, Seite 428 beschrieben. 12.7.4 Weiterfhrende Informationen Das Paket isapnptools kommt mit einer ausfhrlichen Dokumentation, die sich im Verzeichnis /usr/share/doc/isapnptools bendet. Darin enthalten ist auch eine Sammlung von Antworten auf hug gestellte Fragen (Datei isapnpfaq.txt.gz). Im Paket doc-linux-text ist das Plug-and-Play-HOWTO enthalten, das sich in der Datei /usr/share/doc/HOWTO/en-txt/Plug-and-Play-HOWTO.txt.gz bendet. Das Dokument liefert vor allem Hintergrundinformationen zu PnP. Die Homepage der isapnptools ist unter der Web-Adresse http://www.roestock.demon. co.uk/isapnptools/ zu erreichen. Dort liegen aktualisierte Fassungen der Programme sowie zustzliche Informationen.

13 Der Startvorgang von Debian GNU/Linux

Nachdem die Startphase des Kerns abgeschlossen ist, bindet dieser das Rootdateisystem ein und ruft das Programm /sbin/init auf, das den weiteren Verlauf des Systemstarts kontrolliert und aktiv bleibt, bis das System heruntergefahren ist. init ist der erste voll ausgebildete Prozess auf einem Linux/UNIX-System, trgt deswegen die Prozess-ID 1 und ist der Urahne aller weiteren Prozesse.

13.1 Runlevel
Debian GNU/Linux verwendet das System-V-Konzept verschiedener Runlevels. Unter einem Runlevel wird ein Zustand des Systems verstanden, in dem bestimmte Prozesse ausgefhrt werden. Whrend der Laufzeit des Systems kann zwischen den Runlevels gewechselt werden, ohne das System neu starten zu mssen. So knnte ein Rechner regelmig fr zwei verschiedene Aufgaben genutzt werden, nmlich zum einen als HTTP- und FTP-Server und zum anderen als Arbeitsplatzrechner. Im ersten Fall mssen die genannten Serverdienste ausgefhrt werden, eine grasche Benutzeroberche wird jedoch nicht bentigt. Im zweiten Fall wird eine grasche Benutzeroberche gewnscht, jedoch sollen die Serverdienste nicht ausgefhrt werden. Fr diesen Rechner lassen sich zwei Runlevels denieren, in denen die unterschiedlichen Dienste oder Prozesse ausgefhrt werden. Neben diesen normalen Runlevels gibt es drei besondere, nmlich einen, in dem das System heruntergefahren wird, einen, in dem es neu gestartet wird, und den Single-User-Modus, in dem sich nur der Verwalter anmelden kann und keine weiteren Prozesse wie Serverdienste ausgefhrt werden. Normalerweise gibt es insgesamt sieben Runlevels, welche die Nummern 0-6 tragen. 0 entspricht dabei dem Anhalten des Systems, 1 dem Single-User-Modus und 6 dem Neustart des Systems. Die Runlevels 2-5 sind die gewhnlichen Runlevels. Per Voreinstellung wird nach dem Systemstart in den Runlevel 2 geschaltet. Bei einer unvernderten Debian GNU/Linux Installation unterscheiden sich die Runlevels 2 und 3 nicht. Es werden dieselben Prozesse ausgefhrt, und deswegen macht es keinen Unterschied, in welchem dieser beiden Runlevels sich das System

450

13 Der Startvorgang von Debian GNU/Linux

bendet. Die beiden Runlevels 4 und 5 unterscheiden sich ebenfalls nicht voneinander, wohl aber von 2 und 3. In den Runlevels 2 und 3 stehen die sechs virtuellen Konsolen zur Verfgung, auerdem kann ber andere Schnittstellen wie serielle Terminals oder Faxmodems auf den Rechner zugegriffen werden. In den Runlevels 4 und 5 steht nur eine Konsole zur Verfgung; die Programme zur Kommunikation ber andere Schnittstellen sind nicht aktiv. Weiterhin aktiv sind in den Runlevels 4 und 5 die Netzverbindungen, sodass der Zugriff auf den Rechner ber das Netz mglich ist. Diese Runlevels eignen sich eher fr Rechner, mit denen nicht direkt, sondern ber das Netz gearbeitet wird.

13.2 Die Datei /etc/inittab


Das Programm /sbin/init, vom Kern aufgerufen, arbeitet die Datei /etc/inittab ab. Dort nden sich Eintrge, mit denen konguriert wird, welche Programme in welchem Runlevel auszufhren sind. Auerdem lassen sich hier Programme angeben, die bei besonderen Ereignissen wie dem Systemstart, einem Stromausfall oder der Bettigung der Tastenkombination S TRG-A LT-E NTF ausgefhrt werden sollen. Die Datei ist folgendermaen aufgebaut: Leerzeilen und Zeilen, die mit einem Kommentarzeichen (#) beginnen, haben keine Bedeutung. Jede andere Zeile speziziert Prozesse, die beim Wechsel in einen neuen Runlevel oder einem anderen Ereignis gestartet werden sollen. Solche Zeilen bestehen aus vier Feldern, die durch Doppelpunkte ohne Leerzeichen voneinander getrennt werden. Die Felder haben folgende Bedeutung: 1. Im ersten Feld wird dem Eintrag eine Kennung (ID) gegeben. Kennungen bestehen aus maximal vier Zeichen. Eintrge, mit denen ein getty-Prozess gestartet wird, sollten als Kennung die Nummer der virtuellen Konsole tragen, auf welcher der Prozess gestartet werden soll. 2. Im zweiten Feld wird bestimmt, in welchem Runlevel der Prozess laufen soll. Es drfen mehrere Runlevels angegeben werden. So bedeutet die Zeichenkette 23, dass der Prozess in den Runlevels 2 und 3 laufen soll. 3. Im dritten Feld wird durch ein Schlsselwort angegeben, wie der Prozess ausgefhrt werden soll. Die wichtigsten der Schlsselwrter sind: wait Der angegebene Prozess wird einmal gestartet, wenn in den Runlevel gewechselt wird. init wartet, bis der Prozess beendet ist. once Der angegebene Prozess wird einmal ausgefhrt, wenn in den Runlevel gewechselt wird. Es wird nicht auf das Ende des Prozesses gewartet. sysinit Der Prozess wird zum Systemstart ausgefhrt. init wartet, bis der Prozess beendet ist, bevor es weitere Programme aufruft. boot Der Prozess wird zum Systemstart ausgefhrt, nachdem ein mit sysinit angegebener Prozess beendet ist. Auf die Beendigung dieses Prozesses wird nicht gewartet. bootwait Wie boot mit dem Unterschied, dass auf die Beendigung dieses Prozesses gewartet wird.

13.2 Die Datei /etc/inittab

451

ctrlaltdel Der Prozess wird ausgefhrt, sobald init das Signal SIGINT empfngt. Dies passiert dann, wenn die Tastenkombination S TRG-A LT-E NTF bettigt wird. Gewhnlich wird durch diesen Eintrag das Programm shutdown (S. 864) aufgerufen. respawn Der Prozess wird neu gestartet, sobald er aus irgendeinem Grund gestorben ist. 4. Im vierten Feld wird der Name des zu startenden Programms angegeben. Argumente, die dem Programm beim Aufruf bergeben werden sollen, knnen durch Leerzeichen getrennt hinter dem Namen des Programms stehen. 13.2.1 Festlegen des Standardrunlevels Der Runlevel, in den automatisch nach dem Systemstart gewechselt wird, wird durch die folgende Zeile festgelegt: id:2:initdefault: Hier wird mit dem Runlevel-Feld festgelegt, welcher Runlevel als Standard benutzt werden soll (im Beispiel 2). 13.2.2 Systeminitialisierung Whrend des Systemstarts wird von init ein Skript oder Programm aufgerufen, welches das System initialisiert und fr die Benutzung vorbereitet. Dies wird durch den folgenden Eintrag festgelegt: si::sysinit:/etc/init.d/rcS Die Angabe eines Runlevel ist hier nicht notwendig, das zweite Feld ist leer. 13.2.3 Dauerhaft auszufhrende Programme (respawn) Zur Laufzeit des Systems muss es mglich sein, sich an den virtuellen Konsolen anzumelden. Deswegen wird nach Eintritt in die Runlevels 2 bis 5 das Programm /sbin/getty einmal oder mehrmals gestartet:
1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 ... 6:23:respawn:/sbin/getty 38400 tty6

Das Programm (getty) hat die Aufgabe, ein Terminal zu initialisieren und in diesem Terminal auf eine Benutzeranmeldung zu warten. Nachdem ein Benutzer seinen Namen eingegeben hat, startet getty das Programm login, welches das Passwort des Benutzers erfragt und berprft. Wenn die berprfung des Passworts erfolgreich ist, startet login die Standardshell des Benutzers. Das zu verwendende Terminal sowie die Bitrate, mit der mit dem Terminal kommuniziert werden soll, werden dem

452

13 Der Startvorgang von Debian GNU/Linux

Programm getty als Argumente bergeben. Das Programm versteht einige Optionen, die in der Manualseite beschrieben sind. Beim Start der Programme login sowie der Standardshell wird der Programmcode des jeweiligen getty bzw. login-Prozesses durch den Code des zu startenden Programms ersetzt, das heit, nach dem Start eines Programms besteht der Prozess weiterhin, jedoch mit einem anderen Programmcode (siehe exec (S. 577)). Wenn die Standardshell beendet wird, weil sich der Benutzer abmeldet, wird der Prozess beendet. Damit dies nicht dazu fhrt, dass an dem Terminal keine erneute Anmeldung mglich ist, berwacht init die mit dem Schlsselwort respawn gestarteten Prozesse und startet sie erneut, falls sie beendet wurden. Die Folge ist, dass nach Beendigung der Shell des angemeldeten Benutzers ein neuer getty-Prozess gestartet wird und eine erneute Anmeldung mglich ist. Neben dem normalen getty-Programm, das fr die Verwendung an der Konsole gedacht ist, stehen weitere getty-hnliche Programme zur Verfgung, die serielle Schnittstellen berwachen und somit die Anmeldung ber ein Modem ermglichen. Aber auch Aufgaben wie Anrufbeantworter (Paket: mgetty-voice) oder Faxempfang (Pakete mgetty-fax oder hylafax-server) werden durch getty-hnliche Prozesse gesteuert. Hier ist es ebenfalls notwendig, eine spezische Schnittstelle des Rechners zu initialisieren, sie zu berwachen und bestimmte Aktionen auszulsen, sobald ein Zugriff auf den Rechner ber diese Schnittstellen erfolgt. Debian-Pakete, die zustzliche getty-Programme beinhalten, fgen der Datei /etc/inittab normalerweise Beispieleintrge zu, die jedoch auskommentiert sind. Um die Programme zu verwenden, ist die Datei zu editieren. 13.2.4 Aktionen beim Wechsel des Runlevel Beim Wechsel von einem Runlevel in einen anderen wird das Skript /etc/init.d/rc aufgerufen. Dem Skript wird als Argument die Nummer des Runlevel bergeben, in den gewechselt werden soll. Dies wird durch folgende Zeilen in /etc/inittab festgelegt:
l0:0:wait:/etc/init.d/rc 0 ... l6:6:wait:/etc/init.d/rc 6

Programme, die whrend eines Runlevel dauerhaft ausgefhrt werden sollen und mit dem Schlsselwort respawn versehen sind, werden beim Wechsel von einem Runlevel in den nchsten beendet, sofern sie fr den neuen nicht vorgesehen sind. Programme, die fr beide Runlevels deniert sind, werden nicht unterbrochen. 13.2.5 Single-User-Modus Fr den Single-User-Modus bendet sich folgender Eintrag in der Datei /etc/inittab: ~~:S:wait:/sbin/sulogin

13.3 Benutzung von init

453

Der Eintrag bewirkt, dass nach Eintritt in diesen Runlevel das Programm /sbin/sulogin aufgerufen wird. Das Programm erfragt das Passwort des Verwalters und ruft eine Shell auf, wenn dieses richtig eingegeben wird. Wenn der Prozess beendet wird, wird wieder zurck in den Standardrunlevel geschaltet. Im Single-User-Modus werden nur wenige Programme im Hintergrund ausgefhrt, alle Serverdienste sind gestoppt, und es besteht keine Mglichkeit, dass auer dem Verwalter irgendjemand mit dem Rechner arbeiten kann. Der Modus ist deswegen geeignet, kritische Arbeiten am System auszufhren. Wenn die Festplattenpartition, auf der sich die Home-Verzeichnisse der Benutzer benden, berprft werden muss, sollte das System zunchst in den Single-User-Modus gebracht werden. Die Partition kann dann sicher aus dem Dateisystem ausgehngt und berprft werden. Gelegentlich ist es notwendig, das System so zu starten, dass es in den SingleUser-Modus und nicht in einen gewhnlichen Runlevel bootet. Hierzu dient der Bootparameter single. Der Parameter wird vom Kern an init bergeben und weist das Programm an, direkt in den Single-User-Modus zu starten.

13.3 Benutzung von init


Zur Kommunikation mit dem Prozess init steht das Kommando telinit zur Verfgung. Mit telinit kann init veranlasst werden, den Runlevel zu wechseln oder die Kongurationsdatei /etc/inittab erneut zu lesen. Die Datei /sbin/telinit ist ein symbolischer Link auf das Programm init selbst. Es ist auch mglich, das Programm init direkt zur Kommunikation mit dem eigentlichen init-Prozess zu verwenden. 13.3.1 Wechsel des Runlevel Um in einen anderen Runlevel zu wechseln, ist telinit oder init mit der Bezeichnung des Runlevel, in den gewechselt werden soll, aufzurufen. Beispielsweise wird mit dem folgenden Kommando in den Runlevel 4 geschaltet: debian:~# init 4 Auf diese Weise kann auch ein Systemabschluss (Runlevel 0) oder ein Neustart (Runlevel 6) durchgefhrt werden. Der Single-User-Modus (Runlevel 1) kann alternativ mit der Bezeichnung S angegeben werden. Es wird dann direkt in den SingleUser-Modus geschaltet. Dienste und Programme, die in dem vorherigen Runlevel ausgefhrt wurden, werden dann nicht beendet: debian:~# init S Normalerweise sollte in den Single-User-Modus mit dem Kommando init 1 gewechselt werden.

454

13 Der Startvorgang von Debian GNU/Linux

13.3.2 Erneutes Einlesen der Konguration Die meisten Programme lesen ihre Kongurationsdatei nur beim Start. Um solche Programme mit einer neuen Konguration zu verwenden, beendet man sie und startet sie dann erneut. Dies ist bei init nur mglich, wenn das System neu gestartet wird. Um dies im Falle einer Vernderung der Datei /etc/inittab zu vermeiden, wird init durch folgendes Kommando dazu gebracht, die Kongurationsdatei erneut zu lesen: debian:~# init Q Programme, die nach der Vernderung dieser Datei als im aktuellen Runlevel dauerhaft ausfhrbar eingetragen sind, also mit dem Schlsselwort respawn versehen sind, werden durch dieses Kommando automatisch gestartet, wenn sie nicht schon aufgrund der alten Konguration gestartet waren. Programme, die in der alten Konguration als dauerhaft ausfhrbar eingetragen waren, in der neuen jedoch fehlen, werden beendet. 13.3.3 Ersetzen des Programms init Whrend der Software-Aktualisierung kommt es vor, dass auch fr init eine neue Programmversion installiert wird. Damit diese nicht erst beim nchsten Systemstart ausgefhrt wird, sondern sofort nach der Installation, muss folgendes Kommando benutzt werden: debian:~# init U Die Folge ist, dass das laufende init-Programm sich selbst durch das neu installierte ersetzt. Dieser Schritt wird bei der Aktualisierung des Debian-Pakets (sysvinit) automatisch vollzogen. 13.3.4 Fehler Wie beschrieben versucht init dauerhaft auszufhrende Programme sofort neu zu starten, wenn sie beendet wurden. Wenn jedoch ein Programm nicht gestartet werden kann, etwa weil eine von diesem Programm bentigte Bibliothek auf dem System nicht vorhanden ist, ist die Folge, dass init immer wieder versucht, das Programm zu starten. Hierdurch wird unntigerweise eine hohe Systemlast erzeugt. Aus diesem Grund beobachtet init, wie oft es Programme neu starten muss, und gibt gegebenenfalls die folgende Fehlermeldung aus: init: Id "xx" respawning too fast: disabled for 5 minutes Dabei wird fr xx die ID aus dem Eintrag in der Datei /etc/inittab ausgegeben. Daraufhin versucht init fr fnf Minuten nicht mehr, dass Programm zu starten. Der Verwalter hat dann die Mglichkeit, das Problem zu beheben, indem er entweder den Eintrag aus der Kongurationsdatei entfernt oder sicherstellt, dass das angegebene Programm ausfhrbar ist.

13.4 Start- und Stopskripte

455

13.4 Start- und Stopskripte


Wie erwhnt fhrt init beim Systemstart das Programm /etc/init.d/rcS aus. Hierbei handelt es sich um ein Shellskript, das die Aufgabe hat, alle Skripte oder Programme im Verzeichnis /etc/rcS.d aufzurufen1. In diesem Verzeichnis bendet sich eine Reihe von Skripten, von denen jedes fr einen bestimmten Teil des Systemstarts zustndig ist. Die Skripte werden in ASCII-alphabetischer Reihenfolge ihrer Namen ausgefhrt. Die Namen dieser Skriptdateien mssen mit dem Buchstaben S (fr Start) beginnen, damit sie von rcS aufgerufen werden. Dem Buchstaben S folgt eine zweistellige Zahl, die die Reihenfolge des Aurufs bestimmt. Debian-Pakete, die Software fr eine bestimmte Systemkomponente beinhalten, die beim Systemstart initialisiert werden muss, knnen diesem Verzeichnis ein Skript hinzufgen, das durch den beschriebenen Mechanismus beim Systemstart automatisch ausgefhrt wird. Eine Vernderung der Datei /etc/inittab ist normalerweise nicht notwendig. Alle Startskripte benden sich in Wirklichkeit im Verzeichnis /etc/init.d. Im Verzeichnis /etc/rcS.d sind lediglich symbolische Links auf die Skripte vorhanden. Wenn ein bestimmtes Skript nicht mehr whrend des Systemstarts ausgefhrt werden soll, reicht es aus, den symbolischen Link im Verzeichnis /etc/rcS.d zu lschen. Auf keinen Fall soll das Skript selbst aus dem Verzeichnis /etc/init.d gelscht werden. Die meisten Skripte im Verzeichnis /etc/init.d mssen mit einem der Parameter start, stop oder restart aufgerufen werden. Wie die Bezeichnungen der Parameter sagen, wird eine bestimmte Systemeigenschaft mit dem Parameter start gestartet, mit stop wird sie beendet, und mit restart wird sie zunchst beendet und dann erneut gestartet. Dies dient zum Starten von Server-Programmen mit vernderter Konguration. Man ndet auch den Parameter reload zum erneuten Einlesen der Konguration ohne Unterbrechung des Prozesses. 13.4.1 Startskripte fr den Systemstart Die folgenden symbolischen Links auf die Skripte im Verzeichnis /etc/init.d sind im Verzeichnis /etc/rcS.d vorhanden: S10checkroot.sh Das Skript bindet die Swapbereiche ein und berprft das Rootdateisystem. Nach erfolgreicher Prfung wird das Rootdateisystem zu Lesen und Schreiben geffnet. S20modutils Ruft depmod (S. 790) auf, um Modulabhngigkeiten zu berechnen und ldt Module, die in der Datei /etc/modules eingetragen sind. S30checkfs.sh Prft alle Dateisysteme auer dem Rootdateisystem. S35mountall.sh Bindet alle Dateisysteme, die sich auf dem lokalen Rechner benden, mit Ausnahme des Rootdateisystems ein. S40hostname.sh Setzt den Rechnernamen dem Eintrag in der Datei /etc/hostname gleich.
1 Aus Grnden der Kompatibilitt zu lteren Versionen von Debian GNU/Linux werden die Skripte auch im Verzeichnis /etc/rc.boot aufgefhrt.

456

13 Der Startvorgang von Debian GNU/Linux

S40network Initialisiert das Netz. Es stehen zwei Methoden zur Verfgung. Zum einen dieses relativ simple Skript und zum anderen das Skript S40networking aus dem Paket netbase, das die Netzkonguration den Angaben in der Kongurationsdatei /etc/network/interfaces vornimmt. Wenn Sie das zweite Verfahren verwenden (empfohlen), sollten alle Eintrge in S40network auskommentiert sein. S45mountnfs.sh Bindet ber NFS Dateisysteme ein, die sich physikalisch auf anderen Rechnern im Netz benden. S55bootmisc.sh Fhrt einige Aufrumarbeiten durch und speichert beim Booten erzeugte Kernmeldungen in der Datei /var/log/dmesg. S55urandom Initialisiert den Zufallzahlengenerator des Kerns. Welche Skripte zustzlich ausgefhrt werden, hngt davon ab, welche Pakete auf dem System installiert sind. Viele Startskripte knnen ber die Datei /etc/default/rcS konguriert werden. Dort wird eingestellt, ob die Startskripte whrend ihrer Ausfhrung anzeigen, was sie gerade tun. Das beruhigt manche Verwalter. 13.4.2 Start- und Stopskripte fr einzelne Runlevel Neben dem Verzeichnis /etc/rcS.d existieren im Verzeichnis /etc sieben weitere Verzeichnisse, die eine hnliche Aufgabe haben. Ihre Namen lauten rc0.d, rc1.d bis rc6.d. In diesen Verzeichnissen benden sich ebenfalls symbolische Links auf Skripte im Verzeichnis /etc/init.d, die beim Wechsel in den jeweiligen Runlevel ausgefhrt werden. Beim Wechsel von einen Runlevel in einen anderen wird durch init das Skript /etc/init.d/rc ausgefhrt. Dieses Skript verhlt sich hnlich wie das beim Systemstart ausgefhrte Skript /etc/init.d/rcS. Es ruft die Skripte in dem zugehrigen rc?.dVerzeichnis auf. Es gibt einen Unterschied zwischen dem Systemstart und dem Wechsel zwischen Runlevels. Whrend beim Systemstart nur Programme gestartet oder Teile des Systems initialisiert werden, ist es beim Wechsel des Runlevel erforderlich, bestimmte Programme zu beenden. In den Verzeichnissen rc0.d bis rc6.d benden sich deswegen zum einen symbolische Links, deren Namen mit K (fr Kill) beginnen und zum anderen solche, deren Namen mit S (fr Start) beginnen. Beim Wechsel in einen neuen Runlevel werden zunchst alle Skripte, deren Link-Namen mit K beginnen, mit dem Parameter stop aufgerufen und danach die S-Skripte mit dem Parameter start. Beide Typen von Links zeigen auf dieselben Skripte im Verzeichnis /etc/init.d. Wenn das Paket gpm zur Mausuntersttzung an der Konsole installiert ist, bendet sich im Verzeichnis /etc/init.d ein Skript mit dem Namen gpm. Dieses Skript kann wie blich mit den Parametern start oder stop aufgerufen werden, wodurch die Mausuntersttzung aktiviert bzw. deaktiviert wird. In den Verzeichnissen /etc/rc2.d bis /etc/rc5.d benden sich symbolische Links auf dieses Skript, die den Namen S20gpm tragen. Diese Skripte werden beim Wechsel in die Runlevels mit dem Parameter start aufgerufen, sodass die Mausuntersttzung in diesen Runlevels

13.4 Start- und Stopskripte

457

zur Verfgung steht. In den Verzeichnissen rc0.d, rc1.d und rc6.d benden sich hingegen Links auf das gleiche Skript, die den Namen K20gpm tragen. Beim Wechsel in diese Runlevels wird das Skript mit dem Parameter stop aufgerufen, der Dienst beendet. Wichtige Startskripte, die beim Wechsel in den Standardrunlevel (2) ausgefhrt werden, sind: S10sysklogd Startet den Systemlog-Dmon und den Kernlog-Dmon. Die beiden Programme protokollieren Systemereignisse und Kernmeldungen. S11pcmcia Startet und initialisiert Programme fr PCMCIA-Hardware (PC-Cards). S18portmap Startet den Portmap-Dmon. S19nfs-common Startet Programme, die fr die Verwendung von NFS bentigt werden. S19nis Startet je nach Konguration NIS-Server- und/oder NIS-Klientprogramme fr NIS-Cluster. S20acct Startet die Protokollierung der Systembenutzung (Accounting). S20exim Startet das Mail-Transport-Programm exim. S20gpm Startet die Mausuntersttzung fr die Konsole. S20hylafax Startet das Hylafaxsystem zum Faxen. S20inetd Startet den Internet-Dmon inetd. S20isdnutils Initialisiert ISDN-Karten und startet ISDN-Programme. S20logoutd Startet das Programm zum automatischen Abmelden von Benutzern. S20lprng Startet das Druck- und Spoolsystem lprng. S20ppp Startet den PPP-(Einwahl-)Dienst, falls dieser fr den automatischen Start konguriert ist. S20quota Startet Programme zur berwachung von Speicherplatzbeschrnkungen fr Benutzer. S20samba Startet den SMB-Server, der Drucker und Verzeichnisse fr MSWindows-Rechner zur Verfgung stellt. S20xfs Startet den X11-Font-Server. S25nfs-server Startet den NFS-Server, wodurch andere Rechner nach Konguration auf Verzeichnisse dieses Rechners zugreifen knnen. S89atd Startet den at-Dmon, der mit at (S. 773) oder batch (S. 775) in Auftrag gegebene Prozesse zu gegebener Zeit ausfhrt. S89cron Startet den cron-Dmon, der Prozesse startet, die regelmig wiederkehrend ausgefhrt werden sollen. S91apache Startet den HTTP-Server apache. S99rmnologin Ermglicht gewhnlichen Benutzern die Anmeldung an der Konsole oder an virtuellen Terminals. Welche Skripte auf Ihrem System vorhanden sind, ist abhngig davon, welche Pakete installiert sind.

458

13 Der Startvorgang von Debian GNU/Linux

13.4.3 Manuelles Verwenden von Startskripten Wenn Sie einen bestimmten Dienst neu konguriert haben, ist es in der Regel notwendig, die Programme, die diesen Dienst zur Verfgung stellen, erneut zu starten. Dies lsst sich auf verschiedene Arten durchfhren. Die aufwendigste besteht darin, das ganze System neu zu starten. Einfacher ist es jedoch, das Startskript dieses Dienstes aus dem Verzeichnis /etc/init.d zu verwenden und es mit dem Parameter restart aufzurufen. Angenommen, Sie haben die Pakete lprng und magiclter installiert, um Ihren Drucker zu betreiben. Nun haben Sie eine nderung an der Datei /etc/printcap vorgenommen, in der die verfgbaren Drucker aufgelistet sind (siehe Kap. 9.2, S. 278). Sie knnen das Drucksystem danach neu starten, indem Sie folgendes Kommando eingeben: debian:~# /etc/init.d/lprng restart Selbstverstndlich knnen Sie auch die Parameter stop und start verwenden, um whrend des Betriebs einen bestimmten Dienst zu beenden oder einen Dienst zu starten, der normalerweise nicht ausgefhrt wird. Einige Startskripte stellen zustzlich den Parameter reload zur Verfgung. Der Parameter bewirkt, dass die durch solche Skripte gestarteten Programme ihre Kongurationsdateien erneut lesen, ohne gestoppt und wieder gestartet zu werden.

13.5 Verwalten der Runlevels


13.5.1 Einrichten von Start-Stop-Links Die Verzeichnisse /etc/rc0.d bis rc6.d bestimmen, welche Dienste beim Wechsel in einen Runlevel gestartet oder beendet werden. Standardmig werden alle Startskripte so installiert, dass die Dienste in den Runlevel 2 bis 5 gestartet und in den Runlevel 0, 1 und 6 beendet werden. Die Dienste stehen zur Laufzeit des Systems zur Verfgung und werden beendet, wenn das System angehalten, neu gestartet oder in den Single-User-Modus gebracht wird. Um einen Dienst in einem Runlevel nicht mehr auszufhren, reicht es, den StartLink aus dem rc?.d Verzeichnis zu entfernen. Auerdem sollte dann in diesem Verzeichnis ein Stop-Link angelegt werden, damit der Dienst beendet wird, wenn in den Runlevel gewechselt wird. Angenommen, Sie mchten in Runlevel 3 den X Display Manager xdm benutzen, der im Standardrunlevel 2 nicht aktiv sein soll. Auerdem gibt es eine Unvertrglichkeit zwischen dem Paket gpm (Mausuntersttzung fr die Konsole) und dem X-Server. Der Dienst gpm darf nicht ausgefhrt werden, wenn xdm luft. Um zu verhindern, dass xdm in Runlevel 2 ausgefhrt wird, ist folgendes Kommando einzugeben: debian:~# rm /etc/rc2.d/S99xdm Analog dazu wird mit dem nchsten Kommando verhindert, dass gpm in Runlevel 3 gestartet wird:

13.5 Verwalten der Runlevels

459

debian:~# rm /etc/rc3.d/S20gpm Nun muss ein Stop-Link fr Runlevel 2 erzeugt werden, damit xdm beendet wird, wenn in diesen Runlevel gewechselt wird. Dies geschieht mit dem Kommando ln (S. 818): debian:~# ln -s /etc/init.d/xdm /etc/rc2.d/K01xdm Ein weiterer Stop-Link muss eingerichtet werden, damit gpm beendet wird, wenn in den Runlevel 3 gewechselt wird: debian:~# ln -s /etc/init.d/gpm /etc/rc3.d/K20gpm Wie die zu lschenden Links und zu verknpfenden Skripte heien, knnen Sie leicht herausnden, indem Sie sich den Inhalt der Verzeichnisse mit ls (S. 823) anzeigen lassen. Wenn Sie sich nicht sicher sind, in welcher Reihenfolge Dienste beendet werden sollen, empehlt es sich, den Inhalt des Verzeichnisses /etc/rc0.d zu untersuchen. Aus den Namen der hier bendlichen Links lsst sich auf die Reihenfolge schlieen, mit der alle Dienste ordnungsgem beendet werden, wenn das System angehalten wird. KDE-Benutzer knnen zum Editieren von Runlevels den SysV-Runlevel-Editor benutzen. Das Programm ist in dem KDE-Paket kdeadmin enthalten (Programmname: ksysv). Eine angenehme Eigenschaft dieses Programms ist, dass es schnell einen berblick ber alle Runlevels bietet. Die Start- und Stop-Skripte im Verzeichnis /etc/init.d sind Kongurationsdateien. Es ist mglich, sie zu verndern, ohne dass sie bei einer Aktualisierung des Systems automatisch berschrieben werden. Grundstzlich ist dies jedoch in den meisten Fllen nicht zu empfehlen. Wenn Programme gestartet werden sollen, die normalerweise nicht gestartet werden und fr die keine Startskripte zur Verfgung stehen, ist in Erwgung zu ziehen, ein eigenes Startskript zu schreiben (kopieren, editieren) und zu installieren. Ein Beispiel ist in Kapitel 16.8.5, S. 567 dargestellt. 13.5.2 Einrichten von Start-Stop-Skripten Wenn Sie ein eigenes Startskript erstellt haben, muss dieses dorthin kopiert werden, wo sich auch alle anderen Skripte dieser Art benden, also in das Verzeichnis /etc/init.d. Daraufhin mssen die symbolischen Links in den verschiedenen /etc/rc?.d-Verzeichnisse erzeugt werden. Dies kann manuell geschehen oder mit dem Programm update-rc.d, das auch bei der Installation von Debian-Paketen verwendet wird. Das Programm update-rc.d kann auf folgende Arten aufgerufen werden: update-rc.d Skriptname defaults [Zahl | Zahl-start Zahl-stop] In diesem Fall werden Startlinks in den Verzeichnissen rc2.d bis rc5.d sowie Stoplinks in den Verzeichnissen rc0.d, rc1.d und rc6.d auf das mit Skriptname bezeichnete Startskript gelegt. Skriptname ist ohne Verzeichnisnamen anzugeben. Optional kann mit Zahl angegeben werden, welche Zahl die Namen der Links nach

460

13 Der Startvorgang von Debian GNU/Linux

den Buchstaben S bzw. K erhalten. Zahl muss als zweistellige Dezimalzahl angegeben werden. Damit wird festgelegt, an welcher Stelle das Skript beim Wechsel in einen Runlevel aufgerufen wird. Wenn unterschiedliche Stellen in der Reihenfolge des Aufrufs beim Starten und beim Beenden des Dienstes bentigt werden, ist die Form Zahl-start und Zahl-stop zu verwenden. Ist Zahl nicht angegeben, wird der Standardwert 20 benutzt. Wenn das selbsterstellte Skript midid in das Verzeichnis /etc/init.d kopiert worden ist, werden die notwendigen Links mit diesem Kommando erzeugt: debian:~# update-rc.d midid defaults Wenn Start- oder Stoplinks nur fr einige Runlevels angelegt werden sollen, wird update-rc.d in dieser Form aufgerufen: update-rc.d Skriptname start|stop Zahl Runlevel ... start|stop Zahl Runlevel ... Dabei ist mit start oder stop anzugeben, ob Start- oder Stoplinks erzeugt werden sollen, mit Zahl die Stelle in der Reihenfolge des Aufrufs und mit Runlevel den oder die Runlevels, fr die der Link erzeugt werden soll. Wenn das Skript midid in den Runlevels 0-3 und 6 als erstes gestoppt und in den Runlevels 4 und 5 als letztes gestartet werden soll, ist das Kommando folgendermaen zu verwenden: debian:~# update-rc.d midid start 99 4 5 stop 01 0 1 2 3 6 Der Skriptname midid ist dabei durch den tatschlichen Skriptnamen zu ersetzen. Achtung: Wenn sich bereits ein Link auf das Startskript in den rc?.dVerzeichnissen bendet, bleibt der Aufruf von update-rc.d wirkungslos. Es wird dann davon ausgegangen, dass bereits manuell lokale Einstellungen vorgenommen wurden, die nicht berschrieben werden sollen. In diesem Fall mssen Sie weitere Links ebenfalls manuell erzeugen. Um ein Startskript vollstndig zu entfernen, muss es zunchst aus dem Verzeichnis /etc/init.d gelscht werden. Die Verweise werden dann mit folgendem Kommando entfernt: debian:~# update-rc.d midid remove Auch hier muss midid durch den tatschlichen Skriptnamen ersetzt werden.

14 Verzeichnisstruktur und Dateisysteme

Viele Anwender, die zum ersten Mal mit einem UNIX-hnlichen Betriebssystem arbeiten, sind zunchst von der Vielzahl unterschiedlicher Dateien und Verzeichnisse auf dem System verwirrt. Whrend sich die Dateien einfacherer Betriebssysteme im wesentlichen in nur einem Verzeichnis auf der Festplatte benden, wird bei der Einrichtung eines Linux/UNIX-Systems eine Reihe von Verzeichnissen angelegt, die alle mehr oder weniger Teile des Betriebssystems oder der Distribution beinhalten. Es steckt aber Logik hinter der Vielfalt. Wer einfach nur ein fertig konguriertes System benutzen mchte, braucht nur zu wissen, dass sich seine eigenen Dateien in seinem Home-Verzeichnis benden. Dieses Verzeichnis ist ein Unterverzeichnis des Verzeichnisses /home und trgt den Namen des Benutzers. In Ihrem Home-Verzeichnis drfen Sie eigene Unterverzeichnisse und Dateien anlegen oder sie wieder lschen. Darber hinaus legen viele Programme in Ihrem Home-Verzeichnis Kongurationsdateien ab, in denen Ihre persnlichen Einstellungen fr diese Programme gespeichert sind. In den meisten Fllen beginnen die Namen von Kongurationsdateien mit einem Punkt. Sie werden von dem Kommando ls (S. 823) nur in Verbindung mit der Option -a angezeigt. Fr den Zugriff auf externe Datentrger wie Disketten oder CD/DVDs muss auch gewhnlichen Benutzern bekannt sein, in welches Verzeichnis diese eingebunden werden. blich ist es, Disketten in das Verzeichnis /oppy und CDs in das Verzeichnis /cdrom einzubinden. Wie dies geschieht, ist in Kapitel 5.17.2 auf Seite 139 beschrieben. Ein weiteres Verzeichnis, mit dem auch gewhnliche Benutzer gelegentlich arbeiten, ist /usr/share/doc. In Unterverzeichnissen dieses Verzeichnisses bendet sich Dokumentation zu allen installierten Debian-Paketen. Diese Unterverzeichnisse tragen dieselben Namen wie die Pakete, deren Dokumentation sie beinhalten. Zur Verwaltung des Systems sind umfassendere Kenntnisse der Verzeichnisstruktur erforderlich. Alle Kongurationsdateien benden sich im Verzeichnis /etc oder in Unterverzeichnissen davon. Im Unterschied zu den Kongurationsdateien in den Home-Verzeichnissen der Benutzer werden hier die systemweit gltigen Einstellungen vorgenommen. Viele Programme untersuchen nach ihrem Start zunchst eine Kongurationsdatei im Verzeichnis /etc und danach die spezische Kongurations-

462

14 Verzeichnisstruktur und Dateisysteme

datei des aufrufenden Benutzers. Dadurch ist es Benutzern in vielen Fllen mglich, systemweit geltende Voreinstellungen zu berschreiben. Die meisten Kongurationsdateien unter Linux/UNIX sind gewhnliche, lesbare Textdateien, die mit einem Texteditor bearbeitet werden. Ferner sind die Verzeichnisse unterhalb des Verzeichnisses /usr/local fr den Verwalter wichtig. Hier sollten lokale Programme eingerichtet werden, die nicht Bestandteil der Distribution sind.

14.1 Der File Hierarchy Standard (FHS)


Die Namen der wichtigsten Verzeichnisse sowie ihre Lage stimmen zwischen den meisten Linux-Distributionen und UNIX-Systemen berein. Sowohl die Namen als auch die Aufgaben dieser Verzeichnisse sind historisch gewachsen. Im wesentlichen richten sie sich nach Kriterien wie einfacher Verwaltung, Trennung von Verzeichnissen, in die geschrieben werden muss, von solchen, auf die nur lesend zugegriffen wird, oder der Mglichkeit, Teile der Verzeichnisstruktur von anderen Rechnern mitbenutzen zu knnen, um Festplattenplatz zu sparen. Trotz der groben bereinstimmung zwischen allen Linux- und UNIX-Systemen gibt es im Detail Unterschiede. Hierunter leiden Verwalter, die mit Systemen verschiedener Hersteller arbeiten. Aber auch die Erstellung von Software und von Installationsskripten wird durch Unterschiede im Verzeichnisbaum erschwert. Aus diesem Grund gibt es Bemhungen zur Standardisierung, deren Resultat der File Hierarchy Standard (FHS) ist, zur Zeit in der Version 2.1. Der Standard ist in dem Paket debian-policy enthalten und bendet sich nach dessen Installation im Verzeichnis /usr/share/doc/debian-policy/fhs. In dem Paket ist auch der Vorlufer des Standards enthalten, der als FSSTND (File System Standard) bezeichnet wird1 . Die Verzeichnisstruktur ab Debian GNU/Linux 2.2 sowie die Lage der einzelnen Dateien richtet sich nach dem FHS.

14.2 Namen und Aufgaben der wichtigsten Verzeichnisse


Das Wurzelverzeichnis (/) Das Verzeichnis / ist das Wurzel- oder RootVerzeichnis. Es wird vom Kern whrend des Starts eingebunden und muss whrend der gesamten Laufzeit des Systems zur Verfgung stehen. Im Gegensatz zu anderen Betriebssystemen verwenden Linux und UNIX fr Datentrger keine Laufwerksbuchstaben. Vielmehr werden alle zu verwendenden Datentrger entweder whrend des Systemstarts automatisch oder spter manuell mit dem Kommando mount (S. 835) Verzeichnissen zugeordnet, die Unterverzeichnisse des Wurzelverzeichnisses sind oder sich in Unterverzeichnissen dieser Verzeichnisse benden. Alle eingebundenen Datentrger lassen sich bequem durch den Zugriff auf die Verzeichnisse verwenden. Durch diese Eigenschaft
1 FSSTND und FHS in der neuesten Fassung sind von http://www.pathname.com/ abrufbar.

14.2 Namen und Aufgaben der wichtigsten Verzeichnisse

463

und die Verwendung symbolischer Links kann das Dateisystem sehr exibel verwaltet werden. Die Gre des Datentrgers, der fr das Wurzeldateisystem verwendet werden soll, ist abhngig davon zu whlen, welche weiteren Teile des Dateisystem sich auf anderen Datentrgern benden. /bin Dieses Verzeichnis enthlt ausfhrbare Programme (binaries), die bentigt werden, wenn auer dem Wurzelverzeichnis noch keine anderen Dateisysteme eingebunden sind. Es muss sich aus diesem Grund auf demselben Datentrger benden wie das Wurzelverzeichnis. Die Programme in diesem Verzeichnis werden zum einen bentigt, um das System zu starten, zum anderen sollten sich hier alle Programme benden, die auch im Single-User-Modus gebraucht werden. Im Gegensatz zu den Programmen in /sbin handelt es sich bei den Programmen in /bin um solche, die sowohl vom Verwalter als auch von gewhnlichen Benutzern verwendet werden. /boot Hier benden sich die Dateien, auf die whrend der Startphase des Systems zugegriffen wird, bevor das Wurzelverzeichnis eingebunden ist, beispielsweise Teile des Bootloaders und der Kern selbst. Bei Verwendung von LILO muss auf die Dateien im Verzeichnis boot ber Routinen des BIOS zugegriffen werden; das Verzeichnis sollte sich deswegen auf einer Partition benden, die ber das BIOS erreicht werden kann. /dev In diesem Verzeichnis benden sich die Gertedateien, ber die auf die Hardware des Rechners zugegriffen wird. Beispiele fr Gertedateien sind fd0 fr das ersten Diskettenlaufwerk, hda fr die erste (E)IDE-Festplatte oder sda5 fr die erste logische Partition auf der ersten SCSI-Festplatte. Eine Beschreibung aller von Linux untersttzten Gertedateien bendet sich in der Datei devices.txt im Dokumentationsverzeichnis des Kernquellcodes. Das Verzeichnis /dev muss sich auf demselben Datentrger benden wie das Wurzeldateisystem. Sollten in dem Verzeichnis andere Dateien als Gertedateien auftauchen, ist das verdchtig (nd /dev -type f ). /cdrom Dieses Verzeichnis ist nach der Basisinstallation leer und dient zum Einbinden von CDs (Einhngepunkt, mounting point). /etc Hier liegen die systemweit gltigen Kongurationsdateien fr das System selbst und fr fast alle Programme, aus Grnden der bersichtlichkeit teilweise in Unterverzeichnissen. So benden sich die Kongurationsdateien fr X11 beispielsweise im Verzeichnis /etc/X11 oder die fr den Web-Browser mozilla im Verzeichnis /etc/mozilla. Weil auf das Kongurationsverzeichnis whrend des Systemstarts zugegriffen wird, bevor andere Datentrger eingebunden werden, muss es sich auf demselben Datentrger wie das Rootdateisystem benden. /oppy Das Verzeichnis wird zum Einbinden von Disketten genutzt. /home In diesem Verzeichnis liegen die Home-Verzeichnisse gewhnlicher Benutzer. Sie tragen normalerweise die Namen der Benutzer, zu denen sie gehren. Auf Systemen mit besonders vielen Benutzerkonten ist es blich, im Verzeichnis /home Unterverzeichnisse anzulegen, welche die Anfangsbuchstaben der Benutzerkonten tragen und die Konten mit den Anfangsbuchstaben dann in diese Unterverzeichnisse zu verlegen. Das Home-Verzeichnis der Benutzerin silke wrde im Verzeichnis /home/s/silke liegen.

464

14 Verzeichnisstruktur und Dateisysteme

Das Verzeichnis /home liegt zweckmigerweise auf einer anderen Partition als das Wurzelverzeichnis. In vernetzten Umgebungen wird /home anderen Rechnern oft ber NFS zur Verfgung gestellt. Benutzer knnen dann von allen Rechnern aus das Verzeichnis einbinden und auf ihre Daten zugreifen. Wenn ein System wchst, ist es gelegentlich erforderlich, zustzliche Partitionen fr die Home-Verzeichnisse zu verwenden. Achtung: Wenn der Name des Home-Verzeichnisses eines Benutzers gendert wird, muss der Eintrag in der Datei /etc/passwd angepasst werden. /lib In diesem Verzeichnis benden sich Bibliotheken, die von den Programmen in den Verzeichnissen /bin und /sbin bentigt werden. Das Verzeichnis muss sich auf derselben Partition wie das Wurzeldateisystem benden. /lib/modules In Unterverzeichnissen dieses Verzeichnisses benden sich die vom Kern ladbaren Module. Standardmig gibt es hier fr jede installierte Kernversion ein eigenes Unterverzeichnis, das den Namen der Kernversion trgt. Die Verzeichnisse sind wiederum in Unterverzeichnisse aufgeteilt, die Module fr bestimmte Aufgabengruppen beinhalten. lost+found Ein Verzeichnis dieses Namens bendet sich im Wurzelverzeichnis aller Datentrger, die im ext2-Format formatiert sind. Es ist normalerweise leer. Seine Aufgabe besteht darin, Dateien oder Dateireste aufzunehmen, deren Platz im Dateisystem whrend einer berprfung mittels fsck nicht mehr festgestellt werden konnte. Wenn Sie in diesem Verzeichnis Dateien nden, ist das ein Zeichen dafr, dass es Probleme gegeben hat. Sie sollten die Dateien mit einem Texteditor auf ihren Inhalt hin untersuchen und gegebenenfalls zurck in das Verzeichnis verschieben, in das sie gehren. /mnt Das Verzeichnis /mnt ist gewhnlich leer. Es ist dazu gedacht, Dateisysteme einzubinden, auf die nur temporr zugegriffen wird. /opt Das Verzeichnis /opt wird whrend der Installation von Debian GNU/Linux nicht angelegt, ist jedoch im FHS vorgesehen. Das Verzeichnis ist dazu bestimmt, grere Softwarepakete aufzunehmen, die nicht Teil der Distribution sind und von eigenen Installationsprogrammen eingerichtet werden. Es sollte bei Bedarf angelegt werden. Das Verzeichnis wird in Unterverzeichnisse eingeteilt, die die Namen der zustzlichen Pakete tragen. Beispielsweise eignet sich das Verzeichnis /opt/StarOfce als Zielverzeichnis fr die Installation des OfcePakets StarOfce. Das Verzeichnis /opt darf sich auf einem anderen Datentrger als das Rootdateisystem benden. In vernetzten Umgebungen wird /opt oft von einem Rechner ber NFS zur Verfgung gestellt. /proc In dieses Verzeichnis wird whrend des Systemstarts das proc-Dateisystem eingebunden. Dabei handelt es sich um ein virtuelles Dateisystem, das den Zugriff auf verschiedene Informationen des Kerns ermglicht. Es gibt hier Unterverzeichnisse fr jeden aktuell ausgefhrten Prozess, in deren Dateien sich Informationen ber den Prozess benden. /root Das Home-Verzeichnis des Verwalters. Dieses Verzeichnis sollte sich auf demselben Datentrger wie das Wurzeldateisystem benden, damit der Verwalter seine persnlichen Dateien verwenden kann, wenn er sich im Single-UserModus anmeldet und noch keine anderen Datentrger eingebunden sind.

14.2 Namen und Aufgaben der wichtigsten Verzeichnisse

465

/sbin Hier benden sich alle die Programme, die neben den Programmen aus dem Verzeichnis /bin whrend des Systemstarts oder zur Reparatur des Systems bentigt werden. Der Unterschied zwischen /bin und /sbin besteht darin, dass die Programme in /sbin nicht von gewhnlichen Benutzern gebraucht werden. Das Verzeichnis bendet sich deswegen nicht im Suchpfad gewhnlicher Benutzer (Umgebungsvariable PATH). Das Verzeichnis /sbin muss sich auf demselben Datentrger wie das Rootdateisystem benden. /tmp Verzeichnis fr beliebige temporre Dateien. Alle Dateien in diesem Verzeichnis werden whrend des Systemstarts gelscht. Generell ist es erlaubt, auch whrend der Laufzeit des Systems in diesem Verzeichnis aufzurumen, sofern dabei keine Dateien gelscht werden, die gerade von einem Programm benutzt werden. Das Verzeichnis kann auf eine eigene Partition gelegt werden. /usr Dieses Verzeichnis enthlt eine Vielzahl von Unterverzeichnissen, in denen sich alle Teile der installierten Software benden, auf die nur lesend zugegriffen wird und die whrend des Systemstarts oder zur Reparatur des Systems nicht bentigt wird. Das Verzeichnis enthlt in seinen Unterverzeichnissen den grten Teil der durch Debian installierten Software. Die fr dieses Verzeichnis bentigte Festplattenkapazitt ist deswegen stark davon abhngig, wieviel Software auf dem System eingerichtet ist. Alle Unterverzeichnisse von /usr eignen sich dafr, auf eigene Partitionen gelegt und von mehreren gleichartigen Rechnern gemeinsam benutzt zu werden. Im Verzeichnis /usr gibt es folgende Unterverzeichnisse: /usr/bin Hier benden sich die ausfhrbaren Dateien der Programme, die von gewhnlichen Benutzern verwendet werden. Auerdem bendet sich in diesem Verzeichnis ein symbolischer Link auf das Verzeichnis /usr/X11R6/bin mit dem Namen X11, das die ausfhrbaren Dateien enthlt, die fr die Benutzung mit X11 bestimmt sind. /usr/include Enthlt die Headerdateien fr die Programmiersprachen C und C++. Das Verzeichnis enthlt einige Unterverzeichnisse mit Headerdateien fr spezische Anwendungsgebiete. Hier gibt es einen symbolischen Link mit dem Namen X11 auf das Verzeichnis /usr/X11R6/include, das die Headerdateien von X11 enthlt. /usr/lib Das Verzeichnis erfllt zwei Aufgaben. Zum einen benden sich hier viele Programmbibliotheken, die von den eingerichteten Programmen bentigt werden. Zum anderen verwenden viele Programme eigene Unterverzeichnisse dieses Verzeichnisses, in denen sich statische Daten benden, die nur von den Programmen bentigt werden und spezisch fr eine bestimmte Rechnerarchitektur sind. Programmdaten fr X11-basierte Anwendungen benden sich im Verzeichnis /usr/X11R6/lib/X11, auf das ein symbolischer Link im Verzeichnis /usr/lib zeigt. /usr/local Das Verzeichnis ist ebenso strukturiert wie das Verzeichnis /usr. Nach Durchfhrung einer Neuinstallation sind alle Unterverzeichnisse von /usr/local leer. Das Verzeichnis ist fr Software vorgesehen, die vom Verwalter manuell eingerichtet wird, beispielsweise Programme und zugehrige Dateien, die lokal aus dem Quellcode kompiliert werden. Bei der Installation von Debian-Paketen werden nie Dateien in eines der Unterverzeichnis-

466

14 Verzeichnisstruktur und Dateisysteme

se von /usr/local gelegt. Man kann sich sicher sein, dass hierhin installierte Programme und Dateien nicht whrend der Aktualisierung oder Neuinstallation von Paketen berschrieben werden. Einige Pakete legen hier spezielle Verzeichnisse an, in die der Verwalter lokal erstellte Dateien legen kann, welche die Pakete in ihrer Funktionalitt erweitern. Beispiele sind EmacsA Lisp-Dateien oder LTEX-Pakete. /usr/sbin Hier benden sich ausfhrbare Dateien, die nur vom Verwalter bentigt werden, aber weder fr den Systemstart noch zur Reparatur des Systems zwingend notwendig sind. Die Dateien in diesem Verzeichnis benden sich nicht im Suchpfad fr ausfhrbare Programme von gewhnlichen Benutzern. /usr/share Das Verzeichnis nimmt alle Bestandteile von Paketen auf, die von Programmen nicht verndert werden mssen und unabhngig von der Architektur des Rechners sind. Deswegen ist es mglich, dieses Verzeichnis gemeinsam von einem Debian i386-PC und einem Alpha-System zu benutzen. Die meisten Dateien in /usr/share liegen in eigenen Unterverzeichnissen. Die Unterverzeichnisse gehren entweder zu einem bestimmten Paket (z. B. wird whrend der Installation des Window-Managers afterstep das Verzeichnis /usr/share/afterstep angelegt) oder zu allgemeinen Daten, die von mehreren Paketen genutzt werden. Wichtige Unterverzeichnisse im Verzeichnis /usr/share sind: /usr/share/doc In Unterverzeichnissen dieses Verzeichnisses wird die Dokumentation zu den installierten Debianpaketen abgelegt. Jedes Paket hat ein eigenes Verzeichnis. Zustzlich gibt es einige besondere Verzeichnisse wie /usr/share/doc/HTML oder /usr/share/doc/HOWTO, in denen unterschiedliche Pakete Dokumentation ablegen. /usr/share/info Hier benden sich die Dateien des Dokumentationssystems GNU Info. /usr/share/man Hier liegen die Manualseiten. Sie werden in Unterverzeichnissen man1, man2 usw. abgelegt, die den Abschnitten im ManualSystem entsprechen. Auerdem benden sich hier lnder- und sprachenspezische Unterverzeichnisse, in welchen die Manualseiten in nicht-englischen Sprachen abgelegt werden. /usr/share/locale Das Verzeichnis enthlt Sprachanpassungen fr verschiedene Programme. /usr/src Debian-Pakete, die Quellcode fr Programme enthalten, legen diesen im Verzeichnis /usr/src ab. So legen beispielsweise die kernel-source-Pakete ein komprimiertes tar-Archiv mit dem Kernquellcode in dieses Verzeichnis. blicherweise enthlt das Verzeichnis /usr/src/linux den Quellcode des aktuellen Kerns; es kann sich dabei auch um einen symbolischen Link auf ein anderes Verzeichnis mit dem Kernquellcode handeln. /var In diesem Verzeichnis benden sich Dateien, auf die von Programmen lesend und schreibend zugegriffen wird. Bei den Dateien in diesem Verzeichnis handelt es sich zum Teil um Bestandteile von Paketen, die whrend des Betriebs verndert werden, und zum anderen Teil um solche, die erst zur Laufzeit des Systems

14.2 Namen und Aufgaben der wichtigsten Verzeichnisse

467

erzeugt werden. Oft ist es sinnvoll, /var auf eine eigene Partition zu legen. Hier werden groe Datenmengen zwischengespeichert (Druckdateien, Emails), was zur Folge haben kann, dass das Verzeichnis randvoll luft und weitere Schreibwnsche abblockt. Innerhalb der Rootpartition wrde das zum Stillstand des Systems fhren. Wie im Verzeichnis /usr sind die Dateien in diesem Verzeichnis in Unterverzeichnissen angeordnet, wobei sich die Aufgaben der Unterverzeichnisse unterscheiden. Die wichtigsten sind: /var/cache In Unterverzeichnissen dieses Verzeichnisses benden sich Daten, die von Programmen zwischengespeichert werden. Es handelt sich dabei um Daten, die jederzeit wieder rekonstruiert werden knnen und aufbewahrt werden, damit die Programme die Daten nicht bei jedem Aufruf neu erzeugen mssen. So benden sich beispielsweise in Unterverzeichnissen von /var/cache/man Manualseiten, die whrend einer zurckliegenden Benutzung formatiert wurden. Sie knnen dann bei der nchsten Benutzung schneller angezeigt werden. Die Daten unterhalb von /var/cache werden in der Regel nach Ablauf einer gewissen Zeit automatisch gelscht. /var/lib Hier benden sich Unterverzeichnisse einzelner Pakete, in denen diese Pakete variable Daten aufbewahren. Der Paketmanager (dpkg) bewahrt beispielsweise alle Status- und Kontrollinformationen im Verzeichnis /var/lib/dpkg sowie in Unterverzeichnissen davon auf. /var/lock In diesem Verzeichnis legen Programme Lock-Dateien (lock = Sperre) ab. Dabei handelt es sich um Dateien, deren Existenz anderen Programmen anzeigt, dass eine bestimmte Systemressource bereits in Benutzung ist. Wenn beispielsweise ber PPP eine Modemverbindung ber die erste serielle Schnittstelle /dev/ttyS0 zu einem Internetprovider aufgebaut wird, legt das Programm pppd in diesem Verzeichnis die leere Datei LCK..ttyS1 an. Andere Programme, die ebenfalls auf das Modem zugreifen wollen (z. B. Faxprogramme), sehen nach, ob diese Datei existiert und knnen somit feststellen, ob das Modem besetzt ist. Jeder Rechner muss ein eigenes /var/lockVerzeichnis haben. /var/log Hier benden sich die Log-Dateien (Logbuch) des Systems. Diese Dateien werden entweder vom Systemlog-Dmon syslogd oder direkt von Programmen angelegt. Einige Pakete legen ihre Log-Dateien in Unterverzeichnissen von /var/log ab. Das Sammelbecken fr alle Systemmeldungen ist die Datei /var/log/syslog. /var/mail In dem Verzeichnis bendet sich die wartende Email fr die Benutzer des Systems. Es existiert darin fr jeden Benutzer eine Datei, in der die fr diesen Benutzer wartenden Mails hintereinander gespeichert sind. Innerhalb von Netzen wird Mail blicherweise von einem Rechner empfangen. Dieser Rechner exportiert sein Verzeichnis /var/mail an die anderen Rechner, die es ber NFS einbinden. Dadurch kann jeder Benutzer von jedem Rechner aus auf seine Mail zugreifen2.
2 Dies Verfahren setzt voraus, dass jeder Benutzer auf allen angeschlossenen Rechnern das gleiche Benutzerkonto verwendet (NIS-Cluster).

468

14 Verzeichnisstruktur und Dateisysteme

/var/run Server-Programme (Dmonen) werden normalerweise nur einmal auf jedem Rechner ausgefhrt. Solche Programme knnen in diesem Verzeichnis eine Datei ablegen, an der erkannt wird, dass das Programm bereits luft. Die Dateien enthalten die Prozess-ID des zugehrigen Programms. Wenn ein Dmon beendet werden soll, kann auf Grund dieser Information entschieden werden, welcher Prozess zu stoppen ist. /var/spool In Unterverzeichnissen dieses Verzeichnisses werden Daten abgelegt, die von Programmen noch zu bearbeiten sind. Dazu gehren Emails, die noch abgeschickt werden mssen oder Druckdateien, die darauf warten, ausgedruckt zu werden. Frher war hier auch das Mail-Verzeichnis untergebracht, das heute direkt unter /var liegt. /var/tmp Hier werden temporre Dateien abgelegt. Im Gegensatz zu Dateien im Verzeichnis /tmp werden die Dateien in diesem Verzeichnis whrend eines Neustarts des System nicht gelscht. /usr/X11R6 Enthlt alle Dateien von X11 (X11R6) sowie vieler Programme, die nur mit X11 ausgefhrt werden knnen, also fr die grasche Oberche geschrieben sind. Das Verzeichnis ist hnlich organisiert wie das Verzeichnis /usr. Im Unterverzeichnis bin benden sich die ausfhrbaren Dateien von X11Programmen und im Unterverzeichnis man die zugehrigen Manualseiten.

14.3 Verwaltung des Dateisystems


14.3.1 Anzeigen eingebundener Partitionen Die Zuordnung zwischen einem Verzeichnis und einem Datentrger geschieht mit dem Programm mount (S. 835). Auerdem kann mount dazu benutzt werden anzuzeigen, welcher Datentrger welchem Verzeichnis zugeordnet ist. Dazu ist das Kommando mount ohne Angabe von Parametern einzugeben: joe@debian:~$ mount Die Ausgabe sieht dann ungefhr folgendermaen aus:
/dev/sda7 on / type ext2 (rw) proc on /proc type proc (rw) /dev/hda on /cdrom type iso9660 (ro,noexec,nosuid,nodev)

Jede Zeile beginnt mit dem Namen der Gertedatei, die einen eingebundenen Datentrger darstellt. Hinter dem Wort on ist der Name des Verzeichnisses angegeben, in das der Datentrger eingebunden ist. Im Beispiel ist zu erkennen, dass die dritte logische Partition auf der ersten SCSI-Festplatte als Rootdateisystem benutzt wird; sie ist mit dem Verzeichnis / verbunden. Darauf folgt nach dem Wort type der Typ des Dateisystems. Die Partition /dev/sda7 ist eine ext2-Partition (das Standardformat unter Linux). Zu Schluss wird in Klammern angegeben, mit welchen Optionen der Datentrger eingebunden ist. rw steht fr read-write und ro fr read-only. Auf die ersten beiden Verzeichnisse im Beispiel darf lesend und schreibend zugegriffen

14.3 Verwaltung des Dateisystems

469

werden, auf das letzte nur lesend. Die wichtigsten mount-Optionen nden Sie auf Seite 835. Bei proc handelt es sich um ein virtuelles Dateisystem, dem kein physikalischer Datentrger zugeordnet ist. 14.3.2 Anzeigen des Speicherplatzes Anzeigen des Speicherplatzes auf Datentrgern Das Programm df (S. 790) dient dazu, anzuzeigen, wieviel freier Platz auf den eingebundenen Datentrgern zur Verfgung steht und wieviel belegt ist. Das Kommando joe@debian:~$ df liefert eine Ausgabe, die sinngem der folgenden gleicht:
Filesystem /dev/sda7 /dev/hda 1k-blocks 1981000 272186 Used Available Use% Mounted on 1749854 128734 93% / 272186 0 100% /cdrom

In der ersten Spalte ist der Name der Gertedatei aufgefhrt, die einen Datentrger reprsentiert. In der letzten Spalte nden Sie den Namen des Verzeichnisses, in das der Datentrger eingebunden ist. In der zweiten Spalte steht, wieviel Kilobyte auf dem Datentrger insgesamt zur Verfgung stehen (1k-blocks), auf der Partition /dev/sda7 1981000 KB, das ist etwas weniger als 2 GB. In der nchsten Spalte ist zu sehen, wieviel des insgesamt verfgbaren Platzes belegt ist und in der darauffolgenden, wieviel Platz noch frei ist. Dann folgt eine prozentuale Angabe der Belegung. Wie der Ausgabe des Kommandos mount im vorhergehenden Abschnitt zu entnehmen war, handelt es sich bei dem Datentrger /dev/hda um eine CD. Da auf CDs nicht geschrieben werden kann, zeigt df fr diesen Datentrger an, dass er zu 100 % belegt ist. Man sollte das Kommando huger geben. Wenn sich eine Platten-Partition der 90-%-Grenze nhert, wird es Zeit, an Gegenmanahmen zu denken. Je nach Umfang der Partition reicht eine einzige groe Datei, um Teile des Systems zum Stillstand zu bringen (nicht zum Absturz). Anzeigen des durch ein Verzeichnis belegten Speicherplatzes Gelegentlich mchte man wissen, wieviel Speicherplatz die Dateien und Verzeichnisse innerhalb eines Verzeichnisses belegen. Hierzu dient das Programm du (S. 794). Ohne Parameter aufgerufen zeigt es den von den Unterverzeichnissen im Arbeitsverzeichnis belegten Festplattenplatz in Kilobyte an. Einen berblick ber den von allen Dateien und Unterverzeichnissen, mit allen darin bendlichen Dateien, belegten Speicherplatz liefert es, wenn es mit den Optionen -h und -s aufgerufen wird. Mchte man wissen, wieviel Platz vom Verzeichnis /var mit all seinen Dateien und Unterverzeichnissen belegt wird, wird du folgendermaen aufgerufen: debian:~# du -hs /var Die Ausgabe erfolgt in Giga- Mega- oder Kilobyte, je nachdem welche Einheit angemessen ist.

470

14 Verzeichnisstruktur und Dateisysteme

14.3.3 Einbinden und Entfernen von Datentrgern (Mounten) Wie bereits in Kapitel 5.17.2 erwhnt, ist es erforderlich, Datentrger explizit einzubinden, bevor auf diese ber das Dateisystem zugegriffen wird. Hierzu dient das Kommando mount. Um die erste Partition auf der zweiten (E)IDE-Festplatte dem Verzeichnis /mnt zuzuordnen, ist folgendes Kommando einzugeben: debian:~# mount /dev/hdb1 /mnt Das Kommando kann nur vom Verwalter ausgefhrt werden. Unter Umstnden mssen Sie beim Einbinden von Datentrgern oder Partitionen den Typ des Dateisystems angeben, das zum Zugriff verwendet werden soll. Hierzu dient die Option -t des Kommandos mount. Welche Dateisysteme untersttzt werden, ist abhngig davon, mit welchen Optionen der benutzte Kern bersetzt wurde (siehe Kap. 11). Hier einige wichtige Dateisystemtypen: ext2 Dies ist das blicherweise unter Linux benutzte Format. Sie sollten es fr alle Datentrger verwenden, die fr die Benutzung mit Linux vorgesehen sind. msdos Das klassische DOS/MS-Windows-Dateisystemformat, das keine Dateinamen verwenden kann, die lnger als 8 Zeichen plus einer 3 Zeichen langen Erweiterung sind. vfat Das neuere DOS/MS-Windows-Dateisystemformat, das auch lange Dateinamen verwenden kann. ntfs Das Dateisystemformat von MS-Windows NT/2000. hpfs Das Dateisystemformat von IBM-OS/2. iso9660 Das Dateisystemformat, das auf den meisten Daten-CDs benutzt wird. udf Das Universal Disk Format, das auf DVDs verbreitet ist. proc Das Format fr das virtuelle /proc-Dateisystem. devpts Dies ist ein weiteres virtuelles Dateisystem, durch das Programmen eine verbesserte Methode zum Zugriff auf virtuelle Terminals ermglicht wird. nfs Dieses Dateisystem mssen Sie verwenden, wenn Sie Verzeichnisse von Rechnern im Netz ber NFS einbinden mchten. minix Das minix-Dateisystem wird heute noch gelegentlich zum Formatieren von Disketten benutzt. Wenn Sie einen Datentrger in ein Verzeichnis mounten, knnen Sie auf die Dateien und Verzeichnisse, die sich vorher in diesem Verzeichnis befunden haben, vorbergehend nicht mehr zugreifen. Sie werden von dem eingebundenen Datentrger berlagert und stehen erst dann wieder zur Verfgung, wenn der Datentrger aus dem Dateisystem entfernt worden ist. Sinnvollerweise sollten Sie Datentrger deswegen nur in leere Verzeichnisse einbinden. Einbinden von DOS- und MS-Windows-Partitionen Wenn sich auf Ihrem Rechner eine MS-Windows-95/98-Installation bendet, werden Sie Festplattenpartitionen haben, die mit dem DOS-Dateisystem formatiert sind. Sie

14.3 Verwaltung des Dateisystems

471

sollten den Dateisystemtyp vfat whlen, um auch lange Dateinamen auf diesen Partitionen verwenden zu knnen. Um die erste DOS-formatierte primre Partition der ersten (E)IDE-Festplatte in das bereits vorhandene Verzeichnis /dosC zu mounten, ist dieses Kommando zu verwenden: debian:~# mount -t vfat /dev/hda1 /dosC Achtung: DOS-Dateisysteme speichern keine Eigentmer und Gruppen von Dateien oder Verzeichnissen und auch keine Rechte. Standardmig werden solche Datentrger deswegen so eingebunden, dass alle Dateien dem Verwalter gehren und von diesem gelesen und verndert werden knnen. Gewhnliche Benutzer haben lediglich das Recht, lesend auf diese Daten zuzugreifen. Mit speziellen Optionen des mount-Kommandos ist es jedoch mglich, dieses Verhalten zu verndern. Mehr dazu auf Seite 835. Einbinden von MS-Windows-NT-Partitionen Partitionen, die unter MS-Windows NT/2000 im NTFS-Format formatiert wurden, lassen sich auf eine hnliche Art einbinden: debian:~# mount -t ntfs -r /dev/hda2 /ntD Mit dem Kommando wird die zweite primre Partition auf der ersten (E)IDEFestplatte dem Verzeichnis /ntD zugeordnet. Auch dieses Verzeichnis muss existieren, bevor Sie das Kommando verwenden. Durch den Parameter -r wird die Partition so eingebunden, dass auf sie nur lesend zugegriffen werden kann. Einbinden von CDs CDs werden ebenfalls ber das mount-Kommando eingebunden. blicherweise werden sie in das Verzeichnis /cdrom gemountet. CDs, die ber einen (E)IDE-Adapter mit dem Rechner verbunden sind, werden wie Festplatten durch die Gertedateien /dev/hda, /dev/hdb usw. reprsentiert. CDs, die ber SCSI-Adapter angeschlossen sind, werden durch die Gertedateien /dev/scd0, /dev/scd1 usw. reprsentiert. Wenn Sie ein CD-Laufwerk verwenden, dass ber einen lteren, proprietren Adapter oder eine Soundkarte angeschlossen ist, wird es durch eine andere Gertedatei reprsentiert. blicherweise wird ein symbolischer Link mit dem Namen /dev/cdrom auf die Gertedatei gelegt, welche das CD-Laufwerk in dem Rechner darstellt. Wenn Sie die Basisinstallation von CD durchgefhrt haben, sollte dies bereits geschehen sein, ansonsten knnen Sie den Link manuell mit dem folgenden Kommando anlegen: debian:~# ln -s /dev/hdc /dev/cdrom Sie mssen den Namen der Gertedatei /dev/hdc durch den Namen der Gertedatei ersetzen, die Ihr CD-Laufwerk reprsentiert (siehe auch ln (S. 818)). Danach binden Sie CDs mit diesem Kommando ein:

472

14 Verzeichnisstruktur und Dateisysteme

debian:~# mount -r -t iso9660 /dev/cdrom /cdrom Microsoft hat das CD-Dateisystem (iso9660) um Untersttzung fr lange Dateinamen im Unicode-Format erweitert. Die Erweiterung wird mit Joliet bezeichnet; die Untersttzung dafr ist in den Standardkernen vorhanden. Wenn sie einen eigenen Kern erstellen, sollten Sie sie ebenfalls aufnehmen. Einbinden von Disketten Disketten werden in das Verzeichnis /oppy gemountet. Sie werden durch die Gertedateien /dev/fd0 (erstes Diskettenlaufwerk) oder /dev/fd1 (zweites Diskettenlaufwerk) reprsentiert. Die meisten Disketten sind im DOS/MS-Windows-Format formatiert. Um einen solchen Datentrger einzubinden, verwendet man folgendes Kommando: debian:~# mount -t vfat /dev/fd0 /floppy Achtung: Disketten mssen explizit wieder aus dem Dateisystem entfernt werden, bevor sie aus dem Laufwerk genommen werden. Ansonsten knnen Daten verloren gehen! Manuelles Entfernen von Datentrgern Zum Entfernen von Datentrgern wird das Programm umount (S. 878) benutzt. Diesem Programm ist entweder der Name der Gertedatei zu bergeben, die den Datentrger reprsentiert, der entfernt werden soll, oder der Namen des Verzeichnisses, in das er eingebunden ist. Wenn der Datentrger, der in das Verzeichnis /oppy gemountet ist, wieder entfernt werden soll, wird dieses Kommando benutzt: debian:~# umount /floppy Die Datei /etc/fstab Alle Datentrger, die whrend des Systemstarts automatisch eingebunden werden sollen, mssen in die Datei /etc/fstab eingetragen werden. Darber hinaus knnen in der Datei Zuordnungen von Datentrgern zu Verzeichnissen vorgenommen werden, mit denen auch gewhnlichen Benutzern ermglicht wird, bestimmte Datentrger einzubinden. Oft ist es gewollt, Benutzern zu gestatten, Disketten oder CDs einzubinden und wieder zu entfernen. Das Format dieser Datei ist in Kapitel 5.17.8 auf Seite 143 ausfhrlich beschrieben. Um Benutzern zu gestatten, CDs einzubinden oder zu entfernen, ist der Datei folgende Zeile hinzuzufgen: /dev/cdrom /cdrom iso9660 defaults,noauto,user,ro 0 0 Jeder gewhnliche Benutzer kann CDs dann durch das Kommando joe@debian:~$ mount /cdrom

14.3 Verwaltung des Dateisystems

473

einbinden und durch das Kommando joe@debian:~$ umount /cdrom wieder aus dem Dateisystem entfernen. Wie bereits in Abschnitt 5.17.8 beschrieben, bewirkt das Schlsselwort noauto, dass der Datentrger nicht whrend des Systemstarts automatisch eingebunden wird. 14.3.4 Prfen und Reparieren von Partitionen und Datentrgern Gelegentlich ist es erforderlich, Datentrger manuell zu berprfen und gegebenenfalls zu reparieren. Hierzu stehen Programme zur Verfgung, die diese Aufgaben fr die verschiedenen Dateisysteme bernehmen. Alternativ kann das Programm fsck (S. 801) benutzt werden. Bei dem Programm handelt es sich um ein Front-End (berbau) zu den Prfprogrammen, dem mit der Option -t der Dateisystemtyp mitgeteilt wird. Achtung: Auf einen Datentrger, der geprft und repariert werden soll, darf durch kein Programm auer durch das Prfprogramm selbst schreibend zugegriffen werden. Ein solcher Datentrger darf nicht mit der Mglichkeit zum Schreiben gemountet sein. Es kann sonst zu unvorhersagbaren Fehlern kommen. Angenommen, das Verzeichnis /var/ bende sich auf der Partition /dev/sdb2, die geprft und erforderlichenfalls repariert werden soll. Um dies durchzufhren, muss das System zunchst in den Single-User-Modus gebracht werden, damit gewhrleistet ist, dass keine Programme oder Benutzer auf dieses Verzeichnis zugreifen. Dies geschieht mit dem Kommando init (S. 811): debian:~# init 1 Dieser Schritt ist nicht erforderlich, wenn feststeht, dass auf den Datentrger nicht zugegriffen werden kann. Nun wird die Partition aus dem Dateisystem entfernt: debian:~# umount /var Linux-ext2-Partitionen werden mit dem Programm e2fsck (S. 795) berprft. Das Programm fhrt eine berprfung nur dann durch, wenn 1. der Datentrger nicht ordnungsgem aus dem Dateisystem entfernt wurde, was dann der Fall ist, wenn das System abgeschaltet wurde, ohne ordnungsgem heruntergefahren worden zu sein, oder 2. ein Schwellenwert berschritten ist, mit dem angegeben wird, wie oft das Dateisystem eingebunden und wieder entfernt werden darf, ohne geprft zu werden (der Schwellenwert wird mit dem Programm tune2fs (S. 877) festgelegt), oder 3. e2fsck mit der Option -f aufgerufen wird. Mit dem Parameter -p wird erreicht, dass eventuell gefundene Fehler automatisch korrigiert werden, sofern dies mglich ist. Um die Partition zu prfen und zu reparieren, wird folgendes Kommando eingegeben:

474

14 Verzeichnisstruktur und Dateisysteme

debian:~# e2fsck -f -p /dev/sdb2 Unter Umstnden werden dabei Fehler gefunden, die nicht automatisch repariert werden knnen. Das Programm schlgt dann bestimmte Aktionen vor und fragt, ob diese ausgefhrt werden sollen. Dies sollte mit y (yes) beantwortet werden. In den meisten Fllen werden dann Dateien oder Dateireste in dem Verzeichnis lost+found auf dem Datentrger gesammelt. Untersuchen Sie diese Dateien auf ihren Inhalt hin und verschieben Sie sie gegebenenfalls wieder dorthin, wo sie hingehren. Achtung: Das ext2-Dateisystem ist recht zuverlssig. Wenn es bei der berprfung von Datentrgern zu Fehlern kommt, die nicht darauf zurckzufhren sind, dass das System nicht ordnungsgem heruntergefahren wurde, ist das ein Anzeichen dafr, dass die Hardware defekt oder nicht korrekt eingerichtet ist. Plattenausflle kndigen sich manchmal so an. Ein besonders schwerwiegender Fehler des ext2-Dateisystems liegt vor, wenn der Superblock zerstrt ist. Dieser Block enthlt Informationen, die whrend der berprfung des Dateisystems und auch sonst bentigt werden. Aus diesem Grund benden sich in jedem ext2-Dateisystem Backup-Superblcke, die in solchen Fllen genutzt werden knnen. Diese entsprechen normalerweise den Blcken 8193, 16385, 24577 usw. Der zu verwendende Superblock wird mit der Option -b angegeben. Um den Datentrger aus dem Beispiel unter Verwendung des zweiten Superblocks zu berprfen, ist e2fsck folgendermaen aufzurufen: debian:~# e2fsck -b 8193 -f -p /dev/sdb2 Nach berprfung der Partition kann sie wieder eingebunden werden. Wenn der Eintrag in der Datei /etc/fstab vorhanden ist, reicht dazu folgendes Kommando: debian:~# mount /dev/sdb2 Wenn das System zur berprfung des Datentrgers in den Single-User-Modus gebracht wurde, kann es nun wieder in einen anderen Runlevel versetzt werden. berprfung anderer Dateisystemtypen Sie knnen unter Debian GNU/Linux auch DOS/MS-Windows-Dateisysteme berprfen. Hierzu dient das Programm dosfsck (S. 793). Um eine DOS-formatierte Diskette im ersten Diskettenlaufwerk zu prfen, wird dieses Kommando benutzt: debian:~# dosfsck -a /dev/fd0 Der Parameter -a bewirkt, dass eventuell gefundene Fehler automatisch repariert werden. Zur berprfung von minix-formatierten Datentrgern ist das Programm fsck.minix zu verwenden.

14.3 Verwaltung des Dateisystems

475

14.3.5 Formatieren von Datentrgern Zum Formatieren von Datentrgern im ext2-Format dient das Programm mke2fs (S. 830). Dem Programm braucht lediglich der Name der Gertedatei bergeben zu werden, die den zu formatierenden Datentrger darstellt. Um die dritte Partition auf der ersten (E)IDE-Festplatte im ext2-Format zu formatieren, wird dieses Kommando benutzt: debian:~# mke2fs /dev/hda3 Achtung: Beim Formatieren gehen smtliche Daten, die sich vorher auf dem Datentrger oder der Partition befunden haben, verloren! Um eine Diskette im ersten Diskettenlaufwerk im ext2-Format zu formatieren, ist dieses Kommando zu verwenden: debian:~# mke2fs /dev/fd0 Das Programm versteht eine Reihe von Parametern, mit denen das auf dem Datentrger zu erzeugende Dateisystem an unterschiedliche Verwendungszwecke angepasst werden kann. Diese sind auf Seite 830 beschrieben. Formatieren mit anderen Dateisystemtypen Beim Formatieren von Disketten empehlt sich oft die Verwendung des DOS/MSWindows-Formats. Zwei unterschiedliche Programme stehen zur Verfgung. Zum einen das Programm mkdosfs (S. 829), dem ebenfalls der Name der Gertedatei bergeben werden muss, die den zu formatierenden Datentrger reprsentiert. Soll eine Diskette im ersten Laufwerk im DOS-Format formatiert werden, dient dazu folgendes Kommando: debian:~# mkdosfs /dev/fd0 Zum anderen kann das Kommando mformat (S. 827) benutzt werden. Das Kommando gehrt zu den mtools (S. 838), einer Sammlung von Kommandos zum einfachen Zugriff auf DOS/MS-Windows-Datentrger. 14.3.6 Verlegen von Teilen der Verzeichnisstruktur auf andere Partitionen Es kommt immer wieder vor, dass der Platz auf einem Datentrger knapp wird und Teile der darauf bendlichen Daten auf einen anderen Datentrger oder eine andere Partition verlegt werden mssen. Hinweise dazu, welche Verzeichnisse sich sinnvollerweise auf eigenen Partition benden, lesen Sie in Abschnitt 14.2 auf Seite 462.

476

14 Verzeichnisstruktur und Dateisysteme

Verschieben des Verzeichnisses /usr Angenommen, das Verzeichnis /usr soll auf eine neue Partition verlegt werden, um auf der Partition mit dem Wurzeldateisystem Luft zu schaffen. Die neue Partition sei bereits erstellt und im ext2-Format formatiert. Grundstzlich gibt es zwei Mglichkeiten, wie dies bewerkstelligt werden kann3 : 1. Die Unterverzeichnisse des Verzeichnisses /usr werden in das Wurzelverzeichnis der neuen Partition kopiert. Danach wird der Inhalt des Verzeichnisses /usr gelscht, und die neue Partition wird in das nun leere Verzeichnis /usr gemountet. Dateien und Verzeichnisse benden sich dann wieder an dem gleichen Ort in der Verzeichnisstruktur wie vorher. 2. Alternativ kann die Partition in ein neues Verzeichnis gemountet werden und danach das gesamte Verzeichnis /usr mit allen Dateien und Verzeichnissen in dieses Verzeichnis kopiert werden. Dann wird das alte Verzeichnis /usr gelscht und ein symbolischer Link mit dem Namen /usr auf das neue Verzeichnis gelegt. Auch mit dieser Variante knnen Benutzer und Programme wie bisher auf /usr zugreifen, weil dies dann aufgrund des symbolischen Links dazu fhrt, dass in Wirklichkeit auf das neue Verzeichnis (welches sich woanders bendet) zugegriffen wird. Das zweite Verfahren bietet den Vorteil, dass sich auf der neuen Partition spter bersichtlich weitere Verzeichnisse anlegen lassen, weil es dann im Wurzelverzeichnis der Partition zunchst nur das Verzeichnis usr gibt, whrend bei der anderen Methode alle im Verzeichnis /usr liegenden Unterverzeichnisse in das Wurzelverzeichnis der Partition verschoben werden. Variante 1: Einbinden einer neuen Partition nach /usr Um die Unterverzeichnisse von /usr auf eine neue Partition zu kopieren, muss diese zunchst in ein temporres Verzeichnis gemountet werden, damit auf sie zugegriffen werden kann: debian:~# mount /dev/hdb5 /mnt Der Gertedateiname /dev/hdb5 muss dabei durch den richtigen Namen ersetzt werden. Jetzt werden die Unterverzeichnisse von /usr rekursiv mit allen Dateien und Unterverzeichnissen auf die neue Partition kopiert. Es gibt verschiedene Verfahren, wie dies geschehen kann; am einfachsten geht es mit cp (S. 785): debian:~# cp -ax /usr/* /mnt Die Option -a bewirkt, dass alle zu kopierenden Dateien und Verzeichnisse im Zielverzeichnis so erstellt werden, wie sie im Quellverzeichnis vorhanden sind, und
Sie sollten die folgenden Aktionen im Single-User-Modus durchfhren, damit sichergestellt ist, dass nicht auf Verzeichnisse oder Dateien unterhalb des Verzeichnisses /usr zugegriffen wird.
3

14.3 Verwaltung des Dateisystems

477

die Option -x bewirkt, dass nur die Dateien kopiert werden, die sich auf demselben Datentrger oder derselben Partition benden wie das angegebene Quellverzeichnis. Letztere Option ist eigentlich nur dann notwendig, wenn sich Unterverzeichnisse von /usr auf anderen Datentrgern benden und auch dort bleiben sollen. Nachdem die Daten kopiert sind, wird die neue Partition wieder aus dem temporren Verzeichnis entfernt: debian:~# umount /mnt Zur Sicherheit sollte das alte Verzeichnis /usr einen anderen Namen erhalten. Es kann spter gelscht werden, wenn sicher ist, dass das System mit der neuen Konguration funktioniert: debian:~# mv /usr /usr_alt Das Verzeichnis /usr existiert nun nicht mehr. Es muss neu angelegt werden, damit die neue Partition in dieses Verzeichnis eingebunden werden kann: debian:~# mkdir /usr Nun wird die neue Partition in das Verzeichnis gemountet: debian:~# mount /dev/hdb5 /usr Auch hier muss /dev/hdb5 durch den tatschlichen Namen der Gertedatei ersetzt werden, welche die neue Partition darstellt. Zum Schluss muss der Datei /etc/fstab ein Eintrag folgenden Inhalts zugefgt werden, damit die neue Partition bei zuknftigen Systemstarts in das Verzeichnis /usr gemountet wird:
/dev/hdb5 /usr ext2 defaults 0 2

Wenn Ihr System mit dieser Konguration weiterhin normal startet und funktioniert, lschen Sie das alte Verzeichnis: debian:~# rm -rf /usr_alt 2. Variante: Einbinden einer neuen Partition in ein neues Verzeichnis Bei diesem Verfahren wird die neue Partition gleich in das endgltige Verzeichnis eingebunden. Dieses ist zunchst anzulegen: debian:~# mkdir -p /disks/2 Mit dem Kommando wird das Verzeichnis /disks angelegt, sofern es noch nicht existiert, und darin das Verzeichnis 2 (fr zweite benutzte Partition) erzeugt. Sie knnen auch ein anderes Verzeichnis anlegen und verwenden. Nun wird die neue Partition in das Verzeichnis gemountet: debian:~# mount /dev/hdb5 /disks/2 Auch hier muss ein Eintrag der Datei /etc/fstab hinzugefgt werden, damit die Partition bei zuknftigen Systemstarts automatisch gemountet wird:

478

14 Verzeichnisstruktur und Dateisysteme


/disks/2 ext2 defaults 0 2

/dev/hdb5

Die Bezeichnung /dev/hdb5 ist an den Namen der richtigen Gertedatei anzupassen. Im nchsten Schritt wird das Verzeichnis /usr rekursiv mit allen Unterverzeichnissen und Dateien auf die neue Partition kopiert: debian:~# cp -ax /usr /disks/2 Nachdem dies geschehen ist, wird das alte Verzeichnis /usr umbenannt: debian:~# mv /usr /usr_alt Zum Schluss wird ein symbolischer Link mit dem Namen /usr auf das neue Verzeichnis gelegt: debian:~# ln -s /disks/2/usr /usr Das Verzeichnis /usr_alt kann wie bei der ersten Methode gelscht werden, wenn sicher ist, dass das System mit der neuen Konguration einwandfrei startet und arbeitet. Aufteilen der Home-Verzeichnisse auf mehrere Partitionen Wenn der Platz auf der Partition, auf der sich die Home-Verzeichnisse benden, nicht mehr ausreicht, bietet es sich an, einige Home-Verzeichnisse auf eine neue Partition zu verlegen. Angenommen, es stehe eine neue, im ext2-Format formatierte Partition zur Verfgung, in welche die Home-Verzeichnisse der Benutzer ralf, michael und uta verlegt werden sollen (alle anderen Home-Verzeichnisse sollen auf der alten Partition verbleiben), dann kommen auch hier die beiden Wege in Frage, die im vorigen Abschnitt bei der Verlegung des Verzeichnisses /usr erlutert wurden. Die neue Partition kann hier nicht einfach in das Verzeichnis /home gemountet werden, weil dieses ja weiterhin die restlichen Home-Verzeichnisse enthlt. Zur Lsung der Aufgabe wird ein weiteres Verzeichnis mit Home-Verzeichnissen angelegt, z. B. /home1. Die neue Partition ist in dieses Verzeichnis zu mounten: debian:~# mkdir /home1 debian:~# mount /dev/hdb5 /home1 Die Bezeichnung /dev/hdb5 muss angepasst werden. Die neue Partition ist in die Datei /etc/fstab einzutragen, damit sie zuknftig whrend des Systemstarts automatisch eingebunden wird:
/dev/hdb5 /home1 ext2 defaults 0 2

Nun knnen die Home-Verzeichnisse von /home nach /home1 verschoben werden. Dies kann von Hand mit dem Kommando cp geschehen. Dabei ist zu beachten, dass hinterher die Felder der Datei /etc/passwd angepasst werden mssen. In dieser Datei ist zu jedem Benutzerkonto das Home-Verzeichnis gespeichert. Einfacher geht

14.3 Verwaltung des Dateisystems

479

das Verschieben von Home-Verzeichnissen mit dem Programm usermod (S. 882). Das Programm aktualisiert die Datei /etc/passwd und verschiebt gleichzeitig die Verzeichnisse. Um das Home-Verzeichnis des Benutzers ralf von home nach /home1 zu verschieben, ist usermod folgendermaen aufzurufen: debian:~# usermod -d /home1/ralf -m ralf Das Kommando ist fr alle zu verschiebenden Home-Verzeichnisse entsprechend zu wiederholen. Alternativ zu diesem Verfahren kann auch hier mit symbolischen Links gearbeitet werden. Die neue Partition wird in ein anderes Verzeichnis eingebunden, z. B. nach /disks/3: debian:~# mkdir -p /disks/3 debian:~# mount /dev/hdb5 /disks/3 Die Kommandos sind anzupassen. Auch hier ist wieder ein Eintrag in der Datei /etc/fstab vorzunehmen. Auf der neuen Partition wird ein Verzeichnis zur Aufnahme der zu verschiebenden Home-Verzeichnisse angelegt: debian:~# mkdir /disks/3/home1 Danach werden die Verzeichnisse kopiert: debian:~# cp -a /home/ralf /home/michael /home/uta /disks/3/home1 Nun werden die alten Home-Verzeichnisse gesichert, indem ihnen ein neuer Name gegeben wird: debian:~# mv /home/ralf /home/ralf_alt Das Kommando ist fr alle Home-Verzeichnisse, die verschoben werden sollen, zu wiederholen. Im nchsten Schritt werden symbolische Links aus dem Verzeichnis /home auf die neuen Home-Verzeichnisse gesetzt: debian:~# ln -s /disks/3/home1/ralf /disks/3/home1/michael /disks/3/home1/uta /home Eine Vernderung der Datei /etc/passwd ist bei diesem Verfahren nicht notwendig, weil auf die Home-Verzeichnisse weiterhin ber die symbolischen Links mit den alten Namen zugegriffen wird. So fhrt der Zugriff auf das Verzeichnis /home/ralf nach dieser nderung dazu, dass in Wirklichkeit auf das Verzeichnis /disks/3/home1/ralf zugegriffen wird. Die alten Verzeichnisse (ralf_alt . . . ) werden spter gelscht, wenn sicher ist, dass die Benutzer wie gewohnt auf ihre Daten zugreifen knnen: debian:~# rm -rf /home/ralf_alt /home/michael_alt /home/uta_alt

480

14 Verzeichnisstruktur und Dateisysteme

14.3.7 Verwaltung von Auslagerungsspeicher (Swap) Arbeiten mit Swapbereichen Gelegentlich ist es notwendig, nach der Basisinstallation die Gre, die Lage oder die Anzahl von Swapbereichen zu verndern. Grnde hierfr: Dem System ist eine schnellere Festplatte zugefgt worden. Swapbereiche sollten sich auf der schnellsten Festplatte des Systems benden. Das System bentigt mehr virtuellen Speicher, als zur Zeit zur Verfgung steht. Die Menge des verfgbaren sowie des freien Swap-Speichers wird mit den Kommandos free (S. 800) oder swapon -s angezeigt. Wie Datenpartitionen mssen Swapbereiche vor ihrer Benutzung initialisiert (formatiert) werden. Dies geschieht mit dem Kommando mkswap (S. 832). Dem Kommando ist der Name einer Gertedatei zu bergeben, welche den Datentrger reprsentiert, der als Swapbereich genutzt werden soll. Um die zweite logische Partition auf der zweite SCSI-Festplatte zur Verwendung als Swapbereich vorzubereiten, wird folgendes Kommando benutzt: debian:~# mkswap /dev/sdb6 Achtung: Bei der Initialisierung von Swapbereichen gehen alle Daten, die sich auf der Partition befunden haben, verloren! Danach wird die Partition mit dem Kommando swapon (S. 869) eingebunden: debian:~# swapon /dev/sdb6 Wenn ein Swapbereich nicht mehr benutzt werden soll, muss dies dem System mit dem Kommando swapoff (S. 868) mitgeteilt werden. Dem Kommando ist der Name der Gertedatei zu bergeben, die den Datentrger reprsentiert, der nicht mehr als Swapbereich benutzt werden soll: debian:~# swapoff /dev/sdb6 Partitionen, die dauerhaft als Swapbereich eingesetzt werden, sollten wie Datenpartitionen in die Datei /etc/fstab eingetragen werden, damit sie beim Systemstart automatisch eingebunden werden. Um die Partition /dev/sdb6 dauerhaft als Swapbereich zu verwenden, ist folgender Eintrag geeignet:
/dev/sdb6 none swap sw 0 0

Das Schlsselwort none zeigt an, dass die Partition nicht mit einem Verzeichnis verbunden wird.

14.3 Verwaltung des Dateisystems

481

Verwenden von Swapdateien Die Verwendung von Swapdateien anstelle von Bereichen (Partitionen) fr ausgelagerten Speicher ist nicht zu empfehlen. Der Zugriff auf diese Form von Auslagerungsspeicher ist prinzipiell langsamer als bei der Verwendung von Swapbereichen. Wenn in einer Ausnahmesituation besonders viel virtueller Speicher bentigt wird und keine freie Partition vorhanden ist, kann der Einsatz von Swapdateien als vorbergehende Lsung Sinn machen. Vor der Verwendung einer Swapdatei muss diese erzeugt werden. Dies erfolgt mit dem Kommando dd (S. 789): debian:~# dd if=/dev/zero bs=1024 count=65536 of=swapfile Mit dem Kommando wird eine 64 MB groe Datei erzeugt, deren Inhalt aus Nullen besteht. Die Gertedatei /dev/zero reprsentiert ein virtuelles Gert, dass ausschlielich Nullen ausgibt, wenn von ihm gelesen wird. Die Datei erhlt den Namen swaple und wird im Arbeitsverzeichnis angelegt. Vor der ersten Benutzung muss die Swapdatei ebenfalls mit mkswap initialisiert werden: debian:~# mkswap swapfile Danach kann die Swapdatei eingebunden werden: debian:~# swapon swapfile Zum Entfernen der Swapdatei wird ebenfalls das Kommando swapoff benutzt. Achtung: Theoretisch ist es mglich, Swapdateien zu lschen, whrend sie benutzt werden. In Wirklichkeit wird dann zwar nur der Eintrag im Verzeichnis gelscht, aber hinterher besteht keine Mglichkeit mehr, den Kern anzuweisen, die Swapdatei nicht mehr zu benutzen, weil ihr Name nicht mehr existiert. Das System muss dann neu gestartet und die Partition, auf der sich die Swapdatei befunden hat, berprft werden. Sinnvollerweise sollte das Lschen von Swapdateien mit chmod (S. 782) verhindert werden. Wenn eine Swapdatei dauerhaft genutzt werden soll, kann sie in die Datei /etc/fstab eingetragen werden. Angenommen, die Datei swaple bende sich im Verzeichnis /home, so msste der Eintrag folgendermaen aussehen:
/home/swapfile none swap sw 0 0

Da Swapdateien keine Dauerlsung sind, ist ein solcher Eintrag selten. 14.3.8 Der Automounter im Kern Der Linux-Kern verfgt ber die Fhigkeit, Datentrger automatisch einzubinden, sobald auf sie zugegriffen wird. Dazu ist es erforderlich, dass der Kern mit der Option Kernel automounter support bersetzt wurde. Dies ist beim Standardkern der

482

14 Verzeichnisstruktur und Dateisysteme

Fall. Auerdem muss das Paket autofs eingerichtet sein. Es enthlt die Programme und Dateien, die bentigt werden, um diese Eigenschaft nutzen zu knnen4 Das autofs-System funktioniert folgendermaen: ber ein Programm werden dem Kern Verknpfungen von Verzeichnissen und Datentrgern mitgeteilt. Sobald auf ein solches Verzeichnis zugegriffen wird, mountet der Kern den Datentrger automatisch, die Notwendigkeit zum manuellen Einbinden entfllt. Die beiden wichtigsten Anwendungsbereiche des Systems sind: Netzumgebungen, in denen von allen Rechnern aus auf eine groe Anzahl von Verzeichnissen zugegriffen wird, die sich auf anderen Rechnern benden. Dabei ist es unerwnscht, dass alle Verzeichnisse stndig gemountet sind, z. B. weil die Rechner gelegentlich abgeschaltet sind. Durch den Einsatz eines Automounters wird die Verbindung erst dann aufgebaut, wenn auf das Verzeichnis zugegriffen wird. Beim Zugriff auf auswechselbare Datentrger wie Disketten oder CDs wird es oft als lstig empfunden, dass diese manuell eingebunden werden mssen, bevor auf sie zugegriffen werden kann. Der Automounter nimmt dem Benutzer das manuelle Einbinden solcher Medien ab. Das Paket autofs wird ber die Datei /etc/auto.master konguriert. Sie sieht nach der erstmaligen Installation des Pakets so aus:
# $Id: fhs.tex,v 1.14 2004/02/27 21:05:45 wulfa Exp $ # Sample auto.master file # Format of this file: # mountpoint map options # For details of the format look at autofs(8). /misc /etc/auto.misc

Leere Zeilen und solche, die mit einem Doppelkreuz (#) beginnen, haben keine Bedeutung. Alle brigen Zeilen mssen folgendes Format haben: Verzeichnis Konfigurationsdatei [Optionen] Mit Verzeichnis wird ein Verzeichnis angegeben, fr das der Automounter zustndig sein soll. Fr jedes Verzeichnis gibt es eine eigene Kongurationsdatei, die beschreibt, welche Datentrger in welches Unterverzeichnis des angegebenen Verzeichnisses bei Bedarf gemountet werden. In der oben gezeigten Datei wird angegeben, dass der Automounter das Verzeichnis /misc kontrollieren soll und dass in der Datei /etc/auto.mis angegeben ist, welcher Datentrger in welches Unterverzeichnis von /misc eingebunden werden soll. Hinter der Angabe der Kongurationsdatei lassen sich noch einige Optionen angegeben. Die wichtigste Option ist - -timeout, die bestimmt, dass nach Ablauf einer Zeit ein Datentrger wieder aus dem Dateisystem entfernt wird, wenn er nicht erneut benutzt worden ist. Die Zeit ist hinter der Option in Sekunden anzugeben, der voreingestellte Wert betrgt 5 Minuten. Um zu bewirken, dass alle Datentrger, die in Unterverzeichnisse von /misc gemountet werden,
4

Ein anderes Automounting-System steht mit dem Paket amd zur Verfgung.

14.3 Verwaltung des Dateisystems

483

nach 60 Sekunden Inaktivitt wieder aus dem Dateisystem entfernt werden sollen, ist der Eintrag in /etc/auto.master zu ndern: /misc /etc/auto.misc - -timeout 60 Die Kongurationsdatei fr das Verzeichnis /misc (/etc/auto.misc) ist in dem Paket ebenfalls enthalten. Sie sieht nach der erstmaligen Installation so aus:
# # # # $Id: fhs.tex,v 1.14 2004/02/27 21:05:45 wulfa Exp $ This is an automounter map and it has the following format key [ -mount-options-separated-by-comma ] location Details may be found in the autofs(5) manpage -ro -fstype=ext2 -fstype=ext2 -fstype=iso9660,ro -fstype=auto ftp.kernel.org:/pub/linux :/dev/hda1 :/dev/hdd :/dev/hdc :/dev/fd0

kernel boot removable cd floppy

Auch in dieser Datei haben leere Zeilen und solche, die mit einem Doppelkreuz Beginnen, keine Bedeutung. Alle anderen Zeilen bestehen aus drei Feldern, durch Leerzeichen voneinander getrennt. Die Felder haben folgende Bedeutung: 1. Im ersten Feld steht der Name eines Unterverzeichnisses des Verzeichnisses, fr das die Datei zustndig ist. Der erste Eintrag (kernel) bezeichnet in diesem Fall das Verzeichnis /misc/kernel und der zweite das Verzeichnis /misc/boot. 2. Im zweiten Feld benden sich die Optionen, mit denen das Programm mount (S. 835) vom Automounter aufgerufen wird, sobald der Datentrger eingebunden werden soll. 3. Das dritte Feld beschreibt den einzubindenden Datentrger. Dabei wird zunchst der Name des Rechners angegeben, der den Datentrger bzw. ein Verzeichnis ber NFS zur Verfgung stellt. Hinter dem Doppelpunkt wird der Name des Verzeichnisses auf dem entfernten Rechner angegeben. Datentrger, die an den lokalen Rechner angeschlossen sind (lokale Disketten oder CDs), erhalten keinen Eintrag vor dem Doppelpunkt und dahinter den Namen der Gertedatei, die den einzubindenden Datentrger darstellt. Die Datei muss an die lokalen Gegebenheiten angepasst werden. Wenn der Automounter dazu genutzt werden soll, CDs und Disketten automatisch einzubinden, sollte sie nur noch die beiden mit cd und oppy beginnenden Eintrge enthalten. Der Name der Gertedatei, welche das CD-Laufwerk reprsentiert, ist ebenfalls anzupassen. Beispiel:
cd floppy -fstype=iso9660,ro -fstype=auto :/dev/hda :/dev/fd0

Nach jeder Vernderung einer Kongurationsdatei des Automounters muss dieser neu gestartet werden. Dies geschieht mit dem Skript /etc/init.d/autofs, das auch whrend des Systemstarts aufgerufen wird: debian:~# /etc/init.d/autofs restart

484

14 Verzeichnisstruktur und Dateisysteme

Arbeiten mit dem Automounter Nachdem der Automounter konguriert und neu gestartet wurde, kann auf die kongurierten Verzeichnisse zugegriffen werden. Im Gegensatz zum normalen Verfahren existieren die Verzeichnisse erst dann, wenn die Datentrger tatschlich eingebunden werden. Wenn Sie das Programm wie oben beschrieben konguriert haben, zeigt folgendes Kommando ein zunchst leeres Verzeichnis an: joe@debian:~$ ls /misc Wenn sich jedoch eine Diskette mit Daten im Laufwerk bendet, fhrt das nchste Kommando dazu, dass die Diskette automatisch eingebunden wird und ihr Inhalt angezeigt wird: joe@debian:~$ ls /misc/floppy Oft wird jedoch gewnscht, dass die Verzeichnisse auch sichtbar sind, wenn der Datentrger noch nicht eingebunden ist. Hierzu kann man sich mit symbolischen Links behelfen. Beispielsweise knnte das Verzeichnis /oppy gelscht werden und stattdessen ein symbolischer Link mit dem Namen /oppy auf das Verzeichnis /misc/oppy erzeugt werden: debian:~# rmdir /floppy debian:~# ln -s /misc/floppy /floppy Danach fhrt jeder Zugriff auf /opyy dazu, dass in Wirklichkeit auf das Verzeichnis /misc/oppy zugegriffen wird und der Datentrger dadurch automatisch eingebunden wird, falls er dies noch nicht ist. Achtung: Die Verwendung des Automounters ndert nichts an der Tatsache, dass Disketten erst dann aus dem Laufwerk genommen werden drfen, wenn sie nicht mehr in das Dateisystem eingebunden sind. Anderenfalls knnen Daten verloren gehen! Es muss immer abgewartet werden, bis der Automounter den Datentrger aus dem Dateisystem entfernt hat. Dies lsst sich mit den Kommandos df (S. 790) oder mount (S. 835) berprfen. Alternativ kann der Automounter mit folgendem Kommando dazu gebracht werden, alle Datentrger, die nicht in Benutzung sind, sofort aus dem Dateisystem zu entfernen: debian:~# killall -USR1 automount Weil das Kommando nur vom Verwalter benutzt werden darf (der AutomountProzess gehrt dem Verwalter), empehlt sich die Verwendung des Pakets sudo, um auch gewhnlichen Benutzern zu erlauben, das Kommando auszufhren. Dazu ist der Datei /etc/sudoers folgende Zeile hinzuzufgen: ALL ALL=NOPASSWD:/usr/bin/killall -USR1 automount Gewhnliche Benutzer knnen das sofortige Entfernen unbenutzter Datentrger dann durch dieses Kommando erzwingen: joe@debian:~$ sudo killall -USR1 automount

14.3 Verwaltung des Dateisystems

485

Benutzerschreibrechte Ein weiteres Problem bei der Verwendung des Automounters ergibt sich daraus, dass der eigentliche Mountvorgang durch den Automounter vollzogen wird. Weil beispielsweise DOS-formatierte Datentrger keine Besitzer oder Gruppen zu Dateien speichern, gehren Dateien auf solchen Datentrgern immer dem Benutzer, der den Datentrger eingebunden hat, es sei denn, beim Mounten wird etwas anderes angegeben. Und weil weiter der Automounter-Prozess dem Verwalter gehrt, gehren Dateien auf automatisch eingebundenen Disketten, die DOS-formatiert sind, dem Verwalter, und normale Benutzer knnen sie nicht verndern. In der Regel wird jedoch ein Verhalten erwnscht, dass es dem Benutzer, der auf eine solche Diskette zugreift, auch gestattet, Dateien auf der Diskette zu verndern oder neue anzulegen. Dies kann auf zweierlei Weise erreicht werden. Eine Mglichkeit ist, den Automounter so zu kongurieren, dass er Disketten immer mit Schreib- und Leserechten fr einen bestimmten Benutzer konguriert. Der Eintrag in der Datei /etc/auto.misc sieht dann so aus: floppy -fstype=auto,uid=1000,gid=1000 :/dev/fd0 Die Mount-Optionen uid und gid bewirken, dass der Datentrger immer mit der angegebenen User- und Gruppen-ID eingebunden wird. Die Benutzer- und GruppenID eines bestimmten Benutzers knnen Sie mit dem Kommando id (S. 810) ermitteln. Dieses Verfahren ist jedoch zu unexibel, wenn verschiedene Benutzer auf den Datentrger zugreifen sollen. Dann empehlt es sich, den Datentrger mit der Gruppen-ID einer Gruppe einzubinden, in die alle Benutzer des Systems aufgenommen werden, denen der schreibende Zugriff erlaubt sein soll: floppy -fstype=auto,gid=25,umask=002,quiet :/dev/fd0 Die Gruppen-ID 25 entspricht standardmig der Gruppe oppy, und die Option umask=002 bewirkt, dass nicht nur Besitzer, sondern auch Gruppenmitglieder auf den Datentrger schreiben knnen. Durch die Option quiet wird erreicht, dass Versuche, Besitzer oder Gruppe auf dem Datentrger zu verndern, nicht fehlschlagen, obwohl sie nicht wirklich durchgefhrt werden knnen. 14.3.9 Zeitstempel Zu jeder Linux/UNIX-Datei gehren drei Zeitangaben, die Zeitstempel (timestamp) genannt und automatisch verwaltet werden: die Zeit des jngsten lesenden oder schreibenden Zugriffs (access time, atime), die Zeit des jngsten schreibenden Zugriffs (modication time, mtime), die Zeit der jngsten nderung des Datei-Status (status change time, ctime). Ein Lesezugriff ndert nur den ersten Stempel (atime). Ein schreibender Zugriff aktualisiert die beiden ersten Stempel (atime und mtime), weil dem Schreibvorgang ein Lesevorgang vorausgeht. Der Datei-Status umfasst den Besitzer samt Gruppe,

486

14 Verzeichnisstruktur und Dateisysteme

die Zugriffsrechte und den Linkzhler, also Informationen aus der Inode. Schreiben, eine nderung der Zugriffsrechte mittels chmod oder das Hinzufgen von harten Links mittels ln ndert den dritten Stempel. Kurz und bndig ist das auf der Manualseite zum Systemaufruf stat nachzulesen. Bei Verzeichnissen gilt das Durchsuchen oder Hindurchgehen nicht als lesender Zugriff, Lschen oder Hinzufgen von Dateien bedeutet Schreiben, Auflisten mittels ls Lesen. Mittels des Kommandos ls kann man sich die Zeitstempel ansehen (und man sollte auch einmal mit einer temporren Datei alle nderungen durchspielen): ls -l zeigt die mtime an, also die Zeit des jngsten schreibenden Zugriffs auf die Datei, wichtig, ls -lu zeigt die atime an, also die Zeit des jngsten lesenden oder schreibenden Zugriffs auf die Datei, ls -lc zeigt die ctime an, also die Zeit der jngsten Statusnderung (Inhalt, Besitzer, Zugriffsrechte, Links). Auf manchen Linuxen ndet sich ein Kommando stat, das den Systemaufruf stat umhllt und die Informationen aus der Inode darunter die Zeitstempel lesbar wiedergibt. Der Zeitpunkt der Erschaffung einer Datei das wre der allererste schreibende Zugriff wird nicht festgehalten und ist auch aus technischer Sicht uninteressant. Nur wenn eine Datei seit ihrer Erzeugung nicht verndert worden ist, deckt sich die mtime mit dem Entstehungsdatum. nderungen am Datei-Inhalt hingegen sind fr Werkzeuge wie make und fr Datenbanken wichtig, um entscheiden zu knnen, ob eine Datei aktuell ist.

15 Benutzer und Gruppen

15.1 Grundbegriffe
Ein Betriebssystem, das mehreren Benutzern gleichzeitig das Arbeiten mit dem Rechner ermglicht, muss Mechanismen bereitstellen, mit denen die einzelnen Benutzer voreinander geschtzt werden. Der wichtigste Mechanismus dazu ist dabei das Benutzerkonzept. Im Gegensatz zu einem Taschenrechner oder einem MSWindows-98-PC werden Programme unter Linux/UNIX immer von einem Benutzer ausgefhrt. Das Betriebssystem speichert zu jedem Prozess eine Benutzer-ID und kann anhand dieser ID berprfen, ob der Prozess berechtigt ist, bestimmte Aktionen auszufhren oder nicht. Aus diesem Grund ist es zwingend erforderlich, sich vor der Benutzung des Rechners anzumelden. Hierdurch erfhrt das Betriebssystem, mit wessen Benutzer-ID ein Prozess oder eine Sitzung zu starten ist. Nicht nur zu jedem Prozess, sondern auch zu weiteren Ressourcen werden Benutzer-IDs gespeichert, beispielsweise zu jeder Datei und jedem Verzeichnis. Man sagt deswegen auch, dass eine Datei oder ein Verzeichnis einem Benutzer gehrt. Wenn ein Prozess auf eine Datei zugreift, berprft das Betriebssystem anhand der Benutzer-ID des Prozesses und der Benutzer-ID der Datei, ob die Datei dem Besitzer des Prozesses gehrt, und entscheidet daraufhin, ob der Zugriff gestattet wird. Oft ist es gewnscht, einigen Benutzern den gemeinsamen Zugriff auf bestimmte Ressourcen zu erlauben. So hat man es oft mit Arbeitsgruppen oder Abteilungen zu tun, die gemeinsam bestimmte Daten bearbeiten, wobei Benutzer aus anderen Arbeitsgruppen nicht in der Lage sein sollen, die Dateien der Gruppe zu verndern. Deswegen gibt es neben dem Benutzerkonzept das Gruppenkonzept. Ressourcen wie Prozesse oder Dateien sind nicht nur einer Benutzer-ID, sondern auch einer GruppenID zugeordnet. Jeder Benutzer gehrt mindestens einer Gruppe an, seiner primren Gruppe. Es ist aber auch mglich, dass Benutzer weiteren Gruppen angehren. Wenn ein Prozess eine neue Datei erzeugt, ist diese Datei dem Benutzer zugeordnet, mit dessen ID der Prozess ausgefhrt wird. Ebenso ist die Datei der Gruppe zugeordnet, welcher der Benutzer angehrt. Weil ein Benutzer mehreren Gruppen angehren kann, gibt es fr jeden Benutzer immer eine aktive oder aktuelle Gruppe. Die neu angelegte Datei wird der Gruppen-ID der aktiven Gruppe des jeweiligen

488

15 Benutzer und Gruppen

Benutzers zugeordnet. Von der aktiven Gruppe ist die primre Gruppe zu unterscheiden. Die primre Gruppe eines Benutzers ist die Gruppe, die nach der Anmeldung des Benutzers automatisch seine aktive Gruppe ist. Gruppen und Benutzer werden systemintern durch Zahlen zwischen 0 und 65535 dargestellt. Hierbei handelt es sich um die eigentlichen Gruppen- und BenutzerIDs. Darber hinaus ist jeder Benutzer- und Gruppen-ID ein Name zugeordnet. Man spricht dabei von Benutzer- und Gruppenname. Die Benutzer-ID 0 entspricht immer dem Konto des Systemverwalters; ebenso entspricht die Gruppen-ID 0 der Gruppe des Verwalters. Beide tragen den Namen root. Unter Debian GNU/Linux besitzt jeder Benutzer eine eigene Gruppe, die gleichzeitig seine primre Gruppe ist. Wenn ein neuer Benutzer angelegt wird, wird auch eine neue Gruppe angelegt, die den gleichen Namen trgt, wie der neue Benutzer. Diese Gruppe wird dann zur primren Gruppe des Benutzers. Das ist zwar nicht immer zweckmig, aber ein guter Ausgangspunkt. Mit Dateien und Verzeichnissen wird fr den Besitzer und die assoziierte Gruppe gespeichert, was die Benutzer mit der Datei oder dem Verzeichnis machen drfen. Dabei werden drei verschiedene Rechte voneinander unterschieden, nmlich das Recht, eine Datei zu lesen, sie zu verndern sowie sie als Programm auszufhren. Die gleichen Rechte werden darber hinaus fr alle weiteren Benutzer des System gespeichert, also fr solche Benutzer, die weder Besitzer der Datei sind, noch der assoziierten Gruppe angehren (Rest der Welt). Die Rechte an Dateien werden mit dem Kommando chmod (S. 782) gendert und mit dem Kommando ls (S. 823) in Verbindung mit der Option -l angezeigt. Der Besitzer einer Datei darf nur vom Verwalter mit dem Kommando chown (S. 783) gendert werden. Zum ndern der mit einer Datei assoziierten Gruppe wird das Kommando chgrp (S. 781) benutzt. Dieses Kommando kann vom Verwalter benutzt werden. Auerdem drfen die Dateibesitzer Dateien neuen Gruppen zuordnen, sofern sie selbst Mitglied der neuen Gruppe sind. Fr das System ist ein Benutzer ein Bndel von Rechten. Ob dahinter ein Mensch, eine Gruppe von Menschen, ein Dmon oder sonstwas steht, ist dem System gleichgltig. Das Benutzerkonzept ist auf Datenbanken stark verfeinert, aber das Konzept von Linux/UNIX reicht in vielen Fllen aus, wenn es richtig angewendet wird.

15.2 Die Dateien /etc/passwd und /etc/group


Das System speichert die Benutzerinformationen in der Datei /etc/passwd und die Gruppeninformationen in der Datei /etc/group. Beide Dateien enthalten in jeweils einer Zeile einen Eintrag fr eine Gruppe bzw. einen Benutzer. Jeder Eintrag besteht aus mehreren Feldern, die durch Doppelpunkte ohne Leerzeichen voneinander getrennt sind. Ein Eintrag in der Datei /etc/passwd sieht so aus:
meier:cMU0GTfPzSlfk:1127:1127:M. Meier,111,4483912923,2991923,Boss /home/meier:/bin/bash

15.3 Schattenpasswrter

489

Die einzelnen Felder haben die folgende Bedeutung: 1. 2. 3. 4. 5. Benutzername, verschlsseltes Passwort, Benutzer-ID, Gruppen-ID der primren Gruppe des Benutzers, GECOS-Feld. Das Feld enthlt Zusatzinformationen ber den Benutzer wie seinen realen Namen, Telefonnummer usw. Standardmig gibt es in diesem Feld fnf durch Kommata getrennte Unterfelder, welche die folgenden Informationen aufnehmen: a) brgerlicher Name des Benutzers, b) Raumnummer, c) Telefonnummer am Arbeitsplatz, d) private Telefonnummer, e) Kommentar, Das Feld darf ganz oder teilweise leer bleiben. Der Name GECOS stammt von einem frhen Betriebssystem der Firma General Electric. 6. Home-Verzeichnis, 7. das Programm, das nach der Anmeldung aufgerufen wird, meist eine Shell.

Die Eintrge sind von allen Benutzern lesbar, je nach Konguration des Rechners sogar vom ganzen Internet. Die Datei /etc/group mit den Gruppeninformationen hat weniger Felder: verkauf:/dSX7lo8RrB2U:2000:meier,schulze Die Bedeutungen der Felder in dieser Datei sind: 1. 2. 3. 4. Bezeichnung der Gruppe, Passwort der Gruppe, ID der Gruppe, eine komma-separierte Liste ohne Leerzeichen der Benutzernamen, die in der Gruppe Mitglied sind.

Achtung: Whrend des normalen Betriebs des Systems sollten die Dateien /etc/passwd und /etc/group nicht direkt mit einem Texteditor bearbeitet werden. Zur Verwaltung von Benutzern und Gruppen sind entweder die dafr vorgesehenen Werkzeuge zu verwenden oder die Kommandos vipw (S. 884) und vigr (S. 883), welche die Dateien vor der Vernderung durch andere Benutzer schtzen, so lange sie bearbeitet werden.

15.3 Schattenpasswrter
Wie oben beschrieben werden die verschlsselten Passwrter fr Benutzer und Gruppen in den beiden Dateien /etc/passwd und /etc/group gespeichert. Weil diese Dateien jedoch fr alle Benutzer des Systems lesbar sein mssen, ergibt sich ein Sicherheitsrisiko, weil es dadurch mglich ist, schlechte Passwrter durch automatisiertes

490

15 Benutzer und Gruppen

Ausprobieren zu erraten. Dieses Problem kann gelst werden, indem die verschlsselten Passwrter in eigene Dateien verlagert werden, die nur vom Verwalter lesbar sind. Dadurch ist das Erraten von Passwrtern schwieriger, weil jeder Rateversuch mit einem Versuch zur Anmeldung am System einhergehen msste, was viel lnger dauert und auffllt. Man bezeichnet dieses Verfahren auch als die Verwendung von Schattenpasswrtern. Die Passwrter werden in den Dateien /etc/shadow fr die Benutzerpasswrter und /etc/gshadow fr die Gruppenpasswrter gespeichert. In der Datei /etc/passwd bendet sich im Passwort-Feld an Stelle des verschlsselten Passwortes der Buchstabe x. Unter Debian GNU/Linux wird die Verwendung von Schattenpasswrter durch die Eingabe des folgenden Kommandos aktiviert: debian:~# shadowconfig on Wenn spter wieder auf das ltere und unsicherere Verfahren gewechselt werden soll, ist dieses Kommando einzugeben: debian:~# shadowconfig off Das kommt aber selten vor. Meist verschrft man Sicherheitsmanahmen.

15.4 Vordenierte Benutzerkonten und Gruppen


Direkt nach der Einrichtung eines Debian-Systems sind bereits ein paar Dutzend Benutzerkonten und Gruppen deniert. Man bezeichnet diese Benutzer und Gruppen auch als Systembenutzer bzw. Systemgruppen, weil sie keinem realen Benutzer zugeordnet sind. Sie werden aus Grnden der Sicherheit und Ordnung bentigt. Hintergrundprogramme (Dmonen) werden oft mit der ID eines Systembenutzers und nicht mit der des Verwalters ausgefhrt. Dies bietet den Vorteil, dass solche Programme nichts tun knnen, wofr die Rechte des Verwalters bentigt werden, und deswegen dass System nicht ernsthaft beschdigen knnen, falls sie einmal durchdrehen. Die Systemgruppen dienen vor allem zur Rechtevergabe. Bekanntlich ist gewhnlichen Benutzern der direkte Zugriff auf die Hardware des Systems verboten. Die Gertedateien, durch welche die Hardware im System dargestellt wird, sind unterschiedlichen Systemgruppen zugeordnet. Beispielsweise sind alle Gertedateien, die im Zusammenhang mit Soundkarten stehen, der Gruppe audio zugeordnet. Gertedateien, die Festplatten darstellen, gehren der Gruppe disk an und solche Gertedateien, mit denen Einwahlverbindungen aufgebaut werden knnen (Modemanschlsse, ISDN-Gerte), der Gruppe dialout. Die Rechte dieser Gertedateien sind dabei so gesetzt, dass Besitzer und Gruppe auf das Gert schreibend und lesend zugreifen drfen. Wenn der Systemverwalter einem Benutzer das Recht zur Benutzung der Soundkarte erteilen mchte, kann er diesen in die Gruppe audio aufnehmen, woraufhin er als Gruppenmitglied Lese- und Schreibrechte auf die Gertedateien hat. Konten fr gewhnliche (menschliche) Benutzer und Gruppen werden unter Debian GNU/Linux per Konvention mit Benutzer- und Gruppen-IDs ab 1000 erzeugt. Das schafft ausreichend Platz fr Systembenutzer, Dmonen und dergleichen. Die

15.5 Arbeiten mit Benutzer- und Gruppenkonten

491

IDs von 0 bis 99 werden von Debian statisch fr bestimmte Systembenutzer und -gruppen belegt und knnen sich whrend der Aktualisierung des Systems ndern. Die IDs von 100 bis 999 sind fr Debian-Pakete reserviert. Jedes Paket, das whrend seiner Installation einen neuen Systembenutzer oder eine neue Systemgruppe erzeugt, verwendet dafr Benutzer- und Gruppen-IDs in diesem Bereich. Die hchste Gruppen- und Benutzer-ID, die fr gewhnliche Benutzer vergeben werden darf, ist 29999. Das erlaubt einen grozgigen Umgang mit den IDs. Benutzer und Gruppe nobody bekommen die unmgliche ID 65534 oder -1.

15.5 Arbeiten mit Benutzer- und Gruppenkonten


Standardmig drfen gewhnliche Benutzer einige Einstellungen ihrer eigenen Benutzerkonten verndern: Das eigene Passwort wird mit dem Programm passwd (S. 843) gendert. Die eigene Standardshell wird mit dem Programm chsh (S. 784) gendert. Dabei darf nur eine Shell ausgewhlt werden, die in der Datei /etc/shells eingetragen ist. Mit dieser Datei kann der Verwalter bestimmen, zwischen welchen Shells Benutzer selbstndig whlen drfen. Ein Teil der Informationen im GECOS-Feld (Raumnummer und Telefonnummern) knnen von gewhnlichen Benutzern mit dem Kommando chfn gendert werden. Der Verwalter kann diese Kommandos mit zustzlichen Mglichkeiten und fr die Konten aller Benutzer verwenden. So hat er das Recht, auch solche Shells zu vergeben, die nicht in /etc/shells eingetragen sind, oder den brgerlichen Namen oder das Passwort eines Benutzers zu ndern. Den eigenen Benutzernamen kann man sich jederzeit mit dem Kommando whoami (S. 887) anzeigen lassen. Das Kommando who (S. 887) gibt die Namen der zur Zeit an das System angemeldeten Benutzer aus. Das Kommando groups (S. 804) gibt die Namen aller Gruppen aus, in denen sich der aufrufende Benutzer bendet, und mit id (S. 810) erfhrt man die eigene Benutzer-ID sowie die IDs aller Gruppen, in denen man Mitglied ist. Das Kommando zeigt auch an, welche Gruppe zur Zeit aktiv ist. Mit Hilfe des Kommandos su (S. 867) (substitute user) wird die Benutzeridentitt gewechselt. Dies ist hilfreich, wenn man etwas mit den Rechten des Verwalters tun mchte, ohne sich erneut anmelden zu wollen. Als Verwalter ist es mglich, mit su jede Benutzeridentitt anzunehmen; gewhnliche Benutzer werden nach Eingabe des Kommandos aufgefordert, das Passwort des Benutzerkontos anzugeben, zu dem sie wechseln mchten. Das Kommando newgrp (S. 841) dient zum Wechseln der aktiven Gruppe. Er kann ohne Passwort benutzt werden, um eine Gruppe als aktive Gruppe zu verwenden, deren Mitglied man bereits ist. Wenn die Gruppe mit einem Passwort versehen ist und der Benutzer kein Mitglied der Gruppe ist, muss das Passwort angegeben werden. Wenn die Gruppe kein Passwort hat und der Benutzer kein Mitglied der Gruppe ist, kann in die Gruppe nicht gewechselt werden.

492

15 Benutzer und Gruppen

15.5.1 Verwaltung von Benutzern und Gruppen Zum Anlegen neuer Benutzer dient das Kommando adduser (S. 769). Dem Kommando ist der gewnschte Name des anzulegenden Benutzerkontos zu bergeben. Beispiel: debian:~# adduser huber Mit dem Kommando userdel (S. 882) knnen bestehende Benutzerkonten vom System entfernt werden. Dem Kommando ist ebenfalls der Name des zu entfernenden Kontos zu bergeben. Beispiel: debian:~# userdel huber Standardmig werden die Dateien des zu lschenden Benutzers dabei nicht gelscht. Wenn das Programm mit dem Parameter -r aufgerufen wird, werden das Home-Verzeichnis, alle darin enthaltenen Daten sowie die Maildatei des Benutzers ebenfalls entfernt. Dateien und Verzeichnisse des Benutzers, die sich an einem anderen Ort benden, mssen manuell gelscht werden. Dies geschieht mit dem folgenden Kommando (siehe auch nd (S. 798)): debian:~# find / -user huber | xargs rm -i Mit dem Kommando usermod (S. 882) lassen sich alle Eigenschaften eines Benutzerkontos ndern. Mit dem Kommando lsst sich auch einstellen, wann ein Benutzerkonto abluft. Weitere Einstellungen zur Gltigkeitsdauer von Passwrtern und Benutzerkonten lassen sich mit dem Kommando chage (S. 779) vornehmen. Das Kommando erlaubt zu bestimmen, nach wievielen Tagen ein Passwort frhestens und sptestens gendert werden muss. Auerdem kann angegeben werden, wann ein Konto gesperrt wird, wenn das Passwort nicht rechtzeitig gendert wurde. Es erhht die Sicherheit des Systems, wenn die Benutzer verpichtet werden, ihre Passwrter regelmig auszutauschen. Neue Gruppen werden mit dem Kommando addgroup (S. 768) erzeugt. Verwaltet werden Gruppen mit dem Programm gpasswd (S. 802). Um den Benutzer huber der Gruppe schicht17 zuzuordnen, ist das Programm so aufzurufen: debian:~# gpasswd -a huber schicht17 Mit der Option -d an Stelle von -a wird ein Benutzer aus einer Gruppe entfernt. Gruppen knnen eigene Verwalter haben. Diese Verwalter sind berechtigt, Benutzer in ihre Gruppen aufzunehmen und aus diesen zu entfernen sowie Passwrter fr die Gruppe zu vergeben. Mit dem folgenden Kommando wird der Benutzer huber zum Verwalter der Gruppe schicht17: debian:~# gpasswd -A huber schicht17 Jeder Benutzer kann in eine Gruppe mit einem Passwort wechseln, sofern er das Passwort kennt. In Gruppen ohne Passwort kann nur von Benutzern gewechselt werden, die Mitglied der Gruppe sind. Ein Gruppenpasswort kann vergeben oder gendert werden, indem das Kommando gpasswd vom Systemverwalter oder vom Verwalter der Gruppe mit dem Namen der Gruppe als Argument aufgerufen wird:

15.5 Arbeiten mit Benutzer- und Gruppenkonten

493

joe@debian:~$ gpasswd schicht17 Zum Lschen von Gruppen dient das Kommando groupdel (S. 804). 15.5.2 Gemeinsames Zugreifen auf Dateien und Verzeichnisse Standardmig wird fr jeden Benutzer eine eigene Gruppe angelegt, die den Namen des Benutzers trgt und die primre Gruppe des Benutzers ist. Dateien, die von Benutzern neu erzeugt werden, gehren dem Benutzer und sind mit seiner Gruppe verbunden. Mit welchen Berechtigungen eine Datei standardmig erzeugt wird, ist hingegeben abhngig von der umask des Prozesses. Die umask wird in der Bash und anderen Shells mit dem Kommando umask (S. 590) eingestellt. Standardmig ist ihr Wert 022, was zur Folge hat, dass Dateien mit der Berechtigung zum Lesen und Schreiben fr den Benutzer sowie mit der Berechtigung zum Lesen fr die Gruppe und alle anderen Benutzer erzeugt werden. Sicherer sind die Werte 027 oder 077, die den Rest der Welt aussperren. Damit Gruppenmitglieder Dateien verndern knnen, sind die Berechtigungen mit dem Kommando chmod (S. 782) fr alle bereits existierenden Dateien und Verzeichnisse zu ndern. Auerdem ist die umask anzupassen, damit neue Dateien gleich mit den richtigen Berechtigungen erzeugt werden. Der Wert 002 bewirkt, dass Dateien mit der Berechtigung zum Lesen und Schreiben sowohl fr den Benutzer als auch fr die assoziierte Gruppe erzeugt werden und von anderen Benutzern gelesen werden knnen. Die umask kann fr Benutzer, welche die Bash oder die Korn-Shell als Standardshell verwenden, in der Datei /etc/prole (siehe S. 509) eingestellt werden. Unglcklicherweise wirkt sich die Datei nicht auf Sitzungen aus, die nicht mit der Standardshell, sondern ber einen graschen Login-Manager (z. B. xdm) gestartet werden. Aus diesem Grund ist es mglich, die initiale umask direkt in der Datei /etc/passwd anzugeben. Sie wird dort als zustzliches Kommentarfeld wie folgt eingetragen:
meier:x:1127:1127:M. Meier,111,448391292,299192,Verkauf,umask=027: /home/meier:/bin/bash

Eine solche Eintragung kann durch ein umask-Kommando in der Datei /etc/prole fr Shell-Logins wieder berschrieben werden. Auerdem kann jeder Benutzer seine eigene umask zu jedem Zeitpunkt ndern. Wenn dem Benutzer karl gestattet werden soll, Dateien zu verndern, die von der Benutzerin helga erzeugt worden sind, ist die umask von Helga auf den Wert 007 zu setzen (wodurch von helga erzeugte Dateien fr die Benutzerin und die Gruppe helga les- und vernderbar sind) und karl in die Gruppe helga aufzunehmen. Die Rechte der Dateien, die vor dieser nderung erzeugt worden sind, mssen manuell aktualisiert werden. In der Regel ist es nicht erwnscht, Benutzern die Berechtigung zum ndern aller Dateien eines anderen Benutzers zu erteilen. Vielmehr sollen Benutzer einer Gruppe nur in einem Teilbereich des Dateisystems gemeinsam zum Lesen und Verndern

494

15 Benutzer und Gruppen

von Dateien berechtigt und weiterhin in der Lage sein, an anderen Stellen (z. B. in ihrem Home-Verzeichnis) Dateien anzulegen, auf die sie nur selbst zugreifen drfen. Zu diesem Zweck sind zunchst zustzliche Gruppen einzurichten und die Benutzer in diese Gruppen aufzunehmen. Die umask aller beteiligten Benutzer muss so eingestellt werden, dass Dateien mit der Berechtigung zum Lesen und Schreiben fr die Gruppe erstellt werden (z. B. 007). Im nchsten Schritt ist fr jede Gruppe ein Verzeichnis anzulegen, in dem die Gruppenmitglieder gemeinsam zum Verndern der darin enthaltenen Daten berechtigt sind. Dieses Verzeichnis muss mit der Gruppe assoziiert sein und Schreib-, Lese- und Ausfhrberechtigung fr die Gruppe haben. Zustzlich ist das Set-Group-ID-Bit (SGID) des Verzeichnisses zu setzen. Dieses Bit bewirkt bei Verzeichnissen, dass Dateien in dem Verzeichnis whrend ihrer Erzeugung nicht der primren Gruppe des Benutzers, sondern der Gruppe zugeordnet werden, die mit dem Verzeichnis assoziiert ist1 . Dadurch wird bewirkt, dass alle Mitglieder einer solchen Gruppe eine in dem Verzeichnis von einem anderen Gruppenmitglied neu angelegte Datei ebenfalls bearbeiten drfen, weil sie Mitglied der Gruppe sind und die Datei aufgrund der umask-Einstellung mit der Berechtigung zum Lesen und Schreiben fr die Gruppenmitglieder erzeugt wurde. Beispiel: Die Mitarbeiter Meier, Schulze und Kunze der Abteilung Verkauf sollen das Recht erhalten, im Verzeichnis /abt/verkauf Dateien zu lesen, zu erzeugen, zu verndern oder zu lschen. Zu diesem Zweck wird zunchst die Gruppe verkauf angelegt: debian:~# addgroup verkauf Dann werden die umask-Einstellungen in der Datei /etc/passwd mit vipw (S. 884) und /etc/prole angepasst, und die Benutzer werden in die Gruppe aufgenommen: debian:~# gpasswd -a meier verkauf Das Kommando ist fr die anderen Benutzer zu wiederholen. Schlielich wird das gemeinsame Verzeichnis fr die Gruppe angelegt: debian:~# mkdir -p /abt/verkauf und mit den entsprechenden Rechten ausgestattet: debian:~# chgrp verkauf /abt/verkauf debian:~# chmod g+rwxs /abt/verkauf 15.5.3 Benutzern Verwalteraufgaben bertragen SUID-Bit Gelegentlich ist es erwnscht oder sogar notwendig, Benutzern das Recht einzurumen, bestimmte Programme mit den Rechten des Systemverwalters auszufhren.
1 Dieses Verhalten des SGID-Bits bei Verzeichnissen ist eine Erweiterung, die nicht von allen UNIX-basierten Betriebssystemen untersttzt wird.

15.5 Arbeiten mit Benutzer- und Gruppenkonten

495

Ein Beispiel ist das Programm passwd (S. 843). Es wird von gewhnlichen Benutzern eingesetzt, um das eigene Passwort zu ndern, wobei die Datei /etc/passwd oder /etc/shadow gendert werden muss, um die neuen Passwrter zu speichern. Weil diese Dateien aus Sicherheitsgrnden dem Verwalter gehren und nur von diesem gendert werden knnen, muss das Programm passwd mit den Rechten des Verwalters ausgefhrt werden, um die nderung durchfhren zu knnen. Hierzu dient ein besonderes Bit, dass mit den Dateirechten zu jeder Datei gespeichert wird. Es ist das Set-User-ID-Bit (SUID). Programme, bei denen dieses Bit gesetzt ist, werden nicht mit der ID des aufrufenden Benutzers ausgefhrt, sondern mit der ID des Besitzers des Programms, meist root. Dieses Bit lsst sich mit dem Kommando chmod (S. 782) setzen und entfernen. Sie erkennen es in der Ausgabe von ls -l an dem Buchstaben s an der Stelle, wo sonst das Recht zur Ausfhrung fr den Benutzer ausgegeben wird. Bei dem Programm passwd sieht das so aus: -rwsr-xr-x 1 root root 25552 Feb 29 21:23 /usr/bin/passwd Falsch gesetzte SUID-Bits stellen eine Gefahr fr das System dar. Wrde dieses Bit fr das Programm /bin/rm gesetzt, htte das zur Folge, dass jeder Benutzer jede Datei auf dem System lschen knnte, weil das Programm dann von jedem Benutzer mit Verwalterrechten ausgefhrt werden wrde, der ja bekanntlich das Recht zum Lschen aller Dateien hat. Deshalb wird das SUID-Bit restriktiv vergeben und besonders berwacht, zumindest auf ordentlich verwalteten Systemen. Zur Verwaltung von SUID-Programmen wird das Paket suidmanager empfohlen. Es verwaltet Information darber, welche Dateien und Verzeichnisse mit besonderen Rechten ausgestattet sein sollen, in einer eigenen Kongurationsdatei (/etc/suid.conf ). Durch einen Cron-Job wird regelmig geprft, ob die tatschlichen Rechte der Dateien mit der Konguration bereinstimmen. Wenn dies nicht der Fall sein sollte, werden die Rechte an die Konguration angepasst. Um ein Programm als SUID-Programm anzumelden, ist das Kommando suidregister zu verwenden. Er wird folgendermaen aufgerufen: suidregister Datei Benutzer Gruppe Rechte Mit Datei ist der absolute Pfad des Programms, der Datei oder des Verzeichnisses anzugeben, fr das die besonderen Rechte gelten sollen, mit Benutzer und Gruppe werden Besitzer und Gruppe der Datei festgelegt und mit Rechte die fr die Datei zu verwendenden Rechte angegeben. Die Rechte werden dabei in oktaler Schreibweise angeben, wie es fr das Kommando chmod auf Seite 782 beschrieben ist. In vielen Fllen wird hier 4750 benutzt, was dem Setzen des SUID-Bits (4), der Berechtigung zum Lesen, Schreiben und Ausfhren fr den Verwalter (7) sowie der Berechtigung zum Lesen und Ausfhren fr die Mitglieder der assoziierten Gruppe (5) entspricht. Um die Datei /usr/local/bin/program mit diesen Rechten zu versehen und dem Eigentmer sowie der Gruppe root zuzuordnen, ist das Programm folgendermaen aufzurufen: debian:~# suidregister /usr/local/bin/program root root 4750

496

15 Benutzer und Gruppen

Mit dem Kommando suidunregister wird eine Datei wieder aus der Datei in /etc/suid.conf entfernt. Diesem Programm ist lediglich der absolute Name der Datei zu bergeben: debian:~# suidunregister /usr/local/bin/program Durch dieses Kommando wird die Information des suidmanager-Systems ber die Datei gelscht. Die eigentlichen Rechte der Datei werden nicht gendert. Dies muss zustzlich manuell erfolgen. Um das SUID-Bit fr die Datei /usr/local/bin/program manuell zu entfernen, wird das Kommando chmod so aufgerufen: debian:~# chmod u-s /usr/local/bin/program bertragen von Verwalterrechten auf einzelne Benutzer Neben dem mit dem SUID-Bit verbundenen Sicherheitsrisiko hat das Verfahren den unerwnschten Nebeneffekt, dass mit ihm allen Benutzern das Recht zum Ausfhren eines Programms mit Verwalterrechten gestattet wird. Gelegentlich mchte man jedoch nur einzelnen Benutzern die Ausfhrung bestimmter Aufgaben erlauben. So knnte ein vertrauenswrdiger Benutzer das Recht erhalten, Benutzerkonten zu erzeugen und zu lschen oder bestimmte Dienste zu starten und anzuhalten. Dieser Abschnitt stellt das Programmpaket sudo vor, mit dem dieses Problem gelst werden kann. Das Paket funktioniert prinzipiell so, dass in einer Kongurationsdatei festgelegt wird, welche Benutzer welche Programme mit wessen Rechten ausfhren drfen. Der Benutzer ruft dann ein spezielles Programm auf, welches mit den Rechten des Verwalters ausgefhrt wird und in der Kongurationsdatei nachsieht, ob der aufrufende Benutzer das Recht hat, das Programm zu benutzen. Falls dem so ist, wird dann das eigentlich auszufhrende Programm mit den Rechten des Verwalters oder anderen besonderen Rechten aufgerufen. Das Paket sudo Das Paket wird ber die Datei /etc/sudoers konguriert. In der Datei benden sich im wesentlichen drei Typen von Anweisungen: Alias-Direktiven Hiermit werden Benutzer und Programme zu Gruppen zusammengefasst. Einstellungen Diese Direktiven beginnen jeweils mit Defaults und dienen dazu, Voreinstellungen des Programms zu verndern. Rechtezuteilungen Mit diesen Anweisungen wird Benutzern gestattet, bestimmte Programme mit besonderen Rechten auszufhren. Auerdem darf die Datei durch das #-Zeichen eingeleitete Kommentare und leere Zeilen enthalten. Rechtezuteilungen haben das folgende Format: Wer Wo = [(Als wer)] [NOPASSWD:] Was

15.5 Arbeiten mit Benutzer- und Gruppenkonten

497

In einer solchen Anweisung wird mit Wer angegeben, welche Benutzer das Recht haben, die spezizierte Aktion auszufhren. Mit Wo werden Rechner bestimmt, auf denen die Aktion ausgefhrt werden kann2 , und mit Was wird hinter dem Gleichheitszeichen angegeben, welche Programme ausgefhrt werden drfen. Standardmig erlaubt sudo den mit Wer angegebenen Benutzern das Ausfhren der mit Was angegebenen Programme mit den Rechten des Verwalters. Optional ist es mglich, hinter dem Gleichheitszeichen in runden Klammern anzugeben, mit wessen Rechten die Programme ausgefhrt werden drfen. Der folgende Eintrag erlaubt dem Benutzer arthur auf dem Rechner printserver das Kommando lprm (S. 822) mit den Rechten des Verwalters auszufhren: arthur printserver = lprm Achtung: Die Rechte der Datei /etc/sudoers drfen standardmig nur das Lesen fr den Besitzer und die assoziierte Gruppe erlauben. Aus Sicherheitsgrnden darf kein Benutzer (auch nicht der Besitzer) berechtigt sein, in die Datei zu schreiben. Aus diesem Grund muss dieses Recht (mit chmod) addiert werden, bevor die Datei gendert wird, und hernach wieder entfernt werden, damit sudo funktioniert. Mit der beispielhaften Zeile wird es dem Benutzer arthur erlaubt, auf dem Rechner printserver folgendes Kommando zu verwenden: joe@debian:~$ sudo lprm Danach wird der Benutzer aufgefordert, sein eigenes Passwort nochmals anzugeben (und nicht das des Verwalters). Wenn das Passwort richtig angegeben wurde, wird das Kommando lprm mit den Rechten des Verwalters ausgefhrt. Der Benutzer kann danach eine Zeitlang mit sudo arbeiten, ohne sein Passwort erneut angeben zu mssen (standardmig fnf Minuten lang), danach muss es erneut eingegeben werden. Wenn die Angabe des Passwortes durch den Benutzer nicht erzwungen werden soll, kann in der Rechtezuteilung in der Datei /etc/sudoers das optionale Schlsselwort NOPASSWD: benutzt werden. Normalerweise ist es dem oder den Benutzern gestattet, dass angegebene Programm mit beliebigen Parametern aufzurufen. Im Beispiel knnte der Benutzer auch folgendes Kommando verwenden: joe@debian:~$ sudo lprm ALL oder: joe@debian:~$ sudo lprm -Phplj meier Wenn in der Datei /etc/sudoers Parameter angegeben werden wie in diesem Beispiel: arthur debian = lprm ALL
2 Dies ist nur dann von Bedeutung, wenn dieselbe Datei /etc/sudoers auf mehreren Rechnern benutzt wird.

498

15 Benutzer und Gruppen

darf das Kommando nur mit den angegebenen Parametern benutzt werden. In einer Kommandoangabe knnen auch Metazeichen benutzt werden; das Kommando kann dann von den Benutzern mit Parametern aufgerufen werden, die im Rahmen der Denition durch die Metazeichen variieren drfen. Die Alias-Denitionen dienen im wesentlichen zum einfacheren Aufbau der Datei. Es gibt folgenden Typen von Alias-Denitionen: User_Alias Hiermit werden Namen von Benutzern zu Gruppen zusammengefasst. Runas_Alias Hiermit werden Namen von Benutzern zu Gruppen zusammengefasst, die spter dazu benutzt werden knnen anzugeben, mit wessen Rechten bestimmte Programme ausgefhrt werden drfen. Host_Alias Hiermit lassen sich einzelne Rechner zu Gruppen zusammenfassen. Cmnd_Alias Mit diesem Alias werden Kommandos zu Gruppen zusammengefasst. Alias-Denitionen erfolgen in der Form: Alias-Typ Bezeichnung = Teil1, Teil2 ... Mit Alias-Typ ist einer der vier oben beschriebenen Alias-Typen anzugeben, mit Bezeichnung wird ein Name fr den Alias angegeben, und hinter dem Gleichheitszeichen werden die einzelnen Mitglieder des Alias durch Kommata mit oder ohne Leerzeichen separiert angegeben. Beispiel: User_Alias VERKAUF = meier, schulze, huber Diese Anweisung ermglicht, spter folgende Rechtezuteilung vorzunehmen: VERKAUF debian = pon Durch beide Direktiven zusammen wird es den Benutzern meier, schulze und huber erlaubt, das Kommando pon mit beliebigen Parametern auf dem Rechner debian ber sudo aufzurufen. Mehr Hinweise zur Benutzung des Kommandos sudo nden Sie in der Kommandoreferenz auf Seite 868. Die Datei /usr/share/doc/sudo/examples/sudoers enthlt ein gut kommentiertes Beispiel fr eine komplexe Kongurationsdatei des Programms. Die komplette Syntax fr /etc/sudoers nden Sie in der Manualseite sudoers.

15.6 Diskquotas Begrenzung von Speicherplatz


In vielen Fllen ist es erforderlich, den Speicherplatz auf der Festplatte, der von bestimmten Benutzern oder Gruppen verwendet werden darf, zu begrenzen. Standardmig kann jeder Benutzer in einem Verzeichnis, in dem er die Berechtigung zum Schreiben hat, so viele Daten ablegen, wie auf die Partition passen. Im schlimmsten Fall kann das dazu fhren, dass das System ganz oder in Teilen unbenutzbar wird oder dass Benutzer, deren Daten sich auf derselben Partition benden, ihre Daten nicht mehr speichern knnen, weil kein Speicherplatz mehr frei ist.

15.6 Diskquotas Begrenzung von Speicherplatz

499

Speicherplatzbegrenzungen knnen nicht nur fr Benutzer, sondern auch fr Gruppen erteilt werden. Eine Schreiboperation wird trotz Speicherplatzbegrenzungen nur dann erlaubt, wenn die Begrenzung fr den Besitzer der Datei und die zugeordnete Gruppe durch die Operation nicht berschritten wird. Es kommt vor, dass ein Benutzer nicht mehr in eine bestimmte Datei schreiben kann, weil die Begrenzung fr die Gruppe, der die Datei zugeordnet ist, berschritten ist, obwohl die Begrenzung fr den Benutzer noch nicht erreicht ist. Weiter gibt es zwei Stufen der Begrenzung, nmlich eine harte und eine weiche Begrenzung. Beim berschreiten der weichen Grenze (soft limit) wird lediglich eine Warnung ausgegeben, und der Benutzer muss innerhalb einer gewissen Zeit (blicherweise innerhalb von sieben Tagen) dafr sorgen, dass er die weiche Grenze wieder unterschreitet (indem er Dateien lscht). Nach Ablauf dieser Frist darf er nicht mehr auf den Datentrger schreiben. Die harte Grenze (hard limit) kann unter keinen Umstnden berschritten werden, jede Schreiboperation, die eine berschreiten der harten Grenze zur Folge htte, wird mit einer Fehlermeldung abgebrochen. Begrenzungen werden in Blcken auf dem Datentrger angegeben. Auf ext2Dateisystemen entspricht ein Block einem Kilobyte. Neben der Begrenzung der Anzahl verfgbarer Blcke kann die Anzahl verfgbaren Inodes begrenzt werden. Inodes werden bentigt, um Verwaltungsinformationen zu Dateien abzulegen. Weil fr jede Datei eine Inode bentigt wird und die Anzahl der Inodes auf jedem Dateisystem begrenzt ist, kann es passieren, dass auf einem Dateisystem zwar noch freie Blcke zur Verfgung stehen, aber keine freien Inodes mehr. Dann knnen keine neuen Dateien mehr erzeugt werden (siehe auch die Erluterungen zum Kommando mke2fs (S. 830)). Speicherplatzbegrenzungen beziehen sich immer auf einen bestimmten Datentrger. Wenn Benutzer Dateien auf unterschiedlichen Datentrgern besitzen, kommt es vor, dass sie in bestimmten Verzeichnissen weiterhin Dateien ablegen drfen, obwohl ihre Speicherplatzgrenzen in Verzeichnissen, die sich auf anderen Datentrgern benden, bereits erreicht sind. Wenn sich die Home-Verzeichnisse und das Verzeichnis mit den Mailspool-Dateien (/var/mail) auf unterschiedlichen Datentrgern benden, ist sichergestellt, dass Benutzer, welche die Quota in ihrem Home-Verzeichnis berschritten haben, weiterhin Mail empfangen knnen. Aber auch dort ist irgendwann Schluss. Die Arbeit mit Speicherplatzbegrenzungen muss vom Kern untersttzt werden. Weil die Untersttzung in den Standardkernen nicht vorhanden ist, ist es erforderlich, hierzu einen eigenen Kern zu erstellen. Bei der Konguration des Kerns ist die Option Quota Support zu aktivieren. Neben dem Kern mit QuotaUntersttzung ist das Paket quota einzurichten. In diesem Paket benden sich die Programme zur Benutzung und Verwaltung des Quota-Systems sowie die Dokumentation. Eine Einfhrung in das System und seine Einrichtung bendet sich in der Datei /usr/share/doc/quota/html/quota.html. Ein weiteres lesenswertes Dokument ist das Quota-Mini-HOWTO, das sich in der Datei /usr/share/doc/HOWTO/entext/mini/Quota.txt.gz bendet, wenn das Paket doc-linux-text eingerichtet ist.

500

15 Benutzer und Gruppen

Achtung: Speicherplatzbegrenzungen knnen zur Zeit nur auf solchen Datentrgern eingesetzt werden, die im ext2-Format formatiert sind. 15.6.1 Einrichtung des Quotasystems Datentrger, die mit Speicherplatzbegrenzungen benutzt werden sollen, mssen mit der Option usrquota eingebunden werden, wenn Begrenzungen fr Benutzer verwendet werden sollen, und mit der Option grpquota, wenn Sie mit Begrenzungen fr Gruppen arbeiten. Beide Optionen drfen nebeneinander benutzt werden. Wenn die Partition /dev/sda7 whrend des Systemstarts automatisch in das Verzeichnis /home gemountet werden soll und auf diesem Datentrger Speicherplatzbegrenzungen fr Gruppen und Benutzer verwendet werden sollen, kann der Eintrag in der Datei /etc/fstab folgendermaen aussehen: /dev/sda7 /home ext2 defaults,usrquota,grpquota 0 2 Bevor die Begrenzungen benutzt werden knnen, mssen die Datentrger mit diesen Optionen eingebunden werden. Im Beispiel geschieht dies nach der gezeigten nderung der Datei /etc/fstab wie folgt: debian:~# umount /home debian:~# mount /home Das Entfernen und Einbinden von Home-Verzeichnissen sollte gewhnlich nur im Single-User-Modus geschehen. Nachdem der Datentrger mit den QuotaOptionen eingebunden ist, muss das Quotasystem neu gestartet werden: debian:~# /etc/init.d/quota restart Alternativ zum manuellen Entfernen und Einbinden der Dateisysteme sowie zum Neustarten des Quotasystems kann das System auch komplett neu gestartet werden. Das Quotasystem wird jederzeit mit folgendem Kommando deaktiviert: debian:~# /etc/init.d/quota stop Danach sind alle Speicherplatzbegrenzungen aufgehoben. Durch das nchste Kommando wird das System wieder aktiviert: debian:~# /etc/init.d/quota start Nach dieser Initialisierung des Quotasystems werden im Wurzelverzeichnis des Datentrgers zwei Dateien angelegt, in denen die Begrenzungen fr Benutzer und Gruppen gespeichert werden. Nach Installation und Start des Systems werden die Begrenzungen fr Benutzer und Gruppen vergeben. Hierzu dient das Kommando edquota. Er ist vom Systemverwalter mit dem Namen eines oder mehrerer Benutzer aufzurufen. Wenn Begrenzungen fr Gruppen eingestellt werden sollen, ist das Programm mit dem Parameter -g und den Namen der Gruppen aufzurufen. Um die Begrenzungen fr die Benutzerin stefanie einzustellen, ist das Programm folgendermaen aufzurufen:

15.6 Diskquotas Begrenzung von Speicherplatz

501

debian:~# edquota stefanie Daraufhin wird der Standardeditor bzw. der mit der Umgebungsvariablen EDITOR eingestellte Editor gestartet. In dem Editor wird sinngem folgendes angezeigt:
Quotas for user stefanie: /dev/sda7: blocks in use: 681813, limits (soft = 0, hard = 0) inodes in use: 17110, limits (soft = 0, hard = 0)

In der ersten Zeile wird ausgegeben, fr welchen Benutzer die dargestellten Quotas gelten. Darunter bendet sich der Name des Dateisystems, welches mit Begrenzungen betrieben wird, und dahinter ist angegeben, wieviele Blcke (normalerweise Kilobytes) von der Benutzerin zur Zeit belegt sind. Dahinter benden sich in den Klammern die Werte fr die weiche (soft) und die harte (hard) Grenze. Der Wert 0 bedeutet, dass keine Begrenzung gilt. In der darunter bendlichen Zeile sind die von der Benutzerin auf dem Dateisystem verwendeten Inodes angegeben. Dahinter benden sich die Inode-Begrenzungen fr die Benutzerin. Auch hier bedeutet der Wert 0, dass keine Grenze gilt. Wenn Diskquotas auf mehr als einem Datentrger eingesetzt werden, benden sich Eintrge fr die brigen Datentrger unterhalb des hier gezeigten Beispiels. Um Begrenzungen einzufhren, sind die Zahlen in den Klammern zu verndern. Falls fr die Benutzerin in Zukunft die Begrenzung gelten soll, auf dem Datentrger maximal 750.000 Blcke verwenden zu drfen, kurzzeitig jedoch auch 800.000 Blcke, so ist der Text folgendermaen zu ndern:
Quotas for user stefanie: /dev/sda7: blocks in use: 681814, limits (soft = 750000, hard = 800000) inodes in use: 17110, limits (soft = 0, hard = 0)

Danach wird die Datei gesichert und der Editor verlassen. Das Programm edquota wertet die nderungen in der Datei automatisch aus und setzt die Grenzen. Die harte Grenze sollte immer grer sein als die weiche. Bei sehr vielen Benutzern ist das manuelle Bearbeiten der Begrenzungen mhselig. Aus diesem Grund ist es mglich, die Grenzen, die fr einen Benutzer gelten, auf andere Benutzer zu bertragen, ohne dass manuell nderungen vorgenommen werden mssen. Hierzu ist das Programm edquota mit der Option -p aufzurufen. Hinter der Option ist der Name des Benutzers anzugeben, dessen Grenzen auf andere Benutzer bertragen werden sollen, und dahinter knnen beliebig viele Benutzer angegeben werden, fr welche die Beschrnkungen ebenfalls gelten sollen. Um die Grenzen fr die Benutzerin stefanie auf die Benutzer jochen und felix zu bertragen, ist das Programm so aufzurufen: debian:~# edquota -p stefanie jochen felix Mit der Option -t ist es mglich, die Lnge des Zeitraums einzustellen, whrend dessen weiche Grenzen berschritten sein drfen (grace). Auch hier wird ein Editor

502

15 Benutzer und Gruppen

aufgerufen, in dem die Werte zu ndern sind. Standardmig werden dabei die Einstellungen fr Benutzer verndert. Wenn zustzlich die Option -g speziziert wird, wird der Zeitraum fr Gruppen gendert. 15.6.2 Anzeigen und Auswerten von Begrenzungen Geltende Begrenzungen werden mit dem Kommando quota angezeigt. Standardmig werden dabei die Begrenzungen fr den Benutzer ausgegeben, der das Kommando ausfhrt. Der Systemverwalter darf dem Kommando den oder die Namen eines oder mehrerer Benutzer bergeben. Es werden dann die Quotas fr die Benutzer angezeigt. Um die Begrenzungen fr Gruppen anzuzeigen, ist das Kommando mit der Option -g und den gewnschten Gruppennamen zu verwenden. Beispiel: debian:~# quota -g verkauf Die Ausgabe des Kommandos sieht sinngem folgendermaen aus:
Disk quotas for group verkauf (gid 2000): Filesystem blocks quota limit grace files quota limit grace /dev/sda7 681815 750000 800000 17110 0 0

Im Beispiel wird fr den Datentrger /dev/sda7 angegeben, dass von der Gruppe 681.815 Blcke belegt sind, die Quota 750.000 Blcke betrgt und die harte Grenze bei 800.000 Blcken liegt. Unter grace wird die verbleibende Zeit zum Freigeben von Speicherplatz angezeigt, falls die weiche Grenze berschritten ist. Unter les ist die Anzahl benutzter Inodes zu nden. Die Werte dahinter geben die Grenze hierfr an, wobei der Wert 0 bedeutet, dass keine Begrenzungen gelten. Falls auf mehreren Datentrgern Quotas benutzt werden, werden die Angaben untereinander fr die einzelnen Datentrger ausgegeben. Dem Systemverwalter steht auerdem das Programm repquota zur Verfgung. Dieses Programm gibt Berichte ber die Auslastung von Datentrgern und Begrenzungen aus. Nheres hierzu in der Manualseite zu dem Programm. Mit warnquota steht weiter ein Werkzeug zur Verfgung, welches prft, ob Benutzer ihre Grenzen berschritten haben, und solchen Benutzern, bei denen dies der Fall ist, eine Email schickt, in der diese auf das Problem aufmerksam gemacht werden. Es empehlt sich, dieses Programm einmal tglich mit Hilfe eines Cron-Jobs auszufhren.

Teil IV

Anwendung

16 Der Kommandointerpreter Bash

16.1 Start
Die Bash ist der gebruchliche Kommandointerpreter (Shell) unter Debian GNU/Linux. Er ist zum einen die Schnittstelle zwischen Benutzer und Betriebssystem. Die Bash nimmt Kommandos entgegen und lsst sie durch das Betriebssystem ausfhren. Zum anderen implementiert die Bash eine eigene Programmiersprache, mit der es mglich ist, Vorgnge zu automatisieren und sich Schreibarbeit zu sparen. Von dieser Eigenschaft wird an vielen Stellen im System Gebrauch gemacht. Beispielsweise handelt es sich bei allen Startskripten um Shellskripte. Man kann dort die gleichen Kommandos einfgen, die man auch an der Kommandozeile eingeben wrde. Der Name Bash steht fr Bourne-Again-Shell, eine Anspielung auf die BourneShell und ihren Autor S TEPHEN R. B OURNE. Diese Shell wurde 1977 erstmals von AT&T mit AT&T-Unix V7 ausgeliefert und ist heute auf vielen Linux/UNIXSystemen zu nden. Die Bash orientiert sich zwar an der Bourne-Shell und ist mit dieser vertrglich, hat aber viele Eigenschaften aus anderen Shells (hauptschlich der C-Shell und der Korn-Shell) bernommen, sodass mit ihr heute eine mchtige und komfortabel zu benutzende Shell zur Verfgung steht. Das Konzept des Kommandointerpreters ist nicht Linux/UNIX-spezisch. Von der Arbeit mit DOS, MS-Windows oder IBM-OS/2 kennen Sie vielleicht deren Kommandointerpreter command.com bzw. cmd.exe. Auch die Aufgabe dieser Interpreter ist es, Kommandos entgegenzunehmen und sie entweder selbst auszufhren oder die zugehrigen Programme aufzurufen. Ebenso ist es mglich, einfache Aufgaben mittels Batchdateien zu automatisieren. Es bestehen jedoch groe Unterschiede bezglich des Komforts und den Fhigkeiten zwischen diesen primitiven Interpretern und der Bash. Viele Aufgaben lassen sich schneller und einfacher durch Kommandos in der Kommandozeile lsen, manche sogar ausschlielich. Man braucht nicht zu warten, bis aufwendige grasche Oberchen gestartet sind, und spart sich die Hangelei von einem Men zum anderen. Wenn man bedenkt, dass man diese Kommandos ebenso gut mit einem Texteditor in eine Datei schreiben kann und dann schon ein kleines

506

16 Der Kommandointerpreter Bash

Programm hat, mit dem man die betreffende Aufgabe in Zukunft durch ein einziges Kommando erledigt, wird klar, welche Vorteile ein guter Kommandointerpreter gegenber graschen Oberchen bietet. 16.1.1 Ein Beispiel am Anfang Stellen Sie sich folgende Aufgabe vor: Sie erhalten immer wieder Bilddateien in einem speziellen Format sagen wir JPEG die Sie drucken mchten und hinterher in einem anderen Format beispielsweise PNG speichern. Jede Datei soll zustzlich auf eine Diskette geschrieben werden, damit Sie sie einem Kollegen bergeben knnen. Die bliche Vorgehensweise mit typischen Programmen fr grasche Oberchen ist folgende: Sie ffnen ein Bildbearbeitungsprogramm aus der Startleiste. Dann whlen Sie das Men Datei und dort den Menpunkt ffnen. Sie warten, bis die Datei geladen ist. Jetzt whlen Sie wieder das Men Datei und den Menpunkt Speichern unter. Es erscheint eine Dateiauswahlbox, in der Sie einen neuen Dateinamen eingeben und den Dateityp (PNG) auswhlen. 6. Danach drcken Sie ok, werden gefragt, ob Sie Ihren Wunsch wirklich ernst meinen, besttigen und warten, bis die Datei konvertiert und gespeichert ist. 7. Nun whlen Sie Datei und Drucken, um die Datei zu drucken. Unter Umstnden mssen Sie noch den Drucker auswhlen und einige Werte einstellen. 8. Um die Datei auf eine Diskette zu schreiben, whlen Sie entweder wieder Datei und Speichern unter und whlen diesmal das Diskettenlaufwerk aus. Oder Sie kopieren die Datei mit einem Dateimanager auf eine Diskette. Wenn Sie und Ihre Programme schnell sind, brauchen Sie dafr drei Minuten. Bedenken Sie aber, dass Sie die gleiche Zeit morgen und bermorgen wieder brauchen, wenn Sie den gleichen Vorgang mit anderen Dateien wiederholen. Und bedenken Sie auch, dass Sie sich bei einigen dieser Operationen immer konzentrieren mssen, damit Sie nicht einen falschen Dateinamen, einen falschen Ordner, den falschen Drucker oder das falsche Dateiformat auswhlen. ber die Kommandozeile dauert es am Anfang genauso lange, und Sie mssen sich auch konzentrieren. Hier gehen Sie folgendermaen vor: 1. Zunchst wechseln Sie in das Verzeichnis, in dem Ihre Dateien liegen: joe@debian:~$ cd grafiken 2. Dann konvertieren Sie die Datei mit dem Programm convert aus dem Paket imagemagick: joe@debian:~/grafiken$ convert bild.jpg bild.png 3. Nun drucken Sie die Datei auf Ihren Farbdrucker mit dem Namen color: joe@debian:~/grafiken$ lpr -P color bild.png 1. 2. 3. 4. 5.

16.1 Start

507

4. und kopieren die Datei auf eine DOS-formatierte Diskette (siehe mtools (S. 838)): joe@debian:~/grafiken$ mcopy bild.png a: Das waren vier Kommandos. Weil Sie wissen, dass Sie die gleiche Aufgabe morgen wieder erledigen mssen, schreiben Sie diese Kommandos in eine Datei mit folgendem Inhalt:
#!/bin/bash cd grafiken convert bild.jpg bild.png lpr -P color bild.png mcopy bild.png a:

Das sind dieselben vier Kommandos wie oben. Die erste Zeile enthlt eine Besonderheit. Das Betriebssystem wird mit dieser Zeile angewiesen, das Programm /bin/bash zu verwenden, um das Programm auszufhren. Sie knnen sich die Zeile merken, denn so muss in jedem Skript fr die Bash die erste Zeile aussehen. Sagen wir, Sie haben das Skript in der Datei convert_print_save gespeichert. Um es ausfhren zu knnen, sind noch die Rechte zu setzen: joe@debian:~$ chmod a+x convert_print_save Damit rumen Sie allen Benutzern das Recht ein, die Datei auszufhren. Ein Problem besteht noch. Sie wollen ja nicht jeden Tag dieselbe Datei konvertieren und drucken. Der Name bild.png ist aber fest in das Skript eingebaut. Jetzt kommen Variable ins Spiel. Die Bash speichert in der Variablen mit dem Namen 1 immer das erste Argument, das ihr beim Aufruf bergeben wurde. In der Variablen mit dem Namen 2 wird das zweite Argument gespeichert usw. Variable knnen an Stelle normaler Zeichenketten benutzt werden. Whrend das Skript ausgefhrt wird, werden sie durch ihren Wert ersetzt. Variablen wird ein Dollarzeichen vorangestellt, wenn sie durch ihren Wert ersetzt werden sollen. Das verbesserte Skript:
#!/bin/bash cd grafiken convert $1 $2 lpr -P color $2 mcopy $2 a:

Jetzt rufen Sie Ihr Skript folgendermaen auf: ./convert_print_save Eingangsdatei Ausgangsdatei Hierbei geben Sie fr Eingangsdatei den Namen der zu konvertierenden und zu druckenden Datei an und fr Ausgangsdatei den Namen, den die Datei nach der Konvertierung tragen soll. Wenn Sie am nchsten Tag die gleiche Aufgabe mit der Datei baum.jpg wieder durchfhren, geben Sie nur noch folgendes Kommando ein: joe@debian:~$ ./convert_print_save baum.jpg baum.png

508

16 Der Kommandointerpreter Bash

Das geht schneller und erfordert weniger Konzentration als die Durchfhrung verschiedener Menoperationen mit der Maus oder das Eintippen vieler Kommandos hintereinander. Auch wenn Sie hauptschlich mit graschen Benutzeroberchen arbeiten, lohnt es sich, sich mit den wichtigsten Funktionen der Bash vertraut zu machen. Viele Aufgaben lassen sich mit ihr einfach und zeitsparend erledigen, und bei der Arbeit des Systemverwalters hat man es des fteren mit Kommandos und Shellskripten zu tun, fr deren Verstndnis Bash-Kenntnisse erforderlich sind. Grundlegende Kenntnisse in der Kommandosprache der Bash sind bei einer ber normale Anwendungen hinausgehenden Anpassung und Verwaltung eines Debian GNU/Linux-Systems unbedingt erforderlich, weil groe Teile des Systems von Shell-Skripten konguriert und gesteuert werden. Das Kapitel erlutert im ersten Teil die Eigenschaften, Kongurations- und Verwendungsmglichkeiten der Bash und gibt im zweiten Teil eine Einfhrung in das Schreiben eigener Shellskripte. Abgeschlossen wird das Kapitel von einer Kurzreferenz der in die Shell eingebauten und bis dahin nicht erluterten Kommandos. 16.1.2 Aufrufen und Beenden der Bash Nach der Anmeldung an einem Terminal z. B. an einer virtuellen Konsole wird die Standardshell des Benutzers gestartet. Das ist fast immer die Bash. Die Standardshell lsst sich mit dem Kommando chsh (S. 784) ndern. Wenn Sie sich normal an einer virtuellen Konsole anmelden, steht Ihnen die Bash sofort zur Verfgung. Etwas anders sieht es aus, wenn Sie mit X11 arbeiten. Hier gibt es zunchst kein Terminal, in dem kommandozeilenorientierte Programme ausgefhrt und benutzt werden knnen. Dafr gibt es aber eine Reihe von Terminal-Emulationsprogrammen, die die Funktionalitt eines Terminals in einem X-Fenster zur Verfgung stellen. Diese Programme starten in der Regel die Standardshell1 , sodass nach dem Aufruf eines Terminalprogramms in einem X-Fenster genauso wie an der Konsole gearbeitet werden kann. Das gebruchlichste Terminalprogramm fr X11 ist das Programm xterm. Es stehen jedoch Alternativen wie das Programm Rxvt oder die von den Arbeitsplatzumgebungen KDE und GNOME bereitgestellten Programme konsole (KDE) und gnome-terminal (GNOME) zur Verfgung. Die beiden letzten Programme bieten den Vorteil, dass sie sich besonders gut an die jeweiligen Arbeitsplatzumgebungen anpassen. Ein xterm rufen Sie ber das Men des von Ihnen benutzten Window-Managers oder ber das Debian-Men (XShells Xterm) auf. Das Programm konsole erreichen Sie unter KDE aus dem Panel unter Werkzeuge - Konsole, und unter GNOME knnen Sie das Programm gnome-terminal im dem Panel ebenfalls unter Werkzeuge - GNOME Terminal nden. Die Bash wird durch das Kommando exit beendet. Sie beendet sich selbst, wenn der Datenstrom, aus dem sie liest (bei einer interaktiven Shell ist das die Standardeingabe) zu Ende ist. Dies ist dann von Bedeutung, wenn die Shell nicht interaktiv betrieben wird, sondern die auszufhrenden Kommandos aus einer Datei liest.
1

Genau gesagt, das mit der Umgebungsvariablen SHELL eingestellte Programm.

16.1 Start

509

16.1.3 Interaktive versus nicht-interaktive Shell Wenn die Bash nach der Anmeldung oder spter per Kommando aufgerufen wird, startet sie als interaktive Shell. Sie nimmt ihre Kommandos von der Tastatur entgegen und schreibt Mitteilungen oder Ausgaben von Kommandos auf den Bildschirm. Wird sie jedoch indirekt gestartet, um beispielsweise ein Skript auszufhren, liest sie ihre Kommandos aus der entsprechenden Skriptdatei. Prinzipiell haben alle Kommandos unter beiden Bedingungen die gleiche Wirkung. Im interaktiven Modus verhlt sich die Bash in einigen Situationen jedoch anders. So beendet sich beispielsweise eine nicht-interaktive Bash bei einem falsch eingegebenen Kommando nach Ausgabe einer Fehlermeldung sofort. Dies ist im interaktiven Modus nicht erwnscht. Hier wird ebenfalls eine Fehlermeldung ausgegeben, die Bash jedoch nicht beendet. 16.1.4 Konguration und Startdateien Die Bash wird ber mehrere Dateien konguriert. Dabei sind zwei Flle zu unterscheiden. Im ersten Fall wird die Shell wie ein normales Programm aufgerufen. Das ist dann der Fall, wenn Sie am Prompt das Kommando bash eingeben oder wie oben beschrieben ein Terminalprogramm starten. In diesem Fall liest die Bash whrend ihres Starts die Kommandos, die sich in der Datei .bashrc im Home-Verzeichnis des aufrufenden Benutzers benden, und fhrt sie aus. Sie wird ber die bashrc-Datei konguriert. Im zweiten Fall wird die Bash als erstes Programm nach der Anmeldung am System gestartet. Jetzt hat sie einige zustzliche Aufgaben zu erfllen, durch welche die gestartete Arbeitsumgebung konguriert wird. Zu diesen Aufgaben gehrt die Festlegung des Suchpfades fr Programme (s. u.). Eine solche Shell wird deswegen auch Login-Shell genannt. Sie fhrt zunchst die Kommandos in der Datei /etc/prole aus. Dies ist eine Systemkongurationsdatei, mit welcher der Systemverwalter Einstellungen festlegt, die fr alle Sitzungen aller Benutzer mit der Bash gelten. Damit jedoch die Benutzer persnliche Anpassungen vornehmen knnen, werden danach die Kommandos in der Datei .bash_prole im Home-Verzeichnis des Benutzers ausgefhrt. Die dritte Kongurationsdatei betrifft die Bash nur indirekt. Es ist die Datei .inputrc im Home-Verzeichnis des Benutzers bzw. die Datei /etc/inputrc. Sie bestimmt die Eigenschaften der Bibliothek readline, die von der Bash aber auch von anderen Programmen benutzt wird, um Kommandozeilen entgegenzunehmen. Durch die Datei lsst sich bestimmen, welche Tasten was bewirken und wie mit Sonderzeichen und Umlauten umgegangen wird. Darber hinaus erkennt die Bash einige Optionen, mit denen ihr Verhalten zu beeinussen ist. Die Optionen lassen sich auch dann noch verndern, wenn die Bash schon gestartet ist. Sie werden bei dem Kommando set (S. 584) erlutert. 16.1.5 Die Dateien .inputrc und /etc/inputrc Mit der Datei .inputrc wird zum einen die Bibliothek readline an die eigenen Bedrfnisse angepasst, zum anderen knnen Tastaturkommandos mit Funktionen ver-

510

16 Der Kommandointerpreter Bash

bunden werden. Wie unter Linux/UNIX blich, wird beim Start der bash zunchst die Datei /etc/inputrc gelesen, in der sich systemweite Einstellungen fr alle Benutzer benden, und danach die Datei .inputrc im Home-Verzeichnis des aufrufenden Benutzers, mit der jeder Benutzer eigene Einstellungen vornehmen und die systemweiten Einstellungen berschreiben kann. Die Datei wird beim Start der Bash gelesen. Durch den Tastaturbefehl S TRG X -S TRG - R wird ein erneutes Lesen der Datei veranlasst. Um nderungen der Datei wirksam werden zu lassen, muss die Bash beendet und wieder gestartet werden oder obiges Tastaturkommando benutzt werden. Allgemeines Verhalten von readline Prinzipiell gibt es zwei Formen von Anweisungen in der Datei. nderungen des Verhaltens von readline werden durch das Schlsselwort set eingeleitet, dem eine Eigenschaftsbezeichnung folgt. Dann kommt ein Wert, den diese Eigenschaft annehmen soll. Ein Beispiel: set visible-stats on Mit der Anweisung wird die Eigenschaft visible-stats auf den Wert on gesetzt. Die Anweisung bewirkt, dass bei der Ausgabe von Dateinamen durch an den Dateinamen angehngte Zeichen angezeigt wird, ob es sich um spezielle Dateien handelt (Verzeichnisse, symbolische Links etc.). Die Liste der einstellbaren Eigenschaften ndet sich in der Info-Dokumentation (siehe 6.3, S. 162) zur Bash. Zu den wichtigsten Eigenschaften gehren folgende: completion-query-items Legt fest, wieviele mgliche Vervollstndigungen es geben muss, bevor nachgefragt wird, ob diese angezeigt werden sollen. Voreinstellung ist 100. Die Anweisung set completion-query-items 250 bewirkt, dass nach der Bettigung der Tastenkombination TAB-TAB alle Vervollstndigungen sofort angezeigt werden, wenn es nicht mehr als 250 gibt. show-all-if-ambiguous Die Darstellung der mglichen Vervollstndigungen erfolgt normalerweise erst dann, wenn die TAB-Taste ein zweites Mal gedrckt wird. Wird die Einstellung auf on gesetzt, erfolgt die Darstellung sofort. Vorgabe ist off. disable-completion Schaltet die Vervollstndigung aus, wenn der Wert auf on gestellt ist. Vorgabe ist off. convert-meta Bewirkt, dass Zeichen, die nicht im ASCII-Zeichensatz vorkommen, in eine Zeichenkombination bestehend aus E SC und dem Ausgangszeichen mit dem hchsten Bit auf Null gesetzt umgewandelt werden. Die Einstellung ist standardmig auf on gestellt und sollte abgeschaltet (off ) werden, um deutsche Umlaute eingeben zu knnen.

16.1 Start

511

expand-tilde Wenn auf on gestellt, wird die Tilde (~), die Abkrzung fr das HomeVerzeichnis, bei der Vervollstndigung in das Home-Verzeichnis umgewandelt. Vorgabe ist off. Die Bedeutung der Tilde als Abkrzung fr das HomeVerzeichnis bleibt davon unbeeinusst. horizontal-scroll-mode Wenn eine eingegebene Zeile lnger ist als eine Zeile des Bildschirms, wird die Eingabe nicht automatisch in einer neuen Zeile fortgesetzt, sondern der Text nach links verschoben. Vorgabe ist off. input-meta Erlaubt, Zeichen einzugeben, die nicht im ASCII-Zeichensatz vorkommen, auch wenn dies vom Terminal nicht untersttzt wird. Vorgabe ist off. output-meta Bewirkt, dass Zeichen, die nicht im ASCII-Zeichensatz vorkommen, ausgegeben und nicht durch eine Escape-Sequenz ersetzt werden, wie es standardmig geschieht. Tastaturkommandos Die zweite Form von Anweisungen betrifft das Verbinden von Tastaturkommandos mit Aktionen. Angenommen, dass immer, wenn Sie den Buchstaben Gro-R eingeben, der Text Das war ein groes R erscheinen soll, dann tragen Sie folgende Zeile in die Datei .inputrc ein: "R": "Das war ein groes R" Diese Eigenschaft lsst sich nutzen, indem Sie die Funktionstasten oder Tastenkombinationen mit S TRG oder A LT mit Kommandos verbinden. Zur Denition von Tastenkombinationen mit S TRG sind dem jeweiligen Buchstaben die Zeichen \C- voranzustellen. Um eine Denition mit der A LT-Taste zu erzeugen, ist die Zeichenkette \M- (Meta) zu verwenden. Die gleiche Denition mit S TRG - R sieht so aus: "\C-r": "Das war ein Control-R" Durch readline werden Funktionen zur Verfgung gestellt, die der Bearbeitung von Kommandozeile oder Kommandogeschichte dienen, Die Funktionen sind per Voreinstellung bei vielen Tastenkombinationen mit S TRG und bei einigen mit der A LT-Taste verbunden. Die Voreinstellungen werden durch Anweisungen wie die oben erwhnten berschrieben. Die Liste der Funktionen von readline bendet sich in der Info-Dokumentation zur Bash. Deshalb sollen in der folgenden Tabelle nur die wichtigsten Funktionen erlutert werden.
Tabelle 16.1. Wichtige Tastaturkommandos fr die bash und readline. Die Kommandos entsprechen der Benutzung des Editors Emacs.

Funktion forward-char

Erluterung Bewegen des Cursors Bewegt den Cursor ein Zeichen vorwrts

Standardbelegung S TRG - F, P FEIL R ECHTS


Fortsetzung auf nchster Seite

512

16 Der Kommandointerpreter Bash

Fortsetzung

Erluterung Standardbelegung Bewegt den Cursor ein Zeichen S TRG - B, P FEIL L INKS zurck forward-word Bewegt den Cursor ein Wort vorA LT- F wrts backward-word Bewegt den Cursor ein Wort zuA LT- B rck begin-of-line Bewegt den Cursor an den AnS TRG - A fang der Zeile end-of-line Bewegt den Cursor an das Ende S TRG - E der Zeile accept-line Abschicken der Kommandozeile E INGABE Arbeiten mit Text delete-char Lscht das Zeichen unter dem S TRG - D, E NTF Cursor backward-delete-char Lscht das Zeichen vor dem CurZ URCK sor kill-line Lscht den Text zwischen dem S TRG - K Cursor und dem Ende der Zeile backward-kill-line Lscht den Text zwischen dem S TRG - X, Z URCK Cursor und dem Anfang der Zeile kill-word Lscht die Zeichen zwischen A LT- D dem Cursor und dem Wortende undo Macht die jngste Vernderung S TRG -_ rckgngig yank Fgt die zuletzt gelschten ZeiS TRG - Y chen wieder ein tab-insert Fgt ein Tabulatorzeichen ein A LT-TAB transpose-words Verschiebt das Wort unter dem A LT- T Cursor hinter das nchste Wort Arbeiten mit der Kommandogeschichte previous-history Geht in der KommandogeschichS TRG - P, P FEIL R AUF te ein Kommando zurck und zeigt das Kommando an next-history Geht in der Kommandogeschich- S TRG - N, P FEIL RUNTER te ein Kommando vorwrts und zeigt das Kommando an backward-search-history Eingabe einer SuchzeichenketS TRG - R te, nach der die Kommandogeschichte durchsucht wird
Fortsetzung auf nchster Seite

Funktion backward-char

16.1 Start

513

Fortsetzung

Funktion complete insert-completions

clear-screen

Erluterung Arbeiten mit Vervollstndigung Vervollstndigt den eingegebenen Begriff Fgt alle mglichen Vervollstndigungen ein Verschiedenes Lschen des Bildschirminhalts

Standardbelegung TAB A LT-

S TRG - L

Grundstzlich ist es sinnvoll, diese Funktionen nicht anderen Tastaturkommandos zuzuordnen, weil es dieselben Zuordnungen sind, die auch in vielen anderen Programmen, beispielsweise dem Editor Emacs, eingestellt sind. Deswegen eignen sich die Funktionstasten zur Denition eigener Kommandos und Makros besonders gut. Leider sind diese Tasten nicht so einfach anzusprechen wie die brigen. Dies liegt daran, dass unterschiedliche Terminaltypen unterschiedliche Zeichenfolgen bei Bettigung dieser Tasten erzeugen. Die meisten Terminaltypen erzeugen ein EscapeZeichen (\e) und dann eine Zeichenfolge, die auf die Nummer der bettigten Funktionstaste schlieen lsst. Deswegen wird hier eine Beispielkonguration angegeben, die Funktionstastenbelegungen fr die Terminaltypen linux (Konsole) und eine generische Belegung enthlt:
# Durch diese drei Einstellungen sollten deutsche # in den meisten Fllen funktionieren. set input-meta on set convert-meta off set output-meta on Sonderzeichen

# Wir mchten nicht gefragt werden, wenn es weniger als 200 # Vervollstndigungen gibt, ob diese angezeigt werden sollen set completion-query-items 200 # Auerdem mchten wir sofort alle Vervollstndigungen sehen und # nicht ein zweites Mal TAB drcken mssen. set show-all-if-ambiguous on

# Wir htten gerne einen Hinweis, um was fr Dateitypen # es sich bei Vervollstndigungen handelt set visible-stats on # Die Tilde soll in das Home-Verzeichnis bersetzt werden set expand-tilde on

# Belegung der Tastenkombination CTRL-r: Ein komplizierteres # Tastaturmakro, das uns einen Suchbefehl schreibt, und den # Cursor an die Stelle bewegt, wo wir etwas einsetzen mssen. # Achtung: Die beiden folgenden Zeilen _mssen_ in eine Zeile # geschrieben werden! "\C-r": "find /usr/share/doc -name \"*gz\" | xargs zgrep -i \"\" | less \M-b\M-b\C-f\C-f\C-f"

514

16 Der Kommandointerpreter Bash

# Belegungen fr die Funktionstasten an der Konsole (linux) $if term=linux "\e[[A": reverse-search-history #Funktion F1 "\e[[B": clear-screen #Funktion F2 "\e[[C": "Funktion F3 " "\e[[D": "Funktion F4 " "\e[[E": "Funktion F5 " # zum Schluss eine Definition fr alle anderen Terminaltypen $else "\e[11~": reverse-search-history #Funktion F1 "\e[12~": clear-screen #Funktion F2 "\e[13~": "Funktion F3 " "\e[14~": "Funktion F4 " "\e[15~": "Funktion F5 " $endif

# Diese Funktionstasten waren bei getesteten Terminals gleich # und brauchen deswegen nur einmal angegeben zu werden. "\e[17~": "Funktion F6 " "\e[18~": "Funktion F7 " "\e[19~": "Funktion F8 " "\e[20~": "Funktion F9 " "\e[21~": "Funktion F10 " "\e[23~": "Funktion F11 " "\e[24~": "Funktion F12 "

Zeilen, die mit dem Doppelkreuz (#) beginnen, und leere Zeilen dienen als Kommentar. Makrodenitionen mssen in Anfhrungszeichen stehen. In der Beispieldatei .inputrc sind folgende Einstellungen vorgenommen worden: Ganz oben benden sich die drei besprochenen Einstellungen fr readline, mit denen deutsche Sonderzeichen mit vielen Terminaltypen funktionieren sollten. Darunter benden sich zwei Einstellungen fr die Vervollstndigung. Zunchst wird festgelegt, dass bei weniger als 200 mglichen Vervollstndigungen keine Nachfrage durchgefhrt werden soll. Auerdem sollen die mglichen Vervollstndigungen sofort angezeigt werden. Dann wird festgelegt, dass beim Anzeigen von Vervollstndigungen der Typ von Dateien kenntlich gemacht werden soll und dass die Tilde whrend der Vervollstndigung in den Namen des Home-Verzeichnisses umgewandelt werden soll. Darauf folgt die Denition eines Tastaturmakros. Der Tastenkombination S TRG R wird ein Makro zugeordnet, das ein Kommando zum Durchsuchen komprimierter Dateien im Dokumentationsverzeichnis /usr/share/doc erzeugt (siehe nd (S. 798), xargs (S. 888) und zgrep (S. 891)). Weil der Text, nach dem gesucht werden soll, bei jeder Benutzung des Makros ein anderer ist, ist er nicht enthalten. Vielmehr wird der Cursor gleich an die Stelle bewegt, an der der Text einzusetzen ist (zweimal ein Wort zurck (\M-b) und drei Buchstaben vor mit dreimal \C-f). Man sieht, dass in Makros neben Zeichenketten auch alle Tastaturbefehle vorkommen drfen. Zu beachten ist bei diesem Makro, dass es Anfhrungszeichen enthlt. Weil Anfhrungszeichen in der Datei .inputrc selbst eine besondere Bedeutung haben, muss ihnen ein Gegen-Schrgstrich vorangestellt werden (\).

16.1 Start

515

In dem darunterliegenden Block benden sich die Denitionen fr die Funktionstasten. Hier wird von der Mglichkeit Gebrauch gemacht, mit der Anweisung $if eine Bedingung hier den Terminaltyp abzufragen und abhngig davon unterschiedliche Denitionen vorzunehmen. Welche weiteren Bedingungen abgefragt werden knnen, ist in der Info-Dokumentation zur Bash erlutert. Weil sich bei den drei Terminaltypen nur die Zeichenfolgen der ersten fnf Funktionstasten unterscheiden, sind nur diese innerhalb der $if, $else und $endif Anweisungen eingeschlossen. Die darunterliegenden Denitionen gelten wieder fr alle Terminaltypen. Sinnvoll belegt sind hier nur die Funktionstasten F1 und F2. Auf der ersten bendet sich jetzt das Kommando zum Durchsuchen der Kommandogeschichte (reverse-search-history) und auf der zweiten die Funktion zum Lschen des Bildschirms. Alle anderen Funktionstasten sind mit Makros belegt, die lediglich den angegebenen Text ausgeben. Es bleibt dem Leser berlassen, hier fr ihn zweckmige Makros einzusetzen. Die beiden Denitionen fr diese Funktionstasten sind nicht von Anfhrungszeichen umschlossen. Der Grund besteht darin, dass es sich hier um die Namen von Funktionen und nicht um auszugebende Zeichen handelt. Zusammenfassung ber die Datei .inputrc im Home-Verzeichnis wird das Verhalten der Bash und anderer readline-basierter Programme in bezug auf Eingaben mit der Tastatur deniert. In dieser Datei gibt es zwei Formen von Denitionen, nmlich zum einen setAnweisungen, mit denen bestimmte Eigenschaften eingestellt bzw. ein- oder abgeschaltet werden. Zum anderen nden sich hier Denitionen von Tastenbelegungen. Tastenbelegungen knnen entweder Makros sein, die durch Anfhrungszeichen umschlossen sind, oder Namen von Funktionen der Bibliothek readline, die ohne Anfhrungszeichen angegeben werden. Solche Funktionen stehen in groem Umfang zur Verfgung und ermglichen das bequeme Arbeiten mit der Kommandozeile. Die meisten Funktionen sind per Voreinstellung mit Tastenkombinationen verbunden, die weitgehend mit denen des Editors Emacs bereinstimmen. Whrend des Betriebs der Bash lsst sich die readline-Konguration darber hinaus mit dem Kommando bind (S. 573) ausgeben und beeinussen. 16.1.6 Die Startdateien /etc/prole, ~/.bash_prole und ~/.bashrc 16.1.7 Die Datei /etc/prole ber die Datei werden Einstellungen vorgenommen, die fr alle Benutzer gelten, deren Standardshell die Bash oder die Korn-Shell ist. In ihr benden sich gewhnliche

516

16 Der Kommandointerpreter Bash

Shell-Kommandos, die whrend des Starts dieser beiden Shells ausgefhrt werden. Um beispielsweise das Programm news (S. 841) jedesmal dann aufzurufen, wenn die Bash als Login-Shell gestartet wird, ist in die Datei das Kommando news einzufgen. Die wichtigste Aufgabe der Datei besteht jedoch darin, sinnvolle Voreinstellungen festzulegen, mit denen Benutzer auch dann arbeiten knnen, wenn sie keine eigenen Kongurationsdateien haben. Dazu gehrt das Festlegen der Verzeichnisse, in denen von der Bash nach Programmen gesucht werden soll (PATH-Variable). 16.1.8 Die Datei ~/.bash_prole Nachdem die Bash als Login-Shell die Kommandos in der Datei /etc/prole abgearbeitet hat, fhrt sie die Kommandos in der Datei .bash_prole im Home-Verzeichnis des Benutzers aus. Hier hat jeder Benutzer die Mglichkeit, Einstellungen vorzunehmen, die auch die Standardeinstellungen aus /etc/prole berschreiben knnen. Wenn der Systemverwalter das Kommando news nicht in die Datei /etc/prole geschrieben hat, aber man dennoch mchte, dass dieses Programm nach der Anmeldung aufgerufen wird, ist das Kommando in die eigene Kongurationsdatei .bash_prole aufzunehmen. Auch mchte man eventuell einen anderen Suchpfad fr Programme verwenden, als er vom Systemverwalter vorgesehen worden ist. 16.1.9 Die Datei ~/.bashrc Wenn die bash nicht als Login-Shell gestartet wurde, fhrt sie lediglich die Kommandos in dieser Datei aus. Es wird dann davon ausgegangen, dass alle wichtigen Einstellungen und Umgebungsvariablen fr die Sitzung bereits gesetzt worden sind und lediglich Einstellungen des Benutzers an der Shell selbst vorgenommen werden sollen. In der Praxis mchte man oft die gleichen Einstellungen fr Login-Shell und normale Shell benutzen. Durch die folgende Zeile in der Datei .bash_prole wird erreicht, dass die Shell als Login-Shell auch alle Kommandos in der Datei .bashrc ausfhrt: . ~/.bash_profile Der Punkt am Anfang, gefolgt von einem Leerzeichen, ist ein Shell-Kommando, das die Bash veranlasst, die in der angegebenen Datei bendlichen Anweisungen auszufhren. Wenn Sie dieses Kommando in Ihre Datei .bash_prole aufnehmen, brauchen Sie alle weiteren Einstellungen nur noch in der Datei .bashrc vorzunehmen. Sie gelten dann automatisch fr Login-Shell und normale Shell. Trotzdem ist es weiterhin mglich, Kommandos, die nur fr die Login-Shell gelten sollen, in die Datei .bash_prole zu schreiben. Die Datei ~/.bash_logout Ebenso, wie beim Start der Bash Kommandos automatisch ausgefhrt werden, knnen bestimmte Kommandos automatisch whrend der Beendigung der Bash

16.2 Grundlagen

517

aufgerufen werden. Hierzu dient die Datei .bash_logout im Home-Verzeichnis des Benutzers. Sie wird nur whrend der Beendigung einer Login-Shell abgearbeitet.

16.2 Grundlagen
16.2.1 Externe und interne Kommandos Die wichtigste Aufgabe der Shell besteht darin, Kommandos vom Benutzer entgegenzunehmen und auszufhren. Man unterscheidet dabei zwischen externen Kommandos und internen oder eingebauten Kommandos. Externe Programme sind Programme, die von der Shell aufgerufen werden, nachdem der Benutzer ein Kommando eingegeben hat. Diese haben normalerweise den gleichen Namen wie das Kommando, das eingegeben wurde. Beispiele fr solche Programme sind die Kommandos ls (S. 823) oder rm (S. 855). Im Gegensatz zu anderen Kommandointerpretern lsst die Bash fast alles, was sie nicht unbedingt selbst machen muss, von externen Programmen erledigen. Kommandos lassen sich dadurch leicht austauschen, und die Bash bleibt ein relativ schlankes Programm, das nicht allzuviel Speicher bentigt. Die Bash sucht nach externen Programmen in den Verzeichnissen, die in der Variablen PATH aufgefhrt sind (siehe Abschnitt 16.6.2, S. 534). Interne Kommandos werden von der Bash selbst ausgefhrt. Nachdem ein Kommando eingegeben wurde, wird zunchst berprft, ob es sich um ein eingebautes handelt. Wenn dies so ist, fhrt sie es selbst aus. Wenn nicht, sieht sie nach, ob es ein Programm mit dem Namen des Kommandos gibt, und fhrt es aus. Interne Kommandos werden dort bentigt, wo die Eigenschaften des Prozesses der Bash selbst verndert werden sollen, beispielsweise beim Wechsel des Arbeitsverzeichnisses (cd) oder beim ndern von Umgebungsvariablen (export). Viele interne Kommandos dienen auch der Ablaufsteuerung von Shellskripten oder wurden eingebaut, weil sie schneller auszufhren sind als externe Programme, die vom Betriebssystem geladen werden mssen. Ein weiteres Beispiel fr ein internes Kommando ist alias. Es dient der Denition neuer Kommandos auf der Basis bereits bekannter Kommandos. Angenommen, Sie wollten das Kommando ls immer mit der Option - -color=auto aufrufen, so geben Sie folgendes Kommando ein, damit ls immer mit diesem Parameter aufgerufen wird: joe@debian:~$ alias ls="ls - -color=auto" Dieses Kommando weist die Bash an, immer dann, wenn das Kommando ls eingegeben wird, das Kommando ls - -color=auto zu verwenden. Das originale Kommando ls erreichen Sie nur noch ber seinen absoluten Pfad. Ein weiterer, oft benutzter Alias ist folgender: joe@debian:~$ alias ll="ls -l" Ein Alias bleibt nur so lange gltig, wie die Bash luft, in der er eingegeben wurde. Alias-Anweisungen, die immer gltig sein sollen, mssen deswegen in eine der

518

16 Der Kommandointerpreter Bash

Startdateien der Bash (gewhnlich in die Datei .bashrc) geschrieben werden, damit sie jedesmal beim Start der Bash ausgefhrt werden und zur Verfgung stehen. Gibt man nach einem Alias eine Option oder ein Argument an, so macht man sich dessen Wirkung klar, indem man das Alias buchstblich durch seine Denition ersetzt. Ist das Alias eine Pipe, werden Option oder Argument dem letzten Glied bergeben. 16.2.2 Benutzung Im einfachsten Fall wird der Name eines Programms eingegeben und die E INGABETaste gedrckt, woraufhin die Bash das betreffende Programm startet. Weil vielen Programmen eine Reihe von Parametern bergeben werden knnen und teilweise mssen, ist es in der Bash mglich, solche Parameter anzugeben. Sie werden durch ein oder mehrere Leerzeichen von dem Programmnamen und von anderen Parametern getrennt. Die Benutzung der Bash ist hngt hauptschlich ab von der Konguration der Bibliothek readline, die auch die beiden folgenden Eigenschaften zur Verfgung stellt. Vervollstndigung Weil man sich gelegentlich vertippt, bietet die Bash verschiedene Mechanismen zum Editieren der Kommandozeile. Die wichtigsten Tastaturkommandos nden Sie in Tabelle 16.1, S. 511. Eine Funktion dieser Bibliothek ist die Kommandovervollstndigung. Sie spart zum einen Tipparbeit und schtzt zum anderen vor Schreibfehlern. Mit der Kommandovervollstndigung reicht es, einige Anfangsbuchstaben eines Kommandos oder eines Dateinamens einzugeben. Wenn danach die Taste TAB gedrckt wird, wird nachgeschaut, welche Kommandos oder Dateinamen mit diesen Buchstaben anfangen. Es gibt dann drei Mglichkeiten: 1. Nur ein Kommando oder Dateiname fngt mit diesen Buchstaben an. In diesem Fall wird das Kommando automatisch vervollstndigt, sodass Sie nicht weiterschreiben mssen. 2. Es gibt mehrere Kommandos oder Dateien, die mit den eingegebenen Zeichen anfangen. Je nach Einstellung durch die Datei .inputrc werden dann entweder sofort oder nach einer zweiten Bettigung der TAB-Taste die zur Verfgung stehenden Kommandos angezeigt. Gewhnlich reicht es in einem solchen Fall aus, noch einen oder zwei weitere Buchstaben einzugeben, bis das Kommando oder der Dateiname eindeutig ist, und dann wieder TAB zu drcken, um das Wort zu vervollstndigen. 3. Es gibt kein Kommando oder Dateinamen mit den eingegebenen Zeichen am Anfang. In diesem Fall ertnt ein Warnton. Die Bash wei, wann sie nach einem Programm- und wann nach einem Dateinamen suchen muss. Am Anfang einer Zeile steht immer ein Kommando. Als

16.2 Grundlagen

519

Argument werden Kommandos nur selten, Dateinamen aber oft bergeben. Neben Programm- und Dateinamen knnen auch Rechnernamen (nach einem @Zeichen), Benutzernamen (nach einem ~-Zeichen) und Variablennamen (nach einem $-Zeichen) ergnzt werden. Es ist zu empfehlen, von dieser Funktion Gebrauch zu machen. Wenn Sie nur die Anfangsbuchstaben einer Datei kennen, knnen Sie diese einfach eingeben, ein oder zweimal TAB drcken, die mglichen Vervollstndigungen betrachten und dann einige weitere Buchstaben eingeben und wieder TAB drcken. Wenn Sie die Eingabe eines Kommandos oder eines Dateinamens immer mit der TAB-Taste berprfen, kommt es auch nicht mehr vor, dass Sie eine Fehlermeldung aufgrund eines nicht gefundenen Kommandos oder einer nicht gefundenen Datei erhalten. Auerdem lsst sich mit Hilfe dieser Funktion Zeit sparen. Kommandogeschichte Die Bash speichert die zuletzt eingegebenen Kommandos in der Datei .bash_history im Home-Verzeichnis. Auf diese Weise stehen sie auch dann noch zur Verfgung, wenn Sie sich zwischendurch abgemeldet oder den Rechner ausgeschaltet haben. Mit Hilfe der Datei lsst sich ermitteln, was Sie als letztes auf dem Rechner gemacht haben. Falls Sie aus Grnden der Sicherheit dieses Verhalten nicht wnschen, lschen Sie beim Abmelden die Datei. Die wichtigsten Kommandos zur Benutzung der Kommandogeschichte sind die Tasten P FEIL R AUF und P FEIL RUNTER. Mittels P FEIL R AUF erscheinen die zuletzt eingegebenen Kommandos, mit P FEIL RUNTER geht es wieder zurck in die Gegenwart. Die Kommandogeschichte lsst sich durchsuchen. Angenommen, Sie haben irgendwann folgendes Kommando eingegeben: joe@debian:~$ find / -xdev -nouser -print | less Hundert Kommandos spter wollen Sie obiges Kommando erneut eingeben. Dazu benutzen Sie die Funktion backward-search-history der Bibliothek readline. Die Funktion ist als Vorgabe mit der Tastenkombination S TRG - R verbunden; im Beispiel oben wurde sie auf die Funtktionstaste F1 gelegt. Sie bettigen die Taste, es erscheint folgender Prompt: (reverse-i-search): Nun fangen Sie an, Ihr Kommando wieder einzugeben. Mit jedem Zeichen erscheint das jngste Kommando, das mit den bislang eingegebenen Zeichen angefangen hat, bis nach wenigen Eingaben das gewnschte Kommando gefunden ist: (reverse-i-search) find /: find / -xdev -nouser -print | less Dann drcken Sie nur noch E INGABE, und das Kommando wird ausgefhrt.

520

16 Der Kommandointerpreter Bash

Hilfe und Dokumentation Die Bash ist mit einer Hilfefunktion ausgestattet, die eine Kurzreferenz zu allen eingebauten Kommandos liefert. Das Kommando help gibt eine Liste der eingebauten Kommandos aus. Wenn dem help-Kommando der Name eines eingebauten Kommandos als Argument mitgegeben wird, erscheint eine Beschreibung des Kommandos. Folgendes Kommando liefert eine Beschreibung des Kommandos alias: joe@debian:~$ help alias Darber hinaus gibt es eine Manual-Seite zur Bash, die mit folgendem Kommando ausgedruckt wird: joe@debian:~$ man bash -T ps | lpr Der Ausdruck umfasst rund 70 Seiten Papier A4. Auch im GNU-Info-System ist die Bash dokumentiert (siehe Kap. 6.3, Seite 162), ebenso im Verzeichnis /usr/share/doc/bash in der Datei FAQ.

16.3 Ein- und Ausgabeumleitung


16.3.1 Aufgabe Wenn ein Kommando ausgefhrt wird, erscheint seine Ausgabe auf dem Terminal, von dem er gestartet wurde. Manchmal mchte man die Ausgabe statt auf den Bildschirm in eine Datei schreiben. Nehmen wir an, Sie schreiben einen lngeren Text. Sie mchten jeden Abend festhalten, wie gro Ihre Datei ist, um den Fortgang Ihrer Arbeit zu berwachen. Dazu dient der Befehl; joe@debian:~$ ls -l diplomarbeit Um zu ereichen, dass die Ausgabe von ls gleich in einer Datei landet, erweitern wir den BefehL: joe@debian:~$ ls -l diplomarbeit > fortschritt Das Zeichen > bewirkt, dass die Ausgabe statt auf den Bildschirm in die Datei fortschritt geschrieben wird. Die Datei wird jedesmal neu angelegt. Da wir aber den Fortschritt ber der Zeit verfolgen wollen, verwenden wir ein geringfgig anderes Kommando: joe@debian:~$ ls -l diplomarbeit > > fortschritt Die beiden Zeichen >> bewirken, dass die Ausgabe des vorangestellten Kommandos an den Inhalt der dahinter bezeichneten Datei angehngt wird. Sie wird nicht berschrieben, sondern fortgeschrieben. Wenn die Datei vorher noch nicht vorhanden war, wird sie auch mit diesem Kommando erzeugt.

16.3 Ein- und Ausgabeumleitung

521

16.3.2 Standardein- und -ausgabe, Standardfehlerausgabe Programme fr grasche Benutzeroberchen fragen den Benutzer oft, mit welcher Datei gearbeitet werden soll und in welche Datei die Arbeitsergebnisse geschrieben werden sollen. Dies knnen Programme fr die Kommandozeile auch tun. Unter Linux und vielen anderen Betriebssystemen stehen Programmen aber von Anfang an drei formale Dateien zur Verfgung, aus denen sie lesen bzw. in die sie schreiben, ohne sie eigens zu ffnen. Diese Dateien bezeichnet man als Standardeingabe (stdin), Standardausgabe (stdout) und Standardfehlerausgabe (stderr). Die Standardausgabe ist die Datei, in die Programme schreiben. Sie ist als Vorgabe mit dem Bildschirm des Terminals verbunden, von dem das Programm gestartet wird (Kontrollterminal). Wenn ein Programm auf die Standardausgabe schreibt, erscheint das Geschriebene auf dem Bildschirm. Dasselbe gilt fr die Standardfehlerausgabe. Auch sie ist normalerweise mit dem Bildschirm verbunden. Zwischen diesen beiden Kanlen wird unterschieden, damit es mglich ist, Ergebnisse und Fehlermeldungen voneinander zu trennen. Die Standardeingabe ist mit der Tastatur des Terminals verbunden, in dem das Programm luft. Von ihr wird gelesen. Wenn ein Programm Daten liest oder Benutzerantworten entgegennimmt, dann macht es das ber die Standardeingabe. Alles, was Sie in ein Terminal eingeben, wird von dem Programm gelesen, das dort luft. Nach dem Start der Bash ist dies die Bash. Sie liest ebenfalls alle Eingaben von der Standardeingabe. Wie jede Datei kann auch die Standardeingabe ein Ende haben. Solange sie mit einem Terminal verbunden ist, beenden Sie die Standardeingabe, indem Sie die Tastenkombination S TRG - D drcken. Geffnete Dateien werden auer ber ihren Namen (Dateipointer) auch ber einen Deskriptor (Index, Handle) angesprochen. Da es sich bei Standardein- und -ausgabe sowie bei der Standardfehlerausgabe um geffnete Dateien handelt, ist dies auch hier der Fall. Der Deskriptor fr die Standardeingabe hat die Nummer 0, der Deskriptor fr die Standardausgabe die Nummer 1 und der fr die Standardfehlerausgabe die Nummer 2. Fr Programmierer: Systemaufrufe verwenden Deskriptoren, C-Standardfunktionen Dateipointer. Vom Programm geffnete Dateien erhalten Deskriptoren von 3 an aufwrts. 16.3.3 Umleitung Die Deskriptoren lassen sich mit den Operatoren > und < mit anderen Dateien als dem Terminal verbinden. Obiges Kommando: joe@debian:~$ ls -l diplomarbeit > fortschritt ist insofern eine Abkrzung fr das Kommando: joe@debian:~$ ls -l diplomarbeit 1> fortschritt weil hier der Deskriptor 1 (Standardausgabe) mit der Datei fortschritt verbunden worden ist.

522

16 Der Kommandointerpreter Bash

Ebenso funktioniert es mit der Standardfehlerausgabe. Das Programm ls erzeugt eine Fehlermeldung, wenn es Daten einer Datei anzeigen soll, die es nicht gibt. Diese Fehlermeldung wird auf die Standardfehlerausgabe geschrieben. Vorausgesetzt die Datei titelblatt existiert nicht, dann gibt das folgende Kommando nur eine Fehlermeldung aus: joe@debian:~$ ls -l diplomarbeit titelblatt 1> fortschritt Die regulre Ausgabe von ls wird wieder in die Datei Fortschritt geschrieben, die Fehlermeldung erscheint auf dem Bildschirm. Wenn auch Fehlermeldungen in eine Datei umgeleitet werden sollen, ist das folgende Kommando einzugeben: joe@debian:~$ ls -l diplomarbeit titelblatt 1> fortschritt 2> fehler Mit diesem Kommando werden die Fehlermeldungen (Deskriptor 2, Standardfehlerausgabe) in die Datei fehler umgeleitet. Die Trennung zwischen Standardausgabe und Standardfehlerausgabe ist vor allem dann wichtig, wenn die Ausgabe eines Programmes von anderen Programmen weiterverarbeitet werden soll. Die Ausgabe des obigen Kommandos knnte folgendermaen aussehen:
-rw-r- -r-1 joerg joerg 431559 Jul 16 23:20 diplomarbeit

Weil Sie nur die Gre der Datei und nicht die anderen Daten protokollieren wollen, schneiden Sie diese mit dem Kommando cut (S. 787) aus: joe@debian:~$ cut -c 34-41 protokoll Dann leiten Sie die Ausgabe dieses Kommandos in eine neue Datei um: joe@debian:~$ cut -c 34-41 protokoll > groesse Stellen Sie sich vor, was passieren wrde, wenn in der Datei protokoll auch etwaige Fehlermeldungen enthalten wren! Der cut-Kommandos wrde nicht die Dateigre, sondern irgendeine sinnlose Zeichenkette aus der Fehlermeldung herausschneiden. Durch die Trennung der beiden Kanle ist es auch mglich, nur die Fehler eines Programms zu beobachten. Ein Programm knnte jede Nacht prfen, ob die Gren und Rechte wichtiger Dateien noch stimmen oder vielleicht von einem Eindringling gendert worden sind. Diese Daten wrde es dann in Protokolldateien schreiben, die normalerweise niemanden interessieren. Nur wenn es wirklich eine Abweichung ndet, wrde es eine Mitteilung auf die Standardfehlerausgabe geben, die man in eine Datei umleiten und sofort an den Verwalter schicken knnte. Zusammenfhrung von Standardausgabe und Standardfehlerausgabe Falls Standardausgabe und Standardfehlerausgabe doch zusammen in eine Datei umgeleitet werden sollen, dient hierzu der Operator &. Er verbindet zwei Deskriptoren miteinander. So fhrt das Kommando:

16.3 Ein- und Ausgabeumleitung

523

joe@debian:~$ ls -l diplomarbeit titelblatt 1 > protokoll 2>&1 dazu, dass sowohl die Ausgabe des Kommandos ls als auch die Fehlermeldungen in der Datei protokoll gespeichert werden (Deskriptor 2 wird mit Deskriptor 1 verbunden). Das Kommando lsst sich abkrzen: joe@debian:~$ ls -l diplomarbeit titelblatt &> protokoll Umleitung ins Nichts Eine Datei, die sich gelegentlich zur Ausgabeumleitung anbietet, ist die Datei /dev/null. Die Gertedatei stellt den Mlleimer (bit bucket) des Systems dar. Alle Daten, die nach /dev/null geschrieben werden, gehen sofort verloren. Mchte man die Fehlerausgabe eines Programms komplett unterdrcken, leitet man die Standardfehlerausgabe auf diese Datei um. Dies geschieht in unserem Beispiel mit folgendem Kommando: joe@debian:~$ ls -l diplomarbeit titelblatt > protokoll 2 > /dev/null Das Lesen aus /dev/null liefert ein End-of-File-Zeichen (EOF) zurck. Umleitung der Standardeingabe Etwas anders funktioniert die Umleitung der Standardeingabe. Hier wird der Operator < benutzt. Das Programm cut, das wir eben schon benutzt haben, liest normalerweise von der Standardeingabe, wenn es nicht den Namen einer Datei als Argument bergeben bekommt. So htte man an Stelle von: joe@debian:~$ cut -c 34-41 protokoll > groesse auch folgendes schreiben knnen: joe@debian:~$ cut -c 34-41 < protokoll > groesse Hierdurch wird die Standardeingabe aus der Datei protokoll gelesen und nicht von der Tastatur. Wird das Kommando ohne Umleitung der Standardeingabe eingegeben, so wird darauf gewartet, dass Eingaben vom Benutzer am Terminal vorgenommen werden. Diese knnten dann mit der Tastenkombination S TRG - D beendet werden. Wenn der letzte Teil (> groesse) weggelassen wird, erscheint das Ergebnis wieder auf der Standardausgabe. Gelegentlich im wesentlichen in Shellskripten mchte man Text oder Daten, die von einem Programm gelesen werden sollen, nicht aus einer Datei lesen lassen, sondern direkt im Skript oder an der Kommandozeile angeben. Hierzu dient der Operator << Zeichenkette. Es werden dann alle nachfolgenden Zeilen als Standardeingabe benutzt, bis die mit Zeichenkette angegebene Zeichenkette als einzige Zeichenkette in einer Zeile vorkommt. Beispiel:

524

16 Der Kommandointerpreter Bash

#!/bin/bash cat << EOF Dieses Skript gibt den hier angegebenen Text aus, bis die Zeichenkette "EOF" alleine in einer Zeile steht. Es htte auch jede andere Zeichenkette verwendet werden knnen. "EOF" wird aber oft benutzt, weil das fr End-Of-File steht und die Zeichenkette das Ende der Standardeingabe anzeigt. EOF

Hier liest das Programm cat den Text zwischen der zweiten Zeile und der EOFZeile und gibt ihn auf die Standardausgabe aus. Dieses Verfahren wird in Skripten oft benutzt, um lngere Ausgaben, beispielsweise Erluterungen oder Hilfetexte, einfach zu formulieren. Der von den beiden EOF-Marken eingerahmte Text wird als Here Document bezeichnet und kann mit anderem Inhalt auch von weiteren Programmen benutzt werden, die eine kurze, feststehende Eingabe von der Standardeingabe bentigen (URLs, Telefonnummern, Benutzernamen, nur ungern Passwrter in Klartext). 16.3.4 Kommandoverkettung (Pipe) Im obigen Beispiel ist es lstig, dass zwei Kommandos hintereinander eingegeben werden mssen, um das gewnschte Ergebnis zu erhalten. Auerdem strt es, dass zwischendurch eine Datei angelegt wird, die keine interessierenden Daten enthlt. Mit dem Operator ist es mglich, die Standardausgabe eines Programms mit der Standardeingabe eines zweiten Programms zu verbinden, ohne irgendwelche Zwischendateien zu benutzen. Das sieht dann so aus: joe@debian:~$ ls -l diplomarbeit | cut -c 34-41 > > groesse Hier wird die Ausgabe des Kommandos ls -l mit der Eingabe des Kommandos cut verbunden, und die Ausgabe von cut wird an die Datei groesse angehngt. Eine solche Konstruktion bezeichnet man als Pipe (Rhre). Pipes knnen von Programmen hnlich wie Dateien benutzt werden. Es knnen auf der einen Seite Daten in sie hineingeschrieben und auf der anderen Seite aus ihnen gelesen werden. Mit dem Kommando mkfo (S. 831) ist es sogar mglich, im Dateisystem Pipes mit eigenem Namen zu erzeugen, die man wie Dateien benutzen kann. Die Verkettung von Kommandos ist ein wichtiges Instrument. So gibt es eine ganze Reihe kleiner, spezialisierter Werkzeuge, die erst dann sinnvoll genutzt werden knnen, wenn sie durch Pipes mit anderen Programmen verkettet werden. Wenn man solche Programme durch Pipes miteinander verbindet, erhlt man Kommandos, die auf die betreffende Aufgabenstellung genau zugeschnitten sind. Ein Beispiel dafr ist die Konvertierung von DOS-Textdateien fr die Benutzung unter Linux/UNIX. Unter DOS und MS-Windows werden Zeilenenden in Textdateien durch ein Wagenrcklaufzeichen (CR, Carriage Return) und ein Neue-ZeileZeichen (LF, Line Feed) kodiert, wohingegen unter Linux/UNIX das Neue-ZeileZeichen (LF) allein ein Zeilenende markiert. Um eine unter DOS erstellte Textdatei unter Linux/UNIX lesen zu knnen, mssen die CR-LF-Paare in LF-Zeichen umgewandelt werden. Dies kann mit dem Programm fromdos (S. 800) geschehen. Weiter

16.4 Auftragsverwaltung (Jobverwaltung) und Prozessverwaltung

525

wird unter DOS oft eine andere Zeichensatztabelle benutzt als unter Linux/UNIX. Die Zeichensatztabelle beschreibt, welches Zeichen durch welche Zahl reprsentiert wird. Das fhrt dazu, dass beispielsweise deutsche Umlaute in solchen Dateien unter Linux/UNIX nicht zu lesen sind, wenn diese nicht auch an die richtige Zeichensatztabelle angepasst werden. Dies geschieht mit dem Programm recode (S. 853). Angenommen, Sie haben die Textdatei diplomarbeit unter DOS erstellt und wollen Sie nun unter Linux weiterbearbeiten. Dann geben Sie folgendes Kommando ein, um gleichzeitig die Konvertierung der Zeilenenden und die Konvertierung von einer Zeichensatztabelle in eine andere durchzufhren: joe@debian:~$ cat diplomarbeit | fromdos | recode cp850/..latin1 > diplomarbeit_linux Das Kommando cat (S. 777) gibt zunchst den Inhalt der Datei diplomarbeit auf die Standardausgabe, die mit der Standardeingabe des Kommandos fromdos verbunden wird. Dieses Programm konvertiert die Zeilenenden und gibt das Ergebnis wiederum auf die Standardausgabe, die von recode als Standardeingabe gelesen wird. Das Programm recode konvertiert nun die Zeichen in der Datei ausgehend von der DOSZeichensatztabelle cp850 in die unter Linux/UNIX bliche Zeichensatztabelle latin1. Die Standardausgabe von recode wird zum Schluss in die Datei diplomarbeit_linux umgeleitet, die hinterher die Linux-Version des Textes enthlt. Wenn Sie die Datei spter wieder unter DOS bearbeiten mchten, drehen Sie das Kommando einfach um: joe@debian:~$ cat diplomarbeit_linux | recode latin1..cp850/ | todos > diplomarbeit_dos Hier wird das Kommando todos (S. 874) benutzt, um die Zeilenenden in das DOSFormat zu bringen2.

16.4 Auftragsverwaltung (Jobverwaltung) und Prozessverwaltung


Unter Linux/UNIX ist es mglich, zeitgleich mehrere Prozesse auszufhren (Multitasking). Diese Betriebssystemseigenschaft wird von der Bash auf vielfltige Weise untersttzt. Nach dem Start der Bash sind Standardein- und -ausgabe der Bash mit dem Terminal verbunden, in dem sie gestartet wurde (Kontrollterminal). Alles, was Sie auf der Tastatur eingeben, geht an die Bash und alles, was die Bash ausgibt, geht auf den betreffenden Bildschirm. Wenn Sie in der Bash ein anderes Programm aufrufen, dann werden Standardein- und -ausgabe mit diesem Programm verbunden. Stellen Sie sich vor, Sie rufen von der Bash aus den Editor vi auf. Jeder Tastenanschlag dient nun der Benutzung von vi und nicht mehr der Bash. Erst wenn der Editor beendet ist, ist die Bash wieder an der Reihe.
2 Diese Dateikonvertierungen knnen auch von dem Programm recode allein ausgefhrt werden. Sie dienen hier nur der Beschreibung von Pipes.

526

16 Der Kommandointerpreter Bash

16.4.1 Der &-Operator Ein Beispiel: Sie mchten eine Datei anlegen, in der die Namen aller Dateien auf dem System stehen, die Ihnen gehren. Dies knnen Sie mit dem Kommando nd (S. 798) erledigen. Das Kommando: joe@debian:~$ find / -user kurt gibt die Namen aller Dateien auf dem System aus, die dem Benutzer kurt gehren. Das Kommando: joe@debian:~$ find / -user kurt &> kurts_dateien schreibt die normale Ausgabe sowie die Fehlerausgabe dieses Kommandos in die Datei kurts_dateien. Wenn Sie dieses Kommando ausprobieren, werden Sie sehen, dass es eine Zeit dauert, bis das gesamte Dateisystem durchsucht worden ist. Whrenddessen knnen Sie in dem Kontrollterminal nichts tun, weil die Bash wartet, bis das Kommando beendet ist. Man sagt auch: Der Prozess luft im Vordergrund ab. Durch den Operator & ist es mglich, Prozesse in den Hintergrund zu stellen. Wenn Sie das obigen Kommando folgendermaen eingeben, knnen Sie sofort mit der Bash weiterarbeiten: joe@debian:~$ find / -user kurt &> kurts_dateien & Nach der Eingabe dieses Kommandos liefert die Bash zwei Zahlen zurck: [1] 3642 Die erste Zahl (in eckigen Klammern) ist die Auftrags- oder Jobnummer des Prozesses, den Sie in den Hintergrund gestellt haben. Die zweite Zahl ist die Prozessnummer des dazugehrigen Prozesses. Dazu muss man wissen, dass jeder Prozess (jedes Programm, das auf dem System ausgefhrt wird) vom System eine eindeutige Prozessnummer erhlt, ber die der Prozess angesprochen werden kann. Die Prozessnummer wird auch PID fr Process-ID genannt. Wenn ein im Hintergrund ablaufender Prozess beendet wird, teilt die Bash dies ebenfalls mit. Sie erhalten eine der folgenden Ausgaben: [1]- Done find / -user kurt &> kurts_dateien [1] Exit 1 find / -user kurt &> kurts_dateien [1]- Terminated find / -user kurt &> kurts_dateien [1]- Killed find / -user kurt &> kurts_dateien Im ersten Fall wurde der Prozess normal beendet (Done). Im zweiten Fall wurde der Prozess beendet und hat einen Rckgabewert geliefert, der von 0 abweicht. Damit zeigen Prozesse an, dass Fehler aufgetreten sind. Im Fall des nd-Kommandos kann dies daran liegen, dass nd versucht hat, Verzeichnisse zu durchsuchen, fr die es keine Leseberechtigung hat. Die letzten beiden Ausgaben erscheinen, wenn der

16.4 Auftragsverwaltung (Jobverwaltung) und Prozessverwaltung

527

Prozess von auen beendet wurde. Terminated bedeutet, dass ein anderer Prozess diesen Prozess aufgefordert hat, sich zu beenden, und Killed bedeutet, dass ein anderer Prozess diesen Prozess gewaltsam beendet hat, ohne ihm die Chance zu geben, sich selbst zu beenden (siehe kill (S. 580)). Solche Meldungen erscheinen erst dann, wenn die Eingabe einer Kommandozeile abgeschlossen ist. Der Grund ist, dass man beim Eingeben von Kommandos nicht gestrt werden mchte. Wenn Sie wissen wollen, ob es irgendwelche Meldungen gab, schicken Sie einfach eine leere Kommandozeile ab, indem Sie die Taste E INGABE drcken. 16.4.2 Umschalten zwischen Prozessen Gelegentlich mchte man einen Prozess zunchst im Vordergrund starten und dann fr eine Weile in den Hintergrund stellen, um etwas anderes zu erledigen, ohne den Prozess zu beenden. Ein Beispiel dafr ist die Arbeit mit Editoren. Wenn Sie mit dem vi eine Datei bearbeiten und zwischendurch kurz etwas nachsehen wollen, dann mssten Sie normalerweise Ihre Datei speichern, den Editor beenden, dann nachsehen, was Sie wissen wollen, und hinterher den Editor wieder starten. Mit der Tastenkombination S TRG - Z knnen Sie einen Prozess, der im Vordergrund ausgefhrt wird, anhalten und in den Hintergrund stellen (suspendieren). Sie erhalten den Prompt der Bash und knnen andere Dinge tun, bis Sie den Prozess wieder in den Vordergrund stellen. Dieser Vorgang unterscheidet sich vom Starten eines Prozesses im Hintergrund dadurch, dass der betreffende Prozess durch S TRG - Z angehalten wird. Wenn Sie das oben aufgefhrten Kommando nochmals ohne &-Operator aufrufen: joe@debian:~$ find / -user kurt &> kurts_dateien und danach S TRG - Z drcken, erhalten Sie folgende Meldung: [1]+ Stopped find / -user kurt &> Die Bash teilt mit, dass der Prozess angehalten ist. An der ausbleibenden Festplattenaktivitt merken Sie auch, dass das Kommando nicht mehr ausgefhrt wird. Es besteht nun die Mglichkeit, diesen Prozess entweder im Hintergrund (wie mit &) weiter auszufhren oder ihn wieder in den Vordergrund zu holen. Natrlich kann er auch erstmal im Hintergrund gelassen werden. Um einen Auftrag in den Hintergrund zu stellen, ist folgendes Kommando einzugeben: bg [Jobnummer] Das Wort bg ist eine Abkrzung fr Background. Die optional anzugebende Jobnummer bezeichnet die Auftragsnummer des Prozesses, der in den Hintergrund gestellt werden soll. Wird sie nicht angegeben, dann wird der zuletzt angehaltene Prozess in den Hintergrund gestellt. Im Beispiel ist folgendes Kommando einzugeben: joe@debian:~$ bg %1

528

16 Der Kommandointerpreter Bash

Es erscheint eine Besttigung, dass der Prozess im Hintergrund weiter ausgefhrt wird: [1]+ find / -user kurt &> kurts_dateien & An der wieder einsetzenden Festplattenaktivitt ist zu hren, dass der Prozess das Dateisystem weiter durchsucht. Mit dem Kommando fg (foreground) kann ein Prozess wieder in den Vordergrund gestellt werden. Die Syntax lautet hier: fg [Jobnummer] Auch hier ist die Angabe der Jobnummer optional. Wird sie nicht angegeben, dann wird der zuletzt angehaltene oder in den Hintergrund gestellte Prozess in den Vordergrund gebracht. Um den nd-Prozess wieder in den Vordergrund zu bringen, ist folgendes Kommando einzugeben: joe@debian:~$ fg %1 Die Bash besttigt dieses Kommando dadurch, dass sie das Kommando anzeigt, das nun wieder im Vordergrund ausgefhrt wird: find / -user kurt &> kurts_dateien Wird eine Datei mit dem Editor vi bearbeitet und soll der Editor kurzzeitig in den Hintergrund gestellt werden, um etwas anderes zu tun, so ist whrend der Arbeit mit vi einfach nur S TRG - Z zu drcken, und es erscheint wieder der Prompt. Dann knnen andere Ttigkeiten durchgefhrt werden, z. B. mit less der Inhalt einer anderen Datei betrachtet werden. Wenn man damit fertig ist, ist das Kommando fg einzugeben, und schon kann die Arbeit mit dem vi fortgesetzt werden. Das Kommando jobs zeigt an, welche Auftrge in dem betreffenden Terminal gerade ausgefhrt werden und welche Jobnummern sie haben. Wenn Sie viele Auftrge im Hintergrund laufen haben und die Jobnummer eines Prozesses, den Sie in den Vordergrund schalten wollen, nicht mehr wissen, knnen Sie dieses Kommando benutzen, um die Jobnummer zu ermitteln. 16.4.3 Beenden von Prozessen Manchmal soll ein Prozess von auen beendet werden. Dafr kann es verschiedene Grnde geben. Man hat ein Kommando falsch geschrieben und mchte nicht abwarten, bis es vollstndig ausgefhrt ist, ein Programm tut etwas, was es nicht soll, und muss beendet werden, oder ein Programm soll neu gestartet werden, damit es seine Kongurationsdateien erneut liest usw. Der Verwalter muss auch dann und wann einen Benutzerprozess beenden, der nicht freiwillig Feierabend macht. In der Regel knnen Prozesse, die im Vordergrund ausgefhrt werden, durch die Tastenkombination S TRG - C gestoppt werden. Ob das betreffende Programm dann wirklich beendet wird, hngt davon ab, wie es programmiert wurde. Das Beenden von Prozessen erfolgt durch Senden eines Signals an den Prozess. Programme entscheiden selbst, was zu tun ist, wenn sie ein bestimmtes Signal empfangen. Das ist

16.4 Auftragsverwaltung (Jobverwaltung) und Prozessverwaltung

529

auch gut so, denn ber diesen Mechanismus kann ein Programm, das ein Signal zu seiner Beendigung erhalten hat, noch aufrumen (beispielsweise ungesicherte Daten sichern oder temporre Dateien lschen), bevor es sich beendet. Eine Ausnahme stellt das Signal 9 (SIGKILL) dar, welches von keinem Prozess abgefangen werden kann und sofort zur Beendigung des Prozesses fhrt, der dieses Signal erhlt. Sie sollten dieses Signal nur dann verwenden, wenn Sie einen Prozess beenden mssen, der sich auf keine andere Weise beenden lsst. Um ein Signal an einen Prozess zu senden, wird das Kommando kill (S. 580) benutzt. Dieses Kommando sendet standardmig das Signal 15 (SIGTERM) an Prozesse. Dieses Signal fhrt hnlich wie das durch die Tastenkombination S TRG - C erzeugte Signal 2 (SIGINT) zur sanften Beendigung eines Prozesses. Die Syntax von kill lautet: kill [-Signal] Prozess-ID | %Jobnummer [Prozess-ID | %Jobnummer ...] Dem Kommando kann mit Signal die Nummer oder der Name eines Signals bergeben werden. Eine solche Angabe muss mit einem Minuszeichen eingeleitet werden. Daraufhin muss ihm mit Prozess-ID oder Jobnummer die Prozess-ID oder Jobnummer des Prozesses angegeben werden, an den das Signal gesendet werden soll. Wenn eine Jobnummer angegeben wird, muss sich vor dieser ein Prozentzeichen benden, damit sie von Prozess-IDs unterschieden werden kann. Es knnen auch die ProzessIDs oder Jobnummern mehrerer Prozesse angegeben werden. Sie erhalten dann alle dasselbe Signal. Um den Job mit der Nummer 1 zu beenden, ist folgendes Kommando einzugeben: joe@debian:~$ kill %1 Um den Prozess mit der ID 2467 zu beenden, ist folgendes einzugeben: joe@debian:~$ kill 2467 Und um denselben Prozess sofort brutal zu beenden, ohne ihm Chancen zum Aufrumen zu gewhren, ist folgendes einzugeben: joe@debian:~$ kill -9 2467 Alternativ knnte man auch schreiben: joe@debian:~$ kill -SIGKILL 2467 Vorteilhaft bei der Benutzung von Prozess-IDs gegenber der Benutzung von Jobnummern ist der Umstand, dass mit ihnen auch Signale an Prozesse geschickt werden knnen, die nicht von der Bash kontrolliert werden, mit der gerade gearbeitet wird. Natrlich ist dabei zu beachten, dass nur solche Prozesse gekillt werden drfen, die einem auch gehren, in der Regel solche, die man selbst gestartet hat. Dem Systemverwalter ist es mit kill -9 mglich, jeden Prozess auf dem System sofort zu beenden. Welche Prozesse auf dem System laufen und wie die zugehrigen Prozess-IDs lauten, lsst sich mit dem Programm ps (S. 847) herausnden: joe@debian:~$ ps -ef

530

16 Der Kommandointerpreter Bash

16.5 Aneinanderreihung von Kommandos


16.5.1 Der Operator ; (Semikolon) Neben der Verkettung von Kommandos mit dem Pipe-Operator ( ) ist es mglich, auch mehrere Kommandos in eine Kommandozeile zu schreiben. So ist es sinnvoll, Kommandos, die immer nacheinander ausgefhrt werden sollen, in eine Zeile zu schreiben. Sie stehen dann ber die Kommandogeschichte sofort alle zusammen wieder zur Verfgung und mssen nicht einzeln herausgesucht werden. In einer Zeile hintereinander stehende Kommandos werden mit dem Zeichen ; voneinander getrennt. Sie werden dann sequentiell (nacheinander) abgearbeitet. Das heit, erst wenn das erste Kommando beendet ist, wird das zweite ausgefhrt usw. Dies lsst sich an folgendem Beispiel erklren. Weiter oben sollte mit dem Kommando: joe@debian:~$ ls -l diplomarbeit | cut -c 34-41 > > groesse der Datei groesse die Gre der Datei diplomarbeit nach jedem Aufruf des Kommandos angehngt werden. Nun wre es nett, nach jedem Aufruf einen Kommentar in die betreffende Datei zu schreiben. Nach dem Aufruf des obigen Kommandos kann der Editor vi aufgerufen werden, um den Kommentar einzutragen: joe@debian:~$ ls -l diplomarbeit | cut -c 34-41 > > groesse; vi groesse Diese Formulierung sichert, dass der Editor erst dann aufgerufen wird, nachdem die neue Ausgabe der vorhergehenden Kommandos an die Datei groesse angehngt wurde. Wrde man stattdessen schreiben: joe@debian:~$ ls -l diplomarbeit | cut -c 34-41 > > groesse & vi groesse dann wrde der Editor praktisch zeitgleich mit dem vorhergehenden Kommando aufgerufen werden, und das Ergebnis der Grenbestimmung wrde u. U. noch gar nicht in der Datei zu nden sein. 16.5.2 Bedingte Ausfhrung mit den Operatoren && und Manchmal ist es erwnscht, ein Kommando nur dann auszufhren, wenn ein vorhergehendes Kommando ein bestimmtes Ergebnis geliefert hat. Dazu ist es wichtig zu wissen, dass jedes Programm einen Rckgabewert (return value, exit status) an die Shell oder einen anderen aufrufenden Prozess liefert, wenn es beendet wird. Dieser Rckgabewert ist eine ganze Zahl zwischen 0 und 255 einschlielich. Per Konvention berichtet ein Programm mit dem Rckgabewert 0, dass alles gut gegangen ist und keine Fehler aufgetreten sind. Mit einem von Null abweichenden Wert wird berichtet, dass irgendwelche Fehler aufgetreten sind. Weil es 255 verschiedene Rckgabewerte gibt, die auf einen Fehler hinweisen, besteht die Mglichkeit, ber verschiedene

16.5 Aneinanderreihung von Kommandos

531

Rckgabewerte auf unterschiedliche Fehler hinzuweisen. So knnte beispielsweise der Rckgabewert 1 Datei nicht gefunden und der Rckgabewert 2 unbekannte Option angegeben bedeuten. Es gibt hierfr keine einheitliche Konvention, die Bedeutung eines von 0 abweichenden Rckgabewertes ist immer vom Programm abhngig. Der Operator && bewirkt, dass das hinter diesem Operator stehende Kommando nur dann ausgefhrt wird, wenn das davor stehende Kommando den Rckgabewert 0 geliefert hat. Beispielsweise fhrt das folgende Kommando dazu, dass der Editor vi nur dann aufgerufen wird, wenn das Programm ls am Anfang der Zeile die Datei diplomarbeit anzeigen konnte: joe@debian:~$ ls -l diplomarbeit >> protokoll && vi protokoll Im Gegensatz dazu bewirkt der Operator ||, dass das folgende Kommando nur ausgefhrt wird, wenn das vorstehende Kommando einen von Null abweichenden Rckgabewert geliefert hat. Im folgenden Beispiel wird der Editor nur dann aufgerufen, wenn das Kommando ls die Datei diplomarbeit nicht anzeigen konnte: joe@debian:~$ ls -l diplomarbeit >> protokoll || vi protokoll Auch diese Operatoren fhren dazu, dass die spezizierten Kommandos sequentiell abgearbeitet werden. Schlielich muss der Rckgabewert der Kommandos vor den Operatoren feststehen, bevor entschieden werden kann, ob die folgenden Kommandos ausgefhrt werden sollen oder nicht. Bei einer Kette von Kommandos vor dem Operator wird der Rckgabewert des zuletzt ausgefhrten Kommandos ausgewertet. Das folgende Kommando wrde den Editor immer aufrufen, auch wenn die Datei diplomarbeit gar nicht angezeigt werden konnte, weil zwar ls einen von 0 abweichenden Rckgabewert liefert, aber das Programm cut auch dann den Wert 0 zurckgibt, wenn es eine leere Datei bearbeitet: joe@debian:~$ ls -l diplomarbeit | cut -c 34-41 > > groesse && vi groesse 16.5.3 Gruppierung von Kommandos Gelegentlich mchte man eine Gruppe von Kommandos und Programmen zusammenfassen, um sie gemeinsam aus der gleichen Datei lesen zu lassen oder zusammen in den Hintergrund zu stellen. Hierzu dienen die Operatoren {} und (). Beispielsweise bewirkt das Kommando: joe@debian:~$ ( ls; pwd; whoami ) & dass die Kommandos ls, pwd und whoami (S. 887) nacheinander im Hintergrund ausgefhrt werden. Das ist wichtig, wenn die Ausgabe dieser Kommandos in eine Datei umgeleitet werden sollen. Wrde man das Kommando:

532

16 Der Kommandointerpreter Bash

joe@debian:~$ ls > > datei & pwd > > datei & whoami > > datei & eingeben, dann wrden die drei Programme unabhngig voneinander nahezu zeitgleich gestartet und asynchron ausgefhrt werden. Es wre eine Frage des Zufalls bzw. des schnellsten Programms, welches Programm zuerst in die Ausgabedatei datei schreiben wrde, und man knnte den Aufbau dieser Datei schlecht voraussagen. Auf der anderen Seite bewirkt das folgende Kommando, dass die drei Programme hintereinander ausgefhrt werden und deswegen ihre Ausgaben auch hintereinander in die Ausgabedatei schreiben. Hier steht genau fest, dass zunchst die Ausgabe von ls, dann die von pwd und zum Schluss die von whoami in der Ausgabedatei landet. Das Ergebnis kann hinterher interpretiert werden. Es ist zu beachten, dass hier nicht der Operator >> bentigt wird, um die Ausgaben aller Prozesse zu speichern, weil die Bash die in Klammern angegebenen Kommandos als einen Prozess betrachtet: joe@debian:~$ ( ls; pwd; whoami ) > datei & Der ()-Operator bewirkt, dass eine weitere Shell gestartet wird, in der die angegebenen Kommandos ausgefhrt werden. Diese weitere Shell lsst sich genauso wie jeder andere Prozess durch die Login-Shell verwalten, beispielsweise wieder in den Vordergrund schalten. Letztlich ist es auch die Ausgabe dieser Shell (in der die angegebenen Kommandos ausgefhrt werden), die mit dem Operator > in die Datei datei umgeleitet wird. Das Verfahren hat den Nachteil, dass alle Variablen (siehe nchster Abschnitt), die durch die geklammerten Kommandos verndert werden, verloren gehen, weil sie in der neu gestarteten Shell verndert und gespeichert werden und diese beendet wird, sobald alle darin auszufhrenden Kommandos abgearbeitet sind. Wenn anstatt der runden Klammern geschweifte Klammern benutzt werden, fhrt dies dazu, dass die geklammerten Kommandos von derselben Shell ausgefhrt werden: joe@debian:~$ { ls; pwd; whoami; a=17; } > datei Der Wert der Variablen a ist auch nach Abarbeitung des Kommandos verfgbar. Bei Verwendung geschweifter Klammern mssen zwischen Klammern und Kommandos Leerzeichen stehen, und jedes Kommando muss mit einem Semikolon abgeschlossen sein. Der &-Operator fhrt auch bei dieser Konstruktion dazu, dass die angegebenen Kommandos im Hintergrund ausgefhrt werden, wodurch Variable verloren gehen.

16.6 Variable
Unter einer Variablen wird ein benannter Speicherplatz verstanden, in dem unterschiedliche Inhalte gespeichert werden. In der Regel handelt es sich bei den zu speichernden Inhalten um Zeichenketten oder Zahlen. Grundstzlich sind zwei Typen von Variablen zu unterscheiden, nmlich Shell-Variable und Umgebungsvariable.

16.6 Variable

533

16.6.1 Shell-Variable Das Zuweisen von Werten an Variable ist denkbar einfach. Will man der Variablen a den Wert 17 zuweisen, so ist das Kommando: joe@debian:~$ a=17 ohne Leerzeichen einzugeben. Es ist dabei unerheblich, ob die Variable a bereits existiert oder nicht. Wenn nicht, wird sie durch dieses Kommando geschaffen. Wenn einer Variablen eine Zeichenkette zugewiesen werden soll, die Leerzeichen enthlt, so ist diese in Anfhrungszeichen zu setzen. Beispiel: joe@debian:~$ b="Meine zweite Variable" Bei Variablennamen wird genauso wie bei Dateinamen zwischen Gro- und Kleinschreibung unterschieden. Die Variable a und die Variable A sind verschieden. Um den Wert einer Variablen zu benutzen, ist ihr ein Dollarzeichen voranzustellen. Beispielsweise knnte man der Variablen dir die folgende Zeichenkette zuweisen: joe@debian:~$ dir="ls - -color=auto -l" Das folgende Kommando ist jetzt gleichbedeutend mit dem Kommando ls - color=auto -l: joe@debian:~$ $dir Das Dollarzeichen bewirkt, dass dir als eine Variable verstanden und ihr Inhalt interpretiert wird, also das Kommando ls ausgefhrt wird. Das Dollarzeichen hat fr die Shell eine besondere Bedeutung und muss gequotet werden, falls man es buchstblich verstanden wissen will. Weist man einer Variablen den Wert einer anderen Variablen zu, so geschieht dies auf hnliche Weise: joe@debian:~$ d=$dir Die Variable d hat jetzt den gleichen Inhalt wie die Variable dir. Nun kann alternativ das Kommando $d eingegeben werden, um das gleiche Ergebnis zu erhalten. Den Wert einer Variablen schaut man sich mit dem Kommando echo (S. 575) an. Das Kommando gibt die Zeichenkette aus, die ihm als Argument bergeben worden ist. Im folgenden Kommando wird die Variable $d zuerst durch ihren Wert ersetzt und dann das Kommando echo mit diesem Wert als Argument aufgerufen: joe@debian:~$ echo $d Das Kommando: joe@debian:~$ echo d wrde hingegen nur den Buchstaben d ausgeben, weil d wegen des fehlenden Dollarzeichens nicht als Variable verstanden wird. Um zu der in einer Variablen gespeicherten Zeichenkette weitere Zeichen hinzuzufgen, sind diese an die bestehende Zeichenkette anzufgen bzw. ihr voranzustellen. Beispiel:

534

16 Der Kommandointerpreter Bash

joe@debian:~$ gruss=Morgen joe@debian:~$ gruss="Guten "$gruss joe@debian:~$ echo $gruss Das zweite Kommando hat dieselbe Wirkung wie das Kommando: joe@debian:~$ gruss="Guten Morgen" weil der Inhalt der Variable gruss zuerst fr $gruss eingesetzt wird und das Ergebnis wieder derselben Variablen zugewiesen wird. Mit dem eingebauten Kommando unset (S. 591) lassen sich Variable lschen. So bewirkt das Kommando: joe@debian:~$ unset $a dass sowohl der Wert der Variablen a als auch die Variable selbst gelscht werden. 16.6.2 Eingebaute Shell-Variable Die Bash kennt eingebaute Variable, die zum einen Teil dazu dienen, die Bash zu kongurieren, und zum anderen Teil von Skripten oder an der Kommandozeile dazu benutzt werden knnen, um bestimmte Informationen abzufragen. Ein Beispiel hierfr ist die Variable _COMMAND. Jedesmal, bevor die Bash einen neuen Prompt anzeigt, wertet sie den Wert dieser Variablen aus und versucht, ihn als Kommando auszufhren. Die Eingabe des Kommandos: joe@debian:~$ PROMPT_COMMAND=ls fhrt dazu, dass die Bash immer das Kommando ls ausfhrt, bevor sie einen neuen Prompt zeigt. Die folgende Liste zeigt die wichtigsten eingebauten Bash-Variablen: Informationen ber die laufende Shell $ Prozess-ID der Shell PPID Prozess-ID des Prozesses, der die Shell gestartet hat. 0 Name des Kommandos, mit dem die Shell aufgerufen wurde. Das ist bei interaktiven Shells gewhnlich /bin/bash und bei nicht-interaktiven Shells der Name des Shellskripts, das von der Shell ausgefhrt wird. BASH Dateiname der Bash. Gewhnlich /bin/bash. BASH_VERSION Versionsbezeichnung der Bash. PWD Name des Arbeitsverzeichnisses. OLDPWD Name des vorhergehenden Arbeitsverzeichnisses. Das Kommando cd entspricht dem Kommando cd $OLDPWD. LINENO Zeilennummer des gerade ausgefhrten Kommandos. Der Wert dieser Variablen entspricht bei interaktiven Shells der Nummer der ausgefhrten Eingabezeile und bei Skripten der Zeilennummer im Skript, in der das gerade ausgefhrte Kommando steht.

16.6 Variable

535

Informationen ber Parameter # Anzahl der Parameter oder Argumente, die der Shell bei ihrem Start bergegeben wurden oder die durch das set-Kommando festgelegt wurden. * Alle Parameter der Shell in einer einzigen Zeichenkette. @ Alle Parameter der Shell. Jeder Parameter ist dabei in einer einzelnen Zeichenkette gespeichert. 1 Der erste Parameter. 2 Der zweite Parameter. 9 Der neunte Parameter. Alle weiteren Parameter sind nicht direkt ansprechbar. Sie knnen jedoch mit dem shift-Kommando zugnglich gemacht werden. Informationen ber Prozesse ! Prozess-ID des zuletzt in den Hintergrund gestellten Prozesses. ? Rckgabewert des zuletzt im Vordergrund ausgefhrten Kommandos. Benutzerinformationen UID (reale) Benutzer-ID des Prozesses der Shell. EUID effektive Benutzer-ID des Prozesses der Shell. Die effektive Benutzer-ID kann von der realen abweichen. Bei der berprfung von Dateizugriffsrechten ist die effektive Benutzer-ID entscheidend. GROUPS Gruppe, in der der Benutzer momentan Mitglied ist. HOME Name des Home-Verzeichnisses des Benutzers. Informationen ber den Rechner HOSTNAME Name des Rechners, auf dem die Shell ausgefhrt wird. HOSTTYPE Rechnertyp. OSTYPE Typ des Betriebssystems. MACHTYPE GNU Maschinentyp Bezeichnung. Spracheinstellungen LANG Allgemeine Spracheinstellung. (Siehe auch Kap. 16.6.4, S. 540) LC_COLLATE Spracheinstellung fr das Sortieren von Dateinamen. LC_MESSAGES Sprache, in der Fehlermeldungen und Nachrichten ausgegeben werden. LC_ALL Allgemeine Spracheinstellung. Durch LC_ALL werden die Einstellungen aus der LANG-Variablen und den anderen LC-Variablen berschrieben.

536

16 Der Kommandointerpreter Bash

Einstellungen zur Kommandogeschichte HISTCONTROL ber diese Variable wird beeinusst, welche Kommandos in der Kommandogeschichte gespeichert werden. Wenn der Variablen der Wert ignorespace zugeordnet ist, werden keine Kommandos gespeichert, die mit Leerzeichen oder Tabulatoren beginnen. Der Wert ignoredups bewirkt, dass mehrfach hintereinander eingegebene gleiche Kommandos nur einmal gespeichert werden. Der Wert ignoreboth vereint die Wirkungen der beiden anderen Werte. HISTIGNORE In dieser Variablen werden Kommandozeilen gespeichert, die nicht in der Kommandogeschichte gespeichert werden sollen. Dies ist sinnvoll bei oft benutzten kurzen Kommandos wie pwd oder ls. Die Kommandos werden durch Doppelpunkte voneinander getrennt. Sie drfen die gleichen Meta-Zeichen beinhalten wie Dateinamen (*, ?, []). Diese Zeichen werden dann wie bei Dateinamen interpretiert. Beispiel: joe@debian:~$ HISTCONTROL=ls:"ls -l":pwd:"cp *" Die Kommandos ls, ls -l, pwd und alle Kommandos, die mit cp und einem Leerzeichen beginnen, werden nicht in der Kommandogeschichte gespeichert. HISTFILE Der Wert dieser Variablen bestimmt, in welcher Datei die Kommandogeschichte gespeichert wird. Standardwert ist ~/.bash_history. HISTSIZE Bestimmt, wieviele Kommandos in der Kommandogeschichte maximal gespeichert werden. Danach werden die ltesten Kommandos gelscht. Standardwert ist 500. HISTCMD Die fortlaufende Nummer des aktuellen Kommandos in der Kommandogeschichte. Einstellungen der Prompts PS1 Bestimmt das Erscheinungsbild des normalen Prompts (s. u). PS2 Bestimmt das Erscheinungsbild des sekundren Prompts. Der sekundre Prompt erscheint, wenn ein unvollstndiges Kommando eingegeben wurde. Ein solcher Fall tritt beispielsweise dann auf, wenn in einem Kommando Anfhrungsstriche geffnet, aber nicht geschlossen wurden. PS3 Bestimmt das Aussehen des Prompts nach Aufruf des Kommandos select (S. 556). PROMPT_COMMAND Wie oben beschrieben, wird das in dieser Variablen gespeicherte Kommando ausgefhrt, bevor ein neuer Prompt angezeigt wird. Email-Einstellungen Die Bash berprft regelmig, ob fr den betreffenden Benutzer neue Email eingetroffen ist. Falls ja, wird dies normalerweise angezeigt, bevor ein neuer Prompt erscheint. MAILCHECK Legt fest, wie oft (in Sekunden) nach neuer Mail geschaut werden soll. Standardwert ist 60.

16.6 Variable

537

MAILPATH Legt die Namen der Dateien fest, die regelmig nach neuer Mail berprft werden sollen. Standardmig wird in der Mail-Spool-Datei des Benutzers im Verzeichnis /var/spool/mail nachgesehen. Wenn mehrere MailDateien berprft werden sollen, mssen diese durch Doppelpunkte voneinander getrennt sein. Zustzlich kann mit der Variablen festgelegt werden, welche Nachricht ausgegeben werden soll, wenn neue Mail eingetroffen ist. Die Nachricht muss dann von den Dateinamen mit einem Fragezeichen getrennt werden. Enthlt die Nachricht die Zeichenkette $_, dann wird diese Zeichenkette durch den Namen der Maildatei ersetzt, in der gerade neue Mail eingetroffen ist. Beispiel: joe@debian:~$ MAILPATH=/var/spool/mail/debian:/var/spool/mail/ peter:/var/spool/mail/privat?Neue Mail in Datei $_ In den angegebenen Dateien wird nach neuer Mail gesehen und die Meldung Neue Mail in Datei Dateiname ausgegeben, wenn neue Mail eingetroffen ist. Dateiname wird durch den Namen der Datei ersetzt, in der sich neue Mail bendet. Die einfachen Anfhrungszeichen sind notwendig, damit die Bash die Leerzeichen sowie das Dollarzeichen nicht als Trennzeichen interpretiert. Verschiede Einstellungen IGNOREEOF Wie bereits beschrieben beendet die Bash sich, sobald die Datei, aus der sie liest, zu Ende ist. Am Terminal wird das Dateiende durch die Tastenkombination S TRG - D erzeugt. Bei einer interaktiven Shell ist es unter Umstnden irritierend, wenn diese sich durch versehentliches Bettigen obiger Tasten verabschiedet. Wenn diese Variable einer Zahl entspricht, gibt die Bash so oft, wie mit der Zahl angegeben, eine Warnung aus, falls sie im interaktiven Modus ein Dateiende bemerkt. INPUTRC Legt den Pfad- und Dateinamen der zu verwendenden readlineKongurationsdatei fest. FIGNORE Eine durch Doppelpunkte getrennte Liste von Dateiendungen. Dateinamen mit diesen Endungen werden bei der Vervollstndigung mit der TAB-Taste nicht angezeigt. Beispiel: joe@debian:~$ FIGNORE=~:.bak Bewirkt, dass bei der Vervollstndigung mit der Tabulator-Taste keine Dateien angezeigt werden, die die Endung ~ oder .bak haben. IFS Diese Variable enthlt eine Zeichenkette, die bestimmt, wodurch Parameter voneinander getrennt werden (Inter Field Separator). Standardmig sind dies Leerzeichen und Tabulatorzeichen. SHELLOPTS Enthlt, durch Doppelpunkte voneinander getrennt, alle durch das Kommando set -o gesetzten Optionen. Der Wert der Variablen kann nicht verndert werden.

538

16 Der Kommandointerpreter Bash

PATH Enthlt durch Doppelpunkte voneinander getrennt die Namen der Verzeichnisse, in denen die Bash nach ausfhrbaren Dateien sucht, wenn diese nicht absolut angegeben werden. Alle Programme, die oft aufgerufen werden (cp, rm usw.) sollten sich in Verzeichnissen benden, die in dieser Variablen gespeichert sind. Ein gebruchlicher Wert ist /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games. Man sollte vorsichtig bei der Vernderung dieser Variablen sein. Falsche Werte knnen dazu fhren, dass keine Programme mehr gefunden werden. In der Regel werden der Variablen PATH von Benutzern lediglich Werte hinzugefgt. Beispiel: joe@debian:~$ PATH=~/bin:$PATH Die Einstellung fgt das Unterverzeichnis bin des eigenen Home-Verzeichnisses der Variablen PATH hinzu. Ausfhrbare Dateien in diesem Verzeichnis knnen danach ohne Angabe des Verzeichnisses aufgerufen werden. Die Reihenfolge der Verzeichnisse in dieser Variablen spielt eine Rolle. Hat im oben genannten Beispiel ein Benutzer ebenfalls ein Programm mit dem Namen ls in dem Unterverzeichnis bin seines Home-Verzeichnisses, so wird nach der Eingabe des Kommandos ls dieses Programm und nicht das normale Programm /bin/ls ausgefhrt. Htte er sein eigenes Verzeichnis an das Ende des Wertes der PATH-Variablen gehngt, so wrde weiterhin das Programm /bin/ls ausgefhrt werden. Wie alle Einstellungen mssen diese Variablen nicht bei jeder Benutzung der Bash neu gesetzt werden, sondern sollten in einer der Startdateien der Bash (gewhnlich in der Datei ~/.bashrc) niedergelegt sein. 16.6.3 Konguration des Prompts ber die Variable PS1 Durch die Variable PS1 wird eingestellt, welche Zeichenkette als Prompt benutzt werden soll. Nach der Eingabe des Kommandos: joe@debian:~$ PS1=sag was, bitte! erscheint beispielsweise immer die Zeichenkette sag was, bitte! als Prompt. Das ist auf Dauer nicht informativer als der voreingestellte Wert. Die einfachen Anfhrungszeichen wurden hier benutzt, um das Ausrufungszeichen vor der Shell zu schtzen. Durch spezielle Zeichenketten im Wert der Variablen PS1 lassen sich jedoch Informationen wie die Uhrzeit, das Arbeitsverzeichnis, der Benutzername usw. anzeigen. Wichtige dieser Zeichenketten sind: \d Fgt das aktuelle Datum ein. \h Fgt den Rechnernamen ohne Domnennamen ein. \H Fgt den vollen Rechnernamen ein. \n Fgt einen Zeilenumbruch ein. \s Fgt den Namen ein, mit dem die Shell aufgerufen wurde. \t Fgt die Uhrzeit im 24-Stunden-Format ein. \v Fgt die Version der Bash ein.

16.6 Variable

539

\w Fgt den Namen des Arbeitsverzeichnisses ein. \W Fgt den Namen des letzten Unterverzeichnisses im Arbeitsverzeichnis ein. \# Fgt die Nummer des einzugebenden Kommandos ein. \$ Fgt ein Dollarzeichen ein, wenn die Shell von einem gewhnlichen Benutzer verwendet wird, und ein Doppelkreuz (#), wenn die Shell vom Systemverwalter benutzt wird. \u Fgt den Namen des Benutzers ein. ber den Prompt lsst sich eine Menge Information anzeigen, die gut ausgewhlt sein will, damit der Prompt nicht so lang wird, dass er wieder unbersichtlich wird. Wer oft zwischen verschiedenen Benutzer-IDs wechselt, wird es sinnvoll nden, sich immer den Namen des Benutzers, dessen Konto er gerade verwendet, anzeigen zu lassen. Ebenso ist es in Netzumgebungen, wo man mit vielen verschiedenen Rechnern arbeitet, sinnvoll, sich den Namen des Rechners anzeigen zu lassen, auf dem man gerade arbeitet. blich ist die Anzeige des Arbeitsverzeichnisses. So sieht man immer, wo man sich gerade im Verzeichnisbaum bendet. Hier zwei Beispiele: joe@debian:~$ PS1="\u@\h:\w\$" Dieser Prompt zeigt den aktuellen Benutzernamen vor einem @-Zeichen, hinter dem der Rechnername folgt. Darauf hinter einem Doppelpunkt der Name des Arbeitsverzeichnisses und ein Dollarzeichen, wenn die Shell von einem gewhnlichen Benutzer verwendet wird. Damit man sofort erkennt, wenn man als Systemverwalter arbeitet, wird in dem Fall ein Doppelkreuz gezeigt: joe@debian:~$ PS1="Hallo \u auf \H, es ist \t, Verzeichnis: \w \nEingabe Nr.: \#\$" Hier wird vor jedem Prompt eine ganze Zeile mit Informationen ber den Benutzernamen, den Rechnernamen, die Uhrzeit und das Arbeitsverzeichnis ausgegeben. Darunter wird angezeigt, welche Nummer das einzugebende Kommando hat und danach wieder Dollarzeichen oder Doppelkreuz. Neben der Variablen PS1 existieren noch die Variablen PS2 bis PS4. Die Variable PS2 bestimmt, wie der sekundre Prompt aussehen soll. Dieser zweite Prompt wird gezeigt, wenn ein Kommando noch nicht vollstndig eingegeben wurde, aber die E INGABE-Taste gedrckt wurde. Ein Beispiel fr ein unvollstndiges Kommando ist ein Kommando, in dem Anfhrungszeichen vorkommen, die nicht wieder geschlossen werden. Beispiel: joe@debian:~$ a="Hallo Die Variable PS3 bestimmt das Aussehen des Promptes bei Verwendung des select (S. 556)-Kommandos, und die Variable PS4 beschreibt die Zeile, die ausgegeben wird, bevor auszufhrende Kommandos angezeigt werden. Normalerweise werden diese gar nicht angezeigt. Dies lsst sich jedoch mit dem Kommando set (S. 584) ndern.

540

16 Der Kommandointerpreter Bash

16.6.4 Umgebungsvariable Shellvariable werden von der Shell selbst gespeichert und haben nur fr sie selbst eine Bedeutung, sie gelten lokal. Die Speicherung von Umgebungsvariablen funktioniert anders. Das Betriebssystem reserviert fr jeden Prozess Speicherplatz, in dem Umgebungsvariable gespeichert werden. Wenn von einem Prozess ein anderer Prozess aufgerufen wird, erhlt der neue Prozess eine Kopie dieses Speicherplatzes. Ihm stehen genau die gleichen Umgebungsvariablen mit den gleichen Werten zur Verfgung. Daraus folgen zwei Dinge: 1. Umgebungsvariable sind geeignet, um neuen Prozessen etwas mitzuteilen. Die Eigenschaft wird von vielen Programmen benutzt. Es gibt verschiedene Parameter, die fr alle Programme, die ein Benutzer aufruft, immer wieder gelten sollen. Dazu kann die Sprache gehren, mit der ein Programm arbeitet. Anstatt nun jedem Programm ber einen Parameter mitzuteilen, dass es spanisch sprechen soll, wird eine Umgebungsvariable auf einen entsprechenden Wert gesetzt. Der Wert der Umgebungsvariablen kann dann von allen danach aufgerufenen Programmen abgefragt werden. 2. Jeder Prozess kann nur seine eigenen Umgebungsvariablen ndern. Wenn sie gendert sind, vererben sie sich auf alle Prozesse, die von diesem Prozess gestartet worden sind (Kindprozesse). Es besteht keine Mglichkeit, Umgebungsvariablen von bereits laufenden anderen Prozessen (Eltern- oder Geschwisterprozesse) zu ndern. Einfache Shellvariable werden durch das Kommando export (S. 577) zu Umgebungsvariablen. Die Kommandofolge: joe@debian:~$ export a macht die Variable a zur Umgebungsvariablen. Diesen Vorgang nennt man auch Exportieren von Variablen, weil sie aus der Shell in die Prozessumgebung exportiert werden. Es ist mglich, einer Variablen whrend des Exportierens einen Wert zuzuweisen: joe@debian:~$ export a=hallo Umgebungsvariablen, die beim Start der Bash bereits existieren, die von dem Prozess, aus dem die Bash aufgerufen wurde oder noch frher, gesetzt worden sind, stehen in der Bash auch als einfache Variablen zur Verfgung. Nachdem eine Variable exportiert worden ist, kann sie weiterhin wie eine gewhnliche Variable benutzt werden. Die Kommandofolge: joe@debian:~$ export a=hallo joe@debian:~$ a="Guten Morgen" bewirkt, dass die Umgebungsvariable a den Wert Guten Morgen hat, obwohl sie nach der zweiten nderung nicht erneut explizit exportiert worden ist. Durch die export-Anweisung wird praktisch bestimmt, die Variable woanders (nmlich in der Prozessumgebung) zu speichern.

16.6 Variable

541

Mit dem Kommando printenv (S. 847) lassen sich die augenblicklich existierenden Umgebungsvariablen der Shell mit ihren Werten anzeigen. Das Kommando: joe@debian:~$ printenv a gibt nur den Wert der Umgebungsvariablen a aus, wohingegen das Kommando: joe@debian:~$ printenv die Namen und Werte aller Umgebungsvariablen ausgibt. Ein Beispiel fr eine von vielen Programmen abgefragte Umgebungsvariable ist die Variable PAGER. Programme wie das Hilfeprogramm man (S. 826) entnehmen dieser Variablen den Namen des Programms, mit dem sie Text am Bildschirm anzeigen sollen. blich sind die Programme more (S. 835) oder less (S. 816). Wenn die Variable nicht gesetzt ist, wird ein Standardprogramm benutzt. Wenn Sie beide Programme installiert haben, bestimmen Sie mit dem Kommando: joe@debian:~$ export PAGER=more dass Text mit dem Programm more angezeigt werden soll, und mit dem Kommando: joe@debian:~$ export PAGER=less wird bestimmt, dass Text mit dem Programm less angezeigt werden soll. Wenn Sie X11 benutzen, knnen Sie auch das Programm xless verwenden. Weil die Umgebungsvariablen eines Prozesses mit dessen Beendigung verloren gehen, mssen diese in einer der Startdateien der Bash (blicherweise in der Datei .bashrc) gesetzt werden, damit sie fr alle Sitzungen mit dieser Shell gelten. Umgebungsvariablen werden ebenfalls mit dem Kommando unset wieder entfernt. So bewirkt das Kommando: joe@debian:~$ unset PAGER dass die Umgebungsvariable PAGER entfernt wird und Programme wie man wieder das Standardprogramm verwenden. Wichtige Umgebungsvariable DICTIONARY Legt das von dem Rechtschreibprfprogramm ispell (S. 812) zu benutzende Wrterbuch fest. Die Variable sollte nur von solchen Benutzern gesetzt werden, die ein anderes als das Standardwrterbuch verwenden wollen. DISPLAY Programme fr X11 entnehmen dieser Variablen, mit welchem X-Server sie Verbindung aufnehmen sollen, um Fenster und hnliches darzustellen. Die in dieser Variablen gespeicherte Zeichenkette setzt sich aus dem Namen des Rechners, auf dem der zu kontaktierende X-Server luft, der Nummer des Displays (der Anzeigeeinheit) auf diesem Rechner, und der Nummer des mit dieser Anzeigeeinheit verbundenen Bildschirms zusammen. Rechnername und Nummer des Displays werden durch einen Doppelpunkt voneinander getrennt. Nummer des Displays und Nummer des Bildschirms werden durch einen einfachen Punkt voneinander getrennt. Der Rechnername und die Nummer des Bildschirms sind

542

16 Der Kommandointerpreter Bash

optional. Wenn der Rechnernahme fehlt, wird der lokale Rechner benutzt. Wenn die Nummer des Bildschirms fehlt, wird der erste Bildschirm benutzt. Die Variable muss jedoch auf jeden Fall den Doppelpunkt und die Nummer des Displays beinhalten, damit sie von X-Anwendungen interpretiert werden kann. Beispiele: DISPLAY=:0 whlt das erste Display des lokalen Rechners aus. DISPLAY=bigscreen:1 whlt die zweite Anzeigeeinheit auf dem Rechner mit dem Namen bigscreen aus. EDITOR Legt das Programm fest, mit dem Textdateien bearbeitet werden. Beispiel: EDITOR=vi LANG Programme, die unterschiedliche Anpassungen an Sprachen und andere kulturelle Gegebenheiten untersttzen, beziehen die Information, welche Sprachund Kultureinstellungen sie verwenden sollen, aus dieser Umgebungsvariablen. Ihr Wert setzt sich zusammen aus einer Abkrzung fr den Namen der Sprache, die benutzt werden soll, einer Abkrzung fr den Namen des Landes, dessen kulturellen Gepogenheiten benutzt werden sollen (Beispiel: Zeitangaben im 24-Stunden-Format oder im englischsprachigen AM/PM-Format), und der Bezeichnung des Zeichensatzes. Der zweite und der dritte Teil sind optional. Sprache und Land werden durch einen Unterstrich getrennt, und die Bezeichnung des Landes wird vom Zeichensatz durch einen Punkt getrennt. Fr deutsche Einstellungen ist folgender Wert sinnvoll: LANG=de_DE.ISO-8859-1. Fr sterreich bzw. die Schweiz ist das zweite (grogeschriebene) DE durch AT bzw. durch CH zu ersetzen. Die LANG-Variable legt die Sprach- und Kultureinstellungen fr alle verfgbaren Bereiche fest. Wenn fr einzelne Bereiche (z. B. das Zahlen- oder Whrungsformat) andere Einstellungen gelten sollen, knnen diese mit den unten aufgefhrten LC_-Variablen eingestellt werden. LC_CTYPE Legt den von Anwendungen zu verwendenden Zeichensatz fest. Die Variable berschreibt den mit LANG angegebenen Wert. LC_MESSAGES Legt die Sprache fest, in der Ausgaben und Fehlermeldungen von Programmen erfolgen sollen. LC_TIME Legt das Format fest, in dem Uhrzeiten und Kalenderdaten angegeben werden. LC_MONETARY Legt das Format fest, in dem Whrungsangaben vorgenommen werden. LC_NUMERIC Legt das Format fest, in dem numerische Ausdrcke angegeben werden. LC_COLLATE Legt das Format fest, wie Zeichenketten miteinander verglichen werden. LC_ALL Diese Variable berschreibt alle Einstellungen, die mit der LANGVariablen und den anderen LC_-Variablen vorgenommen wurden. LD_LIBRARY_PATH Enthlt durch Doppelpunkte voneinander getrennt die Namen der Verzeichnisse, in denen der Linker nach Bibliotheken suchen soll, die zur Ausfhrung eines Programms bentigt werden. Die angegebenen Verzeich-

16.7 Substitution (Ersetzung) und Expansion (Erweiterung)

543

nisse werden zustzlich zu und vor den systemweit benutzten Verzeichnissen durchsucht. Siehe auch ldcong (S. 815). MANOPT Mit dieser Variablen knnen Optionen fr das Programm man (S. 826) angegeben werden, die gelten sollen, ohne an der Kommandozeile explizit angegeben zu werden. Sie werden von man ausgewertet, bevor die eigentliche Kommandozeile ausgewertet wird. Beispiel: MANOPT=- -all bewirkt, dass man immer alle Manual-Seiten zu einem Begriff anzeigt und nicht nur die erste gefundene. MANPATH Legt fest, in welchen Verzeichnissen man nach Manual-Seiten suchen soll. Wenn diese Umgebungsvariable gesetzt ist, werden die Standardverzeichnisse nicht mehr durchsucht. PAGER Legt das Programm fest, mit dem Textdateien betrachtet werden sollen. Beispiel: PAGER=less. PATH Enthlt durch Doppelpunkte voneinander getrennt die Namen der Verzeichnisse, in denen nach ausfhrbaren Dateien gesucht werden soll, die ohne Pfadangabe aufgerufen werden. SHELL Enthlt den Namen des Programms, das benutzt werden soll, wenn ein Programm eine Shell ausfhren will. Beispielwert: SHELL=/bin/bash. TAPE Enthlt den Namen der Gertedatei, die das zu verwendende Bandlaufwerk darstellt. Diese Variable wird von Programmen wie tar (S. 870) und mt (S. 837) abgefragt. Beispiel: TAPE=/dev/st0 (Erstes SCSI-Bandlaufwerk). TERM Enthlt die Typenbezeichnung des Terminals. Programme entnehmen daraus, welche Steuersequenzen sie benutzen mssen, um den Bildschirm zu lschen oder den Cursor zu bewegen. USER Enthlt den Namen des Benutzers. WORDLIST Legt die Datei fest, in der ispell (S. 812) das persnliche Wrterbuch des betreffenden Benutzers speichert.

16.7 Substitution (Ersetzung) und Expansion (Erweiterung)


Die Begriffe Substitution (Ersetzung) und Expansion (Erweiterung oder Auflsung) bezeichnen hnliche Vorgnge. In beiden Fllen wird ein Ausdruck durch einen anderen ersetzt. Ein einfacher Fall wurde bereits bei der Benutzung von Variablen vorgestellt: joe@debian:~$ a=$b Die Anweisung bewirkt, dass der Ausdruck $b durch die Zeichenkette, die in der Variablen b gespeichert ist, ersetzt wird. Die Shell bietet verschiedene Substitutionsund Expansionsmechanismen, mit denen sich in begrenztem Rahmen arithmetische Berechnungen durchfhren lassen oder die Ausgabe eines Programms in den Wert einer Variablen umgeleitet werden kann.

544

16 Der Kommandointerpreter Bash

16.7.1 Dateinamenerweiterung In Kapitel 5 wurde bereits auf die Verwendung der Meta-Zeichen *, ? und [] sowie auf die Bedeutung der Tilde hingewiesen. Sobald die Shell auf eine Zeichenkette trifft, die diese Meta-Zeichen enthlt, versucht sie, die Zeichenkette durch alle Namen existierender Dateien zu ersetzen, auf die folgendes zutrifft: Jedes Zeichen, das keine besondere Bedeutung hat, muss bei den in Frage kommenden Dateinamen an genau der gleichen Stelle stehen wie in der Zeichenkette. Das Fragezeichen bezeichnet genau ein beliebiges Zeichen. Der Stern bezeichnet eine beliebige Anzahl beliebiger Zeichen (auch null Zeichen). In eckigen Klammern angegebene Zeichen bezeichnen genau ein Zeichen, das eines der in den eckigen Klammern angegebenen ist. Von besonderer Bedeutung ist dabei das Minuszeichen, mit dem ein Bereich von Zeichen angegeben werden kann. Wenn einer Zeichenkette in eckigen Klammern ein Ausrufungszeichen oder das ^-Zeichen vorangestellt ist, sind alle nicht angegebenen Zeichen gemeint (Komplement). Die Wirkung der Meta-Zeichen lsst sich ebenfalls mit dem Kommando echo vorfhren: joe@debian:~$ echo * Gibt die Namen aller Dateien im Arbeitsverzeichnis aus. joe@debian:~$ echo /usr/share/doc/*/*.txt Gibt die Namen aller Dateien in allen Unterverzeichnissen des Verzeichnisses /usr/share/doc aus, die die Endung .txt haben. joe@debian:~$ echo a????.txt Gibt die Namen aller Dateien im Arbeitsverzeichnis aus, die mit einem a beginnen, dann aus genau vier beliebigen Zeichen bestehen und auf .txt enden. joe@debian:~$ echo [a-z][!0-9][mn]??.* Gibt die Namen aller Dateien im Arbeitsverzeichnis aus, die mit einem kleingeschriebenen Buchstaben beginnen, als zweites Zeichen keine Ziffer haben, deren drittes Zeichen entweder m oder n ist, die dann aus zwei weiteren Zeichen und einem Punkt bestehen und dahinter eine beliebige Zeichenfolge aufweisen. Es ist wichtig zu verstehen, dass diese Zeichen von der Shell und nicht von den Programmen interpretiert werden, die aufgerufen werden. Wenn es im Arbeitsverzeichnis beispielsweise die Dateien bild1.gif, bild2.gif und bild3.gif gibt und in diesem Verzeichnis folgendes Kommando eingegeben wird: joe@debian:~$ ls -l *gif dann sieht die Shell nach, welche Dateinamen auf die angegebene Zeichenkette passen, und setzt diese dafr ein. Das Kommando ist gleichbedeutend mit:

16.7 Substitution (Ersetzung) und Expansion (Erweiterung)

545

joe@debian:~$ ls -l bild1.gif bild2.gif bild3.gif Nur dann, wenn die Shell keinen passenden Dateinamen ndet, wird er wie eingegeben an das aufgerufene Programm bergeben. 16.7.2 Interpretation von Sonderzeichen unterdrcken In bestimmten Situationen ist es erwnscht, dass Metazeichen nicht von der Shell interpretiert werden. Auerdem gibt es weitere Sonderzeichen wie das Dollarzeichen, deren Interpretation gelegentlich unterdrckt werden muss. Es gibt drei Mglichkeiten, dies zu erzwingen (quoten, maskieren, entwerten, sperren): Wird einem Zeichen ein Gegen-Schrgstrich (backslash) (\) vorangestellt, so wird dieses Zeichen nicht interpretiert. Wenn man das Zeichen \ selbst meint, muss man ihm ebenfalls das Zeichen \ voranstellen. Wenn eine Zeichenkette in doppelten Anfhrungszeichen (double quotes) ( ) steht, werden die in ihr enthaltenen Zeichen mit besonderer Bedeutung nicht interpretiert. Hier gibt es Ausnahmen. So werden Dollarzeichen zwischen Anfhrungszeichen (die Variablenbezeichnungen einleiten) weiterhin interpretiert. Zeichen mit besonderer Bedeutung zwischen einfachen Anfhrungszeichen (single quotes) ( ) werden nie interpretiert. Durch einfache Anfhrungszeichen lsst sich die Bedeutung aller Zeichen mit besonderer Bedeutung komplett abschalten, ausgenommen das einfache Anfhrungszeichen selbst. Dies ist durch einen Gegen-Schrgstrich zu quoten. Das bedeutet, dass das Kommando: joe@debian:~$ ls "*gif" im Gegensatz zu obigem Kommando das Programm ls direkt mit dem Argument *gif aufruft. Wenn eine Datei mit diesem Namen im Verzeichnis nicht existiert, erhlt man eine Fehlermeldung von ls. Einige Programme interpretieren Meta-Zeichen ebenfalls. Dazu gehren die Programme nd (S. 798) oder zip (S. 891). Wenn fr die Shell bedeutsame Zeichen in Argumenten vorkommen, die unverndert Programmen bergeben werden sollen, mssen diese immer durch Anfhrungszeichen oder den Gegen-Schrgstrich vor der Interpretation durch die Shell geschtzt werden. Wenn Sie sich bei einem bestimmten Ausdruck nicht sicher sind, welche Zeichen geschtzt sind und welche interpretiert werden, knnen Sie dies mit dem echo-Kommando berprfen. Das Kommando: joe@debian:~$ echo "$hallo Welt" \$hallo Welt gibt vorausgesetzt, die Variable hallo ist undeniert folgendes aus: Welt $hallo Welt Das erste $hallo steht zwar in doppelten Anfhrungszeichen, in denen die Shell dennoch versucht, den Wert der Variablen hallo einzusetzen. Weil die Variable undeniert ist, wird fr $hallo kein Wert eingesetzt, und die ausgegebene Zeichenkette

546

16 Der Kommandointerpreter Bash

beginnt mit dem Leerzeichen vor Welt. Die Leerzeichen zwischen den einfachen Anfhrungsstrichen werden unverndert ausgegeben (sie htten auch in doppelten Anfhrungsstrichen stehen knnen), und die darauffolgende Zeichenkette $hallo wird ebenfalls unverndert ausgegeben, weil dem Dollarzeichen hier ein GegenSchrgstrich vorangestellt ist. Das letzte Wort Welt ist das zweite Argument fr das echo-Kommando, weil es durch ein Leerzeichen von den vorherigen Zeichen getrennt steht. Es wird ebenfalls unverndert ausgegeben, weil es keine Meta-Zeichen enthlt. 16.7.3 Kommandosubstitution Immer dann, wenn ein Ausdruck in rckwrtsgerichteten, einfachen Anfhrungsstrichen (back quotes) ( ) steht, interpretiert die Shell einen solchen Ausdruck als Kommando und fhrt es aus. Danach ersetzt sie den Ausdruck durch das, was durch dieses Kommando auf die Standardausgabe geschrieben wurde. Die Anweisung: joe@debian:~$ a=ls bewirkt, dass die Standardausgabe des Kommandos ls der Variablen a zugewiesen wird. Das Ergebnis kann mit folgendem Kommando betrachtet werden: joe@debian:~$ echo $a Sinnvoll lsst sich diese Eigenschaft einsetzen, wenn die Ausgabe eines Kommandos als Parameter fr ein anderes Kommando dienen soll. Beispiel: Mit der Option -S des Kommandos dpkg kann man sich anzeigen lassen, welche Datei zu welchem Debian-Paket gehrt (siehe Kap. 8.3, S. 222). Mchte man wissen, zu welchem Paket das Programm ls gehrt, so knnte man folgendes Kommando eingeben: joe@debian:~$ dpkg -S ls Es werden dann die Namen aller zu installierten Debian-Paketen gehrenden Dateien ausgegeben, in denen die Zeichenkette ls vorkommt. Zu jeder Datei wird angegeben, aus welchem Paket sie stammt. Weil diese Zeichenkette in vielen Dateinamen vorkommt, erhlt man eine lange und unbersichtliche Ausgabe. Man mte den Dateinamen genauer angeben, um eine bessere Ausgabe zu bekommen. Das Programm which (S. 886) gibt den absoluten Dateinamen eines Programms aus. Das Kommando: joe@debian:~$ which ls fhrt zu der Ausgabe: /bin/ls Jetzt knnte man mit dem Kommando: joe@debian:~$ dpkg -S /bin/ls

16.7 Substitution (Ersetzung) und Expansion (Erweiterung)

547

genauer nach dem Paket suchen, aus dem das Programm stammt. Die Zwischeninformation des Dateinamens von ls interessiert jedoch eigentlich nicht. Und auerdem macht es keinen Spa, Ausgaben von Programmen abzutippen, um sie anderen Programmen als Eingabe zu bergeben. Mit Hilfe der Kommandosubstitution kann man es sich einfacher machen: joe@debian:~$ dpkg -S which ls Die Kommandosubstitution fhrt dazu, dass zunchst which ls ausgefhrt und die Ausgabe dort eingesetzt wird, wo sich der Ausdruck which ls bendet, bevor das Kommando dpkg aufgerufen wird. dpkg wird sofort mit den Parametern -S und /bin/ls aufgerufen und liefert das gewnschte Ergebnis. 16.7.4 Arithmetische Berechnungen Mit der Bash ist es in eingeschrnktem Umfang mglich, arithmetische Berechnungen durchzufhren. Solche Berechnungen werden mit einem Dollarzeichen eingeleitet und in eckige Klammern gesetzt. Beispielsweise gibt das Kommando: joe@debian:~$ echo $[2+2] die Zahl vier aus. Teil von Berechnungen knnen auch zu substituierende Ausdrcke sein. So fhrt die folgende Kommandokette zum gleichen Ergebnis: joe@debian:~$ a=2; b=2; echo $[ $a + $b ] Alternativ kann das eingebaute Kommando let (S. 581) zum Ausfhren von Berechnungen benutzt werden. Ein Beispiel fr Kommandosubstitution innerhalb von Berechnungen wre folgende Anweisung: joe@debian:~$ echo $[ cat diplomarbeit | wc - -lines / 60 ]" Seiten" Hier wird zunchst der Ausdruck cat diplomarbeit wc - -lines aufgelst, indem dieses Kommando ausgefhrt wird. Das Programm wc (S. 885) gibt mit der Option - -lines die Anzahl der gelesenen Zeilen aus. Das Ergebnis (die Anzahl der Zeilen in der Datei diplomarbeit) wird danach durch die Zahl 60 geteilt, und an die daraus resultierende Zeichenkette wird nach einem Leerzeichen das Wort Seiten angehngt. Berechnungen mit der Bash sind insofern eingeschrnkt mglich, als dass nur ganzzahlige Werte zwischen -2147483648 und 2147483647 ausgegeben werden. Eine Rundung ndet nicht statt. Die Ursache ist, dass die Bash Zahlen intern nur als 32-Bit-Integerwerte speichert. Wenn bei Benutzung der Shell genauere Berechnungen ntig sind, ist die Verwendung das Programm bc zu empfehlen, auf das jedoch nicht weiter eingegangen werden soll. Die Bash kennt die blichen mathematischen Operatoren + (Addition), - (Substraktion), * (Multiplikation), / (Division) und % (modulo, Divisionsrest), Darber hinaus sind weitere Funktionen wie logisches und bitweises NICHT, UND und ODER sowie Wertevergleiche (grer als, kleiner als usw.) mglich. Diese Funktionen sind in der Info-Dokumentation zu der Bash dokumentiert.

548

16 Der Kommandointerpreter Bash

16.7.5 Feldvariable Die Bash erlaubt es, eindimensionale Feldvariable (arrays) zu denieren. Feldvariable sind Variable, in denen mehrere Werte desselben Typs hintereinander gespeichert sind. Um einen Wert an einer bestimmten Stelle einer Feldvariablen zu speichern oder ihn von dort zu beziehen, ist die Stelle durch einen Index anzugeben. Der Index wird in eckigen Klammern hinter der Variablen angegeben. Feldvariable werden wie gewhnliche Variable in dem Moment erzeugt, in dem sie das erste Mal benutzt werden. Wenn eine Variable, die bisher keine Feldvariable war, als Feldvariable angesprochen wird, wird ihr ursprnglicher Wert dem ersten Element zugewiesen. Das erste Element hat den Index 0. Um Feldern von Feldvariablen Werte zuzuweisen, ist folgende Syntax zu verwenden: Name[Index]=Wert Dadurch wird der Feldvariablen Name an der mit Index bezeichneten Stelle der Wert Wert zugewiesen. Beispiel: joe@debian:~$ a[100]="Feld 100 der Variablen a" Die Belegung aller Felder einer Variablen gleichzeitig geschieht, indem die einzelnen Werte in runden Klammern durch Leerzeichen getrennt angegeben werden. Dadurch werden alle vorherigen Felder der Variablen gelscht. Beispielsweise deniert das Kommando: joe@debian:~$ Dinge=(Auto Buch Pflanze Riesling) die Feldvariable Dinge und weist den ersten vier Feldern die angegebenen Werte zu. Durch eine Anweisung in dieser Form werden alle bisherigen Felder der Variablen gelscht. Eine etwas andere Syntax ist notwendig, um Werte aus Feldvariablen zu verwenden. Das folgende Beispiel gibt den Wert des Elements mit dem Index 100 der Feldvariablen a aus: joe@debian:~$ echo ${a[100]} Feldvariablen mssen nach dem Dollarzeichen in geschweifte Klammern gesetzt werden. Der Index kann auch in Form einer Variablen oder eines arithmetischen Ausdrucks angegeben werden, dessen Ergebnis jedoch auf jeden Fall grer oder gleich Null sein muss. Beispiel: joe@debian:~$ i=100; echo ${a[$i]} Um der Feldvariablen menschen, an der durch die Variablen i bezeichneten Stelle abzglich zwei, den Wert der Feldvariablen namen, an der durch die Variablen i bezeichneten Stelle, zuzuweisen, ist das folgende Kommando einzugeben: joe@debian:~$ menschen[$i-2]=${namen[$i]}

16.7 Substitution (Ersetzung) und Expansion (Erweiterung)

549

16.7.6 Klammererweiterung Der Mechanismus der Klammererweiterung (Brace Expension) erlaubt, eine Reihe von hnlichen Zeichenfolgen relativ schnell zu erzeugen. Dazu ist in geschweiften Klammern eine Anzahl von Zeichenketten zu spezizieren, die durch Kommata voneinander getrennt werden. Im Unterschied zu der Expansion von Dateinamen mit Meta-Zeichen wird hierbei nicht berprft, ob die aus dem betreffenden Ausdruck erzeugbaren Zeichenketten als Dateinamen existieren. Das Kommando: joe@debian:~$ echo /usr/share/doc/{aa,bb} kombiniert die Zeichenketten aa und bb mit der vorangestellten Zeichenkette und gibt beide daraus erzeugbaren Zeichenketten aus. Mchten man im Verzeichnis /usr/local/doc die Verzeichnisse hosts, tools und adms anlegen, so geschieht dies mit folgendem Kommando: joe@debian:~$ mkdir /usr/local/doc/{hosts,tools,adms} Wenn mehrere Klammererweiterungen in einem Ausdruck vorkommen, werden die darin enthaltenen Ausdrcke miteinander kombiniert. Dies zeigt folgendes Kommando: joe@debian:~$ echo /usr/share/doc/{1,2}/{a,b,c} Auf diese Art lsst sich eine groe Zahl mglicher Kombinationen von Zeichenketten schnell angeben. Besonders vorteilhaft ist, dass die Ausdrcke in den geschweiften Klammern auch Meta-Zeichen enthalten drfen. Diese werden wie blich expandiert, nachdem die Kombinationen aus den Zeichenketten gebildet worden sind. So gibt das Kommando: joe@debian:~$ echo /usr/share/doc/{a*,b*} die Namen aller Dateien im Verzeichnis /usr/share/doc aus, deren Namen mit einem kleinen a oder b beginnen. Wollte man aus den Unterverzeichnissen von /usr/share/doc, deren Namen mit a oder b beginnen, alle Dateien, deren Namen mit README oder NEWS beginnen, in das Verzeichnis docs kopieren, so erledigt dies das folgende Kommando: joe@debian:~$ cp /usr/share/doc/{a*,b*}/{README*,NEWS*} docs Bei der Expansion werden zunchst vier Zeichenketten gebildet, nmlich: 1. 2. 3. 4. /usr/share/doc/a*/README* /usr/share/doc/a*/NEWS* /usr/share/doc/b*/README* /usr/share/doc/b*/NEWS*

Daraufhin werden die Meta-Zeichen expandiert. Dies geschieht fr jede der vier Zeichenketten einzeln und nacheinander. Zu beachten ist dabei, dass die Expansion nur dann geschieht, wenn es tatschlich passende Dateinamen gibt. Wenn beispielsweise aus der Zeichenkette /usr/share/doc/b*/NEWS* keine Dateinamen gebildet werden knnen, ndet fr diese Zeichenkette keine Expansion statt. Sie bleibt unverndert.

550

16 Der Kommandointerpreter Bash

16.7.7 Bedingte Variablenexpansion Die Bash bietet Mechanismen, die es erlauben, Variable nur unter bestimmten Bedingungen zu expandieren. Dadurch ist es mglich, Werte beispielsweise nur dann zu interpretieren, wenn diese auch gesetzt sind. Diese Konstruktionen werden mit einem Dollarzeichen eingeleitet und dann in geschweifte Klammern gesetzt. Es stehen die im folgenden genannten Konstrukte zur Verfgung. Darin angegebene Zeichenketten knnen normale Zeichenketten oder Variable sein, die dann vor der Auswertung des jeweiligen Ausdrucks ausgewertet werden. ${Variable} Entspricht dem Wert von Variable, ist gleichbedeutend mit $Variable. Die Schreibweise ist jedoch geeignet, nachfolgende Zeichen von dem Namen der betreffenden Variablen abzugrenzen. Beispiel: whrend die Zeichenkette $ab durch den Inhalt der Variablen ab ersetzt werden wrde, ist die Zeichenkette ${a}b gleichbedeutend mit dem Inhalt der Variablen a und dem angehngten Zeichen b. ${Variable:-Zeichenkette} Wenn die Variable Variable existiert und einen Wert hat, ist der Ausdruck gleich dem Wert von Variable, sonst gleich dem Wert von Zeichenkette. ${Variable:=Zeichenkette} Wenn die Variable Variable existiert und einen Wert hat, ist der Ausdruck gleich dem Wert von Variable. Wenn nicht, wird der Wert von Zeichenkette Variable zugeordnet und der Ausdruck ist gleich Zeichenkette. ${Variable:?Zeichenkette} Wenn die Variable Variable existiert und einen Wert hat, ist der Ausdruck gleich dem Wert von Variable. Wenn nicht, wird die mit Zeichenkette angegebene Zeichenkette auf die Standardfehlerausgabe gegeben und die Ausfhrung weiterer Kommandos abgebrochen. Wenn die Shell nicht interakitv ist, wird sie beendet. Mit dieser Konstruktion lsst sich schnell und effektiv prfen, ob alle notwendigen Parameter fr die Ausfhrung eines Shellskriptes vorliegen. ${Variable:+Zeichenkette} Wenn die Variable Variable existiert und einen Wert hat, ist der Ausdruck gleich der mit Zeichenkette angegebenen Zeichenkette. Wenn Variable nicht existiert oder keinen Wert hat, ist der Ausdruck gleich einer leeren Zeichenkette. ${Variable:Anfangspunkt[:Endpunkt]} Der Ausdruck ist gleich der Teilzeichenkette der in Variable gespeicherten Zeichenkette, die mit dem mit Anfangspunkt angegebenen Zeichen anfngt und mit dem optional mit Endpunkt (ohne eckige Klammern) angegebenen Zeichen aufhrt. Bei Anfangs- und Endpunkt muss es sich um Ausdrcke handeln, die Zahlen entsprechen. Wenn Endpunkt nicht angegeben ist, ist der Ausdruck gleich der Zeichenkette aus Variable von Anfangspunkt bis zum Ende. Wenn Anfangspunkt einer negativen Zahl entspricht, wird der Anfangspunkt vom Ende der Zeichenkette aus Variable an rckwrts ermittelt. Wenn die Variable @ ist, entspricht das Ergebnis den Shell-Argumenten vom Anfangspunkten Argument bis zum Endpunkten Argument. Wenn Variable eine Feldvariable mit dem Index @ oder * ist, entspricht der Ausdruck dem Inhalt von dem Anfangspunkten Feld bis zum Endpunkt.

16.8 Automatisierung von Vorgngen mit der Bash

551

${#Variable} Der Ausdruck entspricht der Anzahl der Zeichen, aus denen die in Variable gespeicherte Zeichenkette besteht. Wenn Variable gleich @ oder * ist, entspricht der Ausdruck der Anzahl der Argumente der Shell. Wenn Variable eine Feldvariable mit dem Index @ oder * ist, entspricht der Ausdruck der Anzahl der Elemente dieser Feldvariablen.

16.8 Automatisierung von Vorgngen mit der Bash


Am Anfang des Kapitels wurde bereits gezeigt, wie sich gewhnliche ShellKommandos in eine Textdatei schreiben lassen und eine solche Textdatei dann wie ein Programm ausgefhrt werden kann. Dabei sind zwei Dinge zu beachten: In der ersten Zeile sollte sich folgender Eintrag benden:
#! /bin/bash

Durch diese Zeile wird das Betriebssystem angewiesen, das Skript durch die Bash auszufhren. In vielen Shell-Skripten ndet man in der ersten Zeile auch den folgenden Eintrag:
#! /bin/sh

Dies bedeutet, dass das Skript von der Bourne-Shell ausgefhrt werden soll. Unter Debian GNU/Linux ist /bin/sh ein symbolischer Link nach /bin/bash. Es wird mit beiden Zeilen dasselbe Programm aufgerufen, allerdings verhlt sich die Bash etwas anders, wenn sie ber den Namen /bin/sh aufgerufen wird. Hierdurch wird die Kompatibilitt zur Bourne-Shell gewhrleistet. Die Datei muss fr denjenigen, der sie benutzen will, les- und ausfhrbar sein. Dies wird mit dem Kommando chmod (S. 782) eingestellt. Weiter ist zu bedenken, dass das Arbeitsverzeichnis nicht immer im Suchpfad fr ausfhrbare Dateien enthalten ist. Das bedeutet, dass ein Shell-Skript, welches sich im Home-Verzeichnis eines Benutzers bendet, nicht gefunden wird, auch wenn es von dort aus aufgerufen wird. Dies lsst sich ndern, in dem das Arbeitsverzeichnis mit in die Variable PATH aufgenommen wird oder das Skript mit seinem Verzeichnisnamen aufgerufen wird. Das Kommando: joe@debian:~$ PATH="./:$PATH" fgt das Arbeitsverzeichnis (.) vor allen anderen Verzeichnissen in den Suchpfad fr ausfhrbare Dateien ein3 . Um ein Programm im Arbeitsverzeichnis mit Verzeichnisangabe aufzurufen, ist es am einfachsten, dem Namen der Programmdatei die Zeichenkette ./ voranzustellen.
Als Verwalter knnen Sie Skripte auch in ein Verzeichnis kopieren, dass im standardmigen Suchpfad fr Programme enthalten ist. Oft verwendet man hierzu das Verzeichnis /usr/local/bin.
3

552

16 Der Kommandointerpreter Bash

16.8.1 Allgemeine Bemerkungen zur Skripterstellung Kommentare Jede leere Zeile und alle Zeilen, die mit einem Doppelkreuz (#) beginnen, werden von der Bash nicht beachtet. Dadurch ist es mglich, Kommentare in Skripte zu schreiben und einzelne Kommandos in sinnvoll zusammenhngenden Gruppen anzuordnen. Hiervon sollte man ausgiebig Gebrauch machen. Am Tag, an dem ein Skript erstellt wird, ist meistens noch klar, wozu die einzelnen Anweisungen gut sind. Zwei Wochen oder zwei Jahre spter sieht das anders aus. Variable Zur weiteren Steigerung der bersichtlichkeit ist zu empfehlen, Variablennamen zu whlen, die aussagekrftig sind. Der Name z lsst nicht unbedingt erkennen, was in dieser Variablen gespeichert wird, wohingegen der Name eingabedatei dies schon eher ermglicht. Der Autor empndet es weiter als sinnvoll, Variablen in umfangreichen Skripten zu Beginn des Skriptes zu deklarieren und ihnen Werte zuzuweisen (initialisieren). Dadurch kann auf einen Blick geprft werden, ob ein bestimmter Name schon vergeben ist. 16.8.2 Die Parametervariablen In den meisten Fllen mchte man mit einem Programm mehrere hnliche Aufgaben bearbeiten knnen. So wie im Beispiel am Anfang dieses Kapitels mchte man einem Shellskript erst bei seinem Aufruf mitteilen, welche Dateien bearbeitet werden sollen, oder man mchte durch die Angabe von Optionen das Verhalten von Programmen oder Skripten verndern. Hierzu dienen die eingebauten Shellvariablen 1, 2, 3 usw. Sie enthalten den ersten, zweiten, dritten usw. Parameter, welche dem Skript oder Programm an der Kommandozeile bergeben worden sind. Das folgende Skript veranschaulicht den Gebrauch dieser Variablen:
#! /bin/bash echo $1 $2 $3 $4 $5 $6 $7 $8 $9

Wenn dieses Skript unter dem Namen parameter.sh gespeichert wird und dann mit: joe@debian:~$ ./parameter.sh hallo moin nabend aufgerufen wird, erfolgt folgende Ausgabe: hallo moin nabend Dem Skript wurden hier nur drei Parameter bergeben, weswegen die Variablen 4 bis 9 leer sind. ber diesen Mechanismus lassen sich jedoch nur die ersten neun Parameter benutzen. Weitere knnen entweder mit dem Kommando shift (S. 585) verfgbar gemacht oder ber die Variablen * oder @ angesprochen werden. Die Variablen * und

16.8 Automatisierung von Vorgngen mit der Bash

553

@ enthalten smtliche Parameter. Der Unterschied zwischen beiden besteht darin, dass * alle Parameter in einzelnen Zeichenketten und @ alle Parameter in einer einzigen Zeichenkette mit Leerzeichen enthlt. Eine besondere Stellung nimmt in diesem Zusammenhang die Variable 0 ein. Sie enthlt den Namen, mit dem das Programm aufgerufen wurde. Das ist in der Regel der Name der Bash selbst, wenn sie direkt aufgerufen wurde (/bin/bash), oder der Name des Skripts, welches sie gerade ausfhrt. ber diese Variable kann geprft werden, mit welchem Namen ein Skript aufgerufen wurde. Den Parametervariablen lassen sich nicht wie gewhnlichen Variablen neue Werte zuweisen. Allerdings ist es mglich, sie ber das eingebaute Kommando set (S. 584) neu zu setzen. Die Syntax zu diesem Kommando lautet: set Argument1 [Argument2 ...] Danach ist das mit Argument1 angegebene Argument in der Variablen 1 gespeichert, das mit Argument2 angegebene in der Variablen 2 usw. Wird set ohne Werte oder Optionen aufgerufen, gibt es die Namen aller denierten Variablen mitsamt ihren Werten aus. Zusammen mit dem Kommando set knnen auch die Ersetzungsmechanismen benutzt werden. So weist das Kommando: joe@debian:~$ set * die Namen aller Dateien im Arbeitsverzeichnis (die durch die Dateinamenerweiterung fr den Stern eingesetzt werden) den Parametervariablen zu. Das Kommando: joe@debian:~$ set ls -l diplomarbeit fhrt dazu, dass die Ausgabe des Kommandos ls -l diplomarbeit in den Parametervariablen gespeichert wird. In der Variablen 1 sind dann die Rechte der Datei gespeichert, in der Variablen 2 die Anzahl der Verzeichniseintrge, in der Variablen 3 der Besitzer usw. Wenn nicht jedes durch Leerzeichen getrennte Wort einer einzelnen Variablen zugeordnet werden soll, sondern die Zerlegung nach einem anderen Muster erfolgen soll, ist die Variable IFS entsprechend zu ndern. 16.8.3 Ablaufsteuerung Jedes Skript, das mehr tut, als nur eine Reihe von Kommandos auszufhren, bentigt eine bestimmte Form der Ablaufsteuerung. Darunter werden Kommandos verstanden, die kontrollieren, ob eine Aktion tatschlich ausgefhrt werden soll, die angeben, wie im Falle eines Fehlers verfahren werden soll, oder die denieren, wie oft eine Aktion ausgefhrt wird. Die Bash bietet dazu eine Reihe eingebauter Kommandos, die in hnlicher Form auch in anderen Programmiersprachen zur Verfgung stehen. Alle Kommandos zur Ablaufsteuerung werden wie normale Kommandos gehandhabt. Sie knnen sowohl direkt an der Kommandozeile als auch in Skripten benutzt werden. Darber hinaus knnen sie beliebig verschachtelt werden. Die folgende bersicht ist hnlich aufgebaut wie die allgemeine Kommandoreferenz (Seite 765). Auch hier gilt, dass Ausdrcke, die in eckigen Klammern aufgefhrt sind,

554

16 Der Kommandointerpreter Bash

optional (und ohne die eckigen Klammern) benutzt werden knnen. Die meisten Konstrukte zur Ablaufsteuerung setzen sich aus mehreren Schlsselwrtern zusammen. Diese knnen wie blich entweder untereinander in einzelnen Eingabezeilen angegeben werden oder hintereinander, durch Semikolons getrennt. for Wiederholen von Kommandos fr eine Anzahl von Zeichenketten for Variable [in Zeichenkette [Zeichenkette ...]]; do Kommando; [Kommando; ...] done; Das Kommando fhrt das oder die mit Kommando angegebene(n) Kommando(s) fr jede mit Zeichenkette angegebene Zeichenkette einmal aus. Dabei wird der mit Variable angegebenen Variablen jeweils die Zeichenkette zugewiesen, fr welche die Kommandos gerade ausgefhrt werden. Beispielsweise gibt das folgende Kommando: joe@debian:~$ for i in tee bier wein; do echo $i; done; hintereinander die Wrter tee bier und wein aus. Wenn mit Zeichenkette keine Zeichenkette angegeben ist, werden stattdessen die Parametervariablen verwendet. Die beiden folgenden Anweisungen sind gleichbedeutend: for i; do echo $i; done for i in $*; do echo $i; done Beide Anweisungen bewirken, dass alle Shellparameter hintereinander ausgegeben werden.
#! /bin/bash for verzeichnis in briefe texte musik grafik do cd $verzeichnis mkdir -p backup mv *~ *.bak *.old backup cd .. done;

Das Skript wechselt nacheinander in die Verzeichnisse briefe, texte, musik und grak, legt dort jeweils ein Unterverzeichnis mit dem Namen backup an (sofern es noch nicht existiert) und verschiebt dann alle Dateien mit den Endungen ~, .bak und .old in dieses Unterverzeichnis. Am Ende jedes Durchlaufs wird wieder zurck in das Ausgangsverzeichnis gewechselt. Achtung: Die for-Schleifen der Shell und der Programmiersprache C unterscheiden sich erheblich.

16.8 Automatisierung von Vorgngen mit der Bash

555

while Wiederholen einer Aktion, solange Kommandos erfolgreich ausgefhrt werden while Testkommando; [Testkommando; ...]; do Kommando; [Kommando; ...] done; Zunchst werden die mit Testkommando angegebenen Kommandos ausgefhrt. Wenn das letzte Kommando einen Rckgabewert von 0 hat, werden die mit Kommando spezizierten Kommandos ausgefhrt. Danach werden wieder die mit Testkommando angegebenen Kommandos ausgefhrt. Die Schleife wird solange wiederholt, bis das letzte Testkommando einen von Null abweichenden Rckgabewert liefert.
# Shellscript Frage, mit Funktion frage #! /bin/bash function frage { while true do echo -n Weitermachen? read antwort || return 1 case $antwort in j|ja|y|yes|oui) return 0;; n|nein|no|non) return 1;; *) echo Mit j oder n antworten;; esac done } # Anwendung der Funktion frage while frage do date # oder etwas Sinnvolleres done

Im Skript wird eine Funktion deniert, die eine while-Schleife enthlt, deren Bedingung immer true ist. Das wre eine ewige Schleife, wenn sie nicht mittels return verlassen wrde. Die Funktion schreibt eine Frage auf den Bildschirm und gibt je nach Antwort eine 0 oder 1 zurck. Im Hauptteil des Skripts, der Anwendung der Funktion, steht eine zweite while-Schleife, die die Funktion aufruft, ihr Ergebnis als Bedingung auswertet und das externe Kommando date aufruft oder abbricht. Danach ist das Skript beendet. until Wiederholen einer Aktion, solange Kommandos nicht erfolgreich ausgefhrt werden until Testkommando; [Testkommando; ...]; do Kommando; [Kommando; ...] done;

556

16 Der Kommandointerpreter Bash

Dieses Kommando gleicht dem while-Kommando mit dem Unterschied, dass die mit Kommando angegebenen Kommandos solange ausgefhrt werden, wie das letzte Testkommando einen Rckgabewert ungleich Null liefert, also fehlschlgt.
#! /bin/bash until ping -c 1 buchhaltung &> /dev/null do echo "kann Rechner buchhaltung nicht erreichen" sleep 5 done telnet buchhaltung

Das Skript untersucht mit dem Kommando ping (S. 845), ob der Rechner buchhaltung zu erreichen ist. Auch hier interessiert die Ausgabe des ping-Kommandos nicht, weswegen sie nach /dev/null umgeleitet wird. Wenn der Test fehlschlgt, weil der Rechner nicht zu erreichen ist, wird eine Meldung ausgegeben und fnf Sekunden gewartet. Danach wird der Test erneut durchgefhrt. Sobald der Rechner buchhaltung zu erreichen ist und ping den Rckgabewert Null liefert, wird eine Verbindung mittels telnet (S. 873) zu dem Rechner aufgebaut. select Mengesteuertes Ausfhren von Aktionen select Variable [in Zeichenkette [Zeichenkette ...]]; do Kommando; [Kommando; ...] done; Dieses Kommando ist syntaktisch hnlich aufgebaut wie das for-Kommando. Es wird ein Men dargestellt, in dem alle mit Zeichenkette angegebenen Zeichenketten aufgefhrt sind. Jeder Zeichenkette wird dabei eine Zahl zugeordnet. Zustzlich erscheint eine Aufforderung zur Eingabe einer Zahl. Das Erscheinungsbild des Prompts wird durch die eingebaute Variable PS3 festgelegt. Wenn mit Zeichenkette keine Zeichenkette angegeben ist, werden wie beim Kommando for stattdessen die Parametervariablen (1, 2 . . . ) verwendet. Nachdem der Benutzer eine Zahl ausgewhlt hat, werden die mit Kommando angegebenen Kommandos ausgefhrt. Der Wert der mit Variable bezeichneten Variablen ist dabei gleich der Zeichenkette, die der Zahl entspricht, welche vom Benutzer ausgewhlt wurde. Nach Ausfhrung aller Kommandos wird das Men erneut dargestellt, und es kann wieder eine Auswahl getroffen werden. Wenn eine ungltige Zahl eingegeben wurde, ist Variable leer. Skripte, die dieses Kommando verwenden, sollten dies testen und fr eine ungltige Auswahl eine spezielle Aktion vorsehen. Die Schleife wird mit dem Kommando break (S. 557) verlassen.

16.8 Automatisierung von Vorgngen mit der Bash


#! /bin/bash PS3="Bitte whlen Sie, was angezeigt werden soll: " select auswahl in Arbeitsspeicher Festplatten Benutzer Zeit Ende echo do echo case $auswahl in Arbeitsspeicher ) free ;; Festplatten ) df ;; Benutzer ) who ;; Zeit ) uptime ;; Ende ) break ;; * ) echo "ungltige Auswahl!" esac done echo "Bis bald..."

557

Das Skript stellt eine interaktive Schnittstelle zu wichtigen Werkzeugen zur Systeminformation dar. In der zweiten Zeile wird der Variablen PS3 eine Zeichenkette zugewiesen, die als Prompt fr eine Auswahl dienen soll. Dann wird select aufgerufen, wodurch ein Men dargestellt wird, in dem der Benutzer zwischen den Menpunkten Arbeitsspeicher, Festplatten usw. auswhlen kann. Nach erfolgter Auswahl wird mit echo eine leere Zeile ausgegeben. Danach wird mit dem Kommando case (S. 564) fr jede Auswahl eine bestimmtes Programm aufgerufen. Bei der Auswahl von Ende wird die Schleife mit dem Kommando break verlassen. Die letzte Zeile in der case-Gruppe gibt eine Fehlermeldung aus, falls eine ungltige Auswahl eingegeben wurde. Nach Beendigung der Schleife verabschiedet sich das Skript.
#! /bin/bash PS3="Welche Datei lschen? " select datei in * do rm $datei; break; done;

Diese Kommandokette zeigt die Dateien im Arbeitsverzeichnis an, die dem MetaZeichen * entsprechen (alle Dateien) und bietet die Mglichkeit, eine dieser Dateien auszuwhlen. Die ausgewhlte Datei wird gelscht und die Schleife verlassen. break Sofortiges Verlassen von Schleifen break [Tiefe] Mit for, while, until oder select aufgebaute Schleifen werden sofort verlassen, wenn in ihnen das Kommando break ausgefhrt wird. Optional kann dem Kommando die Tiefe von ineinander verschachtelten Schleifen bergeben werden. Es werden dann so viele Schleifen gleichzeitig verlassen, wie mit Tiefe angegeben ist. Standardwert fr Tiefe ist 1.

558

16 Der Kommandointerpreter Bash

#! /bin/bash for verzeichnis in texte grafiken do cd $verzeichnis || break for datei in liste daten index rm $datei || break 2 done cd .. done

Das Beispiel zeigt zwei geschachtelte for-Schleifen. In der ueren Schleife wird eine Anzahl von Verzeichnissen durchlaufen und versucht, in diese Verzeichnisse zu wechseln (cd $verzeichnis). Wenn das Kommando fehlschlgt, wird die Schleife sofort mit break verlassen. Anderenfalls wird die innere Schleife gestartet, in der versucht wird, eine Anzahl von Dateien zu lschen. Sobald dies fr eine Datei fehlschlgt, werden beide Schleifen verlassen. continue Zum Ende einer Schleife springen continue [Tiefe] Das Kommando continue fhrt dazu, das alle weiteren Kommandos innerhalb einer Schleife nicht mehr ausgefhrt werden, sondern sofort an das Ende der Schleife gesprungen wird. Danach wird sie erneut ausgefhrt. Auch hier lsst sich optional die Tiefe spezizieren, wodurch an das Ende der Schleife der entsprechenden Schachtelungstiefe gesprungen wird. Standardwert fr Tiefe ist 1.
#! /bin/bash for verzeichnis in texte grafiken do cd $verzeichnis || continue for datei in liste daten index rm $datei || break 2 done cd .. done

Diese Abwandlung des vorherigen Beispiels bewirkt im Falle einer nicht erfolgreichen Ausfhrung des cd-Kommandos, dass die Schleife nicht ganz abgebrochen wird, sondern lediglich an ihr Ende gesprungen wird und daraufhin mit dem nchsten Verzeichnis weitergemacht wird. Bedingte Ausfhrung Ein Mittel zur bedingten Ausfhrung von Kommandos wurde bereits vorgestellt. Es handelt sich dabei um die beiden Operatoren und &&. Die Operatoren erlauben, Kommandos nur dann auszufhren, wenn das vorstehende Kommando erfolgreich (&&) oder nicht erfolgreich ( ) ausgefhrt wurde. Die Kommandos if und case bieten jedoch weitaus mchtigere Mglichkeiten, in Abhngigkeit von Zustnden bestimmte Kommandos und Kommandoketten auszufhren. Im Zusammenhang hiermit kommt dem eingebauten Kommando test eine besondere Bedeutung zu. Er wird deswegen in diesem Abschnitt beschrieben.

16.8 Automatisierung von Vorgngen mit der Bash

559

if Bedingtes Ausfhren von Kommandos if Testkommando1; [Testkommando1; ...]; then Kommando1; [Kommando1; ...]; [elif Testkommando2; [Testkommando2; ...]]; then Kommando2; [Kommando2; ...] [elif ...] [else Kommando3; [Kommando3; ...]] fi; Das Kommando if fhrt die mit Testkommando1 angegebenen Kommandos aus. Wenn der Rckgabewert des letzten dieser Kommandos 0 ist, werden die mit Kommando1 aufgefhrten Kommandos ausgefhrt.
letzes Kommando erfolgreich (rc=0)

if

Kommandokette

then

Kommandokette

Ende

letztes Kommando nicht erfolgreich (rc!=0)

letzes Kommando erfolgreich (rc=0)

elif

Kommandokette

then

Kommandokette

Ende

letztes Kommando nicht erfolgreich (rc!=0)

letzes Kommando erfolgreich (rc=0)

elif

Kommandokette

then

Kommandokette

Ende

letztes Kommando nicht erfolgreich (rc!=0)

else fi;

Kommandokette

Ende

Abbildung 16.1. Schematische Darstellung des Skriptablaufs bei Verwendung des if Kommandos. Die Abkrzung rc steht fr Returncode (Rckgabewert).

Optional kann hinter den Kommandos, die ausgefhrt werden, wenn die erste Testbedingung zutrifft, das Schlsselwort elif stehen. Dann werden, wenn die erste Testbedingung nicht zutrifft, die hinter elif angegebenen Testkommandos ausgefhrt. Wenn das letzte dieser Kommandos den Rckgabewert Null liefert, werden die Kommandos ausgefhrt, die hinter dem nchsten then stehen. Es knnen mehrere elif . . . then-Paare hintereinander vorkommen. Dann werden solange die verschiede-

560

16 Der Kommandointerpreter Bash

nen hinter den einzelnen elif -Wrtern stehenden Testkommandos ausgefhrt, bis das letzte Kommando eines dieser Testkommandos den Rckgabewert 0 liefert. Am Ende der Konstruktion kann das Schlsselwort else stehen. Es bewirkt, dass die hinter else stehenden Kommandos ausgefhrt werden, wenn keines der hinter if oder elif aufgefhrten letzten Testkommandos einen Rckgabewert von 0 hat. Die Kette muss mit dem Wort beendet werden. Der Ablauf diese Anweisung wird in Abbildung 16.1 dargestellt.
# /bin/bash rechner="verwaltung abrechnung personalwesen edv" tot=0; totnamen="" mailserver="mail.provider.de"; email="admin@admin.org.de" faxnummer="0049111222333" log=logfile

# Wir versuchen, alle Rechner nacheinander zu erreichen for i in $rechner do if ping -c 1 $i &> /dev/null then echo "Rechner $i ok." > > $log else tot=$[$tot+1] totnamen=$totnamen" "$i echo "Rechner $i nicht ok." > > $log fi done # Wenn Rechner unerreichbar, versuchen, den Verwalter zu erreichen. if [ $tot -ne 0 ] then if ping -c 1 $mailserver &> /dev/null then echo $totnamen | mail -s "ausgefallene Rechner!" $email echo "Email gesendet" > > $log elif echo "ausgefallene Rechner: "$totnamen | sendfax -P 0 -n -d $faxnummer &> /dev/null then echo "Fax gesendet" > > $log else echo "Keine Mglichkeit zur \ Benachrichtigung" > > $log fi fi

Das Skript dient zur berwachung der Erreichbarkeit einiger Rechner, die in der Variablen rechner aufgefhrt werden. Im ersten Teil werden die Variablen deklariert und mit Werten versehen. Im zweiten Teil wird mit einer for-Schleife versucht, die Rechner mit dem Kommando ping zu erreichen. Dem for-Kommando werden dazu die Namen der zu berprfenden Rechner mit der Variablen rechner bergeben. Das darunter stehende if -Kommando ruft das Programm ping (S. 845) auf, das den Rckgabewert 0 liefert, wenn der gerade berprfte Rechner zu erreichen ist. In diesem Fall wird in die Datei, deren Namen in der Variablen log gespeichert ist, eine Erfolgsmeldung geschrieben. Wenn ping einen von Null abweichenden Rckgabewert liefert, also der betreffende Rechner nicht zu erreichen ist, wird zu der Variablen tot der Wert 1 hinzuaddiert. Weil die Variable zu Beginn des Skriptes mit dem Wert 0 initialisiert war, enthlt sie nach Beendigung der Schleife die Anzahl der Rechner,

16.8 Automatisierung von Vorgngen mit der Bash

561

die nicht zu erreichen waren. Auerdem wird der Variablen totnamen der Name des nicht erreichbaren Rechners angehngt, und es wird ein Eintrag in der Logdatei vorgenommen. Im dritten Teil wird anhand der Variablen tot geprft, ob es nicht erreichbare Rechner gegeben hat. Die eckigen Klammern sind eine vereinfachte Schreibweise fr das Kommando test (S. 561). Falls es unerreichbare Rechner gab, soll der Verwalter benachrichtigt werden. Zu dem Zweck wird zunchst mit dem gleichen Verfahren geprft, ob wenigstens der Mailserver zu erreichen ist. Wenn der Test erfolgreich ist, wird mit dem Kommando mail (S. 825) eine Email an die in der Variablen email gespeicherte Adresse gesendet, welche die angegebene Betreff-Zeile enthlt. Das Programm mail liest den Inhalt der zu sendenden Email von der Standardeingabe. Es wird die Liste der Namen nicht erreichbarer Rechner gesendet. Nachdem die Email abgeschickt ist, wird ein entsprechender Eintrag in der Logdatei vorgenommen. Wenn der Mailserver jedoch nicht erreicht werden konnte (Rckgabewert ungleich 0), wird versucht, ein Fax an die in der Variablen faxnummer gespeicherte Faxnummer zu senden. Hierzu wird das Programm sendfax aus dem Debian-Paket hylafax-client benutzt. Wenn der Rckgabewert von sendfax 0 ist, wird die erfolgreiche Absendung des Faxes in der Logdatei vermerkt. Sollte jedoch auch der Versuch, ein Fax zu senden, fehlschlagen, wird in der Logdatei vermerkt, dass es nicht mglich war, den Verwalter zu benachrichtigen. test Testen von Bedingungen test Ausdruck [ Ausdruck ] test berprft, ob die mit Ausdruck bezeichnete Bedingung wahr oder falsch ist, und liefert den Wert 0 zurck, wenn die Bedingung zutrifft. Anderenfalls wird der Wert 1 zurckgeliefert. Das Kommando kann immer dann eingesetzt werden, wenn bei der bedingten Ausfhrung von Kommandos nicht der Rckgabewert eines Programms beurteilt werden soll, sondern geprft werden soll, ob bestimmte Dateien existieren oder ob Variablen bestimmte Werte haben. Die Entscheidung ist abhngig vom Rckgabewert von test, der seinerseits abhngig vom Zutreffen oder Nicht-Zutreffen bestimmter Bedingungen ist. Es gibt zwei unterschiedliche Schreibweisen fr dieses Kommando. In der ersten Form wird test wie jedes andere Kommando aufgerufen. Als Parameter werden ihm, wie unten beschrieben, die zu testenden Ausdrcke bergeben. In der zweiten Form wird an Stelle des Wortes test eine linke eckige Klammer geschrieben, die gefolgt von dem zu testenden Ausdruck von einer rechten eckigen Klammer geschlossen wird. Die zweite Schreibweise erhht die Lesbarkeit des Kommandos in Skripten. Die beiden Kommandos: joe@debian:~$ test -e diplomarbeit || echo "Die Diplomarbeit ist weg."

562

16 Der Kommandointerpreter Bash

joe@debian:~$ [ -e diplomarbeit ] || echo "Die Diplomarbeit ist weg." sind identisch. Bei der Verwendung eckiger Klammern mssen zwischen den eckigen Klammern und dem zu testenden Ausdruck Leerzeichen stehen, da die Klammern Kommandos sind. -e Datei Trifft zu, wenn Datei existiert. -x Datei Trifft zu, wenn Datei existiert und ausfhrbar ist. -d Datei Trifft zu, wenn Datei existiert und ein Verzeichnis ist. -r Datei Trifft zu, wenn Datei existiert und gelesen werden kann. -w Datei Trifft zu, wenn Datei existiert und beschreibbar ist. Zeichenkette1 = Zeichenkette2 Die beiden angegebenen Zeichenketten sind gleich. Ausdruck1 -eq Ausdruck2 Die beiden Ausdrcke haben den gleichen numerischen Wert. Ausdruck1 -lt Ausdruck2 Ausdruck1 ist numerisch kleiner als Ausdruck2. Ausdruck1 -gt Ausdruck2 Ausdruck1 ist numerisch grer als Ausdruck2 . Ausdruck1 -ne Ausdruck2 Ausdruck1 ist numerisch ungleich Ausdruck2. -z Zeichenkette Trifft zu, wenn die mit Zeichenkette bezeichnete Zeichenkette leer ist. Dadurch lsst sich prfen, ob eine Variable einen Wert hat. -n Zeichenkette Trifft zu, wenn die mit Zeichenkette bezeichnete Zeichenkette nicht leer ist. ! Ausdruck Trifft zu, wenn Ausdruck nicht zutrifft und umgekehrt (not). Ausdruck1 -o Ausdruck2 Trifft zu, wenn Ausdruck1 oder Ausdruck2 oder beide zutreffen (or). Ausdruck1 -a Ausdruck2 Trifft zu, wenn Ausdruck1 und Ausdruck2 zutreffen (and). Im obigen Shellskript zur berprfung der Erreichbarkeit von Rechnern wurde mit dem Kommando test in der Zeile if [ $tot -ne 0 ] getestet, ob die Variable tot einen von 0 abweichenden Wert hat. Dies ist in dem Skript genau dann der Fall, wenn mindestens ein Rechner nicht zu erreichen gewesen ist. Nun mchte man das Skript vielleicht dahingehend ndern, dass eine Benachrichtigung des Verwalters erst dann ausgelst wird, wenn mehr als ein Rechner nicht zu erreichen ist. Die Zeile ist dann einfach folgendermaen abzundern: if [ $tot -gt 1 ]. Nun liefert test nur dann den Rckgabewert 0, wenn die Variable tot einem Wert grer als 1 entspricht. Mit test und while lassen sich auch Schleifen realisieren, die nur einige Male durchlaufen werden sollen:
#! /bin/bash durchlauf=0 anzahl=10 while [ $anzahl -ne $durchlauf ] do echo $durchlauf durchlauf=$[$durchlauf+1] done

16.8 Automatisierung von Vorgngen mit der Bash

563

Hier wird als Test-Kommando fr die while-Schleife das Kommando test benutzt, das prft, ob die Variablen anzahl und durchlauf einen unterschiedlichen numerischen Wert haben. Wenn dies so ist, liefert test den Rckgabewert 0, und die Schleife wird durchlaufen. Innerhalb der Schleife wird zunchst der Wert der Variablen durchlauf ausgegeben und ihr Wert dann um die Zahl 1 erhht. Die Folge ist, dass nach zehn Durchlufen ihr Wert gleich 10 ist und dann die Test-Bedingung (anzahl und durchlauf unterscheiden sich) nicht mehr zutrifft, woraufhin test einen von 0 abweichenden Rckgabewert liefert und die Schleife beendet wird. Ein weiterer Anwendungsbereich von test liegt darin zu berprfen, ob Dateien existieren und bestimmte Eigenschaften haben. So fhrt es zu Fehlern, wenn Programme aufgerufen werden, die nicht vorhanden sind, oder aus Dateien gelesen werden soll, fr die keine Leseberechtigung besteht. Solche Fehler knnen durch TestAnweisungen vor Aufruf des eigentlichen Programms vermieden werden. Das folgende Skript ruft das in Wirklichkeit nicht vorhandene Programm /usr/local/bin/shufe auf. Das Programm liest Daten von der Standardeingabe und schreibt seine Ergebnisse auf die Standardausgabe. Weil das Programm im Falle eines Fehlers keine Meldungen ausgibt, die auf die Ursache des Fehlers schlieen lassen, wurde das Skript geschrieben. Es testet zunchst die notwendigen Bedingungen zur erfolgreichen Ausfhrung von /usr/local/bin/shufe, gibt dann entsprechende Fehlermeldungen aus, falls die Bedingungen nicht erfllt sind, und ruft das Programm nur dann auf, wenn alle Bedingungen erfllt sind.
#! /bin/bash programm=/usr/local/bin/shuffle eingabe=/tmp/shuffledata ausgabe=/tmp/shuffle.out if [ ! -x $programm ]; then echo "Fehler: Programm nicht ausfhrbar." exit 1; fi; if [ ! -r $eingabe ]; then echo "Fehler: Kann Daten nicht lesen." exit 1; fi; if [ ! -w $ausgabe ]; then echo "Fehler: Ausgabe nicht vorhanden oder nicht beschreibbar." exit 1; fi; # Alles stimmt, wir knnen das Programm aufrufen. cat $eingabe | $programm >> $ausgabe

In dem Skript werden zunchst Variable deniert, die den Namen der Programmdatei sowie die Namen von Ein- und Ausgabedatei enthalten. Dann wird getestet, ob die Programmdatei vorhanden und ausfhrbar ist (-x), ob die Eingabedatei vorhanden und lesbar ist (-r) und ob die Ausgabedatei vorhanden und beschreibbar ist (-w). Wenn eine der Bedingungen nicht erfllt ist, wird das Skript mit exit abgebrochen. Dem Kommando exit wird dabei die Zahl 1 als Parameter bergeben. Dadurch wird bewirkt, dass der Rckgabewert des Skriptes 1 ist. Ein anderer Prozess oder ein an-

564

16 Der Kommandointerpreter Bash

deres Skript knnte dann anhand des Rckgabewertes dieses Skriptes prfen, ob es erfolgreich ausgefhrt wurde. case Bedingtes Ausfhren von Kommandos in Abhngigkeit von Variablen case Variable in Zeichenkette1 [ | Zeichenkette1 ... ] ) Kommando1 [; Kommando1 ...] ;; [ Zeichenkette2 [ | Zeichenkette2 .. ] ) Kommando2 [; Kommando2 ]] ;; [...] esac Das Kommando case ermglicht, in Abhngigkeit vom Wert einer Variablen verschiedene Aktionen auszufhren. Ein Beispiel dafr wurde bereits zusammen mit dem Kommando select (S. 556) vorgestellt. Zunchst wird der in der mit Variable bezeichneten Variablen gespeicherte Wert mit der Zeichenkette Zeichenkette1 verglichen. Hier kann an Stelle einer einfachen Zeichenkette auch eine Variable oder ein Kommando in einfachen rckwrtsgerichteten Anfhrungsstrichen stehen (Kommandosubstitution). Dann wird statt der Zeichenkette mit der Ausgabe dieses Kommandos oder dem Wert der Variablen verglichen. Die Zeichenkette darf auch MetaZeichen (*, ?, []) enthalten, die beim Vergleich ausgewertet werden. Hinter der Zeichenkette drfen sich durch Lngsstriche ( ) getrennt weitere Zeichenketten benden. Dann wird mit allen vorhandenen Zeichenketten verglichen. Wenn der Vergleich ergibt, dass der Wert von Variable mit der oder den Zeichenketten bereinstimmt, werden die nach einer runden, rechten Klammer4 stehenden Kommandos ausgefhrt. Die Kommandos mssen mit zwei Semikolons abgeschlossen werden. Danach wird das case-Kommando verlassen. Wenn der Vergleich ergibt, dass der Wert von Variable nicht mit der oder den Zeichenketten bereinstimmt, wird nach der nchsten Zeichenkette (Zeichenkette2) gesucht und dort wieder verglichen. Wenn dieser Vergleich zutrifft, werden die hinter diesen Zeichenketten stehenden Kommandos (Kommandos2) ausgefhrt. Wenn nicht, wird weiter zur nchsten Zeichenkette gesprungen. Das case-Kommando wird oft zur Auswertung von Parametern benutzt. Das folgende Beispiel zeigt, wie dies mit Bercksichtigung langer und kurzer Optionen geschieht.
#! /bin/bash # Voreinstellungen festlegen verbose=0 force=0 version="0.99982p21" files=""

Der seltene Fall, dass eine Klammer ohne ihr Gegenstck auftritt.

16.8 Automatisierung von Vorgngen mit der Bash


for i; do case $i in -h | - -h* $0 -- Skript mit -f | - -force : -v | - -verbose : -h | - -help : -V | - -version : EOF

565

) cat <<EOF Optionen Kritische Aktionen ohne Rckfrage durchfhren. Es wird erklrt, was getan wird. Zeigt diese Hilfe an. Gibt die Versionsnummer dieses Programms aus. exit ;; ) verbose=1 ;; ) echo $version; exit ;; ) force=1 ;; ) if [ -r $i ] then files=$files" "$i else echo $i" ist nicht lesbar!"; exit 1; fi ;;

-v | - -verb* -V | - -vers* -f | - -f* *

esac; done; if [ $verbose -ne 0 ]; then echo "Bearbeite "$files; fi # Hier knnen die eigentlichen Aktionen folgen.

Das Beispiel stellt lediglich den Beginn eines Skriptes dar, die eigentlichen Aktionen fehlen. Wichtig ist die Methode, mit der hier die Kommandozeile auf Optionen untersucht wird. Nach der Deklaration von Variablen im oberen Teil wird eine for-Schleife ber alle Parametervariablen gestartet. Die Variable i enthlt fr jeden Durchlauf dieser Schleife einen Parameter, der dem Skript an der Kommandozeile bergeben wurde. Innerhalb der Schleife bendet sich lediglich die case-Anweisung. In dieser wird der Wert, der sich gerade in der Variablen i bendet, mit jeweils zwei Zeichenketten verglichen, die durch den Lngsstrich voneinander getrennt sind. Die erste der beiden Zeichenketten reprsentiert die Option in Kurzschreibweise (mit einem Minuszeichen) und die zweite Zeichenkette die Option in langer Schreibweise (mit zwei Minuszeichen). Um die Benutzung des Skriptes einfach zu gestalten, wird bei der langen Schreibweise nur mit den Zeichen am Anfang von Optionen verglichen, die notwendig sind, um eine Option von anderen zu unterscheiden. Hinter den Anfangszeichen bendet sich das Meta-Zeichen *. Sobald eine Zeichenkette mit der Variablen i bereinstimmt, werden die Kommandos hinter der runden Klammer nach der entsprechenden Zeichenkette ausgefhrt. Wenn beispielsweise die Option -h oder - -help benutzt wurde, fhrt das dazu, dass der Hilfetext hinter dem cat-Kommando ausgegeben und das Programm verlassen wird. Eine hnliche Wirkung hat die Option -V bzw. - -version, nur dass hier nicht das cat-Kommando, sondern das Kommando echo benutzt wird, um eine Ausgabe durchzufhren. Die Optionen -f bzw. - -force und -v bzw. - -verbose fhren dazu, dass den Variablen force bzw. verbose neue Werte zugewiesen werden. Hier bendet sich kein exit-Kommando, weshalb die for-Schleife danach erneut durchlaufen wird. Fr die weitere Ausfhrung des Skriptes ist es wichtig, dass diesen beiden Variablen am Anfang bereits Werte zugewiesen wurden. Wenn diese Optionen nmlich nicht be-

566

16 Der Kommandointerpreter Bash

nutzt werden, werden den Variablen in der Schleife keine Werte zugewiesen, und die Auswertung der Variablen in spteren Teilen des Skripts wrde zu Fehlern fhren. Als letzte zu prfende Zeichenkette bendet sich in der case-Anweisung das Meta-Zeichen *. Dieses Zeichen trifft auf alle Zeichenketten zu. Deshalb werden die Anweisungen hinter dieser Zeichenkette immer ausgefhrt, wenn nicht vorher der Vergleich mit einer anderen Zeichenkette erfolgreich gewesen ist. Die Anweisungen hinter dem Stern haben den folgenden Sinn: Immer wenn sie ausgefhrt werden, wird ein Parameter bearbeitet, der keine gltige Option darstellt. Das Skript muss nun entscheiden, ob es mit solchen Parametern berhaupt etwas anfangen kann. Angenommen, das Skript wrde irgendwelche Aktionen mit Dateien ausfhren, so knnte hier geprft werden, ob es sich bei den hier bearbeiteten Parametern um Dateinamen handelt. Genau dies wird hier getan. Mit einer test-Anweisung ([ -r $i ]) wird geprft, ob der gerade bearbeitete Parameter dem Namen einer Datei entspricht, die lesbar ist. Falls dies so ist, wird der Parameter an die in der Variablen les gespeicherte Zeichenkette angehngt. Ansonsten wird eine Fehlermeldung ausgegeben und das Skript mit dem Rckgabewert 1 beendet. Die Folge ist, dass alle Parameter, die keine Optionen, aber Namen von lesbaren Dateien sind, nach Beendigung des Skriptteils in der Variablen les gespeichert sind. Die Variable kann im weiteren Verlauf des Skripts steuern, welche Dateien bearbeitet werden. Die letzte Anweisung in diesem Beispiel prft, ob der Wert der Variablen verbose von 0 abweicht, was der Fall sein sollte, wenn die Option -v bzw. - -verbose benutzt wurde. Dann wird der Inhalt der Variablen les ausgegeben. Angenommen, das Skript wird unter dem Namen case_esac.sh als ausfhrbare Datei im Arbeitsverzeichnis gespeichert, dann fhrt der Aufruf des Skriptes in der Form: joe@debian:~$ ./case_esac.sh -v * dazu, dass die Namen aller Dateien im Arbeitsverzeichnis ausgegeben werden, sofern sie fr den aufrufenden Benutzer lesbar sind. Es wird zunchst durch den Parameter -v die Variable verbose auf 1 gesetzt. Der Stern wird von der Shell schon vor dem eigentlichen Aufruf des Skriptes durch die Namen der Dateien im Arbeitsverzeichnis ersetzt. Diese werden dann von dem Skript nacheinander als Parameter erkannt, die keine Optionen sind und deswegen daraufhin untersucht, ob sie Namen lesbarer Dateien sind. Wenn dies so ist, werden sie wie beschrieben dem Wert der Variablen les angehngt, die am Ende des Skriptes aufgrund des Wertes der Variablen verbose ausgegeben wird. 16.8.4 Funktionen Die Bash kennt Funktionen wie andere Programmiersprachen auch. Darunter werden Gruppen von Kommandos verstanden, denen ein Name zugeordnet wird und die spter mit diesem Namen aufgerufen werden. Die Benutzung von Funktionen bietet sich immer an, wenn eine Gruppe von Kommandos mehrmals ausgefhrt werden soll. Mit Funktionen lassen sich lngere Shellskripte bersichtlich gestalten. Die allgemeine Syntax fr Funktionen ist folgende:

16.8 Automatisierung von Vorgngen mit der Bash

567

Name () { Kommando; [ Kommando; ... ] } Hierdurch wird eine Funktion mit dem Namen Name deniert. Diese Funktion kann danach wie ein gewhnliches Kommando benutzt werden. Sobald sie aufgerufen wird, werden die mit Kommando angegebenen Kommandos zwischen den geschweiften Klammern der Funktionsdenition ausgefhrt. Bei der Denition von Funktionen gibt es zwei Dinge zu beachten: Die Funktion muss vor ihrem ersten Aufruf deniert sein. Die Parametervariablen 1, 2 usw. werden beim Aufruf einer Funktion durch die Parameter ersetzt, mit denen die Funktion aufgerufen wurde. Nach Beendigung der Funktion bekommen wieder die alten Parametervariablen ihre Gltigkeit. Funktionen werden an jeder Stelle durch das Kommando return (S. 584) beendet.
#! /bin/bash hallo () { if [ -z $1 ] then echo "hallo "$USER else echo "hallo "$1 fi; } hallo hallo Silke

In diesem Skript wird zunchst eine Funktion mit dem Namen hallo deniert. In der Funktion wird geprft, ob die Parametervariable 1 leer ist, und falls ja, die Zeichenkette hallo und der in der Variablen USER gespeicherte Wert ausgegeben. Wenn die Parametervariable nicht leer ist, wird stattdessen ebenfalls die Zeichenkette hallo, aber danach die in der Parametervariablen 1 gespeicherte Zeichenkette ausgegeben. Im unteren Teil des Skriptes wird die Funktion zweimal aufgerufen. Einmal ohne Parameter, was zur Ausgabe von hallo und dem Benutzernamen des Aufrufers fhrt und einmal mit dem Parameter Silke, was zur Ausgabe der Zeichenkette hallo Silke fhrt. 16.8.5 Beispiel: Ein System-V-Startskript In Kapitel 13, S. 449 ist beschrieben, wie vom Programm init whrend des Systemstarts und beim Wechseln des Runlevels bestimmte Skripte ausgefhrt werden. Jedes dieser Skripte ist fr das Starten oder Anhalten bestimmter Dienste oder fr das Ein- bzw. Ausschalten bestimmter Systemeigenschaften zustndig. Diese Skripte akzeptieren mindestens zwei Parameter, nmlich start und stop. Beim Starten eines Dienstes wird das Skript von init mit dem Parameter start aufgerufen und beim Anhalten mit dem Parameter stop. Mchte man weitere Aktionen beim Systemstart oder beim Wechseln von Runleveln durchfhren lassen oder eigene Dienste starten, dann empehlt es sich, eigene Skripte zu diesem Zweck zu schreiben, die als ausfhrbare Dateien im Verzeichnis /etc/init.d abgelegt werden. Danach muss ein symbolischer Link in das /etc/rc*.d-Verzeichnis des Runlevels, in dem der Dienst zur Verfgung

568

16 Der Kommandointerpreter Bash

stehen soll (Standardrunlevel ist 2), gesetzt werden, und schon wird der Dienst automatisch bei jedem Wechsel in den entsprechenden Runlevel gestartet. Das folgende Skript deniert den Dienst Sounduntersttzung am Beispiel einer AWE32-Soundkarte. Um die Untersttzung dieser Karte zur Verfgung zu stellen, sollen eine Reihe von Kern-Modulen mit kongurierbaren Parametern geladen werden. Darber hinaus soll ein spezielles Programm aufgerufen werden, mit dem Soundfonts auf der Karte installiert werden. Das hierbei verwendete Programm und die Soundfont-Datei sollen ebenfalls kongurierbar sein. Deshalb wurde das folgende Skript zweigeteilt: zum einen in das eigentliche Startskript, das von init aufgerufen wird, und zum anderen in eine Kongurationsdatei, in der angegeben wird, welche Module geladen oder entfernt werden sollen, welche Parameter dabei zu verwenden sind und mit welchem Programm welche Soundfont-Datei geladen werden soll. Die Datei mit dem Startskript bekommt den Namen /etc/init.d/sound und die Kongurationsdatei den Namen /etc/sound.cong. Ein zustzliches Problem ergibt sich dadurch, dass die zu ladenden Module voneinander abhngen. Sie mssen in einer bestimmten Reihenfolge geladen und beim Anhalten des Dienstes in umgekehrter Reihenfolge entladen werden. Das Skript soll sich um diesen Sachverhalt automatisch kmmern5. Das Startskript Im Kopfteil des Skripts ndet sich neben der Kommentarzeile die Initialisierung fr zwei Variable: do_sfx und rmodules. In der Variablen do_sfx wird festgehalten, ob Soundfonts auf die Karte zu laden sind, und in der Variablen rmodules werden die Namen der Module in umgekehrter Reihenfolge gespeichert. Die Reihenfolge wird zum geordneten Entladen der Module bentigt.
#! /bin/bash # Starten des Sound-Subsystems do_sfx=0 rmodules="" if [ else test test -r /etc/sound.config ]; then . /etc/sound.config; exit 0; fi; -z "$modules" && exit 0: -x "$sfxload" && test -r "$sfxdatei" && do_sfx=1;

case "$1" in start) echo -n "Lade Sound-Treiber... " for i in $modules do opts=eval echo $$i modprobe $i $opts done; [ $do_sfx -eq 1 ] && $sfxload $sfxdatei echo "fertig." ;;

5 Alternativ zu dem hier gezeigten Verfahren lsst sich das Laden von Modulen auch mit dem Programm modprobe automatisieren (Siehe Abschnitt 12.4.2, S. 428).

16.8 Automatisierung von Vorgngen mit der Bash


stop) echo -n "Entferne Sound-Treiber... " for i in $modules; do rmodules=$i" "$rmodules; done; for i in $rmodules; do rmmod $i; done; echo "fertig." ;; restart) $0 stop $0 start ;; force-reload) $0 restart ;; *) echo "Verwendung: $0 start|stop|restart|force-reload" exit 1 esac exit 0

569

Darunter folgen drei Anweisungen, mit denen geprft wird, ob gengend Informationen vorliegen, um alle Aktionen auszufhren. Die erste dieser Anweisungen testet, ob die Kongurationsdatei /etc/sound.cong vorhanden ist und gelesen werden kann. Wenn dies so ist, werden die Anweisungen in der Kongurationsdatei ausgefhrt (der Punkt ist eine Abkrzung fr das Kommando source (S. 587)). Wenn die Kongurationsdatei nicht vorhanden oder nicht lesbar ist, wird das Skript sofort und ohne einen von 0 abweichenden Rckgabewert verlassen. Der Grund hierfr ist, dass dieses Startskript auf Systemen, auf denen keine Soundkarte vorhanden ist oder diese noch nicht konguriert wurde, nicht zu Fehlern beim Starten fhren soll. Die Kongurationsdatei Die Datei /etc/sound.cong knnte folgendermaen aussehen:
# /etc/sound.config # Konfigurationsdatei fr /etc/init.d/sound # Namen der zu ladenden Module in der Reihenfolge, in # der sie geladen werden sollen. modules="soundcore soundlow sound uart401 sb opl3 awe_wave" # Optionen zum Laden der Module # Syntax: Modulname="Optionen" sb="irq=5 dma=0 dma16=5 mpu_io=0x330 io=0x220" opl3="io=0x388" # Pfad und Name des Programms sfxload sfxload="/usr/bin/sfxload" # Pfad und Name der zu ladenden Sounddatei sfxdatei="/usr/lib/awe/sfbank/synthgm.sbk"

Die Datei enthlt gewhnliche Bash-Kommandos, unterscheidet sich jedoch von einem Shell-Skript dadurch, dass sie nicht ausfhrbar zu sein braucht, weswegen ihr auch die sonst bliche Kommentarzeile mit Angabe des Interpreters (#!

570

16 Der Kommandointerpreter Bash

/bin/bash) fehlt. Dies liegt daran, dass sie vom Startskript nicht als ein eigener Prozess aufgerufen wird, sondern lediglich die in ihr angegebenen Kommandos gelesen und ausgefhrt werden. Obwohl hier auch andere Kommandos mglich wren, benden sich in dieser Datei nur Variablendenitionen mit Wertzuweisungen. Fr den Benutzer, der nur diese Datei zu verndern braucht, reicht es vllig aus, hinter die Gleichheitszeichen Werte entsprechend seiner Konguration zu schreiben. Die erste Nicht-Kommentar-Zeile deniert die Variable modules, in der die Namen der zu ladenden Module gespeichert werden. Darunter benden sich Optionsdenitionen fr einige Module, die in Variablen gespeichert werden, welche die gleichen Namen tragen wie die Module, fr die sie gelten. Schlielich folgen die Denitionen von zwei Variablen, die den Namen des Programms zur Installation von Soundfonts und den Namen der zu installierenden Soundfont-Datei beinhalten. Im Startskript wird nach der Bearbeitung der Kongurationsdatei geprft, ob die Variable modules leer ist. Falls ja, wird das Skript verlassen. Dann wird geprft, ob eine ausfhrbare Datei zum Laden von Soundfonts angegeben wurde und ob die Soundfont-Datei lesbar ist. Aktionen im Startskript Nach der Initialisierungsphase wird in einer case-Anweisung der erste dem Skript bergebene Parameter (Variable 1) ausgewertet. Abhngig vom Wert des Parameters werden durch die case-Anweisung fnf verschiedene Blcke des Skripts ausgefhrt: start Alle Anweisungen zum Starten des Dienstes. stop Die Anweisungen zum Anhalten des Dienstes. restart Die Option wird von vielen Startskripten aus Bequemlichkeit zur Verfgung gestellt. Der Dienst wird angehalten und sofort erneut gestartet. Dies wird erreicht, indem sich das Skript selbst einmal mit dem Parameter stop und dann mit dem Parameter start aufruft. Dazu wird nicht der Name des Skripts, sondern die Variable 0 benutzt, in der sich der Name des Skriptes bendet. Dies bietet den Vorteil, dass die Funktion auch dann noch funktioniert, wenn das Skript umbenannt wurde. force-reload Einige Programme, die als Systemdienste benutzt werden, knnen ihre Kongurationsdaten neu lesen, ohne angehalten und neu gestartet werden zu mssen. Deswegen implementieren viele Startskripte die Option force-reload, die solchen Programmen ein bestimmtes Signal schickt, woraufhin die Kongurationsdaten gelesen werden. In unserem Fall ist dies nicht mglich, weswegen die Option hier dazu fhrt, dass das Skript nochmals mit dem Parameter restart aufgerufen wird. * Der Stern zum Schluss fngt den Fall ab, dass mit dem ersten Parameter eine nicht untersttzte Option ausgewhlt wurde. In diesem Fall wird eine Hilfe mit den gltigen Optionen ausgegeben.

16.9 bersicht eingebauter Bash-Kommandos

571

Die Start-Aktion Der start-Teil beinhaltet im wesentlichen eine Schleife ber die in der Variablen modules bendlichen Werte, ber die Namen der Module. In der ersten Anweisung der Schleife wird ausgewertet, mit welchen Optionen das jeweilige Modul zu laden ist. Die Konvention ist, dass die Optionen fr jedes Modul in einer Variablen mit dem Namen des betreffenden Moduls gespeichert sind. Daher wird zunchst vor den Namen des Moduls (in i) das Dollarzeichen gesetzt, um den Namen als Variable zu deklarieren. Weil diese neu entstandene Variablenbezeichnung nicht automatisch durch ihren Wert ersetzt wird, wird sie dem Kommando eval (S. 576) bergeben, der eine weitere Ersetzung durchfhrt. Weil eval die Zeichenkette auflst und als Kommando interpretiert, ist der Anweisung das Kommando echo vorangestellt, welches zusammen mit eval die Optionen fr das zu ladende Modul ausgibt. Diese Ausgabe wird mittels Kommandosubstitution der Variablen opts zugewiesen. Dann wird das betreffende Modul mit diesen Optionen ber das Programm modprobe geladen. Wenn die Schleife beendet ist und alle Module geladen sind, wird die SoundfontDatei installiert (Programmname in sfxload 6 , Datei in sfxdatei), falls die Bedingungen hierzu erfllt sind. In diesem Fall wre die Variable do_sfx im Initialisierungsteil auf den Wert 1 gesetzt worden. Die Stop-Aktion Der stop-Teil beinhaltet zwei Schleifen. In der ersten werden die Namen der Module aus der Variablen modules in umgekehrter Reihenfolge in der Variablen rmodules gespeichert, indem der jeweils aktuelle Modulnamen vor die dort bereits vorhandenen gesetzt wird. In der zweiten Schleife werden diese Module mit dem Kommando rmmod (S. 856) entfernt. Bemerkungen zum Beispielskript In den meisten Fllen ist ein Startskript zum Laden von Modulen nicht notwendig. Vielmehr knnen Module durch das Kernprogramm kmod automatisch entsprechend der Konguration in /etc/modules.conf geladen werden. Siehe hierzu Kap.: 12.4, S. 426. Gelegentlich ist es wnschenswert, bestimmte Module nur explizit zur Verfgung zu stellen. Dadurch wird global verhindert, dass Programme die Soundkarte benutzen, wenn dies nicht erwnscht ist.

16.9 bersicht eingebauter Bash-Kommandos


Die folgende bersicht fhrt alphabetisch die meisten eingebauten BashKommandos auf, die bisher noch nicht besprochen wurden. Intime Bash-Kenner
6 Das Programm sfxload ist Bestandteil des Pakets awe-drv. Es wird zum Laden von Soundfonts auf Soundkarten der Soundblaster AWE-Familie benutzt.

572

16 Der Kommandointerpreter Bash

werden einige Kommandos vermissen, insbesondere wurde auf die Erluterungen zu den Kommandos getopts und fc verzichtet. getopts ermglicht eine vereinfachte Bearbeitung von Argumenten in Shellskripten, und fc erlaubt die Bearbeitung der Kommandogeschichte mit einem Editor. Bei einigen Kommandos werden nicht alle Optionen erlutert, sodass sich das Nachlesen in der Dokumentation lohnt. Ausfhren von Kommandos aus einer anderen Datei . Dateiname Das Kommando fhrt die in der mit Dateiname spezizierten Datei bendlichen Kommandos aus. Wenn Dateiname ohne Pfad angegeben wird, wird in den Verzeichnissen, die in der Variablen PATH gespeichert sind, nach der betreffenden Datei gesucht. Die Datei muss lesbar, braucht aber nicht ausfhrbar zu sein. Es wird kein neuer Prozess gestartet, um die Kommandos auszufhren. Keine Aktion ausfhren : Das Kommando hat keinen Effekt. Er kann dort eingesetzt werden, wo ein Kommando notwendig ist, aber keine Aktion ausgefhrt werden soll. Beispiel: trap ":" 2 Die Anweisung bewirkt, dass keine Aktion ausgefhrt wird, wenn die Shell das Signal 2 (SIGINT) erhlt. Normalerweise werden Shellskripte durch dieses Signal, das am Terminal durch die Tastenkombination S TRG - C erzeugt wird, abgebrochen. Siehe auch die Kommandos true (S. 876) und false (S. 796). alias Denieren von alternativen Kommandobezeichnungen alias [-p] [Name[=Wert]] Das Kommando deniert durch die Angabe gltiger anderer Kommandos ein neues Kommando. Der Name des neuen Kommandos wird mit Name und die Kommandos, die auszufhren sind, wenn dieses Kommando benutzt wird, mit Wert angegeben. Wert ist in der Regel in Anfhrungszeichen zu setzen, damit er als eine Zeichenkette interpretiert wird. Wenn alias ohne weitere Parameter oder mit dem Parameter -p aufgerufen wird, werden die denierten Aliase ausgegeben. alias "ls=ls - -color=auto" Deniert das Kommando ls so um, dass er das Programm ls mit dem Parameter -color=auto aufruft. Wird der Alias mit zustzlichen Parametern aufgerufen, dann werden diese an die Alias-Denition angehngt. Das Kommando: joe@debian:~$ ls -l bewirkt dann, dass das Programm ls mit den Optionen - -color=auto und -l aufgerufen wird.

16.9 bersicht eingebauter Bash-Kommandos

573

bg Prozesse in den Hintergrund stellen bg [%Jobnummer | PID] Das Kommando bewirkt, dass der mit Jobnummer oder Prozess-ID angegebene Prozess im Hintergrund weiter ausgefhrt wird. bind Verndern und Ausgeben der readline-Konguration bind Tastenfolge:Funktionsname Verbindet die mit Tastenfolge bezeichnete Tastenfolge mit der durch Funktionsname angegebenen Funktion der Readline-Bibliothek. Die hierbei zu verwendende Syntax ist die gleiche wie die in der Datei ~/.inputrc (siehe Kap.: 16.1.5, S. 509) Der gesamte Ausdruck muss als ein Argument bergeben werden. bind -f Dateiname Liest die readline-Kongurationsanweisungen aus der mit Datei bezeichneten Datei. bind Optionen Fhrt abhngig von den angegebenen Optionen die im folgenden beschriebenen Aktionen aus. -l Gibt die Namen aller readline-Funktionen aus. -p Gibt die gegenwrtige Konguration von Verbindungen zwischen Funktionen und Tastenkombinationen aus. Die Ausgabe entspricht der Syntax einer readline-Kongurationsdatei. Alle gegenwrtig nicht benutzten Funktionen sind dabei auskommentiert, sodass sie sich einfach Tastaturkommandos zuordnen lassen. -v Gibt die gegenwrtige Konguration von readline-Variablen in der Syntax der Kongurationsdatei aus. -s Gibt die gegenwrtige Konguration von Verbindungen zwischen Tastenkombinationen und Makros in der Syntax der Kongurationsdatei aus. -r Tastenfolge Entfernt die mit der durch Tastenfolge angegebene Tastenkombination verbundene Funktion. bind "\M-a": "hallo Welt" Deniert das Tastaturmakro hallo Welt und verbindet es mit der Tastenkombination A LT- A. bind -pvs > ~/inputrc_new Schreibt die aktuelle Konguration der Readline-Bibliothek in die Datei .inputrc_new im Home-Verzeichnis.

574

16 Der Kommandointerpreter Bash

builtin Ausfhren eingebauter Shell-Kommandos builtin Kommando [Optionen] builtin fhrt das mit Kommando angegebenen, in die Shell eingebaute Kommando so aus, als wre es direkt angegeben worden. Dadurch ist es mglich, eingebaute Kommandos auch dann noch zu verwenden, wenn ihr Name durch einen Alias oder eine Funktionsdenition anders belegt wurde. command Direktes Ausfhren von Kommandos command [Optionen] Kommando [Kommandooptionen] command fhrt das mit Kommando angegebene Kommando aus, ohne dabei Aliase oder Funktionsdenitionen zu bercksichtigen. Ist das Kommando ls ein Alias, der das Programm ls mit der Option - -color=auto aufruft, so fhrt das Kommando command ls dazu, dass ls ohne diese Option aufgerufen wird. -p Setzt den Wert der Variablen PATH so, dass die wichtigsten Programme gefunden werden. (Er enthlt dann die Verzeichnisse /bin und /usr/bin.) -v Fhrt Kommando nicht aus, sondern gibt an, welches Kommando oder Programm bei Eingabe von Kommando ausgefhrt werden wrde.

declare Eigenschaften von Variablen festlegen declare [Optionen] [Variable[=Wert]] [Variable[=Wert] ...] Das Kommando legt bestimmte Eigenschaften von Variablen fest. Wenn declare ohne Angabe von Parametern oder nur mit der Option -p aufgerufen wird, gibt das Kommando die Namen und Werte aller augenblicklich bekannten Variablen aus. -a Legt fest, dass es sich bei der Variable um eine Feldvariable handelt. -i Legt fest, dass es sich bei der Variablen um eine Integer-Variable handelt. Danach knnen in der Variablen nur noch ganze Zahlen gespeichert werden. Wenn der Variablen eine davon abweichende Zeichenkette zugewiesen wird, wird sie auf den Wert 0 gesetzt. -r Legt fest, dass der Wert der Variablen nicht mehr verndert werden darf. Jeder Versuch, den Wert der Variablen zu ndern, wird mit einer Fehlermeldung quittiert. -x Macht die Variable zu einer Umgebungsvariablen. Das Kommando hat mit dieser Option die gleiche Bedeutung wie export. -p Gibt die Eigenschaften der angegebenen Variablen aus. declare -rx PATH

16.9 bersicht eingebauter Bash-Kommandos

575

Die Variable PATH wird zur Umgebungsvariablen erklrt und darf nicht mehr gendert werden. declare -p a b Gibt die Eigenschaften der Variablen a und b aus. dirs Anzeigen gespeicherter Verzeichnisse dirs [Optionen] Das Kommando zeigt die mit pushd (S. 582) gespeicherten Verzeichnisse an. Darber hinaus kann es sie aus dem Speicher lschen. -c Lscht alle gespeicherten Verzeichnisse aus dem Speicher. -v Zeigt jedes gespeicherte Verzeichnis in einer eigenen Zeile an. Dabei wird angegeben, an welcher Stelle sich das betreffende Verzeichnis im Speicher bendet.

disown Kontrolle ber Prozesse aufgeben disown [Prozess-ID | %Jobnummer] disown entfernt Prozesse, die von der Bash gestartet wurden und von ihr kontrolliert werden, aus der Liste der kontrollierten Prozesse. Sie laufen dann unabhngig von der Bash weiter und knnen nicht mehr mit Kommandos wie fg oder bg beeinusst werden. Wenn weder eine Prozess-ID noch eine Jobnummer angegeben wird, wird der zuletzt angehaltene oder in den Hintergrund gestellte Prozess aus der Liste entfernt. echo Ausgeben von Text echo [Optionen] Text [Text...] Das Kommando gibt den mit Text angegebenen Text auf die Standardausgabe. Es stehen zwei Versionen von echo zur Verfgung: Eine in die Shell eingebaute Version und das Programm /bin/echo aus dem Paket shellutils. Im interaktiven Modus eignet sich echo zum Anzeigen von Variablenwerten. -n Nach Ausgabe des Textes, wird keine neue Zeile begonnen. Diese Option ist hilfreich, wenn mit verschiedenen echo-Kommandos Text in ein und dieselbe Zeile ausgegeben werden soll. -e Erlaubt die Angabe spezieller Zeichen. Das sind u. a.: \a: Erzeugt einen Signalton. \b: Erzeugt ein Rckwrts-Zeichen (Z URCK). \n: Erzeugt eine neue Zeile. \t: Erzeugt einen Tabulator.

576

16 Der Kommandointerpreter Bash

echo $USER Gibt den aktuellen Wert der Variable USER aus. echo $[5*13] Gibt die Zahl 65 aus ( echo * Gibt die Namen aller Dateien und Verzeichnisse im Arbeitsverzeichnis aus. echo -n \\a Achtung Lsst ein Signal erklingen und gibt das Wort Achtung aus. enable Ein- und Ausschalten von eingebauten Kommandos enable [Optionen] [Kommando] Das Kommando schaltet eingebaute Kommandos ein- und aus. Dies ist ntzlich, wenn ein externes Programm an Stelle eines eingebauten Kommandos benutzt werden soll. Wenn enable ohne Parameter aufgerufen wird, werden die Namen aller eingeschalteten Kommandos ausgegeben. Wenn dem Kommando der Name eines eingebauten Kommandos bergeben wird, wird er eingeschaltet. Die Option -n schaltet das angegebene Kommando aus. Ausgeschaltete Kommandos stehen nicht mehr zur Verfgung und knnen auch nicht durch das Kommando builtin ausgefhrt werden. -n Schaltet das angegebene Kommando aus oder gibt die Namen ausgeschalteter Kommandos aus, wenn kein Kommando angegeben wurde. -p Gibt alle eingeschalteten Kommandos aus. -a Gibt alle ein- und ausgeschalteten Kommandos aus. enable -n test Schaltet das eingebaute Kommando test aus. Wird danach das Kommando test eingegeben, sucht die Shell nach einem Programm mit diesem Namen und fhrt es aus. In diesem Fall wrde /bin/test ausgefhrt werden. enable test Stellt das eingebaute Kommando test wieder zur Verfgung. Er wird dann an Stelle eines Programms mit diesem Namen ausgefhrt. eval Interpretieren von Zeichenketten eval [Zeichenkette ...] ).

16.9 bersicht eingebauter Bash-Kommandos

577

Das Kommando interpretiert die angegebene(n) Zeichenkette(n) so, als wren sie direkt als Kommando eingegeben worden. Es werden zunchst die blichen Substitutionsmechanismen angewendet, bevor versucht wird, die Zeichenkette(n) als Kommando auszufhren. Dadurch lsst sich das Durchlaufen eines zustzlichen Substitutionsprozesses erreichen. Wenn beispielsweise die Variable a die Zeichenkette $b enthlt und die Variable b die Zahl 10, dann fhrt das Kommando echo $a dazu, dass $b ausgegeben wird, wohingegen das Kommando eval echo $a zur Ausgabe der Zahl 10 fhren wrde. Bei der Ausfhrung des zweiten Kommandos ersetzt die Shell wie blich die Variable a durch die Zeichenkette $b. Das Kommando eval fhrt dann dazu, dass die Ersetzung ein weiteres Mal stattndet und die durch $b bezeichnete Variable b durch ihren Wert 10 ersetzt wird. exec Ersetzen des Prozesses der Shell exec [Optionen] [Programm] Das Kommando ersetzt den Prozess der laufenden Shell durch das mit Programm angegebene Programm. Normalerweise luft die Shell weiter, wenn sie ein Programm ausfhrt. Deswegen lsst sich ein Programm von ihr kontrollieren. Ein mit exec ausgefhrtes Programm kann hingegen nicht mehr von der Shell kontrolliert werden, weil diese nicht mehr existiert. Das Kommando exec lsst sich sinnvoll dort einsetzen, wo ein Shellskript nur einige Voreinstellungen trifft (Wechsel in das richtige Arbeitsverzeichnis, Setzen von Umgebungsvariablen o. .) und dann ein Programm ausfhrt. In solchen Fllen ist es nicht notwendig, die Shell selbst als Programm weiter auszufhren. Wenn von einer Login-Shell ein Programm mit exec ausgefhrt wird, wird die Sitzung beendet, sobald das ausgefhrte Programm beendet wird. -l In der Argumentliste des auszufhrenden Programms wird dem Namen des Programms ein Minuszeichen vorangestellt. Dadurch wird Programmen signalisiert, dass sie als Login-Prozess gestartet worden sind. Gewhnlich bendet sich der Name eines Programms im nullten Argument. -a Name Das nullte Argument (der Programmname) wird mit dem durch Name angegebenen Namen belegt.

exit Beenden der Shell exit [Rckgabewert] Das Kommando beendet die Shell und liefert den mit Rckgabewert angegebenen Wert an den aufrufenden Prozess zurck. Wenn Rckgabewert nicht angegeben wird, wird der Rckgabewert des zuletzt von der Shell ausgefhrten Kommandos zurckgeliefert.

578

16 Der Kommandointerpreter Bash

export Shell Variablen in Umgebungsvariablen wandeln export [Optionen] [Name[=Wert] ... ] export erklrt Variablen zu Umgebungsvariablen. Den Variablen darf dabei ein Wert zugewiesen werden. Umgebungsvariablen werden in der Prozessumgebung der Shell gespeichert und stehen Kindprozessen zur Verfgung. -n Hebt die Umgebungsvariablen-Eigenschaft der angegebenen Variablen auf. -p Gibt die Namen aller Umgebungsvariablen mit ihren Werten aus. -f Die angegebenen Namen werden nicht als Variablen-, sondern als Funktionsnamen interpretiert. export PATH=:/home/edwin/bin:$PATH Erzeugt einen neuen Wert fr die Variable PATH, der sich aus der Zeichenkette /home/edwin/bin: und dem alten Wert dieser Variablen zusammensetzt, und bewirkt, dass die Variable als Umgebungsvariable gespeichert wird. d () { echo Debian GNU/Linux; }; export -f d; Deniert die Funktion d (die die Zeichenfolge Debian GNU/Linux ausgibt) und exportiert die Funktion in die Prozessumgebung der Shell. fg Prozesse in den Vordergrund stellen fg [%Jobnummer] Das Kommando stellt den durch Jobnummer spezizierten Prozess in den Vordergrund. Wenn keine Jobnummer angegeben wird, wird der zuletzt angehaltene oder mit bg in den Hintergrund gestellte, noch ausgefhrte Prozess in den Vordergrund gebracht. hash Bearbeiten des Zwischenspeichers fr Namen von externen Programmen hash [Optionen] [Programmname] Wenn ein externes Programm aufgerufen wird, durchsucht die Bash die in der Variablen PATH aufgefhrten Verzeichnisse nach dem Programm. Damit dieser Vorgang nicht immer wiederholt werden muss, werden die Pfadnamen der zuletzt ausgefhrten Programme zwischengespeichert. Wenn eine Programmdatei gelscht oder durch eine andere in einem anderen Verzeichnis ersetzt worden ist, kann dies dazu fhren, dass die Bash weiterhin versucht, die alte, nicht mehr existente Datei auszufhren. Das Kommando hash dient dazu, diesen Zwischenspeicher anzuzeigen und zu bearbeiten. Wenn hash ohne Angabe von Parametern aufgerufen wird, wird der gegenwrtige Inhalt des Zwischenspeichers angezeigt. Die Angabe eines Programmnamens fhrt dazu, dass das Programm erneut gesucht und gespeichert wird.

16.9 bersicht eingebauter Bash-Kommandos

579

-r Lscht alle zwischengespeicherten Programmnamen. -p Pfadname Bewirkt, dass der mit Pfadname angegebene Pfad fr das angegebene Programm benutzt wird. Dadurch kann die Verwendung von bestimmten Pfadnamen fr einzelne Programme erzwungen werden.

help Anzeigen der Hilfe help [Zeichenkette ...] Das Kommando gibt einen Hilfetext zu einem oder mehreren mit Zeichenkette bezeichneten Themen aus. Als Themen stehen im wesentlichen die Namen der eingebauten Kommandos zur Verfgung. Wird help ohne Angabe einer Zeichenkette aufgerufen, wird die Kurzsyntax aller eingebauten Kommandos ausgegeben. history Anzeigen und Bearbeiten der Kommandogeschichte history [Optionen] Wenn history ohne Optionen aufgerufen wird, wird die gesamte gespeicherte Kommandogeschichte ausgegeben. Eine Zahl als Parameter bewirkt, dass so viele der letzten Kommandos, wie mit Zahl angegeben, ausgegeben werden. Die Kommandogeschichte wird standardmig in der Datei .bash_history im Home-Verzeichnis oder in der durch die Variable HISTFILE angegebenen Datei gespeichert. -c Lscht die Kommandogeschichte -w [Datei] Schreibt die Kommandogeschichte in die mit Datei angegebenen Datei oder in die Standard-Datei fr die Kommandogeschichte, wenn Datei nicht angegeben wurde. -r [Datei] Liest die Kommandos aus Datei (oder der Standarddatei) und hngt sie an die Kommandogeschichte an. -n [Datei] Hngt alle Kommandos aus Datei (oder der Standarddatei), die noch nicht gelesen wurden, an die Kommandogeschichte an. -a [Datei] Speichert die noch nicht gespeicherten Kommandos in Datei oder in der Standarddatei. -s Zeichenfolge Hngt die mit Zeichenfolge spezizierte Zeichenfolge an die Kommandogeschichte an. history 15 Gibt die letzten 15 Kommandos aus. history -a Speichert alle neuen, noch nicht gesicherten Kommandos in der Standarddatei fr die Kommandogeschichte. Sie stehen dann anderen Instanzen der Bash zur Verfgung. history -n

580

16 Der Kommandointerpreter Bash

Liest alle Kommandos, die noch nicht aus der Standarddatei fr die Kommandogeschichte gelesen wurden, und hngt sie an die Kommandogeschichte an. Damit knnen Kommandos benutzt werden, die in einer anderen Instanz der Bash eingegeben wurden und dort mit der Option -a oder durch Verlassen der Bash gespeichert wurden. jobs Anzeigen der von der Bash kontrollierten Prozesse jobs [Optionen] [Jobnummer ...] Das Kommando zeigt die gegenwrtig von der Bash kontrollierten und im Hintergrund ausgefhrten oder angehaltenen Prozesse an und gibt fr jeden Prozess die Jobnummer, den Status sowie den Namen des zugehrigen Programms aus. Wenn dem Kommando mit Jobnummer Nummern kontrollierter Prozesse bergeben werden, werden die Informationen nur fr die mit diesen Jobs verbundenen Prozesse ausgegeben. -l -p -r -s Gibt zustzlich die Prozess-IDs der Prozesse aus. Gibt nur die Prozess-IDs aus. Gibt nur Informationen fr im Hintergrund laufende Prozesse aus. Gibt nur Informationen fr angehaltene Prozesse aus.

kill Beenden von Prozessen kill [-Signal] PID | %Jobnummer [PID | %Jobnummer ...] kill sendet das mit Signal bezeichnete Signal an den oder die Prozess(e) mit der oder den durch PID bezeichneten Prozess-ID(s). Wenn kein Signal angegeben ist, sendet kill das Signal SIGTERM (15), was in dazu fhrt, dass der Prozess, der das Signal erhlt, sich geordnet beendet. Signale werden mit ihrem Namen oder mit ihrer Nummer angegeben. Neben dem Programm /bin/kill steht ein in die bash eingebautes Kommando gleichen Namens zur Verfgung, das normalerweise nach Eingabe dieses Kommandos aufgerufen wird und mit dem es auch mglich ist, Job-Nummern anstatt von ProzessIDs anzugeben. Job-Nummern muss ein Prozentzeichen vorangestellt sein, damit sie von Prozess-IDs unterschieden werden knnen. Die wichtigsten Signale sind: SIGHUP (1): Auflegen. Fhrt bei vielen Prozessen dazu, dass sie ihre Konguration neu lesen. Andere beenden sich. SIGINT (2): Unterbrechung. Hat die gleiche Wirkung wie die Eingabe von S TRG - C. SIGKILL (9): Unbedingtes sofortiges Beenden des Prozesses. Dem Prozess wird keine Gelegenheit mehr gegeben, aufzurumen oder Daten zu sichern. SIGTERM (15): Beenden. Der Prozess wird aufgefordert, sich geordnet zu beenden. SIGCONT (18): Der Prozess wird wieder ausgefhrt, wenn er zuvor angehalten war.

16.9 bersicht eingebauter Bash-Kommandos

581

SIGSTOP (20): Der Prozess wird angehalten. -l Gibt die dem Prozess bekannten Signale und ihre Namen aus. kill 257 269 Beendet die Prozesse mit den Prozess-IDs 257 und 269. kill -9 230 Beendet den Prozess mit der Prozess-ID 230 sofort brutal. kill %1 Beendet den Prozess mit der Jobnummer 1. let Ausfhren arithmetischer Berechnungen let Ausdruck [Ausdruck ...] Das Kommando stellt neben der in Kapitel 16.7.4, S. 547 beschriebenen Methode eine weitere Mglichkeit zur Durchfhrung ganzzahliger arithmetischer Berechnungen dar, mit denselben Beschrnkungen. Der Vorteil liegt in einer leichter lesbaren Schreibweise. Die verfgbaren Operatoren sind mit dem Kommando help let oder in der Info-Dokumentation zur Bash abrufbar. let a=2+2 Weist der Variablen a den Wert 4 zu. let a=(2+2)*30 Weist der Variablen a den Wert 120 zu. let a=$b*$b+$c*$c Weist der Variablen a die Summe der Quadrate der Variablen b und c zu. local Deklarieren lokaler Variablen local Name[=Wert] [Name=[Wert] ... ] Innerhalb von Funktionsdenitionen bewirkt dieses Kommando, dass die mit Name bezeichnete(n) Variable(n) nur innerhalb der betreffenden Funktion gltig sind. Es knnen dann Variablen gleichen Namens auerhalb von Funktionen oder in anderen Funktionen benutzt werden, ohne dass sich deren Wert durch die Zuweisung von Werten an die als lokal deklarierte Variable innerhalb der betreffenden Funktion ndert. Auerhalb von Funktionsdenitionen fhrt das Kommando zu einer Fehlermeldung. a () { i=1; }; i=10; a; echo $i;

582

16 Der Kommandointerpreter Bash

Gibt die Zahl 1 aus, weil die Variable i durch den Aufruf der Funktion a mit diesem Wert belegt wird. a () { local i=1; }; i=10; a; echo $i Gibt die Zahl 10 aus. Die globale Variable i wird durch den Aufruf der Funktion a nicht verndert, weil die Variable i dort als lokal deklariert ist. logout Beenden einer Login-Shell logout Das Kommando beendet eine Login-Shell. In einer gewhnlichen Shell wird eine Fehlermeldung ausgegeben. popd Wechseln in ein gespeichertes Verzeichnis popd [-n] Das Kommando wechselt das Arbeitsverzeichnis in das zuletzt mit pushd (S. 582) gespeicherte Verzeichnis. Dabei wird das Verzeichnis aus dem Speicher gelscht und das davor mit pushd gespeicherte Verzeichnis als das zuletzt besuchte Verzeichnis markiert. Die wiederholte Eingabe von popd fhrt dazu, dass durch alle Verzeichnisse gewechselt wird, die zuvor mit pushd gespeichert wurden, bis keine Verzeichnisnamen mehr vorhanden sind. Die Option -n bewirkt, dass das zuletzt gespeicherte Verzeichnis gelscht wird, ohne in dieses zu wechseln. pushd Speichern eines Verzeichnisses pushd [Verzeichnis] [-n] Die Bash verfgt ber einen besonderen Speicher fr die zuletzt benutzten Arbeitsverzeichnisse, der mit den Kommandos pushd, popd und dirs benutzt und bearbeitet werden kann. Die Kommandos stellen eine Alternative zum Kommando cd dar. Wenn pushd mit dem Namen eines Verzeichnisses als Argument aufgerufen wird, wird in das angegebene Verzeichnis gewechselt und das alte Arbeitsverzeichnis als das zuletzt besuchte Verzeichnis gespeichert. Wenn pushd danach wieder mit der Angabe eines Verzeichnisses aufgerufen wird, passiert dasselbe. Allerdings wird dann das alte gespeicherte Verzeichnis als das vorletzte besuchte Arbeitsverzeichnis markiert und das jetzt vorherige Verzeichnis als das letzte Arbeitsverzeichnis gespeichert. Mit dem Kommando popd kann dann in die gespeicherten Verzeichnisse gewechselt werden, ohne dass man sich deren Namen merken muss. Die Option -n bewirkt, dass das angegebene Verzeichnis gespeichert wird, aber nicht in dieses Verzeichnis gewechselt wird. Wird pushd ohne Angabe eines Verzeichnisses aufgerufen, wird in das zuletzt mit pushd gespeicherte Verzeichnis gewechselt und das vorher Arbeitsverzeichnis gespeichert.

16.9 bersicht eingebauter Bash-Kommandos

583

read Zeilen von der Standardeingabe lesen read [Optionen] [Variablenname ...] read liest Zeilen von der Standardeingabe und weist die darin bendlichen Zeichen der oder den mit Variablenname angegebenen Variablen zu. Dabei wird das erste Wort der ersten Variable, das zweite Wort der zweiten Variable usw. zugewiesen. Wrter werden durch die in der Variablen IFS gespeicherten Zeichen getrennt (normalerweise Leerzeichen und Tabulatoren). Wenn weniger Variablennamen angegeben sind, als Wrter gelesen werden, werden alle Wrter, die sich keiner Variablen zuweisen lassen, in der letzten angegebenen Variablen gespeichert. Falls kein Variablenname angegeben ist, wird die gelesene Zeile in der Variablen REPLY gespeichert. Das Kommando liefert den Rckgabewert 0, wenn beim Lesen kein Dateiende (EOF) festgestellt wurde. -p Zeichenkette Stellt die mit Zeichenkette spezizierte Zeichenkette als Prompt dar, bevor gelesen wird. -e Zum Einlesen der Zeile wird readline benutzt. D. h., bei der Eingabe stehen alle Funktionen zur Verfgung, die auch zur Eingabe von Kommandos mit der Bash vorhanden sind. -a Feldvariable Die gelesenen Wrter werden den Elementen der mit Feldvariable spezizierten Feldvariable zugeordnet. Dabei wird das erste Wort dem ersten Element (Index 0) zugeordnet. read -p "Daten lschen? " antwort Liefert den Prompt Daten lschen? und speichert die Antwort in der Variablen antwort. while true; do read -e -p "Eingabe: " kommando; eval $kommando; done Die Schleife stellt eine Shell in der Shell dar. Es werden Kommandos gelesen und dann mit dem Kommando eval wie direkt eingegebene Kommandos ausgefhrt. Die Schleife kann durch S TRG - C abgebrochen werden. { while read zeile; do echo $zeile; done; } < liste.txt Liest zeilenweise Daten aus der Datei liste.txt und gibt sie mit dem Kommando echo aus. Die Schleife wird unterbrochen, sobald keine Zeichen mehr gelesen werden knnen, weil read dann einen von Null abweichenden Rckgabewert liefert. Sie ist geklammert, weil die zu lesende Datei nicht bei jedem read-Kommando neu geffnet werden soll. readonly Variablen als schreibgeschtzt markieren readonly [Optionen] [Variablenname ...]

584

16 Der Kommandointerpreter Bash

Das Kommando markiert die mit Variablenname bezeichnete(n) Variable(n) als nicht vernderbar. Er hat damit die gleiche Wirkung wie das Kommando declare mit der Option -r. Wenn readonly mit der Option -p oder ohne Parameter aufgerufen wird, werden die Namen aller nicht vernderbaren Variablen mit ihren Werten ausgegeben. return Beenden von Funktionen return [Rckgabewert] Das Kommando bricht die Ausfhrung einer Funktion ab und springt an die Stelle, von der aus die Funktion aufgerufen wurde. Als Rckgabewert der Funktion wird dabei entweder der Rckgabewert des zuletzt ausgefhrten Kommandos oder der mit Rckgabewert angegebene Wert bergeben. set Optionen und Parameter der Shell setzen set [Optionen] [Parameter ...] Mit dem Kommando set lassen sich zur Laufzeit der Bash alle Optionen und Parameter setzen und verndern, die auch beim Aufruf der Bash angegeben werden knnen. Das Kommando set -x versetzt die Bash in den Zustand, den sie htte, wenn sie mit der Option -x aufgerufen worden wre. Optionen werden mit set an- und ausgeschaltet. Optionen, die wie blich mit einem vorangestellten Minuszeichen angegeben werden, schalten die betreffende Option ein. Optionen, die mit einem Pluszeichen angegeben werden, schalten die betreffende Option aus. Die aktuell eingeschalteten Optionen sind in der Variablen gespeichert und knnen mit folgendem Kommando eingesehen werden: joe@debian:~$ echo $Alle mit dem Kommando set angegebenen Zeichenketten, die keine Option sind (nicht mit einem Minus- oder Pluszeichen beginnen), fhren dazu, dass die Parametervariablen der Shell (Variablen 1, 2, 3 . . . ) neu gesetzt werden. -a | -o allexport Alle neu erzeugten oder vernderten Variablen werden automatisch exportiert (siehe export (S. 577)). -b | -o notify Bewirkt, dass Meldungen ber Statusnderungen von Prozessen, die im Hintergrund ausgefhrt werden, sofort ausgegeben werden. Normalerweise geschieht dies erst, bevor ein neuer primrer Prompt ausgegeben wird, um laufende Ein- oder Ausgaben nicht zu stren. -e | -o errexit Die Shell wird beendet, sobald ein Kommando einen von Null abweichenden Rckgabewert liefert. -h | -o hashall Schaltet die Zwischenspeicherung von Dateinamen ein (siehe auch hash (S. 578)). -k | -o keyword Alle Zuweisungen von Werten zu Variablen fhren dazu, dass die entsprechende Variable exportiert wird.

16.9 bersicht eingebauter Bash-Kommandos

585

-m | -o monitor Schaltet die Prozesskontrolle ein. -n | -o noexec Kommandos werden gelesen, aber nicht ausgefhrt. Dadurch kann die syntaktische Richtigkeit von Shellskripten geprft werden, ohne dass sie ausgefhrt werden mssen. Einige Fehler lassen sich jedoch erst dann feststellen, wenn die Kommandos tatschlich ausgefhrt werden. -o [Option] ber diese Option lassen sich zustzliche mit Option anzugebende Einstellungen vornehmen. Wenn -o keine weitere Option nachgestellt ist, wird ausgegeben, welche Optionen ein- bzw. ausgeschaltet sind. history Schaltet die Kommandogeschichte ein. emacs Schaltet die Funktionen zur Bearbeitung der Kommandozeile in den emacs-Modus. ignoreeof Bewirkt, dass die Shell nicht beendet wird, wenn sie das Ende ihrer Eingabedatei bemerkt (nur im interaktiven Modus von Bedeutung). posix Alle Eigenschaften der Bash, die normalerweise vom POSIX-Standard abweichen, werden an diesen angepasst. vi Schaltet die Funktionen zur Bearbeitung der Kommandozeile in den viModus (Siehe dazu die Info-Dokumentation zur Bash.) -u | -o nounset Wenn auf den Wert einer Variablen zugegriffen wird, die noch nicht deniert wurde, wird ein Fehler ausgegeben. Normalerweise wird die Variable in einem solchen Fall wie eine existierende leere Variable behandelt. -v | -o verbose Die Kommandozeilen werden ausgegeben, bevor sie ausgefhrt werden. -x Auszufhrende Kommandos werden ausgegeben, bevor sie ausgefhrt werden und nachdem alle Ersetzungen durchgefhrt worden sind. Diese Option ist ein wichtiges Mittel zum Finden von Fehlern in Shellskripten. Sie ermglicht zu berprfen, welche Werte tatschlich fr Variable und infolge anderer Substitutionen eingesetzt werden. -C Mit dieser Option kann die Ausgabe von Kommandos nicht in existierende Dateien umgeleitet werden. Dadurch kann man sich vor dem versehentlichen berschreiben von Dateien schtzen. set hund katze hamster Weist den Parametervariablen die Zeichenketten hund (Variable 1), katze (Variable 2) und hamster (Variable 3) zu. Die brigen Parametervariablen (4,5 usw.) werden gelscht. a=1; set -x; echo $a; set +x; Der Variablen a wird der Wert 1 zugewiesen. Danach wird durch set -x festgelegt, dass Kommandos ausgegeben werden sollen, bevor sie ausgefhrt werden. Deswegen wird die Zeile echo 1 ausgegeben, bevor das echo-Kommando ausgefhrt wird. shift Verschieben der Parametervariablen shift [Anzahl]

586

16 Der Kommandointerpreter Bash

Das Kommando verschiebt die Parametervariablen um Anzahl nach links. Wenn Anzahl nicht angegeben ist, wird um eine Variable verschoben. Das bedeutet, dass die Variable 1 nach der Ausfhrung von shift den Wert hat, den vorher die Variable 2 hatte, und die Variable 2 den Wert der Variablen 3 bekommt usw. Der ursprngliche Wert der Variablen 1 geht dabei verloren. Dadurch lassen sich auch Parameter ansprechen, die sich durch die neun Parametervariablen nicht benutzen lassen. Das folgende Beispiel soll dies verdeutlichen:
#! /bin/bash while [ -n "$1" ] do echo $1 shift; done;

Die Schleife wird so lange ausgefhrt, wie die Variable 1 nicht leer ist. In der Schleife wird zunchst der Inhalt der Variablen 1 ausgegeben, bevor alle Parametervariablen um eine Stelle nach links verschoben werden. Der alte Wert der Variablen 1 geht dabei verloren, und sie hat danach den Wert, den vorher die Variable 2 hatte. Dies wird so lange wiederholt, bis die Variable 1 keinen Wert mehr hat. Auf diese Weise knnen innerhalb der Schleife Aktionen mit allen Parametern durchgefhrt werden. shopt Zustzliche Optionen der Bash setzen shopt [Option] [Optionsname ...] Durch das Kommando shopt lassen sich zustzliche Einstellungen vornehmen, die ber die Mglichkeiten des set-Kommandos hinausgehen. Wenn shopt ohne die Angabe von Parametern aufgerufen wird, gibt das Kommando die Namen der ein- und ausgeschalteten Optionen sowie ihren Status aus. -s Schaltet die mit Optionsname bezeichnete(n) Optione(n) ein oder gibt die Namen der eingeschalteten Optionen aus, wenn kein Name angegeben wurde. -u Schaltet die mit Optionsname bezeichnete(n) Optione(n) aus oder gibt die Namen der ausgeschalteten Optionen aus, wenn kein Name angegeben wurde. Als Optionsnamen stehen die folgenden Bezeichner zur Verfgung: cdable_vars Wenn die Option eingeschaltet ist, interpretiert die Bash Argumente fr das Kommando cd, die nicht Namen von Verzeichnissen entsprechen, als Variablennamen und versucht, in das in der betreffenden Variable gespeicherte Verzeichnis zu wechseln. Beispiel: joe@debian:~$ docs=/usr/share/doc; shopt -s cdable_vars; cd docs Hier wird durch das cd-Kommando in das Verzeichnis /usr/share/doc gewechselt, weil der Name dieses Verzeichnisses in der Variablen docs gespeichert wurde. Auf diese Art lassen sich Abkrzungen fr hug besuchte Verzeichnisse denieren. (Falls das Verzeichnis docs jedoch im Arbeitsverzeichnis existiert, wrde durch das Kommando in dieses Verzeichnis gewechselt werden.)

16.9 bersicht eingebauter Bash-Kommandos

587

cdspell Bewirkt, dass Tippfehler beim cd-Kommando automatisch korrigiert werden, sofern mglich. checkhash Bevor ein Programm ausgefhrt wird, dessen Name zwischengespeichert wurde (siehe hash (S. 578)), berprft die Shell, ob die entsprechende Programmdatei noch existiert und ignoriert den Zwischenspeicher, falls nicht. cmdhist Mit der Option werden Kommandos, die aus mehreren Eingabezeilen bestehen, in der Kommandogeschichte in einer Zeile gespeichert. Dadurch lassen sie sich einfacher in der richtigen Reihenfolge wiederholen. dotglob Bewirkt, dass bei der Dateinamenerweiterung auch solche Dateinamen bercksichtigt werden, die mit einem Punkt beginnen.

source Ausfhren von Kommandos aus einer anderen Datei Das Kommando hat die gleiche Bedeutung wie das Punkt-Kommando. suspend Anhalten der Shell suspend [-f] Das Kommando hlt die Shell so lange an, bis sie das Signal SIGCONT (Nummer 18) erhlt. Die Option -f erzwingt das Anhalten einer Login-Shell, was normalerweise nicht mglich ist. trap Abfangen und Behandeln von Signalen trap [Optionen] "Kommandos" [Signal ...] Mit trap wird festgelegt, wie die Shell sich verhalten soll, wenn sie bestimmte Signale erhlt. So kann es sinnvoll sein, die Unterbrechung von Skripten durch den Benutzer whrend kritischer Phasen zu verhindern oder vor einer nicht-regulren Beendigung noch Aufrumarbeiten durchzufhren. Das Kommando bewirkt, dass die mit Kommandos angegebenen Kommandos ausgefhrt werden, sobald das oder eines der mit Signal angegebenen Signal(e) empfangen werden. Das Argument Kommandos muss dabei als ein Argument bergeben werden, das heit, es muss in Anfhrungszeichen stehen, wenn es aus mehr als einem Wort besteht. Signale knnen durch ihren Namen oder durch ihre Nummer angegeben werden. Die Namen und Nummern einiger wichtiger Signale sind bei dem Kommando kill (S. 580) beschrieben. Wenn trap ohne Argumente oder mit der Option -p aufgerufen wird, wird ausgegeben, welche Kommandos bereits mit welchen Signalen assoziiert wurden. -l Es werden die bekannten Signalnamen und ihre Nummern ausgegeben. trap : 2

588

16 Der Kommandointerpreter Bash

Bewirkt, dass beim Auftreten des Signals 2 (SIGINT) keine Aktion (Kommando :) ausgefhrt wird. Ein Shellskript wird nach diesem Kommando durch die Tastenkombination S TRG - C nicht abgebrochen. trap "rm $tmpfiles; echo Ende; exit 1" SIGTERM Sobald die Shell das Signal SIGTERM erhlt, werden alle Dateien gelscht, deren Namen in der Variablen tmples gespeichert sind. Danach wird die Meldung Ende ausgegeben und die Shell mit dem Rckgabewert 1 beendet. type Anzeigen des Typs eines Kommandos type [Optionen] Kommando [Kommando ...] Mit dem Kommando ndet man heraus, um was fr einen Typ es sich bei einem bestimmten Kommando handelt. Unterschieden werden die folgenden Typen: le Externe Kommandos, die als ausfhrbare Dateien vorliegen. function In vorhergehenden Kommandos denierte oder ber Umgebungsvariablen importierte Shell-Funktionen. alias Kommandos, die durch das Kommando alias (S. 572) deniert wurden. builtin In die Shell eingebaute Kommandos. keyword Schlsselwrter, die zur Ablaufsteuerung benutzt werden, wie for (S. 554) oder while (S. 554). -t | -type Es wird nur ein Wort zur Beschreibung des Typs ausgegeben. -p | -path Gibt nur den Namen der auszufhrenden Datei aus, falls das angegebene Kommando zum Aufruf eines externen Programms fhrt. -a | -all Gibt alle Typen des Kommandos aus. Der tatschlich benutzte Typ wird zuerst ausgegeben. type alias for Gibt die Information aus, dass alias ein eingebautes Shell-Kommando ist und for ein Schlsselwort. alias ls="ls -la"; type -a ls Gibt die Information aus, dass der Befeh ls ein Alias fr ls -la ist und dass ls als ausfhrbare Datei /bin/ls existiert. ulimit Einschrnken von Systemressourcen ulimit [Optionen] Das Kommando ulimit stellt die Schnittstelle der Shell zu der Mglichkeit des Betriebssystems dar, Systemressourcen fr bestimmte Benutzer oder Prozesse zu beschrnken. Dabei wird zwischen harten und weichen Beschrnkungen unterschieden.

16.9 bersicht eingebauter Bash-Kommandos

589

Harte Beschrnkungen knnen von gewhnlichen Benutzern nicht aufgehoben werden. Weiche Beschrnkungen knnen verndert werden, solange sie den Wert der entsprechenden harten Beschrnkung nicht berschreiten. Entscheidend ist fr Programme die weiche Beschrnkung. Wird die Anzahl der Dateien, die gleichzeitig von einem Prozess geffnet sein drfen, auf den Wert 20 (weich) und den Wert 50 (hart) beschrnkt, so kann kein Programm mehr als 20 Dateien gleichzeitig ffnen. Der Wert lsst sich in diesem Fall jedoch bis auf den Wert von 50 vom Benutzer erhhen. Die durch ulimit gesetzten Einschrnkungen gehren ebenso wie Umgebungsvariablen zur Prozessumgebung. Sie vererben sich auf alle Kindprozesse. Durch diesen Mechanismus ist es mglich, mit dem Kommando in der Kongurationsdatei /etc/prole globale Beschrnkungen einzurichten, die fr alle Benutzer gelten und von diesen nicht aufgehoben werden knnen. ulimit kann zum Anzeigen und zum Verndern von Beschrnkungen benutzt werden. Wenn keine Ressource durch eine entsprechende Option ausgewhlt wurde, bezieht sich das Kommando auf die maximale Gre von Dateien. Wird keine Gre angegeben, wird der momentane Wert der weichen Beschrnkung fr die ausgewhlte Ressource angezeigt. Wenn ein Wert angegeben wird, werden standardmig harte und weiche Beschrnkungen auf diesen Wert gesetzt. Zulssige Werte fr Beschrnkungen sind Zahlen, wobei die Einheiten abhngig von der betreffenden Ressource sind oder das Wort unlimited, wodurch eine Beschrnkung aufgehoben wird, sofern dies nicht durch eine harte Begrenzung verboten ist. -H -S -a -c Setzt oder zeigt die harte Beschrnkung fr die ausgewhlte Ressource an. Setzt oder zeigt die weiche Beschrnkung fr die ausgewhlte Ressource an. Gibt alle geltenden Beschrnkungen aus. [Gre] Legt die maximale Gre von core-Dateien7 in mit Gre angegebenen Blcken fest. Ein Block entspricht meist 1024 Byte. Wenn Blcke nicht angegeben ist, wird die gegenwrtige Beschrnkung angezeigt. [Gre] Legt die maximale Gre von ausfhrbaren Programmen fest, den diese im Hauptspeicher belegen drfen. Die Einheit fr Gre ist Kilobyte. [Gre] Legt die Gre von Dateien fest, die nicht berschritten werden darf. Gre wird in Blcken angegeben (entspricht meist 1024 Byte). [Anzahl] Legt die maximale Anzahl von Dateien, die gleichzeitig von einem Prozess geffnet sein drfen, fest. [Gre] Legt die maximale Gre des Zwischenspeichers von Pipes in Blcken mit einer Gre von 512 Byte fest. [Zeit] Legt die maximale Menge an Prozessorzeit, die ein Programm verbrauchen darf, fest. Zeit wird in Sekunden angegeben. [Anzahl] Legt die maximale Anzahl von Prozessen fest, die ein Benutzer gleichzeitig ausfhren darf.
7

-d -f -n -p -t -u

Diese Dateien werden in der Regel erzeugt, wenn ein Programm abstrzt. Sie dienen dazu, den Grund fr den Absturz herauszunden und knnen gelegentlich ziemlich gro werden. Fr die meisten Benutzer uninteressant.

590

16 Der Kommandointerpreter Bash

-v [Gre] Legt die Menge des pro Prozess verfgbaren virtuellen Speichers fest.

umask Setzen von Standard-Dateiberechtigungen umask [-S] [Berechtigung] ber das Kommando umask wird dem Betriebssystem mitgeteilt, mit welchen Rechten Dateien angelegt werden. Wenn Berechtigung nicht angegeben wird, wird die gegenwrtige Einstellung ausgegeben. Dies erfolgt in symbolischer Form, wenn die Option -S benutzt wurde. Wie bei dem Kommando chmod (S. 782) knnen Berechtigungen bei umask in numerischer oder in symbolischer Form angegeben werden. Es sind dabei die gleichen Spezikationen erlaubt wie bei chmod. Diese Einstellung gehrt ebenso wie die mit ulimit vorgenommenen Einstellungen oder Umgebungsvariablen zur Prozessumgebung, die auf Kindprozesse vererbt wird. Eine umask-Anweisung in der Datei /etc/prole hat zur Folge, dass die damit festgelegte Einstellung als Voreinstellung fr alle Prozesse gilt, die von Benutzern gestartet werden, die eine Login-Shell verwenden, die diese Datei verwendet. Benutzer drfen die mit umask vorgenommenen Einstellungen verndern. Wenn die Berechtigungen in numerischer Form angegeben werden sollen, muss der gewnschte Wert vom Wert 777 abgezogen werden (Maske). 777 entspricht der Berechtigung zum Lesen, Schreiben und Ausfhren von Dateien fr Besitzer, Gruppe und Andere; die zugehrige Maske ist 000. Bei der Erzeugung von Dateien wird das Recht zum Ausfhren standardmig nicht gesetzt, auch wenn dies mit umask eingestellt worden ist. Diese Einstellung hat aber bei der Erzeugung von Verzeichnissen Bedeutung, weil hier das Recht zum Ausfhren notwendig ist, um in dem Verzeichnis zu arbeiten. umask 022 Bewirkt, dass Dateien standardmig mit den Rechten zum Lesen, Schreiben und Ausfhren fr den Besitzer und mit den Rechten zum Lesen und Ausfhren fr Mitglieder der Gruppe und andere Benutzer erzeugt werden (755). umask u=rwx,g=rwx,o= Dateien werden mit den Rechten zum Ausfhren, Lesen und Schreiben fr den Besitzer und die Mitglieder der Gruppe erzeugt. Andere Benutzer bekommen keine Rechte an neu erzeugten Dateien. umask g-w Die Einstellung, dass Mitglieder der Gruppe neu erzeugte Dateien lesen drfen, wird aufgehoben. Alle anderen Einstellungen bleiben unverndert.

16.9 bersicht eingebauter Bash-Kommandos

591

unalias Aufheben von Alias-Denitionen unalias [-a] [Name ...] Das Kommando hebt die mit Name angegebene(n) Alias-Denition(en) auf. Sie stehen danach nicht mehr zur Verfgung. Die Option -a bewirkt, dass alle AliasDenitionen aufgehoben werden. unset Aufheben von Variablen- oder Funktionsdenitionen unset [Option] [Name ...] Das Kommando lscht die mit Name angegebene(n) Variable(n). Die Option -f bewirkt, dass Name als Funktionsname interpretiert wird. Es wird dann die entsprechende Funktionsdenition aufgehoben. wait Auf die Beendigung eines Prozesses warten wait Prozess-ID | %Jobnummer Es wird so lange gewartet, bis der durch Prozess-ID oder Jobnummer angegebene Prozess beendet ist. Bei der Verwendung von Jobnummern muss diesen ein Prozentzeichen vorangestellt sein. Der Prozess, auf den gewartet werden soll, muss von der Shell gestartet worden sein, in welcher das wait-Kommando benutzt wird. Der Rckgabewert von wait entspricht dem Rckgabewert des Prozesses, auf den gewartet wurde.

17 Debian GNU/Linux im Netz

17.1 Einleitung und Grundlagen


Was ist ein Netz? Zunchst nicht mehr als ein Wirrwarr von Kabeln und Gerten, die alle irgendwie miteinander verbunden sind. Im Falle des Internets handelt es sich sogar um ein ziemlich groes Wirrwarr. Es ist klar, dass es innerhalb eines Netzes eine gewisse Ordnung geben muss, damit die Kommunikation zwischen den Gerten groenteils, aber nicht nur Rechnern berhaupt funktioniert. Hierzu werden Protokolle benutzt, die bestimmen, wie beispielsweise Absender und Empfnger von Daten adressiert werden oder wie Rechner auf bestimmte Anfragen zu reagieren haben. Es gibt mehrere Netzprotokolle, die miteinander nicht vertrglich sind. Unter anderem aufgrund der Verbreitung des Internets haben sich jedoch die Internet-Protokolle in vielen Bereichen durchgesetzt. Diese Protokolle werden unter Linux/UNIX standardmig als Netzprotokolle eingesetzt, weswegen sich Linux/UNIX-Betriebssysteme besonders fr Aufgaben im Internet eignen. Nach zwei alten und wichtigen Protokollen werden die Internet-Protokolle als TCP/IP (Transmission Control Protocol/Internet Protocol) bezeichnet. In diesem Kapitel werden einige Grundlagen der Internet-Protokolle beschrieben. 17.1.1 Interfaces und Adressen Ein Rechner muss auf irgendeine Weise an ein Netz angeschlossen werden. Hierzu dient eine Ethernetkarte, eine WLAN-Karte, ein Modem oder eine ISDN-Karte. Einen solchen Anschluss bezeichnet man gemeinhin als Netzkarte, Netzinterface oder Netzadapter. Damit das Betriebssystem mit dem Gert umgehen kann, das den Anschluss zur Verfgung stellt, bedarf es eines Treibers, beispielsweise eines Hardwaretreibers fr eine bestimmte Ethernetkarte. Das Betriebssystem kann dann Datenpakete ber das Interface empfangen oder versenden. Beim Versenden der Daten muss feststehen, an welchen Rechner die Daten gesendet werden sollen. Ebenso sollte ein Rechner wissen, ob Daten, die er empfngt, tatschlich fr ihn bestimmt sind. Hierzu verwendet man Adressen. Im Internet hat

594

17 Debian GNU/Linux im Netz

jeder Rechner eine eindeutige Adresse, die es ermglicht, Daten an diesen Rechner zu senden. Wenn Sie sich mit Ihrem Rechner zuhause in das Internet einwhlen, bekommen Sie die Adresse Ihres Rechners in der Regel von Ihrem Internet-Provider zugewiesen. Genaugenommen ist es nicht der Rechner, sondern das Interface (die Karte), dem eine Adresse zugeordnet ist. Es ist durchaus mglich, dass ein Rechner sowohl ber eine Ethernetkarte als auch eine ISDN-Verbindung verfgt. Er hat dann zwei Interfaces, und jedes dieser Interfaces hat eine eigene Adresse. Die Methode, wie Daten von einem Rechner zu einem anderen bertragen werden, ist abhngig von der Art der Verbindung, die zwischen den Rechnern besteht. In einem Ethernet werden Daten anders bertragen als ber eine Telefonleitung oder eine Satellitenverbindung. Groe Netze wie das Internet benutzen viele unterschiedliche Verfahren, Daten zu bertragen. Stellen Sie sich vor, Sie haben von zuhause eine Einwahlverbindung ber einen Internetprovider aufgebaut und laden eine Datei von einem Rechner in einer US-amerikanischen Universitt herunter. Dabei knnte es sein, dass die Daten zunchst ber das Ethernet im Fachbereich der Universitt, dann ber das FDDI-Netz der Universitt, weiter ber ein ATM-Netz, danach ber Satellit, wieder ber ein ATM-Netz in Europa zu Ihrem Provider und schlielich ber ein Telefonkabel zu Ihnen geschickt werden. Trotz der unterschiedlichen Verfahren, die dabei zum Einsatz kommen, werden immer dieselben Daten mit denselben Adressen verschickt. Alle beteiligten Stationen mssen diese Adressen interpretieren knnen, um die Daten in der richtigen Richtung weiterzuschicken. Das zu diesem Zweck eingesetzte Protokoll ist das Internet Protocol (IP) nach RFC 791. Demzufolge spricht man bei Rechneradressen auch von IP-Adressen im Gegensatz beispielsweise zu Ethernetadressen, die lediglich fr den Datentransport im Ethernet von Bedeutung sind. Internet-Adressen bestehen aus vier Zahlen zwischen 0 und 255. blicherweise werden sie mit Punkten zwischen den einzelnen Zahlen notiert, beispielsweise 18.181.0.311. Man nennt diese Notation Dotted Quad Notation. Es gibt eine Reihe von IP-Adressen, an die im Internet keine Daten weitergeleitet werden. Solche Adressen eignen sich deswegen dafr, in privaten Netzen eingesetzt zu werden, weil ihre Verwendung nicht zu Konikten fhrt, wenn sie an einer anderen Stelle des Internets ebenfalls eingesetzt werden. Die Verwendung dieser privaten Adressen muss im Gegensatz zu allen anderen Adressen nicht registriert werden. Die folgenden IP-Adressen sind fr diesen Zweck reserviert: 10.0.0.0 10.255.255.255 172.16.0.0 172.31.255.255 192.168.0.0 192.168.255.255
1 Daraus ergibt sich, dass theoretisch rund 4,3 Milliarden Internetadressen zur Verfgung stehen. In Wirklichkeit sind es aber weniger, weil eine groe Zahl von Adressen fr besondere Zwecke reserviert ist oder aus technischen Grnden nicht zur Verfgung steht. Aufgrund des Wachstums des Internets hat das dazu gefhrt, dass Internetadressen knapp geworden sind. Dies ist einer der Grnde dafr, dass ein neues Internet-Protokoll (IPv6) entworfen wurde, das eine grere Anzahl von Adressen bereitstellt. Zur Zeit wird IPv6 erst wenig benutzt.

17.1 Einleitung und Grundlagen

595

Wenn Sie ein lokales Netz (Local Area Network einer Universitt, Firma, Familie) einrichten, das nur an einer Stelle mit dem Internet verbunden ist, sollten Sie Adressen aus diesen Bereichen verwenden. Deren Verwaltung obliegt Ihnen und interessiert das Internet nicht im geringsten. Ein solches internes, isoliertes Netz mit der Technik des Internets wird Intranet genannt. Oft werden in Intranets auer TCP/IP weitere Netzprotokolle wie Appletalk oder Novell-IPX gefahren. 17.1.2 Netze und Subnetze Wenn bisher vom Netz die Rede war, war damit der gesamte Verbund aller Rechner, die irgendwie miteinander in Verbindung stehen, gemeint. Vielfach bezeichnet der Begriff jedoch lediglich eine Gruppe von Rechnern, die direkt physikalisch miteinander verbunden sind. Man spricht hier von einem Subnetz2 . In einem Ethernet beispielsweise knnen Rechner Daten direkt an alle anderen Rechner schicken, die an dasselbe Ethernet angeschlossen sind. Daten, die an Rechner geschickt werden sollen, die sich in anderen (Sub-)Netzen benden, mssen hingegen von einem speziellen Gert von dem einen Netz in ein anderes weitergeleitet werden. Diese weiterleitenden Gerte werden als Router bezeichnet. Ein Router kann ein Gert fr sich sein, das keine anderen Aufgaben beherrscht, eine Kombination mit anderen Netzkomponenten wie ein Router/Switch oder ein Rechner (PC), der mittels Software das Routing durchfhrt. Abbildung 17.1 verdeutlicht dies. Die Rechner im unteren Teil der Abbildung sind durch ein Ethernet miteinander verbunden. Der Rechner mit der IP-Adresse 210.21.4.1 kann beispielsweise den Rechner mit der IP-Adresse 210.21.4.3 direkt erreichen. Das gleiche gilt fr die Rechner im oberen Teil der Abbildung, die ebenfalls durch ein Ethernet miteinander verbunden sind. Der Rechner in der Mitte ist mit beiden Netzen verbunden. Er hat zwei Interfaces (Netzkarten) und demzufolge zwei IP-Adressen (210.21.4.250 und 210.21.3.250). Wenn der Rechner mit der IPAdresse 210.21.4.2 Daten an den Rechner mit der Adresse 210.21.3.2 senden will, dann kann er dies nicht direkt, sondern sendet die Daten an den Router 210.21.4.250, der sie ber sein anderes Interface 210.21.3.250 in das obere Ethernet leitet, von wo sie direkt an den Zielrechner geschickt werden. Hierzu bentigt der Rechner 210.21.4.2 die Information, wohin er Pakete schicken soll, die er nicht selbst (ber das Netz, an das er angeschlossen ist) zustellen kann. Diese Information bezeichnet man als Standard-Gateway oder Default-Route. Es muss bei den Rechnern im unteren Teil der Abbildung auf die Adresse 210.21.4.250 zeigen. Wenn die Rechner im oberen Teil der Abbildung in der Lage sein sollen, Daten zu Rechnern im unteren Teil der Abbildung zu schicken, bentigen Sie diese Information ebenfalls. Allerdings mssen diese das Standard-Gateway 210.21.3.250 benutzen, weil das Interface 210.21.4.250 nicht mit dem Ethernet verbunden ist, an das diese Rechner angeschlossen sind und deswegen von ihnen nicht erreichbar wre.
Tatschlich knnen auch mehrere Subnetze in einem physikalischen Netz vorhanden sein. Auerdem ist es mglich, mehrere physikalische Netze durch Bridges (Brcken) miteinander zu verbinden, sodass sie wie ein Subnetz behandelt werden knnen.
2

596

17 Debian GNU/Linux im Netz


145.22.100.1 ISP 210.21.3.1 210.21.3.2 210.21.3.3

145.22.100.6 210.21.3.0

210.21.3.250

210.21.4.1

210.21.4.2

210.21.4.3

210.21.4.250

210.21.4.0

Abbildung 17.1. Netz mit zwei Subnetzen und Zugang zu einem Internet Service Provider (ISP).

Netzmasken Alle Rechner mssen auerdem wissen, welche Rechner sich in ihrem Netz und welche Rechner sich in anderen Netzen benden. Hierzu dient die Netzmaske. Eine IP-Adresse besteht aus vier Zahlen zwischen 0 und 255. Sie lsst sich durch vier Bytes darstellen. Mit der Netzmaske wird angegeben, welche Bits in diesen vier Bytes Rechner reprsentieren, die sich im lokalen Netz benden, und durch welche Bits Rechner in anderen Netzen reprsentiert werden. Ein hug gebrauchter Wert fr die Netzmaske ist 255.255.255.0. Dieser Wert entspricht vier Bytes, in denen alle Bits der ersten drei Bytes gesetzt (gleich 1) sind und die acht Bits in dem letzten Byte nicht gesetzt (gleich 0) sind. Ein Rechner, der die Information bekommen hat, dass in einem Netz diese Netzmaske verwendet wird, kann daraus schlieen, dass sich alle IP-Adressen, bei denen sich nur die Bits im letzten Byte von denen im letzten Byte der eigenen IP-Adresse unterscheiden, im gleichen Netz benden wie er selbst, whrend sich solche IP-Adressen, bei denen sich Bits der ersten drei Bytes von denen in den ersten drei Byte der eigenen IP-Adresse unterscheiden, in anderen Netzen benden. Daten an diese Rechner mssen ber einen Router versendet werden. Im Beispiel der Abbildung 17.1 muss die Netzmaske fr alle Rechner 255.255.255.0 sein. Wenn vom Rechner 210.21.4.2 ein Paket an den Rechner 210.21.3.2 geschickt werden soll, erkennt der Absender, dass sich Bits im dritten Byte voneinander unterscheiden (4 ist ungleich 3), und wei aufgrund der Netzmaske, dass sich der Zielrechner in einem anderen Netz bendet. Er schickt die Pakete

17.1 Einleitung und Grundlagen

597

deswegen an den Router. Mchte der Rechner 210.21.4.2 jedoch ein Paket an den Rechner mit dem Interface 210.21.4.250 schicken, so erkennt er, dass sich die Bits der ersten drei Bytes nicht unterscheiden und stellt die Pakete direkt zu. Netzadressen Neben den einzelnen Rechnern (bzw. Interfaces) haben auch die Netze selbst eine IP-Adresse und zwar standardmig die erste verfgbare IP-Adresse des Netzes. Die in einem Netz verfgbaren Adressen ergeben sich aus der IP-Adresse eines Rechners in diesem Netz sowie aus der Netzmaske. Aufgrund der Information, dass ein Rechner die IP-Adresse 210.21.4.3 hat und dass in dem Netz die Netzmaske 255.255.255.0 gilt, kann darauf geschlossen werden, dass in diesem Netz die IPAdressen 210.21.4.0 210.21.4.255 zur Verfgung stehen. Die Adresse des Netzes ist 210.21.4.0. Die Netzadressen sind in der Abbildung ebenfalls dargestellt. Ein besonderes Netz ist das mit der IP-Adresse 127.0.0.0 (Netzmaske 255.0.0.0). Es ist fr den Verkehr von Datenpaketen bestimmt, die einen Rechner nicht verlassen. Dies kommt vor, wenn zwei Programme mit Hilfe von Netzprotokollen miteinander kommunizieren, die beide auf demselben Rechner ausgefhrt werden. Auch fr dieses Netz wird ein Interface bentigt. Es handelt sich dabei um das Loopback-Interface, dem gewhnlich die IP-Adresse 127.0.0.1 (localhost) zugewiesen wird. Ein vernetzter Rechner hat immer mindestens zwei IP-Adressen, nmlich 127.0.0.1 fr das Loopback-Interface und die IP-Adresse des Interfaces, ber das er mit dem externen Netz verbunden ist. Nicht-vernetzte Rechner haben zumindest die IP-Adresse 127.0.0.1. Broadcast-Adressen Die letzte freie Adresse in einem Netz ist ebenfalls reserviert. Hierbei handelt es sich um die Broadcast-Adresse. Pakete, die an diese Adresse geschickt werden, werden an alle Rechner in dem betreffenden Netz geleitet. Dadurch kann festgestellt werden, welcher Rechner in einem Netz einen bestimmten Dienst zur Verfgung stellt, ohne dass man seine genaue Adresse kennen muss. In einem Netz mit der Adresse 210.21.4.0 und der Netzmaske 255.255.255.0 ist die Broadcast-Adresse 210.21.4.255. Es bleibt festzuhalten, dass in jedem Netz zwei Adressen reserviert sind, nmlich die Netzadresse (0) und die Broadcast-Adresse (255). Point-To-Point-Verbindungen Eine spezielle Form von Netzen sind Point-To-Point-Verbindungen. Darunter werden direkte Verbindungen zwischen zwei Rechnern verstanden, wie sie bei Einwahlverbindungen zu einem Internet-Provider vorkommen. Die Netzmaske bei solchen Verbindungen ist immer 255.255.255.255, das heit, dass sich auer den beiden miteinander verbundenen Rechnern kein weiterer Rechner in dem Netz bendet.

598

17 Debian GNU/Linux im Netz

Mehr ber das Routing In Abbildung 17.1 ist eine Point-To-Point-Verbindung zwischen den Rechnern mit den IP-Adressen 210.21.3.3 und 145.22.100.6 auf der einen Seite und einem Internet-Service-Provider (ISP) mit der IP-Adresse 145.22.100.1 auf der anderen Seite eingetragen. Damit diese Verbindung von allen anderen Rechnern genutzt werden kann, mssen sie ber weitere Routing-Informationen verfgen. Rechner im oberen Teil der Abbildung (im Netz 210.21.3.0) mssen wissen, dass Pakete an Rechner im Netz 210.21.4.0 ber den Router mit der Adresse 210.21.3.250 versendet werden, whrend Pakete, die an den Internetprovider geschickt werden sollen, ber den Router mit dem Interface 210.21.3.3 versendet werden. Man braucht hier zwei RoutingInformationen. Das Betriebssystem verwaltet eine Routing-Tabelle, die beim Versand eines Pakets von oben nach unten durchgesehen wird. Sobald ein Eintrag gefunden wird, der auf den Empfnger des Pakets zutrifft, wird das Paket ber die entsprechende Route verschickt. Am Ende der Tabelle bendet sich meist der StandardGateway, an den Pakete geschickt werden, fr die keine andere Routing-Information vorliegt. Im Beispiel sollte die Routing-Tabelle der Rechner im Netz 210.21.3.0 zunchst die Information enthalten, dass Pakete an Rechner im Netz 210.21.4.0 ber den Router mit dem Interface 21.21.3.250 verschickt werden sollen. Die Default-Route knnte dann auf den Rechner mit dem Interface 210.21.3.3 zeigen, damit alle Pakete, die fr eines der beiden Netze 210.21.3.0 und 210.21.4.0 bestimmt sind, ber den ISP verschickt werden. Die Routing-Tabelle der Rechner im unteren Teil der Abbildung (im Netz 210.21.4.0) braucht hingegen nicht gendert zu werden. Fr diese Rechner reicht weiterhin die Information aus, dass alle Pakete, die im lokalen Netz nicht zugestellt werden knnen, an den Router mit dem Interface 210.21.4.250 geschickt werden mssen. Der Router hat (wie alle Rechner im Netz 210.21.3.0) die Information, dass Datenpakete, die in den lokalen Netzen nicht zugestellt werden knnen, an den Router mit dem Interface 210.21.3.3 geschickt werden mssen, der sie an den ISP weiterleitet. 17.1.3 Wireless Local Area Network (WLAN) Ein Wireless Local Area Network (WLAN) ist ein rtlich begrenztes Netz, das statt Kabelverbindungen Funk verwendet. Das Verlegen von Kabeln und Steckdosen ist eine teure Angelegenheit. Liegen sie erst einmal, ist ein Kabelnetz billiger, zuverlssiger und schneller als ein Funknetz. Man sollte daher nur dann ein Funknetz einrichten, wenn ein Kabelnetz auf Schwierigkeiten stt: auf Sportpltzen, in Schwimmhallen in Hrslen bei Konferenzen als schnell eingerichtete bergangslsung als Verbindung zweier benachbarter Gebude

17.1 Einleitung und Grundlagen

599

Der Standard IEEE 802.11 von 1997 beschreibt ein WLAN mit einer bertragungsrate von 2 MBit/s im 2,4-GHz-Band mit einer Reichweite von maximal 150 m. Die Sendeleistung betrgt 100 mW (weniger als die eines Mobiltelefons). Der Standard ist seither mehrmals ergnzt worden, vor allem mit dem Ziel hherer bertragungsraten. Gegenwrtig (Anfang 2004) sind 54 MBit/s Stand der Technik. Die Reichweite hngt stark von den rtlichen Gegebenheiten ab. Bei einer schlechten Verbindung sinkt zunchst die bertragungsrate bis auf 1 MBit/s ab, dann ist Schluss. Ein Access Point mit 54 MBit/s kommuniziert auch mit Gerten, die nur 11 MBit/s beherrschen. Mehrere Teilnehmer am WLAN teilen sich die bertragungsrate. Die bertragung lsst sich automatisch verschlsseln (WEP = Wireless Equivalent Privacy), sodass Unbefugte den Datenverkehr nicht abhren knnen. Eine Alternative zu WEP ist IPsec. Mittels WLAN lassen sich wenige Rechner miteinander im Ad-hoc-Modus verbinden; huger besteht ein WLAN jedoch aus einem zentralen Zugangspunkt (Access Point), um den sich mehrere Rechner mit WLAN-Karten (WLAN-Adapter, WLAN-Interface) im Infrastruktur-Modus scharen. Der Access Point ist an einem Ende mit einem lokalen, drahtgebundenen Ethernet verbunden, am anderen Ende trgt er ein oder zwei Antennen. Es gibt auch Router, die zugleich als Access Point arbeiten, siehe Abschnitt 17.4.8 auf Seite 635. Ebenso lsst sich ein Rechner, der ber eine Ethernetkarte und eine WLAN-Karte verfgt, als Access Point einrichten, wobei sein Standort vermutlich nicht optimal fr den Funk ist. Access Point und WLAN-Karten sind zugleich Sender und Empfnger. Bei der Einrichtung der Karten stellt sich wie bei jeder Hardware-Komponente die Frage nach den Treibern. In unserem Fall heit das, erst die Verfgbarkeit von Treibern klren, dann die Hardware kaufen. Vorsichtige Verwalter whlen Hardware eines Herstellers, obwohl dank der Norm auch ein heterogenes WLAN funktionieren sollte. Da einige WLAN-Karten auf ein Board geklebte PCMCIA-Karten sind, ist mglicherweise auch die PCMCIAUntersttzung im Kern zu aktivieren. Hat man alles beieinander, ist ein neuer Kern zu kompilieren und einzurichten. Das ist nicht weiter aufregend und in Abschnitt 11 auf Seite 373 beschrieben. Geht alles gut, nehmen Rechner und Access Point mit Vorgabewerten Kontakt auf. Denkbar ist auch, dass man zuerst den Access Point mittels eines Web-Browsers ber die Kabelverbindung konguriert und anschlieend auf jedem Rechner lokal die Karte. Der Access Point ist ein selbstndiger Knoten mit eigener IP-Adresse. Wechselnde Teilnehmer versorgt man zweckmig per DHCP mit IP-Adressen, siehe Abschnitt 17.2.2 auf Seite 613. 17.1.4 Namensauflsung und DNS Die Verwendung von numerischen IP-Adressen ist nicht gerade menschenfreundlich. Den meisten Benutzern fllt es einfacher, sich Namen wie www.sparkasse.de oder www.linux.de zu merken als Nummern wie 212.162.48.210 oder 195.254.37.153. Deswegen ist es mglich, fast berall dort, wo eine IP-Adresse bentigt wird, einen Namen anzugeben. Weil die Kommunikation der Rechner untereinander aber nach

600

17 Debian GNU/Linux im Netz

wie vor mit IP-Adressen durchgefhrt wird, mssen die Namen in Adressen bersetzt werden. Hierzu gibt es verschiedene Mglichkeiten. Die einfachste besteht darin, auf jedem Rechner eine Datei (/etc/hosts) zu pegen, in der die Zuordnungen von Adressen und Namen gespeichert sind. In einem Netz mit weniger als hundert Gerten, das sich nur langsam ndert, ist dieser Weg gangbar. Die Datei muss nach jeder nderung von einem zentralen Rechner an alle Teilnehmer des lokalen Netzes verteilt werden. Dieses Verfahren ist jedoch bei der Gre des Internets schon lange nicht mehr aufrecht zu halten, weswegen es ein Server-Programm (named) gibt, das Rechnernamen entgegennimmt und IP-Adressen zurckliefert. Rechner, auf denen dieses Programm ausgefhrt wird, werden als Domain-Name-Server (DNS-Server) bezeichnet. Wenn ein Rechner fr die Benutzung von DNS konguriert ist, befragt er vor dem Aufbau einer angeforderten Verbindung zunchst den DNS nach der bentigten IPAdresse. Er muss dazu die IP-Adresse des DNS kennen, nicht den Namen. DNS-Rechnernamen bestehen aus Zeichenketten, die durch Punkte voneinander getrennt werden. Dies hngt mit der Struktur der Verwaltung des Internets zusammen. Den letzten Teil eines Namens (.de oder .com) bezeichnet man als ToplevelDomne. Sie ist einer Institution zugeordnet, die berechtigt ist, Namen zu vergeben, die mit dieser Zeichenkette enden, z. B. linux.de. Fr die Toplevel-Domain .de ist dies das DE-NIC (Network Information Center, http://www.de-nic.de/). Namen wie linux.de oder brauerei.de werden als gewhnliche Domnen bezeichnet. Der Besitzer einer Domne kann dann weitere Namen vergeben, die mit dem Domnennamen enden. So vergibt das DE-NIC an die Universitt Karlsruhe die Domne uni-karlsruhe.de samt einem Kontingent von IP-Adressen. Das Rechenzentrum der Universitt betreibt den Domain-Name-Server fr diese Domne und vergibt Unterdomnen wie mvm.uni-karlsruhe.de samt einem Unterkontingent von IP-Adressen an die Institute. In diesen weist der dortige Netzverwalter den Gerten Namen und Adressen zu beispielsweise 172.22.132.100 gleich c100.mvm.uni-karlsruhe.de und meldet seine Entscheidung an das Rechenzentrum als Betreiber des Domain Name Servers und in diesem Fall auch als Betreiber des NAT-Dienstes zurck. Fr das Internet ist es unerheblich, welche IP-Adressen welchen Namen zugeordnet sind. Die EDV-Abteilung oder das Rechenzentrum hat jedoch an Ordnung und bersicht ein gewisses Interesse und setzt durch interne Richtlinien der Phantasie Grenzen. Der Besitzer einer Domne ist verpichtet, DNS-Server zu betreiben, mit denen die Namen der betreffenden Domne in IP-Adressen aufgelst werden knnen. Die vollstndigen Namen (c100.mvm.uni-karlsruhe.de) werden als voll qualizierte Rechnernamen (Fully Qualied Domain Name = FQDN) bezeichnet. Sie ermglichen, einen Rechner von jedem Ort im Internet aus mit seinem Namen anzusprechen. Im Gegensatz dazu sind die einfachen Rechnernamen (c100 oder c100.mvm) nur innerhalb ihrer Domne gltig. Einer IP-Adresse drfen mehrere Namen zugordnet sein. So trgt der genannte Rechner auch noch den aussagekrftigeren Namen (Aliasnamen) www.mvm.uni-karlsruhe.de.

17.1 Einleitung und Grundlagen

601

Achtung: Internetdomnen haben nichts mit dem Domnenkonzept zu tun, das in MS-Windows- und IBM-OS/2-Netzen benutzt wird. Sie sind ferner von NISDomnen zu trennen. Domne bedeutet einfach Bereich. 17.1.5 Ports und Protokolle Nachdem prinzipiell geklrt ist, wie ein IP-Datenpaket von einem Rechner zu einem anderen kommt, stellt sich die Frage, wie ein Rechner wei, was er mit einem Datenpaket anfangen soll, wenn er es erhalten hat. Hierzu gibt es die Ports. Man kann sich Ports wie Unteradressen vorstellen, die einen bestimmten Absender oder Empfnger auf einem Rechner bezeichnen vergleichbar den Raumnummern in einem groen Gebude. Ein Programm, das Daten empfangen oder versenden will, muss sich vom Betriebssystem einen Port zuweisen lassen. Es kann einen ganz bestimmten Port verlangen, der allerdings schon besetzt sein kann. Ports werden intern durch Nummern reprsentiert. Auerdem ist auf dem System (in /etc/services) eine Tabelle vorhanden, die vielen Ports einen Namen zuweist. Per Konvention lsst sich ein Web-Server-Programm standardmig den Port mit der Nummer 80 zuweisen (er trgt den Namen WWW) und beobachtet diesen Port. Ein Web-Browser kennt die Konvention. Wenn der Browser Daten von einem Web-Server anfordert, sendet er dazu Datenpakete an den Port 80 auf dem Server. Dort angekommen, werden sie an das Web-Server-Programm weitergeleitet, weil das Betriebssystem wei, dass Port 80 dem Web-Server gehrt. Der Server entscheidet dann, was er mit dem Paket tut und schickt gegebenenfalls eine Antwort zurck. Dazu nutzt er den Umstand, dass in jedem Paket eine Absender-Adresse sowie ein Absender-Port enthalten ist. Aus dem Anfrage-Paket kann der Server ablesen, von welchem Rechner und von welchem Port auf diesem Rechner die Anfrage kam, und seine Antwort dorthin zurcksenden. Programme, die bestimmte Dienste zur Verfgung stellen, werden als ServerProgramme bezeichnet. Sie unterscheiden sich von anderen Programmen, die das Netz benutzen, dadurch, dass sie zwar einen Port ffnen, aber von sich aus keine Daten ber diesen Port versenden. Vielmehr warten sie darauf, dass auf dem entsprechenden Port Datenpakete eintreffen, die sie beantworten. Es ist deshalb wichtig, dass solche Programme immer denselben Port benutzen und dass die Nummer des Ports den Programmen bekannt ist, die auf das Server-Programm zugreifen. ServerProgramme werden auch als Dmonen bezeichnet, weil sie im Hintergrund stndig einen Port beobachten. Klientprogramme, also solche Programme, welche die Dienste eine Servers nutzen, bentigen hingegen keine feste Portnummer. Sie lassen sich einfach irgendeine freie Nummer vom Betriebssystem zuweisen und senden ber den zugewiesenen Port Datenpakete an den Server. Da Absenderadresse und -Port in den IP-Paketen enthalten sind, braucht das Serverprogramm die Portnummer des Klienten nicht von vornherein zu kennen, sondern kann sie den eingehenden Anfragen entnehmen. Aus diesem Grund kann auf einem Port immer nur genau ein Server-Programm ausgefhrt werden, beispielsweise nur ein Web-Server, der den Port 80 verwendet.

602

17 Debian GNU/Linux im Netz

Im Gegensatz dazu knnen beliebig viele Klientprogramme vom gleichen Typ benutzt werden, weil diese unterschiedliche Ports verwenden. So knnten auf einem Linux-Rechner gleichzeitig die Benutzerinnen eva und heike mit dem Browser opera arbeiten, wobei das Programm von eva vielleicht den Port 4470 benutzt und H EIKEs opera mit dem Port 4786 arbeitet. Beide Browser sprechen jedoch den Port 80 auf Web-Servern an. Mit dem Konzept der Ports eng verbunden sind die Protokolle. Ein Web-Browser, der einen Web-Server anspricht, erwartet, dass dieser seine Anfragen auf eine ganz bestimmte Weise beantwortet. Ein Email-Programm, das Mails von einem Server abholt, kommuniziert hingegen auf eine andere Art mit dem Mail-Server. Einige wichtige im Internet benutzte Protokolle sind das Hypertext-Transfer-Protocol (HTTP), das von Web-Browsern und -Servern benutzt wird, das File Transfer Protocol (FTP), das zum bertragen von Dateien benutzt wird, oder das Simple Mail Transport Protocol (SMTP), das beim Versand von Email eingesetzt wird. Per Konvention werden diese Protokolle bestimmten Ports zugeordnet. Ein Email-Programm, das Mail an einen anderen Rechner versendet, benutzt gewhnlich den Port 25 und erwartet, dass auf der Gegenseite ein Server-Programm luft, das an diesem Port lauscht und SMTP spricht. Es ist unerheblich, welches Programm als Server-Programm eingesetzt wird. Erforderlich ist lediglich, dass es den richtigen Port benutzt und das richtige Protokoll verwendet. Die Zuordnungen von Protokollen und Ports sind unter Linux/UNIX in der Datei /etc/services aufgelistet. Die hier angesprochenen Protokolle basieren alle auf dem Internet-Protokoll (IP). IP stellt die Transportmglichkeit fr Daten zur Verfgung, die von hheren Protokollen wie HTTP oder FTP genutzt werden. Dabei gibt es unterschiedliche Protokollfamilien, bei denen (auf IP-basierend) bestimmte Formen des Datentransfers benutzt werden. Die wichtigsten dieser Protokollfamilien sind TCP (Transmission Control Protocol) und UDP (User Datagram Protocol). Die verbreitetsten Dienste des Internets bauen auf TCP auf. Dieses Protokoll verwendet IP, um eine zuverlssige Verbindung zwischen zwei Rechnern aufzubauen. Man spricht deswegen bei dem Internet-Protokoll oft auch von TCP/IP. Ein Dienst, der in der Regel UDP benutzt, ist das Network File System (NFS). Wichtig ist noch zu wissen, dass TCP und UDP zwar beide das Port-Konzept verwenden, TCP-Ports und UDP-Ports jedoch voneinander unabhngig sind. Beispielsweise kann der TCP-Port 514 gleichzeitig von einem anderen Programm benutzt werden als der UDP-Port mit derselben Nummer. In der Datei /etc/services sind daher vielen Portnummern sowohl ein TCP- wie ein UDP-Dienst zugeordnet, die identisch sein knnen. 17.1.6 Viren (Malware) Viren oder allgemein gesprochen bsartige Software (Malicious Software, Malware) umfasst: Viren. Das sind unselbstndige Programmteile, die sich in Ihr System einschleichen, in ein Programm einnisten und sofort oder spter unerwnschte Aktionen durchfhren: dumme Meldungen auf den Bildschirm schreiben, die Platte

17.1 Einleitung und Grundlagen

603

aufrumen oder Hintertren (backdoors) ffnen, durch die jemand Ihr System ausspionieren kann. Trojanische Pferde (Trojaner) versuchen, unter dem Deckmantel eines anstndigen Programms an Informationen ber Ihr System zu gelangen, vor allem an Passwrter. Rootkits sind Pakete von Programmen oder Kernmodulen, die nach ihrer Installation einem Unbefugten root-Zugang zum System verschaffen und zugleich alle Spuren ihrer Ttigkeit verwischen, indem sie bliche Linux/UNIX-Software durch geflschte Versionen ersetzen. Wrmer richten keinen unmittelbaren Schaden an, vermehren sich aber rasend schnell und verstopfen so Rechner und Netz. Kombinationen kommen vor. Kein Betriebssystem ist sicher vor derartiger Malware. Linux/UNIX macht es jedoch den Schdlingen schwer, einzudringen und sich auszubreiten, whrend andere Betriebssysteme unter dem Vorwand der Benutzerfreundlichkeit die Sicherheit vernachlssigen. Sicherheit ist immer mit Aufwand und Unbequemlichkeiten verbunden. Wenn Ihre Haustr kein Schloss htte, knnten Sie Ihren Haustrschlssel niemals vergessen oder verlieren. Whrend frher Malware ber Disketten oder FTP in den Rechner geriet, ist heute Email der bevorzugte Weg. Das Web bietet sich auch an, vor allem Webseiten mit aktiven Inhalten (Javascript, Java Applets und dergleichen). Einige Tipps zum Schutz vor Ansteckung: Gute Passwrter whlen. Passwrter wechseln, nicht tglich, aber auch nicht erst alle zehn Jahre. Passwort niemals unverschlsselt ber das Netz schicken. Passwort niemandem mitteilen, nur an sicherer Stelle schriftlich hinterlegen. Kein Passwort fr mehrere Benutzer verwenden (keine Gruppenkonten). Keinen Gastbenutzer (Benutzer ohne Passwort) einrichten. Tote Konten lschen. Die Arbeit als gewhnlicher Benutzer von der Arbeit als Verwalter trennen. Mglichst wenig als root machen. Alle nicht bentigten Dienste (Dmonen, Server) und Ports stilllegen. Rechner mit ffentlichem Zugang (Webserver, AFTP-Server, Email-Server) trennen von Arbeitplatzrechnern und internen Servern (Dateiserver, Datenbank, interne Listen). Ungesicherte Dienste (Telnet, rlogin) vermeiden, abschalten. Von Einschrnkungen wie in /etc/hosts.allow Gebrauch machen. Lokale Netze nur ber einen Firewall-Rechner oder -Router ans Internet anschlieen. Keine Lecks dulden. Protokolldateien in /var/log/ lesen, evntl. per Shellskript automatisch auswerten. Regelmig Werkzeuge zur Untersuchung des Systems wie chkrootkit (http: //www.chkrootkit.org/) benutzen, evntl. per cron aufrufen lassen. Ein Virenscanner, der unter der GPL steht, ist bei http://www.clamav.net/ zu haben. Vielleicht wird aus dem OpenAntivirus-Projekt auch einmal etwas (http://www.openantivirus.org/). Zugriffsrechte auf Verzeichnisse und Dateien zurckhaltend vergeben (Default: 700).

604

17 Debian GNU/Linux im Netz

System aktuell halten (apt-get upgrade). Keine Software zweifelhafter Herkunft einrichten. Einen inzierten Rechner sofort vom Netz trennen (Ethernet-Kabel ziehen, WLAN-Verbindung nicht vergessen.). Linux/UNIX-Systeme gelten ohne zustzliche Manahmen nicht als sicher gem den Common Criteria bzw. ISO 15408 (http://csrc.nist.gov/cc/ index.html). Bei Befolgen obiger Regeln reicht ihre Sicherheit aber fr unkritische Anwendungen aus. Weitere Informationen zu Sicherheitsfragen nden sich bei: Bundesamt fr Sicherheit in der Informationstechnik, http://www.bsi. bund.de/ CERT Coordination Center, USA, http://www.cert.org/ CERT Deutsches Forschungsnetz, http://www.dfn-cert.de/

17.2 Basiskonguration
Der erste Schritt zur Konguration des Netzes ist, die Untersttzung fr das Netzinterface (Karte, Adapter) bereitzustellen. Der Schritt besteht darin, das Treibermodul fr die Netzkarte zu laden, wobei auf die richtigen Parameter geachtet werden muss. Weit verbreitet sind NE2000-kompatible Karten fr den ISA-Bus, nicht besonders hochwertig, aber preisgnstig. Das Treibermodul zur Untersttzung der Karten heit ne.o. Ihm sind beim Laden die I/O-Adresse und der Interrupt mitzuteilen, was in folgernder Form geschieht: debian:~# modprobe ne io=0x300 irq=10 Achtung: Verwenden Sie dieses Treibermodul nicht fr PCI-Karten. Die Untersttzung fr solche Karten wird mit dem Modul ne2k-pci.o zur Verfgung gestellt. Das Modul kann ohne Angabe von Parametern geladen werden. Wenn das modprobe-Kommando keine Fehlermeldung ausgibt, ist dies ein Zeichen dafr, dass das Modul erfolgreich geladen wurde. Falls Sie den Treiber fr Ihre Netzkarte fest in den Kern integriert haben, kann er natrlich nicht mit modprobe geladen werden. Die Karte wird dann entweder automatisch erkannt, oder Sie mssen dem Kern die entsprechenden Parameter bergeben (siehe Kapitel 12). Nachdem der Treiber geladen ist, wei der Kern von der Existenz des Netzinterfaces, es kann nun benutzt werden. Allerdings mssen noch eine Reihe weiterer Einstellungen vorgenommen werden. Die wichtigste ist dabei zunchst, dem Interface eine IP-Adresse zuzuweisen. Der Kern verwaltet fr jedes Netzinterface einen internen Namen, der benutzt werden muss, um das Interface anzusprechen oder um es zu kongurieren. Einige dieser Namen sind: lo fr das lokale Loopback-Interface, mit dem nur Verbindungen zum eigenen Rechner aufgebaut werden knnen,

17.2 Basiskonguration

605

eth0 fr die erste Ethernet-Netzkarte, eth1 fr die zweite Ethernet-Netzkarte, tr0 fr die erste Token-Ring-Netzkarte, ppp0 fr das erste PPP-Interface, ippp0 fr das erste ISDN-PPP-Interface. Nachdem der Treiber fr die erste und meist einzige Ethernetkarte geladen worden ist, lsst sich diese mit dem Namen eth0 ansprechen. Dem Interface wird eine IPAdresse zugewiesen, wozu das Kommando ifcong (Interface Conguration) benutzt wird. Mit ifcong lassen sich mehrere Einstellungen fr Netzinterfaces vornehmen. Fr den Anfang reicht es aus, die IP-Adresse sowie die Netzmaske festzulegen. Die IP-Adresse kann dem Kommando direkt bergeben werden, whrend die Netzmaske nach dem Schlsselwort netmask angegeben werden muss: debian:~# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up Das Schlsselwort up bewirkt dabei, dass das Interface aktiviert wird. Es ist optional. Um ein Netzinterface zu deaktivieren, ist das Schlsselwort down zu benutzen. Dabei braucht keine IP-Adresse angegeben zu werden: debian:~# ifconfig eth0 down Nach Eingabe des letzten Kommandos werden ber das Interface eth0 keine Daten mehr verschickt. Wenn dies das einzige Netzinterface des Rechners ist, bedeutet das zwangslug, dass der Rechner vom Netz getrennt ist. Das Interface knnte nun mit einer anderen IP-Adresse wieder aktiviert werden: debian:~# ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up Im Routinebetrieb wird die IP-Adresse eines Rechners selten gendert. Das ist Aufgabe des Netzverwalters. Das Kommando ifcong kann auch benutzt werden um anzuzeigen, welche Interfaces konguriert sind. Hierzu ist er ohne Angabe von Parametern zu benutzten: joe@debian:~$ /sbin/ifconfig Es erscheint dann eine Ausgabe, die ungefhr der folgenden entspricht:
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:59148 errors:0 dropped:0 overruns:0 frame:0 TX packets:59148 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 Link encap:Ethernet HWaddr 00:00:E8:6A:C7:5A inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1105305 errors:0 dropped:0 overruns:0 frame:0 TX packets:579947 errors:0 dropped:0 overruns:2 carrier:0 collisions:0 txqueuelen:100 Interrupt:10 Base address:0x0300

eth0

606

17 Debian GNU/Linux im Netz

Dieser Ausgabe ist zu entnehmen, dass in dem Rechner zwei Netzinterfaces konguriert sind (lo und eth0). Fr jedes Interface werden dahinter Informationen ausgegeben, die spezisch fr das entsprechende Gert sind. Hinter der Angabe inet addr: nden sich die IP-Adressen der Interfaces (hier 127.0.0.1 fr das Loopback-Interface und 192.168.0.1 fr die Ethernet-Karte), hinter Bcast: bendet sich die Broadcastadresse und hinter Mask: die Netzmaske. Die mir RX packets: und TX packets: beginnenden Zeilen zeigen an, wieviele Paket mit dem jeweiligen Interface bisher empfangen (RX) und gesendet (TX) worden sind. Fr das Ethernet-Interface wird zustzlich ausgegeben, welchen Interrupt und welche IO-Adresse es verwendet. Weitere wichtige Einstellungen, die mit ifcong vorgenommen werden knnen, sind folgende: mtu Zahl Legt mit Zahl die MTU (Maximal Transfer Unit) des Interfaces fest. Standardwert ist 1500. Das ist die Datenmenge in Byte, die maximal in einem Paket bertragen wird. broadcast Adresse Legt mit Adresse die Broadcastadresse des Netzes fest. Standardwert ist die hchste im Netz verfgbare IP-Adresse, beispielsweise 192.168.0.255 bei einer Netzadresse 192.168.0.0 und einer Netzmaske 255.255.255.0. Dies ist in den meisten Fllen die richtige Einstellung. pointopoint Adresse Legt bei Point-To-Point Interfaces die Netzadresse der Gegenstelle fest. metric Zahl Legt mit Zahl die Metric des Interfaces fest. Wenn der Parameter nicht angegeben wird, wird der Metric-Wert 1 benutzt. Der Metric-Wert wird vom Kern nicht benutzt. Nachdem das Netzinterface eine IP-Adresse hat, kann getestet werden, ob es mglich ist, Datenpakete an diese Adresse zu schicken und von dort zu beziehen. Hierzu dient das Kommando ping (S. 845). Das Programm ping sendet in regelmigen Abstnden Datenpakete an eine angegeben Adresse, die von dem Empfnger zurckgeschickt werden. Sobald ein abgeschicktes Paket wieder eintrifft, zeigt ping dies an. Um den eigenen Rechner mit der IP-Adresse 192.168.0.1 anzupingen, ist dieses Kommando einzugeben. joe@debian:~$ ping 192.168.0.1 Weil ping solange Datenpakete abschickt und empfngt, bis es manuell beendet wird, sollte es nach einiger Zeit durch die Tastenkombination S TRG - C abgebrochen werden. Die Ausgabe sieht dann sinngem so aus:
PING 192.168.0.1 (192.168.0.1): 56 data bytes 64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.3 ms --- 192.168.0.2 ping statistics --3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.3/0.3/0.4 ms

17.2 Basiskonguration

607

Die Zeilen in der Ausgabe, die mit 64 bytes from beginnen, zeigen an, dass Datenpakete von der angegebenen Adresse zurckgeschickt und empfangen wurden. Zum Schluss wird eine Statistik ausgegeben, die anzeigt, wieviele Pakete abgeschickt, empfangen und verloren wurden. Der Verlust sollte bei 0 % liegen, sonst ist etwas faul. Auerdem wird die Zeit angezeigt, die minimal, durchschnittlich und maximal zwischen dem Abschicken und dem Empfangen eines Paketes vergangen ist. In einem lokalen Netz sollte die Zeit nicht viel mehr als 1 ms betragen. Wenn Sie keine Pakete von dem eigenen Interface zurck bekommen, deutet dies auf einen Fehler der Hardware, bei der Konguration des Treibers oder bei der Konguration des Interfaces mit ifcong hin. Sollte das eigene Interface funktionstchtig sein, kann getestet werden, ob andere Rechner im Netz erreichbar sind. Hierzu knnen IP-Adressen angepingt werden, die in dem lokalen Netz vorhanden sind und benutzt werden. Sie sollten fr diesen Test IP-Adressen von Rechnern auswhlen, von denen Sie wissen, dass sie eingeschaltet sind, funktionieren und erreicht werden knnen. Falls es an dieser Stelle hapert, berprfen Sie folgendes: Ist Ihr Rechner richtig mit dem Netz verbunden? Stimmen alle Steckverbindungen? Bendet sich der angepingte Rechner in demselben physikalischen Netz? Falls nicht, knnen Sie ihn (noch) nicht erreichen. Lsst sich der Zielrechner von anderen Rechnern aus mit ping erreichen? Auch andere Betriebssysteme wie MS-Windows oder IBM-OS/2 sind mit pingProgrammen ausgestattet, mit denen Sie dies testen knnen. Nachdem sichergestellt ist, dass Sie die Rechner im lokalen Netz erreichen, kann nun gegebenenfalls das Standard-Gateway konguriert werden. Dabei handelt es sich um einen Rechner im lokalen Netz, an den alle Pakete geschickt werden, von denen Ihr Rechner nicht wei, wie sie zugestellt werden knnen. Die IP-Adresse des Gateways wei Ihr Netzverwalter. Die Konguration von Gateways geschieht mit dem Kommando route. Dieses Programm fgt der Routing-Tabelle des Kerns Informationen zu oder entfernt sie. Um eine Routing-Information zu addieren, ist das Programm mit dem Schlsselwort add aufzurufen. Zustzlich kann das Schlsselwort default benutzt werden, um die Default-Route (das Standard-Gateway) festzulegen. Ein Gateway wird mit route angegeben, indem der Adresse des Gateways das Schlsselwort gw vorangestellt wird. Soll unser Rechner die Adresse 192.168.0.250 als Standard-Gateway verwenden, so ist das Kommando folgendermaen aufzurufen: debian:~# route add default gw 192.168.0.250 Sie machen die Einstellung rckgngig, indem Sie die Standard-Route mit dem Schlsselwort del entfernen: debian:~# route del default Wenn das Kommando /sbin/route ohne Angabe von Parametern eingegeben wird, zeigt er die aktuellen Routing-Informationen des Kerns an:

608

17 Debian GNU/Linux im Netz

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.0.250 0.0.0.0 UG 0 0 0 eth0

In der hier gezeigten Tabelle benden sich zwei Eintrge. Der erste Eintrag wurde der Routing-Tabelle automatisch hinzugefgt, als das Interface eth0 mit ifcong konguriert wurde. Die erste Spalte (Destination) zeigt Netze oder Rechner, fr die der entsprechende Eintrag gelten soll. Der erste Eintrag gilt fr das lokale Netz (192.168.0.0). In der nchsten Spalte wird die Adresse eines Gateways ausgegeben, falls ein solches benutzt werden muss, um das Netz bzw. den Rechner zu erreichen. Fr das lokale Netz wird kein Gateway bentigt, weil der Rechner direkt mit diesem Netz verbunden ist. In der nchsten Spalte Genmask ist die Netzmaske des Zielnetzes angegeben. Wenn der Eintrag nur fr einen einzelnen Rechner gilt, bendet sich hier der Wert 255.255.255.255. Die letzte Spalte bezeichnet das Interface, ber das Datenpakete zu dem entsprechenden Rechner bzw. dem jeweiligen Netz geschickt werden sollen. Der zweite Eintrag des Beispiels bezeichnet den Standardgateway. Hier wird bei Destination kein Netz oder Rechner, sondern das Schlsselwort default ausgegeben. Es ist zu sehen, dass alle Datenpakete, fr die keine Route bekannt ist, an den Rechner mit der Adresse 192.168.0.250 geschickt werden sollen. Hier kann auch der Name des Default-Gateways stehen. In der Spalte Genmask bendet sich hier der Wert 0.0.0.0, was bedeutet, dass der Eintrag fr alle Pakete gilt. Der Kern arbeitet die Routing-Tabelle von oben nach unten ab. Wenn ein Paket an die Adresse 192.168.1.12 geht, wird zunchst geprft, ob der erste Eintrag fr diese Adresse zutrifft. Das ist nicht der Fall, weil der erste Eintrag lediglich die Adressen 192.168.0.1 bis 192.168.0.255 abdeckt. Also wird der nchste Eintrag getestet. Hierbei handelt es sich um den Standardeintrag, der fr alle Pakete gilt. Das Paket wird an den Rechner mit der Adresse 192.168.0.250 geschickt. Wenn kein Eintrag vorhanden ist, der fr das betreffende Paket geeignet ist, kann das Paket nicht auf den Weg geschickt werden, und es wird eine Fehlermeldung (Network unreachable) zurckgegeben. Die vollstndige Syntax sowie einige Beispiele zum Kommando route nden Sie in der Manualseite zu dem Programm. Wenn der Standardgateway gesetzt ist, sollten Sie in der Lage sein, mit allen Rechnern und Netzen zu kommunizieren, die mit Ihrem Netz verbunden sind. Falls Ihr Netz mit dem Internet verbunden ist, bedeutet dies, dass Sie nun alle Rechner in den unendlichen Weiten des Internets erreichen. Sie testen dies ebenfalls mit dem Programm ping. Der Debian-Spiegel-Server ftp.de.debian.org hat zur Zeit (2004-01-19-15-33 UTC) die IP-Adresse 141.76.2.4. Versuchen Sie einmal, diesen Rechner anzupingen: joe@debian:~$ ping 141.76.2.4 Achtung: In vielen internen Netzen besteht eine indirekte Internetanbindung ber Proxy-Server und/oder Firewalls. Bei einer solchen Konguration ist es

17.2 Basiskonguration

609

sehr wahrscheinlich, dass die von ping verschickten Pakete nicht in das Internet weitergeleitet werden und deswegen auch nicht zurckkommen. 17.2.1 Konguration der Namensauflsung Um einen Rechner im Netz anzusprechen, werden vom Benutzer in der Regel keine IP-Nummern verwendet, sondern Rechnernamen. Die Rechner und weiteren Gerte im Netz gebrauchen jedoch Nummern, die IP-Adressen. Deshalb muss der Kern die IP-Adresse eines Rechners kennen, um eine Verbindung mit ihm aufzubauen. Wir haben bereits im Abschnitt 17.1.4 auf Seite 599 die beiden Wege kennen gelernt, auf denen Namen in IP-Adressen aufgelst werden (und umgekehrt): Auf jedem Rechner im Netz wird eine Datei /etc/hosts gepegt, welche die Zuordnungen von Namen zu IP-Nummern enthlt. Ein Rechner im Netz wird als DNS-Server oder Nameserver eingerichtet. Alle Rechner knnen IP-Adressen dann bei diesem Server erfragen. Welches Verfahren ein Rechner benutzt, wird in der Datei /etc/nsswitch festgelegt. Dort bendet sich ein Eintrag, der so aussieht:
hosts: files dns

Mit diesem Eintrag wird bestimmt, mit welchen Verfahren Rechnernamen aufgelst werden. Das Schlsselwort les steht fr die Verwendung einer lokalen Datei, und das Schlsselwort dns bedeutet, dass ein DNS-Server benutzt werden soll. In dem Beispiel sind beide Verfahren ausgewhlt. Dies bewirkt, dass zunchst in der lokalen Datei nachgesehen wird und wenn ein Rechner dort nicht eingetragen ist der DNS-Server nach der gesuchten Adresse befragt wird. Dies ist eine sinnvolle Voreinstellung, weil sie gewhrleistet, dass Rechnernamen, die lokal bekannt sind, auch dann noch aufgelst werden knnen, wenn die Verbindung zum Nameserver nicht funktioniert3. Lokale Namenszuordnungen Die lokale Tabelle von Rechnernamen und zugehrigen IP-Adressen bendet sich in der Datei /etc/hosts. Jede Zeile dieser Datei enthlt eine IP-Adresse und durch Leerzeichen getrennt einen oder mehrere Namen, die an Stelle der IP-Adresse benutzt werden knnen. Auerdem darf die Datei Leerzeilen und Kommentare enthalten, die mit einem Doppelkreuz (#) eingeleitet werden. Beispiel:

Programme, die nicht die moderne C-Bibliothek glibc2, sondern die ltere Bibliothek libc5 verwenden, beziehen die Information zur Namensauflsung aus der Datei /etc/host.conf. Um fr diese Programme ebenfalls die beschriebene Konguration zu verwenden, sollte sie die beiden folgenden Zeilen enthalten: order: hosts,bind und multi on.

610

17 Debian GNU/Linux im Netz

# Eintrag fr das lokale Interface 127.0.0.1 localhost # Eintrag fr fremde Rechner # (inklusive dem eigenen) 192.168.0.1 chef.firma.de 192.168.0.2 buchhaltung.firma.de

chef buchhaltung

buch

Darunter nden Sie in der Datei zustzlich Eintrge fr IPv6-Adressen. Diese Eintrge wurden whrend der Installation des Debian-Pakets netbase angelegt. IPv6 ist der zuknftige Internet-Standard, der zur Zeit jedoch wenig verwendet wird. Sie knnen diese Eintrge ignorieren. Der erste Eintrag (127.0.0.1) nennt die Adresse des Loopback-Interfaces, das auch als localhost bezeichnet wird. Der Eintrag sollte sich in der Datei /etc/hosts jedes Rechners benden. Darunter stehen zwei Eintrge fr die Rechner mit den IPAdressen 192.168.0.1 und 192.168.0.2. Diesen beiden Adressen sind zwei bzw. drei Namen zugeordnet, nmlich zum einen ein voll qualizierter Domain-Name (FQDN) und einfache Rechnernamen fr den Gebrauch im eigenen Netz. Die Reihenfolge der Zeilen ist unerheblich, sodass sich dieselbe Datei im ganzen lokalen Netz verwenden lsst. Alle in der Datei aufgefhrten Rechner sollten ohne DNS mittels ping zu erreichen sein. Wie erwhnt knnen Netze ebenso Namen tragen wie Rechner. Zur Festlegung von Netznamen dient die Datei /etc/networks. Im Gegensatz zur Datei /etc/hosts werden hier zunchst die Namen und dann die IP-Nummern genannt:
loopback firma.de privat.de 127 192.168.0.0 192.168.10.0 firma privat

Hiermit wird dem Netz 192.168.0.0 der Name rma.de und dem Netz 192.168.10.0 der Name privat.de zugeordnet. Auf vielen Rechnern fehlt die Datei, da man den DNS bemht, sowie man das eigene Netz verlsst. Verwenden eines DNS-Servers Neben dem entsprechenden Eintrag in der Datei /etc/nsswitch.conf ist es erforderlich, dem System mitzuteilen, welche IP-Adresse (!) der zu verwendende DNSServer hat. Diese Angabe wird in der Datei /etc/resolv.conf vorgenommen. Dort muss sich ein Eintrag benden, der folgendermaen aussehen kann: nameserver 192.168.0.100 Dieser Eintrag bewirkt, dass der DNS-Server mit der IP-Adresse 192.168.0.100 befragt wird, um Rechnernamen in IP-Adressen aufzulsen. Wenn Ihnen mehrere DNS-Server zur Verfgung stehen, knnen Sie bis zu drei Eintrge dieser Art untereinander angeben. Es wird dann zunchst versucht, eine Adresse beim ersten Nameserver aufzulsen, dann beim zweiten usw. Der schnellste Nameserver sollte deswegen den ersten Eintrag bekommen.

17.2 Basiskonguration

611

In der Datei knnen Sie auch Ihre Domain (etwa rma.de) angeben. Die Folge eines solchen Eintrags ist, dass zuknftig Namen von Rechnern in Ihrer Domain auch aufgelst werden, wenn sie die kurzen Rechnernamen verwenden (chef oder buchhaltung). Ohne einen Domain-Eintrag in dieser Datei mssen Sie immer die voll qualizierten Namen verwenden, damit Sie vom DNS-Server aufgelst werden knnen. Unbeeinusst von dem Domain-Eintrag sind kurze Namen, die in /etc/hosts aufgelst werden. Auerdem ist es mglich, dass neben der eigenen Domain auch Rechnernamen in anderen Domains durchsucht werden knnen. Dazu dient das Schlsselwort search. Wenn in der Datei angegeben werden soll, dass der Name der eigenen Domain rma.de ist und die Rechner der Domain konkurrenz.de, die vermutlich nicht in Ihrem lokalen Netz beheimatet sind, ebenfalls mit ihrem kurzen Namen gefunden werden, mssen die Eintrge so aussehen:
domain firma.de search konkurenz.de

Danach liee sich auch der Rechner boss.konkurrenz.de ber den Namen boss erreichen. Wenn es allerdings in Ihrer Domain (rma.de) ebenfalls einen Rechner mit dem Namen boss geben sollte, wird dieser bevorzugt. Es knnen auch mehrere Domains durchsucht werden; sie sind durch Leerzeichen getrennt hinter dem Schlsselwort serach aufzulisten. Konguration des eigenen Rechnernamens Der letzte Teil der Namenskonguration betrifft Ihren eigenen Rechner. Dieser muss ebenfalls wissen, wie er heit. Dazu ist dem Programm /bin/hostname mit der Option - -le der Name einer Datei zu bergeben, in die der Rechnername eingetragen ist. Per Konvention wird die Datei /etc/hostname benutzt. In der Datei sollte sich lediglich der einfache Name Ihres Rechners ohne Domne benden. Der Name kann dann so gesetzt werden: debian:~# hostname - -file /etc/hostname Whrend des Systemstarts wird das Kommando automatisch ausgefhrt. Er steht im Skript /etc/init.d/hostname.sh. Ohne Optionen aufgerufen zeigt das Programm den Namen des Rechners an, beim Arbeiten im Netz hilfreich. 17.2.2 Automatische Netzkonguration whrend des Systemstarts Wenn Sie die Netzkonguration so ausgefhrt haben, wie es im letzten Kapitel beschrieben ist, werden Sie sich vielleicht fragen, ob Sie diese Schritte nun bei jedem Neustart wiederholen mssen. Das ist nicht notwendig. Alle Einstellungen werden whrend des Systemstarts durch das Skript /etc/init.d/networking automatisch vorgenommen. Damit dies funktioniert, muss jedoch sichergestellt sein, dass der oder die Treiber fr die Netzkarten sich entweder im Kern benden oder automatisch geladen werden

612

17 Debian GNU/Linux im Netz

knnen. Im Fall von Treibermodulen ist dies sichergestellt, wenn Sie die Module mit modconf eingerichtet haben. Ansonsten mssen Sie die Einstellungen eventuell selbst vornehmen (siehe Seite 428). Dann mssen alle netzspezischen Angaben in die Datei /etc/network/interfaces eingetragen werden. Die Eintrge beginnen jeweils mit dem Schlsselwort iface und der Bezeichnung des betreffenden Interfaces (eth0). Darauf folgt fr Interfaces, die mit dem Internet-Protokoll benutzt werden, das Wort inet und schlielich ein Schlsselwort, durch das bestimmt wird, wie das entsprechende Interface konguriert wird. Fr Ethernetkarten mit fest zugewiesenen IP-Adressen ist dort das Schlsselwort static anzugeben. Wenn Sie die Netzkonguration bereits whrend der Basisinstallation durchgefhrt haben, bendet sich in der Datei bereits ein Eintrag fr das entsprechende Interface. Beispiel: iface eth0 inet static Unter einer solchen Interfacebeschreibung wird mit verschiedenen Schlsselwrtern und Werten angegeben, mit welchen Werten das Interface zu kongurieren ist. Die Datei darf auerdem Kommentare und leere Zeilen enthalten. Beispiel:
# Konfiguration einer Ethernetkarte iface eth0 inet static address 192.168.10.20 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 gateway 192.168.10.250

Zur Konguration von Ethernetkarten mit statischen Adressen stehen folgende Optionen zur Verfgung: address Hinter dem Schlsselwort wird die IP-Adresse angegeben, die dem Interface zugewiesen wird. Die Angabe der IP-Adresse ist zwingend erforderlich. netmask Hier wird die Netzmaske des Netzes angegeben, an welches das Interface angeschlossen ist. Diese Angabe ist ebenfalls zwingend erforderlich. network Nach diesem Schlsselwort wird die Netzadresse des Netzes angegeben. Standardmig errechnet sich diese Adresse aus IP-Adresse und Netzmaske. broadcast Hiermit wird die Broadcastadresse angegeben, die in dem Netz benutzt wird. Standardmig ist dies die hchste in dem Netz verfgbare Adresse. gateway Wenn ein Standard-Gateway benutzt wird, muss die Adresse des Gateways hinter diesem Schlsselwort angegeben werden. auto Das Interface wird beim Systemstart automatisch konguriert. up Hinter diesem Schlsselwort werden Kommandos angegeben, die ausgefhrt werden, wenn das Interface konguriert ist. Dadurch lassen sich beispielsweise spezielle Routen setzen. Es drfen mehrere up-Zeilen aufeinander folgen. Die Kommandos werden in der angegebenen Reihenfolge ausgefhrt. down Hier werden Kommandos angegeben, die ausgefhrt werden, wenn das Interface deaktiviert wird. Wie bei up drfen auch hier mehrere Zeilen angegeben werden.

17.2 Basiskonguration

613

An Stelle von IP-Adressen drfen in der Datei Namen angegeben werden. Diese mssen in den Dateien /etc/hosts und /etc/networks deniert worden sein, um ohne DNS aufgelst werden zu knnen. Beispiel:
iface eth1 inet static address vw-router network verwaltung netmask 255.255.255.0 up echo "1" > /proc/sys/net/ipv4/ip_forward down echo "0" > /proc/sys/net/ipv4/ip_forward

Sobald sich die Informationen in der Datei benden, knnen die Interfaces mit dem Kommando ifup aktiviert und mit dem Kommando ifdown deaktiviert werden. Den Kommandos ist entweder der Name des zu (de-)aktivierenden Interfaces zu bergeben oder der Parameter -a fr alle Interfaces. Beispiel: debian:~# ifup eth0 Mit diesem Kommando wird das erste Ethernet-Interface konguriert und aktiviert. berprfen Sie mit den Kommandos ifcong und route, ob dabei alle notwendigen Einstellungen richtig vorgenommen wurden. Andere Kongurationsmethoden Nicht in allen Fllen ist es notwendig oder erwnscht, die IP-Adresse und andere Einstellungen eines Netzinterfaces festzulegen. Ein simples Beispiel hierfr ist das Loopback-Interface. Es wird immer mit denselben Einstellungen benutzt, die Angabe bestimmter Optionen zur Konguration ist nicht notwendig. Das Interface kann in der Datei /etc/network/interfaces folgendermaen eingerichtet werden: iface lo inet loopback Mit dem Schlsselwort loopback (im Gegensatz zu static in den vorherigen Beispielen) wird festgelegt, dass die bekannten Einstellungen fr das LoopbackInterface zu verwenden sind. Konguration ber DHCP Wenn in Ihrem Netz ein DHCP-Server (Dynamic Host Conguration Protocol) vorhanden ist, der den angeschlossenen Rechnern IP-Adressen und andere Netzeinstellungen automatisch zuweist, knnen Sie dies in der Datei /etc/network/interfaces ebenfalls angeben. Es ist dann notwendig, zustzlich DHCP-Klientprogramme zu installieren. Diese Programme sind in den Paketen pump und dhcp-client enthalten. Im allgemeinen ist die Verwendung des Pakets pump zu empfehlen. Achtung: Whrend der Installation des Pakets pump werden Sie aufgefordert anzugeben, welche Interfaces per DHCP konguriert werden sollen. Geben Sie hier kein Interface an, wenn Sie die Konguration ber die Datei /etc/network/interfaces vornehmen wollen, was empfohlen wird.

614

17 Debian GNU/Linux im Netz

Nach der Installation eines DHCP-Klient-Pakets knnen Sie das Interface durch die folgende Anweisung in /etc/network/interfaces automatisch per DHCP kongurieren lassen: iface eth0 inet dhcp Wie bei der Kongurationsmethode static ist es auch hier mglich, einige zustzliche Angaben zu machen: hostname Name Gibt mit Name den fr diesen Rechner gewnschten Namen an. leasehours Zeit Gibt mit Zeit die gewnschte Leasetime (Lebensdauer der dynamisch zugewiesenen IP-Adresse) an. Wenn Sie ein anderes DHCP-Klientpaket als pump verwenden, nden Sie in der Manualseite ifup Hinweise, welche Optionen benutzt werden knnen. Achtung: Beim Einsatz von pump wird die Datei /etc/resolv.conf berschrieben, um das System fr den Einsatz des richtigen DNS-Servers zu kongurieren. Eigene Einstellungen knnen verloren gehen. Nachdem sich der entsprechende Eintrag in der Datei /etc/network/interfaces bendet, wird das Interface ebenfalls mit ifup -a aktiviert. Arbeiten mit unterschiedlichen Kongurationen Wenn Sie mit Ihrem Rechner gelegentlich von einem Netz zu einem anderen umziehen, wie es bei Laptops der Fall ist, bentigen Sie unterschiedliche Einstellungen fr unterschiedliche Standorte. Es wre lstig, wenn Sie die Einstellungen jedesmal von Hand neu vornehmen mssten, sobald Sie das Netz gewechselt haben. Aus diesem Grund ist es mglich, in der Datei /etc/network/interfaces Schemata anzugeben, die jeweils einer Konguration oder einem Standort entsprechen. Diese Schemata sind jeweils mit dem Schlsselwort scheme und einem Namen einzuleiten. Beispiel:
# /etc/network/interfaces fr zwei Konfigurationen # (z.B. daheim und am Arbeitsplatz) # Das Loopback-Interface wird in jeder Konfiguration bentigt iface lo inet loopback # Nun folgt die Konfiguration fr daheim scheme daheim iface eth0 inet static address 192.168.10.15 netmask 255.255.255.0 gateway 192.168.10.250 # Und die Konfiguration fr den Arbeitsplatz scheme arbeit iface eth0 inet dhcp

17.3 Einwahl ber Internet Service Provider

615

Das Loopback-Interface wird in jeder Konguration benutzt. In dem Schema daheim wird eine statische Konguration mit den angegebenen Adressen verwendet, whrend in dem Schema arbeit die Konguration ber DHCP bezogen wird. Achtung: Kongurationen, die Schemata zugeordnet sind, werden whrend des Systemstarts nicht automatisch konguriert. Im Beispiel oben wrde whrend des Systemstarts nur das Loopback-Interface automatisch konguriert werden. Nun ist es mglich mit dem Kommando ifup und dem Parameter -s die Konguration auszuwhlen. Im Beispiel ist am Arbeitsplatz folgendes Kommando einzugeben: debian:~# ifup -a -s arbeit Und zu Hause angekommen (der Rechner braucht zwischendurch nicht heruntergefahren zu werden) ist dieses Kommando einzugeben, um die Einstellungen fr das heimische Netz wirksam werden zu lassen: debian:~# ifup -a -s daheim

17.3 Einwahl ber Internet Service Provider


Der Aufbau von Einwahlverbindungen ins Internet ber einen Internet-ServiceProvider funktioniert prinzipiell genauso wie die Einrichtung einer Netzverbindung mit einer Ethernetkarte. Auch hier mssen bestimmte Treiber im Kern vorhanden sein, ein Netzinterface eingerichtet werden und Routen sowie die Namensauflsung konguriert werden. Praktisch sieht das allerdings etwas anders aus. Der wesentliche Grund dafr ist, dass es bei einer Einwahlverbindung nicht ausreicht, einem Netzinterface einfach eine IP-Adresse zuzuweisen. Vielmehr muss zunchst eine Telefonnummer gewhlt werden, es muss darauf gewartet werden, dass die Gegenstelle abhebt, und schlielich ist es in den meisten Fllen erforderlich, dem Internetprovider einen Benutzernamen und ein Passwort zu schicken, bevor dieser den Verbindungswunsch annimmt. Einwahlverbindungen werden heute meist ber das Point-To-Point-Protokoll (PPP nach RFC 1661) betrieben. Die Steuerung von Verbindungen ber dieses Protokoll wird unter Linux/UNIX von dem PPP-Dmon (pppd) bernommen. Das Programm kann die Anmeldung (Authentizierung) an der Gegenstelle vornehmen und mit dieser alle Details des Verbindungsaufbaus sowie der Durchfhrung aushandeln. Das Programm pppd stellt auch das Netzinterface fr eine Verbindung zur Verfgung und konguriert dieses automatisch, weswegen es nach erfolgtem Verbindungsaufbau nicht mehr manuell mit ifcong eingerichtet werden muss. Auerdem kann pppd die Standard-Route selbststndig einrichten, so dass auch der Aufruf des Kommandos route bei PPP-gesteuerten Verbindungen nicht notwendig ist. Trotzdem lassen sich beide Kommandos auch mit Einwahlverbindungen verwenden. Bezglich der Namensauflsung gibt es zwischen PPP-Verbindungen und Ethernet keinen Unterschied. In beiden Fllen wird anhand der Eintrge in den Dateien /etc/nsswitch.conf und /etc/resolv.conf entschieden, wie Namen aufzulsen sind

616

17 Debian GNU/Linux im Netz

und welcher Nameserver zu befragen ist. Ein Problem ergibt sich, wenn abwechselnd verschiedene Internet-Provider benutzt werden. In der Regel ist es am besten, immer den DNS-Server zu verwenden, den der aktuell benutzte Provider anbietet, weil zu diesem Server die schnellste Verbindung aufgebaut werden kann. Aus diesem Grund besteht die Mglichkeit, die mit einem Provider zu verwendenden DNSServer whrend der Konguration anzugeben oder sich ihre Adressen whrend des Verbindungsaufbaus vom Provider automatisch mitteilen zu lassen. Wenn Sie eine solche Konguration whlen, wird die Datei /etc/resolv.conf whrend des Verbindungsaufbaus gegen eine andere ausgetauscht, welche die entsprechenden Einstellungen fr den Provider enthlt, mit dem Sie sich gerade verbunden haben. Nach Beendigung der Verbindung wird die alte Version der Datei wieder an ihren Platz gebracht. Die Konsequenz aus dieser Vorgehensweise ist, dass Eintragungen, die Sie in der Datei vorgenommen haben, nicht wirksam sind, solange die Verbindung zu einem Provider aktiv ist. Im Gegensatz zu festen Verbindungen, die beim Systemstart eingerichtet werden, werden Einwahlverbindungen gewhnlich manuell gestartet, wenn sie bentigt werden, und beendet, sobald sie nicht bentigt werden. Schlielich sollen Kosten gespart werden und Telefonleitungen nicht dauernd besetzt sein. Ein alternatives Verfahren hierzu ist das Dial-On-Demand (Whlen auf Verlangen). Hierbei werden das Netzinterface und die Route eingerichtet, bevor die Einwahlverbindung aufgebaut ist. Fr Anwendungen sieht es dann so aus, als wren sie bereits mit dem Netz (Internet) verbunden, obwohl dies gar nicht der Fall ist. Sobald eine Anwendung wie ein Web-Browser Daten ber das Interface schickt, wird die Verbindung aufgebaut. Eine manueller Verbindungsaufbau ist nicht mehr notwendig. Sinnvoll ist es, zusammen mit diesem Verfahren einen Timeout-Wert zu kongurieren, nachdem die Verbindung automatisch wieder abgebaut wird, wenn sie eine Zeitlang nicht mehr benutzt wurde. Achtung: Wenn Sie Dial-On-Demand verwenden, sollten Sie das Verhalten Ihrer Konguration eine Zeitlang genau beobachten. Oft kommt es vor, dass Programme Datenpakete in das Netz schicken, um beispielsweise eine DNSAnfrage auszufhren, obwohl dies vom Benutzer nicht gewnscht ist, und dadurch einen Verbindungsaufbau auslsen. Eine schlechte Dial-On-DemandKonguration hat schon bei manchem Benutzer zu Kopfschmerzen nach Erhalt der Telefonrechnung gefhrt. Weitere Hinweise hierzu nden Sie auf Seite 750. Die Art, wie eine Einwahlverbindung konguriert wird, hngt davon ab, ob Sie einen herkmmlichen analogen Telefonanschluss mit einem Modem verwenden oder einen ISDN-Anschluss und eine ISDN-Karte. Beide Verfahren sind zwar miteinander verwandt, erfordern aber trotzdem unterschiedliche Treiber und Software. Auerdem unterscheidet sich die Konguration. Der Standardkern enthlt bereits alles, was Sie zur Benutzung von Verbindungen mit einem Modem bentigen, auerdem ist dort auch die Untersttzung fr viele ISDN-Karten enthalten. Wenn Sie einen selbst erstellten Kern verwenden, lesen Sie in Kapitel 11 nach, welche Optionen Sie aktivieren mssen.

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

617

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem


Damit Sie PPP benutzen knnen, mssen Sie das Paket ppp installieren, welches das Programm pppd sowie zustzlich bentigte Programme und Dateien enthlt. Auerdem mssen Sie einen Kern verwenden, in dem die Untersttzung fr PPP und serielle Schnittstellen eingebaut ist oder fr den sie in Form eines ladbaren Moduls zur Verfgung steht (siehe Kapitel 11). Zur Konguration von Einwahlverbindungen ber PPP steht unter Debian GNU/Linux ein Programm zur Verfgung, das in dem Paket pppcong enthalten ist und den gleichen Namen trgt. 17.4.1 Konguration der seriellen Schnittstelle Bevor Sie mit der Konguration beginnen, sollten Sie wissen, an welche serielle Schnittstelle Ihr Modem angeschlossen ist. Serielle Schnittstellen werden durch Gertedateien im Verzeichnis /dev/ reprsentiert. Ihre Namen lauten ttyS0 fr die erste serielle Schnittstelle, ttyS1 fr die zweite und so weiter. Die Schnittstelle, die unter DOS oder MS-Windows ber die Bezeichnung COM1 angesprochen werden wrde, heit unter Linux ttyS0. Der Treiber fr serielle Schnittstellen kann entweder fest in den Kern eingebaut werden oder als Modul kompiliert sein. Die Standardkerne verwenden ein Modul, das automatisch geladen wird, sobald auf die serielle Schnittstelle(n) zugegriffen wird. Beim Start des Kerns bzw. beim Laden des Moduls wird versucht, die seriellen Schnittstellen automatisch zu erkennen. Dies gelingt nicht in jedem Fall, weswegen die Schnittstelle, an der sich das Modem bendet, u. U. manuell konguriert werden muss. Hierzu dient das Programm setserial (S. 860). Welche seriellen Schnittstellen konguriert sind, wird whrend des Systemstarts ausgegeben, Sie knnen die Ausgabe wiederholen, indem Sie folgendes Kommando ausfhren: debian:~# setserial -gb /dev/ttyS* Die Ausgabe sollte sinngem folgendermaen aussehen:
/dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A /dev/ttyS1 at 0x02f8 (irq = 3) is a 16550A

Hier wird angezeigt, dass die seriellen Schnittstellen /dev/ttyS0 sowie /dev/ttyS1 erfolgreich konguriert wurden. Weiter wird ausgegeben, welche IO-Adressen und welche Interrupts durch diese Schnittstellen belegt sind. Schlielich wird des Typ des UART-Chips der Schnittstellen angezeigt (16550A). Wenn sich die Schnittstelle, an die das Modem angeschlossen ist, nicht in der Liste bendet, mssen Sie diese manuell mit setserial kongurieren. In der Regel reicht es aus, dem Programm die IO-Adresse und den Interrupt der Schnittstelle zu bergeben. Gelegentlich ist jedoch auch die Angabe des UART-Typs erforderlich. Um die dritte serielle Schnittstelle mit der Basisadresse 0x3e8 und dem Interrupt 6 zu kongurieren, ist das Programm so aufzurufen:

618

17 Debian GNU/Linux im Netz

debian:~# setserial /dev/ttyS2 port 0x3e8 irq 6 autoconfigure Um zu berprfen, ob die Konguration funktioniert hat, knnen Sie das oben genannte Kommando (setserial -gb . . . ) wiederholen. Die Schnittstelle sollte dann mit ausgegeben werden. Mehr Informationen zu setserial nden Sie auf Seite 860 sowie in der Manualseite zu dem Programm. Die Einstellungen der seriellen Schnittstellen werden whrend des Systemabschlusses automatisch gesichert und bei einem erneuten Systemstart wieder geladen. Sie brauchen keine Kongurationsdateien zu verndern, um Ihre Einstellungen zu sichern. Nur wenn das automatische Laden der Einstellungen nicht klappt, das Gert aber per Hand (mit setserial) zu kongurieren ist, mssen Sie die Optionen, mit denen setserial aufgerufen wurde, in die Datei /etc/serial.conf eintragen und dort die Zeile lschen, in der AUTOSAFE steht. Falls Sie ein WinModem besitzen, knnen Sie dies wahrscheinlich nicht unter Linux verwenden. Es handelt sich dabei um Gerte, die ihrer Intelligenz beraubt sind und einen sehr aufwendigen Treiber bentigen, der unter Linux nicht zur Verfgung steht. 17.4.2 PPP-Konguration mit pppcong Das Paket pppcong muss installiert sein. Um die Konguration des PPP-Systems zu starten, geben Sie an der Kommandozeile folgendes Kommando ein: debian:~# pppconfig

Abbildung 17.2. Hauptmen des Programms pppcong

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

619

Es erscheint der in Abbildung 17.2 dargestellte Bildschirm: Das Programm fhrt Sie mit einer Reihe von Fragen durch die Konguration des Zugangs. Es wird hnlich benutzt wie das Installationsprogramm des Basissystems: Mit den Pfeiltasten wird in Listen zwischen verschiedenen Punkten gewechselt, mit der TAB-Taste kann zwischen Feldern auf dem Bildschirm (beispielsweise einem Eingabefeld und der Option OK) gewechselt werden, und mit E INGABE wird eine Angabe oder Auswahl besttigt. Nachdem alle Fragen beantwortet sind, knnen die einzelnen Angaben nochmals eingesehen und korrigiert werden, sodass ein Fehler nach Beantwortung aller Fragen behoben werden kann (vorher allerdings nicht). Das Programm bietet in seinem Hauptmen folgende Kommandos zur Auswahl: Create Mit dem Kommando werden neue Verbindungen konguriert. Change Mit dem Kommando lassen sich bereits kongurierte Verbindungen ndern. Delete Hiermit lassen sich Verbindungen lschen. Finished Das Kommando sichert alle vorgenommenen Vernderungen. Nach der Sicherung wird in das Hauptmen zurckgekehrt. Quit Mit dem Kommando wird das Programm verlassen. Falls nderungen an der Konguration vorgenommen worden sind, die noch nicht gesichert wurden, erfolgt eine Sicherheitsabfrage, ob die nderungen verworfen werden sollen. Kongurieren einer neuen Verbindung Nach Auswahl des Kommandos Create muss der neuen Verbindung ein Name zugewiesen werden. Die Verbindung, die Sie standardmig benutzen, sollte den Namen provider tragen. Alle anderen Verbindungen mssen eindeutige Namen haben, ber die spter die zu benutzende Verbindung ausgewhlt wird. Im nchsten Schritt mssen Sie ein Verfahren zur DNS-NameserverKonguration auswhlen. Es stehen drei Verfahren zur Verfgung: Static Sie geben einen oder mehrere DNS-Server an, die benutzt werden sollen, wenn die Verbindung zu dem Provider aufgebaut worden ist. Dynamic Die zu verwendenden Nameserver werden nach dem Verbindungsaufbau automatisch vom Provider erfragt. None Beim Verbindungsaufbau erfolgt keine automatische Konguration eines Nameservers. Sie mssen sich selbst um die Konguration kmmern, beispielsweise durch Angaben in der Datei /etc/resolv.conf. Im allgemeinen ist das Verfahren Dynamic zu empfehlen, vorausgesetzt, Ihr Provider untersttzt die automatische Konguration von Nameservern. Wenn nicht, sollten Sie das Verfahren Static whlen, Sie bentigen dann die IP-Adresse des DNSServers Ihres Providers. Das Verfahren None ist in der Regel nicht zu empfehlen, weil hier fr jeden Provider derselbe Nameserver benutzt wird. Eine Ausnahme hiervon ist die Verwendung eines eigenen DNS-Servers. Wenn Sie sich fr das Verfahren Static entschieden haben, werden Sie aufgefordert, die IP-Adresse (!) des Nameservers einzugeben, den Sie fr diese

620

17 Debian GNU/Linux im Netz

Verbindung verwenden wollen. Optional knnen Sie danach einen zweiten Nameserver angeben. Nach der Nameserver-Konguration wird ausgewhlt, welches Verfahren zur Authentizierung mit dem Provider benutzt werden soll. Die meisten Provider teilen Ihnen einen Benutzernamen und ein Passwort mit, die whrend des Verbindungsaufbaus bentigt werden. Das Authentizierungsverfahren ist das Verfahren, mit welchem dem Provider diese Informationen whrend des Verbindungsaufbaus mitgeteilt werden. Hierzu stehen drei Verfahren zur Verfgung: PAP: Password Authentication Protocol. Dies ist das Standardprotokoll unter MSWindows; es wird von den meisten Providern untersttzt. CHAP: Challenge Handshake Authentication Protocol. Ein gegenber PAP sichereres Protokoll, das ebenfalls von vielen Providern untersttzt wird. Chat: Skriptgesteuerte Anmeldung. Es ndet eine Unterhaltung (Chat) mit der Gegenstelle statt, bei der diese die Aufforderung sendet, den Benutzernamen anzugeben, woraufhin Ihr Rechner antwortet. Unter Umstnden mssen auch noch spezielle Kommandos an den Rechner auf der anderen Seite gesendet werden, damit dieser PPP startet. Diese Form der Anmeldung nennt man skriptgesteuert, weil die Kommunikation zwischen den beteiligten Rechnern ber ein Skript gesteuert wird, das von dem Programm chat ausgefhrt wird. Ihr Internet-Provider sollte Sie informiert haben, welches Authentizierungsprotokoll Sie verwenden knnen. Wenn Sie CHAP verwenden knnen, sollten Sie dieses Protokoll whlen. Wenn Sie sich nicht sicher sind, whlen Sie PAP. Die skriptgesteuerte Anmeldung ist heute bei so gut wie keinem Provider mehr notwendig.
Falls bei ihrem Provider nur eine skriptgesteuerte Authentizierung mglich ist und Sie diese ausgewhlt haben, folgt nach der Auswahl die Konguration des Skripts zur Authentizierung. Ein solches Skript besteht im wesentlichen aus einer Folge von Ausdrcken, die angeben, welche Zeichenkette von der Gegenseite erwartet wird und welche Zeichenkette der einwhlende Rechner zu senden hat, sobald die erwartete Zeichenkette eingetroffen ist. Beispielsweise kann die Gegenseite mit der Zeichenkette Login: zum Senden des Benutzernamens auffordern, woraufhin Ihr Rechner den Namen dann senden msste. Wre das Passwort bei einem Provider beispielsweise karl7meier, so wrde in der Skriptsteuerdatei dann die Zeile ogin: karl7meier stehen. Das L wurde absichtlich weggelassen, weil wir uns nicht sicher sind, ob der Provider Login mit groem oder mit kleinem L sendet und die Zeichenkette ogin auch ausreicht, um die Aufforderung zum Senden des Benutzernamens zu erkennen. Unter Umstnden mu ein relativ aufwendiges Skript zum Aufbau der Verbindung sowie zur Athentizierung verwandt werden, weil nach der Anmeldung beim Provider noch spezielle Kommandos ausgefhrt werden mssen. Die Kongurationsmglichkeiten fr solche Skripte durch pppcong sind begrenzt. Deswegen sollte in einem solchen Fall ein einfaches (nicht funktionsfhiges) Skript im Rahmen der Mglichkeiten des Programms erzeugt werden, da von Hand verbessert wird. Dieses Vorgehen hat den Vorteil, da das Grundgerst bereits vorhanden ist und man nicht alles von Hand kongurieren muss. Der erste Schritt zur Konguration eines Chatskripts mit pppcong besteht darin, dass Sie angeben, welche Zeichenkette Ihr Provider sendet, um Ihren Rechner zum Senden des Benutzernamens aufzufordern. Gewhnlich ist diese Zeichenkette Login: oder Username:. Lschen Sie den Vorgabewert ogin: gegebenenfalls und ersetzen Sie ihn durch

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

621

die richtige Zeichenkette. Danach ist die Zeichenkette anzugeben, die der Provider sendet, wenn er das Passwort anfordert. Standardmig ist dies die Zeichenkette Password:, so dass Sie den voreingestellten Wert bernehmen knnen. Zustzliche Einstellungen zur skriptgesteuerten Anmeldung lassen sich nach Abschluss der Basiskonguration der entsprechenden Verbindung im Men Advanced Options vornehmen.

Gleich, welches Authentizierungsverfahren Sie gewhlt haben, mssen Sie nun Ihren Benutzernamen bei dem Provider angeben. Lschen Sie den vorgegebenen Text replace_with_your_login_name mit der Z URCK-Taste und geben Sie den Benutzernamen ein, den Sie von Ihrem Provider bekommen haben (nicht Ihren Linux/UNIX-Benutzernamen auf Ihrem System). Danach erfolgt die Aufforderung zur Angabe des Passworts. Auch hier mssen Sie den vorgegebenen Text replace_with_your_password mit der Z URCK-Taste Lschen und dann das Passwort eingeben, das Sie von Ihrem Provider bekommen haben. Das Passwort wird whrend der Eingabe angezeigt. Danach ist einzustellen, mit welcher Geschwindigkeit die serielle Schnittstelle betrieben werden soll, an die Ihr Modem angeschlossen ist. Die hier einzustellende Geschwindigkeit ist von der Geschwindigkeit des Modems zu unterscheiden. Weil Modems Daten komprimieren knnen, wird fr die Strecke vom Rechner zum Modem in der Regel eine hhere Geschwindigkeit bentigt, als sie das Modem zum Datentransfer nach auen benutzt. Der Vorgabewert (115200) sollte in der Regel beibehalten werden. Nur bei lteren Rechnern mit langsamen Modems (14.400 bps oder weniger) empehlt sich die Verwendung des Wertes 57600. Danach wird angegeben, welches Wahlverfahren Sie benutzen wollen. Das Mehrfrequenzwahlverfahren (MWV) wird heute von allen Vermittlungsstellen der Telekom untersttzt, so dass Sie hier Tone auswhlen sollten. Nur wenn dies nicht funktioniert (weil Sie eine alte Nebenstellenanlage benutzen), sollten Sie es mit Pulse versuchen. Der Verbindungsaufbau dauert beim Pulse-Verfahren sprbar lnger. Nun folgt die Angabe der Telefonnummer zur Einwahl bei Ihrem Provider. Lschen Sie den Vorgabewert replace_with_number mit Hilfe der Z URCK-Taste und tragen Sie die Telefonnummer ein. Schlielich muss das Programm wissen, an welche serielle Schnittstelle das Modem angeschlossen ist. Hierzu besteht die Mglichkeit der automatischen Erkennung sowie zur manuellen Auswahl. Falls Sie sich nicht sicher sind, sollten Sie die automatische Erkennung auswhlen. Der Erkennungsvorgang kann bis zu einer Minute Zeit beanspruchen. Nachdem die Erkennung abgeschlossen ist, erscheint ein Men, in dem alle gefundenen Schnittstellen zur Auswahl stehen. Die Schnittstelle, an der das Programm ein Modem gefunden hat, ist bereits ausgewhlt, sodass Sie im gnstigsten Fall lediglich OK auswhlen mssen, um die Konguration zu bernehmen. Wenn das Modem nicht gefunden wurde, ist der Menpunkt Manual auszuwhlen, um den Namen der seriellen Schnittstelle von Hand einzugeben. Zur manuellen Auswahl geben Sie den Namen der Gertedatei, durch welche die Schnittstelle reprsentiert wird, in das Textfeld ein. Die Konguration ist nun abgeschlossen, und es erscheint ein Bildschirm (Abbildung 17.3), in dem die vorgenommen Einstellungen im berblick dargestellt werden.

622

17 Debian GNU/Linux im Netz

Durch Auswahl mit den Pfeiltasten lassen sich einzelne Einstellungen auswhlen und korrigieren. Nach Auswahl des Punktes Advanced ist es mglich, die folgenden speziellen Einstellungen vorzunehmen (einige der hier mglichen Einstellungen stehen nur dann zur Verfgung, wenn Sie vorher die skriptgesteuerte Anmeldung ausgewhlt haben): Wenn Sie whrend der Bearbeitung dieser Einstellungen den Menpunkt CANCEL auswhlen, springt das Programm wieder an den Anfang der Konguration. Sie muss dann vollstndig neu durchlaufen werden. Durch Auswahl des Menpunktes Previous gelangen Sie von den Advanced-Einstellungen wieder in dieses Men. Wenn alle Einstellungen richtig sind, sollten Sie den Menpunkt Finished whlen, mit dem die Einstellungen gesichert werden. Modeminit Hiermit wird die Zeichenkette eingestellt, die zur Initialisierung an das Modem geschickt wird. Der Standardwert ATZ ist in den meisten Fllen richtig. ISPConnect Bei der skriptgesteuerten Anmeldung ist es gelegentlich erforderlich, eine bestimmte Zeichenkette an die Gegenstelle zu senden, um diese dazu aufzufordern, mit der Authentizierung zu beginnen. In der Regel ist dies nicht erforderlich. In seltenen Fllen ist das Senden eines Wagenrcklaufzeichens (Carriage Return) erforderlich. Dieses Zeichen senden Sie, indem Sie nach Auswahl des Menpunkts ISPConnect die Zeichenkette \r eingeben. Weitere solcher Escape-Sequenzen sind in der Manual-Seite zu dem Programm chat aufgefhrt. Pre-Login Wenn bei der skriptgesteuerten Anmeldung vor der Authentizierung ein Dialog zwischen Ihrem Rechner und der Gegenstelle notwendig ist, geben Sie hier an, welche Zeichenketten von der Gegenstelle erwartet werden und was zu senden ist, wenn die entsprechenden Zeichenketten eingetroffen sind. Es muss immer ein Paar von Zeichenketten angegeben werden, wobei zuerst die erwartete Zeichenkette und danach die Antwort eingegeben werden muss. Defaultroute Normalerweise sollen alle IP-Pakete, die im lokalen Netz nicht zugestellt werden knnen, an den Internetprovider geschickt werden, damit dieser sie weiterleitet. Wenn Sie dies nicht wnschen, knnen Sie hier den Wert nodefaultroute auswhlen. Dies bewirkt, dass die Verbindung nicht mehr wie erwartet funktioniert. Ipdefault blicherweise wird Ihrem Rechner bzw. seinem PPP-Interface nach dem Verbindungsaufbau vom Provider eine IP-Adresse zugewiesen, ber die Ihr Rechner im Internet erreicht werden kann. Man spricht hier von dynamischen IP-Adressen. Im Gegensatz dazu ist es mglich, statische IP-Adressen zu verwenden, wobei die eigene Adresse sowie die Adresse des Providers schon vor dem Verbindungsaufbau feststehen. Dieses Verfahren wird von den meisten Providern nicht ohne Aufpreis untersttzt. Wenn Sie die zu verwendende IP-Adresse selbst festlegen wollen, knnen Sie diese hier angeben. Dabei ist es auch mglich, die IP-Adresse der Gegenstelle (Provider) festzulegen. Die Angabe muss in folgendem Format vorgenommen werden: lokale-IP:ferne-IP. Wenn Sie nur die lokale IP-Adresse angeben wollen, lassen Sie den Wert hinter dem Doppelpunkt aus.

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

623

Debug Standardmig werden beim Verbindungsauf- und -abbau Meldungen ausgegeben, mit Hilfe derer auf Fehler zurckgeschlossen werden kann. Wenn Sie die Option Debug auswhlen, knnen Sie dieses Verhalten abschalten. Demand Nach Auswahl dieser Option knnen Sie angeben, ob die Verbindung im Dial-On-Demand-Modus betrieben werden soll. Sie sollten diese Option erst dann aktivieren, wenn Sie wissen, dass die Verbindung im konventionellen Modus funktioniert. Nameservers ber den Menpunkt erreichen Sie das Men zur Konguration von DNS-Servern, das Sie bereits von der Basiskonguration der Verbindung her kennen. Add-User Nach Auswahl der Option knnen Sie Namen von Benutzern angeben, die berechtigt sein sollen, Einwahlverbindung auf- und abzubauen. Hier angegebene Benutzernamen mssen auf dem System bereits bekannt sein. Post-Login Entsprechend der Option Pre-Login ist es bei Verwendung des skriptgesteuerten Authentizierungsverfahrens mglich zu kongurieren, welche Kommunikation nach der eigentlichen Anmeldung zwischen Gegenstelle und Ihrem Rechner stattnden soll. Wenn die Gegenstelle beispielsweise nach erfolgter Anmeldung die Zeichenkette Auswahl: sendet und Sie daraufhin das Zeichen 1 abschicken mssen, damit die Gegenstelle das PPP-Protokoll startet, dann ist hier uswahl: 1 einzugeben. Idle-Timeout Hiermit bestimmen Sie, nach wieviel Sekunden Inaktivitt die Verbindung automatisch abgebaut werden soll. Geben Sie die Zeitdauer in Sekunden an. Wenn Sie nicht wnschen, dass die Verbindung automatisch abgebaut wird, lassen Sie das Feld leer. In Verbindung mit Dial-On-Demand sollte hier ein Timeout-Wert angegeben werden, beispielsweise 120, um die Verbindung nach 2 Minuten Inaktivitt abzubauen. ndern der Konguration einer Verbindung Um die Konguration einer bereits erstellten Verbindung zu verndern, whlen Sie im Hauptmen von pppcong den Menpunkt Change aus. Sie knnen dann die zu verndernde Verbindung auswhlen. Danach springt das Programm in das Einstellungsmen, wie es in Abbildung 17.3 dargestellt ist. Whlen Sie die zu ndernde Einstellung aus oder die Option Advanced, wodurch Sie die im vorhergehenden Abschnitt beschriebenen Einstellungen verndern knnen. Denken Sie daran, die Einstellungen zu sichern, nachdem sie verndert worden sind. 17.4.3 Testen und Benutzen von PPP-Verbindungen Sobald eine Verbindung fertig konguriert ist, knnen Sie diese mit folgendem Kommando aktivieren: pon [Providername] Wenn Sie die Standardverbindung (deren Name provider ist) benutzen wollen, reicht es aus, das Kommando ohne Parameter einzugeben:

624

17 Debian GNU/Linux im Netz

Abbildung 17.3. ndern von Verbindungseinstellungen mit pppcong

debian:~# pon Um die Verbindung zu einem anderen Provider aufzubauen, bergeben Sie dem Kommando den Namen des Providers, den Sie benutzen mchten, beispielsweise: debian:~# pon t-offline Bei Verwendung eines externen Modems sollten Sie sehen und hren, wie das Modem die Verbindung zu dem Provider aufbaut. Zum Testen sollten Sie ebenso vorgehen wie beim Testen einer Netzverbindung ber Ethernet. Zunchst ist zu prfen, ob das Netzinterface erfolgreich konguriert wurde. Dazu dient das Kommando ifcong: debian:~# ifconfig In der Ausgabe sollte sich ein Eintrag fr das Netzinterface ppp0 benden, der sinngem folgendermaen aussieht:
ppp0 Link encap:Point-to-Point Protocol inet addr:145.253.71.145 P-t-P:145.253.1.165 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:12 errors:1 dropped:0 overruns:0 frame:1 TX packets:14 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10

Diesem Eintrag knnen Sie die IP-Adresse entnehmen, die dem Interface zugewiesen wurde. Im Beispiel ist dies die Adresse 145.253.71.145. Die Adresse der Gegenstelle bendet sich hinter dem Eintrag P-t-P: (Point-To-Point), hier 145.253.1.165. Wenn das Interface ppp0 bei der Ausgabe von ifcong fehlt, dann

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

625

ist dies ein Zeichen dafr, dass der Verbindungsaufbau oder die Authentizierung nicht funktioniert hat. Im nchsten Schritt prfen Sie mit dem Kommando route, ob die Verbindung in die Routingtabelle des Rechners aufgenommen worden ist: debian:~# route Es sollte dann folgende Ausgabe erscheinen:
Destination Gateway Genmask Flags Metric Ref Use Iface 134.102.6.11 * 255.255.255.255 UH 0 0 0 ppp0 default 134.102.6.11 0.0.0.0 UG 0 0 0 ppp0

Die IP-Adressen hngen vom Provider ab. Dieser Ausgabe ist zu entnehmen, dass es einen Routing-Eintrag zur Adresse 134.102.6.11 gibt. Pakete zu dieser Adresse werden ber das Interface ppp0 geleitet. Darber hinaus wurde die Standard-Route so gelegt, dass alle Pakete, die Ihr Rechner nicht direkt verschicken kann, an die Adresse 134.102.6.11 geleitet werden. Dies bedeutet, dass Ihr Rechner die Einwahlverbindung als Standard-Verbindung fr alle nicht lokalen IP-Pakete benutzt. Wenn Sie neben der PPP-Verbindung noch ber einen Anschluss ber ein lokales Netz verfgen, benden sich in der Ausgabe zustzlich Routing-Eintrge fr dieses Netz. Falls die Standardroute (default) nicht ber das Interface ppp0 geht, handelt es sich dabei wahrscheinlich um einen alten Eintrag fr die Standardroute, der gelscht werden muss, bevor die Verbindung aufgebaut wird. Im nchsten Schritt ist zu berprfen, ob Sie andere Rechner ber die Verbindung erreichen knnen. Hierzu dient das Programm ping. Der FTP-Server ftp.debian.org hat gegenwrtig die IP-Adresse 128.101.80.131. Um ihn anzupingen, ist folgendes Kommando einzugeben: joe@debian:~$ ping 128.101.80.131 Brechen Sie das Programm mit der Tastenkombination S TRG - C ab. Der letzte Schritt der berprfung besteht darin zu testen, ob Sie den kongurierten Nameserver benutzen knnen. Hierzu ist ein Rechner mit seinem Namen anzupingen: joe@debian:~$ ping ftp.debian.org Wenn auch dies funktioniert, spricht alles dafr, dass die Verbindung ordnungsgem funktioniert. Sie knnen nun alle Internet-Dienste nutzen, vorausgesetzt dass Ihre Klient-Programme richtig konguriert sind. Falls bei dem letzten Test keine IP-Pakete zurckkommen, sollten Sie den Inhalt der Datei /etc/resolv.conf untersuchen. Prfen Sie, ob diese Datei Eintrge enthlt, die mit dem Schlsselwort nameserver beginnen. Wenn dies nicht der Fall ist, ist eine mgliche Ursache, dass Ihr Provider die Verwendung dynamisch zugewiesener DNS-Server-Adressen nicht untersttzt. Sie mssen dann statische Adressen verwenden. Wenn Sie das statische oder dynamische DNS-Verfahren benutzen, wird die Datei /etc/resolv.conf nach der Einwahl gegen eine Version ausgetauscht, die

626

17 Debian GNU/Linux im Netz

der Konguration des entsprechenden Providers entspricht. Die alte Version der Datei wird unter dem Namen /etc/resolv.conf.ppp.bak gesichert. Nach Abbau der Verbindung wird die alte Version wieder in /etc/resolv.conf umbenannt. Wenn sich in der Originalversion der Datei domain- oder search-Eintrge benden, sind diese so lange wirkungslos, wie die Verbindung aufgebaut ist. Falls Sie dieses Verhalten strt, mssen Sie die Verbindung so umkongurieren, dass keine automatische DNS-Serverkonguration stattndet. Eintrge fr DNS-Server Ihres Providers mssen Sie dann manuell in der Datei /etc/resolv.conf vornehmen. Zum Beenden der Verbindung dient das Kommando poff. Er wird folgendermaen aufgerufen: poff [Provider] Falls nur eine einzige Verbindung besteht, reicht es aus, das Kommando ohne Angabe eines Providers aufzurufen. 17.4.4 Hintergrundinformationen und Fehlersuche Wie wird die Verbindung aufgebaut? Nach Eingabe des Kommandos pon wird das Programm pppd gestartet. Das Programm ist das eigentliche Kontrollprogramm fr PPP-Verbindungen. Es bezieht seine Konguration aus einer Datei im Verzeichnis /etc/ppp/peers, welche den Namen des Providers enthlt, z. B. /etc/ppp/peers/provider. Bei der Datei handelt es sich um eine Textdatei, in die auch zustzliche Kongurationsangaben aufgenommen werden knnen. Fr den Verbindungsaufbau wichtig ist die Zeile, die mit dem Schlsselwort connect beginnt. Durch die Zeile wird festgelegt, welches Programm den physikalische Verbindungsaufbau bernimmt, bevor pppd die Leitung kontrolliert. Hierzu dient normalerweise das Programm chat, das mit dem Namen einer Datei als Parameter aufgerufen wird. In dieser Datei bendet sich das Chatskript, die Anweisungen, welche Kommandos an das Modem zu schicken sind und welche Antworten vom Modem erwartet werden. Die Chatscripte benden sich im Verzeichnis /etc/chatscripts und tragen den gleichen Namen wie die Provider. Je nachdem, welche Authentizierungsmethode benutzt wird, ist chat entweder nur fr den Aufbau der Verbindung (Modem initialisieren und whlen) zustndig oder bei der skriptbasierten Anmeldung zustzlich fr die Authentizierung bei der Gegenstelle. Wenn chat die Verbindung erfolgreich aufgebaut hat, bernimmt pppd wieder die Kontrolle. Eventuell muss dieses Programm nun die Authentizierung durchfhren, oder es kann gleich damit beginnen, die Verbindung zu kongurieren. Dazu gehrt die Einrichtung des Netzinterfaces (normalerweise ppp0) sowie die Konguration der Routing-Tabelle. Erst wenn alle diese Schritte erfolgreich durchgefhrt sind, kann die Verbindung als IP-Verbindung genutzt werden.

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

627

Meldungen in /var/log/syslog Whrend des Auf- und Abbaus von Verbindungen werden die Ausgaben der Programme chat und pppd in die Datei /var/log/syslog geschrieben. Falls es zu einem Problem kommt, das nicht auf falsche Angaben bei der Benutzung von pppcong zurckzufhren ist, sollte zunchst der Inhalt dieser Datei untersucht werden. Ein erfolgreicher Verbindungsaufbau wird hier so dargestellt (gekrzt):
pppd[15105]: chat[15106]: chat[15106]: chat[15106]: chat[15106]: chat[15106]: chat[15106]: chat[15106]: chat[15106]: chat[15106]: chat[15106]: chat[15106]: chat[15106]: pppd[15105]: pppd[15105]: pppd[15105]: pppd[15105]: pppd[15348]: pppd[15348]: pppd[15105]: pppd[15105]: pppd 2.3.11 started by root, uid 0 send (ATZ^M) expect (OK) ^M OK -- got it send (ATDT21806^M) expect (CONNECT) ^M ATDT21806^M^M CONNECT -- got it send (\d) Serial connection established. Using interface ppp0 Connect: ppp0 <--> /dev/ttyS1 sent [PAP AuthReq id=0x1 user="foo" password=<hidden>] rcvd [LCP EchoRep id=0x0 magic=0x0] rcvd [PAP AuthAck id=0x1 ""] local IP address 145.253.71.145 remote IP address 145.253.1.165

In jeder Zeile sind zunchst Datum und Uhrzeit des Eintrags sowie der Name des lokalen Rechners eingetragen. Diese Information wurde in dem Beispiel gestrichen. Dahinter bendet sich die Angabe des Programms, von dem die Ausgabe stammt sowie in eckigen Klammern die Prozess-ID des Programms. In der ersten Zeile teilt das Programm pppd mit, dass es gestartet wurde. Danach folgt die Ausgabe von chat. Dieses Programm gibt aus, welche Zeichenketten es an das Modem sendet (send) und welche Zeichenketten es als Antwort erwartet (expect). Sobald die erwartete Zeichenkette empfangen wurde, erscheint die Meldung - -got it. Dazwischen werden alle gesendeten und empfangenen Zeichenketten ausgegeben. Diese Information ist sehr hilfreich, um zu berprfen, ob das Chatskript wie erwartet funktioniert. Falls eine erwartete Zeichenkette bis zum Ablauf der Timeout-Zeit nicht eintrifft, wird folgendes ausgegeben:
chat[15260]: alarm chat[15260]: Failed pppd[15259]: Connect script failed

In der letzten Zeile teilt pppd mit, dass der Verbindungsaufbau (mit chat) gescheitert ist. Bei einer solchen Fehlermeldung mssen die Bestandteile des Verbindungsaufbaus berprft werden, fr die das Chatskript verantwortlich ist. Dazu gehren die Zeichenkette zur Initialisierung des Modems, die Telefonnummer und bei

628

17 Debian GNU/Linux im Netz

skriptgesteuerter Authentizierung Benutzername und Passwort, auerdem die mit Pre-Login und Post-Login denierten Zeichenketten. Im oben gezeigten Beispiel ist der Teil des Verbindungsaufbaus gut gegangen, fr den chat verantwortlich ist. Es meldet den erfolgreichen Verbindungsaufbau an pppd weiter, und dieses Programm gibt die Meldung serial connection established aus. Nun erscheinen Meldungen, mit denen die Kommunikation zwischen lokalem pppd-Programm und der Gegenstelle protokolliert werden. Im Beispiel gezeigt ist der Versand von Benutzernamen und Passwort. Zum Schluss teilt pppd die lokale sowie die entfernte IP-Adresse mit. Die Verbindung ist damit fertig aufgebaut. Sie sollten die Ausgaben von pppd auf Fehlermeldungen oder besondere Mitteilungen untersuchen. So wird beispielsweise folgende Meldung ausgegeben, wenn die Authentizierung ber PAP fehlgeschlagen ist: pppd[15438]: PAP authentication failed Wenn die Standard-Route bereits gesetzt ist (etwa weil der Rechner zustzlich ber Ethernet vernetzt ist), wird diese Meldung ausgegeben: pppd[14753]: not replacing existing default route to eth0 [192.168.0.1] 17.4.5 Weiterfhrende Informationen Neben den einzelnen Kongurationsdateien fr jeden Provider verwendet pppd eine zentrale Kongurationsdatei namens /etc/ppp/options. Die Datei wird von dem Programm gelesen, bevor die Kongurationsdatei fr eine Verbindung untersucht wird (z. B. /etc/ppp/peers/provider). Die Einstellungen in beiden Dateien sollten fr Einwahlverbindungen ber einen Internetprovider geeignet sein. In seltenen Fllen kommt es vor, dass Sie Optionen ndern, entfernen oder hinzufgen mssen. Je nach Konguration mit pppcong sieht beispielsweise die Datei /etc/ppp/peers/provider folgendermaen aus:
# This optionfile was generated by pppconfig 2.0.3. # hide-password noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/provider" debug /dev/ttyS1 115200 defaultroute noipdefault user karl remotename provider ipparam provider demand usepeerdns idle 120

Die Eintrge haben folgende Bedeutungen:

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

629

hide-password Die Option unterdrckt die Ausgabe von Passwrtern beispielsweise in der Datei /var/log/syslog. noauth Hierdurch wird die Gegenstelle davon freigestellt, sich an Ihrem Rechner zu authentizieren. Die meisten Internet-Provider erwarten zwar, dass Sie sich ausweisen, tun dies jedoch selbst nicht. connect Die Option gibt an, mit welchem Programm die Verbindung aufgebaut wird, bevor sie von pppd kontrolliert wird. Im Beispiel wird das Programm chat benutzt. debug Bewirkt, dass pppd Meldungen ber Verbindungsauf- und -abbau sowie den Status der Verbindung ausgibt. /dev/ttyS1 Der Eintrag bestimmt die Gertedatei, welche die serielle Schnittstelle darstellt, die zur Verbindung genutzt werden soll. 115200 Bestimmt die Geschwindigkeit der seriellen Schnittstelle. defaultroute Legt fest, dass die Verbindung als Standard-Route genutzt werden soll. noipdefault Bestimmt, dass IP-Adressen dynamisch zugewiesen werden. user Benutzer Gibt den Namen an, der zur Authentizierung verwendet wird. remotename provider Gibt den Namen des entfernten Rechners an. Der Name wird zum Heraussuchen der richtigen Authentizierungsinformation bentigt. ipparam provider Die hinter ipparam angegebene Zeichenkette wird Skripten bergeben, die nach dem Aufbau der Verbindung ausgefhrt werden (knnen). demand Hiermit wird Dial-On-Demand konguriert. usepeerdns Die Option bewirkt, dass DNS-Server-Informationen von der Gegenstelle erfragt werden. idle 120 Gibt die Zeitdauer in Sekunden an, nach der die Verbindung automatisch abgebaut werden soll, wenn sie inaktiv ist (hier nach 2 Minuten). Weitere wichtige Optionen sind: connect-delay Zeit Gibt mit Zeit in Millisekunden an, wie lange gewartet werden soll, dass die Gegenstelle die Verbindung initiiert, nachdem die physikalische Verbindung mit der connect-Anweisung aufgebaut worden ist. holdoff Zeit Gibt mit Zeit in Sekunden an, wie lange eine Verbindung nicht wieder aufgebaut werden darf, nachdem sie wegen Inaktivitt beendet wurde. Nur sinnvoll bei Dial-On-Demand. logle Dateiname Zustzlich zu der Ausgabe nach /var/log/syslog werden die Ausgaben des Programms an die mit Dateiname bezeichnete Datei angehngt. Wenn die Datei noch nicht existiert, wird sie erzeugt. mru Zahl Legt mit Zahl die maximale Gre zu empfangender Pakete in Byte fest (Maximum Receive Unit). mtu Zahl Legt mit Zahl die maximale Gre zu sendender Pakete in Byte fest (Maximum Transfer Unit). noaccomp Schaltet die Kompression von Adress- und Kontrollinformationen ab. nopccomp Schaltet die Kompression von Protokollinformationen ab. novj Schaltet Van-Jacobsen-Kompression ab.

630

17 Debian GNU/Linux im Netz

Die vollstndige Liste der von pppd untersttzten Optionen nden Sie in der Manualseite zu dem Programm. Lesenswert ist auch das PPP-HOWTO. Es ist im Paket doc-linux-text enthalten und bendet sich nach dessen Installation in der Datei /usr/share/doc/HOWTO/en-txt/PPP-HOWTO.txt.gz. Im Paket ppp selbst ist die Datei /usr/share/doc/ppp/FAQ.gz enthalten, die Antworten auf hug gestellte Fragen enthlt. Benutzernamen und Passwrter fr die Authentizierung werden in der Datei /etc/ppp/pap-secrets fr das PAP-basierte Verfahren sowie in der Datei /etc/ppp/chap-secrets fr das CHAP-basierte Anmeldeverfahren gespeichert. Die beiden Dateien sind gleich aufgebaut. Die Eintrge in diesen Dateien haben das folgende Format: Klient Server Passwort [IP-Adresse ...] Mit Klient wird der Name des lokalen Rechners angegeben. Dies ist aus Sicht des Providers der Benutzername, den Sie bei Ihrem Provider haben. Mit Server wird der Name des Servers (des Providers) festgelegt. Wenn Sie nur einen Provider verwenden, knnen Sie hier einen Stern (*) eingeben. Ansonsten muss hier der Name angegeben werden, der in der pppd-Optionsdatei (/etc/ppp/peers/options) hinter dem Schlsselnamen remotehost angegeben wurde. Der Name kann frei gewhlt werden, er dient hier lediglich dazu, den richtigen Eintrag in der Authentizierungsdatei zu nden. Mit Passwort wird schlielich das mit diesem Provider zu verwendende Passwort angegeben. Optional lassen sich dahinter IP-Adressen angeben, die von dem betreffenden Provider akzeptiert werden drfen. Bei den meisten Providern haben Sie jedoch keinen Einuss auf die zugewiesenen Adressen, so dass die Eintrge nur stren. Mehr Informationen zu den beiden Authentizierungsdateien nden Sie ebenfalls in der Manualseite zu pppd sowie im PPP-HOWTO. Wenn Sie die skriptgesteuerte Anmeldung verwenden, benden sich Benutzername und Passwort in dem fr die Verbindung benutzten Chatskript (z. B. /etc/chatscripts/provider). Informationen zur Erstellung und manuellen Anpassung von Chatskripten stehen in der Manualseite zu dem Programm chat. Automatischer Start von Verbindungen beim Systemstart Wenn Sie Dial-On-Demand verwenden oder fr Ihre Verbindung keine zeitabhngigen Gebhren zahlen, kann es wnschenswert sein, die Verbindung whrend der Startphase des Rechners aufzubauen und sie erst wieder abzubauen, wenn der Rechner heruntergefahren wird. Dies lsst sich einrichten, indem die Datei /etc/ppp/no_ppp_on_boot in /etc/ppp/ppp_on_boot umbenannt wird: debian:~# mv /etc/ppp/no_ppp_on_boot /etc/ppp/ppp_on_boot Standardmig wird dann whrend des Systemstarts die Verbindung zum Provider mit dem Namen provider aufgebaut. Wenn Sie beim Systemstart einen anderen Provider anwhlen mchten, mssen Sie die Zeile

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

631

$PPPD call provider in der Datei /etc/ppp/ppp_on_boot ndern, beispielsweise folgendermaen: $PPPD call t-offline Die Verbindung wird whrend des Systemstarts durch das Skript /etc/init.d/ppp gestartet. Sie knnen sie dann durch folgendes Kommando wieder beenden: debian:~# /etc/init.d/ppp stop Und danach durch dieses Kommando wieder starten: debian:~# /etc/init.d/ppp start Benutzern die Einwahl ermglichen Normalerweise ist es nur dem Systemverwalter gestattet, Einwahlverbindungen aufzubauen oder zu beenden. Mitglieder der Benutzergruppe dip sind hierzu allerdings auch berechtigt. Um einen Benutzer dieser Gruppe hinzuzufgen verwenden Sie das Programm adduser (S. 769). Automatisches Ausfhren von Programmen nach Verbindungsauf- und abbau Oft sollen Programme automatisch ausgefhrt werden, sobald eine Verbindung aufgebaut ist. Mgliche Anwendungen hierfr sind das automatische Abholen von Email oder das Versenden ausgehender Mail. Aus diesem Grund existieren im Verzeichnis /etc/ppp die beiden Unterverzeichnisse ip-up.d und ip-down.d. Alle Programme und Skripte, die sich im Verzeichnis /etc/ppp/ip-up.d benden, werden automatisch aufgerufen, nachdem eine Verbindung aufgebaut ist. Nach Beendigung der Verbindung werden die Programme und Skripte im Verzeichnis /etc/ppp/ip-down.d aufgerufen. Die Reihenfolge der Ausfhrung wird durch die Namen der Programme und Skripte bestimmt. Programme und Skripte in diesen Verzeichnissen knnen die folgenden Umgebungsvariablen auswerten, um abhngig von den zugewiesenen IP-Adressen oder dem benutzten Provider unterschiedliche Aktionen auszulsen: PPP_IFACE Die Variable enthlt den Namen des Netzinterfaces, mit dem die Verbindung aufgebaut wurde. Fr PPP-Verbindungen mit einem Modem ist dies normalerweise ppp0 und fr ISDN-Verbindungen ippp0. PPP_TTY Enthlt den Namen der Schnittstelle (des Terminals), ber das die Verbindung aufgebaut wurde, z. B. /dev/ttyS1 fr die zweite serielle Schnittstelle oder /dev/ippp0 fr die erste ISDN-PPP-Schnittstelle. PPP_SPEED Enthlt die Geschwindigkeit, die zur Kommunikation mit der Schnittstelle benutzt wird (z. B. 115200). Bei ISDN-Verbindungen ist der Wert dieser Variablen Null. PPP_LOCAL Enthlt die IP-Adresse des Netzinterfaces, in der Regel die IPAdresse, welche vom Provider zugewiesen wurde.

632

17 Debian GNU/Linux im Netz

PPP_REMOTE Enthlt die IP-Adresse der Gegenstelle (Provider). PPP_IPPARAM Enthlt die Zeichenkette, die in der PPP-Kongurationsdatei (in /etc/ppp/peers) fr die Verbindung mit dem Schlsselwort ipparam angegeben wurde. Ein Skript, dass den Wert dieser Variablen ausliest und in die Datei /var/state/misc/ppp schreibt, knnte so aussehen:
#! /bin/sh echo "CONNECT if:" $PPP_IFACE "tty:" $PPP_TTY \ "speed:" $PPP_SPEED "local:" $PPP_LOCAL \ "remote:" $PPP_REMOTE $PPP_IPPARAM > /var/state/misc/ppp

Das Skript knnte im Verzeichnis /etc/ppp/ip-up.d unter dem Namen connect gespeichert werden. Das Skript muss ausfhrbar sein. 17.4.6 Alternative Kongurationsprogramme Neben dem Programm pppcong stehen weitere Programme zur Konguration von PPP-Verbindungen mit einem Modem zur Verfgung. KDE und GNOME Wenn Sie KDE benutzen, interessieren Sie sich vielleicht fr das Programm kppp, das sich durch eine einfache Verbindungskonguration sowie eine komfortable Funktion zur Protokollierung von Verbindung und Verbindungsgebhren auszeichnet. Das Programm ist im KDE-Paket kdenetwork enthalten. Zur Arbeitsplatzumgebung GNOME gehrt das Programm gnome-ppp, das eine hnliche Konguration wie kppp ermglicht. Das Programm bendet sich im Paket gnome-network und wird konguriert, indem unter Account der Menpunkt New ausgewhlt wird. Daraufhin erscheint das in Abbildung 17.4 gezeigte Fenster. Xisp Ein weiteres verbreitetes Programm zur Konguration von PPP-Einwahlverbindungen ist das Programm xisp aus dem gleichnamigen Paket. Das Programm zeichnet sich durch viele Mglichkeiten fr Einstellungen zur Verbindung sowie zur Verbindungsprotokollierung aus. Es nimmt die Eintrge von Benutzernamen und Passwrtern allerdings nicht selbst in der Datei /etc/ppp/pap-secrets bzw. /etc/ppp/chapsecrets vor, sodass Sie dies selbst tun mssen, nachdem Sie eine Verbindung konguriert haben.

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

633

Abbildung 17.4. Konguration von PPP-Verbindungen mit gnome-ppp.

Wvdial Ein halbautomatisches Programm fr den skriptgesteuerten Verbindungsaufbau ist das Programm wvdial, das mit dem Paket wvdial zur Verfgung steht. Whrend der Installation des Pakets wird erfragt, ob die Konguration des Programms sofort vorgenommen werden soll. Dies ist in der Regel zu empfehlen, weil das zu dem Paket gehrende Kongurationsskript lediglich das Modem automatisch konguriert, aber keine Benutzerdaten erfragt. Sie werden nach der Telefonnummer des Providers sowie nach Ihrem Benutzernamen und dem Passwort bei Ihrem Provider gefragt. Danach wird das Skript wvdialconf aufgerufen, das zu ermitteln versucht, an welchen Anschluss das Modem angeschlossen ist und wie es initialisiert werden muss. Diese Angaben sollten wvdial gengen. Sie knnen die Verbindung nun durch Eingabe des Kommandos wvdial aufbauen. Um die Verbindung wieder zu beenden, wird in dem Terminal, in dem das Kommando eingegeben wurde, die Tastenkombination S TRG - C bettigt. Seine Einstellungen speichert das Programm in der Datei /etc/wvdial.conf. Es handelt sich dabei um eine Textdatei, die Sie spter bearbeiten knnen, um die Einstellungen zu verndern. wvdial verndert die Eintrge in den Dateien /etc/ppp/pap-secrets bzw. /etc/ppp/chap-secrets nicht. Sie mssen diese selbst vornehmen, wenn Sie das Programm mit den Anmeldeverfahren PAP oder CHAP verwenden wollen. Achtung: Viele PPP-Kongurationsprogramme funktionieren nur dann, wenn in der Datei /etc/ppp/options der Eintrag auth auskommentiert wird. Dies gilt nicht fr pppcong.

634

17 Debian GNU/Linux im Netz

Fr Benutzer, die nur ungern Kommandozeilen verwenden, gibt es das Programm gpppon, mit dem die Kommandos pon und poff per Mausklick ausgefhrt werden. Das Programm ist in dem Paket gpppon enthalten.

Abbildung 17.5. Ein- und Ausschalten von Verbindungen mit gpppon.

17.4.7 PPP over Ethernet (ADSL, T-DSL, T-ISDN-DSL) Hierbei handelt es sich um eine Variante des PPP-Protokolls, die nicht mit einem Modem, sondern mit einer Ethernetkarte benutzt wird. Dieses Verfahren wird von dem Dienst T-DSL der Deutschen Telekom genutzt. T-DSL ist eine Form von ADSL (Asymmetric Digital Subscriber Line), einer digitalen Datenbertragung ber Telefonleitungen. Asymmetrisch heit der Dienst, weil die Geschwindigkeit beim Download hher ist als beim Upload. Dies wird dem Bedarf der meisten Benutzer gerecht. Wenn Sie einen solchen Internetzugang haben und diesen mit Debian GNU/Linux benutzen wollen, mssen Sie dazu das Paket pppoe (PPP over Ethernet) installieren. Kernstck dieses Pakets ist das Programm pppoe, mit dem solche Verbindungen aufgebaut werden. Nach der Installation des Pakets bendet sich im Verzeichnis /etc/ppp/peers eine Datei mit dem Namen dsl-provider. Der Datei muss ein Eintrag hinzugefgt werden, der die folgende Form hat: user Benutzername@Provider wobei Sie Benutzername durch Ihren Benutzernamen beim Provider und Provider durch den Namen Ihres Providers ersetzen mssen. Auerdem mssen Sie einen Eintrag in die Datei /etc/ppp/pap-secrets bzw. /etc/ppp/chap-secrets (je nachdem, welches Authentizierungsverfahren Sie mit Ihrem Provider benutzen knnen) vornehmen: Benutzername@Provider Provider Passwort Auch hier sind Benutzername, Provider und Passwort durch die richtigen Werte zu ersetzen. Wenn Sie sich nicht sicher sind, welches Anmeldeverfahren Ihr Provider untersttzt, sollten Sie den Eintrag in beiden Dateien hinzufgen. Danach kongurieren Sie die zu dem Anschluss gehrende Ethernetkarte. Dies funktioniert wie am Anfang dieses Kapitels beschrieben. Es muss zunchst der Treiber fr die Karte geladen werden und das Interface danach konguriert werden: debian:~# modprobe ne2k-pci

17.4 Konguration von PPP-Einwahlverbindungen mit einem Modem

635

debian:~# ifconfig eth0 up Eine IP-Adresse oder Netzmaske ist in diesem Fall mit dem Kommando ifcong nicht anzugeben. Danach starten Sie pppoe: debian:~# pon dsl-provider Natrlich knnen Sie einen Provider, den Sie mit diesem Verfahren benutzen, auch als Standardprovider verwenden. Kopieren Sie die Datei /etc/ppp/peers/dslprovider dazu nach /etc/ppp/peers/provider. Vorher sollten Sie eine Sicherheitskopie der alten Version anlegen. Danach drfen Sie den Standardprovider nicht mit dem Programm pppcong ndern. Wenn die Verbindung nicht wie gewnscht funktioniert, sollten Sie folgende Eintrge in die Datei /etc/ppp/peers/dsl-provider aufnehmen:
nocrtscts mru 1492 mtu 1492 noaccomp nopcomp

Damit Sie mit dem Provider dynamisch zugewiesene DNS-Server verwenden knnen, mssen Sie diesen Eintrag benutzen: usepeerdns Alternativ knnen Sie die zu verwendenden DNS-Server manuell in die Datei /etc/resolv.conf eintragen. Sie knnen das Verfahren auch im Dial-On-DemandModus benutzen. Dazu sind der Datei /etc/ppp/peers/dsl-provider diese Eintrge hinzuzufgen:
demand idle 120

Die Zahl hinter dem Schlsselwort idle bestimmt, nach welcher Zeitdauer von Inaktivitt die Verbindung automatisch abgebaut wird. Weitere Informationen zu pppoe nden Sie in der Manual-Seite zu dem Programm sowie in der Datei /usr/share/doc/pppoe/README.Debian. 17.4.8 ADSL (T-DSL) mit eigenem Router Schon in kleinen Netzen lohnt es sich, fr die ADSL-Anbindung einen eigenen Router einzurichten. Die am Netz teilnehmenden Rechner brauchen dann nichts vom Routing zu wissen. Diese technisch saubere Lsung wird jedoch von manchen Providern untersagt, weil sie nicht zu ihrer Tarifstruktur passt. Sie sollten vor der Planung Ihren Vertrag lesen oder mit Ihrem Provider reden. Irgendwo im Keller kommt aus der Wand die Telefonleitung. Das erste Gert ist der Splitter oder BBAE (Breitband-Anschluss-Einheit), der die Telefondaten (Sprachdaten) von den Computerdaten trennt. Auf der Telefonseite geht es dann im

636

17 Debian GNU/Linux im Netz

Fall von digitaler Telefonie (ISDN) weiter zum NTBA (Network Terminator Basicrate Access), auf der Datenseite zum DSL-Modem. Das ist kein Modem, wie es frher zwischen serieller Schnittstelle des Computers und analogem Telefonanschluss vermittelt hat, sondern ein Gert, das DSL auf Ethernet umsetzt. Von dem Ethernet-Ausgang des DSL-Modems fhrt ein kurzes Kabel in den Internet-Port des DSL-Routers. DSL-Router sind oft mit einem kleinen Ethernet-Switch kombiniert und haben vier Ethernet-Ausgnge (RJ45) mit der Geschwindigkeit 10/100 MBit/s. Bis zu vier Rechner lassen sich an den Router mit Switch direkt anschlieen. Umfasst das lokale Netz mehr Gerte, muss ein weiterer Switch oder Hub (ohne Router) dazu geschaltet werden. Zunehmend haben DSL-Router auerdem einen Access Point (Sender/Empfnger) fr ein drahtloses Netz (WLAN, Wireless Local Area Network) eingebaut, erkenntlich an der Antenne. Mit einem solchen Kstchen hat man die Mglichkeit, vier ortsfeste Gerte ber Ethernet-Kabel anzuschlieen sowie einige Laptops drahtlos. Ein Keller ist allerdings des schlechteste Ort fr einen Access Point. An Protokollen beherrschen DSL-Router TCP/IP, RIP, DHCP, NAT, PPTP, PPPoE, IPSec und L2TP. Der DSL-Router verbirgt die Struktur und die Adressen des lokalen Netzes mittels NAT, wie in Abschnitt 17.8.5 auf Seite 745 beschrieben. Auch Port Forwarding erlauben die meisten. Wenn Sie dann noch eine Pauschale (Flat Rate) bei Ihrem Provider entrichten und nicht bei jedem Mausklick an die Kosten zu denken brauchen, arbeiten Sie in Ihrem lokalen Netz, als ob Sie unmittelbar im Internet wren. Nur bei der bertragung groer Datenmengen spren Sie die Grenzen. Der DSL-Router erhlt seine uere IP-Adresse per DHCP vom Provider. Intern verwenden Sie entweder feste (statische) IP-Adressen oder auch DHCP. Der DSL-Router ist ein Gert wie ein Rechner oder ein Drucker mit eigenem EthernetAnschluss, ein Netzknoten wie jeder andere auch. Zur Konguration des DSLRouters brauchen Sie die Anmeldedaten (Name, Passwort etc.) beim Provider. Ferner ist auf den lokalen Rechnern der DSL-Router als Default-Gateway (StandardRoute) und eventuell als Name-Server einzutragen. Testen der Verbindungen mit ping (S. 845). Will man einen der internen Rechner mittels Port Forwarding von auen erreichen, erhebt sich das Problem, dass der einzige von auen sichtbare Knoten des internen Netzes, der DSL-Router, vom Provider per DHCP eine dynamische IP-Adresse zugewiesen bekommt, die mit jedem Verbindungsaufbau wechselt. Auerdem unterbrechen die meisten Provider mindestens einmal in 24 Stunden die Verbindung. Selbst wenn der DSL-Router die Verbindung sofort wieder aufbaut, hat er danach eine andere IP-Adresse. Das Problem lsen dynamische DNS-Dienste wie http://www.dyndns. org/, in privatem Umfang sogar kostenfrei. Ein solcher Dienst betreibt einen gewhnlichen DNS-Server, dessen Eintrge von in den lokalen Netzen laufenden Klients immer dann aktualisiert werden, wenn sich eine dynamische IP-Adresse gendert hat. Der Name beispielsweise alex.dyndns.org bleibt konstant, die zugehrige IP-Adresse wird nachgefhrt. So ist ein Port eines lokalen Rechners ber einen unvernderlichen Namen trotz DHCP erreichbar. Klientprogramme verteilt der Dienst.

17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen

637

17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen


Die Konguration von Einwahlverbindungen ber ISDN ist nicht ganz so einfach, wie die Konguration von Verbindungen ber ein Modem. Hierfr gibt es im wesentlichen drei Grnde: (1) ISDN ist weltweit gesehen nicht so verbreitet wie herkmmliche Telefonleitungen, (2) ISDN bietet deutlich mehr Mglichkeiten, die konguriert werden knnen, und (3) wird fr ISDN-Karten ein Treibermodul bentigt, was bei Modems nicht der Fall ist. Die Konguration und Einrichtung einer ISDN-Verbindung vollzieht sich in folgenden Schritten: Zunchst muss der Treiber fr die ISDN-Karte geladen werden. Ein ISDN-Netzgert wird eingerichtet. Das Programm ipppd wird gestartet, das die Verbindungen kontrolliert. Hierbei handelt es sich um eine abgewandelte Form des Programms pppd, das speziell fr ISDN-Verbindungen geeignet ist. Wie auch bei Modemverbindungen konguriert das PPP-Programm dann das Netzinterface und richtet die Routing-Tabelle fr die Verwendung der Verbindung ein. Auch bei ISDN-Verbindungen ist es mglich, mit Dial-On-Demand zu arbeiten. Dies ist hier sogar besonders reizvoll, weil ISDN-Verbindungen sehr schnell aufund abgebaut werden und das Verfahren den Benutzern des Systems deswegen das Gefhl vermittelt, sie seien dauerhaft mit dem Netz verbunden. Um das ISDN-System zu verwenden, bentigen Sie eine von Linux untersttzte ISDN-Karte und den zugehrigen Treiber. Zustzlich mssen Sie das Paket isdnutils installieren, das alle Programme zur Konguration, Verbindungsdurchfhrung und berwachung enthlt. Auerdem ist dringend zu empfehlen, das Paket ppp zu installieren. Fr ISDN wird zwar ein eigenes PPP-Programm benutzt, das im Paket isdnutils vorhanden ist, aber nicht die Infrastruktur enthlt, die zustzlich fr PPP bentigt wird. Bevor Sie Ihre ISDN-Verbindung kongurieren, mssen Sie wissen, mit welchem Protokoll Ihr ISDN-Anschluss betrieben wird. Neuere ISDN-Anschlsse verwenden das Protokoll EURO-ISDN (EDSS1), wohingegen bei sehr alten Anschlssen und in einigen Telefonanlagen noch dessen Vorlufer, das Protokoll 1TR6, benutzt wird. Diese Protokolle werden als D-Kanal-Protokoll bezeichnet. Auerdem mssen Sie fr Ihre ISDN-Karte eine MSN (Multiple Subscriber Number) festlegen. Verwenden Sie dazu eine der Telefonnummern, die Sie von Ihrem Telefon-Anbieter mit dem ISDN-Anschluss erhalten haben. Am besten ist es, eine Nummer zu nehmen, die Sie bisher noch keinem anderen Telekommunikationsgert zugewiesen haben. Bei Verwendung des Protokolls 1TR6 werden die einzelnen Endgertenummern nicht durch MSNs unterschieden, sondern durch EAZs. Whrend eine MSN die gesamte Telefonnummer eines Gertes bezeichnet, handelt es sich bei der EAZ nur um die letzte Ziffer.

638

17 Debian GNU/Linux im Netz

Die meisten heute gebruchlichen ISDN-Karten basieren auf einem Chipsatz der Firma Siemens (HSCX). Diese Karten werden durch den hisax-Treiber untersttzt, der auch den Standardkernen als Modul beiliegt. Aufgrund der Verbreitung dieses Kartentyps wird die Treiberkonguration im folgenden exemplarisch fr diesen Chipsatz beschrieben. Wenn Sie eine andere ISDN-Karte besitzen, sollten Sie im Unterverzeichnis isdn des Kerndokumentationsverzeichnisses nachsehen, wie die Treiber zu laden sind. Eine vereinfachte ISDN-Konguration und -Verwaltung ermglicht das Programm kisdn. Hierbei handelt es sich um ein kommerzielles Programm fr die Arbeitsplatzumgebung KDE, das unter der Web-Adresse http://www. millenniumx.de/ bezogen werden kann. ROLAND BAUERSCHMIDT hat das freie Programm congisdn geschrieben. Dieses Programm bietet eine teilautomatische Hardwareerkennung und Treiberkonguration. Es kann unter der Web-Adresse http://www.copyleft.de/pub/author/roland/ heruntergeladen werden. 17.5.1 Konguration der Treiber Wenn Sie einen Standardkern verwenden, liegen die notwendigen Treiber fr das ISDN-System bereits in Form von Modulen vor. Sollten Sie jedoch einen selbst erstellten Kern verwenden, vergleichen Sie Abschnitt 11.3.5, Seite 398. Dort ist beschrieben, welche Angaben bei der Kernkonguration fr das ISDN-Subsystem vorzunehmen sind. Grundstzlich wird empfohlen, ISDN-Treiber in Form von Modulen zu erstellen. Eine Reihe von ISDN-Karten sind Plug-and-Play-Karten. Diese Karten mssen mit dem Programm isapnp initialisiert werden, bevor die Treiber-Module geladen werden knnen. Die Konguration von PnP-Karten ist in Kapitel 12.7, Seite 444 beschrieben. Damit das ISDN-System genutzt werden kann, mssen zwei unterschiedliche Module geladen werden. Zum einen das Modul isdn.o, das die eigentliche ISDNUntersttzung enthlt, und zustzlich ein Modul, das den Treiber fr die ISDN-Karte im Rechner enthlt. Fr HiSax-basierte Karten ist dies das Modul hisax.o. Das Modul isdn.o wird ohne Parameter geladen: debian:~# modprobe isdn Daraufhin kann das Treiber-Modul fr die ISDN-Hardware geladen werden. Diesem Modul mssen einige Parameter bergeben werden, damit die Hardware richtig erkannt und initialisiert wird. Das hisax-Modul wird mit folgender Syntax geladen: modprobe hisax io=IO-Adresse irq=IRQ mem=Adresse type=Kartentyp protocol=D-Kanal-Protokoll id=ID Dabei ist es vom Typ der verwendeten Karte abhngig, welche Parameter benutzt werden mssen. Einige Karten verwenden mehrere IO-Adressen. Bei diesen Karten mssen an Stelle des Parameters io= die Parameter io0= und io1= benutzt werden.

17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen

639

Die folgende Tabelle zeigt die vom hisax-Treiber untersttzten Kartentypen mit den fr die entsprechenden Typen bentigten Parameter. Das fr den D-Kanal zu verwendende Protokoll ist grundstzlich bei jeder Karte anzugeben. Hier ist der Wert 1 zur Verwendung des alten Protokolls 1TR6, der Wert 2 fr EURO-ISDN (EDSS1) und der Wert 3 anzugeben, wenn kein D-Kanal Protokoll benutzt werden soll. Mit dem Parameter id= wird optional eine Zeichenkette angegeben, ber welche die betreffende ISDN-Karte angesprochen werden kann.
Tabelle 17.1. ISDN-Karten mit Untersttzung durch den hisax-Treiber

Typ 1 2 3 4 5 6 7 8 9 10 11 11 12 13 14 15 15 15 16 17 18 19 20 21 22 24 24 25 26

Beschreibung Teles 16.0 Teles 8.0 Teles 16.3 (nicht PnP) Creatix/Teles PnP AVM A1 (Fritz) c ELSA PCC/PCF cards ELSA Quickstep 1000 Teles 16.3 PCMCIA ITK ix1-micro Rev.2 ELSA PCMCIA Eicon.Diehl Diva ISA PnP Eicon.Diehl Diva PCI ASUS COM ISDNLink HFC-2BS0 based cards Teles 16.3c PnP Sedlbauer Speed Card Sedlbauer PC/104 Sedlbauer Speed PCI USR Sportster internal MIC card ELSA Quickstep 1000PCI Compaq ISDN S0 ISA card NETjet PCI card Teles PCI Sedlbauer Speed Star (PCMCIA) Dr. Neuhaus Niccy PnP Dr. Neuhaus Niccy PCI Teles S0Box AVM A1 PCMCIA (Fritz!)

Optionen irq= mem= io= irq= mem= irq= io= irq= io0= io1= irq= io= wird automatisch erkannt, bei mehreren Karten: io= irq= io= (PNP) irq= io= irq= io= irq= io= irq= io= wird automatisch erkannt irq= io= (PNP) irq= io= irq= io= irq= io= irq= io= wird automatisch erkannt irq= io= irq= io= wird automatisch erkannt irq= io0= io1= io= (PNP) wird automatisch erkannt wird automatisch erkannt irq= io= irq= io0= io1= (PNP) wird automatisch erkannt irq= io= irq= io=
Fortsetzung auf der nchsten Seite

640

17 Debian GNU/Linux im Netz

Fortsetzung der vorherigen Seite

Typ 27 27 28 29 30 31 32 33 34 34 35 36

Beschreibung AVM PnP (Fritz!PnP) AVM PCI (Fritz!PCI) Sedlbauer Speed Fax+ Siemens I-Surf 1.0 ACER P10 HST Saphir Telekom A4T Scitel Quadro Gazel ISDN Karten (ISA) Gazel ISDN Karten (PCI) HFC 2BDS0 PCI W6692 basierte PCI Karte

Optionen irq= io= (PNP) wird automatisch erkannt irq= io= (PNP) irq= io= mem= (PNP) irq= io= (PNP) irq= io= wird automatisch erkannt subcontroller (4*S0, subctrl 1...4) irq= io= wird automatisch erkannt wird automatisch erkannt wird automatisch erkannt

Um den hisax-Treiber zu laden und fr die Verwendung mit einer ISDN-Karte vom Typ Fritz!-PCI (Typ 27) mit Verwendung des D-Kanal-Protokolls EURO-ISDN zu kongurieren, ist folgende Kommandozeile zu verwenden: debian:~# modprobe hisax type=27 protocol=2 Der Treiber fr eine Karte vom Typ Fritz! ISA-Classic (Typ 5), die den Interrupt 3 und die IO-Adresse 0x300 verwendet und ebenfalls mit dem D-Kanal-Protokoll EURO-ISDN benutzt werden soll, ist mit diesem Kommando zu laden: debian:~# modprobe hisax type=5 irq=3 io=0x300 protocol=2 Wenn der Treiber ohne Fehlermeldung geladen wird, ist das ein Zeichen dafr, dass Sie die richtigen Parameter verwendet haben. Ansonsten sollten Sie prfen, ob die angegebenen Ressourcen und der Kartentyp stimmen. Bei Plug-and-Play-Karten mssen zum Laden des Treibers immer die Ressourcen benutzt werden, fr deren Verwendung die Karte mit isapnp konguriert wurde. Wenn der Treiber erfolgreich geladen wurde, sollten Sie im Verzeichnis /etc/modutils eine Datei isdn mit den Parametern anlegen, damit es in Zukunft mglich ist, das Modul ohne Angabe von Parametern zu laden. In diese Datei sollten auch die folgenden Alias-Denitionen aufgenommen werden, damit der Kern das Modul isdn und das Treibermodul fr die ISDN-Karte automatisch laden kann. Bei Verwendung einer ISDN-Karte vom Typ Fritz! ISA-Classic, sieht die Datei so aus:
option hisax type=5 alias ippp0 isdn alias char-major-43 alias char-major-44 alias char-major-45 irq=3 io=0x300 protocol=2 hisax hisax hisax

Wenn Sie eine andere Karte oder das D-Kanal-Protokoll 1TR6 verwenden, mssen Sie die option-Zeile der Datei anpassen. Fhren Sie das Kommando updatemodules aus, nachdem Sie die Datei erzeugt haben (siehe Seite 428).

17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen

641

17.5.2 Basiskonguration einer ISDN-Einwahlverbindung Wie bereits angesprochen, sind alle Programme, die zum Betrieb von ISDN-Karten bentigt werden, in dem Paket isdnutils enthalten. Mit dem Paket wird auch ein Skript konguriert, das Beispiele fr die bentigten Kongurationsdateien erzeugt. Die mit dem Skript erzeugten Dateien mssen in jedem Fall manuell nachbearbeitet werden. Das Skript wird folgendermaen aufgerufen: debian:~# isdnconfig Danach erscheint ein Men, aus dem Kongurationsdateien fr verschiedene Zwecke ausgewhlt werden knnen. Zur Konguration einer NetzEinwahlverbindung whlen Sie zuerst den Menpunkt 1 (network devices). Sie werden dann nach dem Namen des Netzinterfaces gefragt, fr das Sie die Kongurationsdatei erstellen wollen. Geben Sie hier ippp0 ein. Die Datei wird erstellt, und Sie werden aufgefordert, die Taste E INGABE zu bettigen. Whlen Sie danach den Menpunkt 2 (synchronous ppp daemon) aus. Es erfolgt die Frage nach dem Namen der zu erstellenden Konguration. Geben Sie auch hier ippp0 ein. Es erscheint wieder die Aufforderung, die Taste E INGABE zu bettigen. Verlassen Sie das Programm durch Auswahl von Q (Quit). Dabei sind zwei zustzliche Kongurationsdateien im Verzeichnis /etc/isdn angelegt worden. Die beiden Dateien tragen die Namen /etc/isdn/device.ippp0 und /etc/isdn/ipppd.ippp0. Mit der ersten Datei wird das Netzinterface ippp0 konguriert, mit der zweiten Datei das PPP-Programm ipppd, welches das Netzinterface ippp0 kontrolliert. Beide Dateien mssen von Hand an Ihre Bedrfnisse angepasst werden. Die Datei /etc/isdn/device.ippp0 Wie die meisten Kongurationsdateien kann die Datei Kommentare enthalten. Bei der Datei handelt es sich um Shellskript, in dem Variablen Werte zugewiesen und einige Kommandos zur Konguration des Interfaces ausgefhrt werden. Die von isdncong erzeugte Version dieser Datei enthlt bereits alle notwendigen Variablen und Kommandos, sodass lediglich die Werte angepasst werden mssen. Sie ist auerdem gut dokumentiert, vor allen anzupassenden Zeilen ndet sich eine Beschreibung. Ganz oben steht in der Datei zwischen zwei Kommentaren folgende Zeile: echo "Warning! ... not configured yet! Aborting..."; exit 1 Diese Zeile mssen Sie lschen, sobald Sie die Kongurationsdatei fertig bearbeitet haben. Ansonsten bleiben alle Einstellungen wirkungslos, und es wird die obige Fehlermeldung ausgegeben, wenn Sie versuchen, das ISDN-System zu starten. Gehen Sie dann weiter zu den folgenden beiden Zeilen:
LOCALIP=10.0.0.1 REMOTEIP=10.0.0.2 # XXX_ # XXX_

642

17 Debian GNU/Linux im Netz

Wie im Kommentar ber den Zeilen beschrieben, knnen Sie die Eintrge lassen, wie sie sind, wenn Sie die IP-Adressen fr die Einwahlverbindung dynamisch mittels DHCP vom Provider zugewiesen bekommen. Dies ist heute bei fast allen Providern der Fall. Wenn Sie jedoch feste (statische) IP-Adressen verwenden, tragen Sie hier hinter LOCALIP= die IP-Adresse, die Sie von Ihrem Provider bekommen haben, und hinter REMOTEIP= die IP-Adresse Ihres Providers ein. Darunter werden die Telefonnummern konguriert. Es ist notwendig, dass Sie hier sowohl Ihre lokale MSN sowie die MSN (Telefonnummer) Ihres Providers angeben. Die Telefonnummer des Providers ist mit der Vorwahl anzugeben, wobei die Null zu Beginn der Vorwahl wegzulassen ist. Wenn Ihr Provider die Vorwahl 089 hat und die Telefonnummer 11223344, so ist der Wert 8911223344 zu verwenden. Die lokale MSN, Ihre eigene Nummer, ist ohne Vorwahl anzugeben. Falls in Ihrem Telefonnetz keine Null am Anfang der Vorwahlnummer benutzt wird, darf der Variablen LEADINGZERO kein Wert zugewiesen werden. Ansonsten muss hier der Wert 0 benutzt werden.
LOCALMSN=203123456 # XXX_ REMOTEMSN=221345789 # XXX_ LEADINGZERO=0 # XXX_

use LEADINGZERO= if you have no areacodes.

Wenn Sie das ltere 1TR6-Protokoll verwenden, mssen Sie bei LOCALMSN die EAZ-Nummer angeben, die Sie fr die Einwahl verwenden wollen. Der Variablen REMOTEMSN knnen auch mehrere Telefonnummern zugewiesen werden. Wenn die erste Nummer beim Einwahlversuch besetzt sein sollte, wird die zweite probiert usw. Wenn Sie mehrere Telefonnummern kongurieren wollen, mssen Sie die einzelnen Telefonnummern durch Leerzeichen trennen und die ganze Liste der Nummern mit Anfhrungsstrichen umschlieen. Beispiel: REMOTEMSN="221234291 29128374 42121806" Mit der Variablen DIALMODE wird festgelegt, ob die Verbindung manuell aufgebaut werden soll (DIALMODE=manual), ob sie bei Bedarf aufgebaut werden soll (Dial-on-Demand, DIALMODE=auto) oder ob sie standardmig nicht aktiviert sein soll (DIALMODE=off ). Gegebenenfalls knnen Sie nun die Zeit einstellen, nach der die Verbindung automatisch beendet werden soll, wenn sie nicht mehr benutzt wird: isdnctrl huptimeout $device 60 Der hier anzugebende Wert bezeichnet den Timeout in Sekunden. Eine Wartezeit von einer Minute ist in den meisten Fllen angemessen. Die Verbindung wird auch dann nach der angegebenen Zeitdauer beendet, wenn sie manuell aufgebaut wurde. Die Datei /etc/isdn/ipppd.ippp0 Bei der Datei handelt es sich um die Kongurationsdatei fr das ISDN-PPPKontrollprogramm ipppd. Sie hat das gleiche Format wie die Kongurationsdateien fr das normale PPP-Kontrollprogramm pppd. Im Unterschied zur Konguration

17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen

643

einer Einwahlverbindung ber ein Modem gibt es hier nur eine einzige Kongurationsdatei mit allen Einstellungen. Am Anfang der Datei bendet sich zwischen zwei Kommentaren die folgende Zeile: # Warning! not configured yet! Sie mssen diese Zeile lschen, wenn Sie mit der Anpassung der Datei fertig sind. Die einzige weitere Anpassung, die Sie in dieser Datei unbedingt vornehmen sollten, besteht darin, folgende Zeile zu ndern: name X # set local name for auth Setzen Sie hier fr das X den Benutzernamen ein, den Ihnen Ihr Provider gegeben hat. Diese Information wird bentigt, damit ipppd whrend der Authentizierung den richtigen Eintrag aus den Passwortdateien auswhlt. Wenn Sie statische IP-Adressen verwenden (unwahrscheinlich), sollten Sie den Eintrag noipdefault in dieser Datei auskommentieren und an Stelle dessen das Kommentarzeichen vor useip verwenden. Dadurch wird bewirkt, dass die IP-Adressen benutzt werden, die Sie dem Netzinterface in der Datei /etc/isdn/device.ippp0 zugewiesen haben. Einrichten der Authentizierung Das Programm ipppd verwendet zur Authentizierung dieselben Dateien wie das Programm pppd fr Modem-Verbindungen, also die Dateien /etc/ppp/pap-secrets und /etc/ppp/chap-secrets. Der Aufbau dieser Dateien ist auf Seite 630 beschrieben. Angenommen, Sie verwenden zur Authentizierung das Verfahren PAP, Ihr Benutzername beim Provider sei hans und das Passwort fr den Zugang sei seisdrum, so mssten Sie der Datei /etc/ppp/pap-secrets die folgende Zeile hinzufgen: hans * seisdrum Konguration der Namensauflsung Wie beim Einwahlverfahren per Modem ist es grundstzlich empfehlenswert, den DNS-Server des Providers zu verwenden, weil dieser am besten zu erreichen ist. Leider untersttzt ipppd zur Zeit nicht dasselbe Verfahren zur Abfrage der DNS-Server des Providers beim Verbindungsaufbau wie das normale PPP-Programm pppd. Aus diesem Grund mssen Sie den oder die DNS-Server des Providers direkt in die Datei /etc/resolv.conf schreiben. Wenn der DNS-Server Ihres Providers die IP-Adresse 145.253.2.11 hat, dann sieht der Eintrag so aus: nameserver 145.253.2.11 Alternativ knnen Sie auch eine providerabhngige Nameserver-Konguration benutzen. Hierzu ist im Verzeichnis /etc/ppp/resolv die Version der Datei anzulegen, die benutzt werden soll, wenn die Verbindung zum Provider aktiv ist. Die Datei sollte einen eindeutigen Namen wie t-ofine erhalten. Danach muss der Datei /etc/isdn/ipppd.ippp0 folgende Zeile hinzugefgt werden:

644

17 Debian GNU/Linux im Netz

ipparam Name Hierbei ist fr Name der Name der Datei im Verzeichnis /etc/ppp/resolv ohne Verzeichnisname einzusetzen (z. B. wieder t-ofine). Die Datei wird dann, nach Aufbau der Verbindung, an den Platz /etc/resolv.conf kopiert. Wenn die Verbindung abgebaut ist, wird die ursprngliche Datei wieder an diesen Platz verschoben. Um die dynamische DNS-Konguration einzurichten, ist in der Datei /etc/isdn/ipppd.ippp0 das Schlsselwort ms-get-dns zu verwenden. Auerdem muss das Paket pppcong installiert sein. Danach ist die Datei /etc/ppp/ipup.d/0dns-up manuell anzupassen. Das Programm ipppd bergibt diesem Script nicht die Variablen DNS1 und DNS2, sondern MS_DNS1 und MS_DNS2. Auerdem wird die Variable USEPEERDNS von ipppd nicht gesetzt. Nheres dazu ndet sich in der Manualseite zu ipppd. Der entsprechende Abschnitt in der Datei sieht folgendermaen aus:
if [ "$MS_DNS1" ] ; then echo -e "\nnameserver $MS_DNS1" > > $TEMPRESOLV if [ "$MS_DNS2" ] ; then echo -e "\nnameserver $MS_DNS2" > > $TEMPRESOLV fi fi

17.5.3 Starten und Testen der Verbindung Nach Abschluss der Bearbeitung der Kongurationsdateien knnen Sie das ISDNSystem starten: debian:~# /etc/init.d/isdnutils restart Danach sollten Sie der Ausgabe des Kommandos ifcong entnehmen knnen, dass das Netzinterface ippp0 konguriert ist und bereit steht. Das Kommando route sollte nun eine Route zur IP-Adresse der Gegenstelle anzeigen, auerdem sollte die Standard-Route auf das Interface ippp0 zeigen. Achtung: Wenn Sie dynamische IP-Adressen verwenden, sehen Sie in der Ausgabe der Kommandos ifcong und route temporre IP-Adressen. Diese werden gendert, sobald die Verbindung aufgebaut ist und die Adressen vom Provider bezogen worden sind. Fall Sie kein Dial-on-Demand verwenden, muss die Verbindung nun manuell aufgebaut werden: debian:~# isdnctrl dial ippp0 Jetzt knnen Sie testen, ob Sie andere Rechner erreichen. Versuchen Sie zunchst einen Rechner ber seine IP-Adresse anzupingen und ihn dann mit seinem Namen zu erreichen. Wenn beides funktioniert, hat alles geklappt, und Sie knnen die Verbindung nun benutzen. Die Verbindung wird entweder nach dem in der Datei /etc/isdn/device.ippp0 kongurierten Timeout automatisch beendet oder manuell:

17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen

645

debian:~# isdnctrl hangup ippp0 Um das gesamte ISDN-System zu stoppen, verwenden Sie dieses Kommando: debian:~# /etc/init.d/isdnutils stop Wenn Sie es danach wieder starten wollen, verwenden Sie dasselbe Kommando mit dem Parameter start an Stelle von stop. Sie mssen dieses Kommando auch dann verwenden, wenn Sie eine Kongurationsdatei des ISDN-Systems gendert haben. In solchen Fllen benutzen Sie das Kommando mit dem Parameter restart. Falls die Konguration nicht beim ersten Mal funktioniert hat, sollten Sie folgende Fragen berprfen: Sind beim Laden des Moduls Fehler aufgetreten? Stimmen alle Parameter? Gibt es Konikte zwischen Hardwareressourcen? Haben Sie beim Laden des Treibermoduls das richtige D-Kanal-Protokoll ausgewhlt? Hat die Kongurationsdatei fr das Netzinterface den Namen device.ippp0 und hat die Kongurationsdatei fr das PPP-Programm den Namen ipppd.ippp0? Falls nicht, verschieben Sie die Dateien oder erzeugen Sie mit isdncong neue Dateien. Stimmen die angegebenen Telefonnummern? Stimmt der name-Eintrag in der Datei ipppd.ippp0 mit dem Benutzernamen in der Datei /etc/ppp/pap-secrets bzw. /etc/init.d/chap-secrets berein? Stimmen Benutzername und Passwort? Haben Sie Benutzername und Passwort in die Datei eingetragen, die fr das Authentizierungsverfahren zustndig ist, das Ihr Provider verwendet? Haben Sie die DNS-Server-Daten Ihres Provider in die Datei /etc/resolv.conf eingetragen? Steht eine freie Leitung zur Verfgung? Ein Standard-ISDN-Anschluss stellt nur zwei Kanle zur Verfgung. Und schlielich: Stimmen die physikalischen Verbindungen (Wackelkontakte etc.)? Im Fehlerfall ist auch bei ISDN-Verbindungen zu empfehlen, die Ausgaben in der Datei /var/log/syslog zu untersuchen. Fehler werden dort oft mit einem cause (Grund) und einer darauffolgenden vierstelligen Zahl ausgegeben. Die Bedeutung dieser Zahlen ist in der Manualseite mit dem Titel isdn_cause aufgelistet. Gewhnlichen Benutzern die Einwahl erlauben Das Programm isdnctrl, mit dem manuell die Einwahl angefordert oder eine bestehende Verbindung beendet wird, darf von allen Benutzern in der Gruppe dialout benutzt werden. Verwenden Sie das Programm adduser (S. 769), um Benutzer dieser Gruppe hinzuzufgen. Weil isdnctrl sich im Verzeichnis /usr/sbin bendet, ist es nicht im Suchpfad fr ausfhrbare Programme gewhnlicher Benutzer enthalten. Es muss deswegen von

646

17 Debian GNU/Linux im Netz

gewhnlichen Benutzern mit seinem vollen Pfadnamen aufgerufen werden. Alternativ kann der Verwalter einen symbolischen Link in ein gngiges Verzeichnis legen. berwachung der Verbindung Die Verwendung eines Modems hat den Vorteil, dass man hrt und sieht, wann eine Verbindung auf- und abgebaut wird. Bei ISDN ist das anders: Der Verbindungsaufbau geht geruschlos und schnell. Gerade bei Verwendung des Dial-on-DemandVerfahrens kommt deswegen leicht Unsicherheit auf, ob man verbunden ist und Gebhren zahlen muss oder nicht. An der Kommandozeile knnen Sie sich den Status der Verbindung anzeigen lassen: debian:~# isdnctrl status all Es erscheint fr jedes kongurierte ISDN-Interface eine Statusausgabe. Im Paket isdnutils sind auerdem zwei Programme fr X11 enthalten, mit dem der Status der Verbindung in einem Fenster beobachtet werden kann: xisdnload Das Programm zeigt in einem Fenster den Status der Verbindung an. ber die Kongurationsdateien /etc/isdn/xisdnload-netup und /etc/isdn/xisdnload-netdown lsst sich bestimmen, welche Aktionen nach einem Mausklick auf das Fenster ausgefhrt werden sollen. Per Voreinstellung werden Verbindungen beendet. xmonisdn Hierbei handelt sich um ein Programm, dass sich dafr eignet, in Kontroll-Panels (wie bei KDE oder GNOME) eingebettet zu werden. Es zeigt den Status der Verbindung mit einem vernderlichen Icon an. Auch bei diesem Programm lsst sich ber die Kongurationsdateien /etc/isdn/xmonisdn-netup und /etc/isdn/xmonisdn-netdown bestimmen, welche Aktionen per Mausklick auf das Icon ausgefhrt werden sollen. 17.5.4 Mehr ber ISDN Neben der Mglichkeit, mit ISDN eine Einwahlverbindung in das Internet aufzubauen, bietet das Paket isdnutils weitere Programme und Mglichkeiten. Dazu gehren ein Anrufbeantworter, die Mglichkeit, ISDN-Karten als virtuelle Modems zu benutzen, ein Programm zur Ablaufverfolgung aller ISDN-Verbindungen, Gebhrenberechnung oder die Mglichkeit, die Namen von Anrufern auf dem Bildschirm auszugeben. Modememulation Das ISDN-Subsystem stellt Gertedateien zur Verfgung, die sich wie serielle Schnittstellen verhalten, an die ein Modem angeschlossen ist. Dadurch knnen Kommunikationsprogramme, die ursprnglich fr die Verwendung mit einem Modem geschrieben waren, auch mit ISDN benutzt werden. Die Emulation erlaubt allerdings nicht die Kommunikation mit echten Modems, sie stellt lediglich die von Modems

17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen

647

bekannten AT-Befehle zur Verfgung. Bei der Gegenstelle muss es sich ebenfalls um einen ISDN-Anschluss handeln. Die Gertedateien heien /dev/ttyI0 fr das erste virtuelle Modem, /dev/ttyI1 fr das zweite usw. Um die Modememulation nutzen zu knnen, rufen Sie das Programm isdncong auf und whlen den Menpunkt 3 (Modem emulation). Daraufhin wird die Datei /etc/isdn/iprofd.data erstellt, die notwendig ist, um Einstellungen der virtuellen Modems zu sichern. Danach werden Sie aufgefordert, die Taste E INGABE zu bettigen, und knnen das Programm mit dem Kommando Q (Quit) verlassen. Geben Sie danach folgendes Kommando ein, um das ISDN-System neu zu starten: debian:~# /etc/init.d/isdnutils restart Nun knnen Sie die Modememulation mit dem Kommunikationsprogramm minicom (Paket minicom) nutzen. Bevor ber ein virtuelles Modem gewhlt werden kann, muss diesem eine MSN oder EAZ mit dem folgenden AT-Befehl zugewiesen werden: AT&E1234567 Der Befehl muss aus dem Kommunikationsprogramm an das Modem geschickt werden, die Ziffernfolge 1234567 ist dabei durch die gewnschte MSN zu ersetzen. Eine Liste der von den virtuellen Modems untersttzten AT-Befehle bendet sich in der Manualseite ttyI. isdnlog Verfolgung von ISDN-Aktivitten Aufgabe des Programms isdnlog ist es, Aktivitten wie ein- oder ausgehende Verbindungen auf der ISDN-Karte zu berwachen, zu protokollieren und nach entsprechender Konguration bei bestimmten Ereignissen denierte Aktionen auszulsen, beispielsweise andere Programme aufzurufen. Das Programm isdnlog funktioniert nur mit dem hisax-Treiber. In der Datei /usr/share/doc/isdnutils/isdnlog/README.de.gz bendet sich die ausfhrliche Dokumentation zu dem Programm. Um das Programm benutzen zu knnen, sind folgende Schritte durchzufhren: Starten Sie zunchst das Programm isdncong und whlen Sie den Menpunkt 4 (isdnlog conguration). Daraufhin werden einige Kongurationsdateien erzeugt. Dann erfolgt die Aufforderung, den Namen einer Kongurationsdatei einzugeben. Geben Sie hier isdnctrl0 ein. Drcken Sie danach die E INGABE-Taste und verlassen Sie das Programm ber den Menpunkt Q. Damit wurden die folgenden drei Dateien erzeugt: /etc/isdn/isdn.conf Dies ist die Hauptkongurationsdatei fr das Programm isdnlog. Darin wird u. a. Ihr Standort festgelegt. /etc/isdn/isdnlog.isdnctrl0 Die Datei enthlt Optionen, mit denen das Verhalten von isdnlog beeinusst wird. /etc/isdn/callerid.conf Die Datei enthlt Informationen zu einzelnen Telefonnummern.

648

17 Debian GNU/Linux im Netz

Anpassung der Datei /etc/isdn/isdn.conf In der Datei mssen die folgenden beiden Einstellungen gendert werden:
COUNTRYCODE=31 AREACODE=546 # the Netherlands # Almelo

Geben Sie hier fr COUNTRYCODE die Vorwahl Ihres Landes (49 fr Deutschland) und fr AREACODE die Vorwahl Ihres Ortsnetzes (421 fr Bremen) ein.
[ISDNLOG] CHARGEMAX = 9999.99 # CURRENCY = 0.08,NLG

Geben Sie hier fr CHARGEMAX den Betrag in Ihrer Whrung ein, den Sie maximal pro Tag fr Telefonverbindungen ausgeben wollen. Das ISDN-System kann weitere ausgehende Verbindungen nach berschreiten des Betrages verhindern. Fr CURRENCY geben Sie den Betrag an, den eine Einheit bei Ihrem Telekommunikationsanbieter kostet. Hinter dem Betrag ist die Bezeichnung der Whrung anzugeben. Betrag und Whrung sind durch ein Komma voneinander zu trennen. Beispiel: CURRENCY = 0.12,EUR. Ausfhrliche Informationen zum Format der Datei sowie zu den darin mglichen Angaben nden Sie in der Manualseite isdn.conf. Anpassung der Datei /etc/isdn/isdnlog.isdnctrl0 In der Datei mssen Sie die folgende Zeile lschen, damit isdnlog beim Neustart des ISDN-Starts tatschlich gestartet wird. # Warning! not configured yet! Mit der Anweisung stdout=0x3f7 wird bestimmt, welche Ereignisse protokolliert werden. Die hexadezimale Zahl 0x3f7 ist die Summe einzelner Kennziffern, die jeweils fr bestimmte zu protokollierende Ereignisse stehen. Eine Liste dieser Kennziffern ndet sich in der Manualseite isdnlog. Mit syslog=0x1bf7 wird nach der gleichen Methode festgelegt, welche Meldungen in der Systemlogdatei festgehalten werden sollen. Wenn Sie die Programme imon oder imontty benutzen, sollten Sie das Kommentarzeichen (#) vor der Zeile monitor=yes entfernen, und falls Sie erlauben wollen, dass bei bestimmten Ereignissen Programme gestartet werden, entfernen Sie den Kommentar vor start=yes. Anpassung der Datei /etc/isdn/callerid.conf Die Datei enthlt zwei Typen von Eintrgen, nmlich solche, die fr die eigenen Telefonnummern gelten und solche, die fr fremde Telefonnummern gelten. Der erste Typ wird mit dem Schlsselwort [MSN] eingeleitet und der zweite mit [NUMBER].

17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen

649

Fr jede Telefonnummer kann angegeben werden, in welcher Gebhrenzone sie sich bendet, welcher Art das Gert ist, das ber die Nummer erreicht wird (Telefon, Fax, Daten usw.), es kann ihr ein Name zugewiesen und angegeben werden, unter welchen Bedingungen Programme gestartet werden sollen, falls Kommunikation mit der betreffenden Telefonnummer stattndet. Hier zwei Beispiele fr lokale Telefonnummern (MSNs):
[MSN] NUMBER = 1234567 ALIAS = Telefon SI = 1 [MSN] NUMBER = 1234568 ALIAS = ISDN-Karte SI = 7

Mit dem Schlsselwort NUMBER wird angegeben, auf welche MSN sich der Eintrag bezieht, mit ALIAS wird der entsprechenden MSN ein Name zugewiesen, der bei der Protokollierung benutzt wird, und mit SI wird angegeben, welchen Dienst die MSN reprsentiert. SI steht dabei fr Service-Indikator. Mgliche Werte sind 1 (Sprache, Telefon, Modem, Fax), 2 (eingeschrnkte digitale Information), 3 (uneingeschrnkte digitale Information und Tne), 4 (Video) und 7 (uneingeschrnkte digitale Information). Hier ein Beispiel, bei dem ein Programm aufgerufen wird, wenn von einer bestimmten fremden Telefonnummer aus angerufen wird:
[NUMBER] NUMBER = 40/21212121 ALIAS = Freundin SI = 1 ZONE = 1 START = { [FLAGS] FLAGS = I|C USER = karl GROUP = karl PROGRAM = /home/karl/scripts/display_bild_of_freundin.sh }

Der obere Teil des Eintrags hat dasselbe Format wie die vorher gezeigten [MSN]Eintrge. Mit dem Schlsselwort START werden Angaben ber zu startende Programme eingeleitet. Dabei muss mit FLAGS angegeben werden, unter welchen Bedingungen das Programm gestartet werden soll. Dabei steht I fr Incoming, also eingehend. Alternativ knnte O (Outgoing) benutzt werden. Mit USER und GROUP wird angegeben, mit welcher Benutzer- und Gruppen-ID das Programm gestartet werden soll, und mit PROGRAM wird das zu startende Programm angegeben. Hinter dem Programmnamen knnen sich Parameter fr das Programm benden. Im Beispiel fhrt der Anruf der Freundin dazu, dass das Skript /home/karl/scripts/display_bild_of_freundin.sh ausgefhrt wird.

650

17 Debian GNU/Linux im Netz

Programme werden nur ausgefhrt, wenn sich in /etc/isdn/isdnlog.isdnctrl0 die Zeile start=yes bendet und diese nicht auskommentiert ist. Die Mglichkeiten, die sich durch die Datei /etc/isdn/callerid.conf einrichten lassen, sind in der ManualSeite callerid.conf beschrieben. Benutzung der ISDN-Ablauf verfolgung Standardmig werden die ISDN-Aktivitten von isdnlog in der Datei /var/log/isdn/isdnlog protokolliert. Sie knnen sich diese Datei mit dem Programm less ansehen. Das Programm imon zeigt den Status der ISDN-Leitungen an der Konsole oder in einem Terminalfenster an. Schlielich steht mit dem Programm isdnrep ein Werkzeug zur Verfgung, das aus der Protokolldatei Berichte ber Verbindungen und Gebhren erstellt. Um einen Bericht fr den aktuellen Tag mit dem Programm less zu betrachten, verwenden Sie dieses Kommando: joe@debian:~$ isdnrep | less Die Optionen und Mglichkeiten des Programms sind in der Manualseite (isdnrep) beschrieben. ISDN-Anrufbeantworter Bevor Sie einen ISDN-Anrufbeantworter kongurieren, sollten Sie unbedingt die HTML-Dokumentation in /usr/share/doc/isdnutils/vbox lesen. Das System ist dort ausfhrlich beschrieben, die Konguration wird deswegen hier nur schematisch dargestellt. Neben dem eigentlichen Anrufbeantworter bentigen Sie eine Soundkarte, um eingegangene Nachrichten abzuhren und ausgehende Nachrichten aufzunehmen. Zur Konguration eines ISDN-Anrufbeantworters muss mit isdncong ein Satz Kongurationsdateien erzeugt werden. Dabei ist anzugeben, welchem Benutzer der Anrufbeantworter gehren soll. Hierbei muss es sich um einen gewhnlichen Benutzer (nicht root) handeln. Im nchsten Schritt sind die Dateien /etc/isdn/vboxd.conf und /etc/isdn/vboxgetty.conf anzupassen. Die Syntax sowie die zu treffenden Einstellungen sind in den Manualseiten vboxd.conf und vboxgetty.conf beschrieben. Hier ein Beispiel fr /etc/isdn/vboxd.conf (alle anderen Zeilen sollten auskommentiert sein):
L:localhost:Y A:localhost:RW:karl:passwort:/var/spool/vbox/karl:incoming

Fr karl ist der Name des Benutzers einzusetzen, der zuvor mit isdncong angegeben wurde, und fr passwort ist ein Passwort zu whlen (nicht das normale Passwort des Benutzers). Ein Beispiel fr /etc/isdn/vboxgetty.conf (gezeigt ist nur der gertespezische Teil, die Eintrge im oberen Teil der Datei knnen belassen werden, wie sie sind):

17.5 Konguration des ISDN-Subsystems fr Einwahlverbindungen


port /dev/ttyI0 modeminit user group spooldir

651

ATZ&B512&E1234567 karl karl /var/spool/vbox/karl

Auch hier ist fr karl der richtige Benutzername einzusetzen. Auerdem muss in der ersten Zeile fr 1234567 die MSN angegeben werden, fr die der Anrufbeantworter arbeiten soll. Im nchsten Schritt ist die Datei /var/spool/vbox/benutzer/vbox.conf anzupassen. Das Format dieser Datei ist in der Manualseite vbox.conf beschrieben. Beispiel:
[CALLERIDS] * *** Unknown *** [RINGS] * * 2 [STANDARD] * * standard.msg 90 RINGS=6 TOLLRINGS=4 [STANDARD-OWNER] * * standard.msg 120 RINGS=99

Zum Schluss ist in der Datei /etc/inittab das Kommentarzeichen vor der folgenden Zeile zu entfernen: I0:2345:respawn:/usr/sbin/vboxgetty -d /dev/ttyI0 Nun kann der Anrufbeantworter gestartet werden. Dazu ist die Datei /etc/inittab neu einzulesen: debian:~# init Q und dann das ISDN-System neu zu starten: debian:~# /etc/init.d/isdnutils restart Eingehende Anrufe werden im Verzeichnis /var/spool/vbox/Benutzer/incoming gespeichert, wobei Benutzer durch den Namen des Besitzers des Anrufbeantworters zu ersetzen ist. Sobald eine Nachricht eingegangen ist, wird der Besitzer des Anrufbeantworters mit einer Mail benachrichtigt. Fr ausgehende Mitteilungen (Ansagen und dergleichen) wird die Datei /var/spool/vbox/Benutzer/messages/standard.msg benutzt. Hierbei handelt es sich um eine leere Datei, es wird keine Nachricht abgespielt. Sie knnen Nachrichten mit jedem Sound-(Wave-)Aufnahmeprogramm aufnehmen oder erstellen und im SUNAudio-Format speichern. Mit dem Programm autovbox werden die Dateien dann in ein Format konvertiert, das fr ausgehende Nachrichten benutzt werden kann. Einfacher ist es, den eigenen Anschluss anzurufen, einen Ansagetext aufzusprechen und die dadurch entstandene Datei im messages-Verzeichnis unter dem Namen standard.msg zu speichern. Zur Benutzung des Anrufbeantworters wird das Programm vbox benutzt. Nach dem Start des Programms wird ein Benutzername und ein Passwort erfragt. Hier sind die Benutzerinformationen einzugeben, die in der Datei /etc/isdn/vboxd.conf

652

17 Debian GNU/Linux im Netz

konguriert wurden. Weil das System zur Abfrage von Nachrichten auf einer KlientServer-Architektur beruht, kann vbox auch auf einem anderen Rechner im Netz gestartet werden, vorausgesetzt der Zugriff von diesem Rechner wird in der Datei /etc/isdn/vboxd.conf gestattet. 17.5.5 Weiterfhrende Informationen Die hier beschriebenen Verfahren decken nur einen Teil der Mglichkeiten dessen ab, was mit dem ISDN-System gemacht werden kann. Wenn Sie mehr ber ISDN unter Linux wissen mchten, sollten Sie zunchst die Dokumentation im Verzeichnis /usr/share/isdnutils studieren. Die Homepage des ISDN-fr-Linux-Projekts ist unter der Web-Adresse http://www.isdn4linux.de/ zu erreichen. Dort bendet sich auch die aktualisierte Sammlung von Antworten auf hug gestellte Fragen (http://www.isdn4linux.de/faq/). Ein deutschsprachiges ISDNHOWTO ist unter der Web-Adresse http://www.franken.de/users/ klaus/DE-ISDN-HOWTO/html/DE-ISDN-HOWTO.html verfgbar.

17.6 Klientprogramme fr Internet-Dienste


Die am meisten genutzten Dienste im Internet sind: Electronic Mail (Email), einer der ltesten Dienste, Fernkopieren von Dateien mittels File Transfer Protocol (FTP), ebenfalls ein alter Dienst, Netnews (Usenet), das World Wide Web (WWW oder Web), ein junger Dienst. Mit der Verbreitung des Internets ist die Zahl der Dienste und Protokolle gewachsen, die im Internet benutzt werden. Fr die meisten Dienste stehen unter Debian GNU/Linux wiederum mehrere Klient- und Serverprogramme zur Verfgung, sodass es unmglich ist, diese Programme alle zu erwhnen oder gar vollstndig zu beschreiben. Wenn Sie einen bestimmten Dienst wie IRC (Internet Relay Chat) verwenden wollen und nicht wissen, welches Programm dabei am besten Ihren Bedrfnissen entspricht, kann nur empfohlen werden, die entsprechenden Pakete nacheinander zu installieren, die dazugehrende Dokumentation zu lesen und sie auszuprobieren. 17.6.1 Webbrowser Netscape und Abkmmlinge Der Standard-Browser unter Linux ist immer noch Netscape, zur Zeit in Version 7.1. Weil er auch fr andere Betriebssysteme zur Verfgung steht, kennen Sie den Browser wahrscheinlich schon. Fr Debian GMU/Linux gibt es eine Reihe

17.6 Klientprogramme fr Internet-Dienste

653

unterschiedlicher Netscape-Pakete. Die Pakete enthalten unterschiedliche Versionen des Programms. Da es eine Zeitlang mit jngeren Versionen Schwierigkeiten gegeben hat (6.0 war berchtigt), wird im non-free-Bereich von Debian auch noch die bewhrte Version 4.77 vorgehalten. Auerdem kann zwischen dem vollen Netscape-Paket (Browser, News-Klient, Email-Programm, Programm zur Erstellung eigener Web-Seiten usw.) und einer abgespeckten Version gewhlt werden, die lediglich den Browser enthlt. Das komplette Paket wird communicator genannt. Die Namen von Paketen, die nur den Browser zur Verfgung stellen, beginnen mit navigator. Neben dem eigentlichen Programm gibt es eine Reihe weiterer Pakete, welche die Java-Untersttzung, Hilfe-Dateien, ein Programm zur berprfung der Rechtschreibung in selbst erstellten Web-Seiten sowie Skripte zur Integration des Browsers enthalten. Nheres bei http://www.netscape.de/ oder http://www.mozilla-center.de/ Aus dem proprietren Browser Netscape 4.0 ging das Open-Source-Projekt Mozilla hervor. Der Name Mozilla war die rmeninterne Bezeichnung des Netscape Navigators seit der Version 1. Mittlerweile kann man behaupten, dass Netscape auf Mozilla beruht. Auch Mozilla steht unter Debian GNU/Linux im Paket mozilla zur Verfgung. Nheres bei http://www.mozilla.org/ oder http: //www.mozilla-center.de/. Auf der Arbeitsplatzumgebung GNOME (siehe Seite 337) und dem Browser Mozilla baut der Browser Galeon auf, der sich auf das Web konzentriert und schlank und schnell zu sein verspricht. Er gehrt auch zu den Netscape-Abkmmlingen und steht fr Debian GNU/Linux zur Verfgung. Nheres bei http://galeon. sourceforge.net/. Auf Dauer soll man nicht verschiedene Browser durcheinander benutzen, da jeder Verwaltungsinformationen im Home-Verzeichnis ablegt, die teilweise die Konkurrenten verwirren. Es ist dasselbe wie bei Email-Klienten. Verschiedene Benutzer eines Rechners knnen durchaus verschiedene Browser verwenden. Installation Um die Installation des Browsers zu vereinfachen, stehen zwei Pakete zur Verfgung, die durch Abhngigkeiten die Installation der richtigen Pakete gewhrleisten. Durch Installation des Pakets navigator wird die neueste Version des Web-Browsers mit Java-Untersttzung installiert. Durch Auswahl des Pakets communicator wird die jeweils neueste Version des vollen Pakets ebenfalls mit Java-Untersttzung installiert. Wenn Sie Netscape noch nicht installiert haben und das komplette Paket haben mchten, geben Sie folgendes Kommando ein: debian:~# apt-get install communicator Danach knnen Sie Netscape aus dem Debian-Men oder von der Kommandozeile aus mit dem Kommando netscape aufrufen. Aus Grnden der Sicherheit ist es dem Systemverwalter nicht gestattet, das Programm auszufhren.

654

17 Debian GNU/Linux im Netz

Konguration Wie unter Linux/UNIX blich verwaltet Netscape fr jeden Benutzer eine eigene Konguration. Wenn Sie das Programm zum ersten Mal aufrufen, erscheint ein Begrungsbildschirm, in dem die Lizenz zur Benutzung des Programms dargestellt wird. Wenn Sie die Lizenz akzeptieren, erscheint das Hauptfenster des Programms. Sie sollten dann im Men Edit den Menpunkt Preferences auswhlen, um Ihre persnlichen Einstellungen zu berprfen und anzupassen.

Abbildung 17.6. Konguration des Web-Browsers Netscape.

Es erscheint dann das in Abbildung 17.6 dargestellte Fenster. Whlen Sie auf der linken Seite des Fensters die Gruppe von Einstellungen (Category) aus, die Sie prfen oder verndern wollen. Alle Kategorien der Konguration sind Gruppen zugeordnet. Sie mssen auf die Pfeile klicken, damit die Unterkategorien erscheinen. Whlen Sie dann eine Unterkategorie aus und nehmen Sie die Einstellungen auf der rechten Seite des Fensters vor. Wenn Sie Netscape verwenden wollen, um Email zu empfangen oder zu versenden, mssen Sie Ihre Email-Adresse im Kongurationsteil Identify (Kategorie Mail & Newsgroups) einstellen. Auerdem sollten Sie im Kongurationsteil Formatting angeben, dass Email nicht im HTML-Format gesendet wird (Convert the message into plain text). Falls Sie einen Proxy-Server verwenden, knnen Sie die zugehrigen Einstellungen im Kongurationsteil Proxies (Kategorie Advanced) vornehmen.

17.6 Klientprogramme fr Internet-Dienste

655

ndern der Schlsselstrke Aufgrund der Exportbestimmungen in den USA darf das Debian-Projekt nur die internationale Version des Netscape-Browsers zur Verfgung stellen. Diese Version verfgt ber eine geringere Schlsselstrke, die keinen sicheren Datenaustausch gewhrleistet. Fr einige Web-Anwendungen wie Homebanking wird jedoch eine hhere Schlsselstrke bentigt. Das Programm fortify (aus dem Paket fortify-linux-x86) kann die auf Ihrem Rechner installierten Netscape-Programme so verndern, dass sie die volle Schlsselstrke benutzen. Nach der Installation des Pakets werden die installierten NetscapeProgrammdateien gesucht, und es erfolgt die Frage, ob die Dateien verndert werden sollen. Whrend dieses Prozesses darf Netscape von keinem Benutzer ausgefhrt werden. Wenn Sie die entsprechenden Fragen mit yes beantworten und Netscape anschlieend neu starten, knnen Sie das Programm mit voller Schlsselstrke benutzen. Sie berprfen die Schlsselstrke, indem Sie im Men Help den Menpunkt About Communicator/Navigator auswhlen. In der linken Hlfte der daraufhin angezeigten Seite bendet sich ein fett gedruckter Text. Wenn dort This version supports U.S. security . . . zu lesen ist, benutzt das Programm die volle Schlsselstrke. Falls sich dort der Satz This version supports international security . . . bendet, wird lediglich die schwache Schlsselstrke benutzt. Andere Browser Lynx Das Programm lynx aus dem gleichnamigen Paket ist ein nicht-grakfhiger WebBrowser fr die Konsole oder ein Terminalfenster. Das Programm hat zwar gegenber Netscape erhebliche Beschrnkungen, aber es braucht weniger Systemressourcen und keine grasche Oberche. Das Programm eignet sich gut dafr, Dokumentation zu lesen, die im HTML-Format vorliegt. Mit dem Browser lassen sich Webseiten auf Eignung fr blinde Benutzer testen, die auf einen Screenreader (VorleseProgramm) angewiesen sind. Sie knnen lynx auch mit einem Proxy-Server verwenden. Dazu ist die Umgebungsvariable http_proxy folgendermaen zu setzen: http_proxy=http://server:port/ Hierbei ist fr server der Name des Proxy-Servers und fr port die Nummer der Ports auf dem Proxy-Server anzugeben, ber den er angesprochen werden kann. Beispiel: joe@debian:~$ export http_proxy=http://proxy.firma.de:8080/ Proxy-Server fr die Dienste FTP, Gopher usw. lassen sich durch die Umgebungsvariablen ftp_proxy, gopher_proxy usw. auf dieselbe Weise einstellen. Alle weiteren Optionen des Programms sind in der Manualseite lynx beschrieben.

656

17 Debian GNU/Linux im Netz

Konqueror Der Web-Browser der KDE-Arbeitsplatzumgebung (Seite 335) ist der Konqueror. Er ist zugleich der Dateimanager unter KDE und in den Debian-Paketen konqueror sowie konq-plugins enthalten. Nheres unter http://www.kde.de/ oder http://www.konqueror.org/. Opera Nicht als Debian-Paket, aber kostenfrei oder fr wenig Geld erhltlich ist der Browser Opera aus Norwegen. Er gilt als schnell und hlt sich strikt an den HTML-Standard. Damit ist er auch ein Werkzeug zum Testen eigener HTML-Seiten. Nheres unter http://www.opera.com/linux/ oder http://www.opera-browser.de/. 17.6.2 Email Email ist einer der ltesten und wichtigsten Dienste im Internet. Wenn die Email streikt, steht zehn Minuten spter eine Schlange von Benutzern vor der Tr des Verwalters. Der Dienst ermglicht einen preiswerten und schnellen Austausch von Nachrichten unabhngig vom Standort des jeweiligen Empfngers und Senders. Gegenber dem Telefon hat Email bei gleicher Geschwindigkeit den Vorzug, dass Sender und Empfnger nicht gleichzeitig am Apparat zu sein brauchen. Auerdem lsst sich Email zu Papier bringen. Unter Linux/UNIX wird Email darber hinaus verwendet, um Ausgaben von Programmen an den Verwalter zu senden. Wir verstehen unter Email den Dienst, die einzelne Mitteilung nennen wir Mail. Vereinfacht gesagt wird bei Internet-Email davon ausgegangen, dass jeder Benutzer einem bestimmten Rechner zugeordnet ist. Die Mail wird dann an den betreffenden Rechner geschickt, und der Benutzer kann sie lesen, sobald er sich an dem Rechner angemeldet hat. Aus diesem Grund bestehen Email-Adressen aus einem Benutzernamen (vor dem @, Klammeraffe genannt) und einem Rechnernamen (nach dem @). Das Protokoll zum Empfangen und Versenden von Email ist das Simple Mail Transfer Protocol (SMTP) nach RFC 821. Aus dieser Konzeption ergibt sich ein Problem fr Rechner, die nicht dauerhaft mit dem Internet verbunden sind. Mail kann an solche Rechner nicht zugestellt werden, weil mitunter zur Zeit der Zustellung keine Verbindung besteht. Deswegen bieten Internet-Provider und andere Service-Provider Mail-Server an, die Mails fr einen Benutzer empfangen und zwischenlagern. Sobald der Rechner, auf dem die Mail gelesen wird, mit dem Netz verbunden ist, wird sie vom Server des Providers abgeholt oder direkt auf dem Server gelesen. Die Email-Adresse besteht in diesem Fall aus dem Benutzernamen beim Provider sowie aus dem Namen des Mail-Servers des Providers, damit sie nicht an den unerreichbaren Rechner des Empfngers, sondern an den Provider geschickt wird. Weil das Zwischenlagern und Abholen von Mail in dieser Form im SMTPProtokoll nicht vorgesehen ist, mssen zum Abholen von Mails andere Protokolle benutzt werden. Die heutigen Protokolle dafr sind das Post Ofce Protocol (POP) nach

17.6 Klientprogramme fr Internet-Dienste

657

RFC 1939 sowie das Internet Message Access Protocol (IMAP) nach RFC 2060. Das Versenden von Mail kann grundstzlich auch von einem nur temporr angebundenen Rechner per SMTP geschehen, weil whrend des Mail-Versands ja eine Verbindung zum Internet bestehen kann. Hug bedient sich ein solcher nur zeitweise eingeschalteter Rechner aber auch eines SMTP-Servers, um die aufwendige Einrichtung und Pege eines SMTP-Dmons zu vermeiden. Ein Programm zum Lesen und Schreiben von Email wird als Mail User Agent (MUA) bezeichnet. Viele dieser Programme sind in der Lage, via POP oder IMAP Mails von einem Provider abzuholen und ausgehende Mails via SMTP an den Provider zu schicken, der dann den weiteren Versand bernimmt. Daneben existiert auf den meisten Debian-Systemen ein Mail-Server-Programm, ein Programm, das Mail per SMTP von anderen Rechnern oder von lokalen Benutzern empfangen kann und diese dann fr die Benutzer des Systems so lange aufbewahrt, bis sie gelesen werden. Bei einem solchen Programm spricht man von einem Mail Transport Agent (MTA). Aufgabe eines MTAs ist es, Mail von anderen Rechnern und lokalen Benutzern zu empfangen, Mail fr lokale Benutzer aufzubewahren und Mail ins Netz zu schicken. Der standardmig unter Debian GNU/Linux installierte MTA ist das Programm exim, Alternativen sind sendmail und postx, beide als Debian-Pakete verfgbar. Auf Benutzer wartende Mails benden sich in Dateien im Verzeichnis /var/mail. Dort wird fr jeden Benutzer bei Bedarf eine Datei angelegt, in der sich alle seine Mails hintereinander benden (Briefkasten). Man nennt diese Dateien MailspoolDateien. Sie sollten nicht direkt, sondern mit einem Email-Programm (MUA) bearbeitet werden. Klassische Email-Programme fr Linux/UNIX arbeiten ausschlielich mit Mailspool-Dateien. Hier wird der Weg ber den eigenen MTA zwingend vorausgesetzt. Wenn solche Programme auf einem Rechner eingesetzt werden, der nicht selbst Mail empfangen kann, weil er nicht dauerhaft mit dem Netz verbunden ist, muss die Mail von einem anderen Programm beim Provider abgeholt werden und an den MTA auf dem eigenen Rechner bergeben werden, der sie an die Benutzer ausliefert. Hierzu dient das Programm fetchmail, das Mail per POP oder IMAP beim Provider abholt und dem lokalen MTA bergibt. Die Verwendung eines MTAs und des Programms fetchmail ist zwar anfangs mit mehr Aufwand bei der Konguration verbunden, aber es bringt Vorteile mit sich. Eingehende Email kann einheitlich verarbeitet werden, es mssen vom MUA keine unterschiedlichen Server nach wartender Mail abgesucht werden. Weiter kann fetchmail Mail in bestimmten Zeitintervallen automatisch abholen, und auch der MTA kann so konguriert werden, dass ausgehende Mail ebenfalls nur nach bestimmten Intervallen versendet wird. Es ist bei diesem Verfahren nicht notwendig, eine Internetverbindung aufzubauen, sobald ein Benutzer Mail lesen oder versenden mchte. Sie mssen entscheiden, welches Verfahren Sie verwenden wollen. Wenn Sie den eigenen MTA nicht verwenden, bentigen Sie ein Email-Programm (MUA), das in der Lage ist, Mail beim Provider per POP oder IMAP abzuholen. Falls Sie den eigenen MTA benutzen, braucht Ihr Email-Programm lediglich in der Lage zu sein, die

658

17 Debian GNU/Linux im Netz

lokal vorhandenen Mails zu verarbeiten. Auch wenn Sie ein Programm verwenden, das nicht mit dem lokalen MTA kommuniziert, sollten Sie gelegentlich nachsehen, ob in Ihrer Mailspool-Datei Mail fr Sie wartet. Hierbei kann es sich um wichtige Meldungen des Systems handeln, die nicht ignoriert werden sollten. Das gilt insbesondere fr Verwalter. Der Transport von Mail ber das Internet ist unsicher, eine Mail ist eine Postkarte. In vielen Fllen ist es deswegen erwnscht, Mail vor dem Transport zu verschlsseln und beim Empfnger wieder zu entschlsseln. Auch wenn keine Verschlsselung bentigt wird, ist es dennoch oft notwendig, Mail eindeutig zu signieren, sodass der Empfnger sich sicher sein kann, dass eine Mail wirklich von dem angegebenen Absender stammt. Zu beiden Zwecken stehen zwei Programmpakete zur Verfgung, nmlich einmal das nicht-freie Programm pgp (Pretty Good Privacy, Paket pgp-i), sowie das Programm gnupg (GNU Privacy Guard, Paket gnupg). Auf die Programme soll hier nicht weiter eingegangen werden. Bei der Auswahl eines Email-Klienten kann es jedoch eine Rolle spielen, ob und wie gut Verschlsselungswerkzeuge integriert sind. Email wird hug auch zum Versand von beliebigen Dateien benutzt, obwohl das nicht der ursprngliche Zweck ist. Dabei wird einer Mail eine Datei kodiert angehngt; man spricht von Attachments. Damit Absender- und Empfngerprogramm die angehngten Dateien auf die gleiche Weise kodieren und dekodieren, bedarf es eines Standards. Hier haben sich die Multipurpose Internet Mail Extensions (MIME) nach RFC 2045 und weiteren durchgesetzt. Alle im folgenden aufgezhlten EmailProgramme sind in der Lage, mit dieser Erweiterung umzugehen. Netscape Mail Der Web-Browser Netscape ist in der Ausfhrung communicator mit einem kombinierten Netnews- und Email-Programm ausgestattet. Das Programm bietet die Mglichkeit zur automatischen Filterung von Mail (automatisches Verschieben von Mail in bestimmte Verzeichnisse nach denierten Regeln) und zeichnet sich durch ein gelungenes Adressbuch aus, das auch die Suche nach Email-Adressen auf speziellen Servern erlaubt. Der Mail-Teil kann mit einem POP-Server, lokalen Mailspool-Dateien oder verschiedenen IMAP-Servern benutzt werden. Leider ist es nicht mglich, gleichzeitig mehrere POP-Server oder lokale Mailspools sowie POP- und IMAP-Server zu verwenden. Die Konguration der Mail-Server nden Sie im Kongurationsbildschirm in der Kategorie Mail & Newsgroups unter Mail-Servers. Zum Versand von ausgehender Mail benutzt Netscape SMTP. Geben Sie bei Outgoing Mail den Namen des SMTP-Servers Ihres Providers an, wenn Mail direkt an diesen versendet werden soll, oder localhost, wenn Sie Ihren eigenen MTA zum Mailversand benutzen wollen. Balsa Das Email-Programm balsa (Paket balsa) gehrt zur Arbeitsplatzumgebung GNOME (Seite 337). Es untersttzt die Verwendung lokaler Mailspool-Dateien sowie beliebig vieler IMAP-Server. Der Versand ausgehender Mail kann ber den lokalen

17.6 Klientprogramme fr Internet-Dienste

659

MTA oder ber den SMTP-Server eines anderen Rechners (Provider) geschehen. Das Programm ist mit einem Adressbuch ausgestattet und vereint bei ansprechendem Design die wichtigsten Mailfunktionen. Wenn ein Benutzer das Programm zum ersten Mal startet, bittet es diesen, einige Einstellungen vorzunehmen. Dabei knnen Name, Email-Adresse, Verzeichnis, in dem Mail aufbewahrt werden soll und SMTP-Server angegeben werden. Im nchsten Schritt werden Verzeichnisse erfragt. Fr Inbox sollte dabei die Mailspool-Datei des Benutzers angegeben werden, beispielsweise /var/mail/karl5 fr den Benutzer karl5.

Abbildung 17.7. GNOMEs Email Klient-Programm Balsa.

Zustzliche (IMAP-)Mail-Server lassen sich spter angeben, indem der Kongurationsbildschirm des Programms aufgerufen wird (Men Settings, Menpunkt Preferences) und dort die Indexzunge Mail-Servers ausgewhlt wird. KMail Wie GNOME ist auch die Arbeitsplatzumgebung KDE (Seite 335) mit einem eigenen Email-Klient ausgestattet. Das Programm untersttzt lokale Mailspool-Dateien sowie POP- und IMAP-Server. Der Versand kann ber SMTP sowie den lokalen MTA erfolgen. Weiter besteht die Mglichkeit, Filterregeln zu denieren, und es gibt eine Schnittstelle zu den Chiffre-Programmen pgp und gnupg. Das Programm heit kmail, es ist Bestandteil des KDE-Pakets kdenetwork. Der Kongurationsteil des Programm wird ber das Men Datei, Menpunkt Einstellungen erreicht. Es erscheint ein Fenster mit Indexzungen, in denen die Ein-

660

17 Debian GNU/Linux im Netz

stellungen unter Identitt (persnliche Einstellungen Name, Email-Adresse usw.) und Netz (Mail-Empfang und -Versand) geprft und angepasst werden sollten. Weitere Email-Programme Wenn Sie mit den drei oben beschriebenen Email-Programmen nicht zufrieden sind, sollten Sie folgende Programme ausprobieren: mutt Ein leistungsfhiges Email-Programm fr Konsole oder Terminalfenster, das zur Benutzung mit Mailspool-Dateien und einem lokalen MTA konzipiert ist. Nach der Installation des Pakets mutt bendet sich in der Datei /usr/share/mutt/manual.txt.gz eine ausfhrliche Anleitung. Wer mit dem elm gearbeitet hat, gewhnt sich schnell an mutt. xfmail Das Programm fr X11 bietet eine groe Zahl von Eigenschaften wie die Mglichkeit zum Umgang mit Spool-Dateien sowie POP- und IMAP-Server. Es kann Mail ltern und integriert pgp. (X)Emacs Die Editoren emacs und xemacs sind mit eigenen Mailprogrammen ausgestattet. Wer sowieso viel mit diesen Editoren arbeitet, braucht zur Benutzung der Mail-Programme kaum neue Tastaturbefehle zu lernen. procmail Das Programm ist kein Werkzeug zum manuellen Lesen und Verfassen von Emails, sondern dient zur automatischen Bearbeitung von Mails. Es kann eingehende Mails selbststndig in bestimmte Verzeichnisse sortieren oder Aktionen auslsen, wenn Mails vorgegebene Texte enthalten. 17.6.3 Netnews (Usenet) News sind ein Netzdienst, bei dem Nachrichten mit Klient-Programmen (Newsreadern) von einem Server (Newsserver) bei Bedarf abgerufen und angezeigt werden. Gleichzeitig ist es mglich, mit dem Newsreader neue Nachrichten oder Antworten auf vorhandene Nachrichten zu schreiben und an den Newsserver zu schicken. Nachdem der Server eine solche Nachricht erhalten hat, stellt er sie dem Netz zur Verfgung. Bei den Nachrichten handelt es sich mit wenigen Ausnahmen um reine ASCII-Texte, anders als im Web. Im Internet heit der Dienst Netnews. Da aber auch Rechner auerhalb des Internets seit Anbeginn daran teilnehmen, nennt sich das Netz aller News-Teilnehmer Usenet. Whrend Email eine Benutzer-zu-Benutzer-Kommunikation darstellt, sind die Netnews eine Benutzer-zuffentlichkeit-Kommunikation, was Zurckhaltung bei den Meinungsuerungen verlangt. Man kann sich die News wie eine Zeitung vorstellen, die nur aus Leserbriefen besteht und fortlaufend erscheint. Auf diese Weise ist es mglich, ffentliche Diskussionen ber verschiedene Themen zu fhren oder Fragen zu stellen und zu beantworten. Nach Mailing-Listen sind Netnews das wichtigste Medium zur ffentlichen Kommunikation im Internet. Weil es unbegrenzt viele Themen gibt, an denen Menschen interessiert sein knnen, sind Netnews in Rubriken oder Gruppen (Newsgroups) unterteilt. Es gibt:

17.6 Klientprogramme fr Internet-Dienste

661

Internationale Gruppen, deren Sprache Englisch ist und die auf jedem Newsserver gefhrt werden sollten, nationale Gruppen, in unserem Fall besser deutschsprachige Gruppen genannt, die nur im deutschen Sprachraum und im grenznahen Ausland verfgbar sind, lokale Gruppen, die sich auf eine Stadt wie Karlsruhe und deren Umland beschrnken. Die internationalen Gruppen werden seit altersher in die Groen Acht gegliedert: comp. Computer Science, Informatik, humanities. Geisteswissenschaften, misc. Miscellaneous, Vermischtes, Sonstiges, news. Themen zu den Netnews selbst, rec. Recreation, Freizeit, sci. Science, Naturwissenschaften, Medizin und Mathematik, soc. Society, Gesellschaftswissenschaften, Politik, talk. Diskussionen aller Art. Dazu kommen alternative internationale Gruppen, die nicht berall gehalten werden. Die Namen der nationalen Newsgruppen beginnen mit einem Sprachkrzel: de. fr Deutsch, fr. fr Franzsisch. Bei den deutschsprachigen Gruppen richtet sich die nchste Gliederungsebene nach den Groen Acht. Die Namen deutschsprachiger Gruppen, die sich mit Informatik befassen, beginnen dementsprechend mit de.comp.. Je nach Bedarf setzt sich die Unterteilung noch ber mehrere Ebenen fort. Einige Beispiele: comp.os.linux.setup ist die internationale Newsgruppe Computer Science Operating Systems Linux Setup (Einrichtung). soc.culture.nordic ist die internationale Newsgruppe Society Culture Nordic Countries, in der kulturelle Fragen aus den skandinavischen Lndern einschlielich Island und Finnland diskutiert werden, vorwiegend auf Englisch. de.rec.fahrrad ist die deutschsprachige Gruppe, in der sich alles um das Fahrrad dreht. ka.uni.studium ist eine lokale, auf Karlsruhe beschrnkte Newsgruppe, in der Fragen zum Studium an der Universitt Karlsruhe abgehandelt werden. Weltweit gibt es eine unbekannte Anzahl von Newsgruppen. Groe Newsserver fhren etwa hundertausend. Verfolgen kann eine einzelne Person vielleicht ein Dutzend. Ein Anfnger sollte mit einer Newsgruppe beginnen, die fr Neulinge (newusers) eingerichtet ist. Im Zusammenhang mit Linux ist die Newsgruppe de.comp.os.unix.linux.newusers interessant. Ihr Internet-Provider sollte Ihnen einen Newsserver zur Verfgung stellen, den Sie benutzen, um Newsgruppen zu abonnieren (subskribieren) und eigene News zu versenden. Falls dies nicht der Fall ist, knnen Sie versuchen, einen freien Newsserver zu nden. Um an den Netnews teilzunehmen, brauchen Sie ein Programm, einen Newsreader. Die wichtigsten Funktionen von Newsreadern bestehen darin festzulegen, welche Newsgruppen gelesen werden sollen. Diesen Vorgang nennt man abonnieren

662

17 Debian GNU/Linux im Netz

(eng.: subscribe). Ebenso ist es mglich, das Abonnement einer Newsgruppe wieder zu kndigen (engl: unsubscribe). Aus den abonnierten Gruppen kann eine zum Lesen ausgewhlt werden, woraufhin alle (oder ein Teil) der darin enthaltenen Artikel angezeigt werden. Eine wichtige Funktion ist dabei das Threading. Das ist die Fhigkeit des Newsreaders, Artikel zu einem bestimmten Thema (Thread) so untereinander anzuordnen, dass man sieht, wer mit einem Thema begonnen hat und wer welche Antworten (Follow-Ups) geschickt hat. Darber hinaus erlauben Newsreader das Anzeigen von Artikeln sowie das Verfassen von neuen Artikeln oder von Antworten. Hierzu rufen manche Newsreader einen externen Editor auf, was den Vorteil hat, dass man beim Schreiben von Artikeln ein gewohntes Programm verwenden kann. Fortgeschrittene Funktionen, die nur einige Newsreader besitzen, sind der Umgang mit einem Killle und das Scoring. Beides sind Verfahren, mit denen nach Regeln, die vom Benutzer festgelegt werden, Artikel entweder gar nicht oder nur mit geringer Prioritt angezeigt werden. Dadurch knnen Artikel von unbeliebten Verfassern ausgeblendet oder Artikel zu besonders interessanten Themen hervorgehoben werden. Auf einem Newsserver bleibt ein Artikel zwischen drei Tagen und drei Monaten verfgbar. Die Zeitspanne liegt im Ermessen des Verwalters. Kein Server im Internet archiviert alle Beitrge unbegrenzt lange. Es gibt jedoch voneinander unabhngige Teilarchive. Eines der grten ist http://groups.google.com/. Bevor Sie das erste Mal eigene Artikel in eine Newsgroup schicken, sollten Sie eine Zeitlang in der betreffenden Gruppe mitlesen, um sicherzustellen, dass Sie mit Ihrer Frage oder Mitteilung in der richtigen Gruppe sind. Testen Sie die Einstellungen Ihres Newsreaders und Ihre persnlichen Fhigkeiten, indem Sie ein Posting an die Newsgruppe de.test schicken. Dort lesen nur geduldige Programme (Reektoren) mit, die Ihnen als Antwort Ihren eigenen Beitrag zurckschicken. Ihre Nachricht in gewhnlichen Gruppen ist allen Internet-Nutzern zugnglich, wird von verschiedenen Rechnern archiviert und von einer groen Anzahl von Menschen gelesen. Wenn Sie technische Fragen haben, sollten Sie Ihr Problem genau beschreiben und darstellen, was Sie bereits versucht haben, um es zu lsen. In vielen Newsgroups gibt es FAQs (Frequently Asked Questions). Das sind Dokumente, die hug gestellte Fragen und Antworten darauf enthalten. Diese Dokumente werden regelmig (wchentlich bis monatlich) in die zugehrige Gruppe gesendet. Sie machen sich unbeliebt, wenn Sie Fragen stellen, die in der FAQ der Gruppe bereits ausfhrlich beantwortet werden. Die allgemeine UNIX-FAQ-Sammlung umfasst ausgedruckt 250 Seiten A4 und kommt an ein Buch heran. Viele FAQs stehen auf http://www.faqs.org/ stndig bereit. Vermeiden Sie, zu groe Mitteilungen oder etwas Anderes als Text zu versenden; viele News-Benutzer verfgen nur ber einen langsamen Internet-Zugang, fr den sie bezahlen mssen, und rgern sich dann ber den Aufwand, Ihre Nachricht herunterladen zu mssen. Wenn Sie Ihre Meinung zu einem Thema mitteilen, dann mssen Sie sich an allgemeine Grundstze im Umgang mit Anderen wie Respekt und Hichkeit halten. Die Regeln ber den Umgang im Netz bezeichnet man als Netiquette. Fragen und Antworten zu Netiquette ndet man in der Newsgruppe de.newusers.question und auf Web-Seiten wie:

17.6 Klientprogramme fr Internet-Dienste

663

http://rn.informatik.uni-bremen.de/service/news/info. html http://www.stud.uni-hannover.de/stud/info/ http://www.dana.de/mod/ Netscape News Die communicator-Variante von Netscape ist mit einem Newsreader ausgestattet. Dieser Teil des Programms wird ebenfalls ber das zentrale Fenster zur Konguration des Programms konguriert (Edit Preferences). In der Kategorie Mail & Newsgroups bendet sich unter Newsgroup Servers ein Dialog, in den Sie den Newsserver eintragen, von dem Nachrichten bezogen und an den ausgehende Nachrichten geschickt werden. Den Newsreader selbst erreichen Sie, in dem Sie im Men Communicator den Menpunkt Messenger aufrufen. Es erscheint dann das gleiche Fenster, in dem auch Ihre Email dargestellt wird. Wenn Sie dann im Men File den Menpunkt Subscribe auswhlen, knnen Sie Newsgruppen angeben. Dabei ist es auch mglich, alle auf dem Server vorhandenen Newsgruppen anzeigen zu lassen und nach Stichwrtern zu durchsuchen. Gnus Das Programm gnus ist Teil der Editoren emacs und xemacs. Es handelt sich dabei um einen bequem zu benutzenden Newsreader mit fast allen Eigenschaften, die man sich wnschen kann. Dazu gehrt bersichtliches Threading, gute Integration von Email-Funktionen und ein ausgeklgeltes Scoring-Konzept. Um Gnus mitzuteilen, welchen Newsserver Sie benutzen wollen, mssen Sie die folgende Zeile in die Datei .emacs in Ihrem Home-Verzeichnis schreiben: (setq gnus-select-method (nntp "news.provider.com")) Hierbei mssen Sie news.provider.com durch den Namen des betreffenden Newsservers ersetzen. Fr die Absenderadresse in von Ihnen verfassten Artikeln verwendet (X)Emacs normalerweise Ihre lokale Email-Adresse, die Adresse, welche sich aus dem Namen Ihres Rechners und Ihrem Benutzernamen auf Ihrem Rechner zusammensetzt. Wenn Sie eine andere Absenderadresse verwenden wollen, etwa weil Sie unter dieser Adresse keine Email von auen empfangen knnen, mssen Sie (X)Emacs die zu verwendende Adresse mit der folgenden Zeile in der Datei .emacs bekannt machen: (setq user-mail-address "karl@provider.com") Dabei ist karl@provider.com durch die richtige Adresse zu ersetzen. Gnus lsst sich aus dem Men (Men Apps, Menpunkt Usenet News in xemacs) heraus starten oder durch das Emacs-Kommando A LT- Xgnus. Um eine Gruppe zu abonnieren, ist aus dem Men Groups, Untermen Subscribe der Menpunkt Subscribe to a group

664

17 Debian GNU/Linux im Netz

auszuwhlen oder die Taste S HIFT- U zu bettigen. Danach ist der Name der gewnschten Gruppe einzugeben. Eine Liste aller verfgbaren Newsgruppen wird angezeigt, wenn aus dem Men Groups, Untermen Listing der Menpunkt Describe all groups ausgewhlt wird oder die Tastenkombination A LT- D bettigt wird. In die Anzeige der abonnierten Gruppen gelangen Sie durch Bettigung der Taste L. In der Liste der abonnierten Newsgruppen kann eine zu lesende Gruppe mit der mittleren Maustaste oder den Pfeiltasten ausgewhlt werden. Das Programm zeigt die in der Gruppe verfgbaren Artikel im oberen Teil des Fensters an. Einzelne Artikel lassen sich ebenfalls mit der mittleren Maustaste oder den Pfeiltasten selektieren. Sie werden dann im unteren Teil des Fensters angezeigt. Um alle Artikel einer Gruppe als gelesen zu markieren, ist die Taste C zu bettigen. Einen neuen Artikel knnen Sie verfassen, wenn Sie die Taste A drcken. Eine Antwort auf den markierten Artikel kann nach Bettigung der Taste S HIFT- F erstellt werden. Selbst erstellte Nachrichten werden mit dem Kommando S TRG - C-S TRG - C abgeschickt. Das Programm wird durch Bettigung der Taste Q verlassen. Zu Gnus gibt es eine ausfhrliche Dokumentation im Info-Format. Weil Gnus Teil von emacs bzw. xemacs ist, bendet sich diese Dokumentation in den Abschnitten des Info-Systems zu diesen Editoren. Knews Bei diesem Programm handelt es sich um einen schlanken Newsreader fr X11 mit allen notwendigen Funktionen. Das Programm bezieht die Information, welcher Newsserver benutzt werden soll, aus der Datei /etc/news/server. In dieser Datei sollte sich lediglich eine Zeile benden, die den Namen des Newsservers enthlt. Wenn das Programm mit einem anderen Server benutzt werden soll, ist ihm der Name des Servers an der Kommandozeile nach der Option -nntpServer zu bergeben. Beispiel: joe@debian:~$ knews -nntpServer news.provider.com Die Email-Adresse fr das Absenderfeld selbst erstellter Artikel konstruiert das Programm aus dem Rechnernamen sowie dem Namen des Benutzers, der gerade mit dem Programm arbeitet. Konguriert wird das Programm durch X-Ressourcen (siehe Kap 9.4.11, S. 322) sowie ber Newsserver-spezische Kongurationsdateien, die sich im Verzeichnis .knews im Home-Verzeichnis des aufrufenden Benutzers benden und Namen tragen, die sich aus der Zeichenkette .cong- sowie dem Namen des betreffenden Newsservers zusammensetzen, z. B. cong-news.provider.com. Um den Benutzerteil der Email-Adresse des Absenders zu berschreiben (erster Teil der Email-Adresse), ist die X-Ressource Knews.mailName zu setzen. Dazu wird der Datei .Xresources im Home-Verzeichnis die folgende Zeile zugefgt: Knews.mailName: karl.mustermann Hierbei ist karl.mustermann durch den tatschlichen Benutzerteil in der EmailAdresse zu ersetzen. Wenn die Datei .Xresources noch nicht existiert, muss sie neu angelegt werden. Der Rechnerteil der Email-Adresse lsst sich mit dem Programm nur durch nderung der Datei /etc/mailname verndern. Aufgabe dieser Datei ist es,

17.6 Klientprogramme fr Internet-Dienste

665

den Rechnernamenteil der Email-Adressen lokaler Benutzer global zu berschreiben, falls dieser nicht mit dem Rechnernamen bereinstimmt. Die Information wird auch von einer Reihe anderer Programme benutzt. berprfen Sie deswegen nach eine nderung dieser Datei, ob der Mail-Versand auf dem System hinterher noch wie erwartet funktioniert. Weitere Informationen zu knews nden Sie in der Manualseite zu dem Programm. Krn Krn ist der Newsreader des KDE-Projekts. Das Programm beherrscht die wichtigsten Funktionen fr die Arbeit mit Internet-News und lsst sich vollstndig ber Mens kongurieren. Besonders angenehm ist, dass das Programm keine dauerhafte Verbindung zu einem Newsserver bentigt und deswegen gut fr Rechner geeignet ist, die nur ber eine temporre Internetanbindung verfgen. Wenn Sie mit dem Programm das erste Mal arbeiten, sollten Sie zunchst im Men Einstellungen den Menpunkt Identitt aufrufen, um zu berprfen, ob Ihr Name und die Absenderadresse richtig eingestellt sind. Hinter dem Menpunkt NNTP Optionen im selben Men verbirgt sich dann ein Dialog, mit dem festgelegt werden kann, welcher Newsserver benutzt werden soll. Das Programm ist im KDE-Paket kdenetwork enthalten. 17.6.4 Fernbenutzung von Rechnern (Telnet und Secure Shell) Telnet Telnet ist ein altes Internet-Protokoll nach RFC 854, mit dem ein Rechner von einem anderen Rechner im Netz aus gesteuert und benutzt werden kann. Dabei muss auf dem zu steuernden Rechnern ein Server-Programm, der Telnet-Dmon, ausgefhrt werden. Das Klientprogramm nimmt die Verbindung zu dem Server auf und meldet sich dort an, wobei der Benutzer des Telnet-Klienten nach Benutzernamen und Passwort auf dem fernen Rechner gefragt wird. Der Telnet-Server startet dann ein Programm, dessen Ausgaben an den Klientrechner geschickt und dort ausgegeben werden. Ebenso werden nach dem Aufbau der Verbindung alle am Klientrechner vorgenommenen Eingaben an den fernen Rechner geschickt. Standardmig wird auf dem fernen Rechner eine Shell gestartet, mit der sich genauso arbeiten lsst, wie es der Fall ist, wenn man direkt vor dem fernen Rechner sitzt. Der bliche Telnet-Klient unter Debian GNU/Linux ist das Programm telnet (S. 873). Das Programm wird mit dem Namen des Rechners, zu dem die Verbindung aufgebaut werden soll, als Parameter aufgerufen. Um eine Telnet-Verbindung zu dem Rechner verwaltung.rma.de aufzubauen, ist folgendes Kommando einzugeben: joe@debian:~$ telnet verwaltung.firma.de Sobald die Verbindung steht, meldet sich auf der anderen Seite der Telnet-Server und fragt nach Benutzernamen und Passwort. Nach der erfolgreichen Authentizierung startet er eine Shell. Dann knnen Kommandos eingegeben werden, die auf dem fernen Rechner ausgefhrt werden.

666

17 Debian GNU/Linux im Netz

Normalerweise versucht Telnet, eine Verbindung mit Port 23 des Zielrechners aufzubauen. Dies ist der Port, den ein Telnet-Server beobachtet. Sie knnen Telnet allerdings auch verwenden, um eine Verbindung zu einem anderen Server-Programm aufzubauen, indem Sie hinter dem Rechnernamen die Nummer des Ports angeben, mit dem die Verbindung aufgebaut werden soll. Wenn Sie sich dafr interessieren, wie Ihr SMTP-(Mail-)Server auf Verbindungen reagiert, geben Sie folgendes Kommando ein: joe@debian:~$ telnet localhost 25 Damit wird eine Verbindung zum eigenen Rechner (localhost) auf den Port 25 aufgebaut. Dies ist der Port, den ein SMTP-Server auf eingehende Verbindungen hin beobachtet. Sie knnen ber die telnet-Verbindung das ganze Mail-Protokoll von Hand fahren. Das ist die unbequemste Art, Mail zu versenden, aber fr Testzwecke manchmal hilfreich. Der Nachteil des Telnet-Protokolls besteht darin, dass der Datenaustausch zwischen Klient und Server unverschlsselt ber die Leitung geht. Auch Benutzernamen und Passwrter werden im Klartext verschickt, sodass man das Programm in unsicheren Netzen wie dem Internet nicht benutzen sollte. Dasselbe gilt auch fr die Berkeley-r-Kommandos (rsh, rcp, rlogin) und fr den Netzverkehr von X11. Secure Shell (ssh) Eine Alternative zu Telnet ist die Secure-Shell (ssh (S. 865)), die verschlsselte Verbindungen benutzt und abhrsicher ist. Leider wurden zu Anfang zwei miteinander nicht vertrgliche Versionen benutzt. Unter Debian GNU/Linux wird die OpenSSH verwendet, die beide Versionen beherrscht. Das Protokoll 2 ist vorzuziehen. Die freie Implementation der Secure Shell ist in dem Debian-Paket ssh enthalten und wird vom OpenSSH-Projekt gepegt, im Web unter http://www.openssh,com/ oder http://www.openssh.org/de/ zu nden. Wie bei Telnet und vielen anderen Netzdiensten luft auf dem entfernten Rechner ein Server oder Dmon, hier der sshd, und lokal ein Klient, hier ssh. Die systemweite Konguration ist in dem Verzeichnis /etc/ssh zu nden, die benutzereigene im Verzeichnis .ssh im Home-Verzeichnis. Nach der Einrichtung mssen mittels ssh-keygen der Verwalter ein systemweites und jeder Benutzer ein persnliches Schlsselpaar fr die unsymmetrische Verschlsseluung erzeugen. Zu Beginn einer Verbindung vereinbaren Klient und Server ber einen unsymmetrisch verschlsselten Kanal einen Schlssel fr die symmetrische Verschlsselung der Sitzung, der von Zeit zu Zeit gewechselt wird. Zum Anmelden an einem entfernten Rechner dient das Kommando slogin, das hnlich wie telnet oder rlogin zu gebrauchen ist. Auch TCP/IP- oder X11-Verbindungen lassen sich durch eine verschlsselte sshVerbindung durchschleusen. Einzelheiten auf den Manualseiten zu den Kommandos ssh, sshd, ssh-keygen, scp und sftp.

17.6 Klientprogramme fr Internet-Dienste

667

17.6.5 File Transfer Protokoll (FTP) Das File Transfer Protocol (FTP) nach RFC 959 dient zum bertragen (Fernkopieren) von beliebigen Dateien im Netz. Es handelt sich dabei um ein Klient-ServerProtokoll. Mit einem Klient-Programm ist es mglich, Dateien von einem Rechner zu beziehen, auf dem ein FTP-Server ausgefhrt wird. Auerdem knnen Dateien mit dem Klienten auf den Server kopiert werden oder dort gelscht werden. Natrlich ist auch beim Zugriff auf die Dateien eines fremden Rechners per FTP eine Authentizierung erforderlich, bevor mit dem bertragen begonnen werden kann. Allerdings gibt es Server, deren Zweck darin besteht, Dateien ffentlich zugnglich zu machen. Zur Kommunikation mit solchen Servern wird AnonymousFTP benutzt. Dabei ist whrend der Authentizierung der Benutzername ftp oder anonymous zu verwenden. Als Passwort soll die eigene Email-Adresse eingegeben werden. Die Richtigkeit dieser Angabe wird selten berprft. FTP ist ebenso wie Telnet ein unsicheres Protokoll. Benutzernamen, Passwrter und Daten werden unverschlsselt bertragen. Es sollte deswegen nicht benutzt werden, um vertrauliche Informationen ber unsichere Strecken zu transportieren. Weil dieser Aspekt beim anonymen FTP jedoch keine Rolle spielt (die Daten sind ffentlich), ist das Protokoll weit verbreitet. Es gibt eine Reihe von FTP-Klientprogrammen. Auch viele Web-Browser beherrschen das FTP-Protokoll. In Netscape ist zu diesem Zweck ein URL einzugeben, der das File Transfer Protocol bezeichnet, etwa ftp://ftp.de.debian.org/. Standardmig verwenden diese Programme dann Anonymous-FTP. Das klassische FTP-Klientprogramm ist das Kommandozeilenprogramm ftp. Diesem Programm wird der Name des FTP-Servers als Argument mitgegeben. Um eine FTP-Verbindung zu dem Rechner ftp.debian.org aufzubauen, ist folgendes Kommando einzugeben: joe@debian:~$ ftp ftp.debian.org Das Programm ftp baut die Verbindung auf. Sobald diese steht, wird ein Gru des fernen Rechners ausgegeben:
Connected to ftp.debian.org. 220Welcome to the Debian Project Public Archive Server 220220-Access from hmbdi6-212-144-144-104.arcor-ip.net is being logged. 220-There are currently 89 users on this system, out of possibly 180. 220-Please contact ftpmaster@ftp.debian.org if you have any problems 220-with this server. Available access methods are: 220- http://ftp.debian.org/debian/ (prefered) 220- ftp://ftp.debian.org/debian/ 220220-This server is hosted by MindSpring Enterprises, Inc 220-(http://www.mindspring.net) and was donated by Linux Hardware 220-Solutions (http://www.linux-hw.com). 220220-- Mirrors: PLEASE do not use ls -lR but use the provided listing 220- file instead! 220 ProFTPD 1.2.0pre9 Server ready. Name (ftp.debian.org:joe):

668

17 Debian GNU/Linux im Netz

Mit Name (in der letzten Zeile) wird zur Eingabe des Benutzernamens aufgefordert. In den Klammern dahinter ist angegeben, welcher Name benutzt wird, wenn kein Benutzername eingebeben wird und einfach nur E INGABE gedrckt werden wrde. Um Anonymous-FTP, wie es von dem Server ftp.debian.org angeboten wird, zu benutzen, ist ftp einzugeben. Danach erscheint eine Meldung, in der mitgeteilt wird, dass der anonyme Zugriff akzeptiert wird, und zur Eingabe der eigenen Email-Adresse als Passwort auffordert: 331 Anonymous login ok, send your complete e-mail address as password. Nach der Eingabe der Email-Adresse oder des Passwortes erscheint eine Meldung von der Gegenseite, mit welcher der erfolgreiche Zugriff besttigt wird:
230 Anonymous access granted, restrictions apply. Remote system type is UNIX. Using binary mode to transfer files.

Die Authentizierung ist abgeschlossen, und es kann mit dem fremden Rechner gearbeitet werden. Dazu erscheint nun der Prompt des Programms ftp. Am Prompt lassen sich verschiedene FTP-Kommandos eingeben, mit denen die Verzeichnisse auf dem fremden Rechner angezeigt, Dateien bertragen oder Einstellungen verndert werden knnen. Die FTP-Kommandos tragen zum Teil dieselben Namen wie Linux/UNIX-Kommandos, sind aber von diesen sorgfltig zu unterscheiden. Sie werden vom FTP-Programm, nicht von einer Shell entgegengenommen. Die wichtigsten FTP-Kommandos sind: pwd, ls, cd, get und quit. Die Kommandos ls und cd haben die gleiche Bedeutung wie die bekannten Linux/UNIX-Kommandos ls und cd. Mit ls werden Verzeichnisse auf dem fremden Rechner angezeigt, es kennt keine Optionen. Mit cd lsst sich das Arbeits-Verzeichnis auf dem fremden Rechner wechseln. Das Kommando get dient dazu, Dateien herunterzuladen. Dem Kommando ist der Name der gewnschten Datei zu bergeben. Dahinter kann ein zweiter Dateiname angegeben werden; die Datei wird dann unter dem zweiten Namen auf dem lokalen Rechner gespeichert. Im Binary- oder Image-Modus werden die Daten als ein zusammenhngender Strom von Bits, zu je acht in ein Byte gebndelt, verschickt. Die lokale Kopie ist ein bit-getreues Abbild der Datei auf dem Server. Das ist in jedem Fall richtig, weil man etwaige Transformationen der Daten auch nachtrglich lokal vornehmen kann. Die Darstellung von Zeichen einschlielich Zeilenwechsel variiert in den verschiedenen Rechnerwelten erheblich. Texte sollten daher im ASCII-Modus von FTP bertragen werden. Dabei setzt der Server seine lokale Zeichendarstellung in NVT-ASCII (Network Virtual Terminal ASCII, eine Untermenge von 7-Bit-US-ASCII) um und schickt den Text in diesem Format auf die Reise. Der Klient transformiert die empfangenen Zeichen in sein lokales Format, falls erforderlich. Nur zwischen gleichartigen Rechnern (Linux zu Linux) kann auf die Unterscheidung zwischen Imageund ASCII-Modus verzichtet werden. bertrgt man eine binre Datei (alles, was nicht Text ist) im ASCII-Modus, kann man die Kopie wegwerfen. Die Vorgabe des FTP-Klienten sollte der Image-Modus (binary mode) sein.

17.6 Klientprogramme fr Internet-Dienste

669

Liegt der lokale Rechner hinter einem Firewall-Rechner, muss FTP im passiven Modus aufgerufen werden. Dazu dient die Option - p oder der Aufruf in der Form pftp. Der FTP-Server muss das FTP-Kommando PASV untersttzen, was nicht immer der Fall ist. Zum Beenden der Verbindung und zum Verlassen des Programms wird eines der Kommandos quit oder bye benutzt. Eine bersicht ber die FTP-Kommandos gibt das Kommando help aus. Wenn hinter das Kommando help der Name eines anderen FTP-Kommandos gestellt wird, gibt das Programm eine Kurzbeschreibung des Kommandos aus. Eine ausfhrliche Beschreibung aller FTP-Kommandos ndet sich in der Manualseite zu dem Programm. FTP unter X11 gftp Komfortables Arbeiten mit FTP unter X11 ermglicht das Programm gftp, das in dem gleichnamigen Paket enthalten ist.

Abbildung 17.8. Hauptfenster von gftp.

Um eine anonyme Verbindung zu einem Rechner aufzubauen, reicht es, im Men Remote den Menpunkt Open URL auszuwhlen und dann den Namen des fernen Rechners einzugeben. Wenn Sie sich mit Benutzername und Passwort an einem Rechner anmelden wollen, knnen Sie die entsprechenden Werte in die Felder im oberen Bereich des Fensters eingeben. Wenn Sie das Feld Port: leerlassen, wird der

670

17 Debian GNU/Linux im Netz

Standard-Port fr FTP (21) benutzt. Unter dem Men Bookmarks nden Sie eine Reihe wichtiger FTP-Server. Die Verbindung zu diesen Servern bauen Sie einfach per Auswahl aus dem Men auf. ber Add Bookmark und Edit Bookmarks bearbeiten Sie die Liste der vorgefertigten Verbindungen. Die Benutzung des Programms ist simpel: Auf der linken Seite des Fensters sehen Sie die Dateien auf Ihrem lokalen Rechner und auf der rechten Seite die Programme auf dem fernen Rechner. Sie knnen sich nun wie in einem Dateimanager auf beiden Seiten im Verzeichnisbaum bewegen. Dateien werden mit der Maus markiert werden und dann mit den beiden Pfeiltasten vom lokalen Rechner auf den fernen oder umgekehrt bertragen. In der Datei /usr/share/doc/gftp/USERS-GUIDE.gz nden Sie eine ausfhrliche Anleitung zu dem Programm.

17.7 Konguration von Netzdiensten


17.7.1 Der Internet-Dmon inetd Auf einem einzigen Linux/UNIX-Rechner knnen gleichzeitig mehrere unterschiedliche Server-Programme ausgefhrt werden, beispielsweise ein FTP-Server, ein Telnet-Server, ein Web-Server usw. Wenn auf die Server-Dienste nur selten zugegriffen wird, bedeutet dies, dass die Server-Programme unntz Speicher belegen und keine sinnvolle Funktion wahrnehmen, auer einen bestimmten Port zu berwachen. Aus diesem Grund gibt es ein spezielles Programm, den Internet-Dmon, der gleichzeitig alle Ports berwacht, die sonst von den einzelnen Server-Programmen berwacht werden, und erst beim Zugriff auf einen bestimmten Port das zugehrige Server-Programm ausfhrt. Email und der HTTP-Dmon auf ausgesprochenen WebServern laufen jedoch immer selbstndig (standalone). Der Internet-Dmon (Programmname inetd) wird ber die Datei /etc/inetd.conf konguriert. In dieser Datei bendet sich die Information, welche Ports zu berwachen sind und welches Programm beim Zugriff auf einen bestimmten Port zu starten ist. Jeder Eintrag in der Datei besteht aus sechs durch Leerzeichen voneinander getrennten Elementen: Service Das erste Element beizeichnet den Name eines Dienstes (Service). Daraus folgt fr inetd, welcher Port beobachtet werden soll. Socket Typ Der Eintrag beschreibt den Typ von Sockets, die fr den Dienst benutzt werden. TCP-basierte Dienste benutzen den Typ stream und UDP-basierte Dienste den Typ dgram. Protokoll Hiermit wird der Typ des Protokolls benannt, das fr den Dienst genutzt wird. Fr TCP-basierte Dienste ist tcp und fr UDP-basierte Dienste udp anzugeben. Fr Dienste, die Sun-RPCs (Remote Procedure Call) verwenden, ist rpc/tcp bzw. rpc/udp einzutragen. Flags Hiermit wird bestimmt, was passieren soll, wenn ein Zugriff auf einen Port erfolgt ist, das entsprechende Server-Programm gestartet ist und ein neuer Zugriff auf denselben Port stattndet, bevor das gestartete Server-Programm sich

17.7 Konguration von Netzdiensten

671

beendet hat. Wenn keine neuen Prozesse gestartet werden sollen, solange einer ausgefhrt wird, ist nowait anzugeben. Dies sollte fr alle Dienste der Fall sein, die keine Datagramm-Sockets verwenden. Fr Dienste mit dem Socket-Typ dgram muss in vielen Fllen wait angegeben werden. Zusammen mit nowait ist es mglich anzugeben, wieviele Server-Prozesse maximal pro Minute gestartet werden drfen. Diese Zahl ist von dem Schlsselwort nowait durch einen Punkt zu trennen. Beispiel nowait.60. Standardwert ist 40. Benutzer Hier ist der Name des Benutzers anzugeben, mit dessen Identitt der Server-Dienst ausgefhrt werden soll. Die meisten Dienste mssen mit den Rechten des Verwalters ausgefhrt werden, damit sie die Mglichkeit haben, die Benutzer-ID zu wechseln. In diesen Fllen ist root anzugeben. Hinter den Benutzernamen kann durch einen Punkt getrennt ein Gruppenname angegeben werden. Programmname In diesem Feld wird der Name des Programms angegeben, das beim Zugriff auf den betreffenden Port gestartet werden soll. Der Programmname ist mit vollem Pfad anzugeben (Beispiel: /usr/sbin/in.telnetd). Alle Zeichenketten, die hinter dem Programmnamen angegeben werden, werden dem Server-Programm als Argumente bergeben. Einige Dienste kann das Programm inetd selbst zur Verfgung stellen, es braucht dann kein externes Programm gestartet zu werden. Fr diese Dienste ist das Schlsselwort internal anzugeben. Zwei Beispiele fr Eintrge in der Datei /etc/inetd.conf :
telnet talk stream dgram tcp udp nowait wait root /usr/sbin/in.telnetd nobody.tty /usr/sbin/in.talkd

Die erste Zeile gibt an, dass beim Zugriff auf den TCP-Port telnet (Die Portnummer steht in der Datei /etc/services) das Programm /usr/sbin/in.telnetd mit den Rechten des Verwalters gestartet werden soll. Sobald das Programm gestartet ist, werden neue in.telnetd-Prozesse gestartet, wenn weitere Zugriffe auf den Port erfolgen. Im zweiten Beispiel wird das Programm /usr/sbin/in.talkd mit den Rechten des Benutzers nobody und der Gruppe tty gestartet, sobald ein Zugriff auf den UDP-Port talk erfolgt. Neue in.talkd Prozesse werden erst gestartet, wenn der laufende beendet ist. Die Datei /etc/inetd.conf zeigt, ber welche Dienste von fremden Rechnern aus auf Ihren Rechner zugegriffen werden kann, auch wenn die entsprechenden Programme gar nicht ausgefhrt werden. Sie sollten alle Dienste, die Sie nicht bentigen, in dieser Datei auskommentieren, indem sie den entsprechenden Eintrgen ein Doppelkreuz (#) voranstellen. Das Programm inetd wird wie alle anderen Dienste whrend des Systemstarts ber ein Skript im Verzeichnis /etc/init.d/ gestartet. Der Name des Skriptes lautet inetd. Wenn Sie die Datei /etc/inetd.conf verndert haben, mssen Sie inetd veranlassen, die Konguration neu einzulesen: debian:~# /etc/init.d/inetd reload

672

17 Debian GNU/Linux im Netz

Anpassen der inetd-Konguration mit update-inetd Besonders einfach lassen sich von inetd kontrollierte Dienste ein- oder ausschalten, wenn man das Programm update-inetd verwendet. Um den FTP-Dienst abzuschalten, ist es folgendermaen aufzurufen: debian:~# update-inetd - -disable ftp Wenn der Dienst spter wieder verfgbar gemacht werden soll, kann dieses Kommando benutzt werden: debian:~# update-inetd - -enable ftp Das Programm veranlasst auch, dass inetd die vernderte Kongurationsdatei neu einliest, sodass die Verwendung weiterer Kommandos nicht notwendig ist. Auerdem kann update-inetd Eintrge ganz lschen oder neue hinzufgen. Nheres hierzu nden Sie in der Manualseite zu dem Programm. 17.7.2 Zugangskontrolle mit tcpd Das Programm tcpd berprft, ob ein Rechner, der auf einen bestimmten Port zugreift und dadurch signalisiert, dass er einen bestimmten Dienst benutzen will, berhaupt berechtigt ist. Das entsprechende Server-Programm wird erst aufgerufen, wenn die Berechtigung fr den fremden Rechner festgestellt ist. Stellen Sie sich vor, jemand versucht per Telnet auf Ihren Rechner zuzugreifen. Die Strategie dieses Einbrechers besteht dabei darin, immer wieder neue Kombinationen aus Benutzernamen und Passwrtern auszuprobieren, bis er (vielleicht erst nach Wochen) Zugriff auf Ihren Rechner hat. Wenn Sie gute Passwrter verwenden, kann es sogar sein, dass der Angreifer die Passwrter berhaupt nicht rt und scheitert. Allerdings verbraucht er whrend der gesamten Zeit seines Angriffs Ressourcen Ihres Rechners, weil stndig neue in.telnetd-Prozesse gestartet werden, um auf die Zugriffe zu reagieren und die Authentizierung durchzufhren. Durch den Einsatz des tcpd kann nun verhindert werden, dass berhaupt in.telnetd-Prozesse gestartet werden, wenn von Rechnern aus, denen Sie nicht vertrauen, auf den Telnet-Port zugegriffen wird. Die Berechtigungen werden in den Datei hosts.allow und hosts.deny festgelegt. Das Programm tcpd untersucht zunchst die Datei hosts.allow und erlaubt den Zugriff, wenn der zugreifende Rechner in der Datei aufgefhrt ist. Danach wird die Datei hosts.deny untersucht und der Zugriff abgeblockt, wenn der Rechner in dieser Datei aufgefhrt ist. Wenn der Rechner in keiner der beiden Dateien aufgefhrt ist, wird der Zugriff gestattet, siehe im Manual unter hosts_access. Damit der tcpd berhaupt benutzt wird, muss er in der Datei inetd.conf eingetragen sein. Um den Service telnet durch das Programm tcpd zu sichern, muss der Eintrag folgendermaen aussehen: telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd

17.7 Konguration von Netzdiensten

673

Dies bedeutet: Wenn ein Zugriff auf den Telnet-Port geschieht, wird nicht das Programm /usr/sbin/in.telnetd gestartet, sondern das Programm /usr/sbin/tcpd. Das Programm berprft wie beschrieben die Zugangsberechtigung anhand der Dateien /etc/hosts.allow und /etc/hosts.deny und startet das Programm /usr/sbin/in.telnetd nur, wenn es die Berechtigung festgestellt hat. Standardmig werden bei Debian GNU/Linux fast alle Dienste durch den tcpd gesichert. Allerdings benden sich in den Dateien /etc/hosts.allow und /etc/hosts.deny nach der Erstinstallation keine Zugangsbeschrnkungen. Format der Dateien /etc/hosts.allow und /etc/hosts.deny Beide Dateien haben dasselbe Format: Server-Name [Server-Name ...] : Rechner-Name [Rechner-Name ...] [ : Shell-Kommando ] Zeilen, die mit einem Doppelkreuz (#) beginnen, und leere Zeilen dienen zur Strukturierung und Kommentierung der Datei und haben sonst keine Bedeutung. Mit Server-Name werden ein oder mehrere Name(n) von Programme(n) angegeben, die von dem zugreifenden Rechner aus benutzt werden sollen. Dies sind die Namen der Programme, die auch in der Datei /etc/inetd.conf angegeben sind. Mit Rechner-Name werden die Namen der Rechner angegeben, denen der Zugriff erlaubt bzw. verwehrt werden soll. Optional wird dahinter der Name eines Kommandos angegeben, das ausgefhrt wird, wenn die Regel zutrifft, also wenn einer der angegeben Rechner eines der Server-Programme benutzen will. Um nicht jeden Rechner einzeln angeben zu mssen, ist fr Rechner-Name die folgende Syntax erlaubt: Rechnernamen, die mit einem Punkt beginnen, treffen auf alle Rechner zu deren Namen mit der angegeben Zeichenkette enden. So bewirkt die Angabe .rma.de in der Datei hosts.deny, dass kein Rechner, dessen Name auf rma.de endet, einen bestimmten Dienst benutzen darf. An Stelle von Rechnernamen knnen auch IP-Adressen benutzt werden. Hier hat der Punkt am Ende einer IP-Adresse eine hnliche Bedeutung. Die Angabe 134.102. in der Datei /etc/hosts.allow bewirkt, dass alle Rechner, deren IPAdresse mit 134.102 beginnt, einen bestimmten Dienst benutzen drfen. Es lassen sich Kombinationen aus IP-Adressen und Netzmasken angeben. Beide Angaben mssen durch einen Schrgstrich voneinander getrennt sein. Die Angabe 192.168.0.32/255.255.255.224 bezeichnet die IP-Adressen 192.168.0.32 bis 192.168.0.63. Das Schlsselwort ALL trifft auf alle Rechner zu. Mit dem Schlsselwort PARANOID werden Rechner bezeichnet, bei denen der DNS-Name nicht mit ihrer IP-Adresse bereinstimmt. Mit dem Schlsselwort LOCAL werden Rechner bezeichnet, in deren Namen sich kein Punkt bendet.

674

17 Debian GNU/Linux im Netz

Mit dem Schlsselwort EXCEPT knnen einzelne Rechner oder Gruppen von Rechnern aus einer zuvor denierten Gruppe ausgeschlossen werden. Weitere Mglichkeiten und Hinweise nden sich in den Manualseiten hosts_access und hosts_options. Einige Beispiele: Der Eintrag ALL: ALL in der Datei /etc/hosts.deny bewirkt, dass kein Rechner irgendeinen Dienst benutzen kann, der mit tcpd gesichert ist, es sein denn, es gibt in der Datei /etc/hosts.allow einen Eintrag, der den Zugriff erlaubt. Der gleiche Eintrag (ALL: ALL) in der Datei /etc/hosts.allow wrde hingegen bewirken, dass jedem Rechner der Zugriff erlaubt wird. Eintrge in /etc/hosts.deny wren dann wirkungslos. Angenommen, Sie mchten allen Rechner bis auf solche, die die Domne raffke.com verwenden, den Zugriff auf Ihren FTP-Server gestatten und auerdem Rechnern, welche die Domne linux.com verwenden, den Zugriff auf Ihren Telnet-Server erlauben. Alle anderen Dienste sollten nur von Rechnern mit IP-Adressen, die mit 192.168.0 beginnen, benutzt werden drfen. Dann schreiben Sie in die Datei /etc/hosts.allow folgende Eintrge:
in.ftpd: ALL EXCEPT raffke.com in.telnetd: .linux.com ALL: 192.168.0.

Und in der Datei /etc/hosts.deny sollte sich dieser Eintrag benden:


ALL: ALL

TCP-basierte Dienste knnen zustzlich durch das IDENT-Protokoll abgesichert werden. Dabei sendet der tcpd bei der berprfung eine Anfrage an den zugreifenden Rechner, ob der Zugriff tatschlich von diesem Rechner aus durchgefhrt wurde und welcher Benutzer den Zugriff gestartet hat. Wenn der vermeintlich zugreifende Rechner dann antwortet, dass er den Zugriff nicht durchgefhrt hat, ist dies ein Zeichen dafr, dass der Angreifer die Absenderadresse der IP-Pakete geflscht hat (Spoong). Eine positive Antwort des zugreifenden Rechners ist noch kein Beweis dafr, dass die Absenderadresse nicht geflscht worden ist, weil ein Angreifer auch IDENT-Anfragen abfangen und falsch beantworten kann. Dies ist jedoch mit einem hohen Aufwand verbunden. Die berprfung funktioniert nur dann, wenn auf den zugreifenden Rechnern der IDENT-Dienst zur Verfgung steht. Dies sollte bei Linux/UNIX-Rechnern der Fall sein (Serverprogramm identd). Um die berprfung per IDENT zu aktivieren, ist den Rechnernamen in den Dateien /etc/hosts.allow bzw. /etc/hosts.deny der Name eines Benutzers voranzustellen. Rechnernamen und Benutzernamen sind durch das @-Zeichen voneinander zu trennen. Sinnvolle Schlsselwrter fr Benutzernamen sind KNOWN und UNKNOWN. KNOWN bezeichnet alle Zugriffe, fr die vom zugreifenden Rechner per IDENT eine Benutzer-ID geliefert werden kann. UNKNOWN bezeichnet alle Zugriffe, fr die vom zugreifenden Rechner keine Benutzer-ID angegeben werden kann. Um den FTP-Dienst nur dann freizugeben, wenn der zugreifenden Rechner den Zugriff besttigen kann und per IDENT eine Benutzer-ID zurckgibt, ist in der Datei /etc/hosts.allow folgender Eintrag vorzunehmen:

17.7 Konguration von Netzdiensten

675

in.ftpd: KNOWN@ALL Natrlich muss in der Datei /etc/hosts.deny ein Eintrag vorhanden sein, der den Zugriff in allen anderen Fllen verbietet. Denken Sie daran, dass Betriebssysteme wie MS-Windows nicht immer ber den IDENT-Dienst verfgen und diesen Rechnern mit solchen Denitionen der Zugriff verwehrt wird. Achtung: Es ist unbedingt zu empfehlen, Dienste, die Sie auf Ihrem Rechner ausfhren, durch die Dateien /etc/hosts.allow und /etc/hosts.deny vor unbefugtem Zugriff zu schtzen. Absolut sicher ist dieses Verfahren jedoch nicht. Um sich noch wirkungsvoller vor Angriffen zu schtzen, sollten Sie ein Paketlter oder einen Firewall-Rechner einsetzen. 17.7.3 Vereinfachter Zugriff mit den r-Kommandos Gelegentlich ist es wnschenswert, den Zugriff auf Rechner zu vereinfachen. Wenn in einem kleinen, abgeschotteten Netz eine Reihe von Benutzern gleichzeitig mit verschiedenen Rechnern arbeitet, kann es als ausreichend angesehen werden, wenn die Benutzer sich einmal an einem der Rechner anmelden und danach nicht mehr an jedem weiteren Rechner authentizieren mssen. Zu diesem Zweck stehen die Berkeley-r-Kommandos zur Verfgung. Dabei handelt es sich um eine Reihe von Server- und Klientprogrammen, mit denen nach geeigneter Konguration bequem auf andere Rechner zugegriffen werden kann, ohne dass eine Anmeldung erforderlich ist. Whrend Telnet ein Internet-Protokoll ist, beschrnken sich die Berkeley-r-Kommandos auf die Linux/UNIX-Welt. Der Einsatz dieser Programme ist nur dann sinnvoll, wenn auf allen beteiligten Rechnern dieselben Benutzernamen und Passwrter eingesetzt werden. rsh/in.rshd Die beiden Programme erlauben, ein bestimmtes Programm auf einem fremden Rechner aufzurufen. Dabei stellt das Programm rsh die Verbindung zu einem durch einen Parameter angegebenen Rechner her. Auf dem Zielrechner berprft das Programm in.rshd, ob der Zugriff erfolgen darf und fhrt dann ein Programm aus, das an der rsh-Kommandozeile mit einem weiteren Parameter angegeben wurde. Die Standard-Ein- und -Ausgabe dieses Programms wird mit der Standard-Ein- und -Ausgabe von rsh verbunden, sodass das Programm wie ein lokal ausgefhrtes Programm benutzt werden kann. Wenn kein Programm angegeben ist, wird die Standardshell des aufrufenden Benutzers ausgefhrt. Mehr Informationen zur Benutzung von rsh nden Sie auf Seite 856. rlogin/in.rlogind Die beiden Programme ermglichen, hnlich wie das TelnetProtokoll Sitzungen an einem entfernten Rechner zu starten. Wie blich dient das Programm rlogin dazu, von einem Klientrechner aus eine Verbindung zu initiieren, whrend das Programm in.rlogind das entsprechende Server-Programm darstellt und rlogin-Zugriffe beantwortet. rcp Dieses Programm erlaubt es, auf einfache Weise Dateien von einem Rechner zu einem anderen zu kopieren. Zu diesem Programm gibt es kein spezielles ServerProgramm, vielmehr benutzt es den rsh-Dienst, um auf fremde Rechner zuzugreifen. Informationen zur Benutzung von rcp nden Sie auf Seite 849.

676

17 Debian GNU/Linux im Netz

Die Zugriffssteuerung fr die r-Kommandos erfolgt ber die Datei /etc/hosts.equiv. Eintrge in der Datei haben folgendes Format: [+ | -] [Rechnername] [Benutzername] Zustzlich darf die Datei leere Zeilen und Kommentarzeilen enthalten. Kommentare werden mit einem Doppelkreuz (#) eingeleitet. Um Benutzern von bestimmten Rechnern den Zugriff auf den eigenen Rechner zu gestatten, sind die Namen der Rechner in der Datei mit Rechnername anzugeben. Angenommen, in der Datei bendet sich folgende Zeile: verwaltung.firma.de Dadurch knnen alle Benutzer, die am Rechner verwaltung.rma.de angemeldet sind, auf den eigenen Rechner zugreifen. Dabei wird auf beiden Rechnern das gleiche Benutzerkonto verwendet. Wenn sich der Benutzer karl an dem Rechner buchhaltung.rma.de angemeldet hat und dann per rsh auf verwaltung.rma.de zugreift, wird er dort automatisch mit dem Namen karl angemeldet. Falls es auf verwaltung.rma.de kein Benutzerkonto mit dem Namen karl geben sollte, schlgt die Anmeldung fehl. Wenn in der Datei /etc/hosts.equiv hinter einem Rechnernamen ein Benutzername angegeben wird, wird dem Benutzer erlaubt, ohne ein Passwort jedes Benutzerkonto zu verwenden, das auf dem lokalen Rechner vorhanden ist mit Ausnahme des Verwalter-Kontos. Mit dieser Einstellung sollte vorsichtig umgegangen werden. Aus Sicherheitsgrnden empehlt es sich, in der Datei /etc/hosts.equiv nur voll qualizierte Rechnernamen zu verwenden, z. B. verwaltung.rma.de an Stelle von verwaltung. Auerdem sollten die Dienste mit dem Programm tcpd vor unbefugtem Zugriff geschtzt werden. Neben den systemweiten Einstellungen in der Datei /etc/hosts.equiv kann jeder Benutzer in seinem Home-Verzeichnis eine Datei mit dem Namen .rhosts anlegen, die ein hnliche Wirkung hat. Das Format dieser Datei ist: Rechnername [Benutzername] Der Benutzer, dem die Datei gehrt, erlaubt damit, dass von dem mit Rechnername spezizierten Rechner aus auf sein Konto auf diesem Rechner zugegriffen werden darf. Auch hierbei ist es erforderlich, dass die Benutzernamen auf beiden Rechnern gleich sind. Wenn optional hinter dem Rechnernamen ein Benutzername angegeben ist, kann auf das Konto von dem mit Rechnername angegebenen Rechner aus auf diesen Rechner zugegriffen werden, wenn dort das Konto mit dem mit Benutzername angegebenen Namen benutzt wird. Beispiel:
verwaltung.firma.de buchhaltung.firma.de meier

Hiermit erlaubt der Besitzer der Datei .rhosts, dass auf sein Konto auf diesem Rechner von dem Rechner verwaltung.rma.de zugegriffen wird, wenn dort

17.7 Konguration von Netzdiensten

677

das Benutzerkonto mit dem gleichen Namen benutzt wird, den sein Benutzerkonto auf diesem Rechner hat. Auerdem gestattet er den Zugriff vom Rechner buchhaltung.rma.de aus, wenn von dort mit dem Benutzerkonto des Benutzers meier zugegriffen wird. Wenn der Systemverwalter eine Datei .rhosts in seinem Home-Verzeichnis anlegt, wird diese aus Sicherheitsgrnden standardmig nicht beachtet. Das Programm checkrhosts sollte gelegentlich vom Systemverwalter aufgerufen werden. Es gibt Hinweise zu Sicherheitsproblemen aus, die durch die .rhosts-Dateien der Benutzer verursacht werden. Die r-Protokolle sind unsicher. Daten, Benutzernamen und Passwrter werden unverschlsselt im Netz bertragen. Sie sollten deswegen nicht auf unsicheren Strecken (Internet) benutzt werden. Eine sichere Alternative fr diese Protokolle wird mit der Secure Shell im Paket ssh zur Verfgung gestellt. Die Programme dieses Pakets knnen so konguriert werden, dass sie ebenfalls die Dateien /etc/hosts.equiv bzw. .rhosts benutzen. 17.7.4 FTP- und Telnet-Server Die Einrichtung eines FTP- und Telnet-Servers beschrnkt sich im Wesentlichen auf die Installation der entsprechenden Pakete. Der Telnet-Server ist in dem Paket telnetd enthalten. Der Zugriff per Telnet auf Ihren Rechner ist nach der Installation des Pakets sofort mglich. Der Telnet-Server wird blicherweise ber den Internet-Dmon (inetd) gestartet und durch den tcpd gesichert. Zur Durchfhrung der Authentizierung benutzt der Telnet-Dmon das Programm login, also dasselbe Programm, das auch benutzt wird, wenn Sie sich an der Konsole anmelden. Das Programm erlaubt die Anmeldung des Systemverwalters nur von den (virtuellen) Terminals aus, die in der Datei /etc/securetty eingetragen sind. Standardmig kann sich der Verwalter deswegen ber Telnet nicht am System anmelden. Er kann sich aber mit einem gewhnlichen Benutzerkonto ber Telnet anmelden und dann die Benutzeridentitt wechseln. Die Einrichtung des FTP-Servers ist ebenso einfach. Hierzu ist lediglich das Paket ftpd zu installieren. Danach knnen alle Benutzer per FTP auf das System zugreifen. Eine Ausnahme stellen die Benutzer dar, deren Namen in der Datei /etc/ftpusers eingetragen sind. Diese Benutzer knnen nicht per FTP zugreifen. Aus Sicherheitsgrnden ist der Verwalter in dieser Datei eingetragen. Einrichtung eines Anonymous-FTP-Servers Damit auf Ihren Rechner per Anonymous-FTP zugegriffen werden kann, ist etwas zustzlicher Kongurationsaufwand notwendig. Zunchst muss ein Benutzerkonto mit dem Namen ftp eingerichtet werden. Das Home-Verzeichnis dieses Benutzers ist das Verzeichnis, das beim Zugriff mit anonymen FTP als Wurzelverzeichnis gesehen wird. Der Benutzer kann mit dem Kommando adduser (S. 769) angelegt werden: debian:~# adduser - -home /var/ftpd - -disabled-password - -gecos "ftp account" ftp

678

17 Debian GNU/Linux im Netz

Wenn jemand mit dem Benutzernamen ftp auf den FTP-Dienst zugreift, wechselt der FTP-Server in das Verzeichnis /var/ftpd und macht es zu seinem Wurzelverzeichnis (siehe die Manualseite chroot in der Sektion 2). Danach kann der FTP-Server auf keine Dateien und Verzeichnisse mehr zugreifen, die sich nicht unterhalb dieses Verzeichnisses benden. Es muss gelegentlich das Programm ls aufrufen, weswegen es erforderlich ist, dieses Programm unterhalb von /var/ftpd als Kopie zur Verfgung zu stellen. Hierzu sind folgende Kommandos einzugeben: debian:~# cd /var/ftpd debian:/var/ftpd# mkdir bin etc lib pub debian:/var/ftpd# cp /bin/ls bin/ debian:/var/ftpd# cp /lib/{libc.so.6,ld-linux.so.2,libnsl.so.1,\ libnss_compat.so.2} lib/ Durch das letzten Kommando werden alle Bibliotheken, die von ls bentigt werden, in das Verzeichnis lib kopiert. Damit ls die Namen von Benutzer- und Gruppenzugehrigkeit von Dateien anzeigen kann, liest es die Informationen aus der Datei /etc/passwd bzw. aus /etc/group. Diese beiden Dateien mssen nun auch im Verzeichnis /var/ftpd/etc vorhanden sein, damit sie nach dem Wechsel des Wurzelverzeichnisses gelesen werden knnen. Allerdings sollten hier keine verschlsselten Passwrter oder Benutzerinformationen mehr enthalten sein. Es reicht aus, wenn die Dateien lediglich die Namen von Benutzern bzw. Gruppen sowie die zugehrigen IDs beinhalten. Angenommen die Dateien, die Sie ber anonymes FTP zur Verfgung stellen wollen, sollen ausschlielich den Benutzern root, ftp oder meier gehren, dann reicht folgende Information in /var/ftpd/etc/passwd:
root::0:0::: meier::1002:1002::: ftp::1004:1004:::

Die Benutzer- und Gruppen-IDs sind an die tatschlichen Werte anzupassen. Fr die Datei /var/ftpd/etc/group sollten die folgenden Informationen ausreichen:
root::0: meier::1002: ftp::1004:

Auch hier sind die Gruppen-IDs anzupassen. Nun knnen Sie eine Datei verfassen, die einen Begrungstext enthlt, der den Benutzern Ihres Servers nach der Anmeldung angezeigt wird. Der Text ist in der Datei etc/motd (im Beispiel in /var/ftpd/etc/motd) zu speichern:
Welcome anonymous user, This ftp server is experimental. All public files are under /pub.

17.7 Konguration von Netzdiensten

679

Aus Sicherheitsgrnden mssen Sie nun die Zugriffsrechte aller Dateien und Verzeichnisse unterhalb von /var/ftpd prfen. Dazu wird folgendes empfohlen: Alle Dateien und Verzeichnisse sollten dem Benutzer und der Gruppe root zugeordnet sein. Geben Sie dazu dieses Kommando ein, wenn Sie sich im Verzeichnis /var/ftpd benden: debian:/var/ftpd# chown root.root -R ./ Die Verzeichnisse bin, lib und etc mssen lesbar fr root und ausfhrbar fr alle anderen Benutzer sein: debian:/var/ftpd# chmod u=rx,g=x,o=x bin lib etc Das Programm bin/ls muss nur ausfhrbar sein: debian:/var/ftpd# chmod a=x bin/ls Die Dateien in etc sollten lesbar fr Alle sein: debian:/var/ftpd# chmod a=r etc/* Die Dateien in lib sollten ebenfalls lesbar fr alle Benutzer sein, die Dateien lib/libc.so.6 und lib/ld-linux.so.2 mssen darber hinaus ausfhrbar fr Alle sein: debian:/var/ftpd# chmod a=r lib/* debian:/var/ftpd# chmod a+x lib/{libc.so.6,ld-linux.so.2} Das Verzeichnis pub sowie das Wurzelverzeichnis des FTP-Servers (im Beispiel /var/ftpd) sollten les- und ausfhrbar fr alle Benutzer sein: debian:/var/ftpd# chmod a=rx pub . Lschen Sie die Dotles wie .bashrc, die whrend der Erzeugung des Benutzers ftp in das Verzeichnis kopiert wurden: debian:/var/ftpd# rm .[a-zA-Z]* Nun sollte der FTP-Server fertig eingerichtet sein, und Sie knnen ihn freigegeben, indem Sie in der Datei /etc/ftpusers die Eintrge ftp und anonymous auskommentieren. Versuchen Sie nun auf den Server zuzugreifen, wie es in Abschnitt 17.6.5 beschrieben ist. Dateien, die Sie anderen mit dem Server zugnglich machen wollen, sollten Sie unterhalb des Verzeichnisses pub ablegen. Sie knnen dort auch Unterverzeichnisse anlegen, um die Dateien zu ordnen. Alle Verzeichnisse unterhalb von pub mssen les- und ausfhrbar fr alle Benutzer sein (755). Dateien sollten lesbar fr alle Benutzer sein (644). Wenn Sie ein Verzeichnis einrichten mchten, in das Benutzer Ihres Server Dateien hochladen knnen (pub/incoming), dann sollte dieses Verzeichnis mit Schreibrechten fr alle Benutzer ausgestattet sein (733). Es versteht sich, dass dieses Verzeichnis sorgfltig beobachtet werden muss, damit sich dort keine unerwnschten Gste breit machen.

680

17 Debian GNU/Linux im Netz

Der FTP-Server kann alle Zugriffe ber den Syslog-Dmon protokollieren. Dazu ist er mit der Option -l aufzurufen. Wenn die Option zweimal angegeben wird, werden zustzlich alle Datentransfers und Dateimanipulationen mitprotokolliert. Wenn Sie diese Eigenschaft nutzen wollen, mssen Sie die Zeile in der Datei /etc/inetd.conf, durch die der FTP-Server aufgerufen wird, folgendermaen ndern: ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd -l -l Vergessen Sie nicht, dass inetd die Kongurationsdatei nach der nderung neu einlesen muss. Zugriffe, Dateitransfers und -manipulationen werden dann in der Datei /var/log/syslog protokolliert. Alternative FTP-Server Der standardmige FTP-Server reicht zwar fr die meisten Zwecke aus, gelegentlich werden aber zustzliche Eigenschaften bentigt. Dazu gehren die Fhigkeit, die Anzahl gleichzeitig zugreifender Benutzer zu begrenzen, bestimmten Benutzern besondere Rechte einzurumen oder Dateien und Verzeichnisse vor dem Transport automatisch zu komprimieren. Wenn Sie solche Eigenschaften bentigen, sollten Sie sich die Pakete wu-ftpd und proftpd ansehen. 17.7.5 Einrichtung des Mail-Transport-Agents exim Im allgemeinen gehrt zu einem Linux/UNIX-System ein Mail-Transport-Agent (MTA). Ein solches Programmpaket nimmt elektronische Post (Mails) von den Benutzern des Systems entgegen und leitet sie an andere Benutzer weiter. Darber hinaus kann es Mails ins Netz leiten und aus dem Netz empfangen, diese an lokale Benutzer zustellen oder wiederum an andere Systeme weitergeben. Der Standard-MTA unter Debian GNU/Linux ist exim. Dieses von dem MTA smail inspirierte Programm zeichnet sich durch einfache Kongurierbarkeit, hohe Flexibilitt, hohe Sicherheit, groe Performance und geringe Systembelastung aus. Besondere Merkmale von exim sind die Fhigkeit zur automatischen Filterung von Mails ohne Verwendung externer Programme wie procmail und die Fhigkeit zur automatischen Behandlung unerwnschter Werbe-Mails (Spam). Eine Basiskonguration lsst sich mit dem Skript eximcong erstellen. Das Skript wird nach der Installation des Pakets exim aufgerufen, falls noch keine Konguration vorhanden ist. Basiskonguration mit eximcong Das Skript wird durch folgendes Kommando aufgerufen: debian:~# eximconfig

17.7 Konguration von Netzdiensten

681

Danach erscheint eine Begrung oder eine Meldung, die Ihnen mitteilt, dass bereits eine Konguration gefunden wurde und diese durch die Fortsetzung des Skriptes berschrieben wird. In jedem Fall haben Sie die Mglichkeit, das Skript durch Bettigen der Tastenkombination S TRG - C abzubrechen oder mit E INGABE fortzusetzen. Danach erscheint ein Men, aus dem eine der folgenden Grundkongurationen ausgewhlt werden muss: Internet Site: Eine Ausgangskonguration fr Rechner, die dauerhaft mit dem Internet verbunden sind und Mails direkt empfangen und versenden knnen. Internet Site using Smarthost: Unter einem Smarthost wird ein System verstanden, an das jede Mail geliefert wird, die nicht lokal (auf dem eigenen Rechner) zugestellt werden kann. Im Gegensatz zu der gewhnlichen Methode der direkten Auslieferung (wie bei Internet Site) bietet die Verwendung eines Smarthosts den Vorteil, dass das lokale System nicht zu wissen braucht, auf welchem Weg Mail an andere Rechner ausgeliefert wird. Selbstverstndlich muss der Verwalter des Systems, das als Smarthost verwandt wird, hiermit einverstanden sein und sein System so konguriert haben, dass es diese Aufgabe wahrnimmt. Dieses Setup eignet sich fr Rechner, die ber eine Einwahlverbindung ins Internet verfgen und ausgehende Mails nach der Einwahl an den Smarthost des Internet-Providers abgeben. Hierbei mssen unter Umstnden manuell Regeln zum Umschreiben der Absenderadressen eingegeben werden. Solange eine Verbindung zu anderen Rechnern besteht, ermglicht diese Konguration auch den Empfang von Mails. Eine weitere Anwendungsmglichkeit fr diese Konguration ist deswegen der Einsatz auf Rechnern in Netzen, wo ein zentraler EmailRechner den Versand ausgehender Mails durchfhrt. Satellite System: Bei dieser Konguration wird keine Email empfangen. Das Abholen von Mails mit anderen Programmen (POP, IMAP) ist mglich. Ausgehende Mails werden ebenfalls an einen Smarthost gesendet. Diese Konguration eignet sich besonders fr Rechner, die das Verzeichnis mit den MailspoolDateien (normalerweise /var/mail) von einem Email-Server ber NFS mounten. Local delivery only: Konguration fr unvernetzte Rechner. Mails von und an lokale Benutzer werden empfangen und ausgeliefert. Es wird keine Mail von anderen Systemen empfangen oder an diese weitergeleitet. Die Option wird fr solche Rechner empfohlen, die im Prinzip unvernetzt sind, unter Umstnden aber ber eine Einwahlverbindung zu einem Internetprovider verfgen. Der MTA wird dann nur zur Auslieferung lokaler Mails benutzt. Fr den Empfang eingehender Mails sind die Benutzer selbst verantwortlich und knnen dies wie unter anderen Betriebssystemen oft blich mit einem Mail-User-Agent, beispielsweise netscape oder balsa, erledigen. No conguration: Das Mailsystem wird nicht konguriert und ist nicht funktionsfhig. Es sollte spter von Hand oder durch erneuten Aufruf von eximcong konguriert werden.

682

17 Debian GNU/Linux im Netz

Wenn Sie sich nicht sicher sind, welches die richtige Konguration fr Ihr System ist, sollten Sie Local delivery only whlen. Ihr Rechner verhlt sich dann aus der Sicht fremder Systeme wie ein Rechner ohne eigenen MTA. Abhngig von der gewhlten Option mssen Sie nun einige Fragen beantworten. Dabei wird Ihnen in der Regel ein Vorgabewert (default=. . . ) vorgeschlagen, den Sie durch Bettigung der E INGABE-Taste besttigen. Korrekturen sind whrend der Eingabe mit der Z URCK-Taste mglich. Darber hinaus kann durch Eingabe von x bewirkt werden, dass alle Fragen erneut gestellt werden. Diese Mglichkeit knnen Sie nutzen, falls Sie eine falsche Eingabe oder Auswahl zu spt bemerken. What is the visible Mail Name? Hier ist der volle Internetname des Systems anzugeben, das als Absender in ausgehenden Mails eingetragen werden soll. Falls in Ihrem Netz der Rechner mail.rma.de fr den Empfang von Mails verantwortlich ist, sollten Sie diesen Rechnernamen hier eintragen, damit die From:-Zeile ausgehender Mails diesen Namen enthlt und Antworten auf Mails aus Ihrem System an diese Adresse gesendet werden. Wenn Ihr System Mails selbst empfngt, knnen Sie den Vorgabewert, nmlich den Namen Ihres Rechners, bernehmen. Achten Sie darauf, dass hier der volle Internetname eingetragen ist: nicht pe2, sondern pe2.rma.de. Does this System have any other names . . . ? Gelegentlich werden fr Email andere oder zustzliche Rechnernamen benutzt, die von dem normalen Internetnamen des Rechners, auf dem die Mail empfangen und versendet wird, abweichen. Dies setzt voraus, dass alle anderen am Mailtransport zu diesen Adressen beteiligten Systeme diese virtuellen Adressen kennen. Wenn Ihr System Mail an zustzliche Adressen empfangen soll, knnen Sie diese hier getrennt durch Leerzeichen oder Kommata angeben. Are there any domains you want to relay mail for? Falls Ihr Rechner Mail empfangen soll, die nicht fr lokale Benutzer bestimmt ist, sondern an andere Systeme weitergeleitet werden muss, und auch nicht von lokalen Rechnern stammt, weil andere Rechner so konguriert sind, dass sie Ihren Rechner als Standardweg zum Versand von Mail verwenden, geben Sie hier die Domainnamen an, fr die Sie Mail zur Weiterleitung akzeptieren wollen. Ihr Rechner dient dann fr andere Systeme als Relaisstation (Relay) bei der Versendung von Email. Darber hinaus ist es mglich, grundstzlich jede Mail von allen Systemen zu akzeptieren und weiterzuleiten, die Sie als Relay angeben. In diesem Fall geben Sie hier mx (fr Mailexchange) an. Are there any networks of local machines, you want to relay mail for? Bei dieser Abfrage knnen Sie angeben, welche Netze Sie als Smarthost eintragen drfen. Die Angabe erfolgt in der Adresse/Lnge-Schreibweise, bei der zunchst die IP-Nummer des Netzes und dann die Netzmaske in Form einer Dezimalzahl angegeben wird. Mchten Sie als Smarthost fr das Netz mit der IP-Nummer 192.168.16.0 dienen und ist die Netzmaske dieses Netzes 255.255.255.0, so ist hier 192.168.16.0/24 anzugeben. Falls der Rechner als Smarthost fr ein greres Netz mit der Netzadresse 192.168.0.0 eingesetzt werden soll, das die Netzmaske 255.255.0.0 hat, so ist 192.168.0.0/16 anzugeben. Natrlich knnen Sie

17.7 Konguration von Netzdiensten

683

auch einzelne Rechner spezizieren, beispielsweise 192.168.30.31/32. Hier sind alle Bits der Netzmaske auf 1 gesetzt, sodass nur eine einzelne Adresse gemeint ist. Wenn Sie mehrere Netze spezizieren wollen, mssen Sie die Angaben fr die Netze hintereinander durch Leerzeichen oder Kommata getrennt angeben. Would you like to use the RBL? Leider versenden heute immer mehr Geschftemacher unaufgefordert Mails mit teilweise unserisem Inhalt (Spam). Um sich hiergegen zu wehren, kann exim die Absender eingehender Email auf bereinstimmung mit einer schwarzen Liste berprfen und Mail von unerwnschten Absendern zurckweisen oder mit einer zustzlichen Header-Zeile versehen, die es den Empfngern erlaubt, ihre eingehende Mail zu ltern (das heit, Mail mit dieser Header-Zeile zu lschen oder anderweitig zu behandeln). Durch manuelle Konguration von exim ist auch das Durchsuchen ein- und ausgehender Mail nach bestimmten Ausdrcken oder jede weitere Behandlung (oft werden eingehende Mails zunchst durch einen Virenscanner geschickt, bevor sie an den Empfnger ausgeliefert werden) mglich. eximcong gibt Ihnen die Mglichkeit, das System so zu kongurieren, dass die IP-Adressen, die Mails an Ihr System schicken, mit einer regelmig aktualisierten schwarzen Liste (der Realtime Blackhole List (RBL, http://maps.vix.com/rbl/) verglichen werden und bei bereinstimmung entweder zurckgewiesen oder mit einer zustzlichen Header-Zeile versehen werden. Gelegentlich kommt es vor, dass Sie durch die automatische Zurckweisung eine Mail verlieren, bei der es sich nicht um Spam handelt (false positives). Geben Sie r an, wenn Sie unerwnschte Mail automatisch zurckweisen wollen, f, falls Sie eine Header-Zeile bei Spam hinzufgen mchten, oder n, wenn Sie diese Mglichkeiten nicht nutzen wollen. What domain(s) would you like to use for the RBL? Die RBL wird von einem Internetserver bezogen, dessen Namen Sie hier angeben. Falls Sie keinen besonderen Server verwenden, benutzen Sie den Vorgabewert (rbl.maps.vix.com). Which user account(s) should system administrator mail go to? In der Regel wird Mail fr den Systemverwalter und den Mailverantwortlichen (postmaster) an einen echten Benutzer weitergeleitet. Auf jedem am Empfang und der Versendung von Mails beteiligten System muss es eine Mailadresse beginnend mit postmaster , beispielsweise postmaster@rma.de, geben. Dies bietet den Vorteil, dass man immer wei, an wen Mail bezglich Problemen mit dem Mailversand geschickt werden muss. Mail an den Verwalter sollte an einen gewhnliche Benutzer geschickt werden, weil die Auslieferung von Mail an root potentiell mit Sicherheitsproblemen belastet ist. Auerdem sollte es nicht notwendig sein, sich als Verwalter anzumelden, um Systemmitteilungen zu berprfen. Sie sollten hier den Benutzernamen angeben, unter dem Sie normalerweise arbeiten. Es ist auch mglich, mehrere durch Leerzeichen getrennte Benutzernamen anzugeben, was zur Folge hat, dass jeder der angegebenen Benutzer Mails fr root und postmaster erhlt. You already have an /etc/aliases le: Zur Weiterleitung von Mail an bestimmte Benutzer wie root oder postmaster, die keine echten Benutzer sind, an reale Benutzer (beispielsweise an Sie) wird die Datei /etc/aliases verwendet, in der angegeben wird, an wen Mail, die an solche virtuellen Benutzer gesendet wur-

684

17 Debian GNU/Linux im Netz

de, umgeleitet werden soll. Wenn Sie auf dem System nicht zum ersten Mal einen MTA kongurieren, haben Sie eine solche Datei unter Umstnden schon. eximcong fragt, ob es diese Datei ersetzen darf, wobei die alte Version dann als /etc/aliases.0 gesichert wird. Prinzipiell sollten Sie hier mit y antworten, wodurch die Datei ersetzt wird und, falls Sie vorher nderungen an der vorherigen Version durchgefhrt haben, diese dann spter in der neuen Datei einfgen. Which machine will act as the smarthost and handle outgoing mail? Der Namen des Rechners, an den ausgehende Mail von ihrem System gesendet werden soll. In der Regel ist dies der Mailserver Ihres Internet-Providers. Die Mail wird an diesen Server ber SMTP gesendet. Auf dem angegeben Rechner muss ebenfalls ein MTA laufen, der Mails zur Weiterleitung von Ihnen akzeptiert. What is this systems name? Geben Sie hier den vollen Namen des Rechners an, fr den Sie exim kongurieren. Die Frage gehrt zur Konguration von Satellitensystemen, bei denen dieser Name nicht in der Absenderadresse erscheint, da er umgeschrieben wird. Where will your users read their mail? Bei Satellitensystemen, die selbst keine Mails empfangen, ist es notwendig, die Absenderadresse von Mails, die auf diesen Systemen erstellt wird, umzuschreiben. Im Absender erscheint dann nicht mehr der Name des Rechners, auf dem die Mail erstellt wurde, sondern der Name des Rechners, der Mail fr das Satellitensystem empfngt und von dem diese gelesen wird (indem sie von dort abgeholt wird oder das Mail-Verzeichnis des Servers ber NFS vom Satellitensystem gemountet wird). In der Regel ist hier die Adresse des benutzten Mailservers anzugeben. Achtung: Die Konguration funktioniert nur dann richtig, wenn die Benutzer auf dem Mailserver die gleichen Benutzernamen haben wie auf dem lokalen System. Andernfalls wird der Rechner- oder Domain-Teil der Adresse zwar richtig umgeschrieben (der Teil hinter dem @), der Benutzerteil der Adressen (vor dem @) jedoch nicht, was zur Folge haben kann, dass Antworten an die so erzeugten Adressen verlorengehen oder an andere Benutzer des Mailservers gesendet werden. Am Ende der Konguration wird eine Zusammenfassung der Einstellungen am Bildschirm ausgegeben und die Frage Is this OK? gestellt. Wenn alles richtig ist, antworten Sie mit y, ansonsten mit n, woraufhin die Konguration neu durchlaufen wird. Testen der Basiskonguration Nachdem Sie die Basiskonguration erstellt haben, sollten Sie die wichtigsten Funktionen testen. Dazu knnen Sie jedes Email-Programm (MUA) verwenden, das mit Mailspool-Dateien umgehen kann. Richten Sie das Programm so ein, dass zum Empfang eingegangener Mail die lokale Mailspool-Datei benutzt wird und Mail ber den lokalen MTA (nicht ber SMTP) versendet wird. Abbildung 17.9 zeigt die entsprechende Einstellung fr das Programm balsa. Fhren Sie die Tests als gewhnlicher Benutzer und nicht als Verwalter durch.

17.7 Konguration von Netzdiensten

685

Abbildung 17.9. Konguration des Email-Programms balsa zur Verwendung des lokalen Mailspools fr eingehende Mail und des lokalen SMTP-Servers fr ausgehende Mail.

Schicken Sie eine Mail an sich selbst. Geben Sie dazu als Email-Adresse nur Ihren Benutzernamen an (ohne @ und ohne Rechnernamen). Prfen Sie, ob Sie die Mail erhalten. Falls dies nicht der Fall ist, sollten Sie in der Datei /var/log/exim/mainlog nachsehen, ob die Mail von exim berhaupt bearbeitet wurde. In dem Verzeichnis /var/log/exim benden sich zwei weitere Log-Dateien, nmlich paniclog und rejectlog. In der ersten Datei werden Zustnde protokolliert, mit denen exim aufgrund fehlerhafter Konguration nicht umgehen konnte. In der zweite Datei (rejectlog) wird protokolliert, wenn eine Mail von exim abgewiesen wurde. Danach knnen Sie sich als Verwalter eine Mail schicken. Diese Mail sollten Sie dann auf dem Benutzerkonto empfangen, das Sie bei der Frage, an welchen Benutzer Mail an root gehen soll, angegeben haben. Wenn Sie exim so konguriert haben, dass es ausgehende Mail via Smarthost oder direkt versenden soll, knnen Sie danach eine Mail an einen Benutzer auerhalb Ihres Rechners schicken, beispielsweise an Ihr Benutzerkonto bei Ihrem Provider. Voraussetzung dafr ist, dass Sie ber eine aktive Internet-Anbindung verfgen. Schauen Sie nach, ob die Mail angekommen ist. Wenn dies nicht zutrifft, berprfen Sie zunchst wieder die Log-Dateien. Wenn Sie exim fr die Benutzung eines Smarthosts konguriert haben, sollten Sie prfen, ob Sie tatschlich berechtigt sind, den Smarthost zu verwenden. Viele Mail-Provider verwenden aus Sicherheitsgrnden SMTP after POP, das bedeutet, dass der Smart-

686

17 Debian GNU/Linux im Netz

host erst dann benutzt werden darf, wenn vorher per POP nachgesehen wurde, ob Mail vorhanden ist. Testen Sie dies, in dem Sie zunchst per POP-Klient eine Verbindung zum Mail-Provider aufbauen und danach erneut versuchen, ausgehende Mail zu versenden. Falls exim auch eingehende Mail empfangen soll, knnen Sie Ihr Mail-Programm nun so umkongurieren, dass es zum Mailversand SMTP benutzt. Geben Sie dabei als Mailserver den Rechnernamen localhost an. Danach senden Sie sich eine weitere Testmail. Schlielich knnen Sie sich von einem anderen Rechner aus eine Mail an Ihren Rechner senden. Dies funktioniert nur, wenn Ihr Rechner einen Namen hat, der im DNS-Server des anderen Rechners eingetragen ist bzw. dessen Smarthost bekannt ist. Wenn die Tests die gewnschten Ergebnisse hervorgebracht haben, knnen Sie sich an die Feinkonguration machen. Die Kongurationsdatei fr exim ist die Datei /etc/exim.conf. Die Datei enthlt Kommentare, die mit einem Doppelkreuz (#) eingeleitet werden. Auerdem darf sie leere Zeilen enthalten, die der Strukturierung dienen. In der Datei benden sich verschiedene Abschnitte, mit denen einzelne Teilaspekte von exim konguriert werden. Dokumentation zu exim Im Verzeichnis /usr/share/doc/exim liegen Dokumente zu exim. Eine ausfhrliche Einfhrung und Erluterung der Mglichkeiten zur Konguration ndet sich in der Datei /usr/share/doc/exim/spec.txt.gz. Mit dem Paket exim-doc steht auerdem Dokumentation im GNU Info-Format zur Verfgung. Die Kommandozeilen-Optionen von exim sind in der Manual-Seite zu dem Programm beschrieben. Weitere Informationen (FAQs, Mailing-Listen, Archive) benden sich auf den Web-Seiten zu dem Programm, die unter der Adresse http://www.exim.org/ erreichbar sind. Allgemeine Erluterungen zum Thema Email unter Linux nden Sie in drei HOWTOs, nmlich dem Mail-Administrator-HOWTO, dem MailHOWTO und dem Mail-User-HOWTO. Die Dokumente liegen im Verzeichnis /usr/doc/share/HOWTO/ent-txt, wenn das Paket doc-linux-text installiert ist. Weitere Hinweise Die Datei /etc/aliases Die Datei dient zur systemweiten Umleitung von Email. In jeder Zeile dieser Datei, die nicht leer ist oder einen Kommentar beinhaltet, bendet sich eine Anweisung zur Umleitung. Die Anweisungen bestehen aus einem Empfngernamen, einem Doppelpunkt und dahinter einer Liste von Empfngernamen oder sonstigen Anweisungen, mit denen speziziert wird, was mit Mails, die an den angegebenen Empfnger adressiert sind, geschehen soll. Ein einfaches Beispiel: root: karl

17.7 Konguration von Netzdiensten

687

Die Anweisung bewirkt, dass jede Mail, die an den Empfnger root auf dem lokalen System gehen soll, an den Empfnger karl ebendort weitergeleitet wird. Der als erstes angegebene Empfnger (hier root) braucht nicht als Benutzer auf dem System vorhanden zu sein. Mit dem Verfahren lassen sich zustzliche Email-Adressen einrichten. Hug werden auf diese Weise Empfnger wie info, sekretariat, bibliothek oder webmaster geschaffen. Man kann auch mehrere Empfnger angeben: webmaster: karl, susanne, marc Diese Anweisung hat zur Folge, dass jede Mail, die an den Empfnger webmaster geschickt wird, gleichzeitig an die Empfnger karl, susanne und marc ausgeliefert wird, die sich die Arbeit des Webmasters teilen. Wenn Sie sich die standardmig erstellte Datei /etc/aliases ansehen, stellen Sie fest, dass von Mehrfach-Umleitungen Gebrauch gemacht wird. Mail an eine ganze Reihe von Benutzern wird zunchst an root umgeleitet und dann mit einer einzigen Anweisung an einen bestimmten Benutzer weitergeleitet. Sie knnen Mail auch an Programme weiterleiten. Dazu ist das Pipe-Zeichen zu verwenden: auto-answer: "| /usr/local/bin/some_script argument" Die Anweisung bewirkt, dass Mail an den Empfnger auto-answer in die Standardeingabe des Programms oder Skripts /usr/local/bin/some_script gegeben wird. Im Beispiel wird das Programm mit dem Parameter argument aufgerufen. Ein solches Skript knnte die Mail automatisch verarbeiten und Antworten erzeugen, die es ebenfalls automatisch verschickt. Weitere Hinweise zu den Mglichkeiten der Datei /etc/aliases nden sich in der Datei /usr/share/doc/exim/spec.txt.gz Einstellungen fr Rechner mit Einwahlverbindung Wenn Sie nur ber eine temporre Internetverbindung verfgen, ist es sinnvoll, einige Anpassungen an der Datei /etc/exim.conf vorzunehmen. Insbesondere dann, wenn Sie Dial-On-Demand benutzen, ist es unerwnscht, dass exim fr jede auszuliefernde Mail eine Internetverbindung aufbaut. Mit der folgenden Anweisung in der Datei /etc/exim.conf wird erreicht, dass ausgehende Mails (die nicht lokal zugestellt werden) nicht sofort ausgeliefert werden: queue_remote_domains * Ausgehende Mails werden mit dieser Einstellung erst dann ausgeliefert, wenn exim versucht, bisher nicht ausgelieferte Mails zuzustellen. Dies erfolgt, wenn exim mit dem Parameter -q aufgerufen wird. Standardmig geschieht dies alle 30 Minuten. Dafr ist die Datei /etc/cron.d/exim verantwortlich, die einen entsprechenden Crontab-Eintrag enthlt: 08,38 * * * * mail if [ -x /usr/sbin/exim -a -f /etc/exim.conf ]; then /usr/sbin/exim -q >/dev/null 2>&1; fi

688

17 Debian GNU/Linux im Netz

Wenn Sie wnschen, dass berhaupt keine automatische Zustellung erfolgt, kommentieren Sie den Eintrag in der Datei aus. Falls Sie die automatische Zustellung in greren Zeitabstnden durchfhren mchten, passen Sie den Eintrag an. Folgender Eintrag bewirkt, dass Mail alle zwei Stunden zugestellt wird: 08 0-23/2 * * * mail if [ -x /usr/sbin/exim -a -f /etc/exim.conf ]; then /usr/sbin/exim -q >/dev/null 2>&1; fi Wenn Sie die Einwahlverbindung per Modem-PPP oder per ISDN-PPP aufbauen, wird die Zustellung nach dem Verbindungaufbau automatisch ausgefhrt. Hierfr ist das Skript /etc/ppp/ip-up.d/exim zustndig, in dem sich das Kommando exim -qf verbirgt. Die zustzliche Option -f bewirkt, dass auch solche Mail ausgeliefert wird, die normalerweise noch nicht an der Reihe ist. Falls Sie keine automatische MailAuslieferung nach einem Verbindungsaufbau wnschen, kommentieren Sie die Zeile aus. Bei eingehenden SMTP-Verbindungen fhrt exim eine DNS-Abfrage aus, um den Namen des Rechners zu erfragen, der die Verbindung initiiert hat. Bei Verwendung von Dial-On-Demand fhrt das zum Aufbau einer Verbindung. Sie knnen dieses Verhalten abschalten, indem Sie folgende Zeile in der Datei /etc/exim.conf auskommentieren: host_lookup = * Wenn Sie fetchmail (siehe Seite 690) verwenden, um Mail von Ihrem Provider abzuholen, kommt es vor, dass fetchmail hintereinander eine groe Anzahl von Mails bergibt. Standardmig liefert exim in solchen Fllen nur die ersten zehn Mails sofort aus. Um alle weiteren Mails sofort auszuliefern, mssen Sie den Wert fr smtp_accept_queue_per_connection in der Datei /etc/exim.conf anpassen: smtp_accept_queue_per_connection = 100 Automatisches Umschreiben von Email-Adressen Ein System mit temporrer Internet-Verbindung hat normalerweise keinen festen Namen, der den DNS-Servern bekannt ist. Das bedeutet, dass keine Mail an solche Systeme geschickt werden kann. Viele Email-Programme benutzen den eigenen Rechnernamen jedoch, um automatisch die Absenderadresse fr ausgehende Mail zu generieren. Wenn der interne Name Ihres Systems knorkator lautet und Ihr Benutzername ralf, wrde Ihre lokale Email-Adresse ralf@knorkator sein. Damit diese Email-Adresse nicht als Absenderadresse auf Mails erscheint, die Ihren Rechner oder Ihr lokales Netz verlassen, ist es notwendig, sie umzuschreiben. Hierzu benutzt exim die Datei /etc/email-adresses. Die Datei kann fr jeden lokalen Benutzer einen Eintrag in einer Zeile enthalten. Dabei wird zunchst der lokale Name des Benutzers, dann ein Doppelpunkt und dahinter nach einem Leerzeichen die Email-Adresse angegeben, die auf ausgehenden Mails von diesem Benutzer als Absender erscheinen soll. Beispiel:

17.7 Konguration von Netzdiensten


ralf: ralf.meier@t-offline.com marc: marcz7@coldmail.com susanne: scg@slowmail.net

689

Steuerung und berwachung mit eximon Das Programm eximon aus dem gleichnamigen Paket erlaubt die berwachung vom exim sowie die Manipulation noch nicht ausgelieferter Mails. Standardmig zeigt das Programm im oberen Teil seines Fensters Statistiken zum Mailverkehr. Im mittleren Teil werden dieselben Meldungen dargestellt, die auch in der Datei /var/log/exim/mainlog protokolliert werden, und im unteren Teil werden alle Nachrichten angezeigt, die noch nicht ausgeliefert wurden bzw. auf Grund eines Fehlers nicht ausgeliefert werden knnen. Nach gleichzeitigem Bettigen der Taste S HIFT und Anklicken einer dort angezeigten Mail wird ein Men angezeigt, mit dem sich die betreffende Mail manipulieren, sofort ausliefern oder lschen lsst. Andere MTAs Neben exim stehen unter Debian GNU/Linux weitere MTA-Programme zur Verfgung. Die Frage, welcher MTA der richtige ist, hat schon manch sonst friedliches Gemt erhitzt, sie kann nicht grundstzlich beantwortet werden. Hier eine Liste der wichtigsten unter Debian GNU/Linux verfgbaren MTAs: Sendmail Dieses Programm ist der Klassiker unter den MTAs. Das Programm hat Internet-Geschichte geschrieben. Es ist schwierig zu kongurieren und weist ein paar Schwchen auf, die dazu gefhrt haben, dass alternative MTAs entwickelt wurden. Das System ist im Paket sendmail enthalten. Qmail Dieser MTA zeichnet sich durch einen modularen Aufbau und besondere Sicherheitseigenschaften aus. Das Programm darf nur im Quellcode verteilt werden und bendet sich unter Debian GNU/Linux deswegen in der Abteilung nonfree im Paket qmail-src. Das Paket erlaubt die automatische bersetzung des Quellcodes. Postx Ein MTA, bei dessen Programmierung einige Qmail-Anstze aufgegriffen wurden und der sich durch eine einfache Konguration auszeichnet. Das Programm erfreut sich zunehmender Beliebtheit. Smail Dieser MTA war ber einen gewissen Zeitraum der Standard-Mailer unter Debian GNU/Linux. MasqMail Als Ersatz fr die Groen gedacht und an die Bedrfnisse angepasst, die auf Systemen mit temporrer Internet-Anbindung vorhanden sind. Ssmtp Hierbei handelt es sich um einen simplen MTA, der lediglich Mail von Benutzern entgegennimmt und diese an einen Smarthost weiterleitet. Das Programm kann keine Mail empfangen und auch keine Mailspool-Dateien pegen. Es eignet sich gut fr den Einsatz in Netzen, wo ein Rechner fr den Mailversand und -Empfang verantwortlich ist und alle anderen Rechner das MailspoolVerzeichnis dieses Rechners ber NFS einbinden.

690

17 Debian GNU/Linux im Netz

17.7.6 Abholen von Mail mit fetchmail Nach der Installation und Konguration eines MTAs kann Ihr System Mails versenden, empfangen und weiterleiten. Auf einem Einwahlrechner ist man jedoch weiterhin auf einen Mail-Provider angewiesen, damit die Mail zwischengelagert wird, bis eine Netzverbindung besteht. Von dort wird sie wie beschrieben mit einem geeigneten MUA (Mail User Agent) per POP oder IMAP abgeholt. Eine Alternative dazu ist, die Mail automatisch mit dem Programm fetchmail abholen zu lassen. Dieses Programm bergibt die abgeholte Mail in der Regel dem lokalen MTA, der sie wie blich ausliefert. Der groe Vorteil bei diesem Verfahren ist, dass ein- und ausgehende Mail ber den lokalen MTA luft, also immer nach denselben Regeln behandelt werden kann, egal von welchem Provider sie abgeholt wurde, fr welchen Benutzer sie bestimmt ist oder mit welchem Programm sie gelesen oder weiterverarbeitet wird. Auerdem kann nach einer einmal erfolgten Einwahl gleich die Mail fr alle Benutzer abgeholt werden, sodass nicht jeder Benutzer einzeln eine Netzverbindung aufbauen muss, um nach neuer Mail zu sehen. Das Programm fetchmail ist in dem gleichnamigen Paket enthalten. Zustzlich empehlt es sich, das Paket fetchmailconf zu installieren, das ein einfach zu benutzendes Kongurationsprogramm fr die grasche Oberche enthlt. Sie knnen fetchmail als gewhnlicher Benutzer kongurieren und benutzen. Das Programm macht ja nichts anderes als Mails von einem Server abzuholen und lokal weiter zu versenden. Geben Sie folgendes Kommando ein, um fetchmail zu kongurieren: joe@debian:~$ fetchmailconf Es erscheint ein Fenster, in dem Sie auswhlen, ob fetchmail konguriert, getestet, benutzt oder verlassen werden soll. In einem weiteren Fenster whlen Sie aus, ob Sie den Anfnger- (Novice-) oder den Expertenmodus benutzen wollen. Die Optionen im Anfngermodus reichen in der Regel aus, um alle notwendigen Einstellungen vorzunehmen. Nach Auswahl des Modus erscheint ein Fenster, in dem Sie zwei Einstellungen vornehmen mssen. Hinter Poll interval geben Sie an, nach jeweils wievielen Minuten fetchmail versuchen soll, Mail herunterzuladen. Wenn Sie den Vorgabewert 0 benutzen, wird dies nur einmal versucht, und das Programm beendet sich. Hinter New Server mssen Sie den Namen des Servers angeben, von dem Sie Mails abholen. Dies ist der Rechnername, der Ihnen von Ihrem Provider als POP- oder IMAP-Server mitgeteilt worden ist. Geben Sie den Servernamen ein und drcken Sie E INGABE. Der Name erscheint in der Liste unter dem Eingabefeld. Klicken Sie den Namen an und whlen Sie die Schaltche Edit. Es erscheint ein weiteres Fenster, in dessen oberem Teil Sie angeben, welches Protokoll zum Abholen der Mail benutzt wird. Wenn Sie sich nicht sicher sind, klicken Sie die Schaltche Probe for supported protocols an. Das Programm versucht dann, selbststndig das beste vom Provider untersttzte Protokoll auszuwhlen. Im unteren Teil des Fensters geben Sie hinter New user Ihren Benutzernamen ein, den Sie von Ihrem Provider erhalten haben (nicht den lokalen), und drcken E INGABE. Nun mssen Sie den Benutzernamen ebenfalls mit der Maus auswhlen und dann die Schaltche Edit bettigen. Es erscheint ein weiteres Fenster, in dessen oberem

17.7 Konguration von Netzdiensten

691

Abbildung 17.10. Konguration von fetchmail mit fetchmailconf im Expertenmodus.

Teil Sie das Passwort bei Ihrem Provider eingeben. Wenn Sie es nicht eingeben, fragt fetchmail Sie zuknftig nach dem Passwort. Im mittleren Teil des Fensters geben Sie hinter New Name: Ihren Namen auf dem lokalen System (auf Ihrem Rechner) ein. Den Vorgabewert (den Benutzernamen beim Provider) lschen Sie, indem Sie ihn mit der Maus auswhlen und die Schaltche Delete anklicken. Achtung: Wenn sich Ihr lokaler Benutzername und Ihr Benutzername beim Provider voneinander unterscheiden, dann muss unter Local Names Ihr lokaler Name eingetragen sein. Wenn dort der Benutzername beim Provider eingetragen ist, wird jede mit fetchmail abgeholte Mail wieder an den Absender zurckgeschickt, weil sie lokal nicht zustellbar ist. Im unteren Teil des Fenster bestimmen Sie, dass Nachrichten auf dem Server des Providers nicht gelscht werden sollen4 , nachdem sie abgeholt worden sind (Supress deletion of messages after reading) und dass auch solche Nachrichten abgeholt werden sollen, die bereits gelesen wurden, sich aber noch auf dem Server des Providers benden (Fetch old messages as well as new). Dann schlieen Sie die beiden zuletzt geffneten Fenster mit der Schaltche OK und sichern die Einstellung in dem Fenster Congurator novice controls mit save. Danach verlassen Sie das Programm im Hauptfenster mit Quit. Das Programm hat nun die Datei .fetchmailrc in Ihrem Home-Verzeichnis erzeugt, die sinngem folgendermaen aussehen sollte:
4 Irgendwann wird dann der Provider bse, weil Ihr Briefkasten berquillt. Besser lschen Sie die Mails beim Provider nach dem Abholen.

692

17 Debian GNU/Linux im Netz

# Configuration created Mon Feb 21 19:01:44 2000 by fetchmailconf set postmaster "karl" set bouncemail set properties "" poll pop.coldmail.com with proto POP3 user "karl.meier" there with password "seisdrum" is karl here

Nun testen Sie das Programm, indem Sie folgendes Kommando eingeben: joe@debian:~$ fetchmail -v Der Parameter -v bewirkt, dass fetchmail ausgibt, welche Schritte es gerade ausfhrt. Die Ausgabe ist hilfreich, um Fehlern auf die Spur zu kommen. Wenn alles funktioniert, lassen Sie den Parameter weg. berprfen Sie mit Ihrem EmailProgramm, ob die abgeholte Mail tatschlich an Sie zugestellt wurde, nachdem fetchmail sich beendet hat. Ihr Email-Programm muss so eingestellt sein, dass es die Mail aus Ihrer Mailspool-Datei empfngt und nicht per POP oder IMAP. Falls Sie Ihre Mail nicht erhalten haben, obwohl fetchmail sie abgeholt hat, sollten Sie die Ausgabe des Programms prfen:
fetchmail: 5.2.3 querying pop.coldmail.com (protocol POP3) at Tue, 22 Feb 2000 14:22:46 +0100(CET) fetchmail: POP3< +OK QPOP (vers. 2.53) at pop.coldmail.com starting fetchmail: POP3> USER karl.meier fetchmail: POP3< +OK Password required for karl.meier. fetchmail: POP3> PASS * fetchmail: POP3< +OK karl.meier has 2 messages (3063 octets). fetchmail: POP3> STAT fetchmail: POP3< +OK 2 3063 2 messages for karl.meier at pop.coldmail.com (3063 octets). fetchmail: POP3> LIST fetchmail: POP3< +OK 2 messages (3063 octets) fetchmail: POP3< 1 2077 fetchmail: POP3< 2 986 fetchmail: POP3< . fetchmail: POP3> RETR 1 fetchmail: POP3< +OK 2077 octets reading message 1 of 2 (2077 octets) fetchmail: SMTP< 220 knorkator.home ESMTP Exim 3.12 #1 Tue, 22 Feb 2000 14:22:53 +0100 fetchmail: SMTP> EHLO localhost fetchmail: SMTP< 250-knorkator.home Hello mail at localhost fetchmail: SMTP< 250-SIZE fetchmail: SMTP< 250-PIPELINING fetchmail: SMTP< 250 HELP fetchmail: SMTP> MAIL FROM:<owner-debian-user-de@lehmanns.de > SIZE=2077 fetchmail: SMTP< 250 <owner-debian-user-de@lehmanns.de > is syntactically correct fetchmail: SMTP> RCPT TO:<karl@knorkator.home> fetchmail: SMTP< 250 <karl@knorkator.home> is syntactically correct fetchmail: SMTP> DATA fetchmail: SMTP< 354 Enter message, ending with "." on a line by itself

17.7 Konguration von Netzdiensten


#***************************fetchmail: SMTP>. (EOM) fetchmail: SMTP< 250 OK id=12NFHB-0005ld-00 flushed fetchmail: POP3> DELE 1 fetchmail: POP3< +OK Message 1 has been deleted.

693

Im oberen Teil dieser Ausgabe wird angezeigt, dass fetchmail Kontakt mit dem Server pop.coldmail.com aufnimmt und sich dort mit dem Benutzernamen karl.meier anmeldet. Danach fragt es den Server, wieviele Nachrichten fr diesen Benutzer vorliegen. Im Beispiel sind dies zwei Nachrichten. Nun wird die erste Mail abgeholt (reading message 1 of 2) und dann eine SMTP-Verbindung zum lokalen MTA (knorkator.home) aufgebaut. Dem MTA wird die Mail bergeben. Als Absender wird dabei die Original-Absenderadresse und als Empfnger die lokale Email-Adresse des Benutzers (karl@knorkator.home) angegeben. Nachdem der MTA besttigt hat, dass er die Mail entgegengenommen hat, wird sie auf dem POP-Server beim Provider gelscht. Dieser Vorgang wird fr alle Mails wiederholt, die beim Provider lagern. Wenn die Ausgabe von fetchmail nicht auf Fehler schlieen lsst, ist als nchstes die Log-Datei des MTAs zu berprfen, im Fall von exim also /var/log/exim/mainlog. Am Ende der Datei bendet sich nach der Zustellung sinngem folgender Eintrag:
2000-02-22 14:22:53 12NFHB-0005ld-00 <= owner-debian-user-de@lehmanns.de H=localhost [127.0.0.1] U=mail P=esmtp S=2360 id=00022211024700.00913@localhost.localdomain 2000-02-22 14:22:53 12NFHB-0005ld-00 => karl <karl@knorkator.home> D=localuser T=local_delivery 2000-02-22 14:22:53 12NFHB-0005ld-00 Completed

Es wird angezeigt, dass exim eine Mail von owner-debian-user-de@lehmanns.de entgegengenommen und diese an karl@knorkator.home ausgeliefert hat. Falls der entsprechende Eintrag in dieser Datei nicht vorhanden ist, ist in den Dateien /var/log/exim/rejectlog bzw. /var/log/exim/paniclog nach dem Fehler zu suchen. Automatisches Abholen der Mail Mit dem oben gezeigten Verfahren kann jeder Benutzer seine Mail von einem oder mehreren Providern abholen, dem lokalen MTA bergeben und diese dann mit dem Email-Programm seiner Wahl lesen. Bequemer und einfacher ist es, die Mail fr alle Benutzer automatisch von allen Mail-Providern abzuholen, sobald eine Internet-Verbindung aufgebaut ist. Dazu sollte eine globale Kongurationsdatei fr fetchmail angelegt werden, in der sich die Konguration fr alle Benutzer bendet. Diese Datei kann unter dem Namen /etc/fetchmailrc gespeichert werden. Sie ist genauso aufgebaut wie die Datei .fetchmailrc im Home-Verzeichnis eines Benutzers:

694

17 Debian GNU/Linux im Netz

set syslog set postmaster "postmaster" set daemon 600 poll pop.coldmail.com with proto POP3 user "karl.meier" there with password "seisdrum" is karl here user "suse254" there with password "sagnich" is susanne here user "ralf.schulze" there with password "foobar" is ralf here poll imap.slowmail.de with proto IMAP user "juergenZ" there with password "bart" is joe here poll pop.mymail.com with proto POP3 user "meier25" there with password "hmmpf" is karl here

Mit dieser Kongurationsdatei wird Mail fr die drei Benutzer karl, susanne und ralf vom Provider pop.coldmail.com abgeholt. Die Mail fr den Benutzer joe wird vom Server imap@slowmail.de bezogen. Der Benutzer karl hat einen zweiten MailProvider (pop.mymail.com), von dem ebenfalls Mail abgeholt wird. Die Option set syslog bewirkt, dass die Ausgaben von fetchmail an den SyslogDmon weitergeleitet werden und deswegen in der Datei /var/log/messages erscheinen. Mit set daemon 600 wird erreicht, dass fetchmail sich nicht beendet, nachdem es einmal Mail von dem angegebenen Server abgeholt hat, sondern im Hintergrund weiterluft und alle 600 Sekunden erneut versucht, Mail abzuholen. Aus Sicherheitsgrnden darf die Datei /etc/fetchmailrc nur fr ihren Besitzer lesbar sein (immerhin benden sich in der Datei die Benutzernamen und Passwrter der einzelnen Benutzer bei ihren Mail-Providern). debian:~# chmod a-rwx,u=rw /etc/fetchmailrc Nun mssen zwei kleine Skripte erstellt werden, mit denen fetchmail gestartet wird, wenn ein Verbindungsaufbau stattgefunden hat bzw. beendet wird, wenn die Verbindung wieder abgebaut wurde. Das Startskript muss im Verzeichnis /etc/ppp/ipup.d abgelegt werden. Es knnte den Namen W20fetchmail tragen:
#!/bin/sh # Skript zum automatischen Starten von fetchmail # nach einem Verbindungauf ber PPP (Modem oder ISDN) test -r /etc/fetchmailrc && \ fetchmail - -fetchmailrc /etc/fetchmailrc

Mit der test-Anweisung wird zunchst berprft, ob die Datei /etc/fetchmailrc existiert. Falls ja, wird fetchmail aufgerufen. Die Option - -fetchmailrc gibt dem Programm an, welche Kongurationsdatei zu verwenden ist. Aufgrund der oben gezeigten Kongurationsdatei wird fetchmail nun alle zehn Minuten versuchen, Mail abzuholen, weswegen bei einer Dial-On-DemandKonguration alle zehn Minuten eine Netzverbindung aufgebaut werden wrde. Wenn dies nicht gewnscht ist, muss fetchmail nach Beendigung der Verbindung ebenfalls beendet werden. Dies geschieht mit folgendem Skript. Es muss im Verzeichnis /etc/ppp/ip-down.d gespeichert werden und knnte den Namen B20fetchmail bekommen:

17.7 Konguration von Netzdiensten


#!/bin/sh # Skript zur automatischen Beendigung von fetchmail # Nach Abbau der Internetverbindung test -x /usr/bin/fetchmail && \ fetchmail -q

695

Das Skript ist genauso aufgebaut wie das Startskript. Mit dem Parameter -q wird ein laufender fetchmail-Prozess des aufrufenden Benutzers beendet. Beide Skripte mssen ausfhrbar sein, damit sie aufgerufen werden: debian:~# chmod a+x /etc/ppp/ip-up.d/W20fetchmail /etc/ppp/ip-down.d/B20fetchmail Weitere Informationen zu fetchmail Das Paket kommt mit einer ausfhrlichen Manualseite. Zustzlich bendet sich unter /usr/share/doc/fetchmail/FAQ.gz eine Sammlung von Antworten auf hug gestellte Fragen. Einige weitere Hinweise sind im Mail-Administrator-HOWTO sowie im Mail-HOWTO enthalten. 17.7.7 Network File System (NFS) Das Network File System (NFS) ermglicht, Datentrger oder Verzeichnisse, die sich auf einem anderen Rechner im Netz benden, so zu benutzen, als wrde es sich um lokale Datentrger oder Verzeichnisse handeln. Ressourcen wie HomeVerzeichnisse, Mailspool-Verzeichnisse oder Software brauchen sich dann nur auf einem Rechner im Netz zu benden und knnen von allen anderen Rechnern genutzt werden. Durch dieses Verfahren lsst sich Speicherplatz sparen und die Datensicherung vereinfachen. Auerdem werden Benutzer unabhngig von ihren persnlichen Rechnern, weil sie von berall auf dieselben Daten zugreifen knnen. Das NFS wird oft in Verbindung mit NIS siehe nchster Abschnitt eingesetzt. Ein NFS-Server stellt Verzeichnisse im Netz zur Verfgung, NFS-Klienten hngen sie in ihr lokales Dateisystem ein. Der Benutzer bemerkt kaum einen Unterschied zwischen lokalen und entfernten Verzeichnissen. Voraussetzung fr die Nutzung von NFS als Klient ist ein Kern, der NFS untersttzt (siehe Kapitel 11). Die NFS-Untersttzung ist im Standardkern in Form eines Moduls enthalten, das bei Bedarf automatisch geladen wird. Die fr einen NFS-Klienten bentigten Programme sind im Paket nfs-common enthalten. Zum Aufbau eines NFS-Servers stehen zwei Verfahren zur Auswahl. Im Paket nfs-server sind Programme enthalten, mit denen ein NFS-Server eingerichtet werden kann, der ausschlielich durch normale Benutzer-Programme implementiert wird und deswegen keine besonderen Fhigkeiten des Kerns voraussetzt. Dieser Server ist relativ langsam, bietet jedoch ein hohes Ma an Flexibilitt. Sein grter Nachteil besteht darin, dass er kein File-Locking untersttzt. Darunter wird das Sperren einer Datei durch ein Programm fr den Zugriff durch andere Programme verstanden. Diese Fhigkeit wird von vielen Programmen bentigt, wenn sie mit Dateien arbeiten, die sich auf einem NFS-Server benden.

696

17 Debian GNU/Linux im Netz

Alternativ kann das Paket nfs-kernel-server benutzt werden. Dazu wird ein Kern bentigt, der mit der Option NFS Kernel Server erstellt wurde, wie es bei den Standardkernen der Fall ist. Der eigentliche NFS-Server ist dann Teil des Kerns. Im Paket nfs-kernel-server sind lediglich die Programme sowie die Infrastruktur enthalten, die bentigt wird, um diesen Server zu betreiben. Der Kern-Server ist schneller als der normale NFS-Server und untersttzt File-Locking. Zur Zeit sind die NFSVersionen 2 und 3 verfgbar, an Version 4 wird gearbeitet. Aktuelle Informationen und Hilfen zum Kern-Server nden Sie unter http://nfs.sourceforge. net/. Die im Folgenden beschriebenen Prozeduren zur Einrichtung des NFS-Servers gelten sowohl fr den Kern-Server als auch fr den Standard-Server. Dateibesitzer, Rechte und NFS Dateien und Verzeichnisse stehen mit NFS auf einem Klientrechner mit den gleichen Attributen zur Verfgung wie auf dem Server. Das betrifft zum einen die eigentlichen Rechte (Lesen, Schreiben, Ausfhren usw.), zum anderen den Besitzer und die Gruppe, genau gesagt deren IDs. Die IDs werden mit Hilfe der lokalen Datei /etc/passwd in Namen umgesetzt, die anders lauten knnen als auf dem Server. Es ist deswegen nur dann sinnvoll, Verzeichnisse ber NFS zu verteilen, wenn Benutzer und Benutzer-IDs sich zwischen Klient- und Serversystemen nicht unterscheiden. Etwas anders sieht dies bei solchen Verzeichnissen aus, in denen sich nur Dateien benden, die dem Verwalter gehren, etwa Verzeichnissen mit Programmdateien wie /usr oder /opt. Die Benutzer-ID des Verwalters ist auf allen Linux/UNIXSystemen Null, sodass gewhrleistet ist, dass solche Verzeichnisse und Dateien auch auf dem Klientsystem dem Verwalter gehren. Einrichtung des NFS-Servers Der NFS-Server wird ber die Datei /etc/exports konguriert. In jeder Zeile wird ein Verzeichnis angegeben, das anderen Rechnern per NFS zur Verfgung gestellt werden soll. Dahinter werden die Namen oder IP-Adressen der Rechner angegeben, die berechtigt sind, das entsprechende Verzeichnis einzubinden. Die Datei darf auerdem leere Zeilen und Kommentar enthalten. Ein Beispiel fr eine einfache Datei /etc/exports:
# /etc/exports # Exportiert die Home-Verzeichnisse unter /home # sowie das Verzeichnis /opt /home verwaltung rechnungswesen1 buchhaltung /opt ws1 ws2 ws3 ws4

Durch die beiden Anweisungen in der Datei wird das Verzeichnis /home fr die Rechner verwaltung, rechnungswesen1 und buchhaltung freigegeben (exportiert). Das Verzeichnis /opt kann von den Rechnern ws1 bis ws4 eingebunden werden. Um mehrere Rechner gleichzeitig zu spezizieren, knnen die Metazeichen * und ? benutzt werden, auerdem IP-Netzadressen und Netzmasken:

17.7 Konguration von Netzdiensten


/home *.firma.de /opt 192.168.10.0/255.255.255.0

697

Mit der ersten Zeile wird allen Rechnern, deren voll qualizierter Name mit rma.de endet, erlaubt, das Verzeichnis /home einzubinden. Die zweite Zeile gibt das Verzeichnis /opt fr alle Rechner frei, die sich im Netz mit der IP-Adresse 192.168.10.0 benden. Optionen Mit einigen Optionen lsst sich das Verhalten des NFS-Server beeinussen. Die Optionen beziehen sich immer auf ein Verzeichnis-Rechner-Paar. Sie sind in Klammern und durch Kommata voneinander getrennt hinter dem Namen des Rechners anzugeben: /home rechner1(option1,option2) rechner2(option3) Die wichtigsten Optionen sind: rw Der Rechner darf das Verzeichnis zum Lesen und Schreiben einbinden. Dies ist die Voreinstellung bei dem Standard-NFS-Server. ro Der Rechner darf das Verzeichnis nur zum Lesen einbinden. Dies ist die Voreinstellung beim Kern-NFS-Server. no_root_squash Die Eigentmer- und Gruppenattribute von Dateien sind normalerweise auf dem NFS-Klienten dieselben wie auf dem NFS-Server. VerwalterAttribute werden jedoch aus Sicherheitsgrnden nicht durchgereicht. Dateien, die auf dem Server dem Verwalter gehren, erhalten auf den Klientsystemen eine ungefhrliche Benutzer-ID (nobody). Mit der Option no_root_squash lsst sich dieses Verhalten abschalten. nohide Diese Option gilt nur fr den Kern-NFS-Server. Wenn von einem Klienten ein Verzeichnis eingebunden wird, in dessen Unterverzeichnisse auf dem Server weitere Verzeichnisse eingebunden sind, steht der Inhalt dieser verketteten Verzeichnisse standardmig auf den Klienten nicht zur Verfgung. Die Option schaltet auch die verketteten Verzeichnisse frei. Bei dem Standardserver werden die verketteten Verzeichnisse automatisch freigeschaltet. Um das Verzeichnis /home fr alle Rechner in der Domne rma.de mit Schreibund Leserechten freizugeben und gleichzeitig die automatische Umsetzung der Benutzer-ID des Systemverwalters abzuschalten, ist folgender Eintrag in der Datei /etc/exports zu verwenden: /home *.firma.de(rw,no_root_squash) Weitere Hinweise zur Datei /etc/exports nden Sie in der Manualseite exports/. Nach einer Vernderung der Datei ist der NFS-Server zu benachrichtigen, damit er sie neu einliest. Bei Verwendung des Standard-Servers: debian:~# /etc/init.d/nfs-server reload und bei Verwendung des Kern-Servers entsprechend: debian:~# /etc/init.d/nfs-kernel-server reload

698

17 Debian GNU/Linux im Netz

Einbinden von exportierten Verzeichnissen Nach dem der NFS-Server eingerichtet ist, werden exportierte (freigegebene) Verzeichnisse wie lokale Datentrger mit dem Kommando mount (S. 835) eingebunden. Im Unterschied zu lokalen Datentrgern ist dabei keine Gertedatei anzugeben, sondern der Name des NFS-Servers, gefolgt von einem Doppelpunkt und dem Namen des exportierten Verzeichnisses auf dem Server. Fr den Dateisystemtyp ist nfs anzugeben: debian:~# mount -t nfs fileserver:/home /mnt Mit diesem Kommando wird das Verzeichnis /home, das sich auf dem Rechner leserver bendet, in das lokale Verzeichnis /mnt eingebunden. Bei Server und Klient darf es sich auch um denselben Rechner handeln, Sie knnen den Vorgang auch testen, wenn Sie nur einen Rechner zur Verfgung haben. Wenn das Einbinden fehlschlgt, sollte berprft werden, ob das Verzeichnis auf dem Server tatschlich fr den Rechner freigegeben ist, der es einbinden soll, und ob auf dem Klientrechner die Untersttzung fr NFS-Dateisysteme im Kern vorhanden ist. Zum Einbinden von NFS-Dateisystemen stehen eine Reihe von mount-Optionen zur Verfgung, mit denen sich die Geschwindigkeit des Datenaustausches zwischen Klient und Server optimieren lsst: nolock Es wird kein File-Locking benutzt. Sie sollten die Option benutzen, wenn der Server kein File-Locking untersttzt. hard Wenn ein Prozess auf eine Datei zugreift, die sich auf dem Server bendet und der Server nicht verfgbar ist, wird so lange gewartet, bis der Server wieder zur Verfgung steht. Dies kann dazu fhren, dass die entsprechende Anwendung so lange hngt, bis der Server wieder da ist. intr Ermglicht es, Programme zu unterbrechen oder zu beenden, die auf einen NFS-Server warten. soft Wenn der Server nicht zur Verfgung steht, wird nach einer Zeit ein Timeout generiert und hngenden Anwendungen mitgeteilt, dass die Dateien nicht mehr verfgbar sind. Die meisten Anwendungen knnen mit dieser Situation nicht umgehen, weshalb es in der Regel besser ist, die Option hard zu verwenden. Die Zeitspanne bis zum Timeout wird mit timeo=Zeit. angegeben. rsize=Bytes Gibt mit Bytes die Blockgre beim Lesen an. Voreinstellung ist 1024 Bytes. wsize=Bytes Gibt mit Bytes die Blockgre beim Schreiben an. Voreinstellung ist ebenfalls 1024 Bytes. Die Optionen rsize= und wsize= sollten in den meisten Fllen angepasst werden, um die Geschwindigkeit zu erhhen. Sinnvoll ist der Wert 4096 fr beide Optionen. Mountoptionen werden dem mount-Kommando mit dem Parameter -o bergeben. Zum Einbinden eines Verzeichnisses, das von dem standardmigen NFS-Server zur Verfgung gestellt wird, empehlt es sich, folgende Kommandozeile zu verwenden:

17.7 Konguration von Netzdiensten

699

debian:~# mount -t nfs -o nolock,rsize=4096,wsize=4096 fileserver:/home /mnt Damit das Dateisystem beim Hochfahren des Rechners automatisch eingebunden wird, ist es in die Datei /etc/fstab einzutragen: fileserver:/home /home nfs defaults,rsize=4096,wsize=4096,intr 0 0 In diesem Beispiel wird das Verzeichnis /home des Servers leserver in das lokale Verzeichnis /home eingebunden. Sicherheitsaspekte Das NFS-Konzept geht davon aus, dass Server und Klient sich gegenseitig vertrauen. Von einem Rechner, der ein Verzeichnis ber NFS einbindet, knnen alle Dateien in dem entsprechenden Verzeichnis verndert und gelscht werden. Eine gewisse Sicherheitsvorkehrung gibt es zwar fr solche Dateien, die dem Systemverwalter gehren, der Verwalter des Klient-Systems kann aber die Benutzer-IDs aller anderen Benutzer annehmen und dann die Dateien aller anderen Benutzer auf dem Server verndern. Die Authentizierung ndet nicht auf dem Server, sondern auf dem Klienten statt. NFS ist ungeeignet, solchen Rechnern Daten zur Verfgung zu stellen, denen man nicht vertraut. Hier bietet es sich eher an, ein anderes Protokoll wie FTP oder HTTP zu verwenden. Wenn ein Klientrechner ein Verzeichnis ber NFS mounten will, spricht er das Serverprogramm portmap auf dem Serverrechner an. Dieses Programm lsst sich ebenso wie die durch das Programm tcpd gesicherten Server mit Hilfe der Dateien /etc/hosts.allow und /etc/hosts.deny absichern. Es wird allerdings nicht nur fr NFS, sondern auch fr andere Serverdienste (NIS) gebraucht. Trotzdem sollten Sie den Zugriff auf dieses Programm mit Hilfe der beiden Dateien so weit wie mglich einschrnken. Beispielsweise knnen Sie den Zugriff in der Datei /etc/hosts.deny mit der folgenden Zeile grundstzlich verbieten: portmap: ALL Und ihn dann in der Datei /etc/hosts.allow fr die Rechner in Ihrem Netz wieder erlauben (Netzadresse und -maske sind anzupassen): portmap: 192.168.10.0/255.255.255.0 So wie ein NFS-Server auf die Authentizierung durch die Klientrechner vertraut, vertrauen die Klientrechner dem Server. Auf einem ber NFS eingebundenen Verzeichnis knnen sich Programme benden, die mit Rootrechten ausgefhrt werden (Set-User-ID-Bit gesetzt). Wenn diese Programme auf dem Klientrechner ausgefhrt werden, knnen sie dort alles tun, was sonst nur der Verwalter darf. Mit der mount-Option nosuid wird erreicht, dass das Set-User-ID-Bit von Dateien auf dem entsprechenden Datentrger nicht beachtet wird. In jedem Fall sollten Dateisysteme nur von solchen Servern eingebunden werden, denen vertraut wird. Verschlsselt wird bei NFS nichts. Es ist geeignet fr lokale, berschaubare Netze.

700

17 Debian GNU/Linux im Netz

17.7.8 Network Information Service (NIS) Der Network Information Service (NIS) ist in kleinen Netzen eine fast notwendige Ergnzung zu NFS. Wenn man schon Verzeichnisse auf einem zentralen NFS-Server hlt, ist es zweckmig und logisch, auch die Benutzerverwaltung und einige weitere Verwaltungsaufgaben zu zentralisieren. Das liee sich mit ein paar Shellskripts und dem cron-Dmon zwar bewerkstelligen, aber die bessere Lsung ist bereits erfunden und hie frher Yellow Pages. Aus markenrechtlichen Grnden musste sie in Network Information Service (NIS) umbenannt werden. Die Namen der meisten Kommandos beginnen jedoch nach wie vor mit yp. NIS stellt einen Mechanismus zur Verfgung, mit dem Informationen aller Art auf einem Server in ein datenbankhnliches Format gebracht werden und von Klienten im Netz abgefragt werden knnen. In der Praxis wird es fr Informationen benutzt, die sich im Verzeichnis /etc benden, vor allem in den Dateien /etc/passwd und /etc/group. NIS ist fester Bestandteil der C-Laufzeitbibliothek; es kann deswegen von allen Programmen, welche auf diese Informationen zugreifen, automatisch genutzt werden. NIS hat ein paar Schwchen, die zum Teil sicherheitsrelevant sind. Deswegen wurde ein Nachfolger mit dem Namen NISplus entwickelt, der diese Schwchen berwindet. NISplus steht fr Linux zur Zeit noch nicht zur Verfgung. Mglicherweise geht die Entwicklung in eine andere Richtung auf die Linux Directory Services zu, die mehrere Dienste in einem sicheren Konzept vereinen, siehe http://www.rage.net/ldap/ und http://www.openldap.org/. Wie NFS ist NIS nur fr lokale, berschaubare Netze zu empfehlen. Der Rechner, der anderen Rechnern Informationen zur Verfgung stellt, wird als NIS-Server bezeichnet, und ein Rechner, der Informationen von einem NIS-Server bezieht, als NIS-Klient. Die Menge aller Rechner, die von einem gemeinsamen NISServer verwaltet werden, bildet eine NIS-Domne oder einen NIS-Cluster. Neben dem NIS-Server, auf dem die Originale der gemeinsamen Verwaltungsdaten gepegt werden dem Master-Server drfen sich in einer NIS-Domne beliebig viele Slave-Server bettigen, die ihre Daten vom Master beziehen. Der Einsatz von SlaveServern stellt zum einen sicher, dass Informationen auch dann noch verfgbar sind, wenn der Master ausgefallen ist, zum anderen lsst sich dadurch die Last auf mehrere Server verteilen. Jeder NIS-Server ist zugleich NIS-Klient. Ein Klient bindet sich an den Server, der ihm als erster antwortet. Um NIS benutzen zu knnen, muss auf Master-, Slave- und Klientrechnern das Paket nis installiert werden. In dem Paket ist die Datei /usr/share/doc/nis.debian.howto.gz enthalten, in der die Einrichtung von NISServern und -Klienten beschrieben ist. Weitere Informationen ber NIS unter Linux nden Sie unter der Web-Adresse http://www.linux-nis.org/ Nach der Installation des NIS-Pakets werden Sie nach dem Namen Ihrer NIS-Domne gefragt. Dabei handelt es sich um einen Namen, ber den NISKlienten sicherstellen, dass sie mit dem richtigen NIS-Server kommunizieren. NISDomnennamen sind von DNS-Domnennamen zu trennen. Es ist mglich, innerhalb einer DNS-Domne mehrere NIS-Domnen einzurichten oder NIS-Domnen

17.7 Konguration von Netzdiensten

701

aufzubauen, in denen sich Rechner aus unterschiedlichen DNS-Domnen benden. Die beiden Domnenarten sind vllig unabhngig vorneinander. Wenn Sie nis installieren, um Ihr System als NIS-Klienten einzurichten, mssen Sie den Namen der NIS-Domne angeben, mit deren Servern Ihr NIS-Klient kommunizieren soll. Fall Sie einen NIS-Server einrichten wollen, knnen Sie sich einen eindeutigen NIS-Domnennamen ausdenken (verwaltung oder theophys). Der NISDomnenname wird in der Datei /etc/defaultdomain gespeichert und kann bei Bedarf gendert werden. Einrichtung eines NIS-Master-Servers Nach der Installation des Pakets ist etwas Handarbeit notwendig, um den Rechner als NIS-Server zu kongurieren. In der Datei /etc/init.d/nis wird angegeben, ob der Rechner als Master, Slave oder Klient arbeiten soll. Lokalisieren Sie dort die Zeile, in der die Variable NISSERVER gesetzt wird, und setzen Sie diese auf master: NISSERVER=master In der Datei /etc/ypserv.securenets wird festgelegt, aus welchen IP-Netzen heraus auf Ihren NIS-Server zugegriffen werden kann. Aus Sicherheitsgrnden sollten hier ausschlielich die Netze und Rechner eingetragen sein, denen der Zugriff wirklich gestattet werden soll. Angaben in dieser Datei werden in der Form Netzmaske Rechner vorgenommen. Um den Rechnern mit den IP-Adressen 192.168.10.1 bis 192.168.10.254 den Zugriff zu ermglichen, ist folgende Zeile in der Datei erforderlich: 255.255.255.0 192.168.10.0 Standardmig bendet sich in der Datei diese Zeile: 0.0.0.0 0.0.0.0 Damit wird allen Rechnern Zugriff auf Ihren NIS-Server gestattet. Diese Zeile sollten Sie unbedingt auskommentieren! Wenn Sie Schattenpasswrter (shadow) verwenden, mssen Sie die Datei /var/yp/Makele ndern. Lokalisieren Sie in der Datei den folgenden Abschnitt:
all: passwd group hosts rpc services netid protocols netgrp networks # shadow publickey mail ethers bootparams printcap amd.home auto.master auto.home passwd.adjunct

Lschen Sie das Kommentarzeichen (#) hinter networks und fgen Sie es hinter shadow wieder ein. Wenn Sie neben dem Master-Server auch Slave-Server einsetzen, ist in derselben Datei (/var/yp/Makele) die folgende Zeile zu lokalisieren: NOPUSH=true

702

17 Debian GNU/Linux im Netz

Das Wort true ist durch false zu ersetzen. Dadurch wird erreicht, dass der Master den Slave-Servern neue Versionen seiner Datenbanken zur Verfgung stellt, wenn diese sich gendert haben. Im nchsten Schritt wird die NIS-Datenbank erzeugt. Dazu ist folgendes Kommando einzugeben: debian:~# /usr/lib/yp/ypinit -m Daraufhin werden Sie nach dem DNS-Rechnernamen des NIS-Servers gefragt. Als Vorgabewert sollte dabei der Rechnername Ihres Rechners angezeigt werden. Besttigen Sie diesen Wert mit E INGABE. Danach mssen Sie die Namen etwaiger Slave-Server angeben. Wenn Sie fertig sind, beenden Sie die Eingabe mit der Tastenkombination S TRG - D. Danach werden die Servernamen nochmals angezeigt, und es erscheint eine Abfrage, ob Sie mit der Angabe zufrieden sind. Besttigen Sie dies mit E INGABE. Nun werden die Dateien erzeugt. Der NIS-Server sollte nun einsatzbereit sein und kann mit folgendem Kommando erneut gestartet werden: debian:~# /etc/init.d/nis restart Die Informationen, die der NIS-Server anderen Rechnern zur Verfgung stellt, benden sich in den Dateien unterhalb des Verzeichnisses /var/yp. Sie werden nicht automatisch mit den Dateien synchronisiert, aus denen sie erstellt wurden (/etc/passwd, /etc/group usw.). Wenn sich die Information in den Ursprungsdateien ndert, mssen Sie die Datenbank neu erzeugen, um beide in Einklang zu bringen. Dies ist der Fall, wenn Sie dem Server einen neuen Benutzer hinzugefgt haben. Hierzu ist das Kommando make im Verzeichnis /var/yp auszufhren: debian:~# cd /var/yp; make; cd Dieser Vorgang lsst sich automatisieren. Legen Sie dazu die Datei /etc/cron.d/nis mit folgendem Inhalt an:
# Synchronisation der NIS-Datenbank 0 3 * * * root cd /var/yp; make 1>/dev/null

Der Eintrag bewirkt, dass die Informationen in jeder Nacht um 3.00 Uhr synchronisiert werden. Einrichtung eines NIS-Klienten Wenn Sie bei der Installation des NIS-Paketes den richtigen NIS-Domnennamen angegeben haben, sollte der Klient sofort funktionsfhig sein. Ansonsten mssen Sie die Einstellung in der Datei /etc/defaultdomain anpassen. Standardmig wird bei NIS versucht, den jeweils schnellsten NIS-Server im lokalen Netz zu verwenden, der fr die eigene NIS-Domne zustndig ist. Sollte sich der NIS-Server nicht in Ihrem lokalen Netz benden, wird er nicht automatisch erkannt. Sie mssen ihn dann in der Datei /etc/yp.conf eintragen. Durch die explizite Angabe eines Servers in dieser

17.7 Konguration von Netzdiensten

703

Datei wird auch eine Sicherheitslcke gestopft. Ihr Rechner verwendet dann nicht mehr den schnellsten NIS-Server, sondern den explizit angegebenen. Beispiel: ypserver nis.firma.de Danach mssen Sie NIS neu starten: debian:~# /etc/init.d/nis restart Nun knnen Sie testen, ob der NIS-Server gefunden wurde. Geben Sie folgendes Kommando ein: joe@debian:~$ ypwhich Es sollte dann der Name des NIS-Servers ausgegeben werden. Wenn dies nicht der Fall ist, berprfen Sie, ob die NIS-Domnennamen bei Klient und Server bereinstimmen, ob der Klient auf den NIS-Server zugreifen darf (Datei /etc/ypserv.securenets auf dem Server) und ob sich Server und Klient im selbenen Netz benden. Natrlich muss auch die Netzverbindung zwischen beiden Rechnern funktionieren (mit ping (S. 845) prfen). Nachdem die Kommunikation zwischen Klient und Server funktioniert, kann konguriert werden, welche Informationen der Klientrechner von dem Server beziehen soll. Dies geschieht in der bereits bekannten Datei /etc/nsswitch.conf. Hier wird angegeben, mit welchem Verfahren bestimmte Informationen bezogen werden. Die Einstellungen fr Benutzer- und Gruppeninformationen sowie fr Schattenpasswrter benden sich in den Zeilen, die mit passwd:, group: und shadow: beginnen. Standardmig bendet sich dort folgende Einstellung:
passwd: group: shadow: compat compat compat

Das Schlsselwort compat5 bewirkt, dass diese Informationen aus den Dateien /etc/passwd, /etc/group und /etc/shadow bezogen werden. Durch spezielle Eintrge in diesen Dateien kann erreicht werden, dass NIS benutzt wird. Diese Eintrge bestehen jeweils aus dem Plus-Zeichen und leeren Feldern. Beispielsweise lsst sich die Benutzung von NIS fr Benutzerinformationen durch folgende Zeile erreichen: +:::::: Der Datei /etc/group ist diese Zeile hinzuzufgen: +::: Und bei Verwendung von Schattenpasswrtern ist diese Zeile in die Datei /etc/shadow aufzunehmen: +::::::::

Mit compat ist die Kompatibilitt zu einer lteren Version der C-Bibliothek gemeint.

704

17 Debian GNU/Linux im Netz

Die unterschiedliche Anzahl der Doppelpunkt-Zeichen ergibt sich aus der Zahl der Felder in diesen Dateien. Diese Dateien sollten ausschlielich mit den Kommandos vipw (S. 884) und vigr (S. 883) bearbeiten werden. Die genannten Eintrge mssen sich am Ende der Dateien benden. Dadurch wird erreicht, dass zunchst die lokal in den Dateien vorhandene Information benutzt wird und erst danach NIS. Es ist auch mglich, einzelne Felder zu berschreiben oder bestimmte Informationen explizit nicht mit NIS zu beziehen. Wenn die Informationen ber alle Benutzer mit Ausnahme des Benutzers karl per NIS bezogen werden sollen und der Benutzer egon die Shell /bin/ksh erhalten soll, obwohl in der NIS-Datenbank etwas anderes eingetragen ist, lsst sich das durch folgende Eintrge in der Datei /etc/passwd erreichen:
-karl:::::: +egon::::::/bin/ksh +::::::

Alternativ zu dem compat-Verfahren knnen Sie die folgenden Einstellungen in der Datei /etc/nsswitch verwenden:
passwd: group: shadow: files nis files nis files nis

Dadurch wird erreicht, dass zur Erlangung der entsprechenden Informationen immer zunchst die lokalen Dateien benutzt werden und wenn eine Information dort nicht vorhanden ist dann versucht wird, die Information ber NIS abzufragen. Die Dateien /etc/passwd, /etc/group und /etc/shadow brauchen dann nicht gendert zu werden. Sie knnen die Einstellungen testen, indem Sie sich am NIS-Server mit einem Benutzernamen anmelden, der auf dem Server deniert ist und in der lokalen Datei /etc/passwd fehlt. Dann werden alle Informationen zu dem Benutzerkonto vom NIS-Server bezogen, also auch das Home-Verzeichnis des Benutzers oder die LoginShell. Das Verzeichnis muss auf dem Klienten vorhanden sein. Dies wird dadurch erreicht, dass die Home-Verzeichnisse per NFS eingebunden werden. Einrichtung eines NIS-Slave-Servers Ein NIS-Slave-Server wird zunchst als Klient eingerichtet. Wenn das funktioniert, sind zustzlich folgende Schritte durchzufhren: Wie bei der Einrichtung eines NIS-Server sollte die Datei /etc/ypserv.securenets angepasst werden, um den Zugriff auf den NIS-Slave einzuschrnken. In der Datei yp.conf sollte kein NIS-Server eingetragen sein. Starten Sie NIS neu: debian:~# /etc/init.d/nis/restart Nun mssen die Datenbanken vom Master-Server auf den Slave bertragen werden. Dies geschieht durch folgendes Kommando:

17.7 Konguration von Netzdiensten

705

debian:~# /usr/lib/yp/ypinit -s masterserver Dabei ist masterserver durch den Namen des Master-Servers zu ersetzen. Nun testen Sie, ob der Rechner sich selbst als NIS-Server benutzt: debian:~# ypwhich Es sollte der Name des Slaves ausgegeben werden. Falls weiterhin der Name des Master-Servers angezeigt wird, warten Sie zunchst eine Viertelstunde und versuchen Sie es dann noch mal. Wenn der Rechner dann immer noch den Master benutzt, mssen Sie die Konguration berprfen. Vergewissern Sie sich auch, dass Sie den Slave bei der Einrichtung des Masters angegeben haben. Danach kann der Slave getestet werden, in dem der NIS-Dienst auf dem MasterServer beendet und dann versucht wird, eine Benutzeranmeldung am Slave vorzunehmen, wobei ein Benutzerkonto verwendet wird, dass nicht in der lokalen Datei /etc/passwd, sondern nur auf dem NIS-Master deniert ist. Arbeiten mit NIS NIS ist fr Benutzer transparent. Wenn NIS-Server und -Klienten richtig konguriert sind und die Home-Verzeichnisse sich dort benden, wo sie erwartet werden, knnen sich alle Benutzer, deren Konto auf dem NIS-Server erstellt wurde, an allen NISKlienten mit demselben Benutzernamen und Passwort anmelden. Eine Besonderheit bleibt jedoch zu beachten: Benutzerkonten sollten grundstzlich nur auf dem NIS-Server zugefgt, gendert oder gelscht werden. Wenn eine Datei gendert wurde, deren Inhalt anderen Rechnern via NIS zur Verfgung gestellt wird, ist das Kommando make im Verzeichnis /var/yp auf dem Server erneut auszufhren. Eine Ausnahme von diesem Grundsatz gilt fr die Manipulation von Benutzerkonten mit den Programmen passwd (S. 843), chfn (S. 781) und chsh (S. 784). Im NIS-Paket sind Ersatzprogramme fr diese Programme erhalten, die auf NISKlienten benutzt werden mssen, um die Informationen auf dem Server zu aktualisieren. Die Programme heien yppasswd, ypchsh und ypchfn. Es empehlt sich, die Originalprogramme durch die NIS-Ersatzprogramme zu ersetzen, sodass Benutzer beispielsweise durch Eingabe des Kommandos passwd das Programm yppasswd aufrufen. Dies kann fr passwd mit folgenden Kommandos geschehen: debian:~# dpkg-divert - -add - -rename /usr/bin/passwd debian:~# ln -s /usr/bin/yppasswd /usr/bin/passwd Die beiden Kommandos sind fr die anderen Programme entsprechend zu wiederholen. Die Konguration eines rein lokalen Arbeitsplatzrechners ist berschaubar, ebenso die eines Rechners, der immer auf die Zusammenarbeit mit einem Server angewiesen ist. Mischformen, die sowohl rein lokal arbeiten knnen (wenn der Server

706

17 Debian GNU/Linux im Netz

ausgeschaltet ist) als auch in Verbindung mit einem Server, erfordern etwas Nachdenken ber die Verteilung der Aufgaben und Daten. Denkbar ist eine Konstellation, bei der jeder Benutzer seinen Rechner hat, auf dem er mit oder ohne Server arbeiten kann, und sich im brigen auf jedem Rechner des Clusters anmelden kann und den Teil seines Home-Verzeichnisses vorndet, der auf dem Server liegt. 17.7.9 Drucken im Netz Weil unter Debian GNU/Linux ohnehin ein Server-Programm benutzt wird, das die Verwaltung und Ansteuerung von Druckern bernimmt, ist es einfach, im Netz von anderen Linux/UNIX-Rechnern aus auf einen Drucker zu drucken, der an einen Debian-Rechner angeschlossen ist. Der Programmname des Druckservers lautet lpd (fr Line Printer Daemon). Dazu gehrt ein Klientprogramm, das normalerweise den Namen lpr (Line Printer Remote) trgt und mit welchem dem Druckserver Druckjobs bergeben werden. Zur Zeit stehen mit Debian GNU/Linux drei lpr/lpd-Systeme zur Verfgung, nmlich das klassische BSD-System im Paket lpr, eine verbesserte und erweiterte Version im Paket lprng sowie ein neuartiges Drucksystem im Paket cupsys. Zum Standard hat sich dabei das Paket lprng entwickelt, weswegen hier nur auf dieses Paket eingegangen wird. Nach der Installation des Pakets und der Konguration eines Drucker (z. B. mit magicltercong) knnen alle Rechner im Netz Druckauftrge an den entsprechenden Rechner senden. Dies ist vielleicht zuviel des Guten, weswegen man die Zugriffsmglichkeiten kontrollieren sollte. In der Datei /etc/lpd.perms kann sehr genau konguriert werden, von welchen Rechnern aus welche Aktionen mit dem Druckserver ausgefhrt werden drfen. Dies ist in der Manualseite lpd.perms beschrieben. Um den Zugriff nur von dem eigenen Rechner und solchen Rechnern zu erlauben, die sich im eigenen Netz benden, sind folgende Zeilen in die Datei aufzunehmen:
ACCEPT SERVICE=X IP=127.0.0.1 REJECT SERVICE=X NOT REMOTEIP=192.168.10.0/255.255.255.0

Die IP-Adresse fr das eigene Netz (192.168.10.0) und die Netzmaske (255.255.255.0) sind anzupassen. Nachdem eine Kongurationsdatei des DruckerDmons (lpd) gendert wurde, muss dieser davon benachrichtigt werden, damit er alle Kongurationsdateien neu einliest. Dies geschieht mit diesem Kommando: debian:~# /etc/init.d/lprng reload Konguration eines Klientrechners In der Datei /etc/printcap wird festgelegt, welche Drucker dem System zur Verfgung stehen. Dabei kann es sich um lokal angeschlossene Drucker oder um Drucker handeln, die an einen anderen Rechner angeschlossen sind. In der Version der Datei, die standardmig mit dem Paket lprng installiert wird, bendet sich bereits ein auskommentierter Beispieleintrag zum Drucken auf einen Druckserver. In der Regel

17.7 Konguration von Netzdiensten

707

reicht es aus, die Kommentarzeichen vor dem Eintrag zu entfernen und die entsprechenden Werte anzupassen. Beispiel:
rlp|hp1100|HP Laserjet 1100:\ :lp=:\ :rm=printserver:\ :rp=lp:\ :sd=/var/spool/lpd/remote:\ :mx#0:\ :sh:

In der ersten Zeile benden sich durch -Zeichen getrennt die Namen, unter denen der Drucker lokal angesprochen werden kann, hier rlp, hp1100 und HP Laserjet 1100. Mit lp= wird die Gertedatei angegeben, die den lokalen Anschluss darstellt, an dem sich der Drucker bendet (/dev/lp0 fr die erste parallele Schnittstelle). Weil der Eintrag fr einen Drucker bestimmt ist, der nicht an den lokalen Rechner angeschlossen ist, ist hier kein Wert eingetragen. Durch rm=printserver wird der Name des Rechners angegeben, an den der Drucker angeschlossen ist (printserver). Dieser Eintrag ist entsprechend anzupassen. Mit rp=lp wird der Name des Druckers angegeben, den dieser auf dem Server hat. Wenn auf dem Druckserver sekretariat.rma.de gedruckt werden soll und zwar auf dem Drucker, der dort den Namen (highcolor) hat, dann sind die Werte rm=sekretariat.rma.de und rp=highcolor zu verwenden. Durch den Eintrag mx#0 wird bewirkt, dass unbegrenzt groe Druckjobs in Auftrag gegeben werden drfen. Zum Schluss wird mit sh bewirkt, dass keine Banner-Seiten produziert werden. Mit sd= wird das Spooler-Verzeichnis angegeben, in dem lprng Druckerdateien und Statusinformationen fr diesen Eintrag aufbewahrt. Das Verzeichnis wird automatisch angelegt, wenn lprng neu gestartet wird. Ein Wort zum Format der Datei /etc/printcap: Die Doppelpunkte zu Beginn jeder Zeile werden bentigt, weil die Zeile sonst als Eintrag fr einen neuen Drucker interpretiert werden wrde. Die Doppelpunkte sowie die \-Zeichen am Ende der einzelnen Zeilen sind nicht unbedingt erforderlich, allerdings gibt es einige Programme, die diese Zeichen bentigen, um die Datei richtig interpretieren zu knnen. Die Datei darf leere Zeilen und Kommentare enthalten, die mit einem Doppelkreuz eingeleitet werden. Eine ausfhrliche Beschreibung der Datei steht mit der Manualseite printcap zur Verfgung. Wenn die Datei /etc/printcap fertig editiert ist, muss das Drucksystem neu gestartet werden: debian:~# /etc/init.d/lprng restart Nun kann versucht werden, mit lpr (S. 822) auf den entfernten Drucker zu drucken. Wenn es sich bei dem Drucker um den einzigen lokal eingerichteten Drucker handelt, reicht dazu das Kommando: joe@debian:~$ lpr datei.ps Hierbei ist datei.ps der Namen der zu druckenden Datei. Falls auf dem lokalen System mehrere Drucker in der Datei /etc/printcap konguriert sind, ist der gewnschte Drucker mit der Option -P auszuwhlen:

708

17 Debian GNU/Linux im Netz

joe@debian:~$ lpr -P hp1100 datei.ps wobei hp1100 durch den Namen des Druckers, den er in der Datei /etc/printcap auf dem lokalen System hat, zu ersetzen ist. Wenn es bei diesem Test zu Problemen kommt, ist zunchst zu prfen, ob die Verbindung zu dem Druckserver berhaupt aufgebaut werden konnte (Fehlermeldung: no connect permissions). Wenn nicht, mssen die Berechtigungen auf dem Serversystem in der Datei /etc/lpd.perms angepasst werden. Danach sollte geprft werden, ob dieselbe Datei direkt auf dem Server ausgedruckt werden kann. Wenn dies der Fall ist, dann sollte die Datei /etc/printcap/ auf dem lokalen System berprft werden und das Drucksystem neu gestartet werden. Drucken ber MS-Windows- oder IBM-OS/2-Rechner Vielleicht haben Sie das Problem, dass in Ihrem Netz alle Drucker an MS-WindowsRechner angeschlossen und dort freigegeben sind. Dieses Betriebssystem verwendet zum Drucken ber das Netz ein anderes Protokoll (SMB) und kann deswegen nicht direkt mit lprng benutzt werden. Das Problem lsst sich jedoch mit dem Paket smbclient und einem kleinen Skript lsen. Nach der Installation des Pakets sollten Sie zunchst testen, ob Sie den MSWindows-Rechner, an den der Drucker angeschlossen ist, erreichen knnen. Geben Sie dazu folgendes Kommando ein: joe@debian:~$ smbclient -L Win-Rechner Dabei muss Win-Rechner durch den Namen des entsprechenden MS-WindowsRechners ersetzt werden6. Es sollte eine Ausgabe erscheinen, die ungefhr der folgenden entspricht.
Got a positive name query response from 192.168.0.10 ( 192.168.0.10 ) Password: Sharename --------PRINTER$ HP1100 WINROOT IPC$ Type ---Disk Printer Disk IPC Comment ------Winkistendrucker Remote-IPC

Je nachdem, wie der MS-Windows-Rechner eingerichtet ist, muss ein Passwort angegeben werden, um auf den Rechner zugreifen zu knnen. Wenn Sie die Meldung connection to . . . failed erhalten, mssen Sie smbclient mit zustzlichen Optionen aufrufen oder die Datei /etc/samba/smb.conf anpassen. Beides ist in den entsprechenden Manual-Seiten beschrieben. Wenn der Test das gewnschte Ergebnis hervorbringt, knnen Sie ein Skript anlegen, mit dem ber smbclient auf den MS-Windows-Rechner gedruckt werden
6 Mit Name ist hier der NetBIOS-Name und nicht der IP-Name gemeint. In der Praxis stimmen beide Namen allerdings oft berein.

17.8 Ausgewhlte weitere Netzdienste

709

kann. Dieses Skript wird beispielsweise unter dem Namen /usr/local/bin/winprint gespeichert. Die Werte fr server, service (Druckername) und password sind in dem Skript an die Gegebenheiten anzupassen. Wenn smbclient mit zustzlichen Optionen aufgerufen werden muss, sind diese in das Skript aufzunehmen.
#!/bin/sh server=win-rechner service=hp1100 password="weissnich" # Wenn kein Passwort bentigt wird, # sollte hier password="" stehen. ( echo "print -" cat ) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $server -N -P

Das Skript muss ausfhrbar sein, bevor es aufgerufen werden kann (chmod). Nun knnen Sie den Drucker (z. B. mit magicltercong, siehe S. 9.2.3) so kongurieren, als wrde es sich um einen lokal angeschlossenen Drucker handeln. Geben Sie dabei fr die Gertedatei, welche den Druckeranschluss reprsentiert, irgendeinen Namen an. ffnen Sie danach die Datei /etc/printcap mit einem Texteditor und ndern Sie die Zeile, in der deniert wird, an welchem Anschluss sich der Drucker bendet. Sie sieht sinngem so aus: :lp=/dev/lp0:\ ndern Sie die Zeile folgendermaen: :lp=|/usr/local/bin/winprint Danach muss das Drucksystem neu gestartet werden: debian:~# /etc/init.d/lprng restart Nun sollten Sie in der Lage sein, mit lpr auf dem MS-Windows-Drucker zu drucken. Dem Kommando muss mit dem Parameter -P der lokale Name des Druckers mitgeteilt werden, wenn es sich nicht um den Standarddrucker handelt. Falls es nicht funktioniert, prfen Sie zunchst, ob von anderen MS-Windows-Rechnern aus auf den Rechner gedruckt werden kann. Wenn dies der Fall ist, sind als nchstes die Angaben in dem Skript /usr/local/bin/winprint zu berprfen. Danach sollte die Ausgabe von lpq (S. 821) berprft werden und smbclient manuell aufgerufen werden, um alle Fehlermeldungen analysieren zu knnen.

17.8 Ausgewhlte weitere Netzdienste


17.8.1 Einrichtung des Web-Servers apache Mit dem Web-Serverprogramm apache (http-Dmon) der Apache Software Foundation (http://www.apache.org/) steht unter Debian GNU/Linux der am hu-

710

17 Debian GNU/Linux im Netz

gsten eingesetzte Web-Server zur Verfgung. Das Programm ist in dem Paket apache7 enthalten und wird wie blich mit dem folgenden Kommando installiert: debian:~# apt-get install apache Nach der erstmaligen Installation des Paketes sind einige Fragen zu beantworten. Zunchst ist die Email-Adresse der Person anzugeben, die fr den Server verantwortlich ist und die Benutzer des Servers ansprechen knnen. blicherweise ist der Verwalter eines Web-Servers unter dem Namen webmaster zu erreichen. Wenn Ihr Server den Namen www.rma.de trgt, sollte die Email-Adresse des WebVerantwortlichen webmaster@rma.de lauten. Natrlich muss sichergestellt werden, dass unter der Adresse Mail empfangen werden kann (und gelesen wird).
Enter the email address of your server administrator. This address will be used in error messages allowing users to submit reports of faulty links or misconfigured cgi-programs to you. It should be an email address that corresponds to a human. Who should the ServerAdmin be? [you@your.address] webmaster@firma.de

Der Server besteht aus einem Hauptprogramm und mehreren Modulen. Durch die Module werden hnlich wie beim Kern verschiedene Eigenschaften ergnzt, die nur fr bestimmte Anwendungen bentigt werden. Das Programm kann so konguriert werden, dass die bentigten Module automatisch geladen werden. Alternativ werden die zu ladenden Module manuell ausgewhlt. Deswegen ist nun anzugeben, welches der beiden Verfahren benutzt werden soll:
This release of the Apache server can be configured to load only certain modules into memory. This program can automagically configure Apache so only modules that are actually needed are loaded. Do you want to manually choose which modules to load? [y/N] y

Wenn Sie die manuelle Auswahl der Module gewhlt haben, wird danach fr jedes Modul gefragt, ob es geladen werden soll oder nicht. Im allgemeinen ist jedoch die automatische Modulkonguration zu empfehlen. Das Skript erstellt die Kongurationsdateien und fragt, ob diese gesichert werden sollen. Die Frage ist unbedingt mit Y zu beantworten. Zum Schluss wird gefragt, ob apache mit der neuen Konguration neu gestartet werden soll. Auch diese Frage sollte bejaht werden. Der WebServer ist dann einsatzbereit. Sie knnen diesen Teil der Konguration spter wiederholen, indem Sie folgendes Kommando eingeben: debian:~# apacheconfig
Zustzlich stehen zwei modizierte Versionen des Pakets zur Verfgung. Das Paket apache-perl enthlt den Server mit fest eingebundener Perl-Untersttzung, und im Paket apache-ssl bendet sich eine Variante mit fest eingebundener SSL-Untersttzung. Beide Eigenschaften lassen sich jedoch auch durch Module zur Verfgung stellen.
7

17.8 Ausgewhlte weitere Netzdienste

711

Falls Ihr Rechner mehrere DNS-Namen hat (server.rma.de und www.rma.de) und der primre Rechnername (server.rma.de) sich von dem Namen unterscheidet, den der Web-Server verwenden soll (www.rma.de), mssen Sie eine manuelle Anpassung der Datei /etc/apache/httpd.conf vornehmen. Suchen Sie in der Datei folgende Zeile: #ServerName new.host.name Entfernen Sie das Kommentarzeichen (#) zu Beginn der Zeile und setzen Sie fr new.host.name den DNS-Namen ein, unter dem der Web-Server auftreten soll. Der Name muss ein gltiger DNS-Name sein, ein Phantasiename ntzt nichts. Nach der Anpassung fordern Sie den Server auf, die Kongurationsdateien erneut zu lesen: debian:~# /etc/init.d/apache reload Testen und Benutzen des Servers Nach Installation und Konguration des Pakets sollten Sie in der Lage sein, auf den Server zuzugreifen. Testen Sie dies, indem Sie einen Web-Browser starten und mit diesem per HTTP auf Ihren eigenen Web-Server zugreifen (der URL lautet http: //beethoven/, falls der Name Ihres Servers beethoven ist). Daraufhin sollte die in Abbildung 17.11 gezeigte Seite erscheinen.

Abbildung 17.11. Startseite nach der Installation des Web-Servers apache.

712

17 Debian GNU/Linux im Netz

Wenn die Seite nicht geladen werden kann, ist zu berprfen, ob der angegebene Rechnername stimmt und dem System entweder ber einen DNS-Server oder auf Grund eines Eintrags in der Datei /etc/hosts bekannt ist. Auerdem sollte die Konguration des Netzes berprft werden. Im nchsten Schritt versuchen Sie, von anderen Rechnern aus auf Ihren WebServer zuzugreifen. Wenn es hierbei Probleme geben sollte, ist zu berprfen, ob die Netzverbindung zwischen beiden Rechnern funktioniert (ping (S. 845)) und ob der Name Ihres Rechners auf dem anderen Rechner bekannt ist. Wenn beide Tests erfolgreich absolviert wurden, fllen Sie den Web-Server mit Inhalt. Standardmig ist auf dem Server das Wurzelverzeichnis fr HTMLDokumente /var/www. Im Verzeichnis /var/www bendet sich auch die Datei index.html, deren Inhalt bei den Tests angezeigt wurde. Diese Datei sollte durch die Startseite Ihres Servers ersetzt werden. Sie knnen im Verzeichnis /var/www Unterverzeichnisse anlegen, um den Inhalt Ihres Servers zu strukturieren. Dateien und Verzeichnisse unterhalb von var/www sollten dem Benutzer und der Gruppe www oder www-data zugeordnet sein. Sie mssen lesbar fr Alle sein und sollten nur fr den Besitzer vernderbar sein. Verzeichnisse mssen ausfhrbar sein. Neben dem Web-Wurzelverzeichnis /var/www sind weitere Verzeichnisse deniert, auf die ber den Web-Server zugegriffen werden kann. Unter dem URL http://rechnername/doc/ nden Sie die Online-Dokumentation des Systems, das sind alle Verzeichnisse unterhalb von /usr/share/doc. Benutzer des Servers knnen in ihrem Home-Verzeichnis ein Verzeichnis mit dem Namen public_html anlegen. Auf Dateien in diesem Verzeichnis kann ber den URL http://rechnername/~benutzer/ zugegriffen werden, wobei rechnername durch den Namen Ihres Servers und benutzer durch den Namen des betreffenden Benutzers ersetzt werden mssen. Auch hier wird standardmig die Datei index.html in diesem Verzeichnis angezeigt. Der Pfad bis zu dieser Datei muss fr Alle ausfhrbar sein, was mit sich bringt, dass sorgfltig auf die Zugriffsrechte der anderen Dateien und Unterverzeichnisse im Home-Verzeichnis geachtet werden muss. Insbesondere darf das Home-Verzeichnis nicht fr Alle lesbar sein. Das cgi-bin-Verzeichnis fr Programme und Skripte, die dem Server zur Verfgung stehen, ist /usr/lib/cgi-bin. Die Protokolldateien des Servers benden sich standardmig im Verzeichnis /var/log/apache. In der Datei access.log wird protokolliert, von wo wann auf welche Seite zugegriffen wurde, und in der Datei error.log nden sich Informationen ber Fehler oder Probleme. Sie sollten beide Dateien regelmig lesen. Da auf strker besuchten Web-Servern viel statistisches Material anfllt, gibt es Werkzeuge zur Auswertung. Ein brauchbares, dazu kostenfreies stammt von http://www.analog.cx/. Dokumentations- und Add-On-Pakete Die Dokumentation zu apache bendet sich im Paket apache-doc. Nach dessen Installation liegen die Dateien im Verzeichnis /usr/share/apache/manual. Die Dokumentation im HTML-Format kann mit einem Web-Browser durch ffnen des URLs http://servername/doc/apache/manual/ gelesen werden.

17.8 Ausgewhlte weitere Netzdienste

713

Wie bereits angesprochen benden sich viele Bestandteile des Servers nicht im eigentlichen Programm apache, sondern in Modulen, die bei Bedarf geladen werden. Die grundlegenden Module sind im Paket apache-common enthalten, das whrend der Installation des Servers aufgrund von Abhngigkeiten installiert werden muss. Darber hinaus benden sich viele Module in eigenen Paketen. Die Namen diese Pakete beginnen mit libapache-, sodass Sie sich durch die Eingabe des folgenden Kommandos die verfgbaren Apache-Modul-Pakete anzeigen lassen: joe@debian:~$ apt-cache search libapache- --names-only Weiterfhrende und aktualisierte Informationen knnen von der Homepage des apache-Projekts bezogen werden. Anpassung der Kongurationsdateien Die Kongurationsdateien fr den Web-Server liegen im Verzeichnis /etc/apache. Die wichtigsten drei Dateien in diesem Verzeichnis sind die Dateien httpd.conf, srm.conf und access.conf. In allen drei Dateien ist die gleiche Syntax zu verwenden. Tatschlich ist es gleichgltig, in welcher dieser Dateien sich eine bestimmte Kongurationsanweisung bendet, weil die Anweisungen in allen drei Dateien gleichermaen gelesen und interpretiert werden. Die Aufteilung in drei Dateien hat zum einen historische Grnde und dient zum anderen der Gruppierung der Anweisungen nach Aufgabenbereichen: httpd.conf Anweisungen, durch die das allgemeine Verhalten von apache beeinusst wird. access.conf Anweisungen, durch die der Zugriff von bestimmten Rechnern und Benutzern auf bestimmte Dokumente eingeschrnkt oder erlaubt wird. srm.conf Anweisungen in dieser Datei spezizieren, wie die Dokumente auf dem Server organisiert sind, welches Verzeichnis das Wurzelverzeichnis fr Dokumente ist und welche anderen Verzeichnisse zur Verfgung gestellt werden. In allen drei Dateien drfen sich leere Zeilen zur Strukturierung benden sowie Kommentare, die durch ein Doppelkreuz (#) eingeleitet werden. Die Datei httpd.conf Die fr einfache Server wichtigen Optionen in dieser Datei sind: ServerType standalone | inetd Durch ServerType inetd wird dem Server mitgeteilt, dass er durch den inetd gestartet wird. Die Folge ist, dass sich das Programm beendet, sobald eine Verbindung beendet ist. ServerType standalone konguriert das Programm so, dass es sich wie ein selbststndiger Serverprozess verhlt und auf neue Verbindungen wartet, wenn eine bestehende Verbindung beendet wurde. Wenn Sie den Server ber den inetd starten wollen, mssen Sie der Datei /etc/inetd.conf eine entsprechende Zeile hinzufgen. Im allgemeinen ist aus Grnden der Geschwindigkeit das standalone-Verfahren zu empfehlen.

714

17 Debian GNU/Linux im Netz

HostnameLookups on | off Hiermit wird festgelegt, ob in den Logdateien des Servers die IP-Nummern von zugreifenden Klientrechnern (off ) oder Ihre DNS-Namen (on) protokolliert werden sollen. off ist schneller. ServerAdmin Email-Adresse Gibt mit Email-Adresse die Email-Adresse des Verwalters des Servers an. Die Adresse wird in Fehlermeldungen ausgegeben. Vorgabe ist webmaster@servername Loadmodule Modulname Gibt mit Modulname ein Modul an, das von Apache geladen werden soll. Vorgegeben wird eine lngere Liste. ErrorLog Dateiname Gibt mit Dateiname den Namen der Datei an, in die Fehler protokolliert werden. Vorgabe ist /var/log/apache/error.log. LogLevel Stufe Gibt mit Stufe an, welche (Fehler-)Meldungen protokolliert werden sollen. Mgliche Werte fr Stufe sind: debug, info, notice, warn, error, crit, alert und emerg. Vorgabe ist warn. LogFormat Format [Bezeichnung] Deniert ein Format, in dem Zugriffe protokolliert werden. Wenn Bezeichnung angegeben wird, kann das Format spter durch die betreffende Bezeichnung benutzt werden. Hinweise zum Aufbau eines Logdatei-Formats nden Sie unter http://rechnername/doc/ apache/manual/mod/mod_log_config.html\#formats, wenn das Paket apache-doc installiert ist (rechnername ist durch den Namen des eigenen Rechners zu ersetzen). Vorgegeben wird eine schwer verstndliche Zeichenkette, Finger davon lassen. CustomLog Dateiname Format Bestimmt mit Dateiname eine Datei, in welcher Zugriffe protokolliert werden. Mit Format kann der Name eines mit LogFormat denierten Formats oder ein neues Format angegeben werden. Als Vorgabe auskommentiert. ServerName Rechnername Gibt an, welchen Namen der Server als seinen eigenen Namen verwenden soll. Die Einstellung wird dann bentigt, wenn der Rechner mehr als einen DNS-Namen hat und der primre Rechnername nicht dem gewnschten Namen des Web-Servers entspricht. Als Vorgabe auskommentiert. Timeout Zeit Gibt mit Zeit die Zeit in Sekunden an, die auf eine Antwort von Klienten gewartet werden soll. KeepAlive On|Off Bestimmt, ob die Keep-Alive-Erweiterung von HTTP untersttzt werden soll. Durch diese Erweiterung lsst sich in manchen Fllen eine schnellere Datenbertragung erreichen, sie fhrt allerdings mit einigen Browsern zu Problemen. MaxKeepAliveRequests Anzahl Gibt mit Anzahl an, wieviele Transfers whrend einer Keep-Alive-Verbindung durchgefhrt werden drfen. Der Wert 0 entspricht unbegrenzt vielen Zugriffen. KeepAliveTimeout Zeit Gibt mit Zeit die Zeit in Sekunden an, die bei KeepAlive-Verbindungen auf den nchsten Zugriff gewartet werden soll. MinSpareServers Anzahl Gibt an, wieviele Server-Prozesse zustzlich zu denen, die gerade einen Zugriff bearbeiten, mindestens ausgefhrt werden sollen. Durch zustzliche, wartende Server lassen sich neue Zugriffe schneller beantworten, allerdings werden fr diese Prozesse Systemressourcen gebraucht.

17.8 Ausgewhlte weitere Netzdienste

715

Fr Arbeitsplatzrechner, die nicht in erster Linie als Web-Server eingesetzt werden, ist der Wert 3 ausreichend. MaxSpareServers Zahl Gibt mit Zahl an, wieviele zustzliche wartende Server-Prozesse maximal laufen sollen. Fr Arbeitsplatzrechner reicht der Wert 6 aus. StartServers Zahl Gibt mit Zahl an, wieviele Server-Prozesse beim Start von apache gestartet werden sollen. Fr Arbeitsplatzrechner reicht der Wert 3 aus. MaxClients Zahl Gibt mit Zahl an, wieviele Klienten gleichzeitig auf den Server zugreifen knnen. Der Server ist fr alle weiteren Klienten nicht erreichbar. Fr Arbeitsplatzrechner reicht der Wert 20 aus. MaxRequestPerChild Zahl Unter manchen Betriebssystemen gibt es Speicher-Lecks in von apache benutzten Bibliotheken. Um zu vermeiden, dass diese Lecks nach langer Laufzeit des Servers zu einem hohen Speicherbedarf fhren, knnen die Server-Prozesse nach einer mit Zahl zu kongurierenden Anzahl von Zugriffen neu gestartet werden. Unter Linux ist dies kein groes Problem, sodass der Wert 100 oder hher angemessen ist. Zu Anfang bernimmt man am besten alle Vorgaben, bringt die Chose zum Laufen und dreht dann vorsichtig an den Einstellungen. Selten besteht Grund zur nderung der Zahlenwerte und Timeouts. Die Datei srm.conf Hier wird deniert, welche Dateien der Server wie zur Verfgung stellt, wie er sie anzeigt und wie er im Falle eines Fehlers reagiert. DocumentRoot Verzeichnis Gibt mit Verzeichnis das Verzeichnis an, welches das Wurzelverzeichnis auf diesem Server aus Sicht der Klienten ist. Wenn von einem Browser auf den Server mit einem URL ohne Verzeichnis- oder Dateiteil (http://rechnername/) zugegriffen wird, dann wird der Inhalt dieses Verzeichnisses angezeigt. UserDir Verzeichnis Gibt mit Verzeichnis an, in welches Unterverzeichnis ihrer Home-Verzeichnisse Benutzer Dateien legen knnen, die ber den Server verfgbar sein sollen. Auf die Benutzerverzeichnisse kann ber URLs zugegriffen werden, die hinter dem Rechnernamen das ~-Zeichen und den betreffenden Benutzernamen tragen. Beispiel: Wenn auf dem Server www.foo.com mit der Direktive UserDir public_html angegeben ist und die Benutzerin eva ein Verzeichnis mit diesem Namen in ihrem Home-Verzeichnis angelegt hat, so kann man mit dem URL http://www.foo.com/~eva/ auf dieses Verzeichnis zugreifen, Zugriffsrechte vorausgesetzt. DirectoryIndex Dateiname [Dateiname ...] Wenn auf ein Verzeichnis zugegriffen wird, dann wird auf diesem standardmig ein automatisch erzeugtes Inhaltsverzeichnis des Datei-Verzeichnisses ausgegeben. Falls sich in dem Verzeichnis jedoch eine mit Dateiname bezeichnete Datei bendet, wird stattdessen diese ausgegeben. Es lassen sich auch mehrere Dateinamen angeben, die dann nacheinander probiert werden. Beispiel: Wenn

716

17 Debian GNU/Linux im Netz

mit DirectoryIndex der Name index.html eingestellt wird und auf den URL http://rechnername/neues/ zugegriffen wird, dann wird versucht, im Verzeichnis neues (/var/www/neues, wenn DocumentRoot /var/www ist) die Datei index.html auszugeben. Wenn die Datei nicht vorhanden ist, wird ein automatisch erzeugtes Inhaltsverzeichnis ausgegeben. FancyIndexing on|off Schaltet zwischen einer aufwendigeren und hbscheren Methode (on) und einer weniger aufwendigen Methode (off ) bei der Erzeugung automatisch generierter Verzeichnisindices um. AddIcon* (Kommentar,URL)|URL Typ|Endung Die Anweisungen AddIcon, AddIconByEncoding und AddIconbyType erlauben, Dateitypen entweder auf Grund ihres MIME-Typs oder auf Grund ihrer Namensendung bestimmten Icons zuzuordnen, die im automatisch erzeugten Index mit den entsprechenden Dateien angezeigt werden, falls FancyIndexing auf On gestellt ist. Die Zuordnung erfolgt entweder in der Form (Kommentar,URL) oder in der Form URL. Bei der ersten Form besteht die Mglichkeit, mit Kommentar einen Text anzugeben, der von solchen Browsern an Stelle des Icons angezeigt wird, die keine Bilder anzeigen knnen. Die Icons werden nicht durch ihren Dateinamen, sondern durch ihren URL angegeben. Sie mssen sich in einem Verzeichnis benden, auf das direkt ber den Server zugegriffen werden kann. URLs knnen hier auch ohne Rechnernamen (/Verzeichnis/Dateiname) angegeben werden. Sie beziehen sich dann auf den lokalen Server. Es sind auch relative URLs mglich. Hinter dem URL ist bei AddIcon die Namensendung (z. B. .txt) anzugeben, bei AddIconByType der MIME-Typ (z. B. audio/*) und bei AddIconByEncoding die Form der Kodierung (z. B. x-compress). Kodierungen werden mit AddEncoding deniert. DefaultIcon URL Legt fest, welches Icon zusammen mit Dateien im automatisch erzeugten Index angezeigt werden soll, fr die kein Icon deniert ist. ReadmeName Name Gibt mit Name den Namen einer Datei an, die bei der automatischen Indexerstellung unter dem Datei- und Verzeichnisindex ausgegeben wird. HeaderName Name Gibt mit Name den Namen einer Datei an, die bei der automatischen Indexerstellung ber dem Datei- und Verzeichnisindex ausgegeben wird. IndexIgnore Name [Name ...] Gibt mit Name Dateinamen an, die im automatischen Index nicht mit ausgegeben werden. Hierbei lassen sich auch MetaZeichen verwenden. AccessFileName Name Gibt mit Name den Dateinamen an, mit der sich die Zugriffsbestimmungen fr das Verzeichnis, in dem die Datei liegt, berschreiben lassen. AddEncoding Name Dateiendung [Dateiendung ...] Ordnet Dateien, deren Endung Dateiendung entspricht, der mit Name angegebenen Kodierung zu. AddLanguage Sprache Endung Ein Browser kann dem Server mitteilen, dass er eine Seite gern in einer bestimmten Sprache htte. Durch die AddLanguage-Direktive wird die mit Endung angegebene Dateinamensendung der mit

17.8 Ausgewhlte weitere Netzdienste

717

Sprache angegebenen Sprache zugeordnet. Wenn AddLanguage de .de benutzt wird und ein Browser die Datei index.html in deutscher Sprache anfordert, so wird die Datei index.html.de ausgegeben, falls sie existiert. Redirect name URL Wenn auf name zugegriffen wird, sendet der Server an den Klienten den mit URL bezeichneten URL, den dieser dann versucht zu laden. Dadurch knnen Klienten auf andere Server umgeleitet werden, wenn sie versuchen, eine Seite zu laden, die sich nicht mehr auf diesem Server bendet. Es gibt aber auch einen Weg, mit Hilfe eines Meta-Tags die Umleitung von der Webseite aus zu veranlassen. Alias lokale-URL Dateiname|Verzeichnisname Mit dieser Anweisung lassen sich Dateien oder Verzeichnisse fr den Server verfgbar machen, die sich nicht unterhalb des mit ServerRoot angegebenen Verzeichnisses benden. Wird die Anweisung Alias /news/ /var/news/ benutzt und bendet sich in /var/news die Datei WELCOME, so knnte mit dem URL http: //rechnername/news/welcome auf diese Datei zugegriffen werden. ErrorDocument Fehler-Nr. URL Hiermit lassen sich ansprechendere eigene Fehlermeldungen ausgeben, welche die Standardfehlermeldungen ersetzen, die apache ausgibt, wenn versucht wird, auf ein nicht vorhandenes Dokument zuzugreifen. Die Datei access.conf Diese Datei kann mit httpd.conf zusammengefasst sein. Die Zugriffskontrolle geschieht in der Datei durch die Angabe von Blcken, die sich jeweils auf einen Bereich (auf ein Verzeichnis) des Servers beziehen. Innerhalb eines Blocks wird dann angegeben, welche Berechtigungen fr wen beim Zugriff auf die Ressourcen gelten, auf die sich der Block bezieht. Es werden drei Typen von Blcken unterscheiden: Nach Verzeichnis Die Zugriffsmglichkeiten auf ein Verzeichnis und alle darin enthaltenen Dateien und Unterverzeichnisse werden deniert. Solche Blcke werden mit <Directory Verzeichnis> eingeleitet und mit </Directory> beendet. Fr Verzeichnis ist das Verzeichnis anzugeben, fr das die innerhalb des Blocks bendlichen Beschrnkungen gelten sollen. Nach URL Die Zugriffsmglichkeiten auf einen bestimmten URL werden deniert. Diese Zugriffsbeschrnkungen sind vllig unabhngig vom Dateisystem. Die entsprechenden Blcke werden mit <Location URL> eingeleitet und mit </Location> beendet. Nach Dateinamen Die Zugriffmglichkeiten werden fr bestimmte Dateien deniert. Solche Blcke beginnen mit <Files Dateiname> und enden mit </Files>. Die mit Directory, Location und Files angegebenen Namen drfen Shell-MetaZeichen (*, ? usw.) enthalten. Innerhalb der Blcke sind folgende Anweisungen erlaubt: allow from Name [Name ...] Hiermit wird den mit Name angegebenen Rechnern der Zugriff auf die Dokumente gestattet, fr die der entsprechende Block gilt. Fr Name lassen sich einzelne (DNS-) Rechnernamen, IP-Adressen,

718

17 Debian GNU/Linux im Netz

DNS-Domnennamen (wie .uni-bremen.de), Teile von IP-Adressen (134.102. (erlaubt allen Rechnern den Zugriff, deren IP-Adressen mit 134.102 beginnen) oder IP-Netze/Netzmasken-Kombinationen (192.168.1.0/255.255.255.240 fr die IP-Adressen 192.168.1.0 bis 192.168.1.15) angeben. Zustzlich ist es mglich, das Schlsselwort all anzugeben, mit dem der Zugriff von berall erlaubt wird. deny from Name [Name ...] Verbietet den Zugriff auf die Dokumente in dem entsprechenden Block. Fr Name bestehen die gleichen Mglichkeiten zur Formulierung wie bei der allow from-Anweisung. Der Schutz ist nicht hundertprozentig, da Rechner falsche Namen oder IP-Adressen annehmen knnen. Trotzdem besser als kein Schutz. order deny,allow|allow,deny Mit dieser Anweisung wird festgelegt, wie Zugriffsbeschrnkungen interpretiert werden. Wenn allow,deny angegeben ist, wird zunchst davon ausgegangen, dass ein Klient nicht zugangsberechtigt ist. Dann wird nach einer allow-Anweisung gesucht, die fr den Klienten gilt (nach dieser Prfung ist er u. U. zugangsberechtigt) und zum Schluss wird nach einer deny-Regel gesucht, die fr ihn gilt (nun ist er mglicherweise nicht mehr zugangsberechtigt, die allow-Regel wurde berschrieben). Bei deny,allow luft es umgekehrt: Zunchst wird davon ausgegangen, dass der Klient zugreifen darf, dann wird nach deny-Anweisungen gesucht (aufgrund derer er nicht zugreifen kann) und danach nach allow-Regeln geschaut (mit denen die deny-Regeln wieder berschrieben werden). Options [[+|-]Option ...] Mit dieser Anweisung werden Eigenschaften des Servers in Bezug auf den Bereich, fr den der entsprechende Block gilt, einoder ausgeschaltet. Es stehen die folgenden Optionen zur Verfgung: ALL Alle Optionen (bis auf MultiViews) werden ausgewhlt. Dies ist die Standardeinstellung. ExecCGI Das Ausfhren von CGI-Skripten ist erlaubt. FollowSymLinks Symbolischen Links wird gefolgt. SymLinksIfOwnerMatch Symbolischen Links wird nur dann gefolgt, wenn der Besitzer von Link und Datei oder Verzeichnis, auf die der Link zeigt, bereinstimmen. Includes Es wird erlaubt, durch bestimmte Direktiven in den Dokumenten beim Abruf Daten einzufgen (Server Side Includes). IncludesNOEXEC Das Einfgen wird mit Ausnahme der Anweisungen #exec und #include im Fall von Skripten erlaubt. Indexes Die Erzeugung automatisch erzeugter Verzeichnisindices wird aktiviert. MultiViews Wenn ein bestimmter Inhalt in mehreren Formen (Sprachen, mit/ohne Grak, mit/ohne Frames) vorliegt, knnen Browser und Server aushandeln, welche Version benutzt wird. AllowOverride Option [Option ...] Bestimmt, welche Zugriffseinschrnkungen und -Optionen durch die mit AccessFileName bestimmten Dateien berschrieben werden knnen. Hier sind folgende Angaben mglich: All Alle Einstellungen drfen berschrieben werden.

17.8 Ausgewhlte weitere Netzdienste

719

None Keine Einstellung darf berschrieben werden. Limit Die Zugriffsbeschrnkungen (deny, allow, order) drfen berschrieben werden. Indexes Die Einstellungen zur Erzeugung von Indices drfen berschrieben werden. FileInfo Einstellungen zu Dokumenttypen drfen berschrieben werden. Der Eintrag fr das Wurzelverzeichnis des Server (/var/www) sieht nach der Ersteinrichtung folgendermaen aus:
<Directory /var/www> Options Indexes Includes FollowSymLinks MultiViews AllowOverride None order allow,deny allow from all </Directory>

Die Einstellungen gelten zunchst fr den gesamten Server, knnen jedoch durch weitere Anweisungen in der Datei access.conf fr Teilbereiche berschrieben werden. Weiter ist zu beachten, dass <Files>-Blcke die in <Directory>-Blcken denierten Einstellungen fr die entsprechenden Dateien berschreiben und dass <Location>-Blcke alle anderen Einstellungen fr die entsprechenden URLs berschreiben. Alternative Web-Server apache ist nicht der einzige Web-Server, der mit Debian GNU/Linux zur Verfgung steht. Das Programm apache hat sich zwar durchgesetzt, dennoch kann es in verschiedenen Fllen sinnvoll sein, einen der folgenden Server an Stelle von apache zu installieren: cern-httpd Dieser am Genfer CERN, dem Geburtsort des Web, entwickelte Server wird seit 1996 nicht mehr gepegt und ist mittlerweile etwas veraltet. Nheres unter http://www.w3.org/Daemon/Status.html. aolserver Dieses Paket enthlt den von AOL (America Online) eingesetzten WebServer. Er zeichnet sich dadurch aus, sehr viele Benutzer und viele virtuelle Domnen gleichzeitig bedienen zu knnen. boa Ein einfacher Web-Server, der fr den Einsatz auf Rechnern mit knappen Ressourcen geeignet ist. Nheres unter http://www.boa.org/. roxen Die Server zeichnet sich durch einfache Konguration und Pege aus. Nheres unter http://www.roxen.com/products/webserver/. dhttpd Ein einfacher Web-Server, der sich zur Verffentlichung von Dokumenten, aber nicht viel mehr eignet. Nheres unter http://dhttpd. sourceforge.net/.

720

17 Debian GNU/Linux im Netz

17.8.2 SAMBA Netzdienste fr MS-Windows und IBM-OS/2 SAMBA ist eine Implementierung des SMB-Protokolls (Server Message Block Protocol). Das Protokoll wird von allen MS-Windows-Betriebssystemen, aber auch von anderen Betriebssystemen benutzt, um Ressourcen eines Rechners wie Verzeichnisse oder Drucker anderen Rechnern im Netz zur Verfgung zu stellen. Das Protokoll ist auch als NetBIOS oder NetBEUI (NetBIOS Extended User Interface) bekannt, neuerdings wird es oft mit CIFS (Common Internet File System) bezeichnet. Das SAMBA-Projekt ist unter http://www.samba.org/ zu erreichen. Um die Kernfunktionalitt herum gibt es einige weitere Protokolle und Dienste wie Benutzerauthentizierung oder Namensauflsung (WINS MS-Windows Internet Name Service) hnlich dem DNS. Die zu SAMBA gehrenden Programme implementieren einen groen Teil der Funktionalitt, die von einem MS-WindowsNT-Server oder dessen Nachfolger MS Windows 2000 geleistet wird. Dazu gehrt die Bereitstellung von Verzeichnissen und Druckern ber das SMB-Protokoll, die Authentizierung von Klientsystemen sowie ein Programm, das WINS zur Verfgung stellt. Ein SAMBA-Server kann deswegen in vielen Fllen die Aufgaben eines MS-Windows-NT-Servers im Netz bernehmen. Auerdem lsst es sich dazu benutzen, die Drucker eines Linux-basierten Printservers oder die Verzeichnisse eines Linux-Dateiservers auch MS-Windows- oder IBM-OS/2-Rechnern zur Verfgung zu stellen. Tatschlich wird Linux mit SAMBA heute in vielen Unternehmen als kostengnstige und stabile Alternative zu MS Windows NT auf Servern eingesetzt. In einem reinen Linux/UNIX-Netz ist SAMBA berssig. Einfhrung Die Konzepte in TCP/IP- und MS-Windows-Netzen unterscheiden sich stark, auch wenn in beiden Welten gelegentlich die gleichen Ausdrcke (mit unterschiedlichen Bedeutungen) benutzt werden. MS-Windows-Netze sind ursprnglich fr die Vernetzung weniger Rechner konzipiert. Eine Anbindung des eigenen Netzes an andere Netze wie das Internet war dabei nicht vorgesehen. Auerdem wurde davon ausgegangen, dass sich alle beteiligten Rechner in demselben Netz benden und SMBPakete nicht ber Router weitergeleitet werden mssen, um von einem Rechner zum nchsten zu gelangen. Jeder Rechner in einem MS-Windows-Netz hat einen Namen. Diese Namen sind zu trennen von den DNS-Namen, die in TCP/IP-Netzen benutzt werden. Ein Rechner kann gleichzeitig Teil eines MS-Windows- und eines TCP/IP-Netzes sein und deswegen einen MS-Windows- und einen TCP/IP-Namen haben, wobei die Namen nicht bereinzustimmen brauchen. In der Regel ist es sinnvoll, einem Rechner denselben Namen fr TCP/IP und MS-Windows zu geben. Arbeitsgruppen und Domnen Innerhalb eines MS-Windows-Netzes werden Arbeitsgruppen (Workgroup) und Domnen unterschieden. Eine Arbeitsgruppe fasst eine Anzahl von Rechnern zusammen, die sich gegenseitig Ressourcen zur Verfgung stellen. Eine Domne ist eine

17.8 Ausgewhlte weitere Netzdienste

721

Arbeitsgruppe mit gemeinsamer Benutzerverwaltung durch einen MS-Windows-NTServer oder einen SAMBA-Server. Im Unterschied zu einer Arbeitsgruppe gibt es in einer Domne eine Benutzerdatenbank fr den ganzen Verbund von Rechnern und Benutzern. In dieser Datenbank knnen neben Benutzernamen und Passwrtern auch andere Informationen wie das fr einen Benutzer zu verwendende HomeVerzeichnis gespeichert werden. Den Rechner, auf dem sich die Benutzerdatenbank bendet, nennt man Primary Domain Controller (PDC). Das Konzept ist mit NIS unter Linux/UNIX vergleichbar. Jeder Rechner, der Teil eines SMB-Netzes ist, ist einer Arbeitsgruppe oder einer Domne zugeordnet. Mittlerweile ist das Konzept weiterentwickelt worden. SMB und TCP/IP Das SMB-Protokoll ist ein eigenes Netzprotokoll, ebenso wie TCP/IP oder AppleTalk. Um jedoch die oben angesprochenen Schwierigkeiten wie die fehlende Routing-Mglichkeit zu berwinden, wurde eine Abwandlung des Protokolls erdacht, bei der SMB-Pakete per TCP/IP transportiert werden. Diese Form des Protokolls wird als NetBIOS over TCP/IP bezeichnet. Sie ermglicht die volle Integration von SMB in TCP/IP-Netze. SAMBA arbeitet ausschlielich mit SMB ber TCP/IP und untersttzt nicht die ltere Variante ohne TCP/IP. Bei der Installation einiger MS-Windows-Betriebssysteme wird TCP/IP standardmig nicht installiert, sodass die Untersttzung fr dieses Protokoll nachtrglich einzurichten ist, wenn der MS-Windows-Rechner einen SAMBA-Server benutzen soll. Auerdem ist darauf zu achten, dass SMB mit TCP/IP zusammen benutzt wird. Namensauf lsung hnlich wie mit dem Domain Name Service (DNS) steht in MS-Windows-Netzen mit WINS (Windows Internet Name Service) ein Mechanismus zur Verfgung, der Rechnernamen in IP-Adressen auflst. Der Einsatz von WINS macht nur dann Sinn, wenn SMB ber TCP/IP benutzt wird. Ob ein WINS-Server benutzt wird und auf welchem Rechner er ausgefhrt wird, bestimmt der Verwalter. Innerhalb eines SubNetzes sollte es immer nur einen primren WINS-Server geben, daneben knnen sekundre WINS-Server eingerichtet werden, welche die Aufgabe des primren Servers bernehmen, falls dieser ausfllt. Im Gegensatz zu DNS werden Rechner dem WINS-Server nicht vom Verwalter bekannt gemacht, sondern melden sich bei diesem an, sobald sie verfgbar sind, und besttigen in regelmigen Intervallen ihre Verfgbarkeit (bei MS-Windows-Rechnern ist stndig mit deren Ausfall zu rechnen). Ein weiterer Unterschied zu DNS besteht darin, dass bei WINS-Namen keine Hierarchien mglich sind, durch die Rechner auch in sehr groen Netzen eindeutig bezeichnet werden knnen. Analog zur Datei /etc/hosts besteht bei MS-Windows-Netzen die Mglichkeit, Zuordnungen von Rechnernamen und IP-Adressen in der Datei /etc/lmhosts zu vermerken. Das Format dieser Datei gleicht weitgehend dem der Datei /etc/hosts, es ist in der Manualseite lmhosts beschrieben. Auf MS-Windows-Rechnern bendet sich die Datei im Windows-Verzeichnis. Dort liegt normalerweise auch eine Datei mit

722

17 Debian GNU/Linux im Netz

dem Namen lmhosts.sam, in der das Format der Datei beschrieben ist. Der Einsatz dieser Dateien ist dann sinnvoll, wenn kein WINS benutzt wird und sich Rechner der Arbeitsgruppe auerhalb des eigenen Subnetzes benden. Rechner innerhalb eines Subnetzes knnen ber ein drittes Verfahren, das Broadcasting, ausndig gemacht werden. Bei diesem Verfahren wird einfach jeder Rechner im Netz gefragt, ob er den gesuchten Namen hat, was in den unendlichen Weiten des Internets problematisch wre. Browsing Eine weitere Besonderheit des SMB-Protokolls ist das Browsing. Darunter wird die Fhigkeit von Klientrechnern verstanden, die im Netz bzw. in der Arbeitsgruppe vorhandenen Rechner sowie alle von diesen Rechnern zur Verfgung gestellten Ressourcen anzuzeigen. Unter MS-Windows 95/98 wird die Liste verfgbarer Rechner und Ressourcen durch Doppelklick auf das Icon Netzwerkumgebung angezeigt. Das MS-Windows-Konzept geht davon aus, dass Rechner jederzeit ausfallen oder hinzukommen. Die Folge ist, dass sich die Liste verfgbarer Rechner stndig ndert und aktualisiert werden muss. Aus diesem Grund wird auf einem Rechner eine Browse List gepegt, die andere Rechner abfragen. Welcher Rechner die Browse List besitzt, wird unter den Rechnern im Netz ausgehandelt. Der entsprechende Rechner wird als Local Master Browser bezeichnet. In MS-Windows-Netzen, die sich ber mehrere Subnetze erstrecken, muss es in jedem Subnetz einen eigenen Local Master Browser geben, von denen einer als Domain MasterBrowser fungiert, der die brigen Master Browser synchronisiert. Passwortverschlsselung Die Schwierigkeit der Konguration von SAMBA schwankt von einfach bis hin zu komplex, je nachdem fr welchen Zweck das System konguriert werden soll. Eine Frage, die vor der Konguration auf jeden Fall geklrt werden sollte, ist die, ob bei der Anmeldung verschlsselte Passwrter benutzt werden sollen oder nicht. ltere Versionen von MS-Windows (Windows 3.11, 95 und NT 3.51) versenden Passwrter unverschlsselt, was unsicher ist, sich aber einfacher mit SAMBA vereinbaren lsst. Neuere MS-Windows Versionen (Windows 98, NT 4 ab Service Pack 3 und 2000) versenden Passwrter verschlsselt. Dieses Verfahren ist sicherer. Allerdings ist es nicht mglich, die verschlsselten Passwrter anhand der Linux-Passwortdatenbank in /etc/passwd oder /etc/shadow zu berprfen, weil MS-Windows und Linux/UNIX unterschiedliche Verfahren zur Verschlsselung benutzen und bei beiden Verfahren nicht auf das unverschlsselte Passwort zurckgeschlossen werden kann. Zur Lsung des Problems gibt es zwei Mglichkeiten: Zum einen knnen MS-Windows-Systeme durch Vernderung eines bestimmten Schlssels in der MS-Windows-Registry dazu gebracht werden, unverschlsselte Passwrter zu verwenden, zum anderen kann SAMBA eine zweite Passwortdatenbank verwalten, in der die verschlsselten MSWindows-Passwrter gespeichert werden. Das zweite Verfahren ist sicherer, aber mit hherem Aufwand verbunden, weil es erfordert, dass Linux/UNIX- und MSWindows-Passwrter von Hand abgeglichen werden. Dieses Verfahren muss gewhlt

17.8 Ausgewhlte weitere Netzdienste

723

werden, wenn SAMBA als PDC (Primary Domain Controller) fr MS-Windows-NTKlienten eingesetzt werden soll. Weitere Unterschiede zwischen MS-Windows und Linux/UNIX Unter MS-Windows wird nicht zwischen Gro- und Kleinschreibung bei Datei- und Verzeichnisnamen unterschieden. Das heit, dass unter MS-Windows die Dateinamen README.TXT, Readme.txt und readme.txt dieselbe Datei bezeichnen, whrend unter Linux/UNIX damit drei verschiedene Dateien gemeint sind. Der SAMBAServer muss aus diesem Grund entscheiden, welche Datei er einem MS-WindowsKlienten liefert, wenn es aufgrund des Namens mehrere Mglichkeiten gibt. Noch schwieriger wird es, wenn ein MS-Windows-Rechner zunchst eine Datei mit dem Namen README.TXT anlegt und dann die Datei readme.txt ffnet. Er erwartet, die Datei zu ffnen, die er zuvor angelegt hat. Weitere Schwierigkeiten ergeben sich daraus, dass einige MS-Windows- und DOS-Versionen nur Dateinamen erlauben, die aus acht Zeichen und einer drei Zeichen langen Erweiterung bestehen (8.3-Namen). Linux/UNIX kennt seit vielen Jahren fast beliebig aufgebaute Dateinamen von maximal 255 Zeichen Lnge. Unter den DOS-basierten MS-Windows-Versionen gibt es kein Benutzerkonzept. Alle Dateien und Programme gehren demjenigen, der mit dem System arbeitet. Dieser Benutzer und alle von ihm ausgefhrten Programme haben die volle Gewalt ber das System. Dieses Sicherheitsloch wird mit SAMBA nicht auf Linux/UNIXRechner ausgedehnt; vielmehr fhrt SAMBA jeden Zugriff auf freigegebene Ressourcen mit den Berechtigungen eines bestimmten Benutzers durch, wobei es abhngig von der Anmeldung durch den MS-Windows-Rechner ist, welches Benutzerkonto hierzu verwendet wird. Unter Umstnden kann auf bestimmte Dateien, die sich in freigegebenen Verzeichnissen benden, nicht zugegriffen werden, weil die Berechtigungen auf dem SAMBA-Server dazu nicht ausreichen. Installation Die Teile des SAMBA-Systems sind in folgenden Debian-Paketen enthalten: samba-common Dateien und Verzeichnisse, die von allen SAMBA-Programmen bentigt werden. samba Die Server-Programme, die bentigt werden, wenn der Rechner als Server fr MS-Windows-, DOS oder IBM-OS/2-Rechner eingesetzt werden soll. smbclient Einige Klientprogramme, mit denen auf freigegebene Drucker und Verzeichnisse zugegriffen wird, die sich auf anderen MS-Windows- oder SAMBARechnern benden. Diese Programme werden bentigt, um auf einen Drucker zu drucken, der an einen MS-Windows-Rechner angeschlossen ist, oder um Daten von einem MS-Windows-Rechner auf den eigenen Rechner zu kopieren. samba-doc Dokumentation zu SAMBA. smbfs Programme, mit denen sich von MS-Windows-Rechnern freigegebene Verzeichnisse in das Dateisystem des eigenen Rechners einbinden (mounten) lassen.

724

17 Debian GNU/Linux im Netz

swat Ein Programm, mit dem der SAMBA-Server ber einen Web-Browser verwaltet werden kann. Wenn Sie nur den Server installieren wollen, reicht es aus, die Pakete samba und samba-common zu installieren. Um alle Dateien und Programme des Systems zu installieren, ist es am einfachsten, das Paket task-samba zu installieren. Dadurch werden alle oben aufgelisteten Pakete zusammen installiert: debian:~# apt-get install task-samba Whrend der Installation von SAMBA sind einige Fragen zu beantworten. Dabei ist anzugeben, ob SAMBA als eigenstndiger Server-Prozess ausgefhrt werden soll oder ob die Prozesse bei Bedarf durch den inetd gestartet werden sollen. Die erste Mglichkeit (eigenstndiger Server) bietet den Vorteil, dass SAMBA bei eingehenden Verbindungen schneller reagiert. Auf der anderen Seite lassen sich durch die Verwendung des inetd Systemressourcen einsparen, wenn SAMBA nur selten benutzt wird. Auerdem ist es mit dem inetd-Verfahren mglich, den Zugriff auf den SAMBA-Server durch den tcpd abzusichern. Wenn der Rechner nicht in erster Linie als Hochleistungsserver fr MS-Windows-Rechner eingerichtet werden soll, empehlt sich die inetd-Methode. Sie knnen die hier vorgenommene Auswahl spter mit dem Programm sambacong ndern. Danach ist anzugeben, ob eine Passwortdatei fr die verschlsselten Passwrter erzeugt werden soll. Diese Datei wird bentigt, wenn Klientrechner dem Server verschlsselte Passwrter senden. Wenn Sie die entsprechende Frage mit Y beantworten, wird die Datei mit jeweils einem Eintrag fr jeden Benutzer, der in der Datei /etc/passwd eingetragen ist, erzeugt. Die Passwrter sind in der neuen Datei jedoch noch nicht enthalten, weil diese wie erwhnt nicht aus der Information in einer der Dateien /etc/passwd oder /etc/shadow erzeugt werden knnen. Im allgemeinen ist die Verwendung verschlsselter Passwrter und deswegen auch die Erzeugung der Passwortdatei zu empfehlen. Die SAMBA-Passwrter werden in der Datei /etc/samba/smbpassword gespeichert. Wenn Sie diese Datei spter selbst erzeugen mchten, knnen Sie dies tun, indem Sie folgendes Kommando eingeben: debian:~# cat /etc/passwd | /usr/sbin/mksmbpasswd > /etc/samba/smbpasswd Achtung: Eine eventuell bereits vorhandene Version der SAMBA-PasswortDatei wird dabei berschrieben! Sollten Sie ausgewhlt haben, SAMBA als eigenstndigen Server zu verwenden, werden Sie zum Schluss gefragt, ob SAMBA nun gestartet werden soll. Wenn Sie die inetd-Methode gewhlt haben, brauchen die Programme nicht explizit gestartet werden, sie werden bei Bedarf durch den inetd gestartet. Konguration von SAMBA Die zentrale Kongurationsdatei fr SAMBA ist /etc/samba/smb.conf. In dieser Datei benden sich verschiedene Abschnitte, die jeweils mit dem Namen des entspre-

17.8 Ausgewhlte weitere Netzdienste

725

chenden Abschnittes in eckigen Klammern beginnen und darunter bestimmte Parameterbezeichnungen enthalten, denen nach einem Gleichheitszeichen Werte zugewiesen werden. Parameter und Wertzuweisung benden sich gemeinsam in einer Zeile. Zeilen, die mit einem Semikolon oder einem Doppelkreuz (#) beginnen, sowie leere Zeilen dienen zur Kommentierung und Strukturierung der Datei und werden von dem Programm nicht beachtet. In dem Abschnitt [global] werden alle globalen Einstellungen von SAMBA vorgenommen. Die anderen Abschnitte enthalten Einstellungen fr einzelne Ressourcen wie Verzeichnisse oder Drucker, die den Klientrechnern zur Verfgung gestellt werden sollen. Zwei besondere Ressourcen sind [homes] und [printers]. Mit [homes] werden die Home-Verzeichnisse der auf dem Server-System bekannten Benutzer verfgbar gemacht. Diese Ressource entspricht immer dem Home-Verzeichnis, das dem Benutzer zugeordnet ist, der sich von einem Klientrechner aus anmeldet. Die Ressource [printers] entspricht allen auf dem System bekannten Druckern, also den Druckern, die in der Datei /etc/printcap deniert sind. In der Kongurationsdatei ist es an vielen Stellen mglich, Platzhalter zu verwenden, die erst zur Laufzeit des Servers durch Werte ersetzt werden. Die Platzhalter bestehen jeweils aus einem Prozentzeichen und einem Buchstaben. Die wichtigsten sind: %a Architektur des Klientsystems (Samba, Win95 oder WinNT). %I IP-Adresse des Klienten. %m NetBIOS-Name des Klienten. %M DNS-Name des Klienten. %u Benutzername des Linux/UNIX-Kontos, mit dem eine Operation (ein Zugriff) durchgefhrt wird. %U Benutzername, mit dem ein Klientsystem eine Operation durchfhrt. %P Wurzelverzeichnis der Ressource, mit der eine Operation durchgefhrt wird. %S Name der Ressource, mit der eine Operation durchgefhrt wird. %h DNS-Name des Servers. %L NetBIOS-Name des Servers. %v SAMBA-Version. %T Uhrzeit und Datum. Durch Verwendung des Platzhalters %m knnen so unterschiedliche Logdateien fr die verschiedenen Klientsysteme benutzt werden: log file = /var/log/samba.%m Wenn SAMBA mit dieser Kongurationsanweisung ausgefhrt wird und ein Ereignis oder eine Aktion protokolliert werden soll, wird zunchst geprft, wie der NetBIOS-Name des Rechners lautet, der die zu protokollierende Aktion angefordert hat. Die Zeichenkette %m wird dann durch diesen Namen ersetzt, sodass das Ereignis in einer Datei protokolliert wird, deren Name /var/log/samba.schulze lautet, wenn der NetBIOS-Name des zugreifenden Rechners schulze ist.

726

17 Debian GNU/Linux im Netz

Wichtige Einstellungen im Abschnitt [global] Im Abschnitt [global] wird eingestellt, wie SAMBA sich allgemein verhalten soll. Die wichtigsten Variablen und Optionen sind: printing = Typ Deniert, wie die Programme zur Kontrolle von Druckern aufgerufen werden. Dies hngt davon ab, welches Drucksystem installiert ist. Geben Sie fr Typ lprng an, wenn Sie das Paket lprng verwenden, oder bsd, wenn Sie das Paket lpr installiert haben. printcap name = Dateiname Gibt mit Dateiname an, wo sich die Datenbank verfgbarer Drucker bendet. Normalerweise ist dies die Datei /etc/printcap. load printers = yes|no Bestimmt, ob alle vorhandenen Drucker automatisch geladen und Klientsystemen verfgbar gemacht werden sollen. guest account = Benutzername Gibt mit Benutzername an, welches Benutzerkonto verwendet wird, wenn eine Anmeldung unter dem Benutzernamen Guest erfolgt. invalid users = Benutzer [Benutzer ...] Bestimmt, mit welchen Benutzernamen kein Zugriff auf den Server erfolgen darf. Hier sollte in der Regel root angegeben werden, damit von den Klientrechnern aus nicht mit den Rechten des Verwalters auf den Server zugegriffen werden kann. security = user | share | server | domain Dies ist eine der wichtigsten Variablen in der Kongurationsdatei. In MS-Windows-Netzen wird zwischen zwei Modi zur Authentizierung beim Zugriff auf eine Ressource unterschieden. Im share-Modus wird jeder Ressource ein Passwort zugeordnet, und jeder Benutzer oder jeder Rechner, der dieses Passwort kennt, kann die Ressource benutzen. Im user-Modus kann fr jede Ressource festgelegt werden, von welchen Benutzern auf die entsprechende Ressource zugegriffen werden darf, wobei jeder Benutzer ein eigenes Passwort hat. Der share-Modus wird von SAMBA zwar untersttzt, allerdings passt er schlecht in Linux/UNIXUmgebungen, wo fr jeden Zugriff auf eine Ressource und fr die Ausfhrung jedes Programms ein Benutzerkonto bentigt wird. Wenn SAMBA im shareModus betrieben wird, wird ein spezieller Algorithmus benutzt, mit dem ein Zugriff (bei dem ja kein Benutzername angegeben werden muss) einem gltigen Benutzerkonto auf dem SAMBA-Server zugeordnet wird. Im allgemeinen ist die Verwendung des user-Modus zu empfehlen. Klientrechner mssen in diesem Modus angeben, mit welchem Benutzernamen ein Zugriff stattnden soll, sodass SAMBA die Mglichkeit hat, das Benutzerkonto auf dem Linux/UNIX/LinuxRechner fr den Zugriff zu verwenden. Der user-Modus wird von allen neueren SMB-Klienten (ab MS-Windows 95 und NT 3.51) ausreichend untersttzt. Bei den Modi server und domain handelt es sich um zwei besondere Formen des user-Modus. Im server-Modus wird ein anderer MS-Windows-NT- oder SAMBA-Rechner benutzt, um die Authentizierung durchzufhren. Bei einem Zugriff werden Benutzername und Passwort von dem Klienten entgegengenommen und an einen anderen Server weitergereicht. Wenn dieser zweite Server

17.8 Ausgewhlte weitere Netzdienste

727

daraufhin die Auskunft erteilt, dass Benutzername und Passwort zusammenpassen, wird der Zugriff auf die Ressource gestattet. Dabei wird immer noch ein Linux/UNIX-Benutzerkonto auf dem SAMBA-Server bentigt. Der PasswortServer wird mit dem Schlsselwort password server = Servername angegeben, wobei Servername durch den SMB-Namen des Rechners zu ersetzen ist. Im domain-Modus verhlt sich SAMBA wie ein Mitglied einer MS-WindowsDomne. Zur Authentizierung fhrt es eine Abfrage des Domnen-Controllers durch, der dem SAMBA-Server mitteilt, ob Benutzername und Passwort bereinstimmen, und der weitere Informationen ber das Benutzerkonto verfgbar hlt. Ein einmal am Domnen-Controller authentizierter Benutzer kann dann auf alle Ressourcen zugreifen, die fr diesen Benutzer innerhalb der Domne verfgbar sind. Der domain-Modus eignet sich fr solche SAMBAServer, die innerhalb von MS-Windows-Domnen eingesetzt werden, die von NT-Servern aus verwaltet werden. Damit ein SAMBA-Server Mitglied einer NTDomne sein kann, muss er auf dem NT-Domnen-Controller eingetragen worden sein. Hinweise zur Einrichtung von SAMBA in einer NT-Domne nden Sie in der Datei /usr/share/doc/samba-doc/textdocs/DOMAIN_MEMBER.txt.gz aus dem Paket samba-doc. Auch im Domnen-Modus ist es erforderlich, Benutzerkonten auf dem SAMBA-Server zu haben, die den Benutzernamen entsprechen, mit denen Zugriffe durchgefhrt werden. Wenn Sie sich nicht sicher sind, welches der richtige Modus ist, sollten Sie security = user verwenden. workgroup = NAME Hiermit wird der Name der Arbeitsgruppe oder der Domne angegeben, deren Mitglied der SAMBA-Server sein soll. netbios name = NAME Hiermit wird der Netbios-Name des SAMBA-Servers festgelegt. Standardmig wird fr NAME der DNS-Name des Rechners benutzt, was eine sinnvolle Voreinstellung ist, da unterschiedliche MS-Windows- und TCP/IP-Namen verwirren. server string = Zeichenkette Hiermit wird angegeben, welche Beschreibung des SAMBA-Servers auf anderen Rechnern angezeigt werden soll. encrypt passwords = yes|no Bestimmt, ob der SAMBA-Server verschlsselte Passwrter untersttzen soll. SAMBA pegt bei der Verwendung verschlsselter Passwrter eine eigene Passwortdatenbank in /etc/samba/smbpasswd, die mit dem Programm smbpasswd bearbeitet wird. Wenn Sie mit verschlsselten Passwrtern arbeiten, knnen ltere Klienten, die mit unverschlsselten Passwrtern arbeiten, weiterhin auf den SAMBA-Server zugreifen. update encrypted = yes|no Wenn die Klientsysteme teils verschlsselte, teils unverschlsselte Passwrter verwenden, wird mit dieser Variablen bestimmt, dass das verschlsselte Passwort eines Benutzers automatisch erzeugt werden soll, wenn er sich mit einem unverschlsselten Passwort (von einem anderen Rechner aus) anmeldet. Bei der Migration von unverschlsselten zu verschlsselten Passwrtern wird so vermieden, dass fr jeden Benutzer von Hand ein verschlsseltes Passwort angelegt werden muss.

728

17 Debian GNU/Linux im Netz

wins support = yes|no Diese Variable bestimmt, ob der SAMBA-Server auch als WINS-Server arbeiten soll. Wenn Sie in Ihrem MS-Windows-Netz bereits einen WINS-Server haben, sollten Sie hier no angeben. wins server = IP-Adresse|Rechnername Wenn ein anderer WINSServer benutzt werden soll, ist hier mit IP-Adresse die IP-Adresse oder mit Rechnername der DNS-Name des Rechners anzugeben, der den WINS-Server zur Verfgung stellt. Wenn der SAMBA-Server selbst den WINS-Server bereitstellt, ist diese Direktive nicht zu verwenden. domain master = yes|no Gibt an, ob der SAMBA-Server als domain master browser arbeiten soll. Innerhalb einer Arbeitsgruppe oder Domne darf es nur einen domain master browser geben. Wenn Sie den Server innerhalb einer Domne einrichten, die von einem NT-PDC kontrolliert wird, sollten Sie den NT-PDC und nicht den SAMBA-Server als domain master browser verwenden. local master = yes|no Gibt an, ob der SAMBA-Server als local master browser, als Verwalter der browse list innerhalb eines Subnetzes dienen soll. Der domain master browser sollte in der Regel auch als local master browser eingesetzt werden. preferred master = yes|no Hiermit wird angegeben, ob dieser Server sich nach seinem Start darum bewerben soll, local master browser zu werden. Diese Variable muss auf yes gesetzt werden, wenn der Rechner tatschlich als local master browser eingesetzt wird. Allerdings sollten sich innerhalb eines Subnetzes nicht allzuviele Rechner um den Posten bewerben, weil sonst eine unntige Last durch wiederholte Aushandlungsprozesse erzeugt wird. os level = Zahl Gibt mit Zahl an, als welche MS-Windows-Version der SAMBA-Server sich ausgeben soll. Die MS-Windows-Versionsnummer ist bei der Aushandlung, welcher Rechner Verwalter der browse list sein soll, bedeutsam. Der Wert 33 entspricht einem MS-Windows-NT-Server. Mit dem Wert 65 wird sichergestellt, dass der Rechner jede Wahl gewinnt. name resolve order = Methode [Methode ...] Hiermit wird die Reihenfolge von Verfahren festgelegt, mit denen MS-Windows-Namen (NetBIOS-Namen) in IP-Adressen aufgelst werden. Fr Methode sind folgende Schlsselwrter verwendbar: lmhosts Bei diesem Verfahren werden die IP-Adressen in der Datei /etc/lmhosts nachgeschlagen. host Die Namen werden wie DNS-Namen behandelt und nach dem Verfahren, wie es durch die Datei /etc/nsswitch.conf festgelegt ist, aufgelst. Das heit in der Regel, dass zunchst in der Datei /etc/hosts nachgesehen und danach eine DNS-Abfrage durchgefhrt wird. Dieser Weg ist nur dann sinnvoll, wenn NetBIOS-(SMB-)Namen und DNS-Namen bereinstimmen. wins Es wird der mit wins server angegebene WINS-Server benutzt. bcast Um einen Namen aufzulsen, wird ein Broadcast durchgefhrt. Mit diesem Verfahren knnen nur Namen im eigenen Subnetz aufgelst werden. lm announce true|false|auto Mit dieser Variablen wird bestimmt, ob SAMBA sich selbst regelmig bei IBM-OS/2-Rechnern bekannt macht. Dies ist notwendig, damit SAMBA-Server in der browse list von IBM-OS/2-

17.8 Ausgewhlte weitere Netzdienste

729

Rechnern erscheinen. Der Wert auto bestimmt, dass SAMBA beobachtet, ob andere Rechner im Netz dieses Verhalten zeigen und es ebenfalls tut, wenn es solche Rechner gibt. dns proxy = yes|no Wenn der Server als WINS-Server arbeitet, kann er Rechnernamen, die ihm noch nicht bekannt sind, durch DNS-Abfragen auflsen. Das Verhalten wird durch dns proxy = yes eingeschaltet. case sensitive = yes|no Bestimmt, ob SAMBA zwischen Gro- und Kleinschreibung bei Dateinamen unterscheidet. Wenn case sensitive = no gesetzt ist, kann SAMBA die Datei dokument1.doc an einen Klienten liefern, der die Datei DOKUMENT1.doc angefordert hat. Dieses Verhalten ist mit allen MSWindows-Betriebssystemen gewnscht. preserve case = yes|no Bestimmt, ob die Gro- und Kleinschreibung von Dateinamen beibehalten werden soll. Dies fhrt dazu, dass eine Datei, die von einem MS-Windows-Rechner aus auf dem SAMBA-Server beispielsweise unter dem Namen Dokument1.doc gespeichert wird, tatschlich nicht als DOKUMENT1.DOC gespeichert wird. Trotzdem wird die Datei Dokument1.doc geffnet, falls der MS-Windows-Rechner spter auf die Datei unter dem Namen dOKUMENt1.DOC zugreift. short preserve case = yes|no Diese Variable entspricht der vorgenannten, mit dem Unterschied, dass sie sich auf kurze Dateinamen (8.3) bezieht. unix password sync = true|false Wenn von einem Klientrechner aus ein Passwort gendert wird, wird bei Verwendung verschlsselter Passwrter standardmig nur das Passwort in der Datei /etc/samba/smbpassword gendert. Die Folge ist, dass es danach wahrscheinlich zwei unterschiedliche Passwrter fr denselben Benutzer gibt, nmlich eines zum Zugriff von MS-WindowsRechnern aus und eines zur direkten Linux/UNIX-Anmeldung an dem Server. Wenn dieser Parameter auf true oder yes gesetzt wird, wird whrend der nderung eines Passworts ein externes Programm aufgerufen, mit dem das Linux/UNIX-Passwort zu dem entsprechenden Account ebenfalls gendert wird. Welches Programm zur nderung des Linux/UNIX-Passwortes aufgerufen wird und wie es aufgerufen wird, lsst sich mit den beiden Anweisungen passwd program und passwd chat spezizieren. Die Werte hierfr mssen angepasst werden, wenn zur Linux/UNIX-Benutzerauthentizierung NIS benutzt wird. Umgekehrt wird bei Vernderung des Linux/UNIX-Passworts, das MS-Windows(bzw. SAMBA-)Passwort nicht gendert. max log size = Zahl Hiermit wird mit Zahl in Kilobyte angegeben, welche Gre die Logdateien (in /var/log/smb und /var/log/nmb) erreichen drfen, bevor sie rotiert, gesichert und durch eine neue leere Datei ersetzt werden. debug level = Zahl Gibt mit Zahl an, welche Meldungen von SAMBA in den Log-Dateien protokolliert werden. Je hher die Zahl, desto mehr Meldungen werden ausgegeben. Im allgemeinen wird empfohlen, hier den Wert 0 oder 1 zu verwenden, jedoch einen hheren Wert (3 oder 5), wenn ein Problem untersucht werden soll. log file = Dateiname Gibt den Namen der Protokoll-Datei an.

730

17 Debian GNU/Linux im Netz

host allow = IP-Nummer|DNS-Name [IP-Nummer|DNS-Name ...] Mit dieser Variablen kann einer Gruppe von Rechnern das Recht zum Zugriff auf diesem SAMBA-Server erteilt werden. Standardmig drfen alle Rechner auf den Server zugreifen. Rechner knnen durch ihre DNS-Namen oder durch ihre IP-Adressen speziziert werden. Auerdem ist es mglich, Gruppen von Rechnern durch die Angabe von Subnetzen (wie 134.102.100.) oder durch die Angabe von DNS-Domnennamen (wie .springer.de) anzugeben. Zustzlich sind die Schlsselwrter ALL und EXCEPT erlaubt. Beispiel: host allow = ALL EXCEPT 192.168.10. Es sollte mglich sein, von dem lokalen Rechner aus auf den SAMBA-Server zuzugreifen. Unter Umstnden ist es notwendig, localhost in die Liste mit aufzunehmen. Sie knnen diesen Zugriff besser ber die Dateien /etc/hosts.allow und /etc/hosts.deny kontrollieren, falls Sie SAMBA ber den inetd starten (siehe auch S. 672). host deny = IP-Nummer|DNS-Name [IP-Nummer|DNS-Name ...] Mit dieser Variablen wird bestimmten Rechnern der Zugriff auf den Server verwehrt. Rechnernamen werden auf die gleiche Weise angegeben wie bei der Variablen host allow. interfaces = IP-Adresse/Netzmaske|interface [...] Hiermit wird bestimmt, welche Netzinterfaces SAMBA zur Kommunikation von browse lists, Namensregistrierung u. a. benutzt. Standardmig werden alle Interfaces, die im System vorhanden, konguriert und broadcastfhig sind, mit Ausnahme des Loopback-Interfaces benutzt. Wenn ein Rechner mit mehreren Subnetzen verbunden ist und der SAMBA-Server nur in einigen dieser Subnetze zur Verfgung stehen soll, ist es sinnvoll, diese Option zu benutzen. Interfaces werden durch ihren Namen (eth0, ippp0) oder durch ein IP-Adresse-Netzmaske-Paar (192.168.10.0/255.255.255.0) angegeben. bind interfaces only = yes|no Wenn diese Variable auf yes gesetzt wird, beantwortet SAMBA nur Anfragen, welche ber die mit der Variablen interfaces spezizierten Interfaces eingehen. Im allgemeinen ist dieses Verhalten nicht erwnscht. Falls Sie bind interfaces only = yes verwenden, sollten Sie das Interface lo der Interfaceliste (Variable interfaces) hinzufgen, damit vom lokalen Rechner aus auf den Server zugegriffen werden kann. domain logons = yes|no Wenn dieser Parameter mit dem Wert yes benutzt wird, kann der SAMBA-Server Netzanmeldungen von MS-Windows-Rechnern verwalten. Er kann dann die Benutzerprole von solchen Rechnern speichern und Skripte (Batch-Dateien) aufbewahren, die nach der Anmeldung eines Benutzers an einem MS-Windows-Rechner dort ausgefhrt werden. Damit stellt SAMBA den Klienten einen wesentlichen Teil der Funktionalitt zur Verfgung, die Aufgabe eines Primary Domain Controller (PDC) ist. Mehr Informationen ber die Einrichtung eines Logon-Servers nden Sie in der Datei /usr/share/doc/samba-doc/textdocs/DOMAIN.txt.gz, falls Sie das Paket sambadoc installiert haben. Wenn Sie SAMBA nur einsetzen, um Dateien oder Drucker zur Verfgung zu stellen, brauchen sie diese Variable nicht zu verwenden.

17.8 Ausgewhlte weitere Netzdienste

731

Freigeben von Ressourcen Ressourcen wie Drucker oder Verzeichnisse, die von anderen Rechnern aus benutzt werden sollen, werden ebenfalls in der Datei /etc/samba/smb.conf deniert. Fr jede Ressource ist ein eigener Abschnitt anzulegen, der den Namen der Ressource trgt, z. B [Daten]. Es gibt zwei besondere Formen von Ressourcen, nmlich [homes] und [printers]. Die Ressource [homes] entspricht automatisch dem Home-Verzeichnis des Benutzers auf dem Linux/UNIX-System, der auf die Ressource zugreift. Diese Ressource kann entweder unter dem Namen homes von Klientsystemen aus angesprochen werden oder unter dem Namen des betreffenden Benutzers. Um Verwechslungen zu vermeiden, sollten keine Ressourcen deniert werden, die Benutzernamen tragen. Fr die Denition einer Ressource sind folgende Variablen und Optionen von besonderer Bedeutung: path = Verzeichnis Gibt den Namen des Verzeichnisses an, welches das Wurzelverzeichnis der Ressource ist. Die Variable muss bei allen Ressourcen, mit Ausnahme der Ressource [homes] gesetzt werden. Bei Druckern wird hiermit das Verzeichnis angegeben, in dem Druckdateien zwischengelagert werden. browsable = yes|no Bestimmt, ob die Ressource auf Klientrechnern als verfgbar angezeigt wird. Wenn browsable = no benutzt wird, wird die Ressource nicht angezeigt. Sie kann nur benutzt werden, wenn ihr Name explizit angegeben wird (mit einem net use-Kommando unter MS-Windows). comment = Kommentar Gibt mit Kommentar eine Beschreibung der Ressource an. guest ok = yes|no Gibt an, ob die Ressource ohne Passwort benutzt werden darf. Der Zugriff auf die Ressource erfolgt dann mit dem Benutzerkonto, das mit der Anweisung guest account angegeben wurde. guest account = Benutzername Gibt den Namen des Benutzers an, mit dessen Konto auf die Ressource zugegriffen wird, wenn sie als Gast (ohne Passwort) benutzt wird. Diese Variable berschreibt die allgemeine Einstellung durch guest account im globalen Teil der Kongurationsdatei fr die betreffende Ressource. log level = Zahl Der Parameter hat die gleiche Bedeutung wie im Abschnitt [global]. Hier bezieht er sich nur auf zu protokollierende Meldungen bezglich der Ressource. Dadurch ist es einfacher, Probleme im Zusammenhang mit einer Ressource zu untersuchen. read only = yes|no Bestimmt, ob auf die Ressource auch schreibend zugegriffen werden darf (read only = no). host allow = IP-Nummer|DNS-Name [IP-Nummer|DNS-Name ...] Die Anweisung hat die gleiche Bedeutung wie im globalen Abschnitt mit dem Unterschied, dass sie nur fr die Ressource gilt. host deny = IP-Nummer|DNS-Name [IP-Nummer|DNS-Name ...] Die Anweisung hat die gleiche Bedeutung wie im globalen Abschnitt mit dem Unterschied, dass sie nur fr die Ressource gilt.

732

17 Debian GNU/Linux im Netz

create mask = Maske Legt mit Maske fest, mit welchen Rechten Dateien erzeugt werden. Bei Maske handelt es sich um eine vierstellige Oktalzahl, mit welcher die Dateiattribute, die Rechte des Besitzers, der Gruppe sowie die Rechte der anderen Benutzer beschrieben wird. Der Aufbau solcher Zahlen ist im Referenzteil im Abschnitt zum Kommando chmod (S. 782) beschrieben. Beispiel: create mask = 0755. directory mask = Maske Die Anweisung hat die gleiche Bedeutung wie create mask mit dem Unterschied, dass sie sich auf zu erzeugende Verzeichnisse bezieht. available = yes|no Bestimmt, ob die Ressource tatschlich zur Verfgung steht (Voreinstellung). Mit available = no lassen sich Ressourcen einfach sperren, ohne dass sie aus der Kongurationsdatei gelscht werden mssen. volume = Zeichenkette Hiermit kann die von DOS-/MS-Windowsbasierten Betriebssystemen benutzte Datentrgerbezeichnung emuliert werden. Dies ist beispielsweise dann ntzlich, wenn eine CD mit SAMBA zur Verfgung gestellt wird und darauf bendliche Programme nur funktionieren, wenn die CD eine bestimmte erwartete Datentrgerbezeichnung hat. printable = yes|no Hiermit wird bestimmt, ob die Ressource zum Drucken benutzt werden kann. Drucker sollten printable = yes und read only = yes gesetzt haben. printer name = Name Gibt den Namen des Linux/UNIX-Druckers an, der mit der Ressource zur Verfgung gestellt wird. Der Namen muss in der Datei /etc/printcap deniert sein. Dieser Eintrag braucht in der Ressource [printers] nicht vorhanden zu sein, weil die Ressource alle in /etc/printcap denierten Drucker zur Verfgung stellt. Hier ein Beispiel fr die Freigabe eines Verzeichnisses. Das Verzeichnis muss existieren. Wenn Benutzer in diesem Verzeichnis Daten lesen, ablegen oder verndern sollen, muss das Verzeichnis mit den entsprechenden Rechten ausgestattet sein.
[DATEN] path = /home/daten comment = Gemeinsame Dateien fr alle Mitarbeiter browsable = yes read-only = no create mask = 0775 directory mask = 0775

Und ein Beispiel fr die Freigabe eines Druckers. Temporre Dateien werden im Beispiel im Verzeichnis /tmp zwischengespeichert:
[LASERJET] path = /tmp comment= Laserjet in Etage II, Raum 70 printable = yes read-only = yes browsable = yes guest ok = yes create mask = 0700

17.8 Ausgewhlte weitere Netzdienste

733

berprfen der Kongurationsdatei Im Paket samba ist das Programm testparm enthalten, das die Kongurationsdatei /etc/samba/smb.conf auf syntaktische Korrektheit berprft und die vollstndige Konguration ausgibt. Die Ausgabe enthlt auch solche Kongurationsanweisungen, die in /etc/samba/smb.conf nicht enthalten sind. Es kann die komplette Konguration geprft und festgestellt werden, welche Werte SAMBA als Voreinstellung fr bestimmte Variablen und Anweisungen verwendet. Neustart von SAMBA nach nderung der Konguration Wie bei den meisten Serverprogrammen ist es auch bei SAMBA notwendig, dem Programm mitzuteilen, wenn sich Kongurationsdateien verndert haben. Falss Sie SAMBA als eigenstndigen Serverprozess ausfhren, geschieht dies durch Eingabe des folgenden Kommandos: debian:~# /etc/init.d/samba restart Falls Sie SAMBA ber den inetd starten, reicht es aus, die gerade ausgefhrten SAMBA-Prozesse zu beenden. Der inetd startet SAMBA neu, sobald es erforderlich ist. Zum Beenden aller SAMBA-Prozesse geben Sie folgendes Kommando ein: debian:~# killall nmbd smbd Arbeiten mit verschlsselten Passwrtern Wie bereits angesprochen pegt SAMBA eine eigene Passwortdatenbank, wenn mit verschlsselten Passwrter gearbeitet wird, sofern die Variable encrypted passwords auf yes gesetzt ist. Whrend der Installation des Pakets kann eine Passwortdatenbank erzeugt werden, in der Eintrge fr alle Benutzer des Systems vorhanden sind, die eigentlichen Passwrter jedoch fehlen. Alle Benutzerkonten sind deswegen fr den Zugriff ber SAMBA gesperrt. Die Passwrter fr Benutzer, die ber SAMBA auf den Server zugreifen drfen, mssen vom Verwalter von Hand mit dem Kommando smbpasswd in die Datei eingetragen werden. Dazu ist dem Programm der Name des Benutzers zu bergeben, fr den ein Passwort eingetragen werden soll. Um beispielsweise ein Passwort fr den Benutzer jochen anzulegen, ist das Programm folgendermaen aufzurufen: debian:~# smbpasswd jochen Danach ist das Passwort fr den Benutzer zur Sicherheit zweimal einzugeben. Es erscheint whrend der Eingabe nicht auf dem Bildschirm. Nun sollte es mglich sein, das Home-Verzeichnis des Benutzers von einem anderen Rechner in der Domne aus einzubinden. Wenn dem System neue Benutzer hinzugefgt worden sind und diese ebenfalls in die Datei /etc/smbpasswd aufgenommen werden sollen, erfolgt dies mit der Option -a des Programm smbpasswd. Um beispielsweise den Benutzer felix in die Datei aufzunehmen und ihm ein neues SMB-Passwort zuzuweisen, ist folgendes Kommando zu verwenden (Zuvor muss das Linux/UNIX-Benutzerkonto fr diesen Benutzer erzeugt worden sein.):

734

17 Debian GNU/Linux im Netz

debian:~# smbpasswd -a felix Gewhnliche Benutzer knnen das Programm smbpasswd verwenden, um ihr eigenes SAMBA-Passwort zu verndern. Das Linux/UNIX-Passwort wird dabei automatisch ebenfalls gendert, wenn Sie unix password sync = true in der Datei /etc/samba/smb.conf verwenden. Wenn Sie NIS einsetzen, ist zustzlich dafr zu sorgen, dass die Passwrter mit der Datenbank auf dem NIS-Server synchronisiert werden. Mehr Hinweise zu smbpasswd nden Sie in der Manualseite zu dem Programm. Alternativ zur Verwendung verschlsselter Passwrter knnen Sie MSWindows 95/98 und MS-Windows NT 4 dazu bewegen, unverschlsselte Passwrter zu benutzen. Im Paket samba-doc benden sich zu diesem Zweck die beiden Dateien /usr/share/doc/samba-doc/NT4_PlainPassword.reg und /usr/share/doc/sambadoc/Win95_PlainPassword.reg. Je nachdem, welches der beiden MS-WindowsBetriebssysteme Sie verwenden, reicht es aus, die richtige Datei auf den MSWindows-Rechner zu kopieren und sie dort aus dem Explorer heraus per Doppelklick zu ffnen. Dadurch wird die MS-Windows-Registrierung so gendert, dass unverschlsselte Passwrter benutzt werden. Sie mssen MS-Windows neu starten, um die nderungen wirksam werden zu lassen. Problembehebung Wenn der Zugriff auf den SAMBA-Server nicht sofort funktionieren sollte, berprfen Sie zunchst, ob es mglich ist, den Server vom lokalen Rechner aus anzusprechen. Dazu wird das Programm smbclient bentigt, das in dem gleichnamigen Paket enthalten ist. Geben Sie folgendes Kommando ein, um eine Liste der freigegebenen Ressourcen des SAMBA-Servers auf dem lokalen Rechner zu erhalten: debian:~# smbclient -U% -L localhost Daraufhin sollte eine Ausgabe erscheinen, die sinngem der folgenden entspricht:
Domain=[WINNET] OS=[Unix] Server=[Samba 2.0.6] Sharename --------homes IPC$ hp1100 Server --------BEETHOVEN Workgroup --------WINNET Type ---Disk IPC Printer Comment ------Home Directories IPC Service HP Laserjet 1100 300dpi

Comment ------beethoven server (Samba 2.0.6) Master ------BEETHOVEN

Wichtig ist lediglich, dass diese Ausgabe berhaupt erscheint. Wenn dies nicht der Fall ist, sollten Sie prfen, ob SAMBA tatschlich auf Ihrem Rechner ausgefhrt

17.8 Ausgewhlte weitere Netzdienste

735

wird. Prfen Sie dazu, ob Sie SAMBA als eigenstndigen Serverprozess ausfhren oder ber den inetd starten. Im ersten Fall knnen Sie SAMBA durch die Eingabe des folgenden Kommandos neu starten: debian:~# /etc/init.d/samba restart Im zweiten Fall (inetd) sollten Sie prfen, ob sich die Eintrge zum Start von SAMBA in der Datei /etc/inetd.conf benden, und sicherstellen, dass sie nicht auskommentiert sind. Auerdem muss der inetd ausgefhrt werden. Falls SAMBA ausgefhrt wird und Sie die gezeigte Ausgabe trotzdem nicht erhalten, sollten Sie die grundlegende Netzeinrichtung des Rechners sowie die Kongurationsdatei /etc/samba/smb.conf berprfen. Wenn SAMBA vom lokalen Rechner aus angesprochen werden kann, jedoch nicht von einem anderen Rechner aus, sollten Sie die Netzeinstellungen des Klientrechners berprfen. Dabei ist zunchst zu untersuchen, ob der Klientrechner dieselbe Arbeitsgruppe oder Domne verwendet wie der SAMBA-Server. Dann prfen Sie, ob der MS-Windows-Rechner NetBIOS over TCP/IP benutzt. Wenn der MSWindows-Rechner mit mehreren Netzadaptern ausgestattet ist, ist zu berprfen, ob TCP/IP an den richtigen Netzadapter gebunden ist. Auch ein Modem (DF-Adapter) wird als Netzadapter eingeordnet, und es kann sein, dass Sie TCP/IP zwar installiert haben, dieses Protokoll jedoch lediglich fr die Verwendung mit dem Modem konguriert ist. Testen Sie auch, ob die TCP/IP-Verbindung zwischen MS-Windows-Rechner und SAMBA-Server funktioniert. Hierzu verwenden Sie unter Linux oder unter MSWindows das Kommando ping (S. 845). Wenn feststeht, dass die Netzeinstellungen des Klientsystems stimmen, ist zu prfen, ob der SAMBA-Server von dem MS-Windows-Rechner gesehen wird. Hierzu ist unter MS-Windows am DOS-Prompt folgendes Kommando einzugeben: C:\> net view \\server Hierbei mssen Sie server durch den NetBIOS-Namen des SAMBA-Servers ersetzen. Es sollte dann eine Ausgabe erscheinen, die ungefhr wie folgt aussieht:
Freigegebene Ressourcen auf \\SERVER Freigabename Typ Kommentar -----------------------------------------------------homes Platte Home Directories hp4100 Druck HP Laserjet 4100 600dpi Der Befehl wurde ausgefhrt.

Wichtig ist nur, dass Sie den Server sowie die freigegebenen Ressourcen berhaupt sehen. Falls das nicht der Fall ist, spricht vieles dafr, dass mit der Namensauflsung etwas nicht richtig funktioniert. Wenn Sie WINS einsetzen und der SAMBA-Server auch als WINS-Server fungiert, ist sicherzustellen, dass der MSWindows-Rechner den SAMBA-Server als WINS-Server benutzt. Wenn Sie einen

736

17 Debian GNU/Linux im Netz

anderen WINS-Server benutzen, ist zu berprfen, ob SAMBA diesen Server benutzt. Eventuell mssen Sie die Datei lmhosts im MS-Windows-Verzeichnis des Klientrechners erzeugen oder anpassen. Schlielich ist zu prfen, ob Sie eine Ressource vom SAMBA-Server einbinden knnen. Wenn Ihr SAMBA-Server die Ressource homes zur Verfgung stellt, melden Sie sich zunchst mit demselben Benutzernamen und Passwort an den MSWindows-Rechner an, das Sie auch auf dem SAMBA-Server verwenden. Versuchen Sie danach, Ihr Home-Verzeichnis unter MS-Windows mit dem folgenden Kommando einzubinden: C:\> net use i: \\server\homes Auch hier muss der Namen des SAMBA-Servers angepasst werden. Wenn dem Laufwerksbuchstaben i: bereits eine Ressource zugeordnet ist, dann ist an Stelle von i: ein anderer Laufwerksbuchstabe zu verwenden. Danach sollten Sie am DOS-Prompt auf das Laufwerk i: wechseln und sich mit dir den Inhalt Ihres HomeVerzeichnisses anzeigen lassen. Wenn es hierbei Probleme gibt, sollten Sie berprfen, ob Sie dem Rechner den Zugriff auf den SAMBA-Server gestattet haben (prfen Sie die Angaben hinter hosts allow und hosts deny in der Datei /etc/samba/smb.conf ) und ob sich die Benutzernamen auf dem MS-Windows- und dem Linux-Rechner nicht unterscheiden. Als letztes ist zu berprfen, ob Sie das Netz durchsuchen knnen. Doppelklicken Sie dazu auf das Icon Netzwerk auf der Arbeitsoberche des MSWindows-Rechners. Es sollte sich daraufhin ein Fenster ffnen, in dem die Rechner Ihrer Arbeitsgruppe angezeigt werden. Der SAMBA-Server sollte sich darunter benden. Sie knnen dann auf den SAMBA-Server doppelklicken, woraufhin die verfgbaren Ressourcen des Servers angezeigt werden sollten. Zustzliche Hinweise zur Fehlersuche nden Sie in der Datei /usr/share/doc/samba-doc/textdocs/DIAGNOSIS.txt.gz, die im Paket samba-doc enthalten ist. Konguration von SAMBA mit swat Im Paket swat ist ein System zur Verwaltung von SAMBA ber einen Web-Browser enthalten. Das Paket stellt einen einfachen Web-Server zur Verfgung, der ber den Port 901 des eigenen Rechners angesprochen wird. Von diesem Server knnen mit einem Browser Formulare bezogen werden, in denen die Einstellungen fr SAMBA vorgenommen werden. Wenn die Formulare an den Server zurckgeschickt werden, aktualisiert dieser die SAMBA-Konguration. Der swat-Server wird ber den inetd gestartet. Aus Sicherheitsgrnden ist der Eintrag fr das Programm in der Datei /etc/inetd.conf standardmig jedoch auskommentiert. Sie mssen das folgende Kommando eingeben, um swat benutzen zu knnen: debian:~# update-inetd - -enable swat Nach Eingabe des Kommandos kann von berall auf den swat-Server zugegriffen werden. Sie sollten den Eintrag entweder deaktivieren, wenn Sie ihn nicht mehr

17.8 Ausgewhlte weitere Netzdienste

737

bentigen, oder besser Eintrge in den Dateien /etc/hosts.allow und /etc/hosts.deny vornehmen, mit denen die Zugriffsmglichkeit auf swat beschrnkt wird (siehe Seite 672). Nun knnen Sie swat benutzen, indem Sie einen Web-Browser starten und den URL http://localhost:901/ ffnen. Es erscheint eine Aufforderung zur Anmeldung an den Server. Sie knnen swat eingschrnkt benutzen, wenn Sie hier den Benutzername und das Passwort eines gewhnlichen Benutzerkontos angeben. Zur Verwaltung des Systems ist es notwendig, sich als root anzumelden.

Abbildung 17.12. Konguration von SAMBA mit swat.

Danach erscheint die in Abbildung 17.12 gezeigte Seite. Im oberen Teil der Seite bendet sich eine Werkzeugleiste, mit der einzelne Bereiche der Konguration ausgewhlt werden. Um den NetBIOS-Namen Ihres Servers zu verndern, ist in der Werkzeugleiste das Icon Globals anzuklicken. Es erscheint eine Seite, in der alle wichtigen globalen Einstellungen vorgenommen werden knnen. Dort kann hinter netbios name der neue Name eingegeben werden. Zum Schluss muss die Schaltche Commit Changes bettigt werden, damit swat Ihre nderungen in die Datei /etc/samba/smb.conf bernimmt.

738

17 Debian GNU/Linux im Netz

Durch Anklicken der Schaltche Advanced View ist es zudem mglich, fast alle Einstellungen von SAMBA zu beeinussen. Verzeichnisfreigaben lassen sich erzeugen, ndern und lschen, indem das Icon Shares angeklickt wird. Druckerfreigaben erreicht man ber das Icon Printers. Eine besonders angenehme Eigenschaft des Kongurationssystems besteht darin, dass der Hilfetext zu jeder Einstellung direkt verfgbar ist und nicht erst in der Manualseite smb.conf gesucht werden muss. Linux als SMB-Klientrechner Selbstverstndlich ist es auch mglich, von einem Linux-System aus Verzeichnisse oder Drucker einzubinden, die von einem MS-Windows-Rechner oder einem anderen System per SMB freigegeben wurden. Damit Sie solche Dateisysteme einbinden knnen, mssen Sie das Paket smbfs installieren. Auerdem ist es notwendig, die Untersttzung fr SMB-Dateisysteme entweder fest in den Kern integriert zu haben oder ber das entsprechende Modul smbfs zu verfgen. SMB-Dateisysteme werden dann mit folgendem Kommando eingebunden: smbmount //Rechnername/Ressource Verzeichnis [ -o Option[,Option ...] ] Dabei ist fr Rechnername der NetBIOS-Rechnername des Rechners anzugeben, der das einzubindende Verzeichnis zur Verfgung stellt, und mit Ressource ist der Name der Ressource anzugeben. Die verfgbaren Ressourcen eines Rechners lassen sich mit smbclient anzeigen. Mit Verzeichnis ist der Name des Verzeichnisses anzugeben, in das die Ressource eingebunden werden soll (siehe auch die Erluterungen zum Kommando mount auf Seite 835). Die Optionen des Programms sind in der Manualseite smbmount-2.2.x beschrieben; die wichtigsten sind: username=Name Gibt mit Name den Benutzernamen an, unter dem der Zugriff erfolgt. password=Passwort Gibt mit Passwort das Passwort fr die Ressource bzw. das zum Benutzerkonto gehrende Passwort an. ip=IP-Adresse Hiermit kann die IP-Adresse des Rechners angegeben werden, der die einzubindende Ressource freigibt. Dies ist hilfreich, wenn die NetBIOSNamensauflsung nicht richtig funktioniert. Um das Verzeichnis daten, das sich auf dem Server mit dem NetBIOS-Namen ntbox bendet, in das Verzeichnis /home/daten auf dem lokalen Rechner einzubinden, ist folgendes Kommando einzugeben, wenn der Zugriff auf den Rechner mit dem Benutzernamen meier und dem Passwort sagnich geschehen soll: debian:~# smbmount //ntbox/daten /home/daten -o username=meier,password=sagnich Wenn es hierbei zu Problemen kommt, ist zunchst zu berprfen, ob der NetBIOS-Name aufgelst werden kann (Kongurationsdatei /etc/lmhosts, WINSKonguration usw.), dann sollte geprft werden, ob die TCP/IP-Verbindung zwischen beiden Rechnern funktioniert (ping (S. 845)) und ob die Berechtigung besteht, mit dem angegebenen Benutzernamen und Passwort auf die Ressource zuzugreifen.

17.8 Ausgewhlte weitere Netzdienste

739

Der Vorgang lsst sich wie jeder andere mount-Vorgang automatisieren, indem ein entsprechender Eintrag in die Datei /etc/fstab geschrieben wird. Fr das Beispiel lautet der Eintrag: //ntbox/daten /home/daten smbfs username=meier,password=sagnich 0 0 Ein Beispiel, wie ein Drucker, der an einen MS-Windows-Rechner angeschlossen ist, eingebunden wird, ist auf Seite 708 beschrieben. smbclient Das Programm smbclient, das bisher lediglich zum Testen von SMB-Servern benutzt wurde, stellt im wesentlichen ein Programm dar, mit dem es hnlich wie mit FTP (siehe Seite 667) mglich ist, auf SMB-Server zuzugreifen. Darber hinaus ermglicht das Programm, auf freigegebene Drucker zu drucken oder die Dateien einer Ressource mit tar (S. 870) zu archivieren. Letztere Eigenschaft macht das Programm interessant zur Sicherung von Daten, die sich auf verschiedenen MSWindows-Rechnern benden und zentral auf einem Linux-Rechner gesichert werden sollen. Die Syntax des Programms und die Kommandos sind in der Manualseite smbclient beschrieben. Weiterfhrende Dokumentation SAMBA und MS-Windows-Netze stellen ein Thema dar, dem mehrere Bcher gewidmet sind. Wenn Sie mehr Informationen bentigen, dann empehlt sich zunchst die Installation des Paketes samba-doc, in dem sich ausfhrliche Dokumente benden, welche die verschiedenen Aspekte von MS-Windows-Netzen behandeln. ber die Web-Adresse http://www.samba.org/ gelangen Sie an einen der zahlreichen SAMBA-Spiegelserver, wo Sie neueste Informationen und Entwicklerversionen des Pakets nden sowie die Mglichkeit zum Einschreiben in MailingListen. Unter dem URL http://sunsite.dk/samba/books.html nden Sie eine Bcherliste zum Thema SAMBA und nebenan einige Bcher online. 17.8.3 Netatalk Netzdienste fr pfel Ebenso wie MS-Windows- und IBM-OS/2-Rechner verwenden ltere AppleMacintosh-Rechner ein eigenes Netzprotokoll, das Appletalk genannt wird. Das Protokoll erlaubt ebenfalls die Freigabe von Dateien und Druckern. Mit dem Paket netatalk steht unter Debian GNU/Linux Software zur Verfgung, mit der ein Appletalk-Server eingerichtet werden kann. Damit werden in einem heterogenen Netz Netzdienste fr Linux/UNIX-Rechner (alle TCP/IP-Dienste), fr MSWindows-Rechner (SAMBA) und fr Apple-Rechner (netatalk) angeboten. Wenn ber alle Dienste die Home-Verzeichnisse aller Benutzer exportiert werden, wird so sichergestellt, dass alle Benutzer von allen Rechnern aus auf ihre persnlichen Daten zugreifen knnen. Informationen ber netatalk nden Sie im Internet unter der Adresse http://www.anders.com/projects/netatalk/ sowie unter http://netatalk.sourceforge.net/.

740

17 Debian GNU/Linux im Netz

Einrichtung von netatalk Um netaltalk betreiben zu knnen, wird die Untersttzung fr appletalk im Kern (Option Appletalk DDP) bentigt. In den Standard-Kernen ist diese Untersttzung als Modul enthalten. Damit es automatisch geladen wird, muss folgende Zeile in der Datei /etc/modutils/aliases lokalisiert werden: # alias net-pf-5 off # DDP / appletalk Die Zeile darf nicht entkommentiert sein, sie muss mit einem Doppelkreuz beginnen. Danach ist das Kommando update-modules auszufhren, um die Konguration fr modprobe zu aktualisieren: debian:~# update-modules Wenn Sie einen eigenen Kern verwenden, in dem die Appletalk-Untersttzung fest eingebaut ist, erbrigt sich die Anpassung. Danach knnen Sie das Paket netatalk installieren, die netatalk-Dienste werden dabei automatisch gestartet. Die Kongurationsdateien fr netatalk benden sich nach der Installation im Verzeichnis /etc/netatalk: AppleVolumes.default In dieser Datei wird festgelegt, welche Verzeichnisse den Apple-Rechnern zur Verfgung gestellt werden. Auerdem ist es mglich, unterschiedliche Optionen fr die Verzeichnisse zu spezizieren. Eine Beschreibung des Formats dieser Datei bendet sich in der Datei. Standardmig wird das Home-Verzeichnis desjenigen Benutzers angeboten, der sich ber Appletalk an den Rechner anmeldet. AppleVolumes.system Zuordnung von Dateikennungen zu Apple-Dateitypen. Dadurch wird beispielsweise beeinusst, welches Programm auf einem AppleRechner gestartet wird, wenn dort das Icon einer Datei angeklickt wird. Normalerweise knnen die Einstellungen in der Datei belassen werden, wie sie sind. afpd.conf In dieser Kongurationsdatei wird bestimmt, welche Server auf dem System zur Verfgung stehen sollen, welche Protokolle diese benutzen und welche Ressourcen von diesen Servern zur Verfgung gestellt werden. Standardmig wird ein Server ausgefhrt, der den Namen des Rechners trgt, auf dem er ausgefhrt wird. atalkd.conf Hier werden die Netzoptionen fr Appletalk festgelegt. In der Regel ist es lediglich erforderlich, in der Datei den Namen des Netzinterfaces anzugeben, welches mit Appletalk benutzt werden soll. Der Name des Interfaces muss in einer eigenen Zeile stehen. Dahinter knnen Optionen angegeben werden, die in der Datei beschrieben sind und normalerweise von atalkd automatisch konguriert werden. papd.conf Dies ist die Kongurationsdatei fr das Programm papd, das Drucker ber Appletalk zur Verfgung stellt. Ferner ndet sich in dem Verzeichnis ein Unterverzeichnis nls mit mac-spezischen Codierungen einiger Zeichenstze. Wenn whrend des Starts von netatalk folgenden Fehlermeldung auftritt,

17.8 Ausgewhlte weitere Netzdienste

741

Cant register beethoven:Workstation@* dann liegt das vermutlich daran, dass der Namen des Netzinterfaces, das netatalk verwenden soll, nicht in der Datei /etc/netatalk/atalkd.conf eingetragen ist. Fgen Sie der Datei dann eine Zeile zu, in der sich lediglich der Name des zu verwendenden Netzinterfaces bendet (z. B. eth0). Die folgende Fehlermeldung ist ein Zeichen dafr, dass die AppletalkUntersttzung im Kern fehlt: socket: Invalid argument berprfen Sie, ob der Kern mit den richtigen Optionen erstellt wurde und ob das Modul appletalk geladen werden kann, falls die Untersttzung als Modul vorliegt. netatalk muss neu gestartet werden, wenn Sie Kongurationsdateien gendert haben: debian:~# /etc/init.d/netatalk restart Danach sollten Sie in der Lage sein, von einem Applerechner aus, der ber Appletalk mit dem Ethernet verbunden ist, ber den Chooser und AppleShare auf den Linux-Rechner zuzugreifen und mit dem richtigen Passwort und Benutzernamen Ihr Home-Verzeichnis einzubinden. Wenn Ihr Passwort nicht als richtig erkannt wird, berprfen Sie, ob es lnger als acht Zeichen ist, und krzen Sie es (passwd (S. 843)) gegebenenfalls. Freigeben von Druckern mit netatalk Wenn Sie Ihren Drucker unter Linux so konguriert haben, dass Sie ber das Kommando lpr (S. 822) PostScript-Dateien ausdrucken knnen, ist es einfach, AppleRechnern einen PostScript-Drucker zur Verfgung zu stellen. Bei dem Drucker braucht es sich nicht um einen echten PostScript-fhigen Drucker zu handeln, da die Konvertierung von PostScript in das Drucker-Format von einem Druckerlter wie magiclter oder apslter durchgefhrt wird. Zu diesem Zweck bentigen Sie eine PPD-Datei (PostScript Printer Description). Solche Dateien beschreiben Eigenschaften eines Druckers und werden bentigt, damit die Klientrechner den Drucker richtig ansteuern. Wenn Sie keinen PostScriptfhigen Drucker besitzen, bentigen Sie eine PPD-Datei, welche die Eigenschaften des ghostscript-Treibers fr Ihren Drucker beschreibt. Solche PPD-Dateien richten Sie mit dem Paket ppd-gs ein. Wenn Sie dieses Paket verwenden, sollten Sie die Datei /usr/doc/ppd-gs/README lesen, bevor Sie die darin enthaltenen PPD-Dateien verwenden. Einige PPD-Dateien nden Sie unter der Adresse ftp://ftp.adobe.com/ pub/adobe/printerdrivers/win/all/ppdfiles/. In dem Verzeichnis liegen selbstauspackende ZIP-Archive wie hp.exe, die PPD-Dateien fr Drucker verschiedener Hersteller enthalten. Unter Debian GNU/Linux knnen diese Archive mit dem Programm unzip (S. 880) entpackt werden. Danach ist die gewnschte PPDDatei auszuwhlen und in das Verzeichnis /etc/netatalk zukopieren (im Beispiel eine Datei fr HP-Drucker):

742

17 Debian GNU/Linux im Netz

debian:~# cp hp/hp4ml_v1.ppd /etc/netatalk Nun ist die Konguration in der Datei /etc/netatalk/papd.conf anzupassen. Fr jeden Drucker, den Sie Apple-Rechnern zur Verfgung stellen, muss sich dort ein Eintrag der folgenden Art benden:
laserjet:\ :pr=|/usr/bin/lpr -Plj:\ :pd=/etc/netatalk/hp4ml:\ :op=karl:

Wie Sie sehen, hnelt der Aufbau dieser Datei der Datei /etc/printcap. Zu Beginn eines Eintrags steht der Name, unter dem der Drucker auf dem Apple-Rechner angesprochen wird (im Beispiel laserjet). In der nchsten Zeile (:pr=) wird der Name des Druckers auf dem Server (der Name aus der Datei /etc/printcap) angegeben. Damit Druckdateien von Apple-Rechnern durch die Drucklter des Servers bearbeitet werden knnen, beispielsweise um sie von PostScript in ein anderes Druckerformat zu bersetzen, mssen die Druckauftrge dem Programm lpr bergeben werden. Aus diesem Grund kann hier an Stelle eines Druckernamens der Name eines Programms mit vollem Pfad genannt werden, dem das Pipe-Zeichen ( ) voranzustellen ist. Dem Programm lpr wird im Beispiel mit dem Parameter -P der Name des Druckers aus /etc/printcap, auf den gedruckt werden soll, bergeben. Dadurch ist es auch mglich, Druckauftrge an andere Rechner weiterzuleiten. In der darauffolgenden Zeile wird mit pd= der Name der fr diesen Eintrag zu verwendenden PPD-Datei angegeben. Zum Schluss kann optional der Name des Druck-Operators (hier karl) angegeben werden. Nach der nderung der Konguration ist netatalk neu zu starten: debian:~# /etc/init.d/netatalk restart Nun knnen Sie den Drucker vom Apple-Rechner aus einbinden. Falls es bei den Ausdrucken zu kleineren Unstimmigkeiten kommt, ist dies vermutlich auf eine falsche PPD-Datei zurckzufhren. 17.8.4 Die Zeit im Netz (ntp) Aufgabe Rechner brauchen fr manche Aufgaben die genaue Zeit. Dazu zhlen Anwendungen wie make, die die Zeitstempel der Dateien auswerten, Email, Datenbanken, einige Sicherheitsmechanismen wie Kerberos und natrlich Echtzeit-Aufgaben, insbesondere ber ein Netz verteilte wie elektronische Auktionen. Abgesehen von diesen Erfordernissen ist es lstig, wenn Systemuhr und -kalender zu sehr von der brgerlichen Zeit abweichen. Die Systemuhr wird zwar vom Systemtakt und damit von einem Quarz gesteuert, dieser ist jedoch nicht auf die Belange einer Uhr hin ausgesucht. Mit anderen Worten: die Systemuhren mssen regelmig mit genaueren Uhren synchronisiert werden, fragt sich, mit welchen und wie. Eine vllig andere Aufgabe ist die Messung von Zeitspannen, beispielsweise zur Geschwindigkeitsoptimierung von Programmen oder auch bei Echtzeit-Aufgaben.

17.8 Ausgewhlte weitere Netzdienste

743

Hier kommt es auf eine hohe Auflsung an, aber nicht so sehr auf die bereinstimmung mit anderen Zeitmessern weltweit. Auerdem bentigt man nur eine Maeinheit wie die Sekunde und keinen Nullpunkt (Epoche) wie Christi Geburt oder die Grndung Roms. Zum Thema Kalender bietet das Netz eine Calendar FAQ, ferner gibt es eine FAQ Clocks and Time. Zur Schreibweise des Datums siehe ISO 8601. Weitere Informationen bei der Physikalisch-Technischen Bundesanstalt (PTB) oder dem U.S. Naval Observatory. UTC Universal Time Coordinated Die Universal Time Coordinated (UTC) ist die Nachfolgerin der Greenwich Mean Time (GMT), heute UT1 genannt, der mittleren Sonnenzeit auf dem Lngengrad Null, der durch die Sternwarte von Greenwich bei London verluft. Beide Zeiten unterscheiden sich durch ihre Denition und gelegentlich um Bruchteile von Sekunden. Als Weltzeit gilt seit 1972 die UTC. Computer-Systemuhren sollten UTC haben. Daraus wird durch Addition von 1 h die in Deutschland gltige Mitteleuropische Zeit (MEZ) abgeleitet, auch Middle oder Central European Time genannt. Wie kommt man zur UTC? Die besten Uhren (Csium- oder Atom-Uhren) laufen so gleichmig, dass sie fr den Alltag schon nicht mehr zu gebrauchen sind, wie wir sehen werden. Ihre Zeit wird als Temps Atomique International (TAI) bezeichnet. In Deutschland stehen einige solcher Uhren in der Physikalisch-Technischen Bundesanstalt (PTB) in Braunschweig. Weltweit verfgen etwa 60 Zeitinstitute ber zusammen 200 Atom-Uhren. Aus den Daten dieser Uhren errechnet das Bureau International des Poids et Mesures (BIPM, http://www.bipm.fr/) in Paris einen Mittelwert, addiert eine vereinbarte Anzahl von Schaltsekunden hinzu und erhlt so die internationale UTC oder UTC(BIPM). Dann teilt das Bureau den nationalen Zeitinstituten die Abweichung der nationalen UTC(*) von der internationalen UTC mit, . Sie soll unter einer Mikrosekunde bei uns also die Differenz liegen und tut das bei der PTB auch deutlich. Die UTC ist also eine nachtrglich errechnete Zeit. Was die Zeitinstitute ber Radiosender wie DCF77 verbreiten, kann immer nur die nationale UTC(*) sein, in Deutschland UTC(PTB). Mit den paar Nanosekunden Unsicherheit mssen wir leben. Warum die Schaltsekunden? Fr den Alltag ist die Erddrehung wichtiger als die Schwingung von Csiumatomen. Die Drehung wird allmhlich langsamer ein heutiger Tag ist bereits drei Stunden lnger als vor 600 Millionen Jahren und weist vor allem Unregelmigkeiten auf. Die UTC wird aus der TAI abgeleitet, indem nach Bedarf Schaltsekunden hinzugefgt werden, sodass Mittag und Mitternacht, Sommer und Winter dort bleiben, wohin sie gehren. UTC und UT1 unterscheiden sich hchstens um 0,9 Sekunden, UTC und TAI durch eine ganze Anzahl von Sekunden, gegenwrtig (Anfang 2004) um 32. Nicht jede Minute der jngeren Vergangenheit war also 60 Sekunden lang. Erlaubt sind auch negative Schaltsekunden, jedoch noch nicht vorgekommen. In den einzelnen Lndern sind nationale Behrden fr die Darstellung der Zeit verantwortlich:

744

17 Debian GNU/Linux im Netz

Deutschland: Physikalisch-Technische Bundesanstalt, Braunschweig http://www.ptb.de/ Frankreich: Bureau National de Mtrologie, Paris http://opdaf1.obspm.fr/ England: National Physical Laboratory, London http://www.npl.co.uk/ USA: U. S. Naval Observatory, Washington D.C. http://tycho.usno.navy.mil/time.html Auer der Zeit bekommt man von diesen Instituten auch Informationen ber die Zeit und ihre Messung. In Deutschland wird die Zeit ber den Sender DCF77 bei Frankfurt (Main) auf 77,5 kHz verteilt. Funkuhren, die dessen Signale verarbeiten, sind mittlerweile so preiswert geworden, dass sie kein Zeichen von Exklusivitt mehr sind. Einrichtung Man knnte jeden Computer mit einer eigenen Funkuhr ausrsten, aber das wre doch etwas aufwendig, zumal das Netz billigere und zuverlssigere Mglichkeiten bietet. Auerdem steht nicht jeder Computer an einem Platz mit ungestrtem Empfang der Radiosignale. Das Network Time Protocol nach RFC 1305 zeigt den Weg. Wir brauchen folgende Debian-Pakete aus der Abteilung Network: die Dokumentation: ntp-doc, ein Werkzeug fr den Beginn der Synchronisation: ntpdate, das minimale Ansprche bereits erfllt, Hilfsprogramme: ntp den NTP-Dmon aus ntp-simple oder ntp-refclock, falls man eine Funkuhr (Referenzuhr) im Rechner betreibt. Im Netz gibt es eine Hierarchie von Zeitservern. Das Fundament bilden die Stratum-1-Server. Das sind Computer, die eine genaue Hardware-Uhr haben, beispielsweise eine Funkuhr. Diese Server sprechen sich untereinander ab, sodass der vorbergehende Ausfall einer Funkverbindung praktisch keine Auswirkungen hat. Von den Stratum-1-Servern holt sich die nchste Schicht die Zeit, die Stratum-2Server. Als kleiner Netzverwalter soll man fremde Stratum-1-Server nicht belstigen. Oft verhindern die Rechenzentren den direkten Zugriff auch. Stratum-2-Server versorgen groe lokale Netze wie ein Campus- oder Firmennetz mit der Zeit. Auch sie sprechen sich untereinander ab und holen sich auerdem die Zeit von mehreren Stratum-1-Servern. So geht es weiter bis zum Stratum 16, das aber praktisch nicht vorkommt, weil in Instituten oder Gebuden die Zeit einfacher per Broadcast von einem Stratum-2- oder Stratum-3-Server verteilt wird. Die Mehrheit der Arbeitsplatz-Rechner ist als Broadcast-Client konguriert. Der lokale Server synchronisiert sich mit dem besten Server aus seiner Liste, nicht auf das Mittel aus allen Servern. Die Auswahl kann im Betrieb wechseln. Lokal braucht man einen Dmon wie ntpd samt ein paar Hilfsdateien. Die Konguration steht in /etc/ntp.conf, beispielsweise:

17.8 Ausgewhlte weitere Netzdienste

745

server server server server peer

ntp2.rz.uni-karlsruhe.de ntp2-3.belwue.de ptbtime1.ptb.de ntp1.t-online.de 192.168.0.2

broadcast 192.168.0.255 driftfile /etc/ntp.drift Server sind Maschinen, von denen die Zeit geholt wird (Einbahnstrae), Peers Maschinen, mit denen die Zeit ausgetauscht wird (beide Richtungen). Da ntp2.rz.unikarlsruhe.de ein Stratum-2-Server ist, luft die lokale Maschine mit obiger Konguration als Stratum-3-Server. Sie sendet Broadcast-Signale in das lokale Subnetz 192.168.0. Auerdem spricht sie sich mit ihrem Kollegen 192.168.0.2 ab, der hnlich konguriert ist, aber keine Broadcast-Signale aussendet. In /etc/ntp.drift wird die lokale Drift gespeichert, sodass die Systemuhr auch ohne Verbindung zum Netz etwas genauer arbeitet. Weitere Computer im Subnetz 192.168.0 sind als BroadcastKlient konguriert und horchen auf die Broadcast-Signale des lokalen Servers. Da die Synchronisation nur bis zu einer gewissen Abweichung arbeitet, ist es angebracht, beim Booten mittels des Kommandos ntpdate die Zeit zu setzen. Dies wird durch ein Startskript /etc/init.d/ntpdate veranlasst. Mit dem Kommando ntpq (NTP-Query) und dessen Subkommando peers erfragt man aktuelle Daten zum Stand der Synchronisation. 17.8.5 Network Address Translation (IP-Masquerading) Network Address Translation (NAT), auch IP-Masquerading genannt, ermglicht, mehrere Rechner unter einer einzigen IP-Adresse zu betreiben. Dies ist notwendig, wenn mehrere Rechner eines privaten Netzes gleichzeitig eine einzige Internetanbindung ber einen Internet-Service-Provider (ISP) benutzen sollen. Allgemeiner gesprochen verwendet man Masquerading, wenn die Struktur eines internen Netzes (Intranet) nicht von auen (Internet) sichtbar sein soll. Sehen Sie sich noch einmal die Abbildung auf Seite 596 an und stellen Sie sich vor, alle Rechner in der Abbildungen htten IP-Adressen, die mit 192.168. beginnen. Wie erlutert, werden IP-Pakete, die von solchen Adressen stammen oder an solche Adressen geschickt werden, im Internet nicht weitergeleitet (geroutet), was bedeutet, dass nur der Rechner mit der direkten Verbindung zum ISP auch mit dem Internet kommunizieren knnte. Nur dieser Rechner hat ja eine weitere, externe IP-Adresse, die dem Interface zugewiesen ist, ber das die Verbindung zum ISP besteht. Alle anderen internen Rechner knnten zwar (entsprechendes Routing vorausgesetzt) Pakete an den Rechner mit dem Internetzugang schicken, und dieser knnte die Pakete auch weitergeben. Allerdings wrden die Pakete sptestens beim Provider nicht mehr weitergeleitet werden, sodass die internen Rechner nicht mit Rechnern auerhalb des eigenen Netzes kommunizieren knnten.

746

17 Debian GNU/Linux im Netz

Wenn auf dem Rechner mit der Verbindung zum ISP jedoch NAT durchgefhrt wird, schreibt der Rechner IP-Pakete, die er von den anderen Rechnern des Netzes erhlt, so um, dass sie so aussehen, als wrden diese Pakete von ihm selbst stammen, bevor er sie zum ISP schickt. Die Pakete haben dann eine gltige Absenderadresse und knnen auch beantwortet werden. Die Antworten gehen an den Rechner mit der Verbindung zum ISP, weil die ausgehenden Pakete die gltige Adresse dieses Rechners als Absender tragen. Der Rechner muss sie dann wieder so umschreiben, dass sie im internen Netz an die Rechner zugestellt werden, von denen die ursprnglichen Pakete stammen. Bei der Einrichtung von NAT ist folgendes zu beachten: NAT darf nur auf dem Gert eingerichtet werden, das als Router zwischen ISP und internem Netz dient. Mglicherweise ist das kein Rechner, sondern ein reiner Router. Alle anderen Rechner brauchen nichts von NAT zu wissen. Fr die anderen Rechner sieht das NAT-Gert wie ein gewhnlicher Router aus. NAT funktioniert mit allen Rechnern, die TCP/IP benutzen. Sie knnen deswegen auch einen Rechner unter Debian GNU/Linux verwenden, um ein internes Netz aus MS-Windowsund Macintosh-Rechnern an das Internet anzuschlieen. Aus dem Prinzip des NAT folgt die Einschrnkung, dass ber das NAT-Gert hinweg von auen keine internen Dienste angesprochen werden knnen. Wenn Sie in Ihrem internen Netz einen Web- oder Email-Server betreiben, kann dieser nicht aus dem Internet angesprochen werden, es sei denn, der Server habe einen eigenen Internet-Anschluss. Mit Hilfe des Port Forwarding ist es jedoch mglich, Zugriffe auf bestimmte Ports an Rechner im internen Netz weiterzuleiten. Aus dem internen Netz heraus lassen sich alle Netzdienste ansprechen. Hieraus ergibt sich eine hohe Sicherheit fr das interne Netz. Weil der Zugriff auf Serverdienste, die auf Rechnern im internen Netz laufen, nur von solchen Rechnern aus mglich ist, die sich ebenfalls im internen Netz benden, sind die Server relativ gut gegen Angriffe aus dem Internet abgesichert. Viele Hochschulen sind dazu bergegangen, ihr gesamtes Campusnetz hinter einem NAT-Rechner zu schtzen. Der Schutz setzt voraus, dass im Campusnetz nicht wieder einzelne Rechner ber eigene Internet-Verbindungen (Modem, ISDN, DSL) vefgen. Wenn in kleinen Netzen (SOHO = Small Ofce + Home) der InternetAnschluss zwar ber einen NAT-fhigen DSL-Router luft, daneben aber fr den Fax-Verkehr eine ISDN-Verbindung eingerichtet ist, muss diese so eingezunt werden, dass ber sie nichts Anderes in das interne Netz gelangen kann. Vor der Einrichtung von NAT sollte unbedingt das IP-Masquerade-HOWTO gelesen werden, das sich im Paket doc-linux-text bendet und nach dessen Installation in der Datei /usr/share/doc/HOWTO/en-txt/IP-Masquerade-HOWTO.gz zu nden ist. Einrichtung von NAT (IP-Masquerading) Die im folgenden beschriebenen Schritte brauchen nur auf dem Rechner ausgefhrt werden, der gleichzeitig mit dem Internet Service Provider und mit dem internen Netz verbunden ist (auf dem Router).

17.8 Ausgewhlte weitere Netzdienste

747

Erstellung eines geeigneten Kerns Fr NAT/IP-Masquerading mssen Sie einen eigenen Kern erstellen, weil die notwendigen Fhigkeiten nicht in den Standardkernen enthalten sind. Bei der Konguration des Kerns mssen Sie neben den blichen Optionen fr die Netzuntersttzung die Untersttzung fr Kern-Module sowie die folgenden Optionen aktivieren: Packet Socket Kernel/User netlink socket Network Firewalls TCP/IP networking IP: Verbose Route Monitoring IP: Firewalling IP: Masquerading IP: ICMP Masquerading IP: masquerading special modules support. Sie bentigen die Untersttzung fr das /proc-Dateisystem, auerdem drfen Sie nicht den Treiber fr die Netzkarte sowie die Untersttzung fr den Verbindungsaufbau zum Internet-Provider (z. B. PPP oder ISDN und PPP) vergessen. Mehr Hinweise zu den Netzoptionen des Kerns nden Sie auf Seite 392. Einrichtung des Netzes Nach der Erstellung und Installation des Kerns ist das Netz zunchst wie blich einzurichten. Dabei sollte sichergestellt werden, dass von dem Router aus sowohl die Rechner im internen Netz als auch Rechner im Internet erreicht werden. Testen Sie dies mit dem Kommando ping (S. 845). Die Standard-Route auf dem Router muss auf den ISP zeigen. Wenn Sie auf dem Router Dial-on-Demand verwenden, muss die Standardroute auf das Netzinterface zeigen, ber das die Verbindung bei Bedarf aufgebaut wird (z. B. ppp0 oder ippp0). Aktivierung des Routings Zunchst muss der Kern auf dem Router davon informiert werden, dass er empfangene Pakete, die nicht fr ihn selbst bestimmt sind, weiterleiten soll. Dies geschieht durch folgendes Kommando: debian:~# echo "1" > /proc/sys/net/ipv4/ip_forward Sie knnen das Routing spter wieder abschalten, indem Sie dieses Kommando eingeben: debian:~# echo "0" > /proc/sys/net/ipv4/ip_forward Wenn Sie von Ihrem Internet-Provider dynamische IP-Adressen zugewiesen bekommen, wie es blich ist, geben Sie danach folgendes Kommando ein: debian:~# echo "7" > /proc/sys/net/ipv4/ip_dynaddr

748

17 Debian GNU/Linux im Netz

Dies fhrt dazu, dass IP-Pakete automatisch neue Absenderadressen bekommen, wenn sich Ihre IP-Adresse ndert, etwa weil Sie nach einer erneuten Einwahl eine neue Adresse zugewiesen bekommen haben. Einige Probleme mit dynamischen Adressen und Dial-on-Demand werden dadurch jedoch nicht gelst. Ein oft beobachtetes Problem besteht darin, dass eine Anwendung auf eine Antwort aus dem Internet wartet, die Verbindung abgebaut und dann immer wieder aufgebaut wird, um der Gegenstelle zu signalisieren, dass weiterhin auf die Antwort gewartet wird. Die Antwort der Gegenstelle kann nicht eintreffen, weil sie an die alte Adresse gegangen ist. Solche toten Verbindungen werden nach einem Timeout automatisch vom Kern beendet. Aktivierung der NAT (Masquerading) Die eigentliche Einrichtung der NAT erfolgt mit dem Programm ipchains. Dieses Programm dient in erster Linie dazu, Regeln zur Paketlterung festzulegen, und kann dem Kern nebenbei auch Anweisungen zur NAT mitteilen. Eine Einfhrung in die Paketlterung sowie eine ausfhrliche Anleitung zu ipchains nden Sie in der Datei /usr/share/doc/netbase/ipchains-HOWTO.txt.gz, im Paket netbase enthalten. Zunchst wird dem Kern mit ipchains mitgeteilt, wie lange eine Verbindung maskiert werden soll, das heit, wie lange auf Antworten von der Gegenseite gewartet wird. Dazu ist das Programm folgendermaen aufzurufen: debian:~# ipchains -M -S 7200 10 160 Die drei Werte sind die Timeout-Werte in Sekunden fr (1) normale TCPVerbindungen (hier zwei Stunden), (2) fr beendete TCP-Verbindungen und (3) fr UDP-Verbindungen. Danach kann die NAT durch die folgenden beiden Kommandos aktiviert werden. Mit dem ersten Kommando wird dabei das Routing von Paketen zunchst aus Sicherheitsgrnden grundstzlich abgeschaltet und dann fr solche Pakete erlaubt und maskiert, die aus dem eigenen Netz stammen: debian:~# ipchains -P forward DENY debian:~# ipchains -A forward -s 192.168.10.0/255.255.255.0 -i ippp0 -j MASQ Hierbei ist die Netzadresse 192.168.10.0 durch die Adresse des eigenen internen Netzes und die Netzmaske 255.255.255.0 durch die interne Netzmaske auszutauschen sowie ippp0 durch den Namen des Netzinterfaces zu ersetzen, ber das der Netzverkehr zum Provider luft8 . An Stelle der Netzmaske kann auch die Anzahl der auf 1 gesetzten Bits in der Netzmaske angegeben werden (hier 24). Angenommen das lokale Netz htte die IP-Adresse 192.168.20.64, die Netzmaske den Wert
Die Angabe des Interfaces ist nicht zwingend notwendig. Falls der Router jedoch auch IPPakete zwischen zwei internen Netzen vermittelt, sollte das Interface angegeben werden, damit der Kern entscheiden kann, welche Pakete zu maskieren sind und welche nicht. Aufgrund des ersten Kommandos im Beispiel wurde das Routing zunchst grundstzlich abgeschaltet. Es muss deswegen auch fr zwei private Netze ausdrcklich erlaubt werden.
8

17.8 Ausgewhlte weitere Netzdienste

749

255.255.255.240, und die Verbindung zum Provider wrde ber das Interface ppp0 hergestellt, dann knnte das Kommando folgendermaen eingegeben werden: debian:~# ipchains -A forward -s 192.168.20.64/28 -i ppp0 -j MASQ Nach diesem Schritt sollte die NAT mit den meisten IP-basierten Netzprotokollen funktionieren. Fr einige Protokolle ist es jedoch notwendig, zustzliche Kernmodule zu laden, die im Verzeichnis /lib/modules/<KERNELVERSION>/ipv4 zur Verfgung stehen und deren Namen jeweils mit ip_mask beginnen. Beispielsweise ist es notwendig, das Modul ip_masq_ftp zu laden, damit FTP ber NAT funktioniert. Abhngig davon, welche Protokolle Sie bentigen, knnen Sie nun die entsprechenden Module laden. Beispiel: debian:~# modprobe ip_masq_ftp Testen der NAT Nachdem die NAT auf dem Router eingerichtet ist, knnen Sie sie von einem anderen Rechner in Ihrem internen Netz aus testen. Stellen Sie dabei zunchst sicher, dass die grundlegenden Netzeinstellungen dieses Rechners stimmen und dass es mglich ist, den Router unter seiner internen IP-Adresse zu erreichen (ping). Weiter muss die Default-Route (der Standardleitweg) auf den Router zeigen, der Router muss als das Default Gateway auf dem betreffenden Rechners eingetragen sein. Danach testen Sie, ob Sie einen Rechner im Internet ber den NAT-Router erreichen. Versuchen Sie, die IP-Adresse eines Rechners im Internet anzupingen: joe@debian:~$ ping 141.76.2.4 Wenn Sie keine Antwort erhalten, prfen Sie folgende Punkte: Existiert der angepingte Rechner? Funktioniert das ping-Kommando auf dem Router? Falls dies nicht der Fall ist, berprfen Sie die Verbindung zwischen dem Router und dem Internet-Provider. Haben Sie bei der Konguration des Kerns die Option IP: ICMP masquerading ausgewhlt? Wenn nicht, lsst der Router keine ping-Pakete durch. Wenn Sie keinen Fehler nden, sollten Sie die Einrichtung des Routers nochmals durchgehen und prfen, ob die Netzeinstellung des Testrechners stimmt. Ein Startskript zum Aufbau der NAT Um Routing und NAT whrend des Systemstarts automatisch einzurichten, wird folgendes Startskript unter dem Namen /etc/init.d/masquerade gespeichert:
#! /bin/sh # Skript zum Starten von NAT (IP-Masquerading) # Die nchsten drei Variablen sind an das eigene Netz anzupassen: NET=192.168.10.0 # Adresse des lokalen, internen Netzes MASK=255.255.255.0 # Netzmaske dieses Netzes IFACE=ppp0 # Netzinterface der Verbindung zum Provider

750

17 Debian GNU/Linux im Netz

# Falls der Kern kein NAT untersttzt, wird das Skript verlassen test -f /proc/net/ip_masquerade || exit 0; IPC=/sbin/ipchains case "$1" in start ) echo -n "Schalte Masquerading ein ... " echo "1" > /proc/sys/net/ipv4/ip_forward echo "7" > /proc/sys/net/ipv4/ip_dynaddr $IPC -M -S 7200 10 160 # Timeouts $IPC -P forward DENY $IPC -A forward -s $NET/$MASK -i $IFACE -j MASQ modprobe ip_masq_ftp echo "fertig." ;;

stop ) echo -n "Schalte Masquerade ab ... " echo "0" > /proc/sys/net/ipv4/ip_forward echo "0" > /proc/sys/net/ipv4/ip_dynaddr $IPC -P forward ACCEPT $IPC -D forward -s $NET/$MASK -i $IFACE -j MASQ modprobe -r ip_masq_ftp echo "fertig." ;;

restart ) $0 stop; $0 start; ;; * ) echo "Verwendung: $0 {start|stop|restart}" ;; esac exit 0;

Wenn das Skript abgespeichert ist, muss es mit Rechten zur Ausfhrung versehen werden: debian:~# chmod a+x /etc/init.d/masquerade Danach mssen die symbolischen Links in den Startverzeichnissen fr die verschiedenen Runlevels erzeugt werden: debian:~# update-rc.d masquerade defaults 50 10 Weitere Hinweise zu NAT und Dial-on-Demand Wenn Sie Ihr Netz ber einen NAT-Router und eine Whlverbindung an das Internet angebunden haben, bietet es sich an, auf dem Router Dial-on-Demand zu benutzen, um im Netz einen mglichst transparenten Verbindungsaufbau zu haben. Allerdings kann es dann vorkommen, dass die Verbindung sehr oft aufgebaut wird, nmlich

17.8 Ausgewhlte weitere Netzdienste

751

immer dann, wenn irgendein Programm Pakete ins Internet sendet, vor allem auf Grund von DNS-Abfragen. Wenn Sie ISDN benutzen, knnen Sie herausnden, wodurch die Verbindung aufgebaut wurde, indem Sie die Protokolle in der Datei /var/log/syslog analysieren. Dort sollte sich fr jeden Verbindungsaufbau eine Zeile benden, die ungefhr der folgenden entspricht9: OPEN: 10.0.0.1 -> 10.0.0.2 UDP, port: 513 -> 513 Die Zeile hlt fest, dass die Verbindung aufgebaut wurde, weil ein UDP-Paket von der Adresse 10.0.0.1 an die Adresse 10.0.0.2, und zwar von Port 513 nach Port 513 geschickt wurde. Ein Blick in die Datei /etc/services zeigt, dass der UDP-Port 513 vom Service who benutzt wird. Welches Programm diesen Port auf dem lokalen Rechner benutzt, kann mit dem Programm fuser (S. 801) herausgefunden werden: debian:~# fuser -v -n udp 513 Die Ausgabe sieht sinngem so aus:
USER 513/udp PID ACCESS COMMAND root 286 f.... rwhod

Das Programm, das fr den Verbindungsaufbau verantwortlich war, ist vermutlich das Programm rwhod. Um den Verbindungsaufbau durch dieses Programm in Zukunft zu verhindern, gibt es zwei Mglichkeiten: Entweder das Programm wird nicht mehr ausgefhrt, oder es wird mit ipchains eine Regel zur Paketlterung deniert, die abblockt, dass UDP-Pakete von Port 513 und an Port 513 ber das Interface herausgehen, mit dem die Verbindung zum Provider aufgebaut wird. Im Fall von ISDN sieht das Kommando folgendermaen aus: debian:~# ipchains -A output -p udp -s 0.0.0.0/0 513 -d 0.0.0.0/0 513 -i ippp0 -j DENY Lesen Sie hierzu auch die Manualseite zu dem Programm ipchains. Etwas komplizierter wird es, wenn Pakete, die zum Verbindungsaufbau fhren, nicht auf dem Router, sondern irgendwo im internen Netz erzeugt werden. Hier kann das Kommando netstat mit dem Parameter -M helfen. Er gibt alle augenblicklich maskierten Verbindungen mit Quell- und Zielrechner an: debian:~# netstat -M -n Mit der Option -n werden die IP-Adressen und nicht die DNS-Namen der beteiligten Rechner angezeigt. Darauf erfolgt sinngem die folgende Ausgabe:
IP masquerading entries prot expire source tcp 1:30.55 192.168.0.2 destination 134.102.20.22 ports 3027 -> 23 (61352)

9 Eine andere Mglichkeit zur Analyse von Grnden fr unerwartete Verbindungsaufbauten ist die Verwendung des Programms tcpdump aus dem gleichnamigen Paket.

752

17 Debian GNU/Linux im Netz

Unter source wird die IP-Adresse des Rechners im internen Netz angegeben, von dem aus eine Verbindung aufgebaut wurde (192.168.0.2). Mit destination wird die Zieladresse im Internet angegeben, zu der die Verbindung besteht. Anhand der Portnummer auf dem Ausgangsrechner (3027) kann auf diesem Rechner mit fuser festgestellt werden, welches Programm fr den Verbindungsaufbau verantwortlich ist. Eine huge Ursache fr den Verbindungsaufbau sind DNS-Abfragen. Hier lohnt sich u. U. die Einrichtung eines eigenen DNS-Servers. Hinweise nden sich im DNSHOWTO (/usr/share/doc/HOWTO/en-txt/DNS-HOWTO.gz, Paket doc-linux-text). Ein Manahme, mit der Verbindungen vermieden werden knnen, im wesentlichen jedoch Bandbreite gespart wird, ist die Einrichtung von Proxy-Servern fr HTTP (Web), FTP und andere Dienste, die im internen Netz hug genutzt werden. Solche Server speichern hug abgefragte Daten zwischen. Wenn ein Benutzer im internen Netz eine bestimmte Seite heruntergeladen hat und ein anderer Benutzer dieselbe Seite ansehen will, braucht diese nicht erneut aus dem Internet geladen zu werden, weil sie sich bereits im Speicher des Proxy-Servers bendet. Auerdem lsst sich durch Proxy-Server die Sicherheit erhhen, weil bei deren Benutzung keine direkte Verbindung zwischen Server und Klient hergestellt wird. Ein verbreiteter Proxy-Server ist das Programm squid, das in dem gleichnamigen Paket zur Verfgung steht. Nach der Installation des Programms sollte man unbedingt die Liste der Antworten auf hug gestellte Fragen (/usr/share/doc/squid/FAQ.html) lesen. Fr Eilige liegt in demselben Verzeichnis die Datei Quickstart.gz, in der die wichtigsten Punkte zur Einrichtung des Proxies beschrieben werden.

18 Hinweise zu Anwendungen und Paketen

Debian GNU/Linux Version 2.4 (woody) enthlt mehrere tausend Pakete. Auerdem ist eine groe Anzahl kommerzieller Programme verfgbar, die nicht in Form von Debian-Paketen vorliegen, aber trotzdem auf einem Debian-System installiert werden knnen. Dieser Abschnitt soll Ihnen einige Hinweise und Empfehlungen geben, welche Pakete oder Programme Sie fr bestimmte Anwendungen benutzen knnen.

18.1 Editoren
Fr viele Linux/UNIX-Benutzer ist der Editor nach der Shell das wichtigste Programm berhaupt. Wer schreibt, programmiert, Email oder News liest oder beantwortet, bentigt ein Programm, mit dem Text bearbeitet wird. Solche Programme bezeichnet man als Text-Editoren. Gewhnlich zeigen diese Programme den zu bearbeitenden Text an der Konsole oder in einem Fenster unter X11 an und erlauben die Navigation im Text durch Bettigung spezieller Tasten oder unter Verwendung der Maus oder Rollkugel. Texteditoren gibt es auch unter anderen Betriebssystemen. Viele Benutzer kennen das DOS-Programm edit.com oder den MS-Windows-Editor notepad.exe. Bei diesen Programmen handelt es sich jedoch um eingeschrnkte Editoren, die keineswegs an die groen Editoren unter Linux/UNIX heranreichen. Viele der Editoren unter Linux/UNIX lassen sich einer von zwei Familien zuordnen. Dies sind zum einen die vi-basierten Editoren und zum anderen die Editoren der Emacs-Familie. Das Programm vi ist der Standard-Editor unter Linux/UNIX. Er steht unter Linux zwar nicht zur Verfgung; dafr gibt es einige Pakete, die Programme enthalten, welche die Funktionalitt des Original-vi nachbilden und um weitere Eigenschaften ergnzen. Eine Einfhrung in den vi nden Sie auf Seite 123. Das Paket nvi enthlt eine Version des Programms, die in Hinblick auf beste bereinstimmung mit dem Original programmiert wurde. Mit den Paketen elvis und vim stehen zwei weitere vi-Implementierungen zur Verfgung, die zustzliche Eigenschaften wie Online-Hilfe oder Syntax-Hervorhebung bieten. Wenn Sie sich fr einen vi-orientierten Editor entscheiden, sollten Sie sich die beiden Pakete ansehen.

754

18 Hinweise zu Anwendungen und Paketen

Der Editor Emacs wird auch als eierlegende Wollmilchsau bezeichnet. Neben der Bearbeitung von Textdateien knnen Sie mit dem Emacs Mail und News lesen, Shell-Kommandos eingeben oder Manualseiten und Dokumentation im Info-Format durchsuchen. Die Entwicklung des Programms hat sich irgendwann geteilt, sodass es heute zwei Emacs-Varianten gibt, nmlich GNU-Emacs und XEmacs. Die Bezeichnung XEmacs ist irrefhrend, weil beide Editoren sowohl an der Konsole als auch unter X11 benutzt werden knnen. Ebenfalls lassen sich beide Varianten unter X11 ber Mens und Scrollbars benutzen, whrend sie an der Konsole nur durch Tastaturkommandos benutzt werden knnen. Grundstzlich hneln sich beide Programme in ihrer Benutzung, xemacs bietet einige zustzliche Funktionen zur Benutzung und Konguration ber Mens. Die Einarbeitung in die Editoren beansprucht etwas Zeit, die jedoch sinnvoll angelegt ist. Beide Varianten sind mit einem Tutorium ausgestattet, das Sie starten, indem Sie die Tastenkombination S TRG - H T eingeben oder den entsprechenden Menpunkt im Hilfemen aufrufen. Sie knnen den (X)Emacs jederzeit verlassen, indem Sie den Tastaturbefehl S TRG - X S TRG - C eingeben. Ausfhrliche Dokumentation zu beiden Editoren liegt im Info-Format vor. Sie lsst sich am bequemsten mit dem Editor selbst lesen. Dazu ist das Kommando S TRG - H I einzugeben. Die Arbeitsplatzumgebung KDE ist mit zwei Editoren ausgestattet, zum einen mit einem einfachen kleinen Editor, der sich mit dem MS-Windows-Editor notepad.exe vergleichen lsst, und zum anderen mit einem leistungsfhigeren Modell, das ber Eigenschaften wie Syntaxhervorhebung und die Fhigkeit, mehrere Dateien gleichzeitig zu bearbeiten, verfgt. Der einfache KDE-Editor trgt die Bezeichnung kedit, die fortgeschrittene Variante heit kwrite. Beide Editoren sind im Paket kdeutils enthalten. Zur Arbeitsplatzumgebung GNOME gehren ebenfalls zwei Editoren, nmlich einmal der Editor gedit aus dem gleichnamigen Paket und zum anderen der Editor gnp (Paket gnotepad+). Letztgenannter Editor zeichnet sich durch viele Funktionen zur Arbeit mit HTML-Dateien aus.

18.2 Text- und Tabellenverarbeitung


A 18.2.1 TEX und LTEX

Zu den besten Programmen zur Erzeugung von druckreifen Textdokumenten gehrt A das Textsatzsystem TEX samt dem Makropaket LTEX, mit dem auch das vorliegenA X lassen sich Schriftstcke vom Privatde Buch erstellt wurde. Mit Hilfe von LTE brief bis zum mehrbndigen Lebenswerk in einem hochwertigen Layout schreiben. Lediglich fr das Layout von Zeitungen gibt es besser geeignete und leider teure A Werkzeuge. Die Arbeit mit LTEX unterscheidet sich von der Weise, mit der man unter WYSIWYG-Textverarbeitungsprogrammen1 wie Winword Text erstellt. Mit TEX A und LTEX wird mittels eines beliebigen Texteditors ein Quelltext geschrieben, der
1 WYSIWYG bedeutet What You See Is What You Get und meint, dass man auf dem Bildschirm sofort den Text so sieht, wie er auf dem Papier gedruckt wird.

18.2 Text- und Tabellenverarbeitung

755

neben dem eigentlichen Text Anweisungen enthlt, wie das Dokument zu formatieren ist (Satzanweisungen). Sobald man mit dem Schreiben des Quellcodes fertig ist, wird dieser einem Programm bergeben, das die Quelle in ein Ausgabeformat bersetzt. Die Ausgabedatei kann am Bildschirm betrachtet oder auf einem Drucker ausgegeben werden. A Viele Anfnger haben eine Scheu vor LTEX. Die Grundfunktionen des Paketes lernt man in einer Stunde, das gesamte Paket brauchen und beherrschen nur wenige. A Anspruchsvolle Aufgaben erfordern immer eine Einarbeitung. Bei LTEX knnen Sie gewiss sein, dass sich Ihre Mhe auszahlt. A TEX und LTEX stehen fr alle verbreiteten Betriebssysteme zur Verfgung; der Einsatz des Systems macht unabhngig von Rechnerarchitekturen, Betriebssystemen oder Softwareherstellern. Unter Debian GNU/Linux steht die umfangreiche und leicht zu installierende TEX-Distribution teTeX zur Verfgung. Sie besteht aus den Paketen tetex-base, tetex-bin, tetex-dev, tetex-doc, tetex-extra, tetex-lib, tetex-src und tetex-nonfree. Das letztgenannte Paket enthlt Software, die nicht frei ist, und bendet sich deswegen in der Abteilung non-free der Distribution. Fr eine komplette Installation (ohne tetex-src) sollten Sie ungefhr 100 MB Speicherplatz einplanen.

\documentclass[a4paper,12pt]{article} \usepackage[latin1]{inputenc} \usepackage{german} \title{Ein Testdokument} \author{Johann R. Hacker} \date{\today} %===================================================== \begin{document} \maketitle \section{Einfhrung} Der Grund fr die Existenz dieses Dokuments besteht lediglich darin zu demonstrieren, wie man mit \LaTeX Text setzt. \section{Hauptteil} % Auch Kommentare sind mglich Einer der groen Vorteile von \LaTeX gegenber anderen Textsystemen ist, dass man sich auf das Schreiben konzentrieren kann und sich nicht um Formatierungen oder Abstze zu kmmern braucht. Das wird spter vom Programm erledigt. \section{Schluss} Viel Spa und Erfolg mit \LaTeX. \end{document}

A Abbildung 18.1. Beispieldokument zur Textverarbeitung mit LTEX.

756

18 Hinweise zu Anwendungen und Paketen

A Sie knnen LTEX testen, indem Sie mit einem Editor Ihrer Wahl die in Abbildung 18.1 dargestellte Datei erzeugen. Wie Sie sehen, ist die Datei in zwei Teile geteilt. Der erste Teil ist die Prambel. Sie enthlt allgemeine Anweisungen und Denitionen. Das wichtigste Kommando in diesem Abschnitt ist die Anweisung \documentclass, mit der festgelegt wird, von welcher Art der zu erstellende Text sein soll. Dahinter benden sich in eckigen Klammern Optionen zur Schrift- und Papiergre. Zwischen den geschweiften Klammern wird der Name des Dokumententyps angegeben. Die beiden \usepackage-Kommandos darunter sind notwendig, um das System an die deutsche Sprache anzupassen. Mit der ersten Anweisung wird erreicht, dass Umlaute im Quellcode richtig interpretiert werden, und mit der zweiten Anweisung werden Satzregeln fr deutschen Text geladen. Die drei folgenden Zeilen enthalten Angaben fr den Titel. Damit ist die Prambel abgeschlossen. Das Kommando \begin{document} leitet den Textinhalt ein. Als erstes wird der Titel erzeugt, je nach Dokumentenklasse auf einer eigenen Seite oder als berschrift ber dem Text.. Darunter folgt der eigentliche Text. Die Anweisung \section startet jeweils einen neuen Abschnitt. Abgeschlossen wird das Dokument mit \end{document}. Nachdem Sie den Text eingegeben und gespeichert haben, rufen Sie das Programm latex auf, um die Datei in das DVI-Format zu bersetzen. Angenommen, Sie haben den Quellcode unter test.tex gespeichert, so ist dazu folgendes Kommando einzugeben:

joe@debian:~$ latex test.tex Wenn die Quelldatei Fehler enthalten sollte, wird die Bearbeitung angehalten und eine Fehlermeldung ausgegeben. Es besteht dann die Mglichkeit anzugeben, wie mit dem Fehler umgegangen werden soll. Alternativ kann das Programm durch Auswahl von X und E INGABE beendet und der Fehler im Quelldokument behoben werden. Danach knnen Sie die so erzeugte Datei mit dem Programm xdvi betrachten. Geben Sie dazu unter X11 dieses Kommando ein: joe@debian:~$ xdvi test.dvi Wie Sie sehen, wurde ein ansprechend gestaltetes Dokument erzeugt. Um das Dokument auf den Standarddrucker auszugeben, benutzen Sie folgendes Kommando: joe@debian:~$ dvips test.dvi Das Programm dvips wandelt DVI-Dateien in das PostScript-Format um, die dann eventuell ber die Filterprogramme des Spoolers ausgedruckt werden. Falls die von dvips erzeugten PostScript-Daten nicht auf den Drucker, sondern in eine Datei gegeben werden sollen, ist das Programm so aufzurufen: joe@debian:~$ dvips test.dvi -o Das Ergebnis wird dann in die Datei test.ps geschrieben. Alternativ kann hinter der Option -o der Name einer Datei angegeben werden. Das Ergebnis wird dann in die Datei geschrieben.

18.2 Text- und Tabellenverarbeitung

757

A Wenn Sie sich intensiver mit LTEX auseinandersetzen wollen, sollten Sie sich Literatur zu dem Thema beschaffen. Eine kurze deutschsprachige Einfhrung ist im Paket tetex-doc in der Datei /usr/share/doc/texmf/latex/general/l2kurz.dvi.gz enthalten. Wenn Sie magiclter verwenden, drucken Sie die Datei durch Eingabe des folgenden Kommandos aus:

joe@debian:~$ lpr /usr/share/doc/texmf/latex/general/l2kurz.dvi.gz Auerdem kann sie unter X11 durch Eingeben des nchsten Kommandos betrachtet werden: joe@debian:~$ xdvi /usr/share/doc/texmf/latex/general/l2kurz.dvi.gz
A Bei LTEX-Einsteigern erfreut sich das Programm lyx (Paket lyx) groer Beliebtheit. Dieses Programm wird wie ein WYSIWYG-Textprogramm benutzt. Es ist nicht notwendig, Satzbefehle einzugeben. Im Hintergrund wird aus dem eingegebenen A Text ein LTEX-Dokument erzeugt, das sich mit einem Editor weiterverarbeiten lsst. Das Programm verbindet auf diese Weise die Annehmlichkeiten eines WYSIWYGA Textprogramms mit der hohen Ausgabequalitt von TEX und LTEX. A X bei http://www.dante.de/, dem Web-Server Alles zu TEX und LTE von DANTE e. V. (Deutschsprachige Anwendervereinigung TeX). ber http: //dante.ctan.org/DANTE/ erreichen Sie den deutschen Server des Comprehensive TeX Archive Network (CTAN), der mittels FTP alles um, fr und ber TeX zur Verfgung stellt. LaTeX- und CTAN-Distributionen gibt es auch auf CD oder DVD im Buchhandel.

18.2.2 Freie Ofce-Pakete Freie Ofce-Pakete (Tabellenkalkulation, Textverarbeitung etc.) haben lange Zeit naA hezu keine Rolle gespielt. Ein Grund dafr ist, dass durch LTEX und andere Programme Werkzeuge zur Verfgung stehen, mit denen sich die meisten Bro-Aufgaben effektiver und besser erledigen lassen als mit typischen Ofce-Programmen. Aufgrund der zunehmenden Verbreitung von Linux im Arbeitsplatz- und Heimbereich sowie der Entwicklung ansprechender grascher Arbeitsplatzumgebungen hat sich diese Situation mittlerweile gendert, und es gibt einige hoffnungsvolle Projekte, die sich mit der Entwicklung freier Ofce-Software befassen. Im folgenden werden zunchst einige freie Programme vorgestellt und danach die wichtigsten kommerziellen Ofce-Pakete fr Linux. Textprogramme und -konverter Einen vielversprechenden Eindruck erweckt das Programm abiword aus dem gleichnamigen Paket. Obwohl sich das Programm noch in der Entwicklung bendet, weist es bereits alle wichtigen Funktionen eines Textprogramms auf, kann Dateien im Winword-Format importieren und beherrscht WYSIWYG (What You See Is

758

18 Hinweise zu Anwendungen und Paketen

What You Get). Mehr Informationen zu dem Programm nden Sie unter http: //www.abisource.com/.

Abbildung 18.2. Textprogramm abiword.

In den Paketen catdoc und mswordview nden Sie Programme, die Dateien im A proprietren Microsoft-Word-Format in normalen Text, nach LTEX und nach HTML konvertieren. Die Programme sind in der Kommandoreferenz beschrieben. Viele Dokumente werden heute im Internet im PDF-Format2 angeboten. Dieses Format ist eng mit dem PostScript-Format desselben Herstellers verwandt, weshalb sich diese Dokumente mit blichen PostScript-Betrachtern wie gv (Paket gv) betrachten und ausdrucken lassen. Darber hinaus besteht die Mglichkeit, das Programm Acrobat Reader, das Sie vielleicht schon kennen, auch unter Debian GNU/Linux einzusetzen. Das Programm bendet sich im Paket acroread in der non-free-Abteilung der Distribution. Mehr dazu unter http://www.adobe.de/. Eine Alternative zum Acrobat Reader ist das Programm xpdf aus dem gleichnamigen Paket. Tabellenkalkulationen Im Bereich der Tabellenkalkulationsprogramme ist das Programm gnumeric zu nennen. Das Werkzeug ist Bestandteil der Arbeitsplatzumgebung GNOME. Es steckt noch in der Entwicklung, die in vielen Bereichen auf einen hohen Grad an Kompatibilitt zu dem proprietren Microsoft-Excel-Format abzielt. Ein einfaches Tabellenkalkulationsprogramm steht mit dem Paket xspread zur Verfgung. Zur Konvertierung von Excel-Dateien kann das Programm xls2csv aus
2

PDF steht fr Portable Document Format.

18.2 Text- und Tabellenverarbeitung

759

Abbildung 18.3. Tabellenkalkulation mit gnumeric.

dem Pakte catdoc benutzt werden. Das Programm gibt die in Excel-Dateien enthaltenen Daten im CSV-Format (Komma separierte Werte) aus. 18.2.3 Kommerzielle Ofce-Pakete StarOfce/OpenOfce.org Diese Ofce-Pakete gleichen in vielerlei Hinsicht dem Ofce-Paket der Firma Microsoft. Sie beinhalten eine Textverarbeitung, eine Tabellenkalkulation, eine kleine Datenbank, ein Prsentations-Programm und Werkzeuge zur vektor- und pixelorientierten Grakbearbeitung. Die Programme zeichnen sich durch eine gelungene Integration aller Komponenten sowie durch relativ gute Filterfunktionen aus, mit denen es in den meisten Fllen problemlos mglich ist, auch solche Dokumente zu bearbeiten, die mit neuen MicrosoftOfce-Versionen erstellt worden sind. Bei StarOfce handelt es sich um kostenpichtige Software. OpenOfce.org ist die Open-Source-Version von StarOfce. Beide Programme hneln sich, StarOfce ist in einigen Punkten leistungsfhiger. Mehr Informationen dazu sowie die Mglichkeit zum Herunterladen nden Sie im Internet unter http:// de.openoffice.org/, http://www.teamstaroffice.org/ und http://de.sun.com/Produkte/software/star/staroffice/ 6.0/. Bei der Installation von StarOfce sollten Sie beachten, dass das Programm in zwei Modi installiert werden kann, nmlich zum einen fr einen einzigen Benutzer und zum anderen systemweit (Netzinstallation). Die systemweite Installa-

760

18 Hinweise zu Anwendungen und Paketen

tion ist auf jeden Fall zu empfehlen, wenn das Programm von mehr als einem Benutzer eingesetzt wird, weil sonst viel Festplattenplatz verschenkt wird. Das Installationsprogramm ist dazu mit dem Parameter /net aufzurufen. Falls Sie mit der Arbeitsplatzumgebung KDE arbeiten, erzeugt das Installationsprogramm automatisch Meneintrge im K-Men zum Start des Programms. Wordperfect Das Textprogramm enthlt neben den eigentlichen Werkzeugen zur Textverarbeitung Funktionen aus dem Bereich der Tabellenkalkulation, Funktionen fr HTML-Autoren sowie einige Funktionen zur Bearbeitung von Graken. Mit der Version 8.1 wurde die Entwicklung von Wordperfect fr Linux beendet, whrend die Version fr MS-Windows bei Nr. 11 angekommen ist. Im Netz existieren noch Reste sowie FAQs und HOWTOs.

18.3 Integration von Anwendungen fr DOS und MS-Windows


In manchen Fllen besteht die Notwendigkeit, unter Linux Programme auszufhren, die fr DOS oder MS-Windows entwickelt worden sind. Hier gibt es unterschiedliche Lsungen: Das Paket dosemu stellt ein Programm zur Verfgung, in dem DOS wie auf einem eigenen Rechner ausgefhrt wird. Es ist mglich, DOS-Programme innerhalb dieses Programms zu benutzen. Der Mechanismus ist mit den DOS-Fenstern unter MS-Windows oder IBM-OS/2 vergleichbar. Das Paket enthlt eine freie DOS Version (FreeDOS). Fr einige Anwendungen ist es allerdings notwendig, ein kommerzielles DOS innerhalb von DOSemu zu installieren. Es lassen sich dann fast alle DOS-Programme ausfhren, einschlielich einer groen Anzahl populrer Spiele. Prinzipiell ist es nicht mglich, MS-Windows innerhalb von DOSemu zu benutzen. Mehr Informationen zu DOSemu nden Sie unter http://www.dosemu.org/. Das kommerzielle Programm VMWare Workstation erlaubt, whrend des Betriebs von Linux auf demselben Rechner mehrere andere Betriebssysteme inklusive aller MS-Windows-Versionen zu installieren und diese parallel zu Linux und Linux-Anwendungen zu benutzen. Das Programm stellt relativ hohe Anforderungen an den Rechner. Wenn diese erfllt sind, bietet es eine praktikable Mglichkeit zur gleichzeitigen Nutzung von Linux und anderen Betriebssystemen. Mehr Informationen nden Sie unter http://www.vmware.com/. Dort erhalten Sie auch eine Demo-Version des Programms. Eine freie Alternative zu VMWare ist zur Zeit in Entwicklung; sie trgt den Namen plex86, Informationen unter http://plex86.sourceforge.net/. Mit dem Programm wine aus dem gleichnamigen Paket bendet sich ein Programm in Entwicklung, mit dem es mglich ist, MS-Windows-Anwendungen direkt unter Linux auszufhren. Das Programm stellt unter Linux die Funktionen (Systemaufrufe) zur Verfgung, die von MS-Windows bereitgestellt werden, sodass es fr ein Programm so aussieht, als wrde es direkt unter MS-Windows laufen. Weil MS-Windows-Programme mit wine direkt unter Linux ausgefhrt

18.4 Weitere Anwendungen

761

werden, ergeben sich theoretisch gegenber MS-Windows keinerlei Nachteile bezglich der Geschwindigkeit oder der bentigten Ressourcen. Der Unterschied zwischen der Ausfhrung eines Programm unter Linux und wine und der Ausfhrung unter MS-Windows ist vergleichbar mit dem Unterschied bei der Ausfhrung des Programms unter MS-Windows 98 auf der einen und MS-Windows NT auf der anderen Seite. In allen Fllen werden unterschiedliche Betriebssysteme eingesetzt, die jedoch die gleichen von MS-Windows-Programmen bentigten Schnittstellen aufweisen. Auch wenn wine sich noch in der Entwicklung bendet, ist es mglich, viele MS-Windows-Programme mit wine zu benutzen. Dazu gehren Programme aus dem Microsoft-Ofce-Paket, der Internet-Explorer und viele Spiele. Falls Sie eine MS-Windows-Installation zur Verfgung haben, kann wine Programme und Bibliotheken dieser Installation benutzen, wodurch sich die Funktionsfhigkeit in vielen Fllen verbessern lsst. Weil wine relativ zgig entwickelt wird, lohnt es sich eine Version des Programms zu verwenden, die aktueller als das verfgbare Debian-Paket ist. Mehr Informationen zu wine nden Sie auf der Homepage des Projekts, die unter http://www.winehq.com/ zu erreichen ist. Unter http://www. westfalen.de/witch/wine/ nden Sie das Wine-HOWTO, in dem die Installation und Konguration von wine beschrieben ist. Eine weitere Mglichkeit, MS-Windows-Anwendungen unter Linux auszufhren, besteht darin, auf einem Rechner im Netz die Terminal-Server-Variante von MS-Windows NT/2000 zu installieren. Bei den Klient-Programmen fr MSWindows-Terminal-Server handelt es sich um MS-Windows-Programme, die unter Linux mit wine ausfhrbar sind.

18.4 Weitere Anwendungen


18.4.1 Brennen von CDs und DVDs Das Standardprogramm zum Brennen von CDs unter Linux ist das Programm cdrecord aus dem gleichnamigen Paket. Das Programm untersttzt nahezu alle SCSIBrenner. IDE-Brenner werden ber die SCSI-Emulation des Kerns betrieben. Die SCSI-Emulation ist in den Standardkernen nicht enthalten; es ist erforderlich, einen angepassten Kern zu erstellen, um mit IDE-Brennern unter Debian GNU/Linux CDs zu brennen. Das Programm cdrecord steuert den eigentlichen Brennvorgang. Dazu bentigt es CD-Audio-Dateien oder CD-Image-Dateien, welche auf die CD gebrannt werden sollen. Audio-Dateien lassen sich mit dem Programm cdparanoia (Paket cdparanoia) aus Audio-CDs auslesen. Zum Erzeugen von CD-Image-Dateien werden die Programme aus den Paketen mkisofs oder mkhybrid benutzt. Bei den bisher genannten Programmen handelt es sich um Kommandozeilenprogramme. Es gibt weitere Pakete, in denen sich grasche Programme zum interaktiven Erzeugen von CDs benden. Die wichtigsten dieser Pakete sind xcdroast, gcombust

762

18 Hinweise zu Anwendungen und Paketen

und gtoaster. Mit dem Paket debian-cd stehen die Skripte zur Verfgung, welche benutzt werden, um die ofziellen Debian-CDs zu erzeugen. Mit diesen Skripten lassen sich auch angepasste Debian-CDs erstellen. Mittlerweile gibt es in Debian GNU/Linux ein Paket dvdplusrw in der Abteilung utils mit Werkzeugen zum Brennen von DVDs. Beim Suchen sollte man auer auf DVD auch auf UDF (Universal Disk Format) achten. Eine aktuelle Information ist unter http://fy.chalmers.se/~appro/linux/DVD+RW/ zu nden. 18.4.2 Grakbearbeitung Das bekannteste freie Programm zur pixelorientierten Bildbearbeitung ist das Programm gimp (GNU Image Manipulation Program). Das Programm lsst sich als Zeichenprogramm, zur skriptgesteuerten Bilderstellung, als Programm zur Bearbeitung von Fotos oder als Werkzeug zur Konvertierung von Dateien zwischen verschiedenen Grakformaten einsetzen. Mit einem Zusatz dient es auch zum Scannen von Vorlagen, siehe unten. Die hohe Qualitt dieses Programms hat seinen Teil dazu beigetragen, Linux im Arbeitsplatzbereich populr zu machen. Eine ausfhrliche Anleitung zu dem Programm steht mit dem Paket gimp-manual im HTML-Format zur Verfgung. Darber hinaus sind im Buchhandel einige Bcher zu gimp erhltlich. Weitere Informationen auf der Gimp-Homepage unter http: //www.gimp.org/. Ein weiteres Programm zur pixelorientierten Bildbearbeitung ist in dem Paket imagemagick enthalten. Das Programm zeichnet sich durch Untersttzung einer groen Anzahl von Grakformaten sowie durch die Eigenschaft aus, dass alle Operationen sowohl interaktiv unter X11 als auch durch Shell-Kommandos durchgefhrt werden knnen. In dem Paket ist das Programm convert enthalten, das ein mchtiges Werkzeug zur Konvertierung von Bilddateiformaten darstellt. Zur Erstellung und Bearbeitung von Vektor-Graken kann das Programm xg (Paket xg) empfohlen werden. Wenn Sie sich fr die Arbeit mit dem Programm interessieren, sollten Sie zustzlich das Paket xg-doc installieren, in dem sich die Programmdokumentation zu xg im HTML-Format bendet. Mit xg lassen sich Strichzeichnungen fr Berichte und dergleichen erzeugen. Falls Sie eine digitale Kamera unter Linux einsetzen wollen, sollten Sie sich das Programm gphoto (Paket gphoto) ansehen. Es untersttzt eine groe Anzahl handelsblicher Kameras. Sie knnen gphoto benutzen, um Bilder von der Kamera herunter zu laden, Kameraeinstellungen zu verndern und HTML-Seiten mit Ihren Photos zu erzeugen. Aktuelle Informationen zu gphoto nden Sie unter http: //www.gphoto.org/. Die Ansteuerung der meisten Scanner geschieht mit den Paketen libsane und sane. Nach der Installation dieser Pakete sollten Sie zunchst die Dokumente im Verzeichnis /usr/share/doc/libsane lesen. Das System muss manuell konguriert werden; die Kongurationsdateien benden sich im Verzeichnis /etc/sane.d. Zu jeder Kongurationsdatei gibt es eine eigene Manualseite. Empfohlen wird, zunchst die Manualseite sane-dll zu lesen. Im Paket sane sind die Programme xscanimage und scanimage enthalten, mit denen Bilder unter X11 bzw. von der Kommandozeile aus

18.4 Weitere Anwendungen

763

eingescannt werden knnen. Das Paket enthlt auch ein Plug-In fr das Grakprogramm gimp, mit dem direkt aus dem Programm heraus gescannt werden kann. Im Internet nden Sie Informationen zu sane und eine Liste der untersttzten Scanner unter http://www.sane-project.org/. 18.4.3 Faxversand und -empfang Zum Versenden und Empfangen von Faxen stehen zwei Lsungen zur Verfgung. Das Programmpaket Hylafax stellt ein umfangreiches Faxsystem nach dem KlientServer-Modell dar. Damit ist es mglich, in einem Netz einen Faxserver aufzubauen, der von anderen Rechnern benutzt werden kann. Fr das System stehen Klientprogramme fr MS-Windows- und fr Macintosh-Rechner zur Verfgung, sodass in einem heterogenen Netz auch von diesen Rechnern aus gefaxt werden kann. Hylafax besteht aus drei Paketen, nmlich hylafax-server (das Faxserver-Paket), hylafax-client (Programme zum Versenden von Faxen ber den Hylafax-Server) und hylafax-doc (Dokumentation im HTML-Format). Darber hinaus liegt mit dem Paket tkhylafax ein Programm vor, mit dem der Faxversand unter X erfolgen kann. Bevor Sie das System einrichten, sollten Sie die Dokumentation aus dem Paket hylafax-doc lesen. ffnen Sie dazu mit einem Webbrowser den URL: file:///usr/share/ doc/hylafax-doc/html/index.html Die Homepage von Hylafax nden Sie im Internet unter http://www.hylafax.org/. Eine Nummer kleiner fllt eine Faxlsung mit den Paketen mgetty und mgetty-fax aus. Bei mgetty handelt es sich um ein Paket, mit dem Modems im Antwort-Modus betrieben werden knnen. Mit dem Paket lassen sich auch Einwahlserver aufbauen. Das Paket mgetty-fax addiert die zum Faxen notwendigen Programme zu dem Basispaket. Darber hinaus ist mit mgetty-voice ein Paket verfgbar, mit dem sich zusammen mit mgetty eine Anrufbeantworterlsung mit einem Modem einrichten lsst. 18.4.4 Sound- und Videoplayer, MP3 Mittlerweile steht eine groe Anzahl von Programmen zum Abspielen und Bearbeiten von Dateien in unterschiedlichen Multimedia-Formaten (Audio- und VideoDateien) fr Linux bereit. Ein universelles Programm zum Abspielen vieler VideoFormate ist in dem Paket xanim enthalten. Leider drfen die Decoder-Programme fr viele weitverbreitete Videoformate nicht im Quellcode verteilt werden, sodass sie nicht im Paket xanim enthalten sind. Solche Decoder-Module sind jedoch in binrer Form verfgbar. Am einfachsten lassen sich diese Module durch die Installation des Pakets xanim-modules integrieren. Whrend der Installation des Pakets werden die Module heruntergeladen und installiert. Die Module lassen sich spter aktualisieren, indem das Kommando update-xanim-modules aufgerufen wird. Das Programm xanim hat eine etwas spartanische Oberche, weswegen es andere Programme gibt, mit denen xanim komfortabler gesteuert werden kann. Solche Programme sind tkxanim und gxanim.

764

18 Hinweise zu Anwendungen und Paketen

Eines der beliebtesten Programm zum Abspielen vom MP3-Dateien ist das Programm xmms (X Multimedia System, Paket xmms). Das Programm kann neben MP3 einige andere Audio-Formate abspielen und lsst sich durch Plug-Ins um weitere Ein- und Ausgabeformate sowie Methoden zur Visualisierung der Audiodaten erweitern. Vorbild bei der Entwicklung von xmms war das MS-Windows-Programm WinAmp. Die beiden Programme sind in vielerlei Hinsicht miteinander vetrglich. So lassen sich fr WinAmp entwickelte Skins (Dateien, die das Erscheinungsbild des Programms auf dem Bildschirm denieren) auch mit xmms einsetzen. Informationen und Plug-Ins zu xmms nden Sie unter http://www.xmms.org/. Zur Erstellung von MP3-Dateien stehen unter Linux mehrere MP3-Encoder zur Verfgung. Einer der besten ist das Programm lame. Dabei handelt es sich eigentlich nur um die Vernderung eines Demo-Encoders des Fraunhofer-Instituts. Aus lizenzrechtlichen Grnden darf dieser Patch nur allein und nicht mit dem Quellcode des Fraunhofer-Instituts gemeinsam verteilt werden. Informationen, wie Sie den Encoder selbst erstellen, nden Sie unter http://lame.sourceforge.net/. Ripper sind Programme, die Audiodateien von CDs lesen, diese in das MP3Format konvertieren, abspeichern und sogar Stcklisten fr MP3-Spieler wie xmms erzeugen. Wenn Sie solche Programme suchen, sollten Sie sich das Paket grip ansehen. Es lsst sich fr die Verwendung unterschiedlicher Encoder kongurieren und kann die gerippten Stcke in einer Datenbank speichern. Zum Konvertieren von Sounddateien zwischen unterschiedlichen Formaten dient das Programm sox (Paket sox). Das Programm ermglicht auch die Anwendung bestimmter Effekte auf Sounddateien. 18.4.5 Spiele Debian GNU/Linux enthlt eine groe Anzahl von Spielen, die beinahe alle Bereiche abdecken. Ein Basissammlung von Spielen lsst sich durch die Installation des Paketes task-games installieren. Hierfr bentigen Sie ungefhr 40 MB Speicherplatz. Mit dem Task-Paket wird eine Auswahl von Geschicklichkeitsspielen, Kartenspielen, Actionspielen und Denkspielen wie GNU Schach installiert. Die Firma ID-Software, Hersteller der bekannten und umstrittenen Spiele Doom und Quake, untersttzt seit lngerer Zeit das Betriebssystem Linux. Aus diesem Grund stehen Pakete mit diesen Programmen auch unter Debian GNU/Linux zur Verfgung. Die Pakete enthalten jedoch lediglich die eigentlichen Programme. Damit die Spiele benutzt werden knnen, werden zustzlich die Spieldaten bentigt. Diese Daten sind jedoch nicht frei erhltlich, sondern benden sich auf den kuflich zu erwerbenden CDs dieser Spiele. Es stehen Demo-Versionen zur Verfgung, die vom Debian-Projekt im non-free-Bereich der Distribution angeboten werden. Um das Spiel Quake mit der Demoversion der Spieldaten zu installieren, sind die Pakete quake-x11 und quake-lib zu installieren. Neben dem Paket quake-x11 stehen weitere Quake-Programme zur Verfgung, mit denen das Programm unter Verwendung von SVGA-Konsolegrak oder von OpenGL-Bibliotheken benutzt werden kann. Wer die Vollversion des Spiels besitzt, installiert anstelle von quake-lib das Paket quake-lib-stub.

19 Kommandobersicht

19.1 Einleitung
Die folgende Kommandobersicht beschreibt in alphabetischer Reihenfolge ausgewhlte Kommandos aus folgenden Anwendungsbereichen: Backup (Datensicherung), Benutzerverwaltung, Dateiverwaltung, Dokumentation und Hilfe, Drucken, Email, Entwicklung, Information ber das System, Installation, Kommunikation im Netz, Kompatibilitt mit anderen Betriebssystemen, Netz, Pakteverwaltung, Produktivitt, Prozessverwaltung, Shellskripte, Suchen in und nach Dateien, Systemkonguration, Systemverwaltung, Textverarbeitung sowie Verschiedenes. Unter Kommandos werden in diesem Zusammenhang Programme verstanden, die von der Kommandozeile oder aus Skripten heraus aufgerufen werden. Es ist unmglich, eine vollstndige Referenz zu allen unter Debian GNU/Linux verfgbaren Kommandos zu erstellen, da sich die Menge der Kommandos unbegrenzt erweitern lsst. Deshalb verfolgt die bersicht das Ziel, grundlegende Werkzeuge vorzustellen, die bei vielen Aufgaben bentigt werden. Auch bei der Beschreibung der einzelnen Werkzeuge mssen wir uns auf das Wesentliche beschrnken. 19.1.1 Optionen Optionen werden durch ein Minuszeichen und ein Zeichen angegeben (z. B. -a). Von dieser Regel gibt es Ausnahmen. Bei einigen Programmen werden Optionen nur durch einen Buchstaben ohne Minuszeichen angegeben. Verbreitet sind lange Optionen, vor allem bei GNU-Programmen. Sie bestehen aus zwei Minuszeichen hintereinander und einem Wort (z. B. - -recursive). Lange Optionen bieten den Vorteil, dass man sie besser behalten kann, und den Nachteil, dass man mehr tippen muss, um sie einzugeben. Deswegen wird von Programmen, die lange Optionen untersttzen, fr die meisten langen Optionen eine alternative kurze Option angeboten. Wenn es alternative Formen der Angabe von Optionen gibt, sind diese, durch einen Querstrich voneinander getrennt, aufgefhrt.

766

19 Kommandobersicht

19.1.2 Beispiele Die Beispiele machen in vielen Fllen Gebrauch von Eigenschaften der Shell wie Ein- und Ausgabeumleitung oder Kommandoverkettung durch Pipes. Sie wurden mit der bash (siehe Kap.: 16, S. 505) getestet, sollten aber auch mit anderen Shells funktionieren. Einige Kommandos sind sinnvoll nur in Verbindung mit anderen Kommandos einzusetzen. Weiterfhrende Hinweise und Dokumentation Am Ende der Erluterungen zu den meisten Kommandos nden Sie einen Verweis auf andere Programme, die in Zusammenhang zu dem Kommando stehen. Der Leser sollte sich in solchen Fllen angeregt fhlen, selbst nach der Dokumentation dieser Programme zu suchen. Die meisten Programme sind entweder mit dem GNUInfo-System oder dem Manual-System dokumentiert. Zu einigen Kommandos oder Kommandogruppen gibt es im Verzeichnis /usr/share/doc eine umfassende Dokumentation. Wer noch mehr wissen will, wendet sich am besten mit Hilfe einer Suchmaschine an das Web. Viele Programme sind mit einer Option ausgestattet, um eine kurze Hilfe zu ihrer Benutzung auszugegeben. Die Option lautet meist -h, -? oder - -help. Darber hinaus wird von vielen Programmen eine Option zur Verfgung gestellt, mit der die aktuelle Programmversion angezeigt wird. Die Option lautet meist --version, manchmal -V.

19.2 Kommandos

a2ps
Paket: a2ps

Datei nach PostScript umwandeln


Textverarbeitung, Drucken

a2ps [Optionen] [Datei ...] Das Programm stellt ein Werkzeug zum Erzeugen von PostScript-Dateien aus Textdateien dar. Es ist jedoch auch in der Lage, andere Dateitypen zu erkennen und die richtigen Programme aufzurufen, um die Daten in PostScript umzuwandeln. Standardmig liest a2ps die mit Datei angegebene(n) Datei(en) oder von der Standardeingabe, wenn keine Dateien angegeben wurden. Aus den gelesenen Daten wird eine PostScript-Datei erzeugt, die ohne Angabe weiterer Optionen ber den Standarddrucker ausgegeben wird. Im Fall von Textdateien werden dabei jeweils zwei Seiten nebeneinander auf einem Blatt Papier ausgedruckt. --list=Thema Fhrt dazu, dass das Programm Informationen zu seiner Konguration ausgibt. Fr Thema gltige Werte sind u. a. defaults (gibt Informationen ber die Voreinstellungen), features (gibt Informationen ber verfgbare Eigenschaften), media (Listet bekannte Papierformate) und printers (zeigt die verfgbaren Drucker an).

19.2 Kommandos

767

-M Medium | --medium=Medium Legt das Papierformat fest (Beispiele: A3, A4, B5, letter). -r | --landscape Formatiert die Seiten im Querformat. -R | --portrait Formatiert die Seiten im Hochformat. --columns=Spalten Gibt mit Spalten an, wieviele Seiten auf ein Blatt Papier in horizontaler Richtung nebeneinander gedruckt werden sollen. --rows=Zeilen Gibt mit Zeilen an, wieviele Seiten auf ein Blatt Papier in vertikaler Richtung gedruckt werden sollen. -j | --borders=1|0 Gibt an, ob um jede Seite ein Rahmen gezeichnet werden soll. -A | --compact=1|0 Bestimmt, ob der Text aus verschiedenen Dateien auf einem Blatt Papier erscheinen darf. --line-numbers=Nummer Im Abstand von der durch Nummer angegebenen Anzahl von Zeilen werden an die Zeilen Zeilennummern geschrien. -f Gre[Einheit] | --font-size=Gre[Einheit] Legt die zu benutzende Schriftgre fest. Gre ist eine beliebige auch ungerade Zahl und Einheit eine von cm, pt (PostScript-Punkte) oder in (Inch). -B | --no-header Es wird kein Seitenkopf erzeugt. -bText | --header=Text Es wird der mit Text angegebene Text in den Seitenkopf geschrieben. Wenn Text aus mehreren Wrtern besteht, muss er gequotet werden. -uText | --underlay=Text Der mit Text angegebene Text wird als Wasserzeichen auf jedes Blatt gedruckt. --footer=Text Der mit Text angegeben Text wird in den Fu jeder Seite geschrieben. -t Titel | --title=Titel Legt den Titel des zu druckenden Dokumentes fest. -o Datei | --output=Datei Die erzeugten PostScript-Daten werden nicht gedruckt, sondern in die mit Datei bezeichnete Datei geschrieben. Wenn fr Datei ein Minuszeichen angegeben wird, werden die Daten auf die Standardausgabe gegeben. -P Drucker | --printer=Drucker Das Ergebnis wird auf den mit Drucker bezeichneten Drucker ausgegeben. Das Programm verwendet eigene Druckerdenitionen. Wird fr Drucker display angegeben, wird das erzeugte Dokument mit einem PostScript-Betrachter angezeigt. Wenn der angegebene Drucker a2ps nicht bekannt ist, wird das Programm lpr mit dem betreffenden Druckernamen aufgerufen. -n Anzahl | --num=Anzahl Legt die Anzahl der zu druckenden Kopien fest. a2ps brief.txt Druckt die Datei brief.txt als PostScriptdatei ber den Standarddrucker aus. a2ps brief.txt -Pdisplay Zeigt die aus der Datei brief.txt erzeugten PostScript-Datei am Bildschirm an. a2ps --list=defaults

768

19 Kommandobersicht

Gibt die Voreinstellungen des Programms aus. cat program.c | a2ps -R --columns=2 --rows=2 -f 3mm -u"Geheim" --line-numbers=20 -Plaserjet Druckt die Datei program.c im Hochformat mit 4 Seiten auf einem Blatt Papier. Es wird eine 3 mm groe Schrift benutzt und auf jede Seite das Wasserzeichen Geheim gedruckt. Alle 20 Zeilen erscheint eine Zeilennummer. Siehe auch: mpage, pr, lpr.

activate
Paket: lilo

Aktive Partition anzeigen/festlegen


Systemverwaltung

activate Gertedatei [Partitionsnummer] Wird activate ohne Partitionsnummer aufgerufen, gibt es die aktive Partition der mit Gertedatei bezeichneten Festplatte (z. B. /dev/sda oder dev/hdb) aus. Wird Partitionsnummer angegeben, wird die Partition aktiv. Weil nur primre Partitionen aktiv sein knnen und es auf IBM-kompatiblen Rechnern nicht mehr als vier davon auf einer Festplatte geben kann, muss Partitionsnummer zwischen 1 und 4 liegen (siehe auch 2.5). Achtung: Ob durch das Verndern der aktiven Partition das Startverhalten des Rechners beeinusst wird, ist abhngig von der jeweiligen Bootkonguration. Der bei der Installation von Debian GNU/Linux einrichtbare MBR, ebenso wie die von DOS/MS-Windows installierten MBRs, laden das Betriebssystem auf der aktiven Partition. Wird jedoch ein anderer MBR benutzt (z. B. lilo im MBR) hat das Aktivieren einer Partition u. U. keine Auswirkung activate /dev/hda Gibt die aktive Partition der ersten (E)IDE-Festplatte aus. activate /dev/sda3 Macht die dritte primre Partition der ersten SCSI-Festplatte zur aktiven Partition Siehe auch: lilo, cfdisk, fdisk.

addgroup
Paket: adduser

Benutzergruppe anlegen
Benutzerverwaltung

addgroup [- -gid GID] Gruppe Das Kommando erstellt eine neue Gruppendenition in der Datei /etc/group. Die neue Gruppe enthlt noch keine Benutzer. Die neue Gruppe wird als Systemgruppe (Gruppen-ID zwischen 101 und 999) angelegt, wenn nicht mit - -gid eine andere Gruppen-ID angegeben wird. Falls die angegebene Gruppen-ID oder der gewnschte Gruppenname bereits existieren, wird eine Fehlermeldung ausgegeben. - -gid GID Die anzulegende Gruppe erhlt die Gruppen-ID GID. addgroup scanner Legt eine Systemgruppe mit dem Namen scanner an. addgroup - -gid 2000 bwg

19.2 Kommandos

769

Legt eine Benutzergruppe mit dem Namen bwg an. Siehe auch: adduser, groupadd, groupdel.

adduser
Paket: adduser

Benutzer einrichten
Benutzerverwaltung

adduser [- -home DIR] [- -uid ID] [- -ingroup GROUP | - -gid ID] [- -disabled-password] [- -gecos GECOS] [Benutzername] Fgt dem System ein gewhnliches Benutzerkonto zu. adduser - -system [- -home DIR] [- -uid ID] [- -group | - -ingroup GROUP | - -gid ID] [- -disabled-password] [- -gecos GECOS] Benutzer Fgt dem System ein System-Benutzerkonto zu. adduser - -group [- -gid ID] Gruppe Fgt dem System eine neue Benutzergruppe zu. adduser Benutzer Gruppe Benutzer wird Gruppe hinzugefgt. Das Kommando adduser richtet neue Benutzerkonten und Gruppendenitionen auf dem System ein. Wenn ihm ein neuer Benutzername bergeben wird, wird ein Benutzerkonto mit dem angegebenen Namen eingerichtet. Wenn kein Benutzername angegeben wird, wird dieser erfragt. Standardmig werden dabei ein Home-Verzeichnis fr den neuen Benutzer im Verzeichnis /home mit dem Namen des Benutzers angelegt und die Ausgangskongurationsdateien aus /etc/skeleton in dieses Verzeichnis kopiert. Gleichzeitig wird eine neue Benutzergruppe angelegt, in welcher der neue Benutzer Mitglied ist und die ebenfalls den Namen des Benutzers trgt (dies kann in der Datei /etc/adduser.conf abgeschaltet werden). Standardmig wird ein Passwort fr den neuen Benutzer erfragt. Information ber den neuen Benutzer (tatschlicher Name etc.) knnen interaktiv eingegeben oder dem Programm mit dem Parameter - -gecos bergeben werden. Wird adduser mit einem bereits vorhandenen Benutzernamen als erstem Parameter und einem bereits vorhandenen Gruppennamen als zweitem Parameter aufgerufen, so fgt das Programm den Benutzer der Gruppe zu. - -home DIR Der neue Benutzer erhlt das Home-Verzeichnis DIR anstelle des Standardverzeichnisses. - -uid UID Der Benutzer erhlt die Benutzer-ID UID, anstelle der ersten freien Benutzer-ID. - -ingroup GROUP Der Benutzer wird Mitglied der Gruppe GROUP und erhlt keine eigene Gruppe. - -gid GID Wenn eine neue Gruppe angelegt wird, erhlt sie die ID GID und nicht die erste freie ID. - -disabled-password Fr den neuen Benutzer wird kein Passwort vergeben. Das neue Konto kann erst benutzt werden, wenn es ein Passwort erhalten hat (siehe auch passwd).

770

19 Kommandobersicht

- -gecos GECOS Zustzliche Benutzerinformationen (Telefonnummer etc.) werden nicht erfragt, sondern es wird der mit GECOS angegebene Benutzername bernommen. Dazu wird das Kommando chfn -f automatisch aufgerufen. - -system Es wird ein Systembenutzerkonto angelegt. Systembenutzerkonten werden vom System benutzt, um bestimmte Aufgaben mit gesonderten Rechten und nicht mit Verwalterrechten auszufhren. Sie haben eine Benutzer-ID kleiner als 1000. - -group Es wird eine neue Gruppe angelegt. Das Kommando hat dann die gleiche Wirkung wie addgroup. adduser gustav Dem System wird ein Benutzerkonto mit dem Namen gustav hinzugefgt. Es werden ein Passwort sowie einige optionale Daten ber den neuen Benutzer erfragt. Gleichzeitig wird fr ihn ein Home-Verzeichnis angelegt. adduser - -ingroup verkauf - -disabled-password - -gecos "Gustav Meier" meier Dem System wird ein Benutzerkonto mit dem Namen meier hinzugefgt. Der Benutzer wird Mitglied der Gruppe verkauf, und sein wirklicher Name wird im Informationsfeld der Datei /etc/passwd vermerkt. Es erfolgt keine Passwortabfrage, und das Konto kann erst benutzt werden, wenn der Verwalter es mit passwd meier freigeschaltet hat. Der Vorteil dieser Methode ist, dass adduser so keine Benutzereinwirkung erfordert. Siehe auch: passwd, addgroup, chfn, userdel, groupdel.

ae
Paket: ae

Texteditor fr die Konsole


Textverarbeitung

ae [-f Konfigurationsdatei] [Datei] ae ist der auf der Debian-Rescue-Diskette enthaltene Texteditor. Er ist sehr klein. Seine Tastaturbelegung lsst sich ber eine Datei komplett kongurieren. Nach dem Start von ae ist der Bildschirm zweigeteilt. In der oberen Hlfte sind die Tastaturkommandos mit den damit verbundenen Funktionen dargestellt. In der unteren Hlfte bendet sich die zu bearbeitende Datei. Die standardmige Konguration enthlt eine emacs-hnliche Tastaturbelegung. Darber hinaus stehen Kongurationsdateien fr eine vi-hnliche Belegung sowie eine Konguration, bei welcher der Editor ber die Funktionstasten gesteuert wird, zur Verfgung. -f Konfigurationsdatei Die mit Kongurationsdatei angegebene Datei wird verwendet, um die Tastatur zu kongurieren. Verschiedene Kongurationsdateien benden sich im Verzeichnis /etc/ae. Ohne die Option verwendet ae die Kongurationsdatei /etc/ae.rc, in der standardmig einige emacs-hnliche Tastaturkommandos deniert sind. ae -f /etc/ae/fn.rc readme.txt ruft ae mit der Kongurationsdatei /etc/ae/fn.rc auf und ldt die Datei readme.txt. Siehe auch: vi, emacs.

19.2 Kommandos

771

alien
Paket: alien

Fremde Pakete installieren


Systemverwaltung, Paketverwaltung

alien [Optionen] Paketdatei Das Programm ermglicht, Pakete unterschiedlicher Linux-Distributionen umzuwandeln. Untersttzt werden zur Zeit das Slackware- (*.tgz), das Redhat- (*.rpm), das Stampede-Format (*.slp) und das Debian-Format (*.deb). alien kann ein Paket im distributionsfremden Format auch gleich installieren. Bei der Konvertierung vom Redhat- in das Debian-Format wird geprft, ob sich im Verzeichnis /var/lib/alien eine Datei bendet, die bei der Konvertierung vorzunehmende Anpassungen fr das Paket enthlt. Wird eine solche Patch-Datei gefunden, werden die darin beschriebenen nderungen durchgefhrt. Das Originalpaket wird nicht verndert. Achtung: Das Programm sollte nur als letzter Ausweg zur Installation eines Pakets verwendet werden, falls kein Debian-Paket und kein Quellcode zu bekommen ist. Andere Distributionen verwenden teilweise andere Speicherpltze fr Kongurationsdateien, andere Bibliothekenbezeichnungen oder erwarten andere Verzeichnisstrukturen. Dies alles kann zu Problemen fhren. -d | - -to-deb Die Ausgangsdatei wird in das Debian-Format umgewandelt. Dies ist die Voreinstellung. -r | - -to-rpm Die Ausgangsdatei wird in das Redhat-Format umgewandelt. Die Ergebnisdatei wird in dem der jeweiligen Rechnerarchitektur entsprechenden Unterverzeichnis von /usr/src/redhat/RPMS, beispielsweise /usr/src/redhat/RPMS/i386, abgelegt. - -to-slp Die Ausgangsdatei wird in das Stampede-Format umgewandelt. -i | - -install Nach der Konvertierung wird das Paket installiert. Hinterher wird die umgewandelte Fassung gelscht. -g | - -generate Es wird eine Verzeichnisstruktur erzeugt, aus der das Paket im neuen Format erzeugt werden kann. Dies ist ntzlich, wenn auer der Konvertierung noch manuelle Anpassungen vorgenommen werden mssen. Ein Debian-Paket kann in diesem Verzeichnis durch folgendes Kommando erstellt werden: debian:~# debian/rules binary - -patch Patch Anstatt in /var/lib/alien nach einer passenden Patch-Datei zu suchen, wird die mit Patch bezeichnete Datei benutzt. alien -i applix_4.3-2.rpm Konvertiert das RPM-Paket applix_4.3-2.rpm in das Debian-Format, installiert das Paket und lscht die umgewandelte Fassung alien - -to-rpm samba_1.9.18p10-7.deb Erzeugt aus dem Debian-Paket samba_1.9.18p10-7.deb ein RPM-Paket und legt dieses im Verzeichnis /usr/src/redhat/RPMS/<arch> ab, wobei <arch> fr die Rechnerarchitektur steht, fr welche das Paket bestimmt ist (z. B. i386). Siehe auch: dpkg, dselect, rpm, diff, patch.

772

19 Kommandobersicht

apropos
Paket: man-db

In Programmkurzbeschreibungen suchen
Dokumentation

apropos [Optionen] Suchbegriff Das Programm gibt die Bezeichnungen und Kurzbeschreibungen von Manualseiten aus, die in der Indexdatenbank des Manual-Systems enthalten sind. Standardmig werden die Kurzbeschreibungen von Manualseiten ausgegeben, in denen der mit Suchbegriff angegebene Suchbegriff vorkommt oder auf die Suchbegriff selbst zutrifft. -e | - -exact Es werden nur solche Kurzbeschreibungen ausgegeben, bei denen der Suchbegriff mit einem ganzen Wort im Namen oder der Kurzbeschreibung bereinstimmt. -r | - -regex Suchbegriff wird als regulrer Ausdruck interpretiert. -w | - -wildcard Suchbegriff enthlt Metazeichen (*,?,[]). Beim Einsatz von Metazeichen und regulren Ausdrcken sind diese durch Anfhrungsstriche vor der Interpretation durch die Shell zu schtzen. apropos ls Gibt die Kurzbeschreibungen aller Programme aus, in denen das Wort ls vorkommt. apropos -w "*ls*" Gibt Kurzbeschreibungen aller Kommandos, in denen die Zeichenkette ls vorkommt, aus. Siehe auch: man, whatis, regulre Ausdrcke.

apt-get
Paket: apt

Advanced Package Tool


Systemverwaltung, Paketverwaltung

apt-get [Optionen] [update | upgrade | install pkg | remove pkg | source pkg | autoclean] Das Advanced Package Tool (APT) ist eine Sammlung von KommandozeilenWerkzeugen zur Verwaltung von Debian-Paketen. Das wichtigste Werkzeug ist apt-get. Das APT wird mit der Datei /etc/apt/apt.conf konguriert. In der Datei /etc/apt/sources.list sind die Quellen aufgezhlt, aus denen das Werkzeug die Debian-Pakete bezieht (FTP-Server, CD . . . ). Die Unterkommandos bedeuten folgendes: update: Aktualisiert die lokale Liste verfgbarer Debian-Pakete. upgrade: Aktualisiert die lokal eingerichteten Debian-Pakete. install pkg: Richtet ein Debian-Paket neu auf dem System ein. remove pkg: Entfernt ein Debian-Paket aus dem System source pkg: Richtet den Quellcode eines Debian-Paketes ein. autoclean: Lscht die lokalen Archiv-Dateien von Debian-Paketen. die auf den Debian-Servern nicht mehr verfgbar sind (obsolet sind). Vorausgesetzt, dass in sources-list zuverlssige Debian-Server eingetragen sind und man eine Internet-Anbindung hat, soll man auf einem Rechner unter Debian

19.2 Kommandos

773

GNU/Linux etwa wchentlich die Kommandos apt-get update und anschlieend aptget upgrade ausfhren, um das System auf dem laufenden zu halten. Etwa monatlich soll man nach dem Upgrade das Kommando apt-get autoclean geben, alles mglichst im Single-User-Modus. -h | --help Ohne weiteres Argument aufgerufen gibt das Kommando eine kurze Hilfe aus. -s | --simulate Mit einem Argument aufgerufen tut das Kommando nur so als ob. apt-get install dnsutils Richtet das Debian-Paket dnsutils ein. apt-get remove dnsutils Entfernt das Debian-Paket dnsutils aus dem System. apt-get update Aktualisiert die lokale Liste der verfgbaren Debain-Pakete mit Hilfe der in sourceslist aufgefhrten Bezugsquellen. apt-get upgrade Aktualisiert die lokal eingerichteten Debian-Pakete mit Hilfe der in sources-list aufgefhrten Bezugsquellen. Siehe auch: dpkg, tasksel.

at
Paket: at

Kommandos zu einer bestimmten Zeit ausfhren


Prozessverwaltung, Systemverwaltung

at [Optionen] Uhrzeit at -c Auftragsnummer Das Programm liest Kommandos von der Standardeingabe. Die Eingabe kann mit der Tastenkombination S TRG - D beendet werden. Zu der mit Uhrzeit angegebenen Uhrzeit werden die gelesenen Kommandos durch /bin/sh im Arbeitsverzeichnis mit der Benutzer-ID des aufrufenden Benutzers ausgefhrt. Umgebungsvariablen werden, mit Ausnahme von DISPLAY, TERM und _ wiederhergestellt. Die Ausgaben der dann ausgefhrten Kommandos werden per Mail an den aufrufenden Benutzer geschickt. Es bestehen mehrere Mglichkeiten, die Uhrzeit anzugeben, beispielsweise midnight (Mitternacht), noon (12:00 Uhr mittags) und teatime (16:00). Weiter ist die Spezikation im Format Stunden:Minuten (z. B. 17:07) mglich. Wird kein Datum angegeben, so wird der Auftrag am Tag der Eingabe ausgefhrt. Ist die angegebene Zeit schon vergangen, wird der Auftrag am nchsten Tag zur angegebenen Zeit ausgefhrt. Ein optionales Datum wird durch Leerzeichen getrennt nach der Uhrzeit angegeben. Eine mgliche Schreibweise ist Tag.Monat.Jahr (z. B. 09.11.01 fr 9. November 2001). Darber hinaus lsst sich das Datum relativ zum aktuellen Datum ausdrcken. Hierzu kann folgende Schreibweise benutzt werden: + Anzahl Einheit, wobei Einheit days, weeks, months oder years sein kann. -q Warteschlange Es stehen die Warteschlangen a-z und A-Z zur Verfgung. Standard ist a. Auftrge in Warteschlangen mit hheren Buchstaben werden mit

774

19 Kommandobersicht

geringerer Prioritt ausgefhrt. Durch diese Option wird der Auftrag in die mit Warteschlange bezeichnete Warteschlange eingereiht. -m Es wird auch dann eine Mail verschickt, wenn der Auftrag keine Ausgaben erzeugt hat. -f Datei Die auszufhrenden Kommandos des Auftrags werden nicht von der Standardeingabe gelesen, sondern aus der mit Datei bezeichneten Datei. -c Auftragsnummer Es werden keine Kommandos gelesen, vielmehr wird der Inhalt des Auftrags mit der Nummer Auf tragsnummer ausgegeben. Vorhandene Auftragsnummern knnen mit atq ermittelt werden. at teatime Nach Eingabe des Kommandos knnen weitere Kommandos eingegeben werden, die um 16:00 Uhr am selben Tag oder um 16:00 Uhr am nchsten Tag, falls es bereits spter als 16:00 Uhr ist, ausgefhrt werden. at -q d -f jobfile midnight + two weeks Um Mitternacht in zwei Wochen werden die in der Datei joble stehenden Kommandos ausgefhrt. Der Auftrag hat eine geringere Prioritt als Standardauftrge, weil er in die Warteschlange d eingereiht wird. Siehe auch: batch, atq, atrm, atrun, atd, crontab.

badblocks
Paket: e2fsprogs

Massenspeicher auf physikalische Fehler prfen


Systemverwaltung, Installation

badblocks [Optionen] Gertedatei Blockanzahl Das Programm prft, ob sich auf Speichermedien (Festplattenpartitionen, Disketten etc.) fehlerhafte Blcke benden. Es stehen zwei verschiedene Testmodi zur Verfgung. Standardmig wird nur versucht, die angegebenen Blcke zu lesen. Es ist aber auch mglich, in jeden Block etwas zu schreiben und dann zu testen, ob diese Information gespeichert wurde. Achtung: Das Verfahren darf nicht bei Datentrgern benutzt werden, auf denen Daten gespeichert sind. Sie werden durch den Schreibtest gelscht. Die von badblocks erzeugte Information kann von den Programmen mke2fs und e2fsck verwendet werden, um fehlerhafte Blcke auf der Partition zu vermerken. Sie werden dann nicht mehr benutzt. Viele Formatierungsprogramme knnen badblocks auch selbst aufrufen. Gertedatei muss ein gltiges Blockgert wie eine Festplattenpartition (/dev/hda1) darstellen. -b Blockgre Mit Blockgre wird die Gre eines Blocks in Byte angegeben. Standardwert ist 1024. -o Datei Die Ausgabe wird in die Datei Datei geschrieben und nicht auf die Standardausgabe. -s Es wird angezeigt, welcher Block gerade untersucht wird. -w Es wird der Schreibtest benutzt. Die Option lscht die Daten auf der Partition, stellt aber einen besseren Test zur Verfgung.

19.2 Kommandos

775

badblocks /dev/sda5 257008 Untersucht die erste logische Partition auf der ersten SCSI-Festplatte nach fehlerhaften Blcken. Die Partition hat 257008 Blcke (fdisk -s /dev/sda5). badblocks -w -o badblocks_hda2 -s /dev/hda1 fdisk -s /dev/hda1 Fhrt einen Schreibtest auf der ersten primren Partition der ersten IDE-Festplatte durch. Fehlerhafte Blcke werden in die Datei badblocks_hda2 geschrieben. Whrend des Tests erscheint eine Statusanzeige. Die Anzahl der Blcke auf dieser Partition wird der Ausgabe von fdisk -s /dev/hda1 entnommen (Kommandosubstitution). Siehe auch: fdisk, mke2fs, e2fsck.

bash
Paket: bash

Standardshell unter Debian GNU/Linux

bash [Optionen] [Datei] Die Shell (Kommandointerpreter) ist ein so umfangreiches Programm, dass es sich nicht in wenigen Zeilen erlutern lsst. Daher siehe Kapitel 16 auf S. 505. Siehe auch: sh, csh, ksh, tcsh.

batch
Paket: at

Kommando bei niedriger Systemlast ausfhren


Prozessverwaltung, Systemverwaltung

batch [Optionen] Das Programm liest Kommandos von der Standardeingabe und erzeugt daraus einen Auftrag, der ausgefhrt wird, wenn die Systemlast einen bestimmten Wert unterschreitet. Dieser Wert kann beim Start des zugehrigen Programms atd angegeben werden und betrgt standardmig 0,8. Die zur Eingabe der Kommandos gesetzten Umgebungsvariablen sowie das Arbeitsverzeichnis werden bei Ausfhrung des Auftrags wiederhergestellt. Es stehen verschiedene Warteschlangen zur Verfgung, durch die die Prioritt, mit denen die Auftrge ausgefhrt werden, festgelegt werden kann. Werden die Kommandos manuell ber die Standardeingabe eingegeben, kann der Vorgang durch die Tastenkombination S TRG - D beendet werden. Ausgaben, die whrend der Ausfhrung der angegebenen Kommandos entstehen, werden dem Auftraggeber per Mail zugesandt. -f Datei Die auszufhrenden Kommandos werden nicht von der Standardeingabe, sondern aus der mit Datei bezeichneten Datei gelesen. -m Es wird auch dann eine Email an den auftraggebenden Benutzer gesandt, wenn die auszufhrenden Kommandos keine Ausgabe erzeugt haben. -q Warteschlange Der Auftrag wird in die mit Warteschlange bezeichnete Warteschlange eingereiht. Es stehen die Warteschlangen a-z und A-Z zur Verfgung. Auftrge in Warteschlangen mit hheren Buchstaben werden mit geringerer Prioritt ausgefhrt. Vorgabewert fr batch ist b. batch Es erscheint die Eingabeaufforderung von batch, an der die Kommandos des Auftrages eingegeben werden knnen. Die Eingabe ist mit S TRG - D zu beenden. Die

776

19 Kommandobersicht

Kommandos werden ausgefhrt, sobald die Systemlast den beim Start von atd angegebenen Grenzwert oder den Standardwert von 0,8 unterschritten hat. batch -f jobdatei -q z Die in der Datei jobdatei bendlichen Kommandos werden ausgefhrt, sobald die Systemlast den kritischen Wert unterschritten hat. Die Kommandos werden dann mit einer geringeren Prioritt als der Standardprioritt ausgefhrt, weil der Auftrag in die Warteschlange z eingereiht wird. Siehe auch: atd, at, atq.

bunzip2
Paket: bzip2

Komprimierte Datei dekomprimieren


Dateiverwaltung

bunzip2 [Optionen] [Datei ...] Das Programm dekomprimiert eine oder mehrere mit Datei angegebene Dateien, die mit bzip2 komprimiert worden sind. Wenn keine Dateien angegeben sind, liest das Programm Daten von der Standardeingaben und schreibt sie dekomprimiert auf die Standardausgabe. Wenn das Programm Dateien dekomprimiert, werden die ursprnglichen Dateien gelscht und das Ergebnis der Kompression in neue Dateien geschrieben, die den Namen der Ausgangsdatei tragen. Die Namensendung .bz2 wird dabei entfernt. -f | - -force Gewhnlich dekomprimiert das Programm Dateien nicht, wenn bereits andere Dateien existieren, die den Namen tragen, welchen die zu erzeugende Datei bekommen soll. Diese Option erzwingt das Dekomprimieren, auch wenn dabei bereits existierende Dateien berschrieben werden. -k | - -keep Die Ausgangsdateien werden nicht gelscht. bunzip2 patch-2.2.15.bz2 Dekomprimiert die zuvor mit bzip2 komprimierte Datei patch-2.2.15.bz2 und schreibt das Ergebnis in eine Datei mit dem Namen patch-2.2.15. Die Ursprungsdatei wird nach erfolgreicher Dekompression gelscht. Siehe auch: bzip2, gunzip, unzip.

bzip2
Paket: bzip2

Datei komprimieren
Dateiverwaltung

bzip2 [Optionen] [Datei ...] Das Programm komprimiert eine oder mehrere mit Datei angegebene Dateien. Wenn keine Dateien angegeben sind, liest das Programm Daten von der Standardeingabe und schreibt sie komprimiert auf die Standardausgabe. Wenn Dateien komprimiert werden, werden die Ausgangsdateien gelscht und das Ergebnis der Kompression in Dateien gleichen Namens geschrieben, denen die Namensendung .bz2 angehngt ist. Das Programm bzip2 verwendet ein anderes Kompressionsverfahren als das Standardprogramm zur Datenkompression gzip, Das von bzip2 verwendete Verfahren ermglicht eine hhere Kompression, bentigt aber mehr Rechenzeit.

19.2 Kommandos

777

-f | - -force Gewhnlich komprimiert das Programm Dateien nicht, wenn bereits andere Dateien existieren, die den Namen tragen, welchen die zu erzeugende Datei bekommen soll. Diese Option erzwingt das Komprimieren, auch wenn dabei bereits existierende Dateien berschrieben werden. -k | - -keep Die Ausgangsdateien werden nicht gelscht. bzip2 archiv.tar Komprimiert die Datei archiv.tar und schreibt das Ergebnis in die Datei archiv.tar.bz2. Die Datei archiv.tar wird nach erfolgreicher Kompression gelscht. Siehe auch: bunzip2, gzip, zip.

cal
Paket: bsdmainutils

Kalender ausgeben
Produktivitt

cal [Optionen] [[Monat] Jahr] Das Kommando gibt standardmig den Kalender fr den laufenden Monat aus. Wird ein Parameter angegeben, so wird dieser als Jahreszahl interpretiert. Es wird dann der Kalender fr das entsprechende Jahr ausgegeben. Bei Angabe von zwei Parametern wird der erste Parameter als Monatszahl und der zweite Parameter als Jahreszahl interpretiert, und es wird der Kalender fr den betreffenden Monat des entsprechenden Jahres ausgegeben. -y Gibt den gesamten Kalender fr das laufende Jahr aus. -j Gibt die Nummer der Tage durchnummeriert vom 1. Januar des betreffenden Jahres und nicht vom ersten Tag des betreffenden Monats aus. cal -y Gibt den Jahreskalender fr das aktuelle Jahr aus. cal 9 1752 Gibt den Kalender fr den Monat September des Jahres 1752 aus.

cat
Paket: textutils

Daten auf Standardausgabe geben


Textverarbeitung, Shellskripte

cat [Optionen] [Datei ...] Das Programm liest Daten aus einer oder mehreren Datei(en) und gibt diese auf die Standardausgabe aus. Wird kein Dateiname oder "-" angegeben, wird von der Standardeingabe gelesen. cat eignet sich dazu, den Inhalt kleinerer Dateien am Bildschirm zu betrachten. Die Hauptaufgabe des Programms besteht jedoch darin, den Inhalt von Dateien in eine Pipe zu schreiben, aus der andere Programme lesen. cat kann auerdem dazu verwendet werden, verschiedene Dateien zu einer zusammenzufgen, daher der Name (concatenate). -n | - -number Jeder ausgegebenen Zeile wird eine laufende Nummer vorangestellt. -b | - -number-nonblank Allen nicht-leeren Zeilen wird eine laufende Nummer vorangestellt.

778

19 Kommandobersicht

-s | - -squeeze-blank Mehrere leere Zeilen, die aufeinander folgen, werden zu einer zusammengefat. -v | - -show-nonprinting Nicht-druckbare Zeichen werden in einem druckbaren Format ausgegeben. -E | - -show-ends An das Ende jeder Zeile wird ein $-Zeichen gesetzt. -T | - -show-tabs Fr Tabulatoren wird ^I ausgegeben. cat datei1 datei2 datei3 > neu_datei Die Inhalte der Dateien datei1, datei2 und datei3 werden hintereinander in die Datei neu_datei geschrieben. cat - > brief ber die Standardeingabe eingegebener Inhalt wird in die Datei brief geschrieben. Bei manueller Eingabe kann der Vorgang durch die Tastenkombination S TRG - D beendet werden. cat -n brief Der Inhalt der Datei brief wird auf die Standardausgabe gegeben. Die Zeilen werden dabei durchnummeriert. Siehe auch: split, head, tail, tac.

cfdisk
Paket: util-linux

Festplatte partitionieren
Systemverwaltung, Installation

cfdisk [Optionen] Gertedatei] Das Programm ist das Standard-Programm zur Partitionierung von Festplatten unter Debian GNU/Linux. Es erlaubt das interaktive Neu- und Umpartitionieren von Festplatten. Die Benutzung des Programms ist ausfhrlich in Kapitel 4.2.3, S. 72 beschrieben. Standardmig wird versucht, die erste Festplatte zu ffnen. Das ist die durch die Gertedatei /dev/hda dargestellte erste (E)IDE-Festplatte. Soll eine andere Festplatte bearbeitet werden, muss die entsprechende Gertedatei angegeben werden. Falls die Geometrie der Festplatte nicht korrekt vom BIOS ermittelt werden kann, mssen cfdisk die Daten an der Kommandozeile bergeben werden. -c Zylinder Spezikation der Anzahl der Zylinder auf der Festplatte. -h Kpfe Spezikation der Anzahl von Schreib-Lese-Kpfen auf der Festplatte. -s Sektoren Spezikation der Anzahl von Sektoren pro Track auf der Festplatte. -z Nach Start des Programms werden bereits existierende Partitionen nicht angezeigt, und die Festplatte erscheint stattdessen unpartitioniert. Dieser Modus ist sinnvoll, wenn die Festplatte komplett neu partitioniert werden soll, weil das Lschen vorhandener Partitionen entfllt, oder wenn die alte Partitionstabelle nicht korrekt gelesen werden kann (etwa weil sie noch nicht existiert). -P [Optionen] Die Partitionstabelle wird ausgegeben. Es muss eine der folgenden Optionen gewhlt werden: t Die Partitionstabelle wird roh ausgegeben. r Die Partitionstabelle wird roh in hexadezimaler Form ausgegeben, d. h. so wie sie auf die Festplatte geschrieben wird.

19.2 Kommandos

779

s Die Partitionstabelle wird nach Sektoren geordnet ausgegeben. -a In der Partitionstabelle wird der ausgewhlte Bereich nicht invertiert dargestellt, sondern es wird ihm ein Pfeil vorangestellt. cfdisk /dev/sda Ruft das Programm zum Bearbeiten der ersten SCSI-Festplatte auf. cfdisk -Ps /dev/hdb Gibt die Partitionstabelle fr die zweite (E)IDE-Festplatte nach Sektoren sortiert aus. Siehe auch: fdisk, sfdisk, Kapitel 4.2.3, Kapitel 2.5.

chage
Paket: passwd

Gltigkeit von Passwort anzeigen und ndern


Benutzerverwaltung

chage [Optionen] Benutzername ndert die in Optionen spezizierten Einstellungen zur Gltigkeit des Passworts zum Benutzerkonto des mit Benutzername angegebenen Benutzers. chage -l Benutzername Gibt die Gltigkeitsinformationen zum Passwort von Benutzername aus. Mit chage lsst sich festlegen, wie lange ein Passwort gltig sein soll, wann der Benutzer vor Ablauf seines Passworts gewarnt werden soll und wann sein Benutzerkonto gesperrt werden soll, wenn er das Passwort nicht rechtzeitig gendert hat. Es lsst sich auch festlegen, wann das Konto unabhngig von Passwortnderungen gesperrt wird. Bei einigen Optionen mssen absolute Zeitangaben gemacht werden. Diese sind entweder in abgelaufener Zeit in Sekunden seit dem 1. Januar 1970 vorzunehmen oder in der Form MM/TT/JJ zu vorzunehmen. Wenn das Programm nur mit dem Namen eines Benutzerkontos und ohne weitere Optionen aufgerufen wird, erfragt es die vorzunehmenden Einstellungen. -m Tage Gibt die Anzahl von Tagen an, whrend der das Passwort nach einer nderung nicht erneut gendert werden darf. -M Tage Gibt die Anzahl von Tagen an, nach denen das Passwort erneut gendert werden muss. -d Datum ndert die Information darber, wann das Passwort das letzte Mal gendert wurde in Datum. -E Datum Gibt an, wann das Benutzerkonto gesperrt wird. -I Tage Legt die Anzahl von Tagen fest, nach denen das Benutzerkonto gesperrt wird, wenn das Passwort nicht rechtzeitig gendert wurde. -W Tage Legt die Anzahl von Tagen vor Ablauf eines Passwortes fest, an denen der betreffende Benutzer aufgefordert wird, sein Passwort zu ndern. chage -m 2 -M 30 -I 20 -W 3 kurt Das Passwort des Benutzers kurt muss sptestens alle 30 Tage gendert werden. Eine nderung innerhalb von zwei Tagen ist nicht erlaubt. Wenn das Passwort nicht rechtzeitig gendert wird, wird das Benutzerkonto 20 Tage spter gesperrt. Drei Tage vor Ablauf des Passworts wird der Benutzer nach der Anmeldung aufgefordert, sein Passwort zu ndern.

780

19 Kommandobersicht

chage -l kurt Gibt die Alterungs-Einstellungen des Passworts von Benutzer kurt aus. Siehe auch: login, passwd, shadowcong.

chattr
Paket: Dateiverwaltung

Dateiattribute auf Ext2-Dateisystem ndern


e2fsprogs

chattr [Optionen] Modus Datei [Datei ...] Das Ext2-Dateisystem erlaubt, neben den blichen Linux/UNIX-Dateiattributen weitere Attribute zu speichern. Folgende Attribute stehen zur Verfgung: A Wenn eine Datei mit diesem Attribut gendert wird, wird der Eintrag der letzten Zugriffszeit nicht gendert. a Die Daten in Dateien mit diesem Attribut knnen nicht gendert werden. Es ist lediglich mglich, Daten an sie anzuhngen. Sinnvoll bei Log-Dateien, die zwar ergnzt, nicht aber gelscht werden sollen. c Dateien mit diesem Attribut werden komprimiert gespeichert. d Dateien mit diesem Attribut werden von dem Programm dump nicht gesichert. i Dateien mit diesem Attribut drfen nicht verndert werden. s Wenn Dateien mit diesem Attribut gelscht werden, wird der Platz auf der Festplatte, den sie belegt haben, mit Nullen beschrieben, um jede Mglichkeit des spteren Lesens auszuschlieen. S Die Daten von Dateien mit diesem Attribut werden whrend einer Schreiboperation sofort geschrieben und nicht im Schreibcache zwischengespeichert. u Die Daten aus Dateien mit diesem Attribut werden nicht gelscht, wenn die Dateien gelscht werden. Es wird lediglich der Verzeichniseintrag gelscht, und die Dateien knnen wiederhergestellt werden. Dem Programm chattr werden zu verndernde Attribute hnlich wie bei dem Kommando chmod auf die folgende Art mitgeteilt: Zunchst wird durch die Zeichen +, - oder = angegeben, ob Attribute hinzugefgt (+), entfernt (-) oder genauso gesetzt werden sollen, wie sie angegeben sind (=). Dann wird eine Kombination aus den oben aufgefhrten Buchstaben angegeben, die die Attribute bezeichnet, die hinzugefgt, entfernt oder gesetzt werden sollen. Standardmig verndert das Programm die Attribute einer oder mehrerer mit Datei angegebener Datei(en) so, wie es durch Modus angegeben ist. -R Sind mit Datei Verzeichnisse angegeben, werden die Attribute des Verzeichnisses, aller darin enthaltenen Dateien sowie rekursiv aller Unterverzeichnisse und der darin enthaltenen Dateien gendert. -V Es wird ausgegeben, bei welchen Dateien nderungen vorgenommen wurden. chattr +c * Setzt das Attribut c (Kompression) fr alle Dateien im Arbeitsverzeichnis. chattr -R -Sc ./

19.2 Kommandos

781

Entfernt die Attribute S (sofort schreiben) und c (Kompression) rekursiv von allen Dateien unterhalb des Arbeitsverzeichnisses. Siehe auch: lsattr.

chfn
Paket: passwd

Benutzerinformation ndern
Benutzerverwaltung

chfn [Option] [Benutzer] Das Programm ndert das GECOS-Feld (Kommentarfeld) in der Benutzerdatei. In diesem Feld werden zustzliche Benutzerinformationen wie brgerlicher Name, Telefonnummer usw. gespeichert. Wenn mit Benutzer kein Benutzername angegeben wird, ndert das Programm die Informationen zu dem aufrufenden Benutzer, ansonsten zu dem Angegebenen. Informationen zu anderen Benutzern knnen nur vom Verwalter gendert werden. Wenn mit Option keine Option angegeben wurde, fragt das Programm die einzelnen Informationen nacheinander ab, ansonsten ndert es die mit Option spezizierte Information. -f Name ndert den brgerlichen Namen des Benutzers in den mit Name angegebenen. -r Raumnummer ndert die Raumnummer. -w Telefon ndert die Telefonnummer am Arbeitsplatz. -h Telefon ndert die Telefonnummer zuhause. -o Anderes ndert sonstige Informationen. chfn -h "+49 40 21345218" ndert die Privattelefonnummer des aufrufenden Benutzers in die angegebene. Siehe auch: passwd, adduser.

chgrp
Paket: leutils

Gruppenzugehrigkeit von Datei ndern


Dateiverwaltung

chgrp [Optionen] Gruppe Datei [Datei ...] ndert die mit der Datei Datei assoziierte Gruppe auf die Benutzergruppe Gruppe. Fr Gruppe kann der Name einer Benutzergruppe oder die Gruppen-ID angegeben werden. Bei Datei kann es sich auch um einen besonderen Dateityp (Verzeichnis, Gertedatei) handeln. Die zu einer Datei assoziierte Gruppe darf vom Systemverwalter verndert werden und vom Dateibesitzer, wenn er der Gruppe angehrt, mit der die Datei assoziiert werden soll. Die Rechte, mit denen Dateien standardmig erzeugt werden, lassen sich ber das Kommando umask (S. 590) festlegen. -R | - -recursive Im Fall von Verzeichnissen werden alle in dem betreffenden Verzeichnis und in Unterverzeichnissen dieses Verzeichnisses bendliche Dateien gendert. -c | - -changes Gibt die Namen der Dateien aus, bei denen eine nderung vorgenommen wurde. chgrp -R /home/rechnung verwalt

782

19 Kommandobersicht

Ordnet das Verzeichnis /home/rechnung und alle darin enthaltenen Verzeichnisse und Unterverzeichnisse sowie darin enthaltene Dateien der Benutzergruppe verwalt zu. chgrp -c brief2 1006 Ordnet die Datei brief2 der Benutzergruppe mit der Gruppen-ID 1006 zu und teilt mit, ob eine nderung vorgenommen wurde, also ob die Datei nicht schon vorher mit dieser Benutzergruppe verbunden war. Siehe auch: chown, chmod, ls.

chmod
Paket: leutils

Rechte an einer Datei ndern


Dateiverwaltung

chmod [Optionen] Rechte Datei [Datei ...] Das Kommando ndert die Rechte fr den Benutzer, die Benutzergruppe und/oder andere Benutzer an der oder den mit Datei bezeichneten Dateien. Fr die Angabe der zu setzenden Rechte gibt es zwei mgliche Formen: 1. Die Rechte setzen sich zusammen aus: Einer Kombination aus den Buchstaben u (user = Besitzer), g (group = Gruppe), o (others = Andere) und a (all = Alle, entspricht ugo), die bezeichnet, wessen Rechte gendert werden sollen. Einem der Zeichen + (Rechte hinzufgen), - (Rechte entfernen) und = (Rechte setzen), wodurch bestimmt wird, ob Rechte hinzugefgt, entfernt oder gesetzt werden sollen. Einer Kombination aus den Buchstaben r (read = lesen), w (write = schreiben), x (execute = ausfhren), X (ausfhren, nur wenn der ausfhrende Benutzer auch Ausfhrungsrechte im Verzeichnis der Datei hat), s (Setzen der Benutzer- oder Gruppenidentitt bei Ausfhrung der Datei), t (Speichern des Programms im Swap-Speicher bei Ausfhrung der Datei) und u, g oder o (Setzen der gleichen Rechte, die Benutzer, Gruppe oder Andere zur Zeit an der Datei haben). Hierdurch wird bezeichnet, welche Rechte erteilt, entfernt oder hinzugefgt werden sollen. Es knnen mehrere Angaben dieser Form hintereinander vorgenommen werden. 2. Vier oktale Zahlen (Ziffern 0-7), die sich jeweils aus der Summe der Zahlen 4, 2 und 1 zusammensetzen und folgende Bedeutung haben: Erste Ziffer: Setzen der Benutzer-ID bei Ausfhrung (4), Setzen der GruppenID bei Ausfhrung (2) und Speicherung des Programms im Swapspeicher bei Ausfhrung (1). Zweite Ziffer: Rechte des Benutzers: lesen (4), schreiben (2) und ausfhren (1). Dritte Ziffer: Rechte der Gruppe: lesen (4), schreiben (2) und ausfhren (1). Vierte Ziffer: Rechte anderer Benutzer: lesen (4), schreiben (2) und ausfhren (1). Es brauchen nicht alle Ziffern angegeben zu werden. Fehlende Ziffern werden von links nach rechts als Null interpretiert.

19.2 Kommandos

783

-R | - -recursive Im Fall von Verzeichnissen werden die Rechte aller in dem betreffenden Verzeichnis und in Unterverzeichnissen davon bendlicher Dateien und Verzeichnisse gendert. -c | - -changes Gibt die Namen der Dateien aus, bei denen eine nderung durchgefhrt wurde. chmod a=rw logfile Erteilt allen Benutzern Schreib- und Leserechte fr die Datei logle. chmod 666 logfile Bewirkt dasselbe. (Die erste Zahl fehlt, deswegen werden keine Rechte bezglich des Setzens von Benutzer- oder Gruppen-ID sowie des Speicherns des Programms bei Ausfhrung gesetzt. Die Ziffer 6 ergibt sich aus Addition der Ziffern 4 (lesen) und 2 (schreiben). Diese Rechte werden fr Besitzer, Gruppe und andere Benutzer gesetzt.) chmod 4755 program Die Datei program darf von allen Benutzern gelesen und ausgefhrt werden und vom Besitzer auerdem verndert werden. Bei der Ausfhrung wird sie mit der BenutzerID (d. h. mit den Rechten) ihres Besitzers ausgefhrt. (Erste Ziffer: 4 = Setzen der Benutzer-ID bei Ausfhrung. Zweite Ziffer: 7 = 4 (lesen) + 2 (schreiben) + 1 (ausfhren) fr den Besitzer. Dritte und vierte Ziffer: 5 = 4 (lesen) + 1 (ausfhren) fr die Gruppe und andere Benutzer.) Ein Programm, bei dem die Rechte wie hier gesetzt sind, wird mit der Benutzeridentitt des Besitzers der Programmdatei ausgefhrt (SetUID). Das heit, es kann beispielsweise alle Dateien, die dem Besitzer gehren, lschen. Siehe auch: chown, chgrp, install, umask.

chown
Paket: leutils

Besitzer einer Datei wechseln


Dateiverwaltung

chown [Optionen] [Benutzer][:|.][Gruppe] Datei [Datei ...] ndert den Besitzer und oder die Gruppe der mit Datei angegebenen Datei(en). Soll nur die Gruppe verndert werden, ist der Gruppenbezeichnung ein Punkt oder ein Doppelpunkt (ohne Leerzeichen) voranzustellen. Fr Benutzer- und Gruppenbezeichnung knnen entweder die Namen oder die numerischen IDs benutzt werden. Datei kann auch ein Verzeichnis oder eine Gertedatei sein. Der Besitzer einer Datei darf nur vom Systemverwalter verndert werden. Die zu einer Datei gehrende Gruppe darf vom Systemverwalter verndert werden und vom Dateibesitzer, wenn er der Gruppe angehrt, mit der die Datei assoziiert werden soll. -R | - -recursive Im Fall von Verzeichnissen werden alle in dem betreffenden Verzeichnis und in Unterverzeichnissen davon bendliche Dateien gendert. -c | - -changes Gibt die Namen der Dateien aus, bei denen eine nderung durchgefhrt wurde. chown -R /home/rechnung chef

784

19 Kommandobersicht

Ordnet das Verzeichnis /home/rechnung und alle darin enthaltenen Verzeichnisse und Unterverzeichnisse sowie darin enthaltene Dateien und Verzeichnisse dem Benutzer chef zu. chown -c brief2 1006 Ordnet die Datei brief2 dem Benutzer mit der Benutzer-ID 1006 zu und teilt mit, ob eine nderung vorgenommen wurde, also ob die Datei nicht schon vorher mit diesem Benutzer assoziiert war. Siehe auch: chgrp, chmod, ls.

chsh
Paket: passwd

Standardshell eines Benutzers wechseln


Benutzerverwaltung

chsh [-s shell] [Benutzername] Ohne Parameter aufgerufen fragt das Programm nach dem Namen des Programms, dass fr den aufrufenden Benutzer als Standardshell verwendet werden soll. Vorher ndet eine Passwortabfrage statt. Das als Standardshell zu verwendende Programm muss mit absolutem Pfad- und Dateinamen eingegeben werden. Auerdem muss es in der Datei /etc/shells eingetragen sein. Der Systemverwalter hat das Recht, eine Shell anzugegeben, die nicht in /etc/shells eingetragen ist, weiter kann er die Standardshell anderer Benutzer verndern, indem er mit Benutzer den Namen eines Benutzerkontos angibt. -s Shell Legt das mit shell angegebene Programm als Standardshell fr den aufrufenden Benutzer oder den mit Benutzer angegebenen Benutzer fest. chsh -s /usr/bin/ksh Legt fr den aufrufenden Benutzer das Programm /usr/bin/ksh (Korn-Shell) als Standardshell fest. chsh olaf Fhrt dazu, dass das Programm nach der fr den Benutzer olaf zu verwendenden Standardshell fragt. Siehe auch: passwd, usermod.

cmp
Paket: diff

Binrdateien vergleichen
Dateiverwaltung

cmp [Optionen] Datei1 Datei2 Vergleicht die mit Datei1 und Datei2 angegebenen Dateien miteinander. Wenn beide Dateien gleich sind, erfolgt keine Ausgabe und der Rckgabewert des Programms ist 0. Wenn sich die Dateien unterscheiden, wird die Nummer des ersten Bytes, in dem sich die Dateien unterscheiden, ausgegeben. Der Rckgabewert des Programms ist dann 1. -s Auch bei einem Unterschied wird keine Ausgabe vorgenommen. Unterschiede lassen sich dann nur am Rckgabewert erkennen. cmp datei1.o datei2.o

19.2 Kommandos

785

Vergleicht die beiden Dateien datei1.o und datei2.o miteinander. Siehe auch: diff.

cp
Paket: leutils

Datei kopieren
Dateiverwaltung

cp [Optionen] Quelldatei Zieldatei | Zielverzeichnis Das Programm kopiert die mit Quelldatei bezeichnete Datei in die mit Zieldatei angegebene Datei. Existiert die Datei mit dem Namen von Zieldatei bereits, wird diese berschrieben. Wird an Stelle von Zieldatei ein Verzeichnis angegeben, wird die mit Quelldatei bezeichnete Datei in das mit Zielverzeichnis spezizierte Verzeichnis kopiert und erhlt dort den gleichen Namen wie die Ausgangsdatei. cp [Optionen] Quelldatei Quelldatei [...] Zielverzeichnis Kopiert alle Quelldateien in das Zielverzeichnis. Die Dateien erhalten dort die gleichen Namen wie die jeweiligen Ausgangsdateien. Bereits bestehende Dateien im Zielverzeichnis werden berschrieben. -b | - -backup Bevor Dateien berschrieben werden, wird von diesen eine Sicherungskopie erstellt. Solche Sicherungskopien haben standardmig denselben Namen wie das Original, jedoch mit einer angehngten Tilde (~). -S Endung | - -suffix=Endung Zusammen mit der Option -b erhalten Sicherungskopien an Stelle der Tilde die Endung Endung. -i | - -interactive Bevor Dateien berschrieben werden, wird nachgefragt, ob dies wirklich geschehen soll. -u | - -update Es werden nur solche Dateien kopiert, deren letztes nderungsdatum jnger ist als das der Zieldateien. -v | - -verbose Der Name jeder kopierten Datei wird ausgegeben. -p | - -preserve Die Dateiattribute der Quelldatei(en) wie Besitzer, Gruppe, Rechte und Datum der letzten nderung bleiben erhalten. Besitzer und Gruppe knnen nur erhalten bleiben, wenn der Benutzer, der die Dateien kopiert, das Recht hat, Dateien mit entsprechendem Besitzer und Gruppe zu erstellen. -R | - -recursive Kopiert den Inhalt von Verzeichnissen, deren Unterverzeichnissen usw. in das Zielverzeichnis. Spezielle Dateien wie Gertedateien oder FIFOs werden dabei an den entsprechenden Stellen im Zielverzeichnis neu erzeugt. Normalerweise werden Verzeichnisse nicht kopiert. -r Wie -R mit dem Unterschied, dass spezielle Dateien (Gertedateien) nicht neu erzeugt werden, sondern aus den Quelldateien gelesen und das Ergebnis in gewhnliche Zieldateien geschrieben wird. Weil cp hierbei auf Daten wartet, die beispielsweise auf einem Gert erst zur Verfgung gestellt werden mssen, kann dies zum Hngen des Programms fhren. -x | - -one-filesystem Es werden nur die Dateien kopiert, die sich auf demselben Datentrger (z. B. derselben Partition) benden wie die erste zu kopierende Datei.

786

19 Kommandobersicht

-l | - -link Anstelle von Kopien werden Hardlinks auf die Originaldateien erzeugt. -s | - -symbolic-link Anstelle von Kopien werden Softlinks auf die Originaldateien erzeugt. Alle Quelldateien mssen dabei mit absoluten Pfaden angegeben werden. Alternativ kann eine Quelldatei und eine Zieldatei im gleichen Verzeichnis angegeben werden. -d | - -no-dereference Beim Kopieren von symbolischen Links werden neue symbolische Links erzeugt. Hardlinks zwischen Quelldateien bleiben auch zwischen den Zieldateien erhalten. Ohne diese Option wird der Inhalt der Dateien, auf die harte oder symbolische Links zeigen, in die Zieldateien kopiert. -a | - -archive Gleichbedeutend mit der Kombination der Optionen -R, -d und -p. Es bleibt soviel wie mglich von den Merkmalen der Originaldateien erhalten. cp /usr/share/common-licenses/GPL ./ Kopiert den Inhalt der Datei /usr/share/doc/common-licenses/GPL in die Datei GPL im Arbeitsverzeichnis. cp -vi /floppy/* ~/ Kopiert alle Dateien im Verzeichnis /oppy in das Home-Verzeichnis des Benutzers, der das Kommando aufruft. Dabei werden die Namen der kopierten Dateien ausgegeben. Bevor Dateien im Zielverzeichnis berschrieben werden, wird von cp nachgefragt, ob dies gewnscht ist. cp -ax / /newdisk Kopiert alle Dateien des Datentrgers, auf dem sich das Wurzeldateisystem (/) bendet, in das Verzeichnis /newdisk, in das ein anderer Datentrger gemountet sein sollte. Besondere Dateitypen (Gertedateien etc.) bleiben dabei erhalten. Der in newdisk gemountete Datentrger kann nun ebenfalls als Wurzeldateisystem dienen. Gewhnlich mssen vorher auf dem neuen Datentrger noch die Verzeichnisse angelegt werden, in die auf dem Quelldatentrger andere Dateisysteme gemountet sind (z. B. /proc). In dieser Form kann das Programm cp zum Umziehen der Linux-Installation benutzt werden. Siehe auch: mv, ln, tar, dd.

crontab
Paket: cron

Kommando regelmig wiederholen


Systemverwaltung, Prozessverwaltung

crontab [-u Benutzer] Datei Installiert die mit Datei angegebene Datei als crontab-Datei fr den mit Benutzer spezizierten Benutzer. Wenn fr Datei ein Minuszeichen angegeben wird, wird die Datei von der Standardeingabe gelesen. Wenn die Option -u Benutzer nicht verwendet wird, wird die Datei fr den aufrufenden Benutzer installiert. Das Kommando prft die syntaktische Richtigkeit der zu installierenden Datei und verweigert die Installation, wenn Fehler vorhanden sind. Die crontab-Datei fremder Benutzer darf nur vom Systemverwalter verndert werden. crontab [-u Benutzer] Option

19.2 Kommandos

787

Erlaubt eine der folgenden Aktionen mit der crontab-Datei des mit Benutzer angegebenen Benutzers oder des aufrufenden Benutzers auszufhren. -l Der Inhalt der crontab-Datei wird auf die Standardausgabe geschrieben. -r Die crontab-Datei wird entfernt. -e Es wird der Standardeditor oder der in der Umgebungsvariable EDITOR angegebene Editor mit der crontab-Datei geffnet. Die Datei kann dann verndert werden. Nach Beendigung des Editors wird die Datei geprft und installiert. echo "25 14 * * * ls -l" | crontab Installiert eine neue crontab-Datei fr den aufrufenden Benutzer mit dem angegebenen Inhalt (Aufruf des Kommandos ls -l jeden Tag um 14.25 Uhr). crontab -l Gibt den Inhalt der crontab-Datei des aufrufenden Benutzers aus. Siehe auch: Kapitel 9.3, at.

cut
Paket: textutils

Spalten aus einer Datei auschneiden


Textverarbeitung, Shellskripte

cut [Optionen] [Datei ...] Das Programm liest die mit Datei angegebene(n) Datei(en) oder von der Standardeingabe, falls keine Dateien angegeben wurden und entfernt aus jeder Zeile einen durch die Optionen spezizierten Teilbereich. -c Liste | - -characters=Liste Es werden nur die mit Liste angegebenen Zeichen ausgegeben. Liste ist eine Komma-separierte Liste von Zahlen. Zustzlich ist das Minus-Zeichen erlaubt, mit dem sich Bereiche angeben lassen (1-15 bezeichnet die ersten 15 Zeichen, 15- bezeichnet alle Zeichen vom 15ten an). -f Liste | - -fields=Liste Es werden nur die mit Liste angegebenen Felder ausgegeben. Felder sind durch Tabulatoren getrennte Zeichenketten in den Ausgangsdaten. Liste wird in der gleichen Form wie bei der Option -c angegeben. -d Trennzeichen | - -delimiter=Trennzeichen Zusammen mit der Option -f werden Felder durch das mit Trennzeichen angegebene Zeichen anstatt eines Tabulators getrennt. ls -l | cut -c 16-24,55Gibt die Besitzer und Namen der Dateien im Arbeitsverzeichnis spaltenweise aus. cat tabelle | cut -f 2,3 Gibt die Spalten 2 und 3 der Datei tabelle aus. Die einzelnen Spalten in tabelle mssen durch Tabulatoren getrennt sein. Siehe auch: paste, join.

date
Paket: shellutils

Dateum und Uhrzeit anzeigen und setzen


Information, Shellskripte

788

19 Kommandobersicht

date MMTTssmm[[JJ]JJ][ss] Legt die Systemzeit auf das angegebene Datum und die angegebene Uhrzeit fest. Dabei steht MM fr Monat, TT fr Tag, ss fr Stunde, mm fr Minute, [CC]JJ fr das Jahr (und Jahrhundert) und das letzte ss fr Sekunde. Achtung: Das Programm verndert nicht die Einstellung der Hardwareuhr des Rechners. Nach einem Neustart des Systems geht die Uhr u. U. wieder falsch. Hierzu dient das Programm hwclock. date [Optionen] Ohne Optionen aufgerufen, zeigt date die aktuelle lokale Uhrzeit und das Datum an. +Format Legt das Format fest, in dem die Ausgabe erfolgen soll. Format ist eine Zeichenkette, die zum einen aus gewhnlichen Zeichen bestehen kann, die unverndert ausgegeben werden und zum anderen aus speziellen Anweisungen, in die Komponenten der auszugebenden Zeit und des auszugebenden Datums eingesetzt werden. Diese Anweisungen bestehen alle aus dem Zeichen % und einem Buchstaben. Die wichtigsten Anweisungen sind: %H Ausgabe der Stunde. %M Ausgabe der Minute. %S Ausgabe der Sekunde. %A Ausgabe des Wochentags. %B Ausgabe des Monats. %Y Ausgabe der Jahreszahl. %d Ausgabe des Tages im Monat (1-31). %m Ausgabe der Monatszahl (1-12). %X Ausgabe der kompletten Uhrzeit. %x Ausgabe des kompletten Datums. Der als Format angegebene Ausdruck muss als ein einziges Argument bergeben werden. Leerzeichen sind durch Anfhrungszeichen vor der Interpretation durch die Shell zu schtzen. -u | - -universal Die Uhrzeit wird in UTC (Universal Time Coordinated) ausgegeben oder interpretiert. -r Datei | - -reference=Datei Es wird das Datum der letzten nderung der mit Datei angegebenen Datei ausgegeben -d Datum | - -datestr=Datum Es wird das mit Datum angegebene Datum ausgegeben. Datum kann u. a. eine der folgenden Formen haben: Die Form SS:MM:[ss] legt die anzuzeigende Uhrzeit in Stunden (SS), Minuten (MM) und Sekunden (ss) fest. Die Form TT/MM[/JJJJ] legt das anzuzeigende Datum in Tag (TT), Monat (MM) und Jahr (JJJJ) fest. Datum und Uhrzeit knnen miteinander kombiniert werden. Die Form + - Anzahl Einheit legt das anzuzeigende Datum ausgehend vom aktuellen Datum fest. Gltige Einheiten sind days, weeks, months und years. Der Ausdruck + 2 weeks wrde das Datum in zwei Wochen bezeichnen. Diese Angaben knnen auch kombiniert werden. Beispiel: + 2 weeks 3 days meint das Datum in zwei Wochen und drei Tagen.

19.2 Kommandos

789

Der Ausdruck Datum ist als ein Argument zu bergeben. - -set Datum Setzt die Systemzeit auf das mit Datum angegebene Datum. Es gilt das gleiche Format wie bei der Option -d. date 06061545 Legt die Systemzeit auf den 6. Juni des laufenden Jahres 15.45 Uhr fest. date "+%A, den %d. %B %Y. %H:%M Uhr" Gibt Datum und Uhrzeit in der Form Mittwoch, den 06. Juni 1999. 8:30 Uhr aus. date -d "+ 3 weeks" Gibt das Datum in drei Wochen aus. Siehe auch: ntpdate, hwclock.

dd
Paket: leutils

Daten kopieren (dumpen)


Dateiverwaltung

dd [Optionen] dd liest Daten von der Standardeingabe und schreibt sie auf die Standardausgabe. Im Gegensatz zu cat kann dabei die Blockgre sowie die Menge der zu lesenden und zu schreibenden Daten festgelegt werden. Zustzlich knnen die Daten zwischendurch umgewandelt werden, wodurch das bertragen von Daten zwischen verschiedenen Rechnerarchitekturen mglich ist. Optionen werden bei dd ohne Minus-Zeichen angegeben. if=Datei Es wird nicht von der Standardeingabe, sondern aus der mit Datei bezeichneten Datei gelesen. of=Datei Es wird nicht auf die Standardausgabe, sondern in die mit Datei bezeichnete Datei geschrieben. bs=Anzahl Gibt an, wieviel Byte hintereinander gelesen und geschrieben werden. Die Angabe kann ohne Einheit (Byte) und in den Einheiten k (Kilobyte), b (512 Byte) und w (2 Byte) erfolgen. Die Option bs berschreibt die Optionen ibs und obs . ibs=Anzahl Gibt an, wieviel Byte gleichzeitig gelesen werden. (Einheiten wie oben.) obs=Anzahl Gibt an, wieviel Byte gleichzeitig geschrieben werden. (Einheiten wie oben.) count=Anzahl Es wird nur die mit Anzahl angegebene Menge von Blcken, d. h. von obs-groen Einheiten kopiert. skip=Anzahl Die mit Anzahl angegebene Menge von ibs-groen Blcken wird am Anfang beim Lesen bersprungen. seek=Anzahl Die mit Anzahl angegebene Menge von obs-groen Blcken wird am Anfang beim Schreiben bersprungen. dd if=/dev/sda of=mbr_backup bs=512 count=1 Erstellt eine Sicherungskopie des Master-Boot-Records der ersten SCSI-Festplatte in der Datei mbr_backup. dd if=/dev/zero of=/dev/hdb bs=65536

790

19 Kommandobersicht

berschreibt die gesamte zweite EIDE-Festplatte mit Nullen. Sinnvoll vor einer Veruerung derselben. dd if=/dev/fd0 of=floppy.image Erstellt eine Abbilddatei der Diskette im ersten Diskettenlaufwerk. dd if=floppy.image of=/dev/fd0 Schreibt die Abbilddatei auf die Diskette im ersten Laufwerk. Siehe auch: cat, cp.

depmod
Paket: modutils

Modulabhngigkeiten berechnen
Systemverwaltung, Installation

depmod -a depmod Datei [Datei ...] Das Laden mancher Kernmodule setzt voraus, dass bestimmte Kerneigenschaften bereits vorhanden sind. Weil diese Eigenschaften ebenfalls durch Module zur Verfgung gestellt werden knnen, ist es u. U. notwendig, bestimmte Module vor anderen zu laden. Das Programm depmod untersucht, welche der vorhandenen Module auf andere Module angewiesen sind und hinterlegt diese Information in der Datei modules.dep im Modul-Verzeichnis des aktuell benutzten Kerns (dieses bendet sich unter /lib/modules). Das Programm wird gewhnlich whrend des Systemstarts durch das Startskript /etc/init.d/modutils ausgefhrt. Nur wenn dem System whrend der Laufzeit neue Module hinzugefgt werden, sollte depmod erneut ausgefhrt werden. depmod -a Berechnet die Modulabhngigkeiten fr alle Module. Siehe auch: update-modules, modprobe, insmod.

df
Paket: leutils

Freien Festplattenplatz anzeigen


Information, Systemverwaltung

df [Optionen] [Datei ...] Das Programm gibt eine bersicht ber die vorhandene, benutzte und freie Festplattenkapazitt aus. Darber hinaus zeigt es an, welches Speichergert (Festplattenpartition) in welches Verzeichnis gemountet ist. Werden mit Datei eine oder mehrere Dateien angegeben, zeigt das Programm nur die Ausnutzung der Datentrger an, auf dem sich die betreffenden Dateien benden. -h | - -human-readable Die Kapazitten werden in sinnvolle Einheiten (Megabyte, Gigabyte etc.) umgerechnet und entsprechend angezeigt. -i | - -inodes Anstelle der benutzten Blcke wird die Anzahl der benutzten Inodes ausgegeben. -T | - -print-type Es werden zustzlich die Dateisystemtypen (ext2, nfs etc.) aller Datentrger ausgegeben. df

19.2 Kommandos

791

Zeigt die Auslastung aller benutzten (gemounteten) Datentrger an. df -h ~ Zeigt die Ausnutzung des Datentrgers, auf dem sich das Home-Verzeichnis des aufrufenden Benutzers bendet, in einer leicht lesbaren Form an. Siehe auch: du, free, mount.

dig
Paket: dnsutils

DNS Abfrage
Netz

dig [@dns-server] name [type] Der Domain Interface Groper (dig) ist ein exibles Werkzeug zur Abfrage von DNSServern. -h Gibt eine kurze Hilfe aus. -x Sucht zu einer IP-Adresse den Namen. dig ftp.de.debian.org Liefert 141.76.2.4 als IP-Adresse zurck. dig -x 141.76.2.4 Liefert ftp.de.debian.org als Namen zurck. dig -t MX www.mvm.uni-karlsruhe.de Liefert als Mail Exchanger fr den Webserver mailgate.rz.uni-karlsruhe.de zurck. dig @129.13.64.5 www.ciw.uni-karlsruhe.de MX Der DNS-Server 129.13.64.5 liefert als Mail Exchanger fr den Webserver mailgate.rz.uni-karlsruhe.de zurck. Siehe auch: host, nslookup.

diff
Paket: diff

Textdateien vergleichen
Textverarbeitung, Entwicklung

diff [Optionen] Eingangsdatei Ausgangsdatei Das Programm vergleicht die mit Eingangsdatei und Ausgangsdatei bezeichneten Textdateien und erzeugt eine Ausgabe, die benutzt werden kann, um Eingangsdatei automatisch auf den Stand von Ausgangsdatei zu bringen. Die Ausgabe geht auf die Standardausgabe. Weil diff auch ganze Verzeichnisstrukturen miteinander vergleichen kann, wird es oft benutzt, um neue Versionen von Programmen und Dokumenten zu verteilen. Die von diff erzeugten Daten sind bei kleinen und mittelgroen nderungen nmlich in der Regel wesentlich kleiner als das gesamte Paket. Bekanntes Beispiele fr die Verwendung von Diffs (von diff erzeugte Dateien) sind neue Versionen des Linux-Kerns oder die Diff-Dateien zu Debian-Quellcodepaketen. -i | - -ignore-case Unterschiede in Gro- und Kleinschreibung werden beim Vergleich nicht bercksichtigt. -b | - -ignore-space-change Unterschiede in der Menge an Leerzeichen, Tabulatoren etc. zwischen Textbestandteilen werden nicht bercksichtigt. -r | - -recursive Verzeichnisse werden rekursiv (mit allen Dateien in Unterverzeichnissen) miteinander verglichen.

792

19 Kommandobersicht

-N | - -new-file Wenn beim Vergleich von Verzeichnissen eine Datei nur in einem Verzeichnis existiert, wird so getan, als wrde sie auch im anderen vorhanden, dort aber leer sein. -u | - -unified Die Ausgabe erfolgt im unied-Format. In diesem Format stehen die vernderten Passagen aus Eingangs- und Ausgangsdatei immer hintereinander, sodass Vernderungen leichter zu erkennen sind. diff program_orig.c program.c > program.diff Vergleicht die beiden Dateien program_orig.c und program.c miteinander und schreibt Unterschiede in die Datei program.diff. diff -rNu src_orig src > src.diff Erzeugt eine Diff-Datei (src.diff ) fr die Dateien unterhalb der Verzeichnisse src_orig und src. Das Diff wird im Unied-Format erzeugt. Im Verzeichnis src neu hinzugekommene Dateien werden ebenfalls im Diff bercksichtigt. Siehe auch: cmp, patch.

dmesg
Paket: util-linux

Kernmeldungen anzeigen und kongurieren


Information

dmesg [Optionen] Das Kommando gibt die letzten noch zwischengespeicherten Meldungen des Kerns aus. dmesg kann eingesetzt werden, um whrend des Bootens ausgegebene Meldungen des Kerns anzuzeigen oder in eine Datei zu schreiben. Achtung: Weil der Zwischenspeicher im Kern begrenzt ist, sollte das Programm sofort nach dem Starten des Rechners aufgerufen werden, wenn alle Bootmeldungen angezeigt werden sollen. Dies geschieht nach dem Systemstart einmal automatisch. Alle bis dahin erzeugten Kernmeldungen werden in der Datei /var/log/dmesg gespeichert. -c Lscht den Zwischenspeicher im Kern nach Ausgabe der Meldungen. -n Stufe Legt fest, welche Meldungen des Kerns auf der Konsole erscheinen sollen. Stufe 1 schliet alle Meldungen bis auf solche ber kritische Systemfehler davon aus. dmesg | tee boot.log | less Schreibt die Kernmeldungen in die Datei boot.log und zeigt sie gleichzeitig mit dem Programm less an. Siehe auch: syslog /var/log/messages.

dos
Paket: dosemu

DOS-Laufzeitumgebung DOSemu starten


Kompatibilitt

dos [Optionen] Das Kommando startet DOSemu, einen virtuellen PC. Je nach Konguration wird in diesem PC ein Betriebssystem gestartet. Dabei kann es sich um DOS handeln (siehe auch Kapitel 18.3, S. 760).

19.2 Kommandos

793

-A | -B | -C DOS soll von den Diskettenlaufwerken A oder B bzw. der Festplatte C gestartet werden. Standardwert ist C. -X Startet DOSemu in einem eigenen X11-Fenster. Das Kommando ist gleichbedeutend mit dem Kommando xdos. dos -A Startet DOSemu und versucht, darin das Betriebssystem von dem in der Kongurationsdatei des Programms denierten Laufwerk A: (gewhnlich erstes Diskettenlaufwerk) zu starten.

dosfsck
Paket: dosfstools

DOS-formatierten Datentrger prfen


Systemverwaltung, Kompatibilitt

dosfsck [Optionen] Gertedatei Das Programm prft DOS-formatierte Datentrger (Dateisysteme FAT und VFAT) auf Fehler und beseitigt sie nach Mglichkeit. Es lsst sich mit dem Programm chkdsk unter DOS vergleichen. Standardmig (ohne eine der Optionen -a oder -r) wird der mit Gertedatei angegebene Datentrger geprft, und Fehler werden berichtet, aber nicht repariert. -a Alle Fehler werden ohne Nachfrage repariert. -l Die Namen der geprften Dateien und Verzeichnisse werden ausgegeben. -r Bevor ein Fehler repariert wird, fragt das Programm nach, ob der Fehler behoben werden soll. -u Datei Es wird versucht, die mit Datei angegebene gelschte Datei wieder herzustellen. Datei muss mit absolutem Pfadnamen ausgehend vom Wurzelverzeichnis des betreffenden Datentrgers angegeben werden. Hiermit steht fr DOS-formatierte Datentrger die gleicher Funktionalitt wie mit dem DOSKommando UNDELETE zur Verfgung. -V Nach der Reparatur wird ein weiterer Prfdurchgang gestartet, um zu testen, ob alles funktioniert hat. dosfsck -a /dev/hda1 Prft das DOS-Dateisystem auf der ersten Partition der ersten (E)IDE-Festplatte auf Fehler und repariert diese ohne nachzufragen. dosfsck -a -u "/dokument.doc" /dev/fd0 Stellt die gelschte Datei dokument.doc auf der Diskette im Laufwerk /dev/fd0 wieder her, sofern mglich. Siehe auch: mcheck, mkdosfs, e2fsck.

dpkg
Paket: dpkg

Debian-Installation verwalten
Systemverwaltung, Information, Installation

dpkg [Optionen] Das Programm stellt die Benutzerschnittstelle zur Paketverwaltung unter Debian GNU/Linux dar. Es ist in Kapitel 8.3, S. 222 beschrieben. dpkg -i Paketdatei

794

19 Kommandobersicht

Installiert das mit Paketdatei bezeichnete Debian-Paket. dpkg -r Paketname Entfernt das mit Paketname bezeichnete Debian-Paket vom System. Siehe auch: apt, dselect.

dselect
Paket: dpkg

Debian-Installation interaktiv verwalten


Systemverwaltung, Information, Installation

dselect [Optionen] [Aktion] Das Kommando ruft das Programm zur Verwaltung der Installation auf. Die Benutzung des Programms ist in Kapitel 7.4, S. 182 beschrieben. Standardmig startet das Programm im Hauptmen. Durch die Angabe einer der Aktionen access, update, select, install, cong oder remove mit Aktion springt das Programm jedoch sofort zu der gewhlten Aktion und beendet sich, nachdem die Aktion abgeschlossen ist. -expert Das automatische Anzeigen eines Hilfebildschirms nach Aufruf des Bildschirms zur Paketauswahl wird unterdrckt. dselect update Fhrt die Aktualisierung der Liste zur Verfgung stehender Pakete durch. dselect select Springt direkt in den Auswahlbildschirm von dselect und verlsst das Programm, wenn die Auswahl beendet ist. Siehe auch: apt, dpkg.

du
Paket: leutils

Verwendeten Speicherplatz anzeigen


Information, Dateiverwaltung

du [Optionen] [Datei | Verzeichnis ...] Ohne Parameter aufgerufen zeigt das Programm den von allen Verzeichnissen und deren Unterverzeichnissen inklusive der darin enthaltenen Dateien bentigten Festplattenplatz in Kilobyte (1024 Byte groe Blcke) an. Alternativ werden diese Angaben fr die mit Datei oder Verzeichnis angegebenen Dateien oder Verzeichnisse ausgegeben. -a | - -all Der bentigte Platz wird auch fr einzelne Dateien ausgegeben. -s | - -summarize Es wird lediglich die Summe des bentigten Platzes ausgegeben. -x | - -one-file-system Dateien und Verzeichnisse auf anderen Datentrgern als denjenigen, auf denen die spezizierten Dateien und Verzeichnisse liegen, werden in die Berechnung nicht mit einbezogen. -h | - -human-readable Die ausgegebenen Werte werden in sinnvollen Einheiten (Kilobyte, Megabyte etc.) ausgegeben. du -hs /* Gibt den bentigten Platz fr alle Verzeichnisse im Wurzelverzeichnis des Dateisystems getrennt aus. (Die Berechnung kann lange dauern.)

19.2 Kommandos

795

du ~/ Gibt den von allen Verzeichnissen und deren Unterverzeichnissen im HomeVerzeichnis des aufrufenden Benutzers bentigten Festplattenplatz aus. Siehe auch: df, ls.

e2fsck
Paket: e2fsprogs

Ext2-Partition berprfen
Systemverwaltung

e2fsck [Optionen] Gertedatei Der mit Gertedatei bezeichnete Datentrger oder die Partition wird auf Fehler im Dateisystem geprft. Der Datentrger oder die Partition muss im Ext2-Format formatiert sein. Standardmig wird dabei zunchst berprft, ob der Datentrger zuletzt ordnungsgem aus dem Dateisystem ausgehngt (geunmountet) wurde und keine Prfung vorgenommen, wenn dies der Fall ist. Andernfalls wird das Dateisystem auf Inkonsistenzen geprft und falls solche gefunden werden nachgefragt, ob diese behoben werden sollen. e2fsck wird beim Systemstart automatisch aufgerufen, um eventuelle Inkonsistenzen zu beheben, die nach einem Stromausfall entstanden sein knnten. Daten, die nicht mehr einem Datei- oder Verzeichnisnamen zugeordnet werden knnen, werden im Verzeichnis lost+found im Wurzelverzeichnis des Datentrgers abgelegt. Zur Prfung des Dateisystems bentigt e2fsck Informationen, die sich im Superblock des Dateisystems benden. Ist dieser zerstrt, kann alternativ ein anderer Superblock angegeben werden. Achtung: Eine zu prfende Partition soll nicht gemountet sein. Andernfalls riskiert man Datenverluste. -c Vor der berprfung des Dateisystems wird badblocks aufgerufen, um den Datentrger auf fehlerhafte Blcke zu prfen. Eventuell gefundene fehlerhafte Blcke werden von der weiteren Benutzung ausgeschlossen. -b Superblock Informationen ber das Dateisystem werden nicht aus dem ersten Superblock, sondern aus dem mit Superblock angegebenen Superblock gelesen. Gewhnlich sind die Blcke 8193, 16385 usw. auch Superblcke. -f Die berprfung wird auch dann durchgefhrt, wenn das Dateisystem sauber aussieht und normalerweise nicht berprft werden muss. -l Dateiname Die in der mit Dateiname angegebenen Datei enthaltenen Blcke werden zu der Liste fehlerhafter Blcke hinzugefgt. Eine solche Datei kann beispielsweise mit badblocks erstellt werden. -L Dateiname Die Liste fehlerhafter Blcke wird durch die Liste in der mit Dateiname angegebenen Datei berschrieben. -n Es werden lediglich Informationen ber Fehler ausgegeben, der Datentrger wird nicht verndert. -p Fehler werden automatisch und ohne Nachfrage repariert, sofern mglich. -C Dateideskriptor Whrend des Prfvorgangs werden Statusinformationen auf den mit Dateideskriptor bezeichneten Deskriptor geschrieben. Die Option -C 0 zeigt einen Statusindikator auf der Standardausgabe an.

796

19 Kommandobersicht

-y Es wird angenommen, dass alle Fragen mit y beantwortet werden. Mit dieser Option kann das Programm ohne Benutzereinwirkung ausgefhrt werden. e2fsck /dev/hda3 Die dritte primre Partition auf der ersten (E)IDE-Festplatte wird auf Fehler im Dateisystem berprft. e2fsck -p -c -C 0 -f /dev/sdb1 Die erste primre Partition auf der zweiten SCSI-Festplatte wird berprft, auch wenn die Partition sauber ist. Vor der berprfung des Dateisystems wird badblocks aufgerufen, um nach fehlerhaften Blcken zu suchen. Eventuelle Fehler im Dateisystem werden automatisch repariert. Whrend des Prfvorgangs wird ein Statusindikator angezeigt. e2fsck -b 8193 /dev/hda5 Zur Prfung der ersten logischen Partition auf (E)IDE-Festplatte 1 wird der Superblock in Block 8193 benutzt. Siehe auch: fsck, badblocks, mke2fs, dumpe2fs, dosfsck.

fakeroot
Paket: fakeroot

Privileg vortuschen
Entwicklung

fakeroot [Optionen] [- -][Kommando] fakeroot fhrt das mit Kommando angegebene Programm aus. Wenn kein Programm angegeben ist, wird eine Shell ausgefhrt. Dem ausgefhrten Programm wird dabei der Eindruck vermittelt, es wrde mit den Rechten des Verwalters (root) ausgefhrt. Es kann beispielsweise den Besitzer von Dateien ndern, was normalerweise nur durch den Verwalter geschehen kann. Rechte oder Besitzer werden nicht wirklich gendert. Vielmehr speichert fakeroot die neuen Rechte und kann sie spter anderen Programmen wieder mitteilen. Durch diesen Trick ist es mglich, tar-Archive zu erstellen, die Dateien beinhalten, die root oder anderen Benutzern gehren. Das Programm wird bentigt, um Debian-Pakete als gewhnlicher Benutzer zu erstellen. fakeroot whoami Gibt den Benutzernamen root aus, obwohl als gewhnlicher Benutzer gearbeitet wird. fakeroot Ruft eine Shell auf. Programme, die von dieser Shell aus aufgerufen werden, knnen Operationen durchfhren, die normalerweise nur vom Verwalter durchgefhrt werden knnen. Wenn in dieser Shell hintereinander die Kommandos ls -l, chown root.root * und ls -l eingegeben werden, dann zeigt sich, dass es beim zweiten Aufruf von ls -l tatschlich so aussieht, als wrden alle Dateien im Arbeitsverzeichnis jetzt dem Verwalter gehren. Wenn die Shell daraufhin mit exit verlassen wird und wieder ls -l eingegeben wird, wird ersichtlich, dass Besitzer und Gruppe der Dateien nicht wirklich gendert wurden. Siehe auch: su, sudo, super, tar.

19.2 Kommandos

797

false
Paket: shellutils

Erfolgloses Nichtstun
Shellskripte

false Das Kommando bewirkt nichts, auer dass er den Rckgabewert 1 liefert, wodurch aufrufenden Programmen das Auftreten eines Fehlers angezeigt wird. false; echo $? Ruft das Kommando false auf und zeigt den Rckgabewert an. Siehe auch: true.

fdisk
Paket: util-linux

Festplatte partitionieren
Systemverwaltung, Installation

fdisk [-u] Gertedatei Erlaubt das interaktive Verndern der Partitionstabelle auf dem mit Blockgertedatei angegebenen Blockgert (ganze Festplatte, z. B. /dev/hda). fdisk [-u] -l Gertedatei Gibt die Partitionstabelle des mit Gertedatei angegeben Blockgerts aus. fdisk [-u] -s Gertedatei Gibt die Gre (in 1024 KB groen Blcken) der mit Gertedatei angegebenen Partition (z. B. /dev/hda2) aus. fdisk ist das Standard-Partitionierungsprogramm fr Linux. Eine komfortableres Programm steht unter Debian GNU/Linux mit dem Programm cfdisk zur Verfgung. Nach dem Aufruf von fdisk knnen Kommandos eingegeben werden, die durch Eingabe des Kommandos m aufgelistet werden. Nach der Eingabe eines Kommandos werden zustzliche Informationen wie die Gre einer anzulegenden Partition erfragt. Weitere Kommandos sind: p: d: n: w: q: Die Partitionstabelle der mit fdisk bearbeiteten Festplatte wird ausgegeben. Lscht eine Partition. Legt eine neue Partition an. Schreibt die Partitionstabelle zurck auf die Festplatte. Beendet das Programm (ohne die Partitionstabelle zu schreiben).

-u Die Gre von Partitionen wird in Sektoren und nicht in Zylindern angegeben. fdisk -s /dev/sda5 Gibt die Blockanzahl der ersten logischen Partition auf der ersten SCSI-Festplatte aus. fdisk /dev/hda Erlaubt das interaktive Verndern der Partitionstabelle der ersten (E)IDEFestplatte. Siehe auch: cfdisk, sfdisk, badblocks.

le
Paket: le

Dateityp bestimmen
Dateiverwaltung

798

19 Kommandobersicht

file [Optionen] Datei [Datei ...] Das Programm untersucht, welchen Typ eine Datei hat und von welcher Art die in ihr enthaltenen Daten sind, wenn es sich um eine gewhnliche Datei handelt. Dateitypen werden von dem Programm anhand von Zeichenfolgen in den Dateien erkannt. -z | - -uncompress Bei komprimierten Dateien wird untersucht, welchen Typ die in ihnen enthaltenen unkomprimierten Daten haben. -L | | - -dereference Bei symbolischen Links wird untersucht, welchen Typ die Dateien haben, auf die die angegebenen Links zeigen. file sol.exe Gibt den Typ der Datei sol.exe im Arbeitsverzeichnis aus. file /dev/sda5 Gibt den Dateityp der Datei /dev/sda5 aus. (Hier handelt es sich um eine Gertedatei.)

nd
Paket: ndutils

Datei suchen und nden


Dateiverwaltung, Systemverwaltung

find [Verzeichnis] [Optionen] [Test] [Aktion] Das Programm stellt ein vielseitiges Werkzeug zum Suchen von Dateien nach unterschiedlichen Kriterien und zum Durchfhren verschiedener Aktionen mit den gefundenen Dateien dar. Eine Einfhrung zu dem Programm ist in Kapitel 5.18, S. 5.18 zu nden. nd durchsucht den Verzeichnisbaum ausgehend von dem mit Verzeichnis angegebenen Verzeichnis. Es knnen auch mehrere Verzeichnisse angegeben werden, die dann alle hintereinander durchsucht werden. Wird kein Verzeichnis angegeben, startet nd im Arbeitsverzeichnis. Fr jede Datei wird ein mit Test bezeichneter Test durchgefhrt. Es knnen auch mehrere Tests angegeben werden, die standardmig alle erfllt sein mssen, damit die betreffende Datei als gefunden gilt. Wird Test nicht angegeben, gilt jede Datei als gefunden. Mit den gefundenen Dateien knnen mittels Aktion angegebene Aktionen ausgefhrt werden. Standardmig wenn Aktion nicht angegeben ist werden die Namen der gefundenen Dateien auf die Standardausgabe ausgegeben. -follow Symbolische Links werden wie die Dateien oder Verzeichnisse behandelt, auf die sie zeigen. -maxdepth Anzahl Gibt an, keine Dateien zu untersuchen, die mehr als mit Anzahl angegebene Verzeichnisebenen unter dem Startverzeichnis liegen. (maxdepth 1 untersucht nur die Dateien im oder in den Startverzeichnis(sen).) -xdev Es werden keine Dateien und Verzeichnisse untersucht, die auf einem anderen Datentrger als das Startverzeichnis liegen. Tests: Einigen Tests mssen numerische Argumente bergeben werden. Diese haben folgendes Format: Zahl bedeutet ist grer als Zahl. Zahl bedeutet ist kleiner als Zahl. Zahl bedeutet ist genau gleich Zahl.

19.2 Kommandos

799

-amin Zahl Die Datei wurde vor Zahl Minuten das letzte Mal benutzt. -mmin Zahl Die Datei wurde vor Zahl Minuten das letzte Mal gendert. -cmin Zahl Der Status der Datei wurde vor Zahl Minuten das letzte Mal gendert. -atime Zahl Die Datei wurde vor Zahl Tagen das letzte Mal benutzt. -mtime Zahl Die Datei wurde vor Zahl Tagen das letzte Mal gendert. -ctime Zahl Der Status der Datei wurde vor Zahl Tagen das letzte Mal gendert. -anewer Datei Die Datei wurde spter als Datei benutzt. -newer Datei Die Datei wurde spter als Datei gendert. -cnewer Datei Der Status der Datei wurde spter als der von Datei gendert. -empty Die Datei oder das Verzeichnis ist leer. -group Name Die Datei ist mit der Gruppe Name assoziiert. -user Name Die Datei gehrt dem Benutzer Name. -nogroup Die Datei ist mit einer Gruppe assoziiert, die es auf dem System nicht gibt. -nouser Die Datei gehrt einem Benutzer, den es auf dem System nicht gibt. -name Name Die Datei hat einen Namen, der Name entspricht. Name darf Metazeichen enthalten, die in der Regel durch Anfhrungszeichen vor der Interpretation durch die Shell geschtzt werden mssen. -iname Name Wie -name, jedoch ohne Beachtung von Gro- und Kleinschreibung. -regex Name Der regulre Ausdruck Name trifft auf den Dateinamen zu. -iregex Name Der regulre Ausdruck Name trifft ohne Beachtung von Ground Kleinschreibung auf die Datei zu. -size Gre Die Datei hat eine Gre von Gre. Gre wird standardmig in 512 Byte groen Blcken interpretiert. Durch Nachstellen der Buchstaben c (Byte) oder k (Kilobyte) lsst sich dies ndern. -perm Rechte Die Rechte der Datei entsprechen den mit Rechte angegebenen Rechten. Rechte knnen auf die beiden vom Kommando chmod bekannten Weisen angegeben werden. -type Typ Die Datei ist vom Typ Typ. Fr Typ knnen die folgenden Buchstaben benutzt werden: b (Blockgertedatei), c (Zeichengertedatei), d (Verzeichnis), p (FIFO), f (gewhnliche Datei), l (symbolischer Link) und s (Socket). Test kann das Argument -not voran gestellt werden, was bedeutet, dass der Test erfllt ist, wenn die Bedingung nicht zutrifft. Weiter knnen Tests durch das Argument -or verknpft werden. Die Datei gilt dann als gefunden, wenn eine der angegebenen Bedingungen erfllt ist. Aktionen: -print Die Dateien werden auf die Standardausgabe geschrieben (Voreinstellung). -fprint Datei Die Namen der gefundenen Dateien werden in die mit Datei angegebene Datei geschrieben. Wenn Datei bereits existiert, wird sie berschrieben. -ls Die Dateien werden wie mit dem Kommando ls -dils angezeigt.

800

19 Kommandobersicht

-printf Format Zu jeder gefundenen Datei wird eine Ausgabe gemacht, die durch Format beschrieben ist. Mgliche Anweisungen hierzu nden sich in der Manual-Seite zu nd. -exec Kommando ; Fr jede gefundene Datei wird das mit Kommando angegebene Kommando ausgefhrt. Kommando muss mit einem Semikolon als eigenem Argument enden. Wenn das Kommando die Zeichenfolge {} enthlt, wird diese durch den aktuellen gefundenen Dateinamen ersetzt. -ok Kommando Wie -exec. Es wird jedoch vor der Ausfhrung jedes Kommandos nachgefragt, ob das betreffende Kommando wirklich ausgefhrt werden soll. find Gibt die Namen aller Dateien im und unterhalb des Arbeitsverzeichnisses aus. find /dev -type f Gibt die Namen gewhnlicher Dateien im Gerteverzeichnis aus. Die haben dort nichts zu suchen. find ~/ -mtime 7 -type f Gibt die Namen aller Dateien unterhalb des Home-Verzeichnisses des aufrufenden Benutzer aus, die innerhalb der letzten 7 Tage gendert worden sind und bei denen es sich um gewhnliche Dateien handelt. find / -nogroup -or -nouser | tar -cvzf backup.tgz -T Findet alle Dateien auf dem System, die keiner gltigen Benutzergruppe zugeordnet sind und/oder keinem existierenden Benutzer gehren. Die Namen dieser Dateien werden an tar bergeben, welches sie liest und in das komprimierte Archiv backup.tgz schreibt. Siehe auch: locate, chmod, xargs, tar.

free
Paket: procps

Freien Speicher anzeigen


Systemverwaltung, Information

free Optionen Das Programm zeigt an, wieviel Arbeitsspeicher (RAM) und Auslagerungsspeicher (Swap) dem System zur Verfgung steht. Weiter wird ausgegeben, wieviel Speicher benutzt wird und wieviel Speicher als Dateisystemcache und als Shared-Memory eingesetzt ist. -t Unter der Ausgabe fr RAM- und Swap-Speicher wird die Summe beider Speicherarten ausgegeben. Siehe auch: df, ps, top.

fromdos
Paket: sysutils

DOS-Textdateien nach Linux/UNIX umwandeln


Textverarbeitung

fromdos [Optionen] Dateien Das Programm nimmt die umgekehrte Konvertierung wie das Programm todos vor, es wandelt DOS-Textdateien in das Linux/UNIX-Format um, das heit, es wandelt durch CR/LF-Zeichenpaare kodierte Zeilenenden in einfache CR-Zeilenenden um.

19.2 Kommandos

801

-b Erzeugt Sicherungskopien vor der Konvertierung. fromdos README.1ST Konvertiert die Datei README.1ST in das Linux/UNIX-Textdateiformat. Siehe auch: todos, recode.

fsck
Paket: e2fsprogs

Dateisystem prfen
Systemverwaltung

fsck [Optionen] [Gertedatei ...] Das Programm prft einen oder mehrere Datentrger auf Dateisystemfehler. Dazu ruft es die Prfprogramme fr die jeweiligen Dateisysteme, mit denen die entsprechenden Datentrger formatiert sind, auf. Der Vorteil gegenber dem manuellen Aufruf der Prfprogramme besteht darin, dass fsck Partitionen auf unterschiedlichen Festplatten gleichzeitig (parallel) prft, wodurch sich Zeit sparen lsst. Das Programm wird whrend des Systemstarts aus den Skripten in /etc/init.d/checkroot.sh und /etc/init.d/checkfs.sh aufgerufen. Alle Optionen, die von fsck nicht interpretiert werden knnen, werden an das oder die aufgerufene(n) Programm(e) weitergegeben. -A Es werden alle Datentrger geprft, die in der Datei /etc/fstab eingetragen sind. -R Zusammen mit der Option -A: Der Datentrger mit dem Wurzeldateisystem wird nicht geprft. -t Typ Gibt mit Typ den Dateisystemtyp auf dem zu prfenden Datentrger an. -N Es wird kein Prfprogramm aufgerufen, sondern nur ausgegeben, welche Programme wie aufgerufen werden wrden, wenn diese Option nicht benutzt worden wre. Siehe auch: e2fsck, dosfsck.

fuser
Paket: psmisc

Prozesse anzeigen, die auf bestimmte Ressourcen zugreifen


Prozessverwaltung

fuser [Optionen] [Name ...] Das Programm stellt hnlich wie das Programm lsof eine Mglichkeit dar herauszunden, welcher Prozess (welches Programm) auf Ressourcen wie Dateien, Gerte oder Netzverbindungen zugreift. Standardmig zeigt fuser die Prozess-IDs der Prozesse an, die auf eine oder mehrere mit Name bezeichnete Ressource(n) zugreifen. Name wird dabei als Dateiname interpretiert, wobei spezielle Dateien wie Verzeichnisse oder Gertedateien eingeschlossen sind. Zu jeder Prozess-ID zeigt fuser durch einen Buchstaben an, auf welche Art der Prozess die Ressource benutzt: c Der Prozess benutzt ein Verzeichnis als Arbeitsverzeichnis. e Die Datei wird ausgefhrt. f die Datei ist von dem Prozess geffnet. r Das Verzeichnis wird von dem Prozess als Wurzelverzeichnis benutzt. m die Datei ist im Speicher abgebildet oder wird als Bibliothek benutzt. -k Beendet die zugreifenden Prozesse durch das Signal SIGKILL

802

19 Kommandobersicht

-m Zeigt alle Prozesse an, welche auf Dateien zugreifen, die sich auf dem gleichen Datentrger(n) benden, wie die angegebenen Dateien. Mit dieser Option kann auch eine Gertedatei angegeben werden, die den Datentrger reprsentiert. Sinnvoll beispielsweise um herauszunden, welcher Prozess auf eine Diskette zugreift, die ausgehngt werden soll. -u Zu jedem Prozess wird der Name des Benutzers angegeben, dem der Prozess gehrt. -v Die Ausgabe erfolgt mit Prozess-ID, Programmnamen und Art des Zugriffs. -n Namensraum Whlt einen anderen Namensraum. Zur Verfgung stehen neben dem Standard le die Namensrume udp (lokaler UDP-Port) und tcp (lokaler TCP-Port). Ressourcen werden in diesen Namensrumen auf die folgende Weise angegeben: [lokal][,[Rechner][,[fern]]], wobei lokal den lokalen Port, fern den fernen Port und Rechner den fernen Rechner, mit dem eine Verbindung besteht, beschreibt. fuser brief.txt Zeigt an, welcher oder welche Prozess(e) auf die Datei brief.txt im Arbeitsverzeichnis zugreifen. fuser -uvm /dev/sda1 Zeigt an, welche Prozesse auf Dateien, die sich auf dem Datentrger /dev/sda1 (erste primre Partition der ersten SCSI-Festplatte) benden, zugreifen. Dabei werden die Prozess-IDs, die Namen der Programme, die Art der Zugriffe und die Besitzer der Prozesse angezeigt. fuser -n udp 137 Gibt die Prozess-ID des Prozesses an, der den UDP-Port 137 benutzt. Siehe auch: lsof, kill.

gpasswd
Paket: passwd

Verwalter von Gruppen


Benutzerverwaltung

gpasswd Gruppe Fgt der mit Gruppe bezeichneten Gruppe ein Passwort zu. Alle Benutzer knnen dann unter Angabe dieses Passworts in die bezeichnete Gruppe wechseln (Kommando newgrp). Mitglieder der Gruppe bentigen weiterhin kein Passwort. gpasswd -r Gruppe Entfernt das Passwort zu einer Benutzergruppe. Danach knnen nur noch Mitglieder dieser Gruppe in die bezeichnete Gruppe wechseln. gpasswd -a Benutzer Gruppe Fgt den mit Benutzer bezeichneten Benutzer der mit Gruppe spezizierten Benutzergruppe zu. gpasswd -d Benutzer Gruppe Entfernt den mit Benutzer bezeichneten Benutzer aus der mit Gruppe bezeichneten Benutzergruppe. gpasswd -A Benutzer [Benutzer ...] Gruppe

19.2 Kommandos

803

Ernennt den oder die mit Benutzer angegebenen Benutzer zu Verwaltern der mit Gruppe spezizierten Benutzergruppe. Gruppenverwalter drfen die Passwrter von Gruppen verndern und Benutzer den von ihnen verwalteten Gruppen hinzufgen und sie wieder entfernen. gpasswd -A meier verkauf Ernennt den Benutzer meier zum Verwalter der Benutzergruppe verkauf. Benutzer meier kann dann folgende Kommandos ausfhren: gpasswd verkauf Setzt ein Passwort fr die Gruppe verkauf. gpasswd -a schulze verkauf Fgt den Benutzer schulze der Gruppe verkauf hinzu. Siehe auch: newgrp, addgroup.

grep
Paket: grep

Textdateien durchsuchen
Textverarbeitung, Information, Shellskripte

grep [Optionen] [Suchbegriff] [Datei ...] Das Programm liest Daten aus einer oder mehreren mit Datei angegebenen Datei(en) oder von der Standardeingabe, wenn keine Datei angegeben ist und durchsucht die gelesenen Daten nach der mit Suchbegriff angegebenen Zeichenfolge. Mit rgrep lassen sich Verzeichnisse rekursiv greppen. Standardmig werden die Zeilen ausgegeben, in denen der Suchbegriff enthalten ist. Der angegebene Suchbegriff wird ohne Angaben weiterer Optionen als regulrer Ausdruck interpretiert. Dabei ist zu beachten, dass grep zwei Formen von regulren Ausdrcken untersttzt: Einfache regulre Ausdrcke und erweiterte regulre Ausdrcke. Sie unterscheiden sich im wesentlichen dadurch, dass die Zeichen ?, +, {, |, ( und ) bei einfachen regulren Ausdrcken keine besondere Bedeutung haben und Ihnen ein Backslash (\) vorangestellt werden muss, um die besondere Funktionalitt dieser Zeichen zu verwenden. In erweiterten regulren Ausdrcken werden diese Zeichen als Sonderzeichen regulrer Ausdrcke interpretiert. Voreinstellung ist die Interpretation des angegebenen Suchbegriffs als einfacher regulrer Ausdruck. Bei der Verwendung von Sonderzeichen ist darauf zu achten, dass diese durch Anfhrungszeichen vor der Interpretation durch die Shell geschtzt werden mssen. Eine bersicht ber die Verwendung regulrer Ausdrcke nden Sie auf S. 895. -E | - -extended-regexp Der angegebene Suchbegriff wird als erweiterter regulrer Ausdruck interpretiert (s. o.). -F | - -fixed-strings Sonderzeichen im Suchbegriff werden nicht interpretiert. D. h. es werden keine regulren Ausdrcke benutzt. -Anzahl Es wird die mit Anzahl angegebene Anzahl von Zeilen vor und nach den Zeilen ausgegeben, in denen der Suchbegriff vorkommt. -A Anzahl | - -after-context=Anzahl Es wird die mit Anzahl angegebene Anzahl von Zeilen nach den Zeilen, in denen der Suchbegriff vorkommt, ausgegeben.

804

19 Kommandobersicht

-B Anzahl | - -before-context=Anzahl Es wird die mit Anzahl angegebene Anzahl von Zeilen vor den Zeilen, in denen der Suchbegriff vorkommt, ausgegeben. -c | - -count Es wird nur ausgegeben, wie oft der Suchbegriff in den gelesenen Daten vorkommt. -f Datei | - -file=Datei Der Suchbegriff wird aus der mit Datei bezeichneten Datei gelesen. -h | - -no-filename Beim Durchsuchen mehrerer Dateien gibt grep gewhnlich die Namen der Dateien mit aus, in denen der Suchbegriff vorkommt. Dieses Verhalten wird hierdurch unterdrckt. -i | - -ignore-case Bei der Suche wird nicht zwischen Gro- und Kleinschreibung unterschieden. -l | - -files-with-match Es werden nur die Namen der Dateien ausgegeben, in denen der Suchbegriff enthalten ist. -n | - -line-number Es werden zustzlich die Zeilennummern der Zeilen, in denen der Suchbegriff vorkommt, mit ausgegeben. -v | - -revert-match Es werden die Zeilen als zutreffend interpretiert, in denen der Suchbegriff nicht vorkommt. grep hallo brief.txt Gibt alle Zeilen der datei brief.txt aus, in denen das Wort hallo vorkommt. grep [dD]ebian -c /usr/share/doc/*/*txt Gibt fr alle Dateien in Unterverzeichnissen von /usr/share/doc mit der Endung *txt aus, wie oft in ihnen das Wort debian vorkommt, wobei dieses Wort am Anfang auch grogeschrieben sein kann. grep -i -l beer ~/* | xargs tar -cvzf beer.tar.gz Durchsucht alle Dateien im Home-Verzeichnis des aufrufenden Benutzers (ohne Unterverzeichnisse) und bergibt die Namen der Dateien, in denen dieser Suchbegriff vorkommt, an das Programm xargs, welches damit tar aufruft, um diese Dateien in das tar-Archiv beer.tar.gz zu schreiben. Siehe auch: rgrep, zgrep, sed, xargs, nd, Kapitel 20, S. 895.

groupdel
Paket: passwd

Benutzergruppe lschen
Benutzerverwaltung

groupdel Gruppe Das Programm lscht die mit Gruppe angegebene Benutzergruppe vom System. Siehe auch: userdel, addgroup, gpasswd.

groups
Paket: shellutils

Gruppenmitgliedschaft anzeigen
Information, Benutzerverwaltung

groups [Benutzername] Das Kommando zeigt, in welchen Benutzergruppen der aufrufende Benutzer Mitglied ist. Wird dem Kommando ein Benutzername als Argument bergeben, zeigt

19.2 Kommandos

805

es, in welchen Benutzergruppen der mit Benutzername angegebene Benutzer Mitglied ist. Siehe auch: gpasswd, newgroup.

gs
Paket: gs, gs-aladdin

PostScript-Dokument umwandeln
Drucken, Kompatibilitt

gs [Optionen] [Datei ..] Das Programm liest eine oder mehrere mit Datei angegebene PostScript-Datei(en) und fhrt die darin enthaltenen PostScript-Anweisungen aus. Nach Abarbeitung aller Kommandos liest das Programm weiter von der Standardeingabe, bis es ein Dateiende (Tastenkombination S TRG - D) feststellt. Das Programm wird auch durch das Kommando quit beendet. Der Hauptzweck von gs besteht in der Konvertierung von PostScript-Dokumenten in ein Format, das von dem an das System angeschlossenen Drucker untersttzt wird. Hierzu muss ein Gert ausgewhlt werden, fr das gs die Konvertierung durchfhrt. Standardmig benutzt gs das Gert x11, mit dem der Inhalt von PostScript-Dateien am Bildschirm in einem X11-Fenster dargestellt wird. Zum Betrachten von PostScript-Dokumenten unter X11 stehen komfortablere Programme (ghostview oder gv) zur Verfgung, die jedoch gs zur eigentlichen Darstellung benutzen. Normalerweise muss gs nicht vom Benutzer aufgerufen werden, sondern wird vom Drucksystem whrend des Druckens von Dokumenten automatisch aufgerufen. -sDEVICE=Gert Whlt das mit Gert angezeigte Gert aus. Eine Liste untersttzter Gerte wird angezeigt. wenn gs mit der Option --help aufgerufen wird. -r XAuflsungxYAuflsung Legt die Auflsung fest, in der die Ausgabe erfolgen soll. Die Auflsung wird in dpi angegeben und muss vom Ausgabegert untersttzt werden. (Beispiel: -r 600x300 legt eine Auflsung von 600 dpi horizontal und 300 dpi vertikal fest.) -sOutputFile=Datei Die Ausgabe wird in die mit Datei bezeichnete Datei geschrieben. Wenn diese Datei schon existiert, wird sie berschrieben. Wird als Datei ein Minuszeichen angegeben, dann wird die Ausgabe auf die Standardausgabe gegeben. Durch das Pipe-Zeichen (|) wird die Ausgabe an ein dahinter stehendes Programm geleitet. -sPAPERSIZE=Papiergre Legt die Papiergre des Ausgabemediums fest. Standardmig wird die mit papercong festgelegte Papiergre benutzt. Bekannte Papiergren sind in der Manual-Seite zu dem Programm aufgefhrt. -dNOPAUSE Legt fest, dass nach der Bearbeitung einer Seite keine Pause gemacht werden soll. -dBATCH Legt fest, dass gs beendet wird, wenn die letzte Datei bearbeitet worden ist. -q Unterdrckt die Meldungen, die normalerweise beim Start von gs ausgegeben werden. gs -q -sDEVICE=jpeg -dNOPAUSE -dBATCH -sOutputFile=bild.ps > bild.jpg

806

19 Kommandobersicht

Konvertiert die mit bild.ps angegebene PostScript-Datei in die JPEG-Datei bild.jpg. gs -q -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=bericht.pdf bericht.ps Konvertiert die Datei bericht.ps in das PDF-Format und legt das Ergebnis in der Datei bericht.pdf ab. Siehe auch: ghostview, gv.

gunzip
Paket: gzip

Datei dekomprimieren
Dateiverwaltung

gunzip [Optionen] [Datei ...] Das Programm dekomprimiert die mit Datei angegebene(n) Datei(en) oder liest von der Standardeingabe, wenn keine Dateien angegeben sind. Komprimierte Dateien haben die Kennung .gz oder .Z. Beim Dekomprimieren von Dateien prft gunzip zunchst, ob die Dateiendungen auf komprimierte Daten schlieen lassen. Falls nein, gibt das Programm eine Fehlermeldung aus. Danach wird auch bei von der Standardeingabe gelesenen Daten anhand einer Signatur in den Daten untersucht, ob es sich tatschlich um komprimierte Daten handelt. Auch hier erfolgt eine Fehlermeldung, wenn die Signatur nicht gefunden werden konnte. Wenn gunzip Dateien dekomprimiert, schreibt es das Ergebnis standardmig in Dateien mit dem gleichen Namen, von denen die Kennungen .gz, .Z usw. entfernt werden. Rechte, Besitzer und Gruppe der Dateien bleiben erhalten. Die Ausgangsdateien werden gelscht. Bei der Dekomprimierung von Daten, die das Programm von der Standardeingabe liest, werden die dekomprimierten Daten auf die Standardausgabe geschrieben. -c | - -stdout Die dekomprimierten Daten werden immer auf die Standardausgabe geschrieben. -l | - -list Zu jeder komprimierten Datei werden einige Informationen ausgegeben. (Gre vorher, Gre hinterher usw.) Die Daten werden nicht dekomprimiert. -r | - -recursive Wenn es sich bei den zu dekomprimierenden Dateien um Verzeichnisse handelt, werden alle komprimierten Dateien in den Verzeichnissen und rekursiv in allen Unterverzeichnissen dekomprimiert. -t | - -test Es wird nur getestet, ob die Integritt der komprimierten Dateien gewhrleistet ist. -f | - -force Dekomprimiert Daten auch dann, wenn normalerweise nicht dekomprimiert werden wrde, weil eine Datei mit dem Namen der zu erzeugenden Datei bereits existiert oder die Datei mehrere Verzeichniseintrge hat. gunzip bild1.jpg.gz Dekomprimiert die Datei bild1.jpg.gz und schreibt das Ergebnis in die Datei bild1.jpg. Die Ausgangsdatei wird gelscht. gunzip -lr ~/ Gibt fr jede komprimierte Datei im Home-Verzeichnis des aufrufenden Benutzers und rekursiv in allen Unterverzeichnissen Informationen aus. cat archiv.tgz | gunzip | tar -xvf -

19.2 Kommandos

807

Gibt die Daten der Datei archiv.tgz in die Standardeingabe von gunzip, welches sie dekomprimiert und dann an tar weiterleitet. Dieses Programm packt die in den Daten enthaltenen Dateien aus. Siehe auch: gzip, zcat, zless, zforce, bunzip2.

gzip
Paket: gzip

Datei komprimieren
Dateiverwaltung

gzip [Optionen] [Datei ...] Das Programm komprimiert eine oder mehrere mit Datei angegeben Datei(en) und schreibt das Ergebnis in neue Dateien, die den gleichen Namen wie die Ausgangsdateien haben, aber die Kennung .gz erhalten. Die Ausgangsdateien werden gelscht. Besitzer, Rechte und Gruppenzuordnung bleiben erhalten. Wenn keine Dateien angegeben sind, liest das Programm von der Standardeingabe und schreibt die Daten komprimiert auf die Standausgabe. -c | - -stdout Die Daten werden in jedem Fall auf die Standardausgabe geschrieben, und die Originaldateien werden nicht verndert. -f | - -force Dateien werden auch dann komprimiert, wenn sie mehrere Verzeichniseintrge haben oder eine Datei mit dem Namen der zu erzeugenden Datei bereits existiert. -r | - -recursive Wenn es sich bei einer oder mehreren der angegebenen Dateien um Verzeichnisse handelt, werden alle Dateien darin und rekursiv in allen Unterverzeichnissen komprimiert. -Factor Gibt die Strke der Kompression an. Erlaubte Werte fr Factor sind die Zahlen 1 bis 9, wobei der Wert 1 geringste Kompression (bei hchster Geschwindigkeit) und der Wert 9 hchste Kompression (bei niedrigster Geschwindigkeit) speziziert. gzip bild.jpg Komprimiert die Datei bild.jpg und schreibt das Ergebnis in die Datei bild.jpg.gz. Die Ausgangsdatei wird gelscht. gzip -r alter_kram/ Komprimiert alle Dateien im Verzeichnis alter_kram und rekursiv in allen Unterverzeichnissen dieses Verzeichnisses. cat brief.txt | gzip | gunzip | less bergibt den Inhalt der Datei brief.txt an das Programm gzip, wo er komprimiert wird. Das Ergebnis geht weiter an gunzip wo es wieder dekomprimiert wird und an das Programm less weitergeleitet wird, wo es schlielich angezeigt wird. Siehe auch: gunzip, zcat, zip, tar, bzip2.

halt
Paket: sysvinit

System anhalten
Systemverwaltung

halt [Optionen]

808

19 Kommandobersicht

Das Kommando fhrt das System herunter und hlt es an. Dann kann es ausgeschaltet oder ber die Reset-Taste neu gestartet werden. Siehe auch: init, shutdown, reboot, poweroff.

hdparm
Paket: hdparm

(E)IDE-Festplatteneinstellungen anzeigen und ndern


Systemverwaltung

hdparm [Optionen] Gertedatei [Gertedatei ...] Das Programm zeigt die Einstellungen einer oder mehrerer der durch mit Gertedatei bezeichneten Gertedateien reprsentierten Festplatten an und kann diese verndern. Die meisten Optionen funktionieren nur mit (E)IDE-Festplatten. -a [Anzahl] Legt fest, wieviele Sektoren im voraus gelesen werden sollen oder gibt diese Einstellung aus, wenn Anzahl nicht angegeben wurde. Voreinstellung ist 8 Sektoren. -c [Zahl] Schaltet den 32-Bit-Zugriff auf die entsprechende Festplatte an, wenn Zahl 1 ist oder aus, wenn Zahl 0 ist und auf einen speziellen Kompatibilittsmodus, der von einigen Chipstzen bentigt wird, wenn Zahl 3 ist. Wenn Zahl nicht angegeben wird, wird die momentane Einstellung ausgegeben. -C Gibt den momentanen Stromverbrauchsmodus des Laufwerks aus. -f Fhrt dazu, dass bei der Beendigung des Programms der Festplattencache fr die entsprechende Festplatte synchronisiert wird. -g Gibt die Festplattengeometrie (Zylinder, Kpfe, Sektoren) aus. -i Zeigt die Identikationsinformationen des Laufwerkes an. -m [Zahl] Schaltet den Block-Modus aus, wenn Zahl 0 ist oder legt fest, wieviele Sektoren gleichzeitig gelesen werden sollen, wenn Zahl grer Null ist. Die maximale Anzahl gleichzeitig lesbarer Sektoren ist von Laufwerk zu Laufwerk unterschiedlich. -S Zahl Legt die Zeitdauer fest, nach deren Ablauf das Laufwerk auf den Bereitschaftsmodus schaltet. Wenn Zahl zwischen 1 und 240 liegt, wird sie als ein Vielfaches von 5 s interpretiert. Wenn Zahl zwischen 241 und 251 liegt, wird von ihr 240 abgezogen und das Ergebnis als ein Vielfaches von 30 Minuten interpretiert. Der Wert 0 bewirkt, dass das Laufwerk nie in den Bereitschaftsmodus schaltet. Der Wert sollte nicht zu niedrig gewhlt werden, weil huges Anlaufen einer Festplatte den Verschlei deutlich erhht. -u [Zahl] Bestimmt, ob der Kern andere Interrupts behandeln darf, whrend ein Festplatteninterrupt bearbeitet wird. Wenn Zahl 1 ist, wird die Eigenschaft eingeschaltet und wenn Zahl 0 ist, wird sie ausgeschaltet. Wenn Zahl nicht angegeben ist, wird die momentane Einstellung ausgegeben. Die Einstellung 1 kann bei Verwendung einiger IDE-Chipstze zu Datenverlusten fhren, erhht jedoch im allgemeinen die Gesamtleistung des Systems. -v Zeigt alle Einstellungen an. Siehe auch: fdisk, cfdisk, sync.

19.2 Kommandos

809

host
Paket: dnsutils

DNS Abfrage
Netz

host [Optionen] Name | IP-Adresse [DNS-Server] Das Programm ist ein einfaches Werkzeug zur Abfrage von DNS-Servern. -t Typ des gefragten Eintrags -a Alle Eintrge -v verbose, ausfhrlich host ftp.de.debian.org Liefert 141.76.2.4 als IP-Adresse zurck. host -av 141.76.2.4 Liefert ftp.de.debian.org als Namen zurck. host -t SOA debian.org Liefert raff.debian.org als Start Of Authority (SOA) zurck. Siehe auch: dig, nslookup.

hostname
Paket: hostname

Rechnernamen anzeigen und setzen


Information, Systemverwaltung, Shellskripte

hostname [Optionen] [Rechnername] Das Kommando wird benutzt, um den Namen des Rechners, auf dem es aufgerufen wird, anzuzeigen oder zu ndern. Wird hostname ohne Parameter aufgerufen, zeigt es den Rechnernamen an. Wenn es mit einem Rechnernamen als Parameter aufgerufen wird, setzt es den Rechnernamen auf den angegebenen Wert. Dadurch wird nicht die Datei /etc/hostname verndert, die beim Systemstart benutzt wird, um den Rechnernamen zu setzen. Nach einem Systemstart ist der Rechnername wieder der alte, wenn er nicht auch in dieser Datei verndert wurde. -d | - -domain Zeigt den Namen der DNS-Domne an, in der sich der Rechner bendet. -F Datei | - -file Datei Liest den zu setzenden Rechnernamen aus der mit Datei bezeichneten Datei. -f | - -fqdn Zeigt den vollqualizierten Domnennnamen. Er setzt sich aus dem Rechnernamen und dem Domnennnamen zusammen und ist in der Regel der Name, unter dem ein Rechner im Internet zu erreichen ist. -i | - -ip-address Zeigt die Internetadresse ersten Netzinterfaces an. -y | - -yp Gibt den NIS-Domnennamen aus. hostname -F /etc/hostname Setzt den Rechnernamen auf den in der Datei /etc/hostname angegebenen Wert. Siehe auch: netstat, ifcong.

hwclock
Paket: util-linux

Hardware-Uhr anzeigen und stellen


Systemverwaltung

810

19 Kommandobersicht

hwclock [Optionen] Ohne Optionen aufgerufen zeigt das Programm die aktuelle Uhrzeit und das Datum an, wie es von der Hardwareuhr des Rechners berichtet wird. Diese Uhr wird bentigt, um die Systemzeit nach dem Einschalten des Rechners oder nach einem Neustart richtig einzustellen. - -systohc Stellt die Hardwareuhr auf die aktuelle Systemzeit. - -hctosys Stellt die Systemzeit auf die von der Hardwareuhr berichtete Zeit. - -set - -date=Datum Stellt die Uhrzeit auf das mit Datum angegebene Datum und Uhrzeit. Datum muss wie mit dem Kommando date speziziert werden. - -adjust Das Programm speichert in der Datei /etc/adjtime, ob die Hardwareuhr vor- oder nachgeht und in welchem Umfang sie dies tut. Die Information wird bei jeder Neueinstellung der Hardwareuhr durch die Optionen - -systohc oder - -set aktualisiert. Durch den Aufruf mit - -adjust passt das Programm die Hardwareuhr um die Abweichung seit dem letzten Stellen an. Wenn dabei von der Realitt abweichende Ergebnisse herauskommen, sollte die Datei /etc/adjtime einmal gelscht werden. hwclock - -set - -date 16:50 Stellt die Hardwareuhr des Rechners auf 16.50 Uhr ein. Das Datum wird beibehalten. Siehe auch: date, tzcong, ntpdate.

id
Paket: shellutils

Benutzer- und Gruppenzugehrigkeit anzeigen


Information, Shellskripte

id [Optionen] [Benutzer] Ohne Parameter aufgerufen zeigt das Programm die Benutzer-ID des aufrufenden Benutzers sowie die Benutzergruppen-IDs der Gruppen, denen der Benutzer angehrt, an. Hinter jeder ID wird in Klammern der Name der betreffenden Gruppe und des Benutzers ausgegeben. Wenn dem Programm ein Benutzername bergeben wurde, gibt es diese Informationen fr den mit Benutzer angegebenen Benutzer aus. Als erste Gruppen-ID wird immer die ID der Gruppe ausgegeben, welche die aktive Gruppe des Benutzers ist. -g | - -group Es wird nur die ID der aktiven Gruppe (fr den aufrufenden Benutzer) oder die ID der primren Gruppe (fr andere Benutzer) ausgegeben. -G | - -groups Es werden nur die IDs der Gruppen ausgegeben, denen der Benutzer angehrt. -u | - -user Gibt nur die Benutzer-ID aus. -n | - -names Gibt zusammen mit einer der Optionen -g, -n oder -u die Namen des Benutzers oder der Gruppen an Stelle der IDs aus. Siehe auch: whoami, newgrp, gpasswd.

info
Paket: info

Dokumentation im GNU-Info-Format anzeigen


Dokumentation, Information

19.2 Kommandos

811

info [Optionen] [Meneintrag] Das Programm dient zum Lesen von Dokumentation im GNU-Info-Format. Dieses Dokumentationsformat und die Benutzung des Programms ist in Kapitel 6.3, S. 162 beschrieben. Standardmig ffnet das Programm nach seinem Start die Datei /usr/info/dir, in der sich Verweise auf alle Themen und Programme, die im InfoSystem dokumentiert sind, nden lassen. Wird mit Meneintrag ein Meneintrag angegeben, springt das Programm gleich dorthin. Das Programm wird mit dem Tastaturkommando Q verlassen. -f Datei Weist info an, zu Beginn die mit Datei angegebene Datei anzuzeigen. -n Abschnitt Zusammen mit der Option -f zeigt info den mit Abschnitt spezizierten Abschnitt in der entsprechenden Datei an. -o Datei Die Informationen werden nicht angezeigt, sondern in die mit Datei angegebene Datei geschrieben. Wenn eine Datei mit diesem Namen bereits existiert, wird sie berschrieben. info ls Startet das Programm info und zeigt den Inhalt des Meneintrags ls an. info -f fileutils -n "ls invocation" -n "rm invocation" -o hilfe.txt Gibt den Inhalt der beiden Abschnitte ls invocation und rm invocation aus der InfoDatei leutils in die Datei hilfe.txt aus. Siehe auch: emacs, man.

init
Paket: sysvinit

Runlevel wechseln
Systemverwaltung

init [Runlevel | Option] Das Programm erfllt zwei Aufgaben. Zum einen ist es das erste Programm, das nach dem Start des Kerns ausgefhrt wird, alle weiteren Programme zur Systeminitialisierung ausfhrt und dann entsprechend seiner Konguration in der Datei /etc/inittab Programme startet, die Benutzern die Anmeldung am System ermglichen (blicherweise das Programm getty). Der Startproze von Debian GNU/Linux ist in Kapitel 13, S. 449 beschrieben. Zum anderen wird init dazu benutzt, den Runlevel des Systems zu verndern. Ein Runlevel ist ein Status des Systems, in dem bestimmte Dienste aktiv sind. Es stehen 7 Runlevel zur Verfgung, die mit den Zahlen 06 bezeichnet werden. Runlevel 0 wird zum Anhalten des Systems und Runlevel 6 zum Neustarten des Systems benutzt. Der Standardrunlevel ist 2. Runlevel 1 ist der Single-User-Modus, in dem sich nur der Systemverwalter an das System anmelden kann und die meisten Dienste nicht ausgefhrt werden. Dieser Runlevel kann benutzt werden, um Aufgaben der Systemverwaltung durchzufhren, whrend derer keine Benutzer das System verwenden drfen. Ein Beispiel fr eine solche Aufgabe ist das Prfen von Festplattenpartitionen, auf denen sich Benutzerdaten benden. Um den Runlevel zu verndern, wird dem Programm die Zahl des gewnschten Runlevels bergeben.

812

19 Kommandobersicht

Q Fhrt dazu, dass init seine Konguration neu liest und den Zustand des Systems an die neue Konguration anpat. Der Runlevel wird dabei nicht gendert. R Fhrt dazu, dass init sich selbst neu ausfhrt ohne den Runlevel zu ndern. Dieses Kommando ist notwendig, um das Programm init selbst zu ersetzen, ohne das System neu starten zu mssen. init 1 Bringt das System in den Single-User-Modus. init 2 Bringt das System wieder in den Standard-Runlevel 2 Siehe auch: shutdown, runlevel, reboot, halt, getty.

insmod
Paket: modutils

Kernmodul laden
Systemverwaltung

insmod [Optionen] Modul [Parameter=Wert ...] Das Kommando ldt das mit Modul bezeichnete Modul in den Kern. Optional wird der mit Parameter angegebene Modulparameter auf den durch Wert spezizierten Wert gesetzt. -f Versucht, das Modul auch dann zu laden, wenn Kernversion und Modulversion nicht bereinstimmen. -p Testet, ob der Kern alle Funktionen bietet, die das Modul bentigt. Der Rckgabewert des Kommandos ist 0, wenn alle Bedingungen erfllt sind. -k Das Modul darf wieder automatisch entfernt werden, wenn es nicht bentigt wird. insmod -f sb irq=5 dma=0 dma16=5 mpu_io=0x330 io=0x220 Ldt das Modul sb auch dann, wenn Modulversion und Kernversion nicht bereinstimmen. Die Modulparameter irq, dma, dma16, mpu_io und io werden auf die angegebenen Werte gesetzt. Siehe auch: modprobe, modconf, rmmod.

ispell
Paket: ispell

Rechtschreibung prfen
Textverarbeitung

ispell [Optionen] Datei [Datei ...] Das Programm ist das Standard-Rechtschreibprfprogramm unter Debian GNU/Linux. Es wird zum einen von vielen Programmen (Editoren oder EmailProgrammen) aufgerufen, um die Rechtschreibprfung von Texten durchzufhren. Zum anderen kann es aber auch direkt von der Kommandozeile aus eingesetzt werden, um Texte auf richtige Rechtschreibung zu prfen. ispell startet dann in einem interaktiven Modus, in dem es nacheinander die Zeilen anzeigt, in denen es falsch geschriebene Wrter ndet, wobei das jeweilige falsch geschriebene Wort invertiert dargestellt wird. Falls vorhanden, werden darunter Alternativen aufgefhrt,

19.2 Kommandos

813

die sich durch Auswahl der entsprechenden Zahl oder des entsprechenden Buchstabens vor einer Alternative auswhlen lassen. Darber hinaus stehen folgende Tastaturkommandos zur Verfgung:
A:

Das Wort wird als richtig geschrieben akzeptiert. Das heit, bei jedem weiteren Erscheinen des betreffenden Worts werden keine Alternativen vorgestellt. Das Wort wird jedoch nicht dauerhaft gespeichert, sodass es beim nchsten Aufruf von ispell wieder als falsch geschrieben angesehen wird. I: Das Wort wird als richtig geschrieben akzeptiert. ispell schreibt dieses Wort in das persnliche Wrterbuch des aufrufenden Benutzers, sodass es in Zukunft als richtig geschrieben angesehen wird. U : Wie I mit dem Unterschied, dass das Wort komplett kleingeschrieben gespeichert wird. Dieses Kommando sollte benutzt dann werden, wenn ein grogeschriebenes Wort (beispielsweise am Satzanfang) in das Wrterbuch aufgenommen werden soll, das normalerweise kleingeschrieben wird. X : Die Datei wird mit allen nderungen gesichert, und das Programm wird verlassen. Q : Das Programm wird sofort verlassen, ohne Korrekturen zu sichern. S TRG - L: Der Bildschirm wird neu gezeichnet. ?: Die zur Verfgung stehenden Kommandos werden kurz erlutert. Bei der Bearbeitung deutscher Texte mit ispell sind einige Dinge zu beachten. Es muss ein deutsches Wrterbuch installiert und als Standardwrterbuch eingestellt sein. Zustzlich sind Optionen zu verwenden, die das Programm an die deutsche Sprache anpassen. Von Haus aus versteht ispell keine Umlaute und akzeptiert keine zusammengesetzten Wrter, die im Englischen selten, im Deutschen jedoch oft vorkommen. Das persnliche Wrterbuch des aufrufenden Benutzers wird in dessen Home-Verzeichnis unter dem Namen .ispell_default1 abgelegt. Es handelt sich dabei um eine normale alphabetisch sortierte Textdatei. Sie kann mit einem Editor bearbeitet werden, um versehentlich eingefgte, aber falsch geschriebene Wrter zu entfernen. Fehler, die eine Analyse des Satzes erfordern, erkennt das Werkzeug nicht (das - dass, indem - in dem, Lerche - Lrche). -L Anzahl Vor Zeilen mit falsch geschriebenen Wrtern wird die mit Anzahl angegebene Anzahl von Zeilen angezeigt. Standardmig wird nur die Zeile mit dem falsch geschriebenen Wort angezeigt. A -t Die gelesene Datei wird als TEX- oder LTEX-Text interpretiert. Das fhrt dazu, dass Anweisungen zum Textsatz nicht als falsch geschriebene Wrter interpretiert werden. -b Es werden Sicherungskopien der zu prfenden Dateien angelegt. Die Dateien erhalten die Endung .bak. -C Zusammengesetzte Wrter werden akzeptiert. -P Oft sind die Stammwrter eines Wortes im Wrterbuch enthalten, nicht jedoch die im Text benutzte Form. Normalerweise fragt ispell in einem solchen Fall
1 Bei der expliziten Verwendung anderer Wrterbcher werden zustzliche Dateien angelegt, wie ispell_english.

814

19 Kommandobersicht

-S -d

-p

-W

-T

-l

nach, ob die benutzte Form zulssig ist und in das Wrterbuch aufgenommen werden soll. Die Option bewirkt, dass ispell nur bei Wrtern nachfragt, fr die die benutzte Form nicht generiert werden kann. Sortiert die Liste von Korrekturvorschlgen zu einem falschen Wort so, dass die wahrscheinlichsten Alternativen als erstes genannt werden. Wrterbuch Gibt das zu verwendende Wrterbuch an. Normalerweise muss mit Wrterbuch nur der Name des installierten Wrterbuches angegeben werden. Es ist jedoch auch mglich, durch Verwendung eines absoluten Pfad- und Dateinamens eine alternative Datei zu spezizieren. Wrterbuch Gibt mit Wrterbuch den Namen der Datei mit dem persnlichen Wrterbuch an. Die Datei braucht nicht zu existieren, sie wird dann erzeugt. Die Option ist sinnvoll, falls Texte korrigiert werden sollen, die viele Fachbegriffe enthalten, die nicht in das normale persnliche Wrterbuch bernommen werden sollen. Anzahl Legt die Lnge der Wrter in Zeichen fest, die ispell nicht prfen soll. Oft handelt es sich bei Wrtern von zwei oder drei Buchstaben Lnge um Abkrzungen, die nicht geprft zu werden brauchen. Allerdings bewirkt die Option -W 3 auch, dass ein falschgeschriebenes ob oder und nicht gefunden wird. Legt das Format des Textes fest. Die verfgbaren Formate sind abhngig vom benutzten Wrterbuch. Im deutschen Wrterbuch stehen u. a. die Formate latin1 (normaler Text mit Umlauten) und tex (Text, in dem Umlaute in der Form a, o usw. angegeben sind.) zur Verfgung. Fr deutschen Text sollte die Option -T latin1 benutzt werden. Fhrt dazu, dass ispell Text von der Standardeingabe liest und falsch geschriebene Wrter auf die Standardausgabe ausgibt.

ispell -C -P -S -W 3 -T latin1 -t brief.tex Prft die Datei brief.tex interaktiv auf richtige Rechtschreibung. Wrter mit drei oder weniger Buchstaben werden prinzipiell als richtig akzeptiert (-W 3), Normale UmA laute werden richtig interpretiert (-T latin1), LTEX-Kommandos werden nicht als falsche Wrter angesehen (-t), zusammengesetzte Wrter werden akzeptiert (-C), reproduzierbare Formen von Stammwrtern fhren zu keiner Nachfrage (-P), und Korrekturvorschlge werden nach ihrer Wahrscheinlichkeit sortiert. cat letter.txt | ispell -W 2 -d american > wrong_words Liest den Inhalt der Datei letter.txt und fhrt eine Rechtschreibprfung mit dem amerikanischen Wrterbuch durch. Wrter mit einem oder zwei Buchstaben werden immer als richtig geschrieben angesehen. Es wird eine Liste falsch geschriebener Wrter in die Datei wrong_words geschrieben. Siehe auch: update-ispell-dictionary.

kbdcong
Paket: console-tools

Tastaturlayout einstellen
Verwaltung, Installation

kbdconfig

19.2 Kommandos

815

Mit dem Programm wird das Layout der Tastatur eingestellt. Das Programm sollte nur direkt an der Konsole und nicht in einem Terminalfenster mit X11 benutzt werden. Nach dem Aufruf wird gefragt, ob der Kern das Standardlayout neu laden soll. Dies hat normalerweise zur Folge, dass der Kern danach von einer USamerikanischen Tastatur ausgeht. Geben Sie N und E INGABE ein, um zu verhindern, dass die Tabelle neu geladen wird. Die verfgbaren Tastaturtabellen benden sich unterhalb des Verzeichnisses /usr/share/keymaps und liegen dort in verschiedenen Unterverzeichnissen, die sich nach Rechnerarchitektur, Tastaturlayout und Tastaturbelegung richten. Diese Verzeichnisse werden nacheinander von dem Programm abgefragt. Fr ein PC-System mit deutscher Tastatur ist fr die Rechnerarchitektur i386, fr das Tastaturlayout qwertz und fr die Tastaturbelegung blicherweise de-latin1-nodeadkeys anzugeben. Danach besteht die Mglichkeit, die ausgewhlte Kombination zu testen. Um den Test zu beenden, reicht es, eine Zeitlang keine Tasten mehr zu bettigen. Es erfolgt dann die Frage, ob Tabelle als Standard benutzt und sofort geladen werden soll.

killall
Paket: psmisc

Prozess beenden
Prozessverwaltung

killall [Optionen] Programmname [Programmname ...] Das Programm hat eine hnliche Aufgabe wie das Programm kill mit dem Unterschied, dass ihm nicht die Prozess-IDs der Prozesse, an die Signale geschickt werden sollen, bergeben werden, sondern dass der Name der betreffenden Programme angegeben werden muss. Weil der Name eines Programms nicht eindeutig einen Prozess speziziert (es knnen ja auch mehrere gleichzeitig laufen), sendet das Programm das angegebene Signal an alle Prozesse mit den mit Programmname angegebenen Namen. Genauso wie kill benutzt killall das Signal SIGTERM, das Prozesse dazu bringt, sich zu beenden. -Signal Es wird das mit Signal angegebene Signal bermittelt. Signale knnen mit ihrem Namen (ohne SIG) oder mit ihrer Nummer angegeben werden. -i Bevor ein Signal an einen Prozess bermittelt wird, wird nachgefragt, ob dies tatschlich geschehen soll. -l Alle dem Programm bekannten Signalnamen werden ausgegeben. -q Es wird keine Fehlermeldung ausgegeben, wenn kein passender Prozess gefunden wurde. killall wine Sendet an alle Prozesse, deren Programmname wine lautet, das Signal SIGTERM (Beendigung). killall -9 gnuchessx "Ttet" alle Prozesse, deren Programmname gnuchessx lautet, sofort und ohne ihnen Gelegenheit zur selbststndigen Beendigung zu geben. Siehe auch: kill, ps, top.

816

19 Kommandobersicht

ldcong
Paket: ldso

DLL-Konguration aktualisieren
Systemverwaltung

ldconfig [Optionen] [Verzeichnis | Datei] Das Programm aktualisiert die Information des Systems darber, welche dynamischen Bibliotheken (DLLs) zur Verfgung stehen. Dazu liest es zum einen die Kongurationsdatei /etc/ld.so.conf, in der Verzeichnisse mit systemweit verfgbaren Bibliotheken eingetragen sind und untersucht den Inhalt dieser Verzeichnisse sowie den der Verzeichnisse /lib und /usr/lib. Das Programm sollte immer dann ausgefhrt werden, wenn allgemein zugngliche DLLs dem System hinzugefgt, entfernt oder aktualisiert worden sind. Wird dem Programm der Name eines Verzeichnisses als Argument bergeben, dann werden DLLs in diesem Verzeichnis der Konguration hinzugefgt. Wenn der Dateiname einer Bibliothek angegeben wird, wird nur diese Bibliothek der Konguration hinzugefgt. -v Zeigt die Namen aller Verzeichnisse sowie alle erzeugten symbolischen Links an. -q Alle Warnungen werden unterdrckt. -f Datei Es wird die mit Datei bezeichnete Datei an Stelle der normalerweise benutzten Kongurationsdatei /etc/ld.so.conf verwendet. -p Die Konguration wird nicht verndert. Es wird die aktuelle Konguration ausgegeben. Siehe auch: ldd.

ldd
Paket: ldso

DLL-Abhngigkeiten ausgeben
Information

ldd [Optionen] DLL | Programm Das Programm ldd zeigt an, welche dynamischen Bibliotheken (DLLs) von dem mit Programm angegebenen Programm oder der mit Bibliothek angegebenen Bibliothek bentigt werden, um ausgefhrt werden zu knnen bzw. funktionsfhig zu sein. Wenn die bentigten Bibliotheken auf dem System vorhanden sind, wird zustzlich ausgegeben, welche Dateien im Falle der Ausfhrung des angegebenen Programms oder des Ladens der angegebenen Bibliothek benutzt werden wrden, um Programm oder Bibliothek funktionsfhig zu machen. Dadurch lsst sich beispielsweise schnell erkennen, welche Bibliotheken nachinstalliert werden mssen, wenn ein selbstinstalliertes Programm nicht laufen will. Siehe auch: ldcong.

less
Paket: less

Textdatei seitenweise anzeigen


Information, Textverarbeitung

less [Optionen] [Datei ...] Das Programm stellt eine Alternative zu dem Programm more dar und erlaubt ebenfalls, Textdateien bildschirmweise zu betrachten. less bietet gegenber more mehr

19.2 Kommandos

817

Funktionalitt und hat gegenber Texteditoren den Vorteil, dass es Dateien schneller ldt und startet. Die Benutzung von less ist in Kapitel 5.19.2, S. 151 beschrieben. Standardmig zeigt das Programm eine oder mehrere mit Datei angegebene Dateien an oder liest von der Standardeingabe, wenn keine Dateien angegeben worden sind. less wird mit der Taste Q beendet. -C Der Text wird nicht gescrollt, sondern der Bildschirm wird beim Anzeigen neuer Zeilen gelscht und neu gezeichnet. -E Bewirkt, dass less sich automatisch beendet, wenn das Ende einer Datei erreicht wird. -i Beim Suchen wird nicht zwischen Gro- und Kleinschreibung unterschieden. -p Suchbegriff Weist less an, den Teil der Datei zuerst anzuzeigen, in dem der mit Suchbegriff angegebene Suchbegriff das erste Mal vorkommt. -s Mehrere leere Zeilen hintereinander werden als eine Zeile dargestellt. -X Verhindert, dass das Terminal beim Start und bei der Beendigung von less initialisiert und deinitialisiert wird. Dadurch wird erreicht, dass der zuletzt im Terminal angezeigte Text auch nach der Beendigung des Programms sichtbar ist. -z Anzahl Legt fest, wieviele Zeilen neuen Textes nach Bettigung der L EERTaste angezeigt werden sollen. Der Standardwert entspricht der Anzahl Zeilen, die auf den Bildschirm passen. less README Zeigt die Datei README an. ls -laR | less -X Zeigt die Ausgabe des Kommandos ls -laR an und initialisiert das Terminal beim Start und bei der Beendigung des Programms nicht. Siehe auch: more, vi, zless.

lesskey
Paket: less

Tastaturbelegung von less ndern


Verschiedenes

lesskey [-o Ausgabe] Eingabe Die Tastaturbelegung des Programms less ist vollstndig kongurierbar. Nach dem Start sucht less nach einer Datei mit dem Namen .lesskey im Home-Verzeichnis des Benutzer und liest aus dieser die Konguration der Tastaturbelegung. Wenn die Datei nicht gefunden wird, verwendet less die Standardbelegung. Die Kongurationsdatei wird in einem speziellen binren Format von less erwartet. lesskey dient dazu, aus einer Textdatei, deren Format in der Manual-Seite zu dem Programm beschrieben ist, eine solche Kongurationsdatei zu erstellen. Siehe auch: less.

lilo
Paket: lilo

LILO installieren
Installation, Systemverwaltung

lilo [Optionen] Das Programm installiert den Linux-Loader LILO entsprechend der Konguration in der Datei /etc/lilo.conf. Es muss jedesmal ausgefhrt werden, wenn diese Datei

818

19 Kommandobersicht

gendert oder ein neuer Kern installiert wurde. Im Fall einer Kerninstallation mit dpkg wird lilo normalerweise nach Nachfrage automatisch ausgefhrt. Die Konguration von lilo ist in Kapitel 10.3, S. 351 beschrieben. -C Datei Es wird die mit Datei angegebene Kongurationsdatei an Stelle der Standard-Kongurationsdatei /etc/lilo.conf benutzt. -v Bringt lilo dazu, anzuzeigen, was das Programm tut. Die Option kann auch mehrmals verwendet werden, um die Menge der auszugebenden Informationen zu erhhen. -t Fhrt keine Installation des Loaders durch und testet lediglich die Konguration. Nur sinnvoll mit der Option -v. -r Verzeichnis Lsst lilo alle Aktionen ausgehend von dem mit Verzeichnis angegebenen Verzeichnis ausfhren (siehe chroot). Die Option ist hilfreich, um die Bootkonguration des Systems von einem Diskettensystem aus zu reparieren. -s Datei Legt eine Sicherungskopie des Bootsektors in der mit Datei spezizierten Datei an. Standardmig wird eine Sicherungsdatei mit dem Namen /boot/boot.NNN angelegt, wobei NNN der internen Gertenummer des Datentrgers abhngt, auf dem LILO installiert wird. Die Sicherungskopie wird jedoch normalerweise nicht berschrieben. Das hat den Vorteil, dass der Bootsektor so, wie er vor dem ersten Aufruf von lilo war, erhalten bleibt. Der Nachteil ist, dass standardmig keine Sicherungskopien von spter erzeugten Bootsektoren angelegt werden. -u Gertedatei Kopiert die Sicherungskopie des Bootsektors zurck auf die durch die mit Gertedatei angegebene Gertedatei. lilo Installiert LILO entsprechend der Konguration in /etc/lilo.conf. lilo -C /mnt/etc/lilo.conf -r /mnt Installiert LILO entsprechend der Konguration in der Datei /mnt/etc/lilo.conf. Dabei sieht es fr lilo so aus, als sei /mnt/ das Wurzelverzeichnis des Dateisystems. Ntzlich, wenn das System von Diskette gebootet wurde und die Partition, von der normalerweise gebootet wird, nach /mnt gemountet wurde. lilo -s /root/mbr.backup /dev/hda Schreibt die Sicherungskopie des Bootsektors in der Datei /root/mbr.backup zurck in den Bootsektor der durch /dev/hda reprsentierten Festplatte (erste (E)IDEFestplatte). lilo -v -v -t Zeigt an, was einer einer Installation von LILO entsprechend der Konguration in der Datei /etc/lilo.conf passieren wrde. Siehe auch: lilocong, Kapitel 10.3, S. 351.

ln
Paket: leutils

Links (Verweise) erzeugen


Dateiverwaltung

ln [Optionen] Quelldatei | Quellverzeichnis Ziel

19.2 Kommandos

819

Erzeugt einen Verweis (Link) auf die mit Quelldatei bezeichnete Datei oder das mit Quellverzeichnis bezeichnete Verzeichnis mit dem Namen Ziel. Wird als Ziel ein Verzeichnis angegeben, wird der neue Verzeichniseintrag in dem mit Zielverzeichnis bezeichneten Verzeichnis angelegt und erhlt den gleichen Namen wie Quelldatei. Falls die mit Zieldatei bezeichnete Datei bereits existiert, wird sie berschrieben. ln [Optionen] Quelldatei | Quellverzeichnis [ Quelldatei | Quellverzeichnis ... ] Zielverzeichnis Erzeugt Verweise auf alle mit Quelldatei oder Quellverzeichnis bezeichneten Dateien und Verzeichnisse. Auch hier werden bereits existierende Dateien mit den gleichen Namen berschrieben. Standardmig erzeugt ln Hardlinks (zustzliche Verzeichniseintrge) auf die Quelldateien. Dabei bestehen folgende Einschrnkungen: Quell- und Zieldatei mssen sich im selben Dateisystem benden. Unter Linux ist es nicht erlaubt, Hardlinks auf Verzeichnisse anzulegen. Diese Einschrnkungen gelten nicht fr symbolische Links. -s | - -symbolic Es werden symbolische Links erzeugt. -b | - -backup Bevor Dateien berschrieben werden, wird von ihnen eine Sicherungskopie erstellt. Diese hat standardmig den gleichen Namen wie das Original mit einer angehngten Tilde (~). -S Endung | - -suffix=Endung Zusammen mit der Option -b erhalten Sicherungskopien anstatt der Tilde die Endung Endung. -i | - -interactive Bevor Dateien berschrieben werden, wird nachgefragt, ob dies wirklich geschehen soll. -v | - -verbose Der Name jeder Datei, auf die ein Verweis erzeugt wird, wird ausgegeben. -n | - -no-dereference Wenn als Zielverzeichnis ein symbolischer Link auf ein Verzeichnis angegeben wird, wird der Link normalerweise in dem Verzeichnis erstellt, auf das der Zielverzeichnis-Link zeigt. Bei Benutzung dieser Option wird der Ziellink zunchst gelscht und ein Link mit dessen Namen auf die Quelldatei erzeugt. ln -s /usr/share/common-licenses/GPL ./ Erzeugt einen symbolischen Link auf die Datei /usr/share/common-licenses/GPL im Arbeitsverzeichnis. ln *jpg graphics/jpegs Erzeugt zustzliche Verzeichniseintrge aller Dateien mit der Endung jpg im Verzeichnis graphics/jpegs. Das Verzeichnis graphics/jpeg muss existieren. Siehe auch: cp, mv.

locate
Paket: ndutils

Datei suchen und nden


Dateiverwaltung

locate [Optionen] Suchbegriff

820

19 Kommandobersicht

Das Kommando locate stellt eine Alternative zum Kommando nd beim Suchen von Dateien dar. locate durchsucht nicht das Dateisystem nach Dateinamen, sondern benutzt eine Datenbank mit den auf dem System vorhandenen Dateien. Die Datenbank wird durch das Programm updatedb erstellt und gepegt. Aus diesem Grund ist locate zum einen wesentlich schneller als nd, zum anderen jedoch eventuell ungenauer, da die Informationen der Datenbank nicht immer richtig sein mssen. locate durchsucht die Datenbank nach Dateinamen, auf die der mit Suchbegriff angegebene Suchbegriff zutrifft und gibt die gefundenen Namen aus. Der Suchbegriff darf Metazeichen ([], ?, *) enthalten, die in der Regel durch Anfhrungszeichen vor der Interpretation durch die Shell zu schtzen sind. Wenn der Suchbegriff Metazeichen enthlt, werden nur die Eintrge der Datenbank ausgegeben, die exakt mit dem Suchbegriff bereinstimmen. Enthlt der Suchbegriff keine Metazeichen, werden alle Eintrge ausgegeben, in denen die Zeichenfolge des Suchbegriffs vorkommt. -e | - -existing Es werden nur die Namen der Dateien ausgegeben, die tatschlich existieren. locate GPL Gibt die Namen aller Dateien in der Datenbank aus, die die Zeichenfolge GPL enthalten. locate -e /usr/share/doc/*/README.txt Gibt die Namen aller Dateien in der Datenbank aus, die in einem Unterverzeichnis des Verzeichnisses /usr/share/doc liegen und den Namen README.txt tragen. Dabei wird fr jeden Eintrag der Datenbank berprft, ob die Datei tatschlich existiert. Siehe auch: nd, updatedb, Abschnitt 5.18.6, S. 149.

logger
Paket: bsdutils

Eintrag in der System-Protokolldatei erzeugen


Systemverwaltung

logger [Optionen] [Meldung ...] Das Programm gibt die mit Meldung angegebene Meldung an das SystemProtokollprogramm syslogd weiter, das diese dann entsprechend seiner Konguration in der System-Protokolldatei /var/log/syslog protokolliert. Wenn keine Meldung angegeben wird, liest das Programm von der Standardeingabe. -f Datei Der Inhalt der mit Datei angegebenen Datei wird protokolliert. -s Datei Die Meldung wird sowohl protokolliert als auch auf die Standardfehlerausgabe gegeben. -t Bezeichnung Die Eintrge in der Protokolldatei erhalten die mit Bezeichnung angegebene Bezeichnung. -p Prioritt Das Protokollsystem kennt verschiedene Priorittsklassen und kann fr Meldungen unterschiedlicher Prioritten unterschiedliche Aktionen auslsen. Diese Option bestimmt, die mit Prioritt angegebene Prioritt zu verwenden. Die Priorittstypen lassen sich in der Manual-Seite zu dem Programm nachlesen. logger -t Mitteilung Nichts los hier

19.2 Kommandos

821

Protokolliert die Meldung Nichts los hier unter der Bezeichnung Mitteilung in der System-Protokolldatei. du -hs /var/log/syslog | logger Protokolliert die Gre der Datei /var/log/syslog (das ist die allgemeine Protokolldatei). Siehe auch: syslogd, /var/log/syslog.

login
Paket: login

Sitzung erffnen
Prozessverwaltung

login [Benutzername] [Umgebungsvariable=Wert] Das Programm login wird whrend der Anmeldung an das System zu Beginn einer Sitzung aufgerufen. Es fragt den Benutzer nach Benutzernamen und Passwort und bereitet die Sitzung vor, indem es Benutzer- und Gruppen-ID richtig einstellt, die Umgebungsvariablen HOME, SHELL, PATH und LOGNAME setzt, den Inhalt der Datei /etc/motd ausgibt und den Status der Mailwarteschlange des Benutzers anzeigt. Zum Schluss wird geprft, ob das Passwort des Benutzers erneuert werden muss und dann die Login-Shell des Benutzers gestartet. Es ist mglich, whrend der Anmeldung hinter den Benutzernamen die Bezeichnungen von Umgebungsvariablen und ihren Wert zu setzen. Diese werden wie angegeben vor dem Start der Login-Shell gesetzt. Die Umgebungsvariablen werden durch Leerzeichen voneinander und vom Benutzernamen getrennt. login karl KARL=MUELLER Startet eine neue Sitzung des Benutzers karl und setzt den Wert der Umgebungsvariable KARL auf MUELLER. Nach Eingabe des Kommandos ist in der Regel das Passwort zu dem Benutzerkonto des Benutzers karl einzugeben. Siehe auch: su.

lp
Paket: lprng

Drucken (Druckauftrag erzeugen


Drucken

lp [Optionen] [Datei ...] Das Kommando stellt neben dem Kommando lpr eine Alternative dar, Dokumente ber das Druck- und Spoolsystem lprng auszudrucken. Das Kommando lp steht aus Kompatibilittsgrnden zur Verfgung, damit Programme, die dieses Kommando zum Drucken verwenden, drucken knnen. Zum manuellen Drucken von Dokumenten sollte das Kommando lpr benutzt werden. Siehe auch: lpr.

lpq
Paket: lprng

Druckwarteschlange anzeigen
Drucken

lpq [Optionen] [Auftrags-ID] Das Kommando gibt den Status einer Druckwarteschlange aus und zeigt alle darin wartenden Auftrge an. Werden mit Auf trags-ID eine oder mehrere Auftrags-IDs

822

19 Kommandobersicht

angegeben, werden nur die Auftrge mit diesen Identikationsnummern angezeigt. Ohne Optionen wird der Inhalt der Warteschlange des Standarddruckers angezeigt. -P Drucker Zeigt den Inhalt der Warteschlange des mit Drucker bezeichneten Druckers an. -a Zeigt den Inhalt der Warteschlangen aller Drucker an. -s Zeigt nur eine bersicht ber den Status der Warteschlange an. -l Erhht die Menge der ausgegebenen Informationen. Wird die Option mehrmals angegeben, wird die Menge weiter erhht. -t Zeit Wiederholt die Ausgabe immer wieder nach Ablauf der mit Zeit angegebenen Anzahl von Sekunden. lpq -as -t5 Zeigt alle 5 Sekunden eine Statuszeile fr alle Drucker an. lpq -P colorprinter Zeigt den Inhalt der Warteschlange des Druckers colorprinter an. Siehe auch: lpr, lprm.

lpr
Paket: lprng

Druckauftrag erzeugen
Drucken

lpr [Optionen] [Datei ...] Das Kommando reiht neue Druckauftrge in eine Druckwarteschlange ein. Wenn mit Datei nicht eine oder mehrere Dateien angegeben sind, werden die zu druckenden Daten von der Standardeingabe gelesen. Das Drucksystem ist in Kapitel 9.2.5, S. 287 beschrieben. -C Prioritt Legt mit Prioritt die Prioritt des Auftrages fest. Mgliche Werte sind die Buchstaben A bis Z, wobei A die niedrigste Prioritt reprsentiert. Der Wert A ist der Standardwert. -h Unterdrckt den Druck einer Startseite mit Auftragsinformationen (eines Banners). -K Anzahl Gibt mit Anzahl die Anzahl der zu druckenden Kopien an. -m Adresse Bewirkt, dass nach dem erfolgreichen Ausdruck des Auftrages eine Mail an die mit Adresse angegebene Adresse geschickt wird. -P Drucker Der Auftrag wird an den mit Drucker spezizierten Drucker geschickt. ls -la | lpr Druckt die Ausgabe des Kommandos ls -la auf den Standarddrucker. lpr bild.jpg -P colorprinter Druckt die Datei bild.jpg auf dem Drucker mit dem Namen colorprinter aus. lpr -K 15 preise.ps Druckt 15 Kopien der Datei preise.ps auf dem Standarddrucker aus. Siehe auch: lpq, lprm.

19.2 Kommandos

823

lprm
Paket: lprng

Druckauftrag lschen
Drucken

lprm [Optionen] [Auftrags-ID ... | all] lprm lscht Druckauftrge aus der Druckerwarteschlange. Wird das Programm ohne Parameter aufgerufen, wird der als nchstes zu druckende Auftrag des aufrufenden Benutzers gelscht. Alternativ knnen eine oder mehrere Auftrags-IDs angegeben werden. Die Auftrag-IDs lassen sich mit dem Kommando lpq erhalten. Fr Auf tragsID kann auch ein Benutzername angegeben werden, dann werden alle Auftrge des Benutzers gelscht, vorrausgesetzt der aufrufende Benutzer hat die Rechte dazu. Auerdem ist es mglich, Namen mit oder ohne Metazeichen anzugeben, dann werden die Auftrge mit den entsprechenden Namen gelscht. Durch Spezikation des Parameters all werden alle Auftrge des aufrufenden Benutzers gelscht, wenn das Kommando von einem gewhnlichen Benutzer eingegeben wurde, oder alle Auftrge berhaupt, falls das Kommando vom Verwalter aufgerufen wird. Das Kommando bezieht sich standardmig nur auf die Warteschlange des Standarddruckers. -P Drucker Die Auftrge werden von der mit Drucker angegebenen Warteschlange entfernt. Ohne die Option werden die Auftrge aus der Standardwarteschlange entfernt. -a Die Auftrge werden aus allen Druckerwarteschlangen entfernt. lprm 475 Entfernt den Druckauftrag mit der ID 475 aus der Standardwarteschlange. lprm -P laser 475 Entfernt den Auftrag 475 aus der Warteschlange laser. lprm -a all Entfernt alle Druckauftrge des aufrufenden Benutzer aus allen Warteschlangen. Siehe auch: lpq.

ls
Paket: leutils

Verzeichnis auflisten
Dateiverwaltung

ls [Optionen] [Datei | Verzeichnis ...] Das Programm ls dient zum Anzeigen von Dateinamen und Dateiinformationen. Wenn ls ohne Argumente aufgerufen wird, zeigt es die Namen der Dateien im Arbeitsverzeichnis ohne weitere Informationen an. Werden ls mit Datei oder Verzeichnis Datei- oder Verzeichnisnamen bergeben, zeigt es die Namen der angegebenen Dateien und die Namen der Dateien in den angegebenen Verzeichnissen an. -a | - -all Zeigt auch Dateien und Verzeichnisse an, deren Namen mit einem Punkt beginnen (dotles). -A | - -almost-all Zeigt Dateien und Verzeichnisse an, deren Namen mit einem Punkt beginnen, nicht aber die Verzeichnisse . (das betreffende Verzeichnis selbst) und .. (das darberliegende Verzeichnis). -d | - -directory Zeigt nicht die Inhalte von Verzeichnissen, sondern die Verzeichnisse selbst an.

824

19 Kommandobersicht

-R | - -recursive Zeigt die Inhalte von Verzeichnissen und rekursiv den Inhalt aller Unterverzeichnisse an. -s | - -size Zeigt die Gre jeder Datei mit an. -l | - -format=long Zeigt den Typ der Datei, die Rechte, die Anzahl der Verzeichniseintrge (Hardlinks), den Besitzer, die Gruppe, die Gre der Dateien, das Datum der jngsten nderung und den Namen zu jeder Datei an. Die Ausgabe von ls mit dieser Option ist in Kapitel 5.12.4, S. 131 beschrieben. -o Zeigt die gleichen Informationen wie mit der Option -l, nur ohne die Gruppe an. -s | - -sort=size Sortiert die Ausgabe nach der Gre der Dateien. -t | - -sort=time Sortiert die Ausgabe nach dem Datum der jngsten nderung. -X | - -sort=extension Sortiert die Dateien nach ihrer Kennung (Namenserweiterung, den Zeichen nach dem letzten Punkt im Namen.) - -color[=auto] Zeigt Verzeichnisse und andere spezielle Dateien farblich abgehoben an. Wird - -color=auto angegeben, erfolgt die farbliche Ausgabe nur dann, wenn auf ein Terminal ausgegeben wird. -F | - -classify Hinter jede Datei wird ein Buchstabe geschrieben, der angibt, von welchem Typ die entsprechende Datei ist. (Ausfhrbare Dateien erhalten einen Stern, Verzeichnisse einen Schrgstrich, symbolische Links das @Zeichen usw.). -k | - -kilobytes Dateigren werden in Kilobyte angezeigt. ls -la Zeigt alle Dateien im Arbeitsverzeichnis mit allen Zusatzinformationen an. ls -la | less Zeigt alle Dateien im Arbeitsverzeichnis mit allen Zusatzinformationen mit dem Textbetrachter less an. ls -ld /usr/src Zeigt das Verzeichnis /usr/src und nicht seinen Inhalt mit allen Zusatzinformationen an. Siehe auch: less, dir.

lsattr
Paket: e2fsprogs

Dateiattribute auf Ext2-Dateisystem anzeigen


Dateiverwaltung

lsattr [Optionen] [Datei ...] Das Ext2-Dateisystem kann zu jeder Datei zustzliche Attribute speichern, die bestimmen, wie mit der Datei in bestimmten Situationen umgegangen werden soll. Die Attribute sind bei dem Kommando chattr beschrieben. Das Kommando lsattr listet die Attribute der Dateien im Arbeitsverzeichnis auf, wenn mit Datei nichts anderes angegeben ist. Ansonsten werden die Attribute der mit Datei angegebenen Datei(en) aufgelistet. Wenn mit Datei der Name eines Verzeichnisses angegeben wurde, werden die Attribute der Dateien in diesem Verzeichnis aufgelistet.

19.2 Kommandos

825

-R Zeigt die Attribute aller Dateien im Arbeitsverzeichnis oder in den mit Datei angegebenen Verzeichniss(en) rekursiv mit den Dateien in allen Unterverzeichnissen an. -d Zeigt die Attribute von Verzeichnissen und nicht den Inhalt der Verzeichnisse an. -a Zeigt auch die Attribute solcher Dateien an, deren Name mit einem Punkt beginnt. lsattr -R Zeigt die Dateien und ihre Attribute im Arbeitsverzeichnis und in allen Unterverzeichnissen rekursiv an. Siehe auch: ls, chattr.

lsdev
Paket: sysutils

Belegte Hardware-Ressourcen auflisten


Information, Installation

lsdev Das Programm listet alle Hardwarekomponenten auf, die eine IO-Adresse, einen Interrupt oder einen DMA-Kanal benutzen, mit der Angabe, welche der Ressourcen von dem Gert gebraucht wird. lsdev bietet so eine schnelle Mglichkeit, sich einen berblick ber die in einem Rechner installierte Hardware zu verschaffen. Nur solche Komponenten werden aufgelistet, die auch von Linux erkannt und in das System eingebunden worden sind. Siehe auch: procinfo.

lsmod
Paket: modutils

Geladene Module anzeigen


Information, Systemverwaltung

lsmod Das Kommando listet die zur Zeit im Kern bendlichen Module auf. Neben den Modulnamen werden die Anzahl der Prozesse und die Module, die das betreffende Modul benutzen, ausgegeben. Siehe auch: insmod, modprobe, modconf, rmmod, fuser.

mail
Paket: mailx

Email anzeigen, bearbeiten und versenden


Email, Shellskripte

mail [Optionen] [Email-Adresse ...] Das Programm mail aus dem Paket mailx ist ein alter, einfacher, aber vollwertiger Mail-User-Agent (MUA), ein Programm zum Lesen und Schreiben von Mails. Wenn das Programm ohne Angabe von Parametern gestartet wird, zeigt es den Inhalt der Mail-Warteschlange des aufrufenden Benutzers an und bietet die Mglichkeit, die Mails zu lesen, zu beantworten und zu speichern. Die angezeigten Mails werden nach dem Verlassen des Programms standardmig in der Datei mbox im HomeVerzeichnis des aufrufenden Benutzers gespeichert. Dieser Teil des Programms ist in der Manual-Seite ausfhrlich beschrieben, bietet jedoch wenig Komfort, sodass

826

19 Kommandobersicht

sich zum interaktiven Lesen und Bearbeiten von Mails oft der Einsatz anderer Programme empehlt. mail eignet sich jedoch gut zum Versenden von Mails von der Kommandozeile oder aus Shellskripten. Wenn das Programm mit der Angabe einer Email-Adresse aufgerufen wird, sendet es eine Mail an die angegebene Adresse. Standardmig wird dann nach einer Betreff-Zeile (Subject) fr die zu sendende Mail gefragt. Danach kann der Text der Mail eingegeben werden. Dieser Vorgang wird durch das Tastaturkommando S TRG - D beendet. Zum Schluss besteht die Mglichkeit, Empfnger von Kopien der erzeugten Mail anzugeben (cc:). Die Angaben von Betreff-Zeile und Kopien sind optional. Wenn mehrere Mail-Adressen angegeben werden, versendet das Programm die erzeugte Mail an alle angegebenen Empfnger. Ganz ohne Benutzereinwirkung kann mail Mails versenden, wenn ihm Daten von der Standardeingabe bergeben werden. Es sendet dann die Daten an den angegebenen Empfnger und fragt nicht nach Betreff-Zeile oder Kopie-Adressen (wird in Shellskripts verwendet). -s Betreff Gibt mit Betreff den Inhalt von Betreff-Zeilen fr eine zu erzeugende Mail an. Wenn Betreff Leerzeilen enthlt, muss dieses Argument gewhnlich durch Anfhrungszeichen vor der Zerlegung in mehrere Argumente durch die Shell geschtzt werden. -c Liste Es werden Kopien an die mit Liste angegebenen Empfnger gesandt. Liste ist eine Komma-separierte Liste von Email-Adressen, die keine Leerzeichen enthalten darf. ls -la /home/dirk | mail -s "Dein Home-Verzeichnis" dirk Sendet die Ausgabe des Kommandos ls -la /home/dirk an die Adresse dirk mit der Betreff-Zeile Dein Home-Verzeichnis. Siehe auch: elm, mailx, mutt.

man
Paket: man-db

Manual-Seite anzeigen und drucken


Dokumentation, Information

man [Optionen] [Abschnitt] Manual-Seite Das man-System stellt eine der drei Sulen des Hilfesystems unter Debian GNU/Linux dar. Zu den meisten Programmen, Systemaufrufen und vielen Dateien oder Bibliotheksfunktionen existieren Manual-Seiten (Man-Pages), die sich mit dem Kommando man anzeigen oder ausdrucken lassen. Diese Seiten tragen in der Regel die gleichen Namen wie das zugehrige Programm, die Datei oder die Funktion selbst. Das Manual-System ist in Kapitel 6.2, S. 156 beschrieben. Standardmig werden Manualseiten mit dem Standardtextbetrachter (Pager), gewhnlich dem Programm less oder dem in der Umgebungsvariable PAGER festgelegten Programm angezeigt. Das Manual-System ist in verschiedene Abschnitte eingeteilt. Teilweise gibt es Manual-Seiten mit dem gleichen Namen in verschiedenen Abschnitten, weil ein Programm und ein Systemaufruf oder eine Datei den gleichen Namen tragen. Standardmig zeigt man nur die erste gefundene Seite an. Durch Angabe des Parameters Abschnitt wird bestimmt, in welchem Abschnitt gesucht werden soll.

19.2 Kommandos

827

Mit dem Parameter Manual-Seite wird der Name der Seite angegeben, die angezeigt werden soll. -L Sprache | - -locale=Sprache Wenn Manual-Seiten in verschiedenen Sprachen existieren, wird die Seite in der mit Sprache angegebenen Sprache angezeigt. Die Einstellung, welche Sprache fr Manualseiten standardmig verwendet werden soll, kann ber die Umgebungsvariablen LANG festgelegt werden. -P Programm | - -pager=Programm Bestimmt, dass man das mit Programm bezeichnete Programm als Anzeigeprogramm verwenden soll. -a | - -all Bestimmt, dass alle passenden Seiten aus allen Abschnitten hintereinander angezeigt werden. -TTyp | - -troff-device=Typ Die Manualseiten werden in dem mit Typ angegebenen Format auf die Standardausgabe ausgegeben. Mgliche Typen sind u. a. ps (PostScript), dvi (Device-Independent), X100 (Anzeige in einem X11Fenster), ascii (ASCII-Text) und lj4 (HP Laserjet 4 (PCL) Format). Die Option kann zum Drucken von Manual-Seiten benutzt werden. Zwischen der Option -T und Typ drfen sich keine Leerzeichen benden. man man Zeigt die Manual-Seite des Programms man mit dem Standardtextbetrachter an. Mit dem Kommando sollte jeder Benutzer anfangen. man ls Zeigt die Manual-Seite des Programms ls mit dem Standardtextbetrachter an. man -p xless mke2fs Zeigt die Manual-Seite des Programms mke2fs mit dem Programm xless an. man 2 open -T ps | lpr Die Manual-Seite der Funktion open im zweiten Abschnitt des Manual-Systems wird im PostScript-Format an das Programm lpr bergegeben, welches die Datei auf dem Standarddrucker ausdruckt. Siehe auch: apropos, whatis, info, less, groff.

mformat
Paket: mtools

DOS-Datentrger fomatieren
Kompatibilitt, Systemverwaltung

mformat [Optionen] DOS-Laufwerksbuchstabe: Das Kommando erzeugt auf dem mit DOS-Laufwerksbuchstabe angegebenen Datentrger (mtools-Laufwerk) ein DOS (FAT) Dateisystem. -t -h -s -2 -l -X -F Anzahl Gibt die Anzahl der Zylinder an. Anzahl Gibt die Anzahl der Schreib-/Lesekpfe an. Anzahl Gibt die Anzahl der Sektoren pro Spur an. Formatiert im 2M-Format. Name Gibt den Datentrgername an. Formatiert im XDF-Format. Formatiert im FAT32-Format (wird von MS-Windows 95b und 98 benutzt).

828

19 Kommandobersicht

mformat a: Formatiert das mtools-Laufwerk a: im DOS-Format. Siehe auch: mkdosfs, mtools, xdfcopy.

mkboot
Paket: debianutils

Bootdiskette erzeugen
Systemverwaltung, Installation

mkboot [- -installkernel] [Kerndatei] Das Programm mkboot erzeugt eine Bootdiskette mit dem durch Kerndatei bezeichneten Linux-Kern. Wenn keine Kerndatei angegeben wird, wird die Kerndatei /boot/vmlinuz benutzt. mkboot formatiert dazu die Diskette im ersten Diskettenlaufwerk /dev/fd0 im Ext2-Dateisystem, kopiert den Kern auf die Diskette und installiert LILO auf der Diskette, sodass von der Diskette mit dem darauf bendlichen Kern gebootet werden kann. Um das Kommando zu verwenden, muss das Paket lilo installiert sein. - -installkernel Macht das System wieder startbar, nachdem ein neuer Kern installiert wurde. Wenn auf dem System LILO benutzt wird, wird lilo ausgefhrt, ansonsten wird eine Bootdiskette mit dem neuen Kern erstellt. Das Programm wird whrend der Installation eines neuen Kerns mit diesem Parameter automatisch aufgerufen. mkboot /boot/vmlinuz.old Erzeugt eine Bootdiskette mit der der Kern in der Datei /boot/vmlinuz.old gebootet werden kann. Siehe auch: lilo, mke2fs, rdev.

mkdir
Paket: leutils

Verzeichnis erzeugen
Dateiverwaltung

mkdir [Optionen] Verzeichnis [Verzeichnis ...] Erzeugt die mit Verzeichnis spezizierten Verzeichnisse. -m Rechte| - -mode=Rechte Erzeugt Verzeichnisse mit den durch Rechte angegebenen Rechten. Rechte werden wie beim Kommando chmod ausgedrckt. Ausgangspunkt ist standardmig drwxr-xr-x, also Schreiben, Lesen und Ausfhren fr den Besitzer, Lesen und Ausfhren fr die Gruppe und andere Benutzer. -p | - -parents Wenn zu erzeugende Verzeichnisse Unterverzeichnisse von Verzeichnissen sind, die noch nicht existieren, werden diese ebenfalls erzeugt. -v | - -verbose Es wird ausgegeben, welche Verzeichnisse erzeugt wurden. mkdir sound_files Im Arbeitsverzeichnis wird das Verzeichnis sound_les angelegt. mkdir -m 700 ~/privat Im Home-Verzeichnis des Benutzers wird das Verzeichnis privat erzeugt, fr das nur der betreffende Benutzer Schreib-, Lese- und Ausfhrungsrechte hat. Andere

19.2 Kommandos

829

Benutzer knnen sich den Inhalt dieses Verzeichnisses nicht anzeigen lassen und auf keine Verzeichnisse oder Dateien in diesem Verzeichnis zugreifen. mkdir -vp briefe/gesch/finanz Erzeugt das Verzeichnis nanz im Verzeichnis gesch im Verzeichnis briefe. Wenn eines dieser Verzeichnisse nicht existiert, wird es ebenfalls erzeugt. Die Namen der erzeugten Verzeichnisse werden ausgegeben. Siehe auch: rmdir, chmod, ls.

mkfs
Paket: util-linux

Datentrger formatieren
Systemverwaltung

mkfs [Optionen] Gertedatei [Gre] Das Programm ist ein Front-End fr Formatierungsprogramme, mit denen Datentrger in verschiedenen Formaten formatiert werden knnen. Es formatiert den durch die mit Gertedatei bezeichneten Datentrger standardmig im LinuxDateisystemformat (ext2-Format). Bis auf die Option -t werden alle Optionen an das aufgerufene Formatierungsprogramm weitergegeben. Durch den optionalen Parameter Gre lsst sich die Gre des zu erzeugenden Dateisystems festlegen. -t Dateisystemtyp Legt den Dateisystemtyp fest, mit dem der Datentrger formatiert werden soll. Gltige Werte sind unter anderen: msdos, ext2 (Voreinstellung) und minix. mkfs -t msdos -c -v /dev/fd0 Ruft das Programm mkfs.dos auf, um den durch die Datei /dev/fd0 reprsentierten Datentrger im DOS-Format zu formatieren. Das Programm mkdosfs wird mit den Optionen -c und -v aufgerufen. Siehe auch: mke2fs, mkdosfs, mkfs.minix.

mkdosfs
Paket: dosfstools

DOS-Dateisystem erzeugen
Systemverwaltung, Kompatibilitt

mkdosfs [Optionen] Gertedatei [Gre] Das Programm formatiert den durch die mit Gertedatei angegebene Gertedatei reprsentierten Datentrger im DOS (FAT-) Format. Dieses Format zu verwenden bietet sich bei Wechselmedien wie Disketten an, die von Betriebssystemen gelesen werden sollen, die das Ext2-Dateisystem nicht untersttzen (z. B. MS-Windows- oder Macintosh-Rechner). Standardmig erzeugt das Programm ein DOS-Dateisystem, das die Gre des angegebenen Datentrgers voll ausnutzt. Durch die Angabe des optionalen Parameters Gre kann die Gre des Dateisystems in 1024 Byte groen Blcken angegeben werden. -c Der Datentrger wird auf fehlerhafte Blcke untersucht, bevor er formatiert wird. -l Datei Es wird eine Liste fehlerhafter Blcke aus der mit Datei angegebenen Datei gelesen. Eine solche Liste kann mit dem Programm badblocks erzeugt werden.

830

19 Kommandobersicht

-I Erzwingt die Formatierung ganzer, also unpartitionierter, nicht-wechselbarer Datentrger. Dieser Parameter ist beispielsweise bei der Formatierung unpartitionierter MO-Disks ntig, die von Linux als fest eingebaute Datentrger angesehen werden und ohne diesen Parameter mit dem Programm nicht formatiert werden knnen. -n Name Legt mit Name den Namen des Dateisystems fest. Name darf aus maximal 11 Buchstaben bestehen. mkdosfs -c -n DISK1 /dev/fd0 Formatiert den Datentrger in dem durch die Datei /dev/fd0 reprsentierten Diskettenlaufwerk im DOS-Dateisystem und fhrt vorher einen Test auf fehlerhafte Blcke durch. Der Name des Datentrgers wird als DISK1 festgelegt. mkdosfs -I /dev/sda Formatiert den gesamten durch /dev/sda reprsentierten Datentrger (erste SCSIFestplatte) in dem DOS-Dateiformat. Achtung: Eine eventuell auf diesem Datentrger vorhandene Partitionierung geht dabei verloren. Siehe auch: dosfsck, fdisk, mke2fs, mformat.

mke2fs
Paket: e2fsprogs

Ext2-Dateisystem erzeugen
Systemverwaltung, Installation

mke2fs [Optionen] Gertedatei [Gre] Das Programm erzeugt ein Ext2- Dateisystem auf dem durch Gertedatei dargestellten Datentrger, es formatiert ihn. Alle Daten auf dem Datentrger gehen verloren. Das ext2-Format ist das Standardformat unter Linux. Es knnen Partitionen oder gesamte Datentrger (beispielsweise Disketten) formatiert werden. Das Programm erlaubt die Angabe einiger Parameter, mit denen fr unterschiedliche Anwendungen optimierte Dateisysteme erzeugt werden knnen. Mit dem optionalen Parameter Gre kann die Gre des zu erzeugenden Dateisystems in Blcken angegeben werden (normalerweise entspricht ein Block 1024 Byte). Standardmig wird die Gre so gewhlt, dass sie den zu formatierenden Datentrger optimal ausfllt. -b Blockgre Das Dateisystem erhlt eine Blockgre von Blockgre Byte. Zur Zeit erlaubte Blockgren sind 1024, 2048 und 4096 Byte. Die Blockgre bestimmt den Platz, den eine Datei mindestens auf der Festplatte verbraucht. Sollen auf dem Datentrger viele kleine Dateien gespeichert werden, sollte man eine kleine Blockgre whlen. Bei berwiegend groen Dateien empehlt sich dagegen eine hhere Blockgre. Der Standardwert ist 1024. -i Bytes-pro-Inode In Inodes werden die Informationen zu einer Datei gespeichert. Mit diesem Parameter wird festgelegt, nach jeweils wieviel Byte ein Inode eingerichtet wird. Standardwert ist 4096. Damit lassen sich auf jeweils 1 MB Festplattenkapazitt 256 Dateien unabhngig von ihrer Gre anlegen. Weil Inodes selbst Platz auf dem Datentrger bentigen, sollte man wenige Inodes anlegen (also einen hohen Wert angeben), wenn auf dem Datentrger beson-

19.2 Kommandos

831

ders groe Dateien gespeichert werden sollen. Auf der anderen Seite werden bei vielen kleinen Dateien mehr Inodes als blich bentigt. -c Bevor das Dateisystem erzeugt wird, wird badblocks aufgerufen und untersucht den Datentrger im Lesemodus nach fehlerhaften Blcken. Weil der Datentrger formatiert werden soll, empehlt es sich u. U., badblocks manuell einen SchreibLese-Test auf dem Datentrger durchfhren zu lassen. -l Dateiname Die Liste fehlerhafter Blcke wird aus der mit Dateiname angegebenen Datei bernommen. Eine solche Datei kann mit dem Programm badblocks erzeugt werden. -m Prozentsatz Gibt an, wieviel Prozent des Speicherplatzes auf dem Datentrger fr den Verwalter reserviert sein sollen. Standard sind 5 %. mke2fs /dev/hda7 Es wird die dritte logische Partition auf der ersten (E)IDE-Festplatte im Ext2-Format formatiert. mke2fs -l badblocks.list -i 16384 -b 4096 -m 2 /dev/sdb2 Die zweite primre Partition auf der zweiten SCSI-Festplatte wird formatiert. Informationen ber fehlerhafte Blcke werden der Datei badblocks.list entnommen. Die Blockgre wird auf 4096 Byte festgelegt. Es wird alle 16384 Byte eine Inode eingerichtet. Fr den Systemverwalter werden 2 % des verfgbaren Platzes reserviert. Diese Einstellungen sind nur sinnvoll, wenn auf dem Datentrger besonders groe Dateien gespeichert werden sollen. Siehe auch: mkfs, badblocks, fdisk, mkdosfs, e2fsck.

mkfo
Paket: leutils

FIFO erzeugen
Shellskripte, Dateiverwaltung

mkfifo [Option] Name [Name ...] Erzeugt ein FIFO mit dem mit Name angegebenen Namen. FIFO steht fr FirstIn-First-Out. Es handelt sich dabei um spezielle Dateien, die eine Form der Kommunikation zwischen verschiedenen Prozessen ermglicht. FIFOs werden auch als Named-Pipes bezeichnet. -m Rechte | - -mode=Rechte Das FIFO wird mit den durch Rechte spezizierten Rechten erzeugt. Standard ist prw-r- -r- -, also Lesen und Schreiben fr den Besitzer und nur Lesen fr allen anderen Benutzer. mkfifo test Erzeugt ein FIFO mit dem Namen test im Arbeitsverzeichnis. Um die Funktion des FIFOs test zu testen, kann folgendes ausprobiert werden: Man meldet sich an zwei virtuellen Konsolen an. An der ersten Konsole ist folgendes Kommando einzugeben: joe@debian:~$ cat - > test An der zweiten Konsole ist folgendes Kommando einzugeben: joe@debian:~$ cat < test

832

19 Kommandobersicht

An der ersten Konsole wird irgendwelcher Text eingegeben (und mit E INGABE abgeschickt). Der Text erscheint automatisch auf der zweiten Konsole. Beide Vorgnge knnen mit S TRG - C abgebrochen werden. Das erste Kommando liest von der Standardeingabe (der virtuellen Konsole) und schreibt auf das FIFO test. Das zweite Kommando liest aus dem FIFO test und schreibt auf die Standardausgabe (der zweiten virtuellen Konsole). Alles was auf der einen Seite in das FIFO eingegeben wird, kommt auf der anderen Seite wieder heraus. Siehe auch: mknod, chmod, mkdir.

mknod
Paket: leutils

Gertedatei oder andere spezielle Datei erzeugen


Systemverwaltung

mknod [Optionen] Name Typ [Hauptnummer] [Unternummer] Das Programm erzeugt eine spezielle Datei mit dem durch Name angegebenen Namen. Die Art der Datei wird durch Typ speziziert. Folgende Typen stehen zur Verfgung: p: Erzeugung eines FIFOs. Mit dieser Typenbezeichnung hat das Kommando die gleiche Funktion wie mkfo. b: Erzeugung einer Blockgertedatei. Blockgertedateien sind beispielsweise die Gertedateien im Verzeichnis /dev/, die Festplatten reprsentieren. c: Erzeugen einer gepufferten Zeichengertedatei. Zeichengertedateien sind solche, die Gerte reprsentieren, auf die nur sequentiell zugegriffen werden kann (z. B. parallele Schnittstellen). u: Erzeugen einer ungepufferter Zeichengertedatei. Bei der Erzeugung von Gertedateien mssen die Major- und Minor-Nummer des Gerts angegeben werden. Eine Liste der von Linux untersttzten Gerte ndet sich in der Datei devices.txt, die im Dokumentationsverzeichnis der Kern-Quellen liegt. Achtung: Fehlende Gertedateien sollten durch das Programm /dev/MAKEDEV erzeugt werden. -m Rechte | - -mode=Rechte Die Datei wird mit den durch Rechte spezizierten Rechten erzeugt. Standard ist rw-r- -r, also Lesen und Schreiben fr den Besitzer und nur Lesen fr allen anderen Benutzer. mknod /dev/sda b 8 0 Erzeugt die Gertedatei /dev/sda neu, wenn diese nicht mehr existiert. Siehe auch: /etc/MAKEDEV, mkfo.

mkswap
Paket: util-linux

Auslagerungsspeicher einrichten
Systemverwaltung

mkswap [Optionen] Datei Gre

19.2 Kommandos

833

Bereitet die mit Datei bezeichnete Partition oder Datei auf die Benutzung als Auslagerungsspeicher durch den Kern vor. Datei wird durch das Kommando swapon eingebunden. Eine Swapdatei wird mit dem Kommando dd erstellt. Folgendes Kommando erstellt eine 128 MB groe Swapdatei mit dem Namen swaple: dd if=/dev/zero of=swapfile bs=1048576 count=128 -c Prft die vorzubereitende Partition auf fehlerhafte Blcke und gibt deren Nummern aus. mkswap swapfile Initialisiert die Datei swaple fr die Verwendung als Auslagerungsdatei mkswap /dev/sda1 Initialisiert die erste primre Partition auf der ersten SCSI-Festplatte zur Verwendung als Auslagerungspartition Siehe auch: swapon, swapoff, cfdisk.

mktemp
Paket: debianutils

Temporre Datei erzeugen


Shellskripte, Dateiverwaltung

mktemp [Optionen] Schablone Wenn in Shellskripten Daten in temporre Dateien geschrieben werden, steht man vor der Frage, welchen Dateinamen man fr diese Dateien whlen soll. Es kommt vor, dass eine Datei mit dem gewhlten Namen auf dem Rechner, wo das Skript einmal ausgefhrt wird, bereits existiert und dann berschrieben wird. Das Programm mktemp erzeugt eine temporre Datei, fr die sichergestellt ist, dass ihr Name noch nicht existiert. Dem Programm wird mit Schablone eine Namensschablone bergeben, die aus einem gewhnlichen Dateinamen mit sechs angehngten groen XBuchstaben besteht. Die X-Buchstaben werden von mktmp durch Zahlen und Buchstaben ersetzt, um einen neuen Namen zu generieren. Das Programm erzeugt die Datei und gibt ihren Namen auf die Standardausgabe aus. -q Wenn die Datei nicht erzeugt werden kann, wird keine Fehlermeldung ausgegeben. Es ist dann der Rckgabewert des Programms auszuwerten (0 Erfolg, 1 Fehler). mktemp Scriptfoo.XXXXXX Legt eine temporre Datei, deren Namen sich aus Scriptfoo. und einer von mktemp erzeugten Zeichenfolge zusammensetzt, im Arbeitsverzeichnis an. mktemp -q /tmp/zwischenXXXXXX Legt eine temporre Datei im Verzeichnis /tmp an. Im Falle eines Fehlers wird keine Fehlermeldung ausgegeben. Siehe auch: temple.

modconf
Paket: modconf

Kernmodul interaktiv kongurieren


Systemverwaltung

modconf [Optionen]

834

19 Kommandobersicht

Das Skript dient zum interaktiven Auswhlen von Modulen, die geladen bzw. entfernt werden sollen. Es zeigt Informationen ber verfgbare Module und untersttzte Parameter an, die whrend des Ladens eines Moduls angegeben werden knnen. Die Benutzung von modconf ist in Kapitel 4.2.9, S. 87 ausfhrlich beschrieben. Mit modconf ausgewhlte Module werden whrend des Systemstarts geladen. Siehe auch: modprobe, insmod, rmmod.

modinfo
Paket: modutils

Information ber Kernmodul ausgegeben


Systemverwaltung, Information

modinfo [Optionen] Moduldatei Das Programm liest Informationen aus dem mit Moduldatei angegebenen Kernmodul. -a Gibt den Autor des betreffenden Moduls aus. -p Gibt aus, welche Parameter das Modul u. U. untersttzt. -d Gibt eine Beschreibung des Moduls aus. modinfo -d /lib/modules/2.2.12/scsi/st.o Gibt eine Beschreibung des Kernmoduls in der angegebenen Datei aus. Siehe auch: modprobe, modconf.

modprobe
Paket: modutils

Kernmodul laden
Systemverwaltung

modprobe [Optionen] Modul [Parameter=Wert ..] Anhand der durch depmod erzeugten Informationen wird berprft, welche Module im Kern vorhanden sein mssen, damit das mit Modul bezeichnete Modul geladen werden kann. Diese Module (und evtl. Module, von denen dieses abhngig ist) werden geladen. Danach wird Modul selbst geladen. Das Kommando bietet gegenber insmod den Vorteil, dass vom Benutzer keine Modulabhngigkeiten beachtet werden mssen. Optional wird den mit Parameter bezeichneten Modulparametern der mit Wert angegebene Wert zugewiesen. Das Programm ist kongurierbar und kann eine Anzahl weiterer Aktionen ausfhren (siehe Kap. 12.4.2, S. 428). modprobe [Optionen] Fhrt durch Optionen spezizierte Aktionen aus: -l Listet die verfgbaren Module auf. -c Gibt die Konguration des Programms aus. -r Modul Entfernt das mit Modul bezeichnete Modul aus dem Kern und alle weiteren Module, die nicht mehr bentigt werden, nachdem Modul entfernt ist. -a Name Ldt alle Module, auf deren Name Name zutrifft. Name darf Metazeichen enthalten, die durch Anfhrungszeichen vor der Shell geschtzt werden mssen. -t Name Bezieht die auszufhrende Aktion nur auf ein mit Name bezeichnetes Modul-Unterverzeichnis. modprobe ppp

19.2 Kommandos

835

Ldt das Modul ppp und alle Module, die von denen dieses abhngt. modprobe aha152x aha152x=0x340,10 Ldt das Modul aha152x und setzt den Modulparameter aha152x auf den Wert 0x340,10. modprobe -r ppp Entfernt das Modul ppp und alle Module, die von diesem Modul bentigt werden aus dem Kern. modprobe -a -t net \* Ldt alle Module aus dem Modul-Unterverzeichnis net und alle dazu bentigten Module in den Kern. Siehe auch: depmod, update-modules, modconf, insmod, rmmod.

more
Paket: util-linux

Textdatei seitenweise anzeigen


Textverarbeitung, Information

more [Optionen] [Datei ...] Das Programm liest Daten von der Standardeingabe oder von einer oder mehreren mit Datei bezeichneten Datei(en) und zeigt sie bildschirmweise an. Der Hauptgrund, der gegen den Einsatz von more spricht ist, dass mit dem Programm less ein Programm fr den gleichen Zweck zur Verfgung steht, das wesentlich mchtiger und komfortabler ist. Die Benutzung von more ist in Kapitel 5.19.1, S. 151 beschrieben. Die wichtigsten Tastaturkommandos fr more sind die L EER-Taste, mit der die nchste Seite angezeigt wird und die E INGABE-Taste, mit der die nchste Zeile angezeigt wird. Das Programm wird ber die Taste Q verlassen. -p Der angezeigte Text wird beim Blttern nicht verschoben, sondern der Bildschirm wird jedesmal gelscht und neu mit Text gefllt. -s Mehrere leere Zeilen hintereinander werden durch eine Leerzeile in der Anzeige ersetzt. more brief.txt Zeigt die Datei brief.txt seitenweise im Terminal an. ls -la | more Zeigt die Ausgabe des Kommandos ls -la seitenweise an. Siehe auch: less.

mount
Paket: mount

Datentrger einbinden
Systemverwaltung

mount -a [Optionen] Bindet alle in der Datei /etc/fstab angegebenen Datentrger in das Rootdateisystem ein (mountet alle Datentrger). mount [Optionen] Datentrger Verzeichnis Mountet den durch Datentrger angegebenen Datentrger in das mit Verzeichnis angegebene Verzeichnis.

836

19 Kommandobersicht

Wird mount ohne Parameter angegeben, zeigt es an, welche Datentrger in welches Dateisystem gemountet sind. Wenn mount nur mit einer Datentrgerbezeichnung oder nur mit einem Verzeichnis aufgerufen wird, sucht es einen entsprechenden Eintrag fr den Datentrger oder das Verzeichnis in der Datei /etc/fstab und mountet den Datentrger dann entsprechend dem Eintrag in dieser Datei. Datentrgerbezeichnungen sind gewhnlich Bezeichnungen von Gertedateien, die physikalische Datentrger wie Festplattenpartitionen reprsentieren. Es gibt auch Ausnahmen. Soll beispielsweise ein Verzeichnis, das von einem anderen Rechner (z. B. ber NFS) zur Verfgung gestellt worden ist, gemountet werden, so muss als Datentrger der Name des Rechners und nach einem Doppelpunkt das Verzeichnis auf diesem Rechner angegeben werden. Datentrger drfen gewhnlich nur vom Verwalter gemountet werden. Es besteht die Mglichkeit, in der Datei /etc/fstab zu denieren, dass bestimmte Datentrger auch von gewhnlichen Benutzern eingebunden und wieder entfernt werden drfen. -a Mountet alle in der Datei /etc/fstab angegebenen Dateisysteme. -t Dateisystemtyp Gibt den Typ des Dateisystems (z. B. ext2 oder msdos) mit Dateisystem an. Zusammen mit der Option -a bewirkt diese Option, dass nur die Datentrger mit dem angegebenen Dateisystemtyp gemountet werden. Die Liste der vom Kern untersttzten Dateisystemtypen lsst sich durch folgendes Kommando einsehen: joe@debian:~$ cat /proc/filesystems Dort sind nur die Dateisystemtypen aufgefhrt, die der Kern zum Zeitpunkt der Ausgabe untersttzt. Die Untersttzung fr zustzliche Typen lsst sich eventuell durch das Laden eines entsprechenden Moduls aktivieren. -r Bestimmt, dass auf den Datentrger nur zum Lesen zugegriffen werden darf und sein Inhalt nicht verndert werden kann. -w Bestimmt, dass auf den Datentrger lesend und schreibend zugegriffen werden darf (Standardeinstellung). -o Optionen Gibt zustzliche teilweise dateisystemspezische Optionen zum Mounten des Datentrgers an. Einzelne Optionen werden durch Kommata voneinander getrennt. Zwischen ihnen darf kein Leerzeichen vorkommen. Einige wichtige Optionen werden im folgenden erlutert. Mount-Optionen: async Daten werden asynchron geschrieben. Das heit, es wird erst dann auf den Datentrger geschrieben, wenn das Betriebssystem dies fr sinnvoll hlt, und nicht sofort, nachdem Daten verndert worden sind. sync Sobald auf den Datentrger geschrieben wird, werden die nderungen auch vorgenommen. Dadurch verringert sich die Leistung des Systems u. U. erheblich. dev Gertedateien auf dem Datentrger werden als solche interpretiert. nodev Gertedateien auf dem Datentrger werden nicht als solche interpretiert. exec Dateien auf dem Datentrger drfen als Programme ausgefhrt werden.

19.2 Kommandos

837

noexec Dateien auf dem Datentrger drfen nicht ausgefhrt werden. suid Wenn bei einer ausfhrbaren Datei das SUID-Bit gesetzt ist, zeigt dies Wirkung. Das heit, ausfhrbare Dateien knnen mit einer anderen Benutzer-ID als der des aufrufenden Benutzers ausgefhrt werden. nosuid Ausfhrbare Dateien knnen nur mit der Benutzer-ID des aufrufenden Benutzers ausgefhrt werden. defaults Entspricht den Optionen suid, dev, exec und async. uid=Wert Legt den Besitzer von Dateien und Verzeichnissen auf solchen Dateisystemtypen fest, die diese Werte nicht speichern knnen (z. B. msdos, vfat, iso9660). Es muss die numerische Benutzer-ID angegeben werden. Standardmig wird die Benutzer-ID des Benutzers verwendet, der den Datentrger mountet. gid=Wert Wie uid fr die Gruppenzugehrigkeit von Dateien und Verzeichnissen. mount -a t ext2 Mountet alle in der Datei /etc/fstab aufgefhrten Datentrger, die den Dateisystemtyp ext2 haben. mount /floppy Mountet den Datentrger in das Verzeichnis /oppy, der in der Datei /etc/fstab dafr deniert wurde. mount -t vfat -o uid=1000,gid=1000 /dev/hda1 /dosc Mountet den Datentrger, der durch die Datei /dev/hda1 reprsentiert wird (erste primre Partition auf der ersten (E)IDE-Festplatte) in das Verzeichnis /dosc. Der Datentrger wird als VFAT-Partition (MS-Windows-95-Dateisystem) gemountet. Alle Dateien auf dem Datentrger werden dem Benutzer mit der ID 1000 und der Gruppe mit der gleichen ID zugeordnet. mount -t nfs fileserver:/files/new /dateien/neu Mountet das Verzeichnis /les/new, welches sich auf dem Rechner leserver bendet, in das lokale Verzeichnis dateien/neu. Siehe auch: umount, Kapitel 5.17.2, S. 139.

mswordview
Paket: mswordview

MS-Word-8.0-Datei nach HTML umwandeln


Kompatibilitt

mswordview [Optionen] Dateiname Das Programm formatiert Text, Tabellen und Bilder aus MS-Word 8.0-Dokumenten in das HTML-Format um. Die Dokumente, knnen dann mit einem Web-Browser gelesen werden. Die erzeugten Dateien werden im gleichen Verzeichnis wie die Ausgangsdatei abgelegt. Sie erhalten den gleichen Namen. Das erzeugte zentrale HTMLDokument erhlt die zustzliche Endung .html. Bilder und einige andere Textdokumente werden in eigenen Dateien im selben Verzeichnis abgelegt. Das Programm versteht eine groe Anzahl von Optionen, die jedoch nur selten bentigt werden. Siehe auch: word2x, catdoc, wine.

838

19 Kommandobersicht

mt
Paket: cpio

Bandlaufwerk steuern
Systemverwaltung, Backup

mt [Optionen] Operation [Anzahl] Das Programm mt wird zur Benutzung von Bandlaufwerken benutzt. Mit ihm ist es u. a. mglich, Bnder zu spulen und Einstellungen des Bandlaufwerks zu verndern. Standardmig verwendet mt das durch die Gertedatei /dev/tape reprsentierte Bandlaufwerk oder das mit der Umgebungsvariable TAPE denierte. Nicht jede Operation wird von jedem Bandlaufwerk untersttzt. Insbesondere untersttzen Nicht-SCSI-Gerte viele Operationen nicht. -f [[Benutzer@]Rechner:]Gertedatei Bestimmt, das durch die mit Gertedatei angegebene Gertedatei reprsentierte Bandlaufwerk zu verwenden. Ist Gertedatei der Name eines Rechners vorangestellt, wird die Gertedatei auf diesem Rechner benutzt. Dem Rechnernamen kann der Name eines Benutzers vorangestellt sein. Dadurch wird bewirkt, dass der Zugriff auf den fernen Rechner unter dem mit Benutzer angegebenen Benutzernamen erfolgt. mt verwendet zum Zugriff auf fremde Rechner rsh oder ssh. - -rsh-command=Programm Bewirkt, dass mt beim Zugriff auf fremde Rechner das mit Programm angegebene Programm benutzt. Operationen: rewind Das Band wird zurckgespult. eom Das Band wird an das Ende der darauf bereits vorhandenen Daten gespult. fsf Zahl Das Band wird um die mit Zahl angegebene Anzahl Dateimarken vorgespult. bsf Zahl Das Band wird um die mit Zahl angegebene Anzahl Dateimarken zurckgespult. offline Das Band wird zurckgespult und ausgegeben, falls dies vom Laufwerk untersttzt wird. retension Das Band wird zurckgespult, dann vorgespult und dann wieder zurckgespult. status Gibt Statusinformationen ber das Band und das Laufwerk aus. mt -f /dev/st0 status Gibt den Status des durch die Gertedatei /dev/st0 reprsentierten Bandlaufwerks aus. mt -f backup@backupserver:/dev/tape3 fsf 2 Spult das durch die Gertedatei /dev/tape3 reprsentierte Bandlaufwerk zwei Dateimarken weiter. Das Laufwerk ist an den Rechner backupserver angeschlossen, auf den mit dem Benutzername backup zugegriffen wird. Siehe auch: tar, cpio.

mtools
Paket: mtools

Dateien auf DOS-Datentrger verwalten


Dateiverwaltung, Kompatibilitt

Bei mtools handelt es sich um eine Sammlung von Programmen, die mehrere Kom-

19.2 Kommandos

839

mandos zum Zugriff auf DOS/MS-Windows-formatierte Datentrger beinhaltet. Der Vorteil dieser Kommandos gegenber dem normalen Verfahren besteht darin, dass die Datentrger nicht gemountet werden mssen, sondern direkt auf sie zugegriffen werden kann. Die durch mtools verfgbaren Kommandos haben in der Regel die gleichen Namen wie die entsprechenden Kommandos unter DOS, nur dass ihnen jeweils ein m vorangestellt ist (also mcopy anstatt von copy). Die mtools stellen einen bequemen Weg dar, auf wechselbare Datentrger (Disketten, Zip-Medien etc.) zuzugreifen, die im DOS/MS-Windows-Format formatiert sind, ohne diese Datentrger zu mounten. Es ist sogar mglich, mit mtools auf die Festplattenabbilddateien von DOSemu zuzugreifen. Andererseits sollten diese Werkzeuge nicht als Ersatz fr die normalen Linux/UNIX-Kommandos verstanden werden. Um alles hnlich wie unter DOS aussehen zu lassen, werden fr die Datentrger, auf die mit den mtools zugegriffen werden kann, in der Datei /etc/mtools.conf Laufwerksbuchstaben deniert, ber die Dateien auf diesen Datentrgern angesprochen werden. Standardmig sind dort bereits Denitionen fr Diskettenlaufwerke (A: und B:) vorhanden sowie einige weitere Eintrge, vor denen das Kommentarzeichen entfernt werden muss, bevor sie wirksam werden. Bei der Verwendung der mtools ist zu beachten, dass sie zum einen Linux/UNIXDateinamen verwenden und zum anderen DOS-Dateinamen. Um z. B. die Datei readme.txt von einer DOS-formatierten Diskette in das eigene Home-Verzeichnis zu kopieren, ist folgendes Kommando einzugeben: joe@debian:~$ mcopy a:\readme.txt ~/ Bei dem ersten Parameter a:\readme.txt handelt es sich um einen DOS-Dateinamen mit Laufwerksbuchstaben und Rckwrts-Schrgstrich und bei dem zweiten Parameter um einen Linux/UNIX-Dateinamen. Generell werden Dateinamen als DOSNamen interpretiert, wenn ihnen ein Laufwerksbuchstabe vorangestellt ist. Zur Trennung von Verzeichnissen kann bei DOS-Namen sowohl der RckwrtsSchrgstrich (\) als auch der normale Schrgstrich benutzt werden. Dem RckwrtsSchrgstrich muss ein zweiter vorangestellt werden, weil er normalerweise eine spezielle Bedeutung fr die Shell hat. Einige mtools-Kommandos akzeptieren an bestimmten Stellen nur DOS-Dateinamen. In diesen Fllen reicht auch ein Dateiname ohne Laufwerksbuchstabe, der dann als DOS-Name interpretiert wird. Genauso wie fr Linux/UNIX-Kommandos gibt es fr die mtools ein Arbeitsverzeichnis, das mit dem Kommando mcd gendert werden kann. Bei der Angabe relativer DOS-Namen wird dieses Arbeitsverzeichnis zugrunde gelegt. Das mtools-Arbeitsverzeichnis wird in der Datei .mcwd im Home-Verzeichnis des aktuellen Benutzers gespeichert und verliert seine Gltigkeit nach 6 Stunden. Im Unterschied zu DOS wird nur ein Arbeitsverzeichnis und nicht fr jedes Laufwerk ein eigenes gespeichert. Um die Verwirrung zu erhhen, hat Microsoft fr DOS-Dateisysteme lange und kurze Dateinamen erfunden. Zu jeder Datei auf einem DOS-Datentrger, deren Name lnger als 8 Zeichen plus einer 3 Zeichen langen Erweiterung ist oder der aus einem anderen Grund nicht erlaubt ist, wird zustzlich ein langer Dateiname gespeichert. Diese werden von den mtools als primrer (langer Name) und sekundrer (kurzer) Name angesprochen. Wenn beispielsweise eine Datei auf einen DOSDatentrger kopiert werden soll, deren kurzer Name dort bereits existiert, aber deren

840

19 Kommandobersicht

langer Name dort nicht existiert, muss entschieden werden, ob das bedeutet, dass die Datei berschrieben werden soll oder ob die zu kopierende Datei einen anderen sekundren (kurzen) Namen erhalten soll. Standardeinstellung der mtools ist nachzufragen, wenn der lange Dateiname bereits existiert und den kurzen (sekundren) Dateinamen automatisch zu ersetzen. Dieses Verhalten lsst sich durch allgemeine Optionen berschreiben, die fr alle mtools-Kommandos gelten und in den InfoSeiten zu diesem Programm beschrieben sind. Metazeichen (?,*, []) knnen mit den mtools genauso benutzt werden wie unter Linux/UNIX. Es ist nicht ntig, bei einem DOS-Namen das Konstrukt (*.*) zu verwenden, wenn * (alle Dateien) gemeint ist. Weiter unterscheiden sich die mtools von den Original-DOS-Kommandos dadurch, dass Optionen wie unter Linux/UNIX blich durch ein Minuszeichen und nicht durch einen Schrgstrich eingeleitet werden. Siehe auch: mattrib, mbadblocks, mcd, mcopy, mdel, mdeltree, mdir, mformat, minfo, mlabel, mmd, mrd, mren, mtype, xcopy.

mv
Paket: leutils

Datei verschieben oder umbenennen


Dateiverwaltung

mv [Optionen] Quelldatei Zieldatei | Zielverzeichnis Verschiebt die mit Quelldatei bezeichnete Datei nach Zieldatei. Wird anstelle von Zieldatei ein Verzeichnisname angegeben, wird die Datei in das Verzeichnis verschoben und erhlt dort den gleichen Namen wie die Ausgangsdatei. Existiert die Zieldatei bereits, wird sie berschrieben. mv [Optionen] Quelldatei Quelldatei [...] Zielverzeichnis Verschiebt alle mit Quelldatei angegebenen Dateien und Verzeichnisse in das Zielverzeichnis. Im Zielverzeichnis vorhandene Dateien mit den gleichen Namen wie die der Originaldateien werden auch hier berschrieben. Es ist nur mglich, Dateien zu verschieben, nicht aber Verzeichnisse. -b | - -backup Bevor Dateien berschrieben werden, wird von diesen eine Sicherungskopie erstellt. Diese hat standardmig den gleichen Namen wie das Original mit einer angehngten Tilde (~). -S Endung | - -suffix=Endung Zusammen mit der Option -b erhalten Sicherungskopien anstatt der Tilde die Endung Endung. -i | - -interactive Bevor Dateien berschrieben werden, wird nachgefragt, ob dies wirklich geschehen soll. -u | - -update Es werden nur solche Dateien verschoben, deren letztes nderungsdatum jnger ist als das der Zieldateien. -v | - -verbose Der Name jeder verschobenen Datei wird ausgegeben. mv brief1.tex finanzamt_03_Juli.tex Wenn es sich bei brief1.tex nicht um ein Verzeichnis handelt und nanzamt_03_Juli.tex nicht existiert oder kein Verzeichnis ist: Benennt die Datei brief1.tex in nanzamt_03_Juli.tex um.

19.2 Kommandos

841

mv briefe texte Wenn es sich bei briefe und bei texte um Verzeichnisse handelt: Verschiebt das Verzeichnis briefe in das Verzeichnis texte. Das heit, briefe ist dann ein Unterverzeichnis von texte. mv *jpg graphics/jpegs Verschiebt alle Dateien, welche die Endung jpg haben, in das Verzeichnis graphics/jpegs. Wenn graphics/jpegs kein Verzeichnis ist, gibt es eine Fehlermeldung, falls im Arbeitsverzeichnis mehr als eine Datei mit der Endung jpg vorhanden ist. Siehe auch: cp, ln.

newgrp
Paket: login

Gruppenidentitt wechseln
Prozessverwaltung

newgrp [-] [Gruppe] Das Kommando newgrp wechselt die Gruppenidentitt, also die aktive Gruppe. Hierzu wird eine neue Shell mit der Gruppenidentitt der mit Gruppe bezeichneten Gruppe gestartet. Ist der aufrufende Benutzer Mitglied der Gruppe, in die gewechselt werden soll, muss kein Passwort angegeben werden. Der Wechsel in eine fremde Gruppe erfordert jedoch die Angabe des Passworts dieser Gruppe. Ist die Gruppe nicht mit einem Passwort versehen, wird der Wechsel nicht gestattet. Wenn keine Gruppe angegeben wird, versucht das Programm die Standardgruppe des aufrufenden Benutzers zu verwenden. - Die Umgebungsvariablen werden neu initialisiert. Die Shell erhlt die gleichen Umgebungsvariablen wie eine Shell nach dem Login. newgrp topsecret Startet eine neue Shell mit der Gruppenidentitt der Gruppe topsecret. Siehe auch: groups, id, su.

news
Paket: sysnews

Neuigkeiten anzeigen
Information

news [Optionen] [Artikel ...] Um Benutzer ber Neuigkeiten oder andere Dinge zu informieren, knnen der Systemverwalter oder andere Personen mit entsprechender Berechtigung Textdateien in das Verzeichnis /var/news legen, die alle Benutzer mit dem Programm news lesen knnen. Standardmig zeigt news nur die Artikel aus /var/news an, die seit dem letzten Aufruf von news durch den aufrufenden Benutzer noch nicht angezeigt wurden. Der Inhalt der Artikel wird auf die Standardausgabe geschrieben. Das Kommando hat nichts mit den Netnews aus dem Internet zu tun. -a | - -all Zeigt alle Artikel nacheinander an. -n | - -names Gibt nur die Namen der vorhandenen Artikel aus. -p | - -page Zeigt die anzuzeigenden Artikel mit dem Programm more oder dem in der Umgebungsvariable PAGER spezizierten Programm an. -s | - -articles Zeigt die Anzahl der Artikel an.

842

19 Kommandobersicht

news -ap Zeigt alle vorhandenen Artikel mit more oder dem in der Umgebungsvariable PAGER angegebenen Programm an. Siehe auch: mail.

nice
Paket: shellutils

Prozess mit vernderter Prioritt starten


Prozessverwaltung

nice [Optionen] [Kommando] nice startet das mit Kommando angegebene Programm mit einer anderen Prioritt als der Standardprioritt. Das System speichert zu jedem Prozess einen Nice-Wert, der bestimmt, wieviel Rechenzeit der betreffende Prozess zugewiesen bekommt. Der niedrigste Nice-Wert ist -20 (der Prozess bekommt am meisten Rechenzeit) und der hchste ist 19 (der Prozess bekommt am wenigsten Rechenzeit). Standardwert ist 0, also ein mittlerer Wert. Wird nice ohne Optionen und auszufhrendes Kommando aufgerufen, gibt es den aktuellen nice-Wert aus. Wird mit Kommando ein auszufhrendes Kommando angegeben, startet nice dieses Programm mit einem um 10 erhhten Wert, normalerweise also mit dem Nice-Wert 10. Nur dem Verwalter ist es erlaubt, Programme mit einem Nice-Wert unter 0 zu starten. -n Wert | - -adjustment=Wert Das auszufhrende Kommando wird mit dem durch Wert angegebenen Nice-Wert gestartet. nice 19 updatedb Fhrt das Programm updatedb aus und erzeugt dabei eine sehr geringe Systemlast. Siehe auch: renice, ps.

nohup
Paket: shellutils

Programm ohne Kontrollterminal ausfhren


Prozessverwaltung

nohup Kommando Gewhnlich werden die Prozesse eines Benutzers beendet, wenn er sich abmeldet oder wenn die Verbindung zu dem Rechner, auf dem sie ausgefhrt werden, unterbrochen wird. Gelegentlich ist es jedoch erwnscht, langlaufende Prozesse fortzusetzen, ohne weiterhin angemeldet sein zu mssen. Das Programm nohup startet Prozesse so, dass sie nicht unterbrochen werden, falls die laufende Sitzung beendet wird. Die Ausgaben der von nohup gestarteten Prozesse werden in die Datei nohup.out im Arbeitsverzeichnis oder wenn dies nicht mglich ist im Home-Verzeichnis des aufrufenden Benutzers geschrieben. Existiert diese Datei bereits, wird sie nicht berschrieben, die Ausgaben werden an sie angehngt. nohup make world & Ruft das Programm make mit dem Argument world auf und hngt die Ausgaben dieses Programms an die Datei nohup.out an. Nach einer Abmeldung luft make weiter. Der Operator & bewirkt, dass die Shell den Prozess im Hintergrund startet, damit die Eingabe neuer Kommandos (z. B. zur Abmeldung) mglich ist.

19.2 Kommandos

843

ntpdate
Paket: ntpdate

Zeit von NTP-Server holen


Netz, Systemverwaltung

ntpdate [Optionen] NTP-Server Das einfache Werkzeug dient zur Synchronisation der Systemuhr mit einem NTPServer und sollte von root beim Booten und dann im Abstand einiger Stunden aufgerufen werden. Aufwendiger, aber in lokalen Netzen besser ist die Einrichtung eines eigenen NTP-Servers (ntpd). -d Debugging mode, tut nur so, verstellt die Systemuhr nicht. -v verbose, ausfhrliche Anzeige der Ttigkeiten. ntpdate ntp1.t-online.de Synchronisiert die Systemuhr mit dem Server ntp1.t-online.de. Siehe auch: date, hwclock.

passwd
Paket: passwd

Passwort ndern
Systemverwaltung

passwd [Optionen] [Benutzername | Gruppenname] Der primre Zweck von passwd besteht darin, das zu einem Benutzerkonto gehrende Passwort zu verndern. Das Programm kann von jedem Benutzer aufgerufen werden, um das Passwort des eigenen Kontos zu ndern. Die nderung von Passwrtern anderer Benutzerkonten ist nur dem Verwalter erlaubt. passwd kann darber hinaus genutzt werden, um Einstellungen eines Benutzerkontos anzuzeigen oder zu verndern. Bei der Festlegung eines neuen Passworts berprft das Programm dieses nach Regeln, die in der Manual-Seite beschrieben sind, daraufhin, ob es den Minimalanforderungen an ein sicheres Passwort gengt. Falls nein, kann durch erneute Eingabe des unsicheren Passworts dessen Verwendung erzwungen werden. Hiervon ist abzuraten. Passwrter sollen aus mindestens 8 Zeichen, groen und kleinen Buchstaben sowie Zahlen und Satzzeichen bestehen. Vorsicht ist geboten, wenn das zu verwendende Passwort auch auf anderen Betriebssystemen benutzt werden soll, die damit eine Authentizierung am Debian-GNU/Linux-System durchfhren. Einige Betriebssysteme untersttzen nicht die Unterscheidung zwischen gro- und kleingeschriebenen Passwrtern. -l Sperrt das angegebene Benutzerkonto. -u Hebt die Sperre des angegebenen Kontos wieder auf. -S Gibt den Status des angegebenen Kontos aus. Dabei werden der Reihe nach der Name des Kontos, die Information, ob das Konto gesperrt ist (L) oder nicht (P) oder ob es mit keinem Passwort versehen ist (NP), das Datum der letzten Passwortnderung, das maximale Alter, das minimale Alter, die Warnzeit fr das Passwort und die Zeit, nach der das Konto gesperrt wird, wenn das Passwort nicht rechtzeitig gendert wurde, in Tagen ausgegeben. -x Tage Legt den Zeitraum in Tagen fest, nach dem das Passwort sptestens gendert werden muss.

844

19 Kommandobersicht

-n Tage Legt den Zeitraum in Tagen fest, bevor ein Passwort frhestens erneut gendert werden darf. -w Tage Legt den Zeitraum in Tagen fest, in dem der Besitzer des angegebenen Kontos ob des Ablaufs seines Passworts gewarnt wird. -i Tage Legt den Zeitraum in Tagen fest, nach dem das angegebene Konto gesperrt wird, wenn das Passwort nicht rechtzeitig gendert wurde. -f Erlaubt die Neueingabe der Zusatzinformationen zu dem angegebenen Konto. -s Erlaubt den Wechsel der Standardshell fr den Benutzer. -g Erlaubt die Vergabe eines Passworts fr die angegebene Benutzergruppe. -g -r Entfernt das Passwort fr eine Benutzergruppe. passwd ndert das Passwort des aufrufenden Benutzers. passwd -l mueller meier Sperrt die Benutzerkonten der Benutzer mueller und meier. passwd -x 30 -n 1 -w 5 -i 5 schulze Legt fr das Konto des Benutzers schulze folgendes fest: Das Passwort muss sptestens alle 30 Tage gendert werden, es darf frhestens einen Tag nach eine nderung erneut gendert werden. Fnf Tage vor Ablauf der nderungsfrist erhlt der Benutzer nach der Anmeldung eine Warnung, dass er sein Passwort ndern muss. Wenn es fnf Tage nach Ablauf der Frist noch nicht gendert wird, wird das Konto gesperrt. passwd -g topsecret ndert das Passwort fr die Benutzergruppe topsecret. Siehe auch: chage.

patch
Paket: patch

Textdatei mit Diff aktualisieren


Textverarbeitung, Entwicklung

patch [Optionen] Das Programm ist das Gegenstck zum Programm diff, mit dem Unterschiede zwischen (Text-)Dateien beschrieben werden und in eigenen Dateien gespeichert werden knnen. Diese Diffs oder Patch-Dateien sind kleiner und schneller zu transportieren als die Originaldateien und werden deswegen oft bei der Softwareaktualisierung benutzt. Das Programm patch wendet die von diff erzeugten Dateien auf vorhandene Textdateien an und bringt diese damit auf den Stand, den sie dort haben, wo das Diff erzeugt wurde. -b | - -backup Bevor eine Datei verndert wird, wird ein Backup dieser Datei erstellt. Diese Datei hat standardmig die zustzliche Endung .orig. -i Datei | - -input=Datei Die Anweisungen werden aus der mit Datei bezeichneten Datei gelesen. -p Zahl | - -strip=Zahl In den Diff-Dateien sind normalerweise Informationen darber enthalten, welche Datei gendert werden soll. Unter Umstnden werden die Dateien jedoch auf dem Rechner, wo das Diff erstellt wurde und auf dem Zielrechner in unterschiedlichen Verzeichnissen aufbewahrt, sodass die richtigen Dateien nicht mehr gefunden werden knnen. Durch die Op-

19.2 Kommandos

845

tion werden den Dateiinformationen soviel Verzeichnisanteile abgezogen, wie mit Zahl angegeben ist. (Beispiel: -p 2 bewirkt, dass aus dem Dateinamen projekte/spiel/src/init.c der Name src/init.c wird.) patch < patch.diff Fhrt die in der Datei patch.diff beschriebenen nderungen an den darin bezeichneten Dateien durch. Die Dateien werden ausgehend vom Arbeitsverzeichnis gesucht, wenn sie in patch.diff mit relativen Dateinamen speziziert sind. patch -p1 -b < upgrade.diff Fhrt die in der Datei upgrade.diff beschriebenen nderungen durch. Von jeder zu verndernden Datei wird zunchst ein Backup erzeugt. Dateinamen wird die erste Verzeichniskomponente abgezogen. Siehe auch: diff.

pidof
Paket: sysvinit

Prozess-ID ausgeben
Prozessverwaltung

pidof [Optionen] Programmname [Programmname ...] Das Programm zeigt die Prozess-IDs des oder der mit Programmname bezeichneten Programm(e) an. Wenn ein Programm mehrere Male ausgefhrt wird, werden alle Prozess-IDs dieses Programms ausgegeben. -s Gibt nur die erste gefundene Prozess-ID jedes Programms aus. -o PID Gibt die mit PID bezeichnete Prozess-ID nicht mit aus, wenn sie zu den Prozess-IDs der angegebenen Programme gehrt. pidof bash Gibt fr jede Instanz des Programms bash die Prozess-ID aus. pidof -s xemacs netscape Gibt jeweils die erste gefundene Prozess-ID der Programme netscape und xemacs aus. Siehe auch: ps, top, pstree, killall.

ping
Paket: netbase

Netzverbindung testen
Information, Netz

ping [Optionen] Rechnername ping schickt in regelmigen Abstnden Datenpakete an den mit Rechner bezeichneten Rechner, in denen dieser aufgefordert wird, das Datenpaket zurckzusenden. Das Programm kann dann bestimmen, wieviel Zeit fr diesen Vorgang bentigt wurde, wodurch die Geschwindigkeit der Verbindung zu dem Zielrechner beurteilt werden kann. Standardmig fhrt ping diesen Vorgang so lange durch, bis es unterbrochen wird (S TRG - C). Danach gibt es eine Statistik aus, wieviele Pakete verloren gegangen sind und wieviel Zeit im schnellsten Fall, im langsamsten Fall und durchschnittlich fr den Hin- und Rckweg gebraucht wurde. -c Anzahl Es wird Anzahl Male ein Datenpaket geschickt.

846

19 Kommandobersicht

-f Sobald ein Datenpaket vom fernen Rechner zurckgeschickt wurde, wird ein neues abgeschickt. Wenn nach 10 ms keine Beantwortung erfolgt wird ebenfalls ein neues Paket gesendet. Dadurch kann schnell erkannt werden, wieviele Pakete verlorengehen. Diese Option belastet das Netz und den Zielrechner sehr und darf nur vom Verwalter ausgefhrt werden. -i Sekunden Zwischen dem Senden zweier Pakete wird die mit Sekunden angegebene Zeit gewartet. ping -c 10 verwaltung Schickt 10 Datenpakete an den Rechner verwaltung und gibt hinterher eine Statistik aus. ping -f chef Schickt stndig Datenpakete an den Rechner chef und zeigt an, wann Pakete verlorengehen. Siehe auch: traceroute, netstat, ifcong.

poff
Paket: ppp

PPP-Verbindung beenden
Netz

poff [Optionen] [Provider] Beendet die Verbindung zu dem mit Provider angegebenen Provider. Wenn kein Provider angegeben wird und mehr als zwei PPP-Verbindungen bestehen, wird die Verbindung zu dem Provider mit dem Namen provider (Standardprovider) beendet. -a Es werden alle bestehenden Verbindungen beendet. -r Die Verbindung wird beendet und danach neu aufgebaut. -c Das Kompressionsverfahren wird zwischen Gegenstelle und lokalem Rechner neu ausgehandelt. poff -r uni Bricht die bestehende Verbindung zum Provider uni ab und baut eine neue auf. Siehe auch: pon, Kapitel 17.4.2, S. 618, pppd.

pon
Paket: ppp

PPP-Verbindung aufbauen
Netz

pon [Provider] Stellt die PPP-Verbindung zu dem mit Provider bezeichneten Provider her. Wird kein Provider angegeben, wird die Verbindung zu dem Provider mit der Bezeichnung provider aufgebaut. Dies ist der Standard-Providername, wie er beispielsweise von pppcong vergeben wird. Siehe auch: poff, Kapitel 17.4.2, S. 618, pppd.

pppstats
Paket: ppp

PPP-Statistik anzeigen
Systemverwaltung, Information, Netz

pppstats [Optionen] [Interface]

19.2 Kommandos

847

Das Kommando gibt Informationen zur Auslastung einer PPP-Verbindung aus. Wird mit Interface keine Datei angegeben, die ein Netzinterface darstellt, benutzt pppstats das Interface /dev/ppp0. -a Bringt das Programm dazu, absolute Werte seit Aufbau der PPP-Verbindung anzuzeigen. Standardmig werden nur die relativen Werte seit der letzten Abfrage ausgegeben. -c Anzahl Die Anzeige wird so oft wiederholt, wie mit Anzahl angegeben. -w Zeit Die Anzeige wird nach Ablauf der mit Zeit angegebenen Zeit wiederholt. Zeit wird als Intervall in Sekunden interpretiert. pppstats -w 2 /dev/ppp1 Gibt alle zwei Sekunden Informationen zur PPP-Verbindung, die ber das zweite PPP-Interface hergestellt ist, aus. Siehe auch: pppd.

printenv
Paket: shellutils

Umgebungsvariable anzeigen
Shellskripte, Information

printenv [Variable ...] printenv gibt entweder alle gesetzten Umgebungsvariablen aus oder nur die Werte der mit Variable angegebenen Umgebungsvariable(n). printenv HOME Gibt den Wert der Umgebungsvariable HOME aus. Siehe auch: export.

procinfo
Paket: sysutils

bersicht ber Systemstatus


Systemverwaltung, Information

Das Programm gibt Informationen ber den Status des Systems aus. Dazu gehren Systemstartzeit, Systemlast, Speicherauslastung, Festplattenzugriffe, benutzte Interrupts etc. Siehe auch: free, uptime, ps.

ps
Paket: procps

Prozessinformation anzeigen
Information, Prozessverwaltung

ps [Optionen] [Prozess-ID,...] ps zeigt die zum Zeitpunkt der Ausfhrung des Programms auf dem System laufenden Prozesse an. Mit Optionen lsst sich bestimmen, welche Prozesse und welche Informationen zu diesen Prozessen angezeigt werden sollen. UNIX-Optionen drfen zusammengefasst werden und mssen mit einem Minuszeichen eingeleitet werden. BSD-Optionen drfen ebenfalls gruppiert, aber nicht mit einem Minuszeichen eigeleitet werden. Lange GNU-Optionen sind mit zwei Minuszeichen zu beginnen. u Benutzerformat: Zu jedem Prozess wird der Benutzer sowie die Zeit, zu welcher der Prozess gestartet wurde, angezeigt.

848

19 Kommandobersicht

j Jobformat: Zeigt die Gruppen-ID (PGID) der Prozesse an. v Virtueller Speicher: Zeigt den Verbrauch und den Zugriff auf virtuellen (Swap-) Speicher an (PAGEIN). a Zeigt die Prozesse aller Benutzer an. x Zeigt Prozesse an, die nicht von einem Terminal kontrolliert werden. e Zeigt jeden Prozesses an. ps -ef ist eine oft gebrauchte Kombination. w Schneidet Zeilen der Ausgabe nicht ab, wenn sie umgebrochen werden mssten, um vollstndig dargestellt zu werden. Jedes zustzliche w verlngert den verfgbaren Platz fr einen Prozess um eine Zeilenlnge des aktiven Terminals. ps aux Zeigt alle laufenden Prozesse u. a. mit Benutzernamen an. ps xewwwwww Zeigt alle Prozesse des aufrufenden Benutzers mit ihren Umgebungsvariablen an. Fr jeden Prozess stehen sechs Zeilen Ausgabeplatz zur Verfgung. Siehe auch: pstree, top.

pstree
Paket: psmisc

Prozessstruktur anzeigen
Information, Prozessverwaltung

pstree [Optionen] [PID | Benutzer] pstree gibt eine baumartige Struktur der auf dem System laufenden Prozesse aus. Daraus lsst sich entnehmen, welcher Prozess von welchem gestartet wurde und wie einzelne Prozesse miteinander zusammenhngen. Standardmig bildet der Prozess init den Wurzelpunkt dieser Baumansicht (das ist der erste Prozess, der nach Systemstart gestartet wird). Durch Angabe einer bestimmten Prozess-ID mit PID wird der zugehrige Prozess als Wurzelpunkt dargestellt. Wird der Name eines Benutzers angegeben, werden alle Prozesse des Benutzers sowie deren Kind-Prozesse dargestellt. -a Zu jedem Prozess werden die dem Prozess bergegebenen Kommandozeilenargumente mit angezeigt. -h Der laufende Prozess (das ist pstree selbst) und seine Elternprozesse werden in der Ausgabe hervorgehoben. -p Die Prozess-IDs der angezeigten Prozesse werden mit ausgegeben. -u Wenn die Benutzer-ID eines Prozesses von der seines Eltern-Prozesses abweicht, wird dies angezeigt. pstree kurt -hpu Zeigt die Prozesse des Benutzers kurt in einer Baumstruktur an. Der laufende Prozess und seine Elternprozesse werden hervorgehoben. Wenn die Benutzer-ID von Prozessen von denen ihrer Eltern-Prozesse abweicht, wird dies angezeigt. Siehe auch: ps.

pwck
Paket: passwd

Benutzerdatei prfen
Systemverwaltung

19.2 Kommandos

849

pwck Das Programm prft die Benutzer- und Passwortdaten in den Dateien /etc/passwd und /etc/shadow auf Integritt und korrekte Eintrge. Je nach Grad der gefundenen Fehler gibt pwck Warnungen aus (etwa weil das Home-Verzeichnis eines Benutzers nicht existiert) oder fragt im Fall von schweren Fehlern nach, ob es den Eintrag lschen soll. Bei der Installation von Debian GNU/Linux werden einige Benutzereintrge angelegt, fr die keine Home-Verzeichnisse existieren. Warnungen diesbezglich knnen ignoriert werden. Siehe auch: grpck.

pwd
Paket: shellutils

Arbeitsverzeichnis nennen
Information, Shellskripte

pwd Das Kommando gibt den Namen des Arbeitsverzeichnisses aus.

quota
Paket: quota

Speicherplatzbegrenzung anzeigen
Systemverwaltung, Information

quota [Optionen] [Benutzer | Gruppe] Ohne Parameter aufgerufen gibt quota die fr den aufrufenden Benutzer existierenden Speicherplatzbeschrnkungen aus. Dabei wird angezeigt, wieviel des fr den Benutzer zur Verfgung stehenden Speicherplatzes bereits verbraucht ist. Die Beschrnkungen anderer Benutzer kann sich nur der Verwalter ansehen. -g Gibt die Speicherplatzbeschrnkungen fr alle Gruppen aus, in denen der aufrufende Benutzer Mitglied ist. -q Gibt nur Informationen ber Dateisysteme aus, auf denen die Speicherplatzbeschrnkungen berschritten sind. Siehe auch: edquota, repquota, Kapitel: 15.6, S. 498.

rcp
Paket: rsh-client

Datei zwischen Rechnern kopieren


Netz

rcp [Optionen] Quelldatei Zieldatei rcp [Optionen] Quelldatei [Quelldatei ...] Zielverzeichnis Das Programm kopiert die mit Quelldatei angegebene Datei in die mit Zieldatei angegebene. Quell- und Zieldatei mssen dabei nicht auf dem selben Rechner liegen. Dateien auf fernen Rechnern werden in der Form [Benutzer@]Rechnername:Datei angegeben. Der optionale Teil Benutzer bezeichnet dabei den Benutzername unter dem auf den fernen Rechner zugegriffen werden soll (standardmig ist dies der gleiche wie der lokale Benutzername) und

850

19 Kommandobersicht

Rechnername den Namen des Rechners von dem oder auf den die Datei kopiert werden soll. Das Programm fragt nicht nach einem Passwort fr den fernen Rechner. Vielmehr fhrt es die Authentizierung ber den Mechanismus von rsh durch. Voraussetzung fr die Verwendung von rcp ist also die Mglichkeit des Zugriffs auf den fernen Rechner ber rsh. -r Wenn es sich bei Quelldatei um ein Verzeichnis handelt, wird der Inhalt dieses Verzeichnisses rekursiv kopiert. rcp -r entwicklung:/usr/local/src/ ./ Kopiert das Verzeichnis /usr/local/src auf dem Rechner entwicklung rekursiv in das Arbeitsverzeichnis. rcp mahnung.tex rw1:/home/docs Kopiert die Datei mahnung.tex im Arbeitsverzeichnis auf dem lokalen Rechner in das Verzeichnis /home/docs auf dem Rechner rw1. Siehe auch: cp, ftp, rsh, rdist, scp.

rdev
Paket: util-linux

In den Kern eingebauten Parameter ndern


Systemverwaltung, Installation

rdev [Optionen] [Kerndatei [Wert]] Whrend des Systemstarts muss der Kern einige Informationen haben, die er nicht aus Kongurationsdateien lesen kann, weil zu diesem Zeitpunkt noch kein Zugriff auf Dateien mglich ist. Diese Informationen werden ihm ber Bootparameter mitgeteilt, die sich z. B. von LILO bergeben lassen. Einige Parameter lassen sich jedoch auch direkt in den Kern schreiben. Dadurch knnen Einstellungen vorgenommen werden, die dem Kern ermglichen, das System auch ohne zustzliche Informationen zu starten. Das Programm rdev verndert direkt die angegebene Kerndatei und kann dort festlegen, welcher Datentrger als Wurzeldateisystem gemountet werden soll, welcher Datentrger als Swapbereich benutzt werden soll, in welchem VideoModus die Grakkarte initialisiert werden soll und wie gro eine zu verwendende RAM-Disk sein soll. Ohne Parameter aufgerufen, gibt rdev den im Kern eingestellten Wurzeldatentrger aus. Um den Wurzeldatentrger zu ndern, ist rdev mit dem Namen der Kerndatei und der Gertedatei aufzurufen, auf der sich das Wurzeldateisystem bendet. -s Kerndatei Swapgert ndert den in der mit Kerndatei angegebenen Kerndatei angegebenen Swapdatentrger. -r Kerndatei Gre Legt die Gre der zu verwendenden RAM-Disk auf die mit Gre angegebene Gre in Kilobyte fest. -R Kerndatei Parameter Legt fest, ob der Kern das Wurzeldateisystem zum Lesen und zum Schreiben oder nur zum Lesen mounten soll (0 bedeutet Lesen und Schreiben und 1 nur Lesen). -v Kerndatei Videomodus Legt fest, in welchem Videomodus der Kern die Grakkarte initialisieren soll. Hierbei gelten die folgenden Werte: -3 (es wird nachgefragt), -2 (erweiterter VGA-Modus), -1 (normaler VGA-Modus).

19.2 Kommandos

851

rdev /boot/vmliunz /dev/sda7 ndert den in der Kerndatei vmlinuz eingestellten Wurzeldatentrger auf die durch /dev/sda7 reprsentierte Partition (dritte logische Partition auf der ersten SCSIFestplatte). rdev -s /dev/fd0 /dev/hda2 Legt den Swapdatentrger in der Kerndatei auf dem Datentrger in /dev/fd0 auf die durch /dev/hda2 reprsentierte Partition fest. rdev -R /boot/vmlinuz 1 Legt fest, dass der Kern in der Datei /boot/vmlinuz das Rootdateisystem nur zum Lesen mounten darf. rdev -v /boot/vmlinuz -1 Stellt den zu verwendenden Videomodus des Kerns in /boot/vmlinuz auf StandardVGA ein. Siehe auch: lilo, loadlin.

rdist
Paket: rdist

Datei auf fremde Rechner verteilen


Netz

rdist [Optionen] In Netzen mchte man oft mehrere Rechner mit der gleichen Software oder den gleichen Dateien ausstatten. Die manuelle Pege vieler Rechner ist jedoch mhsam und unbersichtlich. Das Programm rdist erlaubt, die Dateien auf einem Rechner zur Verfgung zu stellen und sie auf die angeschlossenen Rechner zu verteilen. Der besondere Vorteil von rdist besteht darin, dass das Programm erkennt, ob sich die lokal vorhandenen Dateien von denen auf den Zielrechnern unterscheiden und fhrt die Installation nur dann durch, wenn eine Abweichung vorliegt. rdist liest dazu eine Kongurationsdatei, die standardmig den Namen distle trgt und sich in dem Verzeichnis bendet, von dem aus das Programm aufgerufen wird. Das Format dieser Datei ist ausfhrlich in der Manual-Seite zu dem Programm beschrieben. Standardmig baut das Programm ber das Kommando rsh eine Verbindung zu den Zielrechnern auf und fhrt dort das Programm rdistd aus. Damit rdist funktioniert, muss also der Zugang zu den Zielrechnern ber rsh mglich und das Programm rdistd auf diesen Rechnern vorhanden sein. Alternativ lsst sich mit dem Parameter -P ein anderes Programm (z. B. shh) zur Kommunikation mit dem Zielrechner angeben. Kongurationsdatei: In der Datei distle wird deniert, welche Dateien auf welchen Rechnern installiert werden sollen und welche zustzlichen Aktionen dabei auszufhren sind. Prinzipiell sind dort zwei Formen von Anweisungen mglich: zum einen Denitionen von Gruppen von Dateien oder Rechnernamen und zum anderen Denitionen von auszufhrenden Aktionen. Eine Gruppendenition sieht folgendermaen aus: Name = ( Mitglied1 [Mitglied2 ...] ) Hierdurch werden die mit Mitglied1, Mitglied2 usw. bezeichneten Dateien oder Rechnernamen zu einer Gruppe mit dem durch Name angegebenen Namen zusammengefat. Beispiele fr Gruppendenitionen wren also:

852

19 Kommandobersicht

Ziele = ( chef, verwaltung, produktion1, produktion2 ) Hierdurch werden die Rechner mit den angegebenen Namen zu der Gruppe Ziele zusammengefat. Dateien = ( /usr/local /opt ) Fat die Verzeichnisse /usr/local und /opt zu der Gruppe Dateien zusammen. Die Denitionen auszufhrender Kommandos haben folgendes Format: Quellliste -> Zielrechner [Kommandos]; Durch eine solche Anweisung werden bei der Ausfhrung von rdist die mit Quellliste bezeichneten Dateien und Verzeichnisse auf den mit Zielrechner bezeichneten Rechnern installiert. Im Fall von Verzeichnissen wird der Inhalt der angegebenen Verzeichnisse rekursiv auf den Zielrechnern installiert. Durch optional anzugebende Kommandos lassen sich die Aktionen modizieren. Beispielsweise ist es mglich, durch das Kommando install einen anderen Pfad auf dem Zielrechner zu spezizieren, als die zu installierenden Dateien auf dem Ausgangsrechner haben. Zusammen mit den beiden Beispielen von oben knnte eine einfache Kommandodenition folgendermaen aussehen: ${Ziele} -> ${Dateien}; Hierdurch wird rdist angewiesen, alle Dateien unterhalb der durch Dateien denierten Verzeichnisse auf die Rechner zu installieren, die als Ziele deniert wurden. -a Bytes Die Installation der Dateien wird nur auf solchen Zielrechnern durchgefhrt, auf denen mehr als mit Bytes angegebener Speicherplatz auf den Datentrgern zur Verfgung steht, auf denen die Dateien installiert werden sollen. -f Datei Es wird die mit Datei angegebene Datei als Denitionsdatei verwendet und nicht die Datei distle im Arbeitsverzeichnis. -n rdist zeigt nur an, welche Kommandos es ausfhren wrde und fhrt keine Installation von Dateien durch. -P Dateiname[:Dateiname ...] Gibt mit Dateiname den Namen einer Datei an, welche ein ausfhrbares Programm enthlt, mit dem die Verbindung zu den Zielrechnern aufgebaut werden soll. Es ist mglich, mehrere Programme hintereinander anzugeben. Sie mssen dann durch einen Doppelpunkt voneinander getrennt sein. rdist Fhrt die Installation oder Aktualisierung entsprechend der Denitionen in der Datei distle im Arbeitsverzeichnis durch. rdist -P /usr/bin/ssh:/usr/bin/rsh Bewirkt das Gleiche wie obiges Kommando mit dem Unterschied, dass zunchst versucht wird, mit ssh die Verbindung zu den Zielrechnern aufzubauen. Wenn dies nicht gelingt, wird das Programm rsh benutzt. Siehe auch: rsh.

reboot
Paket: sysvinit

System warm starten


Systemverwaltung

19.2 Kommandos

853

reboot [Optionen] Das Kommando fhrt einen Warmstart des Systems durch. Siehe auch: shutdown, halt, poweroff, init.

recode
Paket: recode

Text umwandeln
Textverarbeitung, Kompatibilitt

recode [vorher][/[..][zwischendurch.. [...]][hinterher] [Datei ...] Leider gibt es eine groe Anzahl von Zeichentabellen, und gerade bei der Kodierung von Sonderzeichen oder Umlauten in Textdateien gibt es viele Wege. Dies fhrt oft dazu, dass Textdateien, die unter anderen Betriebssystemen erstellt wurden oder sogar unter dem gleichen Betriebssystem unter Verwendung einer anderen Kodierung erstellt wurden, nur bedingt auf dem eigenen Rechner les- und verarbeitbar sind. Das Programm recode kennt ungefhr 100 dieser Zeichentabellen und kann Dateien von einer in die andere umwandeln. Das Programm liest Daten von der Standardeingabe oder aus den mit Datei bezeichneten Dateien und kodiert diese aus der mit vorher angegebenen Zeichentabelle in die mit nacher angegebene Zeichentabelle um. Optional wird mit zwischendurch eine Zeichentabelle angegeben, die das Programm intern whrend der Transformation benutzt. Das Ergebnis wird auf die Standardausgabe geschrieben, wenn von der Standardeingabe gelesen wurde. Wenn aus einer oder mehreren mit Datei angegebenen Datei(en) gelesen wurde, werden diese Datei(en) umkodiert. Neben den eigentlichen Zeichensatztabellen kennt recode eine Reihe von Surfaces (Oberchen). In der Terminologie des Programms werden darunter Codierungen von Dateien verstanden, die nicht den Zeichensatz, sondern beispielsweise Zeilenenden oder komplette Neucodierungen wie Base64 betreffen. Mit einigen Zeichenstzen sind bestimmte Surfaces verbunden. So werden unter DOS, MSWindows und IBM-OS/2 CR/LF-Paare zur Markierung von Zeilenenden benutzt, whrend unter Linux/UNIX nur ein LF-Zeichen gebraucht wird. Mit den Zeichenstzen pc oder cp850 ist deswegen das Surface CR/LF verbunden. Surfaces knnen explizit ausgewhlt werden, in dem der Name des gewnschten Surface durch einen Schrgstrich getrennt hinter den Namen eines Zeichensatzes gestellt wird. Informationen zu den von recode untersttzten Zeichentabellen lassen sich in den Info-Seiten zu dem Programm nachlesen. Die wichtigsten sind: latin1 Die blicherweise unter Linux verwendete Zeichentabelle. Sie wird benutzt, wenn keine andere Zeichentabelle angegeben wird. cp850 Die unter DOS und OS/2 im deutschsprachigen Raum benutzte Zeichentabelle. cp437 US-amerikanische Zeichentabelle, die oft unter MS-Windows benutzt wird. ibmpc IBM-PC-Zeichentabelle mit CR/LF-Zeilenenden. Apple-Mac Macintosh Zeichentabelle. AtariST Atari ST Codepage. -l | - -list Gibt die untersttzten Zeichentabellen und Surfaces aus.

854

19 Kommandobersicht

recode brief.txt cp850..latin1 Kodiert die Datei brief.txt von der Zeichentabelle cp850 nach latin1 um. Siehe auch: fromdos, uudecode, uuencode.

renice
Paket: bsdutils

Prioritt laufender Prozesse ndern


Prozessverwaltung

renice Prioritt [[-p] Prozess-ID ..][[-g] Prozess-Gruppe ...][[-u] Benutzer ...] Das Programm ndert die Prioritt laufender Prozesse. Dadurch lsst sich die Systemlast durch rechenintensive Programme verringern. Gewhnliche Benutzer knnen mit renice die Prioritt ihrer eigenen Prozesse verringern, whrend der Verwalter die Prioritt aller Prozesse verringern oder erhhen kann. Die verfgbaren NiceWerte sind ganzzahlige Werte zwischen -20 und 19, Prozessen mit dem Wert -20 wird die meiste Rechenzeit zugeteilt und Prozesse mit dem Wert 19 bekommen die wenigste Prozessorzeit. Der Standardwert, mit dem Prozesse gestartet werden, ist 0. [-p] PID [PID ...] Verndert die Nice-Werte der Prozesse mit den durch PID angegebenen Prozess-IDs. -g PGRP [PGRP ...] Verndert die Nice-Werte aller Prozesse, die zu den mit PRGP angegebenen Prozessgruppen gehren. -u Benutzer [Benutzer ..] Verndert die Nice-Werte aller Prozesse, die den mit Benutzer angegebenen Benutzern gehren. renice 20 14543 Setzt den Prozess mit der Prozess-ID 14543 auf die geringste Prioritt. renice -u 15 chef lohn Setzt alle Prozesse der Benutzer chef und lohn auf den Nice-Wert 15 (relativ geringe Prioritt). Siehe auch: ps, top, kill, nice.

reset
Paket: ncurses-bin

Terminal zurcksetzen
Systemverwaltung, Shellskripte

reset [Optionen] [Terminal] Gelegentlich kommt es vor, dass ein Programm die Einstellungen des Terminals so verndert, dass es nicht mehr vernnftig benutzt werden kann. Dies kann sich u. a. durch falsch interpretierte Tastaturkommandos oder falsch dargestellte Zeichen im Terminal bemerkbar machen. Das Programm reset setzt die Einstellungen wieder auf den Standardwert zurck, sodass danach normal weitergearbeitet werden kann. Wird mit Terminal der Name eines bekannten Terminaltyps angegeben, wird das Terminal so initialisiert, wie ein Terminal vom angegebenen Typ initialisiert werden msste. Standardmig zeigt das Programm nach der Neuinitialisierung an, welche Tastenkombination zum Unterbrechen des aktuellen Prozesses und zum Lschen einer Zeile genutzt werden knnen. -q Gibt die Bezeichnung des Terminaltyps aus.

19.2 Kommandos

855

-Q Gibt keine Informationen aus. -s Gibt das Kommando aus, das in der Shell eingegeben werden muss, um die Variable TERM richtig zu setzten. reset Setzt das Terminal auf seine Starteinstellungen zurck. reset -Qs linux Setzt das Terminal zurck und initialisiert es als Terminal vom Typ linux. Zustzlich wird eine Zeile ausgegeben, mit der die Variable TERM gesetzt werden kann. Siehe auch: tset, tty, stty.

rm
Paket: leutils

Datei lschen
Dateiverwaltung

rm [Optionen] Datei [Datei ...] Das Kommando lscht die mit Datei angegebenen Dateien gnadenlos. -i | - -interactive Bevor Dateien gelscht werden, wird nachgefragt, ob das Kommando ernst gemeint ist. -v | - -verbose Der Name jeder zu lschenden Datei wird ausgegeben. -r | - -recursive Wenn es sich bei den zu lschenden Dateien um Verzeichnisse handelt, wird der Inhalt dieser Verzeichnisse mit allen Unterverzeichnissen gelscht. -f | - -force Es wird keine Fehlermeldung ausgegeben, wenn zu lschende Dateien nicht existieren. Auerdem erfolgt keine Nachfrage, wenn die Rechte an den zu lschenden Dateien nicht ausreichen. Es wird in jedem Fall versucht, sie zu lschen. rm brief.tex Lscht die Datei brief.tex. rm -iv *html Lscht alle Dateien, deren Namen mit html enden und die sich im Arbeitsverzeichnis benden. Fr jede zu lschende Datei erfolgt eine Sicherheitsabfrage. Die Namen der gelschten Dateien werden ausgegeben. rm -rf briefe Wenn es sich bei briefe um ein Verzeichnis handelt, wird das Verzeichnis mit seinem Inhalt und allen Unterverzeichnissen ohne Rckfrage gelscht. rm -rf * Wenn der Verwalter sich im Wurzelverzeichnis bendet und dieses Kommando eingibt, hat er hoffentlich vorher ein gutes Backup gezogen. Siehe auch: rmdir.

rmdir
Paket: leutils

Verzeichnis lschen
Dateiverwaltung

rmdir [Optionen] Verzeichnis [Verzeichnis ...]

856

19 Kommandobersicht

Das Kommando lscht die mit Verzeichnis angegebenen Verzeichnisse. Die zu lschenden Verzeichnisse mssen leer sein. -p | - -parents Wenn ein Verzeichnis, in dem sich zu lschende Verzeichnisse benden, durch das Lschen dieser Verzeichnisse leer wird, wird es ebenfalls gelscht. rmdir tmpdir Lscht das Verzeichnis tmpdir im Arbeitsverzeichnis. rmdir -p musik/classic musik/pop musik/jazz Lscht die Verzeichnisse classic, pop und jazz im Verzeichnis musik. Wenn musik danach leer ist, wird es ebenfalls gelscht. Siehe auch: mkdir, rm.

rmmod
Paket: modutils

Modul aus dem Kern entfernen


Systemverwaltung

rmmod [Optionen] Modul [Modul ...] Das Kommando entfernt das oder die mit Modul bezeichneten Module aus dem Kern. Falls das Modul von einem Programm oder einem anderen Modul benutzt wird, kommt es zu einer Fehlermeldung. -a Entfernt alle Module, die zur Zeit nicht bentigt werden, aus dem Kern. rmmod sb Entfernt das Modul sb aus dem Kern. Siehe auch: insmod, modconf, lsmod.

rsh
Paket: rsh-client

Kommando auf fremdem Rechner ausfhren


Netz

rsh [Optionen] Rechnername Kommando Das Programm stellt eine Verbindung zu dem mit Rechnername angegebenen Rechner her, fhrt dort standardmig eine Anmeldung unter dem aktuellen Benutzernamen durch (hierbei ist die Eingabe eines Passworts nicht notwendig) und ruft dann auf diesem Rechner das mit Kommando angegebene Kommando auf. Standardeinund -ausgabe ebenso wie die Standardfehlerausgabe werden mit dem auf dem fernen Rechner ausgefhrten Programm verbunden, so dass es genauso benutzt werden kann wie ein lokal ausgefhrtes Programm. Voraussetzung fr die Verbindung mit dem fernen Rechner ist, dass auf dem Rechner der entsprechende Dienst bereitgestellt ist (rshd) und dass dort durch die Datei /etc/hosts.equiv oder die Datei .rhosts im Home-Verzeichnis des aufrufenden Benutzers die Erlaubnis zum Benutzen dieses Dienstes erteilt wurde. -l Benutzername Die Anmeldung auf dem fernen Rechner erfolgt unter dem mit Benutzername angegebenen Namen. rsh labor ls

19.2 Kommandos

857

Ruft auf dem Rechner mit dem Namen labor das Kommando ls auf und gibt das Ergebnis auf dem lokalen Rechner aus. rsh labor cat brief > brief Ruft auf dem Rechner mit dem Namen labor das Kommando cat brief auf und schreibt das Ergebnis in die lokale Datei brief. Siehe auch: rlogin, rcp, rshd, /etc/hosts.equiv.

runlevel
Paket: sysvinit

Runlevel anzeigen
Information, Systemverwaltung

runlevel Das Programm gibt den aktuellen und den vorherigen Runlevel (siehe Kapitel 13, S. 449) aus. Siehe auch: init.

rwall
Paket: rwall

Nachricht an Benutzer fremder Rechner senden


Kommunikation

rwall Rechnername [Datei] Das Programm liest die mit Datei angegebene Datei oder von der Standardeingabe und schreibt den Text auf alle Terminals des Rechners Rechnername, an denen Benutzer angemeldet sind. Voraussetzung ist, dass auf dem fremden Rechner der entsprechende Dienst zur Verfgung steht. In der Regel wird dieser Dienst durch das Programm rpc.rwalld bereitgestellt, der vom Internet-Dmon bei Bedarf gestartet wird. rpc.rwalld startet auf dem fremden Rechner dann das Programm wall. Siehe auch: wall, write, rpc.rwalld, inetd.

scp
Paket: ssh

Datei zwischen Rechnern verschlsselt kopieren


Netz

scp [Optionen] [[Benutzername@]Quell-Rechner:]Quelldatei [[Benutzername@]Ziel-Rechner:]Zieldatei Das Programm kopiert die mit Quelldatei bezeichnete Datei in die mit Zieldatei bezeichnete Datei. Beiden Dateien kann ein Rechnername vorangestellt sein. Dieser muss von dem jeweiligen Dateinamen durch einen Doppelpunkt getrennt sein. Die Datei wird von dem mit Quell-Rechner spezizierten auf den mit Ziel-Rechner angegebenen Rechner kopiert. Wenn einer der beiden Rechnernamen nicht angegeben ist, wird angenommen, dass der lokale Rechner gemeint ist. Dem Rechnernamen kann (getrennt durch das @-Zeichen) ein Benutzername vorangestellt sein. Die Authentizierung geschieht dann mit dem mit Benutzername angegebenen Namen. Wenn die Benutzernamen nicht angegeben sind, wird versucht, die Anmeldung mit dem lokalen Namen des aufrufenden Benutzers durchzufhren. Das Programm verwendet zur Kommunikation und zum Datentransfer das Programm ssh. Dieses ermglicht einen sicheren, verschlsselten Datenaustausch. Voraussetzung ist, dass auf den beteiligten fernen Rechnern das ssh-Serverprogramm (sshd) ausgefhrt wird.

858

19 Kommandobersicht

-r Wenn mit Quelldatei ein Verzeichnis angegeben ist, wird dieses rekursiv mit allen darin enthaltenen Dateien und Unterverzeichnissen kopiert. -v Whrend Verbindungsaufbau und Authentizierung werden die einzelnen dazu durchgefhrten Schritte ausgegeben. -B Falls Passwrter zur Anmeldung an einem der fernen Rechner bentigt werden, werden diese nicht erfragt; es wird abgebrochen. Sinnvoll, wenn das Programm ohne Benutzereinwirkung ausgefhrt werden soll. scp mozart:/home/willy/bericht.txt bericht_von_mozart.txt Kopiert die Datei /home/willy/bericht.txt auf dem Rechner mozart auf den lokalen Rechner und legt sie dort im Arbeitsverzeichnis mit dem Namen bericht_von_mozart.txt ab. Die Anmeldung am Rechner mozart erfolgt mit dem Benutzernamen des aufrufenden Benutzers auf dem lokalen Rechner. scp -r root@mozart:/usr/local root@beethoven:/usr/local Kopiert das Verzeichnis /usr/local auf dem Rechner mozart rekursiv mit allen enthaltenen Dateien und Unterverzeichnissen auf den Rechner beethoven. Die Authentizierung an beiden Rechnern erfolgt ber das Benutzerkonto des Verwalters (root). Siehe auch: rcp, ssh.

script
Paket: bsdutils

Sitzung mitschreiben
Verschiedenes

script [-a] [Datei] Gelegentlich ist es wnschenswert, den Text, den Programme ausgeben, als auch eigene Eingaben in einer Datei mitzuprotokollieren, damit man nachvollziehen kann, was man whrend einer Sitzung getan hat. Hierzu dient das Programm script. Es startet eine neue Shell und speichert jedes Zeichen, das auf dem Bildschirm erscheint, in einer Datei mit dem Namen typescript oder in der mit Datei angegebenen Datei. Um script zu beenden, ist die von script gestartete Shell zu beenden, beispielsweise das Kommando exit einzugeben. -a Wenn eine Datei mit dem Namen typescript oder dem angegebenen Namen bereits existiert, wird diese nicht berschrieben, sondern das aktuelle Skript an sie angehngt. script lernen Startet eine neue Shell und protokolliert die Ein- und Ausgaben whrend der Arbeit mit dieser Shell in der Datei lernen.

sed
Paket: sed

Stream-Editor
Textverarbeitung, Shellskripte

sed [Optionen] [Datei ...] Das Programm liest Text von der Standardeingabe oder aus der oder den mit Datei angegebene(n) Datei(en) und schreibt diesen standardmig unverndert auf die Standardausgabe. Durch verschiedene Anweisungen ist es mglich, den Text von

19.2 Kommandos

859

sed verndern zu lassen. Die Anweisungen benden sich entweder in einer eigenen Datei oder werden an der Kommandozeile bergeben. sed ist ein Werkzeug, dessen Mglichkeiten in diesem Rahmen nur angeschnitten werden knnen. -n | - -quit Der Text wird nur dann auf die Standardausgabe ausgegeben, wenn dies in den Anweisungen explizit angegeben ist. -e Anweisungen | - -expression=Anweisungen sed verndert den Text nach den mit Anweisungen gegebenen Anweisungen. -f Datei | - -file=Datei Editieranweisungen werden aus der mit Datei bezeichneten Datei gelesen. Editieranweisungen: Editieranweisungen bestehen aus einer optionalen Adresse und einem Kommando, das beschreibt, was an dieser Adresse zu tun ist. Einige Kommandos erwarten zustzliche Parameter, die auf das Kommando folgen mssen. Die Adresse ist entweder eine Zeilennummer (z. B. 15), das Kommando wird dann fr die angegebene Zeile ausgefhrt, oder ein Zeilenbereich (z. B. 1,13), das Kommando wird dann fr diese beiden Zeilen und alle dazwischenliegenden ausgefhrt. Darber hinaus ist es mglich, anstatt der Zeilennummern regulre Ausdrcke anzugeben (siehe Kapitel 20, S. 20). Das angegebene Kommando wird dann fr die Zeilen ausgefhrt, auf die der regulre Ausdruck zutrifft oder wenn zwei regulre Ausdrcke angegeben wurden auf den Bereich von Zeilen, der durch Zeilen eingeschlossen wird, auf die der erste regulre Ausdruck (1.Zeile) und der zweite regulre Ausdruck (letzte Zeile) zutrifft. Werden regulre Ausdrcke als Adressen verwendet, mssen diese durch Schrgstriche am Anfang und am Ende gekennzeichnet sein. Ein Sonderfall ist das Zeichen $, welches die letzte Zeile des gelesenen Textes bezeichnet. Beispiele fr Adressen sind also: 2 Bezeichnet die zweite Zeile. 2,13 Bezeichnet die Zeilen 2 bis 13. 13,$ Bezeichnet alle Zeilen von der 13. bis zur letzten. /aaa/ Bezeichnet alle Zeilen, in denen die Zeichenfolge aaa vorkommt. /aaa/,/ccc/ Bezeichnet alle Zeilen die zwischen Zeilen liegen, in denen aaa und ccc vorkommt, inklusive dieser Zeilen selbst. /Kommentar/,$ Bezeichnet alle Zeilen von der Zeile an, in der die Zeichenfolge Kommentar auftritt bis zur letzten Zeile. Wird keine Adresse angegeben, so gelten die Kommandos fr alle Zeilen des Textes. sed versteht folgende Kommandos: d Die adressierten Zeilen werden gelscht. p Die adressierten Zeilen werden ausgegeben. Die Zeilen werden doppelt ausgegeben, wenn sed nicht mit der Option -n aufgerufen wurde. w Datei Die adressierten Zeilen werden in die mit Datei bezeichnete Datei geschrieben. s/Ausdruck/Ersatz/[Option] In den adressierten Zeilen wird der Text, auf den der mit Ausdruck angegebene regulre Ausdruck zutrifft, durch den mit Ersatz angegebenen Text ersetzt. Wenn Ersatz das Zeichen & enthlt, wird es durch

860

19 Kommandobersicht

den Text ersetzt, auf den Ausdruck zutrifft. Wird fr Option eine Zahl angegeben, so wird eine Ersetzung nur fr die Textstelle durchgefhrt, welche die der Zahl entsprechende Textstelle ist (also nur die dritte, wenn 3 angegeben wurde). Standardmig wird nur die erste Textstelle ersetzt. Wenn fr Option g (global) angegeben wird, werden alle Textstellen ersetzt, auf die der Ausdruck zutrifft. sed -e /ganten/d adressen.txt > adressen_neu.txt Lscht alle Zeilen aus der Datei adressen.txt, in der die Zeichenfolge ganten vorkommt und schreibt das Ergebnis in die Datei adressen_neu.txt. sed -e /Teil 1/Teil 2/s/Verlust/Gewinn/g bericht > bericht_gut Ersetzt in der Datei bericht das Wort Verlust durch das Wort Gewinn, wenn dieses Wort in Bereichen der Datei bericht vorkommt, die mit Zeilen, die mit der Zeichenfolge Teil 1 beginnen und mit Zeilen, in denen das Wort Teil 2 vorkommt, aufhren. Das Ergebnis wird in die Datei bericht_gut geschrieben. Siehe auch: grep, perl, awk, cat.

see
Paket: mime-support

MIME-Datei betrachten
Information, Dateiverwaltung

see [MIME-Typ[:Kodierung]] Datei [Datei ...] Das Programm ffnet die mit Datei angegebene(n) Datei(en) mit dem in der Datei /etc/mailcap angegebenen Betrachtungsprogramm (Viewer). Welches Betrachtungsprogramm das richtige ist, wird anhand des angegebenen MIME-Typs sowie der angegebenen Kodierung entschieden. Wenn diese Informationen nicht angegeben werden, werden sie aufgrund der Dateiendung und den Informationen in der Datei /etc/mime.types geraten. Falls der aufrufende Benutzer eine eigene MailcapDatei .mailcap oder eine eigene MIME-Typen-Datei .mime.types in seinem HomeVerzeichnis besitzt, werden diese ebenfalls bercksichtigt. see bild.gif Startet ein geeignetes Programm zum Betrachten von GIF-Bilddateien und ldt die Datei bild.gif darin. Voraussetzung ist, dass ein solches Programm auf dem System existiert und in die Datei /etc/mailcap eingetragen ist. Siehe auch: run-mailcap, update-mime.

setserial
Paket: setserial

Serielle Schnittstelle einstellen


Systemverwaltung

setserial [Optionen] Gertedatei [Einstellung [Wert] ...] Das Programm konguriert die seriellen Schnittstellen des Rechners. Es wird normalerweise whrend des Systemstarts aus dem Startskript /etc/rcS.d/S30setserial aufgerufen. Die Einstellungen der Schnittstellen werden beim Herunterfahren des Rechners in der Datei /etc/serial.conf gespeichert und beim Starten aus dieser Datei gelesen. Wird setserial nur mit Angabe einer Gertedatei aufgerufen, die eine serielle Schnittstelle darstellt, gibt es die Konguration der entsprechenden Schnittstelle

19.2 Kommandos

861

aus. Wird setserial mit Angabe einer Gertedatei und der Angabe von Einstellungen und Werten aufgerufen, nimmt es die entsprechenden Einstellungen vor. -a Bei der Ausgabe der Konguration werden smtliche verfgbaren Informationen ber die betreffende Schnittstelle ausgegeben. port ioport Legt die Ein- und Ausgabeadresse der betreffenden Schnittstelle auf den mit ioport angegebenen Wert fest. irq Nummer Legt den Interrupt der betreffenden Schnittstelle auf den mit Nummer angegebenen Interrupt fest. uart Typ Gibt den UART-Typ der Schnittstelle an. Gltige Typen sind: 8250, 16450, 16550, 16550A, 16650, 16650V2 und 16750 oder none, wenn die Schnittstelle nicht mit einem UART ausgestattet ist. autoconfigure Weist den Kern an, die betreffende Schnittstelle automatisch zu kongurieren. auto_irq Weist den Kern an, den von der Schnittstelle benutzten IRQ automatisch festzustellen. Diese Einstellung muss vor autocongure vorgenommen werden. skip_test Weist den Kern an, whrend der Autokonguration nicht zu versuchen, den Typ des UARTs festzustellen. Wird bei einigen UART-Imitaten bentigt. setserial -a /dev/ttyS0 Gibt die aktuelle Konguration der ersten seriellen Schnittstelle (unter DOS: COM1) aus. setserial /dev/ttyS2 port 0x3E8 auto_irq autoconfigure Konguriert die dritte serielle Schnittstelle (unter DOS: COM3) automatisch unter Verwendung der Basis-Ein/Ausgabe-Adresse von hexadezimal 3E8. Siehe auch: tunelp, /proc/interrupts, /proc/ioports.

sfdisk
Paket: util-linux

Partitionsdaten anzeigen und ndern


Systemverwaltung

sfdisk -s [Gertedatei] Gibt die Gre in 1024 Byte groen Blcken der mit Gertedatei bezeichneten Partition aus. Wird keine Partition angegeben, werden die Gren aller im System vorhandenen Festplatten ausgegeben. sfdisk -l [Optionen] [Gertedatei] Gibt die Partitionstabelle der mit Gertedatei bezeichneten Festplatte aus. Wird keine Festplatte angegeben, werden die Partitionstabellen aller im System vorhandenen Festplatten ausgegeben. sfdisk -V [Gertedatei] Fhrt verschiedene Konsistenztests mit der Partitionstabelle der mit Gertedatei bezeichneten Festplatte durch. Wird keine Festplatte angegeben, werden die Partitionstabellen aller Festplatten geprft. sfdisk Gertedatei

862

19 Kommandobersicht

Erlaubt das nicht-interaktive Partitionieren der mit Gertedatei bezeichneten Festplatte. Das Programm liest Partitionierungsangaben von der Standardeingabe und erzeugt auf der betreffenden Festplatte die entsprechende Partitionstabelle. Dadurch ist die automatische Partitionierung in Shellskripten und hnlichen Anwendungen mglich. Die Partitionierungsangaben mssen in folgender Form erfolgen, wobei jeweils eine Zeile die Partitionierungsangaben fr eine Partition enthalten muss: Start Gre Partitionstyp Bootbar z,k,s z,k,s Die einzelnen Felder werden durch Leerzeichen, Kommata oder Semikolons getrennt. Start bezeichnet den Startpunkt in Zylindern oder der gewhlten Einheit (siehe Parameter -U), an dem eine Partition beginnen soll. Gre bezeichnet die Gre der Partition in der gewhlten Einheit, Partitionstyp den Partitionstyp, er muss hexadezimal und ohne 0x angegeben werden. Bei der Angabe des Partitionstyps ist es weiter u. a. mglich, die Buchstaben L fr Linux-Native oder S fr Linux-Swap anzugeben. Mit Bootbar wird angegeben, ob die Partition aktiv sein soll. Ein Stern (*) macht die Partition aktiv, ein Minuszeichen (-) macht sie inaktiv. Die letzten beiden Angaben (z,k,s) bezeichnen Start- und Endpunkt einer Partition in der Form Zylinder,Kopf,Sektor. Die z,k,s-Angaben mssen normalerweise nicht vorgenommen werden. Alle diese Angaben sind optional: Wird Start ausgelassen, wird der erste freie Sektor auf der Festplatte benutzt. Wird Gre ausgelassen erhlt die Partition die maximale Gre. Wird Partitionstyp ausgelassen, erhlt die Partition den Typ Linux-Native (83). Wird Bootbar ausgelassen, wird die Partition nicht aktiv. Besondere Vorgabewerte gelten fr Partitionen in erweiterten Partitionen. Einigen Optionen mssen Partitionsnummern bergeben werden. Dies sind die gleichen Nummern, die auch die Gertedateien tragen, welche die entsprechende Partition reprsentieren, z. B. 4 fr die vierte primre Partition. -T | - -list-types Gibt alle dem Programm bekannten Partitionstypen aus. -g | - -show-geometry Gibt die Information des Kerns ber die Geometrie der entsprechenden Festplatte aus . -d Gibt die Partitionstabelle(n) in einem Format aus, das sfdisk verwenden kann, um eine Neupartitionierung vorzunehmen. Ntzlich, um gleiche Partitionierungen auf verschiedenen Festplatten durchzufhren. -N Partitionsnummer Es wird nur die mit Partitionsnummer bezeichnete Partition verndert. Anstatt der oben beschriebenen Vorgabewerte gelten nun die Werte der bezeichneten Partition als Vorgabewerte. -A Partitionsnummer Die mit Partitionsnummer bezeichnete Partition wird aktiviert, alle anderen werden deaktiviert. -c | - -id Partitionsnummer [ID] Gibt den Partitionstyp (z. B. 83 fr Linux-Native) aus, wenn ID nicht angegeben wurde, und ndert den Partitionstyp auf den mit ID angegebenen Wert, wenn ID angegeben wurde. -C Zylinder -H Kpfe -S Sektoren Es wird die angegebene Festplattengeometrie benutzt und nicht die vom Kern erkannte. -u Einheit Alle Grenangaben werden in der angegebenen Einheit ausgegeben oder interpretiert. Mgliche Einheiten sind: S (Sektoren), B (Blcke), C (Zylinder) und M (Megabyte). Der Vorgabewert ist Zylinder.

19.2 Kommandos

863

-x | - -show-extended Es werden auch Informationen ber erweiterte Partitionen ausgegeben. Bei der Vernderung von Partitionstabellen werden auch Anweisungen zu erweiterten Partitionen erwartet. -D | - -DOS Die Partitionstabelle wird so angelegt, dass sie auch von DOS benutzt werden kann. - -IBM | - -leave-last Der letzte Zylinder auf der Festplatte wird nicht benutzt. Sinnvoll fr einige IBM-Werkzeuge, die davon ausgehen, dass sie den letzten Zylinder berschreiben drfen. -n Alle Kommandos werden ausgefhrt, die neue Partitionstabelle wird jedoch nicht geschrieben. Erlaubt das Testen von Partitionierungsanweisungen. -O Datei Erstellt eine Sicherungskopie aller durch sfdisk vernderten Sektoren in der mit Datei bezeichneten Datei. Die Sicherungsdatei sollte sich auf einem anderen Datentrger als der zu partitionierenden Festplatte benden. -I Datei Bringt die Partitionstabelle wieder in den Zustand, wie er in Datei beschrieben ist. Diese Datei muss zuvor mit der vorherigen Option erstellt worden sein. sfdisk -l -u m Gibt alle Partitionstabellen aus. Grenangaben werden dabei in Megabyte vorgenommen. sfdisk -u M -O /floppy/backup /dev/sda < ptable Liest Partitionierungsanweisungen aus der Datei ptable und partitioniert die erste SCSI-Festplatte entsprechend. Vorher wird eine Sicherheitskopie aller zu verndernden Sektoren in die Datei /oppy/backup geschrieben. sfdisk -I /floppy/backup /dev/sda Macht die im vorherigen Beispiel vorgenommenen nderungen unter Verwendung der Sicherungsdatei /oppy/backup rckgngig. Die Datei ptable kann beispielsweise folgendermaen aussehen:
0,1000 ,128,82 ,2000 ;

Die erste Zeile legt eine 1000 MB groe Partition am Beginn der Festplatte an. Die zweite Zeile legt eine 128 MB groe Partition vom Typ Linux-Swap an. Die dritte Zeile legt eine 2000 MB groe Partition an. Die vierte Zeile legt eine weitere Partition an, die den verbleibenden Platz ausfllt. Weil keine erweiterte Partition angelegt wurde, knnen auf der Festplatte keine weiteren (logischen) Partitionen angelegt werden. Siehe auch: cfdisk, fdisk, Kapitel 2.5.

shadowcong
Paket: passwd

Schattenpasswrter ein- und ausschalten


Systemverwaltung

shadowconfig on | off

864

19 Kommandobersicht

Mit dem Kommando wird die Benutzung von Schattenpasswrtern, die nicht in der Datei /etc/passwd, sondern in der Datei /etc/shadow gespeichert werden, ein- und ausgeschaltet. shadowconfig on Schaltet die Benutzung von Schattenpasswrtern ein. shadowconfig off Schaltet die Benutzung von Schattenpasswrtern aus. Siehe auch: adduser, passwd.

shutdown
Paket: sysvinit

System herunterfahren
Systemverwaltung

shutdown [Optionen] Zeit [Nachricht] Das System wird zu der mit Zeit angegebenen Zeit heruntergefahren. Die Zeit kann in der Form Stunden:Minuten, beispielsweise 16:15, angegeben werden. Eine weitere Mglichkeit ist die Angabe in der Form +Minuten, z. B. +15. Das System wird dann nach Ablauf der angegebenen Minuten heruntergefahren. Drittens kann fr Zeit now angegeben werden, wodurch das System sofort heruntergefahren wird. Standardmig hlt shutdown das System nicht an, sondern bringt es in Runlevel 1, in dem nur der Systemverwalter angemeldet sein darf und Verwaltungsaufgaben sicher durchgefhrt werden knnen. Wird Nachricht angegeben, gibt shutdown die Nachricht vor dem Herunterfahren an alle angemeldeten Benutzer aus, damit diese ber den bevorstehenden Systemabschluss informiert sind und sich abmelden. -r Startet das System nach dem Herunterfahren neu. -h Hlt das System nach dem Herunterfahren an. -k Fhrt keinen Systemabschluss durch und sendet lediglich die WarnungsMitteilungen an alle Benutzer. -c Bricht einen laufenden Systemabschluss ab. Hier muss keine Zeitangabe gemacht werden. shutdown +20 "Wir machen Schluss fuer heute!" Fhrt das System 20 Minuten nach Eingabe des Kommandos herunter und teilt dies allen Benutzern mit. shutdown -c "Es gibt doch noch was zu tun!" Bricht den laufenden Systemabschluss ab und teilt dies ebenfalls mit. shutdown -r now Fhrt sofort einen Warmstart des Rechners durch. shutdown -h now Hlt das System sofort an. Anschlieend kann es ausgeschaltet werden. Siehe auch: reboot, halt, poweroff, init.

sort
Paket: textutils

Textdatei sortieren
Textverarbeitung

sort [Optionen] [Datei ...]

19.2 Kommandos

865

sort liest eine oder mehrere mit Datei angegebene Datei(en) oder von der Standardeingabe, wenn keine Datei angegeben wurde, und sortiert diese zeilenweise. Das Ergebnis wird auf die Standardausgabe geschrieben. Per Voreinstellung geschieht die Sortierung unter Bercksichtigung aller in jeder Zeile vorhandenen Zeichen, wobei die Zeichen in der ersten Spalte die hchste Prioritt haben, dann die in der zweiten Spalte usw. -b Leerzeichen am Anfang von Zeilen werden nicht bercksichtigt. -d Nur Buchstaben, Ziffern und Leerzeichen werden bercksichtigt. -f Bei der Sortierung bleiben Unterschiede zwischen groen und kleinen Buchstaben unbercksichtigt. -n Sortiert numerisch, nicht alphabetisch. -r Gibt das Ergebnis umgekehrt sortiert aus (A zuletzt, Z zuerst). -k Pos1[,Pos2] Bei der Sortierung werden nur die Zeichen bercksichtigt, die innerhalb der mit Pos1 und Pos2 angegeben Spalten stehen. Wenn Pos2 nicht angegeben wird, werden die Zeichen von der mit Pos2 spezizierten Spalte bis zum Zeilenende bercksichtigt. sort -d freunde.txt kollegen.txt > leute.txt Sortiert den Inhalt der beiden Dateien freunde.txt und kollegen.txt und schreibt das Ergebnis in die Datei leute.txt. sort -r -k 12 termine.txt Sortiert die Datei termine.txt in umgekehrter Reihenfolge und bercksichtigt dabei nur die Zeichen ab der 12. Spalte in jeder Zeile. Das Ergebnis wird auf die Standardausgabe ausgegeben. Siehe auch: uniq.

ssh
Paket: ssh

Verschlsselte Verbindung zu anderem Rechner aufbauen


Netz

ssh [Optionen] Rechnername | Benutzer@Rechnername [Kommando] Das Programm baut eine verschlsselte Verbindung zu dem mit Rechnername angegebenen Rechner auf und versucht dort eine Authentizierung mit dem Benutzernamen des aufrufenden Benutzers durchzufhren. Wenn Rechnername in der Form Benutzer@Rechnername angegeben ist, wird versucht, die Authentizierung mit dem mit Benutzer angegebenen Namen durchzufhren. Voraussetzung fr das Gelingen des Verbindungsaufbaus ist u. a., dass auf dem fernen Rechner das Server-Programm sshd ausgefhrt wird. Wenn mit Kommando kein Kommando angegeben wird, wird nach erfolgter Anmeldung am fernen Rechner dort eine Shell gestartet, die vom lokalen Rechner aus benutzt werden kann. Anderenfalls wird das mit Kommando angegebene Programm auf dem fernen Rechner ausgefhrt. Ausgaben dieses Programms werden auf der Standardausgabe des lokalen Terminals ausgegeben. Zur Authentizierung sind verschiedene Methoden mglich. Welche benutzt werden, ist davon abhngig, wie das Server-Programm auf dem fernen Rechner und

866

19 Kommandobersicht

das lokale Programm konguriert sind. U. a. ist die gleiche Authentizierung wie mit dem Programm rsh mglich (ber die Dateien /etc/hosts.equiv und .rhosts im Home-Verzeichnis des Benutzers, mit dessen Namen die Anmeldung auf dem fernen Rechner versucht wird) oder ber eine Passwortabfrage. Das Programm lsst sich genauso wie rsh verwenden, bietet den groen Vorteil, dass die Datenbertragung zwischen beiden Rechnern verschlsselt stattndet und deswegen abhrsicher ist. Dies ist insbesondere bei der bertragung von Passwrtern von enormer Wichtigkeit. Das Programm ist deswegen den Programmen rsh oder telnet vorzuziehen, sobald unsichere Verbindungen wie Internetverbindungen benutzt werden. Eine weitere besondere Eigenschaft von ssh besteht darin, dass es X11Verbindungen ebenfalls verschlsselt. Dazu startet es auf dem fernen Rechner einen Proxy-X-Server und leitet die Daten eines auf dem fernen Rechner gestarteten XProgramms an den lokalen X-Server verschlsselt weiter. Dies ermglicht sogar die einfache Verwendung des X11-Protokolls ber verschlsselte Verbindungen. -l Name Die Anmeldung am fernen Rechner erfolgt mit dem mit Name spezizierten Benutzernamen. -v Das Programm gibt aus, welche Schritte zum Verbindungsaufbau und zur Authentizierung durchgefhrt werden. Hilfreich, um zu untersuchen, warum ein Verbindungsaufbau nicht funktioniert. -x Schaltet die Weiterleitung von X-Daten aus (Voreinstellung). -X Schaltet die Weiterleitung von X-Daten ein. -C Alle Daten, die zwischen lokalem und fernen Rechner ausgetauscht werden, werden verschlsselt. Sinnvoll fr langsame Verbindungen wie Einwahlverbindungen. ssh -l meier arbeitsplatz.firma.de Baut eine sichere Verbindung zu dem Rechner arbeitsplatz.rma.de auf und startet dort eine Shell, die vom lokalen Rechner aus benutzt werden kann. Die Anmeldung erfolgt mit dem Benutzernamen meier. ssh -X -C server.psychologie.uni-bremen.de /usr/bin/X11/gimp Baut eine sichere, komprimierte Verbindung zum Rechner server.psychologie.unibremen.de auf. Auf dem fernen Rechner wird das Programm gimp gestartet, dessen Ausgabe ber den X-Proxy-Server auf das X-Display des lokalen Rechner weitergeleitet wird. Siehe auch: rsh, scp.

strace
Paket: strace

Systemaufrufe eines Programms anzeigen


Information

strace [Optionen] [Kommando] Das Programm fhrt das mit Kommando angegebene Programm aus und protokolliert die Systemaufrufe, die das ausgefhrte Programm durchfhrt, sowie die Signale, die es erhlt. Per Voreinstellung werden die Informationen auf die Standardfehlerausgabe geschrieben. strace ist ein ntzliches Werkzeug, wenn man sehen will, was

19.2 Kommandos

867

ein Programm tut oder warum ein Programm an irgendeiner Stelle unvorhergesehene Fehler hervorruft. -o Datei Die protokollierten Systemaufrufe werden in die mit Datei bezeichnete Datei geschrieben und nicht auf die Standardfehlerausgabe. -f Es werden auch die Systemaufrufe protokolliert, die von Prozessen durchgefhrt werden, die von dem Ausgangsproze gestartet werden. -ff Zusammen mit dem Parameter -o bewirkt dieser Parameter, dass fr jeden Prozess eine Datei angelegt wird, deren Name sich aus dem bei der Option -o angegebenen Dateinamen und der Prozess-ID des betreffenden Prozesses zusammensetzt. Die Protokolle der gestarteten Prozesse werden dann in diese Dateien geschrieben. -p PID Fhrt dazu, dass strace die Systemauf/rufe eines bereits laufenden Prozesses mit der durch PID angegebenen Prozess-ID ausgibt. Der Vorgang kann abgebrochen werden, ohne dass der laufende Prozess unterbrochen wird. strace ls 2>&1 | less Zeigt die Ausgabe von dem Kommando ls zusammen mit den von diesem Programm durchgefhrten Systemaufrufen mit dem Programm less an. Der Ausdruck 2>&1 bewirkt, dass die Standardfehlerausgabe (2) mit auf die Standardausgabe (1) gegeben wird und deswegen ebenfalls von less gelesen wird. Siehe auch: ps, gdb.

su
Paket: login

Benutzeridentitt wechseln
Systemverwaltung

su [Optionen] [Benutzer] Mit dem Kommando wechselt man vorbergehend die Benutzeridentitt. Ohne Parameter aufgerufen startet das Programm eine Shell mit den Rechten des Systemverwalters. Wenn ein gltiger Benutzername angegeben wird, wird eine Shell mit der Identitt dieses Benutzers gestartet. Wird su von einem anderen Benutzer als dem Systemverwalter aufgerufen, fragt das Programm nach dem Passwort des Benutzers, mit dessen Identitt die Shell gestartet werden soll. su erhlt das Arbeitsverzeichnis sowie die Umgebungsvariablen, mit Ausnahme der Variablen HOME und SHELL, die aus den Voreinstellungen des Benutzers bezogen werden, auf dessen Identitt gewechselt wird. Wird nicht auf die Identitt des Verwalters gewechselt, werden zustzlich die Variablen USER und LOGNAME auf die neue Identitt gesetzt. -c Kommando | - -comand=Kommando Es wird keine interaktive Shell ausgefhrt. Stattdessen wird das mit Kommando angegebene Kommando mit den Rechten des angegebenen Benutzers ausgefhrt. -s Shell | - -shell=shell su startet normalerweise die Standard-Shell des Benutzers, zu dessen Identitt gewechselt wird. Mit diesem Parameter kann stattdessen die mit Shell angegebene Shell benutzt werden. - An Stelle einer gewhnlichen Shell wird eine Login-Shell des Benutzers, zu dessen Identitt gewechselt wird, aufgerufen. Diese wird im Home-Verzeichnis des

868

19 Kommandobersicht

neuen Benutzers ausgefhrt, und alle Umgebungsvariablen des aufrufenden Prozesses werden gelscht. -p | - -preserve-environment Es werden keine Umgebungsvariablen gendert, und es wird das in der Umgebungsvariablen SHELL gespeicherte Programm ausgefhrt. su -c make install Fhrt das Programm make mit Verwalterrechten aus. make wird der Parameter install bergeben. Vorher wird nach dem Passwort des Verwalters gefragt, falls das Kommando nicht vom Verwalter abgeschickt wurde. su carsten Wechselt die Benutzeridentitt auf die des Benutzers carsten. Wird dieses Kommando nicht vom Systemverwalter benutzt, so muss das entsprechende Passwort eingegeben werden. Siehe auch: login, super, sudo, fakeroot.

sudo
Paket: sudo

Programm als Verwalter ausfhren


Systemverwaltung

sudo [Optionen] Kommando Eine weitere Mglichkeit, bestimmten Benutzern das Recht einzurumen, Kommandos mit besonderen Rechten auszufhren, bietet das Programm sudo. Es fhrt das mit Kommando angegebene Kommando mit den Rechten und der Identitt des Systemverwalters aus. Welche Kommandos unter welchen Bedingungen von welchem Benutzer mit den Privilegien des Verwalters ausgefhrt werden drfen, wird in der Datei /etc/sudoers festgelegt (siehe Kapitel 15.5.3, S. 496). Unter Umstnden wird vor der Ausfhrung des angegebenen Kommandos nach dem Passwort des Benutzers gefragt. Damit wird sichergestellt, dass das Programm auch wirklich vom berechtigten Benutzer aufgerufen wird. -l Zeigt an, welche Programme vom aufrufenden Benutzer mit besonderen Privilegien ausgefhrt werden drfen. -b Das auszufhrende Programm wird im Hintergrund ausgefhrt. -u Benutzername Das auszufhrende Programm wird unter der Identitt des mit Benutzername angegebenen Benutzers ausgefhrt. sudo lprm 625 Ruft das Programm lprm mit dem Argument 625 auf und fhrt es unter der Identitt des Verwalters aus. Siehe auch: su, fakeroot.

swapoff
Paket: mount

Verwendung von Auslagerungsspeicher beenden


Systemverwaltung

swapoff Datei

19.2 Kommandos

869

Stoppt die Benutzung von Datei als Auslagerungsspeichers des Kerns. Bei Datei kann es sich um eine Gertedatei (Swapbereich) oder um eine gewhnliche Datei (Swapdatei) handeln. swapoff -a Stoppt die Benutzung aller Partitionen, die in der Datei /etc/fstab als Swapbereiche deniert wurden. swapoff /dev/hda6 Die zweite logische Partition der ersten (E)IDE-Festplatte wird nicht mehr als Auslagerungsplatz verwendet. Siehe auch: swapon, mkswap.

swapon
Paket: mount

Auslagerungsspeicher einbinden
Systemverwaltung

swapon [-p Prioritt] Datei Stellt dem Kern Datei zur Benutzung als Auslagerungsspeicher zur Verfgung. Bei Datei kann es sich um eine Gertedatei (Swapbereich) oder um eine gewhnliche Datei (Swapdatei) handeln, die entsprechend vorbereitet wurde. swapon -a Stellt dem Kern alle Swapbereiche zur Verfgung, die in der Datei /etc/fstab als solche deniert wurden, sofern sie nicht bereits zur Verfgung gestellt worden sind. swapon -s Gibt Informationen ber die Benutzung der Swapbereiche und -dateien aus. -p Prioritt Der Swapbereich oder die Swapdatei soll mit der mit Prioritt angegebenen Prioritt benutzt werden. Prioritt ist eine Zahl zwischen 0 und 32767. Eine hohe Zahl entspricht einer hohen Prioritt, was bedeutet, dass das entsprechende Medium bevorzugt benutzt wird. swapon /var/swapfile Stellt dem Kern die Datei /var/swaple als Auslagerungsspeicher zur Verfgung. Siehe auch: swapoff, mkswap, mount.

sync
Paket: leutils

Datentrger und Cache synchronisieren


Dateiverwaltung, Systemverwaltung

sync Das Kommando synchronisiert Daten und Dateiinformationen im Zwischenspeicher (Cache) mit den physikalischen Datentrgern. Die Verwendung dieses Kommandos empehlt sich, wenn ein Datentrger (z. B. Diskette) aus dem System entfernt werden soll und nicht sicher ist, dass alle Daten tatschlich auf den Datentrger geschrieben worden sind. sync kann u. U. vor Datenverlusten whrend eines kritischen Systemzustands schtzen. Siehe auch: umount, mount.

870

19 Kommandobersicht

tail
Paket: textutils

Ende einer Datei anzeigen


Textverarbeitung, Systemverwaltung

tail [Optionen] [Datei ...] Das Programm liest von der Standardeinangabe oder aus den mit Datei bezeichneten Dateien und gibt standardmig die letzten 10 Zeilen auf die Standardausgabe aus. Wird mehr als eine Datei angegeben, gibt das Programm vor dem Endstck jeder Datei eine Zeile aus, die den Namen der betreffenden Datei beinhaltet. tail eignet sich zur Beobachtung von wachsenden Dateien wie Log-Dateien. -Anzahl | +Anzahl Es wird die mit Anzahl angegebene Menge von Zeilen ausgegeben. Alternativ kann zu Anzahl eine der Einheiten b (512 Byte), k (Kilobyte) oder m (Megabyte) angegeben werden. Achtung: Diese Option muss die erste Option sein. -f | - -follow Nach Ausgabe des Endes wird die Datei beobachtet. Sobald ein anderer Prozess der Datei neue Zeilen hinzufgt, werden diese ebenfalls ausgegeben. -q | -quiet Die Namen von Dateien werden nicht ausgegeben. tail ~/.xsession-errors Die letzten 10 Zeilen der Datei .xsession-errors im Home-Verzeichnis des aufrufenden Benutzers werden ausgegeben. tail -f /var/log/syslog Das Ende der Datei /var/log/syslog wird ausgegeben. Danach wird gewartet, bis der Datei neue Zeilen hinzugefgt werden. Wenn dies passiert, werden diese Zeilen ebenfalls ausgegeben. Daraufhin wird wieder gewartet. . . Siehe auch: head, cat.

tar
Paket: tar

tar-Archiv bearbeiten
Dateiverwaltung, Backup, Installation

tar -x | - -extract [Optionen] Extrahiert Dateien aus einem tar-Archiv. tar -c | - -create [Optionen] [Datei ...] Erzeugt ein Archiv und berschreibt dabei ein bestehendes Archiv. tar -d | - -diff [Optionen] [Datei ...] Vergleicht den Inhalt eines Archivs mit Dateien im Dateisystem. tar -l | - -list [Optionen] Listet den Inhalt eines Archivs auf. tar -r | - -append [Optionen] [Datei ...] Fgt bestehenden Archiven neue Dateien hinzu. tar -u | - -update [Optionen] [Datei ...] Fgt einem bestehenden Archiv neue Dateien zu, wenn diese im Archiv nicht bereits existieren oder neuer sind als die entsprechenden Dateien im Archiv. tar-Archive sind zu einer Einheit zusammengesetzte Sammlungen aus einzelnen Dateien und/oder

19.2 Kommandos

871

Verzeichnissen. Eine solche Einheit kann auf ein Band geschrieben werden oder in einer neuen Datei gespeichert werden. Unter Debian GNU/Linux schreibt tar Archive standardmig auf die Standardausgabe oder liest sie von der Standardeingabe. tar-Archive sind ein weitverbreitetes Format zur Weitergabe von Programm- und Datenpaketen fr Linux/UNIX. Weil tar Archive nicht selbst komprimieren kann, werden tar-Archive mit gzip komprimiert, um Platz zu sparen. Solche Archive haben in der Regel die Endung .tar.gz oder .tgz. Es knnen auch Archive auf anderen Rechnern erstellt werden. -f Datei | - -file=Datei Es wird in das mit Datei bezeichnete tarArchiv geschrieben oder daraus gelesen. Wenn Datei in der Form Benutzer@Rechnername:Dateiname angegeben wird, wird das Archiv auf dem mit Rechnername angegebenen Rechner und mit dem dortigen Namen Dateiname erzeugt. Benutzer@ ist optional und speziziert den Benutzernamen, unter dem auf den fremden Rechner zugegriffen werden soll. Standardwert ist der eigene Benutzername. Voraussetzung ist die Mglichkeit des Zugriffs auf den fremden Rechner ber rsh. -T Datei | - -files-from Datei Die Namen der zu lesenden oder zu schreibenden Dateien werden aus der mit Datei bezeichneten Datei gelesen. Wird fr Datei ein Minuszeichen angegeben, werden die Namen von der Standardeingabe gelesen (siehe Beispiel bei nd (S. 798). - -rsh-command=Programm An Stelle von rsh wird das mit Programm angegebene Programm benutzt, um die Verbindung mit einem fernen Rechner aufzubauen. -v | - -verbose Die Namen der gelesenen oder geschriebenen Dateien werden ausgegeben. -k | - -keep-old-files Beim Extrahieren von Dateien werden keine existierenden Dateien berschrieben. -w | - -interactive Bevor Dateien berschrieben werden, wird nachgefragt, ob dies tatschlich geschehen soll. - -exclude Ausdruck Es werden keine Dateien archiviert, extrahiert oder verglichen, auf deren Name Ausdruck zutrifft. Ausdruck kann Metazeichen wie ? oder * enthalten. Diese mssen durch Anfhrungszeichen vor der Interpretation durch die Shell geschtzt werden. -L Lnge | - -tape-length=Lnge Gibt die Lnge des benutzten Bandes in Kilobyte an. -b Blockgre | - -blocking-factor=Blockgre Legt die Blockgre in Blockgre * 512 Byte fest. Standardwert ist 20. -p | - -preserve-permissions Dateien erhalten beim Auspacken die gleichen Rechte, die sie vor dem Einpacken hatten. - -same-owner Dateien erhalten beim Auspacken denselben Besitzer, den sie whrend des Einpackens hatten. -P | - -absolut-names Beim Hinzufgen von Dateien in ein Archiv werden die absoluten Pfadnamen im Archiv vermerkt (mit / am Anfang).

872

19 Kommandobersicht

- -no-recursion Beim Schreiben von Daten in ein Archiv werden die Inhalte von Verzeichnissen und deren Unterverzeichnissen nicht archiviert. -l | - -one-filesystem Es werden nur Dateien in ein Archiv geschrieben, die sich auf demselben Datentrger benden, auf dem auch das Arbeitsverzeichnis ist. - -remove-files Dateien werden gelscht, nachdem sie einem Archiv hinzugefgt wurden. -z | - -gzip Die zu lesenden oder zu schreibenden Daten werden mit dem Programm gzip komprimiert oder dekomprimiert. -Z | - -compress Die zu lesenden oder zu schreibenden Daten werden mit dem Programm compress komprimiert oder dekomprimiert. -I | - -bzip2 Die zu lesenden oder zu schreibenden Daten werden mit dem Programm bzip2 komprimiert oder dekomprimiert. - -use-compress-program=Programm Die zu lesenden oder zu schreibenden Daten werden mit dem durch Programm spezizierten Programm komprimiert oder dekomprimiert. tar -lzf paket.tar.gz Listet die Namen der Dateien im komprimierten tar-Archiv paket.tar.gz auf. tar -xvzf paket.tar.gz Dekomprimiert und extrahiert den Inhalt von paket tar.gz in das Arbeitsverzeichnis und zeigt die Namen der erzeugten Dateien an. tar -cvzf backup.tar.gz texte/ Erstellt ein komprimiertes tar-Archiv mit dem Namen backup.tar.gz und kopiert das Verzeichnis texte sowie den Inhalt dieses Verzeichnisses und aller Unterverzeichnisse in das Archiv. tar -cvf /dev/tape ~/ Erstellt ein Archiv vom Home-Verzeichnis des aufrufenden Benutzers auf dem durch /dev/tape reprsentierten Bandlaufwerk. Der Benutzer muss Schreibrechte fr dieses Gert haben. tar -uvf /dev/tape ~/ Hngt neue oder vernderte Dateien an das Archiv in dem durch /dev/tape reprsentierten Bandlaufwerk an. Vernderte Dateien berschreiben beim Auspacken die zunchst ausgepackten lteren Dateien. tar -xvf /dev/tape ~/briefe/marion.tex Extrahiert die Datei marion.tex im Verzeichnis briefe im Home-Verzeichnis des aufrufenden Benutzers aus dem Archiv in dem durch /dev/tape reprsentierten Bandlaufwerk, falls diese Datei dort vorhanden ist. tar -cvf /etc backup@backupserver:/backups/host1_etc.tar - -rsh-program=/usr/bin/ssh Erstellt ein Archiv mit dem Inhalt des Kongurationsverzeichnisses /etc auf dem Rechner mit dem Namen backupserver. Auf den Rechner wird mit dem Benutzernamen backup zugegriffen und das Archiv dort im Verzeichnis backups mit dem Namen host1_etc.tar abgelegt. Die Verbindung wird mit dem Programm ssh aufgebaut. Der aufrufende Benutzer muss deswegen berechtigt sein, ber ssh auf den Rech-

19.2 Kommandos

873

ner backupserver unter dem Benutzernamen backup ohne Angabe eines Passworts zuzugreifen. Siehe auch: mt, gzip, bzip2, rsh, cpio, dpkg.

tasksel
Paket: tasksel

Aufgabenbezogene Paketgruppen einrichten


Paketverwaltung

tasksel install task tasksel [Optionen] tasksel ist ein benutzerfreundliches Werkzeug (Front-End), das Pakete zu Aufgabengruppen (Tasks) zusammenfasst und nach der Auswahl apt-get install aufruft. Der Benutzer spart sich damit die Suche nach den Namen der Pakete und deren detaillierte Auswahl. -t -r -i -s -a Testmodus, tut nur so als ob. Richtet alle erforderlichen (required) Pakete ein. Richtet alle wichtigen (important) Pakete ein. Richtet alle Standard-Pakete ein. Zeigt alle Paketgruppen (Tasks) an.

tasksel -a Zeigt alle Paketgruppen an. tasksel -t Erlaubt zu spielen, ohne dass Pakete eingerichtet werden. Siehe auch: apt-get, dpkg.

telnet
Paket: telnet

Mit anderem Rechner verbinden


Netz

telnet [Optionen] [Rechnername] [Portnummer] Es wird eine Telnet-Verbindung mit dem durch Rechnername angegebenen Rechner aufgebaut. Dabei wird Port 23 (telnet) benutzt. Der entfernte Rechner startet einen Login-Prozess, der die Anmeldung auf diesem Rechner ermglicht. Nach erfolgreicher Anmeldung wird auf der Gegenseite eine Shell gestartet, sodass mit diesem Rechner genauso gearbeitet werden kann, als wrde man direkt ein Terminal dieses Rechners benutzen. Durch die Angabe einer Portnummer kann mit einem anderen Dienst auf dem entfernten Rechner verbunden werden. Das Programm bietet die Mglichkeit, durch eine so genannte Escape-Tastensequenz in einen Kommandomodus geschaltet zu werden, von wo aus es sich nach Herstellung der Verbindung zum fremden Rechner kontrollieren lsst. Wird telnet ohne den Namen eines Rechners gestartet, schaltet es sofort in den Kommandomodus. Die wichtigsten Kommandos in diesem Modus sind open Rechnername [Portnummer] (Aufbau einer Verbindung), close (Beenden einer Verbindung) und quit (Beenden des Programms). Der Kommandomodus kann durch die Tastenkombination S TRG-A LT] erreicht werden.

874

19 Kommandobersicht

-a Es wird versucht, eine automatische Anmeldung mit dem Benutzernamen des aufrufenden Benutzers durchzufhren. -e [Zeichen] Das mit Zeichen spezizierte Zeichen wird zur Escape-Sequenz. Wenn Zeichen nicht angegeben wird, wird die Escape-Sequenz abgeschaltet. -l Benutzername Es wird versucht, eine Anmeldung mit Benutzername auf dem fernen System durchzufhren. telnet localhost Baut eine Telnet-Verbindung zum lokalen Rechner auf. telnet mailserver 25 Baut eine Verbindung zum Rechner mailserver auf und verbindet dort mit Port 25. Dieser Port wird fr eingehende SMTP-Verbindungen genutzt. telnet -l schulze verwaltung2 Baut eine Verbindung zum Rechner verwaltung2 auf und versucht, dort eine Anmeldung unter dem Namen schulze vorzunehmen. Siehe auch: in.telnetd, slogin, ssh, ftp.

tload
Paket: procps

Grasche Darstellung der Systemlast


Information

tload [Optionen] Das Programm stellt eine grasche Reprsentation der Systemlast in einem Terminal oder auf einer virtuellen Konsole dar. Die Anzeige wird regelmig aktualisiert. Das Programm wird mit der Tastenkombination S TRG - C verlassen. -d Sekunden Legt den Zeitraum in Sekunden fest, der zwischen den Aktualisierungen des Bildschirms liegen soll. -s Abstand Legt den Abstand zwischen zwei Punkten in Zeichen auf dem Bildschirm fest. Siehe auch: xosview, top, ps, uptime.

todos
Paket: sysutils

Textdatei in DOS-Format umwandeln


Textverarbeitung

todos [Optionen] [Datei ...] todos liest standardmig von der Standardeingabe, wandelt alle Zeilenenden vom DOS- (CRLF)- in das Linux/UNIX-Format um und schreibt das Ergebnis auf die Standardausgabe. Wenn eine oder mehrere Dateien angegeben werden, so werden diese Dateien umgewandelt. -b Vor der Konvertierung von Dateien wird eine Sicherungskopie des Originals erstellt. Diese erhlt die zustzliche Endung .bak. cat brief.txt | todos > briefdos.txt Konvertiert den Inhalt der Datei brief.txt in das DOS-Format und schreibt das Ergebnis in die Datei briefdos.txt. todos -b *txt

19.2 Kommandos

875

Konvertiert alle Dateien mit der Endung .txt im Arbeitsverzeichnis in das DOSFormat und erzeugt vorher Sicherungskopien der Originale. Siehe auch: fromdos, recode.

top
Paket: procps

Systemlast und Prozesse anzeigen


Systemverwaltung, Information

top [Optionen] Das Programm zeigt in einem Terminal oder auf der Konsole wichtige Systeminformationen sowie Informationen ber die laufenden Prozesse. Die Daten werden regelmig aktualisiert. d Abstand Legt den Abstand zwischen Aktualisierungen in Sekunden fest. S Die laufenden Prozesse werden mit der jeweils bentigten CPU-Zeit kumulativ aufgelistet. Siehe auch: xosview, ps, gtop.

touch
Paket: leutils

Zeitstempel einer Datei ndern


Dateiverwaltung

touch [Optionen] Datei [Datei ...] Standardmig wird das Datum der jngsten Vernderung sowie das Datum des jngsten Zugriffes der mit Datei bezeichneten Dateien auf die aktuelle Uhrzeit gesetzt. Falls eine der angegebenen Dateien nicht existiert, wird sie als leere Datei erzeugt. -c | - -no-create Nicht-existente Dateien werden nicht erzeugt. -a | - -time=access Es wird nur das Datum des jngsten Zugriffs gendert. -m | - -time=modify Es wird nur das Datum der jngsten Vernderung gendert. -r Datei | - -reference=Datei Die Zeiten werden so gesetzt, wie sie bei Datei gesetzt sind. -t MMTTSSmm[[HH]JJ][.ss] Anstelle des aktuellen Datums wird das angegebene benutzt. Dabei steht MM fr den Monat, TT fr den Tag, SS fr die Stunde, HH fr das Jahrhundert, JJ fr das Jahr und ss fr die Sekunde. touch program.c nderungs- und Zugriffsdatum der Datei program.c werden auf das aktuelle Datum gesetzt. touch -r Makefile src/*c Alle Dateien mit der Endung .c im Unterverzeichnis src des Arbeitsverzeichnisses erhalten das gleiche nderungs- und Zugriffsdatum wie die Datei Makele. touch -a -t 010108301905 Makefile Das Datum des letzten Zugriffs der Datei Makele wird auf den 1. Januar 1905, 8.30 Uhr gesetzt. Siehe auch: make, date, ls.

876

19 Kommandobersicht

traceroute
Paket: traceroute

Route zu einem Rechner anzeigen


Netz

traceroute [Optionen] IP-Adresse Das Programm zeigt an, welchen Weg IP-Pakete gehen, um zu einem Rechner zu gelangen. Standardmig wird versucht, alle Router anzuzeigen, welche die Pakete weiterleiten, und zu jedem der Router die Zeiten anzuzeigen, die drei Testpakete brauchten, um dorthin und wieder zurck zu gelangen. -l Der TTL-Wert (time to live) der zurckgelieferten Pakete wird ebenfalls angezeigt. Aus dieser Information kann erkannt werden, ob zurcklaufende Pakete einen anderen Weg nehmen. -t TTL Der maximale TTL-Wert wird mit TTL angegeben. Standard ist 30. -w Sekunden Es wird ber den mit Sekunden angegebenen Zeitraum auf Pakete gewartet. traceroute ftp.debian.org Die Stationen, die IP-Pakete zum Erreichen des Servers ftp.debian.org brauchen, werden angezeigt. Siehe auch: ping.

true
Paket: shellutils

Erfolgreiches Nichtstun
Shellskripte

true Das Kommando hat keine Wirkung, auer dass es durch seinen Rckgabewert eine erfolgreiche Beendigung signalisiert (Rckgabewert 0). while true; do echo Hoch lebe Debian!; done Endlosschleife Siehe auch: false.

tty
Paket: shellutils

Aktuelles Terminal anzeigen


Shellskripte

tty [Optionen] Das Programm gibt aus, ob und mit welchem Terminal die Standardeingabe des Prozesses verbunden ist. Die Information kann in Skripten dazu verwendet werden festzustellen, ob das Skript mit einem Terminal verbunden ist und es sinnvoll ist, den Benutzer zu Eingaben aufzufordern. Der Rckgabewert ist 0, wenn die Standardeingabe mit einem Terminal verbunden ist, und 2, wenn nicht. Bei einem Fehler wird 3 zurckgeliefert. -s | - -silent Der Name des Terminals wird nicht ausgegeben. if tty -s; then echo Weitermachen?; read answer; fi Diese Zeile in einem Shellskript erfragt, ob fortgefahren werden soll, falls die Standardeingabe mit einem Terminal verbunden ist. Die Antwort wird nicht ausgewertet.

19.2 Kommandos

877

tune2fs
Paket: e2fsprogs

Einstellungen an Ext2-Dateisystem ndern


Systemverwaltung

tune2fs [Optionen] Gertedatei Das Programm verndert die im Superblock eines Ext2-Dateisystems gespeicherten Einstellungen. Achtung: Diese Einstellungen drfen nie bei einem zum Schreiben gemounteten Datentrger gendert werden! -l Gibt die gegenwrtigen Einstellungen im Superblock des Datentrgers aus. -c Anzahl Legt fest, wie oft das Dateisystem gemountet werden darf, bevor eine berprfung des Dateisystems erzwungen wird. -i Zeitraum Legt die Zeit fest, nach deren Ablauf eine berprfung des Dateisystems erzwungen wird. Dieser Zeitraum kann in Tagen (z. B. 10d), in Wochen (z. B. 3w) oder in Monaten (z. B. 6m) angegeben werden. Standardmig wird die angegebene Zahl als Zeitraum in Tagen interpretiert. -m Prozentsatz ndert den fr den Systemverwalter reservierten Speicherplatzanteil auf dem Datentrger in den angegebenen Prozentsatz. -u Benutzer Legt fest, dass der reservierte Speicherplatzanteil nur von dem mit Benutzer spezizierten Benutzer verwendet werden kann. -g Gruppe Legt fest, dass der reservierte Speicherplatzanteil von Mitgliedern der mit Gruppe spezizierten Gruppe verwendet werden kann. tune2fs -c 1 /dev/sda2 Die zweite primre Partition der ersten SCSI-Festplatte soll nach jeder Benutzung geprft werden. tune2fs -m 10 -g notfall /dev/sda2 Der reservierte Anteil auf der gleichen Partition soll 10 Prozent betragen und von Mitgliedern der Benutzergruppe notfall verwendet werden knnen. Siehe auch: mke2fs, e2fsck.

tunelp
Paket: util-linux

Einstellungen der parallelen Schnittstelle ndern


Systemverwaltung

tunelp Gertedatei [Optionen] Ohne Optionen aufgerufen zeigt das Kommando an, ob die mit Gertedatei bezeichnete parallele Schnittstelle einen Interrupt benutzt und wenn, welchen. ber verschiedene Optionen lsst sich die Ansteuerung der bezeichneten parallelen Schnittstelle durch den Kern verndern. -i Interrupt Der Treiber wird angewiesen, den mit Interrupt angegebenen Interrupt zu verwenden. Dies muss der Interrupt der entsprechenden parallelen Schnittstelle sein. Der Polling-Modus wird durch diesen Parameter ausgeschaltet. Wird fr Interrupt 0 angegeben, wird wieder in den Polling-Modus geschaltet.

878

19 Kommandobersicht

-c Zeit Es wird die mit Zeit in hundertstel Sekunden angegebene Zeit gewartet, bis wieder versucht wird, Daten an den Drucker zu senden. Ein geringer Wert (z. B. 10) erhht die Systemlast beim Drucken, whrend ein hoher Wert (z. B. 500) sie verringert. Wird der Wert 0 angegeben, versucht das System stndig, Daten an den Drucker zu schicken. Der Standardwert ist 10. -t Anzahl Es wird so oft wie mit Anzahl angegeben versucht, ein Zeichen an den Drucker zu schicken, bevor die mit der Option -c angegebene Zeit gewartet wird. Der Standardwert ist 250. Bei modernen Druckern sind geringere Werte angemessener (z. B. 80). -r Fhrt einen Reset der angegebenen Schnittstelle durch. -a on | off Legt fest, ob bei einem Fehler versucht werden soll, weiter zu drucken. Vorgabewert ist abzubrechen, wenn ein Fehler auftritt (on). Gelegentlich ist es jedoch wnschenswert, dass weiter versucht wird zu drucken, wenn ein Fehler aufgetreten ist (etwa wenn kein Papier mehr im Drucker ist.) -s Gibt den Status des Druckertreibers fr die angegebene Schnittstelle aus. tunelp /dev/lp0 -i 7 Schaltet die erste parallele Schnittstelle auf den Interrupt-Modus und verwendet den Interrupt 7. tunelp /dev/lp1 -i 0 -c 400 -t 50 Schaltet die zweite parallele Schnittstelle auf den Polling-Modus und wartet 4 Sekunden zwischen zwei Versuchen, Daten zu senden. Legt auerdem fest, dass nur 50 mal hintereinander versucht werden soll, Daten zu senden, bevor gewartet wird. Die Einstellungen verringern die Systemlast; die Folge kann langsames Drucken sein. Siehe auch: setserial, /proc/interrupts, /proc/parport.

tzcong
Paket: libc6

Zeitzone einstellen
Systemverwaltung

tzselect Das Programm gibt nach seinem Aufruf die aktuelle Zeitzone aus und fragt dann, ob gewnscht wird, diese zu ndern. Falls diese Frage mit y und E INGABE beantwortet wird, werden einige geograsche Bereiche zur Auswahl angeboten. Es ist dann die Ziffer einzugeben, die dem Bereich entspricht, in dem man sich bendet. Danach werden die dem System bekannten Standorte in dem ausgewhlten Bereich angezeigt. Hier ist der Name eines der angezeigten Standorte einzugeben, an dem die Uhrzeit mit dem eigenen Standort bereinstimmt. Siehe auch: tzselect.

umount
Paket: mount

Datentrger aus Dateisystem aushngen


Systemverwaltung

umount [Optionen] [Gertedatei | Verzeichnis] Das Programm entfernt den mit Gertedatei angegebenen Datentrger aus dem Dateisystem (hngt ihn aus, unmountet ihn). Alternativ kann das Verzeichnis angegeben werden, in das der zu entfernende Datentrger gemountet war. Noch nicht

19.2 Kommandos

879

geschriebene Daten werden vor dem Unmounten auf den betreffenden Datentrger geschrieben. Auswechselbare Datentrger drfen nach dem Unmounten aus dem System entfernt werden. Ein Datentrger kann erst dann aus dem System entfernt werden, wenn kein Prozess auf Dateien auf diesem Datentrger zugreift. Ansonsten erfolgt die Fehlermeldung: Device is busy Ursache kann schon sein, dass das Arbeitsverzeichnis eines Prozesses auf dem zu entfernenden Datentrger liegt. Bevor eine Diskette aus dem Dateisystem entfernt wird, sollte sichergestellt sein, dass sich das Arbeitsverzeichnis nicht auf dem Datentrger bendet. -r Falls der Datentrger nicht erfolgreich entfernt werden kann, wird versucht, ihn nur mit Leseberechtigung (read-only) zu mounten. -a Es werden alle Datentrger, die in der Datei /etc/mtab als gemountet vermerkt sind, entfernt. -t Dateisystemtypen Zusammen mit der Option -a werden nur die Datentrger entfernt, die die mit Dateisystemtypen bezeichneten Dateisystemtypen haben (z. B. ext2 oder msdos). Dateisystemtypen ist eine Komma-separierte Liste aus Dateisystemtypen. -n Der Datentrger wird entfernt, jedoch nicht aus der Datei /etc/mtab gestrichen. umount /floppy Entfernt den in das Verzeichnis /oppy gemounteten Datentrger aus dem Dateisystem. umount /dev/sda1 Entfernt den Datentrger /dev/sda1 (erste primre Partition auf der ersten SCSIFestplatte) aus dem Dateisystem. umount -a -r Versucht, alle Datentrger aus dem Dateisystem zu entfernen. Fr Datentrger, bei denen dies nicht gelingt, wird versucht, sie neu und ohne Schreibberechtigung zu mounten. Mit diesem Kommando kann erreicht werden, Datentrger sauber zu schlieen, wenn das System in einem kritischen Zustand ist. Siehe auch: mount, sync.

uname
Paket: shellutils

Namen und Version des Betriebssystems anzeigen


Shellskripte

uname [Optionen] Das Kommando gibt den Namen des Betriebssystems sowie optional zustzliche Informationen aus. Mit der Information knnen Skripte, die fr verschiedene Betriebssysteme und Rechnerarchitekturen geschrieben worden sind, feststellen, auf was fr einem Rechner sie gerade ausgefhrt werden. -m | - -machine Gibt den Namen der Rechnerarchitektur aus. -n | - -nodename Gibt den Netznamen des Rechners aus. -s | - -sysname Gibt den Namen des Betriebssystems aus (Standardeinstellung).

880

19 Kommandobersicht

-s | - -release Gibt die Releasenummer des Betriebssystems aus. Unter Linux wird die Versionsnummer des Kerns ausgegeben. -v Gibt die Versionsnummer des Betriebssystems aus. Unter Linux wird u. a. das Datum, an dem der Kern kompiliert wurde, ausgegeben. -a | - -all Gibt alle Informationen zusammen aus. uname -a Gibt eine Zeile mit Informationen ber die Rechnerarchitektur und das Betriebssystem aus. Siehe auch: hostname, /proc/cpuinfo, /proc/version.

uncompress
Paket: gzip

Datei dekomprimieren
Dateiverwaltung

uncompress [Optionen] [Dateiname ...] Unter Debian GNU/Linux ist uncompress ein Link auf das Programm gzip, mit dem Dateien im compress-Format dekomprimiert werden knnen. uncompress Datei.Z Dekomprimiert die Datei Datei.Z und schreibt das Ergebnis in die Datei Datei. Die Ausgangsdatei wird gelscht. Siehe auch: gzip, gunzip, zip, unzip.

unzip
Paket: unzip

PK-Zip-Archiv auspacken
Dateiverwaltung, Kompatibilitt

unzip [Optionen] Archivdatei [Archivdatei ...] [-x Datei ...] [-d Verzeichnis] Das Programm unzip entpackt zip-Archive. Diese stellen unter DOS/MS-Windows und anderen Betriebssystemen das Standard-Archivformat dar. Aus dem Archiv werden alle Dateien extrahiert und in das Arbeitsverzeichnis gelegt. Falls sich in dem Archiv Unterverzeichnisse benden, werden diese erzeugt. unzip berschreibt bereits existierende Dateien nicht automatisch, sondern fragt nach, wie in einem solchen Fall verfahren werden soll. Bei der Angabe von Dateinamen drfen Metazeichen angegeben werden. Diese mssen normalerweise in Anfhrungszeichen gesetzt werden, damit sie nicht von der Shell interpretiert werden. -l Der Archiv-Inhalt wird angezeigt, es werden keine Dateien ausgepackt. -d Verzeichnis Die Dateien werden in das mit Verzeichnis angegebene Verzeichnis ausgepackt. -x Datei [Datei ...] Die mit Datei angegeben(en) Datei(en) werden nicht ausgepackt. -p Die extrahierten Daten werden auf die Standardausgabe geschrieben, es werden keine Dateien erzeugt. -f Es werden nur solche Dateien ausgepackt, die bereits existieren und deren letztes Modikationsdatum lter ist als das der Dateien im Archiv. -z Zeigt eine Beschreibung des Archivs an, falls vorhanden.

19.2 Kommandos

881

-a Falls notwendig, werden Textdateien umgewandelt (siehe auch todos.) -C Dateinamen werden ohne Bercksichtigung von Gro- und Kleinschreibung interpretiert. -j Im Archiv enthaltene Verzeichnisse werden nicht erzeugt. Alle Dateien werden in das gleiche Verzeichnis ausgepackt. Dies entspricht dem Verhalten des DOSProgramms PKZIP. -P Passwort Wenn das Zip-Archiv mit einem Passwort geschtzt ist, kann der Zugriff durch die Angabe von Passwort erfolgen. -L Dateien werden mit kleingeschriebenen Dateinamen angelegt. -X Dateien werden mit den gleichen Besitzern und Gruppen angelegt, die sie beim Einpacken hatten (funktioniert nur, wenn das Archiv unter Linux/UNIX erstellt wurde). unzip -l archiv.zip Listet die Namen der in der Archivdatei archiv.zip enthaltenen Dateien und Verzeichnisse auf. unzip archiv.zip Extrahiert alle Dateien und Verzeichnisse aus der Archivdatei archiv.zip und legt sie im Arbeitsverzeichnis an. unzip -j -L -C archiv.zip -d tmp -x "*.exe" Extrahiert die in der Archivdatei archiv.zip enthaltenen Dateien und legt sie im Verzeichnis tmp an. Eventuell vorhandene Verzeichniseintrge werden nicht erzeugt, alle Dateien werden direkt in das Verzeichnis tmp geschrieben. Alle Dateinamen werden kleingeschrieben erzeugt. Dateien, die ohne Bercksichtigung von Ground Kleinschreibung die Endung .exe haben, werden nicht ausgepackt. Siehe auch: zip, gzip, gunzip, tar.

updatedb
Paket: ndutils

locate-Datenbank aktualisieren
Systemverwaltung

updatedb Aktualisiert die Datenbank der auf dem System vorhandenen Dateien. updatedb wird blicherweise tglich durch das im Verzeichnis /etc/cron.daily installierte Skript nd ausgefhrt. Das Programm wird ber die Datei /etc/updatedb.conf konguriert. Siehe auch: locate, nd, cron.

uptime
Paket: procps

Systemlaufzeit anzeigen
Information

uptime Das Programm gibt eine Zeile aus, in der die folgenden Informationen enthalten sind: Die aktuelle Uhrzeit. Der Zeitraum, ber den das System bisher unterbrechungsfrei hochgefahren ist. Die Anzahl der angemeldeten Benutzer.

882

19 Kommandobersicht

Die durchschnittliche Systemlast der letzten Minute, der letzen fnf Minuten und der letzten 15 Minuten. Siehe auch: w, top, who, /proc/uptime.

userdel
Paket: passwd

Benutzerkonto lschen
Benutzerverwaltung

userdel [-r] Benutzername Das Programm lscht das Konto des mit Benutzername angegebenen Benutzers vom System. Standardmig werden die Dateien des Benutzers dabei nicht gelscht. Der Besitzer des zu lschenden Kontos darf nicht angemeldet sein. -r Lscht das Home-Verzeichnis des zu lschenden Benutzers und alle darin enthaltenen Dateien. Andere Dateien auf dem System, die nicht unterhalb des Home-Verzeichnisses liegen (z. B. in /var/spool/mail), werden nicht gelscht. userdel meier Lscht das Konto des Benutzers meier. userdel -r henkel Lscht das Konto des Benutzer henkel sowie sein Home-Verzeichnis mit allen darin enthaltenen Dateien und Unterverzeichnissen. Siehe auch: adduser, usermod, nd.

usermod
Paket: passwd

Benutzerkonto ndern
Benutzerverwaltung

usermod Option [Option ...] Benutzername Verndert die Eigenschaften des Benutzerkontos von Benutzername. Folgende nderungen sind mglich: -c Kommentar Die Zeile mit Zusatzinformationen (GECOS-Feld) des Benutzerkontos wird auf den mit Kommentar angegebenen Wert verndert. -d Verzeichnis Der Besitzer des Kontos erhlt das mit Verzeichnis angegebene Home-Verzeichnis. Wenn dieses noch nicht existiert, wird es angelegt. -m Diese Option sorgt bei gleichzeitiger Verwendung der Option -d dafr, dass die Dateien des Benutzers aus dem alten in das neue Home-Verzeichnis verschoben werden. -e Datum Gibt das Datum an, an dem das Benutzerkonto gesperrt wird. Das Datum muss in der Form MM/TT/JJ angegeben werden (z. B. 06/04/00 fr den 4. Juli 2000) -f Tage Gibt die Anzahl der Tage an, nach der das Benutzerkonto gesperrt wird, wenn das Passwort abgelaufen ist. -g Gruppe Legt die primre Gruppe des Benutzers fest. Diese Gruppe muss existieren. Fr Gruppe kann der Gruppenname oder die numerische Gruppen-ID angegeben werden.

19.2 Kommandos

883

-l Name Der (Login-)Name des Benutzers wird auf den mit Name angegebenen Wert gendert. Gewhnlich sollte nach einer nderung des Benutzernamens ebenfalls das Home-Verzeichnis gendert werden, damit Benutzernamen und Home-Verzeichnisse weiterhin die gleichen Bezeichnungen tragen. -s Shell Legt die Standardshell des Benutzers fest. Das ist die Shell, die nach der Anmeldung des Benutzers gestartet wird (Standard: Bash). -u Benutzer-ID Weist dem Benutzer eine neue Benutzer-ID zu. Die Nummer darf noch nicht vergeben sein. Dateien im und unterhalb des HomeVerzeichnisses des betreffenden Benutzers werden an eine solche nderung automatisch angepasst. Andere Dateien mssen manuell angepasst werden. usermod -c "Mitarbeiter der Woche" schulze Weist dem Informationsfeld des Benutzers schulze den Wert Mitarbeiter der Woche zu. usermod -c marion mueller -l mueller -d /home/mueller -m -g verkauf -e 02/05/04 schulze Nachdem unser Mitarbeiter der Woche bermtig geworden und rausgeogen ist, weist dieses Kommando sein Konto der neuen Benutzerin mueller zu. Der Kommentar wird entsprechend angepasst, Benutzername und Home-Verzeichnis werden verndert, das Konto wird einer neuen primren Gruppe zugeordnet und luft am 5. Februar 2004 ab. Siehe auch: adduser, userdel, chage, nd, nger.

vi
Paket: nvi, elvis-tiny, elvis, vim

Texteditor
Textverarbeitung

vi [Optionen] [Datei ...] Das Programm ist der Standard-Texteditor auf Linux/UNIX-Systemen. Es gibt mehrere vi-Implementierungen, die mit verschiedenen Debian-Paketen installiert werden. Die Grundzge der Benutzung von vi sind in Kapitel 5.9, S. 123 erklrt. Fr den Anfang reicht die Kenntnis von etwa einem Dutzend vi-Kommandos; alle Mglichkeiten des Editors schpft kaum ein Benutzer aus. Wird das Programm ohne Angabe einer Datei aufgerufen, wird eine leere Datei erstellt. Es kann Text eingegeben und editiert werden und dann abgespeichert werden. Wird vi mit Angabe von Datei(en) aufgerufen, werden diese geffnet und knnen mit dem Editor bearbeitet werden. Siehe auch: ae, emacs, xemacs.

vigr
Paket: passwd

Gruppendatei editieren
Systemverwaltung

vigr [-s] Das Kommando ffnet die Gruppendatei /etc/group mit dem Standard-Editor (normalerweise vi). -s ffnet anstatt von /etc/group die Datei /etc/gshadow, in der bei Verwendung von Schattenpasswrtern die Gruppenpasswrter gespeichert werden.

884

19 Kommandobersicht

Siehe auch: vipw.

vipw
Paket: passwd

Benutzerdatei editieren
Benutzerverwaltung

vipw [-s] Die Benutzerdatei (/etc/passwd) sollte nicht mit einem Editor bearbeitet werden, weil die Gefahr besteht, dass andere Benutzer die Datei etwa durch Wahl eines neuen Passwortes verndern, whrend sie bearbeitet wird. Wird sie dann nach der Bearbeitung gesichert, werden die zwischenzeitlichen nderungen berschrieben und gehen verloren. Das Programm vipw verhindert Vernderungen an der Datei /etc/passwd durch andere Prozesse und ruft den Standard-Editor (vi) oder den in der Umgebungsvariable EDITOR festgelegten Editor mit der Datei auf, sodass sie gefahrlos bearbeitet werden kann. -s ffnet die Datei /etc/shadow, in welcher die verschlsselten Passwrter bei Verwendung von Schattenpasswrtern gespeichert werden, anstatt von /etc/passwd. vipw ffnet die Datei /etc/passwd mit dem Editor und schtzt sie vorher vor Vernderung durch andere Prozesse. Siehe auch: vipw, adduser, userdel, usermod, chage.

w
Paket: procps

Systemlast und Benutzeraktivitten anzeigen


Information

w [Optionen] [Benutzer] Das Programm zeigt in der ersten Zeile die gleiche Information wie das Kommando uptime an (Uhrzeit, Laufzeit des Systems, Systemlast). Dazu werden die Namen der angemeldeten Benutzer mit folgenden Informationen angezeigt: Der Name des Terminals, auf dem der Benutzer arbeitet (TTY). Der Name des Rechners, von dem aus sich der Benutzer angemeldet hat (FROM). Die Uhrzeit bzw. das Datum, zu der sich der Benutzer angemeldet hat (LOGIN@). Die Zeit, seit deren Ablauf der Benutzer keine Aktivitten mehr gezeigt hat (IDLE). Die Prozessorzeit, welche die laufenden Prozesse des Benutzers bisher verbraucht haben (JCPU). Die Prozessorzeit, die der Prozess im Vordergrund des dem Benutzer zugewiesenen Terminals bisher verbraucht hat (PCPU). Der Name des Vordergrundprozesses (WHAT). -s Es wird nur eine Kurzform ausgegeben. -u Es wird nicht ausgegeben, von wo sich Benutzer angemeldet haben. Siehe auch: uptime, who, nger.

19.2 Kommandos

885

wall
Paket: bsdutils

Nachricht an alle angemeldeten Benutzer verteilen


Kommunikation

wall [Datei] Das Kommando gibt eine Nachricht auf allen Terminals aus, an denen Benutzer angemeldet sind. Wenn mit Datei eine Datei angegeben ist, wird der Inhalt von Datei ausgegeben. Als Vorgabe wird von der Standardeingabe gelesen (Abbrechen mit S TRG - D). Benutzer haben die Mglichkeit, zu verhindern, dass von anderen Benutzern auf ihren Terminals geschrieben wird (siehe mesg). Der Systemverwalter kann jedoch immer Nachrichten an alle Benutzer schicken. echo Essenszeit | wall Gibt auf allen Terminals mit angemeldeten Benutzern die Meldung Essenszeit aus. Siehe auch: mesg, talk, write, rwall.

watch
Paket: procps

Programmausgaben regelmig aktualisieren


Information

watch [-n Sekunden] Programm [Argumente] Das mit Programm angegebene Programm wird alle 2 Sekunden aufgerufen und seine Ausgabe auf dem Terminal dargestellt. Dies erlaubt das bequeme Beobachten von Prozessausgaben und Systemzustnden. -n Sekunden Die Ausgabe wird alle Sekunden aktualisiert. watch -n 5 df Zeigt die Ausgabe von df auf dem Bildschirm an und aktualisiert sie alle 5 Sekunden.

wc
Paket: textutils

Zeilen, Wrter und Zeichen in einer Datei zhlen


Textverarbeitung

wc [Optionen] [ Datei ...] Das Programm liest Daten von der Standardeingabe oder aus einer oder mehreren mit Datei angegebenen Datei(en). Es gibt fr jede gelesene Datei die Anzahl der Zeilen, die Anzahl der Wrter und die Anzahl der Zeichen (Bytes) in der betreffenden Datei hintereinander aus. Wenn mehrere Dateien angegeben wurden, wird zum Schluss eine Zeile mit der Summe der Werte ausgegeben. -c | - -chars Gibt nur die Anzahl der Zeichen aus. -w | - -words Gibt nur die Anzahl der Wrter aus. -l | - -lines Gibt nur die Anzahl der Zeilen aus. wc -w -l src/*tex Gibt die Anzahl der Wrter und Zeilen aller Dateien im Verzeichnis src deren Namen die Endung tex haben aus. Zum Schluss wird die Summe dieser Werte ausgegeben. sed -n -e /Abschnitt/p bericht.txt | wc -l

886

19 Kommandobersicht

Gibt die Anzahl aller Zeilen in der Datei bericht.txt aus, in denen das Wort Abschnitt vorkommt.

whatis
Paket: man-db

Kurzbeschreibung zu Kommando anzeigen


Dokumentation

whatis [Optionen] Suchbegriff Es wird eine Kurzbeschreibung des mit Suchbegriff angegebenen Kommandos ausgegeben. Standardmig wird Suchbegriff dabei als eindeutiges Wort interpretiert. -r | - -regex Suchbegriff wird als regulrer Ausdruck interpretiert. -w | - -wildcard Suchbegriff enthlt Metazeichen (*,?,[]). whatis ls Gibt eine Kurzbeschreibung des Kommandos ls aus. whatis -w "*ls*" Gibt Kurzbeschreibungen aller Kommandosi aus, in denen die Zeichenkette ls vorkommt. Siehe auch: man, apropos, info.

whereis
Paket: util-linux

Programm nden
Dateiverwaltung

whereis [Optionen] Dateiname [Dateiname ...] Klassischerweise gehren unter Linux/UNIX zu einem Programm die Programmdatei selbst, eine Manual-Seite und eine Datei, die den Quellcode des Programms enthlt. whereis sucht nach diesen Komponenten auf dem System in vorgegebenen Verzeichnissen. -b Es wird nur nach dem Programm selbst gesucht. -m Es wird nur nach der Manual-Seite gesucht. -s Es wird nur nach der Quelldatei gesucht. whereis -m gzip Gibt den Pfad- und Dateinamen zu der Manualseite von gzip aus. Siehe auch: nd, which.

which
Paket: debianutils

Programmdatei anzeigen
Information, Dateiverwaltung

which Datei In einigen Fllen existieren auf dem System unterschiedliche Programmdateien mit dem gleichen Namen in unterschiedlichen Verzeichnissen, und es ist unklar, welche beim Aufruf des Programms tatschlich ausgefhrt wird. which gibt den Pfad- und Dateinamen der mit Datei bezeichneten Datei aus, die ausgefhrt wird, wenn Datei als Kommando eingegeben wird. Mit dem Kommando lsst sich vor allem in Skripten der absolute Pfadname zu einem Programm konstruieren.

19.2 Kommandos

887

which vi Gibt den Pfad- und Dateinamen der Datei aus, die nach Eingabe des Kommandos vi ausgefhrt wird. dpkg -S which ls Gibt den Namen des Debian-Pakets aus, dass die Datei enthlt, die nach Aufruf des Kommandos ls ausgefhrt wird. Siehe auch: nd, whereis.

who
Paket: shellutils

Angemeldete Benutzer anzeigen


Information

who [Optionen] Das Kommando gibt aus, wer zur Zeit am System angemeldet ist, auf welchem Terminal er arbeitet, wann er sich angemeldet hat und von welchem Rechner, falls er sich nicht am lokalen System angemeldet hat. -u -m -H -w | - -idle Zeigt an, wie lange ein Benutzer keine Aktivitt mehr gezeigt hat. | am i Zeigt nur die Information ber den aufrufenden Benutzer an. | - -heading Zeigt eine berschriftenzeile an. | - -message Zeigt fr jeden angemeldeten Benutzer an, ob dieser Nachrichten auf seinem Terminal akzeptiert (+) oder nicht (-) oder ob dies nicht festgestellt werden kann (?). -r Zeigt den aktuellen Runlevel an. who am i Zeigt Rechner und Benutzername des aktuellen Benutzers sowie den Namen des Terminals und Uhrzeit der Anmeldung an. Siehe auch: w, whoami, nger, users, wall, write.

whoami
Paket: shellutils

Eigenen Benutzernamen anzeigen


Information, Shellskripte

whoami Das Kommando zeigt den (effektiven) Benutzernamen des aufrufenden Benutzers an. Die Information kann in Shellskripten genutzt werden, um abhngig vom Benutzer, der das Skript ausfhrt, Entscheidungen zu treffen. if [ whoami = root ]; then echo Administrator; else echo User; fi Probieren Sie es aus! Siehe auch: id, who, w.

wine
Paket: wine

MS-Windows-Programm ausfhren
Kompatibilitt

wine [Optionen] Datei [Datei ...]

888

19 Kommandobersicht

Das Programm ldt die MS-Windows-Laufzeitumgebung wine und startet darin das oder die mit Datei angegebene(n) MS-Windows-Programm(e). Die auszufhrenden Programmdateien mssen sich entweder im Arbeitsverzeichnis oder im Suchpfad fr MS-Windows-Programme benden. Dieser wird in der Kongurationsdatei von wine deniert. Alternativ kann auch ein voller Pfadname angegeben werden. Hierbei ist dann sowohl die unter Linux/UNIX als auch die unter MS-Windows bliche Schreibweise zulssig. Zu startende Programmdateien mssen sich in oder unterhalb eines Verzeichnisses benden, das in der Kongurationsdatei als MS-Windows-Laufwerk deniert wurde. wine wird ber die Datei /etc/wine.conf oder ber die Datei .winerc im Home-Verzeichnis des aufrufenden Benutzers konguriert. - -config Datei Es wird die mit Datei bezeichnete Kongurationsdatei benutzt. -desktop Gre Die von wine gestarteten MS-Windows-Programme werden zusammen in einem eigenen Fenster von der mit Gre bezeichneten Gre dargestellt. Gre muss in der Form HorizontalxVertikal angegeben werden, wobei Horizontal fr die horizontale Gre und vertikal fr die vertikale Gre des Fensters in Pixeln steht. - -managed Die Fenster von MS-Windows-Programmen werden von dem laufenden Window-Manager verziert und verwaltet. - -language Sprache Die von MS-Windows-Programmen zu verwendende Sprache wird mit Sprache festgelegt. Gltige Werte fr Sprache sind beispielsweise De (Deutsch) und En (Englisch). - -dll Biblio[,Biblio...]=n|e|s|b[: Biblio...] Die mit Biblio angegebenen MS-Windows-Programmbibliotheken sollen auf eine der folgenden Arten geladen werden: n (native, original MS-Windows-Bibliothek), e (elfdll, wine-Windows-Bibliothek), s (so, Linux-Bibliothek) oder b (builtin, in wine eingebaute Bibliothek). wine sol.exe Startet das MS-Windows-Programm sol.exe (Solitr). wine - -language de - -managed /mnt/hda1/Programme/msoffice/Winword/winword.exe Startet das MS-Windows-Programm winword.exe mit Einstellungen fr deutsche Sprache. Die Fenster dieses Programms werden vom laufenden Window-Manager verwaltet. Der Name des Programms wurde mit vollem Pfad- und Dateinamen angegeben. wine - -desktop 800x600 - -dll user,user32,shell,shell32,commdlg,comdlg32=n explorer Startet das MS-Windows-Programm explorer.exe in einem eigenen Fenster mit einer Gre von 800 mal 600 Bildpunkten und verwendet die original MSWindows-Bibliotheken user.dll, user32.dll, shell.dll, shell32.dll, commdlg.dll und comdlg32.dll. Siehe auch: dosemu, Kapitel 18.3, S. 760.

19.2 Kommandos

889

xargs
Paket: ndutils

Kommandozeile erzeugen
Dateiverwaltung, Shellskripte

xargs [Optionen] [Kommando [Argumente]] Das Programm liest von der Standardeingabe und ruft das mit Kommando angegebene Programm mit den eventuell durch Argumente angegebenen Argumenten am Anfang der Kommandozeile (nach dem Programmnamen) und den von der Standardeingabe gelesenen durch Leerzeichen, Tabulatoren oder neue Zeilen getrennte Zeichenketten als darauf folgende Argumente auf. Wird Kommando nicht angegeben, so wird /bin/echo aufgerufen. xargs eignet sich dafr, mit einer Liste von Dateien bestimmte Aktionen auszufhren. -l [Zeilen] | - -max-lines[=Zeilen] Dem aufzurufenden Kommando werden nicht mehr Argumente angehngt, als in jeweils durch Zeilen spezizierte Zeilen enthalten sind. Standardwert ist 1, wenn Zeilen nicht angegeben wird. Kommando wird dann mehrmals aufgerufen, bis der gesamte Inhalt der Eingabe bergeben ist. -n Anzahl | - -max-args=Anzahl Dem aufzurufenden Kommando werden nicht mehr als mit Anzahl angegebene Argumente angehngt. Kommando wird mehrmals aufgerufen, wenn die Eingabe mehr als Anzahl Zeichenketten enthlt. -p | - -interactive Bevor tatschlich ein Programm aufgerufen wird, wird die erzeugte Kommandozeile ausgegeben und nachgefragt, ob das Kommando ausgefhrt werden soll. -s Anzahl | - -max-chars=Anzahl Die erzeugten Kommandozeilen drfen die mit Anzahl angegebene Lnge nicht berschreiten. Das aufzurufende Programm wird mehrmals aufgerufen, wenn nicht die gesamte Eingabe mit einer Kommandozeile verarbeitet werden kann. cat alte_dateien | xargs -p rm Ruft das Kommando rm mit den in der Datei alte_dateien enthaltenen Dateinamen auf. Vor jedem Aufruf von rm wird die zusammengestellte Kommandozeile angezeigt und nachgefragt, ob sie tatschlich ausgefhrt werden soll. find ~/ -name core | xargs ls -l Sucht ausgehend vom Home-Verzeichnis des aufrufenden Benutzers alle Dateien mit dem Namen core und zeigt die zugehrigen Dateiinformationen (ls -l = ausfhrliches Format) an. Siehe auch: nd, locate.

yes
Paket: shellutils

Frage beantworten
Shellskripte

yes [Zeichenfolge] Einige Programme fragen den Benutzer, ob sie gewisse Aktionen durchfhren sollen. In den meisten Fllen lsst sich diese Eigenschaft abschalten, bei manchen Programmen jedoch nicht. Dies ist dann strend, wenn solche Programme im Hintergrund

890

19 Kommandobersicht

ohne Benutzereinwirkung automatisch ausgefhrt werden sollen. Das Programm yes schreibt ununterbrochen das Zeichen y bzw. die durch Zeichenfolge angegebene Zeichenfolge auf die Standardausgabe. Diese Ausgabe kann dann mit der Standardeingabe eines anderen Programms verknpft werden, das eine bestimmte Zeichenfolge als Antwort auf eine Nachfrage erwartet. yes n | ask.sh Fhrt das Programm ask.sh aus. Jede Eingabe, die ask.sh von der Standardeingabe liest, wird mit dem Buchstaben n und einem Zeilenende (entspricht der E INGABETaste) beantwortet. Wenn ask.sh fertig ist, erscheint die Fehlermeldung Broken Pipe Ursache ist, dass yes weiterhin schreibt, obwohl auf der anderen Seite der Pipe nicht mehr (von ask.sh) gelesen wird. Das Shellskript ask.sh knnte folgendermaen aussehen:
#! /bin/bash for i in *; do echo "$i anzeigen?"; read answer; if [ $answer = y ]; then ls -l $i; fi; done;

zcat
Paket: gzip

Komprimierte Daten unkomprimiert ausgeben


Dateiverwaltung, Shellskripte

zcat [Datei ..] Das Programm liest komprimierte Daten von der Standardeingabe oder aus einer oder mehreren mit Datei angegebenen Datei(en), entkomprimiert sie und gibt das Ergebnis auf die Standardausgabe. zcat note1.gz Gibt den Inhalt der komprimierten Datei note1.gz unkomprimiert auf der Standardausgabe aus. cat archiv.tar.gz | zcat | tar -xvf Gibt den Inhalt der Datei archiv.tar.gz in die Eingabe von zcat. Dort werden die Daten entkomprimiert und an tar weitergeleitet, wo sie in die einzelnen Dateien des Archivs zerlegt und entsprechend geschrieben werden. Der gleiche Effekt ist mit dem Kommando tar -xvzf archiv.tar.gz zu erzielen. Siehe auch: gunzip, gzip, cat, zless.

zforce
Paket: gzip

Namen komprimierter Datei prfen und anpassen


Dateiverwaltung, Kompatibilitt

zforce [Datei ...] Gelegentlich gehen die Endungen von Dateinamen verloren, wenn sie auf Datentrgern gespeichert werden mssen, auf denen nur bestimmte Dateinamenlngen erlaubt sind oder andere Einschrnkungen fr Dateinamen gelten. Beispielsweise drfen Dateinamen unter DOS nur aus acht Buchstaben und einer durch einem Punkt

19.2 Kommandos

891

abgetrennten Endung von drei Buchstaben bestehen. Namen von komprimierten Dateien, die oft aus mehr Buchstaben bestehen und gewhnlich die zustzliche Endung .gz tragen, sind auf diesen Datentrgern schlecht zu speichern. Das Programm zforce berprft, ob es sich bei der oder den mit Datei angegebenen Dateien um komprimierte Dateien handelt und hngt diesen wieder die Endung .gz an, falls ja. zforce *txt berprft fr alle Dateien im Arbeitsverzeichnis mit der Endung txt, ob es sich um komprimierte Dateien handelt und hngt diesen die zustzliche Endung .gz an, falls dies zutrifft. Siehe auch: gzip, gunzip, mcopy.

zgrep
Paket: gzip

Komprimierte Dateien durchsuchen


Textverarbeitung, Suchen

zgrep [Optionen] [Suchbegriff] [Dateiname ...] Das Programm liest Daten aus einer oder mehreren mit Dateiname angegebenen Dateien oder von der Standardeingabe, falls keine Dateien angegeben worden sind, dekomprimiert diese und leitet das Ergebnis weiter an das Programm grep, welches Dateien nach Text durchsucht. Alle mit Optionen angegebenen Optionen werden grep bergeben. Ausgabe und Rckgabewert entsprechen dem Aufruf von grep mit den gleichen, aber unkomprimierten Daten. Siehe auch: grep, gunzip, zcat, gzip.

zip
Paket: zip

PK-Zip-Archiv erstellen
Dateiverwaltung, Kompatibilitt

zip [Optionen] [Archivdatei [Datei ...]] Das Programm erstellt zip-Archive. Dieses Archivformat ist unter DOS/MSWindows das zur Zeit meistverbreitete Format zur Weitergabe von Programmund Datenpaketen. Zip-Archive sind vergleichbar mit komprimierten tar-Archiven. In ihnen knnen sich Dateien und Verzeichnisse sowie dazugehrige Kontrollinformationen benden. Diese liegen in dem Archiv in komprimierter Form vor. Standardmig schreibt das Programm eine oder mehrere mit Datei angegebene Dateien oder Verzeichnisse in das mit Archivdatei bezeichnete zip-Archiv. Wenn dieses Archiv noch nicht existiert, wird es erzeugt. Wenn eine oder mehrere Dateien gleichen Namens in dem Archiv schon vorhanden sind, werden sie durch die angegebene Version ersetzt. Wird fr Archivdatei ein Minuszeichen angegeben, dann wird das Archiv auf die Standardausgabe geschrieben. -b Verzeichnis Von zip angelegte temporre Dateien werden in dem mit Verzeichnis angegebenen Verzeichnis angelegt. -d Name Lscht die mit Name bezeichneten Dateien in der Archivdatei. Name darf Metazeichen enthalten. -f Es werden nur solche Dateien in das Archiv kopiert, die bereits dort vorhanden sind und bei denen das Datum der letzten nderung im Archiv lter ist als bei den Originaldateien.

892

19 Kommandobersicht

-u Es werden nur solche Dateien in das Archiv kopiert, die dort nicht vorhanden sind oder bei denen das Datum der letzten nderung im Archiv lter ist als bei den Originaldateien. -F Es wird versucht, ein beschdigtes Archiv zu reparieren. Dabei gehen unter Umstnden Daten verloren. -i Name Es werden nur die Dateien in das Archiv kopiert, auf die der mit Name angegebene Name zutrifft. Name kann Metazeichen enthalten. -j Die Verzeichnisnamen von Dateien werden nicht mit im Archiv gespeichert. Die Folge ist, dass alle Dateien beim Auspacken im Arbeitsverzeichnis erzeugt werden. -k Es wird versucht, alle Dateinamen in gltige DOS-Dateinamen umzuwandeln. -m Dateien und Verzeichnisse werden gelscht, nachdem sie in das Archiv kopiert wurden. -r Wenn eine oder mehrere der angegebenen Dateien Verzeichnisse sind, werden sie rekursiv mit allen Unterverzeichnissen archiviert. -x Name Dateien, deren Name mit dem mit Name angegebenen Namen bereinstimmt, werden nicht in das Archiv kopiert. Name kann Metazeichen enthalten. -z Erlaubt die Eingabe eines Kommentars, der im Archiv gespeichert wird. -@ Die Namen der einzupackenden Dateien werden von der Standardeingabe gelesen. Dabei darf jede Zeile nicht mehr als einen Dateinamen enthalten. zip texte.zip text1.txt text2.txt Die Dateien text1.txt und text2.txt werden in das Archiv texte.zip kopiert. Dieses Archiv wird neu erstellt, wenn es noch nicht existiert. zip -r home.zip ~/ -x *.o core "*.a" "*dvi" Mit Ausnahme der Dateien, die core heien oder deren Endungen .o, .a oder .dvi lauten, werden alle Dateien und Verzeichnisse unterhalb des eigenen HomeVerzeichnisses in das Archiv home.zip kopiert. Siehe auch: unzip, gzip, gunzip, tar.

zless
Paket: gzip

Komprimierte Textdatei anzeigen


Information

zless [Datei ...] Das Programm dekomprimiert die mit Datei angegebenen Dateien oder die von der Standardeingabe gelesenen Daten und ruft standardmig das Programm less auf, um sie anzuzeigen. Ein anderes Programm kann ber die Umgebungsvariable PAGER festgelegt werden. zless /usr/share/doc/HOWTO/en-txt/Mail-HOWTO.txt.gz Zeigt die dekomprimierte Fassung der Datei /usr/share/doc/HOWTO/en-txt/MailHOWTO.txt.gz mit dem Programm less an. Siehe auch: less, gunzip, zmore, gzip.

Teil V

Anhang

20 Regulre Ausdrcke

Regulre Ausdrcke (regular expressions, RE) sind ein mchtiges Werkzeug zur Bearbeitung von Textdateien. Es handelt sich dabei vereinfacht gesagt um eine Erweiterung herkmmlicher Suchfunktionen von Text-Werkzeugen. Wichtige Programme, die mit regulren Ausdrcken umgehen, sind Texteditoren wie vi oder (X)Emacs, die Programminterpreter perl oder awk, der Streameditor sed oder das Suchprogramm grep. Die Bezeichnung stammt aus der Theorie formaler Sprachen (Programmiersprachen). Fr uns reicht es zu wissen, dass regulre Ausdrcke Zeichenfolgen sind, die nach einem System von Regeln ausgewertet werden. Achtung: Regulre Ausdrcke sind von den Metazeichen zu unterscheiden, die von der Bash und einigen anderen Programmen benutzt werden. Beide haben zwar einen hnlichen Zweck, aber eine verschiedene Syntax. Die einfachste Form eines regulren Ausdrucks ist eine gewhnliche Zeichenkette ohne tiefere Bedeutung. Um die Systemprotokolldatei /var/log/syslog nach Zeilen zu durchsuchen, welche die Zeichenkette ippp0 enthalten, wird das Programm grep wie folgt benutzt: debian:~# grep ippp0 /var/log/syslog Es werden alle Zeichenketten ausgegeben, auf die der regulre Ausdruck ippp0 zutrifft. Was machen Sie aber, wenn Sie alle Zeilen sehen mchten, in denen ippp0 oder ippp1 vorkommt? Sie knnten den obigen Befehl entsprechend ndern und sich beim zweiten Aufruf die Zeilen mit ippp1 ausgegeben lassen. Sie htten dann zwei getrennte Datenstze, aus denen sich die Reihenfolge ihres Auftretens in der Ausgangsdatei (/var/log/syslog) nicht mehr erkennen lsst. Regulre Ausdrcke bieten hnlich wie Metazeichen die Mglichkeit, Suchbegriffe anzugeben, die auf mehrere Zeichenketten zutreffen. Hierzu werden bestimmte Zeichen mit besonderer Bedeutung eingesetzt. Beispielsweise wird in eckigen Klammern angegeben, dass mehrere Zeichen als zutreffend gelten sollen. Um die Datei /var/log/syslog nach ippp0 und ippp1 zu durchsuchen, wird dieser Befehl benutzt: debian:~# grep "ippp[01]" /var/log/syslog

896

20 Regulre Ausdrcke

Die Anfhrungszeichen sind notwendig, damit die eckigen Klammern nicht von der Shell interpretiert werden. Die wichtigsten Sonderzeichen in regulren Ausdrcken: . Ein Punkt steht fr genau ein beliebiges Zeichen. Der regulre Ausdruck a.a trifft sowohl auf die Zeichenkette aba als auch auf aca zu. Er trifft nicht auf die Zeichenkette aa zu, weil in dieser Zeichenkette das dritte Zeichen fehlt. * Ein Stern nach einem regulrem Ausdruck bedeutet ein beliebig huges Vorkommen auch nullmalig des voranstehenden regulren Ausdrucks. Der regulre Ausdruck "stop*" trifft auf die Zeichenketten sto, stop und stopp, nicht aber auf die Zeichenkette stau zu, weil hier das dritte Zeichen kein o ist. Durch die Kombination von Punkt und Stern lassen sich beliebig lange Zeichenketten, die aus jedem Zeichen bestehen drfen, spezizieren. Der regulre Ausdruck .* trifft auf alle Zeichenketten zu (ein beliebiges Zeichen darf beliebig oft vorkommen). + Das Plus-Zeichen bedeutet, dass der voranstehende regulre Ausdruck mindestens einmal vorkommen muss. Der Ausdruck stop+ trifft deswegen nicht auf die Zeichenkette sto zu (weil das Zeichen p hier nicht enthalten ist), wohl aber auf stop oder stopp. Das Pluszeichen wird nicht von allen Programmen, die mit regulren Ausdrcken umgehen, als Sonderzeichen interpretiert. [] Durch eckige Klammern eingeschlossene Zeichen bedeuten ein Zeichen aus der eingeklammerten Zeichenmenge. Beispielsweise trifft der Ausdruck st[ao].* sowohl auf stop als auch auf stau zu, nicht aber auf stumm, weil das dritte Zeichen entweder ein a oder ein o sein muss. Die eingeklammerte Zeichenmenge kann als Bereich angegeben werden. Der Ausdruck [0-9] umfasst alle Ziffern und der Ausdruck [a-z] alle Kleinbuchstaben (ohne Umlaute). Auch hier ist die Kombination mit anderen Sonderzeichen mglich. So trifft der Ausdruck [a-z]* auf solche Zeichenketten zu, in denen beliebig viele Kleinbuchstaben oder gar keine Zeichen vorkommen. Wird den Zeichen in eckigen Klammern ein Zirkumex (^) vorangestellt, dann ist gemeint, dass der entsprechende Ausdruck nur auf solche Zeichen zutrifft, die nicht in den eckigen Klammern enthalten sind (Komplement). Der Ausdruck [^0-9] trifft nur auf Zeichen zu, die keine Ziffern sind. ^ Um den Anfang einer Zeile anzugeben, ist ebenfalls das Zeichen ^ zu verwenden. Der Ausdruck ^Einleitung trifft fr alle Zeilen zu, in denen das Wort Einleitung am Anfang der Zeile steht. $ Ebenso kann das Ende einer Zeile speziziert werden. Hierzu ist das Dollarzeichen zu benutzen. Der Ausdruck 2000$ trifft fr solche Zeilen zu, in denen die Zahl 2000 am Ende der Zeile steht. Durch die Kombination von Zirkumex und Dollarzeichen lsst sich der Inhalt ganzer Zeilen angeben. Beispiel: ^Heute ist Sonntag$ trifft ausschlielich auf Zeilen zu, die nur die Zeichenkette Heute ist Sonntag beinhalten, und der Ausdruck ^Heute ist .*tag$ trifft auf die Zeilen zu, die mit der Zeichenkette Heute ist beginnen und mit den Zeichen tag enden, also auch auf Heute ist Dienstag oder Heute ist ein besonders warmer Donnerstag, nicht aber auf Heute ist ein

20 Regulre Ausdrcke

897

schner Tag, weil die letzte Zeile nicht mit den Zeichen tag, sondern mit Tag endet. \ Gelegentlich mssen Zeichen mit besonderer Bedeutung wie normale Zeichen (buchstblich) eingesetzt werden. Wir kennen das bereits unter dem Begriff Quoten von den Metazeichen der Shell. Ein vorangestellter Gegen-Schrgstrich nimmt den Sonderzeichen ihre besondere Bedeutung. Der Punkt in Danke\. hat keine besondere Bedeutung mehr, der Ausdruck steht fr die Zeichenkette Danke. (mit Punkt). Wenn das Zeichen \ als normales Zeichen genutzt werden soll, ist diesem ebenfalls ein Gegen-Schrgstrich voranzustellen (\\). Wenn Sie an der Kommandozeile mit regulren Ausdrcken arbeiten, sollten Sie wegen der hnlichkeit mit den Metazeichen der Shell die regulren Ausdrcke mit einfachen Anfhrungszeichen (single quotes) vor jeder Interpretation durch die Shell schtzen. Nehmen Sie irgendeinen Text und lassen Sie grep mit verschiedenen regulren Ausdrcken darauf los: joe@debian:~$ grep aber textfile joe@debian:~$ grep ab.a textfile joe@debian:~$ grep bb.[aeiou] textfile joe@debian:~$ grep [0-9]+$ textfile joe@debian:~$ grep M[ae][iy]e?r textfile grep gibt die Zeilen aus, in denen sich wenigstens ein String bendet, auf den der regulre Ausdruck passt. Im ersten Beispiel sind das alle Zeilen, die den String aber enthalten wie aber, labern, Schabernack, aberkennen, im zweiten trifft unter anderem abwarten zu, im dritten Abbruch. Die vierte Form ermittelt alle Zeilen, die nur Ziffern enthalten: Am Anfang der Zeile (Circumex) ein Zeichen aus der Menge 0 bis 9, dann eine beliebige Wiederholung von Ziffern bis zum Ende (Dollar) der Zeile. Man sagt, dass Circumex oder Dollarzeichen das Muster am Zeilenanfang oder -ende verankern. In der fnften Zeile wird nach dem Namen Meier mit all seinen Varianten geforscht. Wie lautet ein regulrer Ausdruck, der in einer Liste auf die Namen aller .exe-Programme aus der DOS-Welt zutrifft? Ganz einfach:
\.exe$

Der Punkt muss mittels Backslash seiner besonderen Bedeutung beraubt (gequotet) werden, dann folgen drei harmlose Buchstaben. Das Dollarzeichen besagt, dass die vorgenannte Zeichenfolge am Ende eines Strings (Dateinamen) vorkommen soll. Wollen wir auch noch gro geschriebene Dateinamen erwischen, geht das mit einer oder-Verknpfung:
\.exe$|\.EXE$

898

20 Regulre Ausdrcke

Wir wollen nun einen regulren Ausdruck zusammenstellen, der auf alle gltigen Internet-Email-Anschriften zutrifft. Dazu schauen wir uns einige Anschriften an:
wulf.alex@mvm.uni-karlsruhe.de wualex1@mvmc64.ciw.uni-karlsruhe.de ig21@rz.uni-karlsruhe.de 012345678-0001@t-online.de Dr_Ralf.Muus@DEGUSSA.de

Links steht immer ein Benutzername, dessen Form vom jeweiligen Betriebssystem (Eintrag in /etc/passwd oder /etc/aliases) bestimmt wird, dann folgen das @-Zeichen (Klammeraffe) und ein Maschinen- oder Domnenname, dessen Teile durch Punkte voneinander getrennt sind. Im einzelnen: Anfangs ein Zeichen aus der Menge der Ziffern oder kleinen oder groen Buchstaben, dann eine beliebige Anzahl einschlielich null von Zeichen aus der Menge der Ziffern, der kleinen oder groen Buchstaben und der Zeichen _-., genau ein Klammeraffe als Trennzeichen, im Maschinen- oder Domnennamen mindestens eine Ziffer oder ein Buchstabe, dann eine beliebige Anzahl von Ziffern, Buchstaben oder Strichen, mindestens ein Punkt zur Trennung von Domne und Top-Level-Domne, nochmals mindestens ein Buchstabe zur Kennzeichnung der Top-Level-Domne. Daraus ergibt sich folgender regulrer Ausdruck (einzeilig):
[0-9a-zA-Z][0-9a-zA-Z_-.]*@[0-9a-zA-Z][0-9a-zA-Z_-.]* \.[a-zA-Z][a-zA-Z]*

Das sieht kompliziert aus, ist aber trotzdem der einfachste Weg zur Beschreibung solcher Gebilde. Obige Form einer Email-Anschrift ist nicht gegen die RFCs abgeprft und daher vermutlich zu eng. Eine Anwendung fr den regulren Ausdruck knnte ein Programm sein, das Email-Anschriften verarbeitet und sicherstellen will, dass die ihm bergebenen Strings wenigstens ihrer Form nach gltig sind. Robuste Programme berprfen Eingaben, ehe sie sich weiter damit abgeben. Nhere Informationen zu regulren Ausdrcken nden sich in der InfoDokumentation zum Programm awk (GNU Version, Paket gawk), in der Manualseite zum regulren Ausdruck nach dem POSIX-Standard (Manualseite regex, Abschnitt 7) sowie in der Manualseite zu dem Editor ed (Paket ed).

21 Wichtige Gertedateien

Die folgende Tabelle zeigt die wichtigsten Gertedateien. Beachten Sie bitte auch die Tabelle auf Seite 276 (Gertedateien fr Muse). Eine vollstndige Liste aller von Linux untersttzten Gertedateien zusammen mit den Major- und Minor-Nummern dieser Gerte bendet sich im Kerneldokumentationsverzeichnis in der Datei devices.txt.
Tabelle 21.1. Wichtige Gertedateien

Gertedatei /dev/null /dev/zero

/dev/random /dev/ram0 /dev/ram1 /dev/fd0 /dev/fd1 /dev/hda /dev/hda1 /dev/hda4 /dev/hda5 /dev/hda19 /dev/hdb

Beschreibung Gertedatei, in die Daten geschrieben werden, die verworfen werden sollen (Mllschlucker, Bit Bucket) Gertedatei, aus der Nullen gelesen werden knnen, zum Erzeugen von Dateien mit einer bestimmten Gre, aber ohne speziellen Inhalt Zufallszahlengenerator Erste RAM-Diskette Zweite RAM-Diskette Erstes Diskettenlaufwerk (Format wird automatisch festgestellt) Zweites Diskettenlaufwerk Festplatte oder CD am Master-Anschluss des ersten (E)IDE-Adapters Erste primre Partition auf der Festplatte /dev/hda Vierte primre Partition auf der Festplatte /dev/hda Erste logische Partition auf der Festplatte /dev/hda 15. logische Partition auf der Festplatte /dev/hda Festplatte oder CD am Slave-Anschluss des ersten (E)IDE-Adapters
Fortsetzung nchste Seite

900

21 Wichtige Gertedateien

Fortsetzung der vorherigen Seite

Gertedatei /dev/hdb1 /dev/hdc

Beschreibung Erste primre Partition auf der Festplatte /dev/hdb Festplatte oder CD am Master-Anschluss des zweiten (E)IDE-Adapters /dev/tty Aktuelles Terminal /dev/console Systemkonsole /dev/lp0 Drucker an der ersten parallelen Schnittstelle /dev/lp1 Drucker an der zweiten parallelen Schnittstelle /dev/ttyS0 Erste serielle Schnittstelle /dev/ttyS1 Zweite serielle Schnittstelle /dev/ttyS2 Dritte serielle Schnittstelle /dev/loop0 Erstes Loop-Gert. Mit den Gerten werden Dateisysteme eingebunden, die sich nicht auf einem Gert, sondern in einer Datei benden. /dev/loop1 Zweites Loop-Gert /dev/sda Erste SCSI-Festplatte /dev/sda1 Erste primre Partition auf der ersten SCSI-Festplatte /dev/sda5 Erste logische Partition auf der ersten SCSI-Festplatte /dev/sda15 11. logische Partition auf der ersten SCSI-Festplatte /dev/sdb Zweite SCSI-Festplatte /dev/st0 Erstes SCSI-Bandlaufwerk, Modus 0 /dev/st0l Erstes SCSI-Bandlaufwerk, Modus 1 /dev/st0m Erstes SCSI-Bandlaufwerk, Modus 2 /dev/nst0 Erstes SCSI-Bandlaufwerk, Modus 0 ohne automatische Rckspulung /dev/nst0l Erstes SCSI-Bandlaufwerk, Modus 1 ohne automatische Rckspulung /dev/st1 Zweites SCSI-Bandlaufwerk, Modus 0 /dev/st1l Zweites SCSI-Bandlaufwerk, Modus 1 /dev/sr0 Erstes SCSI-CD-Laufwerk /dev/sr1 Zweites SCSI-CD-Laufwerk /dev/sequencer Sequenzer-Gert (MIDI-Ausgabe) /dev/dsp Digitales Audio-Abspielgert /dev/audio Sun-kompatibles Audio-Abspielgert /dev/sg0 Erstes generisches SCSI-Gert /dev/sg1 Zweites generisches SCSI-Gert /dev/ht0 Erstes IDE-Bandlaufwerk /dev/nht0 Erstes IDE-Bandlaufwerk ohne automatische Rckspulung

22 Debian-Gesellschaftsvertrag

Anmerkung des Autors: Dies ist die deutsche bersetzung von Debians social contract with the free software community. In Zweifelsfllen ist das englische Original mageblich. Es ist im Internet unter http://www.debian. org/social_contract verfgbar.
Copyright c 1997-2003 Software in the Public Interest (SPI) P.O. Box 1326, Boston, MA 02117. Wortwrtliches Kopieren und Verteilen ist in allen Medien erlaubt, vorausgesetzt, diese Bemerkung bleibt erhalten.

Gesellschaftsvertrag mit der Gemeinschaft fr freie Software


Wir sind Software In The Public Interest, Hersteller des Debian GNU/Linux Systems. Wir bieten diesen Gesellschaftsvertrag der Gemeinschaft fr freie Software an. (Mit Gemeinschaft fr freie Software werden alle Hersteller und Anwender freier Software bezeichnet.) 1. Debian wird 100% freie Software bleiben Wir versprechen, dass die Debian GNU/Linux Distribution auch weiterhin vollstndig aus freier Software bestehen wird. Da es viele verschiedene Auslegungen des Begriffs freie Software gibt, haben wir weiter unten die Richtlinien aufgefhrt, nach denen wir freie Software identizieren. Trotzdem werden wir Anwender untersttzen, die nicht-freie Programme einsetzen oder entwickeln. Wir werden aber niemals das Gesamtsystem von nicht-freier Software abhngig machen. 2. Unser Beitrag zur Gemeinschaft fr freie Software Wenn wir neue Komponenten des Debian-Systems schreiben, so werden wir sie als freie Software lizensieren. Wir werden das bestmgliche System erstellen, sodass

902

22 Debian-Gesellschaftsvertrag

freie Software weit verbreitet und genutzt wird. Wir werden Korrekturen, Verbesserungen, Anwenderwnsche usw. an die ursprnglichen (upstream) Autoren weiterleiten, deren Programme in unser System integriert wurden. 3. Wir werden Probleme nicht verbergen Wir werden unsere Fehlerdatenbank fr alle Zeiten ffentlich betreiben. Fehlermeldungen, die von Anwendern online abgeschickt werden, werden augenblicklich fr andere sichtbar. 4. Unsere Prioritten sind unsere Anwender und freie Software Wir orientieren uns an den Bedrfnissen unserer Anwender und der Gemeinschaft fr freie Software. Ihre Interessen stehen an erster Stelle. Wir werden unsere Nutzer bei ihrer Arbeit mit den verschiedensten Rechnerumgebungen untersttzen. Wir haben nichts dagegen, da kommerzielle Software auf Debian-Systemen eingesetzt wird. Auerdem erlauben wir anderen eine erweiterte (Value-Added) Distribution zu erstellen, die Debian und kommerzielle Software enthlt, ohne dafr irgendwelche Gebhren zu erheben. Um diese Ziele zu erreichen, werden wir ein integriertes System von hoher Qualitt und 100% freier Software anbieten, die die gerade beschriebene Nutzung nicht durch rechtliche Einschrnkungen, wie z. B. durch Lizenzvertrge, verhindert. 5. Programme, die nicht unseren Standards fr freie Software gengen Wir wissen, da einige unserer Anwender unbedingt Programme einsetzen mssen, die nicht den Debian-Richtlinien fr freie Software entsprechen. Fr solche Programme haben wird die zustzlichen Bereiche contrib und non-free auf unserem FTP-Archiv eingerichtet. Die Software in diesen Verzeichnissen ist nicht Bestandteil des Debian-Systems, wurde aber trotzdem fr den Einsatz in einem Debian-System vorbereitet. Wir empfehlen den CD-Herstellern, die jeweiligen Lizenzbestimmungen der Programmpakete in diesen Verzeichnissen zu studieren und selbst zu entscheiden, ob sie die Programme mit ihren CDs verteilen drfen. Obwohl die Programme aus non-free nicht Bestandteil der Debian-Distribution sind, untersttzen wir ihren Einsatz und bieten Infrastruktur fr diese nicht freien Programme an, z. B. unsere Fehlerdatenbank und die Mailing-Listen.

Die Debian-Richtlinien fr freie Software (DFSG)


1. Unbeschrnkte Weitergabe Ein Bestandteil der Debian-Distribution darf durch seine Lizenz nicht verhindern, da irgendjemand diese Software als Bestandteil einer Software-Distribution, die Programme aus den verschiedensten Quellen enthlt, verkauft oder weitergibt. Die Lizenz darf keine Abgaben oder sonstige Leistungen fr einen solchen Verkauf fordern.

22 Debian-Gesellschaftsvertrag

903

2. Quellcode Das Programm muss im Quellcode vorliegen, und es muss die Weitergabe sowohl im Quellcode als auch in compilierter Form erlaubt sein. 3. Weiterfhrende Arbeiten Die Lizenz mu Vernderungen und weiterfhrende Arbeiten gestatten und es erlauben, dass diese unter den gleichen Lizenzbedingungen weitergegeben werden drfen wie die Original-Software. 4. Integritt des ursprnglichen Quellcodes Die Lizenz darf die Weitergabe von verndertem Quellcode nur dann verbieten, wenn sie die Weitergabe von sogenannten Patch-Dateien mit dem Quellcode erlaubt, die dazu dienen, das Programm vor seiner Herstellung zu modizieren. Die Lizenz muss ausdrcklich die Weitergabe der aus dem vernderten Quellcode erzeugten Programme erlauben. Die Lizenz darf fordern, da die vernderten Programme einen anderen Namen oder eine andere Versionsnummer tragen mssen. (Dies ist ein Kompromiss. Die Debian-Gruppe ermutigt alle Autoren, Vernderungen an Dateien sowohl im Quellcode als auch in Binrform zu erlauben) 5. Keine Diskriminierung von Personen oder Gruppen Die Lizenz darf keine Person oder Gruppe von Personen diskriminieren. 6. Keine Diskriminierung von Einsatzbereichen Die Lizenz darf keine Einschrnkungen hinsichtlich des Einsatzbereichs vornehmen. Beispielsweise darf sie nicht verhindern, da das Programm geschftlich oder fr genetische Forschungen verwendet wird. 7. Weitergabe der Lizenz Die mit einem Programm verbundenen Rechte mssen fr alle gelten, die das Programm erhalten, ohne da es fr sie notwendig ist, eine zustzliche Lizenz zu erwerben. 8. Keine spezielle Lizenz fr Debian Die mit dem Programm verbundenen Rechte drfen nicht davon abhngig sein, dass das Programm Teil des Debian-Systems ist. Falls das Programm aus der DebianDistribution herausgenommen wird und ohne Debian genutzt oder vertrieben werden soll, ansonsten aber im Rahmen der Programmlizenz bleibt, so mssen alle Parteien, die das Programm bekommen, die gleichen Rechte haben, wie sie im Zusammenhang mit dem Debian-System gewhrt wurden.

904

22 Debian-Gesellschaftsvertrag

9. Keine Auswirkungen auf andere Programme Die Lizenz darf keine Beschrnkungen besitzen, die Auswirkungen auf andere Software hat, die mit diesem Programm weitergegeben wird. Beispielsweise darf die Lizenz nicht vorschreiben, da alle anderen Programme auf dem gleichen Medium freie Software sein mssen. 10. Beispiellizenzen Die GPL-, BSD- und Artistic-Lizenzen sind Beispiele fr Lizenzen, die wir als frei betrachten.

23 GNU General Public License

Anmerkung des Autors: Als Quelle fr die bersetzung der GNU Public License diente die ehemals im Internet unter dem URL http://agnes. dida.physik.uni-essen.de/~gnu-pascal/gpl-ger.html verfgbare Version. Gegenwrtig nden Sie eine deutsche bersetzung unter http://www.gnu-gpl.de/gpl-deutsch.htm oder http://www.lgut.uni-bremen.de/anh/gpl.html, eventuell auch unter http://www.gnu.de/. Das englische Original hat den URL http://www.gnu.org/licenses/licenses.html#GPL. Die bersetzung wird mit der Absicht angeboten, das Verstndnis der GNU General Public License (GNU GPL) zu erleichtern. Es handelt sich jedoch nicht um eine ofzielle oder im rechtlichen Sinne anerkannte bersetzung. Die Free Software Foundation (FSF) ist nicht der Herausgeber der bersetzung, und sie hat die bersetzung auch nicht als rechtskrftigen Ersatz fr die OriginalGNU-GPL anerkannt. Da die bersetzung nicht sorgfltig von Juristen berprft wurde, knnen die bersetzer nicht garantieren, dass sie die rechtlichen Aussagen der GNU GPL exakt wiedergibt. Wenn Sie sichergehen wollen, dass von Ihnen geplante Aktivitten im Sinne der GNU GPL gestattet sind, halten Sie sich bitte an die englischsprachige Originalversion. Die Free Software Foundation bittet Sie darum, die bersetzung nicht als ofzielle Lizenzbedingungen fr von Ihnen geschriebene Programme zu verwenden. Bitte benutzen Sie hierfr stattdessen die von der Free Software Foundation herausgegebene englischsprachige Originalversion. Jeder hat das Recht, diese Lizenzurkunde zu vervielfltigen und unvernderte Kopien zu verbreiten; nderungen sind jedoch nicht gestattet.

Die folgende bersetzung ist kein rechtskrftiger Ersatz fr die englischsprachige Originalversion!

906

23 GNU General Public License

Vorwort
Die meisten Softwarelizenzen sind daraufhin entworfen worden, Ihnen die Freiheit zu nehmen, die Software weiterzugeben und zu verndern. Im Gegensatz dazu soll Ihnen die GNU General Public License, die Allgemeine ffentliche GNU-Lizenz, ebendiese Freiheit garantieren. Sie soll sicherstellen, dass die Software fr alle Benutzer frei ist. Diese Lizenz gilt fr den Groteil der von der Free Software Foundation herausgegebenen Software und fr alle anderen Programme, deren Autoren ihr Werk dieser Lizenz unterstellt haben. Auch Sie knnen diese Mglichkeit der Lizenzierung fr Ihre Programme anwenden. Ein anderer Teil der Software der Free Software Foundation unterliegt stattdessen der GNU Lesser General Public License, der Kleinen Allgemeinen ffentlichen Lizenz. Die Bezeichnung freie Software bezieht sich auf Freiheit, nicht auf den Preis. Unsere Lizenzen sollen Ihnen die Freiheit garantieren, Kopien freier Software zu verbreiten (und etwas fr diesen Service zu berechnen, wenn Sie mchten), die Mglichkeit, die Software im Quelltext zu erhalten oder den Quelltext auf Wunsch zu bekommen. Die Lizenzen sollen garantieren, dass Sie die Software ndern oder Teile davon in neuen freien Programmen verwenden drfen - und dass Sie wissen, dass Sie dies alles tun drfen. Um Ihre Rechte zu schtzen, mssen wir Einschrnkungen machen, die es jedem verbieten, Ihnen diese Rechte zu verweigern oder Sie aufzufordern, auf diese Rechte zu verzichten. Aus diesen Einschrnkungen folgen bestimmte Verantwortlichkeiten fr Sie, wenn Sie Kopien der Software verbreiten oder sie verndern. Beispielsweise mssen Sie den Empfngern alle Rechte gewhren, die Sie selbst haben, wenn Sie - kostenlos oder gegen Bezahlung - Kopien eines solchen Programms verbreiten. Sie mssen sicherstellen, dass auch sie den Quelltext erhalten bzw. erhalten knnen. Und Sie mssen ihnen diese Bedingungen zeigen, damit sie ihre Rechte kennen. Wir schtzen Ihre Rechte in zwei Schritten: (1) Wir stellen die Software unter ein Urheberrecht (Copyright), und (2) wir bieten Ihnen diese Lizenz an, die Ihnen das Recht gibt, die Software zu vervielfltigen, zu verbreiten und/oder zu verndern. Um die Autoren und uns zu schtzen, wollen wir darberhinaus sicherstellen, dass jeder erfhrt, dass fr diese freie Software keinerlei Garantie besteht. Wenn die Software von jemand anderem modiziert und weitergegeben wird, mchten wir, dass die Empfnger wissen, dass sie nicht das Original erhalten haben, damit von anderen verursachte Probleme nicht den Ruf des ursprnglichen Autors schdigen. Schlielich und endlich ist jedes freie Programm permanent durch SoftwarePatente bedroht. Wir mchten die Gefahr ausschlieen, dass Distributoren eines freien Programms individuell Patente lizensieren mit dem Ergebnis, dass das Programm proprietr wrde. Um dies zu verhindern, haben wir klargestellt, dass jedes Patent entweder fr freie Benutzung durch jedermann lizenziert werden muss oder berhaupt nicht lizenziert werden darf. Es folgen die genauen Bedingungen fr die Vervielfltigung, Verbreitung und Bearbeitung:

23 GNU General Public License

907

Bedingungen fr die Vervielfltigung, Verbreitung und Bearbeitung


Paragraph 0 Diese Lizenz gilt fr jedes Programm und jedes andere Werk, in dem ein entsprechender Vermerk des Copyright-Inhabers darauf hinweist, dass das Werk unter den Bestimmungen dieser General Public License verbreitet werden darf. Im folgenden wird jedes derartige Programm oder Werk als das Programm bezeichnet; die Formulierung auf dem Programm basierendes Werk bezeichnet das Programm sowie jegliche Bearbeitung des Programms im urheberrechtlichen Sinne, also ein Werk, welches das Programm, auch auszugsweise, sei es unverndert oder verndert und/oder in eine andere Sprache bersetzt, enthlt. (Im folgenden wird die bersetzung ohne Einschrnkung als Bearbeitung eingestuft.) Jeder Lizenznehmer wird im folgenden als Sie angesprochen. Andere Handlungen als Vervielfltigung, Verbreitung und Bearbeitung werden von dieser Lizenz nicht berhrt; sie fallen nicht in ihren Anwendungsbereich. Der Vorgang der Ausfhrung des Programms wird nicht eingeschrnkt, und die Ausgaben des Programms unterliegen dieser Lizenz nur, wenn der Inhalt ein auf dem Programm basierendes Werk darstellt (unabhngig davon, dass die Ausgabe durch die Ausfhrung des Programmes erfolgte). Ob dies zutrifft, hngt von den Funktionen des Programms ab. Paragraph 1 Sie drfen auf beliebigen Medien unvernderte Kopien des Quelltextes des Programms, wie Sie ihn erhalten haben, anfertigen und verbreiten. Voraussetzung hierfr ist, dass Sie mit jeder Kopie einen entsprechenden Copyright-Vermerk sowie einen Haftungsausschluss verffentlichen, alle Vermerke, die sich auf diese Lizenz und das Fehlen einer Garantie beziehen, unverndert lassen und desweiteren allen anderen Empfngern des Programms zusammen mit dem Programm eine Kopie dieser Lizenz zukommen lassen. Sie drfen fr den eigentlichen Kopiervorgang eine Gebhr verlangen. Wenn Sie es wnschen, drfen Sie auch gegen Entgelt eine Garantie fr das Programm anbieten. Paragraph 2 Sie drfen Ihre Kopie(n) des Programms oder eines Teils davon verndern, wodurch ein auf dem Programm basierendes Werk entsteht; Sie drfen derartige Bearbeitungen unter den Bestimmungen von Paragraph 1 vervielfltigen und verbreiten, vorausgesetzt, dass zustzlich alle folgenden Bedingungen erfllt werden: (a) Sie mssen die vernderten Dateien mit einem aufflligen Vermerk versehen, der auf die von Ihnen vorgenommene Modizierung und das Datum jeder nderung hinweist.

908

23 GNU General Public License

(b) Sie mssen dafr sorgen, dass jede von Ihnen verbreitete oder verffentlichte Arbeit, die ganz oder teilweise von dem Programm oder Teilen davon abgeleitet ist, Dritten gegenber als Ganzes unter den Bedingungen dieser Lizenz ohne Lizenzgebhren zur Verfgung gestellt wird. (c) Wenn das vernderte Programm normalerweise bei der Ausfhrung interaktiv Kommandos einliest, mssen Sie dafr sorgen, dass es, wenn es auf dem blichsten Wege fr solche interaktive Nutzung gestartet wird, eine Meldung ausgibt oder ausdruckt, die einen geeigneten Copyright-Vermerk enthlt sowie einen Hinweis, dass es keine Gewhrleistung gibt (oder anderenfalls, dass Sie Garantie leisten), und dass die Benutzer das Programm unter diesen Bedingungen weiter verbreiten drfen. Auch muss der Benutzer darauf hingewiesen werden, wie er eine Kopie dieser Lizenz ansehen kann. (Ausnahme: Wenn das Programm selbst interaktiv arbeitet, aber normalerweise keine derartige Meldung ausgibt, muss Ihr auf dem Programm basierendes Werk auch keine solche Meldung ausgeben). Diese Anforderungen betreffen das vernderte Werk als Ganzes. Wenn identizierbare Abschnitte des Werkes nicht von dem Programm abgeleitet sind und vernnftigerweise selbst als unabhngige und eigenstndige Werke betrachtet werden knnen, dann erstrecken sich diese Lizenz und ihre Bedingungen nicht auf diese Abschnitte, wenn sie als eigenstndige Werke verbreitet werden. Wenn Sie jedoch dieselben Abschnitte als Teil eines Ganzen verbreiten, das ein auf dem Programm basierendes Werk darstellt, dann muss die Verbreitung des Ganzen nach den Bedingungen dieser Lizenz erfolgen, deren Bedingungen fr weitere Lizenznehmer somit auf die Gesamtheit ausgedehnt werden und damit auf jeden einzelnen Teil, unabhngig vom jeweiligen Autor. Somit ist es nicht die Absicht dieses Abschnittes, Rechte fr Werke in Anspruch zu nehmen oder zu beschneiden, die komplett von Ihnen geschrieben wurden; vielmehr ist es die Absicht, die Rechte zur Kontrolle der Verbreitung von Werken, die auf dem Programm basieren oder unter seiner auszugsweisen Verwendung zusammengestellt worden sind, auszuben. Ferner bringt ein einfaches Zusammenstellen eines anderen Werkes, das nicht auf dem Programm basiert, zusammen mit dem Programm oder einem auf dem Programm basierenden Werk auf ein- und demselben Speicher- oder Vertriebsmedium das andere Werk nicht in den Anwendungsbereich dieser Lizenz. Paragraph 3 Sie drfen das Programm (oder ein darauf basierendes Werk gem Paragraph 2) als Objectcode oder in ausfhrbarer Form unter den Bedingungen von Paragraph 1 und 2 vervielfltigen und verbreiten vorausgesetzt, dass Sie auerdem eine der folgenden Leistungen erbringen: (a) Liefern Sie das Programm zusammen mit dem vollstndigen zugehrigen maschinenlesbaren Quelltext auf einem fr den Datenaustausch blichen Medium aus, wobei die Verteilung unter den Bedingungen der Paragraphen 1 und 2 erfolgen muss. Oder:

23 GNU General Public License

909

(b) Liefern Sie das Programm zusammen mit einem mindestens drei Jahre lang gltigen schriftlichen Angebot aus, jedem Dritten eine vollstndige maschinenlesbare Kopie des Quelltextes zur Verfgung zu stellen zu nicht hheren Kosten als denen, die durch den physikalischen Kopiervorgang anfallen wobei der Quelltext unter den Bedingungen der Paragraphen 1 und 2 auf einem fr den Datenaustausch blichen Medium weitergegeben wird. Oder: (c) Liefern Sie das Programm zusammen mit dem schriftlichen Angebot der Zurverfgungstellung des Quelltextes aus, das Sie selbst erhalten haben. (Diese Alternative ist nur fr nicht-kommerzielle Verbreitung zulssig und nur, wenn Sie das Programm als Objectcode oder in ausfhrbarer Form mit einem entsprechenden Angebot gem Absatz b erhalten haben.) Unter dem Quelltext eines Werkes wird diejenige Form des Werkes verstanden, die fr Bearbeitungen vorzugsweise verwendet wird. Fr ein ausfhrbares Programm bedeutet der komplette Quelltext: Der Quelltext aller im Programm enthaltenen Module einschlielich aller zugehrigen Modulschnittstellen-Denitionsdateien sowie der zur Compilation und Installation verwendeten Skripte. Als besondere Ausnahme jedoch braucht der verteilte Quelltext nichts von dem zu enthalten, was blicherweise (entweder als Quelltext oder in binrer Form) zusammen mit den Hauptkomponenten des Betriebssystems (Kern, Compiler usw.) geliefert wird, unter dem das Programm luft - es sei denn, diese Komponente selbst gehrt zum ausfhrbaren Programm. Wenn die Verbreitung eines ausfhrbaren Programms oder des Objectcodes dadurch erfolgt, da der Kopierzugriff auf eine dafr vorgesehene Stelle gewhrt wird, so gilt die Gewhrung eines gleichwertigen Zugriffs auf den Quelltext als Verbreitung des Quelltextes, auch wenn Dritte nicht dazu gezwungen sind, den Quelltext zusammen mit dem Objectcode zu kopieren. Paragraph 4 Sie drfen das Programm nicht vervielfltigen, verndern, weiter lizenzieren oder verbreiten, sofern es nicht durch diese Lizenz ausdrcklich gestattet ist. Jeder anderweitige Versuch der Vervielfltigung, Modizierung, Weiterlizenzierung und Verbreitung ist nichtig und beendet automatisch Ihre Rechte unter dieser Lizenz. Jedoch werden die Lizenzen Dritter, die von Ihnen Kopien oder Rechte unter dieser Lizenz erhalten haben, nicht beendet, solange diese die Lizenz voll anerkennen und befolgen. Paragraph 5 Sie sind nicht verpichtet, diese Lizenz anzunehmen, da Sie sie nicht unterzeichnet haben. Jedoch gibt Ihnen nichts anderes die Erlaubnis, das Programm oder von ihm abgeleitete Werke zu verndern oder zu verbreiten. Diese Handlungen sind gesetzlich verboten, wenn Sie diese Lizenz nicht anerkennen. Indem Sie das Programm

910

23 GNU General Public License

(oder ein darauf basierendes Werk) verndern oder verbreiten, erklren Sie Ihr Einverstndnis mit dieser Lizenz und mit allen ihren Bedingungen bezglich der Vervielfltigung, Verbreitung und Vernderung des Programms oder eines darauf basierenden Werkes. Paragraph 6 Jedesmal, wenn Sie das Programm (oder ein auf dem Programm basierendes Werk) weitergeben, erhlt der Empfnger automatisch vom ursprnglichen Lizenzgeber die Lizenz, das Programm entsprechend den hier festgelegten Bestimmungen zu vervielfltigen, zu verbreiten und zu verndern. Sie drfen keine weiteren Einschrnkungen der Durchsetzung der hierin zugestandenen Rechte des Empfngers vornehmen. Sie sind nicht dafr verantwortlich, die Einhaltung dieser Lizenz durch Dritte durchzusetzen. Paragraph 7 Sollten Ihnen infolge eines Gerichtsurteils, des Vorwurfs einer Patentverletzung oder aus einem anderen Grunde (nicht auf Patentfragen begrenzt) Bedingungen (durch Gerichtsbeschluss, Vergleich oder anderweitig) auferlegt werden, die den Bedingungen dieser Lizenz widersprechen, so befreien Sie diese Umstnde nicht von den Bestimmungen dieser Lizenz. Wenn es Ihnen nicht mglich ist, das Programm unter gleichzeitiger Beachtung der Bedingungen in dieser Lizenz und Ihrer anderweitigen Verpichtungen zu verbreiten, dann drfen Sie als Folge das Programm berhaupt nicht verbreiten. Wenn zum Beispiel ein Patent nicht die gebhrenfreie Weiterverbreitung des Programms durch diejenigen erlaubt, die das Programm direkt oder indirekt von Ihnen erhalten haben, dann besteht der einzige Weg, sowohl das Patentrecht als auch diese Lizenz zu befolgen, darin, ganz auf die Verbreitung des Programms zu verzichten. Sollte sich ein Teil dieses Paragraphen als ungltig oder unter bestimmten Umstnden nicht durchsetzbar erweisen, so soll dieser Paragraph seinem Sinne nach angewandt werden; im brigen soll dieser Paragraph als Ganzes gelten. Zweck dieses Paragraphen ist nicht, Sie dazu zu bringen, irgendwelche Patente oder andere Eigentumsansprche zu verletzen oder die Gltigkeit solcher Ansprche zu bestreiten; dieser Paragraph hat einzig den Zweck, die Integritt des Verbreitungssystems der freien Software zu schtzen, das durch die Praxis ffentlicher Lizenzen verwirklicht wird. Viele Leute haben grozgige Beitrge zu dem groen Angebot der mit diesem System verbreiteten Software im Vertrauen auf die konsistente Anwendung dieses Systems geleistet; es liegt am Autor/Geber zu entscheiden, ob er die Software mittels irgendeines anderen Systems verbreiten will; ein Lizenznehmer hat auf diese Entscheidung keinen Einu. Dieser Paragraph ist dazu gedacht, deutlich klarzustellen, was als Konsequenz aus dem Rest dieser Lizenz betrachtet wird.

23 GNU General Public License

911

Paragraph 8 Wenn die Verbreitung und/oder die Benutzung des Programms in bestimmten Staaten entweder durch Patente oder durch urheberrechtlich geschtzte Schnittstellen eingeschrnkt ist, kann der Urheberrechtsinhaber, der das Programm unter diese Lizenz gestellt hat, eine explizite geographische Begrenzung der Verbreitung angeben, in der diese Staaten ausgeschlossen werden, sodass die Verbreitung nur innerhalb und zwischen den Staaten erlaubt ist, die nicht ausgeschlossen sind. In einem solchen Fall beinhaltet diese Lizenz die Beschrnkung, als wre sie in diesem Text niedergeschrieben. Paragraph 9 Die Free Software Foundation kann von Zeit zu Zeit berarbeitete und/oder neue Versionen der General Public License verffentlichen. Solche neuen Versionen werden vom Grundprinzip her der gegenwrtigen entsprechen, knnen aber im Detail abweichen, um neuen Problemen und Anforderungen gerecht zu werden. Jede Version dieser Lizenz hat eine eindeutige Versionsnummer. Wenn in einem Programm angegeben wird, dass es dieser Lizenz in einer bestimmten Versionsnummer oder jeder spteren Version (any later version) unterliegt, so haben Sie die Wahl, entweder den Bestimmungen der genannten Version zu folgen oder denen jeder beliebigen spteren Version, die von der Free Software Foundation verffentlicht wurde. Wenn das Programm keine Versionsnummer angibt, knnen Sie eine beliebige Version whlen, die je von der Free Software Foundation verffentlicht wurde. Paragraph 10 Wenn Sie den Wunsch haben, Teile des Programms in anderen freien Programmen zu verwenden, deren Bedingungen fr die Verbreitung anders sind, schreiben Sie an den Autor, um ihn um die Erlaubnis zu bitten. Fr Software, die unter dem Copyright der Free Software Foundation steht, schreiben Sie an die Free Software Foundation; wir machen zu diesem Zweck gelegentlich Ausnahmen. Unsere Entscheidung wird von den beiden Zielen geleitet werden, zum einen den freien Status aller von unserer freien Software abgeleiteten Werke zu erhalten und zum anderen das gemeinschaftliche Nutzen und Wiederverwenden von Software im allgemeinen zu frdern.

Keine Gewhrleistung
Paragraph 11 Da das Programm ohne jegliche Kosten lizenziert wird, besteht keinerlei Gewhrleistung fr das Programm, soweit dies gesetzlich zulssig ist. Sofern nicht anderweitig schriftlich besttigt, stellen die Copyright-Inhaber und/oder Dritte das Programm so zur Verfgung, wie es ist, ohne irgendeine Gewhrleistung, weder ausdrcklich noch implizit, einschlielich - aber nicht begrenzt

912

23 GNU General Public License

auf Marktreife oder Verwendbarkeit fr einen bestimmten Zweck. Das volle Risiko bezglich Qualitt und Leistungsfhigkeit des Programms liegt bei Ihnen. Sollte sich das Programm als fehlerhaft herausstellen, liegen die Kosten fr notwendigen Service, Reparatur oder Korrektur bei Ihnen. Paragraph 12 In keinem Fall, auer wenn durch geltendes Recht gefordert oder schriftlich zugesichert, ist irgendein Copyright-Inhaber oder irgendein Dritter, der das Programm wie oben erlaubt modiziert oder verbreitet hat, Ihnen gegenber fr irgendwelche Schden haftbar, einschlielich jeglicher allgemeiner oder spezieller Schden, Schden durch Seiteneffekte (Nebenwirkungen) oder Folgeschden, die aus der Benutzung des Programms oder der Unbenutzbarkeit des Programms folgen (einschlielich aber nicht beschrnkt auf Datenverluste, fehlerhafte Verarbeitung von Daten, Verluste, die von Ihnen oder anderen getragen werden mssen, oder dem Unvermgen des Programms, mit irgendeinem anderen Programm zusammenzuarbeiten), selbst wenn ein Copyright-Inhaber oder Dritter ber die Mglichkeit solcher Schden unterrichtet worden war.

Ende der Bedingungen

Anhang: Wie Sie die Bedingungen auf Ihre neuen Programme anwenden
Wenn Sie ein neues Programm entwickeln und wollen, dass es von grtmglichem Nutzen fr die Allgemeinheit ist, dann erreichen Sie das am besten, indem Sie es zu freier Software machen, die jeder unter diesen Bestimmungen weiterverbreiten und verndern kann. Um dies zu erreichen, fgen Sie die folgenden Anmerkungen zu Ihrem Programm hinzu. Am sichersten ist es, sie an den Anfang einer jeden Quelldatei zu stellen, um den Gewhrleistungsausschluss mglichst deutlich darzustellen; auerdem sollte jede Datei mindestens eine Copyright-Zeile besitzen sowie einen kurzen Hinweis darauf, wo die vollstndige Lizenz gefunden werden kann.

23 GNU General Public License


[Zeile mit Programmnamen und einer kurzen Beschreibung] Copyright (C) 20[yy] [Name des Autors] This program is modify it under as published by of the License, free software; you can redistribute it and/or the terms of the GNU General Public License the Free Software Foundation; either version~2 or (at your option) any later version.

913

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Auf Deutsch:
[Zeile mit Programmnamen und einer kurzen Beschreibung] Copyright (C) 20[jj] [Name des Autors] Dieses Programm ist freie Software. Sie knnen es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 der Lizenz oder (wenn Sie es wnschen) jeder spteren Version. Die Verffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE JEDE GEWHRLEISTUNG - sogar ohne die implizite Gewhrleistung der MARKTREIFE oder der EIGNUNG FR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Fgen Sie einen Hinweis hinzu, wie Sie elektronisch und per Brief erreichbar sind. Wenn Ihr Programm interaktiv ist, sorgen Sie dafr, dass es nach dem Start einen kurzen Vermerk ausgibt:
Gnomovision version 69, Copyright (C) 20[yy] [Name des Autors] Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type show w. This is free software, and you are welcome to redistribute it under certain conditions; type show c for details.

Auf Deutsch:
Gnomovision Version 69, Copyright (C) 20[jj] [Name des Autors] Fr Gnomovision besteht KEINERLEI GARANTIE; geben Sie show w fr Details ein. Gnomovision ist freie Software, die Sie unter bestimmten Bedingungen weitergeben drfen; geben Sie show c fr Details ein.

Die hypothetischen Kommandos show w und show c sollten die entsprechenden Teile der GNU-GPL anzeigen. Natrlich knnen die von Ihnen verwendeten

914

23 GNU General Public License

Kommandos anders heien als show w und show c; es knnten auch Mausklicks oder Menpunkte sein was immer am besten in Ihr Programm passt. Soweit vorhanden, sollten Sie auch Ihren Arbeitgeber (wenn Sie als Programmierer arbeiten) oder Ihre Schule einen Copyright-Verzicht fr das Programm unterschreiben lassen. Hier ein Beispiel:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program "Gnomovision" (which makes passes at compilers) written by John R. Hacker. [Unterschrift von Ty Coon], 1 April 1989 Ty Coon, Vice President

Auf Deutsch:
Die Yoyodyne GmbH erhebt keinerlei urheberrechtlichen Anspruch auf das Programm "Gnomovision" (einem Schrittmacher fr Compiler), geschrieben von John R. Hacker. [Unterschrift von Ty Coon], 1. April 1989 Ty Coon, Vizeprsident

Die General Public License gestattet nicht die Einbindung des Programms in proprietre Programme. Ist Ihr Programm eine Funktionsbibliothek, so kann es sinnvoller sein, das Linken proprietrer Programme mit dieser Bibliothek zu gestatten. Wenn Sie dies tun wollen, sollten Sie die GNU Lesser General Public License anstelle dieser Lizenz verwenden. Fr begleitende Dokumentation gibt es die GNU Free Documentation License (FDL).

Index

* (Metazeichen) 135 . (Arbeitsverzeichnis) 114 . (Punktskript) 572 .. (bergeordnetes Verzeichnis) .Xauthority 326 .Xressources 322 .bash_logout 516 .bash_prole 509, 516 .bashrc 516 .inputrc 509, 513 .lesskey 817 .menu 329 .rhosts 676, 865 .xsession 328 / (Wurzelverzeichnis) 462 /bin 463 /bin/hostname 611 /boot 353, 463 /dev 463 /dev/MAKEDEV 832 /dev/cdrom 471 /dev/gpmdata 305 /dev/null 523 /etc 463 /etc/X11/XF86Cong 318 /etc/X11/Xressources 322 /etc/X11/Xserver 323 /etc/X11/gdm/gdm.conf 332 /etc/adduser.conf 769 /etc/adjtime 810 /etc/aliases 686 /etc/alternatives 267 /etc/anacrontab 294

118

/etc/apache 713, 715, 717 /etc/apt/sources.list 238, 240, 271 /etc/auto.master 482 /etc/chatscripts/provider 626 /etc/cron.allow 294 /etc/cron.deny 294 /etc/crontab 292 /etc/defaultdomain 701 /etc/environment 333 /etc/exports 696 /etc/fstab 143, 472, 699, 835 /etc/group 488, 703, 883 /etc/gshadow 490, 883 /etc/host.conf 609 /etc/hostname 611, 809 /etc/hosts 600, 609 /etc/hosts.allow 672, 673 /etc/hosts.deny 672, 673 /etc/hosts.equiv 676, 856, 865 /etc/inetd.conf 670 /etc/init.d 455 /etc/init.d/rc 456 /etc/init.d/rcS 455 /etc/inittab 450, 454, 811 /etc/inputrc 509 /etc/isapnp.conf 446 /etc/isdn/device.ippp0 641 /etc/isdn/ipppd.ippp0 642 /etc/kernel-pkg.conf 378 /etc/ld.so.conf 816 /etc/lilo.conf 354, 362 /etc/lmhosts 721 /etc/lpd.perms 706

916

Index /usr/src 466 /usr/src/linux 380 /var 466 /var/log 467 /var/log/syslog 467, 627, 751, 820 /var/mail 467 /var/news 841 /var/spool 468 /var/www 712 : (NoOp) 572 ? (Metazeichen) 135 [] (Metazeichen) 136 1024 Zylinder 30, 371 10BaseT, 10Base2, 10Base5 24 1TR6 637 32-Bit-Dateizugriff 808 a2ps 766 Abbilddatei 43 Abhngigkeit 212 A. anzeigen 256 A. ausen mit dpkg 225 erfllte A. vorspielen 272 Kernmodul 790 Paket 212 Quellcode 254 unerfllte A. 225 abiword 757 Ablaufsteuerung (Bash) 553 abmelden 112 abschalten siehe herunterfahren Abschnitt (Manual) 157 Abteilung (Distribution) 219 Access Point (WLAN) 599, 636 Acrobat Reader 758 activate 343, 768 addgroup 768 adduser 769 Administrator siehe Verwalter Adresse Broadcast-A. 597, 606 Email-A. 656 Internet-A. 593 IP-Adresse 594 Point-to-Point-A. 606 Speicher-A. 64, 92 ADSL siehe Asymmetrical Digital Subscriber Line Advanced Linux Sound Architecture 410

/etc/mailcap 860 /etc/mime.types 860 /etc/modules.conf 429 /etc/modutils 429 /etc/motd 129 /etc/mtab 878 /etc/mtools.conf 838 /etc/netatalk/papd.conf 742 /etc/network/interfaces 612 /etc/networks 610 /etc/nsswitch.conf 609, 703 /etc/passwd 488, 703, 849, 884 /etc/ppp/chap-secrets 630 /etc/ppp/ip-up.d 631 /etc/ppp/ip.down.de 631 /etc/ppp/options 628 /etc/ppp/pap-secrets 630, 643 /etc/ppp/peers/provider 626 /etc/printcap 282, 706 /etc/prole 509, 515 /etc/rc*.d 456 /etc/resolv.conf 610, 614 /etc/samba 724 /etc/securetty 677 /etc/serial.conf 860 /etc/services 601, 602 /etc/setserial.conf 618 /etc/shadow 490, 703, 849, 863, 884 /etc/shells 491, 784 /etc/skeleton 769 /etc/sudoers 496 /etc/yp.conf 702 /oppy 140 /home 463 /lib 464 /lib/modules 790 /mnt 464 /opt 464 /proc 144, 406, 464 /proc/cmdline 423 /root 464 /sbin 464 /tmp 465 /usr 465 /usr/doc 155, 166 /usr/lib/cgi-bin 712 /usr/local 465 /usr/share 466 /usr/share/doc 155, 166

Index Advanced Package Tool 176, 188, 237, 772 Advanced Power Management 63, 389 ae 770 nderungsdatum (Datei) 875 afterstep 327 aktive Partition 768 aktualisieren Datenbank verfgbarer Pakete a. 189 Datenbank verfgbarer Pakete a. 242 Kern-Konguration a. 384 Kern a. 418 aktuelles Verzeichnis siehe Arbeitsverzeichnis alias 517, 572 alien 770 ALSA siehe Advanced Linux Sound Architecture Alternative 267, 269 Amateurfunk 398 anacron 294 analog 712 anhalten Dienst a. 458 System a. 112 anmelden 109, 821 Anmeldung A. an fernem Rechner 665, 873 A. unterbrechen 842 grasche A. 331 mehrfache A. 137 Option 821 Anonymous-FTP Authentizierung 667 Server einrichten 677 anpingen 845 Anrufbeantworter 650, 763 Anrufer-Identikation 648 anXious 298 AOL siehe America Online AOL-Server 719 apache 709 apachecong 710 APM siehe Advanced Power Management Apple-Macintosh-Textdatei 853 Appletalk 394, 739 apropos 160, 772 apslter 283 apsltercong 283 apt-cache 255 apt-cdrom 241 apt-get 176, 242, 772 Fehlerursache 242, 244 Option 255 Proxy-Server 243 apt-move 251 apt-setup 179 aptitude 263 Navigation 264 Tastaturkommando 265, 266 ar 211 Arbeitsgruppe (SAMBA) 720 Arbeitsplatzumgebung 297, 334 GNOME 337 KDE 335 Arbeitsspeicher 387 Auslastung 800 Bedarf 21 Kern 431 Arbeitsverzeichnis 114 A. anzeigen 849 A. wechseln 116 Archiv 870 Argument 889 Asymmetrical Digital Subscriber Line atd 295 at 295, 773 AT-Befehl (Modem) 647 AT&T 5, 505 Attachment 658 Attribut Datei-A. 130 Datei-A. ndern 133, 780 Datei-A. anzeigen 131, 824 auflegen (Einwahlverbindung) 846 Ausung A. umschalten 310 Bildschirm 308, 317 X11 320 Ausdruck, regulrer 895 ausfhren Programm regelmig a. 291 Ausfhrung bedingte A. (Bash) 558 Ausfhrungsrecht 130 Auslagerungsspeicher 480, 869 ausloggen siehe abmelden auspacken

917

634

918

Index BBAE siehe Breitband-Anschluss-Einheit BCP siehe Best Current Practice Bedingung (Bash) 561 beenden Bash b. 508 Dienst b. 458 PPP-Verbindeung b. 846 Programm b. 815 Prozess b. 528, 801, 815 vi b. 125 X11 beenden 311 Befehl siehe Kommando Befehlszeilenschalter siehe Option Benutzer 487, 723 Aktivitt anzeigen 884 B. ndern 882 B. anzeigen 887 B. aus Gruppe entfernen 802 B. benachrichtigen 885 B. einer Gruppe hinzufgen 802 B. hinzufgen 769 B. lschen 882 B. sperren 843, 882 B. verwalten 491, 769 Basisinstallation 102 besonderes Recht erteilen 494 Dateirecht 130 hinzufgen und entfernen 492 ID 487 ID anzeigen 810 Identitt ndern 867, 868 Information ber B. ndern 781 System-B. 769 verwalten 781 vordenierter B. 490 Benutzerdatenbank prfen 849 Benutzerkonto B. sperren 779 Benutzername B. ndern 882 B. anzeigen 810 eigener B. 887 Benutzeroberche 295 Benutzeroberche, grasche 295 Benutzerverwaltung 768 Berechnung, arithmetische (Bash) 547 Berkeley Software Distribution 6 Besitzer (Datei) 131 B. ndern 783

Archiv a. 870 Paket manuell a. 231 ausschalten siehe herunterfahren AUTOEXEC.BAT 348 autofs 481 automatisieren (Vorgang) 551 Automounter 481, 484 Benutzerrecht 485 Kern 404 awk 895 Backport 218 Backup 23 MS-Windows-Rechner (smbclient) 739 tar 870 badblocks 774 balsa 658 Bandlaufwerk 838, 870 base-cong (Paket) 102 bash 775 Bash 110, 505, 517 B. starten und beenden 508 Kommandovervollstndigung 518 Makro 511 Programmierung 551 Tastatureinstellungen 509 Basisinstallation 70 B. aus Web 96 B. von CD 96 B. von NFS 95 Bootdiskette 100 Bootmethode 98 Fehler 105 Kern 82 LILO 98 Modul 87 Netz 93 Neustart 100 Paketauswahl 105 Paketquelle 104 Point to Point Protocol 104 Systemuhr 97 Treiber 87 Basissystem Abbilddatei 45 Diskette 43 Installation 65, 95 Konguration 102 batch 775

Index Best Current Practice 168 Betriebssystem Minix 406 Version anzeigen 879 bg 572 Bibliothek bentigte B. anzeigen 816 Information ber B. aktualisieren 816 Bildbearbeitung 762 Bildschirm Ausung 308, 317, 320, 355, 850 B. zurcksetzen 854 falsche Darstellung 313 Frequenz 315 Konguration 308, 315 virtueller B. 324 xf86cong 315, 317 XF86Setup 308 Binrformat 5 binary-all 221 binary-i386 221 bind 573 BIOS 19, 341 Einstellung 61 Block fehlerhafter B. 774 Gre 830 Bluetooth 411 Boa (HTTPD) 719 Boot-Sequence (BIOS) 62 boot.ini (MS-WindowsNT) 370 Bootdiskette 221 B. erstellen 43, 344, 828 B. fr DOS/MS-Windows 48 Basisinstallation 100 booten 359 Grundlagen 341 Installationssystem b. 65 Kern b. (Basisinstallation) 68 MS-Windows NT 369 Bootloader Alternativer B. 372 LILO 351 Loadlin 344 Bootmanager 35, 351 Bootmeldung 792 Bootmen Installationssystem 66 LILO 360

919

Loadlin 347 Bootmethode Basisinstallation 98 bersicht 35 Wahl der B. 34 Bootparameter B. einstellen 850 Installation 66 Bootpartition 29, 32 Bootprompt 422, 433 Bootsektor 28, 98, 341 B. sichern 356 B. wiederherstellen 358 Bootverzeichnis 463 Bootvorgang 341 bosskill 169 B OURNE , S TEPHEN R. 505 Bourne-Again-Shell 505, 775 break 557 Breitband-Anschluss-Einheit 635 Broadcast-Adresse 597, 606 Broadcasting 721 Broken (Paketliste in dselect) 190 Browse List (SMB) 722 Browsing (SMB) 722 BSD siehe Berkeley Software Distribution Bug Tracking System 174 builtin 573 bunzip2 776 Bureau National de Metrologie 743 Busmastering 63 bzip2 776 Cache BIOS 63 C. auf Datentrger schreiben 869 Paket 250, 255 cal 777 Callerid 648 case 564 cat 119, 777 catdoc 758 cd 116 CD siehe Compact Disc CDE siehe Common Desktop Environment cdparanoia 761 cdrecord 761 CERN-httpd 719

920

Index Comprehensive TeX Archive Network 757 CONFIG.SYS 347 congisdn 638 Console siehe Konsole continue 558 contrib 220 control.tar.gz 212 convert 762 Coprozessor 387 Copyleft 5 copyright 167 Copyright 905 cp 120, 785 cp850 853 CR/LF 853, 874 Cron 291, 687 Konguration 292 und den Rechner abschalten 294 und gewhnliche Benutzer 294 crontab 294, 786 CTAN siehe Comprehensive TeX Archive Network CTRL-ALT-Backspace 309 CUPS siehe Common UNIX Printing System Cursor 111, 123 cut 787 Cut and Paste 323 Dmon 601 DANTE 757 DAT-Laufwerk 838 data.tar.gz 212 date 787 Datei 118 atime 485 Attribut 130, 780 Attribut ndern 133 Ausfhrungsrecht 130 Benutzerrecht 130 Benutzung anzeigen 801 Besitzer 131 Besitzer ndern 783 ctime 485 D. anzeigen 115, 823, 860 D. ausgeben 119, 777 D. aus Paket durch eigene Version ersetzen 269 D. bearbeiten 123

cfdisk 72, 74, 778 CGI siehe Common Gateway Interface chage 779 Challenge Handshake Authentication Protocol 620 changelog.Debian.gz 167 changelog.gz 167 CHAP siehe Challenge Handshake Authentication Protocol chat 627 Chat 620 Chatscript 626 chattr 780 chfn 781 chgrp 132, 781 chkrootkit 602 chmod 133, 782 chos (Bootloader) 372 chown 132, 783 chsh 784 CIFS siehe Common Internet File System ClamAV 602 ClearDTR 306 ClearRTS 306 Clipboard 323 cmp 784 Coda-Dateisystem 407 Codename 217 Codepage 850 408 command 574 Common Criteria 602 Common Desktop Environment 334 Common Gateway Interface CGI-Skript 712, 718 Common Internet File System 720 Common UNIX Printing System 280, 281 Compact Disc 138 Basisinstallation von CD 82, 96 CD brennen 761 CD einbinden 471, 835 CD entfernen 878 CD hinzufgen 241 Gertedatei fr proprietres Laufwerk 443 Gertedatei 60 Parameter 433 proprietrer Treiber 443 proprietres CD-Laufwerk 400 Start von CD 66

Index D. dekomprimieren 776 D. durchsuchen 803 D. einem Paket zuordnen 229 D. gemeinsam benutzen 493 D. komprimieren 776, 807 D. kopieren 120, 785 D. lschen 855 D. lesen 150 D. lschen 121 D. suchen 146, 230, 798 D. umbenennen 121, 840 D. vergleichen 784, 791 D. verschieben 121, 840 D. zusammenfgen 777 D. zwischen Rechnern bertragen 849 D. zwischen Rechnern abgleichen 851 D. zwischen Rechnern kopieren 857 dekomprimieren 806 Deskriptor (Bash) 521 Ende einer D. anzeigen 870 Gerte-D. 899 Gruppe 131 Gruppe ndern 781 Gruppenrecht 130 komprimierte D. ausgeben 890 komprimierte D. lesen 153 Kongurations-D. 129 leere D. erzeugen 875 Leserecht 130 mtime 485 Recht 130, 131 Recht ndern 782 Schreibrecht 130 Schreibschutz 780 Status 485 System-D. 128 temporre D. erzeugen 833 Typ bestimmen 798 versteckte D. 134, 823 Zeitstempel 131, 485, 875 Datei-Manager GNOME 339 KDE 656 Dateiattribut 130 Dateibesitzer D. anzeigen 823 Dateiname DOS/MS-Windows 838 Dateinamen 723

921

D. komprimierter Dateien anpassen 890 Dateinamenerweiterung 544 Dateirecht 130 D. ndern 782 D. ndern 132 D. anzeigen 131, 823 Dateisystem 461 Attribut 780 D. einstellen 877 D. erstellen (DOS) 827 D. erstellen (ext2) 830 D. prfen und reparieren 795, 801 D. verwalten 468 DOS-D. erstellen 829 Typ 470 Untersttzung durch den Kern 404 Datenbank D. verfgbarer Pakete 231 D. verfgbarer Pakete durchsuchen 256 D. vorhandener Dateien und Verzeichnisse 820, 881 Datenkompression 776, 806, 807, 880, 891 Datensicherung 23, 870 Datentrger als Benutzer D. einbinden 145 beim Systemstart automatisch einbinden 143 Benutzung anzeigen 801 D. einbinden 139, 835 D. entfernen 878 D. formatieren 829 D. prfen 774 D. von MS-Windows-Rechnern einbinden 738 DOS-D. formatieren 827 externer D. 138 Datentrger D. automatisch einbinden 481 D. entfernen 141 D. formatieren 475, 830 D. prfen 473, 793, 795 Datenzugriff optimieren 808 Datum D. anzeigen 788 D. einstellen 788 DBMS siehe Data Base Management System dbootstrap 68 DCF77 743

922 dd

Index Dienst starten und beenden 458 diff 791 dig 791 Digital Subscriber Line DSL-Modem 635 DSL-Router 636 Digital Versatile Disc 138, 762 Direct Memory Access DMA-Kanal 38 DMA-Kanal anzeigen 825, 847 dirs 575 Diskette 138, 139 auf D. zugreifen 140 Basisinstallation von D. 84 Basissystem 45 D. einbinden 140, 472, 835 D. entfernen 141, 878 D. fr Installation erstellen 46 D. prfen 793 DOS/MS-Windows 838 Installationsmethode in dselect 188 Treiber-D. 45 Diskettenlaufwerk Parameter 436 Diskquota 498 D. benutzen 502 D. einrichten 500 Kern 404 disown 575 DISPLAY 325, 541 Display-Manager 297, 331 gdm 332 distle 851 Distribution 9 Abteilung 219 D. aktualisieren 246 Layout 218 Release 217 Unterabteilung 222 Version 217 Distributor 9 Diversikation 269 djtools 290 DMA siehe Direct Memory Access, 392 dmesg 792 DNS siehe Domain Name System Dokumentation 155, 169 allgemeine D. 167

789 Abbilddiskette 47 DE-NIC 600 de.test 662 deb-control 272 debconf 203, 205 Konguration 203 Debian 9 Archiv 216 D.-Pakete verwalten 793 deutsche Debian-Mailing-Liste 173 Entwicklerreferenz 169 FAQ 168 Free Software Guidelines 10, 902 Geschichte 168 Guide to Installation and Usage 169 Mailing-Liste 172 Men 329 Policy 169 Web-Adresse 171 debian-binary 212 debian-cd 761 debian-guide 169 debian-history 168 debian-policy 169 declare 574 Default-Gateway 636 Default-Route 595 Deinstallation D. mit apt-get 249 D. mit dpkg 227 D. mit dselect 201 D. mit dselect 194 deja.com 172 dekomprimieren Datei d. 776, 806 depmod 790 Desktop Environment 334 virtueller D. 324 developers-reference 169 df 469, 790 DFSG siehe Debian Free Software Guidelines DHCP siehe Dynamic Host Conguration Protocol dhtml 170 dhttpd 719 Dial-on-Demand 616, 750

Index apache 712 Bash 520 Buch 167 Drucker 291 Entwicklerreferenz 169 Installationsdiskette 37 Kern 385 LILO 354 Linux Documentation Project 167 Paket 166 Plug and Play 448 Projekt zur D. 167 SAMBA 739 X11 334 Domne (SAMBA) 720 Domne (DNS) 600 Domne (NIS) 700 Domain siehe Domne Domain Controller 720 Domain Name System 599 DNS-Abfrage 752, 791, 809 DNS-Server einbinden 610 Domnenname 809 dynamisches DNS 636 Doom 764 dos 792 DOS Bootmen 347 Start 67, 101 Textdatei 853 DOS-Datentrger 827 DOS-Datentrger 470, 838 DOS/MS-Windows-Textdatei 800 DOSemu 760, 792, 838 dosfsck 474, 793 Dotle 134 Dotted Quad Notation 594 dpkg 222, 375, 793 Einfhrung 175 Voreinstellung 234 dpkg-buildpackage 254 dpkg-dev 253 dpkg-divert 269 dpkg-precongure 203 dpkg-recongure 203 dpkg-repack 271 dpkg-scanpackages 270 drucken 288, 766, 822 Auftrag lschen 823 auf MS-Windows oder OS/2-Rechner 708 Auftrag anzeigen 821 Auftrag lschen 289 d.im Netz 706 Info-Dokumentation 163 Manualseite 159 Testseite 286 Textdatei 766 umwandeln 805 Drucker 732 Auswahl 25 D. fr Apple-Rechner freigeben 741 D. freigeben (SAMBA) 732 D. verwalten 290 einstellen 877 Fehlerbehebung 286 Kern 401 Konguration 278, 282 Statusanzeigen 288 Warteschlange 821 dselect 182, 188, 794 aufrufen 794 Paketauswahl 193 Tastenbersicht 198 DSL siehe Digital Subscriber Line du 469, 794 dumpen 789 DVI-Dateien anzeigen 160 dvips 165, 756 dwww 170 Dynamic Host Conguration Protocol 599, 613, 636 e2fsck 473, 795 EAZ siehe Endgerteauswahlziffer echo 575 edit.com 753 Editor ae 770 emacs 895 Emacs 753 GNOME 754 KDE 754 Stream-E. 858 vi 123, 753, 883, 895 Xemacs 753 EDITOR 542, 884 EDSS1 637

923

924

Index E. lesen 825 E. senden 825 Filter 683 HOWTO 686 Klient 656 Mail Transport Agent 657 Mail User Agent 656, 657 Programm 660 Provider 656 Server einrichten 680 Shellskript 825 Simple Mail Transfer Protocol 656 enable 576 Endgerteauswahllziffer 637 Enhanced IDE E. einstellen 808 Kern 390 Parameter 433 Enhanced Intelligent Drive Electronics 23 enlightenment 327 Enlightenment Konguration 338 Pager 338 entfernen Datentrger e. 470, 878 Modul 427 Paket e. 227 entpacken 870, 880 Entwicklerversion Debian 217 Kern 376 Epoche 742 equivs 272 equivs-build 273 equivs-control 272 Ethernet Kabel 24 Kern 396 Typ 24 Ethernetkarte Auswahl 24 einbinden 611 Treiber 441 EURO-ISDN 637 eval 576 ex-Modus 125 Excel 758 exec 577 exim 657

EIDE siehe Enhanced IDE einbinden CD e. 835 Datentrger e. 139, 835 Datentrger e. 470 Diskette e. 835 Festplatte e. 835 Partition e. 835 einfrieren (Paketstatus) 216, 232 in dselect 194 Einfgemarke siehe Cursor Einfgen von Text (vi) 124 Eingabeaufforderung siehe Prompt Eingabe mitschreiben 858 einloggen siehe anmelden einpacken 870 Einrichtung IP-Masquerading 746 NAT 746 Einsatzzweck 17 einstellen Datum e. 788 Sprache e. 542 Tastatur e. 814 Uhrzeit e. 788, 810 Zeitzone e. 878 Einwahlverbindung Benutzern E. ermglichen 631 E. benutzen 623 E. ber ISDN 637 Einfhrung 615 Einwahlskript 620 Email-Einstellungen 687 Fehlersuche 624 Modem 617 elvis 753 emacs 895 Emacs 753 Email 660 Info 165 Manual 162 News 663 Email abholen 690 Adresse 656 Adressen umschreiben 688 Alias 686 automatisch abholen 693 E. automatisch senden 825

Index Einrichtung 680 fr Einwahlrechner 687 testen 684 eximcong 680 eximon 689 exit 577 Expanded Memory (BIOS) 62 Expansion (Bash) 543 export 577 Exportbeschrnkung 220 Ext2-Attribut A. setzen 780 anzeigen 824 Ext2-Dateisystem Attribut 780, 824 E. automatisch prfen 877 E. einstellen 877 E. erstellen 830 E. prfen 795 Extended Density Format 827 Extended Memory (BIOS) 62 fakeroot 253, 254, 796 false 796 FAQ siehe Frequently Asked Questions Farbe bei ls a. 823 Farbtiefe (X11) 320 FAT siehe File Allocation Table FAT-Dateisystem Datei wiederherstellen 793 F. erstellen 827, 829 F. prfen 793 Kern 405 FAT32 formatieren 827 Faxen 763 fdisk 797 DOS/MS-Windows 55, 58 FDL siehe Free Documentation License (GNU) Fehler /etc/inittab 454 Basisinstallation 105 Basiskonguration Netz 607 Drucker 286 exim 684 fetchmail 692 ISDN 645 Kern 417 LILO 367 Loadlin 350 NAT 749 netatalk 740 PPP 624, 627 SAMBA 734 X11 311 Fehlerdatenbank 174 Fehlermeldung 111 Feldvariable 548 Festplatte Adapterauswahl 23 Auslastung anzeigen 847 Basisinstallation von F. 84 belegten Platz anzeigen 790, 794 F. einbinden 835 F. einstellen 808 F. partitionieren 778, 797 Gertedatei 59 Name 57 Partitionierung anzeigen 778 Platzbedarf 25 prfen 774 Standby 808 Festplattenplatz belegten F. anzeigen 469 F. anzeigen 469 fetchmail 690 fetchmailconf 690 fg 578 FHS siehe File Hierarchy Standard FIFO 831, 832 le 797 File Hierarchy Standard 462 File Transfer Protocol 667 ASCII-Modus 668 FTP-Kommando 668 FTP-Server 677 FTP-Syslog 679 Image-Modus 668 incoming 679 passives FTP 668 Filter apslter 284 Email 683 Filter (drucken) 280 ltersetup 286 nd 146, 798 Fips 49, 52

925

926

Index GECOS-Feld 488 gedit 754 General Public License 5, 905 Gert Block-G. 389 zeichenorientiertes G. 400 Gertebezeichnung 139 Gertedatei 139 Diskette 139 G. erzeugen 832 Maus 276 Partition 57 proprietres CD-Laufwerk 443 Tabelle 899 Gertemanager (MS-Windows) 38 Gertenummer 356 Gerteverzeichnis 463 Geschichte 168 Gesellschaftsvertrag 10, 901 getty 451 gftp 669 Ghostscript 280, 805 GID siehe Gruppen-ID gimp 762 gmc 339 GMT siehe Greenwich Mean Time GNOME 337, 653 Datei-Manager 339 Display-Manager 332 Editor 754 Email 658 FTP-Klient 669 Info 166 Installation 337 Manual 161 Panel 340 PPP-Konguration 632 Window-Manager 338 gnome-apt 257 gnome-help-browser 161, 166 gnome-panel 340 gnome-ppp 632 gnome-session 338 gnome-terminal 325 gnotepad 754 gnp 754 GNU 4, 905 GNU Image Manipulation Program 762 gnumeric 758

Firewall 668 Firewire 402 Floppy siehe Diskette Font 300 for 554 formatieren 475, 829 Basisinstallation 78 DOS-Datentrger f. 827, 829 DOS/MS-Windows-Datentrger 475 Ext2-Dateisystem f. 830 Swapbereich f. 833 XDF 827 For Your Information 168 FQDN siehe Fully Qualied Domain Name Framebuffer 307 Kern 409 free 800 Free Documentation License 914 Free Software Foundation 905 Freeware 6 Frequently Asked Questions 662 Debian-FAQ 168 Internet-FAQ 172 Frequenz (Bildschirm) 315 Freshmeat 171 fromdos 800 frozen 217 fsck 801 FSF siehe Free Software Foundation Ftape Kern 403 ftp Benutzung 667 Referenz 669 FTP siehe File Transfer Protocol Fully Qualied Domain Name 610, 809 Fundbro 464 Funktion (Bash) 566 Funkuhr 744 fuser 751, 801 fvwm 327 FYI siehe For Your Information Galeon 653 Gateway 595, 607 gcombust 761 GDI siehe Graphical Device Interface gdm 332

Index gnupg 658, 659 GNU Privacy Guard 658 Gnus 663 gpart 358 gpasswd 492, 802 gphoto 762 GPL siehe General Public License (GNU) gpm 275 Benutzung 278 Repeater-Modus 277 X11 304 gpmcong 275 gpppon 633 Grakbearbeitung 762 Grakkarte Auswahl 22 G. identizieren 300, 303 Konguration 306, 315 untersttzte G. 300 xf86congxf86cong 315 XF86Setup 306 Grakspeicher 308 grasche Benutzeroberche 295 grasches Login 331 Grahical Device Interface GDI-Drucker 20 Graphical User Interface 295 Greenwich Mean Time 63 grep 803, 895 greppen 803 grip 764 groupdel 804 groups 804 GRUB 372 Gruppe 487 anzeigen 810 Benutzer entfernen 802 Benutzer hinzufgen 802 Dateirecht 130 eigene G. anzeigen 804 G. einer Datei 131 G. einer Datei ndern 132 G. hinzufgen und entfernen 492 G. lschen 804 G. verwalten 491, 769, 802 G. wechseln 841 ID 487 ID anzeigen 810 neue G. anlegen 768 Passwort 492, 802 Verwalter 492, 802 vordenierte G. 490 Zugehrigkeit anzeigen 823 Zugehrigkeit von Datei ndern 781 gs 280, 805 gs-aladdin 280 gtoaster 761 GUI siehe Graphical User Interface gunzip 806 guru 169 gv 165, 758 gxanim 763 gzip 807 Hacker-Sprache 169 half congured (Paketstatus) 216 half installed (Paketstatus) 216 halt 807 Hardlink siehe Link, harter Hardware Auswahl 19 HOWTO 19 Information 37 Ressource 37 Ressource anzeigen 825 Hardwareuhr 810 hash 578 Hauptkatalog siehe Home-Verzeichnis hdparm 808 Heimatverzeichnis siehe HomeVerzeichnis help 579 Here Document 523 herunterfahren 112, 808, 864 HID siehe Human Interface Device High Performance File System 406 Hilfe 155 Bash) 520 H. in dselect 183 H. suchen 170 Info 162, 811 Integriertes Programm 169 Internet 170 Kommando 766 Kommando erklren 886 Kommando nden 772 Manual 156 Netnews 172

927

928

Index http-Dmon 709 Human Interface Device HURD 10 hwclock 809 hylafax 763

Option 156 Programm 766 Hintergrund (Prozess) 526 hisax 637 history 579 History 141 hold (Paketstatus) 192, 194, 216 Home-Verzeichnis 114, 463, 769 H. ndern 882 H. aufteilen 478 Homepage siehe Startseite host 808 hostname 809 HOWTO 167 AX25 398 Bootprompt 433 CD 443 deutsches H. 167, 168 DNS 752 Drucker 291 Email 695 Ethernet 442 Framebuffer 409 Ftape 403 HAM (Amateurfunk) 398 Hardware 19 HTML 168 IP-Masquerade 384 ipchains 748 IPX 408 IR (Infrared) 398 ISDN 652 Kernel 385 LILO 354 Masquerade 746 NIS 700 Paket 168 PC-Card 20 Plug and Play 448 PPP 630 Printing 288 Quota 499 Software-RAID 390 Vesa Frame Buffer 307 Video Timings 319 wine 760 X11 334 HPFS siehe High Performance File System

400

i82365 86 icewm 327 Icon 297 Iconbox 338 id 810 IDE siehe Integrated Drive Electronics IDENT 674 identd 674 Identitt ndern 867 IEEE1394 402 IEEE 802.11 598 if 558 ifcong 605 ifdown 613 ifup 613 imagemagick 762 IMAP siehe Internet Message Access Protocol imon 650 index.html 712 Index von Paketen erstellen 270 inetd 670 info 162, 163, 810, 811 Info 162 drucken 163 Emacs 165 GNOME 166 KDE 166 init 113, 449, 453, 811 Inode 118, 499, 830 insmod 812 install-mbr 343 Installation /etc/apt/sources.list 238 apt-set 179 Basissystem 65 GNOME 337 I. abgleichen 851 I. aktualisieren 246 I. eines Paketes erzwingen 234 I. mit apt-get 247 I. mit dpkg 223 I. mit gnome-apt 260

Index I. synchronisieren 232 I. von Bootdiskette 221 I. von CD/DVD 224 Kern 414 Kongurationsdatei 205 Loadlin 344 dselect 182, 199 nicht-ofzielle Paketquelle 242 Paket 214 Quellcode 252 Quelle 238 Quellen dselect 186 Quellen fr Basisinstallation 82 Quellenreihenfolge 240 schrittweise I. mit dpkg 226 X11 299 Installations-CD 218 Installationsdatei 43 Installationsdiskette 42, 46 Installationsmedium Auswahl 36 bentigte Information 41 Installationsmethode Konguration in dselect 184 installiertes Paket anzeigen 228 Integrated Services Digital Network 637, 751 Ablaufverfolgung 650 Anrufbeantworter 650 automatische Einwahl 642 Basiskonguration 641 Benutzer Einwahl erlauben 645 Kern 398 Modememulation 646 protokollieren 647 Treiber 638 Verbindung berwachen 646 Verbindung starten und beenden 644 Interface Typ und Bezeichnung 604 Interface (Netz) 593 Internet 8 automatische Einwahl 630 Basisinstallation aus I. 96 Dienst 652 FAQ 172 I. als Informationsquelle 170 I. ber ISDN 637

929

I. ber Modem 617 Installation aus I. 104, 179 PPP-Verbindung herstellen 846 suchen 173 Super-Dmon 670 Internet Message Access Protocol 656 IMAP-Server 658, 659 Internet Protocol 594 IP-Adresse 594 IP-Adresse zuweisen 605 IP-Netz 595 private Adresse 594 Internet Service Provider 615, 745 Interrupt 38 I. anzeigen 825, 847 parallele Schnittstelle 877 serielle Schnittstelle 860 Intranet 594, 745 IO-Adresse 37 I. anzeigen 825 serielle Schnittstelle 860 IP siehe Internet Protocol IPC siehe Inter Process Communication ipchains 748, 751 IPSec 636 IPX (Novell) 394 IRC siehe Internet Relay Chat IrDA, Kern 398 ISA-PnP 444 isapnp 447 isapnptools 445 ISDN siehe Integrated Services Digital Network isdncong 641 isdnctrl 644 isdnlog 647 isdnrep 650 isdnutils 637, 646 ISO 15408 602 ISO 9660 141 ISP siehe Internet Service Provider ispell 812 jargon 169 JDBC siehe Java Data Base Connectivity jobs 580 Jobverwaltung 525 Jokerzeichen 135 Joystick 402

930 Jumper

Index 38 unstabiler K. 376 woody 376 kernel-doc 169 kernel-package 378 kernel-packagecong 378 Kernel Hacking 411 Kernmeldung 792 Kernparameter 431 K. im Kern einstellen 850 LILO 365 Loadlin 346 Syntax 422 kill 529, 580 killall 815 kisdn 638 Klammeraffe 656 Klammererweiterung (Bash) 549 kmail 659 kmod 428 knews 664 Kommando 4, 765 Eingabe 111 externes K. 517 Geschichte 519, 536 internes K. 517 K. gruppieren 531 K. zu bestimmter Zeit ausfhren Option 765 Parameter 115 Substitution 546 Verkettung 524 Vervollstndigung 518 Kommandogeschichte 141 Kommandointerpreter 505 Kommentar (Bash) 552 kompilieren Kern k. 375 Quellcodepaket k. 253 komprimieren Datei k. 776, 807 komprimierte Datei k. D. anzeigen 892 k. D. durchsuchen 891 Konguration Apache 713 APT 237 Bash 509 Basissystem 102 Drucker 278, 282

K-Men 336 Kalender 742, 777 Katalog siehe Verzeichnis kbdcong 814 KDE siehe K Desktop Environment Editor 754 Email 659 Info 166 Manual 161 News 665 PPP-Konguration 632 kdehelp 161, 166 K Desktop Environment 335 Installation 335 kdm 332 kedit 754 Kern 2.2.x 377 2.4.x 376 2.6.0 376 Appletalk 394 Auswahl 377 Automounter 481 Dokumentation 169, 172 Entwicklerversion 376 Ethernet 396 Fehler 417 Grundlagen 373 Installation 414 IPX-Support 394 K. bersetzen 375 Konguration 380 Konguration aktualisieren 384 Konguration sichern 384 manuelles bersetzen 413 Masquerading 747 NAT 747 Netzuntersttzung 387 NFS-Server 695 Option 385 Parameter 433 Parameterverarbeitung 425 Patch 379 Quellcode 379 sarge 376 stabiler K. 376 bersetzen 411

773

Index Enlightenment 338 Festplatte 808 K. mit gnome-apt 262 Kern 380 LILO 354 Maus 275 modprobe 429 Modul 834 Namensausung 609, 610 Paket 202, 205 PC-Card 85 Plug and Play 444, 445 SAMBA 724 serielle Schnittstelle 617 Skript 202 Standard Window-Manager 328 Tastatur 71 X11 304, 313 Kongurationsdatei 129 Installation 205 K. lschen 227 persnliche K. 134 kongurieren in dselect 201 Konikt 212, 213 apt-get 248 gnome-apt 260 K. in dselect 195, 196 K. mit dpkg lsen 226 Kongurationsdatei 205 berprfung 214 Konqueror 656 Konsole 408 aktuelle K. anzeigen 876 K. umschalten 109, 137, 311 K. zurcksetzen 854 Maus 275 virtuelle K. 69, 137 Kontextmen 324 Konto (Benutzer) K. einrichten 769 K. lschen 882 K. sperren 843 Kontrolldatei 272 Kontrollterminal 842 konvertieren Bildformat 762 Druckdatei 288 Info-Dokumentation 163 kopieren 120, 785 k. auf Diskette 142 k. zwischen Rechnern 849 roh 789 sicher zwischen Rechnern k. kppp 632 krn 665

931

857

lschen Datei l. 855 Druckauftrag l. 823 Verzeichnis l. 855 laden Modul l. 87, 812 Treiber l. 87, 812 lame 764 LAN siehe Local Area Network LANG 542 Laptop 20 A LTEX 754 Latin-1 408, 814, 853 Laufwerksbuchstabe 57, 838 DOS/MS-Windows 58 MS-Windows NT 59 mtools 838 LBA siehe Logical Block Addressing LD_LIBRARY_PATH 542 LDAP siehe Lightweight Directory Access Protocol ldcong 815 ldd 816 LDP siehe Linux Documentation Project Leasetime (DHCP) 614 Leserecht 130 less 119, 151, 816 Kommandozeilenoption 816 Preprozessor 154 suchen 152 Zeichensatz 153 LESSCHARSET 153 LESSCLOSE 154 Lesser General Public License 906, 914 lessle 154 lesskey 817 LESSOPEN 154 lesspipe 154 let 581 LGPL siehe Lesser General Public License (GNU)

932

Index Logical Block Addressing 30 login 451, 821 Login: 110 logout 582 Look and Feel 297 Loopback Interface 597 Kern 389 lost+found 464 lp 280, 821 lpc 290 lpq 288, 821 lpr 280, 288, 822 lprm 289, 822 lprng 280 ls 131, 134, 486, 823 lsattr 824 lsdev 825 lsmod 427, 825 LUG siehe Linux User Group luser 169 Lynx 655 lyx 757 Macintosh 739 magiclter 282 Magnetband 138 mail 825 Mail-Provider 656 Mailing-Liste (Debian) 172 Mail Transport Agent 657 exim 657, 680 postx 657 sendmail 657 Mail User Agent 656, 657 main 219 maint-guide 169 Major Number 356, 832 make-kpkg 411 Makele 375 makeinfo 164 Makro (Bash) 511 Malware 602 man 156, 826 Manual 156, 826 Abschnitt 157 Anzeigeprogramm 160 Aufbau 158 Emacs 162

libc5 191 lilo 366, 817 LILO 342, 351, 416, 817 Basisinstallation 98 Fehler 367 Installation 359 Kerninstallation 414 Kernparameter 423 Konguration 354 Referenz 362 lilocong 354 Link 126 harter L. 127, 819 L. lschen 128 symbolischer L. siehe weicher L., 128 weicher L. 128, 819 Link, symbolishcer 718 Linux Geschichte 8 Version anzeigen 879 Linux.com 172 Linux.de 172 Linux Directory Services 700 Linux Documentation Project 167, 171 Linux Online 172 Linux Today 171 Linux User Group 172 Lizenz 902, 905 ln 127, 128, 818 loadlin 67, 101 Loadlin 344 Benutzung 345 Fehler 350 Installation 344 Kernparameter 424 local 581 localhost 597, 610, 658 locate 149, 819 lschen 121 Druckauftrag l. 289 Kongurationsdatei l. 227 l. in dselect 194 l. von Text (vi) 124 Verzeichnis l. 856 Logdatei 467 Beispiel PPP 627 Eintrge erzeugen 820 Logdatei (Web-Server) 712 logger 820

Index GNOME 161 KDE 161 Manualseite drucken 159, 826 Manualseite suchen 160, 772 Manualseite umwandeln 826 Sprache 158, 826 mapped memory (BIOS) 64 masqmail 689 Masquerading siehe Network Address Translation Master Boot Record 28, 98, 99, 101, 341, 768 Master Browser (SMB) 722 Maus 402 Benutzung 278 Konguration 275, 305, 314 Protokoll 276 Schnittstelle 276 Treiber 442 xf86cong 314 XF86Setup 305 Maximal Transfer Unit 606 mbr 99, 101, 343 MBR siehe Master Boot Record MD5 (Passwort) 102 Mehr-Prozessor-System 376 Mehrfrequenzwahlverfahren 621 Memory Cache (BIOS) 63 Memory Hole (BIOS) 63 Memory Type Range Register 387 menu 329 menucong (Kern) 382 Men Debian 329 Denitionsdatei 329 GNOME 340 KDE 336 LILO 360 M. berschreiben 331 Metazeichen 135, 544 nd 148 M. in regulrem Ausdruck 896 M. quoten 545 Shell 895 Metric 606 Metrolink 298 mformat 827 mgetty 452, 763 mgetty-fax 763

933

mgetty-voice 763 Microchannel 388 MIME siehe Multipurpose Internet Mail Extensions mini-HOWTO 167 Minix 406 Minor Number 356, 832 Mirror siehe Spiegel Mitteleuropische Zeit 743 mkboot 344, 828 mkdir 115, 828 mkdosfs 475, 829 mke2fs 475, 830 mkfo 831 mkfs 829 mkhybrid 761 mkisofs 761 mknod 832 mksmbpasswd 724 mkswap 480, 832 mktemp 833 modconf 87, 89, 428, 833 Modem Installation ber M. 104 Interneteinwahl 617 modinfo 834 modprobe 427, 429, 834 Modul 374, 386, 426 Abhngigkeit berechnen 790 Auswahl (modconf ) 87 Basisinstallation 87 entfernen 90, 427 geladene M. anzeigen 427, 825 Information anzeigen 834 ISDN 638 M. automatisch laden 428 M. entladen 856 M. kongurieren 834 M. laden 87, 426, 812, 834 Parameter 91, 433 more 151, 835 mount 140, 468, 470, 835 Dateisystemtyp 470 mounten 139, 470 als Benutzer m. 145 automatisch m. 481 Basisinstallation 79 CD 471 Diskette m. 472

934

Index Namensausung dynamische N. bei ISDN 643 ISDN 643 N. bei PPP 619 N. kongurieren 609, 610 WINS 721 Nameserver 609 NAT siehe Network Address Translation National Physical Laboratory 743 Native Language Support 408 Navigator 652 NCP siehe NetWare Core Protocol Netatalk 739 NetBEUI 720 NetBIOS 720 NetBIOS over TCP/IP 721 Netiquette 662 Netmask 596 Netnews 660 Archiv 662 Hilfe 172 Server 661 Netscape 652 Mail 658 News 663 netstat 751 NetWare Core Protocol 408 Network Address Translation 636, 745 Fehler 749 NAT aktivieren 748 Startskript 749 Test 749 Network Administrator Guide 169 Network File System 95, 695 Basisinstallation 81 Datei-Attribut 696 Export 696 Installationsmethode 187 Kern 407 Klient 695 Server 695, 696 Sicherheit 699 Verzeichnis einbinden 698 Network Information Service 700 arbeiten mit NIS 705 Domne 700 Domnenname 809 HOWTO 700 Klient einrichten 702

DOS/MS-Windows-Partition 81, 470 NFS 81 Rootpartition 80 MouseSystems 277 Mozilla 653 MP3 763, 764 MS-Windows Datentrger 838 Hardware 20 Internet Name Service 720, 721 Koexistenz 18 Partition einbinden 470 Programm ausfhren 760, 888 Textdatei 853 MS-Windows NT LILO 369 Partition einbinden 471 MSDOS.SYS 348 MSN siehe Multiple Subscriber Number mswordview 758, 837 mt 837 MTA siehe Mail Transport Agent mtools 838 MTRR siehe Memory Type Range Register MTU siehe Maximum Transfer Unit MUA siehe Mail User Agent Multi-NFS 188 Multi-processing support 387 Multi CD 185, 187 Multiple Subscriber Number 637 Multipurpose Internet Mail Extensions 658, 860 M URDOCK , I AN 9 mutt 660 mv 121, 840 Nachricht N. an alle Benutzer schicken 885 N. an fremde Rechner schicken 857 Name Ausung 599 Domain Name System 599 eigener Rechner 611, 809 IP-Adresse zuordnen 609 N. von Benutzer ndern 781, 882 NetBIOS/CIFS 720 named 599, 600 Named Pipe 831

Index Master-Server 701 NISplus 700 Server einrichten 701 Slave-Server 704 yppasswd 705 Network Time Protocol 744, 843 Netz Adresse 597 Adressenbersetzung 745 automatische Konguration 94, 611 Basisinstallation 93 Basiskonguration 604 bentigte Information 40 Dateisystem 695 Dienste fr Macintosh 739 drucken im N. 706 Grundlagen 593 Laptop 614 manuelle Konguration 95 MS-Windows 720 Server-Dienst 670 Sicherheit 865 unterschiedliche Konguration 614 Verbindung testen 845, 876 Zugangskontrolle 672 Netzadapter siehe Netzkarte Netzinterface siehe Netzkarte Netzkarte 593 Kern 396 N. einbinden 605 Treiberparameter (Ethernet) 441 Netzmaske 596, 597 Neuigkeiten anzeigen 841 Neustart Basisinstallation 100 New (Paketliste in dselect) 190 newgrp 841 news 841 News 660, 841 Newsgruppe 172, 660 Newsreader 660, 661 Newsserver 661 NFS siehe Network File System nfs-kernel-server 695 nfs-server 695 NIC siehe Network Information Center nice 842 NIS siehe Network Information Service nodeadkeys 814 nohup 842 non-free 220 non-US 220 notepad.exe 753 NT File System 406, 471 NTFS siehe NT File System NTP siehe Network Time Protocol ntpd 744 ntpdate 745, 842 ntpq 745 nvi 753

935

Obsolete (Paketliste in dselect) 190 ODBC siehe Open Data Base Connectivity Ofce-Programm 757 Online-Handbuch siehe Manual Open Sound System 410 Open Source 7, 902 OpenSSH 666 Opera 656 Option 765 Ordner siehe Verzeichnis OSS siehe Open Sound System override-Datei 270 Packages 270 Pager 150, 816, 835 Enlightenment 338 PAGER 541, 826 Paket Abhngigkeit 212 angepasstes P. erstellen 271 Auswahl 216, 232, 233 Cache 250 Datei einem P. zuordnen 229 Dateiname 211 Datei berschreiben 269 Datenbank verfgbarer P. 231 Dokumentation 166 Empfehlung 213 Erstellung 169 Format umwandeln 771 Index erstellen 270 Information 228, 230, 255 Inhalt anzeigen 211 Installation 214, 234, 247 installiertes P. 228 Kern-P. 412 Kern kompilieren 377

936

Index Kommando 115 Modul 91 Treiber 433 Parameterdatei Loadlin 346 Parametervariable 535, 552 parted 49 Partition 27 Aufteilung 33 DOS/MS-Windows 58 eingebundene P. anzeigen 468 erstellen 778 erweiterte P. 28, 861 Gertedatei 59 Linux 59 logische P. 28, 59 MS-Windows95/98 52 MS-Windows NT 59 Name 57 P. aktivieren 768, 861 P. anzeigen 861 P. automatisch einbinden 481 P. einbinden 475, 835 P. einbinden) 79 P. entfernen 878 P. erstellen 797, 861 P. formatieren 475 P. kopieren 785 P. prfen 793, 795 P. verkleinern 49 primre P. 28, 59 prfen 473 Typ 28, 861 Partitionierung 48 Durchfhrung 75 manuelle P. 54 P. anzeigen 778 P. unter DOS/MS-Windows 49, 55 P. unter Linux 72 Planung 31 Partitionstabelle 358 passwd 843 Password Authentication Protocol 620 Passwort 110, 488 eigenes P. ndern 491 Frist zur nderung 843 MD5 102 P. ndern 843 P. verwalten 779

Konguration 202, 205 Konikt 213 Kontrolldatei 272 Name 211 P. aktualisieren 244 P. auswhlen mit dselect 189 P. bearbeiten 230 P. deinstallieren 227 P. einrichten 772, 873 P. entfernen 249 P. ersetzen 214 P. installieren mit dpkg 223 P. lschen 227, 772 P. manuell auspacken 231 P. suchen 229, 256 Pre-Depends 214 Quellcode 221, 252 Quellcodeabhngigkeit 254 Quelle 242 Rechnerarchitektur 211 Status 192, 215, 216, 229 Task-P. 177 Upstream-Version 211 verfgbares P. aktualisieren 242 Versionsnummer 211 Verwaltung 178, 211 virtuelles P. 212 vorgesehener Status 216 X11 299 Paketauswahl Basisinstallation 105 P. mit aptitude 265 P. mit dpkg 232 P. mit dselect 189, 193 P. mit gnome-apt 259 Paketquelle APT 238 Basisinstallation 104 in dselect 184 Panel GNOME 340 KDE 336 PAP siehe Password Authentication Protocol parallele Schnittstelle 877 Kern 401 Treiber 442 Parameter Kern 421, 431

Index SAMBA 733 Schatten-P. 489 verschlsseltes P. (SAMBA) 722, 733 Verwalter 103 patch 844 Patch Kern-P. 418 P. erzeugen 791 PC-Card 103, 388, 397 HOWTO 20 Konguration 85 PCI Latency Timer 63 PCMCIA siehe PC Card PDC siehe Primary Domain Controller PDF siehe Portable Document Format Peer (NTP) 744 perl 895 Pfad 116 Abkrzung 118 absoluter P. 116 relativer P. 117 pgp 659 PGP siehe Pretty Good Privacy Physikalisch-Technische Bundesanstalt 743 PID siehe Prozess-ID pidof 845 ping 606, 845 Pipe 524, 831 PK-Zip 880, 891 plex86 760 Plug and Play 38 Kern 389 Konguration 444, 445 pnpdump 445 poff 626, 846 Point to Point Protocol 104, 615 Adresse 606 automatischer Start 630 automatisch Programm ausfhren 631 Fehlersuche 624 Option 628 PPPoE 636 Verbindung 597, 846 Point to Point Tunneling Protocol 636 Policy 169 Polling 877 pon 623, 846 POP siehe Post Ofce Protocol

937

popd 582 Port (IP) 601, 801 Portable Document Format 758 Port Forwarding 636, 746 postx 657, 689 postinst-Skript 202, 215 Post Ofce Protocol 656 POP-Server 658, 659 postrm-Skript 215 PostScript 741, 766 anzeigen 165 drucken 165 umwandeln 805 PostScript Printer Description 741 potato 217 PPD siehe PostScript Printer Description PPD-Datei 741 PPP siehe Point to Point Protocol pppcong 618 pppd 615 pppoe 634 pppstats 846 PPTP siehe Point to Point Tunneling Protocol Pre-Depends 214 preinst-Skript 214 prerm-Skript 214 Pretty Good Privacy 658 Primary Domain Controller 720 printenv 847 printtool 290 printtop 290 Prioritt 842, 854 procinfo 847 procmail 660 Programm Ausgabe aktualisieren 885 Frage beantworten 889 nach Einwahl ausfhren 631 P. auf fremdem Rechner ausfhren 856, 865 P. automatisch ausfhren 786 P. beenden 815 P. bei Anruf ausfhren 649 P. mit anderer Benutzeridentitt ausfhren 867 P. regelmig ausfhren 291 P. spter ausfhren 775 Pfad- und Dateiname 886

938

Index quake 764 Quake 764 Quellcode 5 Kern 379 Paket 221, 252 Q. installieren 252 quota 849 Quota siehe Diskquota quoten 897 qwertz 814 r-Kommando 675 RAID siehe Redundant Array of Inexpensive Discs RAM siehe Random Access Memory RAMDAC siehe RAM Digital to Analog Converter RAM Digital to Analog Converter 303 Ramdisk 42, 390 Random Access Memory Auslastung 800 Bedarf 21 Benutzung anzeigen 847 Fehler 22 rawrite 46 RBL siehe Realtime Blackhole List rcp 675, 849 rdev 425, 850 rdist 851 RE siehe regulrer Ausdruck read 582 readline 509 README.Debian 167 readonly 583 Realtime Blackhole List 683 reboot 852 Rechenzeit 842 Rechnerarchitektur 879 Rechnerauslastung 847 Rechnername 809 Recht Datei-R. 130 R. ndern 782 R. ndern 133 R. an Benutzer vergeben 494 R. anzeigen 131, 823 R. erteilen 868 R. vortuschen 796 Rechtschreibprfung 812

Version 766 Programmaufruf 765 Prompt 3, 110, 538 proposed-update 222 Protokoll 593, 602 Appletalk 739 Maus 276 Sitzungs-P. 858 Systemprotokoll 820 Protokolldatei siehe Logdatei protokollieren ISDN 647 Sitzung p. 858 Proxy-Server 752 apt-get 243 Prozess P. anzeigen 801, 847, 875 P. bedingt ausfhren 530 P. beenden 528, 815 P. im Hintergrund starten 526 P. ohne Anmeldung ausfhren 842 P. verwalten 525 Prioritt ndern 842, 854 Prozess-ID 526, 845 Struktur anzeigen 848 zwischen P. umschalten 527 Prozessgruppe 854 Prozessor 21, 63, 386 prfen Bedingung p. 561 Datentrger 473 Datentrger p. 795 DOS/MS-Windows-Dateisystem 474 ps 847 PS/2-Maus 276 PS1 538 pstree 848 PTB siehe Physikalisch-Technische Bundesanstalt public_html 712 Public Domain 6 Pulswahl 621 pump 613 purge 194, 201, 227 pushd 582 pwck 848 pwd 114, 849 qmail 689

Index recode 853 Recommendation 213 Redundant Array of Inexpensive Discs 390 Reektor 662 regulrer Ausdruck 895 Release 37, 217 renice 854 reparieren Datentrger r. 473, 801 Installation r. mit apt-get 255 Installation r. mit gnome-apt 260 Repeater-Modus (gpm) 277 replace (Paketeigenschaft) 214 Request For Comments 168, 169 RFC 1179 279 RFC 1305 744 RFC 1661 615 RFC 1939 656 RFC 2045 658 RFC 2060 656 RFC 2910 281 RFC 791 594 RFC 821 656 RFC 854 665 RFC 959 667 Rescue-Diskette 42, 43 Abbilddatei 44 Start des Systems 100 Start von R. 65 reset 854 Ressource Benutzung anzeigen 801, 847 freigeben (SAMBA) 731 X11 322 Rettungsdiskette 43 return 584 RFC siehe Request For Comments RIP siehe Routing Information Protocol Ripper 764 R ITCHIE , D ENNIS 5 rlogin 675 rm 121, 855 rmdir 116, 855 rmmod 856 Rootdateisystem 431, 850 Rootdiskette 43, 44 Rootkit 602 Rootpartition 32, 80

939

Rootverzeichnis siehe Wurzelverzeichnis route 607 Router 595 Routing 598, 747 Routing-Tabelle 608 Routing Information Protocol 636 Roxen (HTTPD) 719 RPM-Paket installieren 771 rsh 675, 856 runlevel 857 Runlevel 449, 451, 456, 458, 811, 857 rwall 857 SAMBA 408 Dokumentation 739 Einfhrung 720 Fehler 734 Installation 723 Konguration 724 Konguration mit swat 736 Ressource freigeben 731 testen 733 sambacong 724 sane 762 sarge 217, 376 Scanner-Software 762 Schaltsekunde 743 Schattenpasswort 489, 863 Schlappscheibe siehe Diskette Schlsselstrke (Netscape) 655 Schnittstelle serielle S. 276, 617, 860 Treiber fr parallele S. 442 Schreibrecht 130 Schreibschutz Datei 780 Diskette 100 Schriftart 300 scp 857 script 858 Scrollbar 324 SCSI siehe Small Computer Systems Interface Secure Shell 666, 677, 865 sed 858, 895 see 860 select 556 sendmail 657, 689 serielle Schnittstelle 276, 617, 860

940

Index SMTP-Server 658, 659 Single User Modus 449, 452 Skript 551 S. zur Authentizierung bei PPP 620 Slackware-Paket installieren 771 Slashdot 171 smail 689 Small Computer Systems Interface 23 Kern 394 Parameter 436 Small Ofce Home 18 SMB siehe Server Message Block smbclient 708, 734 smbmount 738 SMTP siehe Simple Mail Transfer Protocol Social Contract 10, 901 Softlink siehe Link, weicher Software Debians Denition freier S. 902 freie S. 6, 902 kommerzielle S. 10 nicht-ofzielle Bezugsquelle 242 Public Domain 6 Software in the Public Interest 9 SOHO siehe Small Ofce Home sort 864 sortieren 865 Soundkarte 410, 443 Soundplayer 763 source 587 Sourcecode siehe Quellcode sox 764 Spalte in Textdatei ausschneiden 787 Spam 683 Speicherauslastung 800, 847, 875 Speicherkarte 138 Speichern von Text (vi) 125 Speicherplatz Auslastung 794 Bedarf 25 Begrenzung anzeigen 849 reservierter S. 830, 877 S. anzeigen 790 S. begrenzen 498 sperren, Benutzerkonto 779 SPI siehe Software in the Public Interest Spiegel Liste der Debian-S. 222

Server Dmon 601 DHCP 613 DNS 600, 609 Email 656 FTP 667 HTTP 709 IMAP 656, 658 News 660 NTP 744 POP 656, 658 Proxy 655 SAMBA 720 SSH 666 Telnet 665 Web 709, 719 X-Server 296 Server Message Block 720 Kern 408 SMB/CIFS-Ressourcen einbinden 738 Server Side Include 718 set 584 setserial 617, 860 sfdisk 861 SGID-Bit bei Verzeichnissen 494 shadowcong 490, 863 Shadow RAM (BIOS) 62 Shell 110, 775 SHELL 543 Shellskript 551 shift 585 shopt 586 shutdown 113, 864 Sicherheit 602 Backup 23 IPsec 636 Network File System 699 Netz 865 X11 326 Sichern der Kern-Konguration 384 Signal 528 S. anzeigen 815 S. senden 815 SIGINT 529 SIGKILL 529 SIGSEGV 412 SIGTERM 529 SIGTERM 815 Simple Mail Transfer Protocol 656

Index lokaler S. 251 Spiel 172, 764 Splitter 635 Spoong 674 Spooler 279, 822 Druckauftrag anzeigen 821 Spracheinstellung Bash 542 Manual 158 spulen (Band) 838 SQL siehe Structured Query Language squid 752 ssh 666, 865 SSH siehe Secure Shell ssmtp 689 stable 217 S TALLMAN , R ICHARD 4 Stampede-Paket installieren 771 Standardausgabe 521, 777 Standardeingabe 521, 523 Standardfehlerausgabe 521 Standardshell 491, 784 Standorte, unterschiedliche (Netz) 614 Startdatei (Bash) 509 starten (Dienst) 458 Startpartition 768 Startskript 455 Beispiel Sound 567 installieren 459 S. fr Runlevel 456 Systemstart 455 wichtiges S. 457 startx 310, 325 stat 486 Statistik PPP 847 Textdatei 885 Web-Server 712 Status Drucker 288 gewnschter S. 216 Paket-S. 192, 215, 229 stderr 521 stdin 521 stdout 521 stoppen (Dienst) 458 Stopskript 455 strace 866 Stratum (NTP) 744 Stream-Editor 858 su 129, 867 Subnetz 595 Substitution (Bash) 543 suchen Datei s. 146, 230, 798, 820 im Internet s. 173 im Manual s. 160 im Web s. 173 in dselect 193 in Hilfe s. 170 in info s. 163 in Newsgruppen s. 172 Kommando 886 less 152 Manualseite s. 772 Paket s. 229, 256 regulrer Ausdruck 895 s. in komprimierten Dateien 891 s. mit aptitude 265 s. mit gnome-apt 259 s. und ersetzen in Textdatei 858 schnell s. 149 Text s. 124, 803 Suchmaschine 173 sudo 496, 868 Suggestion 213 SUID-Bit 494 suidmanager 495 suidregister 495 sulogin 452 Superblock 474 SuperProbe 303 Superuser 3 Supervisor siehe Verwalter suspend 587 Swapbereich 480 Auslastung 800 Basisinstallation 77 Gre und Lage 31 S. einbinden 869 S. einrichten 833 S. freigeben 869 S. im Kern festlegen 850 Swapdatei 481 S. einbinden 869 S. einrichten 833 S. freigeben 869 swapoff 480, 868

941

942

Index task-gnome-apps 337 task-gnome-desktop 337 task-gnome-games 337 task-gnome-net 337 Task-Paket 177, 181 task-x-window-system 302 task-x-window-system-core 302 tasksel 181, 873 Tastatur deutsche T. unter X11 314, 319 Konguration 306, 314 Konguration (Bash) 509 nodeadkeys 814 qwertz 814 T. einstellen 814 xf86cong 314 XF86Setup 306 Tastaturlayout Basisinstallation 71 Taste 3 aptitude 265 Bash 511 dselect 184, 198 vi 123 tcic 86 TCP siehe Transmission Control Protocol TCP-Wrapper 672 TCP/IP 393, 593, 602, 636 tcpd 672 telnet 873 Telnet 665, 677 Temps Atomique International 743 Terminal aktuelles T. anzeigen 876 Emulation 300, 324, 508 T. zurcksetzen 854 test 561 teTeX 755 tetex-bin 281 TeX 754 texi2dvi 163 texi2html 164 texi2pdf 164 Textbetrachter siehe Pager Textdatei Apple-Macintosh-T. 853 DOS-Textdatei 853 komprimierte T. anzeigen 892 MS-Windows-T. 853

swapon 480, 869 swat 736 Switch 636 synaptic 263 sync 869 Syntax (Kommando) 4, 766 syslinux 372, 425 Syslog 679 syslogd 820 System S. anhalten 808 S. warm starten 853 Systemabschluss 112, 808 Nachricht 864 Zeit bestimmen 864 System Administrator Guide 169 Systemaufruf 373 S. anzeigen 866 Systembenutzer 490 Systemdatei 128 Systemgruppe 490 Systeminitialisierung 451 Systemlast bei niedriger S. Programm ausfhren 775 S. anzeigen 874, 881, 884 Systemlaufzeit anzeigen 881 Systemmanager siehe Verwalter Systemprotokoll 820 Systemressource Benutzung anzeigen 847 S. einschrnken 588 Systemstart Auswahl des Betriebssystems 101 Startskript 455 Systemuhr 742, 788, 810 Basisinstallation 97 Bios 63 Systemzeit 843 T-DSL 634 T-ISDN-DSL 634 Tabellenkalkulation 758 tail 869 TANENBAUM , A NDREW S. tar 870 tar-Archiv 870 task-c++-dev 253 task-c-dev 253

406

Index Spalte ausschneiden 787 T. anzeigen 835 T. automatisch bearbeiten 858 T. durchsuchen 803 T. sortieren 865 T. umwandeln 853, 874 Unterschiede anzeigen 791 Zeilen, Wrter, Zeichen zhlen 885 Texteditor 123, 753 Textverarbeitung 757, 865 The Gimp 762 T HOMPSON , K ENNETH 5 Tilde (~) 118 tkxanim 763 tload 874 todos 874 Token Ring 397 top 875 Toplevel-Domain 600 T ORVALDS , L INUS B. 8 touch 875 Toy Story 217 traceroute 876 Transmission Control Protocol 602 trap 587 Treiber 426 (E)IDE 433 Basisinstallation 87 Diskettenlaufwerk 436 entfernen 90, 427 Ethernet 441 Information anzeigen 834 ISDN 638 laden 426 Maus 442 Parameter 433 proprietres CD-Laufwerk 443 SCSI 436 Soundkarte 443 T. anzeigen 825 T. entfernen 856 T. fr parallele Schnittstelle 442 T. laden 87, 812 Treiberdiskette 43, 45 Trojanisches Pferd 602 true 876 tty 876 tune2fs 877 tunelp 877 type 588 typeskript 858 tzcong 878

943

U.S. Naval Observatory 743 UART siehe Universal Asynchronous Receiver Transmitter UDF siehe Universal Disc Format UDP siehe User Datagrm Protocol bersetzen Kern . 375, 411 Quellcodepaket . 254 bertakten (Prozessor) 63 Uhrzeit Basisinstallation 97 U. anzeigen 788 U. einstellen 788, 810 UID siehe Benutzer-ID ulimit 588 umask 493, 590 umbenennen (Datei) 121, 840 Umgebungsvariable 540, 541, 821 Display-Manager 333 U. anzeigen 847 Umlaut (Bash) 510 umleiten Datenstrom u. 521 X11-Anwendungen u. 325 umount 141, 142, 878 umschalten Konsole und X11 u. 311 zwischen Prozessen u. 527 umwandeln Daten u. 789 DOS/MS-Windows-Textdatei u. 800 Paketformat u. 771 PostScript u. 766, 805 Textdatei u. 853 Winword-Datei u. 837 umziehen, mit Verzeichnissen 475 unalias 590 uname 879 uncompress 880 undo (vi) 125 Unicode 408 Unicode Transformation Format UTF-8 408 Uniform Resource Identier 238 Info in KDE und GNOME 166

944

Index Verbindung v. 865 Version Programm 766 V. der Distribution mixen 218 Vervollstndigung (Kommando) 518 Vervollstndigung (Kommando) 122 verwalten Dateisystem v. 468 Drucker v. 290 Gruppe v. 802 Job v. 525 Passwort v. 779 Prozess v. 525 Runlevel v. 458 Swapbereich v. 480 Verwalter 3 Gruppe 802 Passwort 103 System-V. 109 Verweis siehe Link Verzeichnis 113 aktuelles V. siehe Arbeitsverzeichnis Arbeitsv. 114 Bootv. 463 Eintrag 127 Gertev. 463 Home-V. 114, 463 Rootverzeichnis siehe Wurzelv. V. anlegen 115 V. anzeigen 115, 823 V. erstellen 828 V. fr Logdateien 467 V. fr lokale Dateien 465 V. fr Spooldateien 468 V. fr temporre Dateien 465 V. gemeinsam benutzen 493 V. lschen 116, 855, 856 V. verlegen 475 Wurzelv. 462 Verzeichnisstruktur 461 Vesafb 307 VFAT siehe Virtual FAT VGA siehe Video Graphics Array vga= 355 vi 123, 753, 883, 895 Video Graphics Array 409 Videomodus 850 Videoplayer 763 Videospeicher 308

Manualseite in KDE und GNOME 161 Universal Asynchronous Receiver Transmitter 860 Universal Disc Format 141 Universal Serial Bus 20, 411 Universal Time Coordinated 63, 743 UNIX 5 unpacked (Paketstatus) 192, 216, 226 unset 591 unstable 217 Unterabteilung 191, 222 until 555 unzip 880 update-alternatives 268 update-inetd 672 update-menus 329, 331 update-modules 429 update-rc.d 459 update-xanim-modules 763 Updated (Paketliste in dselect) 190 updatedb 820, 881 Updaten, System 244 uptime 881 URI siehe Uniform Resource Identier URL siehe Uniform Resource Locator USB siehe Universal Serial Bus Usenet 660 User siehe Benutzer User Datagram Protocol 602 userdel 882 usermod 478, 882 UTC siehe Universal Time Coordinated UTF siehe Unicode Transformation Format Variable (Bash) 532 eingebaute V. 534 Umgebungs-V. 540 Variablenexpansion, bedingte (Bash) 550 vbox 651 Verbindung PPP-Auslastung 847 V. im Netz testen 845 V. verschlsseln 865 Verbindung erstellen (pppcong) 619 Verknpfung siehe Link verschieben (Datei) 121, 840 Verschieben von Text (vi) 125 verschlsseln

Index vigr 883 vim 753 vipw 884 Virenscanner 683 Virtual FAT Dateisystem erstellen 829 Kern 405 virtuelle Konsole 137 virtueller Desktop 324 virtuelles Paket 212 Virus 602 Virus Protection (BIOS) 62 VMWare 760 Voreinstellung dpkg 234 w 884 wait 591 wall 884 Warmstart 853 Warteschlange fr Programme 775 watch 885 Watchdog 402 wc 885 Web apache 709 Basisinstallation aus Web 96 Browser 652 Server 709 Server-Alternativen 719 Webmaster 710 Wurzelverzeichnis 712 whatis 160, 886 What You See Is What You Get 754 WYSIWYG-Textprogramm 757 whereis 886 which 886 while 554 who 887 whoami 887 Widget 322 Wiederholen von Kommandos 141 Wildcard 135 Window-Maker 327 Window-Manager 296, 327 GNOME 338 Voreinstellung 328 wine 760, 887 WinModem 20, 618 WINS 720, 721

945

Winword-Datei W. umwandeln 758, 837 Wireless Local Area Network 397, 598, 636 WLAN siehe Wireless Local Area Network wmaker 327 Wrter zhlen 885 Wollmilchsau, eierlegende 753 woody 217 Wordperfect 760 Wunschstatus (Paket) 216 Wurm 602 Wurzelverzeichnis 462 wvdial 633 WWW siehe Worldwide Web, Web WYSIWYG siehe What You See Is What You Get X-Klient 296 X-Server 296 X-Terminal 300 x-terminal-emulator 325 x-window-manager 328 X11 295 Ausung umschalten 310 Ausgabe umleiten 325 beenden 311 Fehler 311 Framebuffer 307 gpm 304 Installation 299 Konguration 298, 304, 313 Paket 299 Ressource 322 Sicherheit 326 starten 310 umschalten 311 X11 verschlsseln 865 xf86cong 313 XF86Setup 304 Zugriffssteuerung 325 X11R6 295 xanim 763 xargs 888 xauth 326 xbase-clients 300 xcdroast 761 xcong (Kern) 381

946

Index Yellow Pages siehe NIS yes 889 yppasswd 705 ypwhich 703 zhlen Zeilen, Wrter, Zeichen z. 885 zcat 890 Zeichen zhlen 885 Zeilen zhlen 885 Zeit 742 Kommando zu bestimmter Z. ausfhren 773, 786 zeitgesteuertes Ausfhren von Programmen 291 Zeitserver 744 Zeitstempel (Datei) 131, 485, 875 Zeitzone 878 zforce 890 zgrep 891 zip 891 zip-Archiv auspacken 880 erstellen 891 ZIP-Laufwerk 440 zless 153, 892 Zugriffsdatum (Datei) 875 Zwischenablage 323

XDF siehe Extended Density Format xdm 301, 332 xdvi 160, 756, 757 Xemacs 753 xf86cong 302, 313 XF86Setup 302, 304 xg 762 xfmail 660 xfonts-* 300 XFree86 298 xfree86-common 300 XiGraphics 298 xisdnload 646 xisp 632 xkeycaps 321 xlib6g 300 xls2csv 758 xman 160 xmms 763 xmodmap 321 xmonisdn 646 xpdf 758 xserver-common 300 xspread 758 xterm 300, 322 xviddetect 300 X Window System 295

Druck: Verarbeitung:

Strauss GmbH, Mrlenbach Schffer, Grnstadt

Das könnte Ihnen auch gefallen