Linux - Das umfassende Handbuch, inkl. BSD
von: Johannes Plötner, Steffen Wendzel
Galileo Press, 2006
ISBN: 9783898426770
Sprache: Deutsch
1008 Seiten, Download: 8606 KB
Format: PDF, auch als Online-Lesen
Auf einen Blick | 3 | ||
Inhalt | 5 | ||
Vorwort | 25 | ||
Über dieses Buch | 27 | ||
Über die Autoren | 33 | ||
Linux vs. BSD | 35 | ||
Entstehungsgeschichte | 35 | ||
Unix | 35 | ||
BSD-Geschichte | 37 | ||
Linux-Geschichte | 39 | ||
Unterschiede und Gemeinsamkeiten | 39 | ||
Freie Software | 39 | ||
Port, Port(s), Packages | 41 | ||
Die Maskottchen | 42 | ||
Die BSD-Maskottchen | 43 | ||
Eine Frage der Religion | 44 | ||
Informationsquellen | 44 | ||
TLDP | 45 | ||
Das USENET | 45 | ||
Foren | 45 | ||
Teil 1 Einführung | 47 | ||
1 Der Kernel | 49 | ||
1.1 Grundlagen | 52 | ||
1.1.1 Der Prozessor | 52 | ||
1.1.2 Der Speicher | 53 | ||
1.1.3 Fairness und Schutz | 57 | ||
1.1.4 Die Programmierung | 59 | ||
1.1.5 Die Benutzung | 66 | ||
1.2 Aufgaben eines Betriebssystems | 67 | ||
1.2.1 Abstraktion | 67 | ||
1.2.2 Virtualisierung | 68 | ||
1.2.3 Ressourcenverwaltung | 71 | ||
1.3 Prozesse, Tasks und Threads | 71 | ||
1.3.1 Definitionen | 72 | ||
1.3.2 Lebenszyklen eines Prozesses | 77 | ||
1.3.3 Die Implementierung | 85 | ||
1.4 Das Speichermanagement | 89 | ||
1.4.1 Das Paging | 89 | ||
1.4.2 Die Hardware | 91 | ||
1.4.3 Die Organisation des Adressraums | 93 | ||
1.5 Eingabe und Ausgabe | 104 | ||
1.5.1 Hardware und Treiber | 104 | ||
1.5.2 Interaktion mit Geräten | 108 | ||
1.5.3 Ein-/Ausgabe für Benutzerprogramme | 113 | ||
1.5.4 Das Dateisystem | 114 | ||
Zusammenfassung | 116 | ||
Aufgaben | 116 | ||
2 Die Grundlagen aus Anwendersicht | 117 | ||
2.1 Die Unix-Philosophie | 119 | ||
2.1.1 Kleine, spezialisierte Programme | 120 | ||
2.1.2 Wenn du nichts zu sagen hast: Halt die Klappe | 121 | ||
2.1.3 Die Shell | 122 | ||
2.1.4 Die Administration | 122 | ||
2.1.5 Netzwerktransparenz | 124 | ||
2.2 Der erste Kontakt mit dem System | 126 | ||
2.2.1 Booten | 126 | ||
2.2.2 Das Login | 128 | ||
2.2.3 Das Arbeiten am System | 128 | ||
2.2.4 Das Herunterfahren | 135 | ||
2.3 Bewegen in der Shell | 136 | ||
2.3.1 Der Prompt | 136 | ||
2.3.2 Absolute und relative Pfade | 137 | ||
2.3.3 pwd | 137 | ||
2.3.4 cd | 138 | ||
2.4 Arbeiten mit Dateien | 139 | ||
2.4.1 ls | 139 | ||
2.4.2 more und less | 140 | ||
2.4.3 Und Dateitypen? | 141 | ||
2.5 Der Systemstatus | 142 | ||
2.5.1 uname | 142 | ||
2.5.2 uptime | 143 | ||
2.5.3 date | 143 | ||
2.6 Kernel, Treiber & Co. | 144 | ||
2.6.1 modprobe | 144 | ||
2.6.2 lsmod | 144 | ||
2.6.3 insmod und rmmod | 145 | ||
2.7 Hilfe | 145 | ||
2.7.1 Die Manpages | 146 | ||
2.7.2 GNU info | 148 | ||
2.7.3 Die Programmdokumentation | 148 | ||
Zusammenfassung | 149 | ||
Aufgaben | 149 | ||
Teil 2 Die Shell | 151 | ||
3 Die Shell | 153 | ||
3.1 Was ist eine Shell? | 155 | ||
3.1.1 Eine Shell verlassen | 156 | ||
3.1.2 nologin | 157 | ||
3.2 Welche Shells gibt es? | 157 | ||
3.3 Welche Shell für dieses Buch? | 159 | ||
3.4 Die Shell anwenden | 160 | ||
3.4.1 Vor- und Nachteile der Shellskripts | 161 | ||
3.5 Grundlagen der Shell-Nutzung | 162 | ||
3.5.1 Programme starten | 162 | ||
3.5.2 Kommandos aneinander reihen | 162 | ||
3.5.3 Mehrzeilige Kommandos | 164 | ||
3.5.4 Alias, shell-intern oder extern? | 164 | ||
3.5.5 Shell-Aliase | 166 | ||
3.5.6 Verzeichniswechsel | 167 | ||
3.5.7 echo | 169 | ||
3.5.8 Shell- Variablen | 170 | ||
3.5.9 Kommandosubstitution | 177 | ||
3.6 Ein- und Ausgabeumlenkung | 179 | ||
3.6.1 Die Ausgabeumlenkung | 180 | ||
3.6.2 Die Fehlerumlenkung | 180 | ||
3.6.3 Die Ausgabe an eine Umlenkung anhängen | 181 | ||
3.6.4 Eine Ausgabe in eine bestehende Datei umlenken | 182 | ||
3.6.5 Die Eingabeumlenkung | 182 | ||
3.7 Pipes | 183 | ||
3.7.1 Duplizierung der Ausgabe mit tee | 185 | ||
3.7.2 Named Pipes (FIFOs) | 185 | ||
3.8 Subshells und Kommandogruppen | 186 | ||
3.9 Effektives Arbeiten mit der Bash | 188 | ||
3.9.1 Die Kommando-History | 188 | ||
3.9.2 Automatische Vervollständigung von Dateinamen | 191 | ||
3.10 xargs | 193 | ||
Zusammenfassung | 193 | ||
Aufgaben | 194 | ||
4 Reguläre Ausdrücke | 195 | ||
4.1 Aufbau von regulären Ausdrücken | 199 | ||
4.2 Der Stream-Editor sed | 201 | ||
4.2.1 Was bringt mir sed? | 202 | ||
4.2.2 Erste Schritte mit sed | 202 | ||
4.2.3 sed-Befehle | 203 | ||
4.2.4 Nach Zeilen filtern | 207 | ||
4.2.5 Wiederholungen in regulären Ausdrücken | 208 | ||
4.3 grep | 209 | ||
4.3.1 grep -E und egrep | 210 | ||
4.3.2 Geschwindigkeitsvergleich | 211 | ||
4.4 awk | 212 | ||
4.4.1 Nutzen und Interpreter | 212 | ||
4.4.2 Der Aufruf von awk | 213 | ||
4.4.3 Erste Gehversuche | 213 | ||
4.4.4 Der Anweisungsblock | 216 | ||
4.4.5 Variablen | 219 | ||
4.4.6 Arrays | 228 | ||
4.4.7 Bedingte Anweisungen | 230 | ||
4.4.8 Schleifen | 234 | ||
4.4.9 Funktionen in awk | 239 | ||
4.4.10 Ein paar Worte zum Schluss | 242 | ||
Zusammenfassung | 243 | ||
Aufgaben | 243 | ||
5 Tools zur Dateibearbeitung | 245 | ||
5.1 head, tail und nl – den Dateiinhalt zeigen | 247 | ||
5.2 cut, paste, tac und tr – den Dateiinhalt ändern | 248 | ||
5.3 sort und uniq – sortiert und einzigartig | 250 | ||
5.4 wc – Dateiinhalt zählen | 251 | ||
5.5 Dateien finden mit find | 251 | ||
5.5.1 Festlegung eines Auswahlkriteriums | 252 | ||
5.5.2 Festlegung einer Aktion | 254 | ||
5.6 split – Dateien zusammenfügen | 255 | ||
5.7 Spezielle Tools | 256 | ||
5.7.1 bc – der Rechner für die Konsole | 256 | ||
5.7.2 od und hexdump – Dateidumping | 259 | ||
5.7.3 script – Terminal-Sessions aufzeichnen | 259 | ||
Zusammenfassung | 260 | ||
Aufgaben | 260 | ||
6 Die Editoren | 261 | ||
6.1 Anforderungen an Editoren | 264 | ||
6.1.1 Zeilenorientiert versus bildschirmorientiert | 265 | ||
6.2 vi | 266 | ||
6.2.1 Den vi starten | 266 | ||
6.2.2 Kommando- und Eingabemodus | 267 | ||
6.2.3 Dateien speichern | 267 | ||
6.2.4 Arbeiten mit dem Eingabemodus | 267 | ||
6.2.5 Navigation | 268 | ||
6.2.6 Löschen von Textstellen | 269 | ||
6.2.7 Textbereiche ersetzen | 269 | ||
6.2.8 Kopieren von Textbereichen | 270 | ||
6.2.9 Shiften | 271 | ||
6.2.10 Die Suchfunktion | 271 | ||
6.2.11 Kon.guration | 271 | ||
6.3 vim | 272 | ||
6.3.1 gvim | 273 | ||
6.4 Emacs | 273 | ||
6.4.1 Konzepte | 274 | ||
6.4.2 Grundlegende Kommandos | 276 | ||
6.4.3 Arbeiten mit Puffern und Fenstern | 277 | ||
6.4.4 Arbeiten mit Mark und Region | 277 | ||
6.4.5 Das Menü nutzen | 278 | ||
6.4.6 Den Emacs kon.gurieren | 278 | ||
6.5 Editoren in der Shell | 278 | ||
6.5.1 Mausunterstützung | 279 | ||
Zusammenfassung | 279 | ||
Aufgaben | 279 | ||
7 Shellskriptprogrammierung | 281 | ||
7.1 Das erste Shellskript | 284 | ||
7.2 Kommentare | 285 | ||
7.3 Rechnen in der Shell | 285 | ||
7.3.1 Integer- Variablen | 285 | ||
7.3.2 expr | 287 | ||
7.3.3 Den bc nutzen | 287 | ||
7.4 Arrays | 288 | ||
7.5 Bedingte Anweisungen | 289 | ||
7.5.1 if | 289 | ||
7.5.2 case | 293 | ||
7.6 Schleifen | 294 | ||
7.6.1 while | 295 | ||
7.6.2 until | 296 | ||
7.6.3 for | 297 | ||
7.7 Menüs mit select | 299 | ||
7.8 break | 300 | ||
7.9 Funktionen | 301 | ||
7.9.1 Eine simple Funktion | 302 | ||
7.9.2 Funktionsparameter | 303 | ||
7.9.3 Rückgabewerte | 304 | ||
Zusammenfassung | 305 | ||
Aufgaben | 306 | ||
Teil 3 System- & Netzwerkadministration | 309 | ||
8 Benutzerverwaltung | 311 | ||
8.1 Benutzer in Unix | 313 | ||
8.1.1 UID und GID | 313 | ||
8.1.2 Die /etc/passwd | 315 | ||
8.1.3 Die Shadowsuite | 317 | ||
8.2 Benutzer anlegen, ändern und löschen | 318 | ||
8.2.1 Benutzer anlegen | 318 | ||
8.2.2 Benutzer ändern | 324 | ||
8.2.3 Benutzer löschen | 326 | ||
8.3 Benutzer und Gruppen | 328 | ||
8.3.1 Gruppen anlegen | 330 | ||
8.3.2 Benutzer zu Gruppen hinzufügen | 330 | ||
8.3.3 Gruppenpasswörter und die /etc/gshadow | 331 | ||
8.3.4 Gruppenadministratoren | 333 | ||
8.3.5 Gruppen löschen | 335 | ||
8.4 Als anderer Benutzer arbeiten | 335 | ||
8.4.1 Der Systemadministrator als User | 335 | ||
8.4.2 su | 336 | ||
8.4.3 sudo | 336 | ||
8.4.4 SetUID/SetGID | 338 | ||
8.5 NIS/NIS+ | 338 | ||
8.5.1 Die Funktion | 338 | ||
8.5.2 Konfiguration der NIS-Clients | 340 | ||
8.5.3 Konfiguration des NIS-Servers | 341 | ||
8.5.4 Testen der Konfiguration | 341 | ||
8.5.5 Sicherheit | 341 | ||
8.6 LDAP | 342 | ||
8.6.1 So funktioniert’s | 343 | ||
8.6.2 Einen LDAP-Server kon.gurieren | 344 | ||
8.6.3 Einträge hinzufügen, verändern und löschen | 346 | ||
8.6.4 Die Benutzerverwaltung mit LDAP | 349 | ||
Zusammenfassung | 352 | ||
Aufgaben | 352 | ||
9 GrundlegendeVerwaltungsaufgaben | 353 | ||
9.1 Rechteverwaltung | 355 | ||
9.1.1 chmod | 355 | ||
9.1.2 chown | 358 | ||
9.1.3 Erweiterte Rechte | 360 | ||
9.1.4 umask | 362 | ||
9.1.5 Access Control Lists | 363 | ||
9.2 Softwareinstallation | 366 | ||
9.2.1 Paketverwaltung und Ports | 366 | ||
9.2.2 APT – Advanced Packaging Tool | 367 | ||
9.2.3 Pakete in Handarbeit: dpkg und rpm | 377 | ||
9.2.4 Softwareinstallation ohne Pakete | 382 | ||
9.2.5 Ports | 385 | ||
9.3 Tätigkeiten automatisieren | 390 | ||
9.3.1 Skripts & Co. | 390 | ||
9.3.2 Cronjobs | 391 | ||
9.3.3 Punktgenau mit at | 395 | ||
9.4 Logging | 398 | ||
9.4.1 Die Logdateien | 398 | ||
9.4.2 Der syslogd | 401 | ||
9.4.3 logrotate | 408 | ||
9.4.4 logcheck | 409 | ||
9.5 Dateisystemverwaltung | 411 | ||
9.5.1 Die /etc/fstab | 411 | ||
9.5.2 Das mount- Tool | 415 | ||
9.5.3 Platz beschränken: Quotas | 416 | ||
9.5.4 du und df | 419 | ||
9.5.5 SoftRAID und LVM | 421 | ||
9.5.6 Backups, Archive & Co. | 425 | ||
9.6 Kernel kompilieren | 430 | ||
9.6.1 Die Kernelquellen besorgen | 431 | ||
9.6.2 Die Kon.guration | 432 | ||
9.6.3 Den Kernel übersetzen | 433 | ||
9.6.4 Den Bootloader anpassen | 433 | ||
9.6.5 BSD-Kernel kompilieren | 434 | ||
9.7 Lokalisierung | 438 | ||
9.7.1 Die Tastaturbelegung | 438 | ||
9.7.2 Die deutsche Sprache | 441 | ||
9.7.3 Das Einstellen der Uhr | 442 | ||
9.7.4 Texte von anderen Plattformen | 443 | ||
Zusammenfassung | 444 | ||
Aufgaben | 444 | ||
10 Netzwerk-Grundlagen | 447 | ||
10.1 Grundlegendes zu TCP/IP | 449 | ||
10.1.1 Network-Access-Layer | 451 | ||
10.1.2 Internet-Layer | 451 | ||
10.1.3 Transport-Layer | 452 | ||
10.1.4 Application-Layer | 452 | ||
10.2 Grundlegendes Netzwerk-Setup | 453 | ||
10.2.1 Hostname setzen | 453 | ||
10.2.2 Netzwerkadressen für alle | 454 | ||
10.2.3 Wireless | 459 | ||
10.2.4 DHCP | 460 | ||
10.2.5 /etc/hosts | 461 | ||
10.2.6 /etc/networks | 463 | ||
10.2.7 /etc/resolv.conf | 463 | ||
10.2.8 Nun gibt es aber ein Problem ... | 465 | ||
10.2.9 Windows und Namensau.ösung | 466 | ||
10.3 Grundlagen des Routings | 466 | ||
10.3.1 Routing-Administration: route | 470 | ||
10.3.2 Router aufsetzen | 472 | ||
10.4 Netzwerkverbindungen | 473 | ||
10.4.1 Datenaufkommen von Schnittstellen | 473 | ||
10.4.2 Protokollstatistiken | 475 | ||
10.4.3 Aktive TCP- Verbindungen | 478 | ||
10.4.4 Listen-Ports | 478 | ||
10.4.5 ARP-Cache | 480 | ||
10.4.6 tcpdump | 481 | ||
10.5 Mit Linux ins Internet | 484 | ||
10.5.1 Das Point-to-Point Protocol | 485 | ||
10.5.2 Einwahl mit einem Modem | 487 | ||
10.5.3 Einwahl über DSL | 493 | ||
Zusammenfassung | 494 | ||
Aufgaben | 495 | ||
11 Anwendersoftware fürs Netzwerk | 497 | ||
11.1 Telnet | 499 | ||
11.1.1 Die erste Verbindung | 500 | ||
11.1.2 HTTP, SMTP, POP3 | 500 | ||
11.2 Die R- Tools | 502 | ||
11.3 FTP | 503 | ||
11.3.1 Gra.sche FTP-Clients | 505 | ||
11.4 Browser | 505 | ||
11.5 Mailprogramme | 507 | ||
11.5.1 mail | 507 | ||
11.5.2 Mails löschen und weitere Aktionen | 509 | ||
11.5.3 elm, pine, mutt und Co. | 510 | ||
11.5.4 fetchmail | 511 | ||
11.5.5 procmail | 513 | ||
11.6 IRC-Clients | 514 | ||
11.7 Das Usenet | 515 | ||
11.7.1 Das Protokoll | 517 | ||
11.7.2 Clients | 518 | ||
11.8 RSS | 520 | ||
11.8.1 Snownews | 521 | ||
Zusammenfassung | 522 | ||
Aufgaben | 523 | ||
12 Netzwerk-Dienste | 525 | ||
12.1 inetd und xinetd | 527 | ||
12.1.1 inetd | 528 | ||
12.1.2 tcpd | 530 | ||
12.1.3 xinetd | 531 | ||
12.2 Standard-Dienste | 533 | ||
12.2.1 echo | 533 | ||
12.2.2 discard | 533 | ||
12.2.3 systat und netstat | 533 | ||
12.2.4 daytime und time | 534 | ||
12.2.5 QotD | 534 | ||
12.2.6 chargen | 534 | ||
12.2.7 finger | 534 | ||
12.2.8 Telnet und R-Dienste | 535 | ||
12.3 DHCP | 535 | ||
12.3.1 dhcpd | 536 | ||
12.3.2 Client-Konfiguration | 538 | ||
12.4 NNTP-Server | 539 | ||
12.4.1 Konfiguration | 540 | ||
12.4.2 Server starten | 541 | ||
12.5 Mailservices mit Sendmail | 541 | ||
12.5.1 So funktioniert E-Mail | 541 | ||
12.5.2 Sendmail nutzen | 542 | ||
12.5.3 Mails via SMTP senden | 543 | ||
12.6 Network File System | 544 | ||
12.6.1 Einen NFS-Server aufsetzen | 545 | ||
12.6.2 Den Client konfigurieren | 547 | ||
12.7 Der FTP-Dienst | 548 | ||
12.7.1 Konfigurationsdateien | 548 | ||
12.8 Samba | 552 | ||
12.8.1 Windows-Freigaben mounten | 552 | ||
12.8.2 Dateien freigeben | 553 | ||
12.8.3 Die smb.conf | 553 | ||
12.8.4 Samba, LDAP & Co. | 557 | ||
Zusammenfassung | 557 | ||
Aufgaben | 558 | ||
13 LAMP & Co. | 559 | ||
13.1 Apache | 562 | ||
13.1.1 Den Apache verwalten | 565 | ||
13.2 MySQL | 567 | ||
13.2.1 Administration | 567 | ||
13.2.2 SQL | 568 | ||
13.2.3 APIs | 571 | ||
13.3 PHP | 572 | ||
13.3.1 (X)HTML | 572 | ||
13.3.2 PHP-Support im Apache aktivieren | 574 | ||
13.3.3 PHP lernen | 575 | ||
13.3.4 PHP und MySQL | 577 | ||
Zusammenfassung | 578 | ||
Aufgaben | 578 | ||
14 DNS- Server | 579 | ||
14.1 Man sollte wissen ... | 581 | ||
14.2 Die Serversoftware wählen | 581 | ||
14.2.1 Bind oder Xyria:DNSd | 582 | ||
14.3 Bind aufsetzen | 582 | ||
14.4 Xyria:DNSd aufsetzen | 586 | ||
14.4.1 Basiskonfiguration | 586 | ||
14.4.2 Resource Records anlegen | 588 | ||
14.5 DNS- Tools | 590 | ||
14.5.1 host | 591 | ||
14.5.2 nslookup | 593 | ||
14.5.3 dig | 595 | ||
14.5.4 whois | 595 | ||
Zusammenfassung | 597 | ||
Aufgaben | 597 | ||
15 Secure Shell | 599 | ||
15.1 Das Protokoll | 602 | ||
15.1.1 SSH-Protokoll 1 | 602 | ||
15.1.2 SSH-Protokoll 2 | 602 | ||
15.2 Konfiguration eines OpenSSH-Servers | 603 | ||
15.2.1 Die /etc/ssh/sshd_config | 603 | ||
15.3 SSH nutzen | 607 | ||
15.3.1 Remote Login | 607 | ||
15.3.2 Secure Copy | 607 | ||
15.3.3 Authenti.zierung über Public-Key- Verfahren | 608 | ||
15.3.4 Secure File Transfer | 612 | ||
15.3.5 X11 Forwarding | 612 | ||
15.3.6 SSH-Port-Forwarding | 613 | ||
Zusammenfassung | 614 | ||
Aufgaben | 614 | ||
Teil 4 Die grafische Oberfläche | 617 | ||
16 Die grafische Oberfläche | 619 | ||
16.1 Geschichtliches | 621 | ||
16.2 Und so funktioniert’s | 623 | ||
16.2.1 Client, Server, Protokoll | 623 | ||
16.2.2 Toolkit und XLib | 624 | ||
16.2.3 Wohin soll die Reise geh’n? | 624 | ||
16.2.4 Zugriffskontrolle | 625 | ||
16.2.5 xhost | 625 | ||
16.2.6 Benutzer und xauth | 625 | ||
16.2.7 Terminals | 626 | ||
16.3 Konfiguration | 628 | ||
16.3.1 xorgcon.g | 628 | ||
16.4 /etc/X11/xorg.conf | 633 | ||
16.4.1 Section »Module« | 633 | ||
16.4.2 Section »Files« | 634 | ||
16.4.3 Section »ServerFlags« | 635 | ||
16.4.4 Section »InputDevice« | 635 | ||
16.4.5 Section »Monitor« | 637 | ||
16.4.6 Section »Device« | 637 | ||
16.4.7 Section »Screen« | 638 | ||
16.4.8 Section »ServerLayout« | 639 | ||
16.4.9 Optionale Sections | 639 | ||
16.5 Window-Manager und Desktops | 640 | ||
16.5.1 Aufgaben | 640 | ||
16.5.2 Konzepte | 641 | ||
16.5.3 Was steht zur Auswahl? | 642 | ||
16.6 Grafischer Login | 642 | ||
16.7 Tuning | 643 | ||
16.7.1 Xinerama und DualHead | 643 | ||
16.7.2 X11 in einem Fenster | 645 | ||
16.7.3 Mehrere X-Sessions | 646 | ||
Zusammenfassung | 646 | ||
Aufgaben | 646 | ||
17 Window-Manager und Desktops | 647 | ||
17.1 Das KDE-Projekt | 649 | ||
17.1.1 KDE starten und beenden | 650 | ||
17.1.2 Das K-Panel | 651 | ||
17.1.3 Softwarekomponenten | 653 | ||
17.2 GNOME | 655 | ||
17.2.1 Softwarekomponenten | 656 | ||
17.3 WindowMaker | 657 | ||
17.3.1 Dock-Apps und Programmstart | 657 | ||
17.4 Weitere Window-Manager und Desktops | 658 | ||
Zusammenfassung | 660 | ||
Aufgaben | 660 | ||
18 X11 Programme | 661 | ||
18.1 Office-Umgebungen | 663 | ||
18.1.1 OpenOffice.org | 663 | ||
18.1.2 KOffice | 666 | ||
18.2 LaTeX | 668 | ||
18.2.1 Ein erstes Dokument | 669 | ||
18.2.2 Dokumente übersetzen | 671 | ||
18.2.3 Das erste richtige Dokument | 672 | ||
18.2.4 Weitere Funktionalitäten | 674 | ||
18.2.5 Warum LaTeX? | 677 | ||
18.3 Editoren | 677 | ||
18.3.1 Nedit und gedit | 678 | ||
18.3.2 kate | 678 | ||
18.4 Weitere populäre Tools | 679 | ||
18.4.1 The GIMP | 679 | ||
18.4.2 xchat | 681 | ||
18.4.3 CDs/DVDs brennen mit k3b | 683 | ||
Zusammenfassung | 683 | ||
Aufgaben | 684 | ||
19 Multimedia und Spiele | 685 | ||
19.1 Grundlagen zu »Multimedia« | 687 | ||
19.1.1 Integration ins System | 687 | ||
19.1.2 Die richtige Hardware kaufen | 688 | ||
19.2 Audio | 689 | ||
19.2.1 Bis Kernel 2.6 – OSS | 689 | ||
19.2.2 Ab Kernel 2.6 – ALSA | 691 | ||
19.3 Audiowiedergabe | 692 | ||
19.3.1 Ausgabemöglichkeiten | 692 | ||
19.3.2 MP3-Player und Co. | 693 | ||
19.3.3 Text-to-Speech | 695 | ||
19.4 Video | 695 | ||
19.4.1 DVDs, DivX und Co. | 695 | ||
19.4.2 MPlayer | 697 | ||
19.4.3 XINE | 699 | ||
19.5 Installation einer TV-Karte | 699 | ||
19.6 Webcams und Webcam-Software | 700 | ||
19.6.1 Beispiel: USB-IBM-Cam einrichten | 700 | ||
19.6.2 Webcam-Software | 701 | ||
19.7 Drucken mit CUPS | 703 | ||
19.7.1 Das BSD-Printing-System | 703 | ||
19.7.2 Installation | 704 | ||
19.7.3 Konfiguration | 704 | ||
19.8 Spiele | 706 | ||
19.8.1 Professionell spielen unter Linux | 706 | ||
19.8.2 Klassische Unix/Linux-Spiele | 707 | ||
19.8.3 Freie Spiele | 710 | ||
Zusammenfassung | 712 | ||
Aufgaben | 712 | ||
Teil 5 Programmierung und Sicherheit | 715 | ||
20 Softwareentwicklung | 717 | ||
20.1 Interpreter und Compiler | 719 | ||
20.1.1 C und C++ | 719 | ||
20.1.2 Perl | 722 | ||
20.1.3 Java | 723 | ||
20.1.4 Tcl | 724 | ||
20.1.5 Was es sonst noch gibt | 726 | ||
20.2 Shared Libraries | 726 | ||
20.2.1 Vorteile der Shared Libraries | 727 | ||
20.2.2 Statisches Linken | 727 | ||
20.2.3 Die Dateien | 727 | ||
20.3 Debugging | 728 | ||
20.3.1 Vorbereitung | 728 | ||
20.3.2 Konsolenarbeit | 729 | ||
20.3.3 ddd | 733 | ||
20.4 Pro.ling | 734 | ||
20.4.1 Compileroption | 735 | ||
20.4.2 gprof verwenden | 735 | ||
20.4.3 Profiling-Daten lesen | 735 | ||
20.5 Tracing | 737 | ||
20.6 Integrierte Entwicklungsumgebungen | 739 | ||
20.7 make | 740 | ||
20.7.1 Make.le | 741 | ||
20.7.2 Makefile-Makros | 745 | ||
20.7.3 Shell- Variablen in Makefiles | 746 | ||
20.7.4 Einzelne Targets übersetzen | 746 | ||
20.7.5 Spezielle Targets | 746 | ||
20.7.6 Tipps im Umgang mit make | 747 | ||
20.8 autoconf, automake und libtool | 748 | ||
20.9 lex/.ex und yacc/bison | 748 | ||
20.9.1 .ex grundlegend anwenden | 749 | ||
20.9.2 bison/yacc grundlegend anwenden | 752 | ||
20.10 Unix-Software veröffentlichen | 754 | ||
20.10.1 Wichtige Dateien | 754 | ||
20.11 Manpages erstellen | 756 | ||
20.11.1 groff nutzen | 756 | ||
20.11.2 Die Manpage installieren | 758 | ||
20.12 Versionsmanagement | 759 | ||
20.12.1 CVS | 759 | ||
20.12.2 Subversion | 764 | ||
20.13 Wichtige Bibliotheken | 764 | ||
20.13.1 Entwicklung grafischer Oberflächen | 764 | ||
20.13.2 Weitere Bibliotheken | 765 | ||
Zusammenfassung | 767 | ||
Aufgaben | 768 | ||
21 Sicherheit | 769 | ||
21.1 Sicherheitskonzepte | 771 | ||
21.2 Unix und Sicherheit | 771 | ||
21.2.1 Benutzer und Rechte | 771 | ||
21.2.2 Logging | 772 | ||
21.2.3 Netzwerkdienste | 772 | ||
21.3 Grundlegende Absicherung | 773 | ||
21.3.1 Nach der Installation | 773 | ||
21.3.2 Ein einfaches Sicherheitskonzept | 774 | ||
21.4 Backups und Datensicherungen | 775 | ||
21.4.1 Die Backup-Strategie | 776 | ||
21.4.2 Die Software | 777 | ||
21.5 Updates | 779 | ||
21.6 Firewalls | 779 | ||
21.6.1 Grundlagen | 780 | ||
21.6.2 Firewalling unter Linux: net.lter/iptables | 783 | ||
21.6.3 Iptables im Detail | 784 | ||
Zusammenfassung | 794 | ||
Aufgaben | 794 | ||
22 Prozesse und IPC | 797 | ||
22.1 Prozessarten | 800 | ||
22.1.1 Hintergrundprozesse | 800 | ||
22.1.2 Dämonprozesse | 800 | ||
22.2 Prozesse in der Shell | 801 | ||
22.2.1 Wechseln zwischen Vorder- und Hintergrund | 802 | ||
22.2.2 Jobs – behalten Sie sie im Auge | 803 | ||
22.2.3 Hintergrundprozesse und Fehlermeldungen | 804 | ||
22.2.4 Wann ist es denn endlich vorbei? | 805 | ||
22.3 Prozesse und Signale | 806 | ||
22.3.1 Das Syscall-Interface | 806 | ||
22.3.2 Signale von der Kommandozeile senden: kill | 807 | ||
22.3.3 Welche Signale gibt es? | 807 | ||
22.3.4 Die Rechte | 809 | ||
22.3.5 In der Praxis: Signale empfangen | 809 | ||
22.4 Prozesse finden und verarbeiten | 810 | ||
22.4.1 top | 810 | ||
22.4.2 ps und pstree | 812 | ||
22.4.3 pgrep und pkill | 817 | ||
22.5 Prozesse, Scheduling und Prioritäten | 819 | ||
22.5.1 Das Scheduling | 819 | ||
22.5.2 nice und renice | 820 | ||
22.5.3 Echtzeit-Scheduling unter Linux | 821 | ||
22.6 IPC im Detail | 823 | ||
22.6.1 Pipes und FIFOs | 823 | ||
22.6.2 Semaphore | 825 | ||
22.6.3 Message Queues | 827 | ||
22.6.4 Shared Memory | 830 | ||
22.6.5 Unix-Domain-Sockets | 832 | ||
Zusammenfassung | 834 | ||
Aufgaben | 834 | ||
23 Bootstrap und Shutdown | 837 | ||
23.1 Was ist der Bootstrap? | 839 | ||
23.2 Hardwareboot | 839 | ||
23.3 Bootcode | 840 | ||
23.3.1 Die Partitionstabelle | 840 | ||
23.3.2 Ein Beispiel | 842 | ||
23.4 Bootmanager | 842 | ||
23.4.1 Grub | 843 | ||
23.4.2 LILO | 845 | ||
23.5 Startphase des Kernels | 846 | ||
23.6 init | 852 | ||
23.6.1 Linux und init | 853 | ||
23.6.2 BSD und init | 861 | ||
23.7 getty | 864 | ||
23.8 login | 866 | ||
23.8.1 Shell-Start | 867 | ||
23.8.2 Beenden einer Terminal-Sitzung | 868 | ||
23.9 System-Shutdown | 868 | ||
23.9.1 halt, reboot und poweroff | 869 | ||
23.9.2 shutdown | 869 | ||
Zusammenfassung | 871 | ||
Aufgaben | 871 | ||
24 Dateisysteme | 873 | ||
24.1 Der Aufbau von Speichermedien | 875 | ||
24.1.1 Die physikalische Struktur | 875 | ||
24.1.2 Die logische Struktur | 876 | ||
24.1.3 Integration ins VFS | 877 | ||
24.2 Dateisysteme | 878 | ||
24.2.1 ext2, ext3 und reiserfs | 878 | ||
24.2.2 FFS und UFS/UFS2 | 879 | ||
24.2.3 ISO9660 | 880 | ||
24.2.4 Loop Device und Ramdisk | 880 | ||
24.2.5 Swap | 883 | ||
24.2.6 DevFS | 884 | ||
24.2.7 ProcFS | 885 | ||
24.2.8 NFS | 885 | ||
24.2.9 Weitere Dateisysteme | 885 | ||
24.3 Dateitypen | 886 | ||
24.3.1 Reguläre Dateien | 886 | ||
24.3.2 Verzeichnisse | 887 | ||
24.3.3 Links | 888 | ||
24.3.4 Sockets | 890 | ||
24.3.5 Named Pipes | 890 | ||
24.3.6 Gerätedateien | 891 | ||
24.4 Inodes | 891 | ||
24.4.1 Die Metadaten | 892 | ||
24.4.2 Alternative Konzepte | 893 | ||
24.5 Administration | 893 | ||
24.5.1 disklabel | 893 | ||
24.5.2 hdparm | 897 | ||
24.5.3 fdisk und cfdisk | 898 | ||
24.5.4 Das Tool cfdisk | 900 | ||
24.5.5 mkfs | 901 | ||
24.5.6 tune2fs | 901 | ||
24.5.7 fsck | 902 | ||
Zusammenfassung | 902 | ||
Aufgaben | 902 | ||
Anhang | 905 | ||
A Die Installation | 907 | ||
A. 1 Grundlegendes | 907 | ||
A. 1.1 Unterstützte Hardware | 907 | ||
A. 1.2 Platz auf der Platte | 908 | ||
A.2 Linux: Debian-Installation | 909 | ||
A.2.1 Der Beginn der Installation | 909 | ||
A.2.2 Die Partitionierung | 910 | ||
A.2.3 Arbeiten nach der Installation | 911 | ||
A.3 Linux: Slackware-Installation | 912 | ||
A.3.1 Nach dem CD-Boot | 913 | ||
A.3.2 Setup | 913 | ||
A.3.3 Kon.guration | 914 | ||
A.4 Linux: SuSE-Installation | 916 | ||
A.5 BSD: OpenBSD-Installation | 917 | ||
A.5.1 Booten ... | 917 | ||
B Lösungen zu den einzelnen Aufgaben | 923 | ||
Lösungen zu Kapitel 1 | 923 | ||
Lösungen zu Kapitel 2 | 924 | ||
Lösungen zu Kapitel 3 | 925 | ||
Lösungen zu Kapitel 4 | 927 | ||
Lösungen zu Kapitel 5 | 928 | ||
Lösungen zu Kapitel 7 | 929 | ||
Lösungen zu Kapitel 8 | 931 | ||
Lösungen zu Kapitel 9 | 933 | ||
Lösungen zu Kapitel 10 | 935 | ||
Lösungen zu Kapitel 11 | 936 | ||
Lösungen zu Kapitel 12 | 937 | ||
Lösungen zu Kapitel 13 | 938 | ||
Lösungen zu Kapitel 14 | 940 | ||
Lösungen zu Kapitel 15 | 942 | ||
Lösungen zu Kapitel 18 | 943 | ||
Lösungen zu Kapitel 19 | 944 | ||
Lösungen zu Kapitel 20 | 945 | ||
Lösungen zu Kapitel 21 | 947 | ||
Lösungen zu Kapitel 22 | 948 | ||
Lösungen zu Kapitel 23 | 949 | ||
Lösungen zu Kapitel 24 | 950 | ||
C Kommandoreferenz | 953 | ||
D X11-InputDevices | 975 | ||
E MBR | 977 | ||
F Die Buch-DVD | 979 | ||
G Glossar | 981 | ||
H Literatur | 985 | ||
Index | 989 | ||
Mehr eBooks bei www.ciando.com | 0 |