»Der Kofler« ist der Standard in Sachen Linux! Wollen Sie einsteigen oder Details nachschlagen, die Distributionen kennenlernen oder intensiv arbeiten? Mit diesem Buch bleiben keine Fragen offen! Von der Installation und den Desktops über die Arbeit im Terminal, die Systemkonfiguration und -administration bis hin zum sicheren Einsatz als Server - hier werden Sie fündig! Distributionsunabhängig und natürlich am Puls der Zeit.
Aus dem Inhalt:
- Was ist Linux? Schnelleinstieg
- Installation und Administration
- Gnome, KDE, Unity, Xfce und LXDE
- Web, Mail & Co.
- Fotos und Bilder, Audio und Video verwalten
- Terminalfenster und Konsolen
- Dateiverwaltung, Prozessverwaltung
- Vim, Emacs, Visual Code
- Basiskonfiguration
- Software- und Paketverwaltung
- GRUB und Init-Systeme
- Kernel und Module
- Netzwerkkonfiguration
- Samba und NFS
- CUPS
- Secure Shell (SSH)
- Let's Encrypt
- Mails mit Postfix und Dovecot
- Firewalls und VPN
- Sicherheit mit SELinux und AppArmor
- KVM und Docker
- Snap und flatpak
- Linux on Windows
- Vagrant, Packer
Inhaltsverzeichnis
Vorwort . . . 19
Konzeption . . . 21
TEIL I. Installation . . . 23
1. Was ist Linux? . . . 25
1. 1 . . . Einführung . . . 25
1. 2 . . . Hardware-Unterstützung . . . 26
1. 3 . . . Distributionen . . . 27
1. 4 . . . Open-Source-Lizenzen (GPL & Co.) . . . 32
1. 5 . . . Die Geschichte von Linux . . . 35
2. Installationsgrundlagen . . . 37
2. 1 . . . Voraussetzungen . . . 37
2. 2 . . . BIOS und EFI . . . 38
2. 3 . . . Installationsvarianten . . . 41
2. 4 . . . Überblick über den Installationsprozess . . . 44
2. 5 . . . Grundlagen der Partitionierung . . . 46
2. 6 . . . LVM und Verschlüsselung . . . 50
2. 7 . . . Linux-Partitionen anlegen . . . 53
2. 8 . . . Installationsumfang festlegen . . . 57
2. 9 . . . Grundkonfiguration . . . 57
2. 10 . . . Probleme beheben . . . 59
2. 11 . . . Systemveränderungen, Erweiterungen, Updates . . . 61
2. 12 . . . Linux wieder entfernen . . . 64
3. Installationsanleitungen . . . 67
3. 1 . . . Debian . . . 68
3. 2 . . . Fedora . . . 77
3. 3 . . . Linux Mint . . . 85
3. 4 . . . Manjaro Linux . . . 87
3. 5 . . . openSUSE . . . 91
3. 6 . . . Pop! _OS . . . 97
3. 7 . . . Ubuntu . . . 102
TEIL II. Linux anwenden . . . 111
4. Gnome . . . 113
4. 1 . . . Erste Schritte . . . 115
4. 2 . . . Dateimanager . . . 122
4. 3 . . . Systemkonfiguration . . . 133
4. 4 . . . Schriften (Fonts) . . . 143
4. 5 . . . Gnome Tweak Tool . . . 145
4. 6 . . . Gnome-Shell-Erweiterungen . . . 146
4. 7 . . . Gnome Shell Themes . . . 150
4. 8 . . . Gnome-Interna . . . 151
4. 9 . . . Der Gnome-Klassikmodus . . . 154
5. KDE . . . 157
5. 1 . . . Grundlagen . . . 158
5. 2 . . . Bedienung . . . 159
5. 3 . . . Dateimanager . . . 163
5. 4 . . . KDE-Konfiguration . . . 167
6. Desktop-Apps und Tools . . . 173
6. 1 . . . Firefox . . . 174
6. 2 . . . Google Chrome . . . 177
6. 3 . . . Thunderbird . . . 179
6. 4 . . . Evolution und Geary . . . 186
6. 5 . . . FileZilla und BitTorrent . . . 189
6. 6 . . . Syncthing . . . 191
6. 7 . . . GSConnect und KDE-Connect . . . 196
6. 8 . . . Shotwell . . . 199
6. 9 . . . digiKam . . . 203
6. 10 . . . GIMP . . . 205
6. 11 . . . RawTherapee, Darktable und Luminance (RAW- und HDR-Bilder) . . . 208
6. 12 . . . draw. io . . . 210
6. 13 . . . Multimedia-Grundlagen . . . 213
6. 14 . . . Audio-Player . . . 216
6. 15 . . . VLC . . . 221
6. 16 . . . Audio- und Video-Tools . . . 222
6. 17 . . . Etcher . . . 225
6. 18 . . . Texpander . . . 226
7. Raspberry Pi . . . 229
7. 1 . . . Grundlagen . . . 230
7. 2 . . . Raspberry Pi OS installieren und konfigurieren . . . 234
7. 3 . . . Hardware-Basteleien . . . 245
7. 4 . . . Interna und Backups . . . 263
7. 5 . . . Kodi und LibreELEC . . . 271
7. 6 . . . Wenn es Probleme gibt . . . 279
TEIL III. Linux-Grundlagen . . . 281
8. Arbeiten im Terminal . . . 283
8. 1 . . . Textkonsolen und Terminalfenster . . . 284
8. 2 . . . Textdateien anzeigen und editieren . . . 289
8. 3 . . . man und info . . . 293
9. bash (Shell) . . . 297
9. 1 . . . Was ist eine Shell? . . . 297
9. 2 . . . Konfiguration . . . 299
9. 3 . . . Kommandoeingabe . . . 302
9. 4 . . . Ein- und Ausgabeumleitung . . . 307
9. 5 . . . Kommandos ausführen . . . 310
9. 6 . . . Globbing, Substitution und Expansion . . . 312
9. 7 . . . Variablen . . . 318
9. 8 . . . bash-Scripts . . . 322
9. 9 . . . Grundregeln für bash-Scripts . . . 328
9. 10 . . . Variablen in bash-Scripts . . . 330
9. 11 . . . Verzweigungen, Schleifen und Funktionen . . . 335
9. 12 . . . Referenz wichtiger bash-Sonderzeichen . . . 342
10. zsh (Shell) . . . 345
10. 1 . . . Installation und Konfiguration . . . 346
10. 2 . . . Anwendung . . . 351
10. 3 . . . Oh my zsh! . . . 354
11. Dateien und Verzeichnisse . . . 357
11. 1 . . . Umgang mit Dateien und Verzeichnissen . . . 357
11. 2 . . . Links . . . 368
11. 3 . . . Dateitypen (MIME) . . . 370
11. 4 . . . Dateien suchen (find, grep, locate) . . . 372
11. 5 . . . Mehr Komfort mit modernen Kommandos . . . 377
11. 6 . . . Zugriffsrechte, Benutzer und Gruppenzugehörigkeit . . . 380
11. 7 . . . Spezialbits und die umask-Einstellung . . . 385
11. 8 . . . Access Control Lists und Extended Attributes . . . 391
11. 9 . . . Die Linux-Verzeichnisstruktur . . . 396
11. 10 . . . Device-Dateien . . . 399
12. Prozessverwaltung . . . 403
12. 1 . . . Prozesse starten, verwalten und stoppen . . . 403
12. 2 . . . Prozesse unter einer anderen Identität ausführen (su) . . . 411
12. 3 . . . Prozesse unter einer anderen Identität ausführen (sudo) . . . 413
12. 4 . . . Prozesse unter einer anderen Identität ausführen (PolicyKit) . . . 418
12. 5 . . . Systemprozesse (Dämonen) . . . 421
12. 6 . . . Prozesse automatisch starten (Cron) . . . 424
12. 7 . . . Prozesse automatisch starten (systemd-Timer) . . . 429
13. Konverter für Grafik, Text und Multimedia . . . 433
13. 1 . . . Grafik-Konverter . . . 433
13. 2 . . . Audio- und Video-Konverter . . . 435
13. 3 . . . Textkonverter (Zeichensatz und Zeilentrennung) . . . 437
13. 4 . . . Dokumentkonverter (PostScript, PDF, HTML, LaTeX) . . . 438
13. 5 . . . Markdown und Pandoc . . . 445
14. Netzwerk-Tools . . . 449
14. 1 . . . Netzwerkstatus ermitteln . . . 449
14. 2 . . . Auf anderen Rechnern arbeiten (SSH) . . . 454
14. 3 . . . Dateien übertragen (FTP & Co.) . . . 461
14. 4 . . . Lynx . . . 466
14. 5 . . . Mutt . . . 466
TEIL IV. Text- und Code-Editoren . . . 469
15. Visual Studio Code . . . 471
15. 1 . . . Installation und erste Schritte . . . 472
15. 2 . . . Konfiguration . . . 476
15. 3 . . . Git-Funktionen . . . 479
15. 4 . . . Remote-SSH-Erweiterung . . . 481
16. Vim . . . 485
16. 1 . . . Schnelleinstieg . . . 487
16. 2 . . . Cursorbewegung . . . 489
16. 3 . . . Text bearbeiten . . . 490
16. 4 . . . Suchen und Ersetzen . . . 494
16. 5 . . . Mehrere Dateien gleichzeitig bearbeiten . . . 495
16. 6 . . . Interna . . . 498
16. 7 . . . Tipps und Tricks . . . 500
17. Emacs . . . 503
17. 1 . . . Schnelleinstieg . . . 503
17. 2 . . . Cursorbewegung . . . 507
17. 3 . . . Text bearbeiten . . . 509
17. 4 . . . Suchen und Ersetzen . . . 514
17. 5 . . . Puffer und Fenster . . . 517
17. 6 . . . Besondere Bearbeitungsmodi . . . 519
17. 7 . . . Konfiguration . . . 520
TEIL V. Systemkonfiguration und Administration . . . 525
18. Basiskonfiguration . . . 527
18. 1 . . . Einführung . . . 527
18. 2 . . . Konfiguration der Textkonsolen . . . 531
18. 3 . . . Datum und Uhrzeit . . . 533
18. 4 . . . Datum und Uhrzeit via NTP synchronisieren . . . 535
18. 5 . . . Benutzer und Gruppen, Passwörter . . . 537
18. 6 . . . PAM, NSS und nscd . . . 549
18. 7 . . . Spracheinstellung, Internationalisierung, Unicode . . . 554
18. 8 . . . Hardware-Referenz . . . 559
18. 9 . . . CPU-Tuning . . . 571
18. 10 . . . Notebook-Optimierung . . . 574
18. 11 . . . Drucksystem (CUPS) . . . 580
18. 12 . . . Logging (Syslog) . . . 588
18. 13 . . . Logging (Journal) . . . 597
18. 14 . . . Cockpit . . . 600
19. Netzwerkkonfiguration . . . 605
19. 1 . . . Der NetworkManager . . . 605
19. 2 . . . Netzwerkgrundlagen und Glossar . . . 614
19. 3 . . . Manuelle LAN- und WLAN-Konfiguration . . . 623
19. 4 . . . LAN-Konfigurationsdateien . . . 632
19. 5 . . . Distributionsspezifische Konfigurationsdateien . . . 636
19. 6 . . . Zeroconf und Avahi . . . 648
20. Software- und Paketverwaltung . . . 651
20. 1 . . . Einführung . . . 651
20. 2 . . . RPM-Paketverwaltung . . . 655
20. 3 . . . DNF . . . 659
20. 4 . . . ZYpp . . . 667
20. 5 . . . Debian-Paketverwaltung (dpkg) . . . 669
20. 6 . . . APT . . . 672
20. 7 . . . Pacman . . . 681
20. 8 . . . PackageKit . . . 685
20. 9 . . . Firmware-, BIOS- und EFI-Updates . . . 686
20. 10 . . . Verwaltung von Parallelinstallationen (alternatives) . . . 690
20. 11 . . . Flatpak und Snap . . . 691
20. 12 . . . Distributionsspezifische Eigenheiten . . . 699
21. Grafiksystem . . . 711
21. 1 . . . Grundlagen . . . 711
21. 2 . . . Grafiktreiber . . . 717
21. 3 . . . NVIDIA-Treiberinstallation . . . 721
21. 4 . . . Den Status des Grafiksystems feststellen . . . 726
21. 5 . . . Start des Grafiksystems . . . 730
21. 6 . . . Konfiguration von X (xorg. conf) . . . 734
21. 7 . . . Dynamische Konfigurationsänderungen mit RandR . . . 737
22. Administration des Dateisystems . . . 741
22. 1 . . . Wie alles zusammenhängt . . . 743
22. 2 . . . USB-Datenträger formatieren und nutzen . . . 744
22. 3 . . . Device-Namen für Festplatten und andere Datenträger . . . 748
22. 4 . . . Partitionierung der Festplatte oder SSD . . . 753
22. 5 . . . Das parted-Kommando . . . 755
22. 6 . . . Partitionierungswerkzeuge mit grafischer Benutzeroberfläche . . . 760
22. 7 . . . Dateisystemtypen . . . 761
22. 8 . . . mount und /etc/fstab . . . 765
22. 9 . . . Dateisystemgrundlagen . . . 774
22. 10 . . . Das ext-Dateisystem (ext2, ext3, ext4) . . . 777
22. 11 . . . Das btrfs-Dateisystem . . . 780
22. 12 . . . Das xfs-Dateisystem . . . 796
22. 13 . . . Windows-Dateisysteme (vfat, ntfs) . . . 797
22. 14 . . . Swap-Partitionen und -Dateien . . . 801
22. 15 . . . RAID . . . 804
22. 16 . . . Logical Volume Manager (LVM) . . . 815
22. 17 . . . SMART . . . 819
22. 18 . . . SSD-TRIM . . . 824
22. 19 . . . Verschlüsselung . . . 826
23. GRUB . . . 835
23. 1 . . . GRUB-Grundlagen . . . 835
23. 2 . . . GRUB-Bedienung (Anwendersicht) . . . 844
23. 3 . . . GRUB-Konfiguration . . . 845
23. 4 . . . Manuelle GRUB-Installation und Erste Hilfe . . . 852
23. 5 . . . systemd-boot . . . 856
24. Das Init-System . . . 861
24. 1 . . . systemd . . . 861
24. 2 . . . Eigene systemd-Services . . . 871
24. 3 . . . shutdown, reboot und halt . . . 874
24. 4 . . . Das traditionelle Init-V-System . . . 876
24. 5 . . . Systemstart bei Fedora und RHEL . . . 878
24. 6 . . . Systemstart bei Debian, Raspberry Pi OS und Ubuntu . . . 879
24. 7 . . . Systemstart bei SUSE/openSUSE . . . 881
25. Kernel und Module . . . 883
25. 1 . . . Kernelmodule . . . 884
25. 2 . . . Device Trees . . . 890
25. 3 . . . Kernelmodule selbst kompilieren . . . 892
25. 4 . . . Kernel selbst konfigurieren und kompilieren . . . 896
25. 5 . . . Kernelneustart mit kexec . . . 906
25. 6 . . . Kernel-Live-Patches . . . 907
25. 7 . . . Die Verzeichnisse /proc und /sys . . . 910
25. 8 . . . Kernel-Boot-Optionen . . . 912
25. 9 . . . Kernelparameter verändern . . . 916
25. 10 . . . Spectre, Meltdown & Co. . . . 916
TEIL VI. Server-Konfiguration . . . 921
26. Server-Installation . . . 923
26. 1 . . . Grundlagen . . . 924
26. 2 . . . Red Hat Enterprise Linux . . . 931
26. 3 . . . Ubuntu Server . . . 942
26. 4 . . . Debian-Server-Installation . . . 945
26. 5 . . . Elastic Compute Cloud . . . 947
26. 6 . . . Hetzner Cloud Hosting . . . 961
27. Secure Shell (SSH) . . . 967
27. 1 . . . Installation . . . 967
27. 2 . . . Konfiguration und Absicherung . . . 968
27. 3 . . . Fail2Ban . . . 970
27. 4 . . . Authentifizierung mit Schlüsseln . . . 972
27. 5 . . . Zwei-Faktor-Authentifizierung . . . 976
27. 6 . . . Zusatzwerkzeuge . . . 983
28. Apache . . . 987
28. 1 . . . Apache . . . 987
28. 2 . . . Verschlüsselte Verbindungen (HTTPS) . . . 994
28. 3 . . . Let' s Encrypt . . . 1002
28. 4 . . . Webverzeichnisse einrichten und absichern . . . 1009
28. 5 . . . Virtuelle Hosts . . . 1016
28. 6 . . . Webzugriffsstatistiken . . . 1019
28. 7 . . . PHP . . . 1023
28. 8 . . . NGINX . . . 1027
29. MySQL und MariaDB . . . 1031
29. 1 . . . Installation und Inbetriebnahme . . . 1032
29. 2 . . . Administrationswerkzeuge . . . 1041
29. 3 . . . Backups . . . 1046
29. 4 . . . WordPress installieren . . . 1049
30. Postfix und Dovecot . . . 1053
30. 1 . . . Einführung und Grundlagen . . . 1053
30. 2 . . . Postfix (MTA) . . . 1064
30. 3 . . . Postfix-Verschlüsselung (TLS/STARTTLS) . . . 1073
30. 4 . . . Postfix-Konten . . . 1079
30. 5 . . . Dovecot (POP- und IMAP-Server) . . . 1090
30. 6 . . . Client-Konfiguration . . . 1097
30. 7 . . . SpamAssassin . . . 1099
30. 8 . . . ClamAV (Virenabwehr) . . . 1105
30. 9 . . . SPF, DKIM und DMARC . . . 1107
30. 10 . . . Konfigurationstest und Fehlersuche . . . 1118
31. Nextcloud . . . 1121
31. 1 . . . Installation . . . 1122
31. 2 . . . Wartung . . . 1131
31. 3 . . . Betrieb . . . 1134
31. 4 . . . Kontakte und Termine . . . 1136
31. 5 . . . OnlyOffice und Talk . . . 1138
32. Samba . . . 1143
32. 1 . . . Grundlagen und Glossar . . . 1144
32. 2 . . . Basiskonfiguration und Inbetriebnahme . . . 1149
32. 3 . . . Passwortverwaltung . . . 1157
32. 4 . . . Netzwerkverzeichnisse . . . 1163
32. 5 . . . Beispiel -- Home- und Medien-Server . . . 1170
32. 6 . . . Beispiel -- Firmen-Server . . . 1173
32. 7 . . . SMB-Client-Zugriff . . . 1176
TEIL VII. Sicherheit . . . 1185
33. Backups . . . 1187
33. 1 . . . Déjà Dup . . . 1188
33. 2 . . . Back In Time . . . 1190
33. 3 . . . Grsync . . . 1194
33. 4 . . . Borg Backup . . . 1195
33. 5 . . . Dateien komprimieren und archivieren . . . 1199
33. 6 . . . Verzeichnisse synchronisieren (rsync) . . . 1203
33. 7 . . . Inkrementelle Backups (rdiff-backup) . . . 1205
33. 8 . . . Inkrementelle Backups (rsnapshot) . . . 1208
33. 9 . . . Backup-Scripts . . . 1210
33. 10 . . . Backups auf S3-Speicher . . . 1213
34. Firewalls . . . 1219
34. 1 . . . Netzwerkgrundlagen und -analyse . . . 1219
34. 2 . . . Basisabsicherung von Netzwerkdiensten . . . 1225
34. 3 . . . Firewall-Grundlagen . . . 1229
34. 4 . . . Firewall-Konfigurationshilfen . . . 1230
34. 5 . . . Firewall mit nft selbst gebaut . . . 1237
35. SELinux und AppArmor . . . 1249
35. 1 . . . SELinux . . . 1249
35. 2 . . . AppArmor . . . 1257
TEIL VIII. Virtualisierung & Co. . . . 1265
36. VirtualBox . . . 1267
36. 1 . . . VirtualBox installieren . . . 1268
36. 2 . . . VirtualBox-Maschinen einrichten . . . 1272
36. 3 . . . Arbeitstechniken und Konfigurationstipps . . . 1276
37. QEMU/KVM . . . 1285
37. 1 . . . Grundlagen . . . 1286
37. 2 . . . Der Virtual Machine Manager . . . 1294
37. 3 . . . libvirt-Kommandos . . . 1300
37. 4 . . . Integration der virtuellen Maschinen in das LAN (Netzwerkbrücke) . . . 1306
37. 5 . . . Direkter Zugriff auf den Inhalt einer Image-Datei . . . 1311
38. Docker und Podman . . . 1317
38. 1 . . . Grundlagen und Nomenklatur . . . 1319
38. 2 . . . Installation . . . 1322
38. 3 . . . Docker oder Podman kennenlernen . . . 1328
38. 4 . . . Container-Administration . . . 1340
38. 5 . . . Eigene Images erzeugen (Dockerfile) . . . 1348
38. 6 . . . Container-Setups mit compose . . . 1355
38. 7 . . . Docker-Interna . . . 1358
38. 8 . . . Podman-Interna . . . 1362
39. Windows Subsystem for Linux (WSL) . . . 1367
39. 1 . . . WSL ausprobieren . . . 1368
39. 2 . . . WSL-Netzwerkanbindung . . . 1375
39. 3 . . . Das Kommando wsl und WSL-Konfiguration . . . 1377
Index . . . 1381