Praxiskurs Unix-Shell (O'Reillys Basics)

Praxiskurs Unix-Shell (O'Reillys Basics)

von: Martin Dietze

O'Reilly Verlag, 2012

ISBN: 9783868995138

Sprache: Deutsch

304 Seiten, Download: 3458 KB

 
Format:  EPUB, PDF, auch als Online-Lesen

geeignet für: geeignet für alle DRM-fähigen eReader geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Praxiskurs Unix-Shell (O'Reillys Basics)



Kapitel 1. Grundlagen


In diesem Kapitel:

Um effektiv mit der Shell arbeiten zu können, ist es wichtig, zu verstehen, in welchem Kontext die Shell, oder besser gesagt, die Shells, entstanden sind und welche Konzepte bzw. Philosophien für ihr Design verantwortlich sind. Hierbei ist auch ein kurzer Ausflug in die Geschichte des Unix-Betriebssystems nützlich. Parallel mit den verschiedenen Unix-Ausprägungen entstanden auch verschiedene Shell-Familien, deren wesentliche Merkmale wir uns am Ende dieses Abschnitts näher ansehen werden.

Allgemeines zur Unix-Shell


Die Shell ist ein wichtiger Bestandteil von Unix, einer ganzen Familie von Betriebssystemen, die zum Teil als kommerzielle Produkte von verschiedenen Herstellern, zum Teil aber auch als Freeware z.B. im Internet erhältlich sind. Die Shell ist eine interaktive Benutzerschnittstelle und gleichzeitig ein leistungsstarkes Werkzeug zur Automatisierung durch Skripten. Sie stellt durch Kommunikations- und Kontrollstrukturen die Verbindung zwischen den zahlreichen Systemwerkzeugen auf dem Unix-System her und trägt dadurch wesentlich zur Flexibilität des Gesamtsystems bei.

Obwohl auch in der Unix-Welt grafische Benutzeroberflächen existieren, die ähnlich leistungsfähig sind wie die von z.B. Microsoft Windows oder Mac OS X, hat die Shell dennoch immer ihren Platz behaupten können und wird von geübten Benutzern für eine ganze Reihe von Aufgaben grafischen Werkzeugen vorgezogen. Shell-ähnliche Benutzerschnittstellen gibt es auch auf anderen Betriebssystemen. Auf Windows-Systemen gibt es die cmd.exe, die sich in ihrem Funktionsumfang allerdings äußerst bescheiden gegenüber der Unix-Shell ausmacht; 2003 rüstete man bei Microsoft nach und veröffentlichte die wesentlich leistungsfähigere Windows Power Shell, die unter anderem den hauseigenen Serverbetriebssystemen zu mehr Akzeptanz verhelfen sollte.

Das Unix-Betriebssystem


Das Betriebssystem Unix hat seine Ursprünge in den Bell-Laboratorien der frühen Sechzigerjahre als Weiterentwicklung eines bereits bestehenden Systems: Multics. Seinen Siegeszug begann es jedoch erst etwa zehn Jahre später, als Dennis Ritchie und Ken Tompson den Betriebssystemkern in der damals gerade frisch zu diesem Zweck entwickelten Programmiersprache C neu schrieben und damit den Weg zur leichten Portierbarkeit auf andere Maschinenarchitekturen bereiteten.

Kurze Zeit später, etwa 1974, wurden erste Lizenzen für den Quellcode des neuen Systems an Universitäten verkauft, was zu einer regen Weiterentwicklung und schließlich auch zu dem breiten Markt zugänglichen Unix-Systemen führte. Unter anderen ist dieser Fortgang dafür verantwortlich, dass es heute verschiedene Ausprägungen des Systems gibt, die einerseits genug Gemeinsamkeiten haben, um den Namen »Unix« tragen zu können, andererseits aber in vielen Details voneinander abweichen.

Im Laufe der Jahre bildeten sich zwei »Familien«, von denen fast alle heute erhältlichen Produkte abstammen. Die meisten kommerziellen Systeme orientieren sich heutzutage an einem Standard, der auf die Entwicklungslinie von AT&T zurückgeht: System V. Die andere große Linie basiert auf der Arbeit an der University of California in Berkeley: BSD. Traditionell liefen die klassischen Unix-Systeme auf Workstations, die sowohl preislich als auch in der Leistung deutlich über dem Niveau von PCs lagen.

Schließlich kam jedoch mit dem Unix-ähnlichen Betriebssystem Linux ein weiterer Vertreter hinzu, der zwar aus Anwendersicht die typischen Unix-Merkmale in sich trägt, aber auf keine der beiden oben genannten Produktlinien zurückzuführen ist (und auch in der technischen Realisierung mitunter von den Unix-Standards abweicht). Linux war von Anfang an primär, wenn auch nicht ausschließlich, auf PCs zu Hause, die mittlerweile über ausreichend Leistungsfähigkeit verfügten und natürlich viel preisgünstiger als Workstations waren. Der hervorragenden Qualität und dem Umstand, dass der größte Teil von Linux Freie Software ist (siehe nächsten Abschnitt), ist es zu verdanken, dass sich Unix-Systeme mit steigender Tendenz auch auf privaten Rechnern finden lassen.

Linux und das GNU-Projekt


GNU steht für »GNU’s not Unix« und bezeichnet ein Projekt der Free Software Foundation, das seine Ursprünge bereits um 1984 hat und das Ziel verfolgt, ein komplettes Unix-kompatibles Betriebssystem mit allen notwendigen Werkzeugen zu entwickeln und es dem Rest der Welt kostenlos zur Verwendung und Weiterentwicklung zur Verfügung zu stellen – also eine Form dessen, was wir heute als Open Source bezeichnen.

Das GNU-Projekt stellt für Entwickler, die in diesem Geiste Software entwickeln, eine ausformulierte Lizenz, die GPL (GNU General Public License), zur Verfügung, unter der solche Art Software veröffentlicht werden kann. Sie soll unter anderen sicherstellen, dass die Quelltexte der Software und mögliche Weiterentwicklungen für alle kostenlos verfügbar bleiben, dass also der »Geist« bewahrt bleibt.

Bei Software, die unter der GPL veröffentlicht wird, spricht man von Free Software, was sich nicht ohne Grund auf zwei Arten übersetzen lässt: »freie Software«, aber auch »kostenlose Software«. Im deutschen Sprachgebrauch ist mit dem Begriff Freie Software meist Software gemeint, die unter der GPL veröffentlicht wurde. Teile aus dem GNU-Projekt haben mittlerweile eine so große Popularität erreicht, dass Systemadministratoren auch auf kommerziellen Unix-Systemen sie gleich nach dem Betriebssystem installieren, was, da die Software im Quelltext vorliegt, meist problemlos möglich ist. Beispiele hierzu sind der Texteditor Emacs, Shells wie die bash, der GNU-C/C++-Compiler gcc und der dazugehörige Debugger gdb, um nur einige zu nennen.

Linux ist in seiner Entstehung eng mit dem GNU-Projekt verbunden. Ursprünglich handelte es sich dabei um ein reines Hobbyprojekt einer einzigen Person – Linus Torwalds. Linus wollte ein Unix-ähnliches Betriebssystem auf seinem PC betreiben und stieß dabei zunächst auf das ebenfalls Unix-ähnliche PC-Betriebssystem Minix, war aber mit dessen eher eingeschränktem Funktionsumfang unzufrieden und begann mit der Entwicklung eines eigenen Betriebssystemkerns. Schon kurz nach der Veröffentlichung der ersten Quelltexte nahm die Entwicklung rasant Fahrt auf. Es gab viele Entwickler, die sich wie Linus ein Unix-ähnliches Betriebssystem für den PC wünschten und das vorhandene System einfach um fehlende Funktionalität, etwa Treiber für noch nicht unterstützte Hardware usw., erweiterten. Möglich wurde dies alles auch durch die vorhandene Software des GNU-Projekts, etwa den Compiler, die Shell und diverse Systemwerkzeuge. Daher wird Linux heute oft als GNU/Linux bezeichnet.

Da man mit dem Betriebssystemkern allein nicht viel anfangen kann, entstanden schon recht früh sogenannte Distributionen, die sich um die Bündelung des Kerns mit Shell, Werkzeugen und Systemkonfiguration kümmerten und damit auch wesentlich die Installation eines Linux-Systems erleichterten. Heute gibt es eine ganze Reihe verschiedener kommerzieller und nicht kommerzieller Linux-Distributionen, die sich an verschiedene Arten von Benutzern richten und verschiedene Konfigurationsmechanismen, Installationsprogramme sowie neben dem Betriebssystem eine riesige Auswahl frei verfügbarer Anwendungssoftware anbieten.

Eigenschaften von Unix-Systemen


Unix-Systeme sind dafür ausgelegt, dass mehrere Personen gleichzeitig am selben Rechner arbeiten können. Angeschlossene Workstations können »dumme« Terminals sein, die über ein Netzwerk oder sonstige Leitungen angeschlossen sind, es können aber auch »vollwertige« Systeme sein, auf denen Unix oder irgendein anderes Betriebssystem läuft, bis hin zu beliebigen anderen Betriebssystemen, die über den notwendigen Netzwerkzugang und die benutzte Protokoll- und Anwendungssoftware verfügen.

Um diesen Aufgaben gerecht werden zu können, sind Unix-Systeme bereits seit den ersten Generationen netzwerkfähig und beherrschen Benutzer- und Benutzerrechteverwaltung sowie präemptives Multitasking, was bedeutet, dass der Betriebssystemkern verschiedene Programme scheinbar unabhängig voneinander laufen lassen kann. Gerade die von Unix eingesetzten Netzwerkprotokolle werden vielen von uns längst vertraut sein, da sie die Bausteine sind, aus denen das Internet entstand (IP – Internet Protocol). Dieser Umstand macht Unix-Systeme im Internet zu sehr beliebten Serverplattformen.

Unix-Systeme sind von Haus aus sehr modular aufgebaut, das heißt, dass der eigentliche Betriebssystemkern kaum mehr Funktionen enthält, als notwendig sind, um elementare Operationen wie z.B. die Behandlung von Dateien oder das Erzeugen und Beenden von Prozessen durchzuführen. Die Benutzerschnittstelle, Netzwerkdienste und andere sind in Form von tendenziell sehr...

Kategorien

Service

Info/Kontakt