Hugendubel.info - Die B2B Online-Buchhandlung 

Merkliste
Die Merkliste ist leer.
Bitte warten - die Druckansicht der Seite wird vorbereitet.
Der Druckdialog öffnet sich, sobald die Seite vollständig geladen wurde.
Sollte die Druckvorschau unvollständig sein, bitte schliessen und "Erneut drucken" wählen.
E-BookEPUB0 - No protectionE-Book
481 Seiten
Deutsch
Rheinwerk Verlag GmbHerschienen am01.08.20242. Auflage
Was haben alle Supercomputer der Welt, mehr als 75 % der Internet-Server und ein Großteil der Systeme in Microsofts Azure-Cloud gemeinsam? Sie alle nutzen Linux! Das offene Betriebssystem hält die IT-Welt zusammen und ist eine wichtige Grundlage in jedem IT-Beruf oder im Informatikstudium. Wie Linux genau funktioniert und wie Sie sich sicher im Linux-System bewegen, das erfahren Sie in diesem kompakten Grundkurs. Er zeigt Ihnen, wie Sie Linux-Tools richtig nutzen, effizient auf der Shell arbeiten, Rechner via SSH administrieren und sich in einem Linux-Netzwerk zurechtfinden.

Aus dem Inhalt:

Linux als Workstation: Installation und erste Schritte
Der Kernel: So funktioniert Linux
Mit der Shell arbeiten
Werkzeuge für die Konsole
Shell-Programmierung und Vim
Netzwerke: Grundlagen und Tools
Softwareentwicklung mit Linux
Linux auf dem Raspberry Pi



Steffen Wendzel ist Professor für Netzwerke und IT-Sicherheit an der Hochschule Worms. Zuvor leitete er ein Forschungsteam am Fraunhofer FKIE, Bonn, und promovierte an der Fernuniversität in Hagen. Er veröffentlichte über 130 Werke und beschäftigt sich seit seinem vierzehnten Lebensjahr mit Linux.
mehr
Verfügbare Formate
BuchKartoniert, Paperback
EUR19,90
E-BookEPUB0 - No protectionE-Book
EUR19,90

Produkt

KlappentextWas haben alle Supercomputer der Welt, mehr als 75 % der Internet-Server und ein Großteil der Systeme in Microsofts Azure-Cloud gemeinsam? Sie alle nutzen Linux! Das offene Betriebssystem hält die IT-Welt zusammen und ist eine wichtige Grundlage in jedem IT-Beruf oder im Informatikstudium. Wie Linux genau funktioniert und wie Sie sich sicher im Linux-System bewegen, das erfahren Sie in diesem kompakten Grundkurs. Er zeigt Ihnen, wie Sie Linux-Tools richtig nutzen, effizient auf der Shell arbeiten, Rechner via SSH administrieren und sich in einem Linux-Netzwerk zurechtfinden.

Aus dem Inhalt:

Linux als Workstation: Installation und erste Schritte
Der Kernel: So funktioniert Linux
Mit der Shell arbeiten
Werkzeuge für die Konsole
Shell-Programmierung und Vim
Netzwerke: Grundlagen und Tools
Softwareentwicklung mit Linux
Linux auf dem Raspberry Pi



Steffen Wendzel ist Professor für Netzwerke und IT-Sicherheit an der Hochschule Worms. Zuvor leitete er ein Forschungsteam am Fraunhofer FKIE, Bonn, und promovierte an der Fernuniversität in Hagen. Er veröffentlichte über 130 Werke und beschäftigt sich seit seinem vierzehnten Lebensjahr mit Linux.
Details
Weitere ISBN/GTIN9783367102662
ProduktartE-Book
EinbandartE-Book
FormatEPUB
Format Hinweis0 - No protection
Erscheinungsjahr2024
Erscheinungsdatum01.08.2024
Auflage2. Auflage
Seiten481 Seiten
SpracheDeutsch
Dateigrösse3622 Kbytes
Artikel-Nr.14443690
Rubriken
Genre9200

Inhalt/Kritik

Inhaltsverzeichnis
Vorwort ... 19
1. Einleitung ... 21

1.1 ... Warum Linux? ... 24
1.2 ... Grundbegriffe: Kernel, Distribution, Derivat ... 25
1.3 ... Die Entstehungsgeschichte von Linux ... 28
1.4 ... Zusammenfassung ... 41
1.5 ... Aufgaben ... 42

2. So funktioniert Linux ... 43

2.1 ... Grundlagen ... 44
2.2 ... Aufgaben eines Betriebssystems ... 61
2.3 ... Prozesse, Tasks und Threads ... 66
2.4 ... Speichermanagement ... 85
2.5 ... Eingabe und Ausgabe ... 102
2.6 ... Zusammenfassung ... 111
2.7 ... Aufgaben ... 112

3. Erste Schritte ... 113

3.1 ... Die Unix-Philosophie ... 113
3.2 ... Der erste Kontakt mit dem System ... 120
3.3 ... Bewegen in der Shell ... 133
3.4 ... Arbeiten mit Dateien ... 137
3.5 ... Der Systemstatus ... 140
3.6 ... Hilfe ... 142
3.7 ... Zusammenfassung ... 145
3.8 ... Aufgaben ... 146

4. Grundlagen der Shell ... 147

4.1 ... Einführung und Überblick ... 147
4.2 ... Konsolen ... 155
4.3 ... screen ... 156
4.4 ... Besseres Arbeiten mit Verzeichnissen ... 158
4.5 ... Die elementaren Programme ... 161
4.6 ... Programme für das Dateisystem ... 164
4.7 ... Ein- und Ausgabeumlenkung ... 168
4.8 ... Pipes ... 171
4.9 ... xargs ... 174
4.10 ... Zusammenfassung ... 175
4.11 ... Aufgaben ... 175

5. Prozesse in der Shell ... 177

5.1 ... Sessions und Prozessgruppen ... 177
5.2 ... Vorder- und Hintergrundprozesse ... 179
5.3 ... Das kill-Kommando und Signale ... 186
5.4 ... Prozessadministration ... 190
5.5 ... Zusammenfassung ... 199
5.6 ... Aufgaben ... 199

6. Reguläre Ausdrücke ... 201

6.1 ... Grundlagen und Aufbau regulärer Ausdrücke ... 201
6.2 ... grep ... 203
6.3 ... awk ... 207
6.4 ... sed ... 228
6.5 ... Zusammenfassung ... 238
6.6 ... Aufgaben ... 238

7. Werkzeuge für die Konsole ... 239

7.1 ... touch -- Zeitstempel von Dateien setzen ... 239
7.2 ... cut -- Dateiinhalte abschneiden ... 240
7.3 ... paste -- Dateien zusammenfügen ... 241
7.4 ... tac -- Dateiinhalt umdrehen ... 242
7.5 ... column -- Ausgaben tabellenartig formatieren ... 242
7.6 ... colrm -- Spalten entfernen ... 243
7.7 ... nl -- Zeilennummern für Dateien ... 245
7.8 ... wc -- Zählen von Zeichen, Zeilen und Wörtern ... 245
7.9 ... od -- Dateien zur Zahlenbasis x ausgeben ... 246
7.10 ... split -- Dateien aufspalten ... 247
7.11 ... script -- Terminal-Sessions aufzeichnen ... 248
7.12 ... bc -- der Rechner für die Konsole ... 249
7.13 ... Der Midnight Commander ... 251
7.14 ... Zusammenfassung ... 254
7.15 ... Aufgaben ... 255

8. Eigene Shellskripte entwickeln ... 257

8.1 ... Grundlagen der Shellskript-Programmierung ... 257
8.2 ... Variablen ... 260
8.3 ... Arrays ... 265
8.4 ... Kommandosubstitution und Schreibweisen ... 265
8.5 ... Argumentübergabe ... 267
8.6 ... Funktionen ... 268
8.7 ... Bedingte Anweisungen ... 273
8.8 ... Schleifen ... 278
8.9 ... Menüs bilden mit select ... 282
8.10 ... Temporäre Dateien ... 284
8.11 ... Syslog-Meldungen via Shell ... 286
8.12 ... Pausen in Shellskripte einbauen ... 286
8.13 ... Startskripte ... 287
8.14 ... Das Auge isst mit: der Schreibstil ... 288
8.15 ... Ein paar Tipps zum Schluss ... 289
8.16 ... Weitere Fähigkeiten der Shell ... 290
8.17 ... Zusammenfassung ... 291
8.18 ... Aufgaben ... 291

9. Der vi(m)-Editor ... 293

9.1 ... vi, vim, gvim und neovim ... 294
9.2 ... Erste Schritte ... 295
9.3 ... Kommando- und Eingabemodus ... 296
9.4 ... Dateien speichern ... 296
9.5 ... Arbeiten mit dem Eingabemodus ... 297
9.6 ... Navigation ... 298
9.7 ... Löschen von Textstellen ... 299
9.8 ... Textbereiche ersetzen ... 300
9.9 ... Kopieren von Textbereichen ... 301
9.10 ... Shiften ... 301
9.11 ... Die Suchfunktion ... 301
9.12 ... Konfiguration ... 302
9.13 ... Distributionen für Vim ... 303
9.14 ... Zusammenfassung ... 304
9.15 ... Aufgaben ... 304

10. Grundlegende Administration ... 305

10.1 ... Benutzerverwaltung ... 305
10.2 ... Installation neuer Software ... 311
10.3 ... Backups erstellen ... 327
10.4 ... Logdateien und dmesg ... 334
10.5 ... Weitere nützliche Programme ... 339
10.6 ... Grundlegende Systemdienste ... 344
10.7 ... Manpages ... 347
10.8 ... Dateien finden mit find ... 349
10.9 ... Zusammenfassung ... 354
10.10 ... Aufgaben ... 354

11. Netzwerke unter Linux ... 355

11.1 ... Etwas Theorie ... 355
11.2 ... Konfiguration einer Netzwerkschnittstelle ... 361
11.3 ... Routing ... 369
11.4 ... Netzwerke benutzerfreundlich -- DNS ... 372
11.5 ... Firewalls unter Linux ... 378
11.6 ... Secure Shell ... 383
11.7 ... Das World Wide Web ... 390
11.8 ... Windows-Netzwerkfreigaben ... 397
11.9 ... Weitere nützliche Netzwerktools ... 404
11.10 ... Zusammenfassung ... 410
11.11 ... Aufgaben ... 411

12. Softwareentwicklung ... 413

12.1 ... Interpreter und Compiler ... 413
12.2 ... Softwarebibliotheken (Shared Libraries) ... 421
12.3 ... Make ... 422
12.4 ... Die GNU-Autotools ... 430
12.5 ... Unix-Software veröffentlichen ... 434
12.6 ... Eigene Manpages erstellen ... 436
12.7 ... Versionsmanagement mit Git ... 440
12.8 ... Docker-Container erstellen ... 444
12.9 ... Zusammenfassung ... 451
12.10 ... Aufgaben ... 452

A. Die Installation planen und durchführen ... 455

A.1 ... Hardwareunterstützung ... 456
A.2 ... Festplatten und Partitionen ... 459
A.3 ... Die Installation durchführen ... 465
A.4 ... Eine typische Linux-Installation durchführen ... 469
A.5 ... Zusammenfassung ... 472

Index ... 473
mehr
Leseprobe


1.3    Die Entstehungsgeschichte von Linux

Linux übernahm diverse Konzepte und Eigenschaften des Betriebssystems Unix. Daher beschäftigen wir uns an dieser Stelle zunächst einmal mit der Entstehungsgeschichte von Unix. Wir beginnen dazu mit einem Rückblick auf die graue Frühzeit der Informatik.
1.3.1    Die Entstehung von Unix

In den 1960er Jahren wurden die ersten großen Softwaresysteme gebaut.[ 2 ] Zu dieser Zeit, nämlich im Jahr 1965, begannen BELL, General Electric und das MIT, an einem System namens MULTICS (Multiplexed Information and Computing System) zu arbeiten. Als allerdings feststand, dass dieses Vorhaben scheitern würde, stieg BELL aus.
Die Raumfahrt
Als 1969 das Apollo-Raumfahrtprogramm der USA im Mittelpunkt der Aufmerksamkeit stand, begann Ken Thompson (BELL) mit der Entwicklung einer MULTICS-Variante für zwei Benutzer. Dieses System entwickelte er für den Computer PDP-7 des Herstellers DEC. Sein Ziel war es, raumfahrtbezogene Programme zu entwickeln, um Orbit-Berechnungen für Satelliten, Mondkalender und Ähnliches zu realisieren. Das Grundprinzip von MULTICS wurde dabei übernommen und so bekam das daraus resultierende Betriebssystem beispielsweise ein hierarchisches Dateisystem.

Brian Kernighan nannte dieses System spöttisch UNICS (von uniplexed). Erst später benannte man es aufgrund der Begrenzung für die Länge von Dateinamen auf der Entwicklungsplattform GECOS in UNIX bzw. Unix um.[ 3 ]

Ursprünglich waren alle Unix-Programme in der Programmiersprache Assembler geschrieben. Ken Thompson entschied sich später, eine Unterstützung für die Sprache FORTRAN zu entwickeln (ein sogenannter FORTRAN-Compiler), da Unix seiner Meinung nach ohne eine solche wertlos wäre. FORTRAN ist (wie C) eine Programmiersprache der dritten Generation und erlaubt, verglichen mit Assembler, das Programmieren auf einer höheren Abstraktionsebene. Nach kurzer Zeit entschied er sich allerdings, eine neue Programmiersprache namens B zu entwickeln, die stark von der Sprache BCPL (Basic Combined Programming Language) beeinflusst wurde.
Aus B wird C
Da das Team 1971 ein PDP11-System bekam, das byteadressiert arbeitete, entschloss sich der amerikanische Programmierer Dennis Ritchie, aus der wortorientierten Sprache B eine byteorientierte Sprache mit dem schlichten Namen »C« zu entwickeln, indem er unter anderem Typen hinzufügte. Tatsächlich gab es zwischen B und C noch einen Zwischenschritt in Form der Sprache New B (NB).[ 4 ]

1973 wurde der Unix-Kernel komplett neu in C geschrieben. Dieses neue Unix (mittlerweile in der Version 4) wurde damit auf andere Systeme portierbar. Noch im selben Jahr wurde Unix zu einem Mehrbenutzer-Mehrprozess-Betriebssystem (Multiuser-Multitasking) weiterentwickelt und der Öffentlichkeit vorgestellt. Auf diesem System konnten nun mehrere Benutzer gleichzeitig unterschiedliche Programme laufen lassen. Da C gleichzeitig eine sehr portable, aber auch systemnahe Sprache war, konnte Unix recht gut auf neuen Plattformen implementiert werden, um dann auch dort performant zu laufen. Die Vorteile einer Hochsprache wurden hier deutlich: Man braucht nur einen Übersetzer auf einer neuen Hardwareplattform, und schon kann der Code mit nur wenigen Änderungen übernommen werden.

Ein Jahr später, also 1974, erschien ein gemeinsamer Artikel mit dem Titel The UNIX Time-Sharing System von Dennis Ritchie und Ken Thompson im Fachblatt Communications of the ACM, in dem sie auf die Entstehungsgeschichte und die Wurzeln von Unix eingingen, die eben nicht völlig neu waren, sondern auf bestehenden Systemen basierten. So stammen Grundkonzepte etwa aus dem Berkeley Timesharing System (sogenanntes Forking, d. h. das Konzept zur Erzeugung neuer Prozesse), dem bereits erwähnten MULTICS (Konzepte der Systemaufrufe und der Shell) und TENEX oder wurden zumindest durch diese beeinflusst:

»Der Erfolg von Unix liegt nicht so sehr in [...] Innovationen als vielmehr darin, dass sorgfältig ausgewählte Ideen zur vollen Blüte gebracht wurden.« (eigene Übersetzung aus The UNIX Time-Sharing System)

Ken Thompson und Dennis Ritchie erhielten 1998 von Bill Clinton die National Medal of Technology der USA für die Entwicklung von Unix und C. 1983 erhielten Thompson und Ritchie den Turing Award - die bedeutendste Auszeichnung der Informatik und für Informatiker prinzipiell so wertig wie der Nobelpreis. Weitere wichtige Bücher mit Beteiligung dieser Autoren sind beispielsweise The Unix Programming Environment von Rob Pike und Brian Kernighan sowie The Unix time-sharing system von Dennis Ritchie. Zudem haben Ritchie und Kernighan mit ihrem Buch The C Programming Language eines der bedeutendsten Werke der Informatik verfasst.
Die Entstehung der Unix-Derivate
1977 nahm man dann auch die erste Implementierung auf einem NichtPDP-System vor, nämlich auf einem Interdate 8/32. Dies regte weitere Unix-Portierungen durch Firmen wie HP und IBM an, und die Unix-Entwicklung begann, sich auf viele Abkömmlinge, sogenannte Derivate, auszuweiten.

Die Unix-Variante von AT&T wurde 1981 mit derjenigen von BELL zu einem einheitlichen »Unix-System III« kombiniert. 1983 kündigte BELL das »System V« an, das primär für den Einsatz auf VAX-Systemen an Universitäten entwickelt wurde. Im Jahr darauf annoncierte AT&T die zweite Version von System V. Die Anzahl der Unix-Installationen war bis dahin auf ca. 100.000 angestiegen. 1986 erschien System V, Release 3. Schließlich wurde 1989 System V Release 4 (SVR4) freigegeben, das noch heute als Unix-Standard gilt.
1.3.2    BSD wird ins Leben gerufen

Neben SVR4-Unix gab es eine Entwicklung von BSD-Unix, auf deren Darstellung wir hier natürlich keineswegs verzichten möchten. Schließlich haben wir der BSD-Implementierung der sogenannten TCP/IP-Protokolle (so bezeichnet man die Kommunikationsprotokolle für das Internet) mehr oder weniger das heutige Internet zu verdanken.

Bereits 1974 verteilte AT&T Quellcodelizenzen an einige Forschungsinstitute. Auch das Computing Sciences Research Center (CSRC) der Bell Labs bekam solch eine Lizenz.

In Berkeley entwickelte ein Kreis von Programmierern der dortigen Universität in den folgenden Jahren einen neuen Code und nahm Verbesserungen gegenüber AT&T-Unix vor, wonach 1977 1BSD, die erste Berkeley Software Distribution, von Bill Joy zusammengestellt wurde. Im darauffolgenden Jahr wurde 2BSD veröffentlicht, das über neue Software und Verbesserungen verfügte.

1979 beauftragte die Defense Advanced Research Projects Agency (DARPA) der amerikanischen Regierung die Computer Systems Research Group (CSRG) der University of California, Berkeley, die Unix-Referenzimplementierung der Protokolle für das ARPANET, den Vorläufer des Internets, zu entwickeln. Die CSRG veröffentlichte schließlich das erste allgemein verfügbare Unix namens 4.2BSD, das unter anderem eine Integration der Kommunikationsprotokolle für das Internet (der oben erwähnten TCP/IP-Protokolle) aufwies: Damit konnte bereits sehr ähnlich über ein Netzwerk kommuniziert werden, wie es heutige Rechner nach wie vor tun.[ 5 ] Außerdem wurde ein neues Dateisystem eingeführt, nämlich das Berkeley Fast Filesystem (FFS).

Somit kann dieses BSD-Derivat als Urvater des Internets angesehen werden. Durch die Integration von TCP/IP und der Berkeley-Socket-API (das ist eine Programmierschnittstelle für die Netzwerkkommunikation) wurden Standards geschaffen bzw. geschaffene Standards umgesetzt, die für das spätere Internet essenziell sein sollten. Wenn man bedenkt, dass selbst heute noch ebendiese Berkeley-Socket-API als Standard in allen netzwerkfähigen Betriebssystemen implementiert ist, wird erst das volle Ausmaß der Bedeutung dieser Entwicklungen deutlich.

1989 entschloss man sich dazu, den TCP/IP-Code in einer von AT&T unabhängigen Lizenz als Networking Release 1 (Net/1) zu vertreiben. Net/1 war die erste öffentlich verfügbare Version. Viele Hersteller benutzten den Net/1-Code, um TCP/IP in ihre Systeme zu integrieren. In 4.3BSD Reno wurden 1990 noch einmal einige Änderungen am Kernel und an den Socket-APIs vorgenommen, um OSI-Protokolle zu integrieren.

Im Juni 1991 wurde Net/2 herausgegeben, das komplett neu und unabhängig vom AT&T-Code entwickelt wurde. Die wichtigsten Neuerungen von Net/2 waren eine komplette Neuimplementierung der C-Bibliothek und vieler Systemprogramme sowie die Ersetzung des AT&T-Kernels bis auf sechs Dateien. Nach einiger Zeit hatte William Frederick Jolitz auch die letzten sechs Dateien neu entwickelt. Er stellte ein vollständiges, bootbares Betriebssystem zum freien FTP-Download zur Verfügung. Es...

mehr

Autor

Steffen Wendzel ist Professor für Netzwerke und IT-Sicherheit an der Hochschule Worms. Zuvor leitete er ein Forschungsteam am Fraunhofer FKIE, Bonn, und promovierte an der Fernuniversität in Hagen. Er veröffentlichte über 130 Werke und beschäftigt sich seit seinem vierzehnten Lebensjahr mit Linux.