Das freie und offene Betriebssystem Linux hat vor (fast) 35 Jahren die IT-Welt revolutioniert. Fast genauso lange begleitet das umfassende Handbuch von Michael Kofler den Pinguin. Seit nunmehr 30 Jahren finden Sie dort alles, was Sie zu Linux wissen müssen - ein echtes Standardwerk eben.
Aus dem Inhalt:
- Installation (Debian, Ubuntu, Fedora, RHEL-Klone, openSUSE
- Desktops: GNOME, KDE und mehr
- Fotos, Videos und Audio bearbeiten und verwalten
- Arbeiten im Terminal: bash, vim, emacs
- Software-/Paketverwaltung
- Grafiktreiber und Wayland
- GRUB2, systemd, Kernel und Module
- Netzwerkkonfiguration: DNS, DHCP und mehr
- LAN- und Root-Server, Linux in der Cloud
- Backups, Firewall, SELinux und AppArmor, KVM, Let's Encrypt
- Docker, KVM
- KI-Modelle mit Ollama lokal betreiben
Die Fachpresse zur Vorauflage:IT Administrator: »"Linux - Das umfassende Handbuch" überzeugt durch seine fachliche Tiefe und Anwendungsorientierung. Der Text ist leicht zugänglich und daher ein empfehlenswertes Nachschlagewerk für IT-Fachleute unterschiedlicher Wissensstufen, vom Einsteiger bis zum erfahrenen Anwender. «EKZ-Informationsdienst: »Eine sehr ausführliche Darstellung aller Bereiche des Betriebssystems, die keine Fragen offen lassen sollte. Nach wie vor ein wichtiger Linux-Titel für ambitionierte Einsteiger*innen bis zur Anwendung im professionellen Umfeld. «
Inhaltsverzeichnis
Vorwort . . . 19
TEIL I. Installation . . . 25
1. Was ist Linux? . . . 27
1. 1 . . . Einführung . . . 27
1. 2 . . . Hardware-Unterstützung . . . 28
1. 3 . . . Distributionen . . . 29
1. 4 . . . Open-Source-Lizenzen (GPL & Co.) . . . 34
1. 5 . . . Die Geschichte von Linux . . . 37
2. Installationsgrundlagen . . . 41
2. 1 . . . Voraussetzungen . . . 41
2. 2 . . . BIOS und EFI . . . 42
2. 3 . . . Installationsvarianten . . . 45
2. 4 . . . Überblick über den Installationsprozess . . . 48
2. 5 . . . Grundlagen der Partitionierung . . . 50
2. 6 . . . LVM und Verschlüsselung . . . 53
2. 7 . . . Linux-Partitionen anlegen . . . 56
2. 8 . . . Installationsumfang festlegen . . . 60
2. 9 . . . Grundkonfiguration . . . 61
2. 10 . . . Probleme beheben . . . 63
2. 11 . . . Systemveränderungen, Erweiterungen, Updates . . . 65
2. 12 . . . Linux wieder entfernen . . . 67
3. Installationsanleitungen . . . 69
3. 1 . . . Die Qual der Wahl . . . 69
3. 2 . . . Debian . . . 74
3. 3 . . . Fedora . . . 83
3. 4 . . . Ubuntu . . . 89
3. 5 . . . CachyOS . . . 96
TEIL II. Linux anwenden . . . 103
4. Gnome . . . 105
4. 1 . . . Erste Schritte . . . 107
4. 2 . . . Dateimanager . . . 114
4. 3 . . . Systemkonfiguration . . . 121
4. 4 . . . Gnome Tweaks . . . 130
4. 5 . . . Gnome-Shell-Erweiterungen . . . 131
4. 6 . . . Screenshots . . . 136
4. 7 . . . Freigaben und Fernanmeldung . . . 136
4. 8 . . . Gnome-Interna . . . 141
5. KDE . . . 147
5. 1 . . . Bedienung . . . 149
5. 2 . . . Dateimanager . . . 152
5. 3 . . . KDE-Konfiguration . . . 155
5. 4 . . . Screenshots . . . 159
6. Desktop-Apps . . . 161
6. 1 . . . Firefox . . . 162
6. 2 . . . Google Chrome und Chromium . . . 163
6. 3 . . . Thunderbird . . . 165
6. 4 . . . Multimedia-Grundlagen . . . 169
6. 5 . . . Shotwell . . . 173
6. 6 . . . digiKam . . . 174
6. 7 . . . GIMP . . . 177
6. 8 . . . RawTherapee und Darktable . . . 180
6. 9 . . . draw. io . . . 180
6. 10 . . . Audio-Player . . . 182
6. 11 . . . VLC . . . 184
6. 12 . . . Audio- und Video-Tools . . . 185
6. 13 . . . Etcher . . . 189
7. Raspberry Pi . . . 191
7. 1 . . . Grundlagen . . . 191
7. 2 . . . Raspberry Pi OS installieren und konfigurieren . . . 195
7. 3 . . . Der PIXEL-Desktop . . . 202
7. 4 . . . Hardware-Basteleien . . . 207
7. 5 . . . Kamera . . . 217
7. 6 . . . SSD . . . 219
7. 7 . . . Interna . . . 222
TEIL III. Linux-Grundlagen . . . 227
8. Arbeiten im Terminal . . . 229
8. 1 . . . Textkonsolen . . . 230
8. 2 . . . Terminal . . . 231
8. 3 . . . Textdateien anzeigen . . . 234
8. 4 . . . Texteditoren . . . 235
8. 5 . . . Hilfetexte und Online-Dokumentation lesen . . . 238
9. bash . . . 241
9. 1 . . . Was ist eine Shell? . . . 241
9. 2 . . . Konfiguration . . . 243
9. 3 . . . Kommandoeingabe . . . 246
9. 4 . . . Ein- und Ausgabeumleitung . . . 251
9. 5 . . . Kommandos ausführen . . . 254
9. 6 . . . Globbing, Substitution und Expansion . . . 256
9. 7 . . . Variablen . . . 263
9. 8 . . . bash-Scripts . . . 266
9. 9 . . . Grundregeln für bash-Scripts . . . 272
9. 10 . . . Variablen in bash-Scripts . . . 274
9. 11 . . . Verzweigungen, Schleifen und Funktionen . . . 279
9. 12 . . . Referenz wichtiger bash-Sonderzeichen . . . 286
10. zsh . . . 289
10. 1 . . . Installation und Konfiguration . . . 290
10. 2 . . . Anwendung . . . 295
10. 3 . . . Oh my zsh! . . . 298
11. fish . . . 301
11. 1 . . . Installation und erste Schritte . . . 301
11. 2 . . . Konfiguration . . . 305
11. 3 . . . Interna und Programmierung . . . 308
12. Dateien und Verzeichnisse . . . 311
12. 1 . . . Umgang mit Dateien und Verzeichnissen . . . 311
12. 2 . . . Links . . . 322
12. 3 . . . Dateien suchen (find, grep, locate) . . . 325
12. 4 . . . Mehr Komfort mit modernen Kommandos . . . 331
12. 5 . . . Zugriffsrechte, Benutzer und Gruppenzugehörigkeit . . . 334
12. 6 . . . Spezialbits und die umask-Einstellung . . . 341
12. 7 . . . Access Control Lists und Extended Attributes . . . 347
12. 8 . . . Die Linux-Verzeichnisstruktur . . . 351
12. 9 . . . Device-Dateien . . . 354
13. Prozessverwaltung . . . 357
13. 1 . . . Prozesse starten, verwalten und stoppen . . . 357
13. 2 . . . Prozesse unter einer anderen Identität ausführen (su) . . . 364
13. 3 . . . sudo . . . 366
13. 4 . . . Polkit . . . 372
13. 5 . . . Systemprozesse (Dämonen) . . . 375
13. 6 . . . Prozesse automatisch starten (Cron) . . . 378
13. 7 . . . Prozesse automatisch starten (systemd-Timer) . . . 382
14. Konverter für Grafik, Text und Multimedia . . . 387
14. 1 . . . Grafik-Konverter . . . 387
14. 2 . . . Audio- und Video-Konverter . . . 389
14. 3 . . . Dokumentkonverter (PostScript, PDF, HTML, LaTeX) . . . 390
14. 4 . . . Markdown und Pandoc . . . 395
15. Netzwerk-Tools . . . 399
15. 1 . . . Netzwerkstatus ermitteln . . . 399
15. 2 . . . Auf anderen Rechnern arbeiten (SSH) . . . 404
15. 3 . . . Dateien übertragen (wget, curl, ftp) . . . 411
15. 4 . . . Lynx . . . 416
15. 5 . . . Mutt . . . 417
TEIL IV. Text- und Code-Editoren . . . 421
16. Visual Studio Code . . . 423
16. 1 . . . Installation und erste Schritte . . . 424
16. 2 . . . Konfiguration . . . 427
16. 3 . . . Git-Funktionen . . . 430
16. 4 . . . Remote-SSH-Erweiterung . . . 431
17. Vim . . . 435
17. 1 . . . Schnelleinstieg . . . 437
17. 2 . . . Text bearbeiten . . . 440
17. 3 . . . Suchen und Ersetzen . . . 443
17. 4 . . . Mehrere Dateien gleichzeitig bearbeiten . . . 445
17. 5 . . . Interna . . . 447
17. 6 . . . Tipps und Tricks . . . 448
18. Emacs . . . 451
18. 1 . . . Schnelleinstieg . . . 451
18. 2 . . . Text bearbeiten . . . 454
18. 3 . . . Suchen und Ersetzen . . . 458
18. 4 . . . Puffer und Fenster . . . 462
18. 5 . . . Bearbeitungsmodi . . . 463
18. 6 . . . Konfiguration . . . 465
TEIL V. Systemkonfiguration und Administration . . . 469
19. Basiskonfiguration . . . 471
19. 1 . . . Einführung . . . 471
19. 2 . . . Konfiguration der Textkonsolen . . . 475
19. 3 . . . Datum und Uhrzeit . . . 477
19. 4 . . . Datum und Uhrzeit via NTP synchronisieren . . . 479
19. 5 . . . Benutzer und Gruppen, Passwörter . . . 481
19. 6 . . . PAM . . . 493
19. 7 . . . Spracheinstellung, Internationalisierung, Unicode . . . 497
19. 8 . . . Hardware-Referenz . . . 502
19. 9 . . . CPU-Tuning . . . 512
19. 10 . . . Notebook-Optimierung . . . 517
19. 11 . . . Drucksystem (CUPS) . . . 523
19. 12 . . . Syslog . . . 531
19. 13 . . . Journal . . . 539
19. 14 . . . Cockpit . . . 543
20. Netzwerkkonfiguration . . . 547
20. 1 . . . Der NetworkManager . . . 547
20. 2 . . . Grundlagen . . . 555
20. 3 . . . Manuelle Konfiguration . . . 562
20. 4 . . . Konfigurationsdateien . . . 573
20. 5 . . . Distributionsspezifische Konfiguration . . . 576
20. 6 . . . Zeroconf und Avahi . . . 585
21. Software- und Paketverwaltung . . . 587
21. 1 . . . Einführung . . . 587
21. 2 . . . dnf und rpm (Fedora, RHEL) . . . 593
21. 3 . . . zypper (SUSE) . . . 607
21. 4 . . . apt und dpkg (Debian, Ubuntu) . . . 608
21. 5 . . . pacman (Arch Linux) . . . 627
21. 6 . . . PackageKit . . . 632
21. 7 . . . Firmware-, BIOS- und EFI-Updates . . . 633
21. 8 . . . Verwaltung von Parallelinstallationen (alternatives) . . . 637
21. 9 . . . Flatpak und Snap . . . 639
22. Grafiksystem . . . 647
22. 1 . . . Grundlagen . . . 648
22. 2 . . . Grafiktreiber . . . 653
22. 3 . . . Den Status des Grafiksystems feststellen . . . 661
22. 4 . . . Start des Grafiksystems . . . 666
22. 5 . . . Dynamische Konfigurationsänderungen mit RandR . . . 670
23. Administration des Dateisystems . . . 673
23. 1 . . . Wie alles zusammenhängt . . . 675
23. 2 . . . USB-Datenträger formatieren und nutzen . . . 676
23. 3 . . . Device-Namen . . . 680
23. 4 . . . Partitionierung der Festplatte oder SSD . . . 685
23. 5 . . . Das parted-Kommando . . . 688
23. 6 . . . Partitionierungswerkzeuge mit grafischer Benutzeroberfläche . . . 694
23. 7 . . . Dateisystemtypen . . . 696
23. 8 . . . mount und /etc/fstab . . . 701
23. 9 . . . systemd versus /etc/fstab . . . 710
23. 10 . . . Das ext-Dateisystem (ext2, ext3, ext4) . . . 713
23. 11 . . . Das btrfs-Dateisystem . . . 718
23. 12 . . . Das xfs-Dateisystem . . . 734
23. 13 . . . Windows-Dateisysteme (VFAT, exFAT und NTFS) . . . 736
23. 14 . . . Swap-Partitionen und -Dateien . . . 740
23. 15 . . . RAID . . . 744
23. 16 . . . Logical Volume Manager (LVM) . . . 755
23. 17 . . . SMART . . . 760
23. 18 . . . SSD-TRIM . . . 766
23. 19 . . . Verschlüsselung . . . 767
24. GRUB . . . 779
24. 1 . . . GRUB-Grundlagen . . . 779
24. 2 . . . Initrd-Dateien . . . 785
24. 3 . . . GRUB-Bedienung (Anwendersicht) . . . 789
24. 4 . . . GRUB-Konfiguration . . . 791
24. 5 . . . Manuelle GRUB-Installation und Erste Hilfe . . . 795
24. 6 . . . systemd-boot . . . 799
24. 7 . . . Limine . . . 802
25. systemd . . . 805
25. 1 . . . Grundlagen . . . 805
25. 2 . . . Eigene systemd-Services . . . 815
25. 3 . . . Distributionsspezifische Details beim Systemstart . . . 819
25. 4 . . . shutdown, reboot und halt . . . 821
25. 5 . . . Das traditionelle Init-V-System . . . 823
26. Kernel und Module . . . 827
26. 1 . . . Kernelmodule . . . 828
26. 2 . . . Device Trees . . . 834
26. 3 . . . Kernelmodule selbst kompilieren . . . 837
26. 4 . . . Kernel selbst konfigurieren und kompilieren . . . 840
26. 5 . . . Kernel-Live-Patches . . . 851
26. 6 . . . Die Verzeichnisse /proc und /sys . . . 854
26. 7 . . . Kernel-Boot-Optionen . . . 856
26. 8 . . . Kernelparameter verändern . . . 860
26. 9 . . . Spectre und Meltdown . . . 860
TEIL VI. Server-Konfiguration . . . 865
27. Server-Installation . . . 867
27. 1 . . . Grundlagen . . . 867
27. 2 . . . Red Hat Enterprise Linux . . . 875
27. 3 . . . Ubuntu Server . . . 883
27. 4 . . . Debian-Server-Installation . . . 886
27. 5 . . . Elastic Compute Cloud . . . 888
27. 6 . . . Hetzner Cloud Hosting . . . 900
28. Secure Shell (SSH) . . . 905
28. 1 . . . Installation . . . 905
28. 2 . . . Konfiguration und Absicherung . . . 905
28. 3 . . . Fail2Ban . . . 909
28. 4 . . . Authentifizierung mit Schlüsseln . . . 911
28. 5 . . . Zwei-Faktor-Authentifizierung . . . 916
28. 6 . . . Zusatzwerkzeuge . . . 922
29. Apache . . . 925
29. 1 . . . Apache . . . 926
29. 2 . . . Apache-Konfiguration . . . 928
29. 3 . . . Verschlüsselte Verbindungen (HTTPS) . . . 932
29. 4 . . . Let's Encrypt . . . 939
29. 5 . . . Webverzeichnisse einrichten und absichern . . . 947
29. 6 . . . Virtuelle Hosts . . . 955
29. 7 . . . Webzugriffsstatistiken . . . 958
29. 8 . . . PHP . . . 961
29. 9 . . . nginx . . . 965
30. MySQL und MariaDB . . . 969
30. 1 . . . Installation und Inbetriebnahme . . . 970
30. 2 . . . Administrationswerkzeuge . . . 979
30. 3 . . . Backups . . . 983
30. 4 . . . WordPress installieren . . . 986
31. Postfix und Dovecot . . . 991
31. 1 . . . Einführung und Grundlagen . . . 991
31. 2 . . . Postfix (MTA) . . . 1003
31. 3 . . . Postfix-Verschlüsselung (TLS/STARTTLS) . . . 1012
31. 4 . . . Postfix-Konten . . . 1018
31. 5 . . . Dovecot (IMAP-Server) . . . 1029
31. 6 . . . Client-Konfiguration . . . 1037
31. 7 . . . SpamAssassin . . . 1038
31. 8 . . . ClamAV (Virenabwehr) . . . 1045
31. 9 . . . SPF, DKIM und DMARC . . . 1048
31. 10 . . . Konfigurationstest und Fehlersuche . . . 1058
32. Nextcloud . . . 1061
32. 1 . . . Installation . . . 1062
32. 2 . . . Konfiguration . . . 1068
32. 3 . . . Wartung . . . 1072
32. 4 . . . Betrieb . . . 1074
32. 5 . . . Kontakte und Termine . . . 1076
32. 6 . . . Videokonferenzen (Talk) . . . 1079
33. Samba . . . 1081
33. 1 . . . Grundlagen und Glossar . . . 1083
33. 2 . . . Basiskonfiguration und Inbetriebnahme . . . 1086
33. 3 . . . Passwortverwaltung . . . 1093
33. 4 . . . Netzwerkverzeichnisse . . . 1100
33. 5 . . . Beispiel -- Home- und Medien-Server . . . 1105
33. 6 . . . Beispiel -- Firmen-Server . . . 1109
33. 7 . . . Linux-Client-Konfiguration . . . 1112
33. 8 . . . Windows-Client-Konfiguration . . . 1120
TEIL VII. Sicherheit . . . 1123
34. Backup und Synchronisation . . . 1125
34. 1 . . . Déjà Dup . . . 1126
34. 2 . . . Back In Time . . . 1128
34. 3 . . . Grsync . . . 1131
34. 4 . . . Syncthing . . . 1133
34. 5 . . . Inkrementelle Backup-Tools (rdiff-backup, rsnapshot, Borg Backup) . . . 1138
34. 6 . . . Dateien komprimieren und archivieren . . . 1147
34. 7 . . . Verzeichnisse synchronisieren (rsync) . . . 1150
34. 8 . . . Backup-Scripts . . . 1154
34. 9 . . . Backups auf S3-Speicher . . . 1157
35. Firewalls . . . 1163
35. 1 . . . Netzwerkgrundlagen und -analyse . . . 1163
35. 2 . . . Basisabsicherung von Netzwerkdiensten . . . 1169
35. 3 . . . Firewall-Grundlagen . . . 1173
35. 4 . . . Firewall-Konfigurationshilfen . . . 1174
35. 5 . . . Firewall mit nft selbst gebaut . . . 1181
35. 6 . . . Geo-Blocking . . . 1193
36. SELinux und AppArmor . . . 1199
36. 1 . . . SELinux . . . 1199
36. 2 . . . AppArmor . . . 1207
37. Monitoring mit Prometheus und Grafana . . . 1215
37. 1 . . . Monitoring-Grundlagen . . . 1216
37. 2 . . . Setup-Überblick . . . 1219
37. 3 . . . Den Node Exporter auf dem zu überwachenden Server installieren . . . 1222
37. 4 . . . Docker-Setup für Traefik, Grafana und Prometheus . . . 1225
37. 5 . . . Prometheus-Weboberfläche . . . 1233
37. 6 . . . Grafana-Weboberfläche . . . 1236
37. 7 . . . Den Node Exporter absichern . . . 1238
37. 8 . . . Den Monitoring-Host überwachen . . . 1242
37. 9 . . . Automatische Benachrichtigungen (Alerts) . . . 1243
37. 10 . . . Monitoring für Webserver (Blackbox Exporter) . . . 1251
37. 11 . . . Monitoring für MariaDB/MySQL . . . 1255
TEIL VIII. Virtualisierung, Container und Co. . . . 1259
38. VirtualBox . . . 1261
38. 1 . . . VirtualBox installieren . . . 1262
38. 2 . . . VirtualBox-Maschinen einrichten . . . 1267
38. 3 . . . Arbeitstechniken und Konfigurationstipps . . . 1273
39. QEMU/KVM . . . 1279
39. 1 . . . Grundlagen . . . 1280
39. 2 . . . Der Virtual Machine Manager . . . 1289
39. 3 . . . libvirt-Kommandos . . . 1296
39. 4 . . . Integration in das lokale Netzwerk (Netzwerkbrücke) . . . 1302
39. 5 . . . Manipulation von Image-Dateien . . . 1306
40. Docker und Podman . . . 1313
40. 1 . . . Grundlagen und Nomenklatur . . . 1315
40. 2 . . . Installation . . . 1319
40. 3 . . . Docker oder Podman kennenlernen . . . 1325
40. 4 . . . Container-Administration . . . 1339
40. 5 . . . Eigene Images erzeugen (Dockerfile) . . . 1346
40. 6 . . . Container-Setups mit compose . . . 1354
40. 7 . . . Docker-Interna . . . 1357
40. 8 . . . Podman-Interna . . . 1361
41. Windows Subsystem for Linux (WSL) . . . 1365
41. 1 . . . WSL ausprobieren . . . 1366
41. 2 . . . WSL-Netzwerkanbindung . . . 1371
41. 3 . . . Das Kommando wsl und WSL-Konfiguration . . . 1373
42. KI-Sprachmodelle ausführen . . . 1377
42. 1 . . . Grundlagen von Sprachmodellen . . . 1377
42. 2 . . . GPT4All . . . 1379
42. 3 . . . Ollama . . . 1381
42. 4 . . . llama. cpp . . . 1392
Index . . . 1401