Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
19
1 Einleitung
21
1.1 Was ist Linux?
21
1.2 Die Linux-Distributionen
25
1.3 Unix- und Linux-Geschichte
27
1.3.1 Unix
27
1.3.2 Die Entstehung von BSD
29
1.3.3 Die Geburtsstunde von Linux
31
1.3.4 Die Kernelversionen
32
1.3.5 Stallman und das GNU-Projekt
33
1.4 Die Anforderungen an Ihren Rechner
34
1.4.1 Hardwarekompatibilität
34
1.5 Über dieses Buch
35
1.5.1 Was Sie in diesem Buch erwartet
35
1.5.2 Wie Sie dieses Buch lesen sollten
36
1.5.3 Die Linux-Befehle im Buch richtig verstehen
37
1.5.4 Wo Sie weitere Informationen bekommen
37
1.6 Zusammenfassung
38
2 Installationsvorbereitung
41
2.1 Die Anforderungen an Ihre Hardware
42
2.2 Hardwareunterstützung
42
2.2.1 Hardwarekompatibilitätslisten der Hersteller
43
2.2.2 X11 und Grafikkarten
43
2.2.3 Andere Geräte
44
2.3 Festplatten und Partitionen
45
2.3.1 Funktionsweise unter Linux
45
2.3.2 Für Ambitionierte: die Partitionierung von Hand durchführen
47
2.3.3 Das Tool cfdisk
49
2.3.4 Vorinstallierte Systeme
50
2.3.5 Windows und Linux
51
2.3.6 Erstellen eines Backups
51
2.4 Installationsmedien
51
2.5 Zusammenfassung
52
3 Linux-Installation
53
3.1 Die beiden Wege nach Rom
53
3.1.1 Vorbereitung: Linux herunterladen
53
3.1.2 Der klassische Weg: Installation auf echter Hardware
54
3.1.3 Der einfache Weg: Linux in einer virtuellen Maschine installieren
55
3.2 Installation von Ubuntu 18.04 LTS
58
3.2.1 Partitionierung der Festplatte
59
3.2.2 Zeitzone festlegen
59
3.2.3 Anlegen eines Benutzers
60
3.2.4 Systeminstallation
60
3.2.5 Fertigstellung
60
3.3 Installation von openSUSE Leap 15.0
60
3.3.1 Erste Schritte
61
3.3.2 Partitionierung
61
3.3.3 Uhr und Zeitzone
61
3.3.4 Anlegen eines Benutzers
61
3.3.5 Systeminstallation
62
3.3.6 Fertigstellung
62
3.4 Installation von Fedora 29
62
3.4.1 Erste Schritte
62
3.4.2 Abschließen der Installation
63
3.5 Linux erstmalig starten
63
3.6 Zusammenfassung
63
4 Der Linux-Desktop
65
4.1 X11 – die grafische Oberfläche
65
4.1.1 Geschichte von X11
65
4.1.2 Funktionsweise
66
4.1.3 X.org
68
4.1.4 Window-Manager
68
4.1.5 Old School
71
4.1.6 Moderne Oberflächen: Desktopumgebungen
72
4.1.7 Zusammenfassung
72
4.2 KDE, Gnome und MATE
73
4.2.1 Grafische Login-Manager
73
4.2.2 Look-and-Feel
74
4.2.3 KDE
75
4.2.4 Gnome
77
4.2.5 MATE
79
4.3 Officeumgebungen
79
4.3.1 LibreOffice
79
4.3.2 KDE Office (Calligra)
80
4.4 Die wichtigsten Programme und Tools
81
4.4.1 Terminals (die Shell für X11)
81
4.4.2 Mozilla: Browser, Mail- und Usenet-Client
82
4.4.3 The GIMP
83
4.5 Zusammenfassung
85
5 Grundlagen der Shell
87
5.1 Erste Schritte
87
5.1.1 Ein erster Befehl: ls
88
5.1.2 Welche Shells gibt es?
88
5.1.3 Die Shell als Programm
89
5.1.4 Der Prompt
89
5.1.5 Shellintern vs. Programm
91
5.1.6 Kommandos aneinanderreihen
92
5.1.7 Mehrzeilige Kommandos
94
5.2 Arbeiten mit Verzeichnissen
94
5.2.1 Pfade
95
5.2.2 Das aktuelle Verzeichnis
95
5.2.3 Verzeichniswechsel
96
5.2.4 Und das Ganze mit Pfaden ...
97
5.3 Die elementaren Programme
98
5.3.1 echo und Kommandosubstitution
98
5.3.2 sleep
99
5.3.3 Erstellen eines Alias
99
5.3.4 cat
100
5.4 Programme für das Dateisystem
101
5.4.1 mkdir – Erstellen eines Verzeichnisses
101
5.4.2 rmdir – Löschen von Verzeichnissen
101
5.4.3 cp – Kopieren von Dateien
102
5.4.4 mv – Verschieben einer Datei
103
5.4.5 rm – Löschen von Dateien
103
5.4.6 touch – Zeitstempel von Dateien setzen
104
5.4.7 cut – Dateiinhalte abschneiden
104
5.4.8 paste – Dateien zusammenfügen
105
5.4.9 tac – Dateiinhalt umdrehen
106
5.4.10 nl – Zeilennummern für Dateien
106
5.4.11 wc – Zählen von Zeichen, Zeilen und Wörtern
107
5.4.12 od – Dateien zur Zahlenbasis x ausgeben
107
5.4.13 Mehr oder weniger, das ist hier die Frage!
108
5.4.14 head und tail
108
5.4.15 sort und uniq
109
5.4.16 Zeichen vertauschen
110
5.5 Startskripte
111
5.6 Ein- und Ausgabeumlenkung
112
5.6.1 Fehlerausgabe und Verknüpfung von Ausgaben
113
5.6.2 Anhängen von Ausgaben
114
5.6.3 Gruppierung der Umlenkung
114
5.7 Pipes
115
5.7.1 Um- und Weiterleiten mit tee
115
5.7.2 Named Pipes (FIFOs)
116
5.8 Zusammenfassung
116
6 Die grundlegende Funktionsweise von Linux
117
6.1 Singleuser, Multiuser
118
6.1.1 Der root-Account
118
6.1.2 Accounts für Dienste
119
6.1.3 Normale Useraccounts
119
6.2 Singletasking, Multitasking
119
6.3 Ressourcenverwaltung
120
6.3.1 Speicherverwaltung
120
6.3.2 Swapping
121
6.3.3 Speicherplatz der Festplatte
122
6.3.4 Verwaltung weiterer Ressourcen
122
6.3.5 Schnittstellenbezeichnung unter Linux
122
6.3.6 Pseudogeräte
123
6.4 Zugriffsrechte
123
6.4.1 Standardrechte
124
6.4.2 Erweiterte Zugriffsrechte
129
6.4.3 Access Control Lists
130
6.5 Das virtuelle Dateisystem
132
6.5.1 Die Verzeichnisstruktur
132
6.5.2 Dateinamen
134
6.5.3 Dateitypen
134
6.5.4 Einhängen von Dateisystemen
138
6.6 UUIDs
143
6.7 Zusammenfassung
145
7 Der Bootstrap-Vorgang
147
7.1 Der MBR und die GPT
147
7.1.1 Die Partitionstabelle
148
7.1.2 Von GRUB bis zum Init-System
149
7.2 Der Systemstart mit systemd
151
7.2.1 Systemd ist ein Init-System ...
152
7.2.2 ... und noch viel mehr
152
7.2.3 Targets – welche Dienste sollen gestartet werden?
153
7.2.4 Units – einzelne Dienste konfigurieren
154
7.2.5 systemctl
155
7.3 Der Bootvorgang im Userspace
157
7.4 getty und der Anmeldevorgang am System
158
7.4.1 (a)getty
158
7.4.2 Login
159
7.4.3 Shellstart
159
7.4.4 Beenden einer Terminalsitzung
160
7.5 Herunterfahren und neu starten
160
7.5.1 Die Auswahl
161
7.5.2 shutdown
161
7.6 Zusammenfassung
162
8 Programme und Prozesse
163
8.1 Was ist ein Prozess?
163
8.1.1 Das Starten eines Programms
163
8.1.2 Eltern- und Kindprozesse
164
8.2 Der Kernel und seine Prozesse
165
8.2.1 Die Prozesstabelle
166
8.2.2 Der Prozessstatus
166
8.3 Prozess-Environment
167
8.4 Sessions und Prozessgruppen
168
8.5 Vorder- und Hintergrundprozesse
169
8.5.1 Wechseln zwischen Vorder- und Hintergrund
171
8.5.2 Jobs – behalten Sie sie im Auge
173
8.5.3 Hintergrundprozesse und Fehlermeldungen
174
8.5.4 Wann ist es denn endlich vorbei?
175
8.6 Das kill-Kommando und Signale
175
8.6.1 Welche Signale gibt es?
176
8.6.2 Beispiel: Anhalten und Fortsetzen eines Prozesses
177
8.7 Prozessadministration
179
8.7.1 Prozesspriorität
179
8.7.2 pstree
180
8.7.3 Prozesslistung mit Details via ps
182
8.7.4 top
184
8.7.5 Timing für Prozesse
186
8.8 Zusammenfassung
186
9 Grundlegende Administration
187
9.1 Benutzerverwaltung
187
9.1.1 Linux und Multiuser-Systeme
187
9.1.2 Das Verwalten der Benutzerkonten
189
9.1.3 Benutzer und Gruppen
192
9.2 Installation neuer Software
193
9.2.1 Das DEB-Paketsystem
194
9.2.2 Das RPM-Paketsystem
200
9.2.3 Paketsysteme ohne Grenzen
201
9.2.4 Softwareinstallation ohne Pakete
202
9.3 Backups erstellen
205
9.3.1 Die Sinnfrage
205
9.3.2 Backup eines ganzen Datenträgers
206
9.3.3 Backup ausgewählter Daten
208
9.4 Logdateien und dmesg
211
9.4.1 /var/log/messages
211
9.4.2 /var/log/wtmp
212
9.4.3 /var/log/Xorg.log
213
9.4.4 syslogd
213
9.4.5 logrotate und DoS-Angriffe
213
9.4.6 tail und head
214
9.5 Kernelkonfiguration
215
9.5.1 Die Kernelsourcen
216
9.5.2 Los geht's!
216
9.5.3 Start der Konfiguration
218
9.5.4 Was kann konfiguriert werden?
219
9.5.5 Kernelerstellung
219
9.5.6 Ladbare Kernelmodule (LKMs)
220
9.6 Weitere nützliche Programme
221
9.6.1 Speicherverwaltung
221
9.6.2 Festplatten verwalten
222
9.6.3 Benutzer überwachen
224
9.6.4 Der Systemstatus
228
9.6.5 Offene Dateideskriptoren mit lsof
228
9.7 Grundlegende Systemdienste
230
9.7.1 cron
230
9.7.2 at
231
9.8 Manpages
232
9.9 Dateien finden mit find
234
9.9.1 Festlegung eines Auswahlkriteriums
234
9.9.2 Festlegung einer Aktion
237
9.9.3 Fehlermeldungen vermeiden
238
9.10 Der Midnight Commander
238
9.10.1 Die Bedienung
239
9.10.2 Verschiedene Ansichten
239
9.11 Zusammenfassung
241
10 Die Shell richtig nutzen
243
10.1 Grundlagen der Shellskript-Programmierung
243
10.1.1 Was genau ist ein Shellskript?
244
10.1.2 Wie legen Sie los?
244
10.1.3 Das erste Shellskript
245
10.1.4 Kommentare
245
10.1.5 Variablen
246
10.1.6 Rechnen mit Variablen
247
10.1.7 Benutzereingaben für Variablen
249
10.1.8 Arrays
249
10.1.9 Kommandosubstitution und Schreibweisen
250
10.1.10 Argumentübergabe
251
10.1.11 Funktionen
252
10.1.12 Bedingte Anweisungen – Teil 1
255
10.1.13 Bedingte Anweisungen – Teil 2
258
10.1.14 Die while-Schleife
259
10.1.15 Die for-Schleife
260
10.1.16 Menüs bilden mit select
262
10.1.17 Das Auge isst mit: der Schreibstil
263
10.2 Reguläre Ausdrücke: awk und sed
264
10.2.1 awk – Grundlagen und reguläre Ausdrücke
266
10.2.2 Arbeitsweise von awk
267
10.2.3 Reguläre Ausdrücke anwenden
267
10.2.4 awk – etwas detaillierter
270
10.2.5 awk und Variablen
273
10.2.6 Bedingte Anweisungen
275
10.2.7 Funktionen in awk
278
10.2.8 Builtin-Funktionen
280
10.2.9 Arrays und String-Operationen
283
10.2.10 Was noch fehlt
284
10.2.11 sed
284
10.2.12 grep
286
10.3 Ein paar Tipps zum Schluss
288
10.4 Weitere Fähigkeiten der Shell
288
10.5 Zusammenfassung
289
11 Der vi(m)-Editor
291
11.1 vi
291
11.1.1 Den vi(m) starten
292
11.1.2 Kommando- und Eingabemodus
292
11.1.3 Dateien speichern
293
11.1.4 Arbeiten mit dem Eingabemodus
293
11.1.5 Navigation
295
11.1.6 Löschen von Textstellen
295
11.1.7 Textbereiche ersetzen
296
11.1.8 Kopieren von Textbereichen
297
11.1.9 Shiften
297
11.1.10 Die Suchfunktion
297
11.1.11 Konfiguration
298
11.2 vim und gvim
299
11.3 Zusammenfassung
300
12 Einführung in Netzwerke
301
12.1 Etwas Theorie
301
12.1.1 TCP/IP
302
12.1.2 Ihr Heimnetzwerk
303
12.2 Konfiguration einer Netzwerkschnittstelle
305
12.2.1 Welche Netzwerkschnittstellen gibt es?
306
12.2.2 Konfiguration von Netzwerkkarten mit ip und ifconfig
308
12.2.3 Automatische Konfiguration: DHCP
311
12.3 Routing
312
12.3.1 Was ist Routing?
312
12.3.2 Der Befehl ip route
313
12.4 Netzwerke benutzerfreundlich – DNS
315
12.4.1 DNS
315
12.4.2 DNS und Linux
316
12.4.3 Windows und die Namensauflösung
318
12.5 Firewalling und NAT
319
12.5.1 Network Address Translation
319
12.5.2 Firewalling mit iptables
320
12.6 Nützliche Netzwerktools
325
12.6.1 ping
325
12.6.2 netstat
326
12.6.3 nmap
328
12.6.4 tcpdump
329
12.7 Zusammenfassung
330
13 Netzwerktools
331
13.1 Grundlegende Konzepte
331
13.1.1 Peer-to-Peer-Netzwerke
331
13.1.2 Das Client-Server-Prinzip
332
13.1.3 Und das Ganze mit TCP/IP
333
13.2 Secure Shell
334
13.2.1 Das SSH-Protokoll
334
13.2.2 Secure Shell nutzen
336
13.2.3 Der Secure-Shell-Server
340
13.3 Das World Wide Web
341
13.3.1 Das HTTP-Protokoll
341
13.3.2 Einrichten eines Apache-Webservers
344
13.3.3 Den Apache verwalten
348
13.4 Windows-Netzwerkfreigaben
349
13.4.1 Die smb.conf-Konfigurationsdatei
349
13.4.2 Benutzersetup mit smbpasswd
351
13.4.3 Das Share verbinden
352
13.5 E-Mail für Linux-Nutzer
355
13.5.1 Wie eine E-Mail übertragen wird
355
13.5.2 fetchmail
356
13.5.3 procmail
358
13.5.4 SMTP- und IMAP-Server
359
13.6 Zusammenfassung
359
14 Speichermedien unter Linux
361
14.1 Neue Festplatten integrieren
361
14.1.1 Verschaffen Sie sich einen Überblick
361
14.1.2 Eine neue Platte formatieren und mounten
362
14.2 Eine Datei als Dateisystem
363
14.2.1 Imagedateien direkt mounten: Loop-Device
363
14.2.2 Imagedateien erstellen
364
14.3 USB-Sticks, SD-Karten und Co.
365
14.3.1 Das Device identifizieren
366
14.3.2 Eine Imagedatei auf das Device schreiben
367
14.4 Netzwerkdateisysteme benutzen
368
14.4.1 Windows-Freigaben einbinden
368
14.4.2 NFS-Shares einbinden
368
14.5 SoftRAID und LVM
369
14.6 Zusammenfassung
369
15 Multimedia und Spiele unter Linux
371
15.1 Ein wichtiger Hinweis vorweg
371
15.2 Audioprogramme
372
15.2.1 Rhythmbox
372
15.2.2 Amarok
373
15.2.3 Audacious
373
15.2.4 SoX
374
15.3 Videos, DVDs und Blue-Rays
374
15.3.1 DVDs, DivX und Co.
374
15.3.2 vlc
376
15.3.3 MPlayer
376
15.3.4 XINE
377
15.4 Webcams und Webcamsoftware
377
15.5 CUPS – Common Unix Printing System
379
15.5.1 CUPS-Installation
380
15.5.2 CUPS-Konfiguration
381
15.5.3 Exkurs: Das BSD-Printing-System
381
15.6 Spiele für Linux
382
15.6.1 Native und zugleich freie Linux-Spiele
384
15.7 Zusammenfassung
386
16 Umgang mit dem Raspberry Pi
387
16.1 Die Hardware
387
16.1.1 Schnittstellen
389
16.1.2 Zubehör
390
16.2 Die Inbetriebnahme
391
16.2.1 Linux-Distributionen für den Raspberry Pi
391
16.2.2 SD-Karte mit einem Image bespielen
392
16.3 Der Raspberry Pi als Homeserver
393
16.3.1 Die initiale Konfiguration mit raspi-config
393
16.3.2 Die Grundlagen
395
16.3.3 Die weitere Konfiguration
396
16.4 Der Raspberry Pi als Mediacenter
397
16.4.1 Kodi konfigurieren
398
16.4.2 Freigaben einbinden – Filme, Serien und Musik
398
16.4.3 Add-ons konfigurieren
400
16.5 Zusammenfassung
401
Index
403