Skip to main content

2003 | Buch

Grundkurs UNIX/Linux

Das neuartige Medienbuch: Lehrbuch und interaktive Software in Einem

verfasst von: Wilhelm Schaffrath

Verlag: Vieweg+Teubner Verlag

insite
SUCHEN

Inhaltsverzeichnis

Frontmatter
1. Systemcharakteristika
Zusammenfassung
Bücher über UNIX beginnen häufig mit historischen Betrachtungen, auch dieses Buch macht hierbei keine Ausnahme. Damit wird versucht, Besonderheiten und den Erfolg des UNIX-Systems aus seiner Entwicklung heraus plausibel zu machen.
Wilhelm Schaffrath
2. Erste Kommandos und Werkzeuge
Zusammenfassung
Der schnellste Weg, mit dem UNIX-Betriebssystem vertraut zu werden, besteht darin, es zu benutzen. Mit dem vorliegenden Buch und dem interaktivem, multimedialen Lehrgang auf CD-ROM wird versucht, den Leser und den Lernenden auf diesen Weg zu bringen. Deshalb wird sofort nach dem Überblick, den das erste Kapitel geboten hat, noch vor den Ausführungen zum Dateisystem und zur Prozessverwaltung, die Handhabung des Systems in einem ersten noch sehr einfach gehaltenen Schritt dem Leser nahegebracht. Die Benutzung von UNIX beginnt mit der Anmeldung beim System, dem sogenannten Login. Da UNIX ein Multiuser-System ist, muss jeder potentielle Benutzer dem System bekannt, d.h. in einer Liste eingetragen sein. Er benötigt einen Benutzernamen und eine Zugangsberechtigung in Form eines nur ihm bekannten Passwortes. Häufig wird als Benutzername der vielleicht verkürzte Familienname verwendet. Ein Benutzer, der nur einer von vielen Teilnehmern ist und nicht auch der Besitzer des ganzen Rechnersystems, was bei UNIX-Derivaten auf Personal-Computern häufig vorkommt, wendet sich an einen Systemverwalter (Superuser), um sich einen Benutzernamen und ein Passwort geben zu lassen. Der Benutzername bleibt solange erhalten, bis der Systemverwalter ihn löscht oder ändert; das Passwort kann und sollte (aus Sicherheitsgründen) vom Benutzer öfter geändert werden. Bei einem UNIX-System erfolgt die Teilnahme am Rechenbetrieb von einem Terminal oder von einem Gerät aus, das auf UNIX wie ein Terminal wirkt. Es ist Sache des Systemverwalters, die jeweiligen Terminalcharakteristika dem System bekannt zu machen. Nach Einschalten des Terminals und Betätigen einer Taste meldet sich ein UNIX-Systemprogramm und fragt nach dem Benutzernamen und dem Passwort. Es überprüft die Zugangsberechtigung und startet im Erfolgsfall, eventuell erst nach der Ausgabe von Meldungen über den aktuellen Rechenbetrieb, einen voreingestellten Kommandointerpreter. Dieser meldet sich mit einem sogenannten Promptzeichen, das den Benutzer auffordert, Befehle einzugeben. Sollten Anmeldungsversuche scheitern, ist eine Rücksprache mit dem Systemverwalter erforderlich. Bei einer Reihe von Programmen zur Kontrolle der Anmeldungen ist herstellerabhängig festgelegt, dass nach einer vorgegebenen Anzahl erfolgloser Versuche die Benutzungsberechtigung gesperrt wird. Bei anderen wiederum gibt es einen Alterungsprozess, der eine Benutzerkennung sperrt, wenn sie eine bestimmte Anzahl von Tagen nicht benutzt worden ist. In allen diesen Fällen ist der Systemverwalter einzubeziehen.
Wilhelm Schaffrath
3. Dateisystem
Zusammenfassung
Betriebssysteme speichern Daten dauerhaft auf Datenträgern wie Festplatten, Disketten und Magnetbändern. In den letzten Jahren sind optische Medien (Compact Disc bzw. DVD) hinzugekommen. Der Begriff Datei ist ein Konzept zur Verwaltung dieser Daten. Es befreit den Programmierer und insbesondere den Anwender von Kenntnissen über die konkreten physikalischen und elektro-technischen Eigenschaften der Datenträger und der zu ihnen gehörenden Geräte. Ein Programmierer lässt ein Programm, zum Beispiel einen Editor, in eine Datei schreiben ohne wissen zu müssen, dass seine Daten beispielsweise in den Sektoren 7, 8 und 9 der Spur 12 einer Diskette abgelegt werden. Er spricht Dateien und indirekt seine Daten mit einem Dateinamen an. Die Dateneinheit ist das Byte, ein Acht-Bit-Muster.
Wilhelm Schaffrath
4. Interaktives Arbeiten mit der Bourne-Shell
Zusammenfassung
Die Kommandointerpreter, mit deren Hilfe Dienstleistungen eines Betriebssystems in Anspruch genommen werden können, werden bei UNIX als Shells bezeichnet, weil sie wie eine Schale den Betriebssystem-Kern umschließen. Die Shells gehören nicht zum UNIX-Kern, sondern zum Benutzerbereich. Im Prinzip kann jeder Benutzer seine eigene Shell programmieren und benutzen. Manchmal trifft man an dieser Stelle auf Menüsysteme, oft mit einem sehr eingeschränkten Befehlsvorrat. In den letzten Jahren finden Fenstersysteme, die auf die Funktionalität der Shells zurückgreifen, für den Anwender aber wegen der grafischen Oberfläche angenehmer zu handhaben sind, zunehmend Verwendung (vgl. Abschnitt 12.4 über das X-Window-System). Meist wird in einem oder sogar in mehreren der Fenster eine Shell zur Bedienung des Betriebssystems gestartet. Selbst erstellte Kommandoschnittstellen zum Betriebssystem-Kern sind selten. In den meisten Fällen wird eine der drei Standard-Shells verwendet: entweder eine Boume-, eine C- oder eine Korn-Shell.
Wilhelm Schaffrath
5. Einfache Kommandoprozeduren (Shell-Scripts)
Zusammenfassung
Eine Kommandoprozedur, man sagt dazu auch Shell-Script oder, falls keine Verwechslung möglich ist, kurz Script, ist eine Textdatei, die Shell-Kommandos enthält. Die Kommandos werden in der Reihenfolge ihres Auftretens ausgeführt. In dem folgenden Beispiel ist eine Kommandoprozedur in einer Textdatei namens abc angegeben. Bei Start führt sie zuerst das Kommando ls -l aus, dann who.
Wilhelm Schaffrath
6. Shell-Variablen
Zusammenfassung
Im Abschnitt 5.2 sind benutzerdefinierte Variablen vorgestellt worden. Neben diesen gibt es Variablen, die zur Shell gehören und ihre Arbeitsweise beeinflussen. Sie heißen Shell-Variablen (im engeren Sinne). Einige von ihnen sind dem Benutzer lesend und schreibend zugänglich, andere sind schreibgeschützt. Der Benutzer kann diesen Schreibschutz nicht aufheben. Er kann lediglich die Werte abrufen. Zu den Variablen, auf die der Benutzer lesend und schreibend zugreifen kann, gehören beispielsweise HOME und PATH. Als Shell-Variablen sind beide Namen mit Großbuchstaben geschrieben.
Wilhelm Schaffrath
7. Kommandoausführung
Zusammenfassung
Die Methode, mit der die meisten Shell-Kommandos und alle Kommandoprozeduren abgearbeitet werden, ist schon sehr UNIX-spezifisch. Die Abbildung 12 zeigt anschaulich diesen Vorgang für das who-Kommando.
Wilhelm Schaffrath
8. Kontrollstrukturen
Zusammenfassung
Mit Kontrollstrukturen wird in Programmiersprachen der Programmablauf gesteuert. Dazu gehören bei der Shell Verzweigungen mit if und case sowie Iterationen (Programmschleifen, Teilprogrammwiederholungen) mit for und while. Auch Befehle zum Verlassen von Schleifen und die Möglichkeit rekursiver Programmaufrufe gehören zu den Kontrollstrukturen. Es ist bereits bei der Vorstellung von Kommandoprozeduren im Kapitel 5 darauf hingewiesen worden, dass eine Kommandoprozedur eine andere aufrufen kann. Davon ist auch schon öfter Gebrauch gemacht worden. Ein rekursiver Prozeduraufruf liegt vor, wenn eine Kommandoprozedur sich selbst aufruft. Shell-Scripts erlauben dies. Im Abschnitt 8.2 wird dazu ein.Beispiel angegeben.Programmablaufverzweigungen mit case arbeiten mit einem Mustervergleichs-Verfahren. Sie werden im Abschnitt 8.5 behandelt. for-Schleifen werden oft als Zählschleifen bezeichnet, weil bei ihnen ein Zähler die Schleife. steuert. Dieser Zähler ist bei Shell-Scripts etwas eigen realisiert und wird im Abschnitt 8.2 vorgestellt. Verzweigungen mit if und Schleifen, die mit while gebildet werden, arbeiten mit der gleichen Art von Bedingungen. Sie arbeiten mit den Rückgabewerten von Shell-Kommandos.
Wilhelm Schaffrath
9. Kommandoprozeduren mit Eingaben
Zusammenfassung
Das im Abschnitt 5.3 vorgestellte read-Kommando liest eine Zeile von der Standard-Eingabedatei. Die folgende Kommandoprozedur enthält ein solches Kommando.
Wilhelm Schaffrath
10. Textmusterverarbeitung
Zusammenfassung
Viele UNIX-Werkzeuge arbeiten mit Text-Suchmustern. Sie werden oft kurz Suchmuster oder Textmuster genannt. Im einfachsten Fall kann man mit ihrer Hilfe bestimmte Stellen einer Textdatei lokalisieren. Im Abschnitt 10.3 werden auch komplexere Anwendungen vorgestellt. Wenn man sich in Erinnerung ruft, dass Shell-Kommandos in der Regel von einer Textdatei (der Standard-Eingabedatei) lesen und auf eine Textdatei (die Standard-Ausgabedatei) schreiben, kann man die Bedeutung der Text-Suchmuster zur Lokalisierung und Umgestaltung von Textstellen leicht ermessen. Zu den Werkzeugen, die Text-Suchmuster einsetzen, gehören unter anderem ed, grep und awk. Text-Suchmuster heißen auch reguläre Ausdrücke. Dieser Begriff hat grep seinen Namen gegeben: get regular expression! grep und awk werden im Abschnitt 10.2 bzw. 10.3 behandelt, ed ist bereits im Abschnitt 9.2 kurz angesprochen worden. Einige UNIX-Werkzeuge verwenden sogenannte erweiterte reguläre Ausdrücke. Diese umfassen alle regulären Ausdrücke und enthalten weitere (komplexe) Suchmuster. Sie werden hier nicht behandelt. Staubach [STA89], Robbins [ROB2001] sowie Herold [HER99] gehen ausführlich auf sie und ihre Anwendungen ein.
Wilhelm Schaffrath
11. C-Schnittstelle
Zusammenfassung
Die Bedeutung von Systemaufrufen, insbesondere die Eigenschaft, dass der Kern des UNIX-Betriebssystems ausschließlich über sie erreicht werden kann, wurde bereits im Abschnitt 1.3 dargestellt. Die Dienste des UNIX-Betriebssystems wurden bisher als Shell-Kommandos in Anspruch genommen. Diese werden auf Systemaufrufe zurückgeführt. Sollen jedoch Systemaufrufe unmittelbar benutzt werden, sind sie als Befehle der jeweiligen Maschinensprache, in der Regel in ASSEMBLER-Form, aufzurufen. Prinzipiell sind dazu folgende Maßnahmen erforderlich:
1.
Ein Rechenregister des Prozessors ist mit der Nummer des Systemaufrufs zu laden. Eventuell sind weitere Rechenregister mit Parametern für diesen Aufruf zu belegen.
 
2.
Dann ist der Interrupt-Befehl (Supervisor Call) zu starten. Dies führt zur Abarbeitung einer zugehörigen InterruptService-Routine. Diese realisiert den Systemaufruf.
 
3.
Nach Beendigung der Interrupt-Service-Routine kann (in der Regel) einem bestimmten Rechenregister ein Rückgabewert, manchmal ist das lediglich eine Erfolgsmeldung, entnommen werden.
 
Wilhelm Schaffrath
12. UNIX in Netzen
Zusammenfassung
Zugriffe auf gemeinsame Dateien mit Hilfe eines Netzwerkes ist eine wesentliche Grundlage für Benutzergruppen und damit eine der wesentlichsten Funktionen der Vernetzung. Zu diesem Thema muss zunächst etwas über die Sicherheit in Netzen gesagt werden. Die folgenden Unterkapitel haben damit zu tun. Die Sicherheit im Netzwerk spielt eine große Rolle und man sollte daher die Bedrohungen kennen. Diese Angriffe über Netzwerke sind durch einige Problemstellen im Betriebssystem UNIX bzw. Linux vorgegeben: u.a.
a.
Passwortdateien, die von Benutzern über Netzwerk gelesen werden können.
 
b.
Nicht gerade gut entworfene Dienste, die einerseits unzureichende Authentisierung durchführen oder auf eine andere Weise in nicht genügendem Maße gesichert arbeiten (u.a. NFS und NIS sowie X11)
 
c.
Programmfehler, manchmal auch im Unix-Kernel
 
d.
Missbrauch erlaubter Mechanismen (u.a..rhosts-Datei)
 
e.
Nutzung von Schutzmechanismen durch Generierung gefälschter Netzwerkpakete.
 
f.
Zugriffsrechte im Dateisystem falsch gesetzt.
 
g.
Zugriffsrechte von Systemprogrammen
 
h.
Benutzerfehler jeglicher Art
 
Wilhelm Schaffrath
13. Das UNIX-Fenstersystem
Zusammenfassung
Die Benutzeroberfläche von UNIX ist im CDE (Common Desktop Environment) standardisiert worden (UNIX-98), ist hersteller­übergreifend und beruht auf dem X-Window System. Die CDE­Definition zielt auf die Vereinheitlichung der Systembedienung am Desktop. Ein Desktopsystem baut auf einer grafischen Ober­fläche mit Fenstersystem auf und beruht daher auf einem An­wenderprogramm unter einer solchen Oberfläche. Alternativ wurde für Linux das KDE (K-Desktop-Environment) entwickelt (siehe dazu: http://​www.​kde.​org). Auch das KDE beruht auf dem X-Window-System.
Wilhelm Schaffrath
14. Systemverwaltung
Zusammenfassung
Systemverwaltung ist normalerweise keine Aufgabe eines Anwenders oder Anwendungsprogrammierers. Im Rahmen der hier angestrebten Einführung in UNIX werden deshalb nur kurze beispielhafte Erklärungen gegeben, die einzig und allein dem Zweck dienen, Verständnis für die nicht immer leichten Arbeiten der Systemverwaltung zu wecken. Einleitend ist festzustellen, dass es hei der Systemverwaltung und -pflege große Unterschiede von Hersteller zu Hersteller gibt. Jedoch sind die grundlegenden Abläufe identisch. Beispielsweise benötigt jedes UNIX-System einen Systemverwalter, der in der UNIX-Sprechweise als Superuser bezeichnet wird. Wie jeder andere Benutzer ist auch er in der Passwortdatei /etc/passwd eingetragen. Sein Benutzername ist root, sein Heimat-Dateiverzeichnis ist die Wurzel (Root) des Dateisystems. Seine Benutzerkennzahl (User-Id, UID) ist Null. Für ihn gelten keine Zugriffsrechte. Greift ein Prozess, der root gehört, auf eine Datei zu, werden keine Zugriffsrechte geprüft. Ein Arbeiten als Superuser ist deshalb kritisch, weil sehr schnell, zum Beispiel durch Schreibfehler, unbeabsichtigte Änderungen am Dateisystem stattfinden können. Um eine optische Hilfestellung zu geben, wird der Superuser mit einem besonderen Promptzeichen zur Kommandoeingabe aufgefordert. Es handelt sich um eine Raute, der ein Leerzeichen folgt.
Wilhelm Schaffrath
Backmatter
Metadaten
Titel
Grundkurs UNIX/Linux
verfasst von
Wilhelm Schaffrath
Copyright-Jahr
2003
Verlag
Vieweg+Teubner Verlag
Electronic ISBN
978-3-322-99180-5
Print ISBN
978-3-528-05817-3
DOI
https://doi.org/10.1007/978-3-322-99180-5