Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
19
1 Einleitung
21
1.1 Was ist Linux?
21
1.2 Die Linux-Distributionen
23
1.3 UNIX- und Linux-Geschichte
25
1.3.1 UNIX
25
1.3.2 Die Geburtsstunde von Linux
28
1.3.3 Die Kernelversionen
29
1.4 Die Anforderungen an Ihren Rechner
30
1.4.1 Hardwarekompatibilität
30
1.5 Über dieses Buch
30
1.5.1 Was Sie in diesem Buch erwartet
31
1.5.2 Wie Sie dieses Buch lesen sollten
32
1.5.3 Wo Sie weitere Informationen bekommen
33
1.6 Zusammenfassung
34
2 Installationsvorbereitung
35
2.1 Die Anforderungen an Ihre Hardware
36
2.2 Hardwareunterstützung
36
2.2.1 Hardwarekompatibilitätslisten der Hersteller
37
2.2.2 X11 und Grafikkarten
37
2.2.3 Linux auf Laptops
38
2.2.4 Andere Geräte
38
2.3 Festplatten und Partitionen
39
2.3.1 Funktionsweise unter Linux
39
2.3.2 Die Partitionierung von Hand durchführen
41
2.3.3 Das Tool cfdisk
43
2.3.4 Vorinstallierte Systeme
44
2.3.5 Windows und Linux
44
2.3.6 Erstellen eines Backups
45
2.4 Installationsmedien
45
2.5 Zusammenfassung
46
3 Linux-Installation
47
3.1 Installation von Ubuntu 16.04 LTS
48
3.1.1 Partitionierung der Festplatte
48
3.1.2 Zeitzone und Tastaturlayout festlegen
49
3.1.3 Anlegen eines Benutzers
49
3.1.4 Systeminstallation
49
3.1.5 Fertigstellung
50
3.2 Installation von openSUSE 42.1 Leap
50
3.2.1 Erste Schritte
51
3.2.2 Partitionierung
51
3.2.3 Uhr und Zeitzone
51
3.2.4 Repository-Auswahl
51
3.2.5 Auswahl des Desktops
52
3.2.6 Anlegen eines Benutzers
52
3.2.7 Systeminstallation
53
3.2.8 Fertigstellung
53
3.3 Installation von Fedora 23.0 (Live-Install)
53
3.3.1 Erste Schritte
53
3.3.2 Abschließen der Installation
54
3.4 Linux starten
54
3.5 Zusammenfassung
54
4 Der Linux-Desktop
55
4.1 X11 – die grafische Oberfläche
55
4.1.1 Geschichte von X11
55
4.1.2 Funktionsweise
56
4.1.3 X.org
57
4.1.4 Window-Manager
58
4.1.5 Desktopumgebungen
62
4.1.6 Zusammenfassung
62
4.2 KDE, Gnome und Unity
62
4.2.1 Grafische Login-Manager
62
4.2.2 Look-and-feel
63
4.2.3 KDE
64
4.2.4 Gnome
66
4.2.5 Unity
68
4.3 Officeumgebungen
69
4.3.1 LibreOffice
69
4.3.2 Calligra
70
4.4 Die wichtigsten Programme und Tools
71
4.4.1 Eterm, xterm und Co.
71
4.4.2 Mozilla: Browser, Mail- und Usenet-Client
72
4.4.3 The GIMP
73
4.5 Zusammenfassung
75
5 Die grundlegende Funktionsweise von Linux
77
5.1 Singleuser, Multiuser
78
5.2 Singletasking, Multitasking
78
5.3 Ressourcenverwaltung
78
5.3.1 Speicherverwaltung
79
5.3.2 Swapping
80
5.3.3 Speicherplatz der Festplatte
80
5.3.4 Verwaltung weiterer Ressourcen
80
5.3.5 Schnittstellenbezeichnung unter Linux
81
5.3.6 Pseudogeräte
82
5.4 Zugriffsrechte
82
5.4.1 Standardrechte
82
5.4.2 Erweiterte Zugriffsrechte
88
5.4.3 Access Control Lists
89
5.5 Das virtuelle Dateisystem
91
5.5.1 Die Verzeichnisstruktur
91
5.5.2 Dateinamen
93
5.5.3 Dateitypen
93
5.5.4 Einhängen von Dateisystemen
97
5.6 UUIDs
102
5.7 Zusammenfassung
104
6 Der Bootstrap-Vorgang
105
6.1 Der MBR und die GPT
105
6.1.1 Die Partitionstabelle
106
6.1.2 Von GRUB bis zum init-Prozess
107
6.1.3 init
109
6.2 Runlevel-Skripte
110
6.2.1 Wechseln des Runlevels
110
6.2.2 Variante 1: Die Datei /etc/inittab
112
6.2.3 Die rc-Skripte
114
6.2.4 Variante 2: Systemd
115
6.3 getty und der Anmeldevorgang am System
117
6.3.1 (a)getty
117
6.3.2 Login
117
6.3.3 Shellstart
118
6.4 Beenden einer Terminalsitzung
119
6.5 Herunterfahren und neu starten
119
6.5.1 Die Auswahl
120
6.5.2 shutdown
120
6.6 Zusammenfassung
121
7 Programme und Prozesse
123
7.1 Was ist ein Prozess?
123
7.1.1 Das Starten eines Programms
123
7.1.2 Eltern- und Kind-Prozesse
124
7.2 Der Kernel und seine Prozesse
125
7.2.1 Die Prozesstabelle
126
7.2.2 Der Prozessstatus
126
7.3 Prozess-Environment
127
7.4 Sessions und Prozessgruppen
128
7.5 Vorder- und Hintergrundprozesse
129
7.5.1 Wechseln zwischen Vorder- und Hintergrund
132
7.5.2 Jobs – behalten Sie sie im Auge
133
7.5.3 Hintergrundprozesse und Fehlermeldungen
134
7.5.4 Wann ist es denn endlich vorbei?
135
7.6 Das kill-Kommando und Signale
136
7.6.1 Welche Signale gibt es?
136
7.6.2 Beispiel: Anhalten und Fortsetzen eines Prozesses
137
7.7 Prozessadministration
139
7.7.1 Prozesspriorität
139
7.7.2 pstree
140
7.7.3 Prozesslistung mit Details via ps
142
7.7.4 top
144
7.7.5 Timing für Prozesse
146
7.8 Zusammenfassung
146
8 Grundlegende Administration
147
8.1 Benutzerverwaltung
147
8.1.1 Linux und Multiuser-Systeme
147
8.1.2 Das Verwalten der Benutzerkonten
149
8.1.3 Benutzer und Gruppen
152
8.2 Installation neuer Software
153
8.2.1 Das DEB-Paketsystem
154
8.2.2 Das RPM-Paketsystem
160
8.2.3 Paketsysteme ohne Grenzen
161
8.2.4 Softwareinstallation ohne Pakete
162
8.3 Backups erstellen
165
8.3.1 Die Sinnfrage
165
8.3.2 Backup eines ganzen Datenträgers
166
8.3.3 Backup ausgewählter Daten
167
8.4 Logdateien und dmesg
171
8.4.1 /var/log/messages
171
8.4.2 /var/log/wtmp
172
8.4.3 /var/log/Xorg.log
173
8.4.4 syslogd
173
8.4.5 logrotate
173
8.4.6 tail und head
174
8.5 Kernelkonfiguration
175
8.5.1 Die Kernelsourcen
175
8.5.2 Los geht's!
176
8.5.3 Start der Konfiguration
178
8.5.4 Was kann konfiguriert werden?
178
8.5.5 Kernelerstellung
181
8.5.6 Ladbare Kernelmodule (LKMs)
181
8.6 Weitere nützliche Programme
185
8.6.1 Speicherverwaltung
185
8.6.2 Festplatten verwalten
186
8.6.3 Benutzer überwachen
188
8.6.4 Der Systemstatus
192
8.6.5 Offene Dateideskriptoren mit lsof
193
8.7 Grundlegende Systemdienste
194
8.7.1 cron
194
8.7.2 at
195
8.8 Manpages
196
8.9 Dateien finden mit find
198
8.9.1 Festlegung eines Auswahlkriteriums
198
8.9.2 Festlegung einer Aktion
201
8.9.3 Fehlermeldungen vermeiden
202
8.10 Der Midnight Commander
202
8.10.1 Die Bedienung
203
8.10.2 Verschiedene Ansichten
204
8.11 Zusammenfassung
205
9 Die Shell
207
9.1 Grundlegendes
207
9.1.1 Was ist eine Shell?
208
9.1.2 Welche Shells gibt es?
208
9.1.3 Die Shell als Programm
209
9.1.4 Die Login-Shell wechseln
209
9.1.5 Der Prompt
210
9.1.6 Shellintern vs. Programm
212
9.1.7 Kommandos aneinanderreihen
214
9.1.8 Mehrzeilige Kommandos
215
9.2 Arbeiten mit Verzeichnissen
215
9.2.1 Pfade
215
9.2.2 Das aktuelle Verzeichnis
216
9.2.3 Verzeichniswechsel
216
9.2.4 Und das Ganze mit Pfaden ...
218
9.3 Die elementaren Programme
219
9.3.1 echo und Kommandosubstitution
219
9.3.2 sleep
220
9.3.3 Erstellen eines Alias
220
9.3.4 cat
221
9.4 Programme für das Dateisystem
222
9.4.1 mkdir – Erstellen eines Verzeichnisses
222
9.4.2 rmdir – Löschen von Verzeichnissen
222
9.4.3 cp – Kopieren von Dateien
223
9.4.4 mv – Verschieben einer Datei
224
9.4.5 rm – Löschen von Dateien
224
9.4.6 touch – Zugriffszeiten von Dateien setzen
225
9.4.7 cut – Dateiinhalte abschneiden
225
9.4.8 paste – Dateien zusammenfügen
226
9.4.9 tac – Dateiinhalt umdrehen
227
9.4.10 nl – Zeilennummern für Dateien
227
9.4.11 wc – Zählen von Zeichen, Zeilen und Wörtern
228
9.4.12 od – Dateien zur Zahlenbasis x ausgeben
228
9.4.13 Mehr oder weniger, das ist hier die Frage!
229
9.4.14 head und tail
229
9.4.15 sort und uniq
230
9.4.16 Zeichen vertauschen
231
9.5 Startskripte
232
9.6 Ein- und Ausgabeumlenkung
233
9.6.1 Fehlerausgabe und Verknüpfung von Ausgaben
234
9.6.2 Anhängen von Ausgaben
235
9.6.3 Gruppierung der Umlenkung
235
9.7 Pipes
236
9.7.1 Um- und Weiterleiten mit tee
236
9.7.2 Named Pipes (FIFOs)
237
9.8 Grundlagen der Shellskript-Programmierung
237
9.8.1 Was genau ist ein Shellskript?
238
9.8.2 Wie legen Sie los?
238
9.8.3 Das erste Shellskript
239
9.8.4 Kommentare
239
9.8.5 Variablen
240
9.8.6 Rechnen mit Variablen
242
9.8.7 Benutzereingaben für Variablen
243
9.8.8 Arrays
243
9.8.9 Kommandosubstitution und Schreibweisen
244
9.8.10 Argumentübergabe
245
9.8.11 Funktionen
246
9.8.12 Bedingte Anweisungen – Teil 1
249
9.8.13 Bedingte Anweisungen – Teil 2
252
9.8.14 Die while-Schleife
253
9.8.15 Die for-Schleife
254
9.8.16 Menüs bilden mit select
256
9.8.17 Das Auge isst mit: der Schreibstil
257
9.9 Reguläre Ausdrücke: awk und sed
258
9.9.1 awk – Grundlagen und reguläre Ausdrücke
260
9.9.2 Arbeitsweise von awk
260
9.9.3 Reguläre Ausdrücke anwenden
261
9.9.4 awk – etwas detaillierter
264
9.9.5 awk und Variablen
266
9.9.6 Bedingte Anweisungen
269
9.9.7 Funktionen in awk
271
9.9.8 Builtin-Funktionen
273
9.9.9 Arrays und String-Operationen
276
9.9.10 Was noch fehlt
277
9.9.11 sed
277
9.9.12 grep
279
9.10 Ein paar Tipps zum Schluss
281
9.11 Weitere Fähigkeiten der Shell
281
9.12 Zusammenfassung
282
10 Der vi(m)-Editor
283
10.1 vi
283
10.1.1 Den vi starten
283
10.1.2 Kommando- und Eingabemodus
284
10.1.3 Dateien speichern
285
10.1.4 Arbeiten mit dem Eingabemodus
285
10.1.5 Navigation
286
10.1.6 Löschen von Textstellen
287
10.1.7 Textbereiche ersetzen
288
10.1.8 Kopieren von Textbereichen
288
10.1.9 Shiften
289
10.1.10 Die Suchfunktion
289
10.1.11 Konfiguration
290
10.2 vim
290
10.2.1 gvim
291
10.3 Zusammenfassung
291
11 Einführung in Netzwerke
293
11.1 Etwas Theorie
293
11.1.1 TCP/IP
294
11.1.2 Ihr Heimnetzwerk
296
11.2 Konfiguration einer Netzwerkschnittstelle
297
11.2.1 Konfiguration von Netzwerkkarten mit ifconfig
298
11.2.2 DHCP
301
11.3 Routing
301
11.3.1 Was ist Routing?
302
11.3.2 route
303
11.3.3 iproute2
304
11.4 Netzwerke benutzerfreundlich – DNS
304
11.4.1 DNS
305
11.4.2 DNS und Linux
306
11.4.3 Windows und die Namensauflösung
308
11.5 Firewalling und NAT
309
11.5.1 Network Address Translation
309
11.5.2 Firewalling mit iptables
310
11.5.3 Firewalling mit dem TCP-Wrapper
311
11.6 Nützliche Netzwerktools
315
11.6.1 ping
315
11.6.2 netstat
316
11.6.3 nmap
318
11.6.4 tcpdump
319
11.7 Zusammenfassung
321
12 Netzwerk-Tools
323
12.1 Grundlegende Konzepte
323
12.1.1 Peer-to-Peer-Netzwerke
323
12.1.2 Das Client-Server-Prinzip
324
12.1.3 Und das Ganze mit TCP/IP
325
12.2 Secure Shell
326
12.2.1 Das SSH-Protokoll
326
12.2.2 Secure Shell nutzen
329
12.2.3 Der Secure-Shell-Server
333
12.3 Das World Wide Web
333
12.3.1 Das HTTP-Protokoll
333
12.3.2 Einrichten eines Apache-Webservers
337
12.3.3 Den Apache verwalten
340
12.4 Windows-Netzwerkfreigaben
341
12.4.1 Windows-Freigaben
342
12.4.2 Dateien freigeben
342
12.5 Dateien tauschen mit FTP
342
12.5.1 Das FTP-Protokoll
343
12.5.2 FTP nutzen
344
12.5.3 Einen Server konfigurieren
347
12.6 E-Mail unter Linux
348
12.6.1 Grundlegende Begriffe
348
12.6.2 fetchmail
349
12.6.3 procmail
351
12.6.4 MTAs
352
12.7 Zusammenfassung
353
13 Speichermedien unter Linux
355
13.1 Neue Festplatten integrieren
355
13.2 Eine Datei als Dateisystem
356
13.2.1 Loop-Device
356
13.2.2 Und das Ganze mit dem RAM
358
13.3 CDs und DVDs brennen
359
13.3.1 ISO-Dateien erzeugen
359
13.3.2 cdrecord
360
13.3.3 Die benutzerfreundlichen Varianten: brasero und k3b
360
13.4 USB-Sticks und Co.
361
13.4.1 Das Device ansprechen
361
13.5 SoftRAID und LVM
362
13.6 Zusammenfassung
362
14 Multimedia und Spiele unter Linux
363
14.1 Ein wichtiger Hinweis vorweg
363
14.2 Audioprogramme
364
14.2.1 Rhythmbox
364
14.2.2 Amarok
365
14.2.3 Audacious
365
14.2.4 SoX
366
14.2.5 Text-to-Speech
366
14.3 Videos, DVDs und Blu-Rays
366
14.3.1 DVDs, DivX und Co.
366
14.3.2 MPlayer
368
14.3.3 XINE
369
14.3.4 vlc
370
14.4 Webcams und Webcamsoftware
371
14.5 CUPS – Common UNIX Printing System
373
14.5.1 Exkurs: Das BSD-Printing-System
373
14.5.2 CUPS versus lpd
374
14.5.3 CUPS-Installation
374
14.5.4 CUPS-Konfiguration
375
14.5.5 Den Drucker benutzen
375
14.6 Freie Spiele für Linux
375
14.6.1 Vegastrike
375
14.6.2 Brutal Chess
376
14.6.3 Warmux
376
14.6.4 Open Mortal
377
14.6.5 FooBillard
377
14.6.6 freeciv und 0 A.D.
378
14.6.7 SuperTux
378
14.6.8 PlanetPenguin Racer/TuxRacer
378
14.6.9 Sauerbraten
378
14.6.10 Tremulous
379
14.6.11 FlightGear
379
14.6.12 Die Steam-Plattform
379
14.7 Zusammenfassung
379
15 Umgang mit dem Raspberry Pi
381
15.1 Die Hardware
381
15.1.1 Schnittstellen
382
15.1.2 Zubehör
383
15.2 Die Inbetriebnahme
385
15.2.1 Linux-Distributionen für den Raspberry Pi
385
15.2.2 SD-Karte mit einem Image bespielen
386
15.3 Der Raspberry Pi als Homeserver
388
15.3.1 Die initiale Konfiguration mit raspi-config
388
15.3.2 Die Grundlagen
390
15.3.3 Die weitere Konfiguration
391
15.4 Der Raspberry Pi als Mediacenter
392
15.4.1 Kodi konfigurieren
393
15.4.2 Freigaben einbinden – Filme, Serien und Musik
393
15.4.3 Add-ons konfigurieren
395
15.5 Zusammenfassung
396
Konfigurationsdateien
397
Index
403