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
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