8674 lines
402 KiB
HTML
8674 lines
402 KiB
HTML
<!DOCTYPE html><html>
|
||
<head>
|
||
<title></title>
|
||
<style type="text/css">
|
||
<!--
|
||
.xflip {
|
||
-moz-transform: scaleX(-1);
|
||
-webkit-transform: scaleX(-1);
|
||
-o-transform: scaleX(-1);
|
||
transform: scaleX(-1);
|
||
filter: fliph;
|
||
}
|
||
.yflip {
|
||
-moz-transform: scaleY(-1);
|
||
-webkit-transform: scaleY(-1);
|
||
-o-transform: scaleY(-1);
|
||
transform: scaleY(-1);
|
||
filter: flipv;
|
||
}
|
||
.xyflip {
|
||
-moz-transform: scaleX(-1) scaleY(-1);
|
||
-webkit-transform: scaleX(-1) scaleY(-1);
|
||
-o-transform: scaleX(-1) scaleY(-1);
|
||
transform: scaleX(-1) scaleY(-1);
|
||
filter: fliph + flipv;
|
||
}
|
||
-->
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<a name=1></a>linux v0.1.53<br/>
|
||
tresix69@freenet.de<br/>
|
||
16. Februar 2025<br/>
|
||
betreut durch Thomas resiX<br/>
|
||
<hr/>
|
||
<a name=2></a><hr/>
|
||
<a name=3></a>1. Vorwort<br/>
|
||
Habe versucht alles so kurz wie möglich aber dennoch ausführlich zu Beschreiben und<br/>
|
||
wie immer aus verschiedenen Anleitugen abgeschrieben ;-)<br/>
|
||
3<br/>
|
||
<hr/>
|
||
<a name=4></a><hr/>
|
||
<a name=5></a>Inhaltsverzeichnis<br/>
|
||
<a href="linuxs.html#3">1. Vorwort</a><br/>
|
||
3<br/>
|
||
<a href="linuxs.html#5">Inhaltsverzeichnis</a><br/>
|
||
5<br/>
|
||
<a href="linuxs.html#15">I.</a><br/>
|
||
<a href="linuxs.html#15">Linux</a><br/>
|
||
15<br/>
|
||
<a href="linuxs.html#17">2. Linux</a><br/>
|
||
17<br/>
|
||
<a href="linuxs.html#17">2.1.</a><br/>
|
||
<a href="linuxs.html#17">Was ist Linux? </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br/>
|
||
<a href="linuxs.html#17">2.2.</a><br/>
|
||
<a href="linuxs.html#17">Kernel und Module </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br/>
|
||
<a href="linuxs.html#17">2.2.1.</a><br/>
|
||
<a href="linuxs.html#17">Kernel 2.4 </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br/>
|
||
<a href="linuxs.html#17">2.2.2.</a><br/>
|
||
<a href="linuxs.html#17">Kernel 2.6 (Debian 4.0 etch) </a>. . . . . . . . . . . . . . . . . . . 17<br/>
|
||
<a href="linuxs.html#19">3. Befehle</a><br/>
|
||
19<br/>
|
||
<a href="linuxs.html#19">3.1.</a><br/>
|
||
<a href="linuxs.html#19">Standartein-aus-gabe </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br/>
|
||
<a href="linuxs.html#19">3.2.</a><br/>
|
||
<a href="linuxs.html#19">Anmelden und Abmelden </a>. . . . . . . . . . . . . . . . . . . . . . . . . 19<br/>
|
||
<a href="linuxs.html#19">3.3.</a><br/>
|
||
<a href="linuxs.html#19">Anhalten des Systems und Booten </a>. . . . . . . . . . . . . . . . . . . . 19<br/>
|
||
<a href="linuxs.html#20">3.4.</a><br/>
|
||
<a href="linuxs.html#20">Die Runlevel </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br/>
|
||
<a href="linuxs.html#20">3.4.1.</a><br/>
|
||
<a href="linuxs.html#20">Upstart (Systemstart) </a>. . . . . . . . . . . . . . . . . . . . . . . 20<br/>
|
||
<a href="linuxs.html#20">3.5.</a><br/>
|
||
<a href="linuxs.html#20">SuSE-Linux </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br/>
|
||
<a href="linuxs.html#20">3.6.</a><br/>
|
||
<a href="linuxs.html#20">Zur Orientierung auf einem UNIX-Rechner </a>. . . . . . . . . . . . . . . . 20<br/>
|
||
<a href="linuxs.html#21">3.7.</a><br/>
|
||
<a href="linuxs.html#21">Datum und Uhrzeit </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br/>
|
||
<a href="linuxs.html#22">3.8.</a><br/>
|
||
<a href="linuxs.html#22">Auflisten </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br/>
|
||
<a href="linuxs.html#22">3.9.</a><br/>
|
||
<a href="linuxs.html#22">Dateinamen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br/>
|
||
<a href="linuxs.html#22">3.10. Dateiendungen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br/>
|
||
<a href="linuxs.html#22">3.11. Infos über Files </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br/>
|
||
<a href="linuxs.html#23">3.12. Arbeiten(Verwüstungen) im und am Filesystem </a>. . . . . . . . . . . . . 23<br/>
|
||
<a href="linuxs.html#23">3.13. Kopieren und Verschieben </a>. . . . . . . . . . . . . . . . . . . . . . . . . 23<br/>
|
||
<a href="linuxs.html#23">3.14. Löschen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br/>
|
||
<a href="linuxs.html#23">3.15. Ausgeben </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br/>
|
||
<a href="linuxs.html#24">3.16. Der Texteditor vi/vim </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br/>
|
||
<a href="linuxs.html#24">3.17. Suchen nach Dateien </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br/>
|
||
<a href="linuxs.html#24">3.18. Suchen in Dateien </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br/>
|
||
<a href="linuxs.html#25">3.19. Vergleichen von Dateien </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 25<br/>
|
||
<a href="linuxs.html#25">3.20. Drucken </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br/>
|
||
<a href="linuxs.html#25">3.21. File-Inhalt bearbeiten </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br/>
|
||
<a href="linuxs.html#25">3.22. TAR (tape archiver) verwaltet Dateiarchive </a>. . . . . . . . . . . . . . . 25<br/>
|
||
<a href="linuxs.html#27">3.22.1. Packen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br/>
|
||
5<br/>
|
||
<hr/>
|
||
<a name=6></a>Inhaltsverzeichnis<br/>
|
||
<a href="linuxs.html#27">3.22.2. Entpacken </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br/>
|
||
<a href="linuxs.html#27">3.23. Disketten/Festplatten </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br/>
|
||
<a href="linuxs.html#28">3.23.1. Dateisystem verschlüsseln </a>. . . . . . . . . . . . . . . . . . . . . 28<br/>
|
||
<a href="linuxs.html#28">3.24. Zugriffsrechte/Eigentümer/Gruppe </a>. . . . . . . . . . . . . . . . . . . . 28<br/>
|
||
<a href="linuxs.html#30">3.25. Prozessbefehle </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br/>
|
||
<a href="linuxs.html#31">3.26. Re-install Grub with Live CD </a>. . . . . . . . . . . . . . . . . . . . . . . 31<br/>
|
||
<a href="linuxs.html#31">3.26.1. Chroot </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br/>
|
||
<a href="linuxs.html#31">3.26.2. Grub </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br/>
|
||
<a href="linuxs.html#31">3.27. Software installieren </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br/>
|
||
<a href="linuxs.html#31">3.27.1. rpm-Format </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br/>
|
||
<a href="linuxs.html#32">3.27.2. deb-Format </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br/>
|
||
<a href="linuxs.html#33">3.27.3. Portage Gentoo </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br/>
|
||
<a href="linuxs.html#34">3.27.4. Quelltexte </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br/>
|
||
<a href="linuxs.html#34">3.27.5. Hilfe </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br/>
|
||
<a href="linuxs.html#34">3.28. Im Netz </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br/>
|
||
<a href="linuxs.html#35">3.29. SSH </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br/>
|
||
<a href="linuxs.html#35">3.29.1. Generierung eines DSA Schlüsselpaares </a>. . . . . . . . . . . . . 35<br/>
|
||
<a href="linuxs.html#35">3.29.2. Public-Key auf dem Zielrechner hinzufügen </a>. . . . . . . . . . . 35<br/>
|
||
<a href="linuxs.html#35">3.29.3. Private-Key auf dem Qellrechner </a>. . . . . . . . . . . . . . . . . 35<br/>
|
||
<a href="linuxs.html#36">3.29.4. Login nur mit SSH-Keys erlauben </a>. . . . . . . . . . . . . . . . 36<br/>
|
||
<a href="linuxs.html#36">3.30. GnuPG </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br/>
|
||
<a href="linuxs.html#36">3.30.1. Erzeugen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br/>
|
||
<a href="linuxs.html#36">3.30.2. Hochladen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br/>
|
||
<a href="linuxs.html#37">3.30.3. Löschen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br/>
|
||
<a href="linuxs.html#37">3.30.4. Holen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br/>
|
||
<a href="linuxs.html#37">3.30.5. Signatur erzeugen und prüfen </a>. . . . . . . . . . . . . . . . . . . 37<br/>
|
||
<a href="linuxs.html#37">3.30.6. Verschlüsseln </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br/>
|
||
<a href="linuxs.html#37">3.30.7. Entschlüsseln </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br/>
|
||
<a href="linuxs.html#38">3.30.8. Schlüsselverwaltung </a>. . . . . . . . . . . . . . . . . . . . . . . . 38<br/>
|
||
<a href="linuxs.html#38">3.30.9. Anzeigen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br/>
|
||
<a href="linuxs.html#38">3.30.10. Exportieren </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br/>
|
||
<a href="linuxs.html#38">3.31. X11 - Grafik </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br/>
|
||
<a href="linuxs.html#39">3.31.1. Bildschirmschoner/Maus </a>. . . . . . . . . . . . . . . . . . . . . . 39<br/>
|
||
<a href="linuxs.html#39">3.31.2. X11 ohne Maus </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br/>
|
||
<a href="linuxs.html#41">4. Verzeichnisse und Dateien</a><br/>
|
||
41<br/>
|
||
<a href="linuxs.html#41">4.1.</a><br/>
|
||
<a href="linuxs.html#41">Dateibaum </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br/>
|
||
<a href="linuxs.html#48">4.2.</a><br/>
|
||
<a href="linuxs.html#48">/etc/fstab </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br/>
|
||
<a href="linuxs.html#48">4.3.</a><br/>
|
||
<a href="linuxs.html#48">/dev/ </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br/>
|
||
<a href="linuxs.html#49">4.4.</a><br/>
|
||
<a href="linuxs.html#49">Dateisystemtypen unter Linux </a>. . . . . . . . . . . . . . . . . . . . . . . 49<br/>
|
||
<a href="linuxs.html#49">4.5.</a><br/>
|
||
<a href="linuxs.html#49">/etc/group </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br/>
|
||
<a href="linuxs.html#50">4.6.</a><br/>
|
||
<a href="linuxs.html#50">/etc/hosts </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br/>
|
||
<a href="linuxs.html#50">4.7.</a><br/>
|
||
<a href="linuxs.html#50">/etc/inittab </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br/>
|
||
<a href="linuxs.html#50">4.7.1.</a><br/>
|
||
<a href="linuxs.html#50">Terminal </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br/>
|
||
<a href="linuxs.html#50">4.7.2.</a><br/>
|
||
<a href="linuxs.html#50">Termcapeintrag </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br/>
|
||
6<br/>
|
||
<hr/>
|
||
<a name=7></a>Inhaltsverzeichnis<br/>
|
||
<a href="linuxs.html#51">4.7.3.</a><br/>
|
||
<a href="linuxs.html#51">Gettykommando </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 51<br/>
|
||
<a href="linuxs.html#51">4.7.4.</a><br/>
|
||
<a href="linuxs.html#51">Kürzel </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br/>
|
||
<a href="linuxs.html#51">4.7.5.</a><br/>
|
||
<a href="linuxs.html#51">Arbeitsstufen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br/>
|
||
<a href="linuxs.html#51">4.7.6.</a><br/>
|
||
<a href="linuxs.html#51">Modus </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br/>
|
||
<a href="linuxs.html#52">4.7.7.</a><br/>
|
||
<a href="linuxs.html#52">Kommando </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br/>
|
||
<a href="linuxs.html#53">4.8.</a><br/>
|
||
<a href="linuxs.html#53">/etc/passwd </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br/>
|
||
<a href="linuxs.html#55">5. Die Shells</a><br/>
|
||
55<br/>
|
||
<a href="linuxs.html#55">5.1.</a><br/>
|
||
<a href="linuxs.html#55">Die Shells </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br/>
|
||
<a href="linuxs.html#55">5.2.</a><br/>
|
||
<a href="linuxs.html#55">Die Start-Scripts </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br/>
|
||
<a href="linuxs.html#55">5.3.</a><br/>
|
||
<a href="linuxs.html#55">Tastenkombinationen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br/>
|
||
<a href="linuxs.html#56">5.4.</a><br/>
|
||
<a href="linuxs.html#56">Die C-Shell </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br/>
|
||
<a href="linuxs.html#57">5.5.</a><br/>
|
||
<a href="linuxs.html#57">Bash rechnen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br/>
|
||
<a href="linuxs.html#59">II. Programme</a><br/>
|
||
59<br/>
|
||
<a href="linuxs.html#61">6. Der Texteditor vi/vim</a><br/>
|
||
61<br/>
|
||
<a href="linuxs.html#61">6.1.</a><br/>
|
||
<a href="linuxs.html#61">Aufruf </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br/>
|
||
<a href="linuxs.html#61">6.2.</a><br/>
|
||
<a href="linuxs.html#61">Eingabemodus (input mode) </a>. . . . . . . . . . . . . . . . . . . . . . . . 61<br/>
|
||
<a href="linuxs.html#61">6.3.</a><br/>
|
||
<a href="linuxs.html#61">Befehlsmodus (visual mode) </a>. . . . . . . . . . . . . . . . . . . . . . . . 61<br/>
|
||
<a href="linuxs.html#61">6.3.1.</a><br/>
|
||
<a href="linuxs.html#61">Eingeben: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br/>
|
||
<a href="linuxs.html#61">6.3.2.</a><br/>
|
||
<a href="linuxs.html#61">Überschreiben: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br/>
|
||
<a href="linuxs.html#62">6.3.3.</a><br/>
|
||
<a href="linuxs.html#62">Bewegen: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br/>
|
||
<a href="linuxs.html#63">6.3.4.</a><br/>
|
||
<a href="linuxs.html#63">Löschen und Eingeben: </a>. . . . . . . . . . . . . . . . . . . . . . 63<br/>
|
||
<a href="linuxs.html#63">6.3.5.</a><br/>
|
||
<a href="linuxs.html#63">Löschen: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br/>
|
||
<a href="linuxs.html#63">6.3.6.</a><br/>
|
||
<a href="linuxs.html#63">Aufheben: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br/>
|
||
<a href="linuxs.html#63">6.3.7.</a><br/>
|
||
<a href="linuxs.html#63">Verschieben: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br/>
|
||
<a href="linuxs.html#64">6.3.8.</a><br/>
|
||
<a href="linuxs.html#64">Zusammenfügen: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 64<br/>
|
||
<a href="linuxs.html#64">6.3.9.</a><br/>
|
||
<a href="linuxs.html#64">Markieren: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br/>
|
||
<a href="linuxs.html#64">6.3.10. Kopieren: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br/>
|
||
<a href="linuxs.html#64">6.3.11. Einfügen: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br/>
|
||
<a href="linuxs.html#64">6.3.12. Suchen: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br/>
|
||
<a href="linuxs.html#64">6.3.13. Wiederholen: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br/>
|
||
<a href="linuxs.html#65">6.3.14. Sonstige Kommandos: </a>. . . . . . . . . . . . . . . . . . . . . . . 65<br/>
|
||
<a href="linuxs.html#65">6.4.</a><br/>
|
||
<a href="linuxs.html#65">Kommandomodus (colon mode) </a>. . . . . . . . . . . . . . . . . . . . . . 65<br/>
|
||
<a href="linuxs.html#65">6.4.1.</a><br/>
|
||
<a href="linuxs.html#65">Texteingabe Kommandos </a>. . . . . . . . . . . . . . . . . . . . . 65<br/>
|
||
<a href="linuxs.html#67">7. LaTeX</a><br/>
|
||
67<br/>
|
||
<a href="linuxs.html#67">7.1.</a><br/>
|
||
<a href="linuxs.html#67">LATEX </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br/>
|
||
<a href="linuxs.html#69">8. Docker</a><br/>
|
||
69<br/>
|
||
<a href="linuxs.html#69">8.1.</a><br/>
|
||
<a href="linuxs.html#69">Docker installieren </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br/>
|
||
<a href="linuxs.html#69">8.2.</a><br/>
|
||
<a href="linuxs.html#69">Mit Docker arbeiten </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br/>
|
||
7<br/>
|
||
<hr/>
|
||
<a name=8></a>Inhaltsverzeichnis<br/>
|
||
<a href="linuxs.html#71">III. Linux im Netzwerk</a><br/>
|
||
71<br/>
|
||
<a href="linuxs.html#73">9. Netzwerk</a><br/>
|
||
73<br/>
|
||
<a href="linuxs.html#74">9.1.</a><br/>
|
||
<a href="linuxs.html#74">/etc/network/interfaces </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 74<br/>
|
||
<a href="linuxs.html#75">10. E-Mail</a><br/>
|
||
75<br/>
|
||
<a href="linuxs.html#75">10.1. Verwendung von E-Mail </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 75<br/>
|
||
<a href="linuxs.html#77">11. Apache</a><br/>
|
||
77<br/>
|
||
<a href="linuxs.html#77">11.1. Einleitung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br/>
|
||
<a href="linuxs.html#77">11.2. Kompilieren und Installieren </a>. . . . . . . . . . . . . . . . . . . . . . . . 77<br/>
|
||
<a href="linuxs.html#77">11.2.1. Anforderungen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br/>
|
||
<a href="linuxs.html#77">11.2.2. Vorbereitungen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br/>
|
||
<a href="linuxs.html#78">11.2.3. OpenSSL </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br/>
|
||
<a href="linuxs.html#78">11.2.4. Apache 1.3 und SSL </a>. . . . . . . . . . . . . . . . . . . . . . . . 78<br/>
|
||
<a href="linuxs.html#80">11.2.5. Apache2 </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br/>
|
||
<a href="linuxs.html#80">11.2.6. Testen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br/>
|
||
<a href="linuxs.html#81">11.2.7. Upgrade </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br/>
|
||
<a href="linuxs.html#81">11.2.8. PureFTPd </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br/>
|
||
<a href="linuxs.html#82">11.3. Apache starten </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br/>
|
||
<a href="linuxs.html#82">11.3.1. Apache starten </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br/>
|
||
<a href="linuxs.html#82">11.3.2. Wie der Apache startet </a>. . . . . . . . . . . . . . . . . . . . . . 82<br/>
|
||
<a href="linuxs.html#83">11.3.3. Fehler während des Hochfahrens </a>. . . . . . . . . . . . . . . . . 83<br/>
|
||
<a href="linuxs.html#83">11.3.4. Automatisch starten und beenden </a>. . . . . . . . . . . . . . . . 83<br/>
|
||
<a href="linuxs.html#83">11.3.5. Weitere Informationen </a>. . . . . . . . . . . . . . . . . . . . . . . 83<br/>
|
||
<a href="linuxs.html#84">11.4. Beenden und Neustarten </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 84<br/>
|
||
<a href="linuxs.html#84">11.4.1. Einleitung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br/>
|
||
<a href="linuxs.html#84">11.4.2. Beenden </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br/>
|
||
<a href="linuxs.html#84">11.4.3. Unterbrechungsfreier Neustart </a>. . . . . . . . . . . . . . . . . . 84<br/>
|
||
<a href="linuxs.html#85">11.4.4. Neustarten </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br/>
|
||
<a href="linuxs.html#85">11.4.5. Anhang: Syntax überprüfen </a>. . . . . . . . . . . . . . . . . . . . 85<br/>
|
||
<a href="linuxs.html#86">11.5. Anhang </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br/>
|
||
<a href="linuxs.html#86">11.5.1. Zu den Dateien </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br/>
|
||
<a href="linuxs.html#86">11.6. Benutzerhandbuch </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br/>
|
||
<a href="linuxs.html#86">11.6.1. httpd.conf </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br/>
|
||
<a href="linuxs.html#89">11.6.2. Access Control List File (.htaccess) </a>. . . . . . . . . . . . . . . . 89<br/>
|
||
<a href="linuxs.html#90">11.6.3. Gruppendatei (.htgroup) </a>. . . . . . . . . . . . . . . . . . . . . . 90<br/>
|
||
<a href="linuxs.html#90">11.6.4. Passwort-Datei (.htpasswd) </a>. . . . . . . . . . . . . . . . . . . . 90<br/>
|
||
<a href="linuxs.html#90">11.6.5. Erstellen eines SSL-Zertifikats </a>. . . . . . . . . . . . . . . . . . . 90<br/>
|
||
<a href="linuxs.html#90">11.6.6. LinkIcon (favicon.ico) </a>. . . . . . . . . . . . . . . . . . . . . . . 90<br/>
|
||
<a href="linuxs.html#93">12. MySQL</a><br/>
|
||
93<br/>
|
||
<a href="linuxs.html#93">12.1. Einleitung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br/>
|
||
<a href="linuxs.html#93">12.2. Kompilieren und Installieren </a>. . . . . . . . . . . . . . . . . . . . . . . . 93<br/>
|
||
<a href="linuxs.html#93">12.2.1. Anforderungen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br/>
|
||
8<br/>
|
||
<hr/>
|
||
<a name=9></a>Inhaltsverzeichnis<br/>
|
||
<a href="linuxs.html#93">12.2.2. Vorbereitungen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br/>
|
||
<a href="linuxs.html#93">12.2.3. MySQL </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br/>
|
||
<a href="linuxs.html#94">12.2.4. MySQL Testen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br/>
|
||
<a href="linuxs.html#95">12.2.5. phpMyAdmin </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br/>
|
||
<a href="linuxs.html#97">13. PHP</a><br/>
|
||
97<br/>
|
||
<a href="linuxs.html#97">13.1. Einleitung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br/>
|
||
<a href="linuxs.html#97">13.2. Kompilieren und Installieren </a>. . . . . . . . . . . . . . . . . . . . . . . . 97<br/>
|
||
<a href="linuxs.html#97">13.2.1. Anforderungen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br/>
|
||
<a href="linuxs.html#97">13.2.2. Vorbereitungen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br/>
|
||
<a href="linuxs.html#98">13.2.3. Libraries für Zusatzfunktionen </a>. . . . . . . . . . . . . . . . . . 98<br/>
|
||
<a href="linuxs.html#99">13.2.4. PHP </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br/>
|
||
<a href="linuxs.html#100">13.3. Referenz </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100<br/>
|
||
<a href="linuxs.html#100">13.3.1. Grundlagen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100<br/>
|
||
<a href="linuxs.html#100">13.3.2. Funktionen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100<br/>
|
||
<a href="linuxs.html#101">14. Squid</a><br/>
|
||
101<br/>
|
||
<a href="linuxs.html#101">14.1. Proxy </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br/>
|
||
<a href="linuxs.html#101">14.2. Einfacher Cache </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br/>
|
||
<a href="linuxs.html#101">14.3. Proxy Cache </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br/>
|
||
<a href="linuxs.html#101">14.4. Aufgaben </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br/>
|
||
<a href="linuxs.html#102">14.5. Eigenschaften </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102<br/>
|
||
<a href="linuxs.html#102">14.6. Protokolle </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102<br/>
|
||
<a href="linuxs.html#102">14.6.1. Client-Kommunikation </a>. . . . . . . . . . . . . . . . . . . . . . . 102<br/>
|
||
<a href="linuxs.html#102">14.6.2. Kommunikation zwischen Proxy-Cache-Servern </a>. . . . . . . . . 102<br/>
|
||
<a href="linuxs.html#103">14.7. Systemvoraussetzungen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 103<br/>
|
||
<a href="linuxs.html#103">14.8. SuSE Linux </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103<br/>
|
||
<a href="linuxs.html#103">14.9. Automatische Starten von Squit </a>. . . . . . . . . . . . . . . . . . . . . . 103<br/>
|
||
<a href="linuxs.html#103">14.10. Squiddateien </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103<br/>
|
||
<a href="linuxs.html#103">14.11. squid.conf </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103<br/>
|
||
<a href="linuxs.html#107">IV. Programmieren</a><br/>
|
||
107<br/>
|
||
<a href="linuxs.html#109">15. Bash</a><br/>
|
||
109<br/>
|
||
<a href="linuxs.html#109">15.1. Einleitung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br/>
|
||
<a href="linuxs.html#109">15.2. Referenz </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br/>
|
||
<a href="linuxs.html#110">15.3. Steuer und Sonderzeichen der Bash </a>. . . . . . . . . . . . . . . . . . . . 110<br/>
|
||
<a href="linuxs.html#111">16. git</a><br/>
|
||
111<br/>
|
||
<a href="linuxs.html#111">16.1. Dokumentation </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br/>
|
||
<a href="linuxs.html#111">16.2. Konfiguration </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br/>
|
||
<a href="linuxs.html#112">16.3. Konfigurationen über Umgebungsvariablen </a>. . . . . . . . . . . . . . . . 112<br/>
|
||
<a href="linuxs.html#112">16.4. Der Index </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112<br/>
|
||
<a href="linuxs.html#113">16.5. Repository </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br/>
|
||
9<br/>
|
||
<hr/>
|
||
<a name=10></a>Inhaltsverzeichnis<br/>
|
||
<a href="linuxs.html#113">16.6. Commit </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br/>
|
||
<a href="linuxs.html#113">16.7. Dateien entfernen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br/>
|
||
<a href="linuxs.html#113">16.8. Dateien verschieben </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br/>
|
||
<a href="linuxs.html#114">16.9. Änderung an einer Datei rückgängig machen </a>. . . . . . . . . . . . . . . 114<br/>
|
||
<a href="linuxs.html#114">16.10. Dateien ignorieren </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br/>
|
||
<a href="linuxs.html#114">16.11. Mit externen Repositorys arbeiten </a>. . . . . . . . . . . . . . . . . . . . 114<br/>
|
||
<a href="linuxs.html#115">16.12. Tags </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115<br/>
|
||
<a href="linuxs.html#115">16.13. Branch </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115<br/>
|
||
<a href="linuxs.html#116">16.14. Git Aliase </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br/>
|
||
<a href="linuxs.html#116">16.15. Git auf einen Server bekommen </a>. . . . . . . . . . . . . . . . . . . . . . 116<br/>
|
||
<a href="linuxs.html#116">16.16. Git auf dem SSH-Server einrichten </a>. . . . . . . . . . . . . . . . . . . . 116<br/>
|
||
<a href="linuxs.html#117">16.17. Öffentlicher Webserver-Zugang </a>. . . . . . . . . . . . . . . . . . . . . . 117<br/>
|
||
<a href="linuxs.html#118">16.18. Grundbegriffe </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br/>
|
||
<a href="linuxs.html#119">16.19. Verwendung von Git </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br/>
|
||
<a href="linuxs.html#121">17. C/C++</a><br/>
|
||
121<br/>
|
||
<a href="linuxs.html#121">17.1. Befehle und Grundelemente </a>. . . . . . . . . . . . . . . . . . . . . . . . 121<br/>
|
||
<a href="linuxs.html#121">17.2. Steuersequenzen für ANSI-Bildschirme - Innerhalb von Texten </a>. . . . . 121<br/>
|
||
<a href="linuxs.html#122">17.3. stdio.h -> Standard Ein- und Ausgabe </a>. . . . . . . . . . . . . . . . . . 122<br/>
|
||
<a href="linuxs.html#123">17.4. ctype.h </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br/>
|
||
<a href="linuxs.html#123">17.5. string.h </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br/>
|
||
<a href="linuxs.html#124">17.6. Kontrollstrukturen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br/>
|
||
<a href="linuxs.html#125">17.7. ASCII(American Standart Code for Information Interchange)-Tabelle </a>. 125<br/>
|
||
<a href="linuxs.html#126">17.7.1. Unterteilung der Steuerzeichen: </a>. . . . . . . . . . . . . . . . . . 126<br/>
|
||
<a href="linuxs.html#126">17.7.2. Bedeutung der Steuerzeichen: </a>. . . . . . . . . . . . . . . . . . . 126<br/>
|
||
<a href="linuxs.html#127">17.8. Operatoren und Ausdrücke </a>. . . . . . . . . . . . . . . . . . . . . . . . 127<br/>
|
||
<a href="linuxs.html#127">17.8.1. Arithmetische Operatoren: </a>. . . . . . . . . . . . . . . . . . . . 127<br/>
|
||
<a href="linuxs.html#127">17.8.2. Vergleichsoperatoren: </a>. . . . . . . . . . . . . . . . . . . . . . . 127<br/>
|
||
<a href="linuxs.html#127">17.8.3. Logische Operatoren: </a>. . . . . . . . . . . . . . . . . . . . . . . . 127<br/>
|
||
<a href="linuxs.html#128">17.8.4. Zuweisungsoperatoren: </a>. . . . . . . . . . . . . . . . . . . . . . . 128<br/>
|
||
<a href="linuxs.html#128">17.8.5. Post- und Prefix- Operatoren: </a>. . . . . . . . . . . . . . . . . . . 128<br/>
|
||
<a href="linuxs.html#128">17.8.6. Zeigeroperatoren: </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 128<br/>
|
||
<a href="linuxs.html#128">17.8.7. Diverse Kategorien: </a>. . . . . . . . . . . . . . . . . . . . . . . . 128<br/>
|
||
<a href="linuxs.html#129">17.9. Inkrementieren und Dekrementieren </a>. . . . . . . . . . . . . . . . . . . 129<br/>
|
||
<a href="linuxs.html#129">17.10. Wertebereich und Genauigkeit elementarer Datentypen </a>. . . . . . . . . 129<br/>
|
||
<a href="linuxs.html#129">17.11. Variableninitialisierung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br/>
|
||
<a href="linuxs.html#130">17.12. Konstanten </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br/>
|
||
<a href="linuxs.html#130">17.12.1. Ganzzahlkonstanten </a>. . . . . . . . . . . . . . . . . . . . . . . . 130<br/>
|
||
<a href="linuxs.html#130">17.12.2. Gleitkommakonstanten </a>. . . . . . . . . . . . . . . . . . . . . . 130<br/>
|
||
<a href="linuxs.html#130">17.12.3. Zeichen- und Zeichenkettenkonstanten </a>. . . . . . . . . . . . . . 130<br/>
|
||
<a href="linuxs.html#131">18. Tcl/Tk</a><br/>
|
||
131<br/>
|
||
<a href="linuxs.html#133">19. Perl</a><br/>
|
||
133<br/>
|
||
10<br/>
|
||
<hr/>
|
||
<a name=11></a>Inhaltsverzeichnis<br/>
|
||
<a href="linuxs.html#135">20. CGI+Perl</a><br/>
|
||
135<br/>
|
||
<a href="linuxs.html#135">20.1. Einleitung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br/>
|
||
<a href="linuxs.html#135">20.2. Perl </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br/>
|
||
<a href="linuxs.html#135">20.2.1. Texte und Strings </a>. . . . . . . . . . . . . . . . . . . . . . . . . 135<br/>
|
||
<a href="linuxs.html#135">20.2.2. Rechenoperationen </a>. . . . . . . . . . . . . . . . . . . . . . . . . 135<br/>
|
||
<a href="linuxs.html#136">20.2.3. Arrays (Listen) </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br/>
|
||
<a href="linuxs.html#136">20.2.4. String- und Zahlenvergleichsoperratoren </a>. . . . . . . . . . . . . 136<br/>
|
||
<a href="linuxs.html#136">20.2.5. if-Bedingung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br/>
|
||
<a href="linuxs.html#136">20.2.6. if-else-Bedingung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 136<br/>
|
||
<a href="linuxs.html#137">20.2.7. if-elseif-Bedingung </a>. . . . . . . . . . . . . . . . . . . . . . . . . 137<br/>
|
||
<a href="linuxs.html#137">20.3. Funktionen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137<br/>
|
||
<a href="linuxs.html#137">20.3.1. String Funktionen </a>. . . . . . . . . . . . . . . . . . . . . . . . . 137<br/>
|
||
<a href="linuxs.html#137">20.3.2. Rechen Funktionen </a>. . . . . . . . . . . . . . . . . . . . . . . . . 137<br/>
|
||
<a href="linuxs.html#137">20.3.3. Array Funktionen </a>. . . . . . . . . . . . . . . . . . . . . . . . . 137<br/>
|
||
<a href="linuxs.html#139">21. Java</a><br/>
|
||
139<br/>
|
||
<a href="linuxs.html#139">21.1. Funktion von Java </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br/>
|
||
<a href="linuxs.html#139">21.2. Sprache und Syntax von Java </a>. . . . . . . . . . . . . . . . . . . . . . . 139<br/>
|
||
<a href="linuxs.html#139">21.2.1. Kommentrare </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br/>
|
||
<a href="linuxs.html#139">21.2.2. Datentypen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br/>
|
||
<a href="linuxs.html#140">21.2.3. Variablen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br/>
|
||
<a href="linuxs.html#140">21.3. Pakete und Verzeichnisstrukturen </a>. . . . . . . . . . . . . . . . . . . . . 140<br/>
|
||
<a href="linuxs.html#140">21.3.1. Sichtbarkeit und Zugriffsrechte von Klassen und Methoden </a>. . 140<br/>
|
||
<a href="linuxs.html#140">21.3.2. Klassen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br/>
|
||
<a href="linuxs.html#141">21.3.3. Konstruktoren und Destruktoren </a>. . . . . . . . . . . . . . . . . 141<br/>
|
||
<a href="linuxs.html#141">21.3.4. Methoden überladen </a>. . . . . . . . . . . . . . . . . . . . . . . . 141<br/>
|
||
<a href="linuxs.html#141">21.3.5. Objekte </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br/>
|
||
<a href="linuxs.html#142">21.3.6. Vererbung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142<br/>
|
||
<a href="linuxs.html#142">21.3.7. Schnittstellen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 142<br/>
|
||
<a href="linuxs.html#142">21.4. Elementare Syntax von Java </a>. . . . . . . . . . . . . . . . . . . . . . . . 142<br/>
|
||
<a href="linuxs.html#142">21.4.1. Operratoren </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142<br/>
|
||
<a href="linuxs.html#142">21.4.2. Verknüpfungsoperatoren </a>. . . . . . . . . . . . . . . . . . . . . . 142<br/>
|
||
<a href="linuxs.html#142">21.4.3. Inkrement-Operator </a>. . . . . . . . . . . . . . . . . . . . . . . . 142<br/>
|
||
<a href="linuxs.html#143">21.4.4. Dekrement-Operator </a>. . . . . . . . . . . . . . . . . . . . . . . . 143<br/>
|
||
<a href="linuxs.html#143">21.4.5. Arithmetische Zuweisungsoperatoren </a>. . . . . . . . . . . . . . . 143<br/>
|
||
<a href="linuxs.html#143">21.4.6. Bedingungen und Entscheidungen </a>. . . . . . . . . . . . . . . . 143<br/>
|
||
<a href="linuxs.html#143">21.4.7. if - else - Bedingungen </a>. . . . . . . . . . . . . . . . . . . . . . . 143<br/>
|
||
<a href="linuxs.html#143">21.4.8. Verschachtelte Bedingungen </a>. . . . . . . . . . . . . . . . . . . . 143<br/>
|
||
<a href="linuxs.html#144">21.4.9. Fallunterscheidung mit switch - case </a>. . . . . . . . . . . . . . . 144<br/>
|
||
<a href="linuxs.html#144">21.5. Schleifen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br/>
|
||
<a href="linuxs.html#144">21.5.1. Die while - Schleife </a>. . . . . . . . . . . . . . . . . . . . . . . . . 144<br/>
|
||
<a href="linuxs.html#144">21.5.2. Die do - while - Schleife </a>. . . . . . . . . . . . . . . . . . . . . . 144<br/>
|
||
<a href="linuxs.html#144">21.5.3. Die for - Schleife </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 144<br/>
|
||
<a href="linuxs.html#144">21.5.4. Schleifen mit break verlassen </a>. . . . . . . . . . . . . . . . . . . 144<br/>
|
||
<a href="linuxs.html#144">21.5.5. Schleife mit continue wiederholen </a>. . . . . . . . . . . . . . . . . 144<br/>
|
||
11<br/>
|
||
<hr/>
|
||
<a name=12></a>Inhaltsverzeichnis<br/>
|
||
<a href="linuxs.html#145">21.6. Komplexe Datentypen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br/>
|
||
<a href="linuxs.html#145">21.6.1. Arrays </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br/>
|
||
<a href="linuxs.html#145">21.7. Die Anweisung import </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br/>
|
||
<a href="linuxs.html#145">21.8. Java eigene Klassen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br/>
|
||
<a href="linuxs.html#145">21.8.1. Die Klasse Math </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 145<br/>
|
||
<a href="linuxs.html#145">21.9. Die Klasse Object </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br/>
|
||
<a href="linuxs.html#145">21.9.1. Die Klasse Object </a>. . . . . . . . . . . . . . . . . . . . . . . . . 145<br/>
|
||
<a href="linuxs.html#146">21.10. Die Klasse Runtime </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br/>
|
||
<a href="linuxs.html#146">21.11. Die Klasse String </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br/>
|
||
<a href="linuxs.html#146">21.12. Die Klasse Stringbuffer </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br/>
|
||
<a href="linuxs.html#146">21.12.1. Die Klasse Stringbuffer </a>. . . . . . . . . . . . . . . . . . . . . . 146<br/>
|
||
<a href="linuxs.html#146">21.13. Die Klasse System </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br/>
|
||
<a href="linuxs.html#146">21.14. Das Paket java.util </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br/>
|
||
<a href="linuxs.html#147">21.14.1. Die Klasse Date </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 147<br/>
|
||
<a href="linuxs.html#147">21.14.2. Die Klasse Random </a>. . . . . . . . . . . . . . . . . . . . . . . . 147<br/>
|
||
<a href="linuxs.html#147">21.14.3. Die Klasse Stack </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 147<br/>
|
||
<a href="linuxs.html#147">21.15. Ausnahmen (Exceptions) </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 147<br/>
|
||
<a href="linuxs.html#148">21.15.1. Eigene Ausnahme erzeugen (throw) </a>. . . . . . . . . . . . . . . 148<br/>
|
||
<a href="linuxs.html#148">21.16. Multitasking mit Threads </a>. . . . . . . . . . . . . . . . . . . . . . . . . 148<br/>
|
||
<a href="linuxs.html#148">21.16.1. Arbeiten mit Threads </a>. . . . . . . . . . . . . . . . . . . . . . . 148<br/>
|
||
<a href="linuxs.html#149">21.17. Applets </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149<br/>
|
||
<a href="linuxs.html#149">21.17.1. Applets in eine Webseite einbinden </a>. . . . . . . . . . . . . . . . 149<br/>
|
||
<a href="linuxs.html#149">21.17.2. Das erste Java Applet </a>. . . . . . . . . . . . . . . . . . . . . . . 149<br/>
|
||
<a href="linuxs.html#149">21.17.3. Die Methoden eines Applets </a>. . . . . . . . . . . . . . . . . . . . 149<br/>
|
||
<a href="linuxs.html#149">21.17.4. Ein Applet im Überblick </a>. . . . . . . . . . . . . . . . . . . . . . 149<br/>
|
||
<a href="linuxs.html#150">21.17.5. Pakete </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br/>
|
||
<a href="linuxs.html#150">21.17.6. Die Klasse Graphics </a>. . . . . . . . . . . . . . . . . . . . . . . . 150<br/>
|
||
<a href="linuxs.html#150">21.17.7. Die Klasse Color </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 150<br/>
|
||
<a href="linuxs.html#151">21.17.8. Die Klasse Font </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 151<br/>
|
||
<a href="linuxs.html#151">21.17.9. Die Klasse Image </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 151<br/>
|
||
<a href="linuxs.html#151">21.17.10. Die Klasse Button </a>. . . . . . . . . . . . . . . . . . . . . . . . . 151<br/>
|
||
<a href="linuxs.html#152">21.18. Eventhandling </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152<br/>
|
||
<a href="linuxs.html#152">21.18.1. Mouse Events </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 152<br/>
|
||
<a href="linuxs.html#152">21.18.2. Action Events </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 152<br/>
|
||
<a href="linuxs.html#152">21.18.3. Parameter an ein Applet </a>. . . . . . . . . . . . . . . . . . . . . . 152<br/>
|
||
<a href="linuxs.html#153">21.18.4. Weitere wichtige Pakete </a>. . . . . . . . . . . . . . . . . . . . . . 153<br/>
|
||
<a href="linuxs.html#155">22. JavaScript</a><br/>
|
||
155<br/>
|
||
<a href="linuxs.html#155">22.1. Einbindung von JavaScript </a>. . . . . . . . . . . . . . . . . . . . . . . . 155<br/>
|
||
<a href="linuxs.html#155">22.1.1. Einbindung in den Head </a>. . . . . . . . . . . . . . . . . . . . . . 155<br/>
|
||
<a href="linuxs.html#155">22.1.2. Einbindung in den Body </a>. . . . . . . . . . . . . . . . . . . . . . 155<br/>
|
||
<a href="linuxs.html#155">22.1.3. Ausführen bei bestimmten Aktionen </a>. . . . . . . . . . . . . . . 155<br/>
|
||
<a href="linuxs.html#156">22.2. Variablen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156<br/>
|
||
<a href="linuxs.html#156">22.3. Objekte </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156<br/>
|
||
<a href="linuxs.html#156">22.3.1. Standardobjekte </a>. . . . . . . . . . . . . . . . . . . . . . . . . . 156<br/>
|
||
12<br/>
|
||
<hr/>
|
||
<a name=13></a>Inhaltsverzeichnis<br/>
|
||
<a href="linuxs.html#157">22.3.2. String-Objekt </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br/>
|
||
<a href="linuxs.html#158">22.3.3. Eigene Objekte </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . 158<br/>
|
||
<a href="linuxs.html#158">22.3.4. Arrays </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158<br/>
|
||
<a href="linuxs.html#158">22.4. Mathematische Operationen </a>. . . . . . . . . . . . . . . . . . . . . . . . 158<br/>
|
||
<a href="linuxs.html#158">22.5. Bedingte Ausführung </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 158<br/>
|
||
<a href="linuxs.html#158">22.6. Schleifen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158<br/>
|
||
<a href="linuxs.html#159">22.7. Event-Handler </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159<br/>
|
||
<a href="linuxs.html#159">22.8. Funktionen </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159<br/>
|
||
<a href="linuxs.html#160">22.9. Reservierte Wörter </a>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160<br/>
|
||
<a href="linuxs.html#163">V. Anhang</a><br/>
|
||
163<br/>
|
||
<a href="linuxs.html#165">23. Glossar</a><br/>
|
||
165<br/>
|
||
<a href="linuxs.html#167">Stichwortverzeichnis</a><br/>
|
||
168<br/>
|
||
13<br/>
|
||
<hr/>
|
||
<a name=14></a><hr/>
|
||
<a name=15></a>Teil I.<br/>
|
||
Linux<br/>
|
||
15<br/>
|
||
<hr/>
|
||
<a name=16></a><hr/>
|
||
<a name=17></a>2. Linux<br/>
|
||
2.1. Was ist Linux?<br/>
|
||
Der Kernel, eine Schnittstelle für die Software zur Hardware.<br/>
|
||
2.2. Kernel und Module<br/>
|
||
http://www.kernel.org/<br/>
|
||
http-Adresse für den Kernel und Kernel-Patches<br/>
|
||
http://www.de.kernel.org/pub/linux/kernel/<br/>
|
||
Spiegel für den Kernel<br/>
|
||
2.2.1. Kernel 2.4<br/>
|
||
tar xvfj kernel.tar.bz2<br/>
|
||
entpackt den Kernel<br/>
|
||
tar xvfz kernel.tar.gz<br/>
|
||
entpackt den Kernel<br/>
|
||
cd kernel<br/>
|
||
Verzeichnis wechseln<br/>
|
||
bzip2 -dc ../patch-2.x.xx.bz2 | patch -p1<br/>
|
||
Kernel patchen<br/>
|
||
gzip -dc ../patch-2.x.xx.gz | patch -p1<br/>
|
||
Kernel patchen<br/>
|
||
zcat /proc/config.gz > /usr/src/linux/.config<br/>
|
||
die aktuelle Konfiguration des<br/>
|
||
laufenden Kernels auslesen<br/>
|
||
make menuconfig<br/>
|
||
Kernelkonfiguration im Textmodus<br/>
|
||
make dep<br/>
|
||
aktualisiert die Abhängigkeiten<br/>
|
||
make clean<br/>
|
||
löscht die temporären Dateien und Ausgabedateien<br/>
|
||
make zImage<br/>
|
||
übersetzt und komprimiert den Kernel<br/>
|
||
make bzImage<br/>
|
||
übersetzt und komprimiert den gossen Kernel<br/>
|
||
make dep clean zImage<br/>
|
||
aktualisiert,löscht und übersetzt<br/>
|
||
make modules<br/>
|
||
übersetzt Module<br/>
|
||
make modules_install<br/>
|
||
installiert Module<br/>
|
||
make zlilo<br/>
|
||
installiert den Kernel und den Boot-Loader LILO<br/>
|
||
make bzlilo<br/>
|
||
installiert den gossen Kernel und<br/>
|
||
den Boot-Loader LILO<br/>
|
||
make zdisk<br/>
|
||
erzeugt eine Bootdiskette mit dem neuen Kernel<br/>
|
||
make mrproper<br/>
|
||
löscht alle erzeugten Dateien,<br/>
|
||
auch die Konfiguration<br/>
|
||
2.2.2. Kernel 2.6 (Debian 4.0 etch)<br/>
|
||
sudo apt-get update<br/>
|
||
Paket-Datenbank aktualisieren<br/>
|
||
sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 \<br/>
|
||
17<br/>
|
||
<hr/>
|
||
<a name=18></a>2. Linux<br/>
|
||
build-essential<br/>
|
||
benötigte Pakete installieren<br/>
|
||
cd /usr/src<br/>
|
||
in das Verzeichnis zu den Quell-Paketen wechseln<br/>
|
||
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2<br/>
|
||
den aktuellen Kernel downloaden<br/>
|
||
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2.sign<br/>
|
||
die dazugehörige Signatur downloaden<br/>
|
||
gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0x517D0F0E<br/>
|
||
Public-Key vom Key-Server holen<br/>
|
||
gpg --verify linux-2.6.22.1.tar.bz2.sign<br/>
|
||
Kernel-Signatur überprüfen<br/>
|
||
tar xvfj linux-2.6.22.1.tar.bz2 Kernel entpacken<br/>
|
||
ln -s linux-2.6.22.1 linux<br/>
|
||
Soft-Link zu den Kernel-Quellen anlegen<br/>
|
||
cd /usr/src/linux<br/>
|
||
zu den aktuellen Kernel-Quellen wechseln<br/>
|
||
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run<br/>
|
||
Aktualisieren prüfen<br/>
|
||
bzip2 -dc /usr/src/patch.bz2 | patch -p1<br/>
|
||
Kernel-Quellen aktualisieren wenn nötig<br/>
|
||
make clean && make mrproper<br/>
|
||
Kernel säubern und korigieren<br/>
|
||
cp /boot/config-‘uname -r‘ ./.config<br/>
|
||
laufende Konfiguration holen<br/>
|
||
make menuconfig<br/>
|
||
Konfigurations-Programm starten<br/>
|
||
Load an Alternate Configuration File<br/>
|
||
laufende Konfiguration laden und Kernel<br/>
|
||
konfigurieren<br/>
|
||
make-kpkg clean<br/>
|
||
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image \<br/>
|
||
kernel_headers<br/>
|
||
Kernel-Pakete und Kernel-Headers herstellen<br/>
|
||
sudo dpkg -i linux-image-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb<br/>
|
||
den neuen Kernel installieren<br/>
|
||
sudo dpkg -i linux-headers-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb<br/>
|
||
die neuen Header installieren<br/>
|
||
sudo shutdown -r now<br/>
|
||
Neustart um den Kernel zu testen<br/>
|
||
uname -a<br/>
|
||
feststellen welcher Kernel gestartet ist<br/>
|
||
dmesg<br/>
|
||
Kernelmeldungen vom letzten Start anzeigen<br/>
|
||
insmod Modul<br/>
|
||
Modul laden<br/>
|
||
modprobe Modul<br/>
|
||
Modul eigenständig laden<br/>
|
||
lsmod<br/>
|
||
geladene Module anzeigen lassen<br/>
|
||
rmmod Modul<br/>
|
||
Modul entfernen<br/>
|
||
18<br/>
|
||
<hr/>
|
||
<a name=19></a>3. Befehle<br/>
|
||
3.1. Standartein-aus-gabe<br/>
|
||
Jedes UNIX kennt 3 spezielle Files:<br/>stdin<br/>
|
||
Standardeingabe, normalerweise die Tastatur<br/>
|
||
stdout<br/>
|
||
Standardausgabe, normalerweise der Bildschirm<br/>
|
||
stderr<br/>
|
||
Standardausgabe für Fehlermeldungen,<br/>
|
||
normalerweise der Bildschirm<br/>
|
||
All diese Files können umgelenkt werden<br/>
|
||
setterm -blank 0<br/>
|
||
Bildschirmschoner ausschalten<br/>
|
||
3.2. Anmelden und Abmelden<br/>
|
||
login: Benutzername<br/>
|
||
1. zum Anmelden den Benutzernamen eingeben<br/>
|
||
Passwort: Benutzerpasswort<br/>
|
||
2. zum Anmelden das Benutzerpasswort eingeben<br/>
|
||
logout<br/>
|
||
zum Abmelden eingeben<br/>
|
||
exit<br/>
|
||
zum Abmelden eingeben<br/>
|
||
[Strg]+[d]<br/>
|
||
beendet die Shell (alle Shells)<br/>
|
||
3.3. Anhalten des Systems und Booten<br/>
|
||
Unter keinen Umständen darf während des Betriebs einfach der Strom abgeschaltet<br/>
|
||
oder der Resetknopf betätigt werden. Da es sonst zu einer Beschädigung des Dateisy-<br/>
|
||
stems mit Datenverlust kommen kann.<br/>
|
||
root: shutdown -h now<br/>
|
||
hält das System an<br/>
|
||
root: halt<br/>
|
||
hält das System an<br/>
|
||
root: init 0<br/>
|
||
hält das System an<br/>
|
||
root: systemctl poweroff<br/>
|
||
hält das System an<br/>
|
||
root: shutdown -r now<br/>
|
||
startet den Computer nach dem Herunterfahren neu<br/>
|
||
root: reboot<br/>
|
||
startet den Computer nach dem Herunterfahren neu<br/>
|
||
root: init 6<br/>
|
||
startet den Computer nach dem Herunterfahren neu<br/>
|
||
root: systemctl reboot<br/>
|
||
startet den Computer nach dem Herunterfahren neu<br/>
|
||
root: systemctl suspend<br/>
|
||
Bereitschaft<br/>
|
||
root: systemctl hibernate<br/>
|
||
Ruhezustand<br/>
|
||
19<br/>
|
||
<hr/>
|
||
<a name=20></a>3. Befehle<br/>
|
||
3.4. Die Runlevel<br/>
|
||
root: init 0<br/>
|
||
Systemhalt<br/>
|
||
root: init S<br/>
|
||
Einzelbenutzerbetrieb (Single User Mode)<br/>
|
||
root: init 1<br/>
|
||
Einzelbenutzerbetrieb (Single User Mode)<br/>
|
||
root: init 2<br/>
|
||
Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk<br/>
|
||
(Local multiuser without remote network)<br/>
|
||
root: init 3<br/>
|
||
Voller Mehrbenutzerbetrieb mit Netzwerk<br/>
|
||
(Full multiuser with network)<br/>
|
||
root: init 4<br/>
|
||
Frei (Not used)<br/>
|
||
root: init 5<br/>
|
||
Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM<br/>
|
||
(Full multiuser with network and xdm)<br/>
|
||
root: init 6<br/>
|
||
Systemneustart (System reboot)<br/>
|
||
root: init q<br/>
|
||
Quit zum Neueinlesen der inittab<br/>
|
||
3.4.1. Upstart (Systemstart)<br/>
|
||
Upstart sorgt dafür das Dienste ereignisbasiert parallel gestartet werden können /etc/inittab<br/>
|
||
entfällt neu /etc/init/ (bzw. /etc/event.d/)<br/>
|
||
initctl list<br/>
|
||
zeigt eine Liste aller Init-Scripte an<br/>
|
||
initctl [start|stop] Init-Script<br/>
|
||
startet oder beendet ein Script<br/>
|
||
initctl reload-configuration<br/>
|
||
Konfiguration der Scripte neu einlesen<br/>
|
||
service Init-Script [start|stop]<br/>
|
||
startet oder beendet ein Script<br/>
|
||
Im Header der Datei kann dann zum Starten und Beenden flogendes stehen:<br/>
|
||
start on runlevel [2345]<br/>
|
||
stop on runlevel [!2345]<br/>
|
||
3.5. SuSE-Linux<br/>
|
||
hilfe<br/>
|
||
Hilfesystem starten<br/>
|
||
yast<br/>
|
||
Yet another Setup Tool -<br/>
|
||
SuSE Administrationstool<br/>
|
||
yast2<br/>
|
||
Yet another Setup Tool 2 -<br/>
|
||
SuSE Administrationstool<br/>
|
||
SuSEconfig<br/>
|
||
das Skript muss aufgerufen werden<br/>
|
||
nachdem die /etc/rc.config und /etc/sysconfig/<br/>
|
||
von Hand verändert wurden<br/>
|
||
3.6. Zur Orientierung auf einem UNIX-Rechner<br/>
|
||
date<br/>
|
||
zeigt Datum und Uhrzeit an<br/>
|
||
20<br/>
|
||
<hr/>
|
||
<a name=21></a>3.7. Datum und Uhrzeit<br/>
|
||
df -k<br/>
|
||
zeigt den feien Platten-Platz in kB an<br/>
|
||
df -m<br/>
|
||
zeigt den feien Platten-Platz in MB an<br/>
|
||
df -h<br/>
|
||
Ausgabe von Größen in Menschen-lesbarem Format<br/>
|
||
du -h<br/>
|
||
zeigt wie viel Platten-Platz in kB bestimmte Dateien einnehmen<br/>
|
||
echo Text<br/>
|
||
schreibt den Text auf stdout (Bildschirm)<br/>
|
||
finger<br/>
|
||
zeigt Infos über eingeloggte Benutzer an<br/>
|
||
finger -l<br/>
|
||
zeigt ausführliche Infos über eingeloggte Benutzer an<br/>
|
||
free -t<br/>
|
||
zeigt den feien Arbeitsspeicher in kB an<br/>
|
||
last<br/>
|
||
zeigt wer sich zuletzt von wo aus auf dem Rechner eingeloggt hat<br/>
|
||
info Begriff<br/>
|
||
Hilfe zu dem Begriff im Infoformat<br/>
|
||
man Begriff<br/>
|
||
Hilfe zu dem Begriff<br/>
|
||
man -a Begriff alle Kapitel zu dem Begriff<br/>
|
||
man -f Begriff listet die gefundenen Seiten zu dem Begriff auf<br/>
|
||
man -k Begriff listet die Seiten in dem der Begriff vorkommt auf<br/>
|
||
man n Begriff<br/>
|
||
Hilfe zum Begriff mit der Sektion n<br/>
|
||
Die Manual-Pages sind auf verschiedene Sektionen aufgeteilt:<br/>
|
||
1 Shell-Kommandos<br/>
|
||
2 System-Aufrufe<br/>
|
||
3 Funktionen - C-Bibliotheksfunktionen.<br/>
|
||
4 Die Beschreibung von Konfigurationsdateien.<br/>
|
||
5 Die Syntax wichtiger Dateien.<br/>
|
||
6 Beschreibung von Spielen.<br/>
|
||
7 Alles was mit Text, Textformatierung und anderen Formaten zu<br/>
|
||
tun hat.<br/>
|
||
8 Die Befehle des Systemverwalters.<br/>
|
||
9 Die Beschreibung der Linux-Kernelroutinen.<br/>
|
||
n n kommt angeblich von neu, hier sind sonstige Manual-Pages<br/>
|
||
aufgeführt, die in eine der oberen Sektionen gehören, aber<br/>
|
||
traditionell hier stehen oder zu keiner Sektion genau passen.<br/>
|
||
pwd<br/>
|
||
Ausgabe des aktuellen Verzeichnisses<br/>
|
||
w<br/>
|
||
wer ist da und was ist los<br/>
|
||
whatis Befehl<br/>
|
||
zeigt Kurzerklärung eines Befehls<br/>
|
||
which Befehl<br/>
|
||
zeigt, wo Executable liegt, und eventual alias<br/>
|
||
who<br/>
|
||
zeigt Liste aller eingeloggten Benutzer<br/>
|
||
whoami<br/>
|
||
zeigt, wem die Shell gehört<br/>
|
||
3.7. Datum und Uhrzeit<br/>
|
||
date<br/>
|
||
Datum und Uhrzeit abfragen<br/>
|
||
date -s ’2000-01-29 20:00:00’ +’%Y-%m-%d %T’<br/>
|
||
Datum und Uhrzeit einstellen<br/>
|
||
netdate Rechnername<br/>
|
||
Datum und Uhrzeit vom Rechner-<br/>
|
||
name holen<br/>
|
||
clock -u -w<br/>
|
||
Datum und Uhrzeit in<br/>
|
||
das BIOS schreiben<br/>
|
||
21<br/>
|
||
<hr/>
|
||
<a name=22></a>3. Befehle<br/>
|
||
timedatectl set-local-rtc 1<br/>
|
||
locale Zeit einstellen<br/>
|
||
timedatectl set-local-rtc 0<br/>
|
||
UTC Zeit einstellen<br/>
|
||
3.8. Auflisten<br/>
|
||
ls<br/>
|
||
Auflisten der Dateien im aktuellen Verzeichnis<br/>
|
||
ls Verzeichnis<br/>
|
||
Inhalt des Verzeichnisses ausgeben<br/>
|
||
ls -la<br/>
|
||
alles Auflisten im aktuellen Verzeichnis<br/>
|
||
ls -laFi<br/>
|
||
alles ausführlicher Auflisten<br/>
|
||
ls | paste - - - -<br/>
|
||
Dateien vierspaltig ausgeben<br/>
|
||
ls -1<br/>
|
||
untereinander ausgeben<br/>
|
||
ls -F<br/>
|
||
Verzeichnisse mit angehängtem / markieren<br/>
|
||
ls -i<br/>
|
||
inode-Nummer mit ausgeben<br/>
|
||
ls -R<br/>
|
||
alle Unterverzeichnisse mit ausgeben<br/>
|
||
ls -r<br/>
|
||
Auflisten der Dateien umkehren<br/>
|
||
3.9. Dateinamen<br/>
|
||
UNIX unterscheidet Groß- und Kleinschreibung! liesmich, Liesmich, LIESMICH sind<br/>
|
||
verschiedene Dateinamen! max. 256 Zeichen, alle Zeichen sind erlaubt . am Namens-<br/>
|
||
anfang versteckt Datei vor ls, cp, rm, mv<br/>
|
||
alias<br/>
|
||
gibt alle definierten Kurznamen aus<br/>
|
||
alias la=’ls -la’<br/>
|
||
definiert Kurznamen für ein Kommando<br/>
|
||
aus ls -la wird ein la<br/>
|
||
3.10. Dateiendungen<br/>
|
||
.a<br/>
|
||
Objektbibliotheken<br/>
|
||
.c<br/>
|
||
C-Quelltextdatei<br/>
|
||
.cpp<br/>
|
||
C++-Quellen<br/>
|
||
.o<br/>
|
||
Objektdatei<br/>
|
||
.p<br/>
|
||
Pascal-Quellen<br/>
|
||
.s<br/>
|
||
Assembler<br/>
|
||
3.11. Infos über Files<br/>
|
||
file Datei<br/>
|
||
Anzeige des Dateitypes<br/>
|
||
wc -lwc Datei<br/>
|
||
Ausgabe der Zeilen, Worte und Buchstaben der Datei<br/>
|
||
ls -a | wc -l<br/>
|
||
alle Dateien im aktuellen Verzeichnis zählen<br/>
|
||
22<br/>
|
||
<hr/>
|
||
<a name=23></a>3.12. Arbeiten(Verwüstungen) im und am Filesystem<br/>
|
||
3.12. Arbeiten(Verwüstungen) im und am Filesystem<br/>
|
||
cd Pfad<br/>
|
||
Verzeichnis wechseln<br/>
|
||
mkdir Name<br/>
|
||
Verzeichnis erzeugen<br/>
|
||
mkdir -p Name<br/>
|
||
Verzeichnis erzeugen, fehlende Verzeichnisse mit anlegen<br/>
|
||
3.13. Kopieren und Verschieben<br/>
|
||
cp Dateien Ziel<br/>
|
||
Dateien kopieren<br/>
|
||
cp -i Dateien Ziel<br/>
|
||
Dateien kopieren, vor dem Überschreiben<br/>
|
||
einer Datei nachfragen<br/>
|
||
cp -R Quelle* Ziel<br/>
|
||
gesamten Inhalt eines Verzeichnises kopieren<br/>
|
||
mv Quelle Ziel<br/>
|
||
Datei verschieben oder umbenennen<br/>
|
||
mv -f Quelle Ziel<br/>
|
||
Schreibgeschützte Datei verschieben oder umbenennen<br/>
|
||
mv -i Quelle Ziel<br/>
|
||
Datei verschieben oder umbenennen,<br/>
|
||
vor dem Überschreiben nachfragen<br/>
|
||
ln Quelle Ziel<br/>
|
||
Verknüpfung erzeugen (Hardlink),<br/>
|
||
beide Dateien haben die gleiche inode<br/>
|
||
ln -s Quelle Ziel<br/>
|
||
Verknüpfung erzeugen (Softlink)<br/>
|
||
ln -sf Quelle Ziel<br/>
|
||
Verknüpfung erzeugen (Softlink)<br/>
|
||
ohne Rückfrage überschreiben<br/>
|
||
3.14. Löschen<br/>
|
||
rm Datei<br/>
|
||
löschen von Daten<br/>
|
||
rm -r Dateien<br/>
|
||
löschen von Dateien mit Verzeichnissen<br/>
|
||
rmdir Verzeichnis<br/>
|
||
löscht Verzeichnis wenn es leer ist,<br/>
|
||
überflüssig rm -r geht auch<br/>
|
||
3.15. Ausgeben<br/>
|
||
cat Datei<br/>
|
||
Inhalt der Datei auf dem Bildschirm ausgeben<br/>
|
||
cat Datei1 Datei2 > Datei3<br/>
|
||
Dateien1+2 zusammenfügen in die Datei3 schreiben<br/>
|
||
strings Datei<br/>
|
||
Druckbare Zeichen der Datei ausgeben<br/>
|
||
more Datei<br/>
|
||
Datei seitenweise ausgeben<br/>
|
||
less Datei<br/>
|
||
Datei ausgeben und mit den Curser scrollen<br/>
|
||
j eine Zeile weiter<br/>
|
||
k eine Zeile zurück<br/>
|
||
u halbe Seite zurück<br/>
|
||
/Text sucht den Text<br/>
|
||
q less verlassen<br/>
|
||
nl Datei<br/>
|
||
Datei mit Zeilennummern ausgeben<br/>
|
||
tail Datei<br/>
|
||
zeigt die letzten 10 Zeilen einer Datei an<br/>
|
||
23<br/>
|
||
<hr/>
|
||
<a name=24></a>3. Befehle<br/>
|
||
tail -n Datei<br/>
|
||
zeigt die letzten n Zeilen einer Datei an<br/>
|
||
tail -f Datei<br/>
|
||
zeigt ständig die letzten 10 Zeilen der Datei an<br/>
|
||
tail -f /var/log/messages<br/>
|
||
Systemmeldungen mitverfolgen<br/>
|
||
head Datei<br/>
|
||
zeigt die ersten 10 Zeilen einer Datei an<br/>
|
||
head -n Datei<br/>
|
||
zeigt die ersten n Zeilen einer Datei an<br/>
|
||
od -b Datei<br/>
|
||
Datei oktal ausgeben<br/>
|
||
od -c Datei<br/>
|
||
Datei als ASCII ausgeben<br/>
|
||
od -x Datei<br/>
|
||
Datei hexadezimal ausgeben<br/>
|
||
ls | paste - - - -<br/>
|
||
Dateien vierspaltig ausgeben<br/>
|
||
recode ibmpc:lat1 Datei<br/>
|
||
Konvertierung der Datei<br/>
|
||
7 Bit DOS in das UNICODE/8 Bit Format<br/>
|
||
3.16. Der Texteditor vi/vim<br/>
|
||
vi<br/>
|
||
Editor vi aufrufen<br/>
|
||
vi Datei<br/>
|
||
Editor vi aufrufen und Datei öffnen<br/>
|
||
vi -r<br/>
|
||
swap-Dateien anzeigen<br/>
|
||
vi -r Datei<br/>
|
||
Datei nach einem Stromausfall (oder Absturz) wieder herstellen<br/>
|
||
vi -R Datei<br/>
|
||
Datei schreibgeschützt öffnen<br/>
|
||
3.17. Suchen nach Dateien<br/>
|
||
find Pfad Bedingung<br/>
|
||
nach Dateien suchen<br/>
|
||
find Pfad | grep name<br/>
|
||
nach Dateien suchen, hat sich bewährt<br/>
|
||
find Pfad -name .profile<br/>
|
||
nach dem Dateinamen .profile suchen<br/>
|
||
find Pfad -user higi<br/>
|
||
nach Dateien die dem Benutzer<br/>
|
||
higi gehören suchen<br/>
|
||
find Pfad -size +1024c<br/>
|
||
nach Dateien die größer als 1024 Bytes<br/>
|
||
sind suchen<br/>
|
||
find Pfad -atime +7<br/>
|
||
nach Dateien suchen die älter als 7 Tage sind<br/>
|
||
find Pfad -print<br/>
|
||
alle Dateien im Pfad ausgeben<br/>
|
||
find -name *.txt<br/>
|
||
alle Dateien im aktuellen Pfad<br/>
|
||
mit der Endung .txt ausgeben<br/>
|
||
find / -size +16000000c<br/>
|
||
alle Dateien die mehr als 16MB haben ausgeben<br/>
|
||
find / -fstype msdos -name *.zip<br/>
|
||
sucht auf MS-DOS-Partition nach *.zip<br/>
|
||
find / -fstype vfat -name *.txt<br/>
|
||
sucht auf Windows-Partition nach *.txt<br/>
|
||
3.18. Suchen in Dateien<br/>
|
||
grep Ausdruck Datei<br/>
|
||
sucht nach dem Ausdruck in der Datei<br/>
|
||
grep -c Ausdruck Datei<br/>
|
||
Anzahl der Zeilen, die den Begriff<br/>
|
||
enthalten ausgeben<br/>
|
||
grep -i Ausdruck Datei<br/>
|
||
große und kleine Buchstaben nicht unterscheiden<br/>
|
||
24<br/>
|
||
<hr/>
|
||
<a name=25></a>3.19. Vergleichen von Dateien<br/>
|
||
grep -l Ausdruck Datei<br/>
|
||
meldet die Dateien die den Ausdruck enthalten<br/>
|
||
grep -n Ausdruck Datei<br/>
|
||
sucht nach dem Ausdruck und<br/>
|
||
gibt die Zeilennummer mit aus<br/>
|
||
grep -v Ausdruck Datei<br/>
|
||
Ausgabe der Zeilen die den Ausdruck<br/>
|
||
nicht enthalten<br/>
|
||
egrep Ausdruck Datei<br/>
|
||
sucht nach dem Ausdruck in der Datei<br/>
|
||
fgrep String Datei<br/>
|
||
sucht nach dem String in der Datei<br/>
|
||
fgrep -x String Datei<br/>
|
||
sucht nach dem String in der Zeile einer Datei<br/>
|
||
3.19. Vergleichen von Dateien<br/>
|
||
diff Datei1 Datei2<br/>
|
||
zeigt die Unterschiede zwischen zwei Dateien<br/>
|
||
comm [-123] Datei1 Datei2<br/>
|
||
zwei sortierte Textdateien vergleichen<br/>
|
||
cmp -l Datei1 Datei2<br/>
|
||
Binär-/Dateien vergleichen<br/>
|
||
3.20. Drucken<br/>
|
||
lpr Datei<br/>
|
||
Datei auf dem Drucker ausgeben<br/>
|
||
lpr -#n Datei<br/>
|
||
Datei n mal auf dem Drucker ausgeben<br/>
|
||
lpr -m Datei<br/>
|
||
Datei auf dem Drucker ausgeben, nach dem Drucken<br/>
|
||
bekommt man eine mail<br/>
|
||
lpq<br/>
|
||
Warteschlange anschauen<br/>
|
||
lprm Jobnummer<br/>
|
||
Druckauftrag/Job aus der Warteschlange löschen<br/>
|
||
pr<br/>
|
||
Dateien für das Drucken aufbereiten<br/>
|
||
3.21. File-Inhalt bearbeiten<br/>
|
||
compress Datei<br/>
|
||
Datei komprimieren nach Datei.Z<br/>
|
||
uncompress Datei.Z<br/>
|
||
Datei.Z dekomprimieren<br/>
|
||
expand Datei1 > Datei2<br/>
|
||
Tabs aus der Datei1 entfernen und<br/>
|
||
zur Datei2 schreiben<br/>
|
||
unpack Datei.z<br/>
|
||
Datei.z dekomprimieren<br/>
|
||
sort Datei1 > Datei2<br/>
|
||
die Zeilen der Datei1 in<br/>
|
||
die Datei2 sortieren<br/>
|
||
tr [A-Z] [a-z] < Datei1 > Datei2<br/>
|
||
Klein durch Großbuchstaben ersetzen<br/>
|
||
uniq Datei<br/>
|
||
Datei ausgeben bis auf doppelte Zeilen<br/>
|
||
3.22. TAR (tape archiver) verwaltet Dateiarchive<br/>
|
||
Syntax:<br/>
|
||
tar [-Acdrtux] [–delete] [-b n] [-BgGhijklmMoOpPPsSvwWz] [-C Verzeichnis] [-f Datei]<br/>
|
||
[-F Datei] [-K Datei] [-L Länge] [-N Datum] [-T Datei] [-V Name] [-X Datei] [0-7] [lmh]<br/>
|
||
25<br/>
|
||
<hr/>
|
||
<a name=26></a>3. Befehle<br/>
|
||
Optionen:<br/>
|
||
-A<br/>
|
||
Archiv an ein Archiv anhängen<br/>
|
||
-c<br/>
|
||
erzeugt ein neues Archiv<br/>
|
||
-d<br/>
|
||
vergleicht das Archiv mit dem Dateisystem<br/>
|
||
--delete Datei löscht die Datei aus dem Archiv (nicht für Magnetbänder)<br/>
|
||
-r<br/>
|
||
hängt Dateien an das Archiv an (nicht für Magnetbänder)<br/>
|
||
-t<br/>
|
||
zeigt den Inhalt des Archivs<br/>
|
||
-u<br/>
|
||
ersetzt neue Dateien oder fügt sie ein (nicht für Magnetbänder)<br/>
|
||
-x<br/>
|
||
kopiert/entpackt Datei-en aus dem Archiv<br/>
|
||
--atime-preserve<br/>
|
||
Zugriffszeit nach der Archivierung zurück setzen<br/>
|
||
-b n<br/>
|
||
setzt die Blockgröße n*512Bytes (Voreinstellung n=20)<br/>
|
||
-B<br/>
|
||
unterdrückt den Abbruch beim Lesen unvollständiger Blöcke<br/>
|
||
zum Lesen von 4.2BSD Pipes<br/>
|
||
-C Verzeichnis wechselt in das Verzeichnis, um dort weitere Dateien zu<br/>
|
||
archivieren<br/>
|
||
-f Datei<br/>
|
||
benutzt Datei oder das Gerät als Archiv<br/>
|
||
-F Datei<br/>
|
||
bei -M führt das Shellscript Datei aus, wenn das Medium voll ist<br/>
|
||
-G<br/>
|
||
erzeugt am Anfang des Bandarchives einen speziellen Eintrag für<br/>
|
||
jedes archivierte Verzeichnis; spezielles GNU Format<br/>
|
||
-g Datei<br/>
|
||
erzeugt eine Datei mit einer Liste der archivierten<br/>
|
||
Verzeichnisse als Zeitmarke der Archivierung; wenn die Datei<br/>
|
||
bereits existiert, werden nur die Dateien archiviert, die nach<br/>
|
||
dieser Zeitmarke erzeugt oder verändert wurden (spezielles GNU<br/>
|
||
Format: 1.Zeile=Zeitmarke, 1.Feld=Nr. der Partition,<br/>
|
||
2.Feld=Inode des Verzeichnisses, 3.Feld=Name des Verzeichisses)<br/>
|
||
-h<br/>
|
||
archiviert die referenzierten Dateien anstelle der Links<br/>
|
||
-i<br/>
|
||
ignoriert Blöcke mit Nullbytes im Archiv<br/>
|
||
-j<br/>
|
||
erzeugt ein mit bzip2 komprimiertes Archiv<br/>
|
||
-k<br/>
|
||
existierende Dateien werden beim Auspacken von Archiven nicht<br/>
|
||
überschrieben<br/>
|
||
-K Datei<br/>
|
||
beginnt eine Aktion bei Datei im Archiv<br/>
|
||
-l<br/>
|
||
verhindert Archivierung von Dateien aus anderen Dateisystemen<br/>
|
||
-L Länge<br/>
|
||
wartet auf Medienwechsel nach Länge Bytes<br/>
|
||
-m<br/>
|
||
das Datum der letzten Änderung wird nicht mit archiviert<br/>
|
||
-M<br/>
|
||
das Archiv ist auf mehrere Medien verteilt (Multi-Volume)<br/>
|
||
-N Datum<br/>
|
||
archiviert nur Dateien, die neuer sind als Datum<br/>
|
||
-o<br/>
|
||
benutzt das alte V7 tar-Format anstelle des ANSI Formates<br/>
|
||
-O<br/>
|
||
schreibt die Dateien in die Standardausgabe<br/>
|
||
-p<br/>
|
||
erhält die Zugriffsrechte der Dateien<br/>
|
||
-P<br/>
|
||
archiviert mit absoluten Dateinamen<br/>
|
||
-R<br/>
|
||
gibt zu jeder Meldung die Blocknummer des Archivblocks aus, von<br/>
|
||
dem die Meldung verursacht wurde<br/>
|
||
-s<br/>
|
||
zeigt an, dass die Liste von Dateien im Argument die gleiche<br/>
|
||
Reihenfolge hat wie die Dateien im Archiv<br/>
|
||
-T Datei<br/>
|
||
holt die Namen der zu archivierenden Dateien aus Datei<br/>
|
||
26<br/>
|
||
<hr/>
|
||
<a name=27></a>3.23. Disketten/Festplatten<br/>
|
||
-v<br/>
|
||
meldet jede Aktion<br/>
|
||
-V Name<br/>
|
||
erzeugt ein Archiv mit dem (internen) Label Name<br/>
|
||
-w<br/>
|
||
erwartet interaktiv Bestätigung jeder Aktion<br/>
|
||
-W<br/>
|
||
verifiziert die geschriebenen Daten im Archiv<br/>
|
||
-X Datei<br/>
|
||
liest aus der Datei Namen oder reguläre Ausdrücke von bzw. für<br/>
|
||
Dateien, die nicht archiviert werden soll<br/>
|
||
-z<br/>
|
||
erzeugt ein mit gzip komprimiertes Archiv<br/>
|
||
-Z<br/>
|
||
erzeugt ein mit compress komprimiertes Archiv<br/>
|
||
-{0...7}{lmh}<br/>
|
||
spezifiziert das Gerät und die Dichte des Speichermediums (für<br/>
|
||
Diskettenarchive ohne Bedeutung); 0 ist der erste Streamer, 1<br/>
|
||
1 der zweite und so weiter; die Dichte bestimmt den Bandtyp<br/>
|
||
3.22.1. Packen<br/>
|
||
tar rPvf name.tar /etc/<br/>
|
||
Verzeichnis zum tar zufügen<br/>
|
||
tar rPvf name.tar /etc/inittab* Datei-en zum tar zufügen<br/>
|
||
tar cPvzf name.tgz name.tar<br/>
|
||
tar -> tgz<br/>
|
||
tar cPvMf /dev/fd0 name.tgz<br/>
|
||
tgz auf Diskette sichern<br/>
|
||
tar cvzf Datei.tgz Verzeichnis Packt Verzeichnis in Datei.tgz<br/>
|
||
3.22.2. Entpacken<br/>
|
||
tar xvfpM /dev/fd0<br/>
|
||
tgz von Diskette holen<br/>
|
||
tar xvfpz name.tgz<br/>
|
||
tgz -> tar<br/>
|
||
tar tvfp name.tar<br/>
|
||
Inhalt des Tars anzeigen<br/>
|
||
tar xvfp name.tar<br/>
|
||
Tar entpacken<br/>
|
||
3.23. Disketten/Festplatten<br/>
|
||
dd if=/dev/zero of=/dev/sda bs=512 count=1<br/>
|
||
überschreibt den MBR der ersten<br/>
|
||
SCSI-Platte mit Nullen<br/>
|
||
fdisk Gerätedatei<br/>
|
||
Partitionstabelleneditor<br/>
|
||
fdisk -l /dev/hda<br/>
|
||
zeigt die Partitionstabelle der ersten<br/>
|
||
Festplatte an<br/>
|
||
fdisk -C 12416 -H 15 -S 63 /dev/hdb<br/>
|
||
Partitionstabelle mit vorgegebenen<br/>
|
||
C-Zylinder H-Köpfe S-Sektoren pro Spur<br/>
|
||
bearbeiten<br/>
|
||
cfdisk Gerätedatei<br/>
|
||
Curses-Partitionstabelleneditor<br/>
|
||
fdformat /dev/fd0u1440<br/>
|
||
Diskette Low-Level-Formatieren<br/>
|
||
mformat a:<br/>
|
||
Dateisystem DOS-FAT anlegen<br/>
|
||
mkdosfs -I /dev/sda<br/>
|
||
Superfloppy-Format mit FAT16-Dateisystem<br/>
|
||
27<br/>
|
||
<hr/>
|
||
<a name=28></a>3. Befehle<br/>
|
||
für z.B. USB-Sticks anlegen<br/>
|
||
mkdosfs -n Name /dev/sda1<br/>
|
||
FAT16-Dateisystem mit Name anlegen<br/>
|
||
mkfs -t minix /dev/fd0u1440 1440<br/>
|
||
Dateisystem minix anlegen<br/>
|
||
mke2fs /dev/fd0u1440<br/>
|
||
Dateisystem ext2 anlegen<br/>
|
||
mkfs -V -t ext2 /dev/sda7<br/>
|
||
Dateisystem ext2 anlegen<br/>
|
||
fsck -V -t ext2 /dev/sda7<br/>
|
||
Dateisystem Prüfung und Reparatur<br/>
|
||
tune2fs Optionen Gerät<br/>
|
||
Einstellungen zum ext2 Dateisystem<br/>
|
||
mount Gerät Verzeichnis<br/>
|
||
Gerät im Verzeichnis anmelden<br/>
|
||
mount -t minix /dev/fd0 /mnt<br/>
|
||
Diskette im minix-Format anmelden<br/>
|
||
mount -t ext2 /dev/fd0 /mnt<br/>
|
||
Diskette im ext2-Format anmelden<br/>
|
||
mount -t msdos /dev/fd0 /mnt<br/>
|
||
Diskette im msdos-Format anmelden<br/>
|
||
mount -o loop disk.img /mnt<br/>
|
||
Datei als Diskette anmelden<br/>
|
||
umount Verzeichnis<br/>
|
||
Verzeichnis abmelden<br/>
|
||
umount /mnt<br/>
|
||
Diskette abmelden<br/>
|
||
3.23.1. Dateisystem verschlüsseln<br/>
|
||
modprobe loop_fish2<br/>
|
||
Modul für die Verschlüssellung laden<br/>
|
||
dd if=/dev/urandom of=datei bs=1024 count=10000<br/>
|
||
10MB Datei anlegen<br/>
|
||
losetup -e twofish /dev/loop0 datei<br/>
|
||
Datei anmelden (Passwort anlegen)<br/>
|
||
mkfs -t ext2 /dev/loop0<br/>
|
||
Dateisystem anlegen<br/>
|
||
mount -t ext2 /dev/loop0 /mnt<br/>
|
||
Dateisystem anmelden<br/>
|
||
umount /mnt/<br/>
|
||
Dateisystem abmelden<br/>
|
||
losetup -d /dev/loop0<br/>
|
||
Datei abmelden<br/>
|
||
/dev/loop0 /datei /mnt ext2 twofish defaults<br/>
|
||
/etc/cryptotab<br/>
|
||
/datei /mnt ext2 loop,encryption=twofish,noauto,user<br/>
|
||
/etc/fstab<br/>
|
||
3.24. Zugriffsrechte/Eigentümer/Gruppe<br/>
|
||
ls -l /dev/fd0<br/>
|
||
brw-rw-rw-<br/>
|
||
1 root<br/>
|
||
disk<br/>
|
||
2,<br/>
|
||
0 Feb 16 16:30 /dev/fd0<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
+----- Gerät<br/>
|
||
|<br/>
|
||
|<br/>
|
||
+------ Minor-Device-Nummer(Nebennummer)<br/>
|
||
|<br/>
|
||
+----------- Major-Device-Nummer(Hauptnummer)<br/>
|
||
+-------------------- b-blockorientierte Geräte c-zeichenorientierte Geräte<br/>
|
||
ls -laFi linux.txt<br/>
|
||
1561 -rw-r----- 1 higi users 26419 Mar 13 19:19 linux.txt<br/>
|
||
|<br/>
|
||
|||||||||| | |<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
| |<br/>
|
||
+----- Datei/Verzeichnisname<br/>
|
||
28<br/>
|
||
<hr/>
|
||
<a name=29></a>3.24. Zugriffsrechte/Eigentümer/Gruppe<br/>
|
||
|<br/>
|
||
|||||||||| | |<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
| +----------- Uhrzeit<br/>
|
||
|<br/>
|
||
|||||||||| | |<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
+-------------- Tag<br/>
|
||
|<br/>
|
||
|||||||||| | |<br/>
|
||
|<br/>
|
||
|<br/>
|
||
+------------------ Monat<br/>
|
||
|<br/>
|
||
|||||||||| | |<br/>
|
||
|<br/>
|
||
+------------------------ Größe<br/>
|
||
|<br/>
|
||
|||||||||| | |<br/>
|
||
+----------- Gruppe<br/>
|
||
|<br/>
|
||
|||||||||| | +----------------- Eigentümer<br/>
|
||
|<br/>
|
||
|||||||||| +------------------- Links<br/>
|
||
|<br/>
|
||
|||||||||+---- alle Anderen<br/>
|
||
x-ausführen oder t-text mit x-bit<br/>
|
||
|<br/>
|
||
|||||||||<br/>
|
||
T-text ohne x-bit<br/>
|
||
|<br/>
|
||
||||||||+----- alle Anderen<br/>
|
||
w-schreiben<br/>
|
||
|<br/>
|
||
|||||||+------ alle Anderen<br/>
|
||
r-lesen<br/>
|
||
|<br/>
|
||
||||||+------- Gruppe<br/>
|
||
x-ausführen oder s-Gruppenkennung mit x-bit<br/>
|
||
|<br/>
|
||
||||||<br/>
|
||
S-Gruppenkennung ohne x-bit<br/>
|
||
|<br/>
|
||
|||||+-------- Gruppe<br/>
|
||
w-schreiben<br/>
|
||
|<br/>
|
||
||||+--------- Gruppe<br/>
|
||
r-lesen<br/>
|
||
|<br/>
|
||
|||+---------- Eigentümer<br/>
|
||
x-ausführen oder s-Benutzerkennung mit x-bit<br/>
|
||
|<br/>
|
||
|||<br/>
|
||
S-Benutzerkennung ohne x-bit<br/>
|
||
|<br/>
|
||
||+----------- Eigentümer<br/>
|
||
w-schreiben<br/>
|
||
|<br/>
|
||
|+------------ Eigentümer<br/>
|
||
r-lesen<br/>
|
||
|<br/>
|
||
+------------- d-Verzeichnis l-Verknüpfung<br/>
|
||
+------- inode<br/>
|
||
chmod werwiewas Datei<br/>
|
||
Zugriffsrechte einer Datei/Verzeichnis ändern<br/>
|
||
wer: u-Eigentümer<br/>
|
||
g-Gruppe<br/>
|
||
o-alle Anderen a-alle 3 Benutzergruppen<br/>
|
||
wie: +-hinzufügen --wegnehmen<br/>
|
||
=-nachfolgendes Muster setzen<br/>
|
||
was: r-lesen w-schreiben x-ausführen<br/>
|
||
( s-Benutzerkennung oder Gruppenkennung<br/>
|
||
t-text )<br/>
|
||
chmod zahl Datei<br/>
|
||
Zugriffsrechte einer Datei/Verzeichnis ändern<br/>
|
||
zahl-> rwx rwx rwx -> 4+2 4 0 -> 640<br/>
|
||
421 421 421<br/>
|
||
640 -> Eigentümer lesen schreiben<br/>
|
||
Gruppe<br/>
|
||
lesen<br/>
|
||
chmod nzahl Datei<br/>
|
||
Zugriffsrechte und Kennung einer Datei/<br/>
|
||
Verzeichnis ändern<br/>
|
||
bit 4 von n, mit Benutzerkennung/<br/>
|
||
Benutzerrechten ausführen<br/>
|
||
bit 2 von n, mit Gruppenkennung/<br/>
|
||
Gruppenrechten ausführen<br/>
|
||
bit 1 von n, mit text werden die Dateien vor<br/>
|
||
dem Löschen durch fremde Benutzer geschützt,<br/>
|
||
macht nur bei Verzeichnissen sinn<br/>
|
||
chown NeuerEigentümer Datei<br/>
|
||
Eigentümer der Datei ändern<br/>
|
||
29<br/>
|
||
<hr/>
|
||
<a name=30></a>3. Befehle<br/>
|
||
chgrp NeueGruppe Datei<br/>
|
||
Gruppenzugehörigkeit der Datei ändern<br/>
|
||
passwd Benutzer<br/>
|
||
Benutzerpasswort ändern<br/>
|
||
useradd Optionen Benutzer<br/>
|
||
Benutzer anlegen<br/>
|
||
-u Benutzer-ID (-u 500)<br/>
|
||
-g Primäre Gruppenzugehörigkeit (-g users)<br/>
|
||
-G weitere Gruppenzugehörigkeit<br/>
|
||
-d Homeverzeichnis (-d /home/user500)<br/>
|
||
-s Shell (-s /bin/bash)<br/>
|
||
-m legt das Homeverzeichnis an und kopiert die<br/>
|
||
Dateien aus /etc/skel in das Homeverzeichnis<br/>
|
||
-c Kommentar<br/>
|
||
-p Passwort im Klartext!<br/>
|
||
-e Auslaufdatum (-e 2002.12.24)<br/>
|
||
-f Pufferzeit<br/>
|
||
usermod Optionen Benutzer<br/>
|
||
Benutzerdaten verändern<br/>
|
||
userdel Benutzername<br/>
|
||
Benutzer löschen<br/>
|
||
userdel -r Benutzername<br/>
|
||
Benutzer und Benutzerverzeichnis löschen<br/>
|
||
vipw<br/>
|
||
Benutzerdatenbank ändern<br/>
|
||
su<br/>
|
||
Shell mit root-Zugriffsrechten starten<br/>
|
||
su -<br/>
|
||
Shell im root-Homeverzeichnis<br/>
|
||
mit root-Zugriffsrechten starten<br/>
|
||
sux -<br/>
|
||
Shell im root-Homeverzeichnis<br/>
|
||
mit root-Zugriffsrechten starten und X-Variabeln<br/>
|
||
su -l Benutzername<br/>
|
||
Shell im Benutzer-Homeverzeichnis<br/>
|
||
mit Benutzer-Rechten starten<br/>
|
||
3.25. Prozessbefehle<br/>
|
||
S=schlafend R=running(laufend) T=terminiert Z=Zombie<br/>[Strg]+[z]<br/>
|
||
im Vordergrund laufendes Programm anhalten<br/>
|
||
[1]+ Stopped<br/>
|
||
|<br/>
|
||
+----- schlafend<br/>
|
||
+------------- Jobnummer<br/>
|
||
bg %JOB<br/>
|
||
Job im Hintergrund fortsetzen<br/>
|
||
fg %JOB<br/>
|
||
Job im Vordergrund fortsetzen<br/>
|
||
Programm &<br/>
|
||
Programm im eigenem Prozess starten<br/>
|
||
[1] 819<br/>
|
||
|<br/>
|
||
+--------- Prozessnummer<br/>
|
||
+------------- Jobnummer<br/>
|
||
ps<br/>
|
||
Überblick über die aktuell laufenden Prozesse<br/>
|
||
ps aux<br/>
|
||
gibt in den meisten Fällen eine ausreichende Auskunft<br/>
|
||
pstree<br/>
|
||
zeigt den kompletten Prozessbaum an<br/>
|
||
30<br/>
|
||
<hr/>
|
||
<a name=31></a>3.26. Re-install Grub with Live CD<br/>
|
||
jobs<br/>
|
||
das Schellkommando gibt eine Liste der aktuellen Jobs aus<br/>
|
||
top<br/>
|
||
Programm, das die aktuellen Prozesse anzeigt<br/>
|
||
htop<br/>
|
||
Programm, das die aktuellen Prozesse anzeigt<br/>
|
||
kill PID<br/>
|
||
Prozess killen<br/>
|
||
kill %JOB<br/>
|
||
Job killen<br/>
|
||
kill -1 PID<br/>
|
||
Prozess initialisieren<br/>
|
||
kill -1 %JOB<br/>
|
||
Job initialisieren<br/>
|
||
kill -9 PID<br/>
|
||
Prozess killen<br/>
|
||
kill -9 %JOB<br/>
|
||
Job killen<br/>
|
||
kill -15 PID<br/>
|
||
Prozess beenden<br/>
|
||
kill -15 %JOB<br/>
|
||
Job beenden<br/>
|
||
kill -HUP PID<br/>
|
||
veranlasst die meisten Dämonen ihre Konfigurationsdateien<br/>
|
||
erneut zu lesen<br/>
|
||
3.26. Re-install Grub with Live CD<br/>
|
||
3.26.1. Chroot<br/>
|
||
sudo fdisk -l<br/>
|
||
Patition für das chroot festellen<br/>
|
||
sudo mount /dev/sdb3 /mnt/gentoo<br/>
|
||
chroot z.B. /dev/sdb3 auf z.B. /mnt/gentoo mounten<br/>
|
||
sudo mount -t proc none /mnt/gentoo/proc<br/>
|
||
Mounten der /proc und /dev Dateisysteme<br/>
|
||
sudo mount --rbind /dev /mnt/gentoo/dev<br/>
|
||
sudo chroot /mnt/gentoo /bin/bash<br/>
|
||
Betreten der neuen Umgebung<br/>
|
||
env-update<br/>
|
||
Umgebungsvariablen aktualisieren<br/>
|
||
source /etc/profile<br/>
|
||
Profil laden<br/>
|
||
export PS1="(chroot) $PS1"<br/>
|
||
Promt anpassen<br/>
|
||
3.26.2. Grub<br/>
|
||
sudo grub<br/>
|
||
grub> find /boot/grub/stage1<br/>
|
||
grub> root (hd0,1)<br/>
|
||
grub> setup (hd0)<br/>
|
||
grub> quit<br/>
|
||
reboot<br/>
|
||
3.27. Software installieren<br/>
|
||
3.27.1. rpm-Format<br/>
|
||
http://www.rpm.org/<br/>
|
||
weiterführende Informationen<br/>
|
||
http://www.rpmfind.net/<br/>
|
||
Hilfe zu fehlenden rpms oder Merkmalen<br/>
|
||
/var/lib/rpm/Packages<br/>
|
||
rpm-Datenbank<br/>
|
||
31<br/>
|
||
<hr/>
|
||
<a name=32></a>3. Befehle<br/>
|
||
/var/lib/rpm/packages.rpm<br/>
|
||
-> /var/lib/rpm/Packages<br/>
|
||
Geänderte Konfigurationsdateien überschreibt rpm beim Update nicht, sondern hebt<br/>
|
||
sie als Datei.rpmsave auf. diff hilft die Unterschiede anzuzeigen.<br/>
|
||
rpm -i Paketname.rpm<br/>
|
||
Installiert mit Prüfung auf Abhängigkeiten<br/>
|
||
rpm -i --nodeps Paketname.rpm<br/>
|
||
Installiert ohne Prüfung auf Abhängigkeiten<br/>
|
||
rpm -i --test Paketname.rpm<br/>
|
||
Testet die Installation ohne Daten zu verändern<br/>
|
||
rpm -iv Paketname.rpm<br/>
|
||
Installiert mit Prüfung auf Abhängigkeiten<br/>
|
||
und Rückmeldung<br/>
|
||
rpm -ivh Paketname.rpm<br/>
|
||
Installiert, prüft, meldet und<br/>
|
||
zeigt den Vorgang an<br/>
|
||
rpm -Uvh Paketname.rpm<br/>
|
||
Update eines rpm-Binärpaketes<br/>
|
||
rpm -Fvh Paketname.rpm<br/>
|
||
Aktualisiert rpm-Binärpaket<br/>
|
||
rpm -Fvh *.rpm<br/>
|
||
Aktualisiert alle rpm-Binärpakete im .<br/>
|
||
rpm -e Paket<br/>
|
||
Deinstalliert mit Prüfung auf Abhängigkeiten<br/>
|
||
rpm -qa<br/>
|
||
zeigt die installierten rpm-Pakete an<br/>
|
||
rpm -qa | grep -i Paket<br/>
|
||
zeigt ob das Paket installiert ist<br/>
|
||
rpm -qi Paket<br/>
|
||
zeigt Informationen über das installierte Paket<br/>
|
||
rpm -qip Paketname.rpm<br/>
|
||
zeigt Informationen über das rpm-Binärpaket<br/>
|
||
rpm -ql Paket<br/>
|
||
zeigt die enthaltenen Dateien des installierten<br/>
|
||
Paketes an<br/>
|
||
rpm -qlp Paketname.rpm<br/>
|
||
zeigt die enthaltenen Dateien des<br/>
|
||
rpm-Binärpaketes<br/>
|
||
rpm -qf /Pfad/Datei<br/>
|
||
zeigt das Paket aus dem die Datei stammt<br/>
|
||
rpm -q --requires Paket<br/>
|
||
zeigt die geforderten Merkmale des installierten<br/>
|
||
Paketes an<br/>
|
||
rpm -qp --requires Paketname.rpm<br/>
|
||
zeigt die geforderten Merkmale des<br/>
|
||
rpm-Binärpaketes<br/>
|
||
3.27.2. deb-Format<br/>
|
||
dpkg -i Paketname.deb<br/>
|
||
Installation eines deb-Binärpaketes<br/>
|
||
dpkg -P Paket<br/>
|
||
Deinstalliert mit Prüfung auf Abhängigkeiten<br/>
|
||
dpkg -l<br/>
|
||
zeigt die installierten deb-Pakete an<br/>
|
||
dpkg -l "*Paket*"<br/>
|
||
zeigt ob das Paket installiert ist<br/>
|
||
dpkg -p Paket<br/>
|
||
zeigt Informationen über das installierte Paket<br/>
|
||
dpkg -I Paketname.deb<br/>
|
||
zeigt Informationen über das deb-Binärpaket<br/>
|
||
dpkg -L Paket<br/>
|
||
zeigt die enthaltenen Dateien des installierten<br/>
|
||
Paketes an<br/>
|
||
dpkg -c Paketname.deb<br/>
|
||
zeigt die enthaltenen Dateien des<br/>
|
||
32<br/>
|
||
<hr/>
|
||
<a name=33></a>3.27. Software installieren<br/>
|
||
deb-Binärpaketes<br/>
|
||
dpkg -S /Pfad/Datei<br/>
|
||
zeigt das Paket aus dem die Datei stammt<br/>
|
||
apt<br/>
|
||
neue Alternative für apt-get<br/>
|
||
apt-get autoclean<br/>
|
||
Veraltete Pakete aus dem Cache löschen<br/>
|
||
apt-get clean<br/>
|
||
alle Pakete aus dem Cache löschen<br/>
|
||
apt-get install Paket<br/>
|
||
Installiert mit Prüfung auf Abhängigkeiten<br/>
|
||
apt-get remove Paket<br/>
|
||
Deinstalliert mit Prüfung auf Abhängigkeiten<br/>
|
||
apt-get --purge remove Paket<br/>
|
||
Deinstalliert vollständig<br/>
|
||
apt-get autoremove<br/>
|
||
Deinstalliert nicht benötigte Pakete<br/>
|
||
apt-get dist-upgrade<br/>
|
||
aktualisiert die gesamte Distribution<br/>
|
||
apt-cache search Name<br/>
|
||
durchsucht die gesamte Distribution<br/>
|
||
apt-get update<br/>
|
||
APT-Datenbank auf den aktuellen Stand bringen<br/>
|
||
dpkg --get-selections > Paketliste<br/>
|
||
Paketliste exportieren<br/>
|
||
###sudo dpkg --set-selections < Paketliste<br/>
|
||
Paketliste importieren geht nicht<br/>
|
||
3.27.3. Portage Gentoo<br/>
|
||
emerge --sync<br/>
|
||
Aktualisieren des Portage-Tree mit rsync<br/>
|
||
emerge --webrsync<br/>
|
||
Aktualisieren mit dem Portage-Snapshots<br/>
|
||
emerge --search Pragrammname<br/>
|
||
Nach Software suchen<br/>
|
||
emerge --searchdesc Name<br/>
|
||
Suche nach Paketen im Zusammenhang mit dem Namen<br/>
|
||
emerge Programmname<br/>
|
||
Software installieren<br/>
|
||
emerge -pv Programmname<br/>
|
||
Installation von Programmen simulieren, USE-Flags anzeigen<br/>
|
||
emerge --fetchonly Programmname Quellen herunterzuladen, noch nicht kompilieren<br/>
|
||
emerge --unmerge Programmname<br/>
|
||
Entfernung von Programm aus dem System<br/>
|
||
emerge --update --ask world<br/>
|
||
Aktualisierung des Systems<br/>
|
||
emerge -f -u -a world<br/>
|
||
Aktualisierung herunterzuladen, aber nicht<br/>
|
||
kompilieren und installieren<br/>
|
||
emerge --update --deep world<br/>
|
||
Aktualisierung des gesamten Systems<br/>
|
||
emerge --update --newuse world Neuerstellung des gesamten System<br/>
|
||
emerge --depclean verweiste Abhängigkeiten entfernen<br/>
|
||
revdep-rebuild<br/>
|
||
reverse Abhängigkeiten neu erstellen<br/>
|
||
etc-update<br/>
|
||
Konfigurationsdateien zusammenzuführen<br/>
|
||
equery belongs /Pfad/Datei<br/>
|
||
zeigt das Paket aus dem die Datei stammt<br/>
|
||
equery depends Programmname<br/>
|
||
Abhängigkeiten anzeigen<br/>
|
||
equery depgraph Programmname<br/>
|
||
Abhängigkeiten als Baum anzeigen<br/>
|
||
equery files Programmname<br/>
|
||
Dateien auflisten, die zu einem Ebuild gehören<br/>
|
||
33<br/>
|
||
<hr/>
|
||
<a name=34></a>3. Befehle<br/>
|
||
equery hasuse USE-Flag<br/>
|
||
Pakete suchen, die ein spezifisches USE-Flag<br/>
|
||
benutzen<br/>
|
||
equery size Programmname<br/>
|
||
Paketgröße anzeigen<br/>
|
||
equery uses Programmname<br/>
|
||
Gesetzte und nicht gesetzte USE-Flags<br/>
|
||
equery which Programmname<br/>
|
||
Anzeigen des Ebuildpfads<br/>
|
||
euse -a<br/>
|
||
Alle aktiven USE-Flags anschauen<br/>
|
||
euse -a -l<br/>
|
||
Aktive lokale USE-Flags anschauen<br/>
|
||
euse -E USE-Flag<br/>
|
||
Setzen von USE-Flags<br/>
|
||
euse -D USE-Flag<br/>
|
||
Deaktivieren von USE-Flags<br/>
|
||
3.27.4. Quelltexte<br/>
|
||
tar xvfz Source.tgz<br/>
|
||
Quelltext entpacken<br/>
|
||
./configure<br/>
|
||
Makefile konfigurieren<br/>
|
||
make<br/>
|
||
Programm übersetzen,<br/>
|
||
wenn Makefile vorhanden<br/>
|
||
make install<br/>
|
||
Programm installieren<br/>
|
||
make uninstall<br/>
|
||
Programm deinstallieren<br/>
|
||
3.27.5. Hilfe<br/>
|
||
ldd Programm<br/>
|
||
zeigt die zu ladenen Bibliotheken des Programms<br/>
|
||
strace -eopen Programm<br/>
|
||
zeigt die geladenen Bibliotheken des Programms<br/>
|
||
3.28. Im Netz<br/>
|
||
#ifconfig -a<br/>
|
||
-> ip link<br/>
|
||
ip link<br/>
|
||
alle aktiven Netzwerkschnittstellen ausgeben<br/>
|
||
ifconfig | grep eth0 | cut -c 39-55<br/>
|
||
Ethernet-Adresse von eth0 ausgeben<br/>
|
||
ftp Rechner<br/>
|
||
Programm zur Übertragung von Files<br/>
|
||
via Internet starten<br/>
|
||
host www.suse.de<br/>
|
||
befragt den DNS-Server nach<br/>
|
||
der IP-Nummer des Rechners<br/>
|
||
host 192.168.9.10<br/>
|
||
fragt nach dem Namen des Rechners<br/>
|
||
nslookup www.debian.de<br/>
|
||
befragt den DNS-Server nach<br/>
|
||
der IP-Nummer des Rechners<br/>
|
||
nslookup 192.168.11.12<br/>
|
||
fragt nach dem Namen des Rechners<br/>
|
||
ping Rechner<br/>
|
||
sendet Pakete an Rechner mit Echo<br/>
|
||
rlogin Rechner<br/>
|
||
auf anderen Rechner anmelden<br/>
|
||
34<br/>
|
||
<hr/>
|
||
<a name=35></a>3.29. SSH<br/>
|
||
scp Rechner:Pfad Rechner:Pfad<br/>
|
||
Programm zur Übertragung von Files<br/>
|
||
ssh Rechner<br/>
|
||
auf anderen Rechner anmelden<br/>
|
||
ssh Rechner -l root<br/>
|
||
oder<br/>
|
||
auf anderen Rechner als root anmelden<br/>
|
||
ssh root@Rechner<br/>
|
||
telnet Rechner<br/>
|
||
Kommunikation ueber das TELNET-Protokoll<br/>
|
||
nmap -sT -PT Rechner<br/>
|
||
Scannt die Ports von Rechner<br/>
|
||
nmap -sT -p 1-65535 -PT Rechner Scannt alle Ports von Rechner<br/>
|
||
netcat ip port<br/>
|
||
zeigt den angegebenen Port an<br/>
|
||
3.29. SSH<br/>
|
||
SSH(Secure shell) ist ein verschlüsseltes Netzwerkprotokoll auf TCP-Port 22, ermög-<br/>
|
||
licht eine sichere authentifizierte und verschlüsselte Verbindung zwischen zwei Rech-<br/>
|
||
nern über ein unsicheres Netzwerk.<br/>
|
||
scp Rechner:Pfad Rechner:Pfad<br/>
|
||
Programm zur Übertragung von Files<br/>
|
||
ssh Rechner<br/>
|
||
auf anderen Rechner anmelden<br/>
|
||
ssh Rechner -l root<br/>
|
||
oder<br/>
|
||
auf anderen Rechner als root anmelden<br/>
|
||
ssh root@Rechner<br/>
|
||
3.29.1. Generierung eines DSA Schlüsselpaares<br/>
|
||
ssh-keygen -t dsa -b 2048<br/>
|
||
generiert DSA-Schlüsselpaar mit<br/>
|
||
einer Bit-Tiefe von 2048<br/>
|
||
~/.ssh/id_dsa<br/>
|
||
- private-key mit <ENTER> bestätigen<br/>
|
||
passphrase<br/>
|
||
- Passwort für den private-key und der Anmeldung,<br/>
|
||
für passwortlose SSH-Verbindungen weg lassen oder<br/>
|
||
zu Beginn einer Sitzung mit ssh-add ~/.ssh/id_dsa<br/>
|
||
abfragen lassen<br/>
|
||
3.29.2. Public-Key auf dem Zielrechner hinzufügen<br/>
|
||
cat ~/.ssh/id_dsa.pub | ssh zieluser@zielrechner \<br/>
|
||
"mkdir -p .ssh; cat >> .ssh/authorized_keys"<br/>
|
||
- public-key auf dem Zielrechner hinzufügen<br/>
|
||
ssh zieluser@zielrechner "chmod 600 ~/.ssh/authorized_keys"<br/>
|
||
- public-key auf dem Zielrechner schützen<br/>
|
||
3.29.3. Private-Key auf dem Qellrechner<br/>
|
||
~/.ssh/id_dsa<br/>
|
||
- der Private-Key gehört auf dem Qellrechner in das<br/>
|
||
~/.ssh/ Verzeichnis<br/>
|
||
35<br/>
|
||
<hr/>
|
||
<a name=36></a>3. Befehle<br/>
|
||
3.29.4. Login nur mit SSH-Keys erlauben<br/>
|
||
/etc/ssh/sshd_config<br/>
|
||
- folgendes in die Datei sshd_config<br/>
|
||
PubkeyAuthentication yes<br/>
|
||
eingetragen<br/>
|
||
UsePAM no<br/>
|
||
PasswordAuthentication no<br/>
|
||
rcsshd restart<br/>
|
||
- SSH-Dämon neu starten<br/>
|
||
3.30. GnuPG<br/>
|
||
Mit GnuPG kann man Daten signieren und verschlüsseln. GnuPG unterstüzt symme-<br/>
|
||
trische und asymmetrische Verschlüsselung.<br/>
|
||
http://www.gnupg.org/<br/>
|
||
http-Adresse für GnuPG<br/>
|
||
http://www.gnupg.org/related_software/gpa/<br/>
|
||
Grafische Benutzereingabe<br/>
|
||
http://www.heise.de/security/dienste/pgp/<br/>
|
||
Krypto-Kampagne, bei der<br/>
|
||
ein Abgleich zwischen<br/>
|
||
Person, Personalausweis<br/>
|
||
und Schlüssel erfolgt<br/>
|
||
http://kmail.kde.org/<br/>
|
||
Mailprogramme mit GnuPG<br/>
|
||
http://www.mutt.org/<br/>
|
||
Unterstützung<br/>
|
||
http://www.ximian.com/products/evolution/<br/>
|
||
3.30.1. Erzeugen<br/>
|
||
gpg --gen-key<br/>
|
||
Schlüssel-Paar erzeugen<br/>
|
||
gpg --gen-revoke 0xKeyID<br/>
|
||
Widerruf Zertifikat erzeugen<br/>
|
||
> gpg-rev-Will_no_longer_use_it<br/>
|
||
> gpg-rev-Lost_private_key<br/>
|
||
> gpg-rev-Forgot_password<br/>
|
||
> gpg-rev-Key_compromised<br/>
|
||
3.30.2. Hochladen<br/>
|
||
gpg --keyserver wwwkeys.de.pgp.net --send-keys 0xKeyID<br/>
|
||
Public Key auf den Keyserver hochladen<br/>
|
||
gpg -a --export 0xKeyID | mail -s "add" pgp-public-keys@keys.de.pgp.net<br/>
|
||
Public Key an den Keyserver verschicken<br/>
|
||
Keyserver:<br/>
|
||
Land<br/>
|
||
eMail-Adresse<br/>
|
||
HTTP-Adresse<br/>
|
||
----<br/>
|
||
-------------<br/>
|
||
------------<br/>
|
||
Deutschland<br/>
|
||
pgp-public-keys@keys.de.pgp.net http://wwwkeys.de.pgp.net/<br/>
|
||
36<br/>
|
||
<hr/>
|
||
<a name=37></a>3.30. GnuPG<br/>
|
||
Östereich<br/>
|
||
pgp-public-keys@keys.at.pgp.net http://wwwkeys.at.pgp.net/<br/>
|
||
Schweiz<br/>
|
||
gp-public-keys@keys.ch.pgp.net http://wwwkeys.ch.pgp.net/<br/>
|
||
3.30.3. Löschen<br/>
|
||
gpg --recv-keys 0xKeyID<br/>
|
||
Key vernichten<br/>
|
||
gpg --import<br/>
|
||
WiderrufZertifikat<br/>
|
||
gpg --send-keys 0xKeyID<br/>
|
||
gpg --delete-key 0xKeyID<br/>
|
||
löscht einen öffentlichen Schlüssel<br/>
|
||
cat gpg-rev-xxx | mail -s "add" pgp-public-keys@keys.de.pgp.net<br/>
|
||
Widerruf Zertifikat an den Keyserver<br/>
|
||
verschicken<br/>
|
||
3.30.4. Holen<br/>
|
||
gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0xKeyID<br/>
|
||
Public-Key vom Keyserver holen<br/>
|
||
mail -s "get thomasb@trash.net" pgp-public-keys@keys.de.pgp.net<br/>
|
||
Public-Key per E-Mail<br/>
|
||
vom Keyserver holen<br/>
|
||
gpg --import Key.txt<br/>
|
||
Public-Key inportieren<br/>
|
||
3.30.5. Signatur erzeugen und prüfen<br/>
|
||
gpg -a --sign Datei<br/>
|
||
einen Text signieren, erzeugt Datei.asc<br/>
|
||
gpg --verify Datei.asc Datei<br/>
|
||
eine Signatur prüfen<br/>
|
||
gpg --clearsign Datei<br/>
|
||
einen Text signieren,<br/>
|
||
erzeugt neue Datei.asc<br/>
|
||
gpg --verify Datei.asc<br/>
|
||
eine Signatur prüfen<br/>
|
||
3.30.6. Verschlüsseln<br/>
|
||
gpg -a -r Empfänger0xKeyID -e Datei<br/>
|
||
einen Text verschlüsseln,<br/>
|
||
erzeugt Datei.asc<br/>
|
||
3.30.7. Entschlüsseln<br/>
|
||
gpg Datei.asc<br/>
|
||
einen verschüsselten und signierten Text<br/>
|
||
entschlüsseln und die Signatur prüfen,<br/>
|
||
erzeugt Datei<br/>
|
||
37<br/>
|
||
<hr/>
|
||
<a name=38></a>3. Befehle<br/>
|
||
3.30.8. Schlüsselverwaltung<br/>
|
||
gpg --edit 0xKeyID<br/>
|
||
Schlüsselverwaltung<br/>
|
||
help - Anzeige aller Befehle<br/>
|
||
quit - Das Menu beenden<br/>
|
||
3.30.9. Anzeigen<br/>
|
||
gpg --list-keys<br/>
|
||
zeigt alle öffentlichen Schlüssel<br/>
|
||
gpg --list-sigs<br/>
|
||
zeigt alle Unterschriften<br/>
|
||
gpg --fingerprint<br/>
|
||
zeigt alle Fingerabdrücke<br/>
|
||
3.30.10. Exportieren<br/>
|
||
gpg -a --export 0xKeyID > Datei exportiert den Schlüssel 0xKeyID<br/>
|
||
in Datei<br/>
|
||
gpg -a --export > Datei<br/>
|
||
exportiert alle Schlüssel in Datei<br/>
|
||
3.31. X11 - Grafik<br/>
|
||
/etc/XF86Config<br/>
|
||
bis XFree86.3.3.x Konfigurationsdatei<br/>
|
||
/etc/X11/XF86Config<br/>
|
||
ab XFree86.4.x Konfigurationsdatei<br/>
|
||
[Alt]+[F1] bis [F6]<br/>
|
||
Umschalten zwischen Textkonsolen alle Shells<br/>
|
||
[AltGr]+[Fn]<br/>
|
||
Umschalten zwischen den Textkonsolen n+12<br/>
|
||
[Alt]+[Pfeil links oder rechts] um durch die benutzten Konsolen zu stöbern<br/>
|
||
[Strg]+[Alt]+[F1] bis<br/>
|
||
Umschalten zu Textkonsolen<br/>
|
||
alle Shells<br/>
|
||
[Strg]+[Alt]+[F6]<br/>
|
||
aus X11 heraus<br/>
|
||
[Strg]+[Alt]+[F7]<br/>
|
||
Umschalten zu X11 aus Textkonsole alle Shells<br/>
|
||
bei Caldera 2.2 [Alt]+[F8]<br/>
|
||
[Strg]+[Alt]+[<--]<br/>
|
||
X-Server sofort beenden<br/>
|
||
[Strg]+[Alt]+[+]<br/>
|
||
verschiedene Auflösungen im laufenden<br/>
|
||
[Strg]+[Alt]+[-]<br/>
|
||
Betrieb wechseln<br/>
|
||
xf86config<br/>
|
||
Shell-Konfigurationsprogramm für X 3+4<br/>
|
||
XF86Setup<br/>
|
||
X-Konfigurationsprogramm bis XFree86.3.3.x<br/>
|
||
sax<br/>
|
||
X-SuSE-Konfigurationsprogramm bis XFree86.3.3.x<br/>
|
||
sax2<br/>
|
||
X-SuSE-Konfigurationsprogramm ab XFree86.4.x<br/>
|
||
startx<br/>
|
||
X-Server starten<br/>
|
||
startx -- -bpp 16<br/>
|
||
X-Server mit 16 Bit starten<br/>
|
||
startx - -- :0 vt07<br/>
|
||
X-Server auf F7 starten<br/>
|
||
startx - -- :1 vt08<br/>
|
||
2. X-Server auf F8 starten<br/>
|
||
export WINDOWMANAGER=WM<br/>
|
||
X-Umgebungsvariable auf WM(kde, gnome,<br/>
|
||
38<br/>
|
||
<hr/>
|
||
<a name=39></a>3.31. X11 - Grafik<br/>
|
||
fvwm, olwm ...) ändern<br/>
|
||
3.31.1. Bildschirmschoner/Maus<br/>
|
||
xset s<br/>
|
||
auf Standardeinstellungen zurücksetzen<br/>
|
||
xset s 60<br/>
|
||
nach 1 Minute aktivieren<br/>
|
||
xset s blank<br/>
|
||
schwarzen Bildschirm verwenden<br/>
|
||
xset s noblank<br/>
|
||
X-Logo statt schwarzen Bildschirm anzeigen<br/>
|
||
xset s 60 3<br/>
|
||
X-Logo alle 3 Sekunden neu platzieren<br/>
|
||
xset s off<br/>
|
||
Bildschirmschoner deaktivieren<br/>
|
||
xset s on<br/>
|
||
Bildschirmschoner einschalten<br/>
|
||
xset s activate<br/>
|
||
Bildschirmschoner sofort aktivieren<br/>
|
||
xset q<br/>
|
||
aktuelle Einstellungen anzeigen<br/>
|
||
xset -dpms<br/>
|
||
Energy Star features ausschalten<br/>
|
||
xset +dpms<br/>
|
||
Energy Star features einschalten<br/>
|
||
xsetroot -solid blue<br/>
|
||
Hintergrund<br/>
|
||
xset m default<br/>
|
||
standart Mausbeschleunigung<br/>
|
||
xset m 3 10<br/>
|
||
normal schnelle Maus<br/>
|
||
xset m 7 10<br/>
|
||
schnelle Maus<br/>
|
||
3.31.2. X11 ohne Maus<br/>
|
||
[Umschalt]+[Strg]+[Num]<br/>
|
||
Maussteuerung am Ziffernblock ein/ausschalten<br/>
|
||
[4],[6],[8],[8]<br/>
|
||
links, rechts, oben, unten<br/>
|
||
[*],[-]<br/>
|
||
auf linke, rechte Maustaste umschalten<br/>
|
||
[5],[+],[0],[5]<br/>
|
||
Maustaste, Doppelklick, gerückt halen, lösen<br/>
|
||
39<br/>
|
||
<hr/>
|
||
<a name=40></a><hr/>
|
||
<a name=41></a>4. Verzeichnisse und Dateien<br/>
|
||
4.1. Dateibaum<br/>
|
||
/<br/>
|
||
oberste Verzeichnis<br/>
|
||
im Dateisystem (Root/Wurzel)<br/>
|
||
.<br/>
|
||
Verweis auf sich selbst<br/>
|
||
..<br/>
|
||
Verweis auf das übergeordnete Verzeichnis<br/>
|
||
/bin/<br/>
|
||
ausführbare Dateien der wichtigsten Befehle<br/>
|
||
#/bin/init<br/>
|
||
-> /sbin/init<br/>
|
||
/boot/<br/>
|
||
enthält die Dateien des LILO Bootloaders und<br/>
|
||
kann Kernel-Images enthalten<br/>
|
||
/boot/boot.b<br/>
|
||
der LILO-Maschinencode<br/>
|
||
/boot/map<br/>
|
||
Informationen für LILO<br/>
|
||
um den Betriebssystemkern zu starten<br/>
|
||
/boot/message<br/>
|
||
wird vor der LILO-Bootauswahl ausgegeben<br/>
|
||
/boot/vmlinuz<br/>
|
||
der Betriebssystemkern kann auch im / liegen<br/>
|
||
/cdrom/<br/>
|
||
dient zur CDROM-Einbindung<br/>
|
||
/dev/<br/>
|
||
Sammlung der Gerätedateien<br/>
|
||
/dev/audio<br/>
|
||
ähnlich wie /dev/dsp, Daten werden y-Law codiert<br/>
|
||
/dev/cdrom<br/>
|
||
Link auf den CD-Rom Treiber oft /dev/hdc<br/>
|
||
/dev/console<br/>
|
||
reale Console<br/>
|
||
/dev/dsp<br/>
|
||
Link auf den A/D-W. der Soundk. (-> /dev/dsp0)<br/>
|
||
/dev/dsp0<br/>
|
||
Analog/Digital-Wandler der Soundkarte<br/>
|
||
/dev/fd0<br/>
|
||
erstes Diskettenlaufwerk<br/>
|
||
/dev/fd1<br/>
|
||
zweites Diskettenlaufwerk<br/>
|
||
/dev/full<br/>
|
||
beim Schreiben wird der Fehler ENOSPC erzeugt<br/>
|
||
/dev/hda<br/>
|
||
erstes (E)IDE Gerät<br/>
|
||
/dev/hda1 -> /dev/hda4<br/>
|
||
primäre Partitionen<br/>
|
||
/dev/hda5 -> /dev/hda?<br/>
|
||
logische Partitionen<br/>
|
||
/dev/hdb<br/>
|
||
zweites (E)IDE Gerät<br/>
|
||
/dev/hdc<br/>
|
||
drittes (E)IDE Gerät<br/>
|
||
/dev/hdd<br/>
|
||
viertes (E)IDE Gerät<br/>
|
||
/dev/initrd<br/>
|
||
zusätzliche RAM-Disk mit Kernelmodulen und<br/>
|
||
Bootsystem zur Initialisierung des Kernels<br/>
|
||
/dev/kmem<br/>
|
||
virtueller Arbeitsspeicher<br/>
|
||
/dev/loop*<br/>
|
||
ermöglicht eine Datei wie eine Diskette oder<br/>
|
||
Festplattenpartition zu mounten<br/>
|
||
/dev/lp0<br/>
|
||
erste parallele Schnittstelle<br/>
|
||
41<br/>
|
||
<hr/>
|
||
<a name=42></a>4. Verzeichnisse und Dateien<br/>
|
||
/dev/lp1<br/>
|
||
zweite parallele Schnittstelle<br/>
|
||
/dev/lp2<br/>
|
||
dritte parallele Schnittstelle<br/>
|
||
/dev/md*<br/>
|
||
zusammengelegte Festplatten linear,Raid0 oder 1<br/>
|
||
/dev/mem<br/>
|
||
physikalischer Arbeitsspeicher<br/>
|
||
/dev/midi00<br/>
|
||
direkte Kommunikation mit einem MIDI-Gerät<br/>
|
||
/dev/mixer<br/>
|
||
Link auf den Mixer (-> /dev/mixer0)<br/>
|
||
/dev/mixer0<br/>
|
||
Mischpult der 1. Soundkarte<br/>
|
||
/dev/modem<br/>
|
||
Link auf den Modemtreiber (-> /dev/ttyS0)<br/>
|
||
/dev/mouse<br/>
|
||
Link auf den Maustreiber (-> /dev/psaux)<br/>
|
||
/dev/music<br/>
|
||
eine andere Art von Sequencer, speziell für die<br/>
|
||
MIDI-Schnittstelle<br/>
|
||
/dev/nst*<br/>
|
||
SCSI-Streamer (No Rewind On Close)<br/>
|
||
/dev/null<br/>
|
||
Mülleimer des Systems<br/>
|
||
/dev/port<br/>
|
||
zum ansprechen einzelner IO Ports<br/>
|
||
/dev/psaux<br/>
|
||
PS/2-Maus<br/>
|
||
/dev/pts/<br/>
|
||
Unix98 PTY slaves<br/>
|
||
/dev/ram<br/>
|
||
Link auf die RAM-Disk (-> /dev/ram0)<br/>
|
||
/dev/random<br/>
|
||
zur Erzeugung kryptografisch hochwertiger<br/>
|
||
Zufallszahlen<br/>
|
||
/dev/rmt*<br/>
|
||
QIC-02-Streamer<br/>
|
||
/dev/rtc<br/>
|
||
batteriegepufferte CMOS-Uhr<br/>
|
||
/dev/sd*<br/>
|
||
SCSI-Festplatten<br/>
|
||
/dev/sequencer<br/>
|
||
Synthesizer der Soundkarte oder ein am MIDI-Port<br/>
|
||
angeschlossenes Gerät<br/>
|
||
/dev/sndstat<br/>
|
||
Informationen über den Status des Soundtreibers<br/>
|
||
/dev/st*<br/>
|
||
SCSI-Streamer<br/>
|
||
/dev/tty<br/>
|
||
aktive virtuelle Console<br/>
|
||
/dev/tty1<br/>
|
||
1. virtuelle Console<br/>
|
||
/dev/tty2<br/>
|
||
2. virtuelle Console<br/>
|
||
/dev/ttyS0<br/>
|
||
erste serielle Schnittstelle COM1<br/>
|
||
/dev/ttyS1<br/>
|
||
zeite serielle Schnittstelle COM2<br/>
|
||
/dev/ttyS2<br/>
|
||
dritte serielle Schnittstelle<br/>
|
||
/dev/ttyS3<br/>
|
||
vierte serielle Schnittstelle<br/>
|
||
/dev/urandom<br/>
|
||
zur Erzeugung von Zufallszahlen<br/>
|
||
/dev/xd*<br/>
|
||
8-Bit XT-Festplattencontroller<br/>
|
||
/dev/zero<br/>
|
||
zum Lesen beliebig vieler Nullbytes<br/>
|
||
/etc/<br/>
|
||
Konfigurationsdateien<br/>
|
||
/etc/adjtime<br/>
|
||
zur Korrektur der batteriegepufferten CMOS-Uhr<br/>
|
||
(clock)<br/>
|
||
/etc/bash.bashrc<br/>
|
||
globale bash konfiguration<br/>
|
||
#/etc/conf.modules<br/>
|
||
-> /etc/modules.conf<br/>
|
||
/etc/cryptotab<br/>
|
||
/etc/fstab für Krypto-Filesystem<br/>
|
||
/etc/csh.login<br/>
|
||
Startdatei für die C-Shell<br/>
|
||
/etc/diphosts<br/>
|
||
eine Art /etc/passwd für SLIP Login<br/>
|
||
/etc/DIR_COLORS<br/>
|
||
festlegen der Farben für ls<br/>
|
||
42<br/>
|
||
<hr/>
|
||
<a name=43></a>4.1. Dateibaum<br/>
|
||
/etc/exports<br/>
|
||
Verzeichnisse und Rchnernamen, die diese<br/>
|
||
Verzeichnisse per NFS mounten dürfen<br/>
|
||
wird hier eingetragen<br/>
|
||
/etc/fdprm<br/>
|
||
Parameter von Diskettenformaten<br/>
|
||
/etc/fstab<br/>
|
||
um Benutzern das An- und Abmelden<br/>
|
||
von Dateisystemen zu erlauben<br/>
|
||
/etc/ftpaccess<br/>
|
||
Woher ? Wann ? Was ? ...<br/>
|
||
/etc/ftpusers<br/>
|
||
... und Wer NICHT ?<br/>
|
||
/etc/gateways<br/>
|
||
Rechner des lokalen Netzes die Kontakt mit<br/>
|
||
anderen Netzen haben<br/>
|
||
/etc/gettydefs<br/>
|
||
Beschreibung der seriellen Terminals<br/>
|
||
/etc/group<br/>
|
||
Benutzergruppen und ihre Mitglieder<br/>
|
||
/etc/host<br/>
|
||
auflösen von Netzwerknamen<br/>
|
||
über die resolver-Bibliothek<br/>
|
||
/etc/host.allow<br/>
|
||
Rechner und Netze mit denen Verbindung aufgebaut<br/>
|
||
werden darf<br/>
|
||
/etc/host.conf<br/>
|
||
eine der Konfig. den Domain Name Service<br/>
|
||
/etc/host.deny<br/>
|
||
Rechner und Netze die sich nicht mit diesem<br/>
|
||
Rechner verbinden dürfen<br/>
|
||
/etc/host.equiv<br/>
|
||
Rechner die "gleichartig" behandelt werden<br/>
|
||
/etc/HOSTNAME<br/>
|
||
hier steht der Name des Rechners<br/>
|
||
ohne den Domainnamen<br/>
|
||
/etc/hosts<br/>
|
||
ordnet IP-Adressen Hostnamen zu<br/>
|
||
/etc/inetd.conf<br/>
|
||
welche Services gestartet werden (inetd)<br/>
|
||
/etc/init<br/>
|
||
-> /sbin/init<br/>
|
||
/etc/init/ Dateien für Upstart<br/>
|
||
/etc/init.d/<br/>
|
||
Dateien für die Init-Levels<br/>
|
||
/etc/init.d/inetd<br/>
|
||
startet den inetd, z.B. zum Anmelden<br/>
|
||
vom Netzwerk<br/>
|
||
/etc/init.d/network<br/>
|
||
startet die Konfiguration<br/>
|
||
der Netzwerk Hard- und Software<br/>
|
||
/etc/init.d/portmap<br/>
|
||
starte den Portmapper,<br/>
|
||
um den RPC-Server verwenden zu können<br/>
|
||
/etc/init.d/route<br/>
|
||
setzt die statischen Routen im Netzwerk<br/>
|
||
/etc/init.d/sendmail<br/>
|
||
kontrolliert den sendmail-Prozess<br/>
|
||
in Abhängigkeit<br/>
|
||
/etc/init.d/rc0.d/ bis rc6.d/<br/>
|
||
init 0 bis 6<br/>
|
||
/etc/init.d/rcS.d/<br/>
|
||
init S<br/>
|
||
/etc/initscript<br/>
|
||
init führt die Kommandos durch dieses Script<br/>
|
||
ondemand und respawn aus<br/>
|
||
#/etc/inittab<br/>
|
||
Grunteinstellung der Init-Levels und Terminals<br/>
|
||
(/sbin/init)<br/>
|
||
/etc/isdn/<br/>
|
||
ISDN-Konfigurationen<br/>
|
||
/etc/issue<br/>
|
||
Begrüßungstext beim Login (getty)<br/>
|
||
/etc/ld.so.cache<br/>
|
||
zur Shared Libraries identifizierung (ldconfig)<br/>
|
||
43<br/>
|
||
<hr/>
|
||
<a name=44></a>4. Verzeichnisse und Dateien<br/>
|
||
/etc/ld.so.conf<br/>
|
||
Verzeichnisse zu neuen Shared Libraries<br/>
|
||
(ldconfig)<br/>
|
||
/etc/lilo.conf<br/>
|
||
Konfigurationsdatei des LILO<br/>
|
||
/etc/login.defs<br/>
|
||
Login Einstllungen (login)<br/>
|
||
/etc/magic<br/>
|
||
Magic Numbers zum Erkennen von Dateien (file)<br/>
|
||
#/etc/man.config<br/>
|
||
-> /etc/manpath.config<br/>
|
||
/etc/manpath.config<br/>
|
||
Verzeichnisse in den Manualpages gesucht werden<br/>
|
||
/etc/minicom.users<br/>
|
||
Benutzer die minicom benutzen dürfen<br/>
|
||
/etc/modules.conf<br/>
|
||
Modulinformationen ((für den Kerneld(Dämon)))<br/>
|
||
/etc/motd<br/>
|
||
Begrüßung nach dem Anmelden<br/>
|
||
/etc/mtab<br/>
|
||
Liste der aktuell zu Verfügung<br/>
|
||
stehenden Dateisystemen<br/>
|
||
/etc/mtools.conf<br/>
|
||
(un)logische Laufwerksbuchstaben<br/>
|
||
von MS-DOS für die M-Befehle<br/>
|
||
/etc/named.boot<br/>
|
||
für den named Dämon des DNS<br/>
|
||
/etc/networks<br/>
|
||
die Namen und IP der lokalen Netze<br/>
|
||
/etc/nntpserver<br/>
|
||
der Name und die IP des Newsrechners<br/>
|
||
/etc/nologin<br/>
|
||
macht jedes "normale" Einloggen unmöglich, nur<br/>
|
||
die root kann sich anmelden, sonst wird der<br/>
|
||
Inhalt von nologin ausgegeben (login)<br/>
|
||
/etc/nscd.conf<br/>
|
||
Konfiguration des Name Service Cache Dämon<br/>
|
||
/etc/nsswitch.conf<br/>
|
||
in welcher Reihenfolge bestimmte<br/>
|
||
Informationen abgefragt werden<br/>
|
||
/etc/opt/<br/>
|
||
Rechner-spezifische Konfigurationsdateien<br/>
|
||
der Pakete<br/>
|
||
/etc/passwd<br/>
|
||
Liste aller Benutzer mit Informationen<br/>
|
||
/etc/powerstatus<br/>
|
||
Zustand der Stromversorgung<br/>
|
||
/etc/printcap<br/>
|
||
Beschreibung des oder der Drucker des Systems<br/>
|
||
(lpd)<br/>
|
||
/etc/profile<br/>
|
||
Globale Benutzerprofile<br/>
|
||
/etc/prtocols<br/>
|
||
Liste aller Internetprotokolle die vom Kernel<br/>
|
||
unterstützt werden<br/>
|
||
/etc/psdatabase<br/>
|
||
enthält kernelabhängige Daten für procps<br/>
|
||
/etc/rc*<br/>
|
||
Systeminitialisierungsdateien (init)<br/>
|
||
/etc/rc.config<br/>
|
||
zentrale Konfigurationsdatei -> /etc/sysconfig/<br/>
|
||
/etc/rc.config.d/<br/>
|
||
weitere Dateien mit rc.config Variablen<br/>
|
||
/etc/resolv.conf<br/>
|
||
bestimmt ob und wo ein Nameserver erreicht<br/>
|
||
werden kann<br/>
|
||
/etc/rpc<br/>
|
||
enthält die Zuordnung der durch den rpc-Service<br/>
|
||
bereitgestellten Netzdienste zu Socketnummern<br/>
|
||
/etc/securetty<br/>
|
||
Terminals von den sich der Benutzer<br/>
|
||
root anmelden darf (login)<br/>
|
||
/etc/services<br/>
|
||
ordnet Portnummern Servicenamen zu<br/>
|
||
/etc/shadow<br/>
|
||
hier sind die Shadow-Passwörter gespeichert<br/>
|
||
/etc/shells<br/>
|
||
Liste aller Shells<br/>
|
||
44<br/>
|
||
<hr/>
|
||
<a name=45></a>4.1. Dateibaum<br/>
|
||
/etc/shutdown.allow<br/>
|
||
Liste der Benutzer die zum Herunterfahren des<br/>
|
||
Systems berechtigt sind<br/>
|
||
/etc/skel/<br/>
|
||
Dateien die beim Anlegen<br/>
|
||
eines Benutzers in das ~ kopiert werden<br/>
|
||
/etc/SuSE-release<br/>
|
||
Angaben zur installierten SuSE Linux version<br/>
|
||
/etc/sysconfig/<br/>
|
||
zentrale Konfigurationsdateien -> /etc/rc.config<br/>
|
||
/etc/syslogd.conf<br/>
|
||
legt fest wohin Meldungen geschrieben werden<br/>
|
||
(syslogd)<br/>
|
||
/etc/termcap<br/>
|
||
Beschreibungen für Terminaleigenschaften (getty)<br/>
|
||
/etc/ttytype<br/>
|
||
legt den voreingestellten Terminaltyp<br/>
|
||
für die Terminals fest<br/>
|
||
/etc/XF86Config<br/>
|
||
bis XFree86.3.3.x Konfigurationsdatei<br/>
|
||
/etc/X11/XF86Config<br/>
|
||
ab XFree86.4.x Konfigurationsdatei<br/>
|
||
/floppy/<br/>
|
||
dient zur Floppy-Einbindung<br/>
|
||
/home/<br/>
|
||
Heimatverzeichnisse der Benutzer<br/>
|
||
/home/~/.bash_history<br/>
|
||
gespeicherte Eingaben der bash<br/>
|
||
/home/~/.bashrc<br/>
|
||
Konfiguration der bash<br/>
|
||
/home/~/.ctwmrc<br/>
|
||
Konfiguration des ctwm-Fenstermanagers<br/>
|
||
/home/~/.exrc<br/>
|
||
Konfiguration des vi, ex<br/>
|
||
/home/~/.fvwmrc<br/>
|
||
Konfiguration des fvwm-Fenstermanagers<br/>
|
||
/home/~/.openwin-menu<br/>
|
||
Konfiguration des olvwm und olwm-Fenstermanagers<br/>
|
||
/home/~/.profile<br/>
|
||
wird nach dem User-Anmelden in der bash<br/>
|
||
ausgeführt<br/>
|
||
/home/~/.rhosts<br/>
|
||
erlaubt die r-Kommandos<br/>
|
||
/home/~/.X.err<br/>
|
||
Meldungen des X-Servers<br/>
|
||
/home/~/.xinitrc<br/>
|
||
diese Datei wird von .xsession ausgeführt<br/>
|
||
/home/~/.xsession<br/>
|
||
diese Datei wird nach dem Befehl<br/>
|
||
startx ausgeführt<br/>
|
||
/lib/<br/>
|
||
gemeinsam genutzte Bibliotheken Shared Libraries<br/>
|
||
/lib/modules/<br/>
|
||
nachladbare Module<br/>
|
||
/lost+found/<br/>
|
||
verlorene Daten, ist in jeder Wurzel<br/>
|
||
des EXT2-Dateisystems<br/>
|
||
/media/cdrom/<br/>
|
||
dient zur CDROM-Einbindung, ist oft im /<br/>
|
||
/media/floppy/<br/>
|
||
dient zur Floppy-Einbindung, ist oft im /<br/>
|
||
/mnt/<br/>
|
||
für temporär einzuhängende Dateisysteme<br/>
|
||
/mnt/cdrom/<br/>
|
||
dient zur CDROM-Einbindung, ist oft im /<br/>
|
||
/mnt/floppy/<br/>
|
||
dient zur Floppy-Einbindung, ist oft im /<br/>
|
||
/opt/<br/>
|
||
kommerzielle Systemerweiterungen<br/>
|
||
/opt/kde/<br/>
|
||
grafische Benutzeroberfläche KDE<br/>
|
||
/proc/<br/>
|
||
virtuelles Filesystem über laufende Prozesse<br/>
|
||
/proc/cpuinfo<br/>
|
||
Informationen zur CPU<br/>
|
||
/proc/devices<br/>
|
||
Liste der wichtigsten Gerätetreiber<br/>
|
||
/proc/dma<br/>
|
||
Liste der verwendeten DMA-Kanäle<br/>
|
||
/proc/filesystems<br/>
|
||
Liste der bekannten Dateisystemtypen<br/>
|
||
/proc/interrupts<br/>
|
||
Liste der Interrupts<br/>
|
||
45<br/>
|
||
<hr/>
|
||
<a name=46></a>4. Verzeichnisse und Dateien<br/>
|
||
/proc/ioports<br/>
|
||
bekannte und definierte EA-Schnittstellen<br/>
|
||
/proc/kcore<br/>
|
||
Gerätedatei für den Zugang<br/>
|
||
zum physikalischen Hauptspeicher<br/>
|
||
/proc/kmsg<br/>
|
||
hier können Systemfehlermeldungen<br/>
|
||
ausgelesen werden<br/>
|
||
/proc/ksyms<br/>
|
||
Liste der Kernel-Symbole und<br/>
|
||
ihrer Speicheradressen<br/>
|
||
/proc/loadavg<br/>
|
||
durchschnittliche Systembelastung<br/>
|
||
in den letzten 1, 5 und 10 Min.<br/>
|
||
/proc/meminfo<br/>
|
||
Beschreibung der aktuellen Speicherauslastung<br/>
|
||
/proc/modules<br/>
|
||
Liste der geladenen Module und<br/>
|
||
Anzahl der aktuellen Nutzungen<br/>
|
||
/proc/mounts<br/>
|
||
Liste der eingehängten Dateisysteme<br/>
|
||
/proc/net/<br/>
|
||
Informationen zur Netzwerkauslastung<br/>
|
||
/proc/pci<br/>
|
||
Liste der gefundenen Geräte am PCI-Bus<br/>
|
||
/proc/scsi/<br/>
|
||
Informationen über SCSI-Geräte<br/>
|
||
/proc/stat<br/>
|
||
Liste allgemeiner Statistiken zum System<br/>
|
||
/proc/uptime<br/>
|
||
Sekunden seit dem Systemstart und<br/>
|
||
der Leerlaufzeit<br/>
|
||
/proc/version<br/>
|
||
aktuelle Version des Linux-Kernels<br/>
|
||
/root/<br/>
|
||
Heimatverzeichnis des Systemverwalters root<br/>
|
||
/sbin/<br/>
|
||
Administrationskommandos<br/>
|
||
/sbin/init<br/>
|
||
Nach dem Kernelstart wird versucht das<br/>
|
||
Programm init zu starten<br/>
|
||
#/sbin/init.d/<br/>
|
||
-> /etc/init.d/<br/>
|
||
/tmp/<br/>
|
||
temporäre Dateien<br/>
|
||
/usr/<br/>
|
||
ausführbare Dateien, Libraries, X Window u.s.w<br/>
|
||
/usr/bin/<br/>
|
||
allgemein verfügbare Programmdateien<br/>
|
||
#/usr/doc/<br/>
|
||
-> /usr/share/doc/<br/>
|
||
/usr/games/<br/>
|
||
Spiele :-)<br/>
|
||
/usr/include/<br/>
|
||
Headerdateien für den C-Compiler<br/>
|
||
/usr/include/g++/<br/>
|
||
Headerdateien für den C++-Compiler<br/>
|
||
/usr/info/<br/>
|
||
Infosystem fur GNU-Kommandos<br/>
|
||
/usr/lib/<br/>
|
||
Programmbibliotheken<br/>
|
||
/usr/lib/terminfo/<br/>
|
||
Verzeichnis mit Beschreibungen<br/>
|
||
für Terminaleigenschaften<br/>
|
||
/usr/local/<br/>
|
||
Ablage von Dateien und Kommandos die nicht<br/>
|
||
zur Distribution gehören<br/>
|
||
/usr/man/<br/>
|
||
Linux Handbuch<br/>
|
||
/usr/sbin/<br/>
|
||
Superuser Programmdateien<br/>
|
||
/usr/share/doc/<br/>
|
||
Dokumentationen<br/>
|
||
/usr/share/doc/packages/<br/>
|
||
Dokumentation der Programme<br/>
|
||
/usr/src/<br/>
|
||
Quellcode für den Kernel und weitere Programme<br/>
|
||
/usr/src/linux/<br/>
|
||
Kernel-Source<br/>
|
||
/usr/src/linux/arch/<br/>
|
||
Hardwarearchitektur-abhängige<br/>
|
||
46<br/>
|
||
<hr/>
|
||
<a name=47></a>4.1. Dateibaum<br/>
|
||
Bestandteile des Kerns<br/>
|
||
/usr/src/linux/arch/alpha/<br/>
|
||
DEC-Alpha-Prozessoren<br/>
|
||
/usr/src/linux/arch/i386/<br/>
|
||
386-Prozessoren<br/>
|
||
/usr/src/linux/arch/m68k/<br/>
|
||
Motorola 68k-Prozessoren<br/>
|
||
/usr/src/linux/arch/mips/<br/>
|
||
MIPS-Prozessoren R3000, R4000 bis R10000<br/>
|
||
/usr/src/linux/arch/ppc/<br/>
|
||
Power-PC-Prozessor (ursprünglich IBM)<br/>
|
||
/usr/src/linux/arch/sparc/<br/>
|
||
SPARC-Prozessoren der Firma SUN<br/>
|
||
/usr/src/linux/Documentation/devices.txt<br/>
|
||
offizielle Liste der<br/>
|
||
registrierten Devices mit ihren Gerätenummern<br/>
|
||
/usr/src/linux/drivers/<br/>
|
||
Zeichen-, Block-orientierte,<br/>
|
||
Netz-,Soundkarten-Gerätetreiber<br/>
|
||
/usr/src/linux/drivers/block/<br/>
|
||
Treiber für blockorientierte Ein-/Ausgabegeräte<br/>
|
||
wie Festplatten<br/>
|
||
/usr/src/linux/drivers/cdrom/<br/>
|
||
Treiber für CD-ROM Laufwerke<br/>
|
||
außer Atapi/IDE und SCSI<br/>
|
||
/usr/src/linux/drivers/char/<br/>
|
||
Zeichen. Treiber serielle Schnittstellen,<br/>
|
||
Bildschirm, Tastatur usw.<br/>
|
||
/usr/src/linux/drivers/net/<br/>
|
||
Treiber für die Netzwerkkarten<br/>
|
||
/usr/src/linux/drivers/pci/<br/>
|
||
Spezielle Treiber für PCI-Bus-Bausteine<br/>
|
||
/usr/src/linux/drivers/sound/<br/>
|
||
Soundkartentreiber<br/>
|
||
/usr/src/linux/drivers/scsi/<br/>
|
||
SCSI-Treiber<br/>
|
||
/usr/src/linux/fs/<br/>
|
||
Dateisysteme<br/>
|
||
/usr/src/linux/ipc/<br/>
|
||
InterProzessKommunikation,<br/>
|
||
z.B. Shared Memory, Semaphoren<br/>
|
||
/usr/src/linux/include/<br/>
|
||
Header-Dateien mit Struktur- und<br/>
|
||
Konstantendefinitionen<br/>
|
||
/usr/src/linux/init/<br/>
|
||
Initialisierungscode beim Starten des Systems<br/>
|
||
/usr/src/linux/kernel/<br/>
|
||
zentrale Aufgaben, z.B. Prozessverwaltung und<br/>
|
||
Schedulimg usw.<br/>
|
||
/usr/src/linux/mm/<br/>
|
||
Speicherverwaltung<br/>
|
||
/usr/src/linux/modules/<br/>
|
||
nachladbarer Teil des Kerns<br/>
|
||
/usr/src/linux/net/<br/>
|
||
Implementierung der Protokolltreiber<br/>
|
||
für TCP/IP,SPX/IPX usw.<br/>
|
||
/usr/src/linux/README<br/>
|
||
Installationsbeschreibung für den Kernel<br/>
|
||
/usr/X11R6/<br/>
|
||
für Daten zum X-Window-System<br/>
|
||
/usr/X11R6/bin/<br/>
|
||
Programmdateien die mit X-Window-System arbeiten<br/>
|
||
/usr/X11R6/lib/X11/<br/>
|
||
Fenstermanager<br/>
|
||
/usr/X11R6/lib/X11/app-defaults/<br/>
|
||
voreingestellte Konfigurationen der<br/>
|
||
Anwendungen<br/>
|
||
/var/<br/>
|
||
sich schnell oder häufig ändernde Daten<br/>
|
||
/var/adm/inst-log/<br/>
|
||
Protokolldateien zur installation<br/>
|
||
/var/lib/rpm/Packages<br/>
|
||
rpm-Datenbank<br/>
|
||
/var/lib/rpm/packages.rpm<br/>
|
||
-> /var/lib/rpm/Packages<br/>
|
||
/var/log/<br/>
|
||
Protokolldateien<br/>
|
||
/var/log/boot.msg<br/>
|
||
Kernelmeldungen vom letzten Start<br/>
|
||
47<br/>
|
||
<hr/>
|
||
<a name=48></a>4. Verzeichnisse und Dateien<br/>
|
||
/var/log/messages<br/>
|
||
Datei in der die Kernel Meldungen<br/>
|
||
gespeichert werden<br/>
|
||
/var/log/syslog<br/>
|
||
zeit an welches Modul fehlt<br/>
|
||
/var/tmp/<br/>
|
||
für große temporäre Dateien<br/>
|
||
/vmlinuz<br/>
|
||
der Defaultkernel kann auch in /boot/ liegen<br/>
|
||
4.2. /etc/fstab<br/>
|
||
#Device<br/>
|
||
Mountpunkt Typ<br/>
|
||
Optionen<br/>
|
||
Dump Check<br/>
|
||
/dev/hdd1 /<br/>
|
||
reiserfs defaults<br/>
|
||
1<br/>
|
||
1<br/>
|
||
/dev/hda1 /boot<br/>
|
||
ext2<br/>
|
||
defaults<br/>
|
||
1<br/>
|
||
2<br/>
|
||
/dev/sda1 swap<br/>
|
||
swap<br/>
|
||
defaults<br/>
|
||
0<br/>
|
||
0<br/>
|
||
none<br/>
|
||
/proc<br/>
|
||
proc<br/>
|
||
defaults<br/>
|
||
0<br/>
|
||
0<br/>
|
||
/dev/hda3 /temp<br/>
|
||
vfat<br/>
|
||
defaults,umask=7000,uid=500,gid=100 0<br/>
|
||
0<br/>
|
||
/dev/hda2 /windows<br/>
|
||
vfat<br/>
|
||
defaults<br/>
|
||
0<br/>
|
||
0<br/>
|
||
/dev/hdc /cdrom<br/>
|
||
auto<br/>
|
||
ro,noauto,user,exec<br/>
|
||
0<br/>
|
||
0<br/>
|
||
/dev/fd0 /floppy<br/>
|
||
auto<br/>
|
||
noauto,user<br/>
|
||
0<br/>
|
||
0<br/>
|
||
/dev/hda3 /save<br/>
|
||
reiserfs loop,encryption=twofish,noauto,users 0<br/>
|
||
0<br/>
|
||
server:/ /server<br/>
|
||
nfs<br/>
|
||
rw,noauto,user,exec<br/>
|
||
0<br/>
|
||
0<br/>
|
||
4.3. /dev/<br/>
|
||
ls -l /dev/fd0<br/>
|
||
brw-rw-rw- 1 root disk<br/>
|
||
2,<br/>
|
||
0 Feb 16 16:30 /dev/fd0<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
+----- Gerät<br/>
|
||
|<br/>
|
||
|<br/>
|
||
+------ Minor-Device-Nummer(Nebennummer)<br/>
|
||
|<br/>
|
||
+----------- Major-Device-Nummer(Hauptnummer)<br/>
|
||
+----------------- b-blockorientierte Geräte c-zeichenorientierte Geräte<br/>
|
||
Die Verbindung zum Kernel wird über Slots oder Kanäle hergestellt, die nummeriert<br/>
|
||
sind und hinter denen sich die Treiber verbergen. Die Nummer des Gerätetreibers wird<br/>
|
||
als Haupgerätenummer(Major Device Number) bezeichnet. Ein Treiber kann mehrere<br/>
|
||
Geräte des gleichen Typs verwalten. Um die einzelnen Geräte zu unterscheiden, wird<br/>
|
||
dem Treiber eine zweite Zahl, die Untergerätenummer (Minor Device Number), über-<br/>
|
||
geben. Diese beiden Zahlen charakterisieren jede Datei im /dev Verzeichnis. Zusätzlich<br/>
|
||
werden noch zwei Arten von Geräten unterschieden :<br/>
|
||
Die blockorientierten Geräte mit direktem Zugriff, wie z.B. Disketten oder Festplatten,<br/>
|
||
und die zeichenorientierten squentiellen Geräte, wie Drucker, Terminal oder Maus.<br/>
|
||
Damit hat jede Gerätedatei drei “Koordinaten“, mit der sie vom Kernel, unabhängig<br/>
|
||
von ihrem Namen, eindeutig identifiziert werden kann. Die offizielle Liste der regi-<br/>
|
||
strierten Devices mit ihren Gerätenummern ist bei den Kernelsourcen in der Datei<br/>
|
||
/usr/src/linux/Documentation/devices.txt zu finden.<br/>
|
||
48<br/>
|
||
<hr/>
|
||
<a name=49></a>4.4. Dateisystemtypen unter Linux<br/>
|
||
4.4. Dateisystemtypen unter Linux<br/>
|
||
affs<br/>
|
||
Ein auf dem Amiga verwendetes Dateisystem (engl. Amiga Fast Filesystem).<br/>
|
||
ext2<br/>
|
||
Das Standard-Dateisystem unter Linux (engl. Second extended Filesystem).<br/>
|
||
ext3<br/>
|
||
Journaling Filesystem<br/>
|
||
hpfs<br/>
|
||
Standard-Dateisystem von IBM OS/2 (engl. High Performance Filesystem).<br/>
|
||
Dieses wird von Linux nur mit Lesezugriff unterstüzt.<br/>
|
||
iso9660 Standard-Dateisystem auf CD-ROMs.<br/>
|
||
minix<br/>
|
||
Dieses Dateisystem hat seinen Ursprung in akademischen Lehrprojekten<br/>
|
||
über Betriebssysteme und war das erste Dateisystem, welches für Linux<br/>
|
||
verwendet wurde. Heute wird es unter Linux vornehmlich als Dateisystem<br/>
|
||
für Disketten verwendet.<br/>
|
||
msdos<br/>
|
||
Ursprünglich von DOS verwendetes Dateisystem, welches aber bis heute von<br/>
|
||
diversen Betriebssystemen genutzt wird.<br/>
|
||
ncpfs<br/>
|
||
Dateisystem für das Novell-Volumes.<br/>
|
||
nfs<br/>
|
||
Hier sind die Daten auf der Festplatte eines anderen Rechners und<br/>
|
||
werden über das Netzwerk zugänglich gemacht (engl. Network Filesystem).<br/>
|
||
proc<br/>
|
||
Prozess-Dateisystem (virtuell).<br/>
|
||
reiserfs<br/>
|
||
Das ReiserFS ist ein hochperformantes "’Journaling Filesystem"’;<br/>
|
||
seit SuSE Linux 6.4 auf x86-Architekturen verfügbar.<br/>
|
||
smbfs<br/>
|
||
SMB (engl. Server Message Block) ist ein Protokoll, das von WfW,<br/>
|
||
Windoofs NT und LAN Manager verwendet wird, um Dateien über ein Netzwerk<br/>
|
||
verfügbar zu machen.<br/>
|
||
sysv<br/>
|
||
Von SCO-Unix, Xenix und Coherent (kommerzielle UNIX-Systeme für PCs)<br/>
|
||
verwendetes Dateisystem.<br/>
|
||
ufs<br/>
|
||
Von BSD, SunOS und NeXTstep verwendetes Dateisystem; dies Dateisystem<br/>
|
||
wird von Linux nur mit Lesezugriff unterstützt.<br/>
|
||
umsdos Setzt auf einem gewöhnlichen fat-Dateisystem auf (engl. UNIX on MSDOS)<br/>
|
||
und erreicht durch Anlegen spezieller Dateien die notwendige UNIX-<br/>
|
||
Funktionalität (Rechte, Links, lange Dateinamen); es ist jedoch sehr<br/>
|
||
langsamm.<br/>
|
||
vfat<br/>
|
||
Erweiterung des fat-Dateisystems hinsichtlich der Länge der Dateinamen<br/>
|
||
(engl. Virtual FAT).<br/>
|
||
ntfs<br/>
|
||
Windows NT-Dateisystem.<br/>
|
||
4.5. /etc/group<br/>
|
||
#Gruppenname:Paßwort:Gruppennummer:Mitgliederliste<br/>
|
||
root:x:0:root<br/>
|
||
bin:x:1:root,bin,daemon<br/>
|
||
daemon:x:2:<br/>
|
||
sys:x:3:<br/>
|
||
tty:x:5:<br/>
|
||
disk:x:6:higi<br/>
|
||
49<br/>
|
||
<hr/>
|
||
<a name=50></a>4. Verzeichnisse und Dateien<br/>
|
||
lp:x:7:<br/>
|
||
shadow:x:15:root,gdm<br/>
|
||
audio:x:17:root,higi<br/>
|
||
public:x:32:<br/>
|
||
video:x:33:higi<br/>
|
||
game:x:40:higi<br/>
|
||
modem:x:43:<br/>
|
||
users:x:100:<br/>
|
||
nogroup:x:65534:root<br/>
|
||
4.6. /etc/hosts<br/>
|
||
# IP-Adresse #Aliasnamen<br/>
|
||
127.0.0.1 localhost<br/>
|
||
127.0.1.1 latex<br/>
|
||
::1<br/>
|
||
localhost ip6-localhost ip6-loopback<br/>
|
||
ff02::1<br/>
|
||
ip6-allnodes<br/>
|
||
ff02::2<br/>
|
||
ip6-allrouters<br/>
|
||
192.168.0.10 rechner rechner.loc www.rechner.loc<br/>
|
||
4.7. /etc/inittab<br/>
|
||
Nach dem Kernelstart wird versucht das Programm init zu starten. Dabei werden<br/>
|
||
nacheinander die Verzeichnisse /etc/, /bin/ und /sbin/ nach init abgesucht. Kann init<br/>
|
||
/dev/console nicht öffnen wird im Einzelbenutzerbetrieb (Single User Mode) gestartet.<br/>
|
||
Beim LILO-Bootpromt kann init=/bin/sh angegeben werden um die Shell anstelle<br/>
|
||
von init zu laden. Das Programm init liest die Datei /etc/inittab und wird durch<br/>
|
||
die Datei das System konfigurieren. /etc/inittab wird vom Kommando init Zeile für<br/>
|
||
Zeile abgearbeitet. In jeder Zeile seht jeweils eine Anweisung. Jede Zeile wird durch<br/>
|
||
Doppelpunkte unterteilt. Der Aufbau sieht wie folgt aus:<br/>
|
||
Terminal:Termcapeintrag:Gettykommando<br/>
|
||
Simpleinit von Peter Orbaek mit<br/>
|
||
Erweiterung von Werner Almesberger<br/>
|
||
4.7.1. Terminal<br/>
|
||
Bezeichnet das Terminal (tty1, tty2, ttyS0 ...)<br/>
|
||
4.7.2. Termcapeintrag<br/>
|
||
Wird in die TERM Variable der Shell geschrieben und sollte mit einem Eintrag in der<br/>
|
||
Datei /etc/termcap übereinstimmen.<br/>
|
||
50<br/>
|
||
<hr/>
|
||
<a name=51></a>4.7. /etc/inittab<br/>
|
||
4.7.3. Gettykommando<br/>
|
||
Pfad und Optionen zum Getty-Kommando<br/>
|
||
# Beispiel einer inittab für simpleinit # Format: Terminal:Termcapeintrag:Gettykommando<br/>
|
||
tty1:linux:/sbin/getty 9600 tty1 tty2:console:/sbin/getty 9600 tty2 tty5:con100x40:/sbin/getty<br/>
|
||
9600 tty5 ttyS1:vt102:/sbin/getty 9600 ttyS1<br/>
|
||
Kürzel:Arbeitsstufen:Modus:Kommando<br/>
|
||
Sysvinit von Mike Jagdis und<br/>
|
||
Miquel van Smoorenburg<br/>
|
||
4.7.4. Kürzel<br/>
|
||
Jede Aktion muß mit einem eindeutigen (maximal vierstelligen, a.out oder Librari-<br/>
|
||
es<5.2.18 maximal zweistelligen) Kürzel versehen werden, das bei Einträgen in Logfiles<br/>
|
||
und bei Fehlermeldungen ausgegeben wird.<br/>
|
||
4.7.5. Arbeitsstufen<br/>
|
||
Es werden hier die Arbeitsstufen (Runlevel) eingetragen. Zulässige Arbeitsstufen sind<br/>
|
||
0 - 9 und s. Es können auch die Pseudoarbeitsstufen(ondemand) a, b, c und q für<br/>
|
||
einmalig auszuführende Kommandos verwendet werden. Es wird ohne Groß und Klein-<br/>
|
||
schreibung bezeichnet. In einer Zeile können bis zu 11 Runlevel zugeordnet werden.<br/>
|
||
Wenn das Feld für den Runlevel leer ist, wird die Aktion bei jedem Moduswechsel<br/>
|
||
ausgeführt.<br/>0<br/>
|
||
Systemhalt<br/>
|
||
S<br/>
|
||
Einzelbenutzerbetrieb (Single User Mode)<br/>
|
||
1<br/>
|
||
Einzelbenutzerbetrieb (Single User Mode)<br/>
|
||
2<br/>
|
||
Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk<br/>
|
||
(Local multiuser without remote network)<br/>
|
||
3<br/>
|
||
Voller Mehrbenutzerbetrieb mit Netzwerk<br/>
|
||
(Full multiuser with network)<br/>
|
||
4<br/>
|
||
Frei (Not used)<br/>
|
||
5<br/>
|
||
Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM<br/>
|
||
(Full multiuser with network and xdm)<br/>
|
||
6<br/>
|
||
Systemneustart (System reboot)<br/>
|
||
Q<br/>
|
||
Quit zum Neueinlesen der inittab<br/>
|
||
4.7.6. Modus<br/>
|
||
Gibt an wie das Kommando im letzten Feld ausgeführt werden soll.<br/>initdefault<br/>
|
||
Bestimmt den Runlevel beim Systemstart.<br/>
|
||
sysinit<br/>
|
||
Wird einmal nach dem Kernelstart ausgeführt.<br/>
|
||
bootwait<br/>
|
||
Wird einmal ausgefürt, wenn in einem Mehrbenutzerbetrieb<br/>
|
||
gestartet wird und wartet bis das Kommando beendet ist.<br/>
|
||
boot<br/>
|
||
Wie bootwait nur das nicht gewartet wird.<br/>
|
||
51<br/>
|
||
<hr/>
|
||
<a name=52></a>4. Verzeichnisse und Dateien<br/>
|
||
respawn<br/>
|
||
Überwacht das laufende Kommando und startet es neu, wenn es<br/>
|
||
beendet wurde. Wird es in zwei Minuten 10 mal neu gestartet,<br/>
|
||
setzt init das Kommando für fünf Minuten aus.<br/>
|
||
ondemand<br/>
|
||
Wie respawn, um mit Buchstaben gekennzeichnete Level einzelne<br/>
|
||
Kommandos mit telinit zu starten.<br/>
|
||
wait<br/>
|
||
Wartet bis das Kommando beendet ist.<br/>
|
||
once<br/>
|
||
Wird einmal ausgefürt, es wird nicht gewartet.<br/>
|
||
off<br/>
|
||
Wenn das Kommando läuft, wird es angehalten.<br/>
|
||
ctrlaltdel<br/>
|
||
Kommando (Signal SIGINT, [Strg]+[Alt]+[Entf]) z.B. Rebooten des<br/>
|
||
Systems.<br/>
|
||
kbrequest<br/>
|
||
Kommando wird ausgeführt, wenn das Signal SIGWINCH<br/>
|
||
[Alt]+[Pfeil hoch] von der Tastatur kommt.<br/>
|
||
powerwait<br/>
|
||
Wenn init sich in einem passenden Runlevel befindet, das<br/>
|
||
Signal SIGPWR erhält oder über Pipeline /dev/initctrl den<br/>
|
||
entsprechenden Befehl erhält und wartet auf Beendigung des<br/>
|
||
Kommandows. Das Signal kann mit Hilfe eines Dämons von einer USV<br/>
|
||
erzeugt werden.<br/>
|
||
powerfail<br/>
|
||
Wie powerwait wartet jedoch nicht.<br/>
|
||
powerfailnow<br/>
|
||
Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das<br/>
|
||
Wort Low enthalten. So kann das APM eines Notebooks mit Hilfe<br/>
|
||
eines Dämons das System herrunterfahren.<br/>
|
||
powerokwait<br/>
|
||
Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das<br/>
|
||
Wort OK enthalten. Auf diese weise kann das System in den<br/>
|
||
normalen Zustand gebracht werden, nachdem die Stromversorgung<br/>
|
||
wieder hergestellt ist.<br/>
|
||
4.7.7. Kommando<br/>
|
||
Pfad und Optionen zum Kommando, wird durch die Bourne-Again-Shell abgearbeitet.<br/>
|
||
Bei jedem Kommandostart wird versucht die Datei /etc/initscript abzuarbeiten, die<br/>
|
||
dann das Kommando startet.<br/>
|
||
# Beispiel einer inittab für sysvinit<br/>
|
||
# Format: Kürzel:Arbeitsstufen:Modus:Kommando<br/>
|
||
# Bestimmt den Runlevel beim Systemstart<br/>
|
||
id:5:initdefault:<br/>
|
||
# Erstes Script, wenn nicht im Notfallsystem (-b) gestartet wird.<br/>
|
||
si::bootwait:/etc/init.d/boot<br/>
|
||
# /etc/init.d/rc übernimmt die Runlevel Behandlung<br/>
|
||
l0:0:wait:/etc/init.d/rc 0<br/>
|
||
l1:1:wait:/etc/init.d/rc 1<br/>
|
||
l2:2:wait:/etc/init.d/rc 2<br/>
|
||
52<br/>
|
||
<hr/>
|
||
<a name=53></a>4.8. /etc/passwd<br/>
|
||
l3:3:wait:/etc/init.d/rc 3<br/>
|
||
#l4:4:wait:/etc/init.d/rc 4<br/>
|
||
l5:5:wait:/etc/init.d/rc 5<br/>
|
||
l6:6:wait:/etc/init.d/rc 6<br/>
|
||
# Bestimmt den Einzelbenutzerbetrieb (Single User Mode)<br/>
|
||
ls:S:wait:/etc/init.d/rc S<br/>
|
||
~~:S:respawn:/sbin/sulogin<br/>
|
||
# Aktion bei Signal SIGINT, [Strg]+[Alt]+[Entf]<br/>
|
||
ca::ctrlaltdel:/sbin/shutdown -r -t 4 now<br/>
|
||
# Aktion bei Signal SIGWINCH [Alt]+[Pfeil hoch]<br/>
|
||
kb::kbrequest:/bin/echo "’Keyboard Request -- edit /etc/inittab to let this work."’<br/>
|
||
# Aktion bei Stormausfall und Wiederherstellung<br/>
|
||
pf::powerwait:/etc/init.d/powerfail start<br/>
|
||
pn::powerfailnow:/etc/init.d/powerfail now<br/>
|
||
#pn::powerfail:/etc/init.d/powerfail now<br/>
|
||
po::powerokwait:/etc/init.d/powerfail stop<br/>
|
||
# getty-Programme für die normalen Runlevels<br/>
|
||
1:2345:respawn:/sbin/mingetty --noclear tty1<br/>
|
||
2:2345:respawn:/sbin/mingetty tty2<br/>
|
||
3:2345:respawn:/sbin/mingetty tty3<br/>
|
||
4:2345:respawn:/sbin/mingetty tty4<br/>
|
||
5:2345:respawn:/sbin/mingetty tty5<br/>
|
||
6:2345:respawn:/sbin/mingetty tty6<br/>
|
||
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102<br/>
|
||
4.8. /etc/passwd<br/>
|
||
#Benutzername:Paßwort:Benutzernummer:Gruppennummer:GCOS:Heimat:Shell<br/>
|
||
root:x:0:0:root:/root:/bin/bash<br/>
|
||
bin:x:1:1:bin:/bin:/bin/bash<br/>
|
||
daemon:x:2:2:daemon:/sbin:/bin/bash<br/>
|
||
lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash<br/>
|
||
games:x:12:100::/var/games:/bin/bash<br/>
|
||
man:x:13:2::/var/cache/man:/bin/bash<br/>
|
||
ftp:x:40:2:ftp account:/usr/local/ftp:/bin/bash<br/>
|
||
nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash<br/>
|
||
higi:x:500:100:Higi:/home/higi:/bin/bash<br/>
|
||
gast:x:501:100:Gast:/home/gast:/bin/bash<br/>
|
||
53<br/>
|
||
<hr/>
|
||
<a name=54></a><hr/>
|
||
<a name=55></a>5. Die Shells<br/>
|
||
5.1. Die Shells<br/>
|
||
Eine Shell ist ein Kommando-Interpreter, ein Programm das durch ein anderes ersetzt<br/>
|
||
werden kann. Es zerlegt die Kommandozeile, führt Sonderzeichen durch und reicht das<br/>
|
||
Kommando an UNIX weiter. Ohne Shell gibt es keinen Zugang zum Betriebssystem.<br/>
|
||
/bin/sh<br/>
|
||
Bourne-Shell<br/>
|
||
zum programmieren<br/>
|
||
/bin/ksh<br/>
|
||
Korn-Shell<br/>
|
||
Mischung aus C-und Bourne-Shell<br/>
|
||
/bin/csh<br/>
|
||
C-Shell<br/>
|
||
zum interaktiven Arbeiten<br/>
|
||
/bin/bash<br/>
|
||
Bourne-Again-Shell<br/>
|
||
/bin/tcsh<br/>
|
||
TC-Shell<br/>
|
||
export<br/>
|
||
Setzt Umgebungsvariablen, Variablen exportieren<br/>
|
||
locate<br/>
|
||
Findet Dateien anhand einer Datenbank<br/>
|
||
setenv<br/>
|
||
Setzt Umgebungsvariablen unter Nicht-Bash Shells, z.B. csh<br/>
|
||
unset<br/>
|
||
Variable löschen in ksh, bsh und bash<br/>
|
||
unsetenv<br/>
|
||
Variable löschen in csh<br/>
|
||
5.2. Die Start-Scripts<br/>
|
||
~/.bashrc<br/>
|
||
bash<br/>
|
||
5.3. Tastenkombinationen<br/>
|
||
[Strg]+[l]<br/>
|
||
Bildschirm löschen<br/>
|
||
bash und csh<br/>
|
||
[Strg]+[a] oder [Pos 1]<br/>
|
||
Zeilenanfang<br/>
|
||
bash und csh<br/>
|
||
[Strg]+[e] oder [Ende]<br/>
|
||
Zeilenende<br/>
|
||
bash und csh<br/>
|
||
[Alt]+[f]<br/>
|
||
Wort vorwäts<br/>
|
||
bash und csh<br/>
|
||
[Alt]+[b]<br/>
|
||
Wort rückwärts<br/>
|
||
bash und csh<br/>
|
||
[Strg]+[c]<br/>
|
||
Befehlseingabe verwerfen<br/>
|
||
alle Shells<br/>
|
||
[Strg]+[c]<br/>
|
||
Programm abbrechen<br/>
|
||
[Pfeil rechts] und [Pfeil links]<br/>
|
||
Cursor bewegen<br/>
|
||
bash und csh<br/>
|
||
[Pfeil hoch] und [Pfeil runter]<br/>
|
||
History-Scrolling<br/>
|
||
bash und csh<br/>
|
||
[Strg]+[r]<br/>
|
||
in der History suchen<br/>
|
||
bash<br/>
|
||
[Tab]<br/>
|
||
Komplettierung<br/>
|
||
bash und csh<br/>
|
||
[Strg]+[d]<br/>
|
||
beendet die Shell<br/>
|
||
alle Shells<br/>
|
||
55<br/>
|
||
<hr/>
|
||
<a name=56></a>5. Die Shells<br/>
|
||
[Strg]+[d] oder [Entf]<br/>
|
||
ein Zeichen löschen<br/>
|
||
[Strg]+[h] oder [Backspace]<br/>
|
||
Zeichen rückwärts löschen<br/>
|
||
[Strg]+[k]<br/>
|
||
Zeile ab Cursor löschen<br/>
|
||
[Alt Gr]+[Umschalt]<br/>
|
||
zwei folgende Zeichen vereinen<br/>
|
||
ae -> AE, co -> \texteuro<br/>
|
||
[Strg]+[z]<br/>
|
||
im Vordergrund laufendes Programm anhalten<br/>
|
||
Fortsetzung mit fg<br/>
|
||
[Umschalt]+[Bild hoch] und<br/>
|
||
vorherige Textausgabe<br/>
|
||
alle Shells<br/>
|
||
[Umschalt]+[Bild runter]<br/>
|
||
zurückholen<br/>
|
||
[Alt]+[F1] bis [F6]<br/>
|
||
Umschalten zwischen Textkonsolen alle Shells<br/>
|
||
[AltGr]+[Fn]<br/>
|
||
Umschalten zwischen den Textkonsolen n+12<br/>
|
||
[Alt]+[Pfeil links oder rechts]<br/>
|
||
um durch die benutzten Konsolen zu stöbern<br/>
|
||
[Strg]+[Alt]+[F1] bis<br/>
|
||
Umschalten zu Textkonsolen<br/>
|
||
alle Shells<br/>
|
||
[Strg]+[Alt]+[F6]<br/>
|
||
aus X11 heraus<br/>
|
||
[Strg]+[Alt]+[F7]<br/>
|
||
Umschalten zu X11 aus Textkonsole alle Shells<br/>
|
||
bei Caldera 2.2 [Alt]+[F8]<br/>
|
||
[Strg]+[Alt]+[<--]<br/>
|
||
X-Server sofort beenden<br/>
|
||
[Strg]+[Alt]+[+]<br/>
|
||
verschiedene Auflösungen im laufenden Betrieb<br/>
|
||
[Strg]+[Alt]+[-]<br/>
|
||
wechseln<br/>
|
||
[Strg]+[Alt]+[Entf]<br/>
|
||
Signal SIGINT z.B. reboot<br/>
|
||
Shell<br/>
|
||
5.4. Die C-Shell<br/>
|
||
~<br/>
|
||
Home-Verzeichnis<br/>
|
||
~user<br/>
|
||
Home-Verzeichnis des Benutzers user<br/>
|
||
*<br/>
|
||
beliebige Zeichen-kette<br/>
|
||
?<br/>
|
||
genau Zeichen<br/>
|
||
{a,b,c}<br/>
|
||
a oder b oder c<br/>
|
||
[aceg]<br/>
|
||
genau eines der Zeichen<br/>
|
||
[a-z]<br/>
|
||
a bis z<br/>
|
||
[!adfh]<br/>
|
||
kein a, d, f, h<br/>
|
||
´´<br/>
|
||
maskiert alles<br/>
|
||
\<br/>
|
||
maskiert das nachfolgende Zeichen<br/>
|
||
""<br/>
|
||
maskiert $ ‘ \ nicht<br/>
|
||
> Datei<br/>
|
||
Ausgabe in die Datei, stdout<br/>
|
||
>& Datei<br/>
|
||
Ausgabe in die Datei, stdout und stderr<br/>
|
||
>>Datei<br/>
|
||
Unlenkung in die Datei, stdout umgelenkt<br/>
|
||
< Datei<br/>
|
||
von der Datei lesen, anstatt von stdin zu lesen<br/>
|
||
set noclobber<br/>
|
||
Überschreiben einer vorhandenen Datei verhindern<br/>
|
||
|<br/>
|
||
Ausgabekanal eines Kommandos direkt in den Eingabekanal eines<br/>
|
||
anderen Kommandos leiten<br/>
|
||
#!Programm<br/>
|
||
so beginnt eine Datei die vom Progamm ausgeführt wird<br/>
|
||
$HISTSIZE<br/>
|
||
History-Größe<br/>
|
||
$LS_OPTIONS<br/>
|
||
ls Funktionen<br/>
|
||
56<br/>
|
||
<hr/>
|
||
<a name=57></a>5.5. Bash rechnen<br/>
|
||
$PATH<br/>
|
||
Pfad zu den Programmdateien<br/>
|
||
Programm &<br/>
|
||
Programm im eigenem Prozess starten<br/>
|
||
5.5. Bash rechnen<br/>
|
||
echo $((1+1))<br/>
|
||
gibt 1 aus<br/>
|
||
a=4<br/>
|
||
b=5<br/>
|
||
echo $((a*b))<br/>
|
||
gibt 20 aus<br/>
|
||
echo $((a-b))<br/>
|
||
gibt -1 aus<br/>
|
||
57<br/>
|
||
<hr/>
|
||
<a name=58></a><hr/>
|
||
<a name=59></a>Teil II.<br/>
|
||
Programme<br/>
|
||
59<br/>
|
||
<hr/>
|
||
<a name=60></a><hr/>
|
||
<a name=61></a>6. Der Texteditor vi/vim<br/>
|
||
Der vi-Editor ist auf UNIX/Linux(neben Emacs) der meistverwendete Texteditor. Die<br/>
|
||
Bedienung erfolgt über den Befehls- und Kommando-modus. Da es nicht gerade ein-<br/>
|
||
fach ist sich diese Optionen zu merken, folgt eine Auflistung der meist gebrauchten<br/>
|
||
Optionen.<br/>
|
||
6.1. Aufruf<br/>
|
||
vi<br/>
|
||
Editor vi aufrufen<br/>
|
||
vi Datei<br/>
|
||
Editor vi aufrufen und Datei öffnen<br/>
|
||
vi -r<br/>
|
||
swap-Dateien anzeigen<br/>
|
||
vi -r Datei<br/>
|
||
Datei nach einem Stromausfall oder Absturz wieder herstellen<br/>
|
||
vi -R Datei<br/>
|
||
Datei schreibgeschützt öffnen<br/>
|
||
6.2. Eingabemodus (input mode)<br/>
|
||
Um in den Eingabemodus zu gelangen muss A, C, I, O, R, S, a, i, o oder s eingegeben<br/>
|
||
werden. i ist eine gute Wahl. Mit <Esc> wird der Eingabemodus verlassen.<br/>
|
||
6.3. Befehlsmodus (visual mode)<br/>
|
||
6.3.1. Eingeben:<br/>
|
||
(n)i eingeben<br/>
|
||
fügt den eingeben Text (n mal) vor dem Cursor ein<br/>
|
||
(n)a eingeben<br/>
|
||
fügt den eingeben Text (n mal) hinter dem Cursor ein<br/>
|
||
(n)I eingeben<br/>
|
||
fügt den eingeben Text (n mal) am Zeilenanfang ein<br/>
|
||
(n)A eingeben<br/>
|
||
fügt den eingeben Text (n mal) am Zeilenende ein<br/>
|
||
(n)o eingeben<br/>
|
||
fügt unter der aktuellen Zeile (n neue Zeilen)<br/>
|
||
mit den eingeben Text ein<br/>
|
||
(n)O eingeben<br/>
|
||
fügt über der aktuellen Zeile (n neue Zeilen)<br/>
|
||
mit den eingeben Text ein<br/>
|
||
6.3.2. Überschreiben:<br/>
|
||
(n)R eingeben<br/>
|
||
überschreibt den Text mit eingeben<br/>
|
||
<Einf><br/>
|
||
wechselt zwischen INSERT und REPLACE<br/>
|
||
(n)r Taste<br/>
|
||
überschreibt den Text mit (n mal) Taste<br/>
|
||
61<br/>
|
||
<hr/>
|
||
<a name=62></a>6. Der Texteditor vi/vim<br/>
|
||
von dem Cursor nach rechts<br/>
|
||
6.3.3. Bewegen:<br/>
|
||
(n)h<br/>
|
||
Cursor um (n) Zeichen nach links bewegen<br/>
|
||
(n)<Strg>+h<br/>
|
||
Cursor um (n) Zeichen nach links bewegen<br/>
|
||
(n)l<br/>
|
||
Cursor um (n) Zeichen nach rechts bewegen<br/>
|
||
(n)<SPACE><br/>
|
||
Cursor um (n) Zeichen nach rechts bewegen<br/>
|
||
(n)|<br/>
|
||
Cursor zur Spalte (n) bewegen<br/>
|
||
(n)t Taste<br/>
|
||
Cursor vor das (n) Zeichen Taste nach rechts bewegen<br/>
|
||
(n)f Taste<br/>
|
||
Cursor auf das (n) Zeichen Taste nach rechts bewegen<br/>
|
||
(n)T Taste<br/>
|
||
Cursor vor das (n) Zeichen Taste nach links bewegen<br/>
|
||
(n)F Taste<br/>
|
||
Cursor auf das (n) Zeichen Taste nach links bewegen<br/>
|
||
(n)j<br/>
|
||
Cursor um (n) Zeilen abwärts bewegen<br/>
|
||
(n)k<br/>
|
||
Cursor um (n) Zeilen aufwärts bewegen<br/>
|
||
(n)w<br/>
|
||
Cursor um (n) Wörter nach rechts bewegen<br/>
|
||
(n)W<br/>
|
||
Cursor um (n) Wörter(Space) nach rechts bewegen<br/>
|
||
(n)b<br/>
|
||
Cursor um (n) Wörter nach links bewegen<br/>
|
||
(n)B<br/>
|
||
Cursor um (n) Wörter(Space) nach links bewegen<br/>
|
||
(n)e<br/>
|
||
Cursor an das (n) Wortende nach rechts bewegen<br/>
|
||
(n)E<br/>
|
||
Cursor an das (n) Wortende(Space) nach rechts bewegen<br/>
|
||
^<br/>
|
||
Cursor auf das erste Zeilenzeichen stellen<br/>
|
||
0<br/>
|
||
Cursor vor das erste Zeilenzeichen stellen<br/>
|
||
(n)_<br/>
|
||
Cursor auf das erste Zeilenzeichen stellen und<br/>
|
||
(n-1) Zeilen nach unten bewegen<br/>
|
||
$<br/>
|
||
Cursor zum Zeilenende bewegen<br/>
|
||
(n)+<br/>
|
||
Cursor auf das erste Zeilenzeichen stellen und<br/>
|
||
(n) Zeilen abwärts bewegen<br/>
|
||
(n)-<br/>
|
||
Cursor auf das erste Zeilenzeichen stellen und<br/>
|
||
(n) Zeilen aufwärts bewegen<br/>
|
||
(n))<br/>
|
||
Cursor um (n) Sätze abwärts bewegen<br/>
|
||
(n)(<br/>
|
||
Cursor um (n) Sätze aufwärts bewegen<br/>
|
||
(n)}<br/>
|
||
Cursor um (n) Absätze abwärts bewegen<br/>
|
||
(n){<br/>
|
||
Cursor um (n) Absätze aufwärts bewegen<br/>
|
||
(n)<Strg>+u<br/>
|
||
Cursor um 1/2 Bildschirm oder (n Zeilen)<br/>
|
||
aufwärts bewegen<br/>
|
||
(n)<Strg>+d<br/>
|
||
Cursor um 1/2 Bildschirm oder (n Zeilen)<br/>
|
||
abwärts bewegen<br/>
|
||
<Strg>+f<br/>
|
||
Cursor um 1 Bildschirm abwärts bewegen<br/>
|
||
<Bild runter><br/>
|
||
Cursor um 1 Bildschirm abwärts bewegen<br/>
|
||
<Strg>+b<br/>
|
||
Cursor um 1 Bildschirm aufwärts bewegen<br/>
|
||
<Bild hoch><br/>
|
||
Cursor um 1 Bildschirm aufwärts bewegen<br/>
|
||
(n)<Strg>+e<br/>
|
||
scrollt den Cursor (n) Zeilen abwärts<br/>
|
||
(n)<Strg>+y<br/>
|
||
scrollt den Cursor (n) Zeilen aufwärts<br/>
|
||
’<br/>
|
||
Taste<br/>
|
||
Cursor zu der mit Taste markierten Zeile bewegen<br/>
|
||
62<br/>
|
||
<hr/>
|
||
<a name=63></a>6.3. Befehlsmodus (visual mode)<br/>
|
||
‘<br/>
|
||
Taste<br/>
|
||
Cursor zu dem mit Taste markierten Zeichen bewegen<br/>
|
||
gg<br/>
|
||
Cursor zum Textanfang bewegen<br/>
|
||
(n)G<br/>
|
||
Cursor zur Zeile (n) bewegen<br/>
|
||
G<br/>
|
||
Cursor zum Textende bewegen<br/>
|
||
H<br/>
|
||
Cursor an den Anfang der Bildschirmseite setzen<br/>
|
||
(n)H<br/>
|
||
Cursor zur Zeile (n) auf den Bildschirm bewegen<br/>
|
||
M<br/>
|
||
Cursor auf den Anfang der mittleren<br/>
|
||
Bildschirmzeile bewegen<br/>
|
||
L<br/>
|
||
Cursor an das Ende der Bildschirmseite setzen<br/>
|
||
(n)L<br/>
|
||
Cursor vom Ende zur Zeile (n) auf den Bildschirm bewegen<br/>
|
||
z<br/>
|
||
Taste<br/>
|
||
bewegt die aktuelle Zeile zum Anfang(+), Ende(-) oder<br/>
|
||
zur Mitte(.) des Bildschirms<br/>
|
||
6.3.4. Löschen und Eingeben:<br/>
|
||
(n)s eingeben<br/>
|
||
löscht (n) Zeichen von dem Cursor nach rechts und<br/>
|
||
fügt den eingeben Text ein<br/>
|
||
c Bereich eingeben<br/>
|
||
löscht den markierten Bereich und<br/>
|
||
fügt den eingeben Text ein<br/>
|
||
cc<br/>
|
||
eingeben<br/>
|
||
löscht den Zeilentext und fügt den eingeben Text ein<br/>
|
||
cw<br/>
|
||
eingeben<br/>
|
||
löscht bis zum ende des Wortes und<br/>
|
||
fügt den eingeben Text ein<br/>
|
||
C<br/>
|
||
eingeben<br/>
|
||
löscht den Text bis Zeilenende und<br/>
|
||
fügt den eingeben Text ein<br/>
|
||
(n)S eingeben<br/>
|
||
löscht (n) Zeilen nach unten und<br/>
|
||
fügt den eingeben Text ein ( wie (n)cc )<br/>
|
||
6.3.5. Löschen:<br/>
|
||
d<br/>
|
||
Bereich<br/>
|
||
löscht den markierten Bereich<br/>
|
||
dd<br/>
|
||
löscht die ganze Zeile<br/>
|
||
D<br/>
|
||
löscht den Text bis Zeilenende<br/>
|
||
dw<br/>
|
||
löscht bis zum Ende des Wortes<br/>
|
||
(n)x<br/>
|
||
löscht (n) Zeichen auf den sich der Cursor befindet<br/>
|
||
<Entf><br/>
|
||
löscht das Zeichen auf den sich der Cursor befindet<br/>
|
||
(n)X<br/>
|
||
löscht (n) Zeichen links vom Cursor<br/>
|
||
6.3.6. Aufheben:<br/>
|
||
u<br/>
|
||
macht die letzte Änderung rückgängig<br/>
|
||
U<br/>
|
||
macht die letzte Änderung der ganzen Zeile rückgängig<br/>
|
||
6.3.7. Verschieben:<br/>
|
||
><br/>
|
||
Bereich<br/>
|
||
schiebt die markierten Zeilen nach rechts<br/>
|
||
63<br/>
|
||
<hr/>
|
||
<a name=64></a>6. Der Texteditor vi/vim<br/>
|
||
>><br/>
|
||
schiebt die Zeile auf den sich der Cursor befindet<br/>
|
||
nach rechts<br/>
|
||
<<br/>
|
||
Bereich<br/>
|
||
schiebt die markierten Zeilen nach links<br/>
|
||
<<<br/>
|
||
schiebt die Zeile auf den sich der Cursor befindet<br/>
|
||
nach links<br/>
|
||
6.3.8. Zusammenfügen:<br/>
|
||
(n)J<br/>
|
||
hängt (n) Zeilen nach unten aneinander<br/>
|
||
6.3.9. Markieren:<br/>
|
||
m<br/>
|
||
Taste<br/>
|
||
markiert eine Zeile oder Zeichen<br/>
|
||
v<br/>
|
||
setzt den Anfang einer Markierung<br/>
|
||
V<br/>
|
||
setzt den Anfang einer Zeilenmarkierung<br/>
|
||
6.3.10. Kopieren:<br/>
|
||
y<br/>
|
||
Bereich<br/>
|
||
kopiert den mit Bereich angegebenen Text in einen Puffer<br/>
|
||
(n)Y<br/>
|
||
kopiert die aktuelle und (n) Zeilen in einen Puffer<br/>
|
||
"<br/>
|
||
Taste<br/>
|
||
legt den nächsten Zwischenpuffer fest<br/>
|
||
@<br/>
|
||
Taste<br/>
|
||
interpretiert den Inhalt des Zwischenspeichers als<br/>
|
||
vi Befehle und führt sie aus<br/>
|
||
6.3.11. Einfügen:<br/>
|
||
p<br/>
|
||
fügt den aktuellen Puffer hinter dem Cursor ein<br/>
|
||
P<br/>
|
||
fügt den aktuellen Puffer vor dem Cursor ein<br/>
|
||
6.3.12. Suchen:<br/>
|
||
(n)%<br/>
|
||
platziert den Cursor auf die zugehörige () {} [], oder<br/>
|
||
platziert den Cursor auf (n) Prozent der Datei<br/>
|
||
/<br/>
|
||
Text<br/>
|
||
sucht den Text vorwärts<br/>
|
||
?<br/>
|
||
Text<br/>
|
||
sucht den Text rückwärts<br/>
|
||
6.3.13. Wiederholen:<br/>
|
||
.<br/>
|
||
wiederholt das letzte EDIT Kommando<br/>
|
||
n<br/>
|
||
wiederholt das letzte Suchen<br/>
|
||
N<br/>
|
||
wiederholt das letzte Suchen in umgekehrter Richtung<br/>
|
||
(n);<br/>
|
||
wiederholt das vorgehende f, F, t, T Kommando<br/>
|
||
(n),<br/>
|
||
wiederholt das vorgehende f, F, t, T Kommando in<br/>
|
||
umgekehrter Richtung<br/>
|
||
(n)&<br/>
|
||
wiederholt den letzten :s// Befehl an der momentanen<br/>
|
||
Position<br/>
|
||
64<br/>
|
||
<hr/>
|
||
<a name=65></a>6.4. Kommandomodus (colon mode)<br/>
|
||
6.3.14. Sonstige Kommandos:<br/>
|
||
<Strg>G<br/>
|
||
zeigt den Dateistatus und die momentane Zeilennummer<br/>
|
||
ZZ<br/>
|
||
speichert die Datei und beendet vi<br/>
|
||
<Strg>L<br/>
|
||
erneuert den Bildschirm<br/>
|
||
6.4. Kommandomodus (colon mode)<br/>
|
||
Um in den Kommandomodus zu gelangen muss : eingegeben werden.<br/>
|
||
6.4.1. Texteingabe Kommandos<br/>
|
||
q(!)<br/>
|
||
Editor verlassen<br/>
|
||
wq<br/>
|
||
Editor mit speichern verlassen<br/>
|
||
xit<br/>
|
||
arbeitet wie wq, speichert nur bei einer Änderung<br/>
|
||
x(!)<br/>
|
||
Editor mit speichern verlassen<br/>
|
||
w(!) Name<br/>
|
||
Datei mit Namen speichern<br/>
|
||
h<br/>
|
||
Hilfe anfordern<br/>
|
||
args Dateien<br/>
|
||
Liste der Dateien anlegen<br/>
|
||
args<br/>
|
||
Dateien auflisten<br/>
|
||
next(!)<br/>
|
||
schaltet zur nächsten Datei<br/>
|
||
previous(!)<br/>
|
||
schaltet zur vorhergehenden Datei<br/>
|
||
rewind(!)<br/>
|
||
schaltet zur ersten Datei<br/>
|
||
edit(!) Datei<br/>
|
||
dient zum wechseln der Datei<br/>
|
||
!Befehl<br/>
|
||
externen Befehl ausführen<br/>
|
||
65<br/>
|
||
<hr/>
|
||
<a name=66></a><hr/>
|
||
<a name=67></a>7. LaTeX<br/>
|
||
7.1. LATEX<br/>LATEX<br/>
|
||
67<br/>
|
||
<hr/>
|
||
<a name=68></a><hr/>
|
||
<a name=69></a>8. Docker<br/>
|
||
Docker ist eine freie Software zur Isolierung von Anwendungen mit Hilfe von Contai-<br/>
|
||
nervirtualisierung. Die Podman API ist identisch mit der Docker API.<br/>
|
||
8.1. Docker installieren<br/>
|
||
apt install curl<br/>
|
||
falls kein curl<br/>
|
||
installiert ist<br/>
|
||
curl -fsSL https://get.docker.com -o get-docker.sh<br/>
|
||
Installer holen<br/>
|
||
sudo sh ./get-docker.sh<br/>
|
||
Installer starten<br/>
|
||
sudo apt docker docker-compose<br/>
|
||
installiert Docker auch<br/>
|
||
Wenn man nicht mit dem Nutzer root arbeiten möchte, sollte man den aktuellen<br/>
|
||
Benutzer berechtigen:<br/>
|
||
sudo usermod -aG docker $USER<br/>
|
||
aktuellen Benutzer für docker freigeben,<br/>
|
||
danach neu anmelden<br/>
|
||
8.2. Mit Docker arbeiten<br/>
|
||
docker ps<br/>
|
||
laufende Container auflisten<br/>
|
||
docker ps -a<br/>
|
||
alle Container auflisten, auch gestoppte<br/>
|
||
docker images<br/>
|
||
alle Images auflisten<br/>
|
||
docker stop Containername<br/>
|
||
laufenden Container beenden<br/>
|
||
docker run -p 80:80 nginx<br/>
|
||
simplen Webserver nginx starten<br/>
|
||
Hostport:Containerport<br/>
|
||
Arbeiten mit Docker-Compose<br/>
|
||
nano docker-compose.yml<br/>
|
||
Datei docker-compose.yml mit dem Editor<br/>
|
||
nano bearbeiten. Die Datei docker-compose.yml<br/>
|
||
enthält die Definition der Container.<br/>
|
||
docker-compose up -d<br/>
|
||
die Compose-Zusammenstellung hochfahren<br/>
|
||
docker-compose pull<br/>
|
||
Container updaten, neue Images laden<br/>
|
||
Meine docker-compose.yml:<br/>
|
||
69<br/>
|
||
<hr/>
|
||
<a name=70></a>8. Docker<br/>
|
||
services:<br/>
|
||
portainer:<br/>
|
||
container_name: portainer<br/>
|
||
image: portainer/portainer-ce<br/>
|
||
ports:<br/>
|
||
- ’9000:9000’<br/>
|
||
volumes:<br/>
|
||
- /var/run/docker.sock:/var/run/docker.sock<br/>
|
||
- ./portainer_data:/data<br/>
|
||
restart: always<br/>
|
||
forgejo:<br/>
|
||
container_name: forgejo<br/>
|
||
image: codeberg.org/forgejo/forgejo:10<br/>
|
||
ports:<br/>
|
||
- ’3000:3000’<br/>
|
||
- ’222:22’<br/>
|
||
environment:<br/>
|
||
- USER_UID=1000<br/>
|
||
- USER_GID=1000<br/>
|
||
volumes:<br/>
|
||
- ./forgejo_data:/data<br/>
|
||
- /etc/timezone:/etc/timezone:ro<br/>
|
||
- /etc/localtime:/etc/localtime:ro<br/>
|
||
restart: always<br/>
|
||
70<br/>
|
||
<hr/>
|
||
<a name=71></a>Teil III.<br/>
|
||
Linux im Netzwerk<br/>
|
||
71<br/>
|
||
<hr/>
|
||
<a name=72></a><hr/>
|
||
<a name=73></a>9. Netzwerk<br/>
|
||
Rechnername<br/>
|
||
Name den der Rechner im Netzwerk hat,<br/>
|
||
sollte nicht mehr als acht Zeichen haben,<br/>
|
||
darf im lokalen Netzwerk noch nicht vergeben sein<br/>
|
||
Domainname<br/>
|
||
Name zur Gliederung von Netzwerken<br/>
|
||
Top-Level-Domain<br/>
|
||
umfasst höchstens vier Buchstaben<br/>
|
||
Beispiel: Rechnername.Domainname.Top-Level-Domain -><br/>
|
||
voyager.startrek.foe<br/>
|
||
IP-Adresse<br/>
|
||
Adresse des Rechners im Netzwerk,<br/>
|
||
jede Netzwerkschnittstelle(z.B. Netzwerk- oder<br/>
|
||
ISDN-Karte) hat im Netzwerk mindestens eine Adresse<br/>
|
||
die eindeutig ist, die Adresse besteht derzeit aus<br/>
|
||
einer Sequenz von vier Bytes die durch Punkte getrennt<br/>
|
||
sind z.B. 192.168.20.40 , für private Netze sind durch<br/>
|
||
das Arbeitspapier RFC 1597 drei Adressbereiche<br/>
|
||
vorgesehen die nicht geroutet werden:<br/>
|
||
10.0.0.0<br/>
|
||
-> 10.255.255.255 (Class A-Netz)<br/>
|
||
172.16.0.0 -> 172.31.255.255 (Class B-Netz)<br/>
|
||
192.168.0.0 -> 192.168.255.255 (Class C-Netz)<br/>
|
||
Gatewayadresse<br/>
|
||
IP-Adresse des Gerätes die das Weiterleiten<br/>
|
||
von Netzwerkpaketen in das fremde Netz übernimmt<br/>
|
||
Netzwerkmaske<br/>
|
||
sagt aus welcher Teil der IP-Adresse<br/>
|
||
zum lokale Netzwerk gehört z.B. 255.255.255.0<br/>
|
||
OSI<br/>
|
||
Open Systems Interconnection model ist ein Referenzmodell<br/>
|
||
für Netzwerkprotokolle als Schichtenarchitektur<br/>
|
||
IEEE<br/>
|
||
Institute of Electrical and Electronics Engineers ist<br/>
|
||
ein weltweiter Berufsverband von Ingenieuren,<br/>
|
||
Technikern, (Natur-)Wissenschaftlern und angrenzender<br/>
|
||
Berufe hauptsächlich aus den Bereichen Elektrotechnik<br/>
|
||
und Informationstechnik<br/>
|
||
ISO<br/>
|
||
Internationale Organisation für Normung ist die<br/>
|
||
internationale Vereinigung von Normungsorganisationen<br/>
|
||
und erarbeitet internationale Normen in allen Bereichen<br/>
|
||
mit Ausnahme der Elektrik und der Elektronik<br/>
|
||
MAC-Adresse<br/>
|
||
00:60:97:37:0c:ae Media-Access-Code-Adresse ist die<br/>
|
||
-------- -------- Nummer eines Gerätes auf einer<br/>
|
||
|<br/>
|
||
|<br/>
|
||
Datenverbindung<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
laufende Nummer<br/>
|
||
73<br/>
|
||
<hr/>
|
||
<a name=74></a>9. Netzwerk<br/>
|
||
Herstellerabhängig<br/>
|
||
NIC<br/>
|
||
Network Information Center oder eine Domain Name Registry<br/>
|
||
verwaltet eine oder mehrere Top-Level-Domains im<br/>
|
||
Domain Name System<br/>
|
||
TCP<br/>
|
||
Transmission Control Protocol ist ein Netzwerkprotokoll,<br/>
|
||
das definiert, auf welche Art und Weise Daten zwischen<br/>
|
||
Netzwerkkomponenten ausgetauscht werden sollen<br/>
|
||
UDP<br/>
|
||
User Datagram Protocol ist ein minimales,<br/>
|
||
verbindungsloses Netzwerkprotokoll, das zur<br/>
|
||
Transportschicht der Internetprotokollfamilie gehört<br/>
|
||
NFS<br/>
|
||
Network File System ist ein von Sun Microsystems<br/>
|
||
entwickeltes Protokoll, das den Zugriff auf Dateien<br/>
|
||
über ein Netzwerk ermöglicht<br/>
|
||
FTP<br/>
|
||
File Transfer Protocol ist ein Netzwerkprotokoll zur<br/>
|
||
Übertragung von Dateien über IP-Netzwerke<br/>
|
||
Portnummer<br/>
|
||
ist in Rechnernetzen eine Netzwerkadresse, mit der das<br/>
|
||
Betriebssystem die Datenpakete eines Transportprotokolls<br/>
|
||
zu einem Prozess zuordnet<br/>
|
||
/etc/services<br/>
|
||
ordnet Namen den Ports zu z.B. SSH, FTP, DNS u.s.w.<br/>
|
||
0-1023<br/>
|
||
System Ports, Server-Ports (IANA), diese Ports werden<br/>
|
||
auch „well-known Ports“ genannt und sind für<br/>
|
||
Netzwerkdienste vorgesehen<br/>
|
||
1024-49151<br/>
|
||
User Ports, diese Ports sind für registrierte<br/>
|
||
Netzwerkdienste vorgesehen<br/>
|
||
49152-65535<br/>
|
||
Dynamic Ports, diese Ports sind für eine dynamische<br/>
|
||
Zuweisung durch das Betriebssystem vorgesehen<br/>
|
||
9.1. /etc/network/interfaces<br/>
|
||
allow-hotplug eth0<br/>
|
||
Netzwerkkabel im Berieb umstecken<br/>
|
||
iface eth0 inet static<br/>
|
||
static feste IP sonst dhcp<br/>
|
||
address 192.168.10.97/24<br/>
|
||
IP-Adresse<br/>
|
||
gateway 192.168.10.1<br/>
|
||
Gateway-Adresse<br/>
|
||
dns-nameservers 192.168.10.1 192.168.20.1<br/>
|
||
1. und 2. DNS-Server<br/>
|
||
dns-search example.net<br/>
|
||
Domainname des DNS-Servers<br/>
|
||
74<br/>
|
||
<hr/>
|
||
<a name=75></a>10. E-Mail<br/>
|
||
E-Mail im Deutschen kurz Mail; englisch electronic mail für „elektronische Post“ oder<br/>
|
||
„elektronischer Brief“ ist zum einen ein System zur computerbasierten Verwaltung von<br/>
|
||
briefähnlichen Nachrichten und deren Übertragung über Computernetzwerke, insbe-<br/>
|
||
sondere über das Internet. Zum anderen werden auch die auf diesem elektronischen<br/>
|
||
Weg übertragenen Nachrichten selbst als E-Mails bezeichnet.<br/>
|
||
10.1. Verwendung von E-Mail<br/>
|
||
sudo apt install mailutils postfix<br/>
|
||
installiert mailx und MTA-Postfix<br/>
|
||
sudo dpkg-reconfigure postfix<br/>
|
||
postfix nochmal konfigurieren<br/>
|
||
sudo apt install postfix-pcre dovecot-imapd<br/>
|
||
für den Mail-Server installieren<br/>
|
||
echo "Inhalt" | mailx -s "Betreff" user@Domain E-Mail verschicken<br/>
|
||
E-Mail beim Starten verschicken<br/>
|
||
/lib/systemd/system/mailx-start.service<br/>
|
||
[Unit]<br/>
|
||
Description=Boot Mails<br/>
|
||
After=postfix.service<br/>
|
||
[Service]<br/>
|
||
Type=simple<br/>
|
||
ExecStart=/usr/bin/sh -c ’echo "Inhalt" | mailx -s "Betreff" user@domain’<br/>
|
||
[Install]<br/>
|
||
WantedBy=multi-user.target<br/>
|
||
E-Mail beim Beenden verschicken (kommt erst beim Booten an)<br/>
|
||
/lib/systemd/system/mailx-stop.service<br/>
|
||
[Unit]<br/>
|
||
Description=Boot Mails<br/>
|
||
After=shutdown.target<br/>
|
||
[Service]<br/>
|
||
Type=simple<br/>
|
||
ExecStart=/usr/bin/sh -c ’echo "Inhalt" | mailx -s "StopBetreff" user@domain’<br/>
|
||
75<br/>
|
||
<hr/>
|
||
<a name=76></a>10. E-Mail<br/>
|
||
[Install]<br/>
|
||
WantedBy=multi-user.target<br/>
|
||
danach<br/>
|
||
sudo systemctl enable mailx-start.service<br/>
|
||
sudo systemctl enable mailx-stop.service<br/>
|
||
76<br/>
|
||
<hr/>
|
||
<a name=77></a>11. Apache<br/>
|
||
11.1. Einleitung<br/>
|
||
Der Apache Webserver ist ein Programm das im Netzwerk(WWW), bei Anfragen mit<br/>
|
||
einem Webbrowser, Websites(HTTP-Protokoll) ausgeben kann.<br/>
|
||
Die Anfragen werden als URL angegeben. Beispiel: Schema://Hostname:Port/Server-<br/>
|
||
Pfad -> http://www.apache.org:80/manual/<br/>
|
||
11.2. Kompilieren und Installieren<br/>
|
||
11.2.1. Anforderungen<br/>
|
||
• Apache-Quellcode 1.3, erhältlich bei http://www.apache.org/<br/>
|
||
• mod_ssl 1.3, erhältlich bei http://www.modssl.org/<br/>
|
||
• Apache-Quellcode 2.0, erhältlich bei http://www.apache.org/<br/>
|
||
• OpenSSL-Quellcode 0.9.x, erhältlich bei http://www.openssl.org/<br/>
|
||
• Linux ab 2.4.xx(z.B.Debian Sarge 3.1), libgdbm2-devel(ndbm.h -> gdbm-ndbm.h)<br/>
|
||
• ANSI-C-Compiler und Generierungswerkzeuge, GNU C Compiler (GCC) ab Ver-<br/>
|
||
sion 2.7.2, wesentliche Generierungswerkzeuge wie make<br/>
|
||
• Zeitgenauigkeit bewahren, ntpdate oder xntpd(NTP)<br/>
|
||
• Perl 5(optional), Version ab 5.003 http://www.perl.com/<br/>
|
||
• PureFTPd(optional), Version ab 5.003 http://www.perl.com/<br/>
|
||
11.2.2. Vorbereitungen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
mkdir /usr/local/src<br/>
|
||
das Verzeichnis /usr/local/src anlegen,<br/>
|
||
wenn es noch nicht vorhanden ist<br/>
|
||
chmod 777 /usr/local/src<br/>
|
||
Verzeichnis-Rechte setzen<br/>
|
||
ln -s /usr/include/gdbm-ndbm.h /usr/include/ndbm.h<br/>
|
||
Link zu ndbm.h<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
cp Quelldateien /usr/local/src<br/>
|
||
Quelldateien kopieren<br/>
|
||
77<br/>
|
||
<hr/>
|
||
<a name=78></a>11. Apache<br/>
|
||
11.2.3. OpenSSL<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
tar xvfz openssl-0.9.7d.tar.gz<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd openssl-0.9.7d<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
./config --help<br/>
|
||
Hilfe zu den möglichen Optionen<br/>
|
||
./config --prefix=/usr/local/openssl/0.9.7d<br/>
|
||
Codebaum konfigurieren und<br/>
|
||
Installations-Verzeichnis angeben<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
make test<br/>
|
||
Programm testen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
Programm installieren<br/>
|
||
ln -s /usr/local/openssl/0.9.7d /usr/local/openssl/current<br/>
|
||
Link zu OpenSSL<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
11.2.4. Apache 1.3 und SSL<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
tar xvfz apache_1.3.31.tar.gz<br/>
|
||
Quelldateien entpacken<br/>
|
||
tar xvfz mod_ssl-2.8.19-1.3.31.tar.gz<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd apache_1.3.31<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
./configure --help<br/>
|
||
Hilfe zu den möglichen Optionen<br/>
|
||
cd ../mod_ssl-2.8.19-1.3.31<br/>
|
||
./configure --help<br/>
|
||
Hilfe zu den möglichen Optionen<br/>
|
||
./configure --with-apache=../apache_1.3.31<br/>
|
||
--with-ssl=../openssl-0.9.7d<br/>
|
||
--prefix=/usr/local/apache/1.3.31<br/>
|
||
--datadir=/srv/www<br/>
|
||
--enable-module=most<br/>
|
||
--enable-shared=max<br/>
|
||
--enable-module=ssl<br/>
|
||
cd ../apache_1.3.31<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
make certificate TYPE=custom<br/>
|
||
Zertifikat erzeugen<br/>
|
||
Angaben zu der Certificate Authority<br/>
|
||
Signature Algorithm ((R)SA or (D)SA) [R]:R<br/>
|
||
1. Country Name<br/>
|
||
(2 letter code) [XY]:DE<br/>
|
||
2. State or Province Name<br/>
|
||
(full name)<br/>
|
||
[Snake Desert]:Niedersachsen<br/>
|
||
3. Locality Name<br/>
|
||
(eg, city)<br/>
|
||
[Snake Town]:Salzgitter<br/>
|
||
4. Organization Name<br/>
|
||
(eg, company)<br/>
|
||
[Snake Oil, Ltd]:Komtek<br/>
|
||
5. Organizational Unit Name (eg, section)<br/>
|
||
[Certificate Authority]:CA<br/>
|
||
78<br/>
|
||
<hr/>
|
||
<a name=79></a>11.2. Kompilieren und Installieren<br/>
|
||
6. Common Name<br/>
|
||
(eg, CA name)<br/>
|
||
[Snake Oil CA]:Komtek CA<br/>
|
||
7. Email Address<br/>
|
||
(eg, name@FQDN) [ca@snakeoil.dom]:ca@komtek.de<br/>
|
||
8. Certificate Validity<br/>
|
||
(days)<br/>
|
||
[365]:365<br/>
|
||
Certificate Version (1 or 3) [3]:3<br/>
|
||
Angaben zum Serverzertifikat<br/>
|
||
1. Country Name<br/>
|
||
(2 letter code) [XY]:DE<br/>
|
||
2. State or Province Name<br/>
|
||
(full name)<br/>
|
||
[Snake Desert]:Niedersachsen<br/>
|
||
3. Locality Name<br/>
|
||
(eg, city)<br/>
|
||
[Snake Town]:Salzgitter<br/>
|
||
4. Organization Name<br/>
|
||
(eg, company)<br/>
|
||
[Snake Oil, Ltd]:Komtek<br/>
|
||
5. Organizational Unit Name (eg, section)<br/>
|
||
[Webserver Team]:Webmaster<br/>
|
||
6. Common Name<br/>
|
||
(eg, FQDN)<br/>
|
||
[www.snakeoil.dom]:www.komtek.de<br/>
|
||
7. Email Address<br/>
|
||
(eg, name@fqdn) [www@snakeoil.dom]:www@www.komtek.de<br/>
|
||
8. Certificate Validity<br/>
|
||
(days)<br/>
|
||
[365]:365<br/>
|
||
Certificate Version (1 or 3) [3]:3<br/>
|
||
Schlüssel verschlüsseln<br/>
|
||
Encrypt the private key now? [Y/n]: n<br/>
|
||
Encrypt the private key now? [Y/n]: n<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
groupadd wwwadmin<br/>
|
||
Gruppe wwwadmin anlegen<br/>
|
||
chown -R nobody:wwwadmin /srv/www<br/>
|
||
Rechte für das www-Verzeichnis setzen<br/>
|
||
ln -s /usr/local/apache/1.3.31 /usr/local/apache/current<br/>
|
||
Link zu Apache 1.3<br/>
|
||
ln -s /usr/local/apache/current/conf /etc/apache<br/>
|
||
Link zu den Konfigurationen<br/>
|
||
ln -s /usr/local/apache/current/logs /var/log/apache<br/>
|
||
Link zu den Logdateien<br/>
|
||
ln -s /usr/local/apache/current/bin/apachectl /usr/local/bin<br/>
|
||
Link zu apachectl<br/>
|
||
ln -s /usr/local/apache/current/bin/apachectl /etc/init.d/apache<br/>
|
||
Link zu den Startdateien<br/>
|
||
cd /etc/rc5.d<br/>
|
||
in den Start-Runlevel wechseln<br/>
|
||
ln -s ../init.d/apache S20apache<br/>
|
||
Link zum automatischen Starten<br/>
|
||
cd ../rc0.d<br/>
|
||
in den Stopp-Runlevel wechseln<br/>
|
||
ln -s ../init.d/apache K20apache<br/>
|
||
Link zum automatischen Beenden<br/>
|
||
cd ../rc6.d<br/>
|
||
in den Start-Runlevel wechseln<br/>
|
||
ln -s ../init.d/apache K20apache<br/>
|
||
Link zum automatischen Beenden<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
79<br/>
|
||
<hr/>
|
||
<a name=80></a>11. Apache<br/>
|
||
11.2.5. Apache2<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
tar xvfz httpd-2.0.51.tar.gz<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd httpd-2.0.51<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
./configure --help<br/>
|
||
Hilfe zu den möglichen Optionen<br/>
|
||
./configure --prefix=/usr/local/apache2/2.0.51<br/>
|
||
--with-ssl=../openssl-0.9.7d<br/>
|
||
--datadir=/srv/www2<br/>
|
||
--enable-module=most<br/>
|
||
--enable-shared=max<br/>
|
||
--enable-module=ssl<br/>
|
||
--with-port=81<br/>
|
||
da auf 80 schon der Apache 1.3 läuft<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
Programm installieren (als root!)<br/>
|
||
groupadd wwwadmin<br/>
|
||
Gruppe wwwadmin anlegen<br/>
|
||
chown -R nobody:wwwadmin /srv/www2<br/>
|
||
Rechte für das www-Verzeichnis setzen<br/>
|
||
ln -s /usr/local/apache2/2.0.51 /usr/local/apache2/current<br/>
|
||
Link zu Apache 2<br/>
|
||
ln -s /usr/local/apache2/current/conf /etc/apache2<br/>
|
||
Link zu den Konfigurationen<br/>
|
||
ln -s /usr/local/apache2/current/logs /var/log/apache2<br/>
|
||
Link zu den Logdateien<br/>
|
||
ln -s /usr/local/apache2/current/bin/apachectl /usr/local/bin/apachectl2<br/>
|
||
Link zu apachectl<br/>
|
||
ln -s /usr/local/apache2/current/bin/apachectl /etc/init.d/apache2<br/>
|
||
Link zu den Startdateien<br/>
|
||
cd /etc/rc5.d<br/>
|
||
in den Start-Runlevel wechseln<br/>
|
||
ln -s ../init.d/apache2 S20apache2<br/>
|
||
Link zum automatischen Starten<br/>
|
||
cd ../rc0.d<br/>
|
||
in den Stopp-Runlevel wechseln<br/>
|
||
ln -s ../init.d/apache2 K20apache2<br/>
|
||
Link zum automatischen Beenden<br/>
|
||
cd ../rc6.d<br/>
|
||
in den Start-Runlevel wechseln<br/>
|
||
ln -s ../init.d/apache2 K20apache2<br/>
|
||
Link zum automatischen Beenden<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
11.2.6. Testen<br/>
|
||
/etc/init.d/apache start<br/>
|
||
Apache1.3 starten<br/>
|
||
/etc/init.d/apache2 start<br/>
|
||
Apache2 starten<br/>
|
||
Browser http://localhost/<br/>
|
||
Apache1.3 testen<br/>
|
||
Browser http://localhost:81/<br/>
|
||
Apache2 testen<br/>
|
||
/etc/init.d/apache stop<br/>
|
||
Apache1.3 beenden<br/>
|
||
/etc/init.d/apache2 stop<br/>
|
||
Apache2 beenden<br/>
|
||
80<br/>
|
||
<hr/>
|
||
<a name=81></a>11.2. Kompilieren und Installieren<br/>
|
||
11.2.7. Upgrade<br/>
|
||
./config.nice<br/>
|
||
aus der letzten Installation entnehmen,<br/>
|
||
Apache2<br/>
|
||
11.2.8. PureFTPd<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
tar xvfz pure-ftpd-1.0.20.tar.gz<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd pure-ftpd-1.0.20<br/>
|
||
Verzeichnis wechseln<br/>
|
||
./configure --prefix=/usr/local/pure-ftpd/1.0.20 --with-language=german<br/>
|
||
Makefile herstellen<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
make check<br/>
|
||
Programm prüfen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
Programm installieren<br/>
|
||
ln -s /usr/local/pure-ftpd/1.0.20 /usr/local/pure-ftpd/current<br/>
|
||
Link zu pure-ftpd<br/>
|
||
mkdir /usr/local/pure-ftpd/current/etc Verzeichnis etc anlegen<br/>
|
||
cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/current/etc<br/>
|
||
Konfiguration kopieren<br/>
|
||
cp pureftpd-*.conf /usr/local/pure-ftpd/current/etc<br/>
|
||
Konfigurationen kopieren<br/>
|
||
ln -s /usr/local/pure-ftpd/current/etc /etc/pure-ftpd<br/>
|
||
Link zu den Konfigurationen<br/>
|
||
vi /etc/init.d/pure-ftpd<br/>
|
||
Startdatei für pure-ftpd anlegen<br/>
|
||
#!/bin/bash<br/>
|
||
case "$1" in<br/>
|
||
start)<br/>
|
||
echo "pureftpd wird gestartet ..."<br/>
|
||
cd /usr/local/pure-ftpd/current<br/>
|
||
./sbin/pure-ftpd &<br/>
|
||
;;<br/>
|
||
stop)<br/>
|
||
echo "pureftpd wird heruntergefahren ..."<br/>
|
||
kill -TERM ‘cat /var/run/pure-ftpd.pid‘<br/>
|
||
;;<br/>
|
||
*)<br/>
|
||
echo "Usage: $0 {start|stop}"<br/>
|
||
exit 1<br/>
|
||
;;<br/>
|
||
esac<br/>
|
||
exit 0<br/>
|
||
81<br/>
|
||
<hr/>
|
||
<a name=82></a>11. Apache<br/>
|
||
chmod 755 /etc/init.d/pure-ftpd<br/>
|
||
Rechte setzen<br/>
|
||
cd /etc/rc5.d<br/>
|
||
Verzechnis wechseln<br/>
|
||
ln -s ../init.d/pure-ftpd S20pure-ftpd Link zum automatischen Starten<br/>
|
||
cd /etc/rc0.d<br/>
|
||
Verzechnis wechseln<br/>
|
||
ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden<br/>
|
||
cd /etc/rc6.d<br/>
|
||
Verzechnis wechseln<br/>
|
||
ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden<br/>
|
||
useradd -g wwwadmin -d /srv -s /bin/false wwwadmin<br/>
|
||
Benutzer wwwadmin anlegen<br/>
|
||
passwd wwwadmin<br/>
|
||
Passwort setzen<br/>
|
||
NoAnonymous<br/>
|
||
yes<br/>
|
||
UnixAuthentication<br/>
|
||
yes<br/>
|
||
MinUID<br/>
|
||
1000<br/>
|
||
MinUID<br/>
|
||
1000<br/>
|
||
TrustedGID<br/>
|
||
1002<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
11.3. Apache starten<br/>
|
||
11.3.1. Apache starten<br/>
|
||
Unter UNIX/Linux wird das httpd-Progamm als Daemon ausgeführt.<br/>
|
||
apachectl start<br/>
|
||
Apache starten<br/>
|
||
rcapache start<br/>
|
||
Apache starten(SuSE-Linux)<br/>
|
||
11.3.2. Wie der Apache startet<br/>
|
||
• apachectl ist die empfohlene Methode, das httpd-Programm zu starten<br/>
|
||
• apachectl setzt verschiedene Umgebungsvariablen und startet das httpd-Programm<br/>
|
||
• apachectl reicht alle Kommandozeilenargumente durch<br/>
|
||
• als erstes liest der httpd die Konfigurationsdatei httpd.conf ein, die beim Kom-<br/>
|
||
pilieren festgelegt wurde<br/>
|
||
• zur Laufzeit kann der Ablageort geändert werden, z.B. apachectl -f /etc/apache2/httpd.conf<br/>
|
||
• beim erfolgreicehn Start, trennt sich der Server vom Terminal ab<br/>
|
||
• bis zum Port 1024 muss der Apache root-Berechtigung besitzen<br/>
|
||
• der Haupt-httpd-Prozess läuft unter dem Benutzer root weiter<br/>
|
||
82<br/>
|
||
<hr/>
|
||
<a name=83></a>11.3. Apache starten<br/>
|
||
• ist der Server gestartet, öffnet er seine Log-Dateien<br/>
|
||
• der Apache startet mehrere Kind-Prozesse<br/>
|
||
• die Kind-Prozesse werden unter weniger privilegierten Benutzerkennungen aus-<br/>
|
||
geführt(z.B. nobody, wwwrun ...)<br/>
|
||
• die Kind-Prozesse lauschen und beantworten Anfragen von Clients<br/>
|
||
• die Kind-Prozesse werden von dem ausgewählten Multi-Processing-Modul(Apache-<br/>
|
||
MPM prefork UNIX/Linux) gesteuert<br/>
|
||
11.3.3. Fehler während des Hochfahrens<br/>
|
||
• wird während des Hochfahrens einen schwerer Fehler feststellt, schreibt der Apa-<br/>
|
||
che eine Nachricht auf die Konsole oder ins ErrorLog, bevor er sich selbst beendet<br/>
|
||
• eine der häufigsten Fehlermeldungen ist Ünable to bind to Port ...", der Server<br/>
|
||
läuft schon oder hat keine root-Berechtigung<br/>
|
||
11.3.4. Automatisch starten und beenden<br/>
|
||
• apachectl zu den Startdateien des Systems hinzufügen (rc.local, rc.x-Verzeichnis)<br/>
|
||
z.B. SuSE-Linux:<br/>
|
||
cd /etc/rc.d/rc3.d/<br/>
|
||
ln -s ../apache S16apache<br/>
|
||
Link zum automatischen Starten<br/>
|
||
in Runlevel 3 anlegen<br/>
|
||
ln -s ../apache K06apache<br/>
|
||
Link zum automatischen Beenden<br/>
|
||
in Runlevel 3 anlegen<br/>
|
||
z.B. Debian:<br/>
|
||
cd /etc/rc3.d/<br/>
|
||
ln -s ../init.d/apache2 S20apachectl<br/>
|
||
Link zum automatischen Starten in Runlevel 5 anlegen<br/>
|
||
cd /etc/rc0.d/<br/>
|
||
ln -s ../init.d/apache2 K20apachectl<br/>
|
||
Link zum automatischen Beenden in Runlevel 0 anlegen<br/>
|
||
11.3.5. Weitere Informationen<br/>
|
||
http://localhost/manual/programs/httpd.html<br/>
|
||
http://localhost/manual/de/programs/httpd.html<br/>
|
||
http://localhost/manual/programs/apachectl.html<br/>
|
||
http://localhost/manual/de/programs/apachectl.html<br/>
|
||
83<br/>
|
||
<hr/>
|
||
<a name=84></a>11. Apache<br/>
|
||
11.4. Beenden und Neustarten<br/>
|
||
11.4.1. Einleitung<br/>
|
||
• um den Apache zu stoppen oder neu zu starten, muss ein Signal an den laufenden<br/>
|
||
httpd-Prozess gesendet werden<br/>
|
||
• es gibt zwei Möglichkeiten Signale zu senden, kill und apachectl<br/>• auf dem System laufen mehrere httpd-Programme<br/>• nur an den Elternprozess sollte ein Signal gesendet werden, /var/log/apache2/httpd.pid<br/>• es gibt drei Signale die an den Elternprozess gesendet werden können, TERM -<br/>
|
||
beenden, HUP - neustarten, USR1 - unterbrechungsfreier Neustart<br/>
|
||
• es wird empfohlen apachectl zu benutzen<br/>• mit tail -f /var/log/apache2/error_log"kann die Signalisierung beobachtet wer-<br/>
|
||
den<br/>
|
||
11.4.2. Beenden<br/>
|
||
Signal: TERM<br/>
|
||
apachectl stop<br/>
|
||
sendet das TERM(stop) signal an<br/>
|
||
den Elternprozess<br/>
|
||
rcapache stop<br/>
|
||
Apache stoppen<br/>
|
||
bei SuSE-Linux<br/>
|
||
kill -TERM ‘cat /var/log/apache2/httpd.pid‘<br/>
|
||
sendet das TERM(stop) signal an<br/>
|
||
den Elternprozess<br/>
|
||
• das Senden des TERM(stop)-Signals an den Elternprozess veranlasst alle seine<br/>
|
||
Kindprozesse sich zu beenden<br/>
|
||
• es dauert etwas bis alle Kindprozesse beendet sind<br/>• danach beendet sich der Elternprozess<br/>• alle gerade bearbeiteten Anfragen werden abgebrochen<br/>• es werden keine weiteren Anfragen mehr bedient<br/>
|
||
11.4.3. Unterbrechungsfreier Neustart<br/>
|
||
Signal: USR1<br/>
|
||
apachectl graceful<br/>
|
||
sendet das USR1 signal an<br/>
|
||
den Elternprozess<br/>
|
||
kill -USR1 ‘cat /var/log/apache2/httpd.pid‘<br/>
|
||
sendet das USR1 signal an<br/>
|
||
den Elternprozess<br/>
|
||
84<br/>
|
||
<hr/>
|
||
<a name=85></a>11.4. Beenden und Neustarten<br/>
|
||
• das Senden des USR1-Signals an den Elternprozess veranlasst alle seine Kind-<br/>
|
||
prozesse sich zu beenden<br/>
|
||
• die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann<br/>
|
||
• der Elternprozess liest, wärend die Kindprozesse noch laufen, seine Konfigurati-<br/>
|
||
onsdateien erneut ein und öffnet seine Logdateien neu<br/>
|
||
• die Kindprozesse werden wieder gestartet<br/>
|
||
• die Serverstatistiken(mod_status) werden nicht auf Null zurückgesetzt<br/>
|
||
• ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu gestartet<br/>
|
||
• die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann<br/>
|
||
• wäred noch die letzten Anfragen bearbeitet werden kann der httpd nicht gestartet<br/>
|
||
werden<br/>
|
||
11.4.4. Neustarten<br/>
|
||
Signal: HUP<br/>
|
||
apachectl restart<br/>
|
||
sendet das HUP signal an<br/>
|
||
den Elternprozess<br/>
|
||
rcapache restart<br/>
|
||
Apache stoppen und dann starten<br/>
|
||
bei SuSE-Linux<br/>
|
||
kill -HUP ‘cat /var/log/apache2/httpd.pid‘<br/>
|
||
sendet das HUP signal an<br/>
|
||
den Elternprozess<br/>
|
||
• das Senden des HUP(wie TERM)-Signals an den Elternprozess veranlasst alle<br/>
|
||
seine Kindprozesse sich zu beenden<br/>
|
||
• der Elternprozess liest seine Konfigurationsdateien erneut ein und öffnet seine<br/>
|
||
Logdateien neu<br/>
|
||
• die Kindprozesse werden wieder gestartet und setzen die Bedienung von Zugriffen<br/>
|
||
fort<br/>
|
||
• die Serverstatistiken(mod_status) werden auf Null zurückgesetzt<br/>
|
||
• ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu gestartet<br/>
|
||
11.4.5. Anhang: Syntax überprüfen<br/>
|
||
apachectl -t<br/>
|
||
überprüft den Syntax der Konfigurationsdatei, so kann<br/>
|
||
vermieden werden das der Apache nicht neu startet<br/>
|
||
85<br/>
|
||
<hr/>
|
||
<a name=86></a>11. Apache<br/>
|
||
11.5. Anhang<br/>
|
||
11.5.1. Zu den Dateien<br/>
|
||
/etc/apache/<br/>
|
||
/etc/apache2/<br/>
|
||
/etc/httpd/<br/>
|
||
/etc/httpd2/<br/>
|
||
access.conf<br/>
|
||
Zugriffs-Konfiguration<br/>
|
||
httpd.conf<br/>
|
||
Apache Konfigurationsdatei<br/>
|
||
mime.types<br/>
|
||
Zuweisung von Dateiendungen<br/>
|
||
srm.conf<br/>
|
||
Resource-Konfiguration<br/>
|
||
/var/log/apache/<br/>
|
||
/var/log/apach2/<br/>
|
||
/var/log/httpd/<br/>
|
||
/var/log/httpd2/access_log<br/>
|
||
Zugriffsmeldungen<br/>
|
||
error_log<br/>
|
||
Fehlermeldungen<br/>
|
||
httpd.pid<br/>
|
||
Hauptprozessnummer<br/>
|
||
11.6. Benutzerhandbuch<br/>
|
||
11.6.1. httpd.conf<br/>
|
||
ServerType standalone<br/>
|
||
Apache nicht ueber den inetd starten.<br/>
|
||
ServerRoot "/www/"<br/>
|
||
Diese Einstellung sorgt dafür, dass der Apache<br/>
|
||
ausgehend von diesem Verzeichnis die<br/>
|
||
Verzeichnisse fuer Dokumente, Logfiles und<br/>
|
||
Konfigurationsdateien sucht.<br/>
|
||
LockFile /var/lock/subsys/httpd/httpd.accept.lock<br/>
|
||
Spezifizert das Lock<br/>
|
||
File.<br/>
|
||
PidFile /var/run/httpd.pid<br/>
|
||
Datei, in der sich die Prozess ID des Httpd-<br/>
|
||
Daemons befindet.<br/>
|
||
ResourceConfig /etc/httpd/srm.conf<br/>
|
||
Diese Datei enthaelt Angaben zur<br/>
|
||
Formatierung und dem Aussehen der<br/>
|
||
automatisch erzeugten Verzeichnisindizes<br/>
|
||
(FancyIndexing) sowie Angaben zu den einzelnen<br/>
|
||
Dateitypen.<br/>
|
||
AccessConfig /etc/httpd/access.conf<br/>
|
||
Datei zur Definition der Funktionen und<br/>
|
||
86<br/>
|
||
<hr/>
|
||
<a name=87></a>11.6. Benutzerhandbuch<br/>
|
||
Zugriffsrechte bestimmter Verzeichnisse<br/>
|
||
Timeout 300<br/>
|
||
Zeitlimit fuer Client-Anfragen in Sekunden.<br/>
|
||
KeepAlive On<br/>
|
||
Unterstuezung der HTTP/1.1 Persistent<br/>
|
||
Connections. Dardurch koennen ueber eine TCP-<br/>
|
||
Verbindung mehrere Anfragen an den Server<br/>
|
||
geschickt werden.<br/>
|
||
MaxKeepAliveRequests 10<br/>
|
||
Es werden 10 aufeinanderfolgende Anfragen<br/>
|
||
innerhalb einer Keep-Alive-Verbindung erlaubt.<br/>
|
||
KeepAliveTimeout 15<br/>
|
||
Der Server wartet maximal 15 Sekunden auf<br/>
|
||
weitere Anfragen des Clients bei einer Keep-<br/>
|
||
Alive-Verbindung.<br/>
|
||
MinSpareServers 5<br/>
|
||
Es existieren immer mindestens 5 und hoechstens<br/>
|
||
MaxSpareServers 10<br/>
|
||
10 leerlaufende Prozesse.<br/>
|
||
StartServers 5<br/>
|
||
Es werden automatisch 5 Kindprozesse des Apache<br/>
|
||
gestartet.<br/>
|
||
MaxClients 150<br/>
|
||
Maximum von gleichzeitig laufenden<br/>
|
||
Server-Prozessen.<br/>
|
||
MaxRequestsPerChild 30<br/>
|
||
Nach 30 Anfragen wird der Kindprozess beendet<br/>
|
||
und gegebenfalls ein neuer gestartet.<br/>
|
||
Listen 12.34.56.78:80<br/>
|
||
Falls mehrere Interfaces bzw. IP Adressen fuer<br/>
|
||
den Rechner vorhanden sind, kann mit Listen<br/>
|
||
festgelegt werden, welche Ports fuer welche<br/>
|
||
Adresse abgehoert werden sollen.<br/>
|
||
Port 80<br/>
|
||
Standalone Server Port 80<br/>
|
||
User wwwrun<br/>
|
||
Nach dem Oeffnen des Ports (als root), wechselt<br/>
|
||
Group nogroup<br/>
|
||
Apache zu der als User und Group angegebenen<br/>
|
||
UID bzw. GID. Die Zuweisung kann entweder durch<br/>
|
||
angeben des Namens oder durch # gefolgt von der<br/>
|
||
ID erfolgen.<br/>
|
||
ServerAdmin dv@mynet.loc<br/>
|
||
Bei Fehlermeldungen wird diese Adresse dem<br/>
|
||
Client zurueckgeliefert.<br/>
|
||
ServerName www.mynet.loc<br/>
|
||
Wird bei Redirects benoetigt (wenn man<br/>
|
||
87<br/>
|
||
<hr/>
|
||
<a name=88></a>11. Apache<br/>
|
||
beispielsweise durch Eingabe von<br/>
|
||
http://www.mynet.loc/main auf das Verzeichnis<br/>
|
||
main zugreifen will, erzeugt der Apache einen<br/>
|
||
Redirect auf http://www.mynet.loc/main/ . Ohne<br/>
|
||
ServerName würde der richtige Hostname des<br/>
|
||
Rechners zurückgeliefert werden.<br/>
|
||
DocumentRoot "/www/htdocs/"<br/>
|
||
Hier werden die HTML Seiten abgelegt.<br/>
|
||
AllowOverride All<br/>
|
||
Konfigurationsanweisungen in der .htaccess<br/>
|
||
beachten<br/>
|
||
UserDir public_html<br/>
|
||
Homepage-Directory der Benutzer<br/>
|
||
http://server/~benutzer/<br/>
|
||
DirectoryIndex index.html index.htm index.php<br/>
|
||
Wird nur ein Directory<br/>
|
||
angegeben, wird automatisch die<br/>
|
||
angegebene Datei gesucht und angezeigt.<br/>
|
||
AccessFileName .htaccess<br/>
|
||
Name der .htaccess<br/>
|
||
DefaultType text/plain<br/>
|
||
Dateien ohne Endung werden wie Text-Files<br/>
|
||
behandelt.<br/>
|
||
HostnameLookups Off<br/>
|
||
Es sollen keine DNS-Lookups ausgefuert werden.<br/>
|
||
ErrorLog /var/log/httpd/error_log<br/>
|
||
Datei zur Aufnahme von Fehlermeldungen<br/>
|
||
und sonstigen Info Meldungen<br/>
|
||
(mod_log_config).<br/>
|
||
LogLevel warn<br/>
|
||
LogLevel :-) debug, info, notice, warn, error,<br/>
|
||
crit,alert,emerg.<br/>
|
||
LogFormat ...<br/>
|
||
Legt das Format der Logdatei(en) fest.<br/>
|
||
CustomLog /var/log/httpd/access_log common<br/>
|
||
Erzeugt die Datei http.access im<br/>
|
||
Common Log Format.<br/>
|
||
ServerSignature Off<br/>
|
||
ServerSignature kann man auf "Off" stellen,<br/>
|
||
damit ein Zugriff auf eine nichtexistente Seite<br/>
|
||
nicht Software und Versionsnummer anzeigt,<br/>
|
||
jedoch bringt das nicht allzuviel, da im HTTP<br/>
|
||
Header diese und wesentlich mehr Informationen<br/>
|
||
zu finden sind.<br/>
|
||
88<br/>
|
||
<hr/>
|
||
<a name=89></a>11.6. Benutzerhandbuch<br/>
|
||
Alias /icons/ "/www/icons/"<br/>
|
||
Alias-Namen fuer bestimmte Verzeichnisse. Diese<br/>
|
||
werden anschliessend behandelt, als wenn sie<br/>
|
||
sich unter Document-Root befinden wuerden.<br/>
|
||
Achtung! Die Einstellungen gelten auch fuer<br/>
|
||
virtuelle Hosts.<br/>
|
||
IndexOptions FancyIndexing<br/>
|
||
Als Optionen sind angebbar:<br/>
|
||
Fancyindexing - ausführliche Verzeichnisliste<br/>
|
||
(Icons, Name, Größe, Kurzbeschreibung etc.)<br/>
|
||
SuppressLastModified - keine Angabe der letzten<br/>
|
||
Modifikationszeit<br/>
|
||
SuppressSize - keine Angabe der Filegröße<br/>
|
||
SuppressDescription - keine Angabe einer<br/>
|
||
Kurzbeschreibung<br/>
|
||
ScanHTMLTitles - HTML-Titel als Kurzbeschreibung<br/>
|
||
(Achtung: Rechnerlast!)<br/>
|
||
ReadmeName README<br/>
|
||
Die Datei README wird bei der Ausgabe des<br/>
|
||
Verzeichnisbaums angezeigt.<br/>
|
||
HeaderName HEADER<br/>
|
||
Die Datei HEADER wird am Anfangs-Tag in den<br/>
|
||
Verzeichnisbaums angezeigt.<br/>
|
||
IndexIgnore .??* *~ *#<br/>
|
||
RCS CVS *,v *,t<br/>
|
||
Diese Dateien werden nicht durch<br/>
|
||
FancyIndexing angezeigt.<br/>
|
||
TypesConfig /etc/httpd/mime.types<br/>
|
||
Enthaelt die Zuweisungen Dateiendung<br/>
|
||
zu Mime-Typ<br/>
|
||
BrowserMatch "Mozilla/2" nokeepalive<br/>
|
||
Hiermit wird der Apache angewiesen, auf<br/>
|
||
bestimmte Browser unterschiedlich zu<br/>
|
||
reagieren.<br/>
|
||
11.6.2. Access Control List File (.htaccess)<br/>
|
||
Die Datei .htaccess muß in dem zu schützenden Ordner angelegt werden.<br/>
|
||
AuthUserFile /www/.htpasswd<br/>
|
||
Pfad zu einer Passwortdatei<br/>
|
||
AuthGroupFile /dev/null<br/>
|
||
AuthName "Tux ;-)"<br/>
|
||
AuthType Basic<br/>
|
||
<Limit GET POST PUT><br/>
|
||
require user webmaster<br/>
|
||
</Limit><br/>
|
||
89<br/>
|
||
<hr/>
|
||
<a name=90></a>11. Apache<br/>
|
||
AuthUserFile /www/.htpasswd<br/>
|
||
Pfad zu einer Passwortdatei<br/>
|
||
AuthGroupFile /www/.htgroup<br/>
|
||
Pfad zu einer Gruppendatei<br/>
|
||
AuthName "Tux ;-)"<br/>
|
||
AuthType Basic<br/>
|
||
<Limit GET><br/>
|
||
require group logins<br/>
|
||
</Limit><br/>
|
||
11.6.3. Gruppendatei (.htgroup)<br/>
|
||
cat .htgroup --><br/>
|
||
logins: benutzer1 benutzer2 ...<br/>
|
||
11.6.4. Passwort-Datei (.htpasswd)<br/>
|
||
htpasswd -c Passwortdatei Benutzername<br/>
|
||
erzeugt eine neue Passwortdatei<br/>
|
||
und ein Benutzer<br/>
|
||
htpasswd Passwortdatei Benutzername<br/>
|
||
erzeugt ein Benutzer<br/>
|
||
11.6.5. Erstellen eines SSL-Zertifikats<br/>
|
||
openssl req -new > firma.csr<br/>
|
||
openssl rsa -in privkey.pem -out firma.key<br/>
|
||
openssl x509 -in firma.csr -out firma.crt -req -signkey firma.key -days 10000<br/>
|
||
cp firma.key /etc/httpd/ssl.key/server.key<br/>
|
||
cp firma.crt /etc/httpd/ssl.crt/server.crt<br/>
|
||
cp firma.csr /etc/httpd/ssl.csr/server.csr<br/>
|
||
chown root privkey.pem<br/>
|
||
chmod 400 privkey.pem<br/>
|
||
11.6.6. LinkIcon (favicon.ico)<br/>
|
||
Was ist ein favicon.ico?<br/>
|
||
Immer wenn ein IE5 Benutzer eine Seite seinen Favoriten hinzufügt, sucht der IE5<br/>
|
||
nach einem Icon das er anstatt des Standardicons in der Favoritenliste anzeigen kann.<br/>
|
||
Er sucht zuerst im aktuellen ’Verzeichnis’ und geht dann Ebene für Ebene weiter bis<br/>
|
||
zum Wurzelverzeichnis. Nehmen wir mal an, das aktuelle Dokument befindet sich un-<br/>
|
||
ter http://www.bjoernsworld.de/suchmaschinen/ optimieren/aufraeumen.html, dann<br/>
|
||
wird der IE 5 so nach dem Icon suchen:<br/>
|
||
http://www.bjoernsworld.de/suchmaschinen/optimieren/favicon.ico<br/>
|
||
http://www.bjoernsworld.de/suchmaschinen/favicon.ico<br/>
|
||
http://www.bjoernsworld.de/favicon.ico<br/>
|
||
90<br/>
|
||
<hr/>
|
||
<a name=91></a>11.6. Benutzerhandbuch<br/>
|
||
Er sucht solange, bis er eines gefunden hat oder bei /favicon.ico angekommen ist.<br/>
|
||
Das gilt nur für den Internet Explorer Version 5.0 und 5.01; Version 5.5 sucht nur noch<br/>
|
||
nach /favicon.ico selbstständig. Hat er eins gefunden, zeigt er es in der Favoritenliste<br/>
|
||
an und beim erneuten Besuch der Seite auch links neben der URL in der Adresszeile:<br/>
|
||
Welches Format hat das favicon.ico?<br/>
|
||
Das favicon.ico ist ein Icon im Microsoft Windows Icon File Format. Windows Be-<br/>
|
||
nutzer sehen täglich solche Icons auf ihrem Desktop, in ihrem Startmenü, etc. In der<br/>
|
||
Favoritenliste wird dieses Icon in der Größe 16x16 Pixel dargestellt, daher sollte man<br/>
|
||
das Icon auch in dieser Größe erstellen. Die Farbzahl beschränkt sich auf 16 bzw. 256<br/>
|
||
Farben, wobei eine als transparente Farbe gilt.<br/>
|
||
Welchen MIME-Type hat das favicon.ico?<br/>
|
||
Der korrekte MIME-Type für das favicon.ico ist image/x-icon. Beim Apache Webserver<br/>
|
||
kann man das in einer .htaccess mit der Zeile:<br/>
|
||
AddType image/x-icon .ico<br/>
|
||
konfigurieren.<br/>
|
||
Wie erstelle ich ein favicon.ico?<br/>
|
||
Man braucht dafür einen Icon Editor wie man sie zuhauf bei Tucows oder Winfiles. com<br/>
|
||
finden kann. Mit z.B. dem Freeware Tool Irfan View ist es ohne Probleme möglich,<br/>
|
||
eine Gifdatei in das Icon Format zu konvertieren. Macintosh Benutzer können den<br/>
|
||
GraphicConverter von Thorsten Lemke oder den Iconographer von MscapeSoftware<br/>
|
||
benutzen um das Icon zu erstellen. Bei favicon.com gibt es einen Online Editor in<br/>
|
||
Java, mit dem man online sein eigenes favicon.ico erstellen kann.<br/>
|
||
Wohin muss das favicon.ico?<br/>
|
||
Wie oben schon gesagt, sucht der IE5, vor Version 5.5, zuerst im aktuellen ’Verzeichnis’<br/>
|
||
und geht dann Ebene um Ebene nach oben, bis er unter http://host/favicon.ico ein<br/>
|
||
Icon findet oder eben nicht. Man kann entweder in jedes Verzeichnis ein favicon.ico<br/>
|
||
plazieren, oder im <HEAD> einer jeden HTML Datei auf ein Icon verweisen:<br/>
|
||
<link rel="SHORTCUT ICON" href="/favicon.ico" title="external:/favicon.ico"><br/>
|
||
Wenn der Apache Webserver mit mod_rewrite benutzt wird, kann man mit dieser<br/>
|
||
Regel:<br/>
|
||
RewriteEngine on<br/>
|
||
RewriteRule ^(.+)/favicon\.ico$ /favicon.ico [R=permanent] [L]<br/>
|
||
91<br/>
|
||
<hr/>
|
||
<a name=92></a>11. Apache<br/>
|
||
(z.B. in der .htaccess) alle Anfragen für favicons in Unterverzeichnissen auf das<br/>
|
||
favicon.ico im Root-Verzeichnis der Domain umleiten.<br/>
|
||
Wenn mod_rewrite nicht zur Verfügung steht, wohl aber Zugriff auf die Konfigu-<br/>
|
||
rationsdateien Apache Web Servers, kann man in z.B. der <VirtualHost> Sektion<br/>
|
||
folgenden Befehl einfügen:<br/>
|
||
RedirectMatch Permanent ^(.+)/favicon\.ico$ http://server.de/favicon.ico<br/>
|
||
Wie kann man diese Funktion abstellen?<br/>
|
||
Es gibt meines Wissens nach keine Möglichkeit den IE5 dazu zu bringen, nicht nach<br/>
|
||
dem favicon.ico zu suchen.<br/>
|
||
Links zum Thema:<br/>
|
||
http://www.favicon.de/<br/>
|
||
http://www.favicon.com/<br/>
|
||
http://wdvl.com/Authoring/Design/Images/Favicon/index.html<br/>
|
||
http://msdn.microsoft.com/workshop/essentials/versions/ICPIE5.asp<br/>
|
||
http://msdn.microsoft.com/workshop/Author/dhtml/howto/ShortcutIcon.asp<br/>
|
||
http://www.winfiles.com/apps/98/icons-edit.html<br/>
|
||
http://web.cip.com.br/flaviovs/sec/favicon/privacy.html<br/>
|
||
http://web.cip.com.br/flaviovs/sec/favicon/index.html<br/>
|
||
http://www.bjoernsworld.de/ie/398da66c.24234236@news.bjoern.hoehrmann.de.txt<br/>
|
||
92<br/>
|
||
<hr/>
|
||
<a name=93></a>12. MySQL<br/>
|
||
12.1. Einleitung<br/>
|
||
MySQL ist eine Datenbank und phpMyAdmin eine Web-Oberfläche, um MySQL zu<br/>
|
||
konfigurieren.<br/>
|
||
12.2. Kompilieren und Installieren<br/>
|
||
12.2.1. Anforderungen<br/>
|
||
• MySQL-Quellcode 4.x.xx, erhältlich bei http://www.mysql.com/<br/>
|
||
• Linux 2.x.xx<br/>
|
||
• ANSI-C-Compiler und Generierungswerkzeuge, GNU C Compiler (GCC) ab Ver-<br/>
|
||
sion 2.95.4, wesentliche Generierungswerkzeuge wie make<br/>
|
||
• phpMyAdmin 2.x.x(optional), erhältlich bei http://www.phpmyadmin.net/, Web-<br/>
|
||
Server, Apache 1 oder 2 mit PHP 4 oder 5<br/>
|
||
12.2.2. Vorbereitungen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
mkdir /usr/local/src<br/>
|
||
das Verzeichnis /usr/local/src anlegen,<br/>
|
||
wenn es noch nicht vorhanden ist<br/>
|
||
chmod 777 /usr/local/src<br/>
|
||
Verzeichnis-Rechte setzen<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
cp Quelldateien /usr/local/src<br/>
|
||
Quelldateien kopieren<br/>
|
||
12.2.3. MySQL<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
tar xvfz mysql-4.0.21.tar.gz<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd mysql-4.0.21<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
./configure --help<br/>
|
||
Hilfe zu den miöglichen Optionen<br/>
|
||
./configure --prefix=/usr/local/mysql/4.0.21 --localstatedir=/var/mysql/data<br/>
|
||
prefix: Installations-Verzeichnis<br/>
|
||
localstatedir: Daten-Verzeichnis<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
93<br/>
|
||
<hr/>
|
||
<a name=94></a>12. MySQL<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
Programm installieren (als root!)<br/>
|
||
ln -s /usr/local/mysql/4.0.21 /usr/local/mysql/current<br/>
|
||
Link zu MySQL<br/>
|
||
cp support-files/mysql.server /etc/init.d/mysql<br/>
|
||
Startdatei kopieren<br/>
|
||
chmod 755 /etc/init.d/mysql<br/>
|
||
Dateirechte einstellen<br/>
|
||
ln -s /etc/init.d/mysql /etc/rc5.d/S20mysql<br/>
|
||
Link zum Starten in Runlevel5 anlegen<br/>
|
||
ln -s /etc/init.d/mysql /etc/rc6.d/K20mysql<br/>
|
||
Link zum Beenden in Runlevel6 anlegen<br/>
|
||
ln -s /etc/init.d/mysql /etc/rc0.d/K20mysql<br/>
|
||
Link zum Beenden in Runlevel0 anlegen<br/>
|
||
groupadd mysql<br/>
|
||
Gruppe mysql anlegen<br/>
|
||
useradd -g mysql -d /usr/local/mysql/current -s /bin/false mysql<br/>
|
||
Benutzer mysql anlengen<br/>
|
||
mkdir -p /var/mysql/data<br/>
|
||
Daten-Verzeichnis anlegen<br/>
|
||
./scripts/mysql_install_db --user=mysql initiale Datenbank installieren<br/>
|
||
cd /usr/local/mysql/current<br/>
|
||
in das mysql Verzeichnis wechseln<br/>
|
||
cp share/mysql/my-medium.cnf /var/mysql/data/my.cnf<br/>
|
||
Konfiguration anlegen<br/>
|
||
chown -R root:mysql .<br/>
|
||
Benutzer-Gruppen-Rechte setzen<br/>
|
||
chown -R mysql:mysql /var/mysql/data<br/>
|
||
Rechte für das Daten-Verzeichnis setzen<br/>
|
||
/etc/init.d/mysql start<br/>
|
||
mysql starten<br/>
|
||
./bin/mysqladmin -u root password ’geheim’<br/>
|
||
Datenbank-Passwort setzen<br/>
|
||
Achtung ! das Passwort steht danach in<br/>
|
||
der ~/.bash_history<br/>
|
||
12.2.4. MySQL Testen<br/>
|
||
./bin/mysql -D mysql -u root -p<br/>
|
||
Client starten und zugriff auf die<br/>
|
||
Steuerungs-Datenbank nehmen<br/>
|
||
mysql> show tables;<br/>
|
||
Tabelle anzeigen<br/>
|
||
+-----------------+<br/>
|
||
| Tables_in_mysql |<br/>
|
||
+-----------------+<br/>
|
||
| columns_priv<br/>
|
||
|<br/>
|
||
| db<br/>
|
||
|<br/>
|
||
| func<br/>
|
||
|<br/>
|
||
| host<br/>
|
||
|<br/>
|
||
| tables_priv<br/>
|
||
|<br/>
|
||
| user<br/>
|
||
|<br/>
|
||
94<br/>
|
||
<hr/>
|
||
<a name=95></a>12.2. Kompilieren und Installieren<br/>
|
||
+-----------------+<br/>
|
||
6 rows in set (0.00 sec)<br/>
|
||
mysql> exit;<br/>
|
||
Client beenden<br/>
|
||
Bye<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
12.2.5. phpMyAdmin<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
cd /srv/www/htdocs<br/>
|
||
in das Apache1.3-Verzeichnis wechseln<br/>
|
||
cd /srv/www2/htdocs<br/>
|
||
in das Apache2-Verzeichnis wechseln<br/>
|
||
tar xvfj /usr/local/src/phpMyAdmin-2.5.7-pl1.tar.bz2<br/>
|
||
Dateien entpacken<br/>
|
||
ln -s phpMyAdmin-2.5.7-pl1 phpMyAdmin<br/>
|
||
Link zu phpMyAdmin anlegen<br/>
|
||
vi phpMyAdmin/config.inc.php<br/>
|
||
phpMyAdmin anpassen<br/>
|
||
$cfg[’PmaAbsoluteUri’] = ’http://localhost/phpMyAdmin/’;<br/>
|
||
URL zu Apache1.3<br/>
|
||
$cfg[’PmaAbsoluteUri’] = ’http://localhost:81/phpMyAdmin/’;<br/>
|
||
URL zu Apache2<br/>
|
||
$cfg[’Servers’][$i][’user’]<br/>
|
||
= ’root’;<br/>
|
||
// MySQL user<br/>
|
||
$cfg[’Servers’][$i][’password’]<br/>
|
||
= ’geheim’; // MySQL password<br/>
|
||
vi phpMyAdmin/.htaccess<br/>
|
||
htaccess anlegen<br/>
|
||
AuthType Basic<br/>
|
||
AuthName "PhpMyAdmin"<br/>
|
||
AuthUserFile /srv/www/htdocs/phpMyAdmin/.htpasswd<br/>
|
||
Apache1.3<br/>
|
||
AuthUserFile /srv/www2/htdocs/phpMyAdmin/.htpasswd<br/>
|
||
Apache2<br/>
|
||
AuthGroupFile /dev/null<br/>
|
||
<Limit GET POST><br/>
|
||
require valid-user<br/>
|
||
</Limit><br/>
|
||
cd /usr/local/apache/current/bin<br/>
|
||
Verzeichnis wechseln, Apache1.3<br/>
|
||
cd /usr/local/apache2/current/bin<br/>
|
||
Verzeichnis wechseln, Apache2<br/>
|
||
./htpasswd --help<br/>
|
||
Hilfe zu htpasswd<br/>
|
||
./htpasswd -c /srv/www/htdocs/phpMyAdmin/.htpasswd root<br/>
|
||
Apache1.3<br/>
|
||
./htpasswd -c /srv/www2/htdocs/phpMyAdmin/.htpasswd root<br/>
|
||
Apache2<br/>
|
||
vi /etc/apache/httpd.conf<br/>
|
||
Apache1.3 anpassen<br/>
|
||
95<br/>
|
||
<hr/>
|
||
<a name=96></a>12. MySQL<br/>
|
||
vi /etc/apache2/httpd.conf<br/>
|
||
Apache2 anpassen<br/>
|
||
<Directory "/srv/www/htdocs"><br/>
|
||
Options Indexes FollowSymLinks MultiViews<br/>
|
||
AllowOverride AuthConfig<br/>
|
||
None -> AuthConfig<br/>
|
||
Order allow,deny<br/>
|
||
Allow from all<br/>
|
||
</Directory><br/>
|
||
/etc/init.d/apache graceful<br/>
|
||
Einstellungen neu einlesen, Apache1.3<br/>
|
||
/etc/init.d/apache2 graceful<br/>
|
||
Einstellungen neu einlesen, Apache2<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
96<br/>
|
||
<hr/>
|
||
<a name=97></a>13. PHP<br/>
|
||
13.1. Einleitung<br/>
|
||
Wer hat PHP erfunden ?<br/>
|
||
Der Kanada-Däne Rasmus Lerdorf !<br/>
|
||
Was heist PHP ?<br/>
|
||
Personal Home Page Tools<br/>
|
||
Was ist PHP ?<br/>
|
||
Eine einfache Skriptsprache. Sie wird direkt<br/>
|
||
in HTML-Seiten eingefügt und vom Webserver<br/>
|
||
interpretiert.<br/>
|
||
Wie funktioniert PHP ?<br/>
|
||
Der Browser schickt einen HTTP-Request an den<br/>
|
||
Webserver. Der Server reagiert, liest die<br/>
|
||
PHP-Seite ein, und führt die Skripte aus und<br/>
|
||
schickt erst das fertig zusammengesetzte<br/>
|
||
Dokument zurück an den Browser !<br/>
|
||
LAMP - Linux-Apache-MySQL-PHP<br/>
|
||
WAMP - Windows-Apache-MySQL-PHP<br/>
|
||
13.2. Kompilieren und Installieren<br/>
|
||
13.2.1. Anforderungen<br/>
|
||
• PHP 4 oder 5, erhältlich bei http://www.php.net/<br/>
|
||
• Linux ab 2.4.xx(z.B.Debian Sarge 3.1)<br/>
|
||
• ANSI-C-Compiler und Generierungswerkzeuge, GNU C Compiler (GCC) ab Ver-<br/>
|
||
sion 2.7.2, wesentliche Generierungswerkzeuge wie make<br/>
|
||
• Webserver z.B. Apache 1.3 oder 2<br/>
|
||
• GD-Library ab 2.x.x, erhältlich bei http://www.boutell.com/gd/, Freetype ab<br/>
|
||
2.x.x, erhältlich bei http://www.freetype.org/, Zlib ab 1.x.x, erhältlich bei http://www.gzip.org/zlib/,<br/>
|
||
IJG JPEG, erhältlich bei http://www.ijg.org/<br/>
|
||
13.2.2. Vorbereitungen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
mkdir /usr/local/src<br/>
|
||
das Verzeichnis /usr/local/src anlegen,<br/>
|
||
wenn es noch nicht vorhanden ist<br/>
|
||
97<br/>
|
||
<hr/>
|
||
<a name=98></a>13. PHP<br/>
|
||
chmod 777 /usr/local/src<br/>
|
||
Verzeichnis-Rechte setzen<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
cp Quelldateien /usr/local/src<br/>
|
||
Quelldateien kopieren<br/>
|
||
13.2.3. Libraries für Zusatzfunktionen<br/>
|
||
Freetype<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
tar xvfj freetype-2.1.9.tar.bz2<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd freetype-2.1.9<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
./configure<br/>
|
||
Codebaum konfigurieren<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
Programm installieren<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
Zlib<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
tar xvfz zlib-1.2.1.tar.gz<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd zlib-1.2.1<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
./configure<br/>
|
||
Codebaum konfigurieren<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
Programm installieren<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
IJG JPEG<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
tar xvfz jpegsrc.v6b.tar.gz<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd jpeg-6b<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
./configure --help<br/>
|
||
Hilfe zu den möglichen Optionen<br/>
|
||
./configure --enable-shared<br/>
|
||
--enable-static<br/>
|
||
--prefix=/usr/local<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
make test<br/>
|
||
Programm testen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
Programm installieren<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
GD-Library<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
98<br/>
|
||
<hr/>
|
||
<a name=99></a>13.2. Kompilieren und Installieren<br/>
|
||
tar xvfz gd-2.0.28.tar.gz<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd gd-2.0.28<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
./configure<br/>
|
||
Codebaum konfigurieren<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
Programm installieren<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
13.2.4. PHP<br/>
|
||
cd /usr/local/src<br/>
|
||
Verzeichnis wechseln<br/>
|
||
tar xvfj php-5.0.1.tar.bz2<br/>
|
||
Quelldateien entpacken<br/>
|
||
cd php-5.0.1<br/>
|
||
in das Quelldatei-Verzeichnis wechseln<br/>
|
||
./configure --help<br/>
|
||
Hilfe zu den möglichen Optionen<br/>
|
||
./configure --with-apxs=/usr/local/apache/current/bin/apxs<br/>
|
||
Apache 1.3 oder<br/>
|
||
--with-apxs2=/usr/local/apache2/current/bin/apxs<br/>
|
||
Apache 2<br/>
|
||
--with-mysql=/usr/local/mysql/current<br/>
|
||
--with-zlib<br/>
|
||
--with-ftp<br/>
|
||
--with-gd<br/>
|
||
--with-jpeg-dir=/usr/local/lib<br/>
|
||
--enable-versioning<br/>
|
||
--enable-track-vars=yes<br/>
|
||
--enable-url-includes<br/>
|
||
--enable-sysvshm=yes<br/>
|
||
--enable-sysvsem=yes<br/>
|
||
--with-config-file-path=/etc<br/>
|
||
make<br/>
|
||
Programm herstellen<br/>
|
||
su<br/>
|
||
als root anmelden<br/>
|
||
make install<br/>
|
||
Programm installieren<br/>
|
||
cp php.ini-dist /etc/php.ini<br/>
|
||
PHP-Konfiguration kopieren<br/>
|
||
vi /etc/apache/httpd.conf<br/>
|
||
Apache1.3 anpassen<br/>
|
||
vi /etc/apache2/httpd.conf<br/>
|
||
Apache2 anpassen<br/>
|
||
LoadModule php5_module<br/>
|
||
modules/libphp5.so<br/>
|
||
Apache2<br/>
|
||
LoadModule php5_module<br/>
|
||
libexec/libphp5.so<br/>
|
||
Apache1.3<br/>
|
||
AddModule mod_php5.c<br/>
|
||
Apache1.3<br/>
|
||
DirectoryIndex index.html index.htm index.html.var index.php index.phtml<br/>
|
||
AddType application/x-httpd-php .php<br/>
|
||
AddType application/x-httpd-php-source .phps<br/>
|
||
exit<br/>
|
||
root abmelden<br/>
|
||
99<br/>
|
||
<hr/>
|
||
<a name=100></a>13. PHP<br/>
|
||
13.3. Referenz<br/>
|
||
13.3.1. Grundlagen<br/>
|
||
<?php , <? oder <%<br/>
|
||
Beginn des PHP-Abschnitts<br/>
|
||
?> oder %><br/>
|
||
Ende des PHP-Abschnitts<br/>
|
||
;<br/>
|
||
Zeilenende<br/>
|
||
// Kommentartext<br/>
|
||
Einzeiliger Kommentartext<br/>
|
||
/* Kommentartext<br/>
|
||
Einleitung, mehrzeiliger Kommentartext<br/>
|
||
Kommentartext */<br/>
|
||
Abschluss, mehrzeiliger Kommentartext<br/>
|
||
$<br/>
|
||
Variablen anfang<br/>
|
||
echo "Text" ;<br/>
|
||
Text ausgeben<br/>
|
||
echo "Text $Variable Text" ;<br/>
|
||
Variable ausgeben<br/>
|
||
echo "Text".$Variable."Text" ; . Verketten von Zeichenfolgen<br/>
|
||
echo "Text\n" ;<br/>
|
||
\n Erzeugt eine neue Zeile<br/>
|
||
echo "Text\r" ;<br/>
|
||
\r Erzeugt einen neuen Absatz (return)<br/>
|
||
echo "Text\tText" ;<br/>
|
||
\t Erzeugt ein Tabulatorschritt<br/>
|
||
echo "\"Text\"" ;<br/>
|
||
\" Gänsefüßchen ausgeben<br/>
|
||
echo "\’Text\’" ;<br/>
|
||
\’ Einfache Anführungszeichen ausgeben<br/>
|
||
echo "\$Text\$" ;<br/>
|
||
\$ Dollar-Zeichen ausgeben<br/>
|
||
echo "\\Text\\" ;<br/>
|
||
\\ Backslash ausgeben<br/>
|
||
$Array[Indexwert]="Wert" ;<br/>
|
||
Wert einer Array-Variable zuweisen (Langform)<br/>
|
||
$Array=array("W0","W1") ;<br/>
|
||
Werte einer Array-Variable zuweisen (Kurzform)<br/>
|
||
echo $Array[Indexwert] ;<br/>
|
||
Wert einer Array-Variable ausgeben<br/>
|
||
$Array[Index-Ersatz]="Wert" ;<br/>
|
||
Wert eines Assoziativen-Arrays zuweisen (Langf.)<br/>
|
||
$Array=array("I-E0"=>"W0","I-E1"=>"W1") ;<br/>
|
||
Werte eines Assoziativen-Arrays zuweisen(Kurzf.)<br/>
|
||
echo $Array[Index-Ersatz] ;<br/>
|
||
Wert eines Assoziativen-Arrays ausgeben<br/>
|
||
$a=$b+$c ;<br/>
|
||
Addition von $b und $c gleich $a<br/>
|
||
$a=$b-$c ;<br/>
|
||
Subtraktion von $b minus $c gleich $a<br/>
|
||
$a=$b*$c ;<br/>
|
||
Multiplikation von $b mal $c gleich $a<br/>
|
||
$a=$b/$c ;<br/>
|
||
Division $b geteilt durch $c gleich $a<br/>
|
||
$a++ ;<br/>
|
||
$a=$a+1 ;<br/>
|
||
$a-- ;<br/>
|
||
$a=$a-1 ;<br/>
|
||
$a=3.1415 ;<br/>
|
||
. Dezimaltrenner<br/>
|
||
13.3.2. Funktionen<br/>
|
||
phpinfo() ;<br/>
|
||
PHP-Informationen ausgeben<br/>
|
||
$Wochentag=date("w") ;<br/>
|
||
Wochentag ermitteln 0-So bis 6-Sa<br/>
|
||
$Monatszahl=date("m") ;<br/>
|
||
Monatszahl ermitteln<br/>
|
||
$Anzahl=count($Array) ;<br/>
|
||
Elemet-Anzahl eines Arrays ermitteln<br/>
|
||
$Wert=round($Wert,Nachkommastellen) ;<br/>
|
||
Rundet den Wert mit Nachkommastellen<br/>
|
||
$Wert=sprintf("%01.2f",$Wert) ; Rundet den Wert auf 2 :Nachkommastellen<br/>
|
||
100<br/>
|
||
<hr/>
|
||
<a name=101></a>14. Squid<br/>
|
||
14.1. Proxy<br/>
|
||
Squid = Proxy-Cache = Stellvertreter-Zwischenspeicher<br/>
|
||
14.2. Einfacher Cache<br/>
|
||
*---------------*<br/>
|
||
*------------* | *---------* | *------------*<br/>
|
||
| lokaler Cache |<--->| WWW-Client |<--->| Intenet |<--->| WWW-Server |<br/>
|
||
*---------------*<br/>
|
||
*------------* | *---------* | *------------*<br/>
|
||
Die einfachste form des Caches<br/>
|
||
|<br/>
|
||
|<br/>
|
||
14.3. Proxy Cache<br/>
|
||
*------------*<br/>
|
||
| WWW-Client |<-+<br/>
|
||
|<br/>
|
||
|<br/>
|
||
*------------* |<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
*------------* | *-------------* | *---------* | *------------*<br/>
|
||
| WWW-Client |<-+->| Proxy Cache |<--->| Intenet |<--->| WWW-Server |<br/>
|
||
*------------* | *-------------* | *---------* | *------------*<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
*------------* |<br/>
|
||
|<br/>
|
||
|<br/>
|
||
| WWW-Client |<-+<br/>
|
||
|<br/>
|
||
|<br/>
|
||
*------------*<br/>
|
||
14.4. Aufgaben<br/>
|
||
• Zwischenspeichern von Internetseitten -> Beschleunigter Zugriff auf Internetin-<br/>
|
||
halte<br/>
|
||
• Abkoppelung vom direkten Zugriff auf das Internet -> Erhöte Sicherheit im<br/>
|
||
lokalem Netz<br/>
|
||
• Filterung von Interrnetseiten<br/>
|
||
• Protokollierung des Internetverkehrs<br/>
|
||
101<br/>
|
||
<hr/>
|
||
<a name=102></a>14. Squid<br/>
|
||
14.5. Eigenschaften<br/>
|
||
• Größe des Cache kann frei definiert werden<br/>
|
||
• Aufbau von Cache-Hierarchien<br/>
|
||
• Eigener DNS-Cache<br/>
|
||
• Authentifizierung über zusätzliche Module möglich<br/>
|
||
• Für Win, OS/2, Linux, BSD, Solaris verfügbar<br/>
|
||
• Ausfilterung und Anonymisierung der Anfragen<br/>
|
||
• Sehr flexible Zugriffskontrolle<br/>
|
||
• Filterung über externe Programme (Squid-Guard)<br/>
|
||
14.6. Protokolle<br/>
|
||
14.6.1. Client-Kommunikation<br/>
|
||
• Hyper Text Transfer Protocol (HTTP)<br/>
|
||
• File Transfer Protocol (FTP)<br/>
|
||
• Gopher<br/>
|
||
• Wide Area Information Service (WAIS)<br/>
|
||
• Secure Socket Layer (SSL)<br/>
|
||
14.6.2. Kommunikation zwischen Proxy-Cache-Servern<br/>
|
||
• HyperText Transfer Protocol (HTTP)<br/>
|
||
• Internet Cache Protocol (ICP(3130))<br/>
|
||
• Cache Digests (Index von anderen Caches abfragen)<br/>
|
||
• Simple Network Management Protocol (SNMP)<br/>
|
||
• HyperText Caching Protocol (HTCP(4837))<br/>
|
||
• Web Cache Coordination Protocol (WCCP)<br/>
|
||
102<br/>
|
||
<hr/>
|
||
<a name=103></a>14.7. Systemvoraussetzungen<br/>
|
||
14.7. Systemvoraussetzungen<br/>
|
||
• Langsamme CPU<br/>
|
||
• Viel RAM<br/>
|
||
• Schnelle Festplatte(n)<br/>
|
||
• Große Festplatte(n)<br/>
|
||
14.8. SuSE Linux<br/>
|
||
rcsquid start<br/>
|
||
Squid starten<br/>
|
||
rcsquid stop<br/>
|
||
Squid stoppen<br/>
|
||
rcsquid restart<br/>
|
||
Squid stoppen und dann starten<br/>
|
||
rcsquid status<br/>
|
||
Squid info<br/>
|
||
14.9. Automatische Starten von Squit<br/>
|
||
cd /etc/rc.d/rc5.d/<br/>
|
||
ln -s ../squid S22squid<br/>
|
||
Link zum automatischen Starten in Runlevel 5<br/>
|
||
anlegen.<br/>
|
||
ln -s ../squid K02squid<br/>
|
||
Link zum automatischen Beenden in Runlevel 5<br/>
|
||
anlegen.<br/>
|
||
14.10. Squiddateien<br/>
|
||
/etc/squid.conf<br/>
|
||
Squid Konfigurationsdatei<br/>
|
||
/usr/share/squid/errors/<br/>
|
||
Fehlermeldungen die der Squid ausgibt<br/>
|
||
/var/cache/squid/<br/>
|
||
Squid-Cache<br/>
|
||
/var/log/squid/access.log<br/>
|
||
Log-Datei mit allen Zugriffen<br/>
|
||
/var/log/squid/cache.log<br/>
|
||
Cache-Aktivitaeten<br/>
|
||
14.11. squid.conf<br/>
|
||
http_port: Proxy-Portnummer<br/>
|
||
# http_port 3128<br/>
|
||
http_port 8080<br/>
|
||
cache_mem: Hauptspeicherverbrauch (x3)<br/>
|
||
# cache_mem 8 MB<br/>
|
||
maximum_object_size: maximale groeße einer Datei die der Proxy speichert<br/>
|
||
# maximum_object_size 4096 KB<br/>
|
||
103<br/>
|
||
<hr/>
|
||
<a name=104></a>14. Squid<br/>
|
||
minimum_object_size: minimale groeße einer Datei die der Proxy speichert<br/>
|
||
# minimum_object_size 0 KB<br/>
|
||
cache_dir: Verzeichnisname GroeßeMByte Ebene1 Ebene2<br/>
|
||
# cache_dir ufs /var/cache/squid 100 16 256<br/>
|
||
cache_dir ufs /var/cache/squid 400 16 256<br/>
|
||
cache_access_log: Log-Datei mit allen Zugriffen<br/>
|
||
# cache_access_log /var/log/squid/access.log<br/>
|
||
cache_log: Log-Datei fuer alle Cache-Aktivitaeten<br/>
|
||
# cache_log /var/log/squid/cache.log<br/>
|
||
debug_options: ALL,1-normal 9-maximal<br/>
|
||
# debug_options ALL,1<br/>
|
||
log_fqdn: Bei on wird der Name und bei off wird die IP-Nummer<br/>
|
||
in der access.log speichert<br/>
|
||
# log_fqdn off<br/>
|
||
log_fqdn off<br/>
|
||
client_netmask: Zum Anonymisieren<br/>
|
||
255.255.255.255 volle IP-Nr.,<br/>
|
||
255.255.255.0 ersten 3 Stellen<br/>
|
||
# client_netmask 255.255.255.255<br/>
|
||
ftp_user: Anonymer FTP-Name<br/>
|
||
# ftp_user Squid@<br/>
|
||
ftp_user Anonymous@<br/>
|
||
dns_children: maximale Anzahl der DNS Prozesse<br/>
|
||
# dns_children 5<br/>
|
||
dns_nameservers: Eintrag fuer DNS-Server<br/>
|
||
#dns_nameservers 194.25.2.129 192.168.6.66<br/>
|
||
reference_age: maximale Alter der Cachefiles (0.0 week/days/months/hours)<br/>
|
||
# reference_age 1 year<br/>
|
||
negative_ttl: gibt an wie lange eine negative DNS Aufloesung gueltig ist<br/>
|
||
# negative_ttl 5 minutes<br/>
|
||
http_access: Zugriffsrechte fuer den Cache<br/>
|
||
104<br/>
|
||
<hr/>
|
||
<a name=105></a>14.11. squid.conf<br/>
|
||
# acl - aclname acltype string - definiert eine Zuganskontrolle und Sperrliste<br/>
|
||
# src - Client IP-Adresse/Adressbereich<br/>
|
||
# dst - Zielserver IP-Adresse/Adressbereich<br/>
|
||
# srcdomain - Client (Domain-)Name<br/>
|
||
# dstdomain - Zielserver (Domain-)Name<br/>
|
||
# srcdom_regex - Cient (Domain-)Name als RegEx<br/>
|
||
# dstdom_regex - Zielserver (Domain-)Name als RegEx<br/>
|
||
# port - Port oder -bereich für Verbindungen<br/>
|
||
# proto - Protokoll (z.B. HTTP, FTP ...) für die Verbindung<br/>
|
||
# method - Methode der Verbindung (z.B. GET, POST ...)<br/>
|
||
# proxy_auth - Benutzernamen bei Authentifizierung<br/>
|
||
# urlpath_regex Teil einer URL als RegEx<br/>
|
||
acl all src 0.0.0.0/0.0.0.0<br/>
|
||
acl rotten dstdomain www.rotten.com<br/>
|
||
http_access deny rotten<br/>
|
||
http_access allow all<br/>
|
||
cache_mgr: E-Mail bei einen Fehler an: E-Mail oder Alias(/etc/aliases)<br/>
|
||
# cache_mgr webmaster<br/>
|
||
cache_effective_user: BenutzerName/ID<br/>
|
||
# cache_effective_user squid<br/>
|
||
cache_effective_group: GruppenName/ID<br/>
|
||
# cache_effective_group nogroup<br/>
|
||
visible_hostname: ServerName bei Fehlermeldungen<br/>
|
||
# none<br/>
|
||
visible_hostname proxy.gelbdmz.loc<br/>
|
||
logfile_rotate: Zeit der Logdateien in Wochen<br/>
|
||
# logfile_rotate 0<br/>
|
||
append_domain: Kein Punkt in der URL ? Dann diesen Domainnamen anhaengen<br/>
|
||
# none<br/>
|
||
append_domain .meak.de<br/>
|
||
error_directory: Verzeichnis zu den Fehlermeldungen die der Squid ausgibt<br/>
|
||
#error_directory /usr/share/squid/errors<br/>
|
||
105<br/>
|
||
<hr/>
|
||
<a name=106></a><hr/>
|
||
<a name=107></a>Teil IV.<br/>
|
||
Programmieren<br/>
|
||
107<br/>
|
||
<hr/>
|
||
<a name=108></a><hr/>
|
||
<a name=109></a>15. Bash<br/>
|
||
15.1. Einleitung<br/>
|
||
Was heist BASH ?<br/>
|
||
Bourne-Again SHell<br/>
|
||
Was ist die BASH ?<br/>
|
||
Standard-Shell der meisten Linux-Distributionen<br/>
|
||
Eine fast komplette Programmiersprache<br/>
|
||
BASH-Programme werden auch SScripte"(Protokolle) genannt !<br/>
|
||
15.2. Referenz<br/>
|
||
#!/bin/bash<br/>
|
||
Pfad zur Shell die das Programm ausführen soll<br/>
|
||
chmod u+x Script<br/>
|
||
Macht das Script ausführbar<br/>
|
||
bash Script oder sh Script<br/>
|
||
so gehts auch<br/>
|
||
#<br/>
|
||
Kommentar bis Zeilenende<br/>
|
||
:<br/>
|
||
Null-Funktion. Ein Befehl, der nichts tut.<br/>
|
||
(( oder [<br/>
|
||
)) oder ]<br/>
|
||
echo Text<br/>
|
||
Gibt den Text aus<br/>
|
||
echo "Text"<br/>
|
||
Gibt den Text aus<br/>
|
||
echo Text<br/>
|
||
Text<br/>
|
||
Gibt den Text mit nur einer Leerstelle aus<br/>
|
||
echo "Text<br/>
|
||
Text"<br/>
|
||
Gibt den Text mit allen Leerstellen aus<br/>
|
||
echo Text\ \ \ Text<br/>
|
||
Gibt den Text mit allen Leerstellen aus<br/>
|
||
Variable=7<br/>
|
||
Speichert 7 in der Variable<br/>
|
||
Variable=z<br/>
|
||
Speichert z in der Variable<br/>
|
||
echo $Variable<br/>
|
||
Gibt den Inhalt der Variable aus<br/>
|
||
echo ${Variable}<br/>
|
||
Gibt den Inhalt der Variable aus<br/>
|
||
Wert=$[$Wert+1]<br/>
|
||
Wert=Wert+1<br/>
|
||
Wert=$(($Wert+1))<br/>
|
||
Wert=Wert+1<br/>
|
||
: $[Wert+=1]<br/>
|
||
Wert=Wert+1<br/>
|
||
: $((Wert+=1))<br/>
|
||
Wert=Wert+1<br/>
|
||
109<br/>
|
||
<hr/>
|
||
<a name=110></a>15. Bash<br/>
|
||
15.3. Steuer und Sonderzeichen der Bash<br/>
|
||
Zeichen<br/>
|
||
Funktion<br/>
|
||
-------<br/>
|
||
--------<br/>
|
||
Leerzeichen (space)<br/>
|
||
Trenner zwischen Programm-Parametern<br/>
|
||
Tabulator (tab)<br/>
|
||
Trenner zwischen Programm-Parametern<br/>
|
||
Return (newline)<br/>
|
||
Befehlseingabe<br/>
|
||
\ (backslash)<br/>
|
||
Escape-Zeichen<br/>
|
||
| (pipe)<br/>
|
||
Verkettung der Ein-/Ausgabe mehrerer Programme<br/>
|
||
& (ampersand)<br/>
|
||
Programm als Hintergrund-Prozess starten,<br/>
|
||
Ein-/Ausgabeumleitung<br/>
|
||
; (semikolon)<br/>
|
||
Trenner zwischen zwei Programmaufrufen<br/>
|
||
( ) (braces)<br/>
|
||
Gruppierung, Berechnung<br/>
|
||
110<br/>
|
||
<hr/>
|
||
<a name=111></a>16. git<br/>
|
||
Git ist eine freie Software zur verteilten Versionsverwaltung von Dateien, die durch<br/>
|
||
Linus Torvalds initiiert wurde.<br/>
|
||
16.1. Dokumentation<br/>
|
||
git help status<br/>
|
||
Manpage von git status anzeigen<br/>
|
||
git status --help<br/>
|
||
Manpage von git status anzeigen<br/>
|
||
man git-status<br/>
|
||
Manpage von git status anzeigen<br/>
|
||
16.2. Konfiguration<br/>
|
||
git config --global ...<br/>
|
||
Speichern im Homeverzeichnis .gitconfig<br/>
|
||
git config --system ...<br/>
|
||
/etc/gitconfig konfigurieren unueblich<br/>
|
||
git config ...<br/>
|
||
Arbeitsverzeichnis .git/config<br/>
|
||
git config user.name "Max Mustermann"<br/>
|
||
Name konfigurieren<br/>
|
||
git config user.email "max.mustermann@examle.com"<br/>
|
||
E-Mail konfigurieren<br/>
|
||
git config --unset user.name<br/>
|
||
Name löschen<br/>
|
||
git config alias.st status<br/>
|
||
Alias status -> st herstellen<br/>
|
||
[alias]<br/>
|
||
nützliche Abkürzungen<br/>
|
||
st = status<br/>
|
||
ci = commit<br/>
|
||
br = branch<br/>
|
||
co = checkout<br/>
|
||
df = diff<br/>
|
||
he = help<br/>
|
||
cl = clone<br/>
|
||
git config -e<br/>
|
||
startet Editor auf der Konfiguration<br/>
|
||
git config color.ui auto<br/>
|
||
Farben einstellen<br/>
|
||
git config core.eol lf,crlf oder native Zeilenende lf-Linux crlf-Windows<br/>
|
||
native-System-Default<br/>
|
||
git config core.safecrlf<br/>
|
||
Verbietet Commit bei vermischung<br/>
|
||
git config core.autocrlf input<br/>
|
||
sichere Einstellung bei älteren<br/>
|
||
Git-Versionen unter Windows<br/>
|
||
git config il8n.commitEncoding ISO-8859-1Zeichenkodierung ISO-8859-1<br/>
|
||
111<br/>
|
||
<hr/>
|
||
<a name=112></a>16. git<br/>
|
||
Standart UTF-8<br/>
|
||
git config core.pager ’env LESSCHARSET=iso8859 less’<br/>
|
||
Zeichenkodierung für den Pager<br/>
|
||
git config core.editor vim<br/>
|
||
Vim als Editor einstellen<br/>
|
||
git config core.browser ...<br/>
|
||
Browser einstellen<br/>
|
||
git config help.autocorrect n<br/>
|
||
beim Vertippen ähnliches Subkommando<br/>
|
||
ausführen, n Zentelsekunden bis zum<br/>
|
||
Ausführen, -1 für sofort aus, 0 zeigt<br/>
|
||
nur Möglichkeiten an<br/>
|
||
git config --list<br/>
|
||
alle Einstellungen anzeigen<br/>
|
||
16.3. Konfigurationen über Umgebungsvariablen<br/>
|
||
GIT_EDITOR<br/>
|
||
Editor den Git verwendet<br/>
|
||
sonst greift die Variable EDITOR<br/>
|
||
GIT_PAGER<br/>
|
||
der wert cat schaltet den Pager aus<br/>
|
||
GIT_AUTHOR_EMAIL<br/>
|
||
E-Mail für den Autor des Commits<br/>
|
||
GIT_COMMITTER_EMAIL<br/>
|
||
E-Mail für das Commiter-Feld des Commits<br/>
|
||
GIT_AUTHOR_NAME<br/>
|
||
Name für den Autor des Commits<br/>
|
||
GIT_COMMITTER_NAME<br/>
|
||
Name für das Commiter-Feld des Commits<br/>
|
||
GIT_DIR<br/>
|
||
Verzeichnis, in dem sich das Git-Repository befindet<br/>
|
||
macht nur sinn bei einem Git-Repository<br/>
|
||
16.4. Der Index<br/>
|
||
Der Inhalt von Dateinen liegt für Git auf drei Ebenen, den Working Tree, dem Index<br/>
|
||
und dem Repository.<br/>
|
||
clone/fetch/pull<br/>
|
||
+----------+ --------------------------------------------------> +<br/>
|
||
|Repository|<br/>
|
||
|<br/>
|
||
--bare init |(origin) | push<br/>
|
||
|<br/>
|
||
----------> +----------+ <--------------------------------------- +<br/>
|
||
|<br/>
|
||
|<br/>
|
||
|<br/>
|
||
status<br/>
|
||
add<br/>
|
||
status<br/>
|
||
commit/--amend<br/>
|
||
|<br/>
|
||
|<br/>
|
||
+------------+ ---------> +--------------+ ---------------------> +----------+<br/>
|
||
|Working Tree| diff<br/>
|
||
|Index<br/>
|
||
| diff --staged/--cached |Repository|<br/>
|
||
|<br/>
|
||
| <--------> |(Staging Area)| <--------------------> |<br/>
|
||
|<br/>
|
||
+------------+ <--------- +--------------+ <--------------------- +----------+<br/>
|
||
| reset HEAD<br/>
|
||
reset HEAD --<br/>
|
||
|<br/>
|
||
|<br/>
|
||
+ -------------------------------------------------> +<br/>
|
||
|<br/>
|
||
checkout --<br/>
|
||
|<br/>
|
||
init<br/>
|
||
|<br/>
|
||
---------------------------------------------------------------------------> +<br/>
|
||
112<br/>
|
||
<hr/>
|
||
<a name=113></a>16.5. Repository<br/>
|
||
git diff<br/>
|
||
zeigt den Unterschied zwischen Working Tree<br/>
|
||
und Index an<br/>
|
||
git diff --color-words<br/>
|
||
Änderugen Fablich anzeigen<br/>
|
||
grün-hinzugekommen rot-entfernt<br/>
|
||
git diff --word-diff --no-color ohne Frabe mit Zeichen<br/>
|
||
git diff --staged<br/>
|
||
zeigt den Unterschied zwischen<br/>
|
||
Index(Staging Area) und Repository an<br/>
|
||
git diff --cached<br/>
|
||
zeigt den Unterschied zwischen<br/>
|
||
Index(Staging Area) und Repository an<br/>
|
||
16.5. Repository<br/>
|
||
git init Beispiel<br/>
|
||
Neues Repository herstellen, legt Verzeichnis Beispiel<br/>
|
||
an wenn nicht schon vorhanden<br/>
|
||
git status<br/>
|
||
zeigt den aktuellen Zustand an<br/>
|
||
git log<br/>
|
||
die Commit Historie anzeigen<br/>
|
||
16.6. Commit<br/>
|
||
git add Datei<br/>
|
||
Datei zum Index hinzufügen<br/>
|
||
git add -u oder --update<br/>
|
||
Alle Veränderungen in den Index übertragen<br/>
|
||
git reset HEAD Datei<br/>
|
||
aus der Staging Area zu entfernen<br/>
|
||
git commit -m "Erste Version"<br/>
|
||
Index zum Working Tree hinzufügen<br/>
|
||
git add forgotten_file<br/>
|
||
Datei zum Index hinzufügen<br/>
|
||
git commit --amend<br/>
|
||
den letzten Commit ändern<br/>
|
||
git show<br/>
|
||
Commit einsehen<br/>
|
||
git log<br/>
|
||
Commits anzeigen<br/>
|
||
16.7. Dateien entfernen<br/>
|
||
git rm Datei<br/>
|
||
Datei in deinem Arbeitsverzeichnis behalten,<br/>
|
||
aber aus der Staging Area nehmen<br/>
|
||
git rm -f Datei<br/>
|
||
Datei aus dem Arbeitsverzeichis und Index löschen<br/>
|
||
git reset HEAD Datei<br/>
|
||
Datei in Deinem Arbeitsverzeichnis behalten,<br/>
|
||
aber aus der Staging Area nehmen<br/>
|
||
16.8. Dateien verschieben<br/>
|
||
git mv Datei_alt Datei_neu<br/>
|
||
Datei verschieben<br/>
|
||
113<br/>
|
||
<hr/>
|
||
<a name=114></a>16. git<br/>
|
||
16.9. Änderung an einer Datei rückgängig machen<br/>
|
||
git checkout -- Datei<br/>
|
||
Datei zurückversetzen auf den letzten Commit oder Klone<br/>
|
||
16.10. Dateien ignorieren<br/>
|
||
Dateien im Projektverzeichnis die nicht versioniert im Repository sein sollen<br/>
|
||
kommen in die Datei .gitignore.<br/>
|
||
.gitignore#<br/>
|
||
Zeile mit # oder leere wird ignoriert<br/>
|
||
*.o<br/>
|
||
ignoriert alle Dateien die mit .o enden<br/>
|
||
!lib.o<br/>
|
||
wird nicht ignoriert<br/>
|
||
/TODO<br/>
|
||
ignoriert den Ordner TODO<br/>
|
||
build/<br/>
|
||
ignoriert alle Dateien im build Verzeichnis<br/>
|
||
doc/*.txt<br/>
|
||
ignoriert alle .txt Dateien im doc Verzeichnis<br/>
|
||
doc/**/*.txt<br/>
|
||
ignoriert alle .txt Dateien unterhalb des doc<br/>
|
||
Verzeichnis<br/>
|
||
16.11. Mit externen Repositorys arbeiten<br/>
|
||
git clone git://git.kernel.org/pub/scm/git/git.git<br/>
|
||
git Repository herunterladen, Port 9418<br/>
|
||
git clone file:///home/git/project.git<br/>
|
||
Repository herunterladen, legt harte<br/>
|
||
Links an wenn möglich<br/>
|
||
git clone ssh://user@server/project.git ssh Repository herunterladen, Port 22<br/>
|
||
git clone http(s)://example.com/gitproject.git<br/>
|
||
http(s) Repository herunterladen,<br/>
|
||
Port 80(443)<br/>
|
||
git remote -v<br/>
|
||
zeigt an, welche externen Server für<br/>
|
||
das Projekt lokal konfiguriert sind<br/>
|
||
git remote add Name URL<br/>
|
||
Remote Repository hinzufügen<br/>
|
||
git remote add origin ssh://git@sonne:/srv/git/linux.git<br/>
|
||
Beispiel<br/>
|
||
git fetch Name<br/>
|
||
Informationen aus dem Remote Repository<br/>
|
||
herunterladen<br/>
|
||
git pull Name<br/>
|
||
entspricht git fetch git merge<br/>
|
||
git checkout -b Branch origin/Branch<br/>
|
||
erstellt einen lokalen bearbeitbaren<br/>
|
||
Branch<br/>
|
||
git push origin master<br/>
|
||
Änderungen in ein Remote Repository<br/>
|
||
hochladen<br/>
|
||
git push Remote Branch<br/>
|
||
Brauch auf Remote hochladen<br/>
|
||
git push Remote :Branch<br/>
|
||
löschen entfernter Branches<br/>
|
||
git remote show Name<br/>
|
||
zeigt die URL für das Remote<br/>
|
||
114<br/>
|
||
<hr/>
|
||
<a name=115></a>16.12. Tags<br/>
|
||
Repository, die Information welche<br/>
|
||
Branches verfolgt werden und welcher<br/>
|
||
Branch aus dem Remote Repository mit<br/>
|
||
dem eigenen Master zusammengeführt<br/>
|
||
wird, wenn Du git pull ausführst<br/>
|
||
git remote rename Name_alt Name_neu<br/>
|
||
Name des Remote Repository lokal ändern<br/>
|
||
git remote rm Name<br/>
|
||
Remote Repository entfernen<br/>
|
||
16.12. Tags<br/>
|
||
git tag<br/>
|
||
vorhandene Tags anzeigen<br/>
|
||
git tag -a v1.4 -m ’my version 1.4’<br/>
|
||
einen kommentierten Tag anlegen<br/>
|
||
git tag -s v1.5 -m ’my signed 1.5 tag’<br/>
|
||
einen kommentierten und signierten Tag anlegen<br/>
|
||
git tag -v v1.4.2.1<br/>
|
||
einen signierten Tag zu verifizieren<br/>
|
||
git tag -a v1.2 -m ’version 1.2’ Checksumme<br/>
|
||
im Nachhinein taggen, Checksumme des Commits<br/>
|
||
oder einen Teil davon angeben<br/>
|
||
git log --pretty=oneline<br/>
|
||
Commit Historie mit Checksumme<br/>
|
||
git push origin v1.5<br/>
|
||
Tag veröffentlichen<br/>
|
||
git push origin --tags<br/>
|
||
Tags veröffentlichen<br/>
|
||
git tag -d v1.5<br/>
|
||
Tag löschen<br/>
|
||
git push origin :refs/tags/v1.5 veröffentlichen Tag löschen<br/>
|
||
16.13. Branch<br/>
|
||
Was ist ein Branch? Ein Zeiger, der auf den gleichen Commit zeigt, auf dem Du gerade<br/>
|
||
arbeitest.<br/>
|
||
git branch testing<br/>
|
||
erstellt einen neuen Branch mit dem Namen testing<br/>
|
||
git checkout testing<br/>
|
||
um zu einem anderen Branch zu wechseln<br/>
|
||
git branch -b testing<br/>
|
||
erstellt und wechselt zu dem Branch<br/>
|
||
git merge testing<br/>
|
||
führt testing mit dem Master-Branch zusammen<br/>
|
||
git branch -d testing<br/>
|
||
entfernt testing<br/>
|
||
git merge master<br/>
|
||
Deinem Zweig mit dem master kombinieren<br/>
|
||
git rebase master<br/>
|
||
alle Änderungen auf einem Branch, auf einen anderen<br/>
|
||
Branch erneut anwenden (nur mit unveröffendlichen<br/>
|
||
Branch machen)<br/>
|
||
git mergetool<br/>
|
||
grafischen Tool zur Bereinigung von Merge-Konflikten<br/>
|
||
git branch<br/>
|
||
Liste aller Branches anzeigen<br/>
|
||
git branch -v<br/>
|
||
für jeden Branch den letzten Commit anzeigen lassen<br/>
|
||
git branch --merged<br/>
|
||
Liste gemergter Branches<br/>
|
||
git branch --no-merged<br/>
|
||
Liste nicht gemergter Branches<br/>
|
||
115<br/>
|
||
<hr/>
|
||
<a name=116></a>16. git<br/>
|
||
16.14. Git Aliase<br/>
|
||
git config --global alias.co checkout<br/>
|
||
co anstelle von checkout schreiben<br/>
|
||
git config --global alias.br branch<br/>
|
||
br anstelle von branch schreiben<br/>
|
||
git config --global alias.ci commit<br/>
|
||
ci anstelle von commit schreiben<br/>
|
||
git config --global alias.st status<br/>
|
||
st anstelle von status schreiben<br/>
|
||
16.15. Git auf einen Server bekommen<br/>
|
||
git clone --bare my_project my_project.git<br/>
|
||
Projekt zu Projekt.git klonen<br/>
|
||
scp -r my_project.git user@git.example.com:/opt/git<br/>
|
||
Projekt per ssh hochladen<br/>
|
||
git clone user@git.example.com:/opt/git/my_project.git<br/>
|
||
Projekt per ssh zum Arbeiten herunterladen<br/>
|
||
ssh user@git.example.com<br/>
|
||
auf dem Server anmelden<br/>
|
||
cd /opt/git/my_project.git<br/>
|
||
Projektverzeichnis betreten<br/>
|
||
git init --bare --shared<br/>
|
||
Gruppenschreibrechte zu einem Repository<br/>
|
||
hinzufügen<br/>
|
||
16.16. Git auf dem SSH-Server einrichten<br/>
|
||
Einrichtung des SSH-Zugangs auf dem Server mit der Authorized-Keys-Methode zur<br/>
|
||
Authentifizierung der Benutzer.<br/>
|
||
sudo adduser git<br/>
|
||
Benutzer git anlegen<br/>
|
||
su git<br/>
|
||
Rechte von User git erlagen<br/>
|
||
cd<br/>
|
||
ins Home ~ Verzeichnis des Users wechseln<br/>
|
||
mkdir .ssh<br/>
|
||
Verzeichnis .ssh anlegen<br/>
|
||
- öffentliche SSH-Schlüssel der Entwickler zu der Authorized-Keys-Datei des Benut-<br/>
|
||
zers git hinzuzufügen.<br/>
|
||
cat /tmp/id_rsa.user1.pub > ~/.ssh/authorized_keys<br/>
|
||
authorized_keys erstellen und User1 einfügen<br/>
|
||
cat /tmp/id_rsa.user2.pub >> ~/.ssh/authorized_keys<br/>
|
||
User2 einfügen<br/>
|
||
cat /tmp/id_rsa.user3.pub >> ~/.ssh/authorized_keys<br/>
|
||
User3 einfügen<br/>
|
||
- Leeren Ordner anlegen und mit der Option –bare ein Repository ohne ein Arbeits-<br/>
|
||
verzeichnis erzeugen.<br/>
|
||
cd /srv<br/>
|
||
in den Ordner srv wechseln<br/>
|
||
mkdir git<br/>
|
||
git Ordner anlegen<br/>
|
||
116<br/>
|
||
<hr/>
|
||
<a name=117></a>16.17. Öffentlicher Webserver-Zugang<br/>
|
||
cd git<br/>
|
||
in den Ordner git wechseln<br/>
|
||
mkdir project.git<br/>
|
||
project.git Ordner anlegen<br/>
|
||
cd project.git<br/>
|
||
in den Ordner project.git wechseln<br/>
|
||
git --bare init<br/>
|
||
Repository ohne ein Arbeitsverzeichnis erzeugen<br/>
|
||
- Die erste Version des Projektes in das Repository hochladen<br/>
|
||
cd project<br/>
|
||
in das Projekt wechseln<br/>
|
||
git init<br/>
|
||
Projekt Repository herstellen<br/>
|
||
git add .<br/>
|
||
alle Dateien um Index hinzufügen<br/>
|
||
git commit -m ’initial commit’<br/>
|
||
Index zum Working Tree hinzufügen<br/>
|
||
git remote add origin git@gitserver:/srv/git/project.git<br/>
|
||
Server hinzufügen<br/>
|
||
git push origin master<br/>
|
||
Commits und Referenzen auf den Server hochladen<br/>
|
||
- Repository klonen und Änderungen hochladen<br/>
|
||
git clone git@gitserver:/srv/git/project.git<br/>
|
||
Repository klonen<br/>
|
||
cd project<br/>
|
||
ins Projekt wechseln<br/>
|
||
vim README<br/>
|
||
Projekt bearbeiten<br/>
|
||
git commit -am ’fix for the README file’<br/>
|
||
Änderung speichern<br/>
|
||
git push origin master<br/>
|
||
Änderung hochladen<br/>
|
||
- Git-Zugang absichen<br/>
|
||
/etc/passwd<br/>
|
||
git:x:1000:1000::/home/git:/bin/sh<br/>
|
||
/bin/sh auf<br/>
|
||
git:x:1000:1000::/home/git:/usr/bin/git-shell<br/>
|
||
/usr/bin/git-shell ändern<br/>
|
||
16.17. Öffentlicher Webserver-Zugang<br/>
|
||
Anonymen Lese-Zugriff zu Deinem Projekt ermöglichen, per git clone http://git.gitserver.loc/project.git.<br/>
|
||
- Hook aktivieren<br/>
|
||
cd project.git<br/>
|
||
in das Projekt wechseln<br/>
|
||
mv hooks/post-update.sample hooks/post-update<br/>
|
||
post-update umbenennen<br/>
|
||
chmod a+x hooks/post-update<br/>
|
||
post-update ausfürbar machen<br/>
|
||
- VirtualHost Eintrag zur Apache-Konfiguration hinzufügen<br/>
|
||
<VirtualHost *:80><br/>
|
||
ServerName git.gitserver.loc<br/>
|
||
ServerAdmin webmaster@localhost<br/>
|
||
DocumentRoot /srv/git<br/>
|
||
#<br/>
|
||
<Directory /srv/git/><br/>
|
||
#<br/>
|
||
Order allow, deny<br/>
|
||
117<br/>
|
||
<hr/>
|
||
<a name=118></a>16. git<br/>
|
||
#<br/>
|
||
allow from all<br/>
|
||
#<br/>
|
||
</Directory><br/>
|
||
<Directory /srv/git/><br/>
|
||
Options Indexes FollowSymLinks<br/>
|
||
AllowOverride None<br/>
|
||
Require all granted<br/>
|
||
</Directory><br/>
|
||
ErrorLog ${APACHE_LOG_DIR}/git.gitserver.loc-error.log<br/>
|
||
CustomLog ${APACHE_LOG_DIR}/git.gitserver.loc-access.log combined<br/>
|
||
</VirtualHost><br/>
|
||
Nach dem nächsten push kann per "git clone http://git.gitserver.loc/project.git"das<br/>
|
||
Projekt anonym herunter geladen werden.<br/>
|
||
16.18. Grundbegriffe<br/>
|
||
Versionkontrollsystem (Version Control System, VCS)<br/>
|
||
Eine Versionsverwaltung ist ein System, das zur Erfassung von Änderungen<br/>
|
||
an Dokumenten oder Dateien verwendet wird.<br/>
|
||
Zum Beispiel:<br/>
|
||
Zentrale Systeme - zentraler Server<br/>
|
||
RCS-Revision Control System, CVS-Concurrent Versions System,<br/>
|
||
SVN-Subversion<br/>
|
||
Verteilte Systeme - Kein zentraler Server<br/>
|
||
Bazaar, Darcs, Fossil, Git, GNU arch, Mercurial, Monotone<br/>
|
||
Repository<br/>
|
||
Nutzt Git als Dantenbank in der die verschiedenen Zustände jeder Datei<br/>
|
||
eines Projektes über die Zeit hinweg ablegt. Jede Änderrung wird als<br/>
|
||
Commit verpackt und abgespeichert.<br/>
|
||
Working Tree<br/>
|
||
Das Arbeitsverzeichnis von Git, oft auch Working Directory genannt.<br/>
|
||
Commit Das speichern der veränderten Dateien im Repository.<br/>
|
||
HEAD<br/>
|
||
Eine symbolische Referenz auf den neusten Commit im aktuellen Branch.<br/>
|
||
SHA-1<br/>
|
||
Der Secure Hash Algorithm erstellt eine eindeutige, 160 Bit lange<br/>
|
||
Prüfsumme. Alle Commits in Git werden nach ihrer SHA-1-Summe benannt,<br/>
|
||
die aus dem Inhalt und den Metadaten des Commits errechnet wird.<br/>
|
||
Objektmodell<br/>
|
||
Ein Git-Repository lässt sich als Graph von Commits modellieren, der<br/>
|
||
durch Git-Kommandos manipuliert wird.<br/>
|
||
Index<br/>
|
||
Der Index ist eine Zwischenstufe zwischen Working Tree und Repository,<br/>
|
||
118<br/>
|
||
<hr/>
|
||
<a name=119></a>16.19. Verwendung von Git<br/>
|
||
in der Sie einen Commit vorbereiten. Enthält also die Dateien für den<br/>
|
||
nästen Commit.<br/>
|
||
Clone<br/>
|
||
Wenn Sie sich ein Git-Repository aus dem Internet herrunterladen.<br/>
|
||
Enthält die gesamte Versionsgeschichte einschließlich aller Commits.<br/>
|
||
Branch Eine Abzweigung in der Entwicklung. Zum Beispiel für neue Featurs,<br/>
|
||
Release vorbereitung oder alte Versionen mit Bugfixes zu versorgen.<br/>
|
||
master Beim Initialisieren eines neuen Repositorys wird der Branch master<br/>
|
||
erstellt analog trunk in anderen Systemen.<br/>
|
||
Tag<br/>
|
||
Tags sind symbolische Namen für schwer zu merkende SHA-1-Summen.<br/>
|
||
Wichtige Commits, wie zum Beispiel Releases v1.2.3. oder können<br/>
|
||
zusätzliche Metadateien wie Autor, Beschreibung und GPG-Signatur<br/>
|
||
enthalten.<br/>
|
||
16.19. Verwendung von Git<br/>
|
||
git config --global user.name "Thomas resiX"<br/>
|
||
Benutzernamen angeben<br/>
|
||
git config --global user.email "resiX@local.loc"<br/>
|
||
E-Mail angeben<br/>
|
||
git remote add origin http://user@server:3000/user/test.git Server angeben<br/>
|
||
git config --list --show-origin<br/>
|
||
Alle Einstellungen anzeigen<br/>
|
||
git config --unset user.name<br/>
|
||
Name löschen<br/>
|
||
git init<br/>
|
||
repository anlegen<br/>
|
||
git status<br/>
|
||
Änderungen anzeigen<br/>
|
||
git add README.md<br/>
|
||
stage (hinzufügen) Datei<br/>
|
||
git commit -m "v0.0.1"<br/>
|
||
commit (hinzufügen bestätigen/beschreiben) Datei<br/>
|
||
git push<br/>
|
||
alle Änderugen auf den Server hochladen<br/>
|
||
git pull<br/>
|
||
alle Änderugen vom Server holen<br/>
|
||
git clone http://github.com/resiX/test.git<br/>
|
||
repository vom Server holen<br/>
|
||
git branch neuerZweig<br/>
|
||
branch (zweig) herstellen<br/>
|
||
git checkout neuerZweig<br/>
|
||
Bearbeitung verzweigen<br/>
|
||
git branch<br/>
|
||
alle braches ausgeben<br/>
|
||
git merge neuerZweig<br/>
|
||
branche zum Master hinzufügen<br/>
|
||
119<br/>
|
||
<hr/>
|
||
<a name=120></a><hr/>
|
||
<a name=121></a>17. C/C++<br/>
|
||
17.1. Befehle und Grundelemente<br/>
|
||
gcc Datei.c<br/>
|
||
Programm übersetzen -> a.out<br/>
|
||
g++ Datei.cpp<br/>
|
||
Programm übersetzen -> a.out (C++)<br/>
|
||
gcc -c Datei.c<br/>
|
||
Objektdatei herstellen -> Datei.o<br/>
|
||
g++ -c Datei.cpp<br/>
|
||
Objektdatei herstellen -> Datei.o (C++)<br/>
|
||
gcc -o Programmname Datei1.o Datei2.o<br/>
|
||
Datei1.o+Datei2.o -> Programmname<br/>
|
||
g++ -o Programmname Datei1.o Datei2.o<br/>
|
||
Datei1.o+Datei2.o -> Programmname (C++)<br/>
|
||
gcc -o Programmname Datei.c<br/>
|
||
Programm übersetzen -> Programmname<br/>
|
||
g++ -o Programmname Datei.cpp<br/>
|
||
Programm übersetzen -> Programmname(C++)<br/>
|
||
Programmname<br/>
|
||
Programm starten<br/>
|
||
configure<br/>
|
||
Makefile konfigurieren<br/>
|
||
make<br/>
|
||
Programm übersetzen,<br/>
|
||
wenn Makefile vorhanden<br/>
|
||
make install<br/>
|
||
Programm installieren<br/>
|
||
/*<br/>
|
||
Kommentar einleiten<br/>
|
||
*/<br/>
|
||
Kommentar abschließen<br/>
|
||
//<br/>
|
||
Kommentar einleiten bis zum Zeilenende (C++)<br/>
|
||
{<br/>
|
||
Blockbeginn<br/>
|
||
}<br/>
|
||
Blockende<br/>
|
||
,<br/>
|
||
mehrere Variablen vom gleichen Typ deklarieren z.B. int a, b, c;<br/>
|
||
;<br/>
|
||
Funktions-,Operations- und Zeilen-ende (leere Anweisung)<br/>
|
||
#include<Datei> Datei aus /usr/include/ bei UNIX einlesen<br/>
|
||
#include"Datei" Datei aus dem aktuellen Verzeichnis einlesen<br/>
|
||
char<br/>
|
||
Variablentyp character - Zeichen<br/>
|
||
int<br/>
|
||
Variablentyp integer - ganzzahlig mit Vorzeichen<br/>
|
||
main()<br/>
|
||
Hauptfunktion<br/>
|
||
return()<br/>
|
||
Wert aus einer Funktion zurückliefern<br/>
|
||
17.2. Steuersequenzen für ANSI-Bildschirme -<br/>
|
||
Innerhalb von Texten<br/>
|
||
\a<br/>
|
||
BEL<br/>
|
||
bell<br/>
|
||
Alarm/Piepton<br/>
|
||
121<br/>
|
||
<hr/>
|
||
<a name=122></a>17. C/C++<br/>
|
||
\b<br/>
|
||
BS<br/>
|
||
backspace<br/>
|
||
Rücksetzen um ein Zeichen<br/>
|
||
\f<br/>
|
||
FF<br/>
|
||
formfeed<br/>
|
||
Seitenvorschub<br/>
|
||
\n<br/>
|
||
NL<br/>
|
||
new line<br/>
|
||
Zeilenvorschub<br/>
|
||
\r<br/>
|
||
CR<br/>
|
||
carriage return<br/>
|
||
Wagenrücklauf<br/>
|
||
\t<br/>
|
||
HT<br/>
|
||
horizontal tabulation<br/>
|
||
horizontaler Tabulator<br/>
|
||
\v<br/>
|
||
VT<br/>
|
||
vertical tabulation<br/>
|
||
vertikaler Tabulator<br/>
|
||
\0<br/>
|
||
NULL<br/>
|
||
null<br/>
|
||
kein Zeichen Textende<br/>
|
||
\?<br/>
|
||
?<br/>
|
||
Fragezeichen (kein Dreierzeichen)<br/>
|
||
\’<br/>
|
||
’<br/>
|
||
Hochkomma<br/>
|
||
\"<br/>
|
||
"<br/>
|
||
Anführungszeichen<br/>
|
||
\\<br/>
|
||
\<br/>
|
||
umgekehrter Schrägstrich<br/>
|
||
\ddd<br/>
|
||
Zeichencode in oktaler Notation<br/>
|
||
\xdd<br/>
|
||
Zeichencode in hexadezimaler Notation<br/>
|
||
\e[1;1H<br/>
|
||
Cursor auf x1 und y1 setzen<br/>
|
||
\e[1;1f<br/>
|
||
-> \e[1;1H<br/>
|
||
\e[5A<br/>
|
||
Cursor 5 Zeilen aufwärts bewegen<br/>
|
||
\e[5B<br/>
|
||
Cursor 5 Zeilen abwärts bewegen<br/>
|
||
\e[5C<br/>
|
||
Cursor 5 Spalten vorwärts(rechts) bewegen<br/>
|
||
\e[5D<br/>
|
||
Cursor 5 Spalten rückwärts(links) bewegen<br/>
|
||
\e[2J<br/>
|
||
Bildschirm löschen<br/>
|
||
\e[6n<br/>
|
||
Ausgabe der Cursor position z.B. ^[[32;6R<br/>
|
||
\e[s<br/>
|
||
merkt die aktuelle Cursor Position<br/>
|
||
\e[u<br/>
|
||
Cursor auf gemerkte Position setzen<br/>
|
||
\e[Schrift;Vordergrund;Hintergrundmerkmale<br/>
|
||
setzt Bildschirmmerkmale<br/>
|
||
Schrift<br/>
|
||
Vordergrund Hintergrund<br/>
|
||
0 normal<br/>
|
||
30 schwarz 40<br/>
|
||
1 grell<br/>
|
||
31 rot<br/>
|
||
41<br/>
|
||
4 unterstrichen 32 grün<br/>
|
||
42<br/>
|
||
5 blinken<br/>
|
||
33 gelb<br/>
|
||
43 braun<br/>
|
||
7 reverse<br/>
|
||
34 blau<br/>
|
||
44<br/>
|
||
35 magenta 45<br/>
|
||
36 cyan<br/>
|
||
46<br/>
|
||
37 weiß<br/>
|
||
47 grau<br/>
|
||
17.3. stdio.h -> Standard Ein- und Ausgabe<br/>
|
||
c=getchar();<br/>
|
||
Eingabe eines Zeichens, ohne Wagenrücklauf<br/>
|
||
putchar(’a’);<br/>
|
||
Ausgabe eines Zeichens, ohne Wagenrücklauf<br/>
|
||
puts("Text");<br/>
|
||
Zeichenkette ausgeben, mit Wagenrücklauf<br/>
|
||
fputs("Text",stdount); Zeichenkette ausgeben, ohne Wagenrücklauf<br/>
|
||
fputs("Text",stderr);<br/>
|
||
Zeichenkette ausgeben, ohne Wagenrücklauf<br/>
|
||
printf("Text %d",Zahl); Zeichenkette formatiert ausgeben, ohne Wagenrücklauf<br/>
|
||
% F Z1 . Z2 L U<br/>
|
||
| | | | | | + Umwandlungszeichen: %d-dezimal<br/>
|
||
%u-unsigned<br/>
|
||
122<br/>
|
||
<hr/>
|
||
<a name=123></a>17.4. ctype.h<br/>
|
||
| | | | | |<br/>
|
||
%o-oktal<br/>
|
||
%s-Text %c-Zeichen<br/>
|
||
| | | | | |<br/>
|
||
%f-Flieskomma<br/>
|
||
%e-Expotential<br/>
|
||
| | | | | |<br/>
|
||
%x-hexadezimal %p-pointer<br/>
|
||
| | | | | +-- Long-Ausgabe: notwendig für long int<br/>
|
||
| | | | +----- Nachkommastellen: z.B 3 für drei stellen<br/>
|
||
| | | +------- Trenzeichen, falls Z1 und Z2<br/>
|
||
| | +---------- Größe des Ausgabefensters: z.B 7 für sieben stellen<br/>
|
||
| +------------ Ausrichtung: ohne Angabe rechtsbündig,<br/>
|
||
|<br/>
|
||
mit Minuszeichen linksbündig<br/>
|
||
+-------------- Fluchtsymbol<br/>
|
||
scanf("%c",&text);<br/>
|
||
Zeichen in &text einlesen<br/>
|
||
% * Z L U<br/>
|
||
| | | | +------ Umwandlungszeichen<br/>
|
||
| | | +-------- Long-Ausgabe<br/>
|
||
| | +---------- Größe des Eingabefensters<br/>
|
||
| +------------ Wegwerfen<br/>
|
||
+-------------- Fluchtsymbol<br/>
|
||
17.4. ctype.h<br/>
|
||
if(isascii(zeichen))<br/>
|
||
überprüft ob es sich um ein ASCII-Zeichen handelt<br/>
|
||
if(isxdigit(zeichen))<br/>
|
||
überprüft ob es sich um ein Hex-Zeichen handelt<br/>
|
||
17.5. string.h<br/>
|
||
char *strcat(char text1, char text2) ; hängt Text2(mit \0) an Text1<br/>
|
||
char *strchr(const char *text,<br/>
|
||
int zeichen) ;<br/>
|
||
sucht das erste vorkommende<br/>
|
||
Zeichen im Text, liefert Adresse<br/>
|
||
oder NULL<br/>
|
||
char *strcpy(char text1, char text2) ; kopiert Text2(mit \0) zum Text1<br/>
|
||
sitze_t strlen(const char *text) ;<br/>
|
||
liefert die Länge von Text(ohne \0)<br/>
|
||
char *strncat(char *text1,<br/>
|
||
const char *text2, sitze_t n) ;<br/>
|
||
hängt Text2 mit n Zeichen<br/>
|
||
an Text1(mit \0)<br/>
|
||
char *strtok(char *text,<br/>
|
||
const char *kette) ;<br/>
|
||
1.Aufruf: sucht im Text das erste<br/>
|
||
Zeichen das nicht in Kette vorkommt<br/>
|
||
(wird kein Zeichen gefunden gibt strtok<br/>
|
||
einen NULL-Zeiger zurück), wird ein<br/>
|
||
Zeichen gefunden gibt strtok den Zeiger<br/>
|
||
zurück, dann sucht strtok ab Zeiger das<br/>
|
||
erste Zeichen das in der Kette vorkommt<br/>
|
||
123<br/>
|
||
<hr/>
|
||
<a name=124></a>17. C/C++<br/>
|
||
und überschreibt es mit \0, strtok merkt<br/>
|
||
sich den Zeiger auf das nächste Zeichen<br/>
|
||
char *strtok(NULL, const char *kette) ; 2.-n.Aufruf: wie 1.Aufruf ab gemerkten<br/>
|
||
Zeiger<br/>
|
||
17.6. Kontrollstrukturen<br/>
|
||
if(Ausdruck)<br/>
|
||
wenn der Ausdruck stimmt,<br/>
|
||
{<br/>
|
||
Anweisung-en1;<br/>
|
||
Anweisung-en1<br/>
|
||
}<br/>else<br/>
|
||
sonst<br/>
|
||
{<br/>
|
||
Anweisung-en2;<br/>
|
||
Anweisung-en2<br/>
|
||
}<br/>
|
||
switch(Ausdruck)<br/>
|
||
gehe zum Ausdruck<br/>
|
||
{<br/>
|
||
case 1: Anweisung-en1; Ausdruck1:<br/>
|
||
Anweisung-en1<br/>
|
||
case 2: Anweisung-en2; Ausdruck2:<br/>
|
||
Anweisung-en2<br/>
|
||
break;<br/>
|
||
Anweisungen beenden<br/>
|
||
case n: Anweisung-enn; Ausdruckn:<br/>
|
||
Anweisung-enn<br/>
|
||
break;<br/>
|
||
Anweisungen beenden<br/>
|
||
default: Anweisung-en;<br/>
|
||
Ausdruck nicht vorhanden:<br/>
|
||
Aneisung-en<br/>
|
||
}<br/>
|
||
continue;<br/>
|
||
unterbricht die Abarbeitung und geht zur Ausdrucksbedingung<br/>
|
||
break;<br/>
|
||
verlässt die Schleife oder Verbundsanweisung<br/>
|
||
for(Ausdruck1;Ausdruck2;Ausdruck3)<br/>
|
||
Ausdruck1 einmal ausführen<br/>
|
||
{<br/>
|
||
so lange der Ausdruck2 stimmt,<br/>
|
||
vorher noch Ausdruck3<br/>
|
||
Anweisug-en;<br/>
|
||
Anweisung-en<br/>
|
||
}<br/>
|
||
while(Ausdruck)<br/>
|
||
so lange der Ausdruck stimmt,<br/>
|
||
{<br/>
|
||
Anweisung-en;<br/>
|
||
Anweisung-en<br/>
|
||
}<br/>
|
||
do<br/>
|
||
mach<br/>
|
||
{<br/>
|
||
Anweisung-en;<br/>
|
||
Anweisung-en<br/>
|
||
}<br/>
|
||
124<br/>
|
||
<hr/>
|
||
<a name=125></a>17.7. ASCII(American Standart Code for Information Interchange)-Tabelle<br/>
|
||
while(Ausdruck);<br/>
|
||
so lange der Ausdruck stimmt<br/>
|
||
17.7. ASCII(American Standart Code for Information<br/>
|
||
Interchange)-Tabelle<br/>
|
||
654<br/>
|
||
000<br/>
|
||
001<br/>
|
||
010<br/>
|
||
011<br/>
|
||
100<br/>
|
||
101<br/>
|
||
110<br/>
|
||
111<br/>
|
||
Bit<br/>
|
||
3210<br/>
|
||
NUL<br/>
|
||
DLE<br/>
|
||
SP<br/>
|
||
0<br/>
|
||
@<br/>
|
||
P<br/>
|
||
‘<br/>
|
||
p<br/>
|
||
0000<br/>
|
||
$0 0<br/>
|
||
$10 16 $20 32 $30 48 $40 64 $50 80 $60 96 $70 112<br/>
|
||
SOH<br/>
|
||
DC1<br/>
|
||
!<br/>
|
||
1<br/>
|
||
A<br/>
|
||
Q<br/>
|
||
a<br/>
|
||
q<br/>
|
||
0001<br/>
|
||
$1 1<br/>
|
||
$11 17 $21 33 $31 49 $41 65 $51 81 $61 97 $71 113<br/>
|
||
STX<br/>
|
||
DC2<br/>
|
||
"<br/>
|
||
2<br/>
|
||
B<br/>
|
||
R<br/>
|
||
b<br/>
|
||
r<br/>
|
||
0010<br/>
|
||
$2 2<br/>
|
||
$12 18 $22 34 $32 50 $42 66 $52 82 $62 98 $72 114<br/>
|
||
ETX<br/>
|
||
DC3<br/>
|
||
#<br/>
|
||
3<br/>
|
||
C<br/>
|
||
S<br/>
|
||
c<br/>
|
||
s<br/>
|
||
0011<br/>
|
||
$3 3<br/>
|
||
$13 19 $23 35 $33 51 $43 67 $53 83 $63 99 $73 115<br/>
|
||
EOT<br/>
|
||
DC4<br/>
|
||
$<br/>
|
||
4<br/>
|
||
D<br/>
|
||
T<br/>
|
||
d<br/>
|
||
t<br/>
|
||
0100<br/>
|
||
$4 4<br/>
|
||
$14 20 $24 36 $34 52 $44 68 $54 84 $64 100 $74 116<br/>
|
||
ENQ<br/>
|
||
NAK<br/>
|
||
%<br/>
|
||
5<br/>
|
||
E<br/>
|
||
U<br/>
|
||
e<br/>
|
||
u<br/>
|
||
0101<br/>
|
||
$5 5<br/>
|
||
$15 21 $25 37 $35 53 $45 69 $55 85 $65 101 $75 117<br/>
|
||
ACK<br/>
|
||
SYN<br/>
|
||
&<br/>
|
||
6<br/>
|
||
F<br/>
|
||
V<br/>
|
||
f<br/>
|
||
v<br/>
|
||
0110<br/>
|
||
$6 6<br/>
|
||
$16 22 $26 38 $36 54 $46 70 $56 86 $66 102 $76 118<br/>
|
||
BEL<br/>
|
||
ETB<br/>
|
||
’<br/>
|
||
7<br/>
|
||
G<br/>
|
||
W<br/>
|
||
g<br/>
|
||
w<br/>
|
||
0111<br/>
|
||
$7 7<br/>
|
||
$17 23 $27 39 $37 55 $47 71 $57 87 $67 103 $77 119<br/>
|
||
BS<br/>
|
||
CAN<br/>
|
||
(<br/>
|
||
8<br/>
|
||
H<br/>
|
||
X<br/>
|
||
h<br/>
|
||
x<br/>
|
||
1000<br/>
|
||
$8 8<br/>
|
||
$18 24 $28 40 $38 56 $48 72 $58 88 $68 104 $78 120<br/>
|
||
HT<br/>
|
||
EM<br/>
|
||
)<br/>
|
||
9<br/>
|
||
I<br/>
|
||
Y<br/>
|
||
i<br/>
|
||
y<br/>
|
||
1001<br/>
|
||
$9 9<br/>
|
||
$19 25 $29 41 $39 57 $49 73 $59 89 $69 105 $79 121<br/>
|
||
LF<br/>
|
||
SUB<br/>
|
||
*<br/>
|
||
:<br/>
|
||
J<br/>
|
||
Z<br/>
|
||
j<br/>
|
||
z<br/>
|
||
1010<br/>
|
||
$A 10<br/>
|
||
$1A 26 $2A 42 $3A 58 $4A 74 $5A 90 $6A 106 $7A 122<br/>
|
||
VT<br/>
|
||
ESC<br/>
|
||
+<br/>
|
||
;<br/>
|
||
K<br/>
|
||
[Ä<br/>
|
||
k<br/>
|
||
{ä<br/>
|
||
1011<br/>
|
||
$B 11<br/>
|
||
$1B 27 $2B 43 $3B 59 $4B 75 $5B 91 $6B 107 $7B 123<br/>
|
||
125<br/>
|
||
<hr/>
|
||
<a name=126></a>17. C/C++<br/>
|
||
FF<br/>
|
||
FS<br/>
|
||
,<br/>
|
||
<<br/>
|
||
L<br/>
|
||
\ö<br/>
|
||
l<br/>
|
||
|ö<br/>
|
||
1100<br/>
|
||
$C 12<br/>
|
||
$1C 28 $2C 44 $3C 60 $4C 76 $5C 92 $6C 108 $7C 124<br/>
|
||
CR<br/>
|
||
GS<br/>
|
||
-<br/>
|
||
=<br/>
|
||
M<br/>
|
||
]Ü<br/>
|
||
m<br/>
|
||
}ü<br/>
|
||
1101<br/>
|
||
$D 13<br/>
|
||
$1D 29 $2D 45 $3D 61 $4D 77 $5D 93 $7D 109 $7D 125<br/>
|
||
SO<br/>
|
||
RS<br/>
|
||
.<br/>
|
||
><br/>
|
||
N<br/>
|
||
^<br/>
|
||
n<br/>
|
||
~ß<br/>
|
||
1110<br/>
|
||
$E 14<br/>
|
||
$1E 30 $2E 46 $3E 62 $4E 78 $5E 94 $7E 110 $7E 126<br/>
|
||
SI<br/>
|
||
US<br/>
|
||
/<br/>
|
||
?<br/>
|
||
O<br/>
|
||
_<br/>
|
||
o<br/>
|
||
DEL<br/>
|
||
1111<br/>
|
||
$F 15<br/>
|
||
$1F 31 $2F 47 $3F 63 $4F 79 $5F 95 $7F 111 $7F 127<br/>
|
||
17.7.1. Unterteilung der Steuerzeichen:<br/>
|
||
TC<br/>
|
||
transmission control<br/>
|
||
Übertragungssteuerzeichen<br/>
|
||
FE<br/>
|
||
format effects<br/>
|
||
Formatsteuerzeichen<br/>
|
||
IS<br/>
|
||
information separators Informationstrennzeichen<br/>
|
||
DC<br/>
|
||
device control<br/>
|
||
Gerätesteuerzeichen<br/>
|
||
17.7.2. Bedeutung der Steuerzeichen:<br/>
|
||
NUL<br/>
|
||
null<br/>
|
||
kein Zeichen<br/>
|
||
SOH<br/>
|
||
TC<br/>
|
||
start of heading<br/>
|
||
Anfang des Kopfes<br/>
|
||
STX<br/>
|
||
TC<br/>
|
||
start of text<br/>
|
||
Anfang des Textes<br/>
|
||
ETX<br/>
|
||
TC<br/>
|
||
end of text<br/>
|
||
Ende des Textes<br/>
|
||
EOT<br/>
|
||
TC<br/>
|
||
end of transmission<br/>
|
||
Ende der Übertragung<br/>
|
||
ENQ<br/>
|
||
TC<br/>
|
||
enquiry<br/>
|
||
Stationsaufforderung<br/>
|
||
ACK<br/>
|
||
TC<br/>
|
||
acknowledge<br/>
|
||
positive Rückmeldung<br/>
|
||
BEL<br/>
|
||
bell<br/>
|
||
Alarm / Piepton<br/>
|
||
BS<br/>
|
||
FE<br/>
|
||
backspace<br/>
|
||
Rückwärtsschritt<br/>
|
||
HT<br/>
|
||
FE<br/>
|
||
horizontal tabulation<br/>
|
||
horizontaler Tabulator<br/>
|
||
LF<br/>
|
||
FE<br/>
|
||
line feed<br/>
|
||
Zeilenvorschub<br/>
|
||
VT<br/>
|
||
FE<br/>
|
||
vertical tabulation<br/>
|
||
vertikaler Tabulator<br/>
|
||
FF<br/>
|
||
FE<br/>
|
||
form feed<br/>
|
||
Seitenvorschub<br/>
|
||
CR<br/>
|
||
FE<br/>
|
||
carriage return<br/>
|
||
Wagenrücklauf<br/>
|
||
SO<br/>
|
||
shift out<br/>
|
||
Dauerumschaltung<br/>
|
||
SI<br/>
|
||
shift in<br/>
|
||
Rückschaltung<br/>
|
||
DLE<br/>
|
||
TC<br/>
|
||
data link escape<br/>
|
||
Datenübertragungsumschaltung<br/>
|
||
DCn<br/>
|
||
DC<br/>
|
||
device control<br/>
|
||
Gerätesteuerzeichen<br/>
|
||
NAK<br/>
|
||
TC<br/>
|
||
negative acknowledge<br/>
|
||
negative Rückmeldung<br/>
|
||
SYN<br/>
|
||
TC<br/>
|
||
synchronous idle<br/>
|
||
Synchronisierung<br/>
|
||
ETB<br/>
|
||
TC<br/>
|
||
end of transmission block<br/>
|
||
Ende des Übertragungsblocks<br/>
|
||
CAN<br/>
|
||
cancel<br/>
|
||
ungültig<br/>
|
||
EM<br/>
|
||
end of medium<br/>
|
||
Ende der Aufzeichnung<br/>
|
||
126<br/>
|
||
<hr/>
|
||
<a name=127></a>17.8. Operatoren und Ausdrücke<br/>
|
||
SUB<br/>
|
||
substitute character<br/>
|
||
Substitution<br/>
|
||
ESC<br/>
|
||
escape<br/>
|
||
Umschaltung<br/>
|
||
FS<br/>
|
||
IS<br/>
|
||
file separator<br/>
|
||
Hauptgruppentrennung<br/>
|
||
GS<br/>
|
||
IS<br/>
|
||
group separator<br/>
|
||
Gruppentrennung<br/>
|
||
RS<br/>
|
||
IS<br/>
|
||
record separator<br/>
|
||
Untergruppentrennung<br/>
|
||
US<br/>
|
||
IS<br/>
|
||
unit separator<br/>
|
||
Teilgruppentrennung<br/>
|
||
SP<br/>
|
||
space<br/>
|
||
Leerzeichen<br/>
|
||
DEL<br/>
|
||
delete<br/>
|
||
löschen<br/>
|
||
17.8. Operatoren und Ausdrücke<br/>
|
||
17.8.1. Arithmetische Operatoren:<br/>
|
||
Operator<br/>
|
||
Bedeutung<br/>
|
||
Assoziativität Rang<br/>
|
||
Beispiel<br/>
|
||
--------<br/>
|
||
---------<br/>
|
||
-------------- ----<br/>
|
||
--------<br/>
|
||
+<br/>
|
||
Addition<br/>
|
||
><br/>
|
||
5<br/>
|
||
a+b<br/>
|
||
-<br/>
|
||
Subtraktion<br/>
|
||
><br/>
|
||
5<br/>
|
||
a-b<br/>
|
||
*<br/>
|
||
Multiplikation<br/>
|
||
><br/>
|
||
4<br/>
|
||
a*b<br/>
|
||
/<br/>
|
||
Division<br/>
|
||
><br/>
|
||
4<br/>
|
||
a/b<br/>
|
||
%<br/>
|
||
Modulo<br/>
|
||
><br/>
|
||
4<br/>
|
||
a%b<br/>
|
||
17.8.2. Vergleichsoperatoren:<br/>
|
||
Operator<br/>
|
||
Bedeutung<br/>
|
||
Assoziativität Rang<br/>
|
||
Beispiel<br/>
|
||
--------<br/>
|
||
---------<br/>
|
||
-------------- ----<br/>
|
||
--------<br/>
|
||
<<br/>
|
||
kleiner als<br/>
|
||
><br/>
|
||
7<br/>
|
||
a<b<br/>
|
||
<=<br/>
|
||
kleiner oder gleich<br/>
|
||
><br/>
|
||
7<br/>
|
||
a<=b<br/>
|
||
><br/>
|
||
größer<br/>
|
||
><br/>
|
||
7<br/>
|
||
a>b<br/>
|
||
>=<br/>
|
||
größer oder gleich<br/>
|
||
><br/>
|
||
7<br/>
|
||
a>=b<br/>
|
||
==<br/>
|
||
gleich<br/>
|
||
><br/>
|
||
8<br/>
|
||
a==b<br/>
|
||
!=<br/>
|
||
ungleich<br/>
|
||
><br/>
|
||
8<br/>
|
||
a!=b<br/>
|
||
17.8.3. Logische Operatoren:<br/>
|
||
Operator<br/>
|
||
Bedeutung<br/>
|
||
Assoziativität Rang<br/>
|
||
Beispiel<br/>
|
||
--------<br/>
|
||
---------<br/>
|
||
-------------- ----<br/>
|
||
--------<br/>
|
||
&<br/>
|
||
bitweises AND<br/>
|
||
><br/>
|
||
9<br/>
|
||
a&b<br/>
|
||
|<br/>
|
||
bitweises OR<br/>
|
||
><br/>
|
||
11<br/>
|
||
a|b<br/>
|
||
^<br/>
|
||
bitweises XOR<br/>
|
||
><br/>
|
||
10<br/>
|
||
a^b<br/>
|
||
<<<br/>
|
||
bitweises Linksschieben<br/>
|
||
><br/>
|
||
6<br/>
|
||
a<<n<br/>
|
||
>><br/>
|
||
bitweises Rechtsschieben<br/>
|
||
><br/>
|
||
6<br/>
|
||
a>>n<br/>
|
||
~<br/>
|
||
Einerkomplement<br/>
|
||
<<br/>
|
||
2<br/>
|
||
~a<br/>
|
||
&&<br/>
|
||
logisches AND<br/>
|
||
><br/>
|
||
12<br/>
|
||
a&&b<br/>
|
||
||<br/>
|
||
logisches OR<br/>
|
||
><br/>
|
||
13<br/>
|
||
a||b<br/>
|
||
!<br/>
|
||
logische Negation<br/>
|
||
<<br/>
|
||
2<br/>
|
||
!a<br/>
|
||
127<br/>
|
||
<hr/>
|
||
<a name=128></a>17. C/C++<br/>
|
||
17.8.4. Zuweisungsoperatoren:<br/>
|
||
Operator<br/>
|
||
Bedeutung<br/>
|
||
Assoziativität Rang<br/>
|
||
Beispiel<br/>
|
||
--------<br/>
|
||
---------<br/>
|
||
-------------- ----<br/>
|
||
--------<br/>
|
||
=<br/>
|
||
Zuweisung<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a=b<br/>
|
||
+=<br/>
|
||
Zuweisung nach Addition<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a+=b<br/>
|
||
-=<br/>
|
||
Zuweisung nach Subtraktion<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a-=b<br/>
|
||
*=<br/>
|
||
Zuweisung nach Multiplikation<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a*=b<br/>
|
||
/=<br/>
|
||
Zuweisung nach Division<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a/=b<br/>
|
||
%=<br/>
|
||
Zuweisung nach Modulo<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a%=b<br/>
|
||
<<=<br/>
|
||
Zuweisung nach bitweisem<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a<<=b<br/>
|
||
Linksschieben<br/>
|
||
>>=<br/>
|
||
Zuweisung nach bitweisem<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a>>=b<br/>
|
||
Rechtsschieben<br/>
|
||
&=<br/>
|
||
Zuweisung nach bitweisem AND<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a&=b<br/>
|
||
|=<br/>
|
||
Zuweisung nach bitweisem OR<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a|=b<br/>
|
||
^=<br/>
|
||
Zuweisung nach bitweisem XOR<br/>
|
||
<<br/>
|
||
15<br/>
|
||
a^=b<br/>
|
||
17.8.5. Post- und Prefix- Operatoren:<br/>
|
||
Operator<br/>
|
||
Bedeutung<br/>
|
||
Assoziativität Rang<br/>
|
||
Beispiel<br/>
|
||
--------<br/>
|
||
---------<br/>
|
||
-------------- ----<br/>
|
||
--------<br/>
|
||
++<br/>
|
||
Inkrement<br/>
|
||
> <<br/>
|
||
1 2<br/>
|
||
a++ ++a<br/>
|
||
--<br/>
|
||
Dekrement<br/>
|
||
> <<br/>
|
||
1 2<br/>
|
||
a-- --a<br/>
|
||
()<br/>
|
||
Funktionsaufruf<br/>
|
||
><br/>
|
||
1<br/>
|
||
sqrt(a)<br/>
|
||
[]<br/>
|
||
Arrayelement<br/>
|
||
><br/>
|
||
1<br/>
|
||
feld[a]<br/>
|
||
.<br/>
|
||
Feld einer structur oder union ><br/>
|
||
1<br/>
|
||
tag.dat<br/>
|
||
-><br/>
|
||
Zeiger auf structur<br/>
|
||
><br/>
|
||
1<br/>
|
||
zeig->ele<br/>
|
||
( type )<br/>
|
||
expl. Typenumwandlung<br/>
|
||
<<br/>
|
||
2<br/>
|
||
double(a)<br/>
|
||
17.8.6. Zeigeroperatoren:<br/>
|
||
Operator<br/>
|
||
Bedeutung<br/>
|
||
Assoziativität Rang<br/>
|
||
Beispiel<br/>
|
||
--------<br/>
|
||
---------<br/>
|
||
-------------- ----<br/>
|
||
--------<br/>
|
||
&<br/>
|
||
Adresse von<br/>
|
||
<<br/>
|
||
2<br/>
|
||
&a<br/>
|
||
*<br/>
|
||
Indirektion<br/>
|
||
<<br/>
|
||
2<br/>
|
||
*a<br/>
|
||
.*<br/>
|
||
Dereferenzzeiger<br/>
|
||
><br/>
|
||
3<br/>
|
||
tag.*dat<br/>
|
||
->*<br/>
|
||
Dereferenzzeiger<br/>
|
||
><br/>
|
||
3<br/>
|
||
tag->dat<br/>
|
||
17.8.7. Diverse Kategorien:<br/>
|
||
Operator<br/>
|
||
Bedeutung<br/>
|
||
Assoziativität Rang<br/>
|
||
Beispiel<br/>
|
||
--------<br/>
|
||
---------<br/>
|
||
-------------- ----<br/>
|
||
--------<br/>
|
||
?:<br/>
|
||
Bedinung<br/>
|
||
<<br/>
|
||
14<br/>
|
||
a?b:c<br/>
|
||
i = x<y ? 6 : k+1 ;<br/>
|
||
x kleiner y dann 6 sonst k+1<br/>
|
||
128<br/>
|
||
<hr/>
|
||
<a name=129></a>17.9. Inkrementieren und Dekrementieren<br/>
|
||
,<br/>
|
||
Aufzählungsoperator<br/>
|
||
><br/>
|
||
16<br/>
|
||
a,b, ...<br/>
|
||
-<br/>
|
||
unäres Minus<br/>
|
||
<<br/>
|
||
2<br/>
|
||
-n<br/>
|
||
+<br/>
|
||
unäres Plus<br/>
|
||
<<br/>
|
||
2<br/>
|
||
+n<br/>
|
||
sizeof(typ)<br/>
|
||
Größe des Types in Byte<br/>
|
||
<<br/>
|
||
2<br/>
|
||
sizeof(a)<br/>
|
||
new<br/>
|
||
dynam. Objekt erzeugen<br/>
|
||
<<br/>
|
||
2<br/>
|
||
b = new float[a]<br/>
|
||
delete<br/>
|
||
dynam. Objekt löschen<br/>
|
||
<<br/>
|
||
2<br/>
|
||
delete b<br/>
|
||
::<br/>
|
||
Zugiffs-/Bereichsoperator<br/>
|
||
<<br/>
|
||
2<br/>
|
||
adr::nam<br/>
|
||
17.9. Inkrementieren und Dekrementieren<br/>
|
||
i++ ;<br/>
|
||
i = i + 1<br/>
|
||
++i ;<br/>
|
||
i = i + 1<br/>
|
||
x = i++ ;<br/>
|
||
1. x = i<br/>
|
||
2. i = i + 1<br/>
|
||
x = ++i ;<br/>
|
||
1. i = i + 1<br/>
|
||
2. x = i<br/>
|
||
i-- ;<br/>
|
||
i = i - 1<br/>
|
||
--i ;<br/>
|
||
i = i - 1<br/>
|
||
x = i-- ;<br/>
|
||
1. x = i<br/>
|
||
2. i = i - 1<br/>
|
||
x = --i ;<br/>
|
||
2. i = i - 1<br/>
|
||
2. x = i<br/>
|
||
17.10. Wertebereich und Genauigkeit elementarer<br/>
|
||
Datentypen<br/>
|
||
Datentyp<br/>
|
||
Bit<br/>
|
||
Min.Wert<br/>
|
||
Max.Wert<br/>
|
||
Genauigkeit<br/>
|
||
--------<br/>
|
||
---<br/>
|
||
--------<br/>
|
||
--------<br/>
|
||
-----------<br/>
|
||
char<br/>
|
||
8<br/>
|
||
-128<br/>
|
||
127<br/>
|
||
unsigned char<br/>
|
||
8<br/>
|
||
0<br/>
|
||
255<br/>
|
||
short int<br/>
|
||
16<br/>
|
||
-32768<br/>
|
||
32767<br/>
|
||
unsigned short int 16<br/>
|
||
0<br/>
|
||
65535<br/>
|
||
int<br/>
|
||
(16)32(64)<br/>
|
||
-2147483648<br/>
|
||
2147483647<br/>
|
||
unsigned int<br/>
|
||
16<br/>
|
||
0<br/>
|
||
65535<br/>
|
||
long int<br/>
|
||
32(64)<br/>
|
||
-2147483648<br/>
|
||
2147483647<br/>
|
||
unsigned long int 32<br/>
|
||
0<br/>
|
||
4294967295<br/>
|
||
float<br/>
|
||
32<br/>
|
||
ca. 3.4E-38<br/>
|
||
3.4E38<br/>
|
||
>= 6 Ziffern<br/>
|
||
double<br/>
|
||
64<br/>
|
||
ca. 1.7E-308<br/>
|
||
1.7E308<br/>
|
||
>= 10 Ziffern<br/>
|
||
long double<br/>
|
||
80<br/>
|
||
ca. 1.2E-4932<br/>
|
||
1.2E4932<br/>
|
||
>= double<br/>
|
||
17.11. Variableninitialisierung<br/>
|
||
Nichtinitialisierte Variabeln haben nicht automatisch den Wert 0!<br/>
|
||
short faktor=10 ;<br/>
|
||
short laktor, messwert ;<br/>
|
||
129<br/>
|
||
<hr/>
|
||
<a name=130></a>17. C/C++<br/>
|
||
messwert=faktor ;<br/>
|
||
17.12. Konstanten<br/>
|
||
Konstanten werden mit dem vorangestellten Schlüsselwort const wie Variabeln dekla-<br/>
|
||
riert. Der dem Namen über das =-Zeichen zugeordnete Wert kann nicht im Programm<br/>
|
||
verändert werden. Für eine fehlende Typenangabe wird int angenommen.<br/>
|
||
cont float<br/>
|
||
PI =<br/>
|
||
3.14159 ;<br/>
|
||
// bevorzugen<br/>
|
||
#define<br/>
|
||
PI<br/>
|
||
3.14159 ;<br/>
|
||
17.12.1. Ganzzahlkonstanten<br/>
|
||
dezimal = 30 ; oktal = 036 ; hexadezimal = 0x1E ; Zusätzlich kann frau eine Ganz-<br/>
|
||
zahlkonstante durch das Suffix L oder l als long und durch U oder u als unsigned<br/>
|
||
kennzeichnen (z.B. 30U).<br/>
|
||
17.12.2. Gleitkommakonstanten<br/>
|
||
0.033 +.033 33E-3 +33.0e-03 Zusätzlich kann frau eine Gleitkommakonstante durch<br/>
|
||
das Suffix F oder f als float und durch L oder l als long double kennzeichnen (z.B.<br/>
|
||
0.033L).<br/>
|
||
17.12.3. Zeichen- und Zeichenkettenkonstanten<br/>
|
||
’n’<br/>
|
||
“zeichenkette’"<br/>
|
||
130<br/>
|
||
<hr/>
|
||
<a name=131></a>18. Tcl/Tk<br/>
|
||
wish<br/>
|
||
startet den Tcl/Tk-Interpeter<br/>
|
||
exit<br/>
|
||
beendet den Tcl/Tk-Interpeter<br/>
|
||
wish Programm.tcl<br/>
|
||
startet das Programm.tcl<br/>
|
||
button .name Option/en Knopf definieren Optionen:<br/>
|
||
-text "Aufschrift"<br/>
|
||
Knopf-Aufschrift<br/>
|
||
-text [Befehl]<br/>
|
||
Knopf-Aufschrift vom Befehl<br/>
|
||
-command {Befehl}<br/>
|
||
Knopf-Befehl<br/>
|
||
Befehl: z.B. exec ls oder exec xterm -e vi &<br/>
|
||
-relief flat<br/>
|
||
Knopf flach<br/>
|
||
-relief raised<br/>
|
||
Knopf erhoben<br/>
|
||
-relief sunken<br/>
|
||
Knopf eingedrückt<br/>
|
||
-relief ridge<br/>
|
||
Knopf Band erhoben<br/>
|
||
-relief groove<br/>
|
||
Knopf Band eingedrückt<br/>
|
||
-padx Pixelzahl<br/>
|
||
Abstand zum Rand in x-Richtung<br/>
|
||
-pady Pixelzahl<br/>
|
||
Abstand zum Rand in y-Richtung<br/>
|
||
-image [ image create photo -file Bildname ]<br/>
|
||
Knopf mit gif, ppm oder pgm<br/>
|
||
-foreground Farbe<br/>
|
||
Schriftfarbe "#rgb"->"#ff0000" oder red<br/>
|
||
-fg Farbe<br/>
|
||
Abkürzung für -foreground Farbe<br/>
|
||
-background Farbe<br/>
|
||
Knopffarbe<br/>
|
||
-bg Farbe<br/>
|
||
Abkürzung für -background Farbe<br/>
|
||
-width Pixelbreite<br/>
|
||
Knopfbreite<br/>
|
||
-height Pixelhöhe<br/>
|
||
Knopfhöhe<br/>
|
||
-font Zeichensatz<br/>
|
||
Schrift für den Knopf<br/>
|
||
pack .name Option/en<br/>
|
||
Knopf anzeigen Option:<br/>
|
||
-fill x<br/>
|
||
Knopf an die Fensterbreite anpassen<br/>
|
||
-expand true<br/>
|
||
Knopf im großen Fenster aufteilen<br/>
|
||
131<br/>
|
||
<hr/>
|
||
<a name=132></a><hr/>
|
||
<a name=133></a>19. Perl<br/>
|
||
perl -v<br/>
|
||
überprüfen ob Perl installiert ist<br/>
|
||
133<br/>
|
||
<hr/>
|
||
<a name=134></a><hr/>
|
||
<a name=135></a>20. CGI+Perl<br/>
|
||
20.1. Einleitung<br/>
|
||
Was ist CGI?<br/>
|
||
Common Gateway Interface. Web-Server-Schnittstelle, um mit<br/>
|
||
anderen Programmen zusammenzuarbeiten.<br/>
|
||
Was ist Perl?<br/>
|
||
Practical Extraction and Report Language. Interpreter-Skript-<br/>
|
||
Sprache, die häufig zur Programmierung von CGI-Anwendungen<br/>
|
||
benutzt wird.<br/>
|
||
20.2. Perl<br/>
|
||
20.2.1. Texte und Strings<br/>
|
||
# Kommentartext<br/>
|
||
(Hash) Einzeiliger Kommentartext<br/>
|
||
print "Text" ;<br/>
|
||
Text ausgeben<br/>
|
||
print "Text\n" ;<br/>
|
||
\n Neue Zeile<br/>
|
||
print "Text\r" ;<br/>
|
||
\r Wagenrücklauf<br/>
|
||
print "Text\t" ;<br/>
|
||
\t Tabulator<br/>
|
||
print "Text\v" ;<br/>
|
||
\v Vertikalzeichen<br/>
|
||
print "Text\f" ;<br/>
|
||
\f Papiereinzugszeichen<br/>
|
||
print "Text\b" ;<br/>
|
||
\b Rücksetzzeichen<br/>
|
||
print "Text\a" ;<br/>
|
||
\a Piepton<br/>
|
||
print "Text\e" ;<br/>
|
||
\e Unterbrechungszeichen<br/>
|
||
print $Variable ;<br/>
|
||
Variable ausgeben<br/>
|
||
print "Text\"" ;<br/>
|
||
\" Gänsefüßchen ausgeben<br/>
|
||
print "Text\’" ;<br/>
|
||
\’ Einfache Anführungszeichen ausgeben<br/>
|
||
print "Text\$" ;<br/>
|
||
\$ Dollar-Zeichen ausgeben<br/>
|
||
print "Text\\" ;<br/>
|
||
\\ Backslash ausgeben<br/>
|
||
print "Text".$Var."Text" ;<br/>
|
||
. Verketten von Zeichenfolgen<br/>
|
||
print "Text"x10 ;<br/>
|
||
Text 10 mal zusgeben<br/>
|
||
20.2.2. Rechenoperationen<br/>
|
||
$a=$b+$c ;<br/>
|
||
Addition von $b und $c gleich $a<br/>
|
||
$a=$b-$c ;<br/>
|
||
Subtraktion von $b minus $c gleich $a<br/>
|
||
$a=$b*$c ;<br/>
|
||
Multiplikation von $b mal $c gleich $a<br/>
|
||
$a=$b/$c ;<br/>
|
||
Division $b geteilt durch $c gleich $a<br/>
|
||
135<br/>
|
||
<hr/>
|
||
<a name=136></a>20. CGI+Perl<br/>
|
||
$a=$b**$c ;<br/>
|
||
Potenz $b hoch $c gleich $a<br/>
|
||
$a=$b%$c ;<br/>
|
||
Modulo $b geteilt durch $c Rest gleich $a<br/>
|
||
$a++ ;<br/>
|
||
$a=$a+1 ;<br/>
|
||
$a-- ;<br/>
|
||
$a=$a-1 ;<br/>
|
||
$a=3.1415 ;<br/>
|
||
. Dezimaltrenner<br/>
|
||
20.2.3. Arrays (Listen)<br/>
|
||
@Array=("W0","W1") ;<br/>
|
||
Werte einer Array-Variable zuweisen (Kurzform)<br/>
|
||
$Array[Indexwert]="Wert" ;<br/>
|
||
Wert einer Array-Variable zuweisen (Langform)<br/>
|
||
@Array=$Liste[2,4,8] ;<br/>
|
||
Werte eines Arrays eines Arrays zuweisen<br/>
|
||
print @Array ;<br/>
|
||
Gesamtes Array ausgeben<br/>
|
||
print $Array[Indexwert] ;<br/>
|
||
Wert einer Array-Variable ausgeben<br/>
|
||
print $#Array ;<br/>
|
||
Nummer des letzten Listenelements ausgeben<br/>
|
||
20.2.4. String- und Zahlenvergleichsoperratoren<br/>
|
||
Vergleich<br/>
|
||
Zahlenvergleich Stringvergleich<br/>
|
||
Gleich<br/>
|
||
==<br/>
|
||
eq<br/>
|
||
Ungleich<br/>
|
||
!=<br/>
|
||
ne<br/>
|
||
Kleiner als<br/>
|
||
<<br/>
|
||
lt<br/>
|
||
Größer als<br/>
|
||
><br/>
|
||
gt<br/>
|
||
Kleiner oder gleich<br/>
|
||
<=<br/>
|
||
le<br/>
|
||
Größer oder gleich<br/>
|
||
>=<br/>
|
||
ge<br/>
|
||
20.2.5. if-Bedingung<br/>
|
||
if (Bedingung)<br/>
|
||
Wenn die Bedingung Wahr,<br/>
|
||
{<br/>
|
||
Befehle ;<br/>
|
||
Befehle ausführen<br/>
|
||
}<br/>
|
||
20.2.6. if-else-Bedingung<br/>
|
||
if (Bedingung)<br/>
|
||
Wenn die Bedingung Wahr,<br/>
|
||
{<br/>
|
||
Befehle ;<br/>
|
||
Befehle ausführen<br/>
|
||
}<br/>else<br/>
|
||
sonst<br/>
|
||
{<br/>
|
||
Befehle ;<br/>
|
||
Befehle ausführen<br/>
|
||
}<br/>
|
||
136<br/>
|
||
<hr/>
|
||
<a name=137></a>20.3. Funktionen<br/>
|
||
20.2.7. if-elseif-Bedingung<br/>
|
||
if (Bedingung)<br/>
|
||
Wenn die Bedingung Wahr,<br/>
|
||
{<br/>
|
||
Befehle ;<br/>
|
||
Befehle ausführen<br/>
|
||
}<br/>elseif (Bedingung)<br/>
|
||
sonst Wenn die Bedingung Wahr,<br/>
|
||
{<br/>
|
||
Befehle ;<br/>
|
||
Befehle ausführen<br/>
|
||
}<br/>
|
||
20.3. Funktionen<br/>
|
||
20.3.1. String Funktionen<br/>
|
||
$Var=chop($String) ;<br/>
|
||
Löscht das letzte Zeichen von String und<br/>
|
||
gibt es an Var<br/>
|
||
20.3.2. Rechen Funktionen<br/>
|
||
$a=sqrt($b) ;<br/>
|
||
Quadratwurzel von $b nach $a<br/>
|
||
$a=log($b) ;<br/>
|
||
Logarithmus<br/>
|
||
$a=exp($b) ;<br/>
|
||
Exponenten<br/>
|
||
$a=abs($b) ;<br/>
|
||
Absoluterwert<br/>
|
||
$a=int($b) ;<br/>
|
||
Ganzzahlwert<br/>
|
||
20.3.3. Array Funktionen<br/>
|
||
push(@Liste,@Elemente) ;<br/>
|
||
Setzt ein oder mehrere Elemente an<br/>
|
||
das Ende der Liste<br/>
|
||
unshift(@Liste,"Wert") ;<br/>
|
||
Setzt ein oder mehrere Elemente an<br/>
|
||
den Anfang der Liste<br/>
|
||
$a=shift(@Liste) ;<br/>
|
||
Entfernt das erste Element aus der Liste<br/>
|
||
und gibt es an $a<br/>
|
||
$a=pop(@Liste) ;<br/>
|
||
Entfernt das letzte Element aus der Liste<br/>
|
||
und gibt es an $a<br/>
|
||
splice(@Liste,Start,Anzahl,Element) ;<br/>
|
||
Entfernt die Anzahl vom Start der Liste<br/>
|
||
und fügt Element ein<br/>
|
||
137<br/>
|
||
<hr/>
|
||
<a name=138></a><hr/>
|
||
<a name=139></a>21. Java<br/>
|
||
21.1. Funktion von Java<br/>
|
||
+---------------+ +--------------------------+ +---------------------+<br/>
|
||
| Programm Code |->| Java Compiler (java.exe) |->| Bytecode (01010011) |<br/>
|
||
+---------------+ +--------------------------+ +---------------------+<br/>
|
||
|<br/>
|
||
|<br/>
|
||
V<br/>
|
||
V<br/>
|
||
+--------------+<br/>
|
||
+--------------+<br/>
|
||
| Ineterpreter |<br/>
|
||
| Browser/<br/>
|
||
|<br/>
|
||
| (java.exe)<br/>
|
||
|<br/>
|
||
| Appletviewer |<br/>
|
||
+--------------+<br/>
|
||
+--------------+<br/>
|
||
javac.exe progammcode.java -> programmcode.class<br/>
|
||
Programm compilieren<br/>
|
||
java.exe programmcode<br/>
|
||
Programm ausführen<br/>
|
||
appletviewer.exe<br/>
|
||
Applets ausführen<br/>
|
||
21.2. Sprache und Syntax von Java<br/>
|
||
21.2.1. Kommentrare<br/>
|
||
/*<br/>
|
||
Kommentar-Anfang<br/>
|
||
*/<br/>
|
||
Kommentar-Ende<br/>
|
||
//<br/>
|
||
Einzeiliger Kommentar ohne Ende<br/>
|
||
;<br/>
|
||
Anweisung abschließen<br/>
|
||
21.2.2. Datentypen<br/>
|
||
Typ<br/>
|
||
Inhalt<br/>
|
||
Standdartwert<br/>
|
||
Größe<br/>
|
||
Wertebereich<br/>
|
||
boolean True oder False<br/>
|
||
False<br/>
|
||
1 Bit -<br/>
|
||
char<br/>
|
||
Unicode Zeichen<br/>
|
||
0000<br/>
|
||
16 Bit<br/>
|
||
0000 bis FFFF (Hex.)<br/>
|
||
byte<br/>
|
||
Ganzzahl mit Vorzeichen 0<br/>
|
||
8 Bit<br/>
|
||
-256 bis 255<br/>
|
||
short<br/>
|
||
Ganzzahl mit Vorzeichen 0<br/>
|
||
16 Bit -32768 bis 32767<br/>
|
||
int<br/>
|
||
Ganzzahl mit Vorzeichen 0<br/>
|
||
32 Bit<br/>
|
||
-2^31 bis 2^31-1<br/>
|
||
long<br/>
|
||
Ganzzahl mit Vorzeichen 0<br/>
|
||
64 Bit<br/>
|
||
-2^63 bis 2^63-1<br/>
|
||
float<br/>
|
||
Kommazahl<br/>
|
||
0.0<br/>
|
||
32 Bit -<br/>
|
||
double Kommazahl<br/>
|
||
0.0<br/>
|
||
64 Bit -<br/>
|
||
139<br/>
|
||
<hr/>
|
||
<a name=140></a>21. Java<br/>
|
||
21.2.3. Variablen<br/>
|
||
Variable deklarieren<br/>
|
||
boolean myBool;<br/>
|
||
int x = 32;<br/>
|
||
double y = 3.2;<br/>
|
||
char buchstabe;<br/>
|
||
Variabeln ansprechen<br/>
|
||
this.buchstabe;<br/>
|
||
bezieht sich auf die aktuelle Klasse<br/>
|
||
21.3. Pakete und Verzeichnisstrukturen<br/>
|
||
21.3.1. Sichtbarkeit und Zugriffsrechte von Klassen und<br/>
|
||
Methoden<br/>
|
||
public<br/>
|
||
Klasse, Methode oder Variable die überall sichtbar ist<br/>
|
||
protected<br/>
|
||
Methode oder Variable die nur im eigenen Paket und<br/>
|
||
abgeleiteten Klassen sichtbar ist<br/>
|
||
default<br/>
|
||
Klasse, Methode oder Variable die Sichtbarkei beschrängt<br/>
|
||
sich auf das eigen Paket<br/>
|
||
private protected<br/>
|
||
Methode oder Variable die nur in abgeleiteten Klassen<br/>
|
||
sichtbar ist<br/>
|
||
private<br/>
|
||
Methode oder Variable die nur in der eigenen Klasse<br/>
|
||
sichtbar ist<br/>
|
||
Zugriff<br/>
|
||
public protected default private protected private<br/>
|
||
-------<br/>
|
||
------ --------- ------- ----------------- -------<br/>
|
||
Zugriff ...<br/>
|
||
... im selben Paket<br/>
|
||
Ja<br/>
|
||
Ja<br/>
|
||
Ja<br/>
|
||
Nein<br/>
|
||
Nein<br/>
|
||
... von anderen Paketen<br/>
|
||
Ja<br/>
|
||
Nein<br/>
|
||
Nein<br/>
|
||
Nein<br/>
|
||
Nein<br/>
|
||
Vererbt ...<br/>
|
||
... Klassen im selben Paket<br/>
|
||
Ja<br/>
|
||
Ja<br/>
|
||
Ja<br/>
|
||
Ja<br/>
|
||
Nein<br/>
|
||
... Klassen an andere Pakete Ja<br/>
|
||
Ja<br/>
|
||
Nein<br/>
|
||
Ja<br/>
|
||
Nein<br/>
|
||
21.3.2. Klassen<br/>
|
||
class Klasse<br/>
|
||
Klassendeklaration<br/>
|
||
{<br/>
|
||
...<br/>
|
||
}<br/>
|
||
public class Klasse<br/>
|
||
öffendliche Klassendeklaration<br/>
|
||
140<br/>
|
||
<hr/>
|
||
<a name=141></a>21.3. Pakete und Verzeichnisstrukturen<br/>
|
||
{<br/>
|
||
-ohne public ist die Klasse automatisch "privat"<br/>
|
||
...<br/>
|
||
}<br/>
|
||
package Paketklasse;<br/>
|
||
Klassen zusammenfassen d.h. Paketklasse.Klasse<br/>
|
||
public class Klasse<br/>
|
||
{<br/>
|
||
...<br/>
|
||
}<br/>
|
||
package Paket.Paketklasse<br/>
|
||
Oberklassen zusammenfassen d.h.<br/>
|
||
Paket.Paketklasse.Klasse<br/>
|
||
21.3.3. Konstruktoren und Destruktoren<br/>
|
||
class Klasse<br/>
|
||
Konstruktor<br/>
|
||
{<br/>
|
||
-----------<br/>
|
||
public Klasse()<br/>
|
||
Methode die beim Erschaffen eines neuen Objektes<br/>
|
||
{<br/>
|
||
automatisch aufgerufen wird<br/>
|
||
...<br/>
|
||
}<br/>
|
||
Destruktor<br/>
|
||
----------<br/>
|
||
protected void finalize()<br/>
|
||
Methode die beim Löschen eines alten<br/>
|
||
{<br/>
|
||
Objektes automatisch aufgerufen wird<br/>
|
||
...<br/>
|
||
}<br/>
|
||
}<br/>
|
||
21.3.4. Methoden überladen<br/>
|
||
class Klasse<br/>
|
||
{<br/>
|
||
Methode()<br/>
|
||
Dieselbe Metode mehrmals mit unterschielichen<br/>
|
||
{<br/>
|
||
Parametern schaffen<br/>
|
||
...<br/>
|
||
}<br/>Methode(int var)<br/>
|
||
Dieselbe Metode mehrmals mit unterschielichen<br/>
|
||
{<br/>
|
||
Parametern schaffen<br/>
|
||
...<br/>
|
||
}<br/>
|
||
}<br/>
|
||
21.3.5. Objekte<br/>
|
||
objekt Neuobjekt = new objekt();<br/>
|
||
Neues Objekt Neuobjekt von der Klasse<br/>
|
||
141<br/>
|
||
<hr/>
|
||
<a name=142></a>21. Java<br/>
|
||
objekt erstellen<br/>
|
||
21.3.6. Vererbung<br/>
|
||
public class NeuKlasse extends Klasse {}<br/>
|
||
neue Klasse NeuKlasse herstellen<br/>
|
||
alle sichtbaren Eigenschaften<br/>
|
||
und Methoden werden übernommen<br/>
|
||
21.3.7. Schnittstellen<br/>
|
||
public interface Klasse {<br/>
|
||
Schnittstelle erschaffen<br/>
|
||
Methodenkopf();<br/>
|
||
Variablen;<br/>
|
||
}<br/>
|
||
class NeuKlasse extends Klasse implements IntKlasse<br/>
|
||
neue Klasse NeuKlasse<br/>
|
||
herstellen<br/>
|
||
alle sichtbaren Eigenschaften<br/>
|
||
und Methoden werden übernommen<br/>
|
||
und die Schnittstelle IntKlasse<br/>
|
||
hinzufügen<br/>
|
||
21.4. Elementare Syntax von Java<br/>
|
||
21.4.1. Operratoren<br/>
|
||
x = 10;<br/>
|
||
Das Gleichheitszeichen weist immer den rechten Wert dem auf<br/>
|
||
der linken Seite zu<br/>
|
||
21.4.2. Verknüpfungsoperatoren<br/>
|
||
Operator<br/>
|
||
Bedeutung<br/>
|
||
Beispiel<br/>
|
||
--------<br/>
|
||
---------<br/>
|
||
--------<br/>
|
||
+<br/>
|
||
Addition<br/>
|
||
7 = 3 + 4;<br/>
|
||
-<br/>
|
||
Subtraktion<br/>
|
||
1 = 7 - 6;<br/>
|
||
*<br/>
|
||
Multiplikation 6 = 2 * 3;<br/>
|
||
/<br/>
|
||
Division<br/>
|
||
3 = 9 / 3;<br/>
|
||
%<br/>
|
||
Modulo(Rest)<br/>
|
||
1 = 9 % 4;<br/>
|
||
21.4.3. Inkrement-Operator<br/>
|
||
x++;<br/>
|
||
x = x + 1;<br/>
|
||
142<br/>
|
||
<hr/>
|
||
<a name=143></a>21.4. Elementare Syntax von Java<br/>
|
||
21.4.4. Dekrement-Operator<br/>
|
||
x--;<br/>
|
||
x = x - 1;<br/>
|
||
21.4.5. Arithmetische Zuweisungsoperatoren<br/>
|
||
Operator<br/>
|
||
Beispiel<br/>
|
||
Bedeutung<br/>
|
||
--------<br/>
|
||
--------<br/>
|
||
---------<br/>
|
||
+=<br/>
|
||
x += 3;<br/>
|
||
x = x + 3;<br/>
|
||
-=<br/>
|
||
x -= 3;<br/>
|
||
x = x - 3;<br/>
|
||
*=<br/>
|
||
x *= 3;<br/>
|
||
x = x * 3;<br/>
|
||
/=<br/>
|
||
x /= 3;<br/>
|
||
x = x / 3;<br/>
|
||
%=<br/>
|
||
x %= 3;<br/>
|
||
x = x % 3;<br/>
|
||
21.4.6. Bedingungen und Entscheidungen<br/>
|
||
if(Bedingung) {<br/>
|
||
wenn Bedingung wahr dann Anweisungen<br/>
|
||
Anweisungen;<br/>
|
||
if ( x != y ) { z++; }<br/>
|
||
}<br/>
|
||
Operator<br/>
|
||
Beschreibung<br/>
|
||
--------<br/>
|
||
------------<br/>
|
||
==<br/>
|
||
Gleichheit<br/>
|
||
!=<br/>
|
||
Ungleichheit<br/>
|
||
<<br/>
|
||
kleiner als<br/>
|
||
><br/>
|
||
größer als<br/>
|
||
<=<br/>
|
||
kleiner gleich<br/>
|
||
>=<br/>
|
||
größer gleich<br/>
|
||
21.4.7. if - else - Bedingungen<br/>
|
||
if(Bedingung) {<br/>
|
||
wenn Bedingung wahr dann Anweisungen1 sonst Anweisungen2<br/>
|
||
Anweisungen1;<br/>
|
||
if ( x != y ) { z++; } else { z--; }<br/>
|
||
} else {Anweisungen2;<br/>
|
||
}<br/>
|
||
21.4.8. Verschachtelte Bedingungen<br/>
|
||
if(Bedingung1) {<br/>
|
||
wenn Bedingung1 und Bedingung2 dann Anweisungen1<br/>
|
||
if(Bedingung2){<br/>
|
||
sonst Anweisungen2<br/>
|
||
Anweisungen1;<br/>
|
||
if( x != y ) { if( a < b ){z++;} } else { z--; }<br/>
|
||
}<br/>
|
||
} else {Anweisungen2<br/>
|
||
}<br/>
|
||
143<br/>
|
||
<hr/>
|
||
<a name=144></a>21. Java<br/>
|
||
21.4.9. Fallunterscheidung mit switch - case<br/>
|
||
switch(Ausdruck) {<br/>
|
||
switch(2) {<br/>
|
||
Route 2 also<br/>
|
||
case Wert1: Anweisungen1;<br/>
|
||
case 1: x++;<br/>
|
||
x = x - 1;<br/>
|
||
break;<br/>
|
||
break;<br/>
|
||
case Wert2: Anweisungen2;<br/>
|
||
case 2: x--;<br/>
|
||
break;<br/>
|
||
break;<br/>
|
||
case Wert3: Anweisungen3;<br/>
|
||
}<br/>
|
||
break;<br/>
|
||
}<br/>
|
||
21.5. Schleifen<br/>
|
||
21.5.1. Die while - Schleife<br/>
|
||
while(Bedingung) {<br/>
|
||
int x=0;<br/>
|
||
solange Bedingung wahr<br/>
|
||
Anweisungen;<br/>
|
||
while(x<10) {<br/>
|
||
Anweisungen<br/>
|
||
}<br/>
|
||
x++;<br/>
|
||
}<br/>
|
||
21.5.2. Die do - while - Schleife<br/>
|
||
do {<br/>
|
||
int x=0;<br/>
|
||
Anweisungen dann solange<br/>
|
||
Anweisungen;<br/>
|
||
do {<br/>
|
||
Bedingung wahr<br/>
|
||
} while(Bedingung);<br/>
|
||
x++;<br/>
|
||
Anweisungen<br/>
|
||
} while(x<10);<br/>
|
||
21.5.3. Die for - Schleife<br/>
|
||
for(Initialisierung; Bedingung; Schleifenschritt) {<br/>
|
||
solange Bedingung wahr<br/>
|
||
Anweisungen;<br/>
|
||
Anweisungen<br/>
|
||
}<br/>
|
||
for(x=0;x<10;x++) {<br/>
|
||
y++;<br/>
|
||
}<br/>
|
||
21.5.4. Schleifen mit break verlassen<br/>
|
||
for(x=0;x<10;x++) {<br/>
|
||
Die Schleife wird vor dem y++ verlassen<br/>
|
||
break;<br/>
|
||
y++;<br/>
|
||
}<br/>
|
||
21.5.5. Schleife mit continue wiederholen<br/>
|
||
for(x=0;x<10;x++) {<br/>
|
||
Die Schleife wird vor dem y++ wiederholt<br/>
|
||
144<br/>
|
||
<hr/>
|
||
<a name=145></a>21.6. Komplexe Datentypen<br/>
|
||
continue;<br/>
|
||
y++;<br/>
|
||
}<br/>
|
||
21.6. Komplexe Datentypen<br/>
|
||
21.6.1. Arrays<br/>
|
||
int liste[] = new int[10];<br/>
|
||
schafft ein Array dass zehn verschiedene int-<br/>
|
||
Werte speichern kann<br/>
|
||
int Array[][] = new int[3][3]; schafft ein zweidimensionales Array<br/>
|
||
int liste[] = {3, 5, 7};<br/>
|
||
schaft ein Array mit 3 Werten<br/>
|
||
liste[0] = Wert;<br/>
|
||
Wert des 1. Elements zuweisen<br/>
|
||
liste[0][0] = Wert;<br/>
|
||
Wert des 1. Elements zuweisen<br/>
|
||
Wert = liste[0];<br/>
|
||
Wert des 1. Elements abrufen<br/>
|
||
Wert = liste[0][0];<br/>
|
||
Wert des 1. Elements abrufen<br/>
|
||
liste.length<br/>
|
||
enthält die Länge des Arrays liste<br/>
|
||
21.7. Die Anweisung import<br/>
|
||
import haus.wand.stein;<br/>
|
||
import erlaubt es Klassen im Sourcecode<br/>
|
||
getAnzahl();<br/>
|
||
über einen gekürzten Namen anzuspechen<br/>
|
||
haus.wand.stein.getAnzahl() -> getAnzahl()<br/>
|
||
import java.lang.*;<br/>
|
||
importiert alle Bestandteile ins Programm<br/>
|
||
21.8. Java eigene Klassen<br/>
|
||
21.8.1. Die Klasse Math<br/>
|
||
Math.*<br/>
|
||
bietet mathematische Funktionen<br/>
|
||
Math.E<br/>
|
||
Eulersche Zahl<br/>
|
||
Math.PI<br/>
|
||
PI<br/>
|
||
Math.random()<br/>
|
||
Zufallszahl zwischen 0 und 1<br/>
|
||
Math.round()<br/>
|
||
rundet zu Ganzzahlen<br/>
|
||
21.9. Die Klasse Object<br/>
|
||
21.9.1. Die Klasse Object<br/>
|
||
getClass()<br/>
|
||
liefert die Klasse eines Objektes zurück<br/>
|
||
equals()<br/>
|
||
vergleicht zwei Objekte gibt true oder false<br/>
|
||
145<br/>
|
||
<hr/>
|
||
<a name=146></a>21. Java<br/>
|
||
21.10. Die Klasse Runtime<br/>
|
||
Um diese Klasse zu nutzen,muss mit getRuntime() erst ein Objekt erstellt werden!<br/>
|
||
Runtime mySystem = Runtime.getRuntime();<br/>
|
||
Objekt Runtime erstellen<br/>
|
||
freeMemory()<br/>
|
||
freier Speicher<br/>
|
||
totalMemory()<br/>
|
||
gesamter Speicher<br/>
|
||
exit(0)<br/>
|
||
Programm sofort mit Wert verlassen<br/>
|
||
exec()<br/>
|
||
Systemprogramme starten (s. Exceptions)<br/>
|
||
21.11. Die Klasse String<br/>
|
||
String s = "Hallo" + " Du !";<br/>
|
||
Strings zusammenfassen<br/>
|
||
charAt()<br/>
|
||
gibt einen Buchstaben aus dem String zurück<br/>
|
||
indexOf()<br/>
|
||
Position von Buchstaben/ketten feststellen<br/>
|
||
substring()<br/>
|
||
String auseinanderschneiden<br/>
|
||
lenght()<br/>
|
||
Länge eines Strings bestimmen<br/>
|
||
21.12. Die Klasse Stringbuffer<br/>
|
||
21.12.1. Die Klasse Stringbuffer<br/>
|
||
Um diese Klasse zu nutzen, muss erst ein Objekt erstellt werden!<br/>
|
||
Stringbuffer buffer = newStringbuffer("");<br/>
|
||
Objekt Stringbuffer erstellen<br/>
|
||
setCharAt()<br/>
|
||
änderrung eines bestimmten Buchstaben im String<br/>
|
||
delete()<br/>
|
||
löscht Teile aus dem String<br/>
|
||
replace()<br/>
|
||
ersetzt Teile im String<br/>
|
||
insert()<br/>
|
||
setzt Teile im String ein<br/>
|
||
21.13. Die Klasse System<br/>
|
||
Standardeingabe - in, Standardausgabe - out, Fehlerausgabe - err<br/>
|
||
System.out.println("Text")<br/>
|
||
Text ausgeben<br/>
|
||
byte[] b = new byte[80];<br/>
|
||
System.in.read(b);<br/>
|
||
Einlesen von Daten<br/>
|
||
21.14. Das Paket java.util<br/>
|
||
import java.util.*;<br/>
|
||
Paket einbinden<br/>
|
||
146<br/>
|
||
<hr/>
|
||
<a name=147></a>21.15. Ausnahmen (Exceptions)<br/>
|
||
21.14.1. Die Klasse Date<br/>
|
||
Date myDate = new Date();<br/>
|
||
Objekt Date erstellen<br/>
|
||
toString()<br/>
|
||
Datum in einen String umwandeln<br/>
|
||
getTime()<br/>
|
||
UNIX-Timestamp, der die Sekunden seit dem<br/>
|
||
1.1.1970 ausgibt<br/>
|
||
before()<br/>
|
||
vergleicht das Datumsobjekt od es davor ist<br/>
|
||
after()<br/>
|
||
vergleicht das Datumsobjekt od es danach ist<br/>
|
||
Erweiterte Funktionen rund um das Datum gibt es in der Klasse Calendar bzw.<br/>
|
||
DateFormat in der Java-API<br/>
|
||
21.14.2. Die Klasse Random<br/>
|
||
Random zz = new Random();<br/>
|
||
Objekt Random erstellen<br/>
|
||
Methode<br/>
|
||
Bereich<br/>
|
||
Typ<br/>
|
||
-------<br/>
|
||
-------<br/>
|
||
---<br/>
|
||
nextInt()<br/>
|
||
-2^31 bis 2^31-1<br/>
|
||
int<br/>
|
||
nextLong()<br/>
|
||
-2^63 bis 2^63-1<br/>
|
||
long<br/>
|
||
nextFloat()<br/>
|
||
0.0 bis 1.0<br/>
|
||
float<br/>
|
||
nextDouble()<br/>
|
||
0.0 bis 1.0<br/>
|
||
double<br/>
|
||
nextGaussian()<br/>
|
||
gibt eine Zufallszahl zurück, die nach dem Gauß-<br/>
|
||
Verfahren ermittelt wurde<br/>
|
||
21.14.3. Die Klasse Stack<br/>
|
||
Stack myStack = new Stack();<br/>
|
||
Objekt Stack erstellen<br/>
|
||
push()<br/>
|
||
legt ein Objekt auf dem Stack ab<br/>
|
||
pop()<br/>
|
||
holt das oberste Objekt vom Stack und löscht es<br/>
|
||
peek()<br/>
|
||
holt das oberste Objekt vom Stack<br/>
|
||
21.15. Ausnahmen (Exceptions)<br/>
|
||
import java.io.*;<br/>
|
||
public class trycatchfinally {<br/>
|
||
public static void main(String args[]) {<br/>
|
||
Runtime mySystem = Runtime.getRuntime();<br/>
|
||
//Objekt Runtime erstellen<br/>
|
||
try{<br/>
|
||
//unsichere Anweisungen<br/>
|
||
mySystem.exec("xaos");<br/>
|
||
} catch(IOException e) {<br/>
|
||
//Fehlerbehandlung<br/>
|
||
System.err.println("Es ist ein Fehler aufgetreten: " + e);<br/>
|
||
147<br/>
|
||
<hr/>
|
||
<a name=148></a>21. Java<br/>
|
||
} finally {<br/>
|
||
//Anweisungen werden immer ausgeführt<br/>
|
||
System.out.println("Kritischer Bereich wurde ausgeführt!");<br/>
|
||
}<br/>
|
||
}<br/>
|
||
}<br/>
|
||
21.15.1. Eigene Ausnahme erzeugen (throw)<br/>
|
||
Methode(int zahl) {<br/>
|
||
if(zahl<0) {<br/>
|
||
throw(new Exception("Fehler!"));<br/>
|
||
} elese {zahl++;<br/>
|
||
}<br/>
|
||
}<br/>
|
||
21.16. Multitasking mit Threads<br/>
|
||
21.16.1. Arbeiten mit Threads<br/>
|
||
java.lang<br/>
|
||
die Klasse Thread ist ein Bestandteil des Paketes<br/>
|
||
public class Klasse implements Runnable {}<br/>
|
||
neue Klasse über die<br/>
|
||
Schnittstelle Runnable erstellen<br/>
|
||
run()<br/>
|
||
Methode run() (Code des Threads)<br/>
|
||
muss überschrieben werden<br/>
|
||
Klasse test = new Klasse();<br/>
|
||
In main(): Objekt der eigenen Klasse<br/>
|
||
test.start();<br/>
|
||
erstellen und Startmethode<br/>
|
||
aufrufen<br/>
|
||
public void start() {<br/>
|
||
Thread myThread = new Thread(this);<br/>
|
||
Objekt aus der Klasse Thrad<br/>
|
||
erstellen und deren Konstruktor<br/>
|
||
das aktuelle Objekt als<br/>
|
||
parameter übergeben<br/>
|
||
myThread.start();<br/>
|
||
Thread starten<br/>
|
||
...;<br/>
|
||
myThread.stop();<br/>
|
||
Thread beenden<br/>
|
||
}<br/>
|
||
myThread.sleep(x);<br/>
|
||
Thread x Milisekunden pausieren<br/>
|
||
muss mit Ausnahme abgefangen<br/>
|
||
148<br/>
|
||
<hr/>
|
||
<a name=149></a>21.17. Applets<br/>
|
||
werden InterruptedException<br/>
|
||
myThread.suspend();<br/>
|
||
Thraed anhalten<br/>
|
||
myThread.resume();<br/>
|
||
Thread wieder starten<br/>
|
||
myThread.destroy();<br/>
|
||
Thread zerstören/anhalten<br/>
|
||
21.17. Applets<br/>
|
||
21.17.1. Applets in eine Webseite einbinden<br/>
|
||
<html><br/>
|
||
<head><br/>
|
||
<title>Mein erstes Applet</title><br/>
|
||
</head><br/>
|
||
<body><br/>
|
||
<applet code="myApplet.class" width=150 height=150><br/>
|
||
<parm name="var1" value="Hallo"><br/>
|
||
<parm name="var2" value="Java!"><br/>
|
||
</applet><br/>
|
||
</body><br/>
|
||
</html><br/>
|
||
21.17.2. Das erste Java Applet<br/>
|
||
import java.applet.*;<br/>
|
||
import java.awt.*;<br/>
|
||
public class MyApplet extends Applet {<br/>
|
||
public void paint(Graphics g) {<br/>
|
||
g.drawString("Mein erstes Applet !", 20, 40);<br/>
|
||
}<br/>
|
||
}<br/>
|
||
21.17.3. Die Methoden eines Applets<br/>
|
||
init()<br/>
|
||
wird automatisch bei der Initialisierung des Applets aufgerufen<br/>
|
||
start()<br/>
|
||
wird automatisch aufgerufen, wenn das Applet im sichtbaren<br/>
|
||
Browser-Bereich erscheint<br/>
|
||
stop()<br/>
|
||
wird automatisch aufgerufen, wenn das Applet den sichtbaren<br/>
|
||
Bereich verläßt<br/>
|
||
destroy()<br/>
|
||
wird automatisch beim verlassen der Seite oder schließen des<br/>
|
||
Browsers aufgerufen<br/>
|
||
21.17.4. Ein Applet im Überblick<br/>
|
||
import java.applet.*;<br/>
|
||
import java.awt.*;<br/>
|
||
149<br/>
|
||
<hr/>
|
||
<a name=150></a>21. Java<br/>
|
||
public class newApplet extends Applet {<br/>
|
||
public void init() {<br/>
|
||
//initialisierung aller nötigen Werte für das Programm<br/>
|
||
}<br/>public void start() {<br/>
|
||
//Start des Applets<br/>
|
||
}<br/>public void paint(Graphics g) {<br/>
|
||
//Grafikausgabe über das Objekt g !<br/>
|
||
}<br/>public void stop() {<br/>
|
||
//Stop des Applets<br/>
|
||
}<br/>public void destroy() {<br/>
|
||
//Ende des Applets<br/>
|
||
//Speicher wird freigegeben<br/>
|
||
}<br/>
|
||
}<br/>
|
||
21.17.5. Pakete<br/>
|
||
java.awt<br/>
|
||
dient zur Bearbeitung und Ausgabe von Grafiken und<br/>
|
||
Fensterelementen in Applikationen und Applets<br/>
|
||
(advanced window toolkit)<br/>
|
||
java.applet<br/>
|
||
eine Grundvoraussetzung für ein Applet<br/>
|
||
21.17.6. Die Klasse Graphics<br/>
|
||
public void paint(Graphics g) {<br/>
|
||
um in das Applet zu zeichnen<br/>
|
||
drawString("Text",x,y);<br/>
|
||
Text im Applet ausgeben<br/>
|
||
}<br/>
|
||
drawLine()<br/>
|
||
Linie zeichnen<br/>
|
||
drawRect()<br/>
|
||
Rechteck zeichnen<br/>
|
||
fillRect()<br/>
|
||
gefülltes Rechteck zeichen<br/>
|
||
drawRoundRect()<br/>
|
||
Rechteck mit abgerundeten Ecken zeichnen<br/>
|
||
fillRoundRect()<br/>
|
||
gefülltes Rundeck zeichnen<br/>
|
||
drawOval()<br/>
|
||
Kreis/Elipse zeichnen<br/>
|
||
fillOval()<br/>
|
||
gefüllte/r Kreis/Elipse zeichnen<br/>
|
||
copyArea()<br/>
|
||
kopieren eines sichtbaren Bereiches<br/>
|
||
21.17.7. Die Klasse Color<br/>
|
||
Color farbe = new Color(r,g,b);<br/>
|
||
Farben erzeugen r=0-255 g=0-255 r=0-255<br/>
|
||
Color dfarbe = farbe.darker();<br/>
|
||
nächst dunklere Farbe<br/>
|
||
150<br/>
|
||
<hr/>
|
||
<a name=151></a>21.17. Applets<br/>
|
||
Color hfarbe = farbe.brighter();<br/>
|
||
nächst hellere Farbe<br/>
|
||
Konstante<br/>
|
||
Frabe<br/>
|
||
---------<br/>
|
||
-----<br/>
|
||
Clolor.white<br/>
|
||
weiss<br/>
|
||
Clolor.yellow<br/>
|
||
gelb<br/>
|
||
Clolor.orange<br/>
|
||
orange<br/>
|
||
Clolor.grey<br/>
|
||
grau<br/>
|
||
Clolor.pink<br/>
|
||
pink<br/>
|
||
Clolor.red<br/>
|
||
rot<br/>
|
||
Clolor.magenta<br/>
|
||
magenta<br/>
|
||
Clolor.green<br/>
|
||
grün<br/>
|
||
Clolor.blue<br/>
|
||
blau<br/>
|
||
Clolor.darkGray<br/>
|
||
dunkelgrau<br/>
|
||
Clolor.lightGray<br/>
|
||
hellgrau<br/>
|
||
Clolor.black<br/>
|
||
schwarz<br/>
|
||
21.17.8. Die Klasse Font<br/>
|
||
Windows<br/>
|
||
Java<br/>
|
||
-------<br/>
|
||
----<br/>
|
||
Arial<br/>
|
||
Helvetica<br/>
|
||
Courier New<br/>
|
||
Corier<br/>
|
||
MS Sans Serif<br/>
|
||
Dialog<br/>
|
||
Times New Roman TimesRoman<br/>
|
||
WingDings<br/>
|
||
ZapfDingbats<br/>
|
||
Arial<br/>
|
||
default<br/>
|
||
Font f = new Font("art", stil, größe);<br/>
|
||
neue Schrift erstellen<br/>
|
||
stil: plain(normal),<br/>
|
||
italic(kursiv), blod(fett)<br/>
|
||
21.17.9. Die Klasse Image<br/>
|
||
Image myImage = getImage(getCodeBase(), "Bild.jpg");<br/>
|
||
Bildobjekt erschaffen<br/>
|
||
drawImage()<br/>
|
||
Bild anzeigen<br/>
|
||
21.17.10. Die Klasse Button<br/>
|
||
Button myButton = new Button("Klick");<br/>
|
||
Buttonobjekt erschaffen<br/>
|
||
setLabel()<br/>
|
||
Beschriftung des Buttons ändern<br/>
|
||
getLabel()<br/>
|
||
Beschriftung des Buttons auslesen<br/>
|
||
151<br/>
|
||
<hr/>
|
||
<a name=152></a>21. Java<br/>
|
||
21.18. Eventhandling<br/>
|
||
java.awt.event.*;<br/>
|
||
Paket zur Ereignisbehandlung einbinden<br/>
|
||
21.18.1. Mouse Events<br/>
|
||
public class myApplet extends Applet implements MouseListener {}<br/>
|
||
Schnittstelle MouseListener implementieren<br/>
|
||
Methode<br/>
|
||
Aufgabe<br/>
|
||
-------<br/>
|
||
-------<br/>
|
||
mousePressed() Maustaste wird gedrückt<br/>
|
||
mouseReleased() Maustaste wird losgelassen<br/>
|
||
mouseClicked() Mausklick<br/>
|
||
mouseEntered() Maus bewegt sich in das Applet<br/>
|
||
mouseExited()<br/>
|
||
Maus verlässt das Applet<br/>
|
||
addMouseListener(this);<br/>
|
||
Listener soll auf das gesamte Applet achten<br/>
|
||
public void mousePressed(mouseEvent e) {<br/>
|
||
int x = e.getX();<br/>
|
||
Maustaste an X gedrückt<br/>
|
||
int y = e.getY();<br/>
|
||
Maustaste an Y gedrückt<br/>
|
||
}<br/>
|
||
addMouseMotionListener(this);<br/>
|
||
MotionListener soll auf das Applet achten<br/>
|
||
mouseMoved()<br/>
|
||
bewegte Mausereignisse<br/>
|
||
mouseDragged()<br/>
|
||
21.18.2. Action Events<br/>
|
||
public class myApplet extends Applet implements ActionListener {}<br/>
|
||
Schnittstelle ActionListener implementieren<br/>
|
||
Button myButton = new Button("Knopf"); Button erstellen<br/>
|
||
this.add(myButton);<br/>
|
||
Button setzen<br/>
|
||
myButton.addActionListener(this);<br/>
|
||
Button mit ActionListener versehen<br/>
|
||
public void actionPerformed(ActionEvent e) {<br/>
|
||
Aufruf beim Anklicken des Button<br/>
|
||
String Klick = e.getActionCommand();<br/>
|
||
gibt die Aufschift des Button<br/>
|
||
}<br/>
|
||
21.18.3. Parameter an ein Applet<br/>
|
||
<applet code="myApplet.class" width=150 height=150><br/>
|
||
152<br/>
|
||
<hr/>
|
||
<a name=153></a>21.18. Eventhandling<br/>
|
||
<parm name="var1" value="Hallo"><br/>
|
||
Parameter1<br/>
|
||
<parm name="var2" value="Java!"><br/>
|
||
Parameter2<br/>
|
||
</applet><br/>
|
||
String var1 = getParameter("var1");<br/>
|
||
Parameter1 an den String var1<br/>
|
||
String var2 = getParameter("var2");<br/>
|
||
und var2 übergeben<br/>
|
||
21.18.4. Weitere wichtige Pakete<br/>
|
||
java.net<br/>
|
||
Klassen und Schnittstellen für Netzwerkentwicklung<br/>
|
||
java.beans<br/>
|
||
wieder verwentbare Komponenten<br/>
|
||
java.security<br/>
|
||
erhöte Sicherheit innerhalb von Applikationen/Applets<br/>
|
||
java.rmi<br/>
|
||
Verteilung eines Programms auf mehrere Rechner<br/>
|
||
java.sql<br/>
|
||
Anbindung an SQL-Datenbanken<br/>
|
||
java.servlet<br/>
|
||
Applikationen die serverseitig laufen<br/>
|
||
153<br/>
|
||
<hr/>
|
||
<a name=154></a><hr/>
|
||
<a name=155></a>22. JavaScript<br/>
|
||
22.1. Einbindung von JavaScript<br/>
|
||
22.1.1. Einbindung in den Head<br/>
|
||
<html><br/>
|
||
<head><br/>
|
||
<title></title><br/>
|
||
<script language="JavaScript"><br/>
|
||
Leitet den JavaScript-Quelltext ein<br/>
|
||
<!--<br/>
|
||
Kommentar anfang für alte Browser die<br/>
|
||
Definition von Fnktionen und<br/>
|
||
kein JavaScript unterstüzen<br/>
|
||
Variablen<br/>
|
||
JavaScript-Quelltext<br/>
|
||
//--><br/>
|
||
Kommentar ende<br/>
|
||
</script><br/>
|
||
Beendet den JavaScript-Quelltext<br/>
|
||
</head><br/>
|
||
<body><br/>
|
||
</body><br/>
|
||
</html><br/>
|
||
22.1.2. Einbindung in den Body<br/>
|
||
<html><br/>
|
||
<head><br/>
|
||
<title></title><br/>
|
||
</head><br/>
|
||
<body><br/>
|
||
<script><br/>
|
||
Leitet den JavaScript-Quelltext ein<br/>
|
||
</script><br/>
|
||
Beendet den JavaScript-Quelltext<br/>
|
||
</body><br/>
|
||
</html><br/>
|
||
22.1.3. Ausführen bei bestimmten Aktionen<br/>
|
||
<html><br/>
|
||
<head><br/>
|
||
<title></title><br/>
|
||
</head><br/>
|
||
<body onLoad="JavaScript-Quelltext"> Beim Laden wird der JavaScript-Quelltext<br/>
|
||
155<br/>
|
||
<hr/>
|
||
<a name=156></a>22. JavaScript<br/>
|
||
ausgeführt<br/>
|
||
</body><br/>
|
||
</html><br/>
|
||
22.2. Variablen<br/>
|
||
var GlobaleVariable<br/>
|
||
Globale Variable deklarieren<br/>
|
||
function() {<br/>
|
||
var LokaleVariable<br/>
|
||
Lokale Variable deklarieren<br/>
|
||
}<br/>
|
||
var variable<br/>
|
||
Variable deklarieren<br/>
|
||
variable = "Wert"<br/>
|
||
Wert zuweisen<br/>
|
||
var zahl=9<br/>
|
||
Variable deklarieren und Wert zuweisen<br/>
|
||
+<br/>
|
||
Verketten<br/>
|
||
22.3. Objekte<br/>
|
||
22.3.1. Standardobjekte<br/>
|
||
document.write("Hallo")<br/>
|
||
Hallo auf der Seite ausgeben<br/>
|
||
document.writeln("Hallo")<br/>
|
||
Hallo auf der Seite mit Zeilenumruch<br/>
|
||
ausgeben<br/>
|
||
document.close()<br/>
|
||
Schreiben schließen<br/>
|
||
document.bgColor=("ffffff")<br/>
|
||
Hintergrunffarbe<br/>
|
||
document.fgColor=("000000")<br/>
|
||
Fordergrundfarbe<br/>
|
||
document.linkColor=("00ff00")<br/>
|
||
Neuer Link<br/>
|
||
document.vlinkColor=("ffff00")<br/>
|
||
Besuchter Link<br/>
|
||
document.alinkColor=("ff0000")<br/>
|
||
Aktiver Link<br/>
|
||
document.referrer<br/>
|
||
URL von der aufgerufen wurde<br/>
|
||
document.location<br/>
|
||
URL der Datei selber<br/>
|
||
document.title<br/>
|
||
Titel der Seite<br/>
|
||
document.Name.src="bild2.gif"<br/>
|
||
<img src="bild.gif" name="Name"> um auf<br/>
|
||
das Bild zuzugreifen<br/>
|
||
document.forms[0].Name.value<br/>
|
||
Formular 1(0); aktueller Text im<br/>
|
||
Eingabefeld auslesen oder überschreiben<br/>
|
||
document.forms[0].Name.defaultValue<br/>
|
||
Defaultwert auslesen oder überschreiben<br/>
|
||
document.forms[0].Name.select()<br/>
|
||
Text im Eingabefeld makieren<br/>
|
||
document.forms[0].Name.focus()<br/>
|
||
Cursor in das Eingabefeld setzen<br/>
|
||
156<br/>
|
||
<hr/>
|
||
<a name=157></a>22.3. Objekte<br/>
|
||
document.forms[0].Name[0].checked<br/>
|
||
Radio-Checkbuttons liest oder schreibt,<br/>
|
||
ob ein Button ausgewählt ist<br/>
|
||
document.forms[0].Name[0].defaultCheckedVoreinstellung eines Button lesen oder<br/>
|
||
schreiben<br/>
|
||
nicht markiert<br/>
|
||
markiert<br/>
|
||
0<br/>
|
||
1<br/>
|
||
false<br/>
|
||
true<br/>
|
||
document.forms[0].Name.options[0].selectedIndex<br/>
|
||
Auswahlliste auslesen oder schreiben<br/>
|
||
document.forms[0].Name.options[0].value Wert auslesen oder schreiben<br/>
|
||
parent.frames[0].location.href=<br/>
|
||
Frameinhalt ändern 0 -> Frame 1<br/>
|
||
"frame.htm"<br/>
|
||
parent.<br/>
|
||
verzweigt in den nächsthöheren Frame<br/>
|
||
top.<br/>
|
||
verzweigt in den höchsten Frame im<br/>
|
||
Browser<br/>
|
||
frames[n]<br/>
|
||
verzweigt auf die nächstniedrigere Stufe<br/>
|
||
in den Frame mit dem Index n<br/>
|
||
window.status=("Hallo")<br/>
|
||
Hallo in der Statusleiste ausgeben<br/>
|
||
myWindow=window.open("Dateiname","Fenstername","Eigenschaften")<br/>
|
||
Öffnet ein neues Fenster<br/>
|
||
Eigenschaften: width=(Pixel)<br/>
|
||
gibt die Breite an<br/>
|
||
height=(Pixel)<br/>
|
||
gibt die Höhe an<br/>
|
||
resizable=yes/no<br/>
|
||
größe des Fensters veränderbar ?<br/>
|
||
menubar=yes/no<br/>
|
||
Menüleiste vorhanden ?<br/>
|
||
toolbar=yes/no<br/>
|
||
Buttonleiste vorhanden ?<br/>
|
||
location=yes/no<br/>
|
||
Adresszeile vorhanden ?<br/>
|
||
status=yes/no<br/>
|
||
Statuszeile vorhanden ?<br/>
|
||
scrollbars=yes/no<br/>
|
||
Bildlaufleiste vorhanden ?<br/>
|
||
dependent=yes/no<br/>
|
||
Vom aktuellen Fenster abhängig ?<br/>
|
||
myWindow.close()<br/>
|
||
Schließt das neue Fenster<br/>
|
||
myWindow.closed<br/>
|
||
Zugriff auf den Fensterzustand<br/>
|
||
22.3.2. String-Objekt<br/>
|
||
String.length<br/>
|
||
Anzahl der Zeichen des Strings<br/>
|
||
String.substring(Anfang,Ende)<br/>
|
||
Gibt den Anfang bis Ende des Strings zurück<br/>
|
||
String.toLowerCase<br/>
|
||
Wandelt alle Buchstaben in Kleinbuchstaben<br/>
|
||
String.toUpperCase<br/>
|
||
Wandelt alle Buchstaben in Großbuchstaben<br/>
|
||
157<br/>
|
||
<hr/>
|
||
<a name=158></a>22. JavaScript<br/>
|
||
22.3.3. Eigene Objekte<br/>
|
||
function person(name, alter) {<br/>
|
||
Funktion<br/>
|
||
this.name = name<br/>
|
||
zum<br/>
|
||
this.alter = alter<br/>
|
||
Objekt<br/>
|
||
}<br/>
|
||
anlegen<br/>
|
||
var meier = new person("Geier Meier", 18)<br/>
|
||
Objekt erzeugen<br/>
|
||
meier.name = "Mr. Geier Meier"<br/>
|
||
Wert ändern<br/>
|
||
meier.alter = 20<br/>
|
||
Wert ändern<br/>
|
||
meier = new Object<br/>
|
||
Objekt erzeugen<br/>
|
||
meier.vorname = "Geier"<br/>
|
||
Wert zuweisen<br/>
|
||
meier.nachname = "Meier"<br/>
|
||
Wert zuweisen<br/>
|
||
22.3.4. Arrays<br/>
|
||
Variable = new Array<br/>
|
||
Array erzeugen<br/>
|
||
Variable[0] = "hallo"<br/>
|
||
Wert zuweisen<br/>
|
||
22.4. Mathematische Operationen<br/>
|
||
c = a + b<br/>
|
||
Addition<br/>
|
||
a++ ; a = a + 1<br/>
|
||
c = a - b<br/>
|
||
Subtraktion<br/>
|
||
a-- ; a = a - 1<br/>
|
||
c = a * b<br/>
|
||
Multiplikation<br/>
|
||
c = a / b<br/>
|
||
Division<br/>
|
||
a = Math.round(b)<br/>
|
||
Ganzzahlige Rundung<br/>
|
||
22.5. Bedingte Ausführung<br/>
|
||
if(Ausdruck)<br/>
|
||
wenn der Ausdruck stimmt,<br/>
|
||
{<br/>
|
||
Anweisung-en1<br/>
|
||
Anweisung-en1<br/>
|
||
}<br/>
|
||
22.6. Schleifen<br/>
|
||
for(Ausdruck1;Ausdruck2;Ausdruck3)<br/>
|
||
Ausdruck1 einmal ausführen<br/>
|
||
{<br/>
|
||
so lange der Ausdruck2 stimmt,<br/>
|
||
vorher noch Ausdruck3<br/>
|
||
Anweisug-en<br/>
|
||
Anweisung-en<br/>
|
||
158<br/>
|
||
<hr/>
|
||
<a name=159></a>22.7. Event-Handler<br/>
|
||
}<br/>
|
||
while(Ausdruck)<br/>
|
||
so lange der Ausdruck stimmt,<br/>
|
||
{<br/>
|
||
Anweisung-en<br/>
|
||
Anweisung-en<br/>
|
||
}<br/>
|
||
22.7. Event-Handler<br/>
|
||
onLoad="Aktion"<br/>
|
||
Beim Laden Aktion ausführen<br/>
|
||
onUnload="Aktion"<br/>
|
||
Beim Schließen Aktion ausführen<br/>
|
||
onMouseOver="Aktion"<br/>
|
||
Beim Überfahren Aktion ausführen<br/>
|
||
onMouseOut="Aktion"<br/>
|
||
Beim Verlassen Aktion ausführen<br/>
|
||
onFocus="Aktion"<br/>
|
||
Beim Setzen des Cursors auf das Element<br/>
|
||
(Einsatz in Formularen)<br/>
|
||
onBlur="Aktion"<br/>
|
||
Beim Verlassen des Elementes<br/>
|
||
onChange="Aktion"<br/>
|
||
Beim Verlassen des Elementes wenn verändert<br/>
|
||
onClick="Aktion"<br/>
|
||
Beim Anklicken eines Formularelements<br/>
|
||
<a href="javascript:function(’Link’)">Verweistext</a><br/>
|
||
onSubmit="Aktion"<br/>
|
||
Beim Senden eines Formulares Aktion ausführen<br/>
|
||
22.8. Funktionen<br/>
|
||
function Name(var1,var2)<br/>
|
||
Definiert eine Funktion mit dem Name<br/>
|
||
{ alert(var2)<br/>
|
||
Hier kommt der Funktionsinhalt rein<br/>
|
||
}<br/>
|
||
return("Hallo")<br/>
|
||
Hallo zurück geben<br/>
|
||
alert("Text")<br/>
|
||
Öffnet ein Fenster und gibt den Text aus<br/>
|
||
uhrzeit=new Date()<br/>
|
||
Datum und Uhrzeit in das Objekt uhrzeit<br/>
|
||
schreiben<br/>
|
||
st=uhrzeit.getHours()<br/>
|
||
Stunden aus dem Objekt uhrzeit der Variable<br/>
|
||
st zuweisen<br/>
|
||
min=uhrzeit.getMinutes()<br/>
|
||
Minuten aus dem Objekt uhrzeit der Variable<br/>
|
||
min zuweisen<br/>
|
||
setTimeout("Funktion",Millisekunden)<br/>
|
||
Funktion nach Millisekunden aufrufen<br/>
|
||
Math.random()<br/>
|
||
159<br/>
|
||
<hr/>
|
||
<a name=160></a>22. JavaScript<br/>
|
||
22.9. Reservierte Wörter<br/>
|
||
abstract<br/>
|
||
boolean<br/>
|
||
break<br/>
|
||
byte<br/>
|
||
case<br/>
|
||
catch<br/>
|
||
char<br/>
|
||
class<br/>
|
||
const<br/>
|
||
continue<br/>
|
||
debugger<br/>
|
||
default<br/>
|
||
delete<br/>
|
||
else<br/>
|
||
enum<br/>
|
||
export<br/>
|
||
extends<br/>
|
||
false<br/>
|
||
final<br/>
|
||
finally<br/>
|
||
float<br/>
|
||
for<br/>
|
||
function<br/>
|
||
goto<br/>
|
||
if<br/>
|
||
implements<br/>
|
||
import<br/>
|
||
in<br/>
|
||
instanceof<br/>
|
||
int<br/>
|
||
interface<br/>
|
||
long<br/>
|
||
native<br/>
|
||
new<br/>
|
||
null<br/>
|
||
package<br/>
|
||
private<br/>
|
||
protected<br/>
|
||
public<br/>
|
||
return<br/>
|
||
short<br/>
|
||
static<br/>
|
||
super<br/>
|
||
160<br/>
|
||
<hr/>
|
||
<a name=161></a>22.9. Reservierte Wörter<br/>
|
||
switch<br/>
|
||
synchronized<br/>
|
||
this<br/>
|
||
throw<br/>
|
||
throws<br/>
|
||
transient<br/>
|
||
true<br/>
|
||
try<br/>
|
||
typeof<br/>
|
||
var<br/>
|
||
void<br/>
|
||
volatile<br/>
|
||
while<br/>
|
||
with<br/>
|
||
161<br/>
|
||
<hr/>
|
||
<a name=162></a><hr/>
|
||
<a name=163></a>Teil V.<br/>
|
||
Anhang<br/>
|
||
163<br/>
|
||
<hr/>
|
||
<a name=164></a><hr/>
|
||
<a name=165></a>23. Glossar<br/>
|
||
Abhängigkeiten Ein von rpm verwendetes System, um die Verwaltung installierter<br/>
|
||
Software zu vereinfachen. Jedes Paket enthält ein Skript, das dem lokalen rpm<br/>
|
||
mitteilt, welche anderen Pakete es zur Ausführung benötigt. Sind die erforderli-<br/>
|
||
chen Pakete nicht installiert, wird die Installation abgebrochen. Gleiches gilt für<br/>
|
||
die Deinstallation.<br/>
|
||
Andere, others In UNIX die Gruppe der Benutzer, die weder Eigetümer einer Datei<br/>
|
||
sind, noch zur Besitzergruppe gehören. Es ist generell eine gute Idee, die Rechte<br/>
|
||
dieser Gruppe so restriktiv wie möglich zu handhaben. Siehe auch Besitzergrup-<br/>
|
||
pe.<br/>
|
||
alias Ein Shell-Mechanismus, um eine Zeichenkette durch einen anderen zu ersetzen,<br/>
|
||
bevor ein Kommando ausgeführt wird. Einen Überblick über alle definierten<br/>
|
||
Aliasse erhalten Sie mit dem Kommando alias.<br/>
|
||
Anzeigehilfe Programm zum Anzeigen einer (Text-) Datei. Es bietet die Möglichkeit<br/>
|
||
einfach vorwärts und rückwärts durch das Dokument zu navigieren sowie Zei-<br/>
|
||
chenketten zu suchen. Wir empfehlen Ihnen das Programm less zu verwenden<br/>
|
||
(u.a. da es die selben Tastaturkürzel wie vim verwendet).<br/>
|
||
APM Advanced Power Management (”Fortgeschrittenes Energiemanagement”). Wird<br/>
|
||
von einigen BIOSsen dazu benutzt, die Maschine nach einer Periode von Inakti-<br/>
|
||
vität in einen energiesparenden Ruhezustand zu bringen. Auf Laptops ist APM<br/>
|
||
auch dafür zuständig, Informationen über den Batteriestatus bzw. die verblei-<br/>
|
||
bende Arbeitszeit bereit zu stellen.<br/>
|
||
Arbeitsfläche Wenn Sie das X-Windows-System verwenden, ist die Arbeitsfläche der<br/>
|
||
teil des Bildschirmes, auf dem Sie arbeiten und auf dem Ihre Symbole und Fenster<br/>
|
||
dargestellt werden. Manschmal wird auch lachs vom ”Hitergrund” gesprochen.<br/>
|
||
Siehe auch: virtuelle Arbeitsfläche.<br/>
|
||
ARP Address Resolution Protocol. (”Protokoll zur Adress-Auflösungs”). Das Protokoll<br/>
|
||
um IP-Adressen dynamisch in physikalische (Hardware-)Adressen umzuwandeln.<br/>
|
||
Nur möglich auf direkt verbundenen Netzwerken im Hardware- Broadcasting.<br/>
|
||
ASCII Abkürzung für American Standart Code for Information Interchange. Es han-<br/>
|
||
delt sich um den meistvervwendeten 7-Bit-Kode zur Darstellung von Ziffern,<br/>
|
||
Buchstaben und Sonderzeichen. Der ASCII-Code ist mittlerweile per ”normati-<br/>
|
||
ver Kraft des Faktischen” durch den ISO Standart 8859-1 abgelöst (Siehe ISO<br/>
|
||
8859).<br/>
|
||
165<br/>
|
||
<hr/>
|
||
<a name=166></a>23. Glossar<br/>
|
||
Assembler Maschinensprache. Vorstufe des Objekt-Kodes. Programme werden meist<br/>
|
||
in sogenannten Hochsprachen (wie C) geschrieben, die dann per Kompilation in<br/>
|
||
Assembler umgewandelt werden.<br/>
|
||
ATAPI eine Familie von CD-ROM-Laufwerken, die an den IDE-Controller angeschlos-<br/>
|
||
sen werden. Es gibt auch SCSI-Laufwerke, die am SCSI-Controler betrieben wer-<br/>
|
||
den, sowie proprietäre Laufwerke, die ihren eigenen Controller benutzen oder an<br/>
|
||
die Soundkarte angeschlossen werden.<br/>
|
||
atomar Eine Gruppe von Operationen, die nicht weiter aufgeteilt werden kann.<br/>
|
||
ausführlicher Modus Befehle produzieren im ausführlichen Modus Zusatzinformatio-<br/>
|
||
nen, die auf die Standardausgabe oder Standart-Fehlerausgabe ausgegeben wer-<br/>
|
||
den. Einige Programme bieten die Möglichkeit einzustellen wie ”redselig” sie sein<br/>
|
||
sollen.<br/>
|
||
HTTP HyperText Transfer Protokoll(Hypertext-Übertragungsprotokoll). Ist ein Pro-<br/>
|
||
tokoll zur Übertragung von Daten über ein Netzwerk. Es wird hauptsächlich ein-<br/>
|
||
gesetzt, um Webseiten aus dem World Wide Web (WWW) in einen Webbrowser<br/>
|
||
zu laden.<br/>
|
||
URL Uniform Resource Locator (Einheitlicher Quellenanzeiger). Bezeichnet man ei-<br/>
|
||
ne Unterart von Uniform Resource Identifiern (URIs). URLs identifizieren und<br/>
|
||
lokalisieren eine Ressource über die zu verwendende Zugriffsmethode (z. B. das<br/>
|
||
verwendete Netzwerkprotokoll wie HTTP oder FTP) und den Ort (engl. locati-<br/>
|
||
on) der Ressource in Computernetzwerken. Im allgemeinen Sprachgebrauch wer-<br/>
|
||
den sie auch als Internetadresse bezeichnet, wobei damit (der umgangssprachlich<br/>
|
||
häufigen Gleichsetzung von Internet und WWW folgend) meist speziell URLs<br/>
|
||
von Webseiten gemeint sind.<br/>
|
||
USV Unterbrechungsfreie Stromversorgung. Sehr großer Akku (aufladbare Baterie)<br/>
|
||
der bei einem Stromausfall den Rechner mit Strom versorgt.<br/>
|
||
WWW World Wide Web(Weltweites Netz). Ist ein über das Internet abrufbares Hypertext-<br/>
|
||
System, bestehend aus elektronischen Dokumenten, die durch Hyperlinks mit-<br/>
|
||
einander verknüpft sind.<br/>
|
||
166<br/>
|
||
<hr/>
|
||
<a name=167></a>Stichwortverzeichnis<br/>
|
||
&, <a href="linuxs.html#30">30</a><br/>
|
||
echo, <a href="linuxs.html#20">20</a><br/>
|
||
host, <a href="linuxs.html#34">34</a><br/>
|
||
egrep, <a href="linuxs.html#24">24</a><br/>
|
||
hosts, <a href="linuxs.html#50">50</a><br/>
|
||
affs, <a href="linuxs.html#49">49</a><br/>
|
||
Eigentümer, <a href="linuxs.html#28">28</a><br/>
|
||
hpfs, <a href="linuxs.html#49">49</a><br/>
|
||
alias, <a href="linuxs.html#22">22</a><br/>
|
||
emerge, <a href="linuxs.html#33">33</a><br/>
|
||
htop, <a href="linuxs.html#30">30</a><br/>
|
||
apt, <a href="linuxs.html#32">32</a><br/>
|
||
env-update, <a href="linuxs.html#31">31</a><br/>
|
||
apt-get, <a href="linuxs.html#32">32</a><br/>
|
||
equery, <a href="linuxs.html#33">33</a><br/>
|
||
ifconfig, <a href="linuxs.html#34">34</a><br/>
|
||
etc-update, <a href="linuxs.html#33">33</a><br/>
|
||
info, <a href="linuxs.html#20">20</a><br/>
|
||
bash, <a href="linuxs.html#55">55</a><br/>
|
||
euse, <a href="linuxs.html#33">33</a><br/>
|
||
init, <a href="linuxs.html#19">19, </a><a href="linuxs.html#20">20</a><br/>
|
||
bg, <a href="linuxs.html#30">30</a><br/>
|
||
expand, <a href="linuxs.html#25">25</a><br/>
|
||
initctl, <a href="linuxs.html#20">20</a><br/>
|
||
Bildschirmschoner, <a href="linuxs.html#19">19,</a><br/>
|
||
export, <a href="linuxs.html#31">31, </a><a href="linuxs.html#38">38, </a><a href="linuxs.html#55">55</a><br/>
|
||
insmod, <a href="linuxs.html#17">17</a><br/>
|
||
<a href="linuxs.html#39">39</a><br/>
|
||
ext2, <a href="linuxs.html#49">49</a><br/>
|
||
ip, <a href="linuxs.html#34">34</a><br/>
|
||
blockorientiert, <a href="linuxs.html#28">28</a><br/>
|
||
ext3, <a href="linuxs.html#49">49</a><br/>
|
||
iso9660, <a href="linuxs.html#49">49</a><br/>
|
||
bzip2, <a href="linuxs.html#17">17</a><br/>
|
||
fakeroot, <a href="linuxs.html#17">17</a><br/>
|
||
jobs, <a href="linuxs.html#30">30</a><br/>
|
||
cat, <a href="linuxs.html#23">23</a><br/>
|
||
fdformat, <a href="linuxs.html#27">27</a><br/>
|
||
cd, <a href="linuxs.html#23">23</a><br/>
|
||
Kernel, <a href="linuxs.html#17">17</a><br/>
|
||
fdisk, <a href="linuxs.html#27">27</a><br/>
|
||
cfdsik, <a href="linuxs.html#27">27</a><br/>
|
||
kill, <a href="linuxs.html#30">30</a><br/>
|
||
fg, <a href="linuxs.html#30">30</a><br/>
|
||
chgrp, <a href="linuxs.html#28">28</a><br/>
|
||
ksh, <a href="linuxs.html#55">55</a><br/>
|
||
fgrep, <a href="linuxs.html#24">24</a><br/>
|
||
chmod, <a href="linuxs.html#28">28</a><br/>
|
||
file, <a href="linuxs.html#22">22</a><br/>
|
||
last, <a href="linuxs.html#20">20</a><br/>
|
||
chown, <a href="linuxs.html#28">28</a><br/>
|
||
find, <a href="linuxs.html#24">24</a><br/>
|
||
ldd, <a href="linuxs.html#34">34</a><br/>
|
||
chroot, <a href="linuxs.html#31">31</a><br/>
|
||
finger, <a href="linuxs.html#20">20</a><br/>
|
||
less, <a href="linuxs.html#23">23</a><br/>
|
||
clock, <a href="linuxs.html#21">21</a><br/>
|
||
free, <a href="linuxs.html#20">20</a><br/>
|
||
ln, <a href="linuxs.html#23">23</a><br/>
|
||
cmp, <a href="linuxs.html#25">25</a><br/>
|
||
fsck, <a href="linuxs.html#27">27</a><br/>
|
||
locate, <a href="linuxs.html#55">55</a><br/>
|
||
comm, <a href="linuxs.html#25">25</a><br/>
|
||
fstab, <a href="linuxs.html#48">48</a><br/>
|
||
login, <a href="linuxs.html#19">19</a><br/>
|
||
compress, <a href="linuxs.html#25">25</a><br/>
|
||
ftp, <a href="linuxs.html#34">34</a><br/>
|
||
logout, <a href="linuxs.html#19">19</a><br/>
|
||
cp, <a href="linuxs.html#23">23</a><br/>
|
||
losetup, <a href="linuxs.html#28">28</a><br/>
|
||
csh, <a href="linuxs.html#55">55</a><br/>
|
||
git, <a href="linuxs.html#119">119</a><br/>
|
||
lpq, <a href="linuxs.html#25">25</a><br/>
|
||
gpg, <a href="linuxs.html#17">17, </a><a href="linuxs.html#36">36</a><br/>
|
||
lpr, <a href="linuxs.html#25">25</a><br/>
|
||
date, <a href="linuxs.html#20">20, </a><a href="linuxs.html#21">21</a><br/>
|
||
grep, <a href="linuxs.html#24">24</a><br/>
|
||
lprm, <a href="linuxs.html#25">25</a><br/>
|
||
Datum, <a href="linuxs.html#21">21</a><br/>
|
||
group, <a href="linuxs.html#49">49</a><br/>
|
||
ls, <a href="linuxs.html#22">22</a><br/>
|
||
dd, <a href="linuxs.html#27">27</a><br/>
|
||
grub, <a href="linuxs.html#31">31</a><br/>
|
||
lsmod, <a href="linuxs.html#17">17</a><br/>
|
||
df, <a href="linuxs.html#20">20</a><br/>
|
||
Gruppe, <a href="linuxs.html#28">28</a><br/>
|
||
diff, <a href="linuxs.html#25">25</a><br/>
|
||
gzip, <a href="linuxs.html#17">17</a><br/>
|
||
mail, <a href="linuxs.html#37">37, </a><a href="linuxs.html#75">75</a><br/>
|
||
dmesg, <a href="linuxs.html#17">17</a><br/>
|
||
make, <a href="linuxs.html#17">17, </a><a href="linuxs.html#34">34</a><br/>
|
||
docker, <a href="linuxs.html#69">69</a><br/>
|
||
halt, <a href="linuxs.html#19">19</a><br/>
|
||
make-kpkg, <a href="linuxs.html#17">17</a><br/>
|
||
docker-compose, <a href="linuxs.html#69">69</a><br/>
|
||
Hardlink, <a href="linuxs.html#23">23</a><br/>
|
||
man, <a href="linuxs.html#20">20</a><br/>
|
||
dpkg, <a href="linuxs.html#17">17, </a><a href="linuxs.html#32">32</a><br/>
|
||
head, <a href="linuxs.html#23">23</a><br/>
|
||
mfomat, <a href="linuxs.html#27">27</a><br/>
|
||
167<br/>
|
||
<hr/>
|
||
<a name=168></a>STICHWORTVERZEICHNIS<br/>
|
||
minix, <a href="linuxs.html#49">49</a><br/>
|
||
rmdir, <a href="linuxs.html#23">23</a><br/>
|
||
Uhrzeit, <a href="linuxs.html#21">21</a><br/>
|
||
mkdir, <a href="linuxs.html#23">23</a><br/>
|
||
rmmod, <a href="linuxs.html#17">17</a><br/>
|
||
umount, <a href="linuxs.html#27">27</a><br/>
|
||
mkdosfs, <a href="linuxs.html#27">27</a><br/>
|
||
rpm, <a href="linuxs.html#32">32</a><br/>
|
||
umsdos, <a href="linuxs.html#49">49</a><br/>
|
||
mke2fs, <a href="linuxs.html#27">27</a><br/>
|
||
uname, <a href="linuxs.html#17">17</a><br/>
|
||
mkfs, <a href="linuxs.html#27">27</a><br/>
|
||
sax, <a href="linuxs.html#38">38</a><br/>
|
||
uncompress, <a href="linuxs.html#25">25</a><br/>
|
||
modprobe, <a href="linuxs.html#28">28</a><br/>
|
||
scp, <a href="linuxs.html#34">34, </a><a href="linuxs.html#35">35</a><br/>
|
||
uniq, <a href="linuxs.html#25">25</a><br/>
|
||
more, <a href="linuxs.html#23">23</a><br/>
|
||
setenv, <a href="linuxs.html#55">55</a><br/>
|
||
unpack, <a href="linuxs.html#25">25</a><br/>
|
||
mount, <a href="linuxs.html#27">27</a><br/>
|
||
settherm, <a href="linuxs.html#19">19</a><br/>
|
||
unset, <a href="linuxs.html#55">55</a><br/>
|
||
msdos, <a href="linuxs.html#49">49</a><br/>
|
||
sh, <a href="linuxs.html#55">55</a><br/>
|
||
unsetenv, <a href="linuxs.html#55">55</a><br/>
|
||
mv, <a href="linuxs.html#23">23</a><br/>
|
||
shutdown, <a href="linuxs.html#19">19</a><br/>
|
||
Upstart, <a href="linuxs.html#20">20</a><br/>
|
||
smbfs, <a href="linuxs.html#49">49</a><br/>
|
||
useradd, <a href="linuxs.html#28">28</a><br/>
|
||
ncpfs, <a href="linuxs.html#49">49</a><br/>
|
||
Softlink, <a href="linuxs.html#23">23</a><br/>
|
||
userdel, <a href="linuxs.html#28">28</a><br/>
|
||
netcat, <a href="linuxs.html#34">34</a><br/>
|
||
source, <a href="linuxs.html#31">31</a><br/>
|
||
usermod, <a href="linuxs.html#28">28</a><br/>
|
||
netdate, <a href="linuxs.html#21">21</a><br/>
|
||
ssh, <a href="linuxs.html#34">34, </a><a href="linuxs.html#35">35</a><br/>
|
||
UTC, <a href="linuxs.html#21">21</a><br/>
|
||
nfs, <a href="linuxs.html#49">49</a><br/>
|
||
ssh-keygen, <a href="linuxs.html#35">35</a><br/>
|
||
nl, <a href="linuxs.html#23">23</a><br/>
|
||
startx, <a href="linuxs.html#38">38</a><br/>
|
||
vfat, <a href="linuxs.html#49">49</a><br/>
|
||
nmap, <a href="linuxs.html#34">34</a><br/>
|
||
stderr, <a href="linuxs.html#19">19</a><br/>
|
||
vi, <a href="linuxs.html#24">24, </a><a href="linuxs.html#61">61</a><br/>
|
||
nslookup, <a href="linuxs.html#34">34</a><br/>
|
||
stdin, <a href="linuxs.html#19">19, </a><a href="linuxs.html#56">56</a><br/>
|
||
vipw, <a href="linuxs.html#28">28</a><br/>
|
||
ntfs, <a href="linuxs.html#49">49</a><br/>
|
||
stdout, <a href="linuxs.html#19">19</a><br/>
|
||
w, <a href="linuxs.html#20">20</a><br/>
|
||
od, <a href="linuxs.html#23">23</a><br/>
|
||
strace, <a href="linuxs.html#34">34</a><br/>
|
||
strings, <a href="linuxs.html#23">23</a><br/>
|
||
wc, <a href="linuxs.html#22">22</a><br/>
|
||
wget, <a href="linuxs.html#17">17</a><br/>
|
||
passwd, <a href="linuxs.html#28">28, </a><a href="linuxs.html#53">53</a><br/>
|
||
su, <a href="linuxs.html#28">28</a><br/>
|
||
whatis, <a href="linuxs.html#20">20</a><br/>
|
||
ping, <a href="linuxs.html#34">34</a><br/>
|
||
sux, <a href="linuxs.html#28">28</a><br/>
|
||
which, <a href="linuxs.html#20">20</a><br/>
|
||
pr, <a href="linuxs.html#25">25</a><br/>
|
||
systemctl, <a href="linuxs.html#19">19</a><br/>
|
||
who, <a href="linuxs.html#20">20</a><br/>
|
||
proc, <a href="linuxs.html#49">49</a><br/>
|
||
sysv, <a href="linuxs.html#49">49</a><br/>
|
||
whoami, <a href="linuxs.html#20">20</a><br/>
|
||
ps, <a href="linuxs.html#30">30</a><br/>
|
||
pstree, <a href="linuxs.html#30">30</a><br/>
|
||
tail, <a href="linuxs.html#23">23</a><br/>
|
||
xf86config, <a href="linuxs.html#38">38</a><br/>
|
||
pwd, <a href="linuxs.html#20">20</a><br/>
|
||
tar, <a href="linuxs.html#27">27</a><br/>
|
||
XF86Setup, <a href="linuxs.html#38">38</a><br/>
|
||
tcsh, <a href="linuxs.html#55">55</a><br/>
|
||
xset, <a href="linuxs.html#39">39</a><br/>
|
||
rcsshd, <a href="linuxs.html#36">36</a><br/>
|
||
telnet, <a href="linuxs.html#34">34</a><br/>
|
||
xsetroot, <a href="linuxs.html#39">39</a><br/>
|
||
reboot, <a href="linuxs.html#19">19</a><br/>
|
||
timedatectl, <a href="linuxs.html#21">21</a><br/>
|
||
recode, <a href="linuxs.html#23">23</a><br/>
|
||
top, <a href="linuxs.html#30">30</a><br/>
|
||
yast, <a href="linuxs.html#20">20</a><br/>
|
||
reiserfs, <a href="linuxs.html#49">49</a><br/>
|
||
tr, <a href="linuxs.html#25">25</a><br/>
|
||
revdep-rebuild, <a href="linuxs.html#33">33</a><br/>
|
||
tune2fs, <a href="linuxs.html#27">27</a><br/>
|
||
zcat, <a href="linuxs.html#17">17</a><br/>
|
||
rlogin, <a href="linuxs.html#34">34</a><br/>
|
||
zeichenorientiert, <a href="linuxs.html#28">28</a><br/>
|
||
rm, <a href="linuxs.html#23">23</a><br/>
|
||
ufs, <a href="linuxs.html#49">49</a><br/>
|
||
Zeit, <a href="linuxs.html#21">21</a><br/>
|
||
168<br/>
|
||
<hr/>
|
||
<a name="outline"></a><h1>Document Outline</h1>
|
||
<ul>
|
||
<li><a href="linuxs.html#3">Vorwort</a></li>
|
||
<li><a href="linuxs.html#5">Inhaltsverzeichnis</a></li>
|
||
<li><a href="linuxs.html#15">Linux</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#17">Linux</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#17">Was ist Linux?</a></li>
|
||
<li><a href="linuxs.html#17">Kernel und Module</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#17">Kernel 2.4</a></li>
|
||
<li><a href="linuxs.html#17">Kernel 2.6 (Debian 4.0 etch)</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#19">Befehle</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#19">Standartein-aus-gabe</a></li>
|
||
<li><a href="linuxs.html#19">Anmelden und Abmelden</a></li>
|
||
<li><a href="linuxs.html#19">Anhalten des Systems und Booten</a></li>
|
||
<li><a href="linuxs.html#20">Die Runlevel</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#20">Upstart (Systemstart)</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#20">SuSE-Linux</a></li>
|
||
<li><a href="linuxs.html#20">Zur Orientierung auf einem UNIX-Rechner</a></li>
|
||
<li><a href="linuxs.html#21">Datum und Uhrzeit</a></li>
|
||
<li><a href="linuxs.html#22">Auflisten</a></li>
|
||
<li><a href="linuxs.html#22">Dateinamen</a></li>
|
||
<li><a href="linuxs.html#22">Dateiendungen</a></li>
|
||
<li><a href="linuxs.html#22">Infos über Files</a></li>
|
||
<li><a href="linuxs.html#23">Arbeiten(Verwüstungen) im und am Filesystem</a></li>
|
||
<li><a href="linuxs.html#23">Kopieren und Verschieben</a></li>
|
||
<li><a href="linuxs.html#23">Löschen</a></li>
|
||
<li><a href="linuxs.html#23">Ausgeben</a></li>
|
||
<li><a href="linuxs.html#24">Der Texteditor vi/vim</a></li>
|
||
<li><a href="linuxs.html#24">Suchen nach Dateien</a></li>
|
||
<li><a href="linuxs.html#24">Suchen in Dateien</a></li>
|
||
<li><a href="linuxs.html#25">Vergleichen von Dateien</a></li>
|
||
<li><a href="linuxs.html#25">Drucken</a></li>
|
||
<li><a href="linuxs.html#25">File-Inhalt bearbeiten</a></li>
|
||
<li><a href="linuxs.html#25">TAR (tape archiver) verwaltet Dateiarchive</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#27">Packen</a></li>
|
||
<li><a href="linuxs.html#27">Entpacken</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#27">Disketten/Festplatten</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#28">Dateisystem verschlüsseln</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#28">Zugriffsrechte/Eigentümer/Gruppe</a></li>
|
||
<li><a href="linuxs.html#30">Prozessbefehle</a></li>
|
||
<li><a href="linuxs.html#31">Re-install Grub with Live CD</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#31">Chroot</a></li>
|
||
<li><a href="linuxs.html#31">Grub</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#31">Software installieren</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#31">rpm-Format</a></li>
|
||
<li><a href="linuxs.html#32">deb-Format</a></li>
|
||
<li><a href="linuxs.html#33">Portage Gentoo</a></li>
|
||
<li><a href="linuxs.html#34">Quelltexte</a></li>
|
||
<li><a href="linuxs.html#34">Hilfe</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#34">Im Netz</a></li>
|
||
<li><a href="linuxs.html#35">SSH</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#35">Generierung eines DSA Schlüsselpaares</a></li>
|
||
<li><a href="linuxs.html#35">Public-Key auf dem Zielrechner hinzufügen</a></li>
|
||
<li><a href="linuxs.html#35">Private-Key auf dem Qellrechner</a></li>
|
||
<li><a href="linuxs.html#36">Login nur mit SSH-Keys erlauben</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#36">GnuPG</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#36">Erzeugen</a></li>
|
||
<li><a href="linuxs.html#36">Hochladen</a></li>
|
||
<li><a href="linuxs.html#37">Löschen</a></li>
|
||
<li><a href="linuxs.html#37">Holen</a></li>
|
||
<li><a href="linuxs.html#37">Signatur erzeugen und prüfen</a></li>
|
||
<li><a href="linuxs.html#37">Verschlüsseln</a></li>
|
||
<li><a href="linuxs.html#37">Entschlüsseln</a></li>
|
||
<li><a href="linuxs.html#38">Schlüsselverwaltung</a></li>
|
||
<li><a href="linuxs.html#38">Anzeigen</a></li>
|
||
<li><a href="linuxs.html#38">Exportieren</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#38">X11 - Grafik</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#39">Bildschirmschoner/Maus</a></li>
|
||
<li><a href="linuxs.html#39">X11 ohne Maus</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#41">Verzeichnisse und Dateien</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#41">Dateibaum</a></li>
|
||
<li><a href="linuxs.html#48">/etc/fstab</a></li>
|
||
<li><a href="linuxs.html#48">/dev/</a></li>
|
||
<li><a href="linuxs.html#49">Dateisystemtypen unter Linux</a></li>
|
||
<li><a href="linuxs.html#49">/etc/group</a></li>
|
||
<li><a href="linuxs.html#50">/etc/hosts</a></li>
|
||
<li><a href="linuxs.html#50">/etc/inittab</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#50">Terminal</a></li>
|
||
<li><a href="linuxs.html#50">Termcapeintrag</a></li>
|
||
<li><a href="linuxs.html#51">Gettykommando</a></li>
|
||
<li><a href="linuxs.html#51">Kürzel</a></li>
|
||
<li><a href="linuxs.html#51">Arbeitsstufen</a></li>
|
||
<li><a href="linuxs.html#51">Modus</a></li>
|
||
<li><a href="linuxs.html#52">Kommando</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#53">/etc/passwd</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#55">Die Shells</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#55">Die Shells</a></li>
|
||
<li><a href="linuxs.html#55">Die Start-Scripts</a></li>
|
||
<li><a href="linuxs.html#55">Tastenkombinationen</a></li>
|
||
<li><a href="linuxs.html#56">Die C-Shell</a></li>
|
||
<li><a href="linuxs.html#57">Bash rechnen</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#59">Programme</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#61">Der Texteditor vi/vim</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#61">Aufruf</a></li>
|
||
<li><a href="linuxs.html#61">Eingabemodus (input mode)</a></li>
|
||
<li><a href="linuxs.html#61">Befehlsmodus (visual mode)</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#61">Eingeben:</a></li>
|
||
<li><a href="linuxs.html#61">Überschreiben:</a></li>
|
||
<li><a href="linuxs.html#62">Bewegen:</a></li>
|
||
<li><a href="linuxs.html#63">Löschen und Eingeben:</a></li>
|
||
<li><a href="linuxs.html#63">Löschen:</a></li>
|
||
<li><a href="linuxs.html#63">Aufheben:</a></li>
|
||
<li><a href="linuxs.html#63">Verschieben:</a></li>
|
||
<li><a href="linuxs.html#64">Zusammenfügen:</a></li>
|
||
<li><a href="linuxs.html#64">Markieren:</a></li>
|
||
<li><a href="linuxs.html#64">Kopieren:</a></li>
|
||
<li><a href="linuxs.html#64">Einfügen:</a></li>
|
||
<li><a href="linuxs.html#64">Suchen:</a></li>
|
||
<li><a href="linuxs.html#64">Wiederholen:</a></li>
|
||
<li><a href="linuxs.html#65">Sonstige Kommandos:</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#65">Kommandomodus (colon mode)</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#65">Texteingabe Kommandos</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#67">LaTeX</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#67">LaTeX</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#69">Docker</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#69">Docker installieren</a></li>
|
||
<li><a href="linuxs.html#69">Mit Docker arbeiten</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#71">Linux im Netzwerk</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#73">Netzwerk</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#74">/etc/network/interfaces</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#75">E-Mail</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#75">Verwendung von E-Mail</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#77">Apache</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#77">Einleitung</a></li>
|
||
<li><a href="linuxs.html#77">Kompilieren und Installieren</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#77">Anforderungen</a></li>
|
||
<li><a href="linuxs.html#77">Vorbereitungen</a></li>
|
||
<li><a href="linuxs.html#78">OpenSSL</a></li>
|
||
<li><a href="linuxs.html#78">Apache 1.3 und SSL</a></li>
|
||
<li><a href="linuxs.html#80">Apache2</a></li>
|
||
<li><a href="linuxs.html#80">Testen</a></li>
|
||
<li><a href="linuxs.html#81">Upgrade</a></li>
|
||
<li><a href="linuxs.html#81">PureFTPd</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#82">Apache starten</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#82">Apache starten</a></li>
|
||
<li><a href="linuxs.html#82">Wie der Apache startet</a></li>
|
||
<li><a href="linuxs.html#83">Fehler während des Hochfahrens</a></li>
|
||
<li><a href="linuxs.html#83">Automatisch starten und beenden</a></li>
|
||
<li><a href="linuxs.html#83">Weitere Informationen</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#84">Beenden und Neustarten</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#84">Einleitung</a></li>
|
||
<li><a href="linuxs.html#84">Beenden</a></li>
|
||
<li><a href="linuxs.html#84">Unterbrechungsfreier Neustart</a></li>
|
||
<li><a href="linuxs.html#85">Neustarten</a></li>
|
||
<li><a href="linuxs.html#85">Anhang: Syntax überprüfen</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#86">Anhang</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#86">Zu den Dateien</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#86">Benutzerhandbuch</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#86">httpd.conf</a></li>
|
||
<li><a href="linuxs.html#89">Access Control List File (.htaccess)</a></li>
|
||
<li><a href="linuxs.html#90">Gruppendatei (.htgroup)</a></li>
|
||
<li><a href="linuxs.html#90">Passwort-Datei (.htpasswd)</a></li>
|
||
<li><a href="linuxs.html#90">Erstellen eines SSL-Zertifikats</a></li>
|
||
<li><a href="linuxs.html#90">LinkIcon (favicon.ico)</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#93">MySQL</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#93">Einleitung</a></li>
|
||
<li><a href="linuxs.html#93">Kompilieren und Installieren</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#93">Anforderungen</a></li>
|
||
<li><a href="linuxs.html#93">Vorbereitungen</a></li>
|
||
<li><a href="linuxs.html#93">MySQL</a></li>
|
||
<li><a href="linuxs.html#94">MySQL Testen</a></li>
|
||
<li><a href="linuxs.html#95">phpMyAdmin</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#97">PHP</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#97">Einleitung</a></li>
|
||
<li><a href="linuxs.html#97">Kompilieren und Installieren</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#97">Anforderungen</a></li>
|
||
<li><a href="linuxs.html#97">Vorbereitungen</a></li>
|
||
<li><a href="linuxs.html#98">Libraries für Zusatzfunktionen</a></li>
|
||
<li><a href="linuxs.html#99">PHP</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#100">Referenz</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#100">Grundlagen</a></li>
|
||
<li><a href="linuxs.html#100">Funktionen</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#101">Squid</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#101">Proxy</a></li>
|
||
<li><a href="linuxs.html#101">Einfacher Cache</a></li>
|
||
<li><a href="linuxs.html#101">Proxy Cache</a></li>
|
||
<li><a href="linuxs.html#101">Aufgaben</a></li>
|
||
<li><a href="linuxs.html#102">Eigenschaften</a></li>
|
||
<li><a href="linuxs.html#102">Protokolle</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#102">Client-Kommunikation</a></li>
|
||
<li><a href="linuxs.html#102">Kommunikation zwischen Proxy-Cache-Servern</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#103">Systemvoraussetzungen</a></li>
|
||
<li><a href="linuxs.html#103">SuSE Linux</a></li>
|
||
<li><a href="linuxs.html#103">Automatische Starten von Squit</a></li>
|
||
<li><a href="linuxs.html#103">Squiddateien</a></li>
|
||
<li><a href="linuxs.html#103">squid.conf</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#107">Programmieren</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#109">Bash</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#109">Einleitung</a></li>
|
||
<li><a href="linuxs.html#109">Referenz</a></li>
|
||
<li><a href="linuxs.html#110">Steuer und Sonderzeichen der Bash</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#111">git</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#111">Dokumentation</a></li>
|
||
<li><a href="linuxs.html#111">Konfiguration</a></li>
|
||
<li><a href="linuxs.html#112">Konfigurationen über Umgebungsvariablen</a></li>
|
||
<li><a href="linuxs.html#112">Der Index</a></li>
|
||
<li><a href="linuxs.html#113">Repository</a></li>
|
||
<li><a href="linuxs.html#113">Commit</a></li>
|
||
<li><a href="linuxs.html#113">Dateien entfernen</a></li>
|
||
<li><a href="linuxs.html#113">Dateien verschieben</a></li>
|
||
<li><a href="linuxs.html#114">Änderung an einer Datei rückgängig machen</a></li>
|
||
<li><a href="linuxs.html#114">Dateien ignorieren</a></li>
|
||
<li><a href="linuxs.html#114">Mit externen Repositorys arbeiten</a></li>
|
||
<li><a href="linuxs.html#115">Tags</a></li>
|
||
<li><a href="linuxs.html#115">Branch</a></li>
|
||
<li><a href="linuxs.html#116">Git Aliase</a></li>
|
||
<li><a href="linuxs.html#116">Git auf einen Server bekommen</a></li>
|
||
<li><a href="linuxs.html#116">Git auf dem SSH-Server einrichten</a></li>
|
||
<li><a href="linuxs.html#117">Öffentlicher Webserver-Zugang</a></li>
|
||
<li><a href="linuxs.html#118">Grundbegriffe</a></li>
|
||
<li><a href="linuxs.html#119">Verwendung von Git</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#121">C/C++</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#121">Befehle und Grundelemente</a></li>
|
||
<li><a href="linuxs.html#121">Steuersequenzen für ANSI-Bildschirme - Innerhalb von Texten</a></li>
|
||
<li><a href="linuxs.html#122">stdio.h -> Standard Ein- und Ausgabe</a></li>
|
||
<li><a href="linuxs.html#123">ctype.h</a></li>
|
||
<li><a href="linuxs.html#123">string.h</a></li>
|
||
<li><a href="linuxs.html#124">Kontrollstrukturen</a></li>
|
||
<li><a href="linuxs.html#125">ASCII(American Standart Code for Information Interchange)-Tabelle</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#126">Unterteilung der Steuerzeichen:</a></li>
|
||
<li><a href="linuxs.html#126">Bedeutung der Steuerzeichen:</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#127">Operatoren und Ausdrücke</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#127">Arithmetische Operatoren:</a></li>
|
||
<li><a href="linuxs.html#127">Vergleichsoperatoren:</a></li>
|
||
<li><a href="linuxs.html#127">Logische Operatoren:</a></li>
|
||
<li><a href="linuxs.html#128">Zuweisungsoperatoren:</a></li>
|
||
<li><a href="linuxs.html#128">Post- und Prefix- Operatoren:</a></li>
|
||
<li><a href="linuxs.html#128">Zeigeroperatoren:</a></li>
|
||
<li><a href="linuxs.html#128">Diverse Kategorien:</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#129">Inkrementieren und Dekrementieren</a></li>
|
||
<li><a href="linuxs.html#129">Wertebereich und Genauigkeit elementarer Datentypen</a></li>
|
||
<li><a href="linuxs.html#129">Variableninitialisierung</a></li>
|
||
<li><a href="linuxs.html#130">Konstanten</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#130">Ganzzahlkonstanten</a></li>
|
||
<li><a href="linuxs.html#130">Gleitkommakonstanten</a></li>
|
||
<li><a href="linuxs.html#130">Zeichen- und Zeichenkettenkonstanten</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#131">Tcl/Tk</a></li>
|
||
<li><a href="linuxs.html#133">Perl</a></li>
|
||
<li><a href="linuxs.html#135">CGI+Perl</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#135">Einleitung</a></li>
|
||
<li><a href="linuxs.html#135">Perl</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#135">Texte und Strings</a></li>
|
||
<li><a href="linuxs.html#135">Rechenoperationen</a></li>
|
||
<li><a href="linuxs.html#136">Arrays (Listen)</a></li>
|
||
<li><a href="linuxs.html#136">String- und Zahlenvergleichsoperratoren</a></li>
|
||
<li><a href="linuxs.html#136">if-Bedingung</a></li>
|
||
<li><a href="linuxs.html#136">if-else-Bedingung</a></li>
|
||
<li><a href="linuxs.html#137">if-elseif-Bedingung</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#137">Funktionen</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#137">String Funktionen</a></li>
|
||
<li><a href="linuxs.html#137">Rechen Funktionen</a></li>
|
||
<li><a href="linuxs.html#137">Array Funktionen</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#139">Java</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#139">Funktion von Java</a></li>
|
||
<li><a href="linuxs.html#139">Sprache und Syntax von Java</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#139">Kommentrare</a></li>
|
||
<li><a href="linuxs.html#139">Datentypen</a></li>
|
||
<li><a href="linuxs.html#140">Variablen</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#140">Pakete und Verzeichnisstrukturen</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#140">Sichtbarkeit und Zugriffsrechte von Klassen und Methoden</a></li>
|
||
<li><a href="linuxs.html#140">Klassen</a></li>
|
||
<li><a href="linuxs.html#141">Konstruktoren und Destruktoren</a></li>
|
||
<li><a href="linuxs.html#141">Methoden überladen</a></li>
|
||
<li><a href="linuxs.html#141">Objekte</a></li>
|
||
<li><a href="linuxs.html#142">Vererbung</a></li>
|
||
<li><a href="linuxs.html#142">Schnittstellen</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#142">Elementare Syntax von Java</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#142">Operratoren</a></li>
|
||
<li><a href="linuxs.html#142">Verknüpfungsoperatoren</a></li>
|
||
<li><a href="linuxs.html#142">Inkrement-Operator</a></li>
|
||
<li><a href="linuxs.html#143">Dekrement-Operator</a></li>
|
||
<li><a href="linuxs.html#143">Arithmetische Zuweisungsoperatoren</a></li>
|
||
<li><a href="linuxs.html#143">Bedingungen und Entscheidungen</a></li>
|
||
<li><a href="linuxs.html#143">if - else - Bedingungen</a></li>
|
||
<li><a href="linuxs.html#143">Verschachtelte Bedingungen</a></li>
|
||
<li><a href="linuxs.html#144">Fallunterscheidung mit switch - case</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#144">Schleifen</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#144">Die while - Schleife</a></li>
|
||
<li><a href="linuxs.html#144">Die do - while - Schleife</a></li>
|
||
<li><a href="linuxs.html#144">Die for - Schleife</a></li>
|
||
<li><a href="linuxs.html#144">Schleifen mit break verlassen</a></li>
|
||
<li><a href="linuxs.html#144">Schleife mit continue wiederholen</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#145">Komplexe Datentypen</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#145">Arrays</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#145">Die Anweisung import</a></li>
|
||
<li><a href="linuxs.html#145">Java eigene Klassen</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#145">Die Klasse Math</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#145">Die Klasse Object</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#145">Die Klasse Object</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#146">Die Klasse Runtime</a></li>
|
||
<li><a href="linuxs.html#146">Die Klasse String</a></li>
|
||
<li><a href="linuxs.html#146">Die Klasse Stringbuffer</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#146">Die Klasse Stringbuffer</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#146">Die Klasse System</a></li>
|
||
<li><a href="linuxs.html#146">Das Paket java.util</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#147">Die Klasse Date</a></li>
|
||
<li><a href="linuxs.html#147">Die Klasse Random</a></li>
|
||
<li><a href="linuxs.html#147">Die Klasse Stack</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#147">Ausnahmen (Exceptions)</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#148">Eigene Ausnahme erzeugen (throw)</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#148">Multitasking mit Threads</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#148">Arbeiten mit Threads</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#149">Applets</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#149">Applets in eine Webseite einbinden</a></li>
|
||
<li><a href="linuxs.html#149">Das erste Java Applet</a></li>
|
||
<li><a href="linuxs.html#149">Die Methoden eines Applets</a></li>
|
||
<li><a href="linuxs.html#149">Ein Applet im Überblick</a></li>
|
||
<li><a href="linuxs.html#150">Pakete</a></li>
|
||
<li><a href="linuxs.html#150">Die Klasse Graphics</a></li>
|
||
<li><a href="linuxs.html#150">Die Klasse Color</a></li>
|
||
<li><a href="linuxs.html#151">Die Klasse Font</a></li>
|
||
<li><a href="linuxs.html#151">Die Klasse Image</a></li>
|
||
<li><a href="linuxs.html#151">Die Klasse Button</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#152">Eventhandling</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#152">Mouse Events</a></li>
|
||
<li><a href="linuxs.html#152">Action Events</a></li>
|
||
<li><a href="linuxs.html#152">Parameter an ein Applet</a></li>
|
||
<li><a href="linuxs.html#153">Weitere wichtige Pakete</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#155">JavaScript</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#155">Einbindung von JavaScript</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#155">Einbindung in den Head</a></li>
|
||
<li><a href="linuxs.html#155">Einbindung in den Body</a></li>
|
||
<li><a href="linuxs.html#155">Ausführen bei bestimmten Aktionen</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#156">Variablen</a></li>
|
||
<li><a href="linuxs.html#156">Objekte</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#156">Standardobjekte</a></li>
|
||
<li><a href="linuxs.html#157">String-Objekt</a></li>
|
||
<li><a href="linuxs.html#158">Eigene Objekte</a></li>
|
||
<li><a href="linuxs.html#158">Arrays</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#158">Mathematische Operationen</a></li>
|
||
<li><a href="linuxs.html#158">Bedingte Ausführung</a></li>
|
||
<li><a href="linuxs.html#158">Schleifen</a></li>
|
||
<li><a href="linuxs.html#159">Event-Handler</a></li>
|
||
<li><a href="linuxs.html#159">Funktionen</a></li>
|
||
<li><a href="linuxs.html#160">Reservierte Wörter</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#163">Anhang</a>
|
||
<ul>
|
||
<li><a href="linuxs.html#165">Glossar</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="linuxs.html#167">Stichwortverzeichnis</a></li>
|
||
</ul>
|
||
<hr/>
|
||
</body>
|
||
</html>
|