4966 lines
375 KiB
Text
4966 lines
375 KiB
Text
linux v0.1.53
|
||
tresix69@freenet.de
|
||
16. Februar 2025
|
||
betreut durch Thomas resiX
|
||
1. Vorwort
|
||
Habe versucht alles so kurz wie möglich aber dennoch ausführlich zu Beschreiben und
|
||
wie immer aus verschiedenen Anleitugen abgeschrieben ;-)
|
||
3
|
||
Inhaltsverzeichnis
|
||
1. Vorwort 3
|
||
Inhaltsverzeichnis 5
|
||
I. Linux 15
|
||
2. Linux 17
|
||
2.1. Was ist Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
|
||
2.2. Kernel und Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
|
||
2.2.1. Kernel 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
|
||
2.2.2. Kernel 2.6 (Debian 4.0 etch) . . . . . . . . . . . . . . . . . . . 17
|
||
3. Befehle 19
|
||
3.1. Standartein-aus-gabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
|
||
3.2. Anmelden und Abmelden . . . . . . . . . . . . . . . . . . . . . . . . . 19
|
||
3.3. Anhalten des Systems und Booten . . . . . . . . . . . . . . . . . . . . 19
|
||
3.4. Die Runlevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
|
||
3.4.1. Upstart (Systemstart) . . . . . . . . . . . . . . . . . . . . . . . 20
|
||
3.5. SuSE-Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
|
||
3.6. Zur Orientierung auf einem UNIX-Rechner . . . . . . . . . . . . . . . . 20
|
||
3.7. Datum und Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
|
||
3.8. Auflisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
|
||
3.9. Dateinamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
|
||
3.10. Dateiendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
|
||
3.11. Infos über Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
|
||
3.12. Arbeiten(Verwüstungen) im und am Filesystem . . . . . . . . . . . . . 23
|
||
3.13. Kopieren und Verschieben . . . . . . . . . . . . . . . . . . . . . . . . . 23
|
||
3.14. Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
|
||
3.15. Ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
|
||
3.16. Der Texteditor vi/vim . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
|
||
3.17. Suchen nach Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
|
||
3.18. Suchen in Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
|
||
3.19. Vergleichen von Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . 25
|
||
3.20. Drucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
|
||
3.21. File-Inhalt bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
|
||
3.22. TAR(tape archiver) verwaltet Dateiarchive . . . . . . . . . . . . . . . 25
|
||
3.22.1. Packen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
|
||
5
|
||
Inhaltsverzeichnis
|
||
3.22.2. Entpacken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
|
||
3.23. Disketten/Festplatten . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
|
||
3.23.1. Dateisystem verschlüsseln . . . . . . . . . . . . . . . . . . . . . 28
|
||
3.24. Zugriffsrechte/Eigentümer/Gruppe . . . . . . . . . . . . . . . . . . . . 28
|
||
3.25. Prozessbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
|
||
3.26. Re-install Grub with Live CD . . . . . . . . . . . . . . . . . . . . . . . 31
|
||
3.26.1. Chroot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
|
||
3.26.2. Grub. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
|
||
3.27. Software installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
|
||
3.27.1. rpm-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
|
||
3.27.2. deb-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
|
||
3.27.3. Portage Gentoo . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
|
||
3.27.4. Quelltexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
|
||
3.27.5. Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
|
||
3.28. Im Netz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
|
||
3.29. SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
|
||
3.29.1. Generierung eines DSA Schlüsselpaares . . . . . . . . . . . . . 35
|
||
3.29.2. Public-Key auf dem Zielrechner hinzufügen . . . . . . . . . . . 35
|
||
3.29.3. Private-Key auf dem Qellrechner . . . . . . . . . . . . . . . . . 35
|
||
3.29.4. Login nur mit SSH-Keys erlauben . . . . . . . . . . . . . . . . 36
|
||
3.30. GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
|
||
3.30.1. Erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
|
||
3.30.2. Hochladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
|
||
3.30.3. Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
|
||
3.30.4. Holen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
|
||
3.30.5. Signatur erzeugen und prüfen . . . . . . . . . . . . . . . . . . . 37
|
||
3.30.6. Verschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
|
||
3.30.7. Entschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
|
||
3.30.8. Schlüsselverwaltung . . . . . . . . . . . . . . . . . . . . . . . . 38
|
||
3.30.9. Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
|
||
3.30.10. Exportieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
|
||
3.31. X11 - Grafik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
|
||
3.31.1. Bildschirmschoner/Maus . . . . . . . . . . . . . . . . . . . . . . 39
|
||
3.31.2. X11 ohne Maus . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
|
||
4. Verzeichnisse und Dateien 41
|
||
4.1. Dateibaum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
|
||
4.2. /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
|
||
4.3. /dev/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
|
||
4.4. Dateisystemtypen unter Linux . . . . . . . . . . . . . . . . . . . . . . . 49
|
||
4.5. /etc/group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
|
||
4.6. /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
|
||
4.7. /etc/inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
|
||
4.7.1. Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
|
||
4.7.2. Termcapeintrag . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
|
||
6
|
||
Inhaltsverzeichnis
|
||
4.7.3. Gettykommando . . . . . . . . . . . . . . . . . . . . . . . . . . 51
|
||
4.7.4. Kürzel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
|
||
4.7.5. Arbeitsstufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
|
||
4.7.6. Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
|
||
4.7.7. Kommando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
|
||
4.8. /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
|
||
5. Die Shells 55
|
||
5.1. Die Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
|
||
5.2. Die Start-Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
|
||
5.3. Tastenkombinationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
|
||
5.4. Die C-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
|
||
5.5. Bash rechnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
|
||
II. Programme 59
|
||
6. Der Texteditor vi/vim 61
|
||
6.1. Aufruf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
|
||
6.2. Eingabemodus (input mode) . . . . . . . . . . . . . . . . . . . . . . . . 61
|
||
6.3. Befehlsmodus (visual mode) . . . . . . . . . . . . . . . . . . . . . . . . 61
|
||
6.3.1. Eingeben: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
|
||
6.3.2. Überschreiben: . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
|
||
6.3.3. Bewegen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
|
||
6.3.4. Löschen und Eingeben: . . . . . . . . . . . . . . . . . . . . . . 63
|
||
6.3.5. Löschen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
|
||
6.3.6. Aufheben: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
|
||
6.3.7. Verschieben: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
|
||
6.3.8. Zusammenfügen: . . . . . . . . . . . . . . . . . . . . . . . . . . 64
|
||
6.3.9. Markieren: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
|
||
6.3.10. Kopieren: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
|
||
6.3.11. Einfügen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
|
||
6.3.12. Suchen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
|
||
6.3.13. Wiederholen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
|
||
6.3.14. Sonstige Kommandos: . . . . . . . . . . . . . . . . . . . . . . . 65
|
||
6.4. Kommandomodus (colon mode) . . . . . . . . . . . . . . . . . . . . . . 65
|
||
6.4.1. Texteingabe Kommandos . . . . . . . . . . . . . . . . . . . . . 65
|
||
7. LaTeX 67
|
||
A
|
||
7.1. LT X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
|
||
E
|
||
8. Docker 69
|
||
8.1. Docker installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
|
||
8.2. Mit Docker arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
|
||
7
|
||
Inhaltsverzeichnis
|
||
III. Linux im Netzwerk 71
|
||
9. Netzwerk 73
|
||
9.1. /etc/network/interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . 74
|
||
10.E-Mail 75
|
||
10.1. Verwendung von E-Mail . . . . . . . . . . . . . . . . . . . . . . . . . . 75
|
||
11.Apache 77
|
||
11.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
|
||
11.2. Kompilieren und Installieren . . . . . . . . . . . . . . . . . . . . . . . . 77
|
||
11.2.1. Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
|
||
11.2.2. Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
|
||
11.2.3. OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
|
||
11.2.4. Apache 1.3 und SSL . . . . . . . . . . . . . . . . . . . . . . . . 78
|
||
11.2.5. Apache2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
|
||
11.2.6. Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
|
||
11.2.7. Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
|
||
11.2.8. PureFTPd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
|
||
11.3. Apache starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
|
||
11.3.1. Apache starten . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
|
||
11.3.2. Wie der Apache startet . . . . . . . . . . . . . . . . . . . . . . 82
|
||
11.3.3. Fehler während des Hochfahrens . . . . . . . . . . . . . . . . . 83
|
||
11.3.4. Automatisch starten und beenden . . . . . . . . . . . . . . . . 83
|
||
11.3.5. Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . . 83
|
||
11.4. Beenden und Neustarten . . . . . . . . . . . . . . . . . . . . . . . . . . 84
|
||
11.4.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
|
||
11.4.2. Beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
|
||
11.4.3. Unterbrechungsfreier Neustart . . . . . . . . . . . . . . . . . . 84
|
||
11.4.4. Neustarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
|
||
11.4.5. Anhang: Syntax überprüfen . . . . . . . . . . . . . . . . . . . . 85
|
||
11.5. Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
|
||
11.5.1. Zu den Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
|
||
11.6. Benutzerhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
|
||
11.6.1. httpd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
|
||
11.6.2. Access Control List File (.htaccess) . . . . . . . . . . . . . . . . 89
|
||
11.6.3. Gruppendatei (.htgroup) . . . . . . . . . . . . . . . . . . . . . . 90
|
||
11.6.4. Passwort-Datei (.htpasswd) . . . . . . . . . . . . . . . . . . . . 90
|
||
11.6.5. Erstellen eines SSL-Zertifikats . . . . . . . . . . . . . . . . . . . 90
|
||
11.6.6. LinkIcon (favicon.ico) . . . . . . . . . . . . . . . . . . . . . . . 90
|
||
12.MySQL 93
|
||
12.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
|
||
12.2. Kompilieren und Installieren . . . . . . . . . . . . . . . . . . . . . . . . 93
|
||
12.2.1. Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
|
||
8
|
||
Inhaltsverzeichnis
|
||
12.2.2. Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
|
||
12.2.3. MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
|
||
12.2.4. MySQLTesten . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
|
||
12.2.5. phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
|
||
13.PHP 97
|
||
13.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
|
||
13.2. Kompilieren und Installieren . . . . . . . . . . . . . . . . . . . . . . . . 97
|
||
13.2.1. Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
|
||
13.2.2. Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
|
||
13.2.3. Libraries für Zusatzfunktionen . . . . . . . . . . . . . . . . . . 98
|
||
13.2.4. PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
|
||
13.3. Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
|
||
13.3.1. Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
|
||
13.3.2. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
|
||
14.Squid 101
|
||
14.1. Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
|
||
14.2. Einfacher Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
|
||
14.3. Proxy Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
|
||
14.4. Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
|
||
14.5. Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
|
||
14.6. Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
|
||
14.6.1. Client-Kommunikation . . . . . . . . . . . . . . . . . . . . . . . 102
|
||
14.6.2. Kommunikation zwischen Proxy-Cache-Servern . . . . . . . . . 102
|
||
14.7. Systemvoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
|
||
14.8. SuSE Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
|
||
14.9. Automatische Starten von Squit . . . . . . . . . . . . . . . . . . . . . . 103
|
||
14.10. Squiddateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
|
||
14.11. squid.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
|
||
IV. Programmieren 107
|
||
15.Bash 109
|
||
15.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
|
||
15.2. Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
|
||
15.3. Steuer und Sonderzeichen der Bash . . . . . . . . . . . . . . . . . . . . 110
|
||
16.git 111
|
||
16.1. Dokumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
|
||
16.2. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
|
||
16.3. Konfigurationen über Umgebungsvariablen . . . . . . . . . . . . . . . . 112
|
||
16.4. Der Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
|
||
16.5. Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
|
||
9
|
||
Inhaltsverzeichnis
|
||
16.6. Commit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
|
||
16.7. Dateien entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
|
||
16.8. Dateien verschieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
|
||
16.9. Änderung an einer Datei rückgängig machen . . . . . . . . . . . . . . . 114
|
||
16.10. Dateien ignorieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
|
||
16.11. Mit externen Repositorys arbeiten . . . . . . . . . . . . . . . . . . . . 114
|
||
16.12. Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
|
||
16.13. Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
|
||
16.14. Git Aliase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
|
||
16.15. Git auf einen Server bekommen . . . . . . . . . . . . . . . . . . . . . . 116
|
||
16.16. Git auf dem SSH-Server einrichten . . . . . . . . . . . . . . . . . . . . 116
|
||
16.17. Öffentlicher Webserver-Zugang . . . . . . . . . . . . . . . . . . . . . . 117
|
||
16.18. Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
|
||
16.19. Verwendung von Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
|
||
17.C/C++ 121
|
||
17.1. Befehle und Grundelemente . . . . . . . . . . . . . . . . . . . . . . . . 121
|
||
17.2. Steuersequenzen für ANSI-Bildschirme - Innerhalb von Texten . . . . . 121
|
||
17.3. stdio.h -> Standard Ein- und Ausgabe . . . . . . . . . . . . . . . . . . 122
|
||
17.4. ctype.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
|
||
17.5. string.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
|
||
17.6. Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
|
||
17.7. ASCII(American Standart Code for Information Interchange)-Tabelle . 125
|
||
17.7.1. Unterteilung der Steuerzeichen: . . . . . . . . . . . . . . . . . . 126
|
||
17.7.2. Bedeutung der Steuerzeichen: . . . . . . . . . . . . . . . . . . . 126
|
||
17.8. Operatoren und Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . 127
|
||
17.8.1. Arithmetische Operatoren: . . . . . . . . . . . . . . . . . . . . 127
|
||
17.8.2. Vergleichsoperatoren: . . . . . . . . . . . . . . . . . . . . . . . 127
|
||
17.8.3. Logische Operatoren: . . . . . . . . . . . . . . . . . . . . . . . . 127
|
||
17.8.4. Zuweisungsoperatoren: . . . . . . . . . . . . . . . . . . . . . . . 128
|
||
17.8.5. Post- und Prefix- Operatoren: . . . . . . . . . . . . . . . . . . . 128
|
||
17.8.6. Zeigeroperatoren: . . . . . . . . . . . . . . . . . . . . . . . . . . 128
|
||
17.8.7. Diverse Kategorien: . . . . . . . . . . . . . . . . . . . . . . . . 128
|
||
17.9. Inkrementieren und Dekrementieren . . . . . . . . . . . . . . . . . . . 129
|
||
17.10. Wertebereich und Genauigkeit elementarer Datentypen . . . . . . . . . 129
|
||
17.11. Variableninitialisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
|
||
17.12. Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
|
||
17.12.1. Ganzzahlkonstanten . . . . . . . . . . . . . . . . . . . . . . . . 130
|
||
17.12.2. Gleitkommakonstanten . . . . . . . . . . . . . . . . . . . . . . 130
|
||
17.12.3. Zeichen- und Zeichenkettenkonstanten . . . . . . . . . . . . . . 130
|
||
18.Tcl/Tk 131
|
||
19.Perl 133
|
||
10
|
||
Inhaltsverzeichnis
|
||
20.CGI+Perl 135
|
||
20.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
|
||
20.2. Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
|
||
20.2.1. Texte und Strings . . . . . . . . . . . . . . . . . . . . . . . . . 135
|
||
20.2.2. Rechenoperationen . . . . . . . . . . . . . . . . . . . . . . . . . 135
|
||
20.2.3. Arrays (Listen) . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
|
||
20.2.4. String- und Zahlenvergleichsoperratoren . . . . . . . . . . . . . 136
|
||
20.2.5. if-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
|
||
20.2.6. if-else-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . . 136
|
||
20.2.7. if-elseif-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . 137
|
||
20.3. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
|
||
20.3.1. String Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 137
|
||
20.3.2. Rechen Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 137
|
||
20.3.3. Array Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 137
|
||
21.Java 139
|
||
21.1. Funktion von Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
|
||
21.2. Sprache und Syntax von Java . . . . . . . . . . . . . . . . . . . . . . . 139
|
||
21.2.1. Kommentrare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
|
||
21.2.2. Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
|
||
21.2.3. Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
|
||
21.3. Pakete und Verzeichnisstrukturen . . . . . . . . . . . . . . . . . . . . . 140
|
||
21.3.1. Sichtbarkeit und Zugriffsrechte von Klassen und Methoden . . 140
|
||
21.3.2. Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
|
||
21.3.3. Konstruktoren und Destruktoren . . . . . . . . . . . . . . . . . 141
|
||
21.3.4. Methoden überladen . . . . . . . . . . . . . . . . . . . . . . . . 141
|
||
21.3.5. Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
|
||
21.3.6. Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
|
||
21.3.7. Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
|
||
21.4. Elementare Syntax von Java . . . . . . . . . . . . . . . . . . . . . . . . 142
|
||
21.4.1. Operratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
|
||
21.4.2. Verknüpfungsoperatoren . . . . . . . . . . . . . . . . . . . . . . 142
|
||
21.4.3. Inkrement-Operator . . . . . . . . . . . . . . . . . . . . . . . . 142
|
||
21.4.4. Dekrement-Operator . . . . . . . . . . . . . . . . . . . . . . . . 143
|
||
21.4.5. Arithmetische Zuweisungsoperatoren . . . . . . . . . . . . . . . 143
|
||
21.4.6. Bedingungen und Entscheidungen . . . . . . . . . . . . . . . . 143
|
||
21.4.7. if - else - Bedingungen . . . . . . . . . . . . . . . . . . . . . . . 143
|
||
21.4.8. Verschachtelte Bedingungen . . . . . . . . . . . . . . . . . . . . 143
|
||
21.4.9. Fallunterscheidung mit switch - case . . . . . . . . . . . . . . . 144
|
||
21.5. Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
|
||
21.5.1. Die while - Schleife . . . . . . . . . . . . . . . . . . . . . . . . . 144
|
||
21.5.2. Die do - while - Schleife . . . . . . . . . . . . . . . . . . . . . . 144
|
||
21.5.3. Die for - Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . 144
|
||
21.5.4. Schleifen mit break verlassen . . . . . . . . . . . . . . . . . . . 144
|
||
21.5.5. Schleife mit continue wiederholen . . . . . . . . . . . . . . . . . 144
|
||
11
|
||
Inhaltsverzeichnis
|
||
21.6. Komplexe Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
|
||
21.6.1. Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
|
||
21.7. Die Anweisung import . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
|
||
21.8. Java eigene Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
|
||
21.8.1. Die Klasse Math . . . . . . . . . . . . . . . . . . . . . . . . . . 145
|
||
21.9. Die Klasse Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
|
||
21.9.1. Die Klasse Object . . . . . . . . . . . . . . . . . . . . . . . . . 145
|
||
21.10. Die Klasse Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
|
||
21.11. Die Klasse String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
|
||
21.12. Die Klasse Stringbuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
|
||
21.12.1. Die Klasse Stringbuffer . . . . . . . . . . . . . . . . . . . . . . 146
|
||
21.13. Die Klasse System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
|
||
21.14. Das Paket java.util . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
|
||
21.14.1. Die Klasse Date . . . . . . . . . . . . . . . . . . . . . . . . . . 147
|
||
21.14.2. Die Klasse Random . . . . . . . . . . . . . . . . . . . . . . . . 147
|
||
21.14.3. Die Klasse Stack . . . . . . . . . . . . . . . . . . . . . . . . . . 147
|
||
21.15. Ausnahmen (Exceptions) . . . . . . . . . . . . . . . . . . . . . . . . . . 147
|
||
21.15.1. Eigene Ausnahme erzeugen (throw) . . . . . . . . . . . . . . . 148
|
||
21.16. Multitasking mit Threads . . . . . . . . . . . . . . . . . . . . . . . . . 148
|
||
21.16.1. Arbeiten mit Threads . . . . . . . . . . . . . . . . . . . . . . . 148
|
||
21.17. Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
|
||
21.17.1. Applets in eine Webseite einbinden . . . . . . . . . . . . . . . . 149
|
||
21.17.2. Das erste Java Applet . . . . . . . . . . . . . . . . . . . . . . . 149
|
||
21.17.3. Die Methoden eines Applets . . . . . . . . . . . . . . . . . . . . 149
|
||
21.17.4. Ein Applet im Überblick . . . . . . . . . . . . . . . . . . . . . . 149
|
||
21.17.5. Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
|
||
21.17.6. Die Klasse Graphics . . . . . . . . . . . . . . . . . . . . . . . . 150
|
||
21.17.7. Die Klasse Color . . . . . . . . . . . . . . . . . . . . . . . . . . 150
|
||
21.17.8. Die Klasse Font . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
|
||
21.17.9. Die Klasse Image . . . . . . . . . . . . . . . . . . . . . . . . . . 151
|
||
21.17.10.Die Klasse Button . . . . . . . . . . . . . . . . . . . . . . . . . 151
|
||
21.18. Eventhandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
|
||
21.18.1. Mouse Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
|
||
21.18.2. Action Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
|
||
21.18.3. Parameter an ein Applet . . . . . . . . . . . . . . . . . . . . . . 152
|
||
21.18.4. Weitere wichtige Pakete . . . . . . . . . . . . . . . . . . . . . . 153
|
||
22.JavaScript 155
|
||
22.1. Einbindung von JavaScript . . . . . . . . . . . . . . . . . . . . . . . . 155
|
||
22.1.1. Einbindung in den Head . . . . . . . . . . . . . . . . . . . . . . 155
|
||
22.1.2. Einbindung in den Body . . . . . . . . . . . . . . . . . . . . . . 155
|
||
22.1.3. Ausführen bei bestimmten Aktionen . . . . . . . . . . . . . . . 155
|
||
22.2. Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
|
||
22.3. Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
|
||
22.3.1. Standardobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . 156
|
||
12
|
||
Inhaltsverzeichnis
|
||
22.3.2. String-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
|
||
22.3.3. Eigene Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
|
||
22.3.4. Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
|
||
22.4. Mathematische Operationen . . . . . . . . . . . . . . . . . . . . . . . . 158
|
||
22.5. Bedingte Ausführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
|
||
22.6. Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
|
||
22.7. Event-Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
|
||
22.8. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
|
||
22.9. Reservierte Wörter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
|
||
V. Anhang 163
|
||
23.Glossar 165
|
||
Stichwortverzeichnis 168
|
||
13
|
||
Teil I.
|
||
Linux
|
||
15
|
||
2. Linux
|
||
2.1. Was ist Linux?
|
||
Der Kernel, eine Schnittstelle für die Software zur Hardware.
|
||
2.2. Kernel und Module
|
||
http://www.kernel.org/ http-Adresse für den Kernel und Kernel-Patches
|
||
http://www.de.kernel.org/pub/linux/kernel/ Spiegel für den Kernel
|
||
2.2.1. Kernel 2.4
|
||
tar xvfj kernel.tar.bz2 entpackt den Kernel
|
||
tar xvfz kernel.tar.gz entpackt den Kernel
|
||
cd kernel Verzeichnis wechseln
|
||
bzip2 -dc ../patch-2.x.xx.bz2 | patch -p1 Kernel patchen
|
||
gzip -dc ../patch-2.x.xx.gz | patch -p1 Kernel patchen
|
||
zcat /proc/config.gz > /usr/src/linux/.config die aktuelle Konfiguration des
|
||
laufenden Kernels auslesen
|
||
make menuconfig Kernelkonfiguration im Textmodus
|
||
make dep aktualisiert die Abhängigkeiten
|
||
make clean löscht die temporären Dateien und Ausgabedateien
|
||
make zImage übersetzt und komprimiert den Kernel
|
||
make bzImage übersetzt und komprimiert den gossen Kernel
|
||
make dep clean zImage aktualisiert,löscht und übersetzt
|
||
make modules übersetzt Module
|
||
make modules_install installiert Module
|
||
make zlilo installiert den Kernel und den Boot-Loader LILO
|
||
make bzlilo installiert den gossen Kernel und
|
||
den Boot-Loader LILO
|
||
make zdisk erzeugt eine Bootdiskette mit dem neuen Kernel
|
||
make mrproper löscht alle erzeugten Dateien,
|
||
auch die Konfiguration
|
||
2.2.2. Kernel 2.6 (Debian 4.0 etch)
|
||
sudo apt-get update Paket-Datenbank aktualisieren
|
||
sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 \
|
||
17
|
||
2. Linux
|
||
build-essential benötigte Pakete installieren
|
||
cd /usr/src in das Verzeichnis zu den Quell-Paketen wechseln
|
||
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2
|
||
den aktuellen Kernel downloaden
|
||
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2.sign
|
||
die dazugehörige Signatur downloaden
|
||
gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0x517D0F0E
|
||
Public-Key vom Key-Server holen
|
||
gpg --verify linux-2.6.22.1.tar.bz2.sign
|
||
Kernel-Signatur überprüfen
|
||
tar xvfj linux-2.6.22.1.tar.bz2 Kernel entpacken
|
||
ln -s linux-2.6.22.1 linux Soft-Link zu den Kernel-Quellen anlegen
|
||
cd /usr/src/linux zu den aktuellen Kernel-Quellen wechseln
|
||
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
|
||
Aktualisieren prüfen
|
||
bzip2 -dc /usr/src/patch.bz2 | patch -p1
|
||
Kernel-Quellen aktualisieren wenn nötig
|
||
make clean && make mrproper Kernel säubern und korigieren
|
||
cp /boot/config-‘uname -r‘ ./.config
|
||
laufende Konfiguration holen
|
||
make menuconfig Konfigurations-Programm starten
|
||
Load an Alternate Configuration File
|
||
laufende Konfiguration laden und Kernel
|
||
konfigurieren
|
||
make-kpkg clean
|
||
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image \
|
||
kernel_headers Kernel-Pakete und Kernel-Headers herstellen
|
||
sudo dpkg -i linux-image-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb
|
||
den neuen Kernel installieren
|
||
sudo dpkg -i linux-headers-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb
|
||
die neuen Header installieren
|
||
sudo shutdown -r now Neustart um den Kernel zu testen
|
||
uname -a feststellen welcher Kernel gestartet ist
|
||
dmesg Kernelmeldungen vom letzten Start anzeigen
|
||
insmod Modul Modul laden
|
||
modprobe Modul Modul eigenständig laden
|
||
lsmod geladene Module anzeigen lassen
|
||
rmmod Modul Modul entfernen
|
||
18
|
||
3. Befehle
|
||
3.1. Standartein-aus-gabe
|
||
Jedes UNIX kennt 3 spezielle Files:
|
||
stdin Standardeingabe, normalerweise die Tastatur
|
||
stdout Standardausgabe, normalerweise der Bildschirm
|
||
stderr Standardausgabe für Fehlermeldungen,
|
||
normalerweise der Bildschirm
|
||
All diese Files können umgelenkt werden
|
||
setterm -blank 0 Bildschirmschoner ausschalten
|
||
3.2. Anmelden und Abmelden
|
||
login: Benutzername 1. zum Anmelden den Benutzernamen eingeben
|
||
Passwort: Benutzerpasswort 2. zum Anmelden das Benutzerpasswort eingeben
|
||
logout zum Abmelden eingeben
|
||
exit zum Abmelden eingeben
|
||
[Strg]+[d] beendet die Shell (alle Shells)
|
||
3.3. Anhalten des Systems und Booten
|
||
Unter keinen Umständen darf während des Betriebs einfach der Strom abgeschaltet
|
||
oder der Resetknopf betätigt werden. Da es sonst zu einer Beschädigung des Dateisy-
|
||
stems mit Datenverlust kommen kann.
|
||
root: shutdown -h now hält das System an
|
||
root: halt hält das System an
|
||
root: init 0 hält das System an
|
||
root: systemctl poweroff hält das System an
|
||
root: shutdown -r now startet den Computer nach dem Herunterfahren neu
|
||
root: reboot startet den Computer nach dem Herunterfahren neu
|
||
root: init 6 startet den Computer nach dem Herunterfahren neu
|
||
root: systemctl reboot startet den Computer nach dem Herunterfahren neu
|
||
root: systemctl suspend Bereitschaft
|
||
root: systemctl hibernate Ruhezustand
|
||
19
|
||
3. Befehle
|
||
3.4. Die Runlevel
|
||
root: init 0 Systemhalt
|
||
root: init S Einzelbenutzerbetrieb (Single User Mode)
|
||
root: init 1 Einzelbenutzerbetrieb (Single User Mode)
|
||
root: init 2 Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk
|
||
(Local multiuser without remote network)
|
||
root: init 3 Voller Mehrbenutzerbetrieb mit Netzwerk
|
||
(Full multiuser with network)
|
||
root: init 4 Frei (Not used)
|
||
root: init 5 Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM
|
||
(Full multiuser with network and xdm)
|
||
root: init 6 Systemneustart (System reboot)
|
||
root: init q Quit zum Neueinlesen der inittab
|
||
3.4.1. Upstart (Systemstart)
|
||
UpstartsorgtdafürdasDiensteereignisbasiertparallelgestartetwerdenkönnen/etc/inittab
|
||
entfällt neu /etc/init/ (bzw. /etc/event.d/)
|
||
initctl list zeigt eine Liste aller Init-Scripte an
|
||
initctl [start|stop] Init-Script startet oder beendet ein Script
|
||
initctl reload-configuration Konfiguration der Scripte neu einlesen
|
||
service Init-Script [start|stop] startet oder beendet ein Script
|
||
Im Header der Datei kann dann zum Starten und Beenden flogendes stehen:
|
||
start on runlevel [2345]
|
||
stop on runlevel [!2345]
|
||
3.5. SuSE-Linux
|
||
hilfe Hilfesystem starten
|
||
yast Yet another Setup Tool -
|
||
SuSE Administrationstool
|
||
yast2 Yet another Setup Tool 2 -
|
||
SuSE Administrationstool
|
||
SuSEconfig das Skript muss aufgerufen werden
|
||
nachdem die /etc/rc.config und /etc/sysconfig/
|
||
von Hand verändert wurden
|
||
3.6. Zur Orientierung auf einem UNIX-Rechner
|
||
date zeigt Datum und Uhrzeit an
|
||
20
|
||
3.7. Datum und Uhrzeit
|
||
df -k zeigt den feien Platten-Platz in kB an
|
||
df -m zeigt den feien Platten-Platz in MB an
|
||
df -h Ausgabe von Größen in Menschen-lesbarem Format
|
||
du -h zeigt wie viel Platten-Platz in kB bestimmte Dateien einnehmen
|
||
echo Text schreibt den Text auf stdout (Bildschirm)
|
||
finger zeigt Infos über eingeloggte Benutzer an
|
||
finger -l zeigt ausführliche Infos über eingeloggte Benutzer an
|
||
free -t zeigt den feien Arbeitsspeicher in kB an
|
||
last zeigt wer sich zuletzt von wo aus auf dem Rechner eingeloggt hat
|
||
info Begriff Hilfe zu dem Begriff im Infoformat
|
||
man Begriff Hilfe zu dem Begriff
|
||
man -a Begriff alle Kapitel zu dem Begriff
|
||
man -f Begriff listet die gefundenen Seiten zu dem Begriff auf
|
||
man -k Begriff listet die Seiten in dem der Begriff vorkommt auf
|
||
man n Begriff Hilfe zum Begriff mit der Sektion n
|
||
Die Manual-Pages sind auf verschiedene Sektionen aufgeteilt:
|
||
1 Shell-Kommandos
|
||
2 System-Aufrufe
|
||
3 Funktionen - C-Bibliotheksfunktionen.
|
||
4 Die Beschreibung von Konfigurationsdateien.
|
||
5 Die Syntax wichtiger Dateien.
|
||
6 Beschreibung von Spielen.
|
||
7 Alles was mit Text, Textformatierung und anderen Formaten zu
|
||
tun hat.
|
||
8 Die Befehle des Systemverwalters.
|
||
9 Die Beschreibung der Linux-Kernelroutinen.
|
||
n n kommt angeblich von neu, hier sind sonstige Manual-Pages
|
||
aufgeführt, die in eine der oberen Sektionen gehören, aber
|
||
traditionell hier stehen oder zu keiner Sektion genau passen.
|
||
pwd Ausgabe des aktuellen Verzeichnisses
|
||
w wer ist da und was ist los
|
||
whatis Befehl zeigt Kurzerklärung eines Befehls
|
||
which Befehl zeigt, wo Executable liegt, und eventual alias
|
||
who zeigt Liste aller eingeloggten Benutzer
|
||
whoami zeigt, wem die Shell gehört
|
||
3.7. Datum und Uhrzeit
|
||
date Datum und Uhrzeit abfragen
|
||
date -s ’2000-01-29 20:00:00’ +’%Y-%m-%d %T’ Datum und Uhrzeit einstellen
|
||
netdate Rechnername Datum und Uhrzeit vom Rechner-
|
||
name holen
|
||
clock -u -w Datum und Uhrzeit in
|
||
das BIOS schreiben
|
||
21
|
||
3. Befehle
|
||
timedatectl set-local-rtc 1 locale Zeit einstellen
|
||
timedatectl set-local-rtc 0 UTC Zeit einstellen
|
||
3.8. Auflisten
|
||
ls Auflisten der Dateien im aktuellen Verzeichnis
|
||
ls Verzeichnis Inhalt des Verzeichnisses ausgeben
|
||
ls -la alles Auflisten im aktuellen Verzeichnis
|
||
ls -laFi alles ausführlicher Auflisten
|
||
ls | paste - - - - Dateien vierspaltig ausgeben
|
||
ls -1 untereinander ausgeben
|
||
ls -F Verzeichnisse mit angehängtem / markieren
|
||
ls -i inode-Nummer mit ausgeben
|
||
ls -R alle Unterverzeichnisse mit ausgeben
|
||
ls -r Auflisten der Dateien umkehren
|
||
3.9. Dateinamen
|
||
UNIX unterscheidet Groß- und Kleinschreibung! liesmich, Liesmich, LIESMICH sind
|
||
verschiedene Dateinamen! max. 256 Zeichen, alle Zeichen sind erlaubt . am Namens-
|
||
anfang versteckt Datei vor ls, cp, rm, mv
|
||
alias gibt alle definierten Kurznamen aus
|
||
alias la=’ls -la’ definiert Kurznamen für ein Kommando
|
||
aus ls -la wird ein la
|
||
3.10. Dateiendungen
|
||
.a Objektbibliotheken
|
||
.c C-Quelltextdatei
|
||
.cpp C++-Quellen
|
||
.o Objektdatei
|
||
.p Pascal-Quellen
|
||
.s Assembler
|
||
3.11. Infos über Files
|
||
file Datei Anzeige des Dateitypes
|
||
wc -lwc Datei Ausgabe der Zeilen, Worte und Buchstaben der Datei
|
||
ls -a | wc -l alle Dateien im aktuellen Verzeichnis zählen
|
||
22
|
||
3.12. Arbeiten(Verwüstungen) im und am Filesystem
|
||
3.12. Arbeiten(Verwüstungen) im und am Filesystem
|
||
cd Pfad Verzeichnis wechseln
|
||
mkdir Name Verzeichnis erzeugen
|
||
mkdir -p Name Verzeichnis erzeugen, fehlende Verzeichnisse mit anlegen
|
||
3.13. Kopieren und Verschieben
|
||
cp Dateien Ziel Dateien kopieren
|
||
cp -i Dateien Ziel Dateien kopieren, vor dem Überschreiben
|
||
einer Datei nachfragen
|
||
cp -R Quelle* Ziel gesamten Inhalt eines Verzeichnises kopieren
|
||
mv Quelle Ziel Datei verschieben oder umbenennen
|
||
mv -f Quelle Ziel Schreibgeschützte Datei verschieben oder umbenennen
|
||
mv -i Quelle Ziel Datei verschieben oder umbenennen,
|
||
vor dem Überschreiben nachfragen
|
||
ln Quelle Ziel Verknüpfung erzeugen (Hardlink),
|
||
beide Dateien haben die gleiche inode
|
||
ln -s Quelle Ziel Verknüpfung erzeugen (Softlink)
|
||
ln -sf Quelle Ziel Verknüpfung erzeugen (Softlink)
|
||
ohne Rückfrage überschreiben
|
||
3.14. Löschen
|
||
rm Datei löschen von Daten
|
||
rm -r Dateien löschen von Dateien mit Verzeichnissen
|
||
rmdir Verzeichnis löscht Verzeichnis wenn es leer ist,
|
||
überflüssig rm -r geht auch
|
||
3.15. Ausgeben
|
||
cat Datei Inhalt der Datei auf dem Bildschirm ausgeben
|
||
cat Datei1 Datei2 > Datei3 Dateien1+2 zusammenfügen in die Datei3 schreiben
|
||
strings Datei Druckbare Zeichen der Datei ausgeben
|
||
more Datei Datei seitenweise ausgeben
|
||
less Datei Datei ausgeben und mit den Curser scrollen
|
||
j eine Zeile weiter
|
||
k eine Zeile zurück
|
||
u halbe Seite zurück
|
||
/Text sucht den Text
|
||
q less verlassen
|
||
nl Datei Datei mit Zeilennummern ausgeben
|
||
tail Datei zeigt die letzten 10 Zeilen einer Datei an
|
||
23
|
||
3. Befehle
|
||
tail -n Datei zeigt die letzten n Zeilen einer Datei an
|
||
tail -f Datei zeigt ständig die letzten 10 Zeilen der Datei an
|
||
tail -f /var/log/messages Systemmeldungen mitverfolgen
|
||
head Datei zeigt die ersten 10 Zeilen einer Datei an
|
||
head -n Datei zeigt die ersten n Zeilen einer Datei an
|
||
od -b Datei Datei oktal ausgeben
|
||
od -c Datei Datei als ASCII ausgeben
|
||
od -x Datei Datei hexadezimal ausgeben
|
||
ls | paste - - - - Dateien vierspaltig ausgeben
|
||
recode ibmpc:lat1 Datei Konvertierung der Datei
|
||
7 Bit DOS in das UNICODE/8 Bit Format
|
||
3.16. Der Texteditor vi/vim
|
||
vi Editor vi aufrufen
|
||
vi Datei Editor vi aufrufen und Datei öffnen
|
||
vi -r swap-Dateien anzeigen
|
||
vi -r Datei Datei nach einem Stromausfall (oder Absturz) wieder herstellen
|
||
vi -R Datei Datei schreibgeschützt öffnen
|
||
3.17. Suchen nach Dateien
|
||
find Pfad Bedingung nach Dateien suchen
|
||
find Pfad | grep name nach Dateien suchen, hat sich bewährt
|
||
find Pfad -name .profile nach dem Dateinamen .profile suchen
|
||
find Pfad -user higi nach Dateien die dem Benutzer
|
||
higi gehören suchen
|
||
find Pfad -size +1024c nach Dateien die größer als 1024 Bytes
|
||
sind suchen
|
||
find Pfad -atime +7 nach Dateien suchen die älter als 7 Tage sind
|
||
find Pfad -print alle Dateien im Pfad ausgeben
|
||
find -name *.txt alle Dateien im aktuellen Pfad
|
||
mit der Endung .txt ausgeben
|
||
find / -size +16000000c alle Dateien die mehr als 16MB haben ausgeben
|
||
find / -fstype msdos -name *.zip sucht auf MS-DOS-Partition nach *.zip
|
||
find / -fstype vfat -name *.txt sucht auf Windows-Partition nach *.txt
|
||
3.18. Suchen in Dateien
|
||
grep Ausdruck Datei sucht nach dem Ausdruck in der Datei
|
||
grep -c Ausdruck Datei Anzahl der Zeilen, die den Begriff
|
||
enthalten ausgeben
|
||
grep -i Ausdruck Datei große und kleine Buchstaben nicht unterscheiden
|
||
24
|
||
3.19. Vergleichen von Dateien
|
||
grep -l Ausdruck Datei meldet die Dateien die den Ausdruck enthalten
|
||
grep -n Ausdruck Datei sucht nach dem Ausdruck und
|
||
gibt die Zeilennummer mit aus
|
||
grep -v Ausdruck Datei Ausgabe der Zeilen die den Ausdruck
|
||
nicht enthalten
|
||
egrep Ausdruck Datei sucht nach dem Ausdruck in der Datei
|
||
fgrep String Datei sucht nach dem String in der Datei
|
||
fgrep -x String Datei sucht nach dem String in der Zeile einer Datei
|
||
3.19. Vergleichen von Dateien
|
||
diff Datei1 Datei2 zeigt die Unterschiede zwischen zwei Dateien
|
||
comm [-123] Datei1 Datei2 zwei sortierte Textdateien vergleichen
|
||
cmp -l Datei1 Datei2 Binär-/Dateien vergleichen
|
||
3.20. Drucken
|
||
lpr Datei Datei auf dem Drucker ausgeben
|
||
lpr -#n Datei Datei n mal auf dem Drucker ausgeben
|
||
lpr -m Datei Datei auf dem Drucker ausgeben, nach dem Drucken
|
||
bekommt man eine mail
|
||
lpq Warteschlange anschauen
|
||
lprm Jobnummer Druckauftrag/Job aus der Warteschlange löschen
|
||
pr Dateien für das Drucken aufbereiten
|
||
3.21. File-Inhalt bearbeiten
|
||
compress Datei Datei komprimieren nach Datei.Z
|
||
uncompress Datei.Z Datei.Z dekomprimieren
|
||
expand Datei1 > Datei2 Tabs aus der Datei1 entfernen und
|
||
zur Datei2 schreiben
|
||
unpack Datei.z Datei.z dekomprimieren
|
||
sort Datei1 > Datei2 die Zeilen der Datei1 in
|
||
die Datei2 sortieren
|
||
tr [A-Z] [a-z] < Datei1 > Datei2 Klein durch Großbuchstaben ersetzen
|
||
uniq Datei Datei ausgeben bis auf doppelte Zeilen
|
||
3.22. TAR (tape archiver) verwaltet Dateiarchive
|
||
Syntax:
|
||
tar [-Acdrtux] [–delete] [-b n] [-BgGhijklmMoOpPPsSvwWz] [-C Verzeichnis] [-f Datei]
|
||
[-F Datei] [-K Datei] [-L Länge] [-N Datum] [-T Datei] [-V Name] [-X Datei] [0-7] [lmh]
|
||
25
|
||
3. Befehle
|
||
Optionen:
|
||
-A Archiv an ein Archiv anhängen
|
||
-c erzeugt ein neues Archiv
|
||
-d vergleicht das Archiv mit dem Dateisystem
|
||
--delete Datei löscht die Datei aus dem Archiv (nicht für Magnetbänder)
|
||
-r hängt Dateien an das Archiv an (nicht für Magnetbänder)
|
||
-t zeigt den Inhalt des Archivs
|
||
-u ersetzt neue Dateien oder fügt sie ein (nicht für Magnetbänder)
|
||
-x kopiert/entpackt Datei-en aus dem Archiv
|
||
--atime-preserve Zugriffszeit nach der Archivierung zurück setzen
|
||
-b n setzt die Blockgröße n*512Bytes (Voreinstellung n=20)
|
||
-B unterdrückt den Abbruch beim Lesen unvollständiger Blöcke
|
||
zum Lesen von 4.2BSD Pipes
|
||
-C Verzeichnis wechselt in das Verzeichnis, um dort weitere Dateien zu
|
||
archivieren
|
||
-f Datei benutzt Datei oder das Gerät als Archiv
|
||
-F Datei bei -M führt das Shellscript Datei aus, wenn das Medium voll ist
|
||
-G erzeugt am Anfang des Bandarchives einen speziellen Eintrag für
|
||
jedes archivierte Verzeichnis; spezielles GNU Format
|
||
-g Datei erzeugt eine Datei mit einer Liste der archivierten
|
||
Verzeichnisse als Zeitmarke der Archivierung; wenn die Datei
|
||
bereits existiert, werden nur die Dateien archiviert, die nach
|
||
dieser Zeitmarke erzeugt oder verändert wurden (spezielles GNU
|
||
Format: 1.Zeile=Zeitmarke, 1.Feld=Nr. der Partition,
|
||
2.Feld=Inode des Verzeichnisses, 3.Feld=Name des Verzeichisses)
|
||
-h archiviert die referenzierten Dateien anstelle der Links
|
||
-i ignoriert Blöcke mit Nullbytes im Archiv
|
||
-j erzeugt ein mit bzip2 komprimiertes Archiv
|
||
-k existierende Dateien werden beim Auspacken von Archiven nicht
|
||
überschrieben
|
||
-K Datei beginnt eine Aktion bei Datei im Archiv
|
||
-l verhindert Archivierung von Dateien aus anderen Dateisystemen
|
||
-L Länge wartet auf Medienwechsel nach Länge Bytes
|
||
-m das Datum der letzten Änderung wird nicht mit archiviert
|
||
-M das Archiv ist auf mehrere Medien verteilt (Multi-Volume)
|
||
-N Datum archiviert nur Dateien, die neuer sind als Datum
|
||
-o benutzt das alte V7 tar-Format anstelle des ANSI Formates
|
||
-O schreibt die Dateien in die Standardausgabe
|
||
-p erhält die Zugriffsrechte der Dateien
|
||
-P archiviert mit absoluten Dateinamen
|
||
-R gibt zu jeder Meldung die Blocknummer des Archivblocks aus, von
|
||
dem die Meldung verursacht wurde
|
||
-s zeigt an, dass die Liste von Dateien im Argument die gleiche
|
||
Reihenfolge hat wie die Dateien im Archiv
|
||
-T Datei holt die Namen der zu archivierenden Dateien aus Datei
|
||
26
|
||
3.23. Disketten/Festplatten
|
||
-v meldet jede Aktion
|
||
-V Name erzeugt ein Archiv mit dem (internen) Label Name
|
||
-w erwartet interaktiv Bestätigung jeder Aktion
|
||
-W verifiziert die geschriebenen Daten im Archiv
|
||
-X Datei liest aus der Datei Namen oder reguläre Ausdrücke von bzw. für
|
||
Dateien, die nicht archiviert werden soll
|
||
-z erzeugt ein mit gzip komprimiertes Archiv
|
||
-Z erzeugt ein mit compress komprimiertes Archiv
|
||
-{0...7}{lmh} spezifiziert das Gerät und die Dichte des Speichermediums (für
|
||
Diskettenarchive ohne Bedeutung); 0 ist der erste Streamer, 1
|
||
1 der zweite und so weiter; die Dichte bestimmt den Bandtyp
|
||
3.22.1. Packen
|
||
tar rPvf name.tar /etc/ Verzeichnis zum tar zufügen
|
||
tar rPvf name.tar /etc/inittab* Datei-en zum tar zufügen
|
||
tar cPvzf name.tgz name.tar tar -> tgz
|
||
tar cPvMf /dev/fd0 name.tgz tgz auf Diskette sichern
|
||
tar cvzf Datei.tgz Verzeichnis Packt Verzeichnis in Datei.tgz
|
||
3.22.2. Entpacken
|
||
tar xvfpM /dev/fd0 tgz von Diskette holen
|
||
tar xvfpz name.tgz tgz -> tar
|
||
tar tvfp name.tar Inhalt des Tars anzeigen
|
||
tar xvfp name.tar Tar entpacken
|
||
3.23. Disketten/Festplatten
|
||
dd if=/dev/zero of=/dev/sda bs=512 count=1 überschreibt den MBR der ersten
|
||
SCSI-Platte mit Nullen
|
||
fdisk Gerätedatei Partitionstabelleneditor
|
||
fdisk -l /dev/hda zeigt die Partitionstabelle der ersten
|
||
Festplatte an
|
||
fdisk -C 12416 -H 15 -S 63 /dev/hdb Partitionstabelle mit vorgegebenen
|
||
C-Zylinder H-Köpfe S-Sektoren pro Spur
|
||
bearbeiten
|
||
cfdisk Gerätedatei Curses-Partitionstabelleneditor
|
||
fdformat /dev/fd0u1440 Diskette Low-Level-Formatieren
|
||
mformat a: Dateisystem DOS-FAT anlegen
|
||
mkdosfs -I /dev/sda Superfloppy-Format mit FAT16-Dateisystem
|
||
27
|
||
3. Befehle
|
||
für z.B. USB-Sticks anlegen
|
||
mkdosfs -n Name /dev/sda1 FAT16-Dateisystem mit Name anlegen
|
||
mkfs -t minix /dev/fd0u1440 1440 Dateisystem minix anlegen
|
||
mke2fs /dev/fd0u1440 Dateisystem ext2 anlegen
|
||
mkfs -V -t ext2 /dev/sda7 Dateisystem ext2 anlegen
|
||
fsck -V -t ext2 /dev/sda7 Dateisystem Prüfung und Reparatur
|
||
tune2fs Optionen Gerät Einstellungen zum ext2 Dateisystem
|
||
mount Gerät Verzeichnis Gerät im Verzeichnis anmelden
|
||
mount -t minix /dev/fd0 /mnt Diskette im minix-Format anmelden
|
||
mount -t ext2 /dev/fd0 /mnt Diskette im ext2-Format anmelden
|
||
mount -t msdos /dev/fd0 /mnt Diskette im msdos-Format anmelden
|
||
mount -o loop disk.img /mnt Datei als Diskette anmelden
|
||
umount Verzeichnis Verzeichnis abmelden
|
||
umount /mnt Diskette abmelden
|
||
3.23.1. Dateisystem verschlüsseln
|
||
modprobe loop_fish2 Modul für die Verschlüssellung laden
|
||
dd if=/dev/urandom of=datei bs=1024 count=10000 10MB Datei anlegen
|
||
losetup -e twofish /dev/loop0 datei Datei anmelden (Passwort anlegen)
|
||
mkfs -t ext2 /dev/loop0 Dateisystem anlegen
|
||
mount -t ext2 /dev/loop0 /mnt Dateisystem anmelden
|
||
umount /mnt/ Dateisystem abmelden
|
||
losetup -d /dev/loop0 Datei abmelden
|
||
/dev/loop0 /datei /mnt ext2 twofish defaults /etc/cryptotab
|
||
/datei /mnt ext2 loop,encryption=twofish,noauto,user /etc/fstab
|
||
3.24. Zugriffsrechte/Eigentümer/Gruppe
|
||
ls -l /dev/fd0
|
||
brw-rw-rw- 1 root disk 2, 0 Feb 16 16:30 /dev/fd0
|
||
| | | +----- Gerät
|
||
| | +------ Minor-Device-Nummer(Nebennummer)
|
||
| +----------- Major-Device-Nummer(Hauptnummer)
|
||
+-------------------- b-blockorientierte Geräte c-zeichenorientierte Geräte
|
||
ls -laFi linux.txt
|
||
1561 -rw-r----- 1 higi users 26419 Mar 13 19:19 linux.txt
|
||
| |||||||||| | | | | | | | +----- Datei/Verzeichnisname
|
||
28
|
||
3.24. Zugriffsrechte/Eigentümer/Gruppe
|
||
| |||||||||| | | | | | | +----------- Uhrzeit
|
||
| |||||||||| | | | | | +-------------- Tag
|
||
| |||||||||| | | | | +------------------ Monat
|
||
| |||||||||| | | | +------------------------ Größe
|
||
| |||||||||| | | +----------- Gruppe
|
||
| |||||||||| | +----------------- Eigentümer
|
||
| |||||||||| +------------------- Links
|
||
| |||||||||+---- alle Anderen x-ausführen oder t-text mit x-bit
|
||
| ||||||||| T-text ohne x-bit
|
||
| ||||||||+----- alle Anderen w-schreiben
|
||
| |||||||+------ alle Anderen r-lesen
|
||
| ||||||+------- Gruppe x-ausführen oder s-Gruppenkennung mit x-bit
|
||
| |||||| S-Gruppenkennung ohne x-bit
|
||
| |||||+-------- Gruppe w-schreiben
|
||
| ||||+--------- Gruppe r-lesen
|
||
| |||+---------- Eigentümer x-ausführen oder s-Benutzerkennung mit x-bit
|
||
| ||| S-Benutzerkennung ohne x-bit
|
||
| ||+----------- Eigentümer w-schreiben
|
||
| |+------------ Eigentümer r-lesen
|
||
| +------------- d-Verzeichnis l-Verknüpfung
|
||
+------- inode
|
||
chmod werwiewas Datei Zugriffsrechte einer Datei/Verzeichnis ändern
|
||
wer: u-Eigentümer g-Gruppe
|
||
o-alle Anderen a-alle 3 Benutzergruppen
|
||
wie: +-hinzufügen --wegnehmen
|
||
=-nachfolgendes Muster setzen
|
||
was: r-lesen w-schreiben x-ausführen
|
||
( s-Benutzerkennung oder Gruppenkennung
|
||
t-text )
|
||
chmod zahl Datei Zugriffsrechte einer Datei/Verzeichnis ändern
|
||
zahl-> rwx rwx rwx -> 4+2 4 0 -> 640
|
||
421 421 421
|
||
640 -> Eigentümer lesen schreiben
|
||
Gruppe lesen
|
||
chmod nzahl Datei Zugriffsrechte und Kennung einer Datei/
|
||
Verzeichnis ändern
|
||
bit 4 von n, mit Benutzerkennung/
|
||
Benutzerrechten ausführen
|
||
bit 2 von n, mit Gruppenkennung/
|
||
Gruppenrechten ausführen
|
||
bit 1 von n, mit text werden die Dateien vor
|
||
dem Löschen durch fremde Benutzer geschützt,
|
||
macht nur bei Verzeichnissen sinn
|
||
chown NeuerEigentümer Datei Eigentümer der Datei ändern
|
||
29
|
||
3. Befehle
|
||
chgrp NeueGruppe Datei Gruppenzugehörigkeit der Datei ändern
|
||
passwd Benutzer Benutzerpasswort ändern
|
||
useradd Optionen Benutzer Benutzer anlegen
|
||
-u Benutzer-ID (-u 500)
|
||
-g Primäre Gruppenzugehörigkeit (-g users)
|
||
-G weitere Gruppenzugehörigkeit
|
||
-d Homeverzeichnis (-d /home/user500)
|
||
-s Shell (-s /bin/bash)
|
||
-m legt das Homeverzeichnis an und kopiert die
|
||
Dateien aus /etc/skel in das Homeverzeichnis
|
||
-c Kommentar
|
||
-p Passwort im Klartext!
|
||
-e Auslaufdatum (-e 2002.12.24)
|
||
-f Pufferzeit
|
||
usermod Optionen Benutzer Benutzerdaten verändern
|
||
userdel Benutzername Benutzer löschen
|
||
userdel -r Benutzername Benutzer und Benutzerverzeichnis löschen
|
||
vipw Benutzerdatenbank ändern
|
||
su Shell mit root-Zugriffsrechten starten
|
||
su - Shell im root-Homeverzeichnis
|
||
mit root-Zugriffsrechten starten
|
||
sux - Shell im root-Homeverzeichnis
|
||
mit root-Zugriffsrechten starten und X-Variabeln
|
||
su -l Benutzername Shell im Benutzer-Homeverzeichnis
|
||
mit Benutzer-Rechten starten
|
||
3.25. Prozessbefehle
|
||
S=schlafend R=running(laufend) T=terminiert Z=Zombie
|
||
[Strg]+[z] im Vordergrund laufendes Programm anhalten
|
||
[1]+ Stopped
|
||
| +----- schlafend
|
||
+------------- Jobnummer
|
||
bg %JOB Job im Hintergrund fortsetzen
|
||
fg %JOB Job im Vordergrund fortsetzen
|
||
Programm & Programm im eigenem Prozess starten
|
||
[1] 819
|
||
| +--------- Prozessnummer
|
||
+------------- Jobnummer
|
||
ps Überblick über die aktuell laufenden Prozesse
|
||
ps aux gibt in den meisten Fällen eine ausreichende Auskunft
|
||
pstree zeigt den kompletten Prozessbaum an
|
||
30
|
||
3.26. Re-install Grub with Live CD
|
||
jobs das Schellkommando gibt eine Liste der aktuellen Jobs aus
|
||
top Programm, das die aktuellen Prozesse anzeigt
|
||
htop Programm, das die aktuellen Prozesse anzeigt
|
||
kill PID Prozess killen
|
||
kill %JOB Job killen
|
||
kill -1 PID Prozess initialisieren
|
||
kill -1 %JOB Job initialisieren
|
||
kill -9 PID Prozess killen
|
||
kill -9 %JOB Job killen
|
||
kill -15 PID Prozess beenden
|
||
kill -15 %JOB Job beenden
|
||
kill -HUP PID veranlasst die meisten Dämonen ihre Konfigurationsdateien
|
||
erneut zu lesen
|
||
3.26. Re-install Grub with Live CD
|
||
3.26.1. Chroot
|
||
sudo fdisk -l Patition für das chroot festellen
|
||
sudo mount /dev/sdb3 /mnt/gentoo chroot z.B. /dev/sdb3 auf z.B. /mnt/gentoo mounten
|
||
sudo mount -t proc none /mnt/gentoo/proc Mounten der /proc und /dev Dateisysteme
|
||
sudo mount --rbind /dev /mnt/gentoo/dev
|
||
sudo chroot /mnt/gentoo /bin/bash Betreten der neuen Umgebung
|
||
env-update Umgebungsvariablen aktualisieren
|
||
source /etc/profile Profil laden
|
||
export PS1="(chroot) $PS1" Promt anpassen
|
||
3.26.2. Grub
|
||
sudo grub
|
||
grub> find /boot/grub/stage1
|
||
grub> root (hd0,1)
|
||
grub> setup (hd0)
|
||
grub> quit
|
||
reboot
|
||
3.27. Software installieren
|
||
3.27.1. rpm-Format
|
||
http://www.rpm.org/ weiterführende Informationen
|
||
http://www.rpmfind.net/ Hilfe zu fehlenden rpms oder Merkmalen
|
||
/var/lib/rpm/Packages rpm-Datenbank
|
||
31
|
||
3. Befehle
|
||
/var/lib/rpm/packages.rpm -> /var/lib/rpm/Packages
|
||
GeänderteKonfigurationsdateienüberschreibtrpmbeimUpdatenicht,sondernhebt
|
||
sie als Datei.rpmsave auf. diff hilft die Unterschiede anzuzeigen.
|
||
rpm -i Paketname.rpm Installiert mit Prüfung auf Abhängigkeiten
|
||
rpm -i --nodeps Paketname.rpm Installiert ohne Prüfung auf Abhängigkeiten
|
||
rpm -i --test Paketname.rpm Testet die Installation ohne Daten zu verändern
|
||
rpm -iv Paketname.rpm Installiert mit Prüfung auf Abhängigkeiten
|
||
und Rückmeldung
|
||
rpm -ivh Paketname.rpm Installiert, prüft, meldet und
|
||
zeigt den Vorgang an
|
||
rpm -Uvh Paketname.rpm Update eines rpm-Binärpaketes
|
||
rpm -Fvh Paketname.rpm Aktualisiert rpm-Binärpaket
|
||
rpm -Fvh *.rpm Aktualisiert alle rpm-Binärpakete im .
|
||
rpm -e Paket Deinstalliert mit Prüfung auf Abhängigkeiten
|
||
rpm -qa zeigt die installierten rpm-Pakete an
|
||
rpm -qa | grep -i Paket zeigt ob das Paket installiert ist
|
||
rpm -qi Paket zeigt Informationen über das installierte Paket
|
||
rpm -qip Paketname.rpm zeigt Informationen über das rpm-Binärpaket
|
||
rpm -ql Paket zeigt die enthaltenen Dateien des installierten
|
||
Paketes an
|
||
rpm -qlp Paketname.rpm zeigt die enthaltenen Dateien des
|
||
rpm-Binärpaketes
|
||
rpm -qf /Pfad/Datei zeigt das Paket aus dem die Datei stammt
|
||
rpm -q --requires Paket zeigt die geforderten Merkmale des installierten
|
||
Paketes an
|
||
rpm -qp --requires Paketname.rpm zeigt die geforderten Merkmale des
|
||
rpm-Binärpaketes
|
||
3.27.2. deb-Format
|
||
dpkg -i Paketname.deb Installation eines deb-Binärpaketes
|
||
dpkg -P Paket Deinstalliert mit Prüfung auf Abhängigkeiten
|
||
dpkg -l zeigt die installierten deb-Pakete an
|
||
dpkg -l "*Paket*" zeigt ob das Paket installiert ist
|
||
dpkg -p Paket zeigt Informationen über das installierte Paket
|
||
dpkg -I Paketname.deb zeigt Informationen über das deb-Binärpaket
|
||
dpkg -L Paket zeigt die enthaltenen Dateien des installierten
|
||
Paketes an
|
||
dpkg -c Paketname.deb zeigt die enthaltenen Dateien des
|
||
32
|
||
3.27. Software installieren
|
||
deb-Binärpaketes
|
||
dpkg -S /Pfad/Datei zeigt das Paket aus dem die Datei stammt
|
||
apt neue Alternative für apt-get
|
||
apt-get autoclean Veraltete Pakete aus dem Cache löschen
|
||
apt-get clean alle Pakete aus dem Cache löschen
|
||
apt-get install Paket Installiert mit Prüfung auf Abhängigkeiten
|
||
apt-get remove Paket Deinstalliert mit Prüfung auf Abhängigkeiten
|
||
apt-get --purge remove Paket Deinstalliert vollständig
|
||
apt-get autoremove Deinstalliert nicht benötigte Pakete
|
||
apt-get dist-upgrade aktualisiert die gesamte Distribution
|
||
apt-cache search Name durchsucht die gesamte Distribution
|
||
apt-get update APT-Datenbank auf den aktuellen Stand bringen
|
||
dpkg --get-selections > Paketliste Paketliste exportieren
|
||
###sudo dpkg --set-selections < Paketliste Paketliste importieren geht nicht
|
||
3.27.3. Portage Gentoo
|
||
emerge --sync Aktualisieren des Portage-Tree mit rsync
|
||
emerge --webrsync Aktualisieren mit dem Portage-Snapshots
|
||
emerge --search Pragrammname Nach Software suchen
|
||
emerge --searchdesc Name Suche nach Paketen im Zusammenhang mit dem Namen
|
||
emerge Programmname Software installieren
|
||
emerge -pv Programmname Installation von Programmen simulieren, USE-Flags anzeigen
|
||
emerge --fetchonly Programmname Quellen herunterzuladen, noch nicht kompilieren
|
||
emerge --unmerge Programmname Entfernung von Programm aus dem System
|
||
emerge --update --ask world Aktualisierung des Systems
|
||
emerge -f -u -a world Aktualisierung herunterzuladen, aber nicht
|
||
kompilieren und installieren
|
||
emerge --update --deep world Aktualisierung des gesamten Systems
|
||
emerge --update --newuse world Neuerstellung des gesamten System
|
||
emerge --depclean verweiste Abhängigkeiten entfernen
|
||
revdep-rebuild reverse Abhängigkeiten neu erstellen
|
||
etc-update Konfigurationsdateien zusammenzuführen
|
||
equery belongs /Pfad/Datei zeigt das Paket aus dem die Datei stammt
|
||
equery depends Programmname Abhängigkeiten anzeigen
|
||
equery depgraph Programmname Abhängigkeiten als Baum anzeigen
|
||
equery files Programmname Dateien auflisten, die zu einem Ebuild gehören
|
||
33
|
||
3. Befehle
|
||
equery hasuse USE-Flag Pakete suchen, die ein spezifisches USE-Flag
|
||
benutzen
|
||
equery size Programmname Paketgröße anzeigen
|
||
equery uses Programmname Gesetzte und nicht gesetzte USE-Flags
|
||
equery which Programmname Anzeigen des Ebuildpfads
|
||
euse -a Alle aktiven USE-Flags anschauen
|
||
euse -a -l Aktive lokale USE-Flags anschauen
|
||
euse -E USE-Flag Setzen von USE-Flags
|
||
euse -D USE-Flag Deaktivieren von USE-Flags
|
||
3.27.4. Quelltexte
|
||
tar xvfz Source.tgz Quelltext entpacken
|
||
./configure Makefile konfigurieren
|
||
make Programm übersetzen,
|
||
wenn Makefile vorhanden
|
||
make install Programm installieren
|
||
make uninstall Programm deinstallieren
|
||
3.27.5. Hilfe
|
||
ldd Programm zeigt die zu ladenen Bibliotheken des Programms
|
||
strace -eopen Programm zeigt die geladenen Bibliotheken des Programms
|
||
3.28. Im Netz
|
||
#ifconfig -a -> ip link
|
||
ip link alle aktiven Netzwerkschnittstellen ausgeben
|
||
ifconfig | grep eth0 | cut -c 39-55 Ethernet-Adresse von eth0 ausgeben
|
||
ftp Rechner Programm zur Übertragung von Files
|
||
via Internet starten
|
||
host www.suse.de befragt den DNS-Server nach
|
||
der IP-Nummer des Rechners
|
||
host 192.168.9.10 fragt nach dem Namen des Rechners
|
||
nslookup www.debian.de befragt den DNS-Server nach
|
||
der IP-Nummer des Rechners
|
||
nslookup 192.168.11.12 fragt nach dem Namen des Rechners
|
||
ping Rechner sendet Pakete an Rechner mit Echo
|
||
rlogin Rechner auf anderen Rechner anmelden
|
||
34
|
||
3.29. SSH
|
||
scp Rechner:Pfad Rechner:Pfad Programm zur Übertragung von Files
|
||
ssh Rechner auf anderen Rechner anmelden
|
||
ssh Rechner -l root oder auf anderen Rechner als root anmelden
|
||
ssh root@Rechner
|
||
telnet Rechner Kommunikation ueber das TELNET-Protokoll
|
||
nmap -sT -PT Rechner Scannt die Ports von Rechner
|
||
nmap -sT -p 1-65535 -PT Rechner Scannt alle Ports von Rechner
|
||
netcat ip port zeigt den angegebenen Port an
|
||
3.29. SSH
|
||
SSH(Secure shell) ist ein verschlüsseltes Netzwerkprotokoll auf TCP-Port 22, ermög-
|
||
licht eine sichere authentifizierte und verschlüsselte Verbindung zwischen zwei Rech-
|
||
nern über ein unsicheres Netzwerk.
|
||
scp Rechner:Pfad Rechner:Pfad Programm zur Übertragung von Files
|
||
ssh Rechner auf anderen Rechner anmelden
|
||
ssh Rechner -l root oder auf anderen Rechner als root anmelden
|
||
ssh root@Rechner
|
||
3.29.1. Generierung eines DSA Schlüsselpaares
|
||
ssh-keygen -t dsa -b 2048 generiert DSA-Schlüsselpaar mit
|
||
einer Bit-Tiefe von 2048
|
||
~/.ssh/id_dsa - private-key mit <ENTER> bestätigen
|
||
passphrase - Passwort für den private-key und der Anmeldung,
|
||
für passwortlose SSH-Verbindungen weg lassen oder
|
||
zu Beginn einer Sitzung mit ssh-add ~/.ssh/id_dsa
|
||
abfragen lassen
|
||
3.29.2. Public-Key auf dem Zielrechner hinzufügen
|
||
cat ~/.ssh/id_dsa.pub | ssh zieluser@zielrechner \
|
||
"mkdir -p .ssh; cat >> .ssh/authorized_keys"
|
||
- public-key auf dem Zielrechner hinzufügen
|
||
ssh zieluser@zielrechner "chmod 600 ~/.ssh/authorized_keys"
|
||
- public-key auf dem Zielrechner schützen
|
||
3.29.3. Private-Key auf dem Qellrechner
|
||
~/.ssh/id_dsa - der Private-Key gehört auf dem Qellrechner in das
|
||
~/.ssh/ Verzeichnis
|
||
35
|
||
3. Befehle
|
||
3.29.4. Login nur mit SSH-Keys erlauben
|
||
/etc/ssh/sshd_config - folgendes in die Datei sshd_config
|
||
PubkeyAuthentication yes eingetragen
|
||
UsePAM no
|
||
PasswordAuthentication no
|
||
rcsshd restart - SSH-Dämon neu starten
|
||
3.30. GnuPG
|
||
Mit GnuPG kann man Daten signieren und verschlüsseln. GnuPG unterstüzt symme-
|
||
trische und asymmetrische Verschlüsselung.
|
||
http://www.gnupg.org/ http-Adresse für GnuPG
|
||
http://www.gnupg.org/related_software/gpa/ Grafische Benutzereingabe
|
||
http://www.heise.de/security/dienste/pgp/ Krypto-Kampagne, bei der
|
||
ein Abgleich zwischen
|
||
Person, Personalausweis
|
||
und Schlüssel erfolgt
|
||
http://kmail.kde.org/ Mailprogramme mit GnuPG
|
||
http://www.mutt.org/ Unterstützung
|
||
http://www.ximian.com/products/evolution/
|
||
3.30.1. Erzeugen
|
||
gpg --gen-key Schlüssel-Paar erzeugen
|
||
gpg --gen-revoke 0xKeyID Widerruf Zertifikat erzeugen
|
||
> gpg-rev-Will_no_longer_use_it
|
||
> gpg-rev-Lost_private_key
|
||
> gpg-rev-Forgot_password
|
||
> gpg-rev-Key_compromised
|
||
3.30.2. Hochladen
|
||
gpg --keyserver wwwkeys.de.pgp.net --send-keys 0xKeyID
|
||
Public Key auf den Keyserver hochladen
|
||
gpg -a --export 0xKeyID | mail -s "add" pgp-public-keys@keys.de.pgp.net
|
||
Public Key an den Keyserver verschicken
|
||
Keyserver:
|
||
Land eMail-Adresse HTTP-Adresse
|
||
---- ------------- ------------
|
||
Deutschland pgp-public-keys@keys.de.pgp.net http://wwwkeys.de.pgp.net/
|
||
36
|
||
3.30. GnuPG
|
||
Östereich pgp-public-keys@keys.at.pgp.net http://wwwkeys.at.pgp.net/
|
||
Schweiz gp-public-keys@keys.ch.pgp.net http://wwwkeys.ch.pgp.net/
|
||
3.30.3. Löschen
|
||
gpg --recv-keys 0xKeyID Key vernichten
|
||
gpg --import WiderrufZertifikat
|
||
gpg --send-keys 0xKeyID
|
||
gpg --delete-key 0xKeyID löscht einen öffentlichen Schlüssel
|
||
cat gpg-rev-xxx | mail -s "add" pgp-public-keys@keys.de.pgp.net
|
||
Widerruf Zertifikat an den Keyserver
|
||
verschicken
|
||
3.30.4. Holen
|
||
gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0xKeyID
|
||
Public-Key vom Keyserver holen
|
||
mail -s "get thomasb@trash.net" pgp-public-keys@keys.de.pgp.net
|
||
Public-Key per E-Mail
|
||
vom Keyserver holen
|
||
gpg --import Key.txt Public-Key inportieren
|
||
3.30.5. Signatur erzeugen und prüfen
|
||
gpg -a --sign Datei einen Text signieren, erzeugt Datei.asc
|
||
gpg --verify Datei.asc Datei eine Signatur prüfen
|
||
gpg --clearsign Datei einen Text signieren,
|
||
erzeugt neue Datei.asc
|
||
gpg --verify Datei.asc eine Signatur prüfen
|
||
3.30.6. Verschlüsseln
|
||
gpg -a -r Empfänger0xKeyID -e Datei
|
||
einen Text verschlüsseln,
|
||
erzeugt Datei.asc
|
||
3.30.7. Entschlüsseln
|
||
gpg Datei.asc einen verschüsselten und signierten Text
|
||
entschlüsseln und die Signatur prüfen,
|
||
erzeugt Datei
|
||
37
|
||
3. Befehle
|
||
3.30.8. Schlüsselverwaltung
|
||
gpg --edit 0xKeyID Schlüsselverwaltung
|
||
help - Anzeige aller Befehle
|
||
quit - Das Menu beenden
|
||
3.30.9. Anzeigen
|
||
gpg --list-keys zeigt alle öffentlichen Schlüssel
|
||
gpg --list-sigs zeigt alle Unterschriften
|
||
gpg --fingerprint zeigt alle Fingerabdrücke
|
||
3.30.10. Exportieren
|
||
gpg -a --export 0xKeyID > Datei exportiert den Schlüssel 0xKeyID
|
||
in Datei
|
||
gpg -a --export > Datei exportiert alle Schlüssel in Datei
|
||
3.31. X11 - Grafik
|
||
/etc/XF86Config bis XFree86.3.3.x Konfigurationsdatei
|
||
/etc/X11/XF86Config ab XFree86.4.x Konfigurationsdatei
|
||
[Alt]+[F1] bis [F6] Umschalten zwischen Textkonsolen alle Shells
|
||
[AltGr]+[Fn] Umschalten zwischen den Textkonsolen n+12
|
||
[Alt]+[Pfeil links oder rechts] um durch die benutzten Konsolen zu stöbern
|
||
[Strg]+[Alt]+[F1] bis Umschalten zu Textkonsolen alle Shells
|
||
[Strg]+[Alt]+[F6] aus X11 heraus
|
||
[Strg]+[Alt]+[F7] Umschalten zu X11 aus Textkonsole alle Shells
|
||
bei Caldera 2.2 [Alt]+[F8]
|
||
[Strg]+[Alt]+[<--] X-Server sofort beenden
|
||
[Strg]+[Alt]+[+] verschiedene Auflösungen im laufenden
|
||
[Strg]+[Alt]+[-] Betrieb wechseln
|
||
xf86config Shell-Konfigurationsprogramm für X 3+4
|
||
XF86Setup X-Konfigurationsprogramm bis XFree86.3.3.x
|
||
sax X-SuSE-Konfigurationsprogramm bis XFree86.3.3.x
|
||
sax2 X-SuSE-Konfigurationsprogramm ab XFree86.4.x
|
||
startx X-Server starten
|
||
startx -- -bpp 16 X-Server mit 16 Bit starten
|
||
startx - -- :0 vt07 X-Server auf F7 starten
|
||
startx - -- :1 vt08 2. X-Server auf F8 starten
|
||
export WINDOWMANAGER=WM X-Umgebungsvariable auf WM(kde, gnome,
|
||
38
|
||
3.31. X11 - Grafik
|
||
fvwm, olwm ...) ändern
|
||
3.31.1. Bildschirmschoner/Maus
|
||
xset s auf Standardeinstellungen zurücksetzen
|
||
xset s 60 nach 1 Minute aktivieren
|
||
xset s blank schwarzen Bildschirm verwenden
|
||
xset s noblank X-Logo statt schwarzen Bildschirm anzeigen
|
||
xset s 60 3 X-Logo alle 3 Sekunden neu platzieren
|
||
xset s off Bildschirmschoner deaktivieren
|
||
xset s on Bildschirmschoner einschalten
|
||
xset s activate Bildschirmschoner sofort aktivieren
|
||
xset q aktuelle Einstellungen anzeigen
|
||
xset -dpms Energy Star features ausschalten
|
||
xset +dpms Energy Star features einschalten
|
||
xsetroot -solid blue Hintergrund
|
||
xset m default standart Mausbeschleunigung
|
||
xset m 3 10 normal schnelle Maus
|
||
xset m 7 10 schnelle Maus
|
||
3.31.2. X11 ohne Maus
|
||
[Umschalt]+[Strg]+[Num] Maussteuerung am Ziffernblock ein/ausschalten
|
||
[4],[6],[8],[8] links, rechts, oben, unten
|
||
[*],[-] auf linke, rechte Maustaste umschalten
|
||
[5],[+],[0],[5] Maustaste, Doppelklick, gerückt halen, lösen
|
||
39
|
||
4. Verzeichnisse und Dateien
|
||
4.1. Dateibaum
|
||
/ oberste Verzeichnis
|
||
im Dateisystem (Root/Wurzel)
|
||
. Verweis auf sich selbst
|
||
.. Verweis auf das übergeordnete Verzeichnis
|
||
/bin/ ausführbare Dateien der wichtigsten Befehle
|
||
#/bin/init -> /sbin/init
|
||
/boot/ enthält die Dateien des LILO Bootloaders und
|
||
kann Kernel-Images enthalten
|
||
/boot/boot.b der LILO-Maschinencode
|
||
/boot/map Informationen für LILO
|
||
um den Betriebssystemkern zu starten
|
||
/boot/message wird vor der LILO-Bootauswahl ausgegeben
|
||
/boot/vmlinuz der Betriebssystemkern kann auch im / liegen
|
||
/cdrom/ dient zur CDROM-Einbindung
|
||
/dev/ Sammlung der Gerätedateien
|
||
/dev/audio ähnlich wie /dev/dsp, Daten werden y-Law codiert
|
||
/dev/cdrom Link auf den CD-Rom Treiber oft /dev/hdc
|
||
/dev/console reale Console
|
||
/dev/dsp Link auf den A/D-W. der Soundk. (-> /dev/dsp0)
|
||
/dev/dsp0 Analog/Digital-Wandler der Soundkarte
|
||
/dev/fd0 erstes Diskettenlaufwerk
|
||
/dev/fd1 zweites Diskettenlaufwerk
|
||
/dev/full beim Schreiben wird der Fehler ENOSPC erzeugt
|
||
/dev/hda erstes (E)IDE Gerät
|
||
/dev/hda1 -> /dev/hda4 primäre Partitionen
|
||
/dev/hda5 -> /dev/hda? logische Partitionen
|
||
/dev/hdb zweites (E)IDE Gerät
|
||
/dev/hdc drittes (E)IDE Gerät
|
||
/dev/hdd viertes (E)IDE Gerät
|
||
/dev/initrd zusätzliche RAM-Disk mit Kernelmodulen und
|
||
Bootsystem zur Initialisierung des Kernels
|
||
/dev/kmem virtueller Arbeitsspeicher
|
||
/dev/loop* ermöglicht eine Datei wie eine Diskette oder
|
||
Festplattenpartition zu mounten
|
||
/dev/lp0 erste parallele Schnittstelle
|
||
41
|
||
4. Verzeichnisse und Dateien
|
||
/dev/lp1 zweite parallele Schnittstelle
|
||
/dev/lp2 dritte parallele Schnittstelle
|
||
/dev/md* zusammengelegte Festplatten linear,Raid0 oder 1
|
||
/dev/mem physikalischer Arbeitsspeicher
|
||
/dev/midi00 direkte Kommunikation mit einem MIDI-Gerät
|
||
/dev/mixer Link auf den Mixer (-> /dev/mixer0)
|
||
/dev/mixer0 Mischpult der 1. Soundkarte
|
||
/dev/modem Link auf den Modemtreiber (-> /dev/ttyS0)
|
||
/dev/mouse Link auf den Maustreiber (-> /dev/psaux)
|
||
/dev/music eine andere Art von Sequencer, speziell für die
|
||
MIDI-Schnittstelle
|
||
/dev/nst* SCSI-Streamer (No Rewind On Close)
|
||
/dev/null Mülleimer des Systems
|
||
/dev/port zum ansprechen einzelner IO Ports
|
||
/dev/psaux PS/2-Maus
|
||
/dev/pts/ Unix98 PTY slaves
|
||
/dev/ram Link auf die RAM-Disk (-> /dev/ram0)
|
||
/dev/random zur Erzeugung kryptografisch hochwertiger
|
||
Zufallszahlen
|
||
/dev/rmt* QIC-02-Streamer
|
||
/dev/rtc batteriegepufferte CMOS-Uhr
|
||
/dev/sd* SCSI-Festplatten
|
||
/dev/sequencer Synthesizer der Soundkarte oder ein am MIDI-Port
|
||
angeschlossenes Gerät
|
||
/dev/sndstat Informationen über den Status des Soundtreibers
|
||
/dev/st* SCSI-Streamer
|
||
/dev/tty aktive virtuelle Console
|
||
/dev/tty1 1. virtuelle Console
|
||
/dev/tty2 2. virtuelle Console
|
||
/dev/ttyS0 erste serielle Schnittstelle COM1
|
||
/dev/ttyS1 zeite serielle Schnittstelle COM2
|
||
/dev/ttyS2 dritte serielle Schnittstelle
|
||
/dev/ttyS3 vierte serielle Schnittstelle
|
||
/dev/urandom zur Erzeugung von Zufallszahlen
|
||
/dev/xd* 8-Bit XT-Festplattencontroller
|
||
/dev/zero zum Lesen beliebig vieler Nullbytes
|
||
/etc/ Konfigurationsdateien
|
||
/etc/adjtime zur Korrektur der batteriegepufferten CMOS-Uhr
|
||
(clock)
|
||
/etc/bash.bashrc globale bash konfiguration
|
||
#/etc/conf.modules -> /etc/modules.conf
|
||
/etc/cryptotab /etc/fstab für Krypto-Filesystem
|
||
/etc/csh.login Startdatei für die C-Shell
|
||
/etc/diphosts eine Art /etc/passwd für SLIP Login
|
||
/etc/DIR_COLORS festlegen der Farben für ls
|
||
42
|
||
4.1. Dateibaum
|
||
/etc/exports Verzeichnisse und Rchnernamen, die diese
|
||
Verzeichnisse per NFS mounten dürfen
|
||
wird hier eingetragen
|
||
/etc/fdprm Parameter von Diskettenformaten
|
||
/etc/fstab um Benutzern das An- und Abmelden
|
||
von Dateisystemen zu erlauben
|
||
/etc/ftpaccess Woher ? Wann ? Was ? ...
|
||
/etc/ftpusers ... und Wer NICHT ?
|
||
/etc/gateways Rechner des lokalen Netzes die Kontakt mit
|
||
anderen Netzen haben
|
||
/etc/gettydefs Beschreibung der seriellen Terminals
|
||
/etc/group Benutzergruppen und ihre Mitglieder
|
||
/etc/host auflösen von Netzwerknamen
|
||
über die resolver-Bibliothek
|
||
/etc/host.allow Rechner und Netze mit denen Verbindung aufgebaut
|
||
werden darf
|
||
/etc/host.conf eine der Konfig. den Domain Name Service
|
||
/etc/host.deny Rechner und Netze die sich nicht mit diesem
|
||
Rechner verbinden dürfen
|
||
/etc/host.equiv Rechner die "gleichartig" behandelt werden
|
||
/etc/HOSTNAME hier steht der Name des Rechners
|
||
ohne den Domainnamen
|
||
/etc/hosts ordnet IP-Adressen Hostnamen zu
|
||
/etc/inetd.conf welche Services gestartet werden (inetd)
|
||
/etc/init -> /sbin/init
|
||
/etc/init/ Dateien für Upstart
|
||
/etc/init.d/ Dateien für die Init-Levels
|
||
/etc/init.d/inetd startet den inetd, z.B. zum Anmelden
|
||
vom Netzwerk
|
||
/etc/init.d/network startet die Konfiguration
|
||
der Netzwerk Hard- und Software
|
||
/etc/init.d/portmap starte den Portmapper,
|
||
um den RPC-Server verwenden zu können
|
||
/etc/init.d/route setzt die statischen Routen im Netzwerk
|
||
/etc/init.d/sendmail kontrolliert den sendmail-Prozess
|
||
in Abhängigkeit
|
||
/etc/init.d/rc0.d/ bis rc6.d/ init 0 bis 6
|
||
/etc/init.d/rcS.d/ init S
|
||
/etc/initscript init führt die Kommandos durch dieses Script
|
||
ondemand und respawn aus
|
||
#/etc/inittab Grunteinstellung der Init-Levels und Terminals
|
||
(/sbin/init)
|
||
/etc/isdn/ ISDN-Konfigurationen
|
||
/etc/issue Begrüßungstext beim Login (getty)
|
||
/etc/ld.so.cache zur Shared Libraries identifizierung (ldconfig)
|
||
43
|
||
4. Verzeichnisse und Dateien
|
||
/etc/ld.so.conf Verzeichnisse zu neuen Shared Libraries
|
||
(ldconfig)
|
||
/etc/lilo.conf Konfigurationsdatei des LILO
|
||
/etc/login.defs Login Einstllungen (login)
|
||
/etc/magic Magic Numbers zum Erkennen von Dateien (file)
|
||
#/etc/man.config -> /etc/manpath.config
|
||
/etc/manpath.config Verzeichnisse in den Manualpages gesucht werden
|
||
/etc/minicom.users Benutzer die minicom benutzen dürfen
|
||
/etc/modules.conf Modulinformationen ((für den Kerneld(Dämon)))
|
||
/etc/motd Begrüßung nach dem Anmelden
|
||
/etc/mtab Liste der aktuell zu Verfügung
|
||
stehenden Dateisystemen
|
||
/etc/mtools.conf (un)logische Laufwerksbuchstaben
|
||
von MS-DOS für die M-Befehle
|
||
/etc/named.boot für den named Dämon des DNS
|
||
/etc/networks die Namen und IP der lokalen Netze
|
||
/etc/nntpserver der Name und die IP des Newsrechners
|
||
/etc/nologin macht jedes "normale" Einloggen unmöglich, nur
|
||
die root kann sich anmelden, sonst wird der
|
||
Inhalt von nologin ausgegeben (login)
|
||
/etc/nscd.conf Konfiguration des Name Service Cache Dämon
|
||
/etc/nsswitch.conf in welcher Reihenfolge bestimmte
|
||
Informationen abgefragt werden
|
||
/etc/opt/ Rechner-spezifische Konfigurationsdateien
|
||
der Pakete
|
||
/etc/passwd Liste aller Benutzer mit Informationen
|
||
/etc/powerstatus Zustand der Stromversorgung
|
||
/etc/printcap Beschreibung des oder der Drucker des Systems
|
||
(lpd)
|
||
/etc/profile Globale Benutzerprofile
|
||
/etc/prtocols Liste aller Internetprotokolle die vom Kernel
|
||
unterstützt werden
|
||
/etc/psdatabase enthält kernelabhängige Daten für procps
|
||
/etc/rc* Systeminitialisierungsdateien (init)
|
||
/etc/rc.config zentrale Konfigurationsdatei -> /etc/sysconfig/
|
||
/etc/rc.config.d/ weitere Dateien mit rc.config Variablen
|
||
/etc/resolv.conf bestimmt ob und wo ein Nameserver erreicht
|
||
werden kann
|
||
/etc/rpc enthält die Zuordnung der durch den rpc-Service
|
||
bereitgestellten Netzdienste zu Socketnummern
|
||
/etc/securetty Terminals von den sich der Benutzer
|
||
root anmelden darf (login)
|
||
/etc/services ordnet Portnummern Servicenamen zu
|
||
/etc/shadow hier sind die Shadow-Passwörter gespeichert
|
||
/etc/shells Liste aller Shells
|
||
44
|
||
4.1. Dateibaum
|
||
/etc/shutdown.allow Liste der Benutzer die zum Herunterfahren des
|
||
Systems berechtigt sind
|
||
/etc/skel/ Dateien die beim Anlegen
|
||
eines Benutzers in das ~ kopiert werden
|
||
/etc/SuSE-release Angaben zur installierten SuSE Linux version
|
||
/etc/sysconfig/ zentrale Konfigurationsdateien -> /etc/rc.config
|
||
/etc/syslogd.conf legt fest wohin Meldungen geschrieben werden
|
||
(syslogd)
|
||
/etc/termcap Beschreibungen für Terminaleigenschaften (getty)
|
||
/etc/ttytype legt den voreingestellten Terminaltyp
|
||
für die Terminals fest
|
||
/etc/XF86Config bis XFree86.3.3.x Konfigurationsdatei
|
||
/etc/X11/XF86Config ab XFree86.4.x Konfigurationsdatei
|
||
/floppy/ dient zur Floppy-Einbindung
|
||
/home/ Heimatverzeichnisse der Benutzer
|
||
/home/~/.bash_history gespeicherte Eingaben der bash
|
||
/home/~/.bashrc Konfiguration der bash
|
||
/home/~/.ctwmrc Konfiguration des ctwm-Fenstermanagers
|
||
/home/~/.exrc Konfiguration des vi, ex
|
||
/home/~/.fvwmrc Konfiguration des fvwm-Fenstermanagers
|
||
/home/~/.openwin-menu Konfiguration des olvwm und olwm-Fenstermanagers
|
||
/home/~/.profile wird nach dem User-Anmelden in der bash
|
||
ausgeführt
|
||
/home/~/.rhosts erlaubt die r-Kommandos
|
||
/home/~/.X.err Meldungen des X-Servers
|
||
/home/~/.xinitrc diese Datei wird von .xsession ausgeführt
|
||
/home/~/.xsession diese Datei wird nach dem Befehl
|
||
startx ausgeführt
|
||
/lib/ gemeinsam genutzte Bibliotheken Shared Libraries
|
||
/lib/modules/ nachladbare Module
|
||
/lost+found/ verlorene Daten, ist in jeder Wurzel
|
||
des EXT2-Dateisystems
|
||
/media/cdrom/ dient zur CDROM-Einbindung, ist oft im /
|
||
/media/floppy/ dient zur Floppy-Einbindung, ist oft im /
|
||
/mnt/ für temporär einzuhängende Dateisysteme
|
||
/mnt/cdrom/ dient zur CDROM-Einbindung, ist oft im /
|
||
/mnt/floppy/ dient zur Floppy-Einbindung, ist oft im /
|
||
/opt/ kommerzielle Systemerweiterungen
|
||
/opt/kde/ grafische Benutzeroberfläche KDE
|
||
/proc/ virtuelles Filesystem über laufende Prozesse
|
||
/proc/cpuinfo Informationen zur CPU
|
||
/proc/devices Liste der wichtigsten Gerätetreiber
|
||
/proc/dma Liste der verwendeten DMA-Kanäle
|
||
/proc/filesystems Liste der bekannten Dateisystemtypen
|
||
/proc/interrupts Liste der Interrupts
|
||
45
|
||
4. Verzeichnisse und Dateien
|
||
/proc/ioports bekannte und definierte EA-Schnittstellen
|
||
/proc/kcore Gerätedatei für den Zugang
|
||
zum physikalischen Hauptspeicher
|
||
/proc/kmsg hier können Systemfehlermeldungen
|
||
ausgelesen werden
|
||
/proc/ksyms Liste der Kernel-Symbole und
|
||
ihrer Speicheradressen
|
||
/proc/loadavg durchschnittliche Systembelastung
|
||
in den letzten 1, 5 und 10 Min.
|
||
/proc/meminfo Beschreibung der aktuellen Speicherauslastung
|
||
/proc/modules Liste der geladenen Module und
|
||
Anzahl der aktuellen Nutzungen
|
||
/proc/mounts Liste der eingehängten Dateisysteme
|
||
/proc/net/ Informationen zur Netzwerkauslastung
|
||
/proc/pci Liste der gefundenen Geräte am PCI-Bus
|
||
/proc/scsi/ Informationen über SCSI-Geräte
|
||
/proc/stat Liste allgemeiner Statistiken zum System
|
||
/proc/uptime Sekunden seit dem Systemstart und
|
||
der Leerlaufzeit
|
||
/proc/version aktuelle Version des Linux-Kernels
|
||
/root/ Heimatverzeichnis des Systemverwalters root
|
||
/sbin/ Administrationskommandos
|
||
/sbin/init Nach dem Kernelstart wird versucht das
|
||
Programm init zu starten
|
||
#/sbin/init.d/ -> /etc/init.d/
|
||
/tmp/ temporäre Dateien
|
||
/usr/ ausführbare Dateien, Libraries, X Window u.s.w
|
||
/usr/bin/ allgemein verfügbare Programmdateien
|
||
#/usr/doc/ -> /usr/share/doc/
|
||
/usr/games/ Spiele :-)
|
||
/usr/include/ Headerdateien für den C-Compiler
|
||
/usr/include/g++/ Headerdateien für den C++-Compiler
|
||
/usr/info/ Infosystem fur GNU-Kommandos
|
||
/usr/lib/ Programmbibliotheken
|
||
/usr/lib/terminfo/ Verzeichnis mit Beschreibungen
|
||
für Terminaleigenschaften
|
||
/usr/local/ Ablage von Dateien und Kommandos die nicht
|
||
zur Distribution gehören
|
||
/usr/man/ Linux Handbuch
|
||
/usr/sbin/ Superuser Programmdateien
|
||
/usr/share/doc/ Dokumentationen
|
||
/usr/share/doc/packages/ Dokumentation der Programme
|
||
/usr/src/ Quellcode für den Kernel und weitere Programme
|
||
/usr/src/linux/ Kernel-Source
|
||
/usr/src/linux/arch/ Hardwarearchitektur-abhängige
|
||
46
|
||
4.1. Dateibaum
|
||
Bestandteile des Kerns
|
||
/usr/src/linux/arch/alpha/ DEC-Alpha-Prozessoren
|
||
/usr/src/linux/arch/i386/ 386-Prozessoren
|
||
/usr/src/linux/arch/m68k/ Motorola 68k-Prozessoren
|
||
/usr/src/linux/arch/mips/ MIPS-Prozessoren R3000, R4000 bis R10000
|
||
/usr/src/linux/arch/ppc/ Power-PC-Prozessor (ursprünglich IBM)
|
||
/usr/src/linux/arch/sparc/ SPARC-Prozessoren der Firma SUN
|
||
/usr/src/linux/Documentation/devices.txt offizielle Liste der
|
||
registrierten Devices mit ihren Gerätenummern
|
||
/usr/src/linux/drivers/ Zeichen-, Block-orientierte,
|
||
Netz-,Soundkarten-Gerätetreiber
|
||
/usr/src/linux/drivers/block/ Treiber für blockorientierte Ein-/Ausgabegeräte
|
||
wie Festplatten
|
||
/usr/src/linux/drivers/cdrom/ Treiber für CD-ROM Laufwerke
|
||
außer Atapi/IDE und SCSI
|
||
/usr/src/linux/drivers/char/ Zeichen. Treiber serielle Schnittstellen,
|
||
Bildschirm, Tastatur usw.
|
||
/usr/src/linux/drivers/net/ Treiber für die Netzwerkkarten
|
||
/usr/src/linux/drivers/pci/ Spezielle Treiber für PCI-Bus-Bausteine
|
||
/usr/src/linux/drivers/sound/ Soundkartentreiber
|
||
/usr/src/linux/drivers/scsi/ SCSI-Treiber
|
||
/usr/src/linux/fs/ Dateisysteme
|
||
/usr/src/linux/ipc/ InterProzessKommunikation,
|
||
z.B. Shared Memory, Semaphoren
|
||
/usr/src/linux/include/ Header-Dateien mit Struktur- und
|
||
Konstantendefinitionen
|
||
/usr/src/linux/init/ Initialisierungscode beim Starten des Systems
|
||
/usr/src/linux/kernel/ zentrale Aufgaben, z.B. Prozessverwaltung und
|
||
Schedulimg usw.
|
||
/usr/src/linux/mm/ Speicherverwaltung
|
||
/usr/src/linux/modules/ nachladbarer Teil des Kerns
|
||
/usr/src/linux/net/ Implementierung der Protokolltreiber
|
||
für TCP/IP,SPX/IPX usw.
|
||
/usr/src/linux/README Installationsbeschreibung für den Kernel
|
||
/usr/X11R6/ für Daten zum X-Window-System
|
||
/usr/X11R6/bin/ Programmdateien die mit X-Window-System arbeiten
|
||
/usr/X11R6/lib/X11/ Fenstermanager
|
||
/usr/X11R6/lib/X11/app-defaults/ voreingestellte Konfigurationen der
|
||
Anwendungen
|
||
/var/ sich schnell oder häufig ändernde Daten
|
||
/var/adm/inst-log/ Protokolldateien zur installation
|
||
/var/lib/rpm/Packages rpm-Datenbank
|
||
/var/lib/rpm/packages.rpm -> /var/lib/rpm/Packages
|
||
/var/log/ Protokolldateien
|
||
/var/log/boot.msg Kernelmeldungen vom letzten Start
|
||
47
|
||
4. Verzeichnisse und Dateien
|
||
/var/log/messages Datei in der die Kernel Meldungen
|
||
gespeichert werden
|
||
/var/log/syslog zeit an welches Modul fehlt
|
||
/var/tmp/ für große temporäre Dateien
|
||
/vmlinuz der Defaultkernel kann auch in /boot/ liegen
|
||
4.2. /etc/fstab
|
||
#Device Mountpunkt Typ Optionen Dump Check
|
||
/dev/hdd1 / reiserfs defaults 1 1
|
||
/dev/hda1 /boot ext2 defaults 1 2
|
||
/dev/sda1 swap swap defaults 0 0
|
||
none /proc proc defaults 0 0
|
||
/dev/hda3 /temp vfat defaults,umask=7000,uid=500,gid=100 0 0
|
||
/dev/hda2 /windows vfat defaults 0 0
|
||
/dev/hdc /cdrom auto ro,noauto,user,exec 0 0
|
||
/dev/fd0 /floppy auto noauto,user 0 0
|
||
/dev/hda3 /save reiserfs loop,encryption=twofish,noauto,users 0 0
|
||
server:/ /server nfs rw,noauto,user,exec 0 0
|
||
4.3. /dev/
|
||
ls -l /dev/fd0
|
||
brw-rw-rw- 1 root disk 2, 0 Feb 16 16:30 /dev/fd0
|
||
| | | +----- Gerät
|
||
| | +------ Minor-Device-Nummer(Nebennummer)
|
||
| +----------- Major-Device-Nummer(Hauptnummer)
|
||
+----------------- b-blockorientierte Geräte c-zeichenorientierte Geräte
|
||
Die Verbindung zum Kernel wird über Slots oder Kanäle hergestellt, die nummeriert
|
||
sind und hinter denen sich die Treiber verbergen. Die Nummer des Gerätetreibers wird
|
||
als Haupgerätenummer(Major Device Number) bezeichnet. Ein Treiber kann mehrere
|
||
Geräte des gleichen Typs verwalten. Um die einzelnen Geräte zu unterscheiden, wird
|
||
dem Treiber eine zweite Zahl, die Untergerätenummer (Minor Device Number), über-
|
||
geben. Diese beiden Zahlen charakterisieren jede Datei im /dev Verzeichnis. Zusätzlich
|
||
werden noch zwei Arten von Geräten unterschieden :
|
||
Die blockorientierten Geräte mit direktem Zugriff, wie z.B. Disketten oder Festplatten,
|
||
und die zeichenorientierten squentiellen Geräte, wie Drucker, Terminal oder Maus.
|
||
Damit hat jede Gerätedatei drei “Koordinaten“, mit der sie vom Kernel, unabhängig
|
||
von ihrem Namen, eindeutig identifiziert werden kann. Die offizielle Liste der regi-
|
||
strierten Devices mit ihren Gerätenummern ist bei den Kernelsourcen in der Datei
|
||
/usr/src/linux/Documentation/devices.txt zu finden.
|
||
48
|
||
4.4. Dateisystemtypen unter Linux
|
||
4.4. Dateisystemtypen unter Linux
|
||
affs Ein auf dem Amiga verwendetes Dateisystem (engl. Amiga Fast Filesystem).
|
||
ext2 Das Standard-Dateisystem unter Linux (engl. Second extended Filesystem).
|
||
ext3 Journaling Filesystem
|
||
hpfs Standard-Dateisystem von IBM OS/2 (engl. High Performance Filesystem).
|
||
Dieses wird von Linux nur mit Lesezugriff unterstüzt.
|
||
iso9660 Standard-Dateisystem auf CD-ROMs.
|
||
minix Dieses Dateisystem hat seinen Ursprung in akademischen Lehrprojekten
|
||
über Betriebssysteme und war das erste Dateisystem, welches für Linux
|
||
verwendet wurde. Heute wird es unter Linux vornehmlich als Dateisystem
|
||
für Disketten verwendet.
|
||
msdos Ursprünglich von DOS verwendetes Dateisystem, welches aber bis heute von
|
||
diversen Betriebssystemen genutzt wird.
|
||
ncpfs Dateisystem für das Novell-Volumes.
|
||
nfs Hier sind die Daten auf der Festplatte eines anderen Rechners und
|
||
werden über das Netzwerk zugänglich gemacht (engl. Network Filesystem).
|
||
proc Prozess-Dateisystem (virtuell).
|
||
reiserfs Das ReiserFS ist ein hochperformantes "’Journaling Filesystem"’;
|
||
seit SuSE Linux 6.4 auf x86-Architekturen verfügbar.
|
||
smbfs SMB (engl. Server Message Block) ist ein Protokoll, das von WfW,
|
||
Windoofs NT und LAN Manager verwendet wird, um Dateien über ein Netzwerk
|
||
verfügbar zu machen.
|
||
sysv Von SCO-Unix, Xenix und Coherent (kommerzielle UNIX-Systeme für PCs)
|
||
verwendetes Dateisystem.
|
||
ufs Von BSD, SunOS und NeXTstep verwendetes Dateisystem; dies Dateisystem
|
||
wird von Linux nur mit Lesezugriff unterstützt.
|
||
umsdos Setzt auf einem gewöhnlichen fat-Dateisystem auf (engl. UNIX on MSDOS)
|
||
und erreicht durch Anlegen spezieller Dateien die notwendige UNIX-
|
||
Funktionalität (Rechte, Links, lange Dateinamen); es ist jedoch sehr
|
||
langsamm.
|
||
vfat Erweiterung des fat-Dateisystems hinsichtlich der Länge der Dateinamen
|
||
(engl. Virtual FAT).
|
||
ntfs Windows NT-Dateisystem.
|
||
4.5. /etc/group
|
||
#Gruppenname:Paßwort:Gruppennummer:Mitgliederliste
|
||
root:x:0:root
|
||
bin:x:1:root,bin,daemon
|
||
daemon:x:2:
|
||
sys:x:3:
|
||
tty:x:5:
|
||
disk:x:6:higi
|
||
49
|
||
4. Verzeichnisse und Dateien
|
||
lp:x:7:
|
||
shadow:x:15:root,gdm
|
||
audio:x:17:root,higi
|
||
public:x:32:
|
||
video:x:33:higi
|
||
game:x:40:higi
|
||
modem:x:43:
|
||
users:x:100:
|
||
nogroup:x:65534:root
|
||
4.6. /etc/hosts
|
||
# IP-Adresse #Aliasnamen
|
||
127.0.0.1 localhost
|
||
127.0.1.1 latex
|
||
::1 localhost ip6-localhost ip6-loopback
|
||
ff02::1 ip6-allnodes
|
||
ff02::2 ip6-allrouters
|
||
192.168.0.10 rechner rechner.loc www.rechner.loc
|
||
4.7. /etc/inittab
|
||
Nach dem Kernelstart wird versucht das Programm init zu starten. Dabei werden
|
||
nacheinander die Verzeichnisse /etc/, /bin/ und /sbin/ nach init abgesucht. Kann init
|
||
/dev/consolenicht öffnen wird im Einzelbenutzerbetrieb (Single User Mode) gestartet.
|
||
Beim LILO-Bootpromt kann init=/bin/sh angegeben werden um die Shell anstelle
|
||
von init zu laden. Das Programm init liest die Datei /etc/inittab und wird durch
|
||
die Datei das System konfigurieren. /etc/inittab wird vom Kommando init Zeile für
|
||
Zeile abgearbeitet. In jeder Zeile seht jeweils eine Anweisung. Jede Zeile wird durch
|
||
Doppelpunkte unterteilt. Der Aufbau sieht wie folgt aus:
|
||
Terminal:Termcapeintrag:Gettykommando Simpleinit von Peter Orbaek mit
|
||
Erweiterung von Werner Almesberger
|
||
4.7.1. Terminal
|
||
Bezeichnet das Terminal (tty1, tty2, ttyS0 ...)
|
||
4.7.2. Termcapeintrag
|
||
Wird in die TERM Variable der Shell geschrieben und sollte mit einem Eintrag in der
|
||
Datei /etc/termcap übereinstimmen.
|
||
50
|
||
4.7. /etc/inittab
|
||
4.7.3. Gettykommando
|
||
Pfad und Optionen zum Getty-Kommando
|
||
#Beispieleinerinittabfürsimpleinit#Format:Terminal:Termcapeintrag:Gettykommando
|
||
tty1:linux:/sbin/getty9600tty1tty2:console:/sbin/getty9600tty2tty5:con100x40:/sbin/getty
|
||
9600 tty5 ttyS1:vt102:/sbin/getty 9600 ttyS1
|
||
Kürzel:Arbeitsstufen:Modus:Kommando Sysvinit von Mike Jagdis und
|
||
Miquel van Smoorenburg
|
||
4.7.4. Kürzel
|
||
Jede Aktion muß mit einem eindeutigen (maximal vierstelligen, a.out oder Librari-
|
||
es<5.2.18maximalzweistelligen) Kürzelversehen werden,das bei Einträgen in Logfiles
|
||
und bei Fehlermeldungen ausgegeben wird.
|
||
4.7.5. Arbeitsstufen
|
||
Es werden hier die Arbeitsstufen (Runlevel) eingetragen. Zulässige Arbeitsstufen sind
|
||
0 - 9 und s. Es können auch die Pseudoarbeitsstufen(ondemand) a, b, c und q für
|
||
einmalig auszuführende Kommandosverwendetwerden. Es wird ohne Groß und Klein-
|
||
schreibung bezeichnet. In einer Zeile können bis zu 11 Runlevel zugeordnet werden.
|
||
Wenn das Feld für den Runlevel leer ist, wird die Aktion bei jedem Moduswechsel
|
||
ausgeführt.
|
||
0 Systemhalt
|
||
S Einzelbenutzerbetrieb (Single User Mode)
|
||
1 Einzelbenutzerbetrieb (Single User Mode)
|
||
2 Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk
|
||
(Local multiuser without remote network)
|
||
3 Voller Mehrbenutzerbetrieb mit Netzwerk
|
||
(Full multiuser with network)
|
||
4 Frei (Not used)
|
||
5 Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM
|
||
(Full multiuser with network and xdm)
|
||
6 Systemneustart (System reboot)
|
||
Q Quit zum Neueinlesen der inittab
|
||
4.7.6. Modus
|
||
Gibt an wie das Kommando im letzten Feld ausgeführt werden soll.
|
||
initdefault Bestimmt den Runlevel beim Systemstart.
|
||
sysinit Wird einmal nach dem Kernelstart ausgeführt.
|
||
bootwait Wird einmal ausgefürt, wenn in einem Mehrbenutzerbetrieb
|
||
gestartet wird und wartet bis das Kommando beendet ist.
|
||
boot Wie bootwait nur das nicht gewartet wird.
|
||
51
|
||
4. Verzeichnisse und Dateien
|
||
respawn Überwacht das laufende Kommando und startet es neu, wenn es
|
||
beendet wurde. Wird es in zwei Minuten 10 mal neu gestartet,
|
||
setzt init das Kommando für fünf Minuten aus.
|
||
ondemand Wie respawn, um mit Buchstaben gekennzeichnete Level einzelne
|
||
Kommandos mit telinit zu starten.
|
||
wait Wartet bis das Kommando beendet ist.
|
||
once Wird einmal ausgefürt, es wird nicht gewartet.
|
||
off Wenn das Kommando läuft, wird es angehalten.
|
||
ctrlaltdel Kommando (Signal SIGINT, [Strg]+[Alt]+[Entf]) z.B. Rebooten des
|
||
Systems.
|
||
kbrequest Kommando wird ausgeführt, wenn das Signal SIGWINCH
|
||
[Alt]+[Pfeil hoch] von der Tastatur kommt.
|
||
powerwait Wenn init sich in einem passenden Runlevel befindet, das
|
||
Signal SIGPWR erhält oder über Pipeline /dev/initctrl den
|
||
entsprechenden Befehl erhält und wartet auf Beendigung des
|
||
Kommandows. Das Signal kann mit Hilfe eines Dämons von einer USV
|
||
erzeugt werden.
|
||
powerfail Wie powerwait wartet jedoch nicht.
|
||
powerfailnow Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das
|
||
Wort Low enthalten. So kann das APM eines Notebooks mit Hilfe
|
||
eines Dämons das System herrunterfahren.
|
||
powerokwait Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das
|
||
Wort OK enthalten. Auf diese weise kann das System in den
|
||
normalen Zustand gebracht werden, nachdem die Stromversorgung
|
||
wieder hergestellt ist.
|
||
4.7.7. Kommando
|
||
Pfad und Optionen zum Kommando, wird durch die Bourne-Again-Shell abgearbeitet.
|
||
Bei jedem Kommandostart wird versucht die Datei /etc/initscript abzuarbeiten, die
|
||
dann das Kommando startet.
|
||
# Beispiel einer inittab für sysvinit
|
||
# Format: Kürzel:Arbeitsstufen:Modus:Kommando
|
||
# Bestimmt den Runlevel beim Systemstart
|
||
id:5:initdefault:
|
||
# Erstes Script, wenn nicht im Notfallsystem (-b) gestartet wird.
|
||
si::bootwait:/etc/init.d/boot
|
||
# /etc/init.d/rc übernimmt die Runlevel Behandlung
|
||
l0:0:wait:/etc/init.d/rc 0
|
||
l1:1:wait:/etc/init.d/rc 1
|
||
l2:2:wait:/etc/init.d/rc 2
|
||
52
|
||
4.8. /etc/passwd
|
||
l3:3:wait:/etc/init.d/rc 3
|
||
#l4:4:wait:/etc/init.d/rc 4
|
||
l5:5:wait:/etc/init.d/rc 5
|
||
l6:6:wait:/etc/init.d/rc 6
|
||
# Bestimmt den Einzelbenutzerbetrieb (Single User Mode)
|
||
ls:S:wait:/etc/init.d/rc S
|
||
~~:S:respawn:/sbin/sulogin
|
||
# Aktion bei Signal SIGINT, [Strg]+[Alt]+[Entf]
|
||
ca::ctrlaltdel:/sbin/shutdown -r -t 4 now
|
||
# Aktion bei Signal SIGWINCH [Alt]+[Pfeil hoch]
|
||
kb::kbrequest:/bin/echo "’Keyboard Request -- edit /etc/inittab to let this work."’
|
||
# Aktion bei Stormausfall und Wiederherstellung
|
||
pf::powerwait:/etc/init.d/powerfail start
|
||
pn::powerfailnow:/etc/init.d/powerfail now
|
||
#pn::powerfail:/etc/init.d/powerfail now
|
||
po::powerokwait:/etc/init.d/powerfail stop
|
||
# getty-Programme für die normalen Runlevels
|
||
1:2345:respawn:/sbin/mingetty --noclear tty1
|
||
2:2345:respawn:/sbin/mingetty tty2
|
||
3:2345:respawn:/sbin/mingetty tty3
|
||
4:2345:respawn:/sbin/mingetty tty4
|
||
5:2345:respawn:/sbin/mingetty tty5
|
||
6:2345:respawn:/sbin/mingetty tty6
|
||
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102
|
||
4.8. /etc/passwd
|
||
#Benutzername:Paßwort:Benutzernummer:Gruppennummer:GCOS:Heimat:Shell
|
||
root:x:0:0:root:/root:/bin/bash
|
||
bin:x:1:1:bin:/bin:/bin/bash
|
||
daemon:x:2:2:daemon:/sbin:/bin/bash
|
||
lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash
|
||
games:x:12:100::/var/games:/bin/bash
|
||
man:x:13:2::/var/cache/man:/bin/bash
|
||
ftp:x:40:2:ftp account:/usr/local/ftp:/bin/bash
|
||
nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash
|
||
higi:x:500:100:Higi:/home/higi:/bin/bash
|
||
gast:x:501:100:Gast:/home/gast:/bin/bash
|
||
53
|
||
5. Die Shells
|
||
5.1. Die Shells
|
||
Eine Shell ist ein Kommando-Interpreter, ein Programm das durch ein anderes ersetzt
|
||
werden kann. Es zerlegt die Kommandozeile, führt Sonderzeichen durch und reicht das
|
||
Kommandoan UNIX weiter. Ohne Shell gibt es keinen Zugang zum Betriebssystem.
|
||
/bin/sh Bourne-Shell zum programmieren
|
||
/bin/ksh Korn-Shell Mischung aus C-und Bourne-Shell
|
||
/bin/csh C-Shell zum interaktiven Arbeiten
|
||
/bin/bash Bourne-Again-Shell
|
||
/bin/tcsh TC-Shell
|
||
export Setzt Umgebungsvariablen, Variablen exportieren
|
||
locate Findet Dateien anhand einer Datenbank
|
||
setenv Setzt Umgebungsvariablen unter Nicht-Bash Shells, z.B. csh
|
||
unset Variable löschen in ksh, bsh und bash
|
||
unsetenv Variable löschen in csh
|
||
5.2. Die Start-Scripts
|
||
~/.bashrc bash
|
||
5.3. Tastenkombinationen
|
||
[Strg]+[l] Bildschirm löschen bash und csh
|
||
[Strg]+[a] oder [Pos 1] Zeilenanfang bash und csh
|
||
[Strg]+[e] oder [Ende] Zeilenende bash und csh
|
||
[Alt]+[f] Wort vorwäts bash und csh
|
||
[Alt]+[b] Wort rückwärts bash und csh
|
||
[Strg]+[c] Befehlseingabe verwerfen alle Shells
|
||
[Strg]+[c] Programm abbrechen
|
||
[Pfeil rechts] und [Pfeil links] Cursor bewegen bash und csh
|
||
[Pfeil hoch] und [Pfeil runter] History-Scrolling bash und csh
|
||
[Strg]+[r] in der History suchen bash
|
||
[Tab] Komplettierung bash und csh
|
||
[Strg]+[d] beendet die Shell alle Shells
|
||
55
|
||
5. Die Shells
|
||
[Strg]+[d] oder [Entf] ein Zeichen löschen
|
||
[Strg]+[h] oder [Backspace] Zeichen rückwärts löschen
|
||
[Strg]+[k] Zeile ab Cursor löschen
|
||
[Alt Gr]+[Umschalt] zwei folgende Zeichen vereinen
|
||
ae -> AE, co -> \texteuro
|
||
[Strg]+[z] im Vordergrund laufendes Programm anhalten
|
||
Fortsetzung mit fg
|
||
[Umschalt]+[Bild hoch] und vorherige Textausgabe alle Shells
|
||
[Umschalt]+[Bild runter] zurückholen
|
||
[Alt]+[F1] bis [F6] Umschalten zwischen Textkonsolen alle Shells
|
||
[AltGr]+[Fn] Umschalten zwischen den Textkonsolen n+12
|
||
[Alt]+[Pfeil links oder rechts] um durch die benutzten Konsolen zu stöbern
|
||
[Strg]+[Alt]+[F1] bis Umschalten zu Textkonsolen alle Shells
|
||
[Strg]+[Alt]+[F6] aus X11 heraus
|
||
[Strg]+[Alt]+[F7] Umschalten zu X11 aus Textkonsole alle Shells
|
||
bei Caldera 2.2 [Alt]+[F8]
|
||
[Strg]+[Alt]+[<--] X-Server sofort beenden
|
||
[Strg]+[Alt]+[+] verschiedene Auflösungen im laufenden Betrieb
|
||
[Strg]+[Alt]+[-] wechseln
|
||
[Strg]+[Alt]+[Entf] Signal SIGINT z.B. reboot Shell
|
||
5.4. Die C-Shell
|
||
~ Home-Verzeichnis
|
||
~user Home-Verzeichnis des Benutzers user
|
||
* beliebige Zeichen-kette
|
||
? genau Zeichen
|
||
{a,b,c} a oder b oder c
|
||
[aceg] genau eines der Zeichen
|
||
[a-z] a bis z
|
||
[!adfh] kein a, d, f, h
|
||
´´ maskiert alles
|
||
\ maskiert das nachfolgende Zeichen
|
||
"" maskiert $ ‘ \ nicht
|
||
> Datei Ausgabe in die Datei, stdout
|
||
>& Datei Ausgabe in die Datei, stdout und stderr
|
||
>>Datei Unlenkung in die Datei, stdout umgelenkt
|
||
< Datei von der Datei lesen, anstatt von stdin zu lesen
|
||
set noclobber Überschreiben einer vorhandenen Datei verhindern
|
||
| Ausgabekanal eines Kommandos direkt in den Eingabekanal eines
|
||
anderen Kommandos leiten
|
||
#!Programm so beginnt eine Datei die vom Progamm ausgeführt wird
|
||
$HISTSIZE History-Größe
|
||
$LS_OPTIONS ls Funktionen
|
||
56
|
||
5.5. Bash rechnen
|
||
$PATH Pfad zu den Programmdateien
|
||
Programm & Programm im eigenem Prozess starten
|
||
5.5. Bash rechnen
|
||
echo $((1+1)) gibt 1 aus
|
||
a=4
|
||
b=5
|
||
echo $((a*b)) gibt 20 aus
|
||
echo $((a-b)) gibt -1 aus
|
||
57
|
||
Teil II.
|
||
Programme
|
||
59
|
||
6. Der Texteditor vi/vim
|
||
Der vi-Editor ist auf UNIX/Linux(neben Emacs) der meistverwendete Texteditor. Die
|
||
Bedienung erfolgt über den Befehls- und Kommando-modus. Da es nicht gerade ein-
|
||
fach ist sich diese Optionen zu merken, folgt eine Auflistung der meist gebrauchten
|
||
Optionen.
|
||
6.1. Aufruf
|
||
vi Editor vi aufrufen
|
||
vi Datei Editor vi aufrufen und Datei öffnen
|
||
vi -r swap-Dateien anzeigen
|
||
vi -r Datei Datei nach einem Stromausfall oder Absturz wieder herstellen
|
||
vi -R Datei Datei schreibgeschützt öffnen
|
||
6.2. Eingabemodus (input mode)
|
||
UmindenEingabemodus zu gelangen muss A, C, I, O, R, S, a, i, o oder s eingegeben
|
||
werden. i ist eine gute Wahl. Mit <Esc> wird der Eingabemodus verlassen.
|
||
6.3. Befehlsmodus (visual mode)
|
||
6.3.1. Eingeben:
|
||
(n)i eingeben fügt den eingeben Text (n mal) vor dem Cursor ein
|
||
(n)a eingeben fügt den eingeben Text (n mal) hinter dem Cursor ein
|
||
(n)I eingeben fügt den eingeben Text (n mal) am Zeilenanfang ein
|
||
(n)A eingeben fügt den eingeben Text (n mal) am Zeilenende ein
|
||
(n)o eingeben fügt unter der aktuellen Zeile (n neue Zeilen)
|
||
mit den eingeben Text ein
|
||
(n)O eingeben fügt über der aktuellen Zeile (n neue Zeilen)
|
||
mit den eingeben Text ein
|
||
6.3.2. Überschreiben:
|
||
(n)R eingeben überschreibt den Text mit eingeben
|
||
<Einf> wechselt zwischen INSERT und REPLACE
|
||
(n)r Taste überschreibt den Text mit (n mal) Taste
|
||
61
|
||
6. Der Texteditor vi/vim
|
||
von dem Cursor nach rechts
|
||
6.3.3. Bewegen:
|
||
(n)h Cursor um (n) Zeichen nach links bewegen
|
||
(n)<Strg>+h Cursor um (n) Zeichen nach links bewegen
|
||
(n)l Cursor um (n) Zeichen nach rechts bewegen
|
||
(n)<SPACE> Cursor um (n) Zeichen nach rechts bewegen
|
||
(n)| Cursor zur Spalte (n) bewegen
|
||
(n)t Taste Cursor vor das (n) Zeichen Taste nach rechts bewegen
|
||
(n)f Taste Cursor auf das (n) Zeichen Taste nach rechts bewegen
|
||
(n)T Taste Cursor vor das (n) Zeichen Taste nach links bewegen
|
||
(n)F Taste Cursor auf das (n) Zeichen Taste nach links bewegen
|
||
(n)j Cursor um (n) Zeilen abwärts bewegen
|
||
(n)k Cursor um (n) Zeilen aufwärts bewegen
|
||
(n)w Cursor um (n) Wörter nach rechts bewegen
|
||
(n)W Cursor um (n) Wörter(Space) nach rechts bewegen
|
||
(n)b Cursor um (n) Wörter nach links bewegen
|
||
(n)B Cursor um (n) Wörter(Space) nach links bewegen
|
||
(n)e Cursor an das (n) Wortende nach rechts bewegen
|
||
(n)E Cursor an das (n) Wortende(Space) nach rechts bewegen
|
||
^ Cursor auf das erste Zeilenzeichen stellen
|
||
0 Cursor vor das erste Zeilenzeichen stellen
|
||
(n)_ Cursor auf das erste Zeilenzeichen stellen und
|
||
(n-1) Zeilen nach unten bewegen
|
||
$ Cursor zum Zeilenende bewegen
|
||
(n)+ Cursor auf das erste Zeilenzeichen stellen und
|
||
(n) Zeilen abwärts bewegen
|
||
(n)- Cursor auf das erste Zeilenzeichen stellen und
|
||
(n) Zeilen aufwärts bewegen
|
||
(n)) Cursor um (n) Sätze abwärts bewegen
|
||
(n)( Cursor um (n) Sätze aufwärts bewegen
|
||
(n)} Cursor um (n) Absätze abwärts bewegen
|
||
(n){ Cursor um (n) Absätze aufwärts bewegen
|
||
(n)<Strg>+u Cursor um 1/2 Bildschirm oder (n Zeilen)
|
||
aufwärts bewegen
|
||
(n)<Strg>+d Cursor um 1/2 Bildschirm oder (n Zeilen)
|
||
abwärts bewegen
|
||
<Strg>+f Cursor um 1 Bildschirm abwärts bewegen
|
||
<Bild runter> Cursor um 1 Bildschirm abwärts bewegen
|
||
<Strg>+b Cursor um 1 Bildschirm aufwärts bewegen
|
||
<Bild hoch> Cursor um 1 Bildschirm aufwärts bewegen
|
||
(n)<Strg>+e scrollt den Cursor (n) Zeilen abwärts
|
||
(n)<Strg>+y scrollt den Cursor (n) Zeilen aufwärts
|
||
’ Taste Cursor zu der mit Taste markierten Zeile bewegen
|
||
62
|
||
6.3. Befehlsmodus (visual mode)
|
||
‘ Taste Cursor zu dem mit Taste markierten Zeichen bewegen
|
||
gg Cursor zum Textanfang bewegen
|
||
(n)G Cursor zur Zeile (n) bewegen
|
||
G Cursor zum Textende bewegen
|
||
H Cursor an den Anfang der Bildschirmseite setzen
|
||
(n)H Cursor zur Zeile (n) auf den Bildschirm bewegen
|
||
M Cursor auf den Anfang der mittleren
|
||
Bildschirmzeile bewegen
|
||
L Cursor an das Ende der Bildschirmseite setzen
|
||
(n)L Cursor vom Ende zur Zeile (n) auf den Bildschirm bewegen
|
||
z Taste bewegt die aktuelle Zeile zum Anfang(+), Ende(-) oder
|
||
zur Mitte(.) des Bildschirms
|
||
6.3.4. Löschen und Eingeben:
|
||
(n)s eingeben löscht (n) Zeichen von dem Cursor nach rechts und
|
||
fügt den eingeben Text ein
|
||
c Bereich eingeben löscht den markierten Bereich und
|
||
fügt den eingeben Text ein
|
||
cc eingeben löscht den Zeilentext und fügt den eingeben Text ein
|
||
cw eingeben löscht bis zum ende des Wortes und
|
||
fügt den eingeben Text ein
|
||
C eingeben löscht den Text bis Zeilenende und
|
||
fügt den eingeben Text ein
|
||
(n)S eingeben löscht (n) Zeilen nach unten und
|
||
fügt den eingeben Text ein ( wie (n)cc )
|
||
6.3.5. Löschen:
|
||
d Bereich löscht den markierten Bereich
|
||
dd löscht die ganze Zeile
|
||
D löscht den Text bis Zeilenende
|
||
dw löscht bis zum Ende des Wortes
|
||
(n)x löscht (n) Zeichen auf den sich der Cursor befindet
|
||
<Entf> löscht das Zeichen auf den sich der Cursor befindet
|
||
(n)X löscht (n) Zeichen links vom Cursor
|
||
6.3.6. Aufheben:
|
||
u macht die letzte Änderung rückgängig
|
||
U macht die letzte Änderung der ganzen Zeile rückgängig
|
||
6.3.7. Verschieben:
|
||
> Bereich schiebt die markierten Zeilen nach rechts
|
||
63
|
||
6. Der Texteditor vi/vim
|
||
>> schiebt die Zeile auf den sich der Cursor befindet
|
||
nach rechts
|
||
< Bereich schiebt die markierten Zeilen nach links
|
||
<< schiebt die Zeile auf den sich der Cursor befindet
|
||
nach links
|
||
6.3.8. Zusammenfügen:
|
||
(n)J hängt (n) Zeilen nach unten aneinander
|
||
6.3.9. Markieren:
|
||
m Taste markiert eine Zeile oder Zeichen
|
||
v setzt den Anfang einer Markierung
|
||
V setzt den Anfang einer Zeilenmarkierung
|
||
6.3.10. Kopieren:
|
||
y Bereich kopiert den mit Bereich angegebenen Text in einen Puffer
|
||
(n)Y kopiert die aktuelle und (n) Zeilen in einen Puffer
|
||
" Taste legt den nächsten Zwischenpuffer fest
|
||
@ Taste interpretiert den Inhalt des Zwischenspeichers als
|
||
vi Befehle und führt sie aus
|
||
6.3.11. Einfügen:
|
||
p fügt den aktuellen Puffer hinter dem Cursor ein
|
||
P fügt den aktuellen Puffer vor dem Cursor ein
|
||
6.3.12. Suchen:
|
||
(n)% platziert den Cursor auf die zugehörige () {} [], oder
|
||
platziert den Cursor auf (n) Prozent der Datei
|
||
/ Text sucht den Text vorwärts
|
||
? Text sucht den Text rückwärts
|
||
6.3.13. Wiederholen:
|
||
. wiederholt das letzte EDIT Kommando
|
||
n wiederholt das letzte Suchen
|
||
N wiederholt das letzte Suchen in umgekehrter Richtung
|
||
(n); wiederholt das vorgehende f, F, t, T Kommando
|
||
(n), wiederholt das vorgehende f, F, t, T Kommando in
|
||
umgekehrter Richtung
|
||
(n)& wiederholt den letzten :s// Befehl an der momentanen
|
||
Position
|
||
64
|
||
6.4. Kommandomodus (colon mode)
|
||
6.3.14. Sonstige Kommandos:
|
||
<Strg>G zeigt den Dateistatus und die momentane Zeilennummer
|
||
ZZ speichert die Datei und beendet vi
|
||
<Strg>L erneuert den Bildschirm
|
||
6.4. Kommandomodus (colon mode)
|
||
Uminden Kommandomodus zu gelangen muss : eingegeben werden.
|
||
6.4.1. Texteingabe Kommandos
|
||
q(!) Editor verlassen
|
||
wq Editor mit speichern verlassen
|
||
xit arbeitet wie wq, speichert nur bei einer Änderung
|
||
x(!) Editor mit speichern verlassen
|
||
w(!) Name Datei mit Namen speichern
|
||
h Hilfe anfordern
|
||
args Dateien Liste der Dateien anlegen
|
||
args Dateien auflisten
|
||
next(!) schaltet zur nächsten Datei
|
||
previous(!) schaltet zur vorhergehenden Datei
|
||
rewind(!) schaltet zur ersten Datei
|
||
edit(!) Datei dient zum wechseln der Datei
|
||
!Befehl externen Befehl ausführen
|
||
65
|
||
7. LaTeX
|
||
A
|
||
7.1. LT X
|
||
E
|
||
A
|
||
LT X
|
||
E
|
||
67
|
||
8. Docker
|
||
Docker ist eine freie Software zur Isolierung von Anwendungen mit Hilfe von Contai-
|
||
nervirtualisierung. Die Podman API ist identisch mit der Docker API.
|
||
8.1. Docker installieren
|
||
apt install curl falls kein curl
|
||
installiert ist
|
||
curl -fsSL https://get.docker.com -o get-docker.sh Installer holen
|
||
sudo sh ./get-docker.sh Installer starten
|
||
sudo apt docker docker-compose installiert Docker auch
|
||
Wenn man nicht mit dem Nutzer root arbeiten möchte, sollte man den aktuellen
|
||
Benutzer berechtigen:
|
||
sudo usermod -aG docker $USER aktuellen Benutzer für docker freigeben,
|
||
danach neu anmelden
|
||
8.2. Mit Docker arbeiten
|
||
docker ps laufende Container auflisten
|
||
docker ps -a alle Container auflisten, auch gestoppte
|
||
docker images alle Images auflisten
|
||
docker stop Containername laufenden Container beenden
|
||
docker run -p 80:80 nginx simplen Webserver nginx starten
|
||
Hostport:Containerport
|
||
Arbeiten mit Docker-Compose
|
||
nano docker-compose.yml Datei docker-compose.yml mit dem Editor
|
||
nano bearbeiten. Die Datei docker-compose.yml
|
||
enthält die Definition der Container.
|
||
docker-compose up -d die Compose-Zusammenstellung hochfahren
|
||
docker-compose pull Container updaten, neue Images laden
|
||
Meine docker-compose.yml:
|
||
69
|
||
8. Docker
|
||
services:
|
||
portainer:
|
||
container_name: portainer
|
||
image: portainer/portainer-ce
|
||
ports:
|
||
- ’9000:9000’
|
||
volumes:
|
||
- /var/run/docker.sock:/var/run/docker.sock
|
||
- ./portainer_data:/data
|
||
restart: always
|
||
forgejo:
|
||
container_name: forgejo
|
||
image: codeberg.org/forgejo/forgejo:10
|
||
ports:
|
||
- ’3000:3000’
|
||
- ’222:22’
|
||
environment:
|
||
- USER_UID=1000
|
||
- USER_GID=1000
|
||
volumes:
|
||
- ./forgejo_data:/data
|
||
- /etc/timezone:/etc/timezone:ro
|
||
- /etc/localtime:/etc/localtime:ro
|
||
restart: always
|
||
70
|
||
Teil III.
|
||
Linux im Netzwerk
|
||
71
|
||
9. Netzwerk
|
||
Rechnername Name den der Rechner im Netzwerk hat,
|
||
sollte nicht mehr als acht Zeichen haben,
|
||
darf im lokalen Netzwerk noch nicht vergeben sein
|
||
Domainname Name zur Gliederung von Netzwerken
|
||
Top-Level-Domain umfasst höchstens vier Buchstaben
|
||
Beispiel: Rechnername.Domainname.Top-Level-Domain ->
|
||
voyager.startrek.foe
|
||
IP-Adresse Adresse des Rechners im Netzwerk,
|
||
jede Netzwerkschnittstelle(z.B. Netzwerk- oder
|
||
ISDN-Karte) hat im Netzwerk mindestens eine Adresse
|
||
die eindeutig ist, die Adresse besteht derzeit aus
|
||
einer Sequenz von vier Bytes die durch Punkte getrennt
|
||
sind z.B. 192.168.20.40 , für private Netze sind durch
|
||
das Arbeitspapier RFC 1597 drei Adressbereiche
|
||
vorgesehen die nicht geroutet werden:
|
||
10.0.0.0 -> 10.255.255.255 (Class A-Netz)
|
||
172.16.0.0 -> 172.31.255.255 (Class B-Netz)
|
||
192.168.0.0 -> 192.168.255.255 (Class C-Netz)
|
||
Gatewayadresse IP-Adresse des Gerätes die das Weiterleiten
|
||
von Netzwerkpaketen in das fremde Netz übernimmt
|
||
Netzwerkmaske sagt aus welcher Teil der IP-Adresse
|
||
zum lokale Netzwerk gehört z.B. 255.255.255.0
|
||
OSI Open Systems Interconnection model ist ein Referenzmodell
|
||
für Netzwerkprotokolle als Schichtenarchitektur
|
||
IEEE Institute of Electrical and Electronics Engineers ist
|
||
ein weltweiter Berufsverband von Ingenieuren,
|
||
Technikern, (Natur-)Wissenschaftlern und angrenzender
|
||
Berufe hauptsächlich aus den Bereichen Elektrotechnik
|
||
und Informationstechnik
|
||
ISO Internationale Organisation für Normung ist die
|
||
internationale Vereinigung von Normungsorganisationen
|
||
und erarbeitet internationale Normen in allen Bereichen
|
||
mit Ausnahme der Elektrik und der Elektronik
|
||
MAC-Adresse 00:60:97:37:0c:ae Media-Access-Code-Adresse ist die
|
||
-------- -------- Nummer eines Gerätes auf einer
|
||
| | Datenverbindung
|
||
| |
|
||
| laufende Nummer
|
||
73
|
||
9. Netzwerk
|
||
Herstellerabhängig
|
||
NIC Network Information Center oder eine Domain Name Registry
|
||
verwaltet eine oder mehrere Top-Level-Domains im
|
||
Domain Name System
|
||
TCP Transmission Control Protocol ist ein Netzwerkprotokoll,
|
||
das definiert, auf welche Art und Weise Daten zwischen
|
||
Netzwerkkomponenten ausgetauscht werden sollen
|
||
UDP User Datagram Protocol ist ein minimales,
|
||
verbindungsloses Netzwerkprotokoll, das zur
|
||
Transportschicht der Internetprotokollfamilie gehört
|
||
NFS Network File System ist ein von Sun Microsystems
|
||
entwickeltes Protokoll, das den Zugriff auf Dateien
|
||
über ein Netzwerk ermöglicht
|
||
FTP File Transfer Protocol ist ein Netzwerkprotokoll zur
|
||
Übertragung von Dateien über IP-Netzwerke
|
||
Portnummer ist in Rechnernetzen eine Netzwerkadresse, mit der das
|
||
Betriebssystem die Datenpakete eines Transportprotokolls
|
||
zu einem Prozess zuordnet
|
||
/etc/services ordnet Namen den Ports zu z.B. SSH, FTP, DNS u.s.w.
|
||
0-1023 System Ports, Server-Ports (IANA), diese Ports werden
|
||
auch „well-known Ports“ genannt und sind für
|
||
Netzwerkdienste vorgesehen
|
||
1024-49151 User Ports, diese Ports sind für registrierte
|
||
Netzwerkdienste vorgesehen
|
||
49152-65535 Dynamic Ports, diese Ports sind für eine dynamische
|
||
Zuweisung durch das Betriebssystem vorgesehen
|
||
9.1. /etc/network/interfaces
|
||
allow-hotplug eth0 Netzwerkkabel im Berieb umstecken
|
||
iface eth0 inet static static feste IP sonst dhcp
|
||
address 192.168.10.97/24 IP-Adresse
|
||
gateway 192.168.10.1 Gateway-Adresse
|
||
dns-nameservers 192.168.10.1 192.168.20.1 1. und 2. DNS-Server
|
||
dns-search example.net Domainname des DNS-Servers
|
||
74
|
||
10. E-Mail
|
||
E-Mail im Deutschen kurz Mail; englisch electronic mail für „elektronische Post“ oder
|
||
„elektronischer Brief“ ist zum einen ein System zur computerbasierten Verwaltung von
|
||
briefähnlichen Nachrichten und deren Übertragung über Computernetzwerke, insbe-
|
||
sondere über das Internet. Zum anderen werden auch die auf diesem elektronischen
|
||
Weg übertragenen Nachrichten selbst als E-Mails bezeichnet.
|
||
10.1. Verwendung von E-Mail
|
||
sudo apt install mailutils postfix installiert mailx und MTA-Postfix
|
||
sudo dpkg-reconfigure postfix postfix nochmal konfigurieren
|
||
sudo apt install postfix-pcre dovecot-imapd für den Mail-Server installieren
|
||
echo "Inhalt" | mailx -s "Betreff" user@Domain E-Mail verschicken
|
||
E-Mail beim Starten verschicken
|
||
/lib/systemd/system/mailx-start.service
|
||
[Unit]
|
||
Description=Boot Mails
|
||
After=postfix.service
|
||
[Service]
|
||
Type=simple
|
||
ExecStart=/usr/bin/sh -c ’echo "Inhalt" | mailx -s "Betreff" user@domain’
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
E-Mail beim Beenden verschicken (kommt erst beim Booten an)
|
||
/lib/systemd/system/mailx-stop.service
|
||
[Unit]
|
||
Description=Boot Mails
|
||
After=shutdown.target
|
||
[Service]
|
||
Type=simple
|
||
ExecStart=/usr/bin/sh -c ’echo "Inhalt" | mailx -s "StopBetreff" user@domain’
|
||
75
|
||
10. E-Mail
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
danach
|
||
sudo systemctl enable mailx-start.service
|
||
sudo systemctl enable mailx-stop.service
|
||
76
|
||
11. Apache
|
||
11.1. Einleitung
|
||
Der Apache Webserver ist ein Programm das im Netzwerk(WWW), bei Anfragen mit
|
||
einem Webbrowser, Websites(HTTP-Protokoll) ausgeben kann.
|
||
DieAnfragenwerdenalsURLangegeben.Beispiel:Schema://Hostname:Port/Server-
|
||
Pfad -> http://www.apache.org:80/manual/
|
||
11.2. Kompilieren und Installieren
|
||
11.2.1. Anforderungen
|
||
• Apache-Quellcode 1.3, erhältlich bei http://www.apache.org/
|
||
• mod_ssl 1.3, erhältlich bei http://www.modssl.org/
|
||
• Apache-Quellcode 2.0, erhältlich bei http://www.apache.org/
|
||
• OpenSSL-Quellcode 0.9.x, erhältlich bei http://www.openssl.org/
|
||
• Linuxab2.4.xx(z.B.DebianSarge3.1),libgdbm2-devel(ndbm.h->gdbm-ndbm.h)
|
||
• ANSI-C-CompilerundGenerierungswerkzeuge,GNUCCompiler(GCC)abVer-
|
||
sion 2.7.2, wesentliche Generierungswerkzeuge wie make
|
||
• Zeitgenauigkeit bewahren, ntpdate oder xntpd(NTP)
|
||
• Perl 5(optional), Version ab 5.003 http://www.perl.com/
|
||
• PureFTPd(optional), Version ab 5.003 http://www.perl.com/
|
||
11.2.2. Vorbereitungen
|
||
su als root anmelden
|
||
mkdir /usr/local/src das Verzeichnis /usr/local/src anlegen,
|
||
wenn es noch nicht vorhanden ist
|
||
chmod 777 /usr/local/src Verzeichnis-Rechte setzen
|
||
ln -s /usr/include/gdbm-ndbm.h /usr/include/ndbm.h
|
||
Link zu ndbm.h
|
||
exit root abmelden
|
||
cp Quelldateien /usr/local/src Quelldateien kopieren
|
||
77
|
||
11. Apache
|
||
11.2.3. OpenSSL
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
tar xvfz openssl-0.9.7d.tar.gz Quelldateien entpacken
|
||
cd openssl-0.9.7d in das Quelldatei-Verzeichnis wechseln
|
||
./config --help Hilfe zu den möglichen Optionen
|
||
./config --prefix=/usr/local/openssl/0.9.7d
|
||
Codebaum konfigurieren und
|
||
Installations-Verzeichnis angeben
|
||
make Programm herstellen
|
||
make test Programm testen
|
||
su als root anmelden
|
||
make install Programm installieren
|
||
ln -s /usr/local/openssl/0.9.7d /usr/local/openssl/current
|
||
Link zu OpenSSL
|
||
exit root abmelden
|
||
11.2.4. Apache 1.3 und SSL
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
tar xvfz apache_1.3.31.tar.gz Quelldateien entpacken
|
||
tar xvfz mod_ssl-2.8.19-1.3.31.tar.gz Quelldateien entpacken
|
||
cd apache_1.3.31 in das Quelldatei-Verzeichnis wechseln
|
||
./configure --help Hilfe zu den möglichen Optionen
|
||
cd ../mod_ssl-2.8.19-1.3.31
|
||
./configure --help Hilfe zu den möglichen Optionen
|
||
./configure --with-apache=../apache_1.3.31
|
||
--with-ssl=../openssl-0.9.7d
|
||
--prefix=/usr/local/apache/1.3.31
|
||
--datadir=/srv/www
|
||
--enable-module=most
|
||
--enable-shared=max
|
||
--enable-module=ssl
|
||
cd ../apache_1.3.31 in das Quelldatei-Verzeichnis wechseln
|
||
make Programm herstellen
|
||
make certificate TYPE=custom Zertifikat erzeugen
|
||
Angaben zu der Certificate Authority
|
||
Signature Algorithm ((R)SA or (D)SA) [R]:R
|
||
1. Country Name (2 letter code) [XY]:DE
|
||
2. State or Province Name (full name) [Snake Desert]:Niedersachsen
|
||
3. Locality Name (eg, city) [Snake Town]:Salzgitter
|
||
4. Organization Name (eg, company) [Snake Oil, Ltd]:Komtek
|
||
5. Organizational Unit Name (eg, section) [Certificate Authority]:CA
|
||
78
|
||
11.2. Kompilieren und Installieren
|
||
6. Common Name (eg, CA name) [Snake Oil CA]:Komtek CA
|
||
7. Email Address (eg, name@FQDN) [ca@snakeoil.dom]:ca@komtek.de
|
||
8. Certificate Validity (days) [365]:365
|
||
Certificate Version (1 or 3) [3]:3
|
||
Angaben zum Serverzertifikat
|
||
1. Country Name (2 letter code) [XY]:DE
|
||
2. State or Province Name (full name) [Snake Desert]:Niedersachsen
|
||
3. Locality Name (eg, city) [Snake Town]:Salzgitter
|
||
4. Organization Name (eg, company) [Snake Oil, Ltd]:Komtek
|
||
5. Organizational Unit Name (eg, section) [Webserver Team]:Webmaster
|
||
6. Common Name (eg, FQDN) [www.snakeoil.dom]:www.komtek.de
|
||
7. Email Address (eg, name@fqdn) [www@snakeoil.dom]:www@www.komtek.de
|
||
8. Certificate Validity (days) [365]:365
|
||
Certificate Version (1 or 3) [3]:3
|
||
Schlüssel verschlüsseln
|
||
Encrypt the private key now? [Y/n]: n
|
||
Encrypt the private key now? [Y/n]: n
|
||
su als root anmelden
|
||
make install
|
||
groupadd wwwadmin Gruppe wwwadmin anlegen
|
||
chown -R nobody:wwwadmin /srv/www Rechte für das www-Verzeichnis setzen
|
||
ln -s /usr/local/apache/1.3.31 /usr/local/apache/current
|
||
Link zu Apache 1.3
|
||
ln -s /usr/local/apache/current/conf /etc/apache
|
||
Link zu den Konfigurationen
|
||
ln -s /usr/local/apache/current/logs /var/log/apache
|
||
Link zu den Logdateien
|
||
ln -s /usr/local/apache/current/bin/apachectl /usr/local/bin
|
||
Link zu apachectl
|
||
ln -s /usr/local/apache/current/bin/apachectl /etc/init.d/apache
|
||
Link zu den Startdateien
|
||
cd /etc/rc5.d in den Start-Runlevel wechseln
|
||
ln -s ../init.d/apache S20apache Link zum automatischen Starten
|
||
cd ../rc0.d in den Stopp-Runlevel wechseln
|
||
ln -s ../init.d/apache K20apache Link zum automatischen Beenden
|
||
cd ../rc6.d in den Start-Runlevel wechseln
|
||
ln -s ../init.d/apache K20apache Link zum automatischen Beenden
|
||
exit root abmelden
|
||
79
|
||
11. Apache
|
||
11.2.5. Apache2
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
tar xvfz httpd-2.0.51.tar.gz Quelldateien entpacken
|
||
cd httpd-2.0.51 in das Quelldatei-Verzeichnis wechseln
|
||
./configure --help Hilfe zu den möglichen Optionen
|
||
./configure --prefix=/usr/local/apache2/2.0.51
|
||
--with-ssl=../openssl-0.9.7d
|
||
--datadir=/srv/www2
|
||
--enable-module=most
|
||
--enable-shared=max
|
||
--enable-module=ssl
|
||
--with-port=81 da auf 80 schon der Apache 1.3 läuft
|
||
make Programm herstellen
|
||
su als root anmelden
|
||
make install Programm installieren (als root!)
|
||
groupadd wwwadmin Gruppe wwwadmin anlegen
|
||
chown -R nobody:wwwadmin /srv/www2 Rechte für das www-Verzeichnis setzen
|
||
ln -s /usr/local/apache2/2.0.51 /usr/local/apache2/current
|
||
Link zu Apache 2
|
||
ln -s /usr/local/apache2/current/conf /etc/apache2
|
||
Link zu den Konfigurationen
|
||
ln -s /usr/local/apache2/current/logs /var/log/apache2
|
||
Link zu den Logdateien
|
||
ln -s /usr/local/apache2/current/bin/apachectl /usr/local/bin/apachectl2
|
||
Link zu apachectl
|
||
ln -s /usr/local/apache2/current/bin/apachectl /etc/init.d/apache2
|
||
Link zu den Startdateien
|
||
cd /etc/rc5.d in den Start-Runlevel wechseln
|
||
ln -s ../init.d/apache2 S20apache2 Link zum automatischen Starten
|
||
cd ../rc0.d in den Stopp-Runlevel wechseln
|
||
ln -s ../init.d/apache2 K20apache2 Link zum automatischen Beenden
|
||
cd ../rc6.d in den Start-Runlevel wechseln
|
||
ln -s ../init.d/apache2 K20apache2 Link zum automatischen Beenden
|
||
exit root abmelden
|
||
11.2.6. Testen
|
||
/etc/init.d/apache start Apache1.3 starten
|
||
/etc/init.d/apache2 start Apache2 starten
|
||
Browser http://localhost/ Apache1.3 testen
|
||
Browser http://localhost:81/ Apache2 testen
|
||
/etc/init.d/apache stop Apache1.3 beenden
|
||
/etc/init.d/apache2 stop Apache2 beenden
|
||
80
|
||
11.2. Kompilieren und Installieren
|
||
11.2.7. Upgrade
|
||
./config.nice aus der letzten Installation entnehmen,
|
||
Apache2
|
||
11.2.8. PureFTPd
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
tar xvfz pure-ftpd-1.0.20.tar.gz Quelldateien entpacken
|
||
cd pure-ftpd-1.0.20 Verzeichnis wechseln
|
||
./configure --prefix=/usr/local/pure-ftpd/1.0.20 --with-language=german
|
||
Makefile herstellen
|
||
make Programm herstellen
|
||
make check Programm prüfen
|
||
su als root anmelden
|
||
make install Programm installieren
|
||
ln -s /usr/local/pure-ftpd/1.0.20 /usr/local/pure-ftpd/current
|
||
Link zu pure-ftpd
|
||
mkdir /usr/local/pure-ftpd/current/etc Verzeichnis etc anlegen
|
||
cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/current/etc
|
||
Konfiguration kopieren
|
||
cp pureftpd-*.conf /usr/local/pure-ftpd/current/etc
|
||
Konfigurationen kopieren
|
||
ln -s /usr/local/pure-ftpd/current/etc /etc/pure-ftpd
|
||
Link zu den Konfigurationen
|
||
vi /etc/init.d/pure-ftpd Startdatei für pure-ftpd anlegen
|
||
#!/bin/bash
|
||
case "$1" in
|
||
start)
|
||
echo "pureftpd wird gestartet ..."
|
||
cd /usr/local/pure-ftpd/current
|
||
./sbin/pure-ftpd &
|
||
;;
|
||
stop)
|
||
echo "pureftpd wird heruntergefahren ..."
|
||
kill -TERM ‘cat /var/run/pure-ftpd.pid‘
|
||
;;
|
||
*)
|
||
echo "Usage: $0 {start|stop}"
|
||
exit 1
|
||
;;
|
||
esac
|
||
exit 0
|
||
81
|
||
11. Apache
|
||
chmod 755 /etc/init.d/pure-ftpd Rechte setzen
|
||
cd /etc/rc5.d Verzechnis wechseln
|
||
ln -s ../init.d/pure-ftpd S20pure-ftpd Link zum automatischen Starten
|
||
cd /etc/rc0.d Verzechnis wechseln
|
||
ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden
|
||
cd /etc/rc6.d Verzechnis wechseln
|
||
ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden
|
||
useradd -g wwwadmin -d /srv -s /bin/false wwwadmin
|
||
Benutzer wwwadmin anlegen
|
||
passwd wwwadmin Passwort setzen
|
||
NoAnonymous yes
|
||
UnixAuthentication yes
|
||
MinUID 1000
|
||
MinUID 1000
|
||
TrustedGID 1002
|
||
exit root abmelden
|
||
11.3. Apache starten
|
||
11.3.1. Apache starten
|
||
Unter UNIX/Linux wird das httpd-Progamm als Daemon ausgeführt.
|
||
apachectl start Apache starten
|
||
rcapache start Apache starten(SuSE-Linux)
|
||
11.3.2. Wie der Apache startet
|
||
• apachectl ist die empfohlene Methode, das httpd-Programm zu starten
|
||
• apachectlsetztverschiedeneUmgebungsvariablenundstartetdashttpd-Programm
|
||
• apachectl reicht alle Kommandozeilenargumente durch
|
||
• als erstes liest der httpd die Konfigurationsdatei httpd.conf ein, die beim Kom-
|
||
pilieren festgelegt wurde
|
||
• zurLaufzeitkannderAblageortgeändertwerden,z.B.apachectl-f/etc/apache2/httpd.conf
|
||
• beim erfolgreicehn Start, trennt sich der Server vom Terminal ab
|
||
• bis zum Port 1024 muss der Apache root-Berechtigung besitzen
|
||
• der Haupt-httpd-Prozess läuft unter dem Benutzer root weiter
|
||
82
|
||
11.3. Apache starten
|
||
• ist der Server gestartet, öffnet er seine Log-Dateien
|
||
• der Apache startet mehrere Kind-Prozesse
|
||
• die Kind-Prozesse werden unter weniger privilegierten Benutzerkennungen aus-
|
||
geführt(z.B. nobody, wwwrun ...)
|
||
• die Kind-Prozesse lauschen und beantworten Anfragen von Clients
|
||
• dieKind-ProzessewerdenvondemausgewähltenMulti-Processing-Modul(Apache-
|
||
MPMprefork UNIX/Linux) gesteuert
|
||
11.3.3. Fehler während des Hochfahrens
|
||
• wird während des Hochfahrens einen schwerer Fehler feststellt, schreibt der Apa-
|
||
che eine Nachricht auf die Konsole oder ins ErrorLog, bevor er sich selbst beendet
|
||
• eine der häufigsten Fehlermeldungen ist Ünable to bind to Port ...", der Server
|
||
läuft schon oder hat keine root-Berechtigung
|
||
11.3.4. Automatisch starten und beenden
|
||
• apachectl zu den Startdateien des Systems hinzufügen (rc.local, rc.x-Verzeichnis)
|
||
z.B. SuSE-Linux:
|
||
cd /etc/rc.d/rc3.d/
|
||
ln -s ../apache S16apache Link zum automatischen Starten
|
||
in Runlevel 3 anlegen
|
||
ln -s ../apache K06apache Link zum automatischen Beenden
|
||
in Runlevel 3 anlegen
|
||
z.B. Debian:
|
||
cd /etc/rc3.d/
|
||
ln -s ../init.d/apache2 S20apachectl
|
||
Link zum automatischen Starten in Runlevel 5 anlegen
|
||
cd /etc/rc0.d/
|
||
ln -s ../init.d/apache2 K20apachectl
|
||
Link zum automatischen Beenden in Runlevel 0 anlegen
|
||
11.3.5. Weitere Informationen
|
||
http://localhost/manual/programs/httpd.html
|
||
http://localhost/manual/de/programs/httpd.html
|
||
http://localhost/manual/programs/apachectl.html
|
||
http://localhost/manual/de/programs/apachectl.html
|
||
83
|
||
11. Apache
|
||
11.4. Beenden und Neustarten
|
||
11.4.1. Einleitung
|
||
• umdenApachezustoppenoderneuzustarten,musseinSignalandenlaufenden
|
||
httpd-Prozess gesendet werden
|
||
• es gibt zwei Möglichkeiten Signale zu senden, kill und apachectl
|
||
• auf dem System laufen mehrere httpd-Programme
|
||
• nurandenElternprozesssollteeinSignalgesendetwerden,/var/log/apache2/httpd.pid
|
||
• es gibt drei Signale die an den Elternprozess gesendet werden können, TERM -
|
||
beenden, HUP - neustarten, USR1 - unterbrechungsfreier Neustart
|
||
• es wird empfohlen apachectl zu benutzen
|
||
• mit tail -f /var/log/apache2/error_log"kann die Signalisierung beobachtet wer-
|
||
den
|
||
11.4.2. Beenden
|
||
Signal: TERM
|
||
apachectl stop sendet das TERM(stop) signal an
|
||
den Elternprozess
|
||
rcapache stop Apache stoppen
|
||
bei SuSE-Linux
|
||
kill -TERM ‘cat /var/log/apache2/httpd.pid‘ sendet das TERM(stop) signal an
|
||
den Elternprozess
|
||
• das Senden des TERM(stop)-Signals an den Elternprozess veranlasst alle seine
|
||
Kindprozesse sich zu beenden
|
||
• es dauert etwas bis alle Kindprozesse beendet sind
|
||
• danach beendet sich der Elternprozess
|
||
• alle gerade bearbeiteten Anfragen werden abgebrochen
|
||
• es werden keine weiteren Anfragen mehr bedient
|
||
11.4.3. Unterbrechungsfreier Neustart
|
||
Signal: USR1
|
||
apachectl graceful sendet das USR1 signal an
|
||
den Elternprozess
|
||
kill -USR1 ‘cat /var/log/apache2/httpd.pid‘ sendet das USR1 signal an
|
||
den Elternprozess
|
||
84
|
||
11.4. Beenden und Neustarten
|
||
• das Senden des USR1-Signals an den Elternprozess veranlasst alle seine Kind-
|
||
prozesse sich zu beenden
|
||
• die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann
|
||
• der Elternprozess liest, wärend die Kindprozesse noch laufen, seine Konfigurati-
|
||
onsdateien erneut ein und öffnet seine Logdateien neu
|
||
• die Kindprozesse werden wieder gestartet
|
||
• die Serverstatistiken(mod_status) werden nicht auf Null zurückgesetzt
|
||
• ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu gestartet
|
||
• die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann
|
||
• wärednochdieletztenAnfragenbearbeitetwerdenkannderhttpdnichtgestartet
|
||
werden
|
||
11.4.4. Neustarten
|
||
Signal: HUP
|
||
apachectl restart sendet das HUP signal an
|
||
den Elternprozess
|
||
rcapache restart Apache stoppen und dann starten
|
||
bei SuSE-Linux
|
||
kill -HUP ‘cat /var/log/apache2/httpd.pid‘ sendet das HUP signal an
|
||
den Elternprozess
|
||
• das Senden des HUP(wie TERM)-Signals an den Elternprozess veranlasst alle
|
||
seine Kindprozesse sich zu beenden
|
||
• der Elternprozess liest seine Konfigurationsdateien erneut ein und öffnet seine
|
||
Logdateien neu
|
||
• die Kindprozessewerdenwiedergestartetund setzen die BedienungvonZugriffen
|
||
fort
|
||
• die Serverstatistiken(mod_status) werden auf Null zurückgesetzt
|
||
• ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu gestartet
|
||
11.4.5. Anhang: Syntax überprüfen
|
||
apachectl -t überprüft den Syntax der Konfigurationsdatei, so kann
|
||
vermieden werden das der Apache nicht neu startet
|
||
85
|
||
11. Apache
|
||
11.5. Anhang
|
||
11.5.1. Zu den Dateien
|
||
/etc/apache/
|
||
/etc/apache2/
|
||
/etc/httpd/
|
||
/etc/httpd2/
|
||
access.conf Zugriffs-Konfiguration
|
||
httpd.conf Apache Konfigurationsdatei
|
||
mime.types Zuweisung von Dateiendungen
|
||
srm.conf Resource-Konfiguration
|
||
/var/log/apache/
|
||
/var/log/apach2/
|
||
/var/log/httpd/
|
||
/var/log/httpd2/
|
||
access_log Zugriffsmeldungen
|
||
error_log Fehlermeldungen
|
||
httpd.pid Hauptprozessnummer
|
||
11.6. Benutzerhandbuch
|
||
11.6.1. httpd.conf
|
||
ServerType standalone Apache nicht ueber den inetd starten.
|
||
ServerRoot "/www/" Diese Einstellung sorgt dafür, dass der Apache
|
||
ausgehend von diesem Verzeichnis die
|
||
Verzeichnisse fuer Dokumente, Logfiles und
|
||
Konfigurationsdateien sucht.
|
||
LockFile /var/lock/subsys/httpd/httpd.accept.lock Spezifizert das Lock
|
||
File.
|
||
PidFile /var/run/httpd.pid Datei, in der sich die Prozess ID des Httpd-
|
||
Daemons befindet.
|
||
ResourceConfig /etc/httpd/srm.conf Diese Datei enthaelt Angaben zur
|
||
Formatierung und dem Aussehen der
|
||
automatisch erzeugten Verzeichnisindizes
|
||
(FancyIndexing) sowie Angaben zu den einzelnen
|
||
Dateitypen.
|
||
AccessConfig /etc/httpd/access.conf Datei zur Definition der Funktionen und
|
||
86
|
||
11.6. Benutzerhandbuch
|
||
Zugriffsrechte bestimmter Verzeichnisse
|
||
Timeout 300 Zeitlimit fuer Client-Anfragen in Sekunden.
|
||
KeepAlive On Unterstuezung der HTTP/1.1 Persistent
|
||
Connections. Dardurch koennen ueber eine TCP-
|
||
Verbindung mehrere Anfragen an den Server
|
||
geschickt werden.
|
||
MaxKeepAliveRequests 10 Es werden 10 aufeinanderfolgende Anfragen
|
||
innerhalb einer Keep-Alive-Verbindung erlaubt.
|
||
KeepAliveTimeout 15 Der Server wartet maximal 15 Sekunden auf
|
||
weitere Anfragen des Clients bei einer Keep-
|
||
Alive-Verbindung.
|
||
MinSpareServers 5 Es existieren immer mindestens 5 und hoechstens
|
||
MaxSpareServers 10 10 leerlaufende Prozesse.
|
||
StartServers 5 Es werden automatisch 5 Kindprozesse des Apache
|
||
gestartet.
|
||
MaxClients 150 Maximum von gleichzeitig laufenden
|
||
Server-Prozessen.
|
||
MaxRequestsPerChild 30 Nach 30 Anfragen wird der Kindprozess beendet
|
||
und gegebenfalls ein neuer gestartet.
|
||
Listen 12.34.56.78:80 Falls mehrere Interfaces bzw. IP Adressen fuer
|
||
den Rechner vorhanden sind, kann mit Listen
|
||
festgelegt werden, welche Ports fuer welche
|
||
Adresse abgehoert werden sollen.
|
||
Port 80 Standalone Server Port 80
|
||
User wwwrun Nach dem Oeffnen des Ports (als root), wechselt
|
||
Group nogroup Apache zu der als User und Group angegebenen
|
||
UID bzw. GID. Die Zuweisung kann entweder durch
|
||
angeben des Namens oder durch # gefolgt von der
|
||
ID erfolgen.
|
||
ServerAdmin dv@mynet.loc Bei Fehlermeldungen wird diese Adresse dem
|
||
Client zurueckgeliefert.
|
||
ServerName www.mynet.loc Wird bei Redirects benoetigt (wenn man
|
||
87
|
||
11. Apache
|
||
beispielsweise durch Eingabe von
|
||
http://www.mynet.loc/main auf das Verzeichnis
|
||
main zugreifen will, erzeugt der Apache einen
|
||
Redirect auf http://www.mynet.loc/main/ . Ohne
|
||
ServerName würde der richtige Hostname des
|
||
Rechners zurückgeliefert werden.
|
||
DocumentRoot "/www/htdocs/" Hier werden die HTML Seiten abgelegt.
|
||
AllowOverride All Konfigurationsanweisungen in der .htaccess
|
||
beachten
|
||
UserDir public_html Homepage-Directory der Benutzer
|
||
http://server/~benutzer/
|
||
DirectoryIndex index.html index.htm index.php Wird nur ein Directory
|
||
angegeben, wird automatisch die
|
||
angegebene Datei gesucht und angezeigt.
|
||
AccessFileName .htaccess Name der .htaccess
|
||
DefaultType text/plain Dateien ohne Endung werden wie Text-Files
|
||
behandelt.
|
||
HostnameLookups Off Es sollen keine DNS-Lookups ausgefuert werden.
|
||
ErrorLog /var/log/httpd/error_log Datei zur Aufnahme von Fehlermeldungen
|
||
und sonstigen Info Meldungen
|
||
(mod_log_config).
|
||
LogLevel warn LogLevel :-) debug, info, notice, warn, error,
|
||
crit,alert,emerg.
|
||
LogFormat ... Legt das Format der Logdatei(en) fest.
|
||
CustomLog /var/log/httpd/access_log common Erzeugt die Datei http.access im
|
||
Common Log Format.
|
||
ServerSignature Off ServerSignature kann man auf "Off" stellen,
|
||
damit ein Zugriff auf eine nichtexistente Seite
|
||
nicht Software und Versionsnummer anzeigt,
|
||
jedoch bringt das nicht allzuviel, da im HTTP
|
||
Header diese und wesentlich mehr Informationen
|
||
zu finden sind.
|
||
88
|
||
11.6. Benutzerhandbuch
|
||
Alias /icons/ "/www/icons/" Alias-Namen fuer bestimmte Verzeichnisse. Diese
|
||
werden anschliessend behandelt, als wenn sie
|
||
sich unter Document-Root befinden wuerden.
|
||
Achtung! Die Einstellungen gelten auch fuer
|
||
virtuelle Hosts.
|
||
IndexOptions FancyIndexing Als Optionen sind angebbar:
|
||
Fancyindexing - ausführliche Verzeichnisliste
|
||
(Icons, Name, Größe, Kurzbeschreibung etc.)
|
||
SuppressLastModified - keine Angabe der letzten
|
||
Modifikationszeit
|
||
SuppressSize - keine Angabe der Filegröße
|
||
SuppressDescription - keine Angabe einer
|
||
Kurzbeschreibung
|
||
ScanHTMLTitles - HTML-Titel als Kurzbeschreibung
|
||
(Achtung: Rechnerlast!)
|
||
ReadmeName README Die Datei README wird bei der Ausgabe des
|
||
Verzeichnisbaums angezeigt.
|
||
HeaderName HEADER Die Datei HEADER wird am Anfangs-Tag in den
|
||
Verzeichnisbaums angezeigt.
|
||
IndexIgnore .??* *~ *# RCS CVS *,v *,t Diese Dateien werden nicht durch
|
||
FancyIndexing angezeigt.
|
||
TypesConfig /etc/httpd/mime.types Enthaelt die Zuweisungen Dateiendung
|
||
zu Mime-Typ
|
||
BrowserMatch "Mozilla/2" nokeepalive Hiermit wird der Apache angewiesen, auf
|
||
bestimmte Browser unterschiedlich zu
|
||
reagieren.
|
||
11.6.2. Access Control List File (.htaccess)
|
||
Die Datei .htaccess muß in dem zu schützenden Ordner angelegt werden.
|
||
AuthUserFile /www/.htpasswd Pfad zu einer Passwortdatei
|
||
AuthGroupFile /dev/null
|
||
AuthName "Tux ;-)"
|
||
AuthType Basic
|
||
<Limit GET POST PUT>
|
||
require user webmaster
|
||
</Limit>
|
||
89
|
||
11. Apache
|
||
AuthUserFile /www/.htpasswd Pfad zu einer Passwortdatei
|
||
AuthGroupFile /www/.htgroup Pfad zu einer Gruppendatei
|
||
AuthName "Tux ;-)"
|
||
AuthType Basic
|
||
<Limit GET>
|
||
require group logins
|
||
</Limit>
|
||
11.6.3. Gruppendatei (.htgroup)
|
||
cat .htgroup -->
|
||
logins: benutzer1 benutzer2 ...
|
||
11.6.4. Passwort-Datei (.htpasswd)
|
||
htpasswd -c Passwortdatei Benutzername erzeugt eine neue Passwortdatei
|
||
und ein Benutzer
|
||
htpasswd Passwortdatei Benutzername erzeugt ein Benutzer
|
||
11.6.5. Erstellen eines SSL-Zertifikats
|
||
openssl req -new > firma.csr
|
||
openssl rsa -in privkey.pem -out firma.key
|
||
openssl x509 -in firma.csr -out firma.crt -req -signkey firma.key -days 10000
|
||
cp firma.key /etc/httpd/ssl.key/server.key
|
||
cp firma.crt /etc/httpd/ssl.crt/server.crt
|
||
cp firma.csr /etc/httpd/ssl.csr/server.csr
|
||
chown root privkey.pem
|
||
chmod 400 privkey.pem
|
||
11.6.6. LinkIcon (favicon.ico)
|
||
Was ist ein favicon.ico?
|
||
Immer wenn ein IE5 Benutzer eine Seite seinen Favoriten hinzufügt, sucht der IE5
|
||
nach einem Icon das er anstatt des Standardicons in der Favoritenliste anzeigen kann.
|
||
Er sucht zuerst im aktuellen ’Verzeichnis’ und geht dann Ebene für Ebene weiter bis
|
||
zum Wurzelverzeichnis. Nehmen wir mal an, das aktuelle Dokument befindet sich un-
|
||
ter http://www.bjoernsworld.de/suchmaschinen/ optimieren/aufraeumen.html, dann
|
||
wird der IE 5 so nach dem Icon suchen:
|
||
http://www.bjoernsworld.de/suchmaschinen/optimieren/favicon.ico
|
||
http://www.bjoernsworld.de/suchmaschinen/favicon.ico
|
||
http://www.bjoernsworld.de/favicon.ico
|
||
90
|
||
11.6. Benutzerhandbuch
|
||
Er sucht solange, bis er eines gefunden hat oder bei /favicon.ico angekommen ist.
|
||
Das gilt nur für den Internet Explorer Version 5.0 und 5.01; Version 5.5 sucht nur noch
|
||
nach /favicon.ico selbstständig. Hat er eins gefunden, zeigt er es in der Favoritenliste
|
||
an und beim erneuten Besuch der Seite auch links neben der URL in der Adresszeile:
|
||
Welches Format hat das favicon.ico?
|
||
Das favicon.ico ist ein Icon im Microsoft Windows Icon File Format. Windows Be-
|
||
nutzer sehen täglich solche Icons auf ihrem Desktop, in ihrem Startmenü, etc. In der
|
||
Favoritenliste wird dieses Icon in der Größe 16x16 Pixel dargestellt, daher sollte man
|
||
das Icon auch in dieser Größe erstellen. Die Farbzahl beschränkt sich auf 16 bzw. 256
|
||
Farben, wobei eine als transparente Farbe gilt.
|
||
Welchen MIME-Type hat das favicon.ico?
|
||
DerkorrekteMIME-Typefürdasfavicon.icoistimage/x-icon.BeimApacheWebserver
|
||
kann man das in einer .htaccess mit der Zeile:
|
||
AddType image/x-icon .ico
|
||
konfigurieren.
|
||
Wie erstelle ich ein favicon.ico?
|
||
ManbrauchtdafüreinenIconEditorwiemansiezuhaufbeiTucowsoderWinfiles.com
|
||
finden kann. Mit z.B. dem Freeware Tool Irfan View ist es ohne Probleme möglich,
|
||
eine Gifdatei in das Icon Format zu konvertieren. Macintosh Benutzer können den
|
||
GraphicConverter von Thorsten Lemke oder den Iconographer von MscapeSoftware
|
||
benutzen um das Icon zu erstellen. Bei favicon.com gibt es einen Online Editor in
|
||
Java, mit dem man online sein eigenes favicon.ico erstellen kann.
|
||
Wohin muss das favicon.ico?
|
||
Wieobenschongesagt,suchtderIE5,vorVersion5.5,zuerstimaktuellen’Verzeichnis’
|
||
und geht dann Ebene um Ebene nach oben, bis er unter http://host/favicon.ico ein
|
||
Icon findet oder eben nicht. Man kann entweder in jedes Verzeichnis ein favicon.ico
|
||
plazieren, oder im <HEAD> einer jeden HTML Datei auf ein Icon verweisen:
|
||
<link rel="SHORTCUT ICON" href="/favicon.ico" title="external:/favicon.ico">
|
||
Wenn der Apache Webserver mit mod_rewrite benutzt wird, kann man mit dieser
|
||
Regel:
|
||
RewriteEngine on
|
||
RewriteRule ^(.+)/favicon\.ico$ /favicon.ico [R=permanent] [L]
|
||
91
|
||
11. Apache
|
||
(z.B. in der .htaccess) alle Anfragen für favicons in Unterverzeichnissen auf das
|
||
favicon.ico im Root-Verzeichnis der Domain umleiten.
|
||
Wenn mod_rewrite nicht zur Verfügung steht, wohl aber Zugriff auf die Konfigu-
|
||
rationsdateien Apache Web Servers, kann man in z.B. der <VirtualHost> Sektion
|
||
folgenden Befehl einfügen:
|
||
RedirectMatch Permanent ^(.+)/favicon\.ico$ http://server.de/favicon.ico
|
||
Wie kann man diese Funktion abstellen?
|
||
Es gibt meines Wissens nach keine Möglichkeit den IE5 dazu zu bringen, nicht nach
|
||
dem favicon.ico zu suchen.
|
||
Links zum Thema:
|
||
http://www.favicon.de/
|
||
http://www.favicon.com/
|
||
http://wdvl.com/Authoring/Design/Images/Favicon/index.html
|
||
http://msdn.microsoft.com/workshop/essentials/versions/ICPIE5.asp
|
||
http://msdn.microsoft.com/workshop/Author/dhtml/howto/ShortcutIcon.asp
|
||
http://www.winfiles.com/apps/98/icons-edit.html
|
||
http://web.cip.com.br/flaviovs/sec/favicon/privacy.html
|
||
http://web.cip.com.br/flaviovs/sec/favicon/index.html
|
||
http://www.bjoernsworld.de/ie/398da66c.24234236@news.bjoern.hoehrmann.de.txt
|
||
92
|
||
12. MySQL
|
||
12.1. Einleitung
|
||
MySQL ist eine Datenbank und phpMyAdmin eine Web-Oberfläche, um MySQL zu
|
||
konfigurieren.
|
||
12.2. Kompilieren und Installieren
|
||
12.2.1. Anforderungen
|
||
• MySQL-Quellcode 4.x.xx, erhältlich bei http://www.mysql.com/
|
||
• Linux 2.x.xx
|
||
• ANSI-C-CompilerundGenerierungswerkzeuge,GNUCCompiler(GCC)abVer-
|
||
sion 2.95.4, wesentliche Generierungswerkzeuge wie make
|
||
• phpMyAdmin2.x.x(optional),erhältlichbeihttp://www.phpmyadmin.net/,Web-
|
||
Server, Apache 1 oder 2 mit PHP 4 oder 5
|
||
12.2.2. Vorbereitungen
|
||
su als root anmelden
|
||
mkdir /usr/local/src das Verzeichnis /usr/local/src anlegen,
|
||
wenn es noch nicht vorhanden ist
|
||
chmod 777 /usr/local/src Verzeichnis-Rechte setzen
|
||
exit root abmelden
|
||
cp Quelldateien /usr/local/src Quelldateien kopieren
|
||
12.2.3. MySQL
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
tar xvfz mysql-4.0.21.tar.gz Quelldateien entpacken
|
||
cd mysql-4.0.21 in das Quelldatei-Verzeichnis wechseln
|
||
./configure --help Hilfe zu den miöglichen Optionen
|
||
./configure --prefix=/usr/local/mysql/4.0.21 --localstatedir=/var/mysql/data
|
||
prefix: Installations-Verzeichnis
|
||
localstatedir: Daten-Verzeichnis
|
||
make Programm herstellen
|
||
93
|
||
12. MySQL
|
||
su als root anmelden
|
||
make install Programm installieren (als root!)
|
||
ln -s /usr/local/mysql/4.0.21 /usr/local/mysql/current
|
||
Link zu MySQL
|
||
cp support-files/mysql.server /etc/init.d/mysql
|
||
Startdatei kopieren
|
||
chmod 755 /etc/init.d/mysql
|
||
Dateirechte einstellen
|
||
ln -s /etc/init.d/mysql /etc/rc5.d/S20mysql
|
||
Link zum Starten in Runlevel5 anlegen
|
||
ln -s /etc/init.d/mysql /etc/rc6.d/K20mysql
|
||
Link zum Beenden in Runlevel6 anlegen
|
||
ln -s /etc/init.d/mysql /etc/rc0.d/K20mysql
|
||
Link zum Beenden in Runlevel0 anlegen
|
||
groupadd mysql Gruppe mysql anlegen
|
||
useradd -g mysql -d /usr/local/mysql/current -s /bin/false mysql
|
||
Benutzer mysql anlengen
|
||
mkdir -p /var/mysql/data Daten-Verzeichnis anlegen
|
||
./scripts/mysql_install_db --user=mysql initiale Datenbank installieren
|
||
cd /usr/local/mysql/current in das mysql Verzeichnis wechseln
|
||
cp share/mysql/my-medium.cnf /var/mysql/data/my.cnf
|
||
Konfiguration anlegen
|
||
chown -R root:mysql . Benutzer-Gruppen-Rechte setzen
|
||
chown -R mysql:mysql /var/mysql/data Rechte für das Daten-Verzeichnis setzen
|
||
/etc/init.d/mysql start mysql starten
|
||
./bin/mysqladmin -u root password ’geheim’
|
||
Datenbank-Passwort setzen
|
||
Achtung ! das Passwort steht danach in
|
||
der ~/.bash_history
|
||
12.2.4. MySQL Testen
|
||
./bin/mysql -D mysql -u root -p Client starten und zugriff auf die
|
||
Steuerungs-Datenbank nehmen
|
||
mysql> show tables; Tabelle anzeigen
|
||
+-----------------+
|
||
| Tables_in_mysql |
|
||
+-----------------+
|
||
| columns_priv |
|
||
| db |
|
||
| func |
|
||
| host |
|
||
| tables_priv |
|
||
| user |
|
||
94
|
||
12.2. Kompilieren und Installieren
|
||
+-----------------+
|
||
6 rows in set (0.00 sec)
|
||
mysql> exit; Client beenden
|
||
Bye
|
||
exit root abmelden
|
||
12.2.5. phpMyAdmin
|
||
su als root anmelden
|
||
cd /srv/www/htdocs in das Apache1.3-Verzeichnis wechseln
|
||
cd /srv/www2/htdocs in das Apache2-Verzeichnis wechseln
|
||
tar xvfj /usr/local/src/phpMyAdmin-2.5.7-pl1.tar.bz2
|
||
Dateien entpacken
|
||
ln -s phpMyAdmin-2.5.7-pl1 phpMyAdmin Link zu phpMyAdmin anlegen
|
||
vi phpMyAdmin/config.inc.php phpMyAdmin anpassen
|
||
$cfg[’PmaAbsoluteUri’] = ’http://localhost/phpMyAdmin/’;
|
||
URL zu Apache1.3
|
||
$cfg[’PmaAbsoluteUri’] = ’http://localhost:81/phpMyAdmin/’;
|
||
URL zu Apache2
|
||
$cfg[’Servers’][$i][’user’] = ’root’; // MySQL user
|
||
$cfg[’Servers’][$i][’password’] = ’geheim’; // MySQL password
|
||
vi phpMyAdmin/.htaccess htaccess anlegen
|
||
AuthType Basic
|
||
AuthName "PhpMyAdmin"
|
||
AuthUserFile /srv/www/htdocs/phpMyAdmin/.htpasswd
|
||
Apache1.3
|
||
AuthUserFile /srv/www2/htdocs/phpMyAdmin/.htpasswd
|
||
Apache2
|
||
AuthGroupFile /dev/null
|
||
<Limit GET POST>
|
||
require valid-user
|
||
</Limit>
|
||
cd /usr/local/apache/current/bin Verzeichnis wechseln, Apache1.3
|
||
cd /usr/local/apache2/current/bin Verzeichnis wechseln, Apache2
|
||
./htpasswd --help Hilfe zu htpasswd
|
||
./htpasswd -c /srv/www/htdocs/phpMyAdmin/.htpasswd root
|
||
Apache1.3
|
||
./htpasswd -c /srv/www2/htdocs/phpMyAdmin/.htpasswd root
|
||
Apache2
|
||
vi /etc/apache/httpd.conf Apache1.3 anpassen
|
||
95
|
||
12. MySQL
|
||
vi /etc/apache2/httpd.conf Apache2 anpassen
|
||
<Directory "/srv/www/htdocs">
|
||
Options Indexes FollowSymLinks MultiViews
|
||
AllowOverride AuthConfig None -> AuthConfig
|
||
Order allow,deny
|
||
Allow from all
|
||
</Directory>
|
||
/etc/init.d/apache graceful Einstellungen neu einlesen, Apache1.3
|
||
/etc/init.d/apache2 graceful Einstellungen neu einlesen, Apache2
|
||
exit root abmelden
|
||
96
|
||
13. PHP
|
||
13.1. Einleitung
|
||
Wer hat PHP erfunden ? Der Kanada-Däne Rasmus Lerdorf !
|
||
Was heist PHP ? Personal Home Page Tools
|
||
Was ist PHP ? Eine einfache Skriptsprache. Sie wird direkt
|
||
in HTML-Seiten eingefügt und vom Webserver
|
||
interpretiert.
|
||
Wie funktioniert PHP ? Der Browser schickt einen HTTP-Request an den
|
||
Webserver. Der Server reagiert, liest die
|
||
PHP-Seite ein, und führt die Skripte aus und
|
||
schickt erst das fertig zusammengesetzte
|
||
Dokument zurück an den Browser !
|
||
LAMP - Linux-Apache-MySQL-PHP
|
||
WAMP - Windows-Apache-MySQL-PHP
|
||
13.2. Kompilieren und Installieren
|
||
13.2.1. Anforderungen
|
||
• PHP 4 oder 5, erhältlich bei http://www.php.net/
|
||
• Linux ab 2.4.xx(z.B.Debian Sarge 3.1)
|
||
• ANSI-C-CompilerundGenerierungswerkzeuge,GNUCCompiler(GCC)abVer-
|
||
sion 2.7.2, wesentliche Generierungswerkzeuge wie make
|
||
• Webserver z.B. Apache 1.3 oder 2
|
||
• GD-Library ab 2.x.x, erhältlich bei http://www.boutell.com/gd/, Freetype ab
|
||
2.x.x, erhältlich bei http://www.freetype.org/,Zlib ab 1.x.x, erhältlichbei http://www.gzip.org/zlib/,
|
||
IJG JPEG, erhältlich bei http://www.ijg.org/
|
||
13.2.2. Vorbereitungen
|
||
su als root anmelden
|
||
mkdir /usr/local/src das Verzeichnis /usr/local/src anlegen,
|
||
wenn es noch nicht vorhanden ist
|
||
97
|
||
13. PHP
|
||
chmod 777 /usr/local/src Verzeichnis-Rechte setzen
|
||
exit root abmelden
|
||
cp Quelldateien /usr/local/src Quelldateien kopieren
|
||
13.2.3. Libraries für Zusatzfunktionen
|
||
Freetype
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
tar xvfj freetype-2.1.9.tar.bz2 Quelldateien entpacken
|
||
cd freetype-2.1.9 in das Quelldatei-Verzeichnis wechseln
|
||
./configure Codebaum konfigurieren
|
||
make Programm herstellen
|
||
su als root anmelden
|
||
make install Programm installieren
|
||
exit root abmelden
|
||
Zlib
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
tar xvfz zlib-1.2.1.tar.gz Quelldateien entpacken
|
||
cd zlib-1.2.1 in das Quelldatei-Verzeichnis wechseln
|
||
./configure Codebaum konfigurieren
|
||
make Programm herstellen
|
||
su als root anmelden
|
||
make install Programm installieren
|
||
exit root abmelden
|
||
IJG JPEG
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
tar xvfz jpegsrc.v6b.tar.gz Quelldateien entpacken
|
||
cd jpeg-6b in das Quelldatei-Verzeichnis wechseln
|
||
./configure --help Hilfe zu den möglichen Optionen
|
||
./configure --enable-shared
|
||
--enable-static
|
||
--prefix=/usr/local
|
||
make Programm herstellen
|
||
make test Programm testen
|
||
su als root anmelden
|
||
make install Programm installieren
|
||
exit root abmelden
|
||
GD-Library
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
98
|
||
13.2. Kompilieren und Installieren
|
||
tar xvfz gd-2.0.28.tar.gz Quelldateien entpacken
|
||
cd gd-2.0.28 in das Quelldatei-Verzeichnis wechseln
|
||
./configure Codebaum konfigurieren
|
||
make Programm herstellen
|
||
su als root anmelden
|
||
make install Programm installieren
|
||
exit root abmelden
|
||
13.2.4. PHP
|
||
cd /usr/local/src Verzeichnis wechseln
|
||
tar xvfj php-5.0.1.tar.bz2 Quelldateien entpacken
|
||
cd php-5.0.1 in das Quelldatei-Verzeichnis wechseln
|
||
./configure --help Hilfe zu den möglichen Optionen
|
||
./configure --with-apxs=/usr/local/apache/current/bin/apxs Apache 1.3 oder
|
||
--with-apxs2=/usr/local/apache2/current/bin/apxs Apache 2
|
||
--with-mysql=/usr/local/mysql/current
|
||
--with-zlib
|
||
--with-ftp
|
||
--with-gd
|
||
--with-jpeg-dir=/usr/local/lib
|
||
--enable-versioning
|
||
--enable-track-vars=yes
|
||
--enable-url-includes
|
||
--enable-sysvshm=yes
|
||
--enable-sysvsem=yes
|
||
--with-config-file-path=/etc
|
||
make Programm herstellen
|
||
su als root anmelden
|
||
make install Programm installieren
|
||
cp php.ini-dist /etc/php.ini PHP-Konfiguration kopieren
|
||
vi /etc/apache/httpd.conf Apache1.3 anpassen
|
||
vi /etc/apache2/httpd.conf Apache2 anpassen
|
||
LoadModule php5_module modules/libphp5.so
|
||
Apache2
|
||
LoadModule php5_module libexec/libphp5.so
|
||
Apache1.3
|
||
AddModule mod_php5.c Apache1.3
|
||
DirectoryIndex index.html index.htm index.html.var index.php index.phtml
|
||
AddType application/x-httpd-php .php
|
||
AddType application/x-httpd-php-source .phps
|
||
exit root abmelden
|
||
99
|
||
13. PHP
|
||
13.3. Referenz
|
||
13.3.1. Grundlagen
|
||
<?php , <? oder <% Beginn des PHP-Abschnitts
|
||
?> oder %> Ende des PHP-Abschnitts
|
||
; Zeilenende
|
||
// Kommentartext Einzeiliger Kommentartext
|
||
/* Kommentartext Einleitung, mehrzeiliger Kommentartext
|
||
Kommentartext */ Abschluss, mehrzeiliger Kommentartext
|
||
$ Variablen anfang
|
||
echo "Text" ; Text ausgeben
|
||
echo "Text $Variable Text" ; Variable ausgeben
|
||
echo "Text".$Variable."Text" ; . Verketten von Zeichenfolgen
|
||
echo "Text\n" ; \n Erzeugt eine neue Zeile
|
||
echo "Text\r" ; \r Erzeugt einen neuen Absatz (return)
|
||
echo "Text\tText" ; \t Erzeugt ein Tabulatorschritt
|
||
echo "\"Text\"" ; \" Gänsefüßchen ausgeben
|
||
echo "\’Text\’" ; \’ Einfache Anführungszeichen ausgeben
|
||
echo "\$Text\$" ; \$ Dollar-Zeichen ausgeben
|
||
echo "\\Text\\" ; \\ Backslash ausgeben
|
||
$Array[Indexwert]="Wert" ; Wert einer Array-Variable zuweisen (Langform)
|
||
$Array=array("W0","W1") ; Werte einer Array-Variable zuweisen (Kurzform)
|
||
echo $Array[Indexwert] ; Wert einer Array-Variable ausgeben
|
||
$Array[Index-Ersatz]="Wert" ; Wert eines Assoziativen-Arrays zuweisen (Langf.)
|
||
$Array=array("I-E0"=>"W0","I-E1"=>"W1") ;
|
||
Werte eines Assoziativen-Arrays zuweisen(Kurzf.)
|
||
echo $Array[Index-Ersatz] ; Wert eines Assoziativen-Arrays ausgeben
|
||
$a=$b+$c ; Addition von $b und $c gleich $a
|
||
$a=$b-$c ; Subtraktion von $b minus $c gleich $a
|
||
$a=$b*$c ; Multiplikation von $b mal $c gleich $a
|
||
$a=$b/$c ; Division $b geteilt durch $c gleich $a
|
||
$a++ ; $a=$a+1 ;
|
||
$a-- ; $a=$a-1 ;
|
||
$a=3.1415 ; . Dezimaltrenner
|
||
13.3.2. Funktionen
|
||
phpinfo() ; PHP-Informationen ausgeben
|
||
$Wochentag=date("w") ; Wochentag ermitteln 0-So bis 6-Sa
|
||
$Monatszahl=date("m") ; Monatszahl ermitteln
|
||
$Anzahl=count($Array) ; Elemet-Anzahl eines Arrays ermitteln
|
||
$Wert=round($Wert,Nachkommastellen) ; Rundet den Wert mit Nachkommastellen
|
||
$Wert=sprintf("%01.2f",$Wert) ; Rundet den Wert auf 2 :Nachkommastellen
|
||
100
|
||
14. Squid
|
||
14.1. Proxy
|
||
Squid = Proxy-Cache = Stellvertreter-Zwischenspeicher
|
||
14.2. Einfacher Cache
|
||
*---------------* *------------* | *---------* | *------------*
|
||
| lokaler Cache |<--->| WWW-Client |<--->| Intenet |<--->| WWW-Server |
|
||
*---------------* *------------* | *---------* | *------------*
|
||
Die einfachste form des Caches | |
|
||
14.3. Proxy Cache
|
||
*------------*
|
||
| WWW-Client |<-+ | |
|
||
*------------* | | |
|
||
| | |
|
||
*------------* | *-------------* | *---------* | *------------*
|
||
| WWW-Client |<-+->| Proxy Cache |<--->| Intenet |<--->| WWW-Server |
|
||
*------------* | *-------------* | *---------* | *------------*
|
||
| | |
|
||
*------------* | | |
|
||
| WWW-Client |<-+ | |
|
||
*------------*
|
||
14.4. Aufgaben
|
||
• Zwischenspeichern von Internetseitten -> Beschleunigter Zugriff auf Internetin-
|
||
halte
|
||
• Abkoppelung vom direkten Zugriff auf das Internet -> Erhöte Sicherheit im
|
||
lokalem Netz
|
||
• Filterung von Interrnetseiten
|
||
• Protokollierung des Internetverkehrs
|
||
101
|
||
14. Squid
|
||
14.5. Eigenschaften
|
||
• Größe des Cache kann frei definiert werden
|
||
• Aufbau von Cache-Hierarchien
|
||
• Eigener DNS-Cache
|
||
• Authentifizierung über zusätzliche Module möglich
|
||
• Für Win, OS/2, Linux, BSD, Solaris verfügbar
|
||
• Ausfilterung und Anonymisierung der Anfragen
|
||
• Sehr flexible Zugriffskontrolle
|
||
• Filterung über externe Programme (Squid-Guard)
|
||
14.6. Protokolle
|
||
14.6.1. Client-Kommunikation
|
||
• Hyper Text Transfer Protocol (HTTP)
|
||
• File Transfer Protocol (FTP)
|
||
• Gopher
|
||
• Wide Area Information Service (WAIS)
|
||
• Secure Socket Layer (SSL)
|
||
14.6.2. Kommunikation zwischen Proxy-Cache-Servern
|
||
• HyperText Transfer Protocol (HTTP)
|
||
• Internet Cache Protocol (ICP(3130))
|
||
• Cache Digests (Index von anderen Caches abfragen)
|
||
• Simple Network Management Protocol (SNMP)
|
||
• HyperText Caching Protocol (HTCP(4837))
|
||
• Web Cache Coordination Protocol (WCCP)
|
||
102
|
||
14.7. Systemvoraussetzungen
|
||
14.7. Systemvoraussetzungen
|
||
• Langsamme CPU
|
||
• Viel RAM
|
||
• Schnelle Festplatte(n)
|
||
• Große Festplatte(n)
|
||
14.8. SuSE Linux
|
||
rcsquid start Squid starten
|
||
rcsquid stop Squid stoppen
|
||
rcsquid restart Squid stoppen und dann starten
|
||
rcsquid status Squid info
|
||
14.9. Automatische Starten von Squit
|
||
cd /etc/rc.d/rc5.d/
|
||
ln -s ../squid S22squid Link zum automatischen Starten in Runlevel 5
|
||
anlegen.
|
||
ln -s ../squid K02squid Link zum automatischen Beenden in Runlevel 5
|
||
anlegen.
|
||
14.10. Squiddateien
|
||
/etc/squid.conf Squid Konfigurationsdatei
|
||
/usr/share/squid/errors/ Fehlermeldungen die der Squid ausgibt
|
||
/var/cache/squid/ Squid-Cache
|
||
/var/log/squid/access.log Log-Datei mit allen Zugriffen
|
||
/var/log/squid/cache.log Cache-Aktivitaeten
|
||
14.11. squid.conf
|
||
http_port: Proxy-Portnummer
|
||
# http_port 3128
|
||
http_port 8080
|
||
cache_mem: Hauptspeicherverbrauch (x3)
|
||
# cache_mem 8 MB
|
||
maximum_object_size: maximale groeße einer Datei die der Proxy speichert
|
||
# maximum_object_size 4096 KB
|
||
103
|
||
14. Squid
|
||
minimum_object_size: minimale groeße einer Datei die der Proxy speichert
|
||
# minimum_object_size 0 KB
|
||
cache_dir: Verzeichnisname GroeßeMByte Ebene1 Ebene2
|
||
# cache_dir ufs /var/cache/squid 100 16 256
|
||
cache_dir ufs /var/cache/squid 400 16 256
|
||
cache_access_log: Log-Datei mit allen Zugriffen
|
||
# cache_access_log /var/log/squid/access.log
|
||
cache_log: Log-Datei fuer alle Cache-Aktivitaeten
|
||
# cache_log /var/log/squid/cache.log
|
||
debug_options: ALL,1-normal 9-maximal
|
||
# debug_options ALL,1
|
||
log_fqdn: Bei on wird der Name und bei off wird die IP-Nummer
|
||
in der access.log speichert
|
||
# log_fqdn off
|
||
log_fqdn off
|
||
client_netmask: Zum Anonymisieren
|
||
255.255.255.255 volle IP-Nr.,
|
||
255.255.255.0 ersten 3 Stellen
|
||
# client_netmask 255.255.255.255
|
||
ftp_user: Anonymer FTP-Name
|
||
# ftp_user Squid@
|
||
ftp_user Anonymous@
|
||
dns_children: maximale Anzahl der DNS Prozesse
|
||
# dns_children 5
|
||
dns_nameservers: Eintrag fuer DNS-Server
|
||
#dns_nameservers 194.25.2.129 192.168.6.66
|
||
reference_age: maximale Alter der Cachefiles (0.0 week/days/months/hours)
|
||
# reference_age 1 year
|
||
negative_ttl: gibt an wie lange eine negative DNS Aufloesung gueltig ist
|
||
# negative_ttl 5 minutes
|
||
http_access: Zugriffsrechte fuer den Cache
|
||
104
|
||
14.11. squid.conf
|
||
# acl - aclname acltype string - definiert eine Zuganskontrolle und Sperrliste
|
||
# src - Client IP-Adresse/Adressbereich
|
||
# dst - Zielserver IP-Adresse/Adressbereich
|
||
# srcdomain - Client (Domain-)Name
|
||
# dstdomain - Zielserver (Domain-)Name
|
||
# srcdom_regex - Cient (Domain-)Name als RegEx
|
||
# dstdom_regex - Zielserver (Domain-)Name als RegEx
|
||
# port - Port oder -bereich für Verbindungen
|
||
# proto - Protokoll (z.B. HTTP, FTP ...) für die Verbindung
|
||
# method - Methode der Verbindung (z.B. GET, POST ...)
|
||
# proxy_auth - Benutzernamen bei Authentifizierung
|
||
# urlpath_regex Teil einer URL als RegEx
|
||
acl all src 0.0.0.0/0.0.0.0
|
||
acl rotten dstdomain www.rotten.com
|
||
http_access deny rotten
|
||
http_access allow all
|
||
cache_mgr: E-Mail bei einen Fehler an: E-Mail oder Alias(/etc/aliases)
|
||
# cache_mgr webmaster
|
||
cache_effective_user: BenutzerName/ID
|
||
# cache_effective_user squid
|
||
cache_effective_group: GruppenName/ID
|
||
# cache_effective_group nogroup
|
||
visible_hostname: ServerName bei Fehlermeldungen
|
||
# none
|
||
visible_hostname proxy.gelbdmz.loc
|
||
logfile_rotate: Zeit der Logdateien in Wochen
|
||
# logfile_rotate 0
|
||
append_domain: Kein Punkt in der URL ? Dann diesen Domainnamen anhaengen
|
||
# none
|
||
append_domain .meak.de
|
||
error_directory: Verzeichnis zu den Fehlermeldungen die der Squid ausgibt
|
||
#error_directory /usr/share/squid/errors
|
||
105
|
||
Teil IV.
|
||
Programmieren
|
||
107
|
||
15. Bash
|
||
15.1. Einleitung
|
||
Was heist BASH ? Bourne-Again SHell
|
||
Was ist die BASH ? Standard-Shell der meisten Linux-Distributionen
|
||
Eine fast komplette Programmiersprache
|
||
BASH-Programme werden auch SScripte"(Protokolle) genannt !
|
||
15.2. Referenz
|
||
#!/bin/bash Pfad zur Shell die das Programm ausführen soll
|
||
chmod u+x Script Macht das Script ausführbar
|
||
bash Script oder sh Script so gehts auch
|
||
# Kommentar bis Zeilenende
|
||
: Null-Funktion. Ein Befehl, der nichts tut.
|
||
(( oder [
|
||
)) oder ]
|
||
echo Text Gibt den Text aus
|
||
echo "Text" Gibt den Text aus
|
||
echo Text Text Gibt den Text mit nur einer Leerstelle aus
|
||
echo "Text Text" Gibt den Text mit allen Leerstellen aus
|
||
echo Text\ \ \ Text Gibt den Text mit allen Leerstellen aus
|
||
Variable=7 Speichert 7 in der Variable
|
||
Variable=z Speichert z in der Variable
|
||
echo $Variable Gibt den Inhalt der Variable aus
|
||
echo ${Variable} Gibt den Inhalt der Variable aus
|
||
Wert=$[$Wert+1] Wert=Wert+1
|
||
Wert=$(($Wert+1)) Wert=Wert+1
|
||
: $[Wert+=1] Wert=Wert+1
|
||
: $((Wert+=1)) Wert=Wert+1
|
||
109
|
||
15. Bash
|
||
15.3. Steuer und Sonderzeichen der Bash
|
||
Zeichen Funktion
|
||
------- --------
|
||
Leerzeichen (space) Trenner zwischen Programm-Parametern
|
||
Tabulator (tab) Trenner zwischen Programm-Parametern
|
||
Return (newline) Befehlseingabe
|
||
\ (backslash) Escape-Zeichen
|
||
| (pipe) Verkettung der Ein-/Ausgabe mehrerer Programme
|
||
& (ampersand) Programm als Hintergrund-Prozess starten,
|
||
Ein-/Ausgabeumleitung
|
||
; (semikolon) Trenner zwischen zwei Programmaufrufen
|
||
( ) (braces) Gruppierung, Berechnung
|
||
110
|
||
16. git
|
||
Git ist eine freie Software zur verteilten Versionsverwaltung von Dateien, die durch
|
||
Linus Torvalds initiiert wurde.
|
||
16.1. Dokumentation
|
||
git help status Manpage von git status anzeigen
|
||
git status --help Manpage von git status anzeigen
|
||
man git-status Manpage von git status anzeigen
|
||
16.2. Konfiguration
|
||
git config --global ... Speichern im Homeverzeichnis .gitconfig
|
||
git config --system ... /etc/gitconfig konfigurieren unueblich
|
||
git config ... Arbeitsverzeichnis .git/config
|
||
git config user.name "Max Mustermann" Name konfigurieren
|
||
git config user.email "max.mustermann@examle.com"
|
||
E-Mail konfigurieren
|
||
git config --unset user.name Name löschen
|
||
git config alias.st status Alias status -> st herstellen
|
||
[alias] nützliche Abkürzungen
|
||
st = status
|
||
ci = commit
|
||
br = branch
|
||
co = checkout
|
||
df = diff
|
||
he = help
|
||
cl = clone
|
||
git config -e startet Editor auf der Konfiguration
|
||
git config color.ui auto Farben einstellen
|
||
git config core.eol lf,crlf oder native Zeilenende lf-Linux crlf-Windows
|
||
native-System-Default
|
||
git config core.safecrlf Verbietet Commit bei vermischung
|
||
git config core.autocrlf input sichere Einstellung bei älteren
|
||
Git-Versionen unter Windows
|
||
git config il8n.commitEncoding ISO-8859-1
|
||
Zeichenkodierung ISO-8859-1
|
||
111
|
||
16. git
|
||
Standart UTF-8
|
||
git config core.pager ’env LESSCHARSET=iso8859 less’
|
||
Zeichenkodierung für den Pager
|
||
git config core.editor vim Vim als Editor einstellen
|
||
git config core.browser ... Browser einstellen
|
||
git config help.autocorrect n beim Vertippen ähnliches Subkommando
|
||
ausführen, n Zentelsekunden bis zum
|
||
Ausführen, -1 für sofort aus, 0 zeigt
|
||
nur Möglichkeiten an
|
||
git config --list alle Einstellungen anzeigen
|
||
16.3. Konfigurationen über Umgebungsvariablen
|
||
GIT_EDITOR Editor den Git verwendet
|
||
sonst greift die Variable EDITOR
|
||
GIT_PAGER der wert cat schaltet den Pager aus
|
||
GIT_AUTHOR_EMAIL E-Mail für den Autor des Commits
|
||
GIT_COMMITTER_EMAIL E-Mail für das Commiter-Feld des Commits
|
||
GIT_AUTHOR_NAME Name für den Autor des Commits
|
||
GIT_COMMITTER_NAME Name für das Commiter-Feld des Commits
|
||
GIT_DIR Verzeichnis, in dem sich das Git-Repository befindet
|
||
macht nur sinn bei einem Git-Repository
|
||
16.4. Der Index
|
||
Der Inhalt von Dateinen liegt für Git auf drei Ebenen, den Working Tree, dem Index
|
||
und dem Repository.
|
||
clone/fetch/pull
|
||
+----------+ --------------------------------------------------> +
|
||
|Repository| |
|
||
--bare init |(origin) | push |
|
||
----------> +----------+ <--------------------------------------- + |
|
||
| |
|
||
status add status commit/--amend | |
|
||
+------------+ ---------> +--------------+ ---------------------> +----------+
|
||
|Working Tree| diff |Index | diff --staged/--cached |Repository|
|
||
| | <--------> |(Staging Area)| <--------------------> | |
|
||
+------------+ <--------- +--------------+ <--------------------- +----------+
|
||
| reset HEAD reset HEAD -- | |
|
||
+ -------------------------------------------------> + |
|
||
checkout -- |
|
||
init |
|
||
---------------------------------------------------------------------------> +
|
||
112
|
||
16.5. Repository
|
||
git diff zeigt den Unterschied zwischen Working Tree
|
||
und Index an
|
||
git diff --color-words Änderugen Fablich anzeigen
|
||
grün-hinzugekommen rot-entfernt
|
||
git diff --word-diff --no-color ohne Frabe mit Zeichen
|
||
git diff --staged zeigt den Unterschied zwischen
|
||
Index(Staging Area) und Repository an
|
||
git diff --cached zeigt den Unterschied zwischen
|
||
Index(Staging Area) und Repository an
|
||
16.5. Repository
|
||
git init Beispiel Neues Repository herstellen, legt Verzeichnis Beispiel
|
||
an wenn nicht schon vorhanden
|
||
git status zeigt den aktuellen Zustand an
|
||
git log die Commit Historie anzeigen
|
||
16.6. Commit
|
||
git add Datei Datei zum Index hinzufügen
|
||
git add -u oder --update Alle Veränderungen in den Index übertragen
|
||
git reset HEAD Datei aus der Staging Area zu entfernen
|
||
git commit -m "Erste Version" Index zum Working Tree hinzufügen
|
||
git add forgotten_file Datei zum Index hinzufügen
|
||
git commit --amend den letzten Commit ändern
|
||
git show Commit einsehen
|
||
git log Commits anzeigen
|
||
16.7. Dateien entfernen
|
||
git rm Datei Datei in deinem Arbeitsverzeichnis behalten,
|
||
aber aus der Staging Area nehmen
|
||
git rm -f Datei Datei aus dem Arbeitsverzeichis und Index löschen
|
||
git reset HEAD Datei Datei in Deinem Arbeitsverzeichnis behalten,
|
||
aber aus der Staging Area nehmen
|
||
16.8. Dateien verschieben
|
||
git mv Datei_alt Datei_neu Datei verschieben
|
||
113
|
||
16. git
|
||
16.9. Änderung an einer Datei rückgängig machen
|
||
git checkout -- Datei Datei zurückversetzen auf den letzten Commit oder Klone
|
||
16.10. Dateien ignorieren
|
||
Dateien im Projektverzeichnis die nicht versioniert im Repository sein sollen
|
||
kommen in die Datei .gitignore.
|
||
.gitignore
|
||
# Zeile mit # oder leere wird ignoriert
|
||
*.o ignoriert alle Dateien die mit .o enden
|
||
!lib.o wird nicht ignoriert
|
||
/TODO ignoriert den Ordner TODO
|
||
build/ ignoriert alle Dateien im build Verzeichnis
|
||
doc/*.txt ignoriert alle .txt Dateien im doc Verzeichnis
|
||
doc/**/*.txt ignoriert alle .txt Dateien unterhalb des doc
|
||
Verzeichnis
|
||
16.11. Mit externen Repositorys arbeiten
|
||
git clone git://git.kernel.org/pub/scm/git/git.git
|
||
git Repository herunterladen, Port 9418
|
||
git clone file:///home/git/project.git Repository herunterladen, legt harte
|
||
Links an wenn möglich
|
||
git clone ssh://user@server/project.git ssh Repository herunterladen, Port 22
|
||
git clone http(s)://example.com/gitproject.git
|
||
http(s) Repository herunterladen,
|
||
Port 80(443)
|
||
git remote -v zeigt an, welche externen Server für
|
||
das Projekt lokal konfiguriert sind
|
||
git remote add Name URL Remote Repository hinzufügen
|
||
git remote add origin ssh://git@sonne:/srv/git/linux.git
|
||
Beispiel
|
||
git fetch Name Informationen aus dem Remote Repository
|
||
herunterladen
|
||
git pull Name entspricht git fetch git merge
|
||
git checkout -b Branch origin/Branch erstellt einen lokalen bearbeitbaren
|
||
Branch
|
||
git push origin master Änderungen in ein Remote Repository
|
||
hochladen
|
||
git push Remote Branch Brauch auf Remote hochladen
|
||
git push Remote :Branch löschen entfernter Branches
|
||
git remote show Name zeigt die URL für das Remote
|
||
114
|
||
16.12. Tags
|
||
Repository, die Information welche
|
||
Branches verfolgt werden und welcher
|
||
Branch aus dem Remote Repository mit
|
||
dem eigenen Master zusammengeführt
|
||
wird, wenn Du git pull ausführst
|
||
git remote rename Name_alt Name_neu Name des Remote Repository lokal ändern
|
||
git remote rm Name Remote Repository entfernen
|
||
16.12. Tags
|
||
git tag vorhandene Tags anzeigen
|
||
git tag -a v1.4 -m ’my version 1.4’
|
||
einen kommentierten Tag anlegen
|
||
git tag -s v1.5 -m ’my signed 1.5 tag’
|
||
einen kommentierten und signierten Tag anlegen
|
||
git tag -v v1.4.2.1 einen signierten Tag zu verifizieren
|
||
git tag -a v1.2 -m ’version 1.2’ Checksumme
|
||
im Nachhinein taggen, Checksumme des Commits
|
||
oder einen Teil davon angeben
|
||
git log --pretty=oneline Commit Historie mit Checksumme
|
||
git push origin v1.5 Tag veröffentlichen
|
||
git push origin --tags Tags veröffentlichen
|
||
git tag -d v1.5 Tag löschen
|
||
git push origin :refs/tags/v1.5 veröffentlichen Tag löschen
|
||
16.13. Branch
|
||
Wasist ein Branch? Ein Zeiger, der auf den gleichen Commit zeigt, auf dem Du gerade
|
||
arbeitest.
|
||
git branch testing erstellt einen neuen Branch mit dem Namen testing
|
||
git checkout testing um zu einem anderen Branch zu wechseln
|
||
git branch -b testing erstellt und wechselt zu dem Branch
|
||
git merge testing führt testing mit dem Master-Branch zusammen
|
||
git branch -d testing entfernt testing
|
||
git merge master Deinem Zweig mit dem master kombinieren
|
||
git rebase master alle Änderungen auf einem Branch, auf einen anderen
|
||
Branch erneut anwenden (nur mit unveröffendlichen
|
||
Branch machen)
|
||
git mergetool grafischen Tool zur Bereinigung von Merge-Konflikten
|
||
git branch Liste aller Branches anzeigen
|
||
git branch -v für jeden Branch den letzten Commit anzeigen lassen
|
||
git branch --merged Liste gemergter Branches
|
||
git branch --no-merged Liste nicht gemergter Branches
|
||
115
|
||
16. git
|
||
16.14. Git Aliase
|
||
git config --global alias.co checkout co anstelle von checkout schreiben
|
||
git config --global alias.br branch br anstelle von branch schreiben
|
||
git config --global alias.ci commit ci anstelle von commit schreiben
|
||
git config --global alias.st status st anstelle von status schreiben
|
||
16.15. Git auf einen Server bekommen
|
||
git clone --bare my_project my_project.git
|
||
Projekt zu Projekt.git klonen
|
||
scp -r my_project.git user@git.example.com:/opt/git
|
||
Projekt per ssh hochladen
|
||
git clone user@git.example.com:/opt/git/my_project.git
|
||
Projekt per ssh zum Arbeiten herunterladen
|
||
ssh user@git.example.com auf dem Server anmelden
|
||
cd /opt/git/my_project.git Projektverzeichnis betreten
|
||
git init --bare --shared Gruppenschreibrechte zu einem Repository
|
||
hinzufügen
|
||
16.16. Git auf dem SSH-Server einrichten
|
||
Einrichtung des SSH-Zugangs auf dem Server mit der Authorized-Keys-Methode zur
|
||
Authentifizierung der Benutzer.
|
||
sudo adduser git Benutzer git anlegen
|
||
su git Rechte von User git erlagen
|
||
cd ins Home ~ Verzeichnis des Users wechseln
|
||
mkdir .ssh Verzeichnis .ssh anlegen
|
||
- öffentliche SSH-Schlüssel der Entwickler zu der Authorized-Keys-Datei des Benut-
|
||
zers git hinzuzufügen.
|
||
cat /tmp/id_rsa.user1.pub > ~/.ssh/authorized_keys
|
||
authorized_keys erstellen und User1 einfügen
|
||
cat /tmp/id_rsa.user2.pub >> ~/.ssh/authorized_keys
|
||
User2 einfügen
|
||
cat /tmp/id_rsa.user3.pub >> ~/.ssh/authorized_keys
|
||
User3 einfügen
|
||
- Leeren Ordner anlegen und mit der Option –bare ein Repository ohne ein Arbeits-
|
||
verzeichnis erzeugen.
|
||
cd /srv in den Ordner srv wechseln
|
||
mkdir git git Ordner anlegen
|
||
116
|
||
16.17. Öffentlicher Webserver-Zugang
|
||
cd git in den Ordner git wechseln
|
||
mkdir project.git project.git Ordner anlegen
|
||
cd project.git in den Ordner project.git wechseln
|
||
git --bare init Repository ohne ein Arbeitsverzeichnis erzeugen
|
||
- Die erste Version des Projektes in das Repository hochladen
|
||
cd project in das Projekt wechseln
|
||
git init Projekt Repository herstellen
|
||
git add . alle Dateien um Index hinzufügen
|
||
git commit -m ’initial commit’ Index zum Working Tree hinzufügen
|
||
git remote add origin git@gitserver:/srv/git/project.git
|
||
Server hinzufügen
|
||
git push origin master Commits und Referenzen auf den Server hochladen
|
||
- Repository klonen und Änderungen hochladen
|
||
git clone git@gitserver:/srv/git/project.git Repository klonen
|
||
cd project ins Projekt wechseln
|
||
vim README Projekt bearbeiten
|
||
git commit -am ’fix for the README file’ Änderung speichern
|
||
git push origin master Änderung hochladen
|
||
- Git-Zugang absichen
|
||
/etc/passwd
|
||
git:x:1000:1000::/home/git:/bin/sh /bin/sh auf
|
||
git:x:1000:1000::/home/git:/usr/bin/git-shell
|
||
/usr/bin/git-shell ändern
|
||
16.17. Öffentlicher Webserver-Zugang
|
||
AnonymenLese-ZugriffzuDeinemProjektermöglichen,pergitclonehttp://git.gitserver.loc/project.git.
|
||
- Hook aktivieren
|
||
cd project.git in das Projekt wechseln
|
||
mv hooks/post-update.sample hooks/post-update post-update umbenennen
|
||
chmod a+x hooks/post-update post-update ausfürbar machen
|
||
- VirtualHost Eintrag zur Apache-Konfiguration hinzufügen
|
||
<VirtualHost *:80>
|
||
ServerName git.gitserver.loc
|
||
ServerAdmin webmaster@localhost
|
||
DocumentRoot /srv/git
|
||
# <Directory /srv/git/>
|
||
# Order allow, deny
|
||
117
|
||
16. git
|
||
# allow from all
|
||
# </Directory>
|
||
<Directory /srv/git/>
|
||
Options Indexes FollowSymLinks
|
||
AllowOverride None
|
||
Require all granted
|
||
</Directory>
|
||
ErrorLog ${APACHE_LOG_DIR}/git.gitserver.loc-error.log
|
||
CustomLog ${APACHE_LOG_DIR}/git.gitserver.loc-access.log combined
|
||
</VirtualHost>
|
||
Nachdemnächstenpushkannper"gitclonehttp://git.gitserver.loc/project.git"das
|
||
Projekt anonym herunter geladen werden.
|
||
16.18. Grundbegriffe
|
||
Versionkontrollsystem (Version Control System, VCS)
|
||
Eine Versionsverwaltung ist ein System, das zur Erfassung von Änderungen
|
||
an Dokumenten oder Dateien verwendet wird.
|
||
Zum Beispiel:
|
||
Zentrale Systeme - zentraler Server
|
||
RCS-Revision Control System, CVS-Concurrent Versions System,
|
||
SVN-Subversion
|
||
Verteilte Systeme - Kein zentraler Server
|
||
Bazaar, Darcs, Fossil, Git, GNU arch, Mercurial, Monotone
|
||
Repository
|
||
Nutzt Git als Dantenbank in der die verschiedenen Zustände jeder Datei
|
||
eines Projektes über die Zeit hinweg ablegt. Jede Änderrung wird als
|
||
Commit verpackt und abgespeichert.
|
||
Working Tree
|
||
Das Arbeitsverzeichnis von Git, oft auch Working Directory genannt.
|
||
Commit
|
||
Das speichern der veränderten Dateien im Repository.
|
||
HEAD
|
||
Eine symbolische Referenz auf den neusten Commit im aktuellen Branch.
|
||
SHA-1
|
||
Der Secure Hash Algorithm erstellt eine eindeutige, 160 Bit lange
|
||
Prüfsumme. Alle Commits in Git werden nach ihrer SHA-1-Summe benannt,
|
||
die aus dem Inhalt und den Metadaten des Commits errechnet wird.
|
||
Objektmodell
|
||
Ein Git-Repository lässt sich als Graph von Commits modellieren, der
|
||
durch Git-Kommandos manipuliert wird.
|
||
Index
|
||
Der Index ist eine Zwischenstufe zwischen Working Tree und Repository,
|
||
118
|
||
16.19. Verwendung von Git
|
||
in der Sie einen Commit vorbereiten. Enthält also die Dateien für den
|
||
nästen Commit.
|
||
Clone
|
||
Wenn Sie sich ein Git-Repository aus dem Internet herrunterladen.
|
||
Enthält die gesamte Versionsgeschichte einschließlich aller Commits.
|
||
Branch
|
||
Eine Abzweigung in der Entwicklung. Zum Beispiel für neue Featurs,
|
||
Release vorbereitung oder alte Versionen mit Bugfixes zu versorgen.
|
||
master
|
||
Beim Initialisieren eines neuen Repositorys wird der Branch master
|
||
erstellt analog trunk in anderen Systemen.
|
||
Tag
|
||
Tags sind symbolische Namen für schwer zu merkende SHA-1-Summen.
|
||
Wichtige Commits, wie zum Beispiel Releases v1.2.3. oder können
|
||
zusätzliche Metadateien wie Autor, Beschreibung und GPG-Signatur
|
||
enthalten.
|
||
16.19. Verwendung von Git
|
||
git config --global user.name "Thomas resiX" Benutzernamen angeben
|
||
git config --global user.email "resiX@local.loc" E-Mail angeben
|
||
git remote add origin http://user@server:3000/user/test.git Server angeben
|
||
git config --list --show-origin Alle Einstellungen anzeigen
|
||
git config --unset user.name Name löschen
|
||
git init repository anlegen
|
||
git status Änderungen anzeigen
|
||
git add README.md stage (hinzufügen) Datei
|
||
git commit -m "v0.0.1" commit (hinzufügen bestätigen/beschreiben) Datei
|
||
git push alle Änderugen auf den Server hochladen
|
||
git pull alle Änderugen vom Server holen
|
||
git clone http://github.com/resiX/test.git repository vom Server holen
|
||
git branch neuerZweig branch (zweig) herstellen
|
||
git checkout neuerZweig Bearbeitung verzweigen
|
||
git branch alle braches ausgeben
|
||
git merge neuerZweig branche zum Master hinzufügen
|
||
119
|
||
17. C/C++
|
||
17.1. Befehle und Grundelemente
|
||
gcc Datei.c Programm übersetzen -> a.out
|
||
g++ Datei.cpp Programm übersetzen -> a.out (C++)
|
||
gcc -c Datei.c Objektdatei herstellen -> Datei.o
|
||
g++ -c Datei.cpp Objektdatei herstellen -> Datei.o (C++)
|
||
gcc -o Programmname Datei1.o Datei2.o Datei1.o+Datei2.o -> Programmname
|
||
g++ -o Programmname Datei1.o Datei2.o Datei1.o+Datei2.o -> Programmname (C++)
|
||
gcc -o Programmname Datei.c Programm übersetzen -> Programmname
|
||
g++ -o Programmname Datei.cpp Programm übersetzen -> Programmname(C++)
|
||
Programmname Programm starten
|
||
configure Makefile konfigurieren
|
||
make Programm übersetzen,
|
||
wenn Makefile vorhanden
|
||
make install Programm installieren
|
||
/* Kommentar einleiten
|
||
*/ Kommentar abschließen
|
||
// Kommentar einleiten bis zum Zeilenende (C++)
|
||
{ Blockbeginn
|
||
} Blockende
|
||
, mehrere Variablen vom gleichen Typ deklarieren z.B. int a, b, c;
|
||
; Funktions-,Operations- und Zeilen-ende (leere Anweisung)
|
||
#include<Datei> Datei aus /usr/include/ bei UNIX einlesen
|
||
#include"Datei" Datei aus dem aktuellen Verzeichnis einlesen
|
||
char Variablentyp character - Zeichen
|
||
int Variablentyp integer - ganzzahlig mit Vorzeichen
|
||
main() Hauptfunktion
|
||
return() Wert aus einer Funktion zurückliefern
|
||
17.2. Steuersequenzen für ANSI-Bildschirme -
|
||
Innerhalb von Texten
|
||
\a BEL bell Alarm/Piepton
|
||
121
|
||
17. C/C++
|
||
\b BS backspace Rücksetzen um ein Zeichen
|
||
\f FF formfeed Seitenvorschub
|
||
\n NL new line Zeilenvorschub
|
||
\r CR carriage return Wagenrücklauf
|
||
\t HT horizontal tabulation horizontaler Tabulator
|
||
\v VT vertical tabulation vertikaler Tabulator
|
||
\0 NULL null kein Zeichen Textende
|
||
\? ? Fragezeichen (kein Dreierzeichen)
|
||
\’ ’ Hochkomma
|
||
\" " Anführungszeichen
|
||
\\ \ umgekehrter Schrägstrich
|
||
\ddd Zeichencode in oktaler Notation
|
||
\xdd Zeichencode in hexadezimaler Notation
|
||
\e[1;1H Cursor auf x1 und y1 setzen
|
||
\e[1;1f -> \e[1;1H
|
||
\e[5A Cursor 5 Zeilen aufwärts bewegen
|
||
\e[5B Cursor 5 Zeilen abwärts bewegen
|
||
\e[5C Cursor 5 Spalten vorwärts(rechts) bewegen
|
||
\e[5D Cursor 5 Spalten rückwärts(links) bewegen
|
||
\e[2J Bildschirm löschen
|
||
\e[6n Ausgabe der Cursor position z.B. ^[[32;6R
|
||
\e[s merkt die aktuelle Cursor Position
|
||
\e[u Cursor auf gemerkte Position setzen
|
||
\e[Schrift;Vordergrund;Hintergrundmerkmale setzt Bildschirmmerkmale
|
||
Schrift Vordergrund Hintergrund
|
||
0 normal 30 schwarz 40
|
||
1 grell 31 rot 41
|
||
4 unterstrichen 32 grün 42
|
||
5 blinken 33 gelb 43 braun
|
||
7 reverse 34 blau 44
|
||
35 magenta 45
|
||
36 cyan 46
|
||
37 weiß 47 grau
|
||
17.3. stdio.h -> Standard Ein- und Ausgabe
|
||
c=getchar(); Eingabe eines Zeichens, ohne Wagenrücklauf
|
||
putchar(’a’); Ausgabe eines Zeichens, ohne Wagenrücklauf
|
||
puts("Text"); Zeichenkette ausgeben, mit Wagenrücklauf
|
||
fputs("Text",stdount); Zeichenkette ausgeben, ohne Wagenrücklauf
|
||
fputs("Text",stderr); Zeichenkette ausgeben, ohne Wagenrücklauf
|
||
printf("Text %d",Zahl); Zeichenkette formatiert ausgeben, ohne Wagenrücklauf
|
||
% F Z1 . Z2 L U
|
||
| | | | | | + Umwandlungszeichen: %d-dezimal %u-unsigned
|
||
122
|
||
17.4. ctype.h
|
||
| | | | | | %o-oktal %s-Text %c-Zeichen
|
||
| | | | | | %f-Flieskomma %e-Expotential
|
||
| | | | | | %x-hexadezimal %p-pointer
|
||
| | | | | +-- Long-Ausgabe: notwendig für long int
|
||
| | | | +----- Nachkommastellen: z.B 3 für drei stellen
|
||
| | | +------- Trenzeichen, falls Z1 und Z2
|
||
| | +---------- Größe des Ausgabefensters: z.B 7 für sieben stellen
|
||
| +------------ Ausrichtung: ohne Angabe rechtsbündig,
|
||
| mit Minuszeichen linksbündig
|
||
+-------------- Fluchtsymbol
|
||
scanf("%c",&text); Zeichen in &text einlesen
|
||
% * Z L U
|
||
| | | | +------ Umwandlungszeichen
|
||
| | | +-------- Long-Ausgabe
|
||
| | +---------- Größe des Eingabefensters
|
||
| +------------ Wegwerfen
|
||
+-------------- Fluchtsymbol
|
||
17.4. ctype.h
|
||
if(isascii(zeichen)) überprüft ob es sich um ein ASCII-Zeichen handelt
|
||
if(isxdigit(zeichen)) überprüft ob es sich um ein Hex-Zeichen handelt
|
||
17.5. string.h
|
||
char *strcat(char text1, char text2) ; hängt Text2(mit \0) an Text1
|
||
char *strchr(const char *text,
|
||
int zeichen) ; sucht das erste vorkommende
|
||
Zeichen im Text, liefert Adresse
|
||
oder NULL
|
||
char *strcpy(char text1, char text2) ; kopiert Text2(mit \0) zum Text1
|
||
sitze_t strlen(const char *text) ; liefert die Länge von Text(ohne \0)
|
||
char *strncat(char *text1,
|
||
const char *text2, sitze_t n) ; hängt Text2 mit n Zeichen
|
||
an Text1(mit \0)
|
||
char *strtok(char *text,
|
||
const char *kette) ; 1.Aufruf: sucht im Text das erste
|
||
Zeichen das nicht in Kette vorkommt
|
||
(wird kein Zeichen gefunden gibt strtok
|
||
einen NULL-Zeiger zurück), wird ein
|
||
Zeichen gefunden gibt strtok den Zeiger
|
||
zurück, dann sucht strtok ab Zeiger das
|
||
erste Zeichen das in der Kette vorkommt
|
||
123
|
||
17. C/C++
|
||
und überschreibt es mit \0, strtok merkt
|
||
sich den Zeiger auf das nächste Zeichen
|
||
char *strtok(NULL, const char *kette) ; 2.-n.Aufruf: wie 1.Aufruf ab gemerkten
|
||
Zeiger
|
||
17.6. Kontrollstrukturen
|
||
if(Ausdruck) wenn der Ausdruck stimmt,
|
||
{
|
||
Anweisung-en1; Anweisung-en1
|
||
}
|
||
else sonst
|
||
{
|
||
Anweisung-en2; Anweisung-en2
|
||
}
|
||
switch(Ausdruck) gehe zum Ausdruck
|
||
{
|
||
case 1: Anweisung-en1; Ausdruck1: Anweisung-en1
|
||
case 2: Anweisung-en2; Ausdruck2: Anweisung-en2
|
||
break; Anweisungen beenden
|
||
case n: Anweisung-enn; Ausdruckn: Anweisung-enn
|
||
break; Anweisungen beenden
|
||
default: Anweisung-en; Ausdruck nicht vorhanden: Aneisung-en
|
||
}
|
||
continue; unterbricht die Abarbeitung und geht zur Ausdrucksbedingung
|
||
break; verlässt die Schleife oder Verbundsanweisung
|
||
for(Ausdruck1;Ausdruck2;Ausdruck3) Ausdruck1 einmal ausführen
|
||
{ so lange der Ausdruck2 stimmt,
|
||
vorher noch Ausdruck3
|
||
Anweisug-en; Anweisung-en
|
||
}
|
||
while(Ausdruck) so lange der Ausdruck stimmt,
|
||
{
|
||
Anweisung-en; Anweisung-en
|
||
}
|
||
do mach
|
||
{
|
||
Anweisung-en; Anweisung-en
|
||
}
|
||
124
|
||
17.7. ASCII(American Standart Code for Information Interchange)-Tabelle
|
||
while(Ausdruck); so lange der Ausdruck stimmt
|
||
17.7. ASCII(American Standart Code for Information
|
||
Interchange)-Tabelle
|
||
654 000 001 010 011 100 101 110 111
|
||
Bit
|
||
3210
|
||
NUL DLE SP 0 @ P ‘ p
|
||
0000 $0 0 $10 16 $20 32 $30 48 $40 64 $50 80 $60 96 $70 112
|
||
SOH DC1 ! 1 A Q a q
|
||
0001 $1 1 $11 17 $21 33 $31 49 $41 65 $51 81 $61 97 $71 113
|
||
STX DC2 " 2 B R b r
|
||
0010 $2 2 $12 18 $22 34 $32 50 $42 66 $52 82 $62 98 $72 114
|
||
ETX DC3 # 3 C S c s
|
||
0011 $3 3 $13 19 $23 35 $33 51 $43 67 $53 83 $63 99 $73 115
|
||
EOT DC4 $ 4 D T d t
|
||
0100 $4 4 $14 20 $24 36 $34 52 $44 68 $54 84 $64 100 $74 116
|
||
ENQ NAK % 5 E U e u
|
||
0101 $5 5 $15 21 $25 37 $35 53 $45 69 $55 85 $65 101 $75 117
|
||
ACK SYN & 6 F V f v
|
||
0110 $6 6 $16 22 $26 38 $36 54 $46 70 $56 86 $66 102 $76 118
|
||
BEL ETB ’ 7 G W g w
|
||
0111 $7 7 $17 23 $27 39 $37 55 $47 71 $57 87 $67 103 $77 119
|
||
BS CAN ( 8 H X h x
|
||
1000 $8 8 $18 24 $28 40 $38 56 $48 72 $58 88 $68 104 $78 120
|
||
HT EM ) 9 I Y i y
|
||
1001 $9 9 $19 25 $29 41 $39 57 $49 73 $59 89 $69 105 $79 121
|
||
LF SUB * : J Z j z
|
||
1010 $A 10 $1A 26 $2A 42 $3A 58 $4A 74 $5A 90 $6A 106 $7A 122
|
||
VT ESC + ; K [Ä k {ä
|
||
1011 $B 11 $1B 27 $2B 43 $3B 59 $4B 75 $5B 91 $6B 107 $7B 123
|
||
125
|
||
17. C/C++
|
||
FF FS , < L \ö l |ö
|
||
1100 $C 12 $1C 28 $2C 44 $3C 60 $4C 76 $5C 92 $6C 108 $7C 124
|
||
CR GS - = M ]Ü m }ü
|
||
1101 $D 13 $1D 29 $2D 45 $3D 61 $4D 77 $5D 93 $7D 109 $7D 125
|
||
SO RS . > N ^ n ~ß
|
||
1110 $E 14 $1E 30 $2E 46 $3E 62 $4E 78 $5E 94 $7E 110 $7E 126
|
||
SI US / ? O _ o DEL
|
||
1111 $F 15 $1F 31 $2F 47 $3F 63 $4F 79 $5F 95 $7F 111 $7F 127
|
||
17.7.1. Unterteilung der Steuerzeichen:
|
||
TC transmission control Übertragungssteuerzeichen
|
||
FE format effects Formatsteuerzeichen
|
||
IS information separators Informationstrennzeichen
|
||
DC device control Gerätesteuerzeichen
|
||
17.7.2. Bedeutung der Steuerzeichen:
|
||
NUL null kein Zeichen
|
||
SOH TC start of heading Anfang des Kopfes
|
||
STX TC start of text Anfang des Textes
|
||
ETX TC end of text Ende des Textes
|
||
EOT TC end of transmission Ende der Übertragung
|
||
ENQ TC enquiry Stationsaufforderung
|
||
ACK TC acknowledge positive Rückmeldung
|
||
BEL bell Alarm / Piepton
|
||
BS FE backspace Rückwärtsschritt
|
||
HT FE horizontal tabulation horizontaler Tabulator
|
||
LF FE line feed Zeilenvorschub
|
||
VT FE vertical tabulation vertikaler Tabulator
|
||
FF FE form feed Seitenvorschub
|
||
CR FE carriage return Wagenrücklauf
|
||
SO shift out Dauerumschaltung
|
||
SI shift in Rückschaltung
|
||
DLE TC data link escape Datenübertragungsumschaltung
|
||
DCn DC device control Gerätesteuerzeichen
|
||
NAK TC negative acknowledge negative Rückmeldung
|
||
SYN TC synchronous idle Synchronisierung
|
||
ETB TC end of transmission block Ende des Übertragungsblocks
|
||
CAN cancel ungültig
|
||
EM end of medium Ende der Aufzeichnung
|
||
126
|
||
17.8. Operatoren und Ausdrücke
|
||
SUB substitute character Substitution
|
||
ESC escape Umschaltung
|
||
FS IS file separator Hauptgruppentrennung
|
||
GS IS group separator Gruppentrennung
|
||
RS IS record separator Untergruppentrennung
|
||
US IS unit separator Teilgruppentrennung
|
||
SP space Leerzeichen
|
||
DEL delete löschen
|
||
17.8. Operatoren und Ausdrücke
|
||
17.8.1. Arithmetische Operatoren:
|
||
Operator Bedeutung Assoziativität Rang Beispiel
|
||
-------- --------- -------------- ---- --------
|
||
+ Addition > 5 a+b
|
||
- Subtraktion > 5 a-b
|
||
* Multiplikation > 4 a*b
|
||
/ Division > 4 a/b
|
||
% Modulo > 4 a%b
|
||
17.8.2. Vergleichsoperatoren:
|
||
Operator Bedeutung Assoziativität Rang Beispiel
|
||
-------- --------- -------------- ---- --------
|
||
< kleiner als > 7 a<b
|
||
<= kleiner oder gleich > 7 a<=b
|
||
> größer > 7 a>b
|
||
>= größer oder gleich > 7 a>=b
|
||
== gleich > 8 a==b
|
||
!= ungleich > 8 a!=b
|
||
17.8.3. Logische Operatoren:
|
||
Operator Bedeutung Assoziativität Rang Beispiel
|
||
-------- --------- -------------- ---- --------
|
||
& bitweises AND > 9 a&b
|
||
| bitweises OR > 11 a|b
|
||
^ bitweises XOR > 10 a^b
|
||
<< bitweises Linksschieben > 6 a<<n
|
||
>> bitweises Rechtsschieben > 6 a>>n
|
||
~ Einerkomplement < 2 ~a
|
||
&& logisches AND > 12 a&&b
|
||
|| logisches OR > 13 a||b
|
||
! logische Negation < 2 !a
|
||
127
|
||
17. C/C++
|
||
17.8.4. Zuweisungsoperatoren:
|
||
Operator Bedeutung Assoziativität Rang Beispiel
|
||
-------- --------- -------------- ---- --------
|
||
= Zuweisung < 15 a=b
|
||
+= Zuweisung nach Addition < 15 a+=b
|
||
-= Zuweisung nach Subtraktion < 15 a-=b
|
||
*= Zuweisung nach Multiplikation < 15 a*=b
|
||
/= Zuweisung nach Division < 15 a/=b
|
||
%= Zuweisung nach Modulo < 15 a%=b
|
||
<<= Zuweisung nach bitweisem < 15 a<<=b
|
||
Linksschieben
|
||
>>= Zuweisung nach bitweisem < 15 a>>=b
|
||
Rechtsschieben
|
||
&= Zuweisung nach bitweisem AND < 15 a&=b
|
||
|= Zuweisung nach bitweisem OR < 15 a|=b
|
||
^= Zuweisung nach bitweisem XOR < 15 a^=b
|
||
17.8.5. Post- und Prefix- Operatoren:
|
||
Operator Bedeutung Assoziativität Rang Beispiel
|
||
-------- --------- -------------- ---- --------
|
||
++ Inkrement > < 1 2 a++ ++a
|
||
-- Dekrement > < 1 2 a-- --a
|
||
() Funktionsaufruf > 1 sqrt(a)
|
||
[] Arrayelement > 1 feld[a]
|
||
. Feld einer structur oder union > 1 tag.dat
|
||
-> Zeiger auf structur > 1 zeig->ele
|
||
( type ) expl. Typenumwandlung < 2 double(a)
|
||
17.8.6. Zeigeroperatoren:
|
||
Operator Bedeutung Assoziativität Rang Beispiel
|
||
-------- --------- -------------- ---- --------
|
||
& Adresse von < 2 &a
|
||
* Indirektion < 2 *a
|
||
.* Dereferenzzeiger > 3 tag.*dat
|
||
->* Dereferenzzeiger > 3 tag->dat
|
||
17.8.7. Diverse Kategorien:
|
||
Operator Bedeutung Assoziativität Rang Beispiel
|
||
-------- --------- -------------- ---- --------
|
||
?: Bedinung < 14 a?b:c
|
||
i = x<y ? 6 : k+1 ; x kleiner y dann 6 sonst k+1
|
||
128
|
||
17.9. Inkrementieren und Dekrementieren
|
||
, Aufzählungsoperator > 16 a,b, ...
|
||
- unäres Minus < 2 -n
|
||
+ unäres Plus < 2 +n
|
||
sizeof(typ) Größe des Types in Byte < 2 sizeof(a)
|
||
new dynam. Objekt erzeugen < 2 b = new float[a]
|
||
delete dynam. Objekt löschen < 2 delete b
|
||
:: Zugiffs-/Bereichsoperator < 2 adr::nam
|
||
17.9. Inkrementieren und Dekrementieren
|
||
i++ ; i = i + 1
|
||
++i ; i = i + 1
|
||
x = i++ ; 1. x = i 2. i = i + 1
|
||
x = ++i ; 1. i = i + 1 2. x = i
|
||
i-- ; i = i - 1
|
||
--i ; i = i - 1
|
||
x = i-- ; 1. x = i 2. i = i - 1
|
||
x = --i ; 2. i = i - 1 2. x = i
|
||
17.10. Wertebereich und Genauigkeit elementarer
|
||
Datentypen
|
||
Datentyp Bit Min.Wert Max.Wert Genauigkeit
|
||
-------- --- -------- -------- -----------
|
||
char 8 -128 127
|
||
unsigned char 8 0 255
|
||
short int 16 -32768 32767
|
||
unsigned short int 16 0 65535
|
||
int (16)32(64) -2147483648 2147483647
|
||
unsigned int 16 0 65535
|
||
long int 32(64) -2147483648 2147483647
|
||
unsigned long int 32 0 4294967295
|
||
float 32 ca. 3.4E-38 3.4E38 >= 6 Ziffern
|
||
double 64 ca. 1.7E-308 1.7E308 >= 10 Ziffern
|
||
long double 80 ca. 1.2E-4932 1.2E4932 >= double
|
||
17.11. Variableninitialisierung
|
||
Nichtinitialisierte Variabeln haben nicht automatisch den Wert 0!
|
||
short faktor=10 ;
|
||
short laktor, messwert ;
|
||
129
|
||
17. C/C++
|
||
messwert=faktor ;
|
||
17.12. Konstanten
|
||
Konstanten werden mit dem vorangestellten Schlüsselwort const wie Variabeln dekla-
|
||
riert. Der dem Namen über das =-Zeichen zugeordnete Wert kann nicht im Programm
|
||
verändert werden. Für eine fehlende Typenangabe wird int angenommen.
|
||
cont float PI = 3.14159 ; // bevorzugen
|
||
#define PI 3.14159 ;
|
||
17.12.1. Ganzzahlkonstanten
|
||
dezimal = 30 ; oktal = 036 ; hexadezimal = 0x1E ; Zusätzlich kann frau eine Ganz-
|
||
zahlkonstante durch das Suffix L oder l als long und durch U oder u als unsigned
|
||
kennzeichnen (z.B. 30U).
|
||
17.12.2. Gleitkommakonstanten
|
||
0.033 +.033 33E-3 +33.0e-03 Zusätzlich kann frau eine Gleitkommakonstante durch
|
||
das Suffix F oder f als float und durch L oder l als long double kennzeichnen (z.B.
|
||
0.033L).
|
||
17.12.3. Zeichen- und Zeichenkettenkonstanten
|
||
’n’
|
||
“zeichenkette’"
|
||
130
|
||
18. Tcl/Tk
|
||
wish startet den Tcl/Tk-Interpeter
|
||
exit beendet den Tcl/Tk-Interpeter
|
||
wish Programm.tcl startet das Programm.tcl
|
||
button .name Option/en Knopf definieren Optionen:
|
||
-text "Aufschrift" Knopf-Aufschrift
|
||
-text [Befehl] Knopf-Aufschrift vom Befehl
|
||
-command {Befehl} Knopf-Befehl
|
||
Befehl: z.B. exec ls oder exec xterm -e vi &
|
||
-relief flat Knopf flach
|
||
-relief raised Knopf erhoben
|
||
-relief sunken Knopf eingedrückt
|
||
-relief ridge Knopf Band erhoben
|
||
-relief groove Knopf Band eingedrückt
|
||
-padx Pixelzahl Abstand zum Rand in x-Richtung
|
||
-pady Pixelzahl Abstand zum Rand in y-Richtung
|
||
-image [ image create photo -file Bildname ]
|
||
Knopf mit gif, ppm oder pgm
|
||
-foreground Farbe Schriftfarbe "#rgb"->"#ff0000" oder red
|
||
-fg Farbe Abkürzung für -foreground Farbe
|
||
-background Farbe Knopffarbe
|
||
-bg Farbe Abkürzung für -background Farbe
|
||
-width Pixelbreite Knopfbreite
|
||
-height Pixelhöhe Knopfhöhe
|
||
-font Zeichensatz Schrift für den Knopf
|
||
pack .name Option/en Knopf anzeigen Option:
|
||
-fill x Knopf an die Fensterbreite anpassen
|
||
-expand true Knopf im großen Fenster aufteilen
|
||
131
|
||
19. Perl
|
||
perl -v überprüfen ob Perl installiert ist
|
||
133
|
||
20. CGI+Perl
|
||
20.1. Einleitung
|
||
Was ist CGI? Common Gateway Interface. Web-Server-Schnittstelle, um mit
|
||
anderen Programmen zusammenzuarbeiten.
|
||
Was ist Perl? Practical Extraction and Report Language. Interpreter-Skript-
|
||
Sprache, die häufig zur Programmierung von CGI-Anwendungen
|
||
benutzt wird.
|
||
20.2. Perl
|
||
20.2.1. Texte und Strings
|
||
# Kommentartext (Hash) Einzeiliger Kommentartext
|
||
print "Text" ; Text ausgeben
|
||
print "Text\n" ; \n Neue Zeile
|
||
print "Text\r" ; \r Wagenrücklauf
|
||
print "Text\t" ; \t Tabulator
|
||
print "Text\v" ; \v Vertikalzeichen
|
||
print "Text\f" ; \f Papiereinzugszeichen
|
||
print "Text\b" ; \b Rücksetzzeichen
|
||
print "Text\a" ; \a Piepton
|
||
print "Text\e" ; \e Unterbrechungszeichen
|
||
print $Variable ; Variable ausgeben
|
||
print "Text\"" ; \" Gänsefüßchen ausgeben
|
||
print "Text\’" ; \’ Einfache Anführungszeichen ausgeben
|
||
print "Text\$" ; \$ Dollar-Zeichen ausgeben
|
||
print "Text\\" ; \\ Backslash ausgeben
|
||
print "Text".$Var."Text" ; . Verketten von Zeichenfolgen
|
||
print "Text"x10 ; Text 10 mal zusgeben
|
||
20.2.2. Rechenoperationen
|
||
$a=$b+$c ; Addition von $b und $c gleich $a
|
||
$a=$b-$c ; Subtraktion von $b minus $c gleich $a
|
||
$a=$b*$c ; Multiplikation von $b mal $c gleich $a
|
||
$a=$b/$c ; Division $b geteilt durch $c gleich $a
|
||
135
|
||
20. CGI+Perl
|
||
$a=$b**$c ; Potenz $b hoch $c gleich $a
|
||
$a=$b%$c ; Modulo $b geteilt durch $c Rest gleich $a
|
||
$a++ ; $a=$a+1 ;
|
||
$a-- ; $a=$a-1 ;
|
||
$a=3.1415 ; . Dezimaltrenner
|
||
20.2.3. Arrays (Listen)
|
||
@Array=("W0","W1") ; Werte einer Array-Variable zuweisen (Kurzform)
|
||
$Array[Indexwert]="Wert" ; Wert einer Array-Variable zuweisen (Langform)
|
||
@Array=$Liste[2,4,8] ; Werte eines Arrays eines Arrays zuweisen
|
||
print @Array ; Gesamtes Array ausgeben
|
||
print $Array[Indexwert] ; Wert einer Array-Variable ausgeben
|
||
print $#Array ; Nummer des letzten Listenelements ausgeben
|
||
20.2.4. String- und Zahlenvergleichsoperratoren
|
||
Vergleich Zahlenvergleich Stringvergleich
|
||
Gleich == eq
|
||
Ungleich != ne
|
||
Kleiner als < lt
|
||
Größer als > gt
|
||
Kleiner oder gleich <= le
|
||
Größer oder gleich >= ge
|
||
20.2.5. if-Bedingung
|
||
if (Bedingung) Wenn die Bedingung Wahr,
|
||
{
|
||
Befehle ; Befehle ausführen
|
||
}
|
||
20.2.6. if-else-Bedingung
|
||
if (Bedingung) Wenn die Bedingung Wahr,
|
||
{
|
||
Befehle ; Befehle ausführen
|
||
}
|
||
else sonst
|
||
{
|
||
Befehle ; Befehle ausführen
|
||
}
|
||
136
|
||
20.3. Funktionen
|
||
20.2.7. if-elseif-Bedingung
|
||
if (Bedingung) Wenn die Bedingung Wahr,
|
||
{
|
||
Befehle ; Befehle ausführen
|
||
}
|
||
elseif (Bedingung) sonst Wenn die Bedingung Wahr,
|
||
{
|
||
Befehle ; Befehle ausführen
|
||
}
|
||
20.3. Funktionen
|
||
20.3.1. String Funktionen
|
||
$Var=chop($String) ; Löscht das letzte Zeichen von String und
|
||
gibt es an Var
|
||
20.3.2. Rechen Funktionen
|
||
$a=sqrt($b) ; Quadratwurzel von $b nach $a
|
||
$a=log($b) ; Logarithmus
|
||
$a=exp($b) ; Exponenten
|
||
$a=abs($b) ; Absoluterwert
|
||
$a=int($b) ; Ganzzahlwert
|
||
20.3.3. Array Funktionen
|
||
push(@Liste,@Elemente) ; Setzt ein oder mehrere Elemente an
|
||
das Ende der Liste
|
||
unshift(@Liste,"Wert") ; Setzt ein oder mehrere Elemente an
|
||
den Anfang der Liste
|
||
$a=shift(@Liste) ; Entfernt das erste Element aus der Liste
|
||
und gibt es an $a
|
||
$a=pop(@Liste) ; Entfernt das letzte Element aus der Liste
|
||
und gibt es an $a
|
||
splice(@Liste,Start,Anzahl,Element) ; Entfernt die Anzahl vom Start der Liste
|
||
und fügt Element ein
|
||
137
|
||
21. Java
|
||
21.1. Funktion von Java
|
||
+---------------+ +--------------------------+ +---------------------+
|
||
| Programm Code |->| Java Compiler (java.exe) |->| Bytecode (01010011) |
|
||
+---------------+ +--------------------------+ +---------------------+
|
||
| |
|
||
V V
|
||
+--------------+ +--------------+
|
||
| Ineterpreter | | Browser/ |
|
||
| (java.exe) | | Appletviewer |
|
||
+--------------+ +--------------+
|
||
javac.exe progammcode.java -> programmcode.class Programm compilieren
|
||
java.exe programmcode Programm ausführen
|
||
appletviewer.exe Applets ausführen
|
||
21.2. Sprache und Syntax von Java
|
||
21.2.1. Kommentrare
|
||
/* Kommentar-Anfang
|
||
*/ Kommentar-Ende
|
||
// Einzeiliger Kommentar ohne Ende
|
||
; Anweisung abschließen
|
||
21.2.2. Datentypen
|
||
Typ Inhalt Standdartwert Größe Wertebereich
|
||
boolean True oder False False 1 Bit -
|
||
char Unicode Zeichen 0000 16 Bit 0000 bis FFFF (Hex.)
|
||
byte Ganzzahl mit Vorzeichen 0 8 Bit -256 bis 255
|
||
short Ganzzahl mit Vorzeichen 0 16 Bit -32768 bis 32767
|
||
int Ganzzahl mit Vorzeichen 0 32 Bit -2^31 bis 2^31-1
|
||
long Ganzzahl mit Vorzeichen 0 64 Bit -2^63 bis 2^63-1
|
||
float Kommazahl 0.0 32 Bit -
|
||
double Kommazahl 0.0 64 Bit -
|
||
139
|
||
21. Java
|
||
21.2.3. Variablen
|
||
Variable deklarieren
|
||
boolean myBool;
|
||
int x = 32;
|
||
double y = 3.2;
|
||
char buchstabe;
|
||
Variabeln ansprechen
|
||
this.buchstabe; bezieht sich auf die aktuelle Klasse
|
||
21.3. Pakete und Verzeichnisstrukturen
|
||
21.3.1. Sichtbarkeit und Zugriffsrechte von Klassen und
|
||
Methoden
|
||
public Klasse, Methode oder Variable die überall sichtbar ist
|
||
protected Methode oder Variable die nur im eigenen Paket und
|
||
abgeleiteten Klassen sichtbar ist
|
||
default Klasse, Methode oder Variable die Sichtbarkei beschrängt
|
||
sich auf das eigen Paket
|
||
private protected Methode oder Variable die nur in abgeleiteten Klassen
|
||
sichtbar ist
|
||
private Methode oder Variable die nur in der eigenen Klasse
|
||
sichtbar ist
|
||
Zugriff public protected default private protected private
|
||
------- ------ --------- ------- ----------------- -------
|
||
Zugriff ...
|
||
... im selben Paket Ja Ja Ja Nein Nein
|
||
... von anderen Paketen Ja Nein Nein Nein Nein
|
||
Vererbt ...
|
||
... Klassen im selben Paket Ja Ja Ja Ja Nein
|
||
... Klassen an andere Pakete Ja Ja Nein Ja Nein
|
||
21.3.2. Klassen
|
||
class Klasse Klassendeklaration
|
||
{
|
||
...
|
||
}
|
||
public class Klasse öffendliche Klassendeklaration
|
||
140
|
||
21.3. Pakete und Verzeichnisstrukturen
|
||
{ -ohne public ist die Klasse automatisch "privat"
|
||
...
|
||
}
|
||
package Paketklasse; Klassen zusammenfassen d.h. Paketklasse.Klasse
|
||
public class Klasse
|
||
{
|
||
...
|
||
}
|
||
package Paket.Paketklasse Oberklassen zusammenfassen d.h.
|
||
Paket.Paketklasse.Klasse
|
||
21.3.3. Konstruktoren und Destruktoren
|
||
class Klasse Konstruktor
|
||
{ -----------
|
||
public Klasse() Methode die beim Erschaffen eines neuen Objektes
|
||
{ automatisch aufgerufen wird
|
||
...
|
||
} Destruktor
|
||
----------
|
||
protected void finalize() Methode die beim Löschen eines alten
|
||
{ Objektes automatisch aufgerufen wird
|
||
...
|
||
}
|
||
}
|
||
21.3.4. Methoden überladen
|
||
class Klasse
|
||
{
|
||
Methode() Dieselbe Metode mehrmals mit unterschielichen
|
||
{ Parametern schaffen
|
||
...
|
||
}
|
||
Methode(int var) Dieselbe Metode mehrmals mit unterschielichen
|
||
{ Parametern schaffen
|
||
...
|
||
}
|
||
}
|
||
21.3.5. Objekte
|
||
objekt Neuobjekt = new objekt(); Neues Objekt Neuobjekt von der Klasse
|
||
141
|
||
21. Java
|
||
objekt erstellen
|
||
21.3.6. Vererbung
|
||
public class NeuKlasse extends Klasse {} neue Klasse NeuKlasse herstellen
|
||
alle sichtbaren Eigenschaften
|
||
und Methoden werden übernommen
|
||
21.3.7. Schnittstellen
|
||
public interface Klasse { Schnittstelle erschaffen
|
||
Methodenkopf();
|
||
Variablen;
|
||
}
|
||
class NeuKlasse extends Klasse implements IntKlasse neue Klasse NeuKlasse
|
||
herstellen
|
||
alle sichtbaren Eigenschaften
|
||
und Methoden werden übernommen
|
||
und die Schnittstelle IntKlasse
|
||
hinzufügen
|
||
21.4. Elementare Syntax von Java
|
||
21.4.1. Operratoren
|
||
x = 10; Das Gleichheitszeichen weist immer den rechten Wert dem auf
|
||
der linken Seite zu
|
||
21.4.2. Verknüpfungsoperatoren
|
||
Operator Bedeutung Beispiel
|
||
-------- --------- --------
|
||
+ Addition 7 = 3 + 4;
|
||
- Subtraktion 1 = 7 - 6;
|
||
* Multiplikation 6 = 2 * 3;
|
||
/ Division 3 = 9 / 3;
|
||
% Modulo(Rest) 1 = 9 % 4;
|
||
21.4.3. Inkrement-Operator
|
||
x++; x = x + 1;
|
||
142
|
||
21.4. Elementare Syntax von Java
|
||
21.4.4. Dekrement-Operator
|
||
x--; x = x - 1;
|
||
21.4.5. Arithmetische Zuweisungsoperatoren
|
||
Operator Beispiel Bedeutung
|
||
-------- -------- ---------
|
||
+= x += 3; x = x + 3;
|
||
-= x -= 3; x = x - 3;
|
||
*= x *= 3; x = x * 3;
|
||
/= x /= 3; x = x / 3;
|
||
%= x %= 3; x = x % 3;
|
||
21.4.6. Bedingungen und Entscheidungen
|
||
if(Bedingung) { wenn Bedingung wahr dann Anweisungen
|
||
Anweisungen; if ( x != y ) { z++; }
|
||
}
|
||
Operator Beschreibung
|
||
-------- ------------
|
||
== Gleichheit
|
||
!= Ungleichheit
|
||
< kleiner als
|
||
> größer als
|
||
<= kleiner gleich
|
||
>= größer gleich
|
||
21.4.7. if - else - Bedingungen
|
||
if(Bedingung) { wenn Bedingung wahr dann Anweisungen1 sonst Anweisungen2
|
||
Anweisungen1; if ( x != y ) { z++; } else { z--; }
|
||
} else {
|
||
Anweisungen2;
|
||
}
|
||
21.4.8. Verschachtelte Bedingungen
|
||
if(Bedingung1) { wenn Bedingung1 und Bedingung2 dann Anweisungen1
|
||
if(Bedingung2){ sonst Anweisungen2
|
||
Anweisungen1; if( x != y ) { if( a < b ){z++;} } else { z--; }
|
||
}
|
||
} else {
|
||
Anweisungen2
|
||
}
|
||
143
|
||
21. Java
|
||
21.4.9. Fallunterscheidung mit switch - case
|
||
switch(Ausdruck) { switch(2) { Route 2 also
|
||
case Wert1: Anweisungen1; case 1: x++; x = x - 1;
|
||
break; break;
|
||
case Wert2: Anweisungen2; case 2: x--;
|
||
break; break;
|
||
case Wert3: Anweisungen3; }
|
||
break;
|
||
}
|
||
21.5. Schleifen
|
||
21.5.1. Die while - Schleife
|
||
while(Bedingung) { int x=0; solange Bedingung wahr
|
||
Anweisungen; while(x<10) { Anweisungen
|
||
} x++;
|
||
}
|
||
21.5.2. Die do - while - Schleife
|
||
do { int x=0; Anweisungen dann solange
|
||
Anweisungen; do { Bedingung wahr
|
||
} while(Bedingung); x++; Anweisungen
|
||
} while(x<10);
|
||
21.5.3. Die for - Schleife
|
||
for(Initialisierung; Bedingung; Schleifenschritt) { solange Bedingung wahr
|
||
Anweisungen; Anweisungen
|
||
} for(x=0;x<10;x++) {
|
||
y++;
|
||
}
|
||
21.5.4. Schleifen mit break verlassen
|
||
for(x=0;x<10;x++) { Die Schleife wird vor dem y++ verlassen
|
||
break;
|
||
y++;
|
||
}
|
||
21.5.5. Schleife mit continue wiederholen
|
||
for(x=0;x<10;x++) { Die Schleife wird vor dem y++ wiederholt
|
||
144
|
||
21.6. Komplexe Datentypen
|
||
continue;
|
||
y++;
|
||
}
|
||
21.6. Komplexe Datentypen
|
||
21.6.1. Arrays
|
||
int liste[] = new int[10]; schafft ein Array dass zehn verschiedene int-
|
||
Werte speichern kann
|
||
int Array[][] = new int[3][3]; schafft ein zweidimensionales Array
|
||
int liste[] = {3, 5, 7}; schaft ein Array mit 3 Werten
|
||
liste[0] = Wert; Wert des 1. Elements zuweisen
|
||
liste[0][0] = Wert; Wert des 1. Elements zuweisen
|
||
Wert = liste[0]; Wert des 1. Elements abrufen
|
||
Wert = liste[0][0]; Wert des 1. Elements abrufen
|
||
liste.length enthält die Länge des Arrays liste
|
||
21.7. Die Anweisung import
|
||
import haus.wand.stein; import erlaubt es Klassen im Sourcecode
|
||
getAnzahl(); über einen gekürzten Namen anzuspechen
|
||
haus.wand.stein.getAnzahl() -> getAnzahl()
|
||
import java.lang.*; importiert alle Bestandteile ins Programm
|
||
21.8. Java eigene Klassen
|
||
21.8.1. Die Klasse Math
|
||
Math.* bietet mathematische Funktionen
|
||
Math.E Eulersche Zahl
|
||
Math.PI PI
|
||
Math.random() Zufallszahl zwischen 0 und 1
|
||
Math.round() rundet zu Ganzzahlen
|
||
21.9. Die Klasse Object
|
||
21.9.1. Die Klasse Object
|
||
getClass() liefert die Klasse eines Objektes zurück
|
||
equals() vergleicht zwei Objekte gibt true oder false
|
||
145
|
||
21. Java
|
||
21.10. Die Klasse Runtime
|
||
Um diese Klasse zu nutzen,muss mit getRuntime() erst ein Objekt erstellt werden!
|
||
Runtime mySystem = Runtime.getRuntime(); Objekt Runtime erstellen
|
||
freeMemory() freier Speicher
|
||
totalMemory() gesamter Speicher
|
||
exit(0) Programm sofort mit Wert verlassen
|
||
exec() Systemprogramme starten (s. Exceptions)
|
||
21.11. Die Klasse String
|
||
String s = "Hallo" + " Du !"; Strings zusammenfassen
|
||
charAt() gibt einen Buchstaben aus dem String zurück
|
||
indexOf() Position von Buchstaben/ketten feststellen
|
||
substring() String auseinanderschneiden
|
||
lenght() Länge eines Strings bestimmen
|
||
21.12. Die Klasse Stringbuffer
|
||
21.12.1. Die Klasse Stringbuffer
|
||
Umdiese Klasse zu nutzen, muss erst ein Objekt erstellt werden!
|
||
Stringbuffer buffer = newStringbuffer(""); Objekt Stringbuffer erstellen
|
||
setCharAt() änderrung eines bestimmten Buchstaben im String
|
||
delete() löscht Teile aus dem String
|
||
replace() ersetzt Teile im String
|
||
insert() setzt Teile im String ein
|
||
21.13. Die Klasse System
|
||
Standardeingabe - in, Standardausgabe - out, Fehlerausgabe - err
|
||
System.out.println("Text") Text ausgeben
|
||
byte[] b = new byte[80];
|
||
System.in.read(b); Einlesen von Daten
|
||
21.14. Das Paket java.util
|
||
import java.util.*; Paket einbinden
|
||
146
|
||
21.15. Ausnahmen (Exceptions)
|
||
21.14.1. Die Klasse Date
|
||
Date myDate = new Date(); Objekt Date erstellen
|
||
toString() Datum in einen String umwandeln
|
||
getTime() UNIX-Timestamp, der die Sekunden seit dem
|
||
1.1.1970 ausgibt
|
||
before() vergleicht das Datumsobjekt od es davor ist
|
||
after() vergleicht das Datumsobjekt od es danach ist
|
||
Erweiterte Funktionen rund um das Datum gibt es in der Klasse Calendar bzw.
|
||
DateFormat in der Java-API
|
||
21.14.2. Die Klasse Random
|
||
Random zz = new Random(); Objekt Random erstellen
|
||
Methode Bereich Typ
|
||
------- ------- ---
|
||
nextInt() -2^31 bis 2^31-1 int
|
||
nextLong() -2^63 bis 2^63-1 long
|
||
nextFloat() 0.0 bis 1.0 float
|
||
nextDouble() 0.0 bis 1.0 double
|
||
nextGaussian() gibt eine Zufallszahl zurück, die nach dem Gauß-
|
||
Verfahren ermittelt wurde
|
||
21.14.3. Die Klasse Stack
|
||
Stack myStack = new Stack(); Objekt Stack erstellen
|
||
push() legt ein Objekt auf dem Stack ab
|
||
pop() holt das oberste Objekt vom Stack und löscht es
|
||
peek() holt das oberste Objekt vom Stack
|
||
21.15. Ausnahmen (Exceptions)
|
||
import java.io.*;
|
||
public class trycatchfinally {
|
||
public static void main(String args[]) {
|
||
Runtime mySystem = Runtime.getRuntime(); //Objekt Runtime erstellen
|
||
try{ //unsichere Anweisungen
|
||
mySystem.exec("xaos");
|
||
} catch(IOException e) { //Fehlerbehandlung
|
||
System.err.println("Es ist ein Fehler aufgetreten: " + e);
|
||
147
|
||
21. Java
|
||
} finally { //Anweisungen werden immer ausgeführt
|
||
System.out.println("Kritischer Bereich wurde ausgeführt!");
|
||
}
|
||
}
|
||
}
|
||
21.15.1. Eigene Ausnahme erzeugen (throw)
|
||
Methode(int zahl) {
|
||
if(zahl<0) {
|
||
throw(new Exception("Fehler!"));
|
||
} elese {
|
||
zahl++;
|
||
}
|
||
}
|
||
21.16. Multitasking mit Threads
|
||
21.16.1. Arbeiten mit Threads
|
||
java.lang die Klasse Thread ist ein Bestandteil des Paketes
|
||
public class Klasse implements Runnable {} neue Klasse über die
|
||
Schnittstelle Runnable erstellen
|
||
run() Methode run() (Code des Threads)
|
||
muss überschrieben werden
|
||
Klasse test = new Klasse(); In main(): Objekt der eigenen Klasse
|
||
test.start(); erstellen und Startmethode
|
||
aufrufen
|
||
public void start() {
|
||
Thread myThread = new Thread(this); Objekt aus der Klasse Thrad
|
||
erstellen und deren Konstruktor
|
||
das aktuelle Objekt als
|
||
parameter übergeben
|
||
myThread.start(); Thread starten
|
||
...;
|
||
myThread.stop(); Thread beenden
|
||
}
|
||
myThread.sleep(x); Thread x Milisekunden pausieren
|
||
muss mit Ausnahme abgefangen
|
||
148
|
||
21.17. Applets
|
||
werden InterruptedException
|
||
myThread.suspend(); Thraed anhalten
|
||
myThread.resume(); Thread wieder starten
|
||
myThread.destroy(); Thread zerstören/anhalten
|
||
21.17. Applets
|
||
21.17.1. Applets in eine Webseite einbinden
|
||
<html>
|
||
<head>
|
||
<title>Mein erstes Applet</title>
|
||
</head>
|
||
<body>
|
||
<applet code="myApplet.class" width=150 height=150>
|
||
<parm name="var1" value="Hallo">
|
||
<parm name="var2" value="Java!">
|
||
</applet>
|
||
</body>
|
||
</html>
|
||
21.17.2. Das erste Java Applet
|
||
import java.applet.*;
|
||
import java.awt.*;
|
||
public class MyApplet extends Applet {
|
||
public void paint(Graphics g) {
|
||
g.drawString("Mein erstes Applet !", 20, 40);
|
||
}
|
||
}
|
||
21.17.3. Die Methoden eines Applets
|
||
init() wird automatisch bei der Initialisierung des Applets aufgerufen
|
||
start() wird automatisch aufgerufen, wenn das Applet im sichtbaren
|
||
Browser-Bereich erscheint
|
||
stop() wird automatisch aufgerufen, wenn das Applet den sichtbaren
|
||
Bereich verläßt
|
||
destroy() wird automatisch beim verlassen der Seite oder schließen des
|
||
Browsers aufgerufen
|
||
21.17.4. Ein Applet im Überblick
|
||
import java.applet.*;
|
||
import java.awt.*;
|
||
149
|
||
21. Java
|
||
public class newApplet extends Applet {
|
||
public void init() {
|
||
//initialisierung aller nötigen Werte für das Programm
|
||
}
|
||
public void start() {
|
||
//Start des Applets
|
||
}
|
||
public void paint(Graphics g) {
|
||
//Grafikausgabe über das Objekt g !
|
||
}
|
||
public void stop() {
|
||
//Stop des Applets
|
||
}
|
||
public void destroy() {
|
||
//Ende des Applets
|
||
//Speicher wird freigegeben
|
||
}
|
||
}
|
||
21.17.5. Pakete
|
||
java.awt dient zur Bearbeitung und Ausgabe von Grafiken und
|
||
Fensterelementen in Applikationen und Applets
|
||
(advanced window toolkit)
|
||
java.applet eine Grundvoraussetzung für ein Applet
|
||
21.17.6. Die Klasse Graphics
|
||
public void paint(Graphics g) { um in das Applet zu zeichnen
|
||
drawString("Text",x,y); Text im Applet ausgeben
|
||
}
|
||
drawLine() Linie zeichnen
|
||
drawRect() Rechteck zeichnen
|
||
fillRect() gefülltes Rechteck zeichen
|
||
drawRoundRect() Rechteck mit abgerundeten Ecken zeichnen
|
||
fillRoundRect() gefülltes Rundeck zeichnen
|
||
drawOval() Kreis/Elipse zeichnen
|
||
fillOval() gefüllte/r Kreis/Elipse zeichnen
|
||
copyArea() kopieren eines sichtbaren Bereiches
|
||
21.17.7. Die Klasse Color
|
||
Color farbe = new Color(r,g,b); Farben erzeugen r=0-255 g=0-255 r=0-255
|
||
Color dfarbe = farbe.darker(); nächst dunklere Farbe
|
||
150
|
||
21.17. Applets
|
||
Color hfarbe = farbe.brighter(); nächst hellere Farbe
|
||
Konstante Frabe
|
||
--------- -----
|
||
Clolor.white weiss
|
||
Clolor.yellow gelb
|
||
Clolor.orange orange
|
||
Clolor.grey grau
|
||
Clolor.pink pink
|
||
Clolor.red rot
|
||
Clolor.magenta magenta
|
||
Clolor.green grün
|
||
Clolor.blue blau
|
||
Clolor.darkGray dunkelgrau
|
||
Clolor.lightGray hellgrau
|
||
Clolor.black schwarz
|
||
21.17.8. Die Klasse Font
|
||
Windows Java
|
||
------- ----
|
||
Arial Helvetica
|
||
Courier New Corier
|
||
MS Sans Serif Dialog
|
||
Times New Roman TimesRoman
|
||
WingDings ZapfDingbats
|
||
Arial default
|
||
Font f = new Font("art", stil, größe); neue Schrift erstellen
|
||
stil: plain(normal),
|
||
italic(kursiv), blod(fett)
|
||
21.17.9. Die Klasse Image
|
||
Image myImage = getImage(getCodeBase(), "Bild.jpg"); Bildobjekt erschaffen
|
||
drawImage() Bild anzeigen
|
||
21.17.10. Die Klasse Button
|
||
Button myButton = new Button("Klick"); Buttonobjekt erschaffen
|
||
setLabel() Beschriftung des Buttons ändern
|
||
getLabel() Beschriftung des Buttons auslesen
|
||
151
|
||
21. Java
|
||
21.18. Eventhandling
|
||
java.awt.event.*; Paket zur Ereignisbehandlung einbinden
|
||
21.18.1. Mouse Events
|
||
public class myApplet extends Applet implements MouseListener {}
|
||
Schnittstelle MouseListener implementieren
|
||
Methode Aufgabe
|
||
------- -------
|
||
mousePressed() Maustaste wird gedrückt
|
||
mouseReleased() Maustaste wird losgelassen
|
||
mouseClicked() Mausklick
|
||
mouseEntered() Maus bewegt sich in das Applet
|
||
mouseExited() Maus verlässt das Applet
|
||
addMouseListener(this); Listener soll auf das gesamte Applet achten
|
||
public void mousePressed(mouseEvent e) {
|
||
int x = e.getX(); Maustaste an X gedrückt
|
||
int y = e.getY(); Maustaste an Y gedrückt
|
||
}
|
||
addMouseMotionListener(this); MotionListener soll auf das Applet achten
|
||
mouseMoved() bewegte Mausereignisse
|
||
mouseDragged()
|
||
21.18.2. Action Events
|
||
public class myApplet extends Applet implements ActionListener {}
|
||
Schnittstelle ActionListener implementieren
|
||
Button myButton = new Button("Knopf"); Button erstellen
|
||
this.add(myButton); Button setzen
|
||
myButton.addActionListener(this); Button mit ActionListener versehen
|
||
public void actionPerformed(ActionEvent e) { Aufruf beim Anklicken des Button
|
||
String Klick = e.getActionCommand(); gibt die Aufschift des Button
|
||
}
|
||
21.18.3. Parameter an ein Applet
|
||
<applet code="myApplet.class" width=150 height=150>
|
||
152
|
||
21.18. Eventhandling
|
||
<parm name="var1" value="Hallo"> Parameter1
|
||
<parm name="var2" value="Java!"> Parameter2
|
||
</applet>
|
||
String var1 = getParameter("var1"); Parameter1 an den String var1
|
||
String var2 = getParameter("var2"); und var2 übergeben
|
||
21.18.4. Weitere wichtige Pakete
|
||
java.net Klassen und Schnittstellen für Netzwerkentwicklung
|
||
java.beans wieder verwentbare Komponenten
|
||
java.security erhöte Sicherheit innerhalb von Applikationen/Applets
|
||
java.rmi Verteilung eines Programms auf mehrere Rechner
|
||
java.sql Anbindung an SQL-Datenbanken
|
||
java.servlet Applikationen die serverseitig laufen
|
||
153
|
||
22. JavaScript
|
||
22.1. Einbindung von JavaScript
|
||
22.1.1. Einbindung in den Head
|
||
<html>
|
||
<head>
|
||
<title></title>
|
||
<script language="JavaScript"> Leitet den JavaScript-Quelltext ein
|
||
<!-- Kommentar anfang für alte Browser die
|
||
Definition von Fnktionen und kein JavaScript unterstüzen
|
||
Variablen JavaScript-Quelltext
|
||
//--> Kommentar ende
|
||
</script> Beendet den JavaScript-Quelltext
|
||
</head>
|
||
<body>
|
||
</body>
|
||
</html>
|
||
22.1.2. Einbindung in den Body
|
||
<html>
|
||
<head>
|
||
<title></title>
|
||
</head>
|
||
<body>
|
||
<script> Leitet den JavaScript-Quelltext ein
|
||
</script> Beendet den JavaScript-Quelltext
|
||
</body>
|
||
</html>
|
||
22.1.3. Ausführen bei bestimmten Aktionen
|
||
<html>
|
||
<head>
|
||
<title></title>
|
||
</head>
|
||
<body onLoad="JavaScript-Quelltext"> Beim Laden wird der JavaScript-Quelltext
|
||
155
|
||
22. JavaScript
|
||
ausgeführt
|
||
</body>
|
||
</html>
|
||
22.2. Variablen
|
||
var GlobaleVariable Globale Variable deklarieren
|
||
function() {
|
||
var LokaleVariable Lokale Variable deklarieren
|
||
}
|
||
var variable Variable deklarieren
|
||
variable = "Wert" Wert zuweisen
|
||
var zahl=9 Variable deklarieren und Wert zuweisen
|
||
+ Verketten
|
||
22.3. Objekte
|
||
22.3.1. Standardobjekte
|
||
document.write("Hallo") Hallo auf der Seite ausgeben
|
||
document.writeln("Hallo") Hallo auf der Seite mit Zeilenumruch
|
||
ausgeben
|
||
document.close() Schreiben schließen
|
||
document.bgColor=("ffffff") Hintergrunffarbe
|
||
document.fgColor=("000000") Fordergrundfarbe
|
||
document.linkColor=("00ff00") Neuer Link
|
||
document.vlinkColor=("ffff00") Besuchter Link
|
||
document.alinkColor=("ff0000") Aktiver Link
|
||
document.referrer URL von der aufgerufen wurde
|
||
document.location URL der Datei selber
|
||
document.title Titel der Seite
|
||
document.Name.src="bild2.gif" <img src="bild.gif" name="Name"> um auf
|
||
das Bild zuzugreifen
|
||
document.forms[0].Name.value Formular 1(0); aktueller Text im
|
||
Eingabefeld auslesen oder überschreiben
|
||
document.forms[0].Name.defaultValue Defaultwert auslesen oder überschreiben
|
||
document.forms[0].Name.select() Text im Eingabefeld makieren
|
||
document.forms[0].Name.focus() Cursor in das Eingabefeld setzen
|
||
156
|
||
22.3. Objekte
|
||
document.forms[0].Name[0].checked Radio-Checkbuttons liest oder schreibt,
|
||
ob ein Button ausgewählt ist
|
||
document.forms[0].Name[0].defaultChecked
|
||
Voreinstellung eines Button lesen oder
|
||
schreiben
|
||
nicht markiert markiert
|
||
0 1
|
||
false true
|
||
document.forms[0].Name.options[0].selectedIndex
|
||
Auswahlliste auslesen oder schreiben
|
||
document.forms[0].Name.options[0].value Wert auslesen oder schreiben
|
||
parent.frames[0].location.href= Frameinhalt ändern 0 -> Frame 1
|
||
"frame.htm"
|
||
parent. verzweigt in den nächsthöheren Frame
|
||
top. verzweigt in den höchsten Frame im
|
||
Browser
|
||
frames[n] verzweigt auf die nächstniedrigere Stufe
|
||
in den Frame mit dem Index n
|
||
window.status=("Hallo") Hallo in der Statusleiste ausgeben
|
||
myWindow=window.open("Dateiname","Fenstername","Eigenschaften")
|
||
Öffnet ein neues Fenster
|
||
Eigenschaften: width=(Pixel) gibt die Breite an
|
||
height=(Pixel) gibt die Höhe an
|
||
resizable=yes/no größe des Fensters veränderbar ?
|
||
menubar=yes/no Menüleiste vorhanden ?
|
||
toolbar=yes/no Buttonleiste vorhanden ?
|
||
location=yes/no Adresszeile vorhanden ?
|
||
status=yes/no Statuszeile vorhanden ?
|
||
scrollbars=yes/no Bildlaufleiste vorhanden ?
|
||
dependent=yes/no Vom aktuellen Fenster abhängig ?
|
||
myWindow.close() Schließt das neue Fenster
|
||
myWindow.closed Zugriff auf den Fensterzustand
|
||
22.3.2. String-Objekt
|
||
String.length Anzahl der Zeichen des Strings
|
||
String.substring(Anfang,Ende) Gibt den Anfang bis Ende des Strings zurück
|
||
String.toLowerCase Wandelt alle Buchstaben in Kleinbuchstaben
|
||
String.toUpperCase Wandelt alle Buchstaben in Großbuchstaben
|
||
157
|
||
22. JavaScript
|
||
22.3.3. Eigene Objekte
|
||
function person(name, alter) { Funktion
|
||
this.name = name zum
|
||
this.alter = alter Objekt
|
||
} anlegen
|
||
var meier = new person("Geier Meier", 18) Objekt erzeugen
|
||
meier.name = "Mr. Geier Meier" Wert ändern
|
||
meier.alter = 20 Wert ändern
|
||
meier = new Object Objekt erzeugen
|
||
meier.vorname = "Geier" Wert zuweisen
|
||
meier.nachname = "Meier" Wert zuweisen
|
||
22.3.4. Arrays
|
||
Variable = new Array Array erzeugen
|
||
Variable[0] = "hallo" Wert zuweisen
|
||
22.4. Mathematische Operationen
|
||
c = a + b Addition
|
||
a++ ; a = a + 1
|
||
c = a - b Subtraktion
|
||
a-- ; a = a - 1
|
||
c = a * b Multiplikation
|
||
c = a / b Division
|
||
a = Math.round(b) Ganzzahlige Rundung
|
||
22.5. Bedingte Ausführung
|
||
if(Ausdruck) wenn der Ausdruck stimmt,
|
||
{
|
||
Anweisung-en1 Anweisung-en1
|
||
}
|
||
22.6. Schleifen
|
||
for(Ausdruck1;Ausdruck2;Ausdruck3) Ausdruck1 einmal ausführen
|
||
{ so lange der Ausdruck2 stimmt,
|
||
vorher noch Ausdruck3
|
||
Anweisug-en Anweisung-en
|
||
158
|
||
22.7. Event-Handler
|
||
}
|
||
while(Ausdruck) so lange der Ausdruck stimmt,
|
||
{
|
||
Anweisung-en Anweisung-en
|
||
}
|
||
22.7. Event-Handler
|
||
onLoad="Aktion" Beim Laden Aktion ausführen
|
||
onUnload="Aktion" Beim Schließen Aktion ausführen
|
||
onMouseOver="Aktion" Beim Überfahren Aktion ausführen
|
||
onMouseOut="Aktion" Beim Verlassen Aktion ausführen
|
||
onFocus="Aktion" Beim Setzen des Cursors auf das Element
|
||
(Einsatz in Formularen)
|
||
onBlur="Aktion" Beim Verlassen des Elementes
|
||
onChange="Aktion" Beim Verlassen des Elementes wenn verändert
|
||
onClick="Aktion" Beim Anklicken eines Formularelements
|
||
<a href="javascript:function(’Link’)">Verweistext</a>
|
||
onSubmit="Aktion" Beim Senden eines Formulares Aktion ausführen
|
||
22.8. Funktionen
|
||
function Name(var1,var2) Definiert eine Funktion mit dem Name
|
||
{
|
||
alert(var2) Hier kommt der Funktionsinhalt rein
|
||
}
|
||
return("Hallo") Hallo zurück geben
|
||
alert("Text") Öffnet ein Fenster und gibt den Text aus
|
||
uhrzeit=new Date() Datum und Uhrzeit in das Objekt uhrzeit
|
||
schreiben
|
||
st=uhrzeit.getHours() Stunden aus dem Objekt uhrzeit der Variable
|
||
st zuweisen
|
||
min=uhrzeit.getMinutes() Minuten aus dem Objekt uhrzeit der Variable
|
||
min zuweisen
|
||
setTimeout("Funktion",Millisekunden) Funktion nach Millisekunden aufrufen
|
||
Math.random()
|
||
159
|
||
22. JavaScript
|
||
22.9. Reservierte Wörter
|
||
abstract
|
||
boolean
|
||
break
|
||
byte
|
||
case
|
||
catch
|
||
char
|
||
class
|
||
const
|
||
continue
|
||
debugger
|
||
default
|
||
delete
|
||
else
|
||
enum
|
||
export
|
||
extends
|
||
false
|
||
final
|
||
finally
|
||
float
|
||
for
|
||
function
|
||
goto
|
||
if
|
||
implements
|
||
import
|
||
in
|
||
instanceof
|
||
int
|
||
interface
|
||
long
|
||
native
|
||
new
|
||
null
|
||
package
|
||
private
|
||
protected
|
||
public
|
||
return
|
||
short
|
||
static
|
||
super
|
||
160
|
||
22.9. Reservierte Wörter
|
||
switch
|
||
synchronized
|
||
this
|
||
throw
|
||
throws
|
||
transient
|
||
true
|
||
try
|
||
typeof
|
||
var
|
||
void
|
||
volatile
|
||
while
|
||
with
|
||
161
|
||
Teil V.
|
||
Anhang
|
||
163
|
||
23. Glossar
|
||
Abhängigkeiten Ein von rpm verwendetes System, um die Verwaltung installierter
|
||
Software zu vereinfachen. Jedes Paket enthält ein Skript, das dem lokalen rpm
|
||
mitteilt, welche anderen Pakete es zur Ausführung benötigt. Sind die erforderli-
|
||
chen Pakete nicht installiert, wird die Installation abgebrochen. Gleiches gilt für
|
||
die Deinstallation.
|
||
Andere, others In UNIX die Gruppe der Benutzer, die weder Eigetümer einer Datei
|
||
sind, noch zur Besitzergruppe gehören. Es ist generell eine gute Idee, die Rechte
|
||
dieser Gruppe so restriktiv wie möglich zu handhaben. Siehe auch Besitzergrup-
|
||
pe.
|
||
alias Ein Shell-Mechanismus, um eine Zeichenkette durch einen anderen zu ersetzen,
|
||
bevor ein Kommando ausgeführt wird. Einen Überblick über alle definierten
|
||
Aliasse erhalten Sie mit dem Kommando alias.
|
||
Anzeigehilfe Programm zum Anzeigen einer (Text-) Datei. Es bietet die Möglichkeit
|
||
einfach vorwärts und rückwärts durch das Dokument zu navigieren sowie Zei-
|
||
chenketten zu suchen. Wir empfehlen Ihnen das Programm less zu verwenden
|
||
(u.a. da es die selben Tastaturkürzel wie vim verwendet).
|
||
APM Advanced Power Management (”Fortgeschrittenes Energiemanagement”). Wird
|
||
von einigen BIOSsen dazu benutzt, die Maschine nach einer Periode von Inakti-
|
||
vität in einen energiesparenden Ruhezustand zu bringen. Auf Laptops ist APM
|
||
auch dafür zuständig, Informationen über den Batteriestatus bzw. die verblei-
|
||
bende Arbeitszeit bereit zu stellen.
|
||
Arbeitsfläche Wenn Sie das X-Windows-System verwenden, ist die Arbeitsfläche der
|
||
teil des Bildschirmes, auf dem Sie arbeiten und auf dem Ihre Symbole und Fenster
|
||
dargestellt werden. Manschmal wird auch lachs vom ”Hitergrund” gesprochen.
|
||
Siehe auch: virtuelle Arbeitsfläche.
|
||
ARP AddressResolutionProtocol.(”Protokollzur Adress-Auflösungs”).Das Protokoll
|
||
umIP-Adressendynamischin physikalische (Hardware-)Adressenumzuwandeln.
|
||
Nur möglich auf direkt verbundenen Netzwerken im Hardware- Broadcasting.
|
||
ASCII Abkürzung für American Standart Code for Information Interchange. Es han-
|
||
delt sich um den meistvervwendeten 7-Bit-Kode zur Darstellung von Ziffern,
|
||
Buchstaben und Sonderzeichen. Der ASCII-Code ist mittlerweile per ”normati-
|
||
ver Kraft des Faktischen” durch den ISO Standart 8859-1 abgelöst (Siehe ISO
|
||
8859).
|
||
165
|
||
23. Glossar
|
||
Assembler Maschinensprache. Vorstufe des Objekt-Kodes. Programme werden meist
|
||
in sogenannten Hochsprachen (wie C) geschrieben, die dann per Kompilation in
|
||
Assembler umgewandelt werden.
|
||
ATAPI eine Familie von CD-ROM-Laufwerken,die an den IDE-Controller angeschlos-
|
||
sen werden. Es gibt auch SCSI-Laufwerke, die am SCSI-Controler betrieben wer-
|
||
den, sowie proprietäre Laufwerke, die ihren eigenen Controller benutzen oder an
|
||
die Soundkarte angeschlossen werden.
|
||
atomar Eine Gruppe von Operationen, die nicht weiter aufgeteilt werden kann.
|
||
ausführlicher Modus Befehle produzieren im ausführlichen Modus Zusatzinformatio-
|
||
nen, die auf die Standardausgabe oder Standart-Fehlerausgabe ausgegeben wer-
|
||
den. Einige Programme bieten die Möglichkeit einzustellen wie ”redselig” sie sein
|
||
sollen.
|
||
HTTP HyperText Transfer Protokoll(Hypertext-Übertragungsprotokoll). Ist ein Pro-
|
||
tokoll zur Übertragung von Daten über ein Netzwerk. Es wird hauptsächlich ein-
|
||
gesetzt, um Webseiten aus dem World Wide Web (WWW) in einen Webbrowser
|
||
zu laden.
|
||
URL Uniform Resource Locator (Einheitlicher Quellenanzeiger). Bezeichnet man ei-
|
||
ne Unterart von Uniform Resource Identifiern (URIs). URLs identifizieren und
|
||
lokalisieren eine Ressource über die zu verwendende Zugriffsmethode (z. B. das
|
||
verwendete Netzwerkprotokoll wie HTTP oder FTP) und den Ort (engl. locati-
|
||
on) der Ressource in Computernetzwerken. Im allgemeinen Sprachgebrauch wer-
|
||
den sie auch als Internetadresse bezeichnet, wobei damit (der umgangssprachlich
|
||
häufigen Gleichsetzung von Internet und WWW folgend) meist speziell URLs
|
||
von Webseiten gemeint sind.
|
||
USV Unterbrechungsfreie Stromversorgung. Sehr großer Akku (aufladbare Baterie)
|
||
der bei einem Stromausfall den Rechner mit Strom versorgt.
|
||
WWWWorldWideWeb(WeltweitesNetz).IsteinüberdasInternetabrufbaresHypertext-
|
||
System, bestehend aus elektronischen Dokumenten, die durch Hyperlinks mit-
|
||
einander verknüpft sind.
|
||
166
|
||
Stichwortverzeichnis
|
||
&, 30 echo, 20 host, 34
|
||
egrep, 24 hosts, 50
|
||
affs, 49 Eigentümer, 28 hpfs, 49
|
||
alias, 22 emerge, 33 htop, 30
|
||
apt, 32 env-update, 31
|
||
apt-get, 32 equery, 33 ifconfig, 34
|
||
etc-update, 33 info, 20
|
||
bash, 55 euse, 33 init, 19, 20
|
||
bg, 30 expand, 25 initctl, 20
|
||
Bildschirmschoner, 19, export, 31, 38, 55 insmod, 17
|
||
39 ext2, 49 ip, 34
|
||
blockorientiert, 28 ext3, 49 iso9660, 49
|
||
bzip2, 17 jobs, 30
|
||
fakeroot, 17
|
||
cat, 23 fdformat, 27 Kernel, 17
|
||
cd, 23 fdisk, 27 kill, 30
|
||
cfdsik, 27 fg, 30 ksh, 55
|
||
chgrp, 28 fgrep, 24
|
||
chmod, 28 file, 22 last, 20
|
||
chown, 28 find, 24 ldd, 34
|
||
chroot, 31 finger, 20 less, 23
|
||
clock, 21 free, 20 ln, 23
|
||
cmp, 25 fsck, 27 locate, 55
|
||
comm, 25 fstab, 48 login, 19
|
||
compress, 25 ftp, 34 logout, 19
|
||
cp, 23 losetup, 28
|
||
csh, 55 git, 119 lpq, 25
|
||
gpg, 17, 36 lpr, 25
|
||
date, 20, 21 grep, 24 lprm, 25
|
||
Datum, 21 group, 49 ls, 22
|
||
dd, 27 grub, 31 lsmod, 17
|
||
df, 20 Gruppe, 28
|
||
diff, 25 gzip, 17 mail, 37, 75
|
||
dmesg, 17 make, 17, 34
|
||
docker, 69 halt, 19 make-kpkg, 17
|
||
docker-compose, 69 Hardlink, 23 man, 20
|
||
dpkg, 17, 32 head, 23 mfomat, 27
|
||
167
|
||
STICHWORTVERZEICHNIS
|
||
minix, 49 rmdir, 23 Uhrzeit, 21
|
||
mkdir, 23 rmmod, 17 umount, 27
|
||
mkdosfs, 27 rpm, 32 umsdos, 49
|
||
mke2fs, 27 uname, 17
|
||
mkfs, 27 sax, 38 uncompress, 25
|
||
modprobe, 28 scp, 34, 35 uniq, 25
|
||
more, 23 setenv, 55 unpack, 25
|
||
mount, 27 settherm, 19 unset, 55
|
||
msdos, 49 sh, 55 unsetenv, 55
|
||
mv, 23 shutdown, 19 Upstart, 20
|
||
smbfs, 49 useradd, 28
|
||
ncpfs, 49 Softlink, 23 userdel, 28
|
||
netcat, 34 source, 31 usermod, 28
|
||
netdate, 21 ssh, 34, 35 UTC, 21
|
||
nfs, 49 ssh-keygen, 35
|
||
nl, 23 startx, 38 vfat, 49
|
||
nmap, 34 stderr, 19 vi, 24, 61
|
||
nslookup, 34 stdin, 19, 56 vipw, 28
|
||
ntfs, 49 stdout, 19
|
||
strace, 34 w, 20
|
||
od, 23 strings, 23 wc, 22
|
||
passwd, 28, 53 su, 28 wget, 17
|
||
ping, 34 sux, 28 whatis, 20
|
||
pr, 25 systemctl, 19 which, 20
|
||
proc, 49 sysv, 49 who, 20
|
||
ps, 30 whoami, 20
|
||
pstree, 30 tail, 23 xf86config, 38
|
||
pwd, 20 tar, 27 XF86Setup, 38
|
||
tcsh, 55 xset, 39
|
||
rcsshd, 36 telnet, 34 xsetroot, 39
|
||
reboot, 19 timedatectl, 21
|
||
recode, 23 top, 30 yast, 20
|
||
reiserfs, 49 tr, 25
|
||
revdep-rebuild, 33 tune2fs, 27 zcat, 17
|
||
rlogin, 34 zeichenorientiert, 28
|
||
rm, 23 ufs, 49 Zeit, 21
|
||
168
|