Upload
nguyentuyen
View
242
Download
2
Embed Size (px)
Citation preview
Sascha Kersken
IT-Handbuch für Fachinformatiker
Auf einen Blick
Auf einen Blick
1 Einführung ................................................................................................................................................ 25
2 Mathematische und technische Grundlagen ............................................................................... 59
3 Hardware .................................................................................................................................................. 111
4 Netzwerkgrundlagen ............................................................................................................................ 173
5 Betriebssystemgrundlagen ................................................................................................................ 289
6 Windows ................................................................................................................................................... 327
7 Linux ........................................................................................................................................................... 377
8 Mac OS X ................................................................................................................................................... 453
9 Grundlagen der Programmierung .................................................................................................... 471
10 Konzepte der Programmierung ......................................................................................................... 561
11 Software-Engineering .......................................................................................................................... 659
12 Datenbanken ........................................................................................................................................... 699
13 Server für Webanwendungen ........................................................................................................... 753
14 Weitere Internet-Serverdienste ........................................................................................................ 797
15 XML ............................................................................................................................................................. 821
16 Weitere Datei- und Datenformate ................................................................................................... 869
17 Webseitenerstellung mit (X)HTML und CSS ................................................................................. 899
18 Webserveranwendungen .................................................................................................................... 963
19 JavaScript und Ajax ............................................................................................................................... 1037
20 Computer- und Netzwerksicherheit ................................................................................................ 1105
A Glossar ....................................................................................................................................................... 1133
B Zweisprachige Wortliste ...................................................................................................................... 1147
C Kommentiertes Literatur- und Linkverzeichnis ........................................................................... 1153
Inhalt
Inhalt
Vorwort ...................................................................................................................................................................................... 17
1 Einführung 25
1.1 Informationstechnik, Informatik und EDV ................................................................................................. 25
1.1.1 Fachrichtungen der Informatik .......................................................................................................... 26
1.1.2 Überblick über die IT-Ausbildung ...................................................................................................... 27
1.2 Die Geschichte der Rechenmaschinen und Computer .......................................................................... 34
1.2.1 Die Vorgeschichte ................................................................................................................................... 35
1.2.2 Die Entwicklung der elektronischen Rechner ................................................................................ 37
1.2.3 Entwicklung der Programmiersprachen ......................................................................................... 46
1.3 Digitale Speicherung und Verarbeitung von Informationen ............................................................. 53
1.3.1 Digitale Bilddaten ................................................................................................................................... 55
1.3.2 Digitale Audiodaten ............................................................................................................................... 56
1.3.3 Digitale Speicherung von Text ........................................................................................................... 57
1.4 Zusammenfassung ................................................................................................................................................ 57
2 Mathematische und technische Grundlagen 59
2.1 Einführung in die Logik ....................................................................................................................................... 59
2.1.1 Aussagen .................................................................................................................................................... 60
2.1.2 Aussageformen ....................................................................................................................................... 61
2.1.3 Logische Verknüpfungen ...................................................................................................................... 61
2.1.4 Mengenoperationen .............................................................................................................................. 69
2.1.5 Weitere wichtige Berechnungsverfahren ....................................................................................... 73
2.2 Informationsspeicherung im Computer ...................................................................................................... 75
2.2.1 Zahlensysteme ......................................................................................................................................... 75
2.2.2 Bits und Bytes ........................................................................................................................................... 81
2.3 Elektronische Grundlagen .................................................................................................................................. 85
2.3.1 Einfache Schaltungen ............................................................................................................................ 86
2.3.2 Zusammengesetzte Schaltungen ..................................................................................................... 89
2.4 Automatentheorien und -simulationen ...................................................................................................... 94
2.4.1 Algorithmen .............................................................................................................................................. 94
5
Inhalt
2.4.2 Die Turing-Maschine ............................................................................................................................. 99
2.4.3 Der virtuelle Prozessor .......................................................................................................................... 103
2.5 Zusammenfassung ................................................................................................................................................ 110
3 Hardware 111
3.1 Grundlagen ............................................................................................................................................................... 112
3.2 Die Zentraleinheit .................................................................................................................................................. 116
3.2.1 Aufbau und Aufgaben des Prozessors ............................................................................................. 117
3.2.2 Der Arbeitsspeicher ................................................................................................................................ 127
3.2.3 Das BIOS ..................................................................................................................................................... 129
3.2.4 Bus- und Anschlusssysteme ................................................................................................................ 135
3.3 Die Peripherie .......................................................................................................................................................... 145
3.3.1 Massenspeicher ....................................................................................................................................... 146
3.3.2 Eingabegeräte .......................................................................................................................................... 160
3.3.3 Ausgabegeräte ......................................................................................................................................... 163
3.3.4 Soundhardware ....................................................................................................................................... 169
3.4 Zusammenfassung ................................................................................................................................................ 170
4 Netzwerkgrundlagen 173
4.1 Einführung ................................................................................................................................................................ 173
4.1.1 Was ist ein Netzwerk? ........................................................................................................................... 173
4.1.2 Entstehung der Netzwerke .................................................................................................................. 175
4.2 Funktionsebenen von Netzwerken ................................................................................................................ 181
4.2.1 Das OSI-Referenzmodell ....................................................................................................................... 181
4.2.2 Das Schichtenmodell der Internetprotokolle ................................................................................ 184
4.2.3 Netzwerkkommunikation über die Schichten eines Schichtenmodells ............................... 187
4.3 Klassifizierung von Netzwerken ..................................................................................................................... 191
4.3.1 Die Reichweite des Netzwerks ........................................................................................................... 191
4.3.2 Die Netzwerktopologie ......................................................................................................................... 193
4.3.3 Der Zentralisierungsgrad des Netzwerks ....................................................................................... 194
4.4 Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren ......................................................... 201
4.4.1 Die verschiedenen Ethernet-Standards ........................................................................................... 202
4.4.2 Token Ring ................................................................................................................................................. 208
6
Inhalt
4.4.3 Drahtlose Netze ....................................................................................................................................... 209
4.4.4 Sonstige Zugangsarten ......................................................................................................................... 214
4.5 Datenfernübertragung ........................................................................................................................................ 215
4.5.1 Netzwerkzugang per Modem (analoge Telefonleitung) ........................................................... 217
4.5.2 ISDN ............................................................................................................................................................. 218
4.5.3 DSL-Dienste ............................................................................................................................................... 220
4.5.4 Internetzugänge über Mobilfunk ...................................................................................................... 222
4.6 Die TCP/IP-Protokollfamilie .............................................................................................................................. 224
4.6.1 Netzzugang in TCP/IP-Netzwerken .................................................................................................. 225
4.6.2 IP-Adressen, Datagramme und Routing .......................................................................................... 226
4.6.3 Transportprotokolle ............................................................................................................................... 254
4.6.4 Das Domain Name System (DNS) ..................................................................................................... 260
4.6.5 Verschiedene Internet-Anwendungsprotokolle ........................................................................... 265
4.7 Andere Protokollstapel ........................................................................................................................................ 282
4.7.1 Die AppleTalk-Protokollfamilie .......................................................................................................... 282
4.7.2 Novell IPX/SPX ......................................................................................................................................... 285
4.7.3 NetBEUI/SMB ........................................................................................................................................... 286
4.8 Zusammenfassung ................................................................................................................................................ 287
5 Betriebssystemgrundlagen 289
5.1 Entwicklung der Betriebssysteme .................................................................................................................. 290
5.1.1 Die Geschichte von Unix ...................................................................................................................... 292
5.1.2 PC-Betriebssysteme ............................................................................................................................... 294
5.2 Aufgaben und Konzepte ..................................................................................................................................... 298
5.2.1 Allgemeiner Aufbau von Betriebssystemen .................................................................................. 299
5.2.2 Prozessverwaltung ................................................................................................................................. 306
5.2.3 Speicherverwaltung ............................................................................................................................... 311
5.2.4 Dateisysteme ............................................................................................................................................ 313
5.3 Die allgegenwärtige Virtualisierung ............................................................................................................. 320
5.3.1 Virtualisierungslösungen im Überblick ........................................................................................... 321
5.3.2 VMware Workstation als konkretes Beispiel ................................................................................. 322
5.4 Zusammenfassung ................................................................................................................................................ 326
7
Inhalt
6 Windows 327
6.1 Allgemeine Informationen ................................................................................................................................ 327
6.1.1 Die verschiedenen Windows-Versionen ......................................................................................... 327
6.1.2 Windows-Dateisysteme ....................................................................................................................... 333
6.2 Windows im Einsatz .............................................................................................................................................. 334
6.2.1 Die Windows-Benutzeroberfläche .................................................................................................... 335
6.2.2 Die Windows-Konsole ........................................................................................................................... 344
6.2.3 Die Windows PowerShell ..................................................................................................................... 347
6.2.4 Windows-Konfiguration ....................................................................................................................... 360
6.3 Windows-Netzwerkkonfiguration ................................................................................................................. 367
6.3.1 Allgemeine Einstellungen .................................................................................................................... 367
6.3.2 TCP/IP-Dienstprogramme .................................................................................................................... 369
6.3.3 Datei- und Druckserver unter Windows ......................................................................................... 372
6.3.4 Windows-Server ...................................................................................................................................... 373
6.4 Zusammenfassung ................................................................................................................................................ 375
7 Linux 377
7.1 Arbeiten mit der Shell .......................................................................................................................................... 379
7.1.1 Booten und Login .................................................................................................................................... 379
7.1.2 Virtuelle Terminals ................................................................................................................................. 383
7.1.3 Grundfunktionen der Shell .................................................................................................................. 384
7.1.4 Hilfefunktionen ....................................................................................................................................... 390
7.1.5 Pipes und Ein-/Ausgabeumleitung ................................................................................................... 394
7.1.6 Die wichtigsten Systembefehle ......................................................................................................... 397
7.2 Konfigurations- und Administrationsaufgaben ...................................................................................... 411
7.2.1 Syslog und Log-Dateien ........................................................................................................................ 411
7.2.2 Programme automatisch starten ...................................................................................................... 413
7.2.3 Software installieren ............................................................................................................................. 415
7.3 Automatisierung .................................................................................................................................................... 417
7.3.1 Shell-Skripte .............................................................................................................................................. 417
7.3.2 Weitere Hilfsmittel ................................................................................................................................. 421
7.4 Editoren ...................................................................................................................................................................... 423
7.4.1 vi ................................................................................................................................................................... 424
7.4.2 Emacs .......................................................................................................................................................... 433
8
Inhalt
7.5 Grafische Benutzeroberflächen ....................................................................................................................... 439
7.5.1 Der X-Server .............................................................................................................................................. 439
7.5.2 Desktops .................................................................................................................................................... 440
7.6 Netzwerkkonfiguration unter Linux ............................................................................................................. 445
7.6.1 Grundeinstellungen ............................................................................................................................... 445
7.6.2 TCP/IP-Dienstprogramme .................................................................................................................... 447
7.6.3 Datei- und Druckserver unter Linux ................................................................................................. 447
7.7 Zusammenfassung ................................................................................................................................................ 452
8 Mac OS X 453
8.1 Mit Aqua arbeiten .................................................................................................................................................. 457
8.1.1 Die Menüleiste ......................................................................................................................................... 458
8.1.2 Das Dock .................................................................................................................................................... 459
8.1.3 Der Finder .................................................................................................................................................. 460
8.1.4 Exposé und Dashboard ......................................................................................................................... 462
8.2 Systemkonfiguration ........................................................................................................................................... 464
8.2.1 Besonderheiten der Mac-Dateisysteme .......................................................................................... 465
8.3 Mac OS X-Netzwerkkonfiguration ................................................................................................................. 466
8.3.1 Serverdienste unter Mac OS X ............................................................................................................ 468
8.4 Zusammenfassung ................................................................................................................................................ 469
9 Grundlagen der Programmierung 471
9.1 Die Programmiersprache C ................................................................................................................................ 472
9.1.1 Das erste Beispiel .................................................................................................................................... 473
9.1.2 Elemente der Sprache C ........................................................................................................................ 476
9.1.3 Die C-Standardbibliothek ..................................................................................................................... 495
9.2 Java ............................................................................................................................................................................... 499
9.2.1 Grundlegende Elemente der Sprache Java ..................................................................................... 501
9.2.2 Objektorientierte Programmierung mit Java ................................................................................ 506
9.2.3 Dateizugriffe in Java .............................................................................................................................. 512
9.3 Perl ................................................................................................................................................................................ 514
9.3.1 Das erste Beispiel .................................................................................................................................... 516
9.3.2 Elemente der Sprache Perl ................................................................................................................... 517
9
Inhalt
9.4 Ruby ............................................................................................................................................................................. 528
9.4.1 Das erste Beispiel .................................................................................................................................... 529
9.4.2 Ruby-Grundelemente ............................................................................................................................ 531
9.4.3 Objektorientierung in Ruby ................................................................................................................. 546
9.5 Zusammenfassung ................................................................................................................................................ 559
10 Konzepte der Programmierung 561
10.1 Algorithmen und Datenstrukturen ................................................................................................................ 561
10.1.1 Ein einfaches Praxisbeispiel ................................................................................................................ 561
10.1.2 Sortier-Algorithmen ............................................................................................................................... 564
10.1.3 Such-Algorithmen ................................................................................................................................... 569
10.1.4 Ausgewählte Datenstrukturen ........................................................................................................... 571
10.2 Reguläre Ausdrücke .............................................................................................................................................. 576
10.2.1 Muster für reguläre Ausdrücke .......................................................................................................... 577
10.2.2 Programmierung mit regulären Ausdrücken ................................................................................ 581
10.3 Systemnahe Programmierung ......................................................................................................................... 584
10.3.1 Prozesse und Pipes ................................................................................................................................. 584
10.3.2 Threads ....................................................................................................................................................... 589
10.4 Einführung in die Netzwerkprogrammierung .......................................................................................... 593
10.4.1 Die Berkeley Socket API ......................................................................................................................... 593
10.4.2 Ein praktisches Beispiel ......................................................................................................................... 600
10.4.3 Ein Ruby-Webserver ............................................................................................................................... 604
10.5 Verteilte Anwendungen mit Java Enterprise Edition ............................................................................ 620
10.5.1 Enterprise Java Beans (EJB) .................................................................................................................. 621
10.5.2 Java Servlets .............................................................................................................................................. 627
10.5.3 Webservices .............................................................................................................................................. 628
10.6 GUI- und Grafikprogrammierung ................................................................................................................... 630
10.6.1 Zeichnungen und Grafiken erstellen ................................................................................................ 632
10.6.2 Animation .................................................................................................................................................. 638
10.6.3 Programmierung fensterbasierter Anwendungen ...................................................................... 642
10.6.4 Java-Applets .............................................................................................................................................. 655
10.7 Zusammenfassung ................................................................................................................................................ 657
10
Inhalt
11 Software-Engineering 659
11.1 Überblick .................................................................................................................................................................... 660
11.1.1 Der Entwicklungszyklus ........................................................................................................................ 661
11.1.2 Planung und Analyse ............................................................................................................................. 662
11.1.3 Entwurf ....................................................................................................................................................... 669
11.1.4 Implementierung und Test .................................................................................................................. 670
11.1.5 Dokumentation ....................................................................................................................................... 672
11.1.6 Konkrete Entwicklungsverfahren ...................................................................................................... 673
11.2 Werkzeuge ................................................................................................................................................................ 677
11.2.1 UML .............................................................................................................................................................. 677
11.2.2 Entwurfsmuster ...................................................................................................................................... 684
11.2.3 Unit-Tests .................................................................................................................................................. 693
11.3 Zusammenfassung ................................................................................................................................................ 698
12 Datenbanken 699
12.1 Die verschiedenen Datenbanktypen ............................................................................................................. 700
12.1.1 Einzeltabellendatenbanken ................................................................................................................ 702
12.1.2 Relationale Datenbanken ..................................................................................................................... 703
12.1.3 Objektorientierte Datenbanken ......................................................................................................... 711
12.2 MySQL – ein konkretes RDBMS ....................................................................................................................... 714
12.2.1 MySQL installieren und konfigurieren ............................................................................................. 714
12.2.2 Erste Schritte mit dem mysql-Client ................................................................................................ 718
12.3 SQL-Abfragen ........................................................................................................................................................... 719
12.3.1 Datenbanken und Tabellen erzeugen .............................................................................................. 720
12.3.2 Auswahlabfragen .................................................................................................................................... 724
12.3.3 Einfüge-, Lösch- und Änderungsabfragen ...................................................................................... 728
12.3.4 Transaktionen .......................................................................................................................................... 730
12.4 MySQL-Administration ........................................................................................................................................ 731
12.4.1 mysqladmin .............................................................................................................................................. 732
12.4.2 Benutzerverwaltung .............................................................................................................................. 732
12.4.3 Import und Export von Daten, Backups .......................................................................................... 738
12.4.4 Konfigurationsdateien .......................................................................................................................... 741
12.4.5 Log-Dateien ............................................................................................................................................... 742
12.4.6 Replikation ................................................................................................................................................ 744
12.5 Grundlagen der Datenbankprogrammierung ........................................................................................... 746
12.6 Zusammenfassung ................................................................................................................................................ 751
11
Inhalt
13 Server für Webanwendungen 753
13.1 HTTP im Überblick ................................................................................................................................................. 753
13.1.1 Ablauf der HTTP-Kommunikation ..................................................................................................... 754
13.1.2 HTTP-Statuscodes ................................................................................................................................... 758
13.1.3 HTTP-Header ............................................................................................................................................. 761
13.2 Der Webserver Apache ........................................................................................................................................ 765
13.2.1 Apache im Überblick .............................................................................................................................. 766
13.2.2 Apache-Module ....................................................................................................................................... 768
13.2.3 Apache installieren ................................................................................................................................. 770
13.2.4 Apache-Konfiguration ........................................................................................................................... 774
13.3 PHP installieren und einrichten ....................................................................................................................... 788
13.3.1 Installation ................................................................................................................................................ 789
13.3.2 Die PHP-Konfigurationsdatei »php.ini« ........................................................................................... 793
13.4 Zusammenfassung ................................................................................................................................................ 796
14 Weitere Internet-Serverdienste 797
14.1 Namens- und Verzeichnisdienste ................................................................................................................... 797
14.1.1 Der DNS-Server BIND ............................................................................................................................. 797
14.1.2 Der Verzeichnisdienst OpenLDAP ...................................................................................................... 804
14.2 Sonstige Server ........................................................................................................................................................ 814
14.2.1 vsftpd, ein FTP-Server ............................................................................................................................ 814
14.2.2 inetd und xinetd ...................................................................................................................................... 816
14.3 Zusammenfassung ................................................................................................................................................ 819
15 XML 821
15.1 Der Aufbau von XML-Dokumenten ............................................................................................................... 823
15.1.1 Die grundlegenden Bestandteile von XML-Dokumenten ......................................................... 823
15.1.2 Wohlgeformtheit .................................................................................................................................... 832
15.2 DTDs und XML Schema ........................................................................................................................................ 834
15.2.1 Document Type Definitions (DTDs) .................................................................................................. 834
15.2.2 Namensräume ......................................................................................................................................... 846
15.2.3 XML Schema ............................................................................................................................................. 847
12
Inhalt
15.3 XSLT .............................................................................................................................................................................. 850
15.4 Grundlagen der XML-Programmierung ....................................................................................................... 856
15.4.1 SAX ............................................................................................................................................................... 858
15.4.2 DOM ............................................................................................................................................................ 866
15.5 Zusammenfassung ................................................................................................................................................ 868
16 Weitere Datei- und Datenformate 869
16.1 Textdateien und Zeichensätze ......................................................................................................................... 869
16.1.1 Das Problem des Zeilenumbruchs ..................................................................................................... 870
16.1.2 Zeichensätze ............................................................................................................................................. 873
16.1.3 Textbasierte Dateiformate .................................................................................................................. 880
16.2 Binäre Dateiformate ............................................................................................................................................. 883
16.2.1 Bilddateiformate ..................................................................................................................................... 886
16.2.2 Multimedia-Dateiformate ................................................................................................................... 891
16.2.3 Archivdateien verwenden .................................................................................................................... 893
16.3 Zusammenfassung ................................................................................................................................................ 896
17 Webseitenerstellung mit (X)HTML und CSS 899
17.1 HTML und XHTML .................................................................................................................................................. 900
17.1.1 Die Grundstruktur von HTML-Dokumenten .................................................................................. 901
17.1.2 Textstrukturierung und Textformatierung .................................................................................... 904
17.1.3 Listen und Aufzählungen ..................................................................................................................... 911
17.1.4 Hyperlinks .................................................................................................................................................. 914
17.1.5 Bilder in Webseiten einbetten ............................................................................................................ 919
17.1.6 Tabellen ...................................................................................................................................................... 923
17.1.7 Formulare .................................................................................................................................................. 930
17.1.8 Einbetten von Multimedia-Dateien .................................................................................................. 938
17.1.9 Meta-Tags und Suchmaschinen ........................................................................................................ 941
17.2 Cascading Style Sheets (CSS) ............................................................................................................................ 944
17.2.1 Platzieren von Stylesheets ................................................................................................................... 945
17.2.2 Stylesheet-Wertangaben ..................................................................................................................... 947
17.2.3 Stylesheet-Eigenschaften .................................................................................................................... 949
17.2.4 Layer erzeugen und positionieren ..................................................................................................... 952
17.3 Zusammenfassung ................................................................................................................................................ 962
13
Inhalt
18 Webserveranwendungen 963
18.1 PHP ............................................................................................................................................................................... 963
18.1.1 Sprachgrundlagen .................................................................................................................................. 964
18.1.2 Klassen und Objekte .............................................................................................................................. 977
18.1.3 Include-Dateien, Autoloader und Namespaces ............................................................................ 988
18.1.4 Webspezifische Funktionen ................................................................................................................ 990
18.1.5 Zugriff auf MySQL-Datenbanken ...................................................................................................... 995
18.1.6 Unit-Tests mit PHPUnit ......................................................................................................................... 1009
18.2 Ruby on Rails ............................................................................................................................................................ 1015
18.2.1 Grundlagen ............................................................................................................................................... 1016
18.2.2 Ein Praxisbeispiel .................................................................................................................................... 1017
18.3 Weitere Technologien im Überblick .............................................................................................................. 1029
18.3.1 Content Management, Weblogs & Co. ........................................................................................... 1030
18.3.2 Blogs und Wikis ....................................................................................................................................... 1031
18.4 Zusammenfassung ................................................................................................................................................ 1034
19 JavaScript und Ajax 1037
19.1 JavaScript ................................................................................................................................................................... 1037
19.2 JavaScript im HTML-Dokument ....................................................................................................................... 1038
19.2.1 Erstes Beispiel: Ausgabe ins Dokument .......................................................................................... 1039
19.3 Formulare und Event Handler .......................................................................................................................... 1043
19.3.1 Erstes Beispiel ........................................................................................................................................... 1044
19.3.2 Zugriff auf Formulare und ihre Elemente ....................................................................................... 1045
19.4 Datums- und Uhrzeit-Funktionen .................................................................................................................. 1053
19.4.1 Datums- und Uhrzeit-Methoden ....................................................................................................... 1054
19.4.2 Timeout – die JavaScript-»Stoppuhr« .............................................................................................. 1055
19.5 Manipulation von Bildern .................................................................................................................................. 1056
19.5.1 Erstes Beispiel: Austauschen eines Bildes auf Knopfdruck ....................................................... 1056
19.5.2 Vorausladen von Bildern ...................................................................................................................... 1058
19.5.3 Eine gut funktionierende Rollover-Lösung ..................................................................................... 1059
19.6 Browser- und Fensteroptionen ........................................................................................................................ 1063
19.6.1 Browser-Eigenschaften ......................................................................................................................... 1063
19.6.2 Automatische Hyperlinks – History und Location ....................................................................... 1065
19.6.3 Neue Browserfenster öffnen ............................................................................................................... 1066
14
Inhalt
19.7 DHTML und DOM ................................................................................................................................................... 1069
19.7.1 W3C-DOM im Überblick ....................................................................................................................... 1070
19.7.2 Eine DOM-Baum-Anzeige .................................................................................................................... 1073
19.7.3 DOM-Anwendung in der Praxis ......................................................................................................... 1076
19.7.4 Dokumentinhalte verändern und austauschen ........................................................................... 1079
19.8 Ajax ............................................................................................................................................................................... 1081
19.8.1 Die erste Ajax-Anwendung .................................................................................................................. 1081
19.8.2 Datenaustauschformate: XML und JSON ....................................................................................... 1088
19.8.3 Größeres Beispiel: eine interaktive Länderliste ............................................................................ 1089
19.9 Zusammenfassung ................................................................................................................................................ 1102
20 Computer- und Netzwerksicherheit 1105
20.1 PC-Gefahren ............................................................................................................................................................. 1106
20.1.1 Viren und Würmer .................................................................................................................................. 1106
20.1.2 Trojaner und Backdoors ........................................................................................................................ 1112
20.1.3 Weitere Schädlinge ................................................................................................................................ 1113
20.2 Netzwerk- und Serversicherheit ...................................................................................................................... 1119
20.2.1 Servergefahren ........................................................................................................................................ 1119
20.2.2 Wichtige Gegenmaßnahmen ............................................................................................................. 1122
20.2.3 Kryptografie .............................................................................................................................................. 1128
20.3 Zusammenfassung ................................................................................................................................................ 1131
Anhang
A Glossar ........................................................................................................................................................................ 1133
B Zweisprachige Wortliste ..................................................................................................................................... 1147
B.1 Englisch-Deutsch .................................................................................................................................... 1147
B.2 Deutsch-Englisch .................................................................................................................................... 1150
C Kommentiertes Literatur- und Linkverzeichnis ........................................................................................ 1153
C.1 Allgemeine Einführungen und Überblicke ..................................................................................... 1153
C.2 Mathematische und technische Grundlagen ............................................................................... 1153
C.3 Hardware ................................................................................................................................................... 1154
15
Inhalt
C.4 Netzwerktechnik ..................................................................................................................................... 1154
C.5 Betriebssystemgrundlagen ................................................................................................................. 1155
C.6 Windows .................................................................................................................................................... 1155
C.7 Linux ............................................................................................................................................................ 1156
C.8 Mac OS X .................................................................................................................................................... 1157
C.9 Grundlagen der Programmierung ..................................................................................................... 1157
C.10 Konzepte der Programmierung .......................................................................................................... 1158
C.11 Software-Engineering ........................................................................................................................... 1158
C.12 Datenbanken ............................................................................................................................................ 1160
C.13 Server für Webanwendungen ............................................................................................................ 1160
C.14 Weitere Internet-Serverdienste ......................................................................................................... 1161
C.15 XML .............................................................................................................................................................. 1161
C.16 Webseitenerstellung mit HTML und CSS ........................................................................................ 1161
C.17 Webserveranwendungen ..................................................................................................................... 1162
C.18 JavaScript und Ajax ................................................................................................................................ 1162
C.19 Computer- und Netzwerksicherheit ................................................................................................. 1163
Index ........................................................................................................................................................................................... 1165
16
Kapitel 1
Einführung
In der Informatik geht es genauso wenig um Computer
wie in der Astronomie um Teleskope.
– Edsger W. Dijkstra
In diesem Kapitel erhalten Sie einen Überblick über die wichtigsten Grundlagen der
Informationstechnik: eine Abgrenzung der verschiedenen Fachrichtungen und Aus-
bildungsgänge der Informatik, die Entwicklungsgeschichte der Computer sowie eine
allgemeine Übersicht über die digitale Speicherung verschiedener Arten von Infor-
mationen.
1.1 Informationstechnik, Informatik und EDV
Allgemein gesprochen geht es in diesem Buch um Informationstechnik (englisch: in-
formation technology oder kurz IT). Der traditionelle Begriff für diese Art der Technik
lautet elektronische Datenverarbeitung (EDV). Daten oder Informationen sind Werte,
die im Zusammenhang mit beliebigen Sachverhalten angelegt werden oder die im
Rahmen von Mess- oder Rechenvorgängen anfallen. Datenverarbeitung ist der Vor-
gang der Sammlung, Speicherung und Manipulation dieser Informationen. Im Lauf
der Zeit haben sich unterschiedliche Verfahren der Datenverarbeitung entwickelt:
Arten der Daten-
verarbeitung
� Die manuelle Datenverarbeitung führt Berechnungen und Datenmanipulationen
ohne jegliche Hilfsmittel durch; sie basiert auf Kopfrechnen und Auswendigler-
nen. Das äußerste erlaubte Hilfsmittel ist ein Schreibblock, um Daten oder Zwi-
schenergebnisse zu notieren.
� Die mechanische Datenverarbeitung verwendet mechanische Hilfsmittel für die
Verarbeitung von Informationen, beispielsweise eine mechanische Schreibma-
schine oder einen Rechenschieber.
� Bei der elektrischen Datenverarbeitung werden elektrisch betriebene Geräte als
Hilfsmittel eingesetzt, zum Beispiel elektrische Schreibmaschinen oder klassische
Registrierkassen.
� Die elektronische Datenverarbeitung verwendet schließlich elektronisch gesteu-
erte Arbeitsmittel, also Elektronenrechner oder Computer.
25
1 Einführung
1.1.1 Fachrichtungen der Informatik
Die wissenschaftliche Fachrichtung, die sich mit den verschiedenen Aspekten der
Computertechnik auseinandersetzt, wird seit den 60er-Jahren des 20. Jahrhunderts
als Informatik (englisch: computer science) bezeichnet; es handelt sich um ein Kunst-
wort aus Information und Mathematik. Die akademische Informatik wird üblicher-
weise in vier Fachrichtungen unterteilt:
� Die theoretische Informatik betrachtet insbesondere die mathematisch-logischen
Grundlagen, die der Verwendung und Programmierung von Computern zugrunde
liegen. Es geht beispielsweise um die Berechenbarkeit (ist ein Problem überhaupt
durch Berechnung lösbar?) und um Automatentheorien – die mathematisch-for-
malen Modelle, auf denen Rechner unabhängig von der elektronischen Machbar-
keit aufbauen.
� Die technische Informatik beschreibt die elektronisch-technischen Eigenschaften
der Bauteile, aus denen Computer zusammengesetzt sind. Ein wichtiges Teilgebiet
der technischen Informatik ist die Schaltalgebra, die Umsetzung logischer Opera-
tionen durch elektronische Schaltungen.
� In der praktischen Informatik geht es im Großen und Ganzen um die Programmie-
rung von Computern und die Mittel, die dazu erforderlich sind. Die Erforschung
des Aufbaus von Betriebssystemen und Programmiersprachen-Compilern sowie
deren Implementierung (praktische Umsetzung) sind die wichtigsten Teilgebiete.
� Die angewandte Informatik kümmert sich gewissermaßen um alles andere, näm-
lich um sämtliche Nutzanwendungen von Computern. Das reicht von Datenban-
ken über die Netzwerkkommunikation bis hin zu Grafik, Animation und Audio-/
Videobearbeitung.
Da es sich bei diesem Buch um ein Praxisbuch handelt, das nicht für das trockene
Auswendiglernen von Lehrsätzen geschrieben wurde, sondern für die alltägliche
Nutzung von Computern, ist es kaum verwunderlich, dass sich fast alle Kapitel mit
Aspekten der angewandten Informatik beschäftigen. In den Kapiteln 5 bis 10 werden
auch die wichtigsten Ansätze der praktischen Informatik, nämlich Betriebssysteme
und diverse Themen der Programmierung, behandelt.
Einige grundlegende Aspekte der theoretischen Informatik lernen Sie in Kapitel 2,
»Mathematische und technische Grundlagen«, kennen: Dort werden die wichtigsten
mathematischen und logischen Operationen besprochen, die Computer ausführen.
Außerdem wird beispielhaft auf die Realisierung einiger dieser Funktionen durch
elektronische Bauteile eingegangen, also auf einige Ansätze der technischen Infor-
matik.
Im Übrigen gibt es noch ein eigenes Kapitel zum Thema Hardware, die ebenfalls dem
Gebiet der technischen Informatik zugeordnet werden kann: Kapitel 3, »Hardware«.
26
1.1 Informationstechnik, Informatik und EDV
1.1.2 Überblick über die IT-Ausbildung
Das Berufsfeld der Informationstechnik ist vielfältig. Deshalb gibt es zahlreiche
unterschiedliche Möglichkeiten einer Ausbildung in diesem Bereich. Sie lassen sich
zum einen nach Fachgebieten wie Anwendungsentwicklung, Systemintegration
oder kaufmännischem EDV-Einsatz unterscheiden. Zum anderen gibt es zwei grund-
legende Ausbildungsformen: Berufsausbildung und Studium.
Überblick Aus-
bildungsgänge
Aus diesen beiden Unterteilungen ergeben sich unter anderem folgende konkrete
Ausbildungsgänge:
� Ausbildungsberufe
– Fachinformatiker/in mit den Fachrichtungen Anwendungsentwicklung und
Systemintegration
– IT-Systemelektroniker/in
– IT-Systemkaufmann/frau
– Informatikkaufmann/frau
� Studiengänge
– Informatik
– Informatik (FH)
– Wirtschaftsinformatik
– Medieninformatik
– Bioinformatik
– medizinische Informatik
Ausbildungsberufe
Bis etwa Mitte der 90er-Jahre des 20. Jahrhunderts galt die Informationstechnik als
zu komplex, um in einer praxisorientierten Berufsausbildung im klassischen dualen
System (Ausbildungsbetrieb – Berufsschule) gelehrt zu werden. Die beiden angebote-
nen Ausbildungen zum EDV-Kaufmann und Büromaschinenelektroniker hatten
andere Schwerpunkte, nämlich einen kaufmännischen beziehungsweise elektro-
technischen Fokus.
IT-BerufeErst 1996 wurden die IT-Berufe in der Bundesrepublik durch ein Übereinkommen von
Arbeitgeberverbänden und Gewerkschaften unter Beratung des Bundesinstituts für
Berufsbildung (BiBB) neu geordnet. Seitdem gibt es vier verschiedene IT-Ausbildungs-
berufe. Sie bereiten auf Tätigkeiten im Bereich der Informations- und Telekommuni-
kationstechnik vor, die früher Bewerbern mit Studienabschluss vorbehalten waren
oder in Einzelfällen an qualifizierte Quereinsteiger vergeben wurden. Nach 15 Jahren
Erfahrung hat sich das System bewährt, und ein signifikanter Anteil von Mitarbeitern
in der IT rekrutiert sich aus Absolventen dieser Ausbildungsgänge.
27
1 Einführung
Im Einzelnen handelt es sich um folgende Ausbildungsgänge:
� Fachinformatiker/in (Fachrichtungen Anwendungsentwicklung und System-
integration)
� IT-Systemelektroniker/in
� IT-Systemkaufmann/frau
� Informatikkaufmann/frau
Fach-
informatiker
Aufgabe der Fachinformatiker ist es gemäß offizieller Definition, »fachspezifische
Anforderungen in komplexe Hard- und Softwaresysteme« umzusetzen. Diese recht
ungenaue Beschreibung läuft in der Praxis auf sehr vielfältige Anforderungen hinaus,
da sich nicht nur die beiden Fachrichtungen Anwendungsentwicklung und System-
integration, sondern vor allem auch Ausbildungsbetriebe und Einsatzumgebungen
oft stark voneinander unterscheiden. Gemeinsam ist ihnen allen lediglich der
Umgang mit Computersystemen, mit Netzwerken, mit der unterschiedlichsten Soft-
ware und dem komplexen Zusammenspiel dieser Komponenten. Verallgemeinert
kann man sagen, dass der Ausbildungsgang Anwendungsentwicklung auf den Beruf
des Entwicklers oder Programmierers vorbereitet, während sich aus den Absolventen
der Systemintegration vor allem Systemadministratoren rekrutieren.
Die beiden Berufsbilder sollen sich im Laufe der drei Ausbildungsjahre allmählich
auseinanderentwickeln. Bei Ausbildungsbeginn stehen gemeinsame Grundlagen im
Vordergrund. Dazu gehören nicht nur fachspezifische Themen, wie sie in diesem
Buch behandelt werden, sondern auch wichtige Informationen zum Arbeitsablauf
und zum betrieblichen Umfeld. Dies sind insbesondere Grundlagen der Betriebswirt-
schaftslehre, der Projekt- und Betriebsorganisation, des Arbeits- und Ausbildungs-
rechts sowie der betrieblichen Buchführung. Diese Kenntnisse werden vor allem in
der Berufsschule (60 Tage pro Ausbildungsjahr) vermittelt.
Anwendungs-
entwicklung
Der Schwerpunkt des Fachbereichs Anwendungsentwicklung ist die Erstellung von
Software für den eigenen Betrieb oder für Kunden. Der erste Schritt ist die Entwick-
lung neuer oder die Anpassung vorhandener Programme gemäß den Anforderun-
gen der späteren Anwender. Es folgt die Einrichtung der Software auf den
gewünschten Systemen, die gegebenenfalls dafür angepasst werden müssen.
Anschließend sollen die Benutzer informiert oder gar geschult werden. In das
Umfeld des Berufsbildes gehört demzufolge auch die Erstellung brauchbarer Doku-
mentationen für Entwickler, Administratoren und Endanwender.
System-
integration
Im Fachbereich Systemintegration liegen die Hauptaufgaben im Bereich der Hardware-,
Software- und Netzwerkeinrichtung. Hier sind gute Kenntnisse der verschiedenen
Hardwarekomponenten, Betriebssysteme sowie der Netzwerkgeräte, -dienste und
-protokolle gefragt. Auch die Schnittstellen zwischen der Informations- und der Tele-
kommunikationstechnik spielen in diesem Beruf eine wichtige Rolle. Die Fachinfor-
matiker im Fachbereich Systemintegration müssen das projektorientierte Arbeiten
28
1.1 Informationstechnik, Informatik und EDV
beherrschen und dabei alle Aufgaben planen, durchführen, testen und dokumen-
tieren.
Ein weiteres, sehr wichtiges Arbeitsgebiet ist die Automatisierung administrativer
Aufgaben. Dazu benötigen die Fachinformatiker Systemintegration umfangreiche
Kenntnisse der Shells (Kommandozeileninterpreter) der jeweiligen Betriebssysteme
sowie in verschiedenen Skriptsprachen. Unter Windows beginnt dies mit DOS/Win-
dows-Batch-Dateien und CMD-Dateien; für komplexere Aufgaben sind auch der Win-
dows Scripting Host und die Windows PowerShell nützlich. Im Unix-Bereich ist die
bash-Shell das grundlegende Werkzeug; größere Aufgaben werden dagegen mit Edi-
tor- und Skriptsprachen wie sed, awk und Perl gelöst, wobei Perl die wichtigste dieser
Sprachen ist und bei fortgeschrittenen Kenntnissen alle anderen ersetzen kann. In
Kapitel 6 bis 10 dieses Buches werden die wichtigsten Kenntnisse zu diesen Shells
und Sprachen vermittelt.
IT-System-
elektroniker
Der Beruf des IT-Systemelektronikers ist elektrotechnischer orientiert als der des Fach-
informatikers. Mehr als beim Fachinformatiker der Fachrichtung Systemintegration
liegt der Schwerpunkt hier im Bereich der Hardware. Zu den wichtigsten Aufgaben
gehört die Verkabelung von Computern und Netzwerken, angefangen bei der Strom-
versorgung über den Anschluss von Peripheriegeräten bis hin zu Besonderheiten der
Netzwerkinfrastruktur. Dazu benötigen IT-Systemelektroniker ein umfangreiches
Know-how über Hardwarekomponenten und Treiber sowie über deren Zusammen-
arbeit mit Betriebssystemen und Anwendungsprogrammen. Hinzu kommen Kennt-
nisse über DSL, ISDN und andere Telekommunikationstechniken. Zu den wichtigsten
Arbeitgebern für Systemelektroniker gehören große Telefongesellschaften, sodass
deren spezifische Anforderungen dieses Berufsbild wesentlich geprägt haben.
IT-System-
kaufleute
IT-Systemkaufleute sind im Wesentlichen die Kundenberater für Hard- und Software-
projekte. Sie verfügen über technisches Know-how, sodass sie die Einzelheiten von
IT-Projekten verstehen und den Kunden erklären können, und benötigen umfangrei-
che betriebswirtschaftliche und kaufmännische Kenntnisse, um die Kalkulation für
ein solches Projekt durchführen zu können. Sie sind für alle Phasen der Kundenbe-
treuung für IT-Lösungen zuständig: angefangen bei der Marktanalyse über Beratung
und Marketing bis hin zum Vertrieb sowie zur Einarbeitung und Schulung.
Informatik-
kaufleute
Bei den Informatikkaufleuten stehen die kaufmännischen Aufgaben stärker im Vor-
dergrund, während die technischen Aspekte etwas weniger ausgeprägt sind. Sie bil-
den das Bindeglied zwischen wirtschaftlichen und technischen Abteilungen.
Typischerweise vermitteln sie zwischen den Kunden, die vor allem wirtschaftliche
Fragen haben, und den Beratern der Hard- und Softwarehersteller (oft den zuvor
genannten IT-Systemkaufleuten), die eine eher technische Sicht auf Vorgänge benö-
tigen. Beispielsweise könnten Informatikkaufleute die technische Umsetzung von
Geschäftsprozessen anleiten und entsprechende Pflichtenhefte erstellen. Eine wei-
tere Aufgabe wäre es, die Unterschiede verschiedener IT-Lösungen in kaufmännisch
kalkulierbaren Zahlen auszudrücken.
29
1 Einführung
Alle IT-Ausbildungen – mit Ausnahme zweijähriger Umschulungsmaßnahmen –
beinhalten eine (ausschließlich theoretische) Zwischenprüfung. Es besteht Teilnah-
mepflicht, aber das Ergebnis ist rein informativ – sowohl für die Auszubildenden als
auch für die Betriebe.
Abschluss-
prüfung
Die Abschlussprüfung besteht aus einer selbst gewählten Projektarbeit, die von der
jeweils zuständigen Industrie- und Handelskammer genehmigt werden muss. Ihre
Dauer beträgt bei den Fachinformatikern des Fachbereichs Anwendungsentwicklung
72 Stunden, wobei auch ein Pflichtenheft erstellt werden muss. Bei den anderen Aus-
bildungsgängen beträgt die Dauer lediglich 36 Stunden, und der Projektablauf
beschränkt sich hier auf die vier Phasen Planung, Durchführung, Test und Abnahme.
Innerhalb der veranschlagten Zeit müssen sowohl das Projekt selbst als auch eine
umfangreiche Dokumentation dazu erstellt werden; Letzteres sollte etwa acht Stun-
den der Projektdauer ausmachen. Die Dokumentation wird bei der IHK eingereicht;
zudem müssen die Auszubildenden ihre Projekte dort präsentieren und ein Fachge-
spräch dazu führen. Wichtige Hinweise zum projektorientierten Arbeiten erhalten
Sie in Kapitel 11, »Software-Engineering«.
Die zweite Säule der Abschlussprüfung bildet die bundeseinheitliche schriftliche
Prüfung. Sie besteht aus drei Teilen:
� Zwei ganzheitliche Aufgaben (GA) beschreiben je ein virtuelles IT-Szenario und
stellen sechs komplexe Fragen dazu. Die Auszubildenden müssen eine dieser Fra-
gen, mit deren Thema sie sich am wenigsten auskennen, streichen, und die übri-
gen fünf ausführlich beantworten. Maximal sind dabei für jede beantwortete
Frage 20 Punkte, das heißt insgesamt 100 für jede GA erreichbar. Die GA 1 enthält
fachspezifische Fragen für den jeweiligen Ausbildungsgang, während die GA 2 die
für alle IT-Ausbildungsberufe identische Kernqualifikation abfragt. Für jede GA
sind 90 Minuten angesetzt.
� Der dritte Teil ist eine 60 Minuten dauernde Prüfung zu den Themen Wirtschaft
und Soziales einschließlich Arbeits- und Ausbildungsrecht. Diese Prüfung besteht
aus isolierten Fragen, wobei einige offen, viele dagegen im Multiple-Choice-Ver-
fahren zu beantworten sind.
Andere Aus- und Weiterbildungswege
Neben den IT-Ausbildungsberufen im Dualen System gibt es übrigens auch noch
rein staatlich-schulische Aus- und Weiterbildungswege: die Ausbildung zum Infor-
mationstechnischen Assistenten und die Weiterqualifikation zum Staatlich geprüf-
ten Techniker (FS) für Informatik mit den Fachrichtungen Netzwerktechnik,
Softwaretechnologie und Datenbanktechnologie.
30
1.1 Informationstechnik, Informatik und EDV
Ausbildung und
dieses Buch
In Tabelle 1.1 sehen Sie, welche Kapitel dieses Buches für die Auszubildenden der ein-
zelnen Fachrichtungen besonders nützlich (×) oder unerlässlich (+) sind. Wenn ein
Kapitel für Ihren Beruf nicht angekreuzt wurde, bedeutet dies nicht, dass Sie sich gar
nicht mit diesem Thema beschäftigen sollten! Wie bereits im Vorwort erwähnt, ist
ein möglichst gründliches Allgemeinwissen eine der wichtigsten Voraussetzungen
für den beruflichen Erfolg. Zudem verstehen Sie Zusammenhänge der IT- und Medi-
enwirtschaft umso besser, je größer Ihr Überblick ist.
Die Weiterqualifikation zum Staatlich geprüften Techniker endet mit einem Staats-
examen, das der Meisterprüfung in Handwerksberufen gleichgestellt ist. Die
genauen Regelungen für diese Bildungsgänge sind Ländersache, sodass es gewisse
Abweichungen in Ablauf, Inhalten und Dauer zwischen verschiedenen Bundeslän-
dern gibt.
Kapitel Kurzname Fachinf.Anwend.
Fachinf.System-
int.
Kauf-leute
IT-System-elektro-
niker
1 Einführung + + + +
2 Math. u. techn.
Grundlagen
+ + × +
3 Hardware × + × +
4 Netzwerk + + × +
5 Betriebssystem-
grundlagen
+ + × +
6 Windows + + × +
7 Linux + + × +
8 Mac OS X + + × +
9 Grundlagen der Progr. + + × +
10 Konzepte der Progr. + × ×
11 Software-Engineering + + + +
12 Datenbanken + + × ×
Tabelle 1.1 Die einzelnen Kapitel dieses Buches und ihre Relevanz für die verschiedenen
Ausbildungsberufe
31
1 Einführung
Studiengänge
Die Studiengänge im Bereich der Informationstechnik sind wesentlich gründlicher,
dafür aber auch viel theoretischer orientiert als die betrieblichen Ausbildungsgänge.
Neben den hier behandelten Studienfächern der Informatik gibt es übrigens auch
angrenzende Fachgebiete wie Telematik, Elektrotechnik, Mechatronik oder ange-
wandte Mathematik.1
Informatik Das allgemeinste Spektrum bietet das Studium der Informatik. Das Grundstudium
umfasst Einführungen in alle vier Disziplinen des Faches (theoretische, technische,
praktische und angewandte Informatik). Im Hauptstudium ist dagegen eine Speziali-
sierung auf einen bestimmten Bereich innerhalb eines dieser Zweige vorgesehen.
Denkbar wären etwa Betriebssysteme aus dem Gebiet der praktischen Informatik
oder Datenbanken, die zur angewandten Informatik zählen.
Das Informatikstudium wird sowohl an Universitäten als auch an Fachhochschulen
angeboten. Naturgemäß ist Letzteres etwas praktischer orientiert; das Lernen erfolgt
besonders im Grundstudium schulähnlicher. In beiden Lehreinrichtungen erwerben
Studieneinsteiger seit einigen Jahren nur noch die internationalen Abschlüsse Bache-
13 Webserver × + ×
14 Internet-Server-
dienste
× + ×
15 XML + + × ×
16 Datei- u. Daten-
formate
+ + × ×
17 HTML/CSS + × × ×
18 Webserver-
anwendung
+ ×
19 JavaScript u. Ajax + ×
20 Netzwerksicherheit × + × +
1 Für Fachinformatiker Anwendungsentwicklung ist das gesamte Kapitel relevant, für die anderen
Ausbildungsberufe sind es dagegen vor allem die Ausführungen zum Projektmanagement.
Kapitel Kurzname Fachinf.
Anwend.
Fachinf.
System-int.
Kauf-
leute
IT-System-
elektro-niker
Tabelle 1.1 Die einzelnen Kapitel dieses Buches und ihre Relevanz für die verschiedenen
Ausbildungsberufe (Forts.)
32
1.1 Informationstechnik, Informatik und EDV
lor und Master; die zuvor dominierenden klassischen Diplomabschlüsse laufen zur-
zeit aus.
NebenfächerWie in jedem mathematisch-naturwissenschaftlichen Studium müssen auch bei der
Informatik Nebenfächer belegt werden. Die Auswahl ist so vielfältig, wie es die
Anwendungsbereiche der Informationstechnik sind: Für theoretischer ausgerichtete
Forschungen ist etwa die Mathematik interessant; ein Fach aus dem Bereich der Wirt-
schaftswissenschaften eröffnet den Zugang zur Entwicklung kaufmännischer Sys-
teme und Anwendungen. In diversen Bereichen der angewandten Informatik
könnten auch Fächer wie Biologie oder Physik von Interesse sein. Spannend ist auch
die Kombination mit philologischen Fächern, besonders mit den Sprachwissenschaf-
ten oder der philosophischen Logik.
Umgekehrt kann Informatik auch für Studiengänge in allen genannten Fächern als
Nebenfach belegt werden.
Spezielle
Studiengänge
Einen Schritt weiter als die Wahl eines bestimmten Nebenfaches gehen gezielte Kom-
binationsstudienfächer. Die wichtigsten von ihnen sind folgende:
� Wirtschaftsinformatik: eine gezielte Kombination aus Themen der (insbesondere
angewandten) Informatik und der Betriebswirtschaftslehre. Wirtschaftsinformati-
ker können in allen Bereichen der kaufmännischen IT-Anwendung arbeiten, vor
allem in Banken, Versicherungen oder den Fachabteilungen großer Unterneh-
men, aber auch in der Entwicklung kaufmännischer Softwarelösungen.
� Medieninformatik: Dieser Studiengang stellt den Bereich der multimedialen IT-
Anwendung in den Mittelpunkt. Neben den Grundlagen der Informatik lernen die
Studierenden vor allem den praktischen IT-Einsatz kennen: Grafik- und Bildbear-
beitung, Audio- und Videoschnitt und die Erstellung multimedialer Präsentatio-
nen. Von allen IT-Studiengängen erfordert dieser das größte kreative Potenzial.
� Bioinformatik: Die Forschungsergebnisse der modernen Biologie, besonders der
Mikrobiologie und der Gentechnik, könnten ohne umfangreiche IT-Unterstützung
nicht ausgewertet werden. Bioinformatiker bilden die Schnittstelle zwischen Bio-
logie und Informationstechnik; sie erstellen die Anwendungen zur Analyse biolo-
gischer Forschungen, etwa der Sequenzanalyse von Genen. Die Bioinformatik ist
möglicherweise der wachstumsstärkste Sektor in der gesamten IT-Landschaft.
� Medizinische Informatik: Auch in der modernen Medizin spielt Computertechnik
eine überaus wichtige Rolle – von der Verwaltung der Patienten- und Diagnoseda-
ten über die automatisierte Analyse von Laborproben bis hin zum halbautonom
arbeitenden OP-Roboter ist der Praxis- und Klinikalltag ohne IT nicht mehr denk-
bar. In der medizinischen Informatik erwerben die Studierenden sowohl fundierte
medizinische als auch wichtige informationstechnische Fachkenntnisse, sodass
sie in den verschiedensten Bereichen der Medizintechnik und -praxis arbeiten
können.
33
1 Einführung
Studium und
dieses Buch
Die Tiefe des für ein Studium erforderlichen Wissens geht weit über das hinaus, was
ein einzelnes allgemeines Grundlagenbuch wie das vorliegende leisten kann. Den-
noch kann dieses Buch auch im Studium ein unentbehrlicher Begleiter sein: Hier
können Sie die Grundlagen der Theorie und Praxis der unterschiedlichen Themen
schnell und übersichtlich nachschlagen – als letzte Absicherung vor der entscheiden-
den Fachklausur oder auch als Anleser für die Veranstaltungsplanung des kommen-
den Semesters.
1.2 Die Geschichte der Rechenmaschinen und Computer
In diesem Buch ist von Computern die Rede, und natürlich wissen Sie ganz genau,
was das ist. Wenn Sie allerdings den Versuch machen sollten, einen Computer mit
allen Dimensionen seiner heutigen Möglichkeiten griffig zu definieren – wie würde
diese Definition lauten? Vergangene Generationen sprachen etwa von programmge-
steuerten Rechenautomaten, und gerade Fachleute scheinen noch heute lieber »Rech-
ner« als »Computer« zu dieser Maschine zu sagen.
Sind Computer
nur Rechner?
Aber ist Rechnen heutzutage die wichtigste Aufgabe der Computer? Es scheinen
schließlich mehr Leute einen Webbrowser zu verwenden als die Tabellenkalkulation
Excel, und das Bildbearbeitungsprogramm Photoshop ist erheblich populärer als
spezielle Mathematiksoftware wie Mathematica oder Maple.
Trotzdem ist ein Computer ein Gerät, das Probleme durch Berechnungen löst: Er
kann nur diejenigen Sachverhalte »verstehen«, die man in Form von Zahlen und
mathematischen Formeln darstellen kann. Dass es sich dabei heute auch um Bilder,
Töne, Animationen, 3D-Welten oder Filme handeln kann, liegt einfach an der enor-
men Rechengeschwindigkeit und Kapazität moderner Rechner.
Sehen Sie sich den Begriff programmgesteuerter Rechenautomat noch einmal genau
an: Ein Rechenautomat ist ein Gerät, das automatisch etwas berechnet, sodass man
dies nicht manuell erledigen muss. Das kann auch ein Taschenrechner oder sogar
eine mechanische Rechenmaschine. Das Besondere, was ein Computer zu bieten hat,
beschreibt der Begriff programmgesteuert. Ein Computerprogramm ist eine Abfolge
von Rechenvorschriften, die aufeinander aufbauen können und Schritt für Schritt
ausgeführt werden.
Algorithmen Mit anderen Worten ist ein Computer nicht nur ein Rechenautomat, sondern ein
Algorithmen-Automat. Ein Algorithmus, benannt nach dem arabischen Mathemati-
ker Mohamed Ibn Musa Al Chwarismi, ist eine Schritt-für-Schritt-Anleitung zum
Lösen mathematischer Probleme. Jeder Computer versteht eine oder mehrere for-
male Sprachen, in denen man ihm solche Algorithmen einprogrammieren kann. Ist
ein Algorithmus erst einmal im Computer gespeichert, kann er immer wieder mit
anderen Daten ausgeführt werden. Betrachten Sie etwa den folgenden Algorithmus
34
1.2 Die Geschichte der Rechenmaschinen und Computer
aus dem Alltagsleben, der die Internet-Nutzungskosten verschiedener Kunden eines
Providers berechnet:
1. Eingabe Tarif: Flatrate oder minutenbasiert?
2. War es die Flatrate? Macht 19,99 €. Berechnung beendet.
3. Minutenbasiert: Eingabe der Minuten
4. Multipliziere die Minuten mit 0,01 €.
5. Addiere die Grundgebühr von 2,49 € hinzu. Berechnung beendet.
Dieser einfache Algorithmus kann natürlich ohne Weiteres von einem Menschen
abgearbeitet werden. Er wird zwar langsamer rechnen als ein heutiger Computer,
aber durchaus innerhalb einer annehmbaren Zeit damit fertig werden. Andererseits
kann der Computer Millionen solcher Berechnungen in der Sekunde ausführen. Zwar
wird er gewisse Leistungen des menschlichen Geistes wahrscheinlich niemals errei-
chen, aber schneller rechnen kann er allemal.
Darüber hinaus gibt es Algorithmen, an denen wir Menschen schlichtweg verzwei-
feln würden – oder hätten Sie Lust, jedes einzelne Pixel eines 10 × 10 cm großen hoch-
auflösenden Bildes anhand der Farben seiner acht umgebenden Pixel neu zu
berechnen, um das Bild zu vergrößern oder zu verkleinern? Ohne Sie entmutigen zu
wollen: Ein solches Bild besteht, wenn es für den Druck geeignet sein soll, aus etwa
1.392.400 Pixeln – viel Spaß beim Rechnen!2
So macht der Computer sich selbst immer unentbehrlicher: Sobald Computersys-
teme eine gewisse Komplexität erreichen, wird eine Anwendung erfunden, die ohne
sie nicht zu bearbeiten wäre. Um diese Anwendung dann schneller und effizienter
ausführen zu können, entsteht die nächste Computergeneration, für die dann wieder
neue Anwendungsgebiete gefunden werden. Auf diese Weise ist der Fortschritt in der
Computerentwicklung nicht aufzuhalten, und was auch immer als unüberwindbare
Grenze galt, wurde von cleveren Ingenieuren irgendwann überschritten. Der vorlie-
gende Abschnitt versucht, diesen Weg ein wenig konkreter zu beschreiben.
1.2.1 Die Vorgeschichte
Seit Menschen überhaupt sesshaft in größeren Gemeinschaften zusammenleben,
sind sie zum Rechnen gezwungen, um diese Gemeinschaften zu organisieren. Zu die-
sem Zweck wurden im Laufe der Zeit immer komplexere und ausgeklügeltere Geräte
erfunden.
Das erste Rechenhilfsmittel in der Geschichte war die Rechentafel oder der Abakus.
Ähnliche Geräte wurden unabhängig voneinander zum Beispiel in China und im
2 Zugrunde gelegt wurde hier die gängige Druckauflösung von 300 Pixeln/Inch, was etwa
118 Pixeln/cm entspricht (1 Inch = 2,54 cm).
35
1 Einführung
alten Rom entwickelt. Es handelte sich um eine Tafel mit verschiebbaren Steinen, die
in mehreren Spalten angeordnet waren. Das Ganze ähnelte den heutigen kugelbe-
stückten Rechenhilfen, wie sie etwa in Grundschulen eingesetzt werden. Interessant
ist, dass die Römer gar nicht erst versuchten, ihr recht umständliches Zahlensystem
auf den Abakus zu übertragen, sondern ein modernes Stellenwertsystem darauf ver-
wendeten.
Stellenwert-
systeme
Überhaupt kann die Erfindung der Stellenwertsysteme zum Schreiben von Zahlen als
eine der wichtigsten Errungenschaften auf dem Weg zum Computer betrachtet wer-
den: Die brillante Idee, den Wert einer Ziffer von ihrer Position innerhalb der ganzen
Zahl abhängig zu machen, hatten die Inder; die heutigen »arabischen« Zahlen wur-
den in Indien erfunden und später von den Arabern – erstmals durch den bereits
genannten Al Chwarismi im 9. Jahrhundert – übernommen. Die wichtigste Erfindung
überhaupt ist in diesem Zusammenhang die Null. Die indischen Mathematiker
notierten sie zunächst als Punkt und dann bis heute als Kreis. Ohne die Null ist es
nicht möglich, den Wert einer einzelnen Ziffer zu vervielfachen: Auch wenn sie für
sich allein keinen mathematischen Wert besitzt, werden Sie zugeben, dass 2.000
etwas völlig anderes bedeutet als 2.
Die Erfindung der Stellenwertsysteme war der Ausgangspunkt für die Konstruktion
immer ausgefeilterer mechanischer Rechenmaschinen: Im 17. Jahrhundert konstru-
ierte der französische Mathematiker und Philosoph Blaise Pascal eine Addierma-
schine, 1722 erfand Gottfried Wilhelm Leibniz eine komplexere Maschine, die bereits
sämtliche Grundrechenarten beherrschte. Solche mechanischen Rechenapparaturen
arbeiteten mit einem komplexen Gefüge aus Zahnrädern und ähnlichen Bauteilen,
die aus der Uhrmacherei übernommen wurden.
Babbages
Analytical Engine
Erst im 19. Jahrhundert entstand die Idee zu einer Apparatur, die mit heutigen Compu-
tern vergleichbar ist. Der britische Wissenschaftler Charles Babbage hatte bereits eine
klassische mechanische Rechenmaschine namens Differential Engine gebaut und
plante um 1850 den Bau eines weiteren mechanischen Geräts namens Analytical
Engine. Es sollte der erste frei programmierbare Rechenautomat der Welt werden.
Ohne es zu ahnen, nahm Babbage einige der wichtigsten Designprinzipien des Com-
puters vorweg: Das Gerät sollte aus einem Rechenwerk namens mill, einem Programm-
und Datenspeicher und einer Ein- und Ausgabeeinheit bestehen. Auch wenn spätere
Rekonstruktionen auf der Basis von Babbages Aufzeichnungen ergaben, dass die
Maschine funktioniert hätte, war Babbage selbst nicht in der Lage, sie fertigzustellen,
weil die damalige Mechanik keine Bauteile in ausreichender Präzision liefern konnte.
Interessant ist dagegen, dass es Grundideen einer Programmiersprache für die Ana-
lytical Engine gab. Babbage engagierte Ada Lovelace, die Tochter des berühmten
Dichters Lord Byron, für die Entwicklung einer solchen Sprache. Ihr zu Ehren wurde
eine in den 70er-Jahren des 20. Jahrhunderts entwickelte Programmiersprache Ada
genannt.
36
1.2 Die Geschichte der Rechenmaschinen und Computer
Die Zuse Z3Während die Rechenmaschinen in der zweiten Hälfte des 19. Jahrhunderts immer
leistungsfähiger und komplexer wurden, beachtete dennoch niemand den Gedanken
der Programmierbarkeit. Alle Rechenmaschinen bis etwa 1940, auch die elektrischen,
waren auf die Berechnung einzelner eingegebener Rechenaufgaben beschränkt. Erst
um diese Zeit erfand der Bauingenieur Konrad Zuse in Berlin programmierbare elek-
tromechanische Rechenautomaten. Sein dritter Versuch, die Z3, funktionierte tat-
sächlich. Die Maschine arbeitete mit Relais, elektromagnetischen Schaltern aus der
Telefontechnik. Sie verwendete eine binäre Fließkommaarithmetik mit einer Wort-
breite von 22 Bit: 1 Bit für das Vorzeichen, 14 Bit für die Mantisse und 7 Bit für den
Exponenten. Der Hauptspeicher besaß eine Kapazität von 64 Maschinenwörtern, also
64 × 22 Bit. Programmiert wurde die Maschine (und einige ihrer Nachfolger) in einer
von Zuse entwickelten Sprache namens Plankalkül.
1.2.2 Die Entwicklung der elektronischen Rechner
Computer im heutigen Sinne sind alle programmierbaren Rechner, die elektronisch
arbeiten. Die elektronischen Computer lassen sich grob in vier Generationen eintei-
len:
� 1. Generation: Röhrenrechner
Ab den 40er-Jahren wurden Rechner auf der Basis von Elektronenröhren ent-
wickelt.
Elektrizität, Elektromechanik und Elektronik
Bereits Anfang des 20. Jahrhunderts wurden die ersten elektrischen Rechenmaschi-
nen konstruiert. Die Rechner, die Konrad Zuse ab den 30er-Jahren baute, waren
elektromechanisch. In den 40er-Jahren begann man in den USA und Großbritannien
mit der Entwicklung elektronischer Rechner.
In diesem Zusammenhang ist es wichtig, den Unterschied zwischen Elektrizität,
Elektromechanik und Elektronik herauszustellen:
� Ein elektrisches Gerät ist jede Maschine, bei der mechanische Bauteile durch elek-
trischen Strom angetrieben werden.
� Elektromechanisch werden alle Schaltelemente genannt, die durch einen Elektro-
magneten gesteuert werden, beispielsweise die Relais, die Zuse für seine ersten
Computer verwendete. Mit anderen Worten geschieht die Steuerung des Geräts
durch elektrischen Strom, allerdings indirekt durch mechanische beziehungs-
weise magnetische Bauteile.
� Elektronische Geräte schließlich werden allein durch elektrischen Strom gesteu-
ert – Bauteile wie die klassische Elektronenröhre oder der neuere Transistor die-
nen als elektrisch gesteuerte Schalter ohne mechanische Teile.
37
1 Einführung
� 2. Generation: Transistorrechner
Ab den 50er-Jahren wurden die teuren, stromhungrigen und störungsanfälligen
Röhren durch Transistoren ersetzt.
� 3. Generation: Rechner mit integrierten Schaltkreisen
In den 60er-Jahren gelang es, durch fotolithografische Verfahren große Mengen
von Transistorschaltungen auf Halbleiterplatten unterzubringen – es begann die
Entwicklung der integrierten Schaltkreise (englisch: integrated circuits, abgekürzt
ICs, auch Chips genannt).
� 4. Generation: Rechner mit Mikroprozessor
Die frühen ICs waren fest verdrahtet – sie konnten nur eine einzelne, festgelegte
Aufgabe erfüllen. Solche Chips für spezielle Anwendungszwecke gibt es noch
heute. Anfang der 70er-Jahre wurden zusätzlich frei programmierbare ICs entwi-
ckelt, die man Mikroprozessoren nannte. Es dauerte allerdings noch über fünf
Jahre, bis die ersten Computer mit diesen Prozessoren konstruiert wurden.
Abbildung 1.1 Eine kleine Auswahl verschiedener Elektronenröhren
Röhrenrechner
Auf der Grundlage der Forschungen von John von Neumann, der das theoretische
Modell eines Computers formulierte, wurden in den USA Geräte wie Harvard Mark I
und Mark II oder der berühmte ENIAC gebaut. Diese erste Generation elektronischer
Computer arbeitete mit Elektronenröhren als Schaltelementen. Diese mit den Glüh-
lampen verwandten Vakuumbauteile wurden ab Ende des 19. Jahrhunderts entwi-
ckelt und dienten verschiedenen Zwecken – denken Sie beispielsweise an das
Röhrenradio, in dem die Elektronenröhre als Verstärkerelement eingesetzt wird.
38
1.2 Die Geschichte der Rechenmaschinen und Computer
Abbildung 1.1 zeigt eine Auswahl verschiedener Elektronenröhren, die zwischen 1927
und 1960 hergestellt wurden. Das Bild stammt übrigens aus dem virtuellen Physik-
museum der Universität Innsbruck (http://exphys.uibk.ac.at/museum/); Herr Profes-
sor Denoth stellte es mir freundlicherweise zur Verfügung. Auf der angegebenen
Website finden Sie noch viele weitere interessante Bilder und Informationen zur
Physikgeschichte, darunter auch weitere Röhren, die ab 1870 entwickelt wurden.
Das für die Computertechnik interessanteste Röhrenmodell war die Triode, die mit
ihren drei Anschlüssen die früheste Verwirklichung eines rein elektronischen Schal-
ters darstellt: Einer der drei Anschlüsse dient der Steuerung; wenn dort Spannung
anliegt, fließt Strom durch die beiden anderen Anschlüsse.
Programmiert wurden die meisten Röhrenrechner durch Schalter und Steckverbin-
dungen an großen Schalttafeln. Die einzige Möglichkeit, ein bestimmtes Programm
für die spätere erneute Ausführung zu »speichern«, bestand darin, den Zustand der
Schalttafel aufzumalen oder zu fotografieren. So dauerte es oft mehrere Stunden,
den Computer in die Lage zu versetzen, komplexe Aufgaben zu erfüllen.
Erst allmählich begann man mit der Verwendung von Lochkarten zur Programm-
und Dateneingabe. Die Lochkarte selbst wurde im 19. Jahrhundert erfunden, um
mechanische Webstühle zu steuern. Der Ingenieur Hermann Hollerith, ein Mitbe-
gründer der späteren IBM, setzte sie um 1900 zur Speicherung von Daten einer US-
Volkszählung ein, was die Dauer der Ergebnisberechnung mithilfe von Rechenma-
schinen von den erwarteten Jahren auf wenige Wochen reduzierte.
Transistorrechner
Röhrenrechner hatten einige gravierende Nachteile: Sie waren zu groß, zu strom-
hungrig und wegen der gewaltigen Hitzeentwicklung zu störanfällig. Aus diesen
Gründen wurde bald der 1947 erfundene Transistor für die Computerentwicklung
eingesetzt. Transistoren sind Halbleiterbauteile, die prinzipiell dieselben Schaltaufga-
ben erledigen können wie die verschiedenen Arten von Röhren, aber kleiner, billiger
und weniger stromhungrig sind. Der Begriff Halbleiter, der im Zusammenhang mit
Computern immer wieder genannt wird, bezeichnet übrigens ein Material, dessen
elektrische Leitungsfähigkeit etwa in der Mitte zwischen den Leitern (vielen Metal-
len) und Isolatoren liegt. Das beliebteste chemische Element zur Fertigung von Halb-
leiterbauteilen ist Silizium, was der berühmten Gegend in Kalifornien, in der sich in
den 60er-Jahren zahlreiche Elektronikfirmen ansiedelten, den Namen Silicon Valley
eingebracht hat.
Miniaturisierung
durch
Transistoren
Erst durch die Einführung des Transistors gelangte die Elektronik zu ihrer vollen
Blüte. Dies zeigte sich vor allem an den Transistorradios, die ab den 50er-Jahren
zuhauf verkauft wurden. Auch für die entstehende Computerindustrie ergaben sich
neue Impulse: Durch die Transistortechnik ließen sich kleinere, leistungsfähigere
39
1 Einführung
und weniger störanfällige Rechner konstruieren. Natürlich ist »klein« und »leis-
tungsfähig« relativ. Angesichts eines heutigen PCs oder gar Notebooks waren auch
die Transistorrechner monströs, mindestens jedoch so groß wie eine ganze Reihe
gewaltiger Kleiderschränke.
Auch die Transistorrechner wurden anfangs vor allem durch Lochkarten gesteuert.
Mitte der 60er-Jahre begann man allerdings mit der Entwicklung von Terminals für den
direkten Dialog mit dem Computer. Ein Programmierer konnte über eine Tastatur
Befehle eingeben und ein unmittelbares Feedback erhalten, anfangs über einen Fern-
schreiber-Endlosdrucker, später über einen Monitor. Die Geschichte der Steuerung
von Computern wird in Kapitel 5, »Betriebssystemgrundlagen«, genauer behandelt.
Abbildung 1.2 Eine VAX von Digital Equipment mit Terminals verschiedener Generationen
(Quelle: Wikipedia)
Computer mit integrierten Schaltkreisen
Der Übergang von Transistorrechnern zu Computern mit ICs verlief unspektakulär
und allmählich. Bereits in den frühen 70er-Jahren waren deshalb Computer in ver-
schiedenen Größen verfügbar: Die Großrechner oder Mainframes – vor allem von
IBM produziert – bildeten die Rechenzentren von großen Behörden, Versicherungs-
konzernen oder Universitäten. Daneben kamen die sogenannten Kleincomputer auf
(noch immer größer als die meisten Kleiderschränke); einer der führenden Hersteller
war die Digital Equipment Corporation (DEC). Die Kleincomputer waren zwar nicht
ganz so leistungsfähig wie Mainframes, dafür aber flexibler und sogar – mit entspre-
chend großen Lkws – transportfähig. Besonders wichtige Beispiele für Kleincompu-
ter sind die Geräte der DEC-PDP-Baureihe, die untrennbar mit der Geschichte des
Betriebssystems Unix verknüpft ist.
40
1.2 Die Geschichte der Rechenmaschinen und Computer
Durch die Verwendung von ICs kam eine weitere Klasse von Geräten hinzu: die soge-
nannten Minicomputer. Sie waren etwa so groß wie eine größere Kommode und ver-
hältnismäßig leicht, aber durch die fortschreitende Miniaturisierung nicht viel
weniger leistungsfähig als Kleincomputer. Ein herausragendes Beispiel für den Mini-
computer sind spätere Ausgaben der ebenfalls von DEC stammenden VAX-Baureihe
(ein älteres Modell sehen Sie in Abbildung 1.2.).
Für Klein- und Minicomputer wurden übrigens die ersten standardisierten Betriebs-
systeme und Anwendungsprogramme entwickelt. Dies erforderte die Entwicklung
leicht kopierbarer Speichermedien. Ein wichtiger Schritt in diese Richtung war die
Verwendung von Magnetbandspulen als Datenspeicher; ihr Aussehen und ihre
Funktionsweise entsprachen den etwa zur selben Zeit verbreiteten Tonbändern.
Mikrocomputer
1971 wurde der erste programmierbare Mikrochip entwickelt, genannt Mikroprozes-
sor. Allgemein wird der Intel 4004 als erster Prozessor betrachtet; später stellte sich
aber heraus, dass ein anderes Unternehmen bereits einige Monate vor Intel einen ähn-
lichen Chip entwickelt hatte. Allerdings wussten die Intel-Entwickler nichts davon.
Der 4004 war ein 4-Bit-Mikroprozessor. Er konnte also Informationen verarbeiten,
die aus einer Abfolge von vier Einsen oder Nullen bestanden. Mit dieser Wortbreite
lassen sich sechzehn verschiedene Werte darstellen, zum Beispiel die Zahlen 0 bis 15.
Der Prozessor verstand verschiedene Arten von grundlegenden Befehlen: Er
beherrschte arithmetische Operationen, also Berechnungen in den Grundrechenar-
ten, und konnte logische Verknüpfungen und Vergleiche durchführen und auf der
Basis ihrer Ergebnisse die »Entscheidung« treffen, an einer anderen Stelle im Pro-
gramm fortzufahren. Die mathematisch-logischen Grundlagen und ihre Verwirkli-
chung durch elektronische Bauteile werden im nächsten Kapitel, »Mathematische
und technische Grundlagen«, vorgestellt.
Die ersten
Personal
Computer
Intel unterschätzte zu Anfang die Möglichkeiten des Mikroprozessors; er wurde in
Rechenmaschinen und Ampelanlagen eingebaut, aber nicht in einen Computer. Erst
1975 baute die Rechenmaschinenfirma MITS einen einfachen Mikrocomputer-Bau-
satz, den Altair 8800. Er war mit einer Reihe von DIP-Schaltern für die Eingabe der
einzelnen Bits und einer Reihe von Leuchtdioden zur Anzeige der Ergebnisse ausge-
stattet. Der verwendete Mikroprozessor war der Intel 8080, der bereits 8 Bit verarbei-
ten konnte. Für dieses zunächst nicht besonders nützliche Gerät entwarfen Bastler
Schnittstellen für Monitor und Tastatur, und ein junger Programmierenthusiast
schrieb einen Interpreter (zeilenweisen Übersetzer) für die einfache Großrechner-
Programmiersprache BASIC, der auf dem Gerät lief. Der Programmierer war Bill
Gates. Die Entwicklung von Programmiersprachen-Paketen für die beginnende Per-
sonal- und Homecomputer-Industrie war das erste Geschäftsfeld seiner 1976 gegrün-
deten Firma Microsoft.
41
1 Einführung
Große Verdienste im Zusammenhang mit der PC-Entwicklung haben übrigens die
Forscherinnen und Forscher des Xerox PARC (der Name PARC steht für »Palo Alto
Research Center«). Diese Forschungseinrichtung in Kalifornien hat eine interessante
Geschichte: Zu Beginn der 70er-Jahre bekamen die Manager der renommierten
Papier-, Druckmaschinen- und Kopiererfirma Xerox langsam Angst, denn sie sahen
angesichts der schnellen Weiterentwicklung der Computer das Schreckgespenst des
»papierlosen Büros« auf sich zukommen. Natürlich weiß man es heute besser; der
Papierverbrauch in den Büros hat sich seitdem vervielfacht, weil es einfach und billig
ist, Dokumente mal eben auszudrucken und dann auf Papier zu kontrollieren.
Aber damals konnte das natürlich niemand ahnen. Und so beschloss die Firma
Xerox: Wenn die Leute im Büro kein Papier mehr brauchen, dann müssen wir ihnen
eben das liefern, was sie stattdessen dort benötigen. Dies war der Grundgedanke für
die Einrichtung dieses Forscherparadieses. Einige der brillantesten Köpfe der Com-
putertechnik und Informatik wurden eingeladen, jeweils fünf Jahre lang, mit fast
unbegrenzten finanziellen Mitteln ausgestattet, zu erforschen, was immer sie woll-
ten. So kam es, dass hier schon Mitte der 70er-Jahre Neuerungen wie eine grafische
Benutzeroberfläche, die Dokumentenbearbeitung nach dem Prinzip WYSIWYG
(»What You See Is What You Get«) oder ein Laserdrucker entwickelt wurden.
Im Prinzip existierte dort ein marktreifes Personal-Computer-System, dessen techni-
sche Fähigkeiten erst über 15 Jahre später zum allgemeinen Standard wurden. Der
einzige Nachteil dieses Systems, des Alto, war sein außerordentlich hoher Preis von
ca. 100.000 US-Dollar. Jedenfalls wurde Xerox PARC so auch die Wiege des lokalen
Netzwerks: Die Vision war, dass jeder Mitarbeiter eines Unternehmens ein solches
Gerät auf seinem Schreibtisch stehen hat und der Austausch von Daten ganz einfach
ist. So entstand Ethernet, diejenige Form des lokalen Netzes, die heute – neben dem
drahtlosen WLAN – am häufigsten genutzt wird.
Sollten Sie sich jetzt wundern, warum keine dieser bahnbrechenden Entwicklungen
heute den Namen Xerox trägt, so liegt dies daran, dass die Führungsetage des Unter-
nehmens im fernen New York deren Brillanz und zukunftsweisende Eigenschaften
nicht erkannte. So wurden die Entwicklungsergebnisse der meisten Forscher von die-
sen mitgenommen, jahrelang in die Schublade gelegt und später oftmals zur Grün-
dung anderer Firmen verwendet.
John Warnock etwa, eine Zeit lang Forschungsleiter von PARC, gründete die Firma
Adobe und konzentrierte sich besonders auf die Bereiche WYSIWYG und den Laser-
drucker. Andere Ergebnisse wurden freimütig an Fremde weitergegeben, so etwa die
Geheimnisse der grafischen Oberfläche an den Apple-Mitbegründer Steve Jobs, der
darin die Grundlage für den Computer der Zukunft erkannte. Zusammen mit dem
Bastelgenie Steve Wozniak entwarf er den ersten verbreiteten »richtigen« Personal
Computer auf Mikroprozessorbasis: Apple II hieß das 1977 entstandene Gerät, das
42
1.2 Die Geschichte der Rechenmaschinen und Computer
sich in seinen verschiedenen Versionen bis 1984 Millionen Mal verkaufte. Dieser
Computer definierte für fast zehn Jahre, was ein Homecomputer haben musste:
einen eingebauten BASIC-Interpreter, eine fest in das Gerät integrierte Tastatur,
gewöhnliche Audiokassetten und später Disketten als Datenspeicher sowie einen
Anschluss für die Bildausgabe auf einem gewöhnlichen Fernseher (die privaten
Anwender oder kleine Unternehmen konnten sich nicht auch noch einen Monitor
leisten, zumal es diesen zu dem Zeitpunkt nur einfarbig gegeben hätte).
Der IBM-PC1981 stieg auch der Großrechner-Multi IBM in das Geschäft mit Personal Computern
ein. Es war zwar untypisch für dieses Unternehmen, nicht alle Bauteile eines Compu-
ters selbst zu entwickeln, aber aus Gründen des Zeitdrucks kauften sie sich die
Bestandteile ihres Geräts auf dem freien Markt zusammen. Der IBM-PC war nicht
unbedingt besser als seine Vorgänger, aber allein der gute Name des Herstellers schuf
das Vertrauen der Wirtschaft und der Industrie, dass PCs eine solide und zukunfts-
trächtige Technologie seien.
Einige Jahre war IBM Marktführer im Bereich der Personal Computer. Da jedoch
immer mehr Hersteller kompatible Nachbauten auf den Markt brachten, die zuneh-
mend billiger wurden, verlor der Konzern irgendwann den ersten Platz. Zudem zer-
stritten sie sich 1990 mit ihrem Betriebssystemlieferanten Microsoft. Seitdem wurde
nicht mehr von IBM definiert, wie ein »richtiger PC« auszusehen hat, sondern von
Intel und Microsoft – wegen der Kombination aus Intel-Prozessoren und Microsoft-
Windows-Betriebssystemen wurden PCs in den 90er-Jahren mitunter als WinTel-PCs
bezeichnet.
8-Bit-Home-
computer
Parallel blühte in der ersten Hälfte der 80er-Jahre der Markt mit reinen Homecompu-
tern ohne professionelle Ambitionen. Interessant war auf diesem Gebiet zunächst
der ZX81 (siehe Abbildung 1.3), den der Brite Clive Sinclair entwickelt hatte. Trotz sei-
ner bescheidenen Ausstattung mit 1 KByte Arbeitsspeicher, Schwarz-Weiß-Grafik
und Folientastatur verkaufte sich das Gerät vorzüglich, weil es der erste Computer
war, der weniger als 100 £ (damals etwa 400 DM, also ca. 200 €) kostete.
Der beliebteste Homecomputer der 8-Bit-Generation wurde allerdings der 1983 auf
den Markt gebrachte Commodore C64. Eines der wichtigsten Verkaufsargumente war
die reichhaltige Auswahl an Software, vor allem Computerspielen. In Abbildung 1.4
wird dieses Gerät gezeigt. Ein nicht ganz so beliebtes, aber durchaus konkurrenzfähi-
ges Gerät war der Atari 800 XL; für diesen gab es zwar weniger Spiele, aber dafür war
er besser programmierbar. Die Unterschiede zwischen diesen beiden Geräten waren
allerdings relativ gering. Beide waren mit dem 8-Bit-Prozessor 6502 von MosTek aus-
gestattet, verfügten über 64 KByte RAM, eine Grafik mit 320 × 240 Pixeln und 16 Far-
ben (Atari bei einer geringeren Auflösung sogar 256) sowie mehrstimmigen
Synthesizer-Sound, der an das angeschlossene Fernsehgerät übertragen wurde.
Obwohl die beiden Rechner sich also technisch sehr ähnlich waren, tobten zu jener
43
1 Einführung
Zeit »Systemkriege«, die sich ohne Weiteres mit den heutigen PC/Apple- oder Linux/
Windows-»Glaubenskriegen« vergleichen lassen.3
Abbildung 1.3 Der Sinclair ZX81 (Quelle: Wikipedia)
16-Bit-Home-
computer
Die nächste Generation von Homecomputern, die in der zweiten Hälfte der 80er-
Jahre erschien, basierte auf dem 16-Bit-Prozessor 68000 von Motorola und seinen
Nachfolgern und war mit »richtigen« Betriebssystemen mit grafischer Benutzer-
oberfläche ausgestattet. Wieder stritten sich Commodore und Atari um den ersten
Platz; auch die verschiedenen Modelle von Commodore Amiga und Atari ST waren
mit vergleichbaren Features ausgestattet. Schon früher, nämlich 1984, war der ähn-
lich gestaltete Apple Macintosh erschienen; allerdings war er nicht für Heimanwen-
der konzipiert.
Bemerkenswert ist, dass Standard-PCs erst viele Jahre später mit Multimedia-Fähig-
keiten ausgestattet wurden, die auch nur ansatzweise mit Geräten wie Amiga oder ST
vergleichbar waren. Noch heute sind diese Rechner bei manchen Künstlern oder
Musikern beliebt, und zumindest im Fall des Amigas gibt es immer wieder Gerüchte
um eine Wiederbelebung durch verschiedene Firmen.
3 Um mich selbst zu outen: Mein erster eigener Rechner war ein ZX81, dem ein Atari 800 XL folgte.
Später hatte ich dann sehr lange nur noch IBM-kompatible PCs. Inzwischen sind noch ein Mac-
Book und ein Netbook (Samsung NC10) dabei. Sämtliche in diesem Buch beschriebenen Betriebs-
systeme sind auf diesen Rechnern im Einsatz und kommen prima miteinander aus.
44
1.2 Die Geschichte der Rechenmaschinen und Computer
Abbildung 1.4 Commodore C64, der berühmte »Brotkasten« (Quelle: Wikipedia)
32-Bit-RechnerZu Beginn der 90er-Jahre wurden die Home- und Personal Computer nach und nach
mit 32-Bit-Prozessoren ausgestattet. Den Anfang machte der IBM-PC/AT mit Intels
80386-Prozessor, dem wie bei den Vorgängermodellen wieder zahlreiche kompatible
Nachbauten folgten. Apple ersetzte dagegen die Motorola 680xx-Prozessoren der
frühen Macs durch PowerPC-Prozessoren, was die Familie der PowerMacs einleitete.
Bemerkenswerterweise wurde die Macintosh-Prozessorbasis ab 2005 nochmals
gewechselt; statt PowerPC werden nun Intel-Multicore-Prozessoren eingesetzt.
Die Leistungssteigerung der PC- und Mac-Prozessoren sorgte dafür, dass diese Rech-
ner – besonders die günstigeren IBM-kompatiblen PCs – die klassischen Homecom-
puter verdrängten und nach den Büros auch den Heimbereich eroberten. Dazu
wurden insbesondere im Bereich der Multimedia-Fähigkeiten große Fortschritte
erzielt. Ein gewisses Problem bestand allerdings darin, dass die Betriebssysteme der
frühen 90er-Jahre nicht für die modernen 32-Bit-Architekturen ausgelegt waren. 1995
brachte Microsoft mit Windows 95 ein massentaugliches Kompromiss-System auf
den Markt, das zwar noch immer einen MS-DOS-Unterbau besaß, aber innerhalb der
grafischen Oberfläche echtes 32-Bit-Multitasking beherrschte. Erst im Jahr 2001 ver-
abschiedete sich Microsoft mit Windows XP ganz von der MS-DOS-Vergangenheit im
Heimsektor; im selben Jahr erschien die erste Version von Apples Neuentwicklung
Mac OS X.
Beide Systemwelten hatten übrigens viel weniger Schwierigkeiten beim Wechsel von
32- auf die immer weiter verbreiteten 64-Bit-Architekturen, genauso wenig wie das
freie, für viele Plattformen verfügbare Betriebssystem Linux. Näheres zur Geschichte
der Betriebssysteme lesen Sie übrigens in Kapitel 5, »Betriebssystemgrundlagen«.
45
1 Einführung
Ausblick in die nähere Zukunft
Offiziell zählen alle heutigen Computer zur vierten Generation, zu den Computern
mit Mikroprozessoren. Selbst mächtige Servermaschinen oder Großrechner werden
durch zahlreiche parallel betriebene Prozessoren realisiert. Eine offizielle fünfte
Generation ist niemals ausgerufen worden.
Dennoch zeichnen sich zurzeit verschiedene Entwicklungen ab, die in Zukunft zu
einem Wandel auf dem Computermarkt führen könnten. Die wichtigsten sind fol-
gende:
� Es entstehen immer mehr spezielle mobile Geräte, die Teile der Funktion des uni-
versellen PCs übernehmen. Dazu gehören Mobiltelefone mit Internet- und Multi-
media-Funktionen (Smartphones) wie Apples iPhone oder die zahlreichen Google-
Android- und Windows-Phone-Geräte, Tablets (iPad, Samsung Galaxy Tab & Co.),
PDAs oder spezielle Geräte, die wie eine Armbanduhr oder ein Gürtel getragen
werden können oder in Kleidungsstücke eingebaut sind (Wearable Computers). Im
gleichen Maße wird das Internet, besonders in seiner drahtlosen Form, immer
wichtiger.
� Über die klassische binäre Elektronik hinaus entstehen neue Ansätze für den Bau
von Computern. Dazu gehören beispielsweise DNA-basierte »Bio-Rechner« oder
Computer auf der Basis von Lichtwellenleitern – diese auch als Glasfaserkabel
bezeichneten Leitungen transportieren Licht statt elektrischen Stroms und kom-
men bereits seit Langem bei der Datenübertragung zum Einsatz (Kabelfernsehen,
Netzwerke und so weiter). Ein weiteres interessantes Projekt ist der Quantencom-
puter: Da die Quantenmechanik besagt, dass ein Teilchen mehrere Zustände zur
selben Zeit aufweisen kann, können sogenannte QBits (Quanten-Bits) codiert wer-
den, die »1 und 0 gleichzeitig« enthalten – das Durchprobieren zahlreicher ver-
schiedener Fälle muss nicht mehr nacheinander geschehen, sondern kann
gleichzeitig erfolgen.
� Überraschend ruhig ist es dagegen in den letzten Jahren in der Öffentlichkeit um
die »künstliche Intelligenz« geworden. Inzwischen hat sich die Forschung vorläu-
fig von dem Gedanken verabschiedet, das komplexe menschliche Gehirn nachzu-
ahmen. Stattdessen betreibt man erst einmal Grundlagenforschung und simuliert
beispielsweise das Zusammenspiel weniger einzelner Nervenzellen in sogenann-
ten neuronalen Netzen.
1.2.3 Entwicklung der Programmiersprachen
Damit ein Computer nützliche Aufgaben erledigen kann, muss er programmiert wer-
den. Da in der kurzen Übersicht über die Computergeschichte bereits von Program-
miersprachen die Rede war, folgt hier ein kurzer Abriss über deren Entwicklung.
46
1.2 Die Geschichte der Rechenmaschinen und Computer
Die Maschinensprache des Prozessors
Die einzige Sprache, die ein Mikroprozessor wirklich versteht, ist seine Maschinen-
sprache. Sie besteht aus nichts weiter als aus Zahlen: Jeder Befehl, den der Prozessor
»versteht«, besitzt einen bestimmten numerischen Code. Je nach Art des Befehls fol-
gen auf die Befehlsnummer ein oder mehrere Argumente verschiedener Länge.
Ein Maschinenprogramm ist für Menschen so gut wie unlesbar und schon gar nicht
schreibbar. Wenn Sie eine binäre Programmdatei mit einem Texteditor öffnen, wer-
den die gespeicherten Zahlen als Zeichen interpretiert; es erscheint merkwürdiger
Zeichensalat, an manchen Stellen unterbrochen von kleinen Textblöcken, wenn das
Programm normalen Text enthält.
Angenommen, ein Programm enthält den folgenden (fiktiven) Befehl:
65 0 0 0 98
Bei dem Befehl 65 könnte es sich beispielsweise um die Anweisung handeln, einen
bestimmten Wert auf einen Speicherstapel zu legen; der Wert wird als 32-Bit-Ganz-
zahl angegeben, hier 98. Im Texteditor sähe dies etwa so aus:
A b
Das große A besitzt den Zeichencode 65, das kleine b den Code 98. Die drei Null-Bytes
werden in manchen Editoren als merkwürdige Sonderzeichen, in anderen als Leer-
zeichen angezeigt. Ein Rückschluss auf die tatsächlichen Befehle ist so gut wie
unmöglich.
Wenn Sie überhaupt jemals gezwungen sein sollten, Maschinensprachdateien von
Hand zu modifizieren (zum Beispiel, um ein Computerspiel zu überlisten), verwen-
den Sie besser einen Hex-Editor, der die einzelnen Werte nicht nur als ASCII-Zeichen,
sondern zusätzlich hexadezimal darstellt. Hier könnte das Ganze folgendermaßen
aussehen:
41 00 00 00 62 A b
Assembler – die »benutzerfreundliche« Maschinensprache
Um Maschinensprache halbwegs benutzbar zu machen, wurde der Assembler entwi-
ckelt. Statt die Befehle mit ihren tatsächlichen Zahlencodes zu schreiben, werden sie
durch Kürzel dargestellt, die man sich mehr oder weniger gut merken kann – daher
auch der Name »Mnemonics«. In der Regel werden diese Namen für die jeweiligen
Assembler-Befehle unmittelbar vom Prozessorhersteller selbst festgelegt, um jegli-
ches Chaos zu vermeiden.
47
1 Einführung
Die Assembler-Sprache ist von Prozessor zu Prozessor völlig verschieden. Jede Pro-
zessorarchitektur versteht ihre ganz eigenen Arten von Befehlen, die entsprechend
unterschiedlich in Assembler umgesetzt werden.
Assembler ist sowohl der Name für diese vereinfachte Schreibweise der Maschinen-
sprache als auch der Name für das Programm, das diese Sprache in die eigentliche
Maschinensprache umsetzt (im Englischen wird die Sprache allerdings eher als
assembly language bezeichnet).
Das Assembler-Programm führt gegenüber der eigentlichen Maschinensprache oft
eine Reihe von Erleichterungen ein. Viele Assembler beherrschen etwa die Definition
sogenannter Makros: Immer wiederkehrende Abfolgen von Befehlen erhalten einen
eindeutigen Namen und können dann später unter diesem Namen aufgerufen werden.
Assembler –
praktischer
Einsatz
Assembler wird heutzutage kaum noch zur Programmierung verwendet, zumindest
nicht zur Erstellung vollständiger Programme. Wichtige Ausnahmen sind folgende:
1. In Betriebssystemen sind einige der besonders hardwarenahen Kernroutinen im
Assembler des jeweiligen Prozessors geschrieben, und zwar vor allem deswegen,
damit der gesamte Rest des Systems so weit von der Hardware abstrahiert wird,
dass er vollständig in einer höheren Sprache – meist C – geschrieben werden kann.
Diese Vorgehensweise wurde in den 70er-Jahren bei der Implementierung von
Unix entwickelt und gilt noch heute.
2. Auch Gerätetreiber, die zu den wichtigsten Bestandteilen der Betriebssysteme
gehören, müssen manchmal in Assembler geschrieben werden.
3. Bestimmte Teile von Computerspielen werden hin und wieder in Assembler
geschrieben. Spieleprogrammierern, besonders von schnellen 3D-Spielen, kommt
es vor allem auf Geschwindigkeit an.
4. Besonders systemnahe Computerviren (Bootsektorviren, die den Startbereich
eines Datenträgers infizieren, und Programmviren, die ausführbare Programme
befallen) sind meistens vollständig in Assembler geschrieben.
Die ersten höheren Programmiersprachen (Fortran, Cobol, BASIC)
Als praktischer Ersatz für die maschinenorientierten Sprachen wurden Mitte der
50er-Jahre die problem- oder benutzerorientierten Programmiersprachen einge-
führt. Ihr Vorrat an möglichen Befehlen und ihre Syntax orientierten sich eher an
den Bedürfnissen der Programmierer als an denen des Rechners.
Diese Programmiersprachen müssen in die Maschinensprache des konkreten Pro-
zessors übersetzt werden. Dazu wurden zwei grundlegende Vorgehensweisen entwi-
ckelt:
� Der Compiler erzeugt ein dauerhaft lauffähiges Maschinensprachprogramm und
speichert es als ausführbares Programm (Binary Executable) ab.
48
1.2 Die Geschichte der Rechenmaschinen und Computer
� Der Interpreter übersetzt den Quellcode dagegen Zeile für Zeile; der Code wird also
während der Ausführung (zur Laufzeit) übersetzt. Interpretierte Sprachen werden
häufig auch als Skriptsprachen bezeichnet.
Die erste Generation der höheren Programmiersprachen war sehr einfach. Beispiels-
weise gab es noch keine echte Programmstrukturierung. Das ursprüngliche BASIC
verwendete etwa Zeilennummern, zu denen gesprungen werden konnte; Fortran
benutzte spezielle Sprungmarken.
Jede dieser frühen Sprachen hatte eine spezielle Ausrichtung oder einen besonderen
Verwendungszweck:
� Fortran, entwickelt in den 50er-Jahren, ist die Abkürzung für »Formula Transla-
tor«. Es handelt sich um eine besonders im Hinblick auf mathematische Bedürf-
nisse geschriebene Sprache. Sie wird zum Teil auch heute noch von Ingenieuren
oder Mathematikern gern verwendet.
� Cobol wurde ebenfalls in den 50er-Jahren entwickelt. Der Name ist die Abkürzung
für »Common Business-oriented Language«; es handelt sich also um eine Sprache
für kaufmännische Anwendungszwecke, für Handel und Wirtschaft. Cobol ist eine
ziemlich »geschwätzige« Sprache. Es braucht relativ viele Wörter, um verhältnis-
mäßig kurze Anweisungen auszudrücken. Beispielsweise können Sie in fast jeder
Programmiersprache folgendermaßen den Wert der Variablen b durch 7 teilen
und das Ergebnis in einer zweiten Variablen namens a speichern:
a = b / 7
In Cobol wird dagegen folgende Anweisung verwendet:
DIVIDE B BY 7 GIVING A
� BASIC wurde 1960 am Dartmouth College entwickelt. Der Name steht für »Begin-
ner’s All-Purpose Symbolic Instruction Code«. Es handelt sich also um eine eher
einfache Sprache für Anfänger. Die Sprache fand ab der zweiten Hälfte der 70er-
Jahre, als die neu gegründete Firma Microsoft sie zum ersten Mal für Personal
Computer anpasste, eine gewaltige Verbreitung. Fast jeder Homecomputer in den
80er-Jahren hatte irgendeine BASIC-Variante im ROM eingebaut.
Ein BASIC-
Beispiel
Zur Verdeutlichung sehen Sie hier ein kleines Beispielprogramm in »allgemei-
nem« BASIC, das fast jeder klassische BASIC-Interpreter verstehen würde:
10 PRINT "Wie heißt du?"
20 INPUT A$
30 PRINT A$; " ist ein interessanter Name."
40 PRINT "Noch mal (j/n)?"
50 INPUT J$
60 IF J$ = "j" THEN GOTO 10
49
1 Einführung
Die einzelnen Programmzeilen bedeuten Folgendes:
– (10) Ausgabe des Textes »Wie heißt du?«
– (20) Eingabe der Variablen A$, die durch das Dollarzeichen als String-Variable
(Textinhalt) gekennzeichnet wird.
– (30) Der eingegebene Name wird ausgegeben, gefolgt von »ist ein interessanter
Name.«.
– (40) Der Benutzer wird gefragt, ob er einen weiteren Durchgang wünscht.
– (50) Eingabe der Variablen J$
– (60) Hat J$ den Wert »j«, geht es weiter bei Zeile 10; das Programm wird erneut
ausgeführt. Andernfalls endet das Programm, da keine weiteren Befehle mehr
folgen.
Imperative oder prozedurale Programmiersprachen (Pascal, C)
Diese Programmiersprachen erlauben eine Strukturierung von Programmen, darü-
ber hinaus ist eine gewisse Modularisierung möglich: Programme können in kleinere
logische Einheiten eingeteilt werden, Prozeduren oder Funktionen genannt. Diese
sind bis zu einem gewissen Grad wiederverwendbar.
Pascal wurde ab 1968 von dem Schweizer Mathematikprofessor Niklaus Wirth aus-
drücklich als Lehrsprache entwickelt. Noch heute ist Pascal eine der beliebtesten
Sprachen, um Schülern oder Studenten das Programmieren beizubringen, weil die
Sprache zu einer klaren Programmstrukturierung zwingt.
Die Programmiersprache C wurde 1971 von Dennis Ritchie und Brian Kernighan bei
AT&T entwickelt, insbesondere um eine portierbare (auf andere Rechnerplattformen
übertragbare) Version des Betriebssystems Unix zu schreiben. Ursprünglich wurde C
für einen ganz bestimmten Computer und dessen Besonderheiten entwickelt, den
DEC PDP-7. Aus diesem Grund ist C erstaunlich nah an den Fähigkeiten von Assem-
bler, ohne so benutzerunfreundlich zu sein wie dieses.
Ein Pascal-
Beispiel
Hier sehen Sie zunächst ein einfaches Pascal-Programm:
PROGRAM tagesgruss;VAR name: STRING;
zeit: INTEGER;
BEGINwriteln ('Hallo. Gib deinen Namen ein!');readln (name);writeln ('Gib die Uhrzeit ein - nur Stunde!');readln (zeit);IF zeit < 12 THEN
writeln ('Guten Morgen ', name)
50
1.2 Die Geschichte der Rechenmaschinen und Computer
ELSEIF zeit < 18 THEN
writeln ('Guten Tag ', name)ELSE
writeln ('Guten Abend ', name);END.
Das Programm begrüßt den Benutzer freundlich mit »Hallo«, und dieser wird aufge-
fordert, seinen Namen einzugeben. Daraufhin wartet es auf die Eingabe, die in der
Variablen name gespeichert wird. Als Nächstes fragt das Programm nach der Uhrzeit
oder genauer nach der Stunde.
In den verschachtelten IF-ELSE-Bedingungen wird dann je nach Tageszeit »Guten
Morgen«, »Guten Tag« oder »Guten Abend« ausgegeben.
Ein C-BeispielDie Programmiersprache C wird in Kapitel 9, »Grundlagen der Programmierung«,
ausführlich behandelt. Trotzdem sehen Sie hier als Kontrast zu Pascal bereits ein klei-
nes C-Beispielprogramm:
#include <stdio.h>
int main (){
int a, b;printf ("Geben Sie die erste Zahl ein: ");scanf ("%d", &a);printf ("Geben Sie die zweite Zahl ein: ");scanf ("%d", &b);if (a < b)
printf ("%d ist kleiner als %d.\n", a, b);else if (a > b)
printf ("%d ist groesser als %d.\n", a, b);else
printf ("Zweimal die Zahl %d.\n", a);return 0;
}
Es wird die Eingabe zweier Zahlen erwartet. Anschließend werden die beiden Zahlen
verglichen; je nach Größe der beiden Zahlen wird eine entsprechende Meldung aus-
gegeben.
Die wichtigste Besonderheit ist, dass es kein Hauptprogramm gibt wie in Pascal, son-
dern nur die spezielle Funktion main(), die vom Betriebssystem aufgerufen wird. Die
weiteren Eigenheiten von C werden, wie gesagt, in Kapitel 9, »Grundlagen der Pro-
grammierung«, erläutert.
51
1 Einführung
Objektorientierte Programmiersprachen (Smalltalk, C++, Java, C#)
In einer objektorientierten Sprache wird in wiederverwendbaren Paketen program-
miert, den sogenannten Klassen. Eine Klasse ist eine allgemeine Vorlage für die Kon-
struktion von Objekten. Ein Objekt ist eine Datenstruktur, die selbst Funktionen
enthält, um sich auf die gewünschte Art und Weise zu »verhalten«.
Die wichtigsten Vorteile dieser Art der Programmierung sind die folgenden:
� Kapselung: Datenstrukturen außerhalb eines Objekts können nicht direkt dessen
innere Daten manipulieren, sondern nur seine offiziellen Methoden (Schnittstel-
len nach außen) benutzen. Dies sorgt für ein klares Programmdesign und schützt
vor vielen Fehlern.
� Vererbung: Klassen können ihre Eigenschaften und Methoden an »Kindklassen«
abgeben, in denen nur noch die Unterschiede programmiert werden müssen. Dies
beschleunigt die Softwareentwicklung und macht Programme noch einmal
erheblich übersichtlicher.
Zu den wichtigsten objektorientierten Programmiersprachen gehören folgende:
� Smalltalk war die erste vollständig objektorientierte Sprache überhaupt. Sie wurde
in den 70er-Jahren zur Programmierung der ersten grafischen Benutzeroberfläche
entwickelt.
� C++ ist die objektorientierte Erweiterung der Programmiersprache C und wurde
von Bjarne Stroustrup entwickelt. Da C++ abwärtskompatibel mit C ist, wurde die
Sprache bald von C-Programmierern eingesetzt; ihre besonderen Vorteile als
objektorientierte Sprache wurden aber erst langsam angenommen.
� Java besitzt vor allem die Besonderheit, dass es sich um eine plattformunabhän-
gige Sprache handelt. Sie brauchen ein Java-Programm nur einmal zu kompilie-
ren, es läuft innerhalb eines speziellen Programms für die verschiedenen
Plattformen, der virtuellen Java-Maschine (JVM).
� C# ist eine objektorientierte Sprache von Microsoft. Es handelt sich um eine der
Sprachen, mit denen Anwendungen für das .NET Framework entwickelt werden
können. Zwar betont Microsoft aus Marketingerwägungen stets die Verwandt-
schaft mit C++, aber dennoch hat C# mehr mit Java gemeinsam als mit C++.
Logische Programmiersprachen (LISP, Prolog, Logo)
Einen völlig anderen Ansatz als die bisher behandelten Sprachen versprechen die
logischen Programmiersprachen: Die Grundidee besteht darin, nicht den fertigen
Algorithmus einzutippen und mit wechselnden Wertbelegungen vom Computer
berechnen zu lassen, sondern das Grundproblem selbst zu formulieren und die
Erzeugung einer möglichst optimalen Lösung dem Compiler zu überlassen.
52
1.3 Digitale Speicherung und Verarbeitung von Informationen
Die Idee der logischen Programmierung stammt bereits aus den 60er-Jahren. Weg-
weisend waren die Arbeiten des Linguisten Noam Chomsky, der als Erster eine Ver-
bindung zwischen Sprachwissenschaft und Informationstechnik herstellte. Auf
dieser Grundlage entwickelten sich sogenannte Expertensysteme, die Fragen durch
logische Schlussfolgerungen aus bereits bekannten Informationen beantworten
können. Die logischen Programmiersprachen erwiesen sich als ideales Hilfsmittel
zur Implementierung solcher Systeme.
Logische Sprachen im engeren Sinne verwenden die Prädikatenlogik zur Formulie-
rung von Ausdrücken oder Termen; der wichtigste Vertreter ist Prolog.
Sprachen mit ähnlichem Ansatz, aber anderer Syntax werden auch als funktionale
Sprachen bezeichnet; dazu gehört vor allem LISP, aber auch die Sprache Logo, die
hauptsächlich entworfen wurde, um Kindern die Denkweise der Computerprogram-
mierung beizubringen. Als gemeinsamen Oberbegriff verwendet man manchmal die
Bezeichnung deklarative Programmiersprachen.
In den letzten Jahren kommen logische und funktionale Programmiersprachen all-
mählich wieder in Mode, weil sich der Ansatz besonders gut zur Programmierung
moderner Mehrkernprozessoren eignet. So entstanden die moderneren funktiona-
len Sprachen Erlang (logische Sprache, von Prolog inspiriert), Clojure (funktional, im
Grunde ein moderner LISP-Dialekt) und Scala (eine sogenannte Multiparadigmen-
Sprache, die neben funktionalen auch objektorientierte und imperative Aspekte ent-
hält).
1.3 Digitale Speicherung und Verarbeitung von Informationen
In diesem Abschnitt wird kurz erläutert, wie ein Computer Informationen speichert
und verarbeitet. Es besteht hierbei ein grundsätzlicher Unterschied zwischen analo-
gen und digitalen Daten: Analoge Informationen lassen sich in einer kontinuierli-
chen Wellenform wie in Abbildung 1.5 darstellen, die in immer kleinere Einheiten
unterteilt werden können.
In der Natur liegen alle Informationen zunächst in analoger Form vor: Das Bild, das
Sie sehen, oder der Ton, den Sie hören, besitzt prinzipiell keine kleinste Informati-
onseinheit oder Auflösung. Mit dieser Art von Informationen kann ein Computer
heutiger Bauart nichts anfangen. Die besonderen Eigenschaften der Elektronik
haben dazu geführt, dass Computer digital entworfen wurden. »Digital« stammt
vom englischen Wort digit (»Ziffer«); dieses Wort ist wiederum vom lateinischen
digitus (»Finger«) abgeleitet, da die Finger von jeher zum Zählen eingesetzt wurden.
Digital sind Informationen also immer dann, wenn sie in Form von Zahlen darge-
stellt werden können. Genauer gesagt werden die Daten binär gespeichert, das heißt
53
1 Einführung
als Abfolge von Einsen und Nullen. Das ist nicht genau dasselbe wie dual. Das Dual-
system ist das mathematische Zweiersystem, während binär allgemein die Speiche-
rung beliebiger Daten durch zwei verschiedene Zustände bezeichnet.
Abbildung 1.5 Schematische Darstellung von Analogdaten als Welle
Die Speicherung von Zahlen erfolgt übrigens in der Tat dual, solange es sich um
ganze Zahlen handelt. Eine Besonderheit gilt dabei für vorzeichenbehaftete (positive
oder negative) Zahlen, bei denen das vorderste Bit für das Vorzeichen steht. Kompli-
ziert wird es dagegen bei Fließkommazahlen, die in Exponentialschreibweise gespei-
chert werden. Auf die Darstellung von Zahlen im Computer wird in Kapitel 2,
»Mathematische und technische Grundlagen«, näher eingegangen.
Abbildung 1.6 Schematische Darstellung binärer Digitaldaten
54
1.3 Digitale Speicherung und Verarbeitung von Informationen
Charakteristisch für digitale Daten ist, dass es eine kleinste Informationseinheit gibt
und dass die Information nicht mehr weiter aufgelöst werden kann. Während Ana-
logdaten also durch die Wellenform gekennzeichnet sind, lassen sich Digitaldaten
durch eine rechteckige Form darstellen (siehe Abbildung 1.6). In der Mathematik wer-
den Objekte mit einem solchen »Mindestabstand« als diskrete Mengen bezeichnet.
Ein Alltagsbeispiel ist die Folge der ganzen Zahlen – im Unterschied zu den rationalen
oder gar reellen Zahlen, bei denen zwischen zwei beliebigen Elementen immer noch
unendlich viele Zwischenwerte liegen.
DigitalisierungDie Umwandlung der analogen Eindrücke aus der Realität in computergeeignete
digitale Daten wird als Digitalisierung bezeichnet. Je nach Datenart wird sie zum Bei-
spiel von einem Scanner oder einer Digitalkamera bei Bildern oder von einer Sound-
karte bei Tönen durchgeführt. Die folgenden Abschnitte sollen einen groben
Eindruck davon vermitteln, wie verschiedene Arten von Daten grundsätzlich gespei-
chert werden.
1.3.1 Digitale Bilddaten
Wie Hardware zur Bilddigitalisierung funktioniert, also Scanner und Digitalkameras,
wird kurz in Kapitel 3, »Hardware«, angeschnitten. Beachten Sie, dass es zwei grundle-
gende Arten von Computergrafik gibt: Die Pixelgrafik (auch Bitmap-Grafik genannt),
von der hier die Rede ist, speichert ein Bild als rechteckiges Raster quadratischer Farb-
informationen ab, den sogenannten Pixeln. Die Vektorgrafik speichert dagegen
Umrisslinien und Kurven von Zeichnungen in Form mathematischer Formeln.
Die Qualität eines gespeicherten Pixelbildes lässt sich durch die folgenden Sachver-
halte charakterisieren:
� Die Auflösung gibt die Größe der einzelnen Pixel an. Die Angabe besagt, wie viele
Pixel pro Zentimeter oder Inch gespeichert werden. Beachten Sie, dass für den
Druck erheblich höhere Auflösungen erforderlich sind (etwa 300 Pixel pro Inch)
als für eine gleich große Bildschirmfläche (gerechnet wird hier – unabhängig von
der tatsächlichen Monitorgröße – mit 72 Pixeln pro Inch).
� Die Farbtiefe gibt an, wie viele Bits zur Speicherung der Informationen eines ein-
zelnen Pixels verwendet werden. Je nach Farbtiefe kann eine bestimmte Anzahl
verschiedener Farben eingesetzt werden. Beispielsweise ermöglicht eine Farbtiefe
von 8 Bit nur 256 verschiedene Farben, 16 Bit bieten 65.536 Farben und 24 Bit sogar
mehr als 16,7 Millionen (genauer gesagt 16.777.216).
� In der Regel werden die einzelnen Farben nicht stur durchnummeriert, sondern
aus einzelnen Grundfarben zusammengesetzt. Ohne hier näher darauf einzuge-
hen, gibt es die additive Farbmischung der Lichtfarben Rot, Grün und Blau (RGB)
55
1 Einführung
sowie die subtraktive Mischung der Druckfarben Cyan, Magenta, Gelb und Schwarz
(CMYK). Normalerweise wird für die Intensität jeder einzelnen Grundfarbe ein
Farbkanal gespeichert. Die Farbtiefe wird dann pro Kanal angegeben, bei einem
RGB-Bild mit 24 Bit Farbtiefe also beispielsweise 8 Bit (oder 256 Intensitätsstufen)
pro Kanal.
1.3.2 Digitale Audiodaten
Töne werden mithilfe eines Verfahrens digitalisiert, das man Sampling nennt. Das
Audiosignal wird in bestimmten Zeitabständen immer wieder abgetastet, genauer
gesagt wird die Amplitude (das Volumen) zum jeweiligen Zeitpunkt gemessen. Die
Frequenz (Tonhöhe) ergibt sich dabei aus der zeitlichen Verteilung der Amplituden.
Jeder einzelne Abtastvorgang (Sample) wird als numerischer Wert abgespeichert.
In der Folge erweist sich die digitalisierte Tonabfolge als diskret in zweifacher Hin-
sicht: auf der X-Achse zeitdiskret durch das gleichbleibende Intervall zwischen den
Messungen; auf der Y-Achse wertdiskret durch die Beschränkung auf einzelne her-
ausgegriffene (Mittel-)Werte.
Genau wie bei Bildern gibt es auch hier verschiedene Merkmale, die die Datenmenge
und die Qualität der gespeicherten Daten betreffen:
� Die Sampling-Rate gibt die Anzahl der Messvorgänge pro Sekunde an. Je höher die
Frequenz dieser Messungen, desto höher ist die Tonqualität. Audio-CDs haben bei-
spielsweise eine Sampling-Rate von 44,1 kHz (Kilohertz), es wird also 44.100 Mal
pro Sekunde gemessen. Multimedia-Produktionen wie Computerspiele oder Info-
tainment-Titel verwenden dagegen häufig die halbe Sampling-Rate von 22,05 kHz.
� Die Sampling-Tiefe gibt die Datenbreite des einzelnen gespeicherten Tons an, legt
also fest, wie viele verschiedene Amplituden unterschieden werden. Bei Audio-
CDs sorgt eine Sampling-Tiefe von 16 Bit (65.536 unterschiedliche Werte) für guten
Ton; niedrigere Sampling-Tiefen klingen nicht besonders gut.
� Die Anzahl der Tonkanäle besagt, ob irgendeine Art von Raumklang gespeichert
wird oder nicht. Wenn Audiodaten mono gespeichert werden, gibt es nur einen
einzigen Kanal. Stereo verwendet zwei getrennte Kanäle, die über einen linken
und einen rechten Lautsprecher ausgegeben werden können. Eine noch höhere
Anzahl von Kanälen wie bei Quadrofonie, Dolby Surround oder 5.1-Sound bewirkt
ein noch realistischeres Hörerlebnis.
Tabelle 1.2 stellt die verschiedenen Merkmale von Bilddaten den vergleichbaren
Eigenschaften von Tondaten gegenüber, um die entsprechenden Beziehungen zwi-
schen verschiedenen Arten von Digitaldaten zu verdeutlichen.
56
1.4 Zusammenfassung
1.3.3 Digitale Speicherung von Text
Reiner Text (nicht der formatierte Text in Textverarbeitungsprogrammen!) wird als
Abfolge nummerierter Zeichen eines Zeichensatzes gespeichert. Je nach Datenbreite
des verwendeten Zeichensatzes können unterschiedlich viele verschiedene Zeichen
verwendet werden. Der grundlegende Computerzeichensatz ist noch heute ASCII. Es
handelt sich um einen 7 Bit breiten Zeichensatz; er enthält also 128 Zeichen. Es sind
sämtliche Zeichen für die Darstellung englischsprachiger Texte verfügbar.
Um auch Texte mit den Sonderzeichen der diversen europäischen Sprachen darstel-
len zu können, werden verschiedene Erweiterungen des ASCII-Codes verwendet. Da
die 7 Bit der ASCII-Zeichen gewöhnlich in 8 Bit breiten Feldern gespeichert werden,
steht Platz für weitere 128 Zeichen zur Verfügung. Auf diese Weise lassen sich latei-
nisch geschriebene Sprachen mit Sonderzeichen wie deutschen Umlauten darstel-
len, aber auch andere Buchstabenalphabete wie Arabisch, Russisch oder Griechisch.
Silbenschriften wie Chinesisch oder Japanisch lassen sich dagegen auf diese Weise
nicht speichern.
Um viele verschiedene Zeichensätze »unter einen Hut zu bringen«, wurde der Uni-
code-Standard eingeführt. Es handelt sich um einen Zeichensatz mit 16 bis 32 Bit brei-
ten Zeichen; es können also mindestens 65.536 verschiedene Zeichen, in neueren
Versionen sogar noch mehr, gespeichert werden. Auf diese Weise bietet Unicode
genügend Platz für die Schriftzeichen der meisten Sprachen der Welt sowie für
mathematische, technische und andere Sonderzeichen.
Die verschiedenen Zeichensätze werden in Kapitel 16, »Weitere Datei- und Datenfor-
mate«, genauer besprochen.
1.4 Zusammenfassung
Die Wissenschaft vom Umgang mit Computersystemen, um die es in diesem Buch
geht, wird allgemein Informatik genannt. Der praktische Einsatz dieser Systeme
heißt dagegen meist Informationstechnik (IT). Es gibt verschiedene Ausbildungs-
Informationsart Bilddaten Audiodaten
Auflösung Bildauflösung, in Pixeln pro
Zentimeter oder Inch
Sampling-Rate, in Samples
pro Sekunde (kHz)
Datenbreite Farbtiefe Sampling-Tiefe
Anzahl Kanäle Farbkanäle Tonkanäle
Tabelle 1.2 Vergleich der Merkmale von Bild- und Audiodaten
57
1 Einführung
gänge, die auf Berufe in diesem Fachbereich vorbereiten: zum einen praktische
Berufsausbildungen wie die im Titel dieses Buches erwähnten Fachinformatiker,
zum anderen die erheblich umfangreicheren, aber theoretischeren Studiengänge.
Die Entwicklung des Computers war letztlich eine Folge des wissenschaftlichen Fort-
schritts: Die seit Jahrtausenden bekannten Gesetzmäßigkeiten der Mathematik und
der Logik wurden mit modernen Erkenntnissen der Elektrotechnik beziehungsweise
Elektronik kombiniert, um einen frei programmierbaren Rechenautomaten zu erhal-
ten. Die fortschreitende Miniaturisierung und eine effiziente industrielle Fertigung
sorgten dafür, dass die Computer sich im Laufe von etwa sechzig Jahren von beinahe
unbezahlbaren Einzelexemplaren an Universitäten zum allgegenwärtigen Werkzeug
für fast jeden Anwendungszweck und die meisten Berufe entwickeln konnten.
Parallel zu den Computern selbst hat sich auch die Art und Weise ihrer Programmie-
rung weiterentwickelt: Anfangs musste die reine numerische Maschinensprache
mithilfe von Schalttafeln und Steckverbindungen eingegeben werden; nach und
nach wurden sowohl die Eingabemethoden als auch der Funktionskomfort der Spra-
chen selbst erheblich verbessert.
Interessant ist in diesem Zusammenhang, dass sich die innere Funktionsweise der
Rechner von Anfang an kaum verändert hat: Bis heute werden elektronisch gesteu-
erte Schalter verwendet, die die beiden Zustände 0 und 1 darstellen können. Sämtli-
che Informationen – ob mathematische Informationen, Texte oder Multimedia-
Daten – sowie die Manipulation dieser Daten müssen mithilfe dieser Schaltungen
codiert werden. Wie dies im Einzelnen geschieht, erfahren Sie im Verlauf dieses
Buches noch wesentlich genauer.
58
Kapitel 7
Linux
Really, I’m not out to destroy Microsoft.
That will just be a completely unintentional side effect.
– Linus Torvalds1
Nachdem Sie im vorigen Kapitel das Wichtigste über Windows erfahren haben, geht
es hier um eine andere gängige Systemplattform: Linux, inzwischen das am weites-
ten verbreitete System der Unix-Familie. Viele der Informationen in diesem Kapitel
gelten auch für andere Unix-Varianten. Apples Betriebssystem Mac OS X, dessen
Unterbau eine BSD-Unix-Version namens Darwin ist, wird im nächsten Kapitel vor-
gestellt.
Das Betriebssystem Linux wird, wie bereits in Kapitel 5, »Betriebssystemgrundla-
gen«, erwähnt, in verschiedenen Distributionen angeboten. Die wichtigsten sind:
� openSUSE, früher SUSE Linux genannt, wurde von der Nürnberger Firma SUSE AG
entwickelt, die inzwischen zu Novell gehört. Novell wiederum wurde vor einigen
Jahren von Attachmate aufgekauft; die Unterstützung für openSUSE wurde seit-
dem vermindert, aber nicht eingstellt. Die Distribution wurde früher in zwei ver-
schiedenen Versionen angeboten: der Personal Edition für Privatanwender, die
vorzugsweise mit Desktopanwendungen ausgestattet war, und der Professional
Edition für Entwickler, Systemadministratoren oder Unternehmen, die zahlreiche
Netzwerkanwendungen, Server, Entwicklungswerkzeuge und andere professio-
nelle Programme enthielt. Inzwischen wird die Distribution als Community-Pro-
jekt unter dem Namen openSUSE weitergepflegt. Auch die von SUSE bereitgestell-
ten Installations- und Verwaltungsprogramme wurden dafür unter der GPL
freigegeben. Zusätzlich gibt es kommerzielle Produkte von Novell, etwa den SUSE
Linux Enterprise Server.
� Red Hat Linux stammt von dem gleichnamigen amerikanischen Unternehmen
und ist die beliebteste Distribution in den USA. Die Entwicklung verlief schon vor
einigen Jahren wie bei openSUSE: Ursprünglich wurden eine Personal Edition und
eine Professional Edition angeboten. Aus der stark erweiterten Personal-Variante
1 Wirklich, ich habe nicht vor, Microsoft zu zerstören. Dies wird nur ein vollkommen unbeabsich-
tigter Nebeneffekt sein.
377
7 Linux
ging das freie Community-Projekt Fedora Linux (früher Fedora Core Linux) hervor,
während Unternehmenslösungen weiterhin unter dem Namen Red Hat verkauft
werden.
� Debian GNU/Linux ist eine kleinere Distribution mit dem besonderen Vorteil, dass
alle Bestandteile voll und ganz aus freier Software unter der GPL bestehen, auch
das Installationsprogramm. Dafür ist die Installation komplizierter als bei den
anderen Distributionen, für Linux-Einsteiger ist diese Distribution daher nicht zu
empfehlen. Fortgeschrittene Anwender können die Distribution dagegen am
stärksten an eigene Bedürfnisse anpassen. Es gibt allerdings besonders einsteiger-
freundliche Distributionen wie Ubuntu Linux, die wiederum auf Debian basieren.
Auch das direkt von CD bootende Live-System Knoppix besitzt einen Debian-
Unterbau.
� Mandriva Linux ist aus dem Zusammenschluss des französischen Distributors
Mandrake mit der brasilianischen Firma Conectiva entstanden und überzeugt
ähnlich wie SUSE durch einen besonders großen Lieferumfang und ein gut durch-
dachtes Installationsprogramm.
Neben diesen häufigsten Distributionen werden unzählige weitere angeboten, jede
von ihnen besitzt ihre besonderen Eigenschaften, Vor- und Nachteile. Die Unter-
schiede treten nicht so sehr beim normalen Arbeiten mit dem System zutage, son-
dern nur bei der Installation neuer Programme und bei Konfigurationsarbeiten.
Die meisten hier genannten Linux-Distributionen können Sie frei aus dem Internet
herunterladen. Bei den Download-Dateien handelt es sich meist um die ISO-Images
der Installations-DVDs oder -CDs. Jede handelsübliche Brennsoftware kann diese auf
einen Datenträger brennen. In Tabelle 7.1 sehen Sie die URLs der wichtigsten Distri-
butionen.
Distribution Website
openSUSE http://de.opensuse.org/
Fedora Linux http://fedoraproject.org/wiki/
Debian GNU/Linux http://www.debian.org/
Ubuntu Linux http://www.ubuntulinux.org/
Knoppix http://www.knopper.net/knoppix/
Mandriva Linux http://www.mandriva.com/
Tabelle 7.1 Wichtige Linux-Distributionen und ihre Websites
378
7.1 Arbeiten mit der Shell
Eine andere Variante freier Unix-Derivate bilden die verschiedenen BSD-Systeme.
Hier die wichtigsten, jeweils mit ihrer Projekt-Website für Informationen und Down-
loads:
� FreeBSD (http://www.freebsd.org/)
� OpenBSD (http://www.openbsd.org/)
� NetBSD (http://www.netbsd.org/)
Eine weitere interessante kostenlose Alternative ist OpenSolaris, die Community-
Variante von Sun Solaris. Sie können es unter http://solaris.java.net/ herunterladen.
Viele der hier genannten Distributionen und Systeme bieten übrigens Live-CDs oder
Live-DVDs. Sie können die entsprechenden Images herunterladen, auf einen Daten-
träger brennen und direkt davon booten, um die Betriebssysteme risikolos auszu-
probieren. Eine andere interessante Lösung besteht darin, sie in einer Virtualisierungs-
software wie VMware oder Xen zu starten; in diesem Fall kann das Image sogar ohne
Brennvorgang als virtueller Datenträger eingestellt werden.
7.1 Arbeiten mit der Shell
Auch wenn so gut wie alle Distributionen inzwischen schon bei der Installation eine
grafische Benutzeroberfläche einrichten, sollten Sie sich den Umgang mit der Kon-
sole angewöhnen. Die mächtigsten Funktionen des Systems werden nach wie vor
über die Kommandozeile aufgerufen; grafische Steuerprogramme dafür stehen
nicht flächendeckend und schon gar nicht durchgehend als Open Source zur Verfü-
gung.
7.1.1 Booten und Login
Die meisten Linux- oder Unix-Versionen verfügen über irgendeine Art von Boot-
menü, das gleich nach dem Einschalten des Rechners und den BIOS-Meldungen
angezeigt wird. Falls mehrere Betriebssysteme installiert sind, können Sie hier eines
auswählen; ansonsten stehen nur verschiedene Optionen für das System selbst zur
Verfügung. In Abbildung 7.1 sehen Sie als Beispiel den Startbildschirm des Bootmana-
gers von Ubuntu. Wählen Sie in Ihrem entsprechenden Menü das gewünschte Sys-
tem aus, oder warten Sie, bis die automatische Vorauswahl aktiv wird.
Nach dem eigentlichen Booten gelangen Sie zu einem Anmeldebildschirm, sofern Sie
keinen automatischen Log-in eingestellt haben. Dieser Bildschirm kann entweder
textbasiert sein wie in Abbildung 7.2 oder aber grafisch wie in Abbildung 7.3. In jedem
Fall müssen Sie Ihren Benutzernamen und Ihr Passwort eingeben und anschließend
379
7 Linux
(¢) drücken. Bei einem textbasierten Log-in gibt die Passworteingabe übrigens kei-
nerlei optisches Feedback, während bei den meisten grafischen Anmeldebildschir-
men Sternchen (***) angezeigt werden.
Abbildung 7.1 Das Bootmenü von Ubuntu
Abbildung 7.2 Textbasierter Boot- und Log-in-Bildschirm von openSUSE
380
7.1 Arbeiten mit der Shell
Abbildung 7.3 Grafischer Log-in bei Ubuntu
rootIn der Regel wird bei der Installation des Systems ein Passwort für den Superuser mit
dem vorgegebenen Benutzernamen root eingerichtet. Sie sollten sich niemals als
root anmelden, wenn Sie mit dem System nur normal arbeiten möchten, weil Sie als
root wirklich alles dürfen und so versehentlich das gesamte System beschädigen
könnten. Die Hauptaufgabe des Benutzers root ist die Systemadministration. Aus
diesem Grund wird bei fast jeder Linux-Installation automatisch ein normaler
Benutzer eingerichtet.
Einige Systeme – zum Beispiel Ubuntu und Mac OS X – gehen einen anderen Weg:
hier wird kein separater root-Account eingerichtet, sondern die Systeme erlauben
dem Standardbenutzer, über die im weiteren Verlauf des Kapitels besprochenen
Kommandos su oder sudo root-Rechte zu erlangen.
Für jeden Benutzer, dessen Anmeldedaten auf traditionelle Weise lokal gespeichert
werden, existiert ein Eintrag in der Datei /etc/passwd. Dieser Eintrag enthält ver-
schiedene jeweils durch Doppelpunkt getrennte Informationen:
Username:Passwort:UID:GID:Info:Home:Shell
Username und Passwort erklären sich von selbst. Die UID ist die numerische User-ID
des Benutzers, die GID entsprechend die Nummer der Gruppe, der er angehört. Info
enthält eine Klartextinformation über den Benutzer wie den vollständigen Namen,
381
7 Linux
eine Telefonnummer oder E-Mail-Adresse (der Originalname des Feldes lautet
GECOS2). Diese Informationen können über das Netzwerk mit einem Programm
namens finger ermittelt werden. Home gibt das bereits zuvor besprochene Home-Ver-
zeichnis dieses Benutzers an (in der Regel /home/Username). Shell gibt schließlich
an, welche Shell dem Benutzer nach dem Log-in präsentiert wird – die verschiedenen
Shells werden in Abschnitt 7.1.3, »Grundfunktionen der Shell«, besprochen. Ein kon-
kreter Eintrag könnte beispielsweise folgendermaßen aussehen:
user:x:102:100:Irgendjemand:/home/user:/bin/bash
Der Username und das Passwort sind die wichtigsten Informationen. Nur eine kor-
rekt eingegebene Kombination aus beiden ermöglicht die Anmeldung eines Benut-
zers. Das Passwort steht an dieser Stelle nicht etwa im Klartext (es ließe sich leicht
von jedem Benutzer oder sogar von einem externen Angreifer stehlen), sondern ver-
schlüsselt – aus im Folgenden erläuterten Gründen ist im Beispieleintrag übrigens
gar kein Passwort zu sehen, sondern nur die Markierung x. Das eingesetzte Ver-
schlüsselungsverfahren ist bei korrekter Implementierung so beschaffen, dass die
Einträge nicht wieder entschlüsselt werden können (Einwegverschlüsselung). Das
Passwort, das ein Benutzer eingibt, wird vielmehr auf dieselbe Art und Weise ver-
schlüsselt wie die /etc/passwd-Einträge. Anschließend wird das Ergebnis mit dem
gespeicherten, verschlüsselten Passwort verglichen. Eine Übereinstimmung be-
deutet, dass das Passwort wohl korrekt sein muss.
Da der Verschlüsselungsweg bekannt ist, könnte ein Angreifer, dem ein Diebstahl der
Datei /etc/passwd gelingt, einfach nacheinander eine Liste von Wörtern verschlüs-
seln und mit den gespeicherten Passwörtern vergleichen. Es gibt sogar ein Pro-
gramm namens crack, das diesen Job automatisch durchführt, und die passenden
Wortlisten für die verschiedensten Sprachen erhalten Sie leicht aus dem Internet.
Die Schlussfolgerung sollte klar sein: Verwenden Sie als Passwort niemals ein Wort,
das in einem Wörterbuch vorkommen könnte. Eine beliebige Kombination aus
Großbuchstaben, Kleinbuchstaben und Ziffern ist dagegen ziemlich sicher. Die
Frage ist nur, wie Sie sich ein solches Passwort merken können – aus naheliegenden
Gründen sollten Sie es nirgendwo aufschreiben. Das wäre in etwa so klug, als wür-
den Sie die Geheimzahl für Ihre EC-Karte mit einem Folienstift auf die Karte selbst
schreiben.
Gute Passwörter Eine einfache Methode, ein sicheres Passwort zu erfinden und es sich zu merken,
besteht darin, die Anfangsbuchstaben eines beliebigen Satzes als Passwort zu ver-
wenden. Visuell passende Buchstaben können Sie durch Ziffern ersetzen (zum Bei-
2 Der Name stammt von einem gleichnamigen Großrechner-Betriebssystem der 60er-Jahre des
20. Jahrhunderts.
382
7.1 Arbeiten mit der Shell
spiel 1 statt i); Groß- und Kleinschreibung ergeben sich in deutschen Sätzen
automatisch.
Beispielsweise würde aus dem Satz »Mit Linux wär’ das nicht passiert«3 die Buchsta-
benkombination MLwdnp, auf die niemand kommen kann. Allerdings ist es am sichers-
ten, die acht Zeichen, die in klassischen Unix-Passwörtern zulässig sind, auch
auszunutzen.4 Eine Brute-Force-Attacke (englisch für »rohe Gewalt«), bei der ein
Angreifer jede erdenkliche Zeichenkombination durchprobiert, würde dadurch näm-
lich so lange dauern, dass sie sich nicht lohnt.
Modernere Unix-Systeme führen übrigens einen zusätzlichen Schutzmechanismus
ein: Die eigentlichen Passwörter werden gar nicht mehr in der Datei/etc/passwd ver-
wahrt, sondern in /etc/shadow. Diese Datei besitzt einen ähnlichen Aufbau wie /etc/
passwd, ist aber nur für den User root lesbar und nicht für alle Benutzer.
7.1.2 Virtuelle Terminals
Falls Ihr System mit einer grafischen Oberfläche startet, befinden Sie sich nach der
Anmeldung auf dem Desktop, der Schreibtischoberfläche. Hier sehen Sie verschie-
dene Symbole, Menüs und andere Bedienelemente, die in Abschnitt 7.5.2, »Desk-
tops«, behandelt werden. Wechseln Sie an dieser Stelle zunächst in eine Textmodus-
Konsole, indem Sie die Tastenkombination (Strg) + (Alt) + (F1) betätigen.
Jedes Linux-System bietet mehrere virtuelle Terminals zum Arbeiten an, in jedem
von ihnen können Sie sich unter einem beliebigen Benutzernamen anmelden und
jeweils andere Programme ausführen. Standardmäßig sind sechs virtuelle Terminals
eingerichtet, die über (Strg) + (F1) bis (Strg) + (F6) aufgerufen werden können. Mit
(Strg) + (F7) wechseln Sie dagegen wieder zur grafischen Oberfläche, falls diese
gestartet wurde. Aus der GUI heraus müssen Sie zusätzlich die (Alt)-Taste festhalten,
um wieder in eines der Textterminals zu wechseln.
GUI-Terminal-
fenster
Alternativ können Sie auch innerhalb der grafischen Oberfläche ein Terminalfenster
öffnen, beispielsweise das Programm xterm oder eine modernere, komfortablere
Variante. Halten Sie einfach Ausschau nach einem Icon, das einen schwarzen Text-
bildschirm zeigt. In KDE heißt das zuständige Programm beispielsweise Konsole, in
GNOME einfach Terminal. Zusätzlich gibt es Drittanbieter-Terminals wie Terminator,
dessen Fläche in mehrere unabhängige Teile unterteilt werden kann.
3 Seien Sie froh, wenn Sie den Satz nicht kennen – er bildet oft den Auftakt zu den sinnlosen »Mein
Betriebssystem ist besser als deines«-Debatten im Heise-Forum.
4 Diese Beschränkung gilt für die veraltete crypt-Verschlüsselung. Bei moderneren Einwegver-
schlüsselungsverfahren wie MD5, SHA1 oder Blowfish kann das Passwort beliebig lang sein.
383
7 Linux
Wenn Sie sich an der Konsole erfolgreich angemeldet haben, erhalten Sie eine Einga-
beaufforderung (Prompt). Der Prompt kann je nach Konfiguration sehr unterschied-
lich aussehen. In der Regel sehen Sie etwa Folgendes:
user@rechner: ~ $
Statt user wird der Benutzername angezeigt, unter dem Sie sich angemeldet haben;
hinter dem @ steht der Name des Rechners, auf dem Sie gerade arbeiten. Auf diese
Angaben folgt der Pfad des aktuellen Arbeitsverzeichnisses. Im zuvor gezeigten Bei-
spiel befindet sich der Benutzer in seinem Home-Verzeichnis (auf dieses Beispiel
bezogen /home/user), das durch die Tilde gekennzeichnet wird. Das Dollarzeichen
bildet schließlich den Abschluss; dahinter blinkt der Cursor für die Befehlseingabe.
Statt des Dollarzeichens erscheint bei manchen Shells > oder ein anderes Zeichen.
Wenn Sie als Benutzer root angemeldet sind, bekommen Sie einen etwas anderen
Prompt zu sehen; beispielsweise folgenden:
rechner: ~ #
Es wird also kein Benutzername angezeigt, und hinter der Pfadangabe folgt eine
Raute (#) statt des Dollarzeichens. Auch root befindet sich in diesem Beispiel in sei-
nem Home-Verzeichnis, standardmäßig /root.
In den folgenden Beispielen wird der Prompt einfach als Dollarzeichen dargestellt.
Wenn für einen Befehl root-Rechte erforderlich sind, wird dagegen die Raute verwen-
det. Benutzereingaben sind in den Beispielen jeweils fett gesetzt, um sie vom Prompt
und von der Ausgabe des Systems abzusetzen.
7.1.3 Grundfunktionen der Shell
Das Programm, das Ihre Befehle entgegennimmt und zu interpretieren versucht,
wird Shell genannt. Es gibt nicht die Linux-Shell, sondern eine Reihe verschiedener
Shell-Programme, die sich bis zu einem gewissen Grad voneinander unterscheiden.
Höchstwahrscheinlich läuft in Ihrem System eine Shell, die als bash bezeichnet wird.
Geben Sie den folgenden Befehl ein, um herauszufinden, welche Shell Sie ausführen:
$ echo $0
$0 ist eine spezielle Variable, die jeweils den Namen des zurzeit laufenden Pro-
gramms enthält. Die Ausgabe dürfte zum Beispiel /bin/bash oder /bin/sh lauten. Die
gängigsten Shells werden in der folgenden Liste aufgeführt:
� sh oder bsh, die Bourne Shell, benannt nach ihrem Entwickler, war die ursprüngli-
che Shell des Bell-Labs-Unix. Sie beherrscht die kleinste gemeinsame Menge der
Fähigkeiten aller anderen Shells.
384
7.1 Arbeiten mit der Shell
� csh, die C-Shell, und ihre Erweiterung tcsh enthalten eine Reihe spezieller Funktio-
nen, die von der Programmiersprache C beeinflusst wurden und besonders den
Bedürfnissen von C-Programmierern entgegenkommen.
� bash, die Bourne Again Shell (ein nettes Wortspiel), ist die GNU-Weiterentwicklung
der ursprünglichen Bourne Shell mit vielen interessanten Zusatzfunktionen.
Diese Shell ist in allen Linux-Distributionen und zum Beispiel auch unter Mac OS
X als Standard voreingestellt. Trotzdem werden alle hier Genannten und meist
noch weitere mitgeliefert.
� ksh, die Korn Shell, ist der offizielle, bei AT&T entwickelte Nachfolger der bsh. Sie
vereint einige Vorteile von Bourne- und C-Shell mit eigenen Erweiterungen. Die
ksh selbst ist nicht frei verfügbar, es gibt aber eine freie Variante namens pdksh
(Public Domain Korn Shell).
� sash, die Stand-alone Shell, ist ein nützliches Hilfsmittel zur Fehlerbehebung:
Viele Standard-POSIX-Dienstprogramme sind direkt in die Shell selbst eingebaut
und brauchen nicht zusätzlich bereitgestellt zu werden. Ihre Namen beginnen
normalerweise mit einem Minuszeichen, um sie von der voll ausgestatteten GNU-
Version dieser Tools zu unterscheiden. Für Rettungssysteme, die vom USB-Stick
oder sogar von der Diskette starten, ist die sash ideal.
Um Missverständnissen vorzubeugen, sollten Sie zunächst verstehen, dass über 90 %
der Eingaben, die Sie an der Kommandozeile vornehmen, unter allen Shells identisch
sind: Es handelt sich nämlich bei diesen Eingaben überhaupt nicht um Shell-Kom-
mandos. Die meisten »Unix-Befehle« sind separate Systemprogramme, die sich für
gewöhnlich im Verzeichnis /bin befinden und mit der Shell nichts zu tun haben. Die
Shells unterscheiden sich insbesondere in der Art und Weise, wie die Funktionen der
Systemprogramme durch intelligente Verknüpfungen erweitert werden können.
UmgebungDie Konfiguration, mit der die Shell (und übrigens auch jedes andere Programm) aus-
geführt wird, heißt Umgebung (Environment). Sie besteht aus der User- und Group-
ID, unter der das Programm läuft, aus dem aktuellen Arbeitsverzeichnis sowie aus
einer Reihe von Umgebungsvariablen, die von dem Programm ausgelesen werden. Die
Shell bezieht ihre Umgebung aus diversen Konfigurationsdateien, insbesondere aus:
� /etc/profile: zentrale Konfigurationsdatei für alle Shells und alle User. Diese Datei
sollte nicht editiert werden; ändern Sie stattdessen ~/.bashrc, oder erstellen Sie
eine benutzerspezifische ~/profile.local.
� /etc/profile.d/*: zentrale Konfigurationsdateien für bestimmte Aspekte einzelner
Shells
� ~/.bashrc: bash-spezifische Einstellungen für einen einzelnen Benutzer in dessen
Home-Verzeichnis
Hintergrund-
prozesse
Beispielsweise wurde erst in der csh die Möglichkeit eingeführt, Programme im Hin-
tergrund zu starten: Wenn Sie ein &-Zeichen an einen Befehl anhängen, gelangt des-
385
7 Linux
sen Ausgabe nicht auf den Bildschirm, und Sie können sofort den nächsten Befehl
eingeben. Es wird beim Aufruf des Befehls lediglich dessen Prozess-ID ausgegeben.
Inzwischen bieten fast alle Shells diese Option an. Hier sehen Sie ein einfaches Bei-
spiel, in dem die Suche nach Dateien, deren Name mit einem a beginnt, in den Hin-
tergrund verbannt wird:
$ find . -name a* &[1] 3125$
Die Funktion des Befehls find wird im weiteren Verlauf des Kapitels noch genauer
erläutert.
In eckigen Klammern wird eine Job-Nummer angezeigt; dahinter erscheint die PID.
Statt 3125 werden Sie wahrscheinlich eine andere zu sehen bekommen. Mithilfe des
Befehls fg (für »foreground« – nicht etwa »fat grin«, wie in Chats und Foren üblich)
können Sie die Ausgabe des Befehls im Vordergrund fortsetzen. Falls sich mehrere
Prozesse im Hintergrund befinden, müssen Sie die Job-Nummer angeben. Beispiel:
$ fg 1
Ebenso können Sie ein bereits laufendes Programm nachträglich in den Hintergrund
stellen, indem Sie die Tastenkombination (Strg) + (Z) betätigen. Auch in diesem Fall
werden Job-Nummer und PID angezeigt, und Sie können das Programm mit fg
zurückholen.
In der Regel bestehen die Befehle, die Sie eingeben, aus dem Namen des gewünschten
Systemprogramms und einer durch Leerzeichen getrennten Liste von Parametern.
Einige der Parameter sind Optionen, die bei den meisten Befehlen mit einem Minus-
zeichen beginnen, andere geben dagegen konkrete Werte wie Pfad- oder Dateina-
men, Bezeichnungen und Ähnliches an.
Anweisungen werden durch das Drücken von (¢) abgeschlossen und unmittelbar
ausgeführt. Zu lange Eingaben können Sie aber durch einen Backslash (\) und (¢) auf
mehrere Zeilen aufteilen. Hier ein Beispiel, das in allen Dateien des aktuellen Verzeich-
nisses und allen Unterverzeichnissen nach dem Text "in diesem Fall werden Job-Num-
mer und PID angezeigt" sucht:
$ grep -r \> "in diesem Fall werden Job-Nummer und PID angezeigt" \> *
Die Shell sucht nach der Eingabe eines Kommandos in der folgenden Reihenfolge
nach einer Möglichkeit, es auszuführen:
386
7.1 Arbeiten mit der Shell
1. alias-Definitionen (siehe Abschnitt 7.3, »Automatisierung«)
2. Shell-Built-ins, das heißt Kommandos, die in das Shell-Binary selbst eingebaut
sind
3. Externe Programme – die in der Umgebungsvariablen PATH angegebenen Ver-
zeichnisse werden der Reihe nach durchsucht.
Falls der eingegebene Befehl an keinem der genannten Orte gefunden wird, erhalten
Sie eine Fehlermeldung. Falls Sie die bash verwenden und irrtümlich das Windows-
Kommando cls zum Bildschirmlöschen eingeben, erhalten Sie beispielsweise diese
Ausgabe:
bash: cls: command not found
Möchten Sie wissen, ob es sich bei einem Kommando um ein Alias, ein Shell-Built-in
oder ein Programm handelt, können Sie type Kommando eingeben. Hier für jeden Typ
ein Beispiel:
$ type lsls is aliased to `/bin/ls $LS_OPTIONS'$ type aliasalias is a shell builtin$ type mkdirmkdir is hashed (/bin/mkdir)
Die System-
variable PATH
Wenn Sie den Namen eines Programms eingeben, sucht die Shell in ganz bestimm-
ten Verzeichnissen nach diesem Programm. Diese Verzeichnisse sind in einer Umge-
bungsvariablen namens PATH festgelegt. Möchten Sie diese Liste lesen, geben Sie
Folgendes ein:
$ echo $PATH/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/share/bin
Der Befehl echo gibt sämtlichen folgenden Text in der nächsten Zeile aus. Das Dollar-
zeichen sorgt dafür, dass die Shell das folgende Wort als den Namen einer Variablen
auffasst, deren Wert ausgegeben werden soll. Beachten Sie, dass Unix-Systeme,
anders als Windows, auch bei Variablennamen zwischen Groß- und Kleinschreibung
unterscheiden und dass diese Variable PATH heißt, nicht etwa Path oder path.
Der Wert der Variablen PATH besteht aus einer Liste von absoluten Pfadangaben (mit
/ beginnend), die durch Doppelpunkte voneinander getrennt werden. In der Praxis
ist die Liste meist erheblich länger als im zuvor gezeigten Beispiel.
Im Folgenden soll ein Verweis auf das aktuelle Verzeichnis hinzugefügt werden. Übli-
cherweise wird ein Programm nämlich nicht einfach ausgeführt, wenn Sie sich in sei-
387
7 Linux
nem Verzeichnis befinden, sondern nur, wenn dieses Verzeichnis auch in PATH steht.
Um dies zu ändern, können Sie die spezielle Verzeichnisangabe . (einen einzelnen
Punkt) hinzufügen, da dieser Punkt jeweils das aktuelle Verzeichnis repräsentiert.
Falls Sie den Inhalt der Variablen ändern möchten, funktioniert das in den verschie-
denen Shells unterschiedlich. Hier sehen Sie Beispiele für die zuvor genannten
Shells:
� sh, bsh, bash und ksh: export PATH=$PATH:.
� csh und tcsh: set PATH=$PATH:.
Der Wert, der PATH in den beiden Beispielen zugewiesen wird, nämlich $PATH:.,
bedeutet: bisheriger Wert von PATH, Doppelpunkt, anschließender Punkt. Die voll-
ständige Pfadliste aus dem zuvor gezeigten Beispiel sähe nach dieser Änderung fol-
gendermaßen aus:
/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/share/bin:.
In der Praxis sollten Sie sich gut überlegen, ob Sie diese Änderung durchführen
möchten, da sie ein gewisses Sicherheitsrisiko darstellt. Wenn Sie den Punkt angeben
möchten, gehört er auf jeden Fall ans Ende von PATH, weil Ihnen ein Angreifer ansons-
ten ein Programm unterjubeln könnte, das denselben Namen trägt wie ein System-
programm und deshalb stattdessen ausgeführt würde, falls Sie sich im ent-
sprechenden Verzeichnis befinden. Die Verzeichnisse in PATH werden nämlich der
Reihe nach durchprobiert, bis ein Programm mit dem angeforderten Namen gefun-
den wird. Wird es nirgendwo gefunden, erscheint eine Fehlermeldung.
Eingabe-
vervollstän-
digung
Alle modernen Unix-Shells beherrschen die sehr bequeme Funktion der Eingabever-
vollständigung: Wenn Sie einen Befehl oder den Pfad einer Datei eintippen, können
Sie zwischenzeitlich die (ÿ)-Taste betätigen. Wenn der Befehl oder Pfad zu diesem
Zeitpunkt bereits eindeutig ist, also nur noch eine Interpretation zulässt, wird er
komplett ausgeschrieben. Bei Zweideutigkeiten wird er nur zum Teil ergänzt, und es
ertönt ein Warnton. Das folgende Beispiel zeigt, wie Sie aus Ihrem Home-Verzeichnis
schnell in das darunterliegende Verzeichnis dokumente wechseln:
user@rechner: ~ # cd do (ÿ)
user@rechner: ~/dokumente #
Angenommen, in Ihrem Home-Verzeichnis befindet sich ein weiteres Verzeichnis
namens dokumente2. In diesem Fall wird durch (ÿ) zwar das Wort »dokumente«
ergänzt, aber die Shell weiß noch nicht, ob Sie wirklich das Verzeichnis dokumente
meinen oder dokumente2. Deshalb wird der besagte Warnton ausgegeben. Wenn Sie
zweimal (ÿ) drücken, wird in den meisten modernen Shells eine Liste der mögli-
chen Alternativen angezeigt.
388
7.1 Arbeiten mit der Shell
Ähnlich komfortabel ist die History aller bereits eingegebenen Befehle. Mit den Pfeil-
tasten auf der Tastatur können Sie darin nach oben oder nach unten blättern; die frü-
heren beziehungsweise späteren Befehle werden dadurch wieder angezeigt. Wenn
der gewünschte Befehl erscheint, können Sie ihn ändern und anschließend mithilfe
von(¢) ausführen.
Neuere Versionen der bash speichern die History übrigens in einer Datei namens
.bash_history in Ihrem Home-Verzeichnis, sodass sie beim nächsten Log-in wieder
zur Verfügung steht.
In der bash können Sie außerdem viele praktische Tastenkürzel verwenden. Es gibt
zwei verschiedene Modi, die nach den im weiteren Verlauf des Kapitels vorgestellten
Texteditoren Emacs und vi benannt sind. Im standardmäßig eingestellten Emacs-
Modus können Sie unter anderem folgende Tastenkombinationen verwenden:
� (æ) oder (Strg) + (B) bewegt den Cursor ein Zeichen nach links; (Æ) oder (Strg) +
(F) navigiert ein Zeichen nach rechts.
� (Alt) + (B) wandert um ein Wort nach links und (Alt) + (F) eines nach rechts; als
Grenze gilt jeweils ein Leerzeichen.
� Mit (Strg) + (A) oder (Pos1) gelangen Sie zum Zeilenanfang, mit (Strg) + (E) oder
(Ende) zum letzten Zeichen der Zeile.
� (Entf) oder (Strg) + (D) löscht das Zeichen unter dem Cursor, während (æ___)
oder (Strg) + (H) das links davon befindliche Zeichen entfernt.
� Mit (Strg) + (W) entfernen Sie ein Wort.
� (Strg) + (K) löscht den Text von der Cursorposition bis zum Zeilenende.
� (Strg) + (U) entfernt den gesamten Inhalt der Zeile.
� (Strg) + (R) startet die inkrementelle Suche nach einem History-Eintrag (inkre-
mentell bedeutet, dass die Eingabe eines Zeichens jeweils sofort zum ersten
infrage kommenden Text springt).
� (Strg) + (Bild_½) beziehungsweise (Strg) + (Bild_¼) ermöglichen das Blättern
im Puffer des Terminal(fenster)s.
� (Strg) + (L) löscht den Bildschirm.
Maus im
Terminal
In modernen Terminalemulationen können Sie einen beliebigen Text durch Ziehen
mit gedrückter linker Maustaste markieren. Ein Klick mit der mittleren Maustaste
oder dem Scrollrad fügt diesen Text dann an der Textcursorposition wieder ein.
Mäuse mit zwei Tasten lassen sich dabei so konfigurieren, dass ein Klick auf beide
Tasten gleichzeitig die mittlere Taste emuliert. Bei den meisten modernen Systemen
funktioniert das Verfahren auch distributionsweit; in GUI-Programmen wird aber
zusätzlich auch die Variante über die Zwischenablage unterstützt – (Strg) + (C) zum
Kopieren beziehungsweise (Strg) + (X) zum Ausschneiden und (Strg) + (V) zum Ein-
fügen.
389
7 Linux
Wie bereits erwähnt, sollten Sie nicht permanent als User root arbeiten. Mitunter
müssen Sie aber zwischendurch eine Konfigurationsaufgabe erledigen, die nur dem
Superuser gestattet ist. Es ist sicherlich keine sehr bequeme Lösung, sich mithilfe von
logout abzumelden und als root wieder anzumelden. Angenehmer ist zu diesem
Zweck der Befehl su, der für substitute user oder auch superuser steht: Wenn Sie als
gewöhnlicher Benutzer su eingeben, werden Sie nach dem root-Passwort gefragt.
Falls Sie es korrekt eingeben, können Sie nun einzelne Befehle als root ausführen. Mit
exit oder (Strg) + (D) erhalten Sie Ihre normale Shell zurück.
Als root können Sie mit su auch im Namen eines anderen Users agieren, ohne dessen
Passwort zu kennen. Dazu müssen Sie lediglich su Benutzername eingeben.
Wenn Sie nur einen einzigen Befehl als root ausführen möchten, können Sie auch
einfach sudo Kommando eingeben – auch hier werden Sie nach dem Passwort gefragt.
Wie bereits erwähnt, existiert auf Ubuntu, Mac OS X und einigen anderen Systemen
kein echter root-User mehr. Deshalb müssen Sie hier als Standardbenutzer (der bei
der Systeminstallation angelegt wurde) stattdessen Ihr eigenes Passwort eingeben,
um mit su oder sudoroot-Rechte zu bekommen.
7.1.4 Hilfefunktionen
Traditionell ist jedes Unix-System mit einem eingebauten Hilfesystem ausgestattet,
den im vorletzten Kapitel erwähnten Manpages (kurz für manual pages, also Hand-
buchseiten). Bei Linux-Systemen kommt ein neueres, komfortableres System
namens GNU info hinzu. Bei den GNU-Tools, also praktisch allen Systemprogram-
men, sind die info-Seiten in der Regel aktueller und ausführlicher als die Manpages.
Manpages
Eine Manpage liefert Informationen über einen bestimmten Befehl, ein Hilfspro-
gramm oder eine Konfigurationsdatei. Um sie anzuzeigen, wird das Programm man
verwendet. Geben Sie beispielsweise Folgendes ein, falls Sie Hilfe zum Befehl ls benö-
tigen, der Verzeichnisinhalte auflistet:
$ man ls
Zuerst formatiert man die Hilfeseite, was eine Weile dauern kann. Danach wird die
Seite angezeigt (siehe Abbildung 7.4), und Sie können mithilfe der folgenden Tasten,
die vom im Folgenden angesprochenen Pager-Programm less bereitgestellt werden,
darin blättern und navigieren:
� (E), (¢) oder (¼) – eine Zeile weiter
� (Y) oder (½) – eine Zeile zurück
� (F), Leertaste oder (Bild_¼) – eine Fensterseite weiter
390
7.1 Arbeiten mit der Shell
� (B) oder (Bild_½) – eine Fensterseite zurück
� (Pos1) – zum Textanfang
� (Ende) – zum Textende
� (/) Suchbegriff (¢) – vorwärts nach dem angegebenen Begriff suchen
� (?) Suchbegriff (¢) – rückwärts suchen
� (N) – nächstes Vorkommen des Suchbegriffs
� (ª) + (N) – nächstes Vorkommen des Suchbegriffs in der jeweils anderen Richtung
� (H) – Hilfeseite zur Bedienung von less
� (Q) – Programm beenden
Abbildung 7.4 Die Manpage zum Befehl »ls« im KDE-Terminal »Konsole«
Jede Manpage gehört zu einer bestimmten Kategorie, die jeweils durch eine der fol-
genden Nummern oder Buchstaben gekennzeichnet werden:
� 0: Include-Dateien für eigene C-Programme (siehe Kapitel 9, »Grundlagen der Pro-
grammierung«)
� 1: Shell-Programme
� 2: Systemaufrufe (Kerneldienste)
� 3: Bibliotheksfunktionen (C-Standardbibliothek und so weiter)
� 4: Beschreibung der Gerätedateien (/dev/*) und anderer Spezialdateien
391
7 Linux
� 5: Konfigurationsdatei-Formate
� 6: Spiele
� 7: Makros (kombinierte Programme)
� 8: Administrationsbefehle (in der Regel root vorbehalten)
� 9: Kernelroutinen
� n: (new) neue Tools
� l: (local) lokale Tools
� p: (public) öffentliche Tools
� o: (old) veraltete Tools
Die Buchstaben-Sektionen sind veraltet und werden üblicherweise nicht mehr ver-
wendet. Einige optionale Programme benutzen auch eigene Kategorien. Sie müssen
die Kategorie immer dann angeben, wenn es mehrere Einträge mit dem gewünsch-
ten Namen gibt.
In diesem Fall lautet die Syntax man Kategorie Eintrag. Beispiel:
$ man 1 passwd
Der Befehl whatis Eintrag oder man -f Eintrag zeigt sämtliche Manpages mit dem ange-
gebenen Namen an; die Sektionen stehen in Klammern:
$ whatis passwdpasswd (lssl) - compute password hashespasswd (1) - change user passwordpasswd (5) - password file
Die Option man -k String oder das gleichbedeutende Kommando apropos verwendet
den eingegebenen Text dagegen als Teilstring:
$ apropos passwdhtpasswd2 (1) - Manage user files for basic authenticationldappasswd (1) - change the password of an LDAP entrypasswd (1) - change user passwordgpasswd (1) - change group password[...]
GNU info
Das Hilfesystem GNU info wird durch den Befehl info aktiviert. Wenn Sie kein Stich-
wort eingeben, wird der Directory Node angezeigt, in dem Sie eine Übersicht über die
verschiedenen Themen erhalten. Die Tastenkürzel, mit denen Sie in GNU info navi-
gieren können, entsprechen im Großen und Ganzen dem in Abschnitt 7.4.2 vorge-
stellten Editor GNU Emacs. Hier die wichtigsten im Überblick:
392
7.1 Arbeiten mit der Shell
� (Strg) + (F) (forward) – ein Zeichen weiter
� (Strg) + (B) (backward) – ein Zeichen zurück
� (Strg) + (N) (next) – eine Zeile weiter
� (Strg) + (P) (previous) – eine Zeile zurück
� (Strg) + (A) – zum Zeilenanfang
� (Strg) + (E) – zum Zeilenende
� Leertaste – eine Bildschirmseite weiter
� (Entf) oder (æ___) – eine Bildschirmseite zurück
� (M) Thema (¢) (menu) – ruft die info-Seite zum angegebenen Thema auf. Falls es zu
dem Wort unter dem Cursor eine Seite gibt, wird diese automatisch eingetragen.
� (N) (next) – eine Seite im aktuellen Oberthema weiterblättern
� (P) (previous) – eine Seite zurückblättern
� (U) (up) – eine Ebene nach oben; die oberste Ebene ist der Directory Node
� (L) (last) – zurück zur vorher angezeigten Seite
� (H) (help) – Hilfe zu info selbst; zurück mit (L)
� (?) – tabellarische Kurzübersicht über info; zurück mit (L)
� (Q) – info beenden
In Abbildung 7.5 sehen Sie als Beispiel die GNU-info-Seite zum Befehl ls.
Abbildung 7.5 Die GNU-info-Seite zu »ls« im KDE-Terminal »Konsole«
393
7 Linux
7.1.5 Pipes und Ein-/Ausgabeumleitung
Eine der praktischsten Eigenschaften der Unix-Shells besteht in der Umleitung von
Ein- und Ausgabe sowie deren Verkettung. Mit der Ausgabe eines Befehls können Sie
mehr tun, als sie einfach auf dem Bildschirm darzustellen, und die Eingabe muss
nicht unbedingt von der Tastatur stammen: Sie können die Eingabe für einen Befehl
aus einer Datei holen, die Ausgabe in eine Datei schreiben und schließlich die Aus-
gabe des einen Befehls als Eingabe für den nächsten verwenden. Auf diese Weise kön-
nen Sie die einfachen Bausteine der Systembefehle zur Erledigung komplexer
Aufgaben einsetzen.
Ausgabe-
umleitung
Der Befehl ls dient beispielsweise dazu, den Inhalt des aktuellen Verzeichnisses aus-
zugeben. Möchten Sie diesen Inhalt lieber in eine andere Datei schreiben, können Sie
folgendermaßen vorgehen:
$ ls >inhalt.txt
In diesem einfachen Beispiel wird der Inhalt des aktuellen Verzeichnisses nicht auf
den Bildschirm geschrieben, sondern in die Datei inhalt.txt. Diese Datei wird automa-
tisch neu angelegt, falls sie noch nicht existiert, ansonsten wird sie überschrieben.
Wenn Sie die Ausgabe eines Befehls lieber an eine bestehende Datei anhängen möch-
ten, können Sie statt des einen >-Zeichens zwei verwenden (sollte die Datei noch
nicht existieren, wird sie dadurch dennoch angelegt):
$ ls >>inhalt.txt
Eingabe-
umleitung
Auf ähnliche Weise können Sie die Eingabe für einen Befehl aus einer Datei lesen.
Zum Beispiel gibt der Befehl grep alle Zeilen eines eingegebenen Textes zurück, in
Die StandardI/O-Kanäle
Die Standardbibliothek der Programmiersprache C kennt drei Standardkanäle
(Streams) zur Ein- und Ausgabe (Input/Output oder kurz I/O):
�stdin ist die Standardeingabe. Sie ist normalerweise mit der Tastatur verknüpft.
�stdout, die Standardausgabe, wird per Voreinstellung auf die Konsole geleitet.
�stderr schließlich ist die Standard-Fehlerausgabe. Auch sie landet für gewöhnlich
auf der Konsole. Vorteil: Wenn Sie stdout in eine Datei umleiten, werden Fehler-
meldungen noch immer angezeigt.
Da Unix und andere Betriebssysteme in C geschrieben sind, besitzen auch sie diese
Eigenschaften (unter Windows ist es beispielsweise genauso): Die Ein- und Ausga-
beumleitung basiert auf einer Verknüpfung von stdin, stdout beziehungsweise
stderr mit anderen Dateien oder Geräten.
394
7.1 Arbeiten mit der Shell
dem ein Suchmuster vorkommt. Falls Sie alle Zeilen der Datei inhalt.txt suchen
möchten, die mindestens ein a enthalten, funktioniert das folgendermaßen:
$ grep a <inhalt.txt
Für den Befehl grep ist diese Schreibweise eigentlich überflüssig, da auch grep Muster
Dateiname unterstützt wird – im vorliegenden Beispiel also:
$ grep a inhalt.txt
Eine interessante Variante der Eingabeumleitung ist das HIER-Dokument. Diese Art
der Eingabe stammt nicht aus einer Datei, sondern nimmt alle eingegebenen Zeilen
bis zu einer speziellen Markierung entgegen. Das folgende Beispiel sucht mithilfe
von grep nach allen Zeilen in der Eingabe, die mindestens ein a enthalten:
% grep a <<ENDE> Hallo> liebe> Welt> ENDE
Die Ausgabe dieser eingegebenen Sequenz lautet folgendermaßen:
Hallo
Die Markierung ENDE bildet das Ende der Eingabe. Die grep-Suchmuster werden im
nächsten Abschnitt behandelt.
PipesEine weitere Variante der Ein- und Ausgabeumleitung ist die sogenannte Pipe
(»Röhre«). Es geht darum, die Ausgabe eines Befehls als Eingabe für den nächsten zu
verwenden. Eine der gängigsten Kombinationen ist die Weiterleitung der umfangrei-
chen Ausgabe bestimmter Befehle an einen Pager – ein Programm, das Inhalte seiten-
weise ausgibt. Der ursprüngliche Unix-Pager wird more genannt, die erheblich
mächtigere Open-Source-Alternative heißt less (Anspielung auf »less is more«, »weni-
ger ist mehr«).
Angenommen, der Inhalt des aktuellen Verzeichnisses ist länger als die Anzahl der
Zeilen Ihres Terminals. In diesem Fall können Sie diesen Inhalt an less weiterleiten:
$ ls |less
Das Pipe-Zeichen | wird auf einer deutschen PC-Tastatur mit der Tastenkombination
(Alt_Gr) + (<) erzeugt; auf dem Mac ist es die Tastenkombination (Alt) + (7).
Das Programm less kann auch den Inhalt einer Datei anzeigen und ist auf diese Weise
ein komfortabler Ersatz für cat, das der Anzeige einer oder mehrerer Dateien im Ter-
395
7 Linux
minal dient. Im Grunde ist ls |less also eine Kurzfassung für die beiden folgenden
Einzelbefehle:
$ ls >temp.txt$ less temp.txt
Auf ähnliche Weise lässt sich jede Pipe durch zwei Einzelbefehle ersetzen, wobei der
zweite Befehl oft nicht direkt mit einem Dateinamen als Argument aufgerufen wird,
sondern mit einer Eingabeumleitung.
Eine Pipe hat allerdings zwei bedeutende Vorteile gegenüber der Verwendung von
einzelnen Befehlen: Erstens muss keine Zwischendatei erzeugt werden, und zweitens
beginnt der zweite Befehl einer Pipe bereits zu arbeiten, wenn er die erste Zeile aus
der Ausgabe des ersten Befehls erhält.
Eine weitere verbreitete Anwendung für Pipes besteht in der unmittelbaren Filte-
rung einer Ausgabe mithilfe von grep. Das folgende Beispiel gibt nur diejenigen
Dateien im aktuellen Verzeichnis aus, die die Zeichenfolge txt enthalten:
$ ls |grep txt
Hier noch ein Beispiel: Es reicht die Ausgabe von ls an das Kommando wc (Wortzäh-
ler) weiter; die Option -l sorgt dafür, dass nur Zeilen gezählt werden. Das Ergebnis ist
somit die Anzahl der Einträge im aktuellen Verzeichnis:
$ ls |wc -l
Sie können mehrere Kommandos auch durch ein Semikolon getrennt hintereinan-
derschreiben. Dadurch werden sie einfach nacheinander ausgeführt. Das folgende
Beispiel kommt sehr häufig vor. Die meisten Programme, die Sie selbst aus dem
Sourcecode kompilieren können, verwenden diese Sequenz dafür:
# ./configure [Optionen]; make; make install
Ein Nachteil des Semikolons besteht darin, dass auch dann versucht wird, den nächs-
ten Befehl auszuführen, wenn der vorherige fehlschlägt. Abhilfe schafft hier die Ver-
knüpfung mithilfe von && (logisches Und) – der zweite Befehl wird dann nur bei Erfolg
des ersten ausgeführt. Schreiben Sie die Sequenz also am besten wie folgt, um ein
Programm unbeaufsichtigt zu kompilieren:
# ./configure [Optionen] && make && make install
Das Gegenteil besorgt die Verknüpfung durch || (logisches Oder) – hier wird der
zweite Befehl nur dann ausgeführt, wenn der erste fehlschlägt.
396
7.1 Arbeiten mit der Shell
Eine letzte Möglichkeit besteht darin, ein Kommando in Backticks (``) einzuschlie-
ßen, um seine Ausgabe in einem anderen Zusammenhang zu verwenden. Hier ein
Beispiel, das die Ausgabe von whoami (Name des aktuell angemeldeten Benutzers) in
einen ganzen Satz integriert:
$ echo "Zurzeit ist `whoami` angemeldet."Zurzeit ist sascha angemeldet.
7.1.6 Die wichtigsten Systembefehle
In Linux und andere Unix-Varianten wurden Unmengen von Systemprogrammen
eingebaut. Es ist vollkommen aussichtslos, an dieser Stelle auch nur die Hälfte hier-
von zu behandeln. In diesem Abschnitt lernen Sie stattdessen die wichtigsten Kom-
mandos mit ihren gängigsten Optionen kennen. Weitere Linux- beziehungsweise
Unix-Befehle werden in reinen Linux- oder Unix-Büchern behandelt; einige empfeh-
lenswerte Titel zu diesem Thema werden in Anhang C, »Kommentiertes Literaturver-
zeichnis«, genannt.
Bevor es losgeht, sollten Sie sich einige wichtige Fakten über die meisten Unix-Sys-
temprogramme merken:
� Im Erfolgsfall erhalten Sie keinerlei Rückmeldung, sondern nur den nächsten
Prompt.
� Dateien werden standardmäßig gelöscht oder überschrieben, ohne zuvor nachzu-
fragen.
� Die meisten Kommandos können mit einer Vielzahl von Optionen aufgerufen
werden, die in der Regel aus einem Minuszeichen und einem Buchstaben (mit
Unterscheidung von Groß- und Kleinschreibung) bestehen. Die GNU-Versionen
der Tools kennen auch Optionen im Langformat – zwei Minuszeichen, gefolgt von
einem ganzen Wort (oder mehreren durch weitere Minuszeichen getrennten Wör-
tern).
Arbeiten mit Dateien und Verzeichnissen
Einige der grundlegenden Befehle in einem Betriebssystem dienen der Manipulation
von Dateien und Verzeichnissen. Wenn Sie eine Übersicht über die Grundbegriffe
eines Linux-Dateisystems benötigen, lesen Sie bitte den Abschnitt »Das virtuelle
Unix-Dateisystem« in Kapitel 5, »Betriebssystemgrundlagen«.
Dateinamen-
muster
Alle Unix-Shells bieten die Möglichkeit, Datei- und Verzeichnisnamen in vielen
Befehlen durch Muster anzugeben, die auf mehrere Dateien passen. In diesen Mus-
tern gibt es die folgenden wichtigen Sonderzeichen (die in Dateinamen verboten
oder zumindest problematisch sind):
397
7 Linux
� Das * ersetzt beliebig viele Zeichen. h*o steht beispielsweise für »hallo«, »hello«
oder »ho«.
� Das ? steht für genau ein Zeichen. Zum Beispiel bezeichnet te?t sowohl »test« als
auch »text«.
� Mehrere Zeichen in eckigen Klammern, wie [abc], bedeuten, dass genau eines die-
ser Zeichen gemeint ist. Durch einen Bindestrich können Bereiche wie a-z gebildet
werden; mehrere Listen werden einfach hintereinandergeschrieben. Beispiels-
weise bedeutet die Liste [a-zA-Z0-9], dass alle Kleinbuchstaben, alle Großbuchsta-
ben und alle Ziffern zulässig sind.
� Ein Ausrufezeichen vor der Liste in den eckigen Klammern bedeutet, dass jedes
Zeichen außer den nachfolgenden Zeichen in dieser Liste zulässig ist. [!Bb] bedeu-
tet etwa, dass auf keinen Fall ein B erlaubt ist – weder ein groß- noch ein kleinge-
schriebenes.
� Eine durch Kommata getrennte Liste von Zeichenketten in geschweiften Klam-
mern bedeutet, dass eine dieser Zeichenketten erwartet wird. Zum Beispiel bedeu-
tet {info,hinweis,hilfe}.txt, dass eine der drei Dateien info.txt, hilfe.txt oder
hinweis.txt gesucht wird.
� Durch ein Pipe-Zeichen (|) können Sie schließlich mehrere Muster angeben, die
durch »Oder« verknüpft werden. Trifft eines dieser Muster auf eine Datei zu, passt
sie zum Gesamtmuster. Der Ausdruck b*|info* bedeutet beispielsweise: alle
Dateien, die mit »b« oder mit »info« beginnen.
Beachten Sie bitte, dass die »Dateierweiterung« (die Abkürzung hinter dem letzten
Punkt wie etwa txt) unter Unix ein normaler Bestandteil des Dateinamens ist, falls
Sie die Dateimuster unter Windows kennen sollten. In einem Unix-Befehl steht * für
alle Dateien. Unter Windows ist ein * dagegen nur der Platzhalter für Dateien ohne
Erweiterung, während *.* dort für alle Dateien steht (außer in der im vorigen Kapitel
beschriebenen Windows PowerShell).
Diese einfachen Suchmuster für Dateien werden übrigens nicht mit dem bereits
erwähnten Befehl grep verwendet. Die dort zulässigen Muster bieten noch erheblich
mehr Möglichkeiten.
Die folgende Übersicht zeigt die gängigsten Linux-Datei- und Verzeichnisbefehle mit
ihren wichtigsten Optionen:
� cp (steht für copy) kopiert eine oder mehrere Dateien an den angegebenen Ort. Die
Syntax ist grundsätzlich folgende:
cp Quelle Ziel
Die Quelle kann eine einzelne Datei oder ein Muster sein; Sie können alternativ
auch einen Pfad angeben. Das Ziel ist entweder ein einzelner Dateiname (falls Sie
nur eine Datei kopieren) oder ein Verzeichnis, falls im Zielordner bereits ein Ver-
398
7.1 Arbeiten mit der Shell
zeichnis mit diesem Namen existiert oder falls Sie als Quelle keine einzelne Datei,
sondern ein Muster angegeben haben. Das folgende Beispiel kopiert die Datei
hallo.txt in eine neue Datei namens hi.txt:
$ cp hallo.txt hi.txt
Das nächste Beispiel kopiert alle Dateien aus dem Verzeichnis briefe in das Ver-
zeichnis dokumente, das im gleichen Verzeichnis liegt wie briefe:
$ cp briefe/* dokumente
� mv (move) dient dazu, Dateien umzubenennen oder in ein anderes Verzeichnis zu
verschieben. Die Syntax lautet folgendermaßen:
mv Quelle Ziel
Die Quelle ist wieder eine einzelne Datei oder ein Muster, das Ziel ist ein völlig
neuer Name oder der Name eines bestehenden Verzeichnisses.
Die folgende Anweisung benennt die Datei vorher.txt in nachher.txt um:
$ mv vorher.txt nachher.txt
Wenn Sie als Quelle ein Muster statt einer einzelnen Datei angeben, muss das Ziel
ein bestehendes Verzeichnis sein. Sie können mehrere Dateien auf einmal nicht
umbenennen, sondern nur verschieben.
� rm (remove) löscht die angegebene Datei, und zwar endgültig. Eine Einrichtung wie
der Windows- oder Mac-Papierkorb ist nicht vorgesehen – lediglich einzelne Desk-
top-Manager wie KDE oder GNOME sind damit ausgestattet.
Das folgende Beispiel löscht alle Dateien aus dem aktuellen Verzeichnis, deren
Name nicht mit a beginnt:
$ rm [!a]*
rm löscht Dateien nur im aktuellen Verzeichnis, aber nicht in dessen Unterver-
zeichnissen. Wenn Sie auch die Inhalte der Unterverzeichnisse löschen möchten,
müssen Sie die Option -r (recurse) einsetzen. Noch effizienter (und gefährlicher!)
ist die zusätzliche Option -f (force), die das Löschen schreibgeschützter Dateien
erzwingt. Der folgende Befehl löscht alle Dateien im aktuellen Verzeichnis und alle
Unterverzeichnisse und sollte nur mit äußerster Vorsicht eingesetzt werden:
$ rm -rf *
Wie hier können Sie übrigens auch bei den meisten anderen Befehlen mehrere
Optionen hinter einem einzelnen Minuszeichen platzieren.
Beachten Sie, dass es sich beim Löschen, Umbenennen oder Verschieben um
Schreibzugriffe handelt, die Sie nur ausführen dürfen, wenn Sie Schreibrechte für
die jeweiligen Verzeichnisse und Dateien besitzen.
� ls (list) zeigt den Inhalt des aktuellen oder des angegebenen Verzeichnisses an, das
heißt alle enthaltenen Dateien und Unterverzeichnisse. Wenn Sie ein Muster
angeben, wird es als Filter verwendet. Existieren Dateien, deren Namen zu diesem
399
7 Linux
Muster passen, dann werden nur diese angezeigt. Andernfalls werden zusätzlich
zum aktuellen Verzeichnis auch die Inhalte der Unterverzeichnisse angezeigt, auf
deren Namen das Muster passt.
Die folgende Anweisung zeigt beispielsweise alle Dateien an, die mit b beginnen.
Falls es keine gibt, werden alternativ die Inhalte aller Verzeichnisse angezeigt, die
mit b anfangen:
$ ls b*
Eine wichtige Option dieses Befehls ist -l (long), die statt der einfachen Namen
ausführliche Informationen über jeden Verzeichniseintrag ausgibt. Auch -a (all)
wird relativ häufig verwendet, weil es versteckte Dateien und Verzeichnisse ein-
blendet, das heißt diejenigen, deren Namen mit einem Punkt beginnen.
� pwd (print working directory) gibt den vollständigen Pfad des aktuellen Arbeitsver-
zeichnisses an. Dies ist beispielsweise nützlich, um den tatsächlichen Pfad des eige-
nen Home-Verzeichnisses zu ermitteln, der im Prompt durch ~ abgekürzt wird.
� cd (change directory) wechselt in das angegebene Arbeitsverzeichnis. Sie können
den gewünschten Pfad entweder relativ zum aktuellen Arbeitsverzeichnis oder
absolut durch einen vorangestellten Slash (/) angeben. Die folgende Anweisung
wechselt beispielsweise aus /home/user/dokumente in das Verzeichnis /home/
user/briefe:
user@rechner: ~/dokumente $ cd ../briefeuser@rechner: ~/briefe $
Das folgende Beispiel wechselt dagegen mithilfe einer absoluten Angabe von
/home/user/dokumente nach /etc:
user@rechner: ~/dokumente $ cd /etcuser@rechner: /etc $
� mkdir legt ein neues Verzeichnis mit dem angegebenen Pfad an. So richtet etwa die
folgende Anweisung unterhalb des aktuellen Verzeichnisses das neue Verzeichnis
test ein:
$ mkdir test
Beachten Sie, dass bei der Angabe eines mehrgliedrigen Pfads alle Verzeichnisse
außer dem hintersten bereits existieren müssen. Die Option -p (parents) erzeugt
dagegen auch verschachtelte Pfade. Das folgende Beispiel legt im aktuellen Verzeich-
nis die ineinander verschachtelten Verzeichnisse neu, texte, briefe an:
$ mkdir -p neu/texte/briefe
� rmdir (remove directory) löscht Verzeichnisse, allerdings nur leere. Zum Löschen
verschachtelter Verzeichnisbäume wird rm mit der Option -r verwendet.
� chmod (change mode) ändert die Zugriffsrechte für Dateien und Verzeichnisse. Das
Konzept der Dateizugriffsrechte wurde in diesem Kapitel bereits angesprochen. Es
400
7.1 Arbeiten mit der Shell
gibt grundsätzlich zwei Möglichkeiten, Rechte für die gewünschten Dateien oder
Verzeichnisse anzugeben: symbolisch oder numerisch.
Die symbolische Schreibweise verwendet zunächst einen Buchstaben für die
Benutzerart, für die ein Recht geändert werden soll: u für den Eigentümer (user), g
für die Gruppe (group), o für andere Benutzer (others) und a für alle genannten auf
einmal. Darauf folgt ein +, um ein bestimmtes Recht einzuräumen, ein -, um es zu
entfernen, oder ein =, um die angegebenen Rechte zu setzen und die anderen zu
entfernen. Zum Schluss werden die eigentlichen Rechte selbst angegeben: r für
Lesen (read), w für Schreiben (write) und x für Ausführen (execute).
Die folgende Anweisung erlaubt beispielsweise allen Benutzern das Lesen der
Datei inhalt.txt:
$ chmod a+r inhalt.txt
Numerische Angaben setzen dagegen den gesamten Rechteblock für die Datei auf
einmal: Die Stellen einer dreistelligen Oktalzahl (gekennzeichnet durch eine vor-
angestellte Null) geben von links nach rechts die Zugriffsrechte für den Besitzer,
die Gruppe und alle anderen an. Der Wert jeder Stelle ist dabei die Summe der
Rechte, die gewährt werden: 4 für Lesen, 2 für Schreiben und 1 für Ausführen.
Das folgende Beispiel erlaubt dem Eigentümer das Lesen, Schreiben und Ausfüh-
ren, allen anderen nur das Lesen und Ausführen des Verzeichnisses test:
$ chmod 0755 test
Die Option -R (großgeschrieben!) führt die gewünschte Änderung nicht nur im
aktuellen Verzeichnis durch, sondern auch in allen Unterverzeichnissen.
� chown (change owner) weist der angegebenen Datei einen neuen Eigentümer zu.
Die Syntax des Befehls ist folgende:
chown User Datei(-muster)
Der User muss ein existierender Benutzer sein; außerdem können Sie diese Ände-
rung nur durchführen, wenn Sie selbst Schreibrechte an dieser Datei haben. Das
folgende Beispiel teilt die Datei info dem Benutzer user zu:
$ chown user info
� chgrp (change group) ändert die Gruppe, zu der eine Datei gehört, und funktioniert
genau wie chown.
Textanzeige und Textmanipulation
Viele der Arbeiten, die Sie im Betriebssystem durchführen, haben in irgendeiner
Weise mit der Manipulation von Textdateien zu tun. In diesem Abschnitt werden
einige der wichtigsten Befehle vorgestellt, die Ihnen die Arbeit mit solchen Dateien
ermöglichen.
401
7 Linux
� Der bereits erwähnte Befehl echo gibt sämtlichen folgenden Text auf der Konsole
aus. Sie können den gesamten Text oder einen Teil davon in Anführungszeichen
setzen, müssen es aber nicht. Wenn Sie doppelte ("") oder gar keine Anführungs-
zeichen verwenden, werden Variablen mit führendem Dollarzeichen durch ihren
aktuellen Wert substituiert oder Befehle in Backticks ausgeführt. Beispiele:
$ echo Hallo, $USER!Hallo, sascha!$ echo Dateien im aktuellen Verzeichnis: `ls -m`Dateien im aktuellen Verzeichnis: test.txt, hallo.sh, ...
Die ls-Option -m gibt übrigens nur die Dateinamen durch Komma getrennt hin-
tereinander aus.
Einfache Anführungszeichen verhindern dagegen die Substitution:
$ echo '`Backticks` liefern die Befehlsausgabe'`Backticks` liefern die Befehlsausgabe$ echo '$USER' ist zurzeit $USER$USER ist zurzeit sascha
Die Option -n verhindert den Zeilenumbruch nach der Ausgabe:
$ echo -n "Hier kommt der Prompt: "Hier kommt der Prompt: $
� cat (catalog) ist der wichtigste aller Textdatei-Befehle: Er zeigt einfach den Inhalt
der Datei an. Wenn Sie durch Leerzeichen getrennt eine Liste von Dateien angeben
(oder ein Muster), werden die Inhalte aller genannten Dateien hintereinander
angezeigt. Dies ist übrigens eine einfache Möglichkeit, mehrere Textdateien in
eine einzige zusammenzufassen. Die folgende Anweisung schreibt die Dateien
teil1 und teil2 in eine neue Datei namens kapitel:
$ cat teil1 teil2 >kapitel
Sie können cat mithilfe der Ausgabeumleitung und mit einem HIER-Dokument
sogar als einfachen Editor für eine neue Textdatei verwenden. Allerdings können
Sie die einzelnen Zeilen nach dem Abschluss durch (¢) nicht mehr ändern. Die
folgende Anweisung startet die Eingabe der Datei neu.txt, der Befehl ENDE schließt
sie ab:
$ cat > neu.txt << ENDE> Neuer Text> Noch mehr Text> ENDE
� Der Befehl head Textdatei zeigt nur den Beginn einer Datei an; standardmäßig die
ersten zehn Zeilen. Mit der Option -Anzahl können Sie die Zeilenzahl auch wählen.
Das folgende Beispiel gibt die ersten sieben Zeilen der Datei test.txt aus:
$ head –7 test.txt
402
7.1 Arbeiten mit der Shell
� Das Kommando tail zeigt umgekehrt das Ende einer Datei an. Dies ist ideal, um in
einer Log-Datei nach einem kürzlich aufgetretenen Fehler zu suchen. Hier ein Bei-
spiel, das die letzten 20 Zeilen der Haupt-Log-Datei /var/log/messages ausgibt:
$ tail –20 /var/log/messages
Die Option -f zeigt die letzten zehn Zeilen an und hält danach die Ausgabe offen,
um jede neu hinzukommende Zeile automatisch auszugeben.
� less ist die erweiterte GNU-Version des Unix-Pagers more. Das Programm gibt
seine Eingabedaten bildschirmseitenweise aus. Das folgende Beispiel gibt die
Datei roman auf diese Weise aus:
$ less roman
Wenn das untere Ende des Bildschirms beziehungsweise des Terminalfensters
erreicht ist, erscheint ein entsprechender Hinweis. An dieser Stelle haben Sie ver-
schiedene Möglichkeiten, unter anderem folgende:
– Die Leertaste blättert eine ganze Bildschirmseite weiter.
– (¢) blättert nur eine einzelne Zeile weiter.
– (B) blättert eine Bildschirmseite zurück.
– (Q) beendet less.
Weitere Optionen finden Sie zuvor in der Beschreibung zu man, da es die Manpages
mithilfe von less anzeigt.
Statt eine oder mehrere Dateien als Parameter anzugeben, wird less auch häufig
über eine Pipe zur seitenweisen Ausgabe der Ergebnisse anderer Befehle einge-
setzt. Das folgende Beispiel gibt den Inhalt der ausführlichen Verzeichnisanzeige
ls-l seitenweise aus:
$ ls -l |less
� grep (General Regular Expression Print) sucht in Dateien oder in seiner Eingabe nach
Mustern und gibt nur diejenigen Zeilen aus, die das entsprechende Muster enthal-
ten. Bei den verwendeten Mustern handelt es sich um sogenannte reguläre Ausdrü-
cke (Regular Expressions, RegExp). Diese mächtige Syntax für die Formulierung
von Suchmustern wird in zahlreichen Programmiersprachen, Editoren und Tools
verwendet. In Kapitel 10, »Konzepte der Programmierung«, werden die RegExp-
Optionen der Programmiersprachen Perl und Ruby ausführlich vorgestellt.
Wenn Sie beispielsweise in der Datei test nach Zeilen suchen möchten, die das
Wort »hallo« enthalten, funktioniert dies folgendermaßen:
$ grep hallo test
Die Option -r erlaubt die rekursive Suche im aktuellen Verzeichnis und allen
Unterverzeichnissen. Dabei wird jeweils der Pfad der Datei angezeigt, in der das
gesuchte Muster gefunden wird. Das folgende Beispiel sucht in allen Dateien des
aktuellen Verzeichnisbaums nach dem Wort »Linux«:
403
7 Linux
$ grep -r Linux *
Mit der Option -i sorgen Sie dafür, dass bei der Suche nicht zwischen Groß- und
Kleinschreibung unterschieden wird; der vorige Befehl lautet in diesem Fall so:
$ grep -ri linux *
Alternativ wird grep häufig über eine Pipe als Filter eingesetzt. Möchten Sie zum
Beispiel alle Dateien im aktuellen Verzeichnis angezeigt haben, deren Name mit a
beginnt, können Sie Folgendes eingeben:
$ ls |grep ^a
Beachten Sie, dass es bei den Mustern größere Unterschiede zu den Dateimustern
der meisten Befehle gibt; RegExp-Muster sind erheblich vielseitiger als Letztere.
Tabelle 7.2 zeigt eine Übersicht der wichtigsten.
Wenn Sie irgendeins der Zeichen aus der Tabelle als Literal benötigen, also als tat-
sächliches Zeichen in einem Text, müssen Sie ihm einen Backslash (\) voranstel-
len. \+ steht beispielsweise für ein Pluszeichen. Derartige Konstrukte werden in
der Shell und in vielen Programmiersprachen als Escape-Sequenzen bezeichnet.
Muster (Beispiel) Erläuterung
Abc der Text »abc«
[abc] eines der Zeichen a, b oder c
[a-z] eines der Zeichen von a bis z
[a-mz0-9] eines der Zeichen von a bis m oder z oder eine der Ziffern 0 bis 9
[^abc] keines der angegebenen Zeichen
. ein beliebiges Zeichen
? das davorstehende Muster oder nicht
* das davorstehende Muster beliebig oft
+ das davorstehende Muster einmal oder öfter
{2} das davorstehende Muster genau zweimal
{2,5} das davorstehende Muster mindestens zweimal, höchstens
fünfmal
^[Aa] Am Zeilenbeginn (^) steht ein großes A oder ein kleines a.
[0-9]$ Am Zeilenende ($) steht eine Ziffer.
Tabelle 7.2 Die wichtigsten RegExp-Muster für »grep«
404
7.1 Arbeiten mit der Shell
Angenommen, Sie suchen in einem Text nach deutschen Postleitzahlen. Das pas-
sende Muster lautet [0-9]{5}, weil genau fünf Ziffern (Zahlen zwischen 0 und 9)
benötigt werden. Wenn Sie sicher sind, dass die Postleitzahl jeweils am Anfang der
Zeile steht, können Sie präziser ^[0-9]{5} schreiben.
Wichtig ist, dass * und ? nicht dasselbe bedeuten wie bei den Dateimustern: Sie
beziehen sich stets auf das links daneben stehende Zeichen oder Teilmuster und
geben an, wie oft es vorkommen darf.
Das folgende Beispiel zeigt, wie Sie in der Datei adressen.txt nach Personen suchen
können, die »Meier« heißen, und zwar in allen erdenklichen Schreibweisen:
grep M[ae][iy]e?r adressen.txt
Der reguläre Ausdruck bedeutet: Zuerst kommt ein M, dann ein a oder e, anschlie-
ßend ein i oder y, dann ein e oder auch nicht und zum Schluss ein r. Dieses Such-
muster findet die Varianten »Maier«, »Mayer«, »Mayr«, »Meier« und »Meyer«
sowie drei weitere, die aber wohl nicht häufig in einer Adressliste auftauchen
(»Mair«, »Meir« und »Meyr«).
� diff vergleicht die Inhalte zweier Textinhalte miteinander. Als Argumente werden
die Namen der beiden Dateien genannt; die Ausgabe besteht aus denjenigen Zei-
len, die in den beiden Dateien unterschiedlich sind. Dies ermöglicht die Analyse
der Unterschiede zwischen verschiedenen Versionen eines Dokuments. Außer-
dem können Sie eine diff-Datei als Update für eine Datei auf eine neuere Version
(einen sogenannten Patch) verbreiten. Mit dem Kommando patch kann ein Benut-
zer sie dann auf die alte Datei anwenden.
� wc (word count) zählt die Zeichen, Wörter und Zeilen in einer Textdatei. Standard-
mäßig werden alle drei Werte angezeigt; alternativ kann die Ausgabe mithilfe der
Optionen -c (characters), -w (words) oder -l (lines) auf einen von ihnen beschränkt
werden. Sie können den Befehl auch über eine Pipe auf eine beliebige Ausgabe
anwenden.
Befehle zur Systemverwaltung
Die Befehle in diesem Abschnitt sind wichtig für die Wartung und Verwaltung des
Betriebssystems.
� mount wurde in Kapitel 5, »Betriebssystemgrundlagen«, bereits angesprochen. Der
Befehl hängt einen Datenträger in den Verzeichnisbaum ein. Anders können
Datenträger nicht verwendet werden. Die grundlegende Syntax lautet folgender-
maßen:
mount [Dateisystemtyp] Gerätedatei Verzeichnis
Das angegebene Verzeichnis muss existieren und leer sein – notfalls müssen Sie
mithilfe von mkdir ein neues erzeugen. Die wichtigsten Gerätedateien – alle im
Verzeichnis /dev – sind folgende:
405
7 Linux
– hda bis hdd sind die vier EIDE-Geräte in der Reihenfolge Primary Master, Pri-
mary Slave, Secondary Master und Secondary Slave. Falls es sich um Festplatten
handelt, muss zusätzlich die Nummer der gewünschten Partition angegeben
werden (hda1 ist beispielsweise die erste Partition der ersten Festplatte).
– cdrom ist eine alternative Methode, das CD-ROM-Laufwerk anzusprechen.
– sda, sdb und so weiter sind die entsprechenden SCSI-Festplatten in der Reihen-
folge ihrer SCSI-IDs. Auch USB-Sticks und externe Festplatten besitzen meist
sd*-Gerätenamen.
– fd0 ist das Diskettenlaufwerk. Theoretisch steht fd1 für das zweite Laufwerk,
allerdings benutzt kaum noch jemand zwei Diskettenlaufwerke (die meisten
aktuellen Rechner haben gar keines mehr).
Das folgende Beispiel bindet die aktuell im Diskettenlaufwerk befindliche Diskette
als Verzeichnis /disk in das Dateisystem ein:
$ mount /dev/fd0 /disk
Die Datei /etc/fstab enthält übrigens eine Liste derjenigen Laufwerke, die beim
Systemstart automatisch gemountet werden. Moderne Linux-Distributionen
mounten übrigens auch CDs, DVDs, USB-Sticks oder externe Festplatten beim
Einlegen oder Anschließen automatisch, oft unter dem Pfad /media/Datenträger-
name.
� umount entfernt die Verknüpfung mit einem bestimmten Laufwerk wieder. Vorher
wird noch dafür gesorgt, dass alle Daten geschrieben werden, die eigentlich auf
dieses Laufwerk gehören, sich aber zurzeit im RAM-Cache befinden. Vor dem Ent-
fernen von Wechseldatenträgern sollten Sie umount auf jeden Fall aufrufen.
Als Argument für den Befehl kann sowohl das Verzeichnis angegeben werden, in
dem der gewünschte Datenträger gemountet ist, als auch die Gerätedatei selbst.
� du (disk usage) gibt in Kilobyte an, wie viel Speicher in den angegebenen Verzeich-
nissen belegt ist.
Die Option -c gibt zusätzlich eine Gesamtsumme für die verschiedenen Verzeich-
nisse aus, während -h (human-readable) das Ganze in angenehmerer Form dar-
stellt.
� fsck (file system check) überprüft den angegebenen Datenträger auf Fehler. Als
Argument muss eine Gerätedatei angegeben werden. Vor jedem Reparaturver-
such wird nachgefragt.
Beim Systemstart wird fsck in regelmäßigen Abständen (zum Beispiel jedes zwan-
zigste Mal) aufgerufen, um eine gelegentliche Prüfung zu gewährleisten. Außer-
dem wird es auf jeden Fall nach einem Systemabsturz gestartet.
Moderne Linux-Dateisysteme wie ext4 (das Extended File System 4) besitzen eine
sogenannte Journaling-Funktionalität: Es wird ständig über Änderungen an
406
7.1 Arbeiten mit der Shell
Dateien und Verzeichnissen Buch geführt. Nach einem Absturz kann daraus der
letzte Zustand des Dateisystems rekonstruiert werden.
� mkfs (make file system) dient dem Formatieren eines Datenträgers mit einem
bestimmten Dateisystem. Der gewünschte Typ des Dateisystems kann mithilfe
der Option -t angegeben werden. Beispiele sind etwa das traditionelle Linux-
Dateisystem ext2 sowie die neueren Typen ext3 oder ext4. Der Datenträger wird als
Gerätedatei oder über sein Mount-Verzeichnis angegeben.
Im Grunde handelt es sich um einen Starter für die konkreten Formatierpro-
gramme der einzelnen Dateisysteme wie mke2fs, mke3fs, mke4s oder mkisofs
(Letzteres erzeugt ISO-9660-Images, die zum Brennen auf CD verwendet werden).
� date dient der Ausgabe und der Änderung von Systemdatum und Systemuhrzeit.
Wie Sie in Kapitel 3, »Hardware«, erfahren haben, enthalten PC-Mainboards eine
batteriegepufferte Uhr.
Wenn Sie Datum und Uhrzeit einfach lesen möchten, genügt die Eingabe von date.
Alternativ geben Sie hinter einem Pluszeichen ein Format an, in dem eine Reihe
von Formatangaben für die einzelnen Komponenten von Datum und Uhrzeit
steht. Alle diese Angaben beginnen mit einem Prozentzeichen. Die wichtigsten
sind in Tabelle 7.3 aufgelistet.
Formatangabe Bedeutung
%d Tag im Monat (01 bis 31)
%m numerischer Monat (01 bis 12)
%y zweistellige Jahreszahl
%Y vierstellige Jahreszahl
%a Kurzfassung des Wochentags (zum Beispiel Tue)
%A ausgeschriebener Wochentag (etwa Tuesday)
%H Stunden im 24-Stunden-Format
%I Stunden im 12-Stunden-Format
%p AM und PM für das Zwölf-Stunden-Format
%M Minuten
%S Sekunden
Tabelle 7.3 Die wichtigsten Formatangaben für den date-Befehl
407
7 Linux
Sehen Sie sich als Beispiel den folgenden Befehl an:
$ date +"Es ist jetzt %H:%M:%S Uhr."
Die Ausgabe sieht etwa folgendermaßen aus:
Es ist jetzt 17:52:31 Uhr.
Sie können die Bestandteile von Datum und Uhrzeit also in einem beliebigen Aus-
gabetext verwenden.
Falls Sie Datum und Uhrzeit ändern möchten, müssen Sie statt des Formats eine
Zeitangabe hinzufügen. Eine solche Angabe hat das folgende Format:
MMDDhhmm[YY]YY[.ss]
Es werden also nacheinander der zweistellige Monat, der zweistellige Tag, die zwei-
stellige Stunde im 24-Stunden-Format, die zweistellige Minute, das zwei- oder
vierstellige Jahr und optional die durch einen Punkt abgetrennten zweistelligen
Sekunden angegeben. Das folgende Beispiel setzt Datum und Uhrzeit auf den
09. April 2013, 16:40 Uhr:
$ date 040916402013
� useradd erstellt ein neues Benutzerkonto unter Linux. Auf den meisten anderen
Unix-Systemen gibt es sehr ähnliche Kommandos, die manchmal anders heißen.
Standardmäßig ist das Home-Verzeichnis dieses Benutzers /home/Username. Mit-
hilfe der Option -d Pfad können Sie ein anderes Verzeichnis angeben. In jedem Fall
sorgt die Option -m dafür, dass das Home-Verzeichnis neu angelegt wird, falls es
noch nicht existiert.
Die numerische User-ID wird standardmäßig automatisch eingestellt; es wird der
erste freie Wert größer oder gleich 100 gewählt. UIDs unter 100 sind für System-
konten vorgesehen, das heißt für Benutzerkonten, die für die Ausführung von Sys-
tem- und Serverdiensten verwendet werden; die 0 steht für root. Wenn Sie die UID
manuell angeben möchten, funktioniert das mithilfe von -u UID. Falls die angege-
bene User-ID bereits existiert, erscheint eine Fehlermeldung, es sei denn, Sie
geben zusätzlich die Option -o an, die den bisherigen User mit dieser UID über-
schreibt.
Mithilfe der Option -g Gruppe wird die Gruppe angegeben, der der Benutzer stan-
dardmäßig angehören soll – ohne Angabe wird automatisch users eingestellt. Mit-
hilfe von-G Gruppe1, Gruppe2,... können Sie eine durch Kommata getrennte Liste
weiterer Gruppen angeben, denen der Benutzer zusätzlich angehören soll. Diese
Liste darf keine Leerzeichen enthalten.
Die Option -s Pfad gibt die Shell an, die dem User präsentiert werden soll; der Stan-
dardwert ist /bin/bash.
408
7.1 Arbeiten mit der Shell
Das folgende Beispiel zeigt, wie das Verzeichnis /home/neuer angelegt wird und
wie Sie anschließend den Benutzer neuer mit der Log-in-Shell /bin/tcsh einrichten
können:
# mkdir /home/neuer# useradd -g users -s /bin/tcsh neuer
� userdel Benutzername entfernt den angegebenen Benutzer.
� groupadd fügt unter Linux eine neue Gruppe hinzu. Die einzige Option ist -g GID,
mit deren Hilfe Sie die (ansonsten automatisch vergebene) Group-ID manuell ein-
stellen können. Wie bei useradd dient in diesem Zusammenhang die Option -o
dazu, eine eventuell bestehende Gruppe mit derselben Group-ID zu überschreiben.
� passwd dient zum Ändern von Passwörtern. Wenn Sie den Befehl ohne Argument
aufrufen, dient er zum Ändern Ihres eigenen Passworts: Sie müssen zunächst Ihr
altes und anschließend zweimal hintereinander das neue Passwort eingeben. Die
Eingabe wird jeweils nicht angezeigt.
Eine weitere Möglichkeit, die dem User root vorbehalten ist, besteht darin, passwd-
Username aufzurufen, um das Passwort eines anderen Benutzers zu ändern. Sie
müssen das alte Passwort dieses Users nicht kennen, sondern werden nur aufge-
fordert, zweimal ein neues einzugeben. Beachten Sie die in diesem Kapitel bereits
gegebenen Informationen über sichere Passwörter. Der Befehl passwd gibt zwar bei
vielen zu einfachen Passwörtern die Warnmeldung »Bad Password. Too simple«
aus, akzeptiert das Passwort aber dennoch.
� ps gibt eine Tabelle aller laufenden Prozesse aus. Falls Sie keine Parameter ange-
ben, werden nur die Prozesse des aktuellen Terminals angezeigt. Für eine vollstän-
dige Liste aller Prozesse müssen Sie ps aux verwenden. Abbildung 7.6 zeigt ein
Beispiel für die Ausgabe dieses Befehls.
Die wichtigste Information, die Sie der Tabelle entnehmen können, sind die PIDs
der einzelnen Prozesse, weil Sie sie verwenden können, um einem Prozess mit-
hilfe des Befehls kill ein Signal zu senden.
Die meisten Prozesse, die Sie in der Liste sehen, sind keine Programme, die Sie
manuell gestartet haben. Viele von ihnen laufen unbemerkt im Hintergrund und
stellen ihre Dienste bestimmten Anwendungen zur Verfügung. Diese Prozesse
werden Daemons genannt, ihre Dateinamen enden meist auf d: Beispielsweise ist
syslogd der im weiteren Verlauf des Kapitels beschriebene Protokoll-Daemon, der
über die wichtigsten Ereignisse Buch führt.
� Eine interessante Variante von ps ist pstree: Statt ausführlicher Informationen
über die einzelnen Prozesse werden nur deren Namen angezeigt, dafür aber in
einem Baumdiagramm. Auf diese Weise können Sie die Hierarchie von Elternpro-
zessen und ihren Kindern ermitteln.
409
7 Linux
� Wenn Sie den Eindruck haben, dass der Rechner besonders langsam läuft, können
Sie das Kommando top eingeben – es zeigt eine Live-Statistik der laufenden Pro-
zesse an, geordnet nach ihrem prozentualen CPU-Verbrauch. Mit (Q) wird das Pro-
gramm wieder beendet.
Abbildung 7.6 Beispielausgabe von »ps aux«
� kill dient dazu, einem Prozess ein Signal zu senden. Das gewünschte Signal wird
dabei hinter der Option -s angegeben; entweder numerisch oder mit seinem
Namen. Wichtige Signale sind beispielsweise TERM zum regulären Beenden, KILL
für einen erzwungenen Abbruch oder INT für eine Unterbrechung (Interrupt).
Wenn Sie kein Signal angeben, wird automatisch TERM gesendet. Der Befehl kill-l
gibt eine Liste sämtlicher Signale aus, die Ihre Version von kill unterstützt.
Der Prozess wird durch seine numerische PID angegeben, wie sie von ps zurückge-
geben wurde. Viele Anwendungen, besonders Daemons, schreiben ihre aktuelle
PID in eine PID-Datei, entweder unter /var/run/Programmname.pid oder in einem
anwendungsspezifischen Verzeichnis wie /usr/local/Programmname/logs. Diese
Datei können Sie auslesen und ihren Inhalt in Backticks (``) an kill weiterreichen.
Das folgende Beispiel beendet auf diese Weise einen unter /usr/local/apache2
installierten Apache-Webserver:
# kill -TERM `cat /usr/local/apache2/logs/httpd.pid`
410
7.2 Konfigurations- und Administrationsaufgaben
Als gewöhnlicher Benutzer können Sie nur Prozesse beenden, die unter Ihrer User-
ID laufen, für alle anderen benötigen Sie root-Rechte.
� shutdown fährt das Betriebssystem herunter oder startet es neu. Für das Herunter-
fahren wird die Option -h (halt) verwendet, für einen Neustart -r (restart). Dahin-
ter wird angegeben, wann die Aktion durchgeführt werden soll. Dafür stehen drei
mögliche Optionen zur Verfügung:
– als Uhrzeit im Format hh:mm, zum Beispiel 13:45
– als Anzahl von Minuten in der Schreibweise +m, etwa +5
– now (jetzt sofort)
Für den Befehl benötigen Sie root-Rechte. Das folgende Beispiel fährt den Rechner
sofort herunter:
$ shutdown -h now
7.2 Konfigurations- und Administrationsaufgaben
Nachdem Sie sich mithilfe der in diesem Kapitel bereits erläuterten Anleitungen ein
wenig im Linux-System umgeschaut haben, sollten Sie noch einige fortgeschrittene
administrative Aufgaben kennenlernen. In diesem Abschnitt erfahren Sie, wie Sie
mit Log-Dateien umgehen, Programme automatisch starten, Software installieren
und einen Kernel kompilieren.
7.2.1 Syslog und Log-Dateien
Das Betriebssystem selbst und viele Programme, vor allem Daemons, schreiben Sta-
tusinformationen und Fehlermeldungen in Log-Dateien, auch Protokolldateien
genannt. Dafür ist der Syslog-Daemon (syslogd) zuständig. Er erhält Protokollinfor-
mationen vom System und von diversen Programmen und entscheidet darüber, ob
er sie ignoriert, in bestimmte Log-Dateien schreibt oder per Mail versendet.
Syslog-Meldungen bestehen aus drei Komponenten:
� Facility (Fehlerquelle)
� Priority (Dringlichkeitsstufe)
� Message (Warnmeldung)
Die Facility gibt an, von welcher Art Programm oder welcher Systemfunktion der Ein-
trag stammt. Hier die Standardquellen im Überblick:
� auth – Authentifizierung
� authpriv – privilegierte Authentifizierung (root)
� cron – cron-Daemon
411
7 Linux
� daemon – sonstige Daemons
� ftp – FTP-Server
� kern – Kernel
� local0 bis local7 – frei verfügbar für beliebige Programme
� lpr – Drucker-Subsystem
� mail – Mail-Subsystem
� news – News-Subsystem
� syslog – interne Syslog-Meldungen
� uucp – UUCP-Subsystem5
� user – Anwendungsprogramme
Die Priority bestimmt die Wichtigkeit der jeweiligen Meldung:
� emerg – Notfall, System unbrauchbar
� alert – Alarm, sofortiges Eingreifen erforderlich
� crit – kritischer Fehler
� error – normaler Fehler
� warn – Warnung
� notice – Hinweis
� info – normale Information
� debug – Debugging-Information
Die Message ist ein beliebiger Beschreibungstext.
In eigenen Shellskripten können Sie den Befehl logger benutzen, um Syslog-Meldun-
gen zu erzeugen. Die allgemeine Syntax lautet:
logger [-p [facility:]priority] message
Geben Sie Folgendes ein, um es zu testen:
$ logger -p info Nur Test, kein Fehler
Da Sie keine Facility angegeben haben, steht die Meldung in /var/log/messages:
$ tail –1 /var/log/messagesApr 23 18:51:32 linuxbox sascha: Nur Test, kein Fehler
5 Unix-to-Unix-Copy ist ein altmodisches Verfahren für Mail und Datenübertragung im Netzwerk,
das noch vor der Internet-E-Mail erfunden wurde.
412
7.2 Konfigurations- und Administrationsaufgaben
7.2.2 Programme automatisch starten
Linux und andere moderne Unix-Systeme verfügen über die Möglichkeit, beliebige
Programme beim Booten automatisch zu starten. Ein kleines Problem besteht nur da-
rin, dass dieses Verfahren in den verschiedenen Systemvarianten unterschiedlich rea-
lisiert wurde. Historisch betrachtet lässt sich der Unterschied auf die beiden Unix-
Grundströmungen System V und BSD zurückführen, inzwischen zieht er sich aber –
und dann auch noch mit einigen Variationen bezüglich der Verzeichniswahl – quer
durch die Systeme und Distributionen (zumal es immer schwieriger wird, zu unter-
scheiden, welche aktuellen Systeme von System V abstammen und welche von der
BSD).
Hier wird zunächst jedes der beiden grundsätzlichen Verfahren kurz vorgestellt;
anschließend wird es konkret am Beispiel des Webservers Apache demonstriert.
� System V Init. Diese Bootmethode wird von immer mehr Betriebssystemen der
Unix-Familie verwendet, unter anderem auch von Linux. Systeme, die System V
Init einsetzen, arbeiten mit unterschiedlichen Runlevels. Ein Runlevel ist ein Sys-
temzustand, in dem jeweils nur bestimmte Prozesse laufen. Beim Wechsel des
Runlevels über den Befehl init LEVELNUMMER werden bestimmte Skripte aufgerufen,
die manche Programme starten und andere beenden. Einige Runlevel haben eine
spezielle Bedeutung:
– 0: heruntergefahrener Zustand
– S (manchmal auch 1): Single-User-Modus (für Wartungsarbeiten)
– 1 (bei vielen Systemen): Multi-User-Modus ohne Netzwerk
– 2: Multi-User-Modus mit Netzwerk; nur Konsole
– 3: Multi-User-Modus mit Netzwerk und GUI (klassisch)
– 5: Multi-User-Modus mit Netzwerk und GUI (Linux)
– 6: Systemneustart (Reboot)
Betriebssysteme dieser Bauart besitzen für jedesRunlevel ein spezielles Init-Ver-
zeichnis. Diese Verzeichnisse heißen /etc/rcLEVELNUMMER.d, also etwa /etc/rc1.d
für Runlevel 1 oder /etc/rc5.d für Runlevel 5. Die Shell-Skripte in diesen Verzeich-
nissen werden bei Erreichen des entsprechenden Levels automatisch ausgeführt,
und zwar in alphabetischer Reihenfolge. Deshalb verwendet die übliche Konven-
tion Namen, die mit K beginnen, für Kill-Skripte (die einen Prozess beenden) und
solche mit S für Start-Skripte. Darüber hinaus bauen viele Daemons aufeinander
auf. Deshalb wird hinter dem Anfangsbuchstaben eine zweistellige Zahl verwen-
det, die für eine bestimmte Reihenfolge sorgt.
In aller Regel sind die Einträge in diesen Verzeichnissen lediglich Symlinks auf
Skripte, die sich eigentlich in einem anderen Verzeichnis befinden; meist in /etc/
init.d oder /sbin/init.d. Für den Start und das Beenden des jeweiligen Prozesses
413
7 Linux
wird normalerweise dasselbe Skript verwendet: Ein S-Symlink ruft es automatisch
mit der Kommandozeilenoption start auf, ein K-Symlink mit stop. Im Falle von
Apache erfüllt das mitgelieferte Shell-Skript apachectl die Voraussetzungen für
diese Aufgabe.
Aus diesem Grund brauchen Sie lediglich für Ihr Standard-Runlevel (3 oder 5)
einen S-Symlink auf dieses Skript zu erzeugen. Für die Runlevel 0 und 6 (Herunter-
fahren beziehungsweise Neustart) können Sie entsprechend einen K-Link anlegen.
Da von Apache in der Regel keine anderen Dienste abhängen, können Sie ihn recht
spät starten (wählen Sie einen Symlink-Namen wie S95apache) und ziemlich früh
beenden (K15apache dürfte in Ordnung gehen).
Begeben Sie sich also in das jeweilige Runlevel-Init-Verzeichnis, und erstellen Sie
die nötigen symbolischen Links. Falls Sie Apache mit Standardoptionen installiert
haben und ein Linux-System mit dem Standard-Runlevel 5 verwenden, müssen
Sie den folgenden Befehl für den Startskript-Link eingeben:
# ln -s /usr/local/apache2/bin/apachectl \/etc/rc5.d/S95apache
Als Nächstes werden die Stopp-Links für die Runlevel 0 und 6 erzeugt. Wenn Sie
das Layout Apache verwenden, sehen die beiden Befehle so aus:
# ln -s /usr/local/apache2/bin/apachectl \/etc/rc0.d/K15apache# ln -s /usr/local/apache2/bin/apachectl \/etc/rc6.d/K15apache
In modernen Linux-Distributionen lässt sich dieser Vorgang weitgehend automa-
tisieren, zumal die meisten wichtigen Programme bereits passende Startskripte
mitbringen. Erzeugen Sie unter /etc/init.d einen Symlink zum passenden Start-
skript, und rufen Sie anschließend chkconfig -a mit dem Namen des Links auf, um
das Skript in seinen Standard-Runlevels zu aktivieren. Das folgende Beispiel zeigt
die Vorgehensweise für den Datenbankserver MySQL, wenn er unter /usr/local/
mysql installiert ist (siehe Kapitel 12, »Datenbanken«):
# ln -s /usr/local/mysql/support-files/mysql.server \> /etc/init.d/mysql# chkconfig -a mysql
� BSD-Startskript. BSD-basierte Unix-Systeme verwenden im Gegensatz zur System-
V-Methode einige zentrale Startskripte. Sie befinden sich in Verzeichnissen wie
/etc oder /etc/rc.d und heißen rc.boot, rc.local und so weiter. Interessant ist in die-
sem Zusammenhang das Skript rc.local, das Sie nach Belieben um weitere Startbe-
fehle erweitern können.
Unter einem solchen Betriebssystem brauchen Sie rc.local also nur mit einem
Texteditor zu öffnen und können dann den Aufruf des entsprechenden Steuer-
414
7.2 Konfigurations- und Administrationsaufgaben
skripts (in diesem Fall apachectl) mit dem Parameter start hinzufügen. In rc.local
wird normalerweise mit einer Fallunterscheidung nach dem Schema if [-xPFAD]
überprüft, ob das aufzurufende Programm oder Skript überhaupt existiert. An
diese Konvention sollten Sie sich halten. Falls Sie eine Apache-Standardinstalla-
tion verwenden, können Sie folgende Zeilen an rc.local anfügen:
# Apache 2 startenif [ -x /usr/local/apache2/bin/apachectl ]; then
echo "Starting Apache httpd..."/usr/local/apache2/bin/apachectl start
fi
7.2.3 Software installieren
Wenn Sie Softwarepakete von den CDs Ihrer Distribution installieren möchten, funk-
tioniert dies mithilfe des Paketmanagers. Der verbreitetste Linux-Paketmanager ist
rpm (der Red Hat Packet Manager, der unter anderem auch von openSUSE übernom-
men wurde). Sie installieren ein solches Paket mithilfe der folgenden Anweisung:
# rpm -i Paketname.rpm
Debian und darauf basierende Distributionen wie Ubuntu verwenden einen anderen
Paketmanager. Hier erfolgt die Installation eines Pakets wie folgt:
# apt-get install Paketname
Der wichtigste Vorteil gegenüber rpm besteht darin, dass benötigte Pakete und even-
tuelle Abhängigkeiten automatisch aus einer Onlinequelle heruntergeladen werden.
Open-Source-Software wird häufig auch als Quellcode-Archiv mit der Dateiendung
.tar.gz verbreitet. Dabei handelt es sich um eine Archivdatei (tar für »tapearchive«), die
mit GNU zip (gzip) komprimiert wurde. Ein solches Paket wird sinnvollerweise in einen
leeren Ordner kopiert und anschließend folgendermaßen entpackt und installiert:
# tar xzvf paket.tar.gz# ./configure# make# make install
In manchen Fällen ist die Endung nicht .tar.gz, sondern .tar.bz2. Das bedeutet, dass
die Datei mit bzip2 statt mit gzip komprimiert wurde; die entsprechende tar-Option
zum Entpacken ist xjvf statt xzvf.
Das Programm make dient allgemein dazu, automatische Kompilier- und Installati-
onsanweisungen auszuführen: Da die meisten größeren Programmierprojekte aus
415
7 Linux
vielen einzelnen Quelldateien bestehen, muss ein Makefile angeben, wie sie jeweils
kompiliert und zusammengestellt werden sollen.
Beachten Sie, dass einige moderne Linux-Distributionen bei einer Standardinstalla-
tion die Entwicklungswerkzeuge GCC (GNU C Compiler) und make weglassen. Das ist
ärgerlich, weil diese benötigt werden, um Quellcodepakete installieren zu können.
Einen Kernel kompilieren
Mithilfe verschiedener make-Anweisungen können Sie übrigens auch Ihren eigenen
Linux-Kernel kompilieren, falls der allgemeine Kernel, den der Distributor mitliefert,
Ihre spezielle Hard- oder Software nicht unterstützt.
In den meisten Fällen ist es heutzutage nicht mehr nötig, den Kernel neu zu kompi-
lieren. Verwenden Sie stattdessen das Kommando modprobe Modulname, um das Ker-
nelmodul für die betreffende Hardware dynamisch zu laden. In den meisten
Distributionen lässt sich dies auch über grafische Hilfsmittel erledigen und sogar
automatisieren.
Wenn Sie dennoch einen Kernel kompilieren möchten oder müssen, prüfen Sie
zuerst mithilfe Ihres Paketmanagers, ob die Kernelquellen installiert sind. Danach
müssen Sie das Konfigurationsprogramm für die Kernelanpassung aufrufen:
# cd /usr/src/linux# make xconfig
In einem komfortablen GUI-Programm können Sie sich nun eine Kernelkonfigura-
tion zusammenstellen. Es gibt eine Reihe von Kategorien wie Optimierung für
bestimmte Prozessortypen, Netzwerk oder SCSI-Unterstützung. Falls xconfig in Ihrer
Distribution nicht enthalten ist, geben Sie make menuconfig ein – es öffnet sich ein
ähnliches Programm auf der Konsole.
Im Konfigurationsprogramm können Sie sich bei den meisten Gerätetreibern ent-
scheiden, ob Sie sie fest in den Kernel einkompilieren oder als Module hinzufügen
möchten. Letzteres ist für Hardware nützlich, die nicht permanent benötigt wird.
Nachdem die Konfiguration fertiggestellt ist, geben Sie an der Konsole (noch immer
im Verzeichnis /usr/src/linux) nacheinander die folgenden Befehle ein:
# make all# make modules_install
Sollte Ihr Linux-System noch einen älteren Kernel bis Version 2.4.x verwenden, müs-
sen Sie dagegen alle folgenden Kommandos eingeben:
# make dep# make clean
416
7.3 Automatisierung
# make modules# make modules_install# make bzImage
Nach der Fertigstellung befindet sich der Kernel in jedem Fall im Verzeichnis /usr/
src/linux/arch/i386/boot und heißt bzImage. Er muss nun an die Stelle des bisherigen
Kernels kopiert werden, normalerweise in die Datei /boot/vmlinux. Alternativ kön-
nen Sie ihn auch unter einem neuen Namen ins Verzeichnis /boot kopieren, um
beim Booten zwischen mehreren Kernels auswählen zu können. Danach müssen Sie
den Bootmanager (GRUB oder LILO) neu konfigurieren. Näheres erfahren Sie in der
Dokumentation Ihrer Distribution.
7.3 Automatisierung
Unix-Systeme enthalten zahlreiche Möglichkeiten, Routineaufgaben zu automati-
sieren. In diesem Abschnitt lernen Sie zunächst Shell-Skripte kennen, in denen Sie
programmgesteuerte Kommandoabfolgen zusammenfassen können. In einem wei-
teren Abschnitt geht es um Hilfsmittel wie Aliasse und Cronjobs.
7.3.1 Shell-Skripte
Eine besondere Eigenschaft von Unix-Shells sind die eingebauten Befehle, mit deren
Hilfe sich bestimmte Aufgaben automatisieren lassen. Im Grunde ist dieser
Abschnitt ein Vorgriff auf das Thema des übernächsten Kapitels, die Programmie-
rung. Dennoch sollen hier einige Worte zum Shell-Scripting gesagt werden. Falls Sie
noch nie programmiert haben, sollten Sie sich allerdings zuerst Kapitel 9, »Grundla-
gen der Programmierung«, vornehmen. Konzepte, die an dieser Stelle nur ganz kurz
und knapp angesprochen werden können, werden dort ausführlich erläutert.
Übersicht
Ein Shell-Skript ist im Grunde eine einfache Textdatei, die eine Abfolge von Shell-
und Systembefehlen enthält. Diese Befehle werden beim Aufruf dieses Skripts nach-
einander abgearbeitet. Für gewöhnlich erhalten Shell-Skripte die Dateiendung .sh.
Der Name spielt aber eigentlich keine Rolle; wichtig ist, dass Sie das Skript mithilfe
von chmod ausführbar machen.
Wie jedes Konsolenprogramm kann ein Shell-Skript Kommandozeilenparameter ent-
gegennehmen. Hinter dem Namen des Skripts kann also beim Aufruf eine durch Leer-
zeichen getrennte Liste von Zeichenfolgen stehen, die das Skript verarbeiten kann.
Die erste Zeile eines Shell-Skripts enthält die sogenannte Shebang-Angabe – ein Kurz-
wort für die Zeichen # (sharp) und ! (bang), mit denen sie beginnt. An dieser Stelle
417
7 Linux
steht, welche Shell dieses Skript ausführen soll, da sich verschiedene Shells in ihrer
Skript-Syntax voneinander unterscheiden. Hier sehen Sie ein Beispiel für eine She-
bang-Zeile; das zugehörige Skript wurde für die bash geschrieben:
#!/bin/bash
Nach dieser Zeile können Sie einen Befehl nach dem anderen untereinanderschrei-
ben. Alle bisher besprochenen Systembefehle sind zulässig, darüber hinaus werden
einige spezielle programmiertechnische Erweiterungen verwendet.
Kommandos Die wichtigsten zusätzlichen Befehle und Elemente für Shell-Skripte sind folgende
(hier konkret für die bash; bei anderen Shells kann die Syntax leicht abweichen):
� Fallunterscheidungen. Anweisungen, die zwischen if Bedingung then und fi stehen,
werden nur ausgeführt, wenn die Bedingung zutrifft. In der Regel besteht die
Bedingung aus dem Vergleich zwischen einer Variablen oder einem Dateinamen
und einem bestimmten Wert. Ein solcher Ausdruck steht bei Text- und Dateiver-
gleichen in eckigen Klammern. Dabei stehen unter anderem folgende Vergleichs-
möglichkeiten zur Verfügung:
– [ -e Pfad ] – Verzeichniseintrag existiert.
– [ -f Pfad ] – Verzeichniseintrag ist eine Datei.
– [ -d Pfad ] – Verzeichniseintrag ist ein Verzeichnis.
– [ -s Pfad ] – Verzeichniseintrag ist ein Symlink.
– [ str1 = str2 ] – Strings sind identisch.
– [ str1 != str2 ] – Strings sind verschieden.
– [ -z str ] – String ist leer (zero).
– [ -n str ] – String hat Inhalt (nonzero).
– [ expr1 -a expr2 ] – beide Ausdrücke sind wahr (and).
– [ expr1 -o expr2 ] – mindestens ein Ausdruck ist wahr (or).
Für numerische Vergleiche werden doppelte runde Klammern verwendet:
((...)). Darin stehen die bekannten Vergleichsoperatoren ==, !=, <, >, <= und >= zur
Verfügung.
Alternativ kann auch der Erfolg eines Kommandos getestet werden. Dazu wird der
Befehl mit seinen Parametern und Argumenten ohne weitere Kennzeichnung
zwischen if und then geschrieben. Befehle werden mit einem Exit-Code beendet.
0 bedeutet in der Regel, dass alles in Ordnung ist, andere Werte deuten auf Fehler
hin. Die Anweisungen werden bearbeitet, wenn der Befehl korrekt ausgeführt
wird, weil der Exit-Code 0 als wahr gilt und jeder andere Wert als falsch.6
6 Übrigens ganz im Gegensatz zu fast allen Programmiersprachen, in denen nämlich 0 als falsch
gilt und jeder andere Wert als wahr. In Shell-Skripten gilt diese Besonderheit allerdings auch nur
für den Exit-Code.
418
7.3 Automatisierung
Hinter else können Sie alternative Anweisungen definieren, die ausgeführt wer-
den sollen, falls die Bedingung nicht zutrifft, mit elif (Abkürzung für else if) kann
sogar eine verschachtelte Bedingung eingesetzt werden.
� Einzelfallentscheidungen. Zwischen case und esac können Sie verschiedene Muster
aufführen, denen eine angegebene Variable oder ein String mit Variablen entspre-
chen kann. Die vollständige Schreibweise ist case String in. Hinter jedem Muster,
das überprüft wird, steht eine schließende Klammer ). Darauf folgen beliebig viele
Anweisungen, die nur ausgeführt werden, wenn das angegebene Muster auf den
überprüften String passt. Vor dem nächsten Muster muss eine Befehlssequenz
durch ;; abgeschlossen werden. Am Schluss kann *) stehen, um sämtliche noch
nicht anderweitig gefundenen Werte zu verarbeiten – etwa, um ungültige Argu-
mente per Fehlermeldung abzufangen.
� Schleifen. Mitunter müssen bestimmte Anweisungen mehrfach ausgeführt wer-
den. Dafür sind Schleifen zuständig. Die bash definiert verschiedene Arten von
Schleifen; die wichtigsten sind die for-Schleife und die while-Schleife.
Eine for-Schleife geht automatisch alle Kommandozeilenparameter durch, die
Parameter werden nacheinander der angegebenen Schleifenvariablen zugewiesen.
Alternativ können Sie mithilfe von for ... in ein Dateimuster angeben. Die Vari-
able nimmt dann nacheinander den Namen jeder Datei an, auf die dieses Muster
passt.
Die while-Schleife verwendet dagegen eine Bedingung wie if, mit dem Unter-
schied, dass die Anweisungen mehrmals ausgeführt werden, solange die Bedin-
gung noch zutrifft.
Die Anweisungen, die in jedem Durchlauf der Schleife ausgeführt werden sollen,
stehen in beiden Fällen zwischen do und done.
� Variablen. Mithilfe der Anweisung var = Wert wird einer Variablen innerhalb eines
Shell-Skripts ein Wert zugewiesen. Es kann sich dabei sowohl um eine der Umge-
bungsvariablen wie PATH handeln als auch um beliebige temporäre Variablen, die
nur innerhalb des Skripts verwendet werden, um Ihnen die Arbeit zu erleichtern.
Wenn die Variablendefinition in einer Shell und allen in ihr aufgerufenen Skripten
gültig bleiben soll, müssen Sie in der bash übrigens das Kommando export var =
Wert verwenden.
Innerhalb von Befehlen, die Sie in einem Shell-Skript aufrufen, wird eine Variable
durch ein vorangestelltes $-Zeichen vor der Ausführung des Befehls durch ihren
aktuellen Wert ersetzt (substituiert). Innerhalb eines komplexen Ausdrucks steht
der Variablenname hinter dem Dollarzeichen zusätzlich in geschweiften Klam-
mern {...}.
Spezielle Variablen sind $0 bis $9 für die einzelnen Kommandozeilenparameter,
$* für die gesamte Liste dieser Parameter zur Verwendung in einer Schleife und $#
für die Anzahl der übergebenen Parameter.
419
7 Linux
Beispiele
Es folgen zwei kleine Beispiele, die die praktische Verwendung der zuvor erläuterten
Anweisungen demonstrieren. Zuerst sehen Sie hier ein Skript, das im übernächsten
Kapitel (ohne Datum und Uhrzeit) auch in allen vier ausführlicher vorgestellten Pro-
grammiersprachen gezeigt wird. Es gibt den klassischen Programmiereinstiegssatz
»Hallo Welt!« aus, fügt Datum und Uhrzeit hinzu, fragt den Benutzer nach dessen
Namen und begrüßt ihn anschließend damit. Hier der Code:
#!/bin/bashecho Hallo, Welt!echo Es ist `date +"%d.%m.%Y, %H:%M"`echo -n "Wie heisst du? "read nameecho Hallo, $name!
Speichern Sie das Skript, zum Beispiel unter dem Namen hallo.sh, und machen Sie es
wie folgt ausführbar:
$ chmod +x hallo.sh
Danach können Sie es ausführen. Hier ein komplettes Ein- und Ausgabebeispiel:
$ ./hallo.shHallo, Welt!Es ist 07.05.2013, 17:43Wie heisst du? SaschaHallo, Sascha!
Die meisten in dem Skript verwendeten Anweisungen wurden bereits erläutert.
Das folgende kurze Beispiel definiert ein Skript namens backup, das alle Dateien, die
auf ein angegebenes Dateimuster passen, in Dateien mit der zusätzlichen Endung
.tmp sichert:
#!/bin/bashif (( $# < 1 ))then
echo "Verwendung: backup Dateimuster"exit 1
fifor i in $*doecho "Verarbeite ${i}"if [ -f $i ]
420
7.3 Automatisierung
thencp $i ${i}.tmp
fidone
Wenn kein Dateimuster angegeben wird, erscheint eine Warnmeldung, und das
Skript wird mit einem Fehlercode beendet. Andernfalls werden alle gewöhnlichen
Dateien (Test -f), die zum angegebenen Dateimuster passen, in einer Schleife nach-
einander in entsprechenden .tmp-Dateien gesichert. Der folgende Aufruf sichert alle
Dateien mit der Endung .txt im aktuellen Verzeichnis:
$ ./backup *.txt
Im übernächsten Kapitel werden übrigens die Skriptsprachen Perl und Ruby vorge-
stellt, die mit einer eingängigeren Syntax und erheblich weitergehenden Möglichkei-
ten eine hervorragende Ergänzung oder gar Alternative zu Shell-Skripten bieten.
7.3.2 Weitere Hilfsmittel
Für die Arbeit mit Shell-Skripten, aber auch unabhängig davon, bieten Unix-Systeme
einige weitere Automatisierungsmöglichkeiten, die hier kurz besprochen werden.
Aliasse
Aliasse sind eine Möglichkeit der bash, längere Befehlseingaben, etwa mit zahlrei-
chen Parametern, zu einer Art Makro zu verkürzen. Grundsätzlich geschieht dies mit-
hilfe einer Eingabe nach dem Schema:
$ alias Aliasname='Kommando [Argumente]'
Hier ein Beispiel, das ls mit den Optionen -l (Detailinformationen) und -a (auch ver-
steckte Dateien anzeigen) unter dem Alias l bereitstellt:
$ alias l='ls -la'
Aufgerufen wird ein solcher Alias wie ein gewöhnliches Kommando. Beispiel:
$ l
Auch Aliassen können Sie Optionen oder Argumente übergeben, solange der zugrun-
deliegende Befehl diese unterstützt. Das folgende Beispiel ruft den Alias l mit der
zusätzlichen Option -X (nach Dateiendungen sortieren) sowie dem Dateimuster a*
(mit a beginnende Dateien und Verzeichnisse) auf:
$ l -X a*
421
7 Linux
Die Definition eines Alias können Sie sich mit alias Name anschauen, also etwa
$ alias l
alias ohne Argumente zeigt alle aktuellen Alias-Definitionen an. unalias Name löscht
den angegebenen Alias. Genau wie Umgebungsvariablen sind auch Aliasse in vielen
Distributionen in den Shell-Konfigurationsskripten vorkonfiguriert.
Cronjobs
Manche Administrationsaufgaben oder Aufräumarbeiten müssen regelmäßig erle-
digt werden. Mit Cronjobs bieten Unix-Systeme eine flexible Möglichkeit, diese zu
automatisieren.
Die einfachere Methode besteht darin, einen Symlink auf das auszuführende Pro-
gramm oder Shell-Skript in einem der folgenden Verzeichnisse anzulegen:
� /etc/cron.hourly (stündlich)
� /etc/cron.daily (täglich)
� /etc/cron.weekly (wöchentlich)
� /etc/cron.monthly (monatlich)
Das folgende Beispiel sorgt dafür, dass ein Skript namens taeglich.sh jeden Tag ausge-
führt wird:
# ln -s /usr/bin/skripten/taeglich.sh \> /etc/cron.daily/taeglich.sh
Erheblich flexibler, aber etwas komplizierter in der Handhabung ist die Arbeit mit
sogenannten Crontabs, die für jeden User einzeln angelegt werden. Es handelt sich
um Textdateien, in denen jede Zeile einen Eintrag in folgendem Format darstellt:
Min Std Tag Mon Wochentag Kommando
Für die Zeit-Felder gelten folgende Wertebereiche:
� Minute: 0–59
� Stunde: 0–23
� Tag im Monat: 1–31
� Monat: 1–12
� Wochentag: 0–6 (0 = Sonntag, 1 = Montag ... 6 = Samstag)
Ein * in einem der Felder sorgt dafür, dass der Cronjob für jeden Wert in diesem Feld
gilt. Hier ein Beispiel, das ein Skript namens cleanup.sh jeden Freitag um 18:00 Uhr
ausführt:
422
7.4 Editoren
0 18 * * 5 /usr/bin/skripten/cleanup.sh
Das folgende Beispiel ruft zu jeder vollen Stunde das Skript stuendlich.sh auf:
0 * * * * /usr/bin/skripten/stuendlich.sh
Auch Bereiche in der Form Start-Ende sind für ein Feld möglich. Das folgende Bei-
spiel führt montags bis samstags von 8 bis 18 Uhr jeweils ein Skript namens arbeit.sh
aus:
0 8-18 * * 1-6 /usr/bin/skripten/arbeit.sh
Hinter * oder Start-Ende können Sie optional einen / und ein Intervall angeben. Das
folgende Beispiel führt alle zwei Stunden who -a aus, um eine vollständige Liste der
angemeldeten Benutzer und virtuellen Terminals zu erzeugen:
0 */2 * * * who -a
Eventuelle Ausgaben der betreffenden Skripte werden mithilfe des Kommandos
mail an den betreffenden Benutzer geschickt. Optional fügen Sie als erste Zeile der
Crontab eine Anweisung wie diese ein, um die Mails an einen anderen User zu schi-
cken (sinnvoll beispielsweise für die root-Crontab):
MAILTO=sascha
Geben Sie mail ein, um solche Nachrichten zu lesen. Die jeweilige Nummer zeigt eine
bestimmte Nachricht an; (Q) beendet sowohl die einzelne Nachricht als auch das Pro-
gramm.
Der Befehl crontab mit der Option -e ermöglicht die Bearbeitung der Crontab im Edi-
tor vi, der im nächsten Abschnitt vorgestellt wird. crontab -l liefert die aktuelle Cron-
tab, und crontab -r entfernt sie. Als root können Sie auch die Option -u Username
hinzufügen, um die Crontab eines anderen Benutzers zu lesen oder zu ändern.
7.4 Editoren
Es wurden in diesem Kapitel bereits einige Programme vorgestellt, mit deren Hilfe
sich Textdateien manipulieren lassen. Allerdings wurde bisher noch keine Möglich-
keit gezeigt, solche Dateien einzugeben oder zu bearbeiten. Die grafischen Oberflä-
chen für Linux sind reichlich mit mausgesteuerten und fensterbasierten Editoren
ausgestattet. Dennoch ist es nützlich, den Umgang mit einem klassischen Komman-
dozeileneditor zu beherrschen.
423
7 Linux
In diesem Abschnitt werden die entscheidenden Funktionen der beiden wichtigsten
Editoren vorgestellt. Der vi (gesprochen: »wie ei«) ist der ursprüngliche Unix-Editor
und steht deshalb in jeder beliebigen Unix-Umgebung zur Verfügung. Emacs wurde
ursprünglich von Richard Stallman geschrieben und verfügt über eine Reihe komfor-
tabler Fähigkeiten.
7.4.1 vi
Der eigentliche vi-Texteditor wurde von Bill Joy an der UC Berkeley programmiert. Es
gibt eine Reihe mehr oder weniger kompatibler Editoren, die die Funktionalität des
ursprünglichen vi verbessern. Unter Linux kommt beispielsweise häufig Vim (ViIm-
proved) von Bram Molenaar zum Einsatz.
Der vi-Texteditor wird durch die Eingabe von vi beziehungsweise vi Dateiname
gestartet; bei modernen Distributionen ist vi in der Regel ein Symlink auf vim. Wenn
Sie einen Dateinamen angeben, wird diese Datei zum Bearbeiten geöffnet bezie-
hungsweise neu angelegt.
Befehls- und
Editiermodus
Nachdem der vi gestartet wurde, befindet er sich im Befehlsmodus. Hier können Sie
in der untersten Zeile Befehle eingeben, die in der Regel aus einem oder zwei Buch-
staben bestehen. Einige dieser Befehle wechseln in den Editiermodus, in dem Sie
Text eingeben oder ändern können, andere dienen dem Verschieben, Löschen oder
Kopieren von Text. Mit (Esc) wechseln Sie aus dem Editiermodus wieder zurück in
den Befehlsmodus.
Anders als bei den meisten anderen Editoren werden Befehle also nicht durch spezi-
elle Tastenkombinationen mit der (Strg)- oder (Alt)-Taste getätigt, sondern durch
normale Tasten, solange Sie sich im Befehlsmodus befinden.
Im Folgenden werden jeweils genau die Tasten angegeben, die Sie auf der Tastatur
drücken müssen – beispielsweise bedeutet (A) nicht, dass Sie ein großes A eingeben
sollen, sondern dass die Taste (A) gedrückt werden soll. Ein großes A würde dagegen
als (ª) + (A) angegeben. Wenn mehrere Tasten nacheinander gedrückt werden müs-
sen, werden diese einfach der Reihe nach aufgeführt. Lediglich einige ganz eindeu-
tige Sonderzeichen werden so aufgeführt, als seien sie einzelne Tasten – (») bedeutet
beispielsweise, dass Sie (ª) + (9) drücken müssen.
Bei einigen selteneren Sonderzeichen wird außerdem einmal erklärt, wie Sie sie ein-
geben können. Da der vi auch bei Mac OS X (siehe nächster Abschnitt) mitgeliefert
wird und Sie Linux natürlich auch auf dem Macintosh installieren können, finden Sie
die Tastenkombinationen für PC und Mac, falls diese sich unterscheiden.
Die wichtigste Taste im Befehlsmodus ist (I) – sie wechselt in den Einfügemodus, in
dem Sie Text eingeben können. In diesem Modus können Sie sich grundsätzlich mit
den Pfeiltasten durch den Text bewegen. Die Löschtasten funktionieren dagegen je
424
7.4 Editoren
nach Terminal nicht immer. Statt mit (I) gelangen Sie auch mit anderen Tasten in
den Eingabemodus, die den Cursor unterschiedlich platzieren und gegebenenfalls
Text ersetzen: (A) startet die Eingabe hinter der Cursorposition. (O) fügt unter der
Cursorposition zunächst eine neue Zeile ein, während (ª) + (O) zunächst die aktuelle
Zeile nach unten verschiebt. (C)(W) ersetzt das nächste Wort und (C)(C) die aktuelle
Zeile. Ersetzen heißt in diesem Fall, dass der jeweilige Text vor der Aktivierung des
Eingabemodus entfernt wird.
Navigation
im Text
Im Befehlsmodus können Sie sich mit folgenden Tasten schrittweise durch den Text
bewegen: (H) nach links, (J) nach unten, (K) nach oben und (L) nach rechts. Wie Sie
sehen, liegen diese vier Tasten nebeneinander, was ihre Verwendung sehr bequem
macht. In den meisten Terminalemulationen funktionieren zwar auch die Pfeiltas-
ten, aber allgemein kompatibel sind nur diese vier Buchstabentasten.
Den meisten Befehlen können Sie eine Zahl voranstellen, um sie mehrmals auszu-
führen. Beispielsweise geht (3)(H) um drei Schritte nach links und (4)(J) um vier
Zeilen nach unten. (C)(3)(W) entfernt drei Wörter und schaltet dann den Eingabemo-
dus ein.
(W) bewegt den Cursor um ein Wort nach rechts; (B) um ein Wort nach links. Auch
diese Tasten lassen sich mit einer Zahl kombinieren, um mehrere Wörter weiter-
beziehungsweise zurückzugehen.
(0) (Null) springt zum Zeilenanfang; ($) ((ª) + (4)) zum Zeilenende. Runde Klam-
mern dienen dem Bewegen zwischen Sätzen: Beispielsweise bewegt (ª) + (8) sich
zum Anfang des vorigen Satzes oder (ª) + (9) zum nächsten. Geschweifte Klammern
– ({) und (}) – springen zum Anfang des nächsten beziehungsweise des vorigen
Absatzes. Auf einem PC werden sie mithilfe der Tastenkombinationen (Alt_Gr) + (7)
beziehungsweise (Alt_Gr) + (0) erzeugt, auf dem Mac mithilfe von(Alt) + (8) bezie-
hungsweise (Alt) + (9).
Eine Zahl mit einem Pipe-Zeichen (|) (PC: (Alt_Gr) + (<), Mac: (Alt) + (7)) dahinter
springt zum angegebenen Zeichen in der aktuellen Zeile: (7)(|) bewegt sich bei-
spielsweise zur Position 7. Hat eine Zeile weniger Zeichen als den Wert, den Sie ange-
ben, dann bewegt sich der Cursor zum letzten Zeichen.
(-) bewegt den Cursor zum Anfang der vorigen Zeile, während (+) oder (¢) zum ers-
ten Nicht-Leerzeichen in der nächsten Zeile springen.
SuchfunktionenBesonders angenehm sind die eingebauten Suchfunktionen, die Sie im Befehlsmo-
dus durchführen können: (/) leitet einen regulären Ausdruck im grep-Format ein.
Wenn Sie (¢) drücken, wird vorwärts danach gesucht. Der Cursor bewegt sich auf
das erste Zeichen der Fundstelle. (?) Suchmuster (¢) sucht rückwärts nach dem ange-
gebenen beziehungsweise vorigen Muster. (N) sucht nach dem nächsten Vorkom-
men des aktuellen Suchmusters in der jeweiligen Suchrichtung; (ª) + (N) sucht
dagegen in der anderen Richtung.
425
7 Linux
Beispielsweise sucht(/)[0-9](¢) vorwärts nach der nächsten Ziffer; (N) sucht erneut
danach. (?)[a-z](¢) sucht rückwärts nach dem nächstgelegenen Kleinbuchstaben,
ein anschließendes [N] sucht wiederum den vorherigen.
Die Befehle zum automatischen Suchen und Ersetzen beginnen mit einem (:), weil
es sich um Befehle des Zeileneditors ex handelt, auf dem vi basiert. Alle ex-Befehle wer-
den mit (¢) abgeschlossen, deshalb ist es im Folgenden nicht aufgeführt. Mit
(:)(S)(/) Suchmuster (/) Ersatztext (/) ersetzen Sie das Suchmuster in der aktuellen
Zeile durch den Ersatztext. Für globales Ersetzen im gesamten Text ist die etwas kom-
plexere Form (:)(%)(S)(/) Suchmuster (/) Ersatztext (/)(G) zuständig; die Option G
steht hier für »global«. Verwenden Sie (C) als zusätzliche Option, wenn Sie aus Sicher-
heitsgründen jede einzelne Änderung bestätigen möchten. Statt des Prozentzeichens
können Sie auch zwei durch Komma getrennte Zeilennummern angeben, um das
Ersetzen auf den entsprechenden Bereich des Dokuments zu beschränken.
Löschen und
Kopieren
Für das Löschen im Befehlsmodus sind die folgenden Tasten und Tastenfolgen defi-
niert: (X) löscht das aktuelle Zeichen, (ª) + (X) das Zeichen vor dem Cursor. (D)(W)
löscht das ganze Wort, während (D)(D) die gesamte aktuelle Zeile entfernt. Wenn Sie
beispielsweise drei Wörter löschen möchten, müssen Sie (D)(3)(W) eingeben, für vier
Zeilen lautet die Eingabe dagegen (D)(4)(D). Die Tastenkombination (ª) + (D) löscht
den Text bis zum Ende der Zeile. (P) oder (ª) + (P) setzen den zuletzt gelöschten
Text hinter beziehungsweise vor dem Cursor wieder ein. Der jeweilige Löschvorgang
stellt den gelöschten Text nacheinander in nummerierte Löschpuffer. Mit (1)(P)
fügen Sie zum Beispiel den Text aus dem Löschpuffer Nummer 1 – dem ältesten – ein.
Insgesamt existieren neun nummerierte Löschpuffer.
Wenn Sie Text kopieren möchten, können Sie (Y) (Abkürzung für »yank«) und ein
Navigationskommando verwenden, beispielsweise (Y)(W) für ein Wort oder
(Y)(5)(Y) für fünf Zeilen. Der Text landet – genau wie beim Löschen – nacheinander
in den nummerierten Puffern 1 bis 9 und kann durch die entsprechenden (P)-
Sequenzen wieder eingefügt werden. Wenn Sie (") drücken, dann einen Buchstaben
von (A) bis (Z) und schließlich zweimal (ª) + (Y), wird die aktuelle Zeile dagegen in
einen von 26 benannten Puffern kopiert. Wird der Name des Puffers mit (ª) kombi-
niert (Großbuchstabe), dann wird der Inhalt des Puffers nicht überschrieben, son-
dern um die neu kopierte Zeile ergänzt. Mit ("), dem Buchstaben eines benannten
Puffers und (P) oder (ª) + (P) können Sie den Text des entsprechenden Puffers wie-
der einfügen.
Die Taste (U) macht den letzten Lösch-, Einfüge- oder Änderungsbefehl rückgängig.
Beachten Sie, dass nur in Vim mehrere Schritte rückgängig gemacht werden können;
beim klassischen vi ist lediglich ein Schritt möglich. (ª) + (U) stellt die gesamte
zuletzt modifizierte Zeile wieder her, und der Punkt (.) wiederholt den letzten Edi-
tierbefehl beliebig oft.
426
7.4 Editoren
DateioperationenWichtig sind schließlich noch die Dateioperationen. Auch bei ihnen handelt es sich
um ex-Befehle. Geben Sie (:)(W) Dateiname ein, um die aktuell bearbeitete Datei unter
einem neuen Namen zu speichern; beachten Sie aber, dass Sie danach mit der alten
Datei weiterarbeiten. (:)(W)(!) speichert sie nach erfolgten Änderungen erneut
unter diesem Namen – das (!) dient jeweils dem Umgehen von Schutzmaßnahmen.
(:)(R) Dateiname öffnet die angegebene Datei und fügt ihren Inhalt an der aktuellen
Cursorposition ein. (:)(Q) beendet den vi, aber nur, wenn die aktuelle Datei gespei-
chert wurde. (:)(Q)(!) erzwingt das Beenden und verwirft Änderungen. (:)(X) ist
eine Kurzfassung für (:)(W)(Q): Beide bedeuten, dass vi zuerst speichern soll und
anschließend beendet werden soll.
Diese kurze Übersicht ermöglicht es Ihnen, sich grundsätzlich im vi zurechtzufinden
und effizient Texte zu bearbeiten. In Wirklichkeit verfügt er über Unmengen weiterer
Befehle, immerhin gibt es ganze Bücher über die Arbeit mit diesem Editor. Tabelle 7.4
zeigt eine Übersicht über die wichtigsten dieser Kommandos; zum Teil kamen diese
nicht in der vorigen Beschreibung vor. Aber ob Sie nun mit der vorliegenden kurzen
Anleitung oder mit einem umfangreichen Tutorial arbeiten – Geläufigkeit erreichen
Sie nur, wenn Sie ständig üben.
Tastenkürzel/Befehl Bedeutung
Moduswechsel
(I) Wechsel in den Eingabemodus an aktuelle Position
(A) Wechsel in den Eingabemodus nach aktueller Position
(ª) + (I) Wechsel in den Eingabemodus am Zeilenanfang
(ª) + (A) Wechsel in den Eingabemodus am Zeilenende
(O) Wechsel in den Eingabemodus unter aktuelle Zeile
(ª) + (O) Wechsel in den Eingabemodus über aktuelle Zeile
(Esc) Wechsel aus Eingabemodus in den Befehlsmodus
Navigation im Text
(H) Cursor um ein Zeichen nach links bewegen
(J) Cursor um ein Zeichen nach unten bewegen
(K) Cursor um ein Zeichen nach oben bewegen
(L) Cursor um ein Zeichen nach rechts bewegen
Tabelle 7.4 Die wichtigsten vi-Kommandos im Überblick
427
7 Linux
(0) (Null, nicht O) Cursor an den Zeilenanfang
(ª) + (4), d. h. ($) Cursor ans Zeilenende
(ª) + (8), d. h. («) Cursor zum vorigen Satzanfang
(ª) + (9), d.h. (») Cursor zum nächsten Satzanfang
(Alt_Gr) + (7) (Windows)
oder (Alt) + (8) (Mac),
d.h. ({)
Cursor zum vorigen Absatzanfang
(Alt_Gr) + (0) (Windows)
oder (Alt) + (9) (Mac),
d.h. (})
Cursor zum nächsten Absatzanfang
n (Alt_Gr) + (<) (Windows)
bzw. n (Alt) + (7) (Mac),
d. h. n (|)
Cursor zu Zeichen n in der aktuellen Zeile
(-) Cursor zum Anfang der vorigen Zeile
(+) oder (¢) Cursor zum ersten Nicht-Leerzeichen der nächsten
Zeile
(ª) + (H) Cursor zum Anfang der ersten sichtbaren Zeile
(ª) + (M) Cursor zum Anfang der Zeile in der Bildschirmmitte
(ª) + (L) Cursor zum Anfang der letzten sichtbaren Zeile
n (ª) + (5), d.h. n (%) Cursor in die Zeile, die dem angegebenen prozentua-
len Anteil des Textes entspricht
(W) Cursor ein Wort weiter (Satzzeichen als eigene Wörter)
(ª) + (W) Cursor ein Wort weiter (inklusive Satzzeichen)
(B) Cursor ein Wort zurück (Satzzeichen als eigene
Wörter)
(ª) + (B) Cursor ein Wort zurück (inklusive Satzzeichen)
(E) Cursor zum nächsten Wortende
(G)(E) Cursor zum vorigen Wortende
Tastenkürzel/Befehl Bedeutung
Tabelle 7.4 Die wichtigsten vi-Kommandos im Überblick (Forts.)
428
7.4 Editoren
n (G) oder (:) n Cursor in Zeile n
(G)(G) Cursor an den Textanfang
(ª) + (G) Cursor an den Anfang der letzten Zeile
n Tastenkürzel Die angegebene Funktion n-mal ausführen
(z.B. (3)(H) für drei Zeichen nach links; nicht nur für
Navigation verfügbar)
Scrollen (Bildschirm bewegen, ohne den Cursor zu verschieben)
(Strg) + (Y) eine Zeile nach oben scrollen
(Strg) + (E) eine Zeile nach unten scrollen
(Strg) + (U) einen halben Bildschirm nach oben scrollen
(Strg) + (D) einen halben Bildschirm nach unten scrollen
(Strg) + (B) einen ganzen Bildschirm nach oben scrollen
(Strg) + (F) einen ganzen Bildschirm nach unten scrollen
(Z)(Z) die Zeile mit dem Cursor in die Bildschirmmitte
scrollen
(Z)(T) die Zeile mit dem Cursor an den oberen Bildschirm-
rand scrollen
(Z)(B) die Zeile mit dem Cursor an den unteren Bildschirm-
rand scrollen
Zeichen suchen
(F) Zeichen erstes Vorkommen des angegebenen Zeichens in der
aktuellen Zeile suchen
n (F) Zeichen das n. Vorkommen des angegebenen Zeichens in der
aktuellen Zeile suchen
(ª) + (F) Zeichen rückwärts in der aktuellen Zeile nach dem angegebe-
nen Zeichen
(;) den vorherigen Suchbefehl wiederholen
Tastenkürzel/Befehl Bedeutung
Tabelle 7.4 Die wichtigsten vi-Kommandos im Überblick (Forts.)
429
7 Linux
(,) den vorherigen Suchbefehl in die andere Richtung
wiederholen
(%) zwischen korrespondierenden Klammern (auch ecki-
gen oder geschweiften) hin- und herspringen; mit
Zähler völlig andere Bedeutung (siehe unter »Navi-
gation«)
Volltextsuche und Ersetzen
(/) RegExp (¢) vorwärts im Text nach dem angegebenen regulären
Ausdruck suchen
(?) RegExp (¢) rückwärts im Text nach dem angegebenen regulären
Ausdruck suchen
(N) in die aktuelle Richtung erneut nach dem vorherigen
regulären Ausdruck suchen
(ª) + (N) in die entgegengesetzte Richtung erneut nach dem
vorherigen regulären Ausdruck suchen
(:) wrapscan (¢) Suche darf Dokumentende/-anfang überschreiten
(Standard).
(:) nowrapscan (¢) Suche darf Dokumentende/-anfang nicht mehr über-
schreiten.
(:) sethlsearch (¢) künftig alle gefundenen Ergebnisse hervorheben
(:) nohlsearch (¢) die aktuelle Hervorhebung ausblenden
(:) setnohlsearch (¢) die gefundenen Ergebnisse nicht mehr hervorheben
(:) setincsearch (¢) inkrementelle Suche – bereits während der Eingabe
zu suchen beginnen
(:) setnoincsearch (¢) die inkrementelle Suche abschalten
(:)(S)(/) Text1 (/) Text2
(/)(¢)
das nächste Vorkommen von Text1 in der aktuellen
Zeile durch Text2 ersetzen
(:)(S)(/) Text1 (/) Text2
(/)(G)(¢)
alle Vorkommen von Text1 in der aktuellen Zeile
durch Text2 ersetzen
Tastenkürzel/Befehl Bedeutung
Tabelle 7.4 Die wichtigsten vi-Kommandos im Überblick (Forts.)
430
7.4 Editoren
(:)(%)(S)(/) Text1
(/) Text2 (/)(¢)
das erste Vorkommen von Text1 in jeder Zeile durch
Text2 ersetzen
(:)(%)(S)(/) Text1
(/) Text2 (/)(G)(¢)
alle Vorkommen von Text1 in jeder Zeile (d.h. alle Vor-
kommen im gesamten Text) durch Text2 ersetzen
(:)(%)(S)(/) Text1
(/) Text2 (/)(G)(C)(¢)
wie der vorherige Befehl, aber vor jedem einzelnen
Ersetzungsvorgang nachfragen (die Option (C) steht
auch für alle anderen Optionen zur Verfügung)
Sprungmarken
(`)(`) Sprung zur letzten Sprungmarke (Ergebnis einer
Suche oder eines (G)-Sprungbefehls)
(Strg) + (O) in der Liste der Sprungmarken schrittweise rückwärts
blättern
(Strg) + (I) in der Liste der Sprungmarken schrittweise vorwärts
blättern
(M)(A) bis (M)(Z) an der aktuellen Cursorposition eine der benannten
Marken A bis Z einrichten
(`)(A) bis (`)(Z) zu einer der benannten Marken A bis Z springen
(')(A) bis (')(Z) zum Anfang der jeweiligen Zeile springen, in der sich
eine der benannten Marken A bis Z befindet
(:) marks (¢) Liste aller Marken ausgeben
Löschen, Kopieren und Einfügen
(X) das Zeichen unter dem Cursor ausschneiden (löschen
und in einem Puffer speichern)
(ª) + (X) das Zeichen links neben dem Cursor ausschneiden
(D) Navigationsbefehl Die dem Navigationsbefehl entsprechende Menge
Text ausschneiden. (D)(3)(H) löscht beispielsweise
drei Zeichen nach links.
(D)(D) ganze Zeile ausschneiden
(C) Navigationsbefehl wie (D), aber anschließend in den Eingabemodus
wechseln
Tastenkürzel/Befehl Bedeutung
Tabelle 7.4 Die wichtigsten vi-Kommandos im Überblick (Forts.)
431
7 Linux
(C)(C) wie (D)(D), aber anschließend in den Eingabemodus
wechseln
(Y) Navigationsbefehl die dem Navigationsbefehl entsprechende Menge
Text in den Puffer kopieren (yank)
(Y)(Y) ganze Zeile kopieren
(P) den Text aus dem Puffer an der aktuellen Cursorposi-
tion einfügen
(ª) + (P) den Text aus dem Puffer hinter der aktuellen Cursor-
position einfügen
(X)(P) das aktuelle und das folgende Zeichen vertauschen
Wiederholen, Rückgängigmachen, Wiederherstellen
(U) den letzten Befehl rückgängig machen (in vi nur ein-
mal, in Vim mehrmals möglich – auch mit Zähler)
(Strg) + (R) den zuletzt rückgängig gemachten Befehl wiederher-
stellen (nur Vim)
(.) den vorherigen Befehl wiederholen
Datei- und Fensterverwaltung
(:)(W)(¢) die aktuelle Datei speichern
(:)(W) Neuer Name (¢) eine Kopie der aktuellen Datei unter NeuerName
speichern; mit der aktuellen weiterarbeiten
(:) edit Dateiname (¢) das Editieren der aktuellen Datei beenden (muss
gespeichert sein) und die angegebene laden
(:) edit (!) Dateiname (¢) das Editieren der aktuellen Datei abbrechen (wird
nicht gespeichert!) und die angegebene laden
(:) wedit Dateiname (¢) die aktuelle Datei automatisch speichern und schlie-
ßen und die angegebene laden
(:) hide edit Dateiname
(¢)
die aktuelle Datei verbergen und die angegebene
laden
(:) buffers (¢) nummerierte Liste aller Puffer (geöffneten Dateien)
Tastenkürzel/Befehl Bedeutung
Tabelle 7.4 Die wichtigsten vi-Kommandos im Überblick (Forts.)
432
7.4 Editoren
7.4.2 Emacs
Der Name Emacs steht für »Editor Macros«, weil er ursprünglich als Satz von Makro-
befehlen für einen älteren Editor entworfen wurde. Inzwischen ist er ein eigenständi-
ger Editor, der in vielen verschiedenen Varianten für etliche Plattformen verfügbar
ist, nicht nur für alle erdenklichen Unix-Arten, sondern beispielsweise auch für Win-
dows. Die Hauptentwicklungslinie ist der GNUEmacs, den Sie von der Website des
GNU-Projekts (www.gnu.org) oder den zahlreichen weltweiten Mirror-Sites herunter-
laden können. Die aktuelle Hauptversion ist 23.x, was Ihnen einen Eindruck davon
vermitteln mag, wie lange diese Software bereits existiert – das Programm ist ausge-
reift und sehr stabil. Daneben gibt es den sogenannten XEmacs, was ein wenig ver-
wirrend ist, weil beide Varianten sowohl auf der Konsole als auch in einer grafischen
X-Window-Oberfläche laufen.
Emacs verfügt über einen erheblich größeren Befehlsumfang als vi; es handelt sich
letzten Endes nicht nur um einen Editor, sondern um einen vollwertigen Shell-Ersatz
mit zusätzlichen Funktionen wie E-Mail, unzähligen Betriebsmodi für diverse Text-
sorten und sogar Spielen.
Die meisten Emacs-Befehle werden durch Tastenkombinationen mit (Strg) (auf eng-
lischen PC-Tastaturen und auf dem Mac (Ctrl)) oder (Meta) gebildet. Wenn Sie auf
Ihre Tastatur schauen, werden Sie feststellen, dass Sie gar keine (Meta)-Taste haben;
die gibt es nur an einigen alten Terminals und verschiedenen Unix-Workstations. In
den meisten Terminalprogrammen oder in der GUI-Version von Emacs kann die
(Alt)-Taste dafür verwendet werden. Einige Terminalemulationen bestehen dage-
gen darauf, dass Sie (Meta)-Tastenkombinationen durch Drücken der Taste (Esc) und
anschließendes Betätigen der entsprechenden Kombinationstaste eingeben.
Schreibweise für
Tastenkürzel
Die Emacs-Dokumentation verwendet eine etwas eigenwillige Schreibweise für die
Tastenkombinationen. Diese Schreibweise wird hier kurz erläutert und anschließend
verwendet, damit Sie sich nicht umzugewöhnen brauchen, wenn Sie die zahlreichen
Hilfeseiten im Emacs selbst lesen. (Strg)-Tastenkombinationen werden durch »C-«
(control), gefolgt von dem entsprechenden Zeichen, angegeben, beispielsweise steht
(:) buffer Nummer (¢) zum Puffer mit der angegebenen Nummer wechseln
(:)(Q) vi beenden (alle Dateien müssen gespeichert sein)
(:)(Q)(!) Beenden von vi erzwingen (nicht gespeicherte
Dateien werden verworfen)
Tastenkürzel/Befehl Bedeutung
Tabelle 7.4 Die wichtigsten vi-Kommandos im Überblick (Forts.)
433
7 Linux
C-x für (Strg) + (X). (Meta)-Tastenkürzel werden dagegen mit vorangestelltem M- dar-
gestellt. M-x bedeutet also je nach der Umgebung, in der Sie arbeiten, entweder (Alt)
+ (X) oder (Esc) gefolgt von (X). Letzteres funktioniert übrigens immer.
Der Emacs wird durch Eingabe von emacs oder emacs Dateiname gestartet. Wenn Sie ihn
nicht in einem GUI-Fenster, sondern in der aktuellen Konsole aufrufen möchten, lau-
tet das Kommando emacs -nw [Dateiname]. Sie können mehrere Dateien auf einmal
bearbeiten; die einzelnen Arbeitsbereiche für Dateien werden als Buffer bezeichnet.
Falls Sie keinen Dateinamen angegeben haben, befinden Sie sich zunächst im
Scratch-Buffer (Notizblock), der für ungespeicherte Notizen vorgesehen ist. Wenn Sie
eine speicherbare Datei editieren möchten, müssen Sie diese zunächst mit C-x C-f
Dateiname »besuchen« (die Original-Emacs-Dokumentation verwendet den Ausdruck
»visit«). Falls diese Datei bereits existiert, wird sie geöffnet, ansonsten neu angelegt.
Buffer und
Fenster wechseln
Wenn mehrere Buffer geöffnet sind, können Sie mithilfe der Tastenkombination C-x
b Buffername (¢) zum Buffer mit dem angegebenen Namen wechseln (ohne Angabe
eines Buffers wird reihum zum jeweils nächsten gewechselt). Eine Liste aller verfüg-
baren Buffer erhalten Sie mit C-x C-b in einem abgetrennten Bereich, der als Fenster
bezeichnet wird. Mit C-x 2 können Sie ein solches Fenster selbst erzeugen; C-x 4 f
Dateiname (¢) öffnet eine neue Datei in einem separaten Fenster. Mit C-xo wechseln
Sie zwischen den beiden Fenstern hin und her. Mit M-C-v können Sie den Inhalt des
Fensters scrollen, in dem Sie zurzeit nicht arbeiten. C-x 1 schließt das nicht aktive
Fenster und behält nur das aktuelle.
Je nach Dateityp (den Emacs, ähnlich wie Windows, an der Dateiendung erkennt)
befinden Sie sich in einem der verschiedenen Emacs-Arbeitsmodi, die vor allem Pro-
grammierern das Leben erleichtern. Einige der wichtigsten Modi sind Fundamental
(der grundlegende Modus für einfachen Text), C (für die gleichnamige Programmier-
sprache) oder HTML (zum Editieren von Webseiten). Jeder dieser Modi verfügt über
besondere Funktionen wie automatische Einrückung, Anzeigen der korrespondie-
renden Klammer beim Schließen oder Ähnliches.
Sie können den Modus auch manuell über M-x Modusname wechseln: M-x fundamental
wechselt beispielsweise in den Fundamental Mode, M-x c-mode in den C-Modus oder
M-x html-mode in den HTML-Modus. M-x Schlüsselwort dient allgemein der Eingabe
eines Befehls in der Langform und muss jeweils mit (¢) abgeschlossen werden.
Wenn Sie einfach M-x (¢) eingeben, wird eine Liste aller möglichen Befehle angebo-
ten; alternativ können Sie auch einen oder mehrere Anfangsbuchstaben eines
Befehls eintippen und erhalten dann eine Liste der passenden Befehle.
Der einzeilige Bereich am unteren Bildschirm- oder Fensterrand, in den Sie mit M-x
gelangen, wird Minibuffer genannt. Sie können ihn durch dreimaliges Drücken von
(Esc) wieder verlassen.
434
7.4 Editoren
Navigation
im Text
Zeichenweise durch den Text navigieren Sie mit den Pfeiltasten oder alternativ mit
C-f (nach rechts, forward), C-b (nach links, backward), C-p (nach oben, previous line)
und C-n (nach unten, next line). C-a bewegt den Cursor zum Zeilenbeginn und C-e
zum Zeilenende. C-v scrollt um einen ganzen Bildschirm nach unten, M-v nach oben.
M-f wandert um ein Wort nach rechts, M-b nach links. M-< springt zum Anfang der
gesamten Datei, M-> ((Alt) + (ª) + (<)) zu ihrem Ende.
C-d löscht das Zeichen unter dem Cursor, während (æ___) das vorherige Zeichen ent-
fernt. M-d löscht das folgende Wort, M-(æ___) das vorige. C-k tilgt den Bereich vom
Cursor bis zum Ende der Zeile.
C-Leertaste setzt eine Markierung. Der markierte Bereich reicht automatisch von der
gesetzten Markierung bis zur aktuellen Cursorposition. Um den gesamten Bereich zu
löschen, genauer gesagt auszuschneiden, wird die Tastenkombination C-w verwen-
det. M-w kopiert den Bereich dagegen zum späteren Einfügen. In beiden Fällen kön-
nen Sie ihn mithilfe von C-y wieder einfügen.
C-s leitet eine inkrementelle Suche ein – während der Eingabe des Suchbegriffs
springt der Cursor zur jeweils nächstgelegenen Stelle, die diesem Begriff entspricht.
Entsprechend sucht C-r rückwärts. C-s C-s wiederholt die letzte Suche. (¢) verlässt
das Suchprogramm vollständig. M-C-s sucht nach einem regulären Ausdruck statt
einer einfachen Zeichenfolge. Die Syntax der regulären Ausdrücke entspricht grep.
M-% ist der Befehl zum Suchen und Ersetzen. Zunächst wird nach der zu ersetzenden
Zeichenfolge gefragt, anschließend nach dem Ersetzungstext. Die Eingabe beider Zei-
chenfolgen muss mit (¢) abgeschlossen werden. An jeder einzelnen Fundstelle wer-
den Sie gefragt, ob Sie die Ersetzung durchführen möchten. (Y) oder Leertaste
bedeutet ja, (N) oder (Entf) steht für nein, und (!) heißt, dass alle künftigen Fund-
stellen ohne weitere Rückfrage ersetzt werden sollen.
Wenn Sie Ihre aktuelle Arbeit speichern möchten, verwenden Sie dazu den Befehl
C-x C-s. C-x s speichert alle geänderten Buffer auf einmal. C-x C-w Dateiname (¢)
sichert die Datei dagegen unter dem angegebenen neuen Namen. Mit C-x C-c been-
den Sie Emacs. Vorher werden Sie gefragt, ob Sie die modifizierten Buffer speichern
möchten.
Erweiterte
Funktionen
Was bereits über den vi gesagt wurde, gilt für Emacs erst recht: Es gibt Unmengen
weiterer Befehle, für die in diesem Buch leider kein Platz ist. Mit dem hier gebotenen
Ausschnitt aus der Funktionsvielfalt von Emacs können Sie beliebige Textdateien
bearbeiten. Mit etwas Übung werden Sie damit irgendwann schneller arbeiten kön-
nen als mit einem grafisch orientierten Editor, in dem Sie oft zur Maus greifen müs-
sen, um spezielle Befehle zu verwenden. Dennoch ist auch der Emacs mit einem
umfangreichen Menü ausgestattet, solange er in einer GUI läuft. Da die Tastenkürzel
jeweils neben den einzelnen Menübefehlen stehen, können Sie mithilfe des Menüs
leicht neue Befehle erlernen.
435
7 Linux
Auch für Emacs folgt in Tabelle 7.5 eine etwas ausführlichere Kommandoliste.
Tastenkürzel/Befehl Bedeutung
Dateien, Buffer und Fenster
C-x C-f Dateiname Die angegebene Datei laden (Emacs-Begriff visit). Falls sie
noch nicht existiert, wird sie neu angelegt.
C-x C-v den Namen der aktuellen Datei im Minibuffer anzeigen, um ihn
zu editieren und die resultierende Datei zu laden/anzulegen
C-x i Dateiname die angegebene Datei an der aktuellen Cursorposition in die
derzeitige Datei einfügen
C-x b Buffername zum Buffer mit dem angegebenen Namen wechseln
C-x k [Buffername] den angegebenen bzw. den aktuellen Buffer schließen
C-x C-b Liste aller derzeit geöffneten Buffer in separatem Fenster
(Abschnitt)
e oder f in der Bufferliste den aktiven Buffer im anderen Fenster
öffnen
d in der Bufferliste einen Buffer zum Löschen markieren
s in der Bufferliste einen Buffer zum Speichern markieren
u in der Bufferliste eine Markierung aufheben
x in der Bufferliste alle markierten Lösch- und Speichervor-
gänge ausführen
C-x 2 ein zweites Fenster erzeugen
C-x 4 f Dateiname die angegebene Datei in einem neuen Fenster öffnen/
erstellen
C-x o Wechsel zum jeweils anderen Fenster (auch in die Bufferliste)
C-x v im jeweils anderen Fenster scrollen
C-x 1 Das nicht aktive Fenster schließen
Zähler
C-u n Befehl den angegebenen Befehl so oft durchführen, wie durch die
Anzahl n angegeben
Tabelle 7.5 Die wichtigsten Emacs-Kommandos im Überblick
436
7.4 Editoren
M-n Befehl den angegebenen Befehl so oft durchführen, wie durch die
Anzahl n angegeben
Navigation im Text
C-f Cursor um ein Zeichen nach rechts bewegen (forward)
C-b Cursor um ein Zeichen nach links bewegen (backward)
C-p Cursor um eine Zeile nach oben bewegen (previousline)
C-n Cursor um eine Zeile nach unten bewegen (nextline)
M-b Cursor um ein Wort nach rechts bewegen
M-f Cursor um ein Wort nach links bewegen
C-a Cursor zum Zeilenanfang bewegen
C-e Cursor zum Zeilenende bewegen
M-a Cursor zum vorigen Satzbeginn bewegen
M-e Cursor zum nächsten Satzbeginn bewegen
C-v um einen ganzen Bildschirm nach unten scrollen
M-v um einen ganzen Bildschirm nach oben scrollen
M-< Cursor zum Textanfang bewegen
M-> Cursor zum Textende bewegen
Löschen
C-d das Zeichen unter dem Cursor löschen
Backspace das Zeichen links vom Cursor löschen
M-d das folgende Wort löschen
M-Backspace das vorige Wort löschen
C-k vom Cursor bis zum Ende der Zeile löschen
M-k vom Cursor bis zum Satzende löschen
C-t das aktuelle und das vorherige Zeichen vertauschen
Tastenkürzel/Befehl Bedeutung
Tabelle 7.5 Die wichtigsten Emacs-Kommandos im Überblick (Forts.)
437
7 Linux
Markieren, Kopieren und Einfügen
C-Leertaste Markierung setzen
C-w den Text von der Markierung bis zur aktuellen Cursorposition
ausschneiden
M-w den Text von der Markierung bis zur aktuellen Cursorposition
kopieren
C-y den zuletzt ausgeschnittenen oder kopierten Text an der
aktuellen Cursorposition einfügen
M-y durch die zuvor ausgeschnittenen oder kopierten Texte
»blättern«, um den richtigen auszusuchen
Suchen und Ersetzen
C-s inkrementelle Suche vorwärts einleiten
C-r inkrementelle Suche rückwärts einleiten
C-s C-s erneut nach dem vorherigen Suchbegriff suchen
Enter den Suchmodus verlassen
M-C-s nach einem regulären Ausdruck statt nach einem einfachen
String suchen
M-% interaktives Suchen und Ersetzen: Suchbegriff eingeben,
Ersetzungsstring eingeben, für jede Stelle mit y oder Leer-taste bestätigen, mit n oder Entf ablehnen, oder mit ! für alle
Fundstellen bestätigen
Speichern und Beenden
C-x C-s den aktuellen Buffer speichern
C-x s alle Buffer (mit Nachfrage) speichern
C-x C-w Dateiname die aktuelle Datei unter dem angegebenen neuen Namen
speichern
C-x C-c Emacs beenden (mit Nachfrage, ob die geänderten Buffer
gespeichert werden sollen)
Tastenkürzel/Befehl Bedeutung
Tabelle 7.5 Die wichtigsten Emacs-Kommandos im Überblick (Forts.)
438
7.5 Grafische Benutzeroberflächen
Abgesehen davon können Sie diesen Editor völlig frei konfigurieren. Zum einen kön-
nen Sie die Tastenkürzel selbst frei belegen, zum anderen ist der Emacs beliebig
erweiterbar: Er ist mit einer eigenen Variante der Programmiersprache LISP ausge-
stattet. Diese Sprache könnte Programmierer durch ihren eigenwilligen Ansatz
abschrecken, sie ist aber speziell an die Funktionen von Emacs angepasst und erleich-
tert so das Programmieren von Zusatzfunktionen.
7.5 Grafische Benutzeroberflächen
Neben der bis jetzt behandelten Konsole sind alle modernen Linux-Distributionen
auch mit einer grafischen Benutzeroberfläche ausgestattet. Diese Oberfläche besteht
aus zwei verschiedenen Bestandteilen, die aufeinander aufbauen: dem X-Window-
Server oder kurz X-Server und dem Window-Manager.
7.5.1 Der X-Server
Ein X-Server ist das grundlegende Programm, das die allgemeinen Zeichenfunktio-
nen zur Verfügung stellt. Er kann mit anderen Worten die verschiedensten Grafikob-
jekte wie Rechtecke, Linien oder Bilddateien auf den Bildschirm zeichnen, außerdem
verarbeitet er die grundlegende Steuerung mit der Maus. Dem X-Server ist es übri-
gens egal, ob die Anwendung, die er anzeigt und für die er Befehle entgegennimmt –
der X-Client –, auf demselben Rechner läuft oder irgendwo im Netzwerk.
Der traditionelle X-Server für kommerzielle Unix-Varianten heißt X11; die derzeitige
Version ist X11R7. Da dieses Produkt kommerziell war, wurde vor vielen Jahren eine
freie Alternative begründet: Das XFree86-Projekt stellte freie X-Server zur Verfügung;
anfangs für Intel x86-Prozessoren und damit kompatible (daher der Name), später
auch für andere Plattformen. Inzwischen ist der »offizielle« X-Server X11R7 ebenfalls
frei und wird von einer Organisation namens X.org Foundation weiterentwickelt,
während XFree86 wegen Streitigkeiten der Entwickler eingestellt wurde.
Den X-Server auswählen und konfigurieren
Heutzutage ist es ein Leichtes, den richtigen X-Server auszuwählen, weil es in vielen
Fällen automatisch geschieht. Bereits bei der Installation analysieren die meisten
Linux-Distributionen Ihre Hardware und starten meistens den korrekten X-Server,
der zu Ihrer Grafikkarte passt.
In einigen wenigen Fällen funktioniert die Installation des richtigen X-Servers aller-
dings nicht; möglicherweise erhalten Sie lediglich den VGA-X-Server mit 640 × 480
Pixeln und 256 Farben, vielleicht sogar gar keinen. Im letzteren Fall müssen Sie Linux
zunächst im Textmodus installieren und X11 später manuell konfigurieren.
439
7 Linux
Wenn der X-Server falsch konfiguriert oder gar nicht installiert wurde, wird das wahr-
scheinlich daran liegen, dass Ihre Grafikkarte entweder zu alt oder zu neu ist. Sehr
alte Grafikkarten werden mitunter nicht unterstützt, wenn sie nicht besonders weit-
verbreitet waren, mit neueren arbeiten die X-Server dagegen oft erst einige Zeit nach
der Einführung zusammen. Das Problem ist, dass zunächst einmal Treiber für neue
Grafikkarten entwickelt werden müssen, falls der Hersteller das nicht selbst tut.
Bei openSUSE wird ein praktisches Hilfsprogramm namens SaX (SUSE Advanced X
Configuration Utility) mitgeliefert. In einem nützlichen Dialog können Sie die Para-
meter Ihrer Maus, Ihrer Tastatur, Ihrer Grafikkarte und Ihres Monitors eingeben. SaX
bemüht sich, Ihre Konfiguration automatisch zu ermitteln; nur in wenigen Fällen
müssen Sie selbst eingreifen. Auf jeden Fall sollten Sie die Handbücher Ihres Moni-
tors und Ihrer Grafikkarte bereithalten, weil Sie eventuell Werte wie den RAMDAC
der Grafikkarte oder die Zeilenfrequenz des Monitors manuell eingeben müssen.
Geben Sie sax2 ein, um die aktuelle Version zu starten.
Die meisten anderen Linux-Distributionen besitzen inzwischen ähnliche Hilfspro-
gramme, bei Fedora gibt es beispielsweise den Xconfigurator. Nur in wenigen Fällen
müssen Sie die X-Konfigurationsdateien manuell bearbeiten. In der Regel liegen
diese unter /etc/X11.
Meistens ist Ihr Linux so konfiguriert, dass X-Server und Window-Manager automa-
tisch gestartet werden. Falls das nicht der Fall ist, können Sie den X-Server folgender-
maßen nachträglich starten:
$ startx
Der automatische Start der grafischen Oberfläche lässt sich dagegen am einfachsten
im Systemverwaltungsprogramm einstellen, das je nach Distribution unterschied-
lich ist – bei openSUSE zum Beispiel das Programm YaST. Zuständig ist ein Log-in-
Manager, beispielsweise kdm aus dem KDE-Projekt oder der Klassiker xdm.
7.5.2 Desktops
Erst der Window-Manager, der auf den X-Server aufsetzt, stellt die eigentliche
Arbeitsumgebung mit Fenstern, Menüs und Icons zur Verfügung. Es gibt inzwischen
mehr verschiedene Window-Manager als Unix-Versionen. Einige traditionelle Win-
dow-Manager sind CDE von Sun oder fvwm2, der klassische Linux-Window-Manager.
Die verbreitetsten Projekte sind seit Jahren die freien Desktopumgebungen KDE und
GNOME. Beide bieten im Gegensatz zu den spartanisch ausgestatteten alten Model-
len den gesamten Bedienkomfort von Benutzeroberflächen wie Windows oder Mac
OS (oft sogar noch mehr als das) und werden inzwischen durch zahlreiche Anwender-
programme unterstützt. Genau diese beiden Desktopvarianten werden in diesem
Abschnitt kurz vorgestellt.
440
7.5 Grafische Benutzeroberflächen
Tabelle 7.6 zeigt zunächst einen vergleichenden Überblick über die beiden Desktops;
anschließend wird jeder von ihnen näher beschrieben.
KDE
Das K Desktop Environment (KDE) ist eine moderne grafische Benutzeroberfläche für
Linux und andere Unix-Systeme. Es handelt sich um ein Open-Source-Projekt, das
von einer großen Entwicklergemeinde gepflegt wird. Neben dem eigentlichen Desk-
top bietet das KDE-Projekt eine Vielzahl nützlicher Anwendungsprogramme, bei-
spielsweise den Webbrowser Konqueror, auf dem auch der eingebaute Datei-
Manager basiert, sowie das Office-Programmpaket KOffice.
In Abbildung 7.7 sehen Sie einen KDE-Desktop mit geöffneten Fenstern des Terminal-
programms KDE Konsole und des Dateimanagers Dolphin.
Eigenschaft KDE GNOME
vollständiger Name K Desktop Environment GNU Network Object
Model Environment
aktuelle Version 4.9 3.8
Entwicklungsteam The KDE Project The GNOME Foundation
Gründungsjahr 1996 1997
Projektgründer Matthias Ettrich Miguel de Icaza,
Federico Mena
grundlegende
Programmiersprache
C++ C
Grafikbibliothek Qt GtK+
Lizenz GPL/LGPL GPL/LGPL
Dateimanager KDE 4: Dolphin
KDE 3: Konqueror
Nautilus
Terminalemulation Konsole GNOME Terminal
weitere zugehörige
Anwendungen
(Beispiele)
KOffice (Office-Suite)
KMail (E-Mail)
Krita (Bildbearbeitung)
Kate (leistungsstarker Editor)
amaroK (Audio-Player)
Gnumeric (Tabellenkalkula-
tion) und andere Einzel-
Office-Komponenten
Evolution (E-Mail, Group-
ware) GIMP (Bildbearbei-
tung)
Tabelle 7.6 Die wichtigsten Eigenschaften von KDE und GNOME im Vergleich
441
7 Linux
KDE basiert auf der Grafikbibliothek Qt, die von der norwegischen Firma Trolltech
entwickelt wurde. Angenehmerweise laufen Qt-Anwendungen nicht nur unter
Linux, sondern lassen sich auch unter allen anderen X11-Implementierungen, Win-
dows und Mac OS X kompilieren.
Die Leiste am Fuß des Bildschirms heißt Panel, ist mit der Windows-Taskleiste ver-
gleichbar und bietet die Möglichkeit, schnell auf die häufigsten Anwendungen und
Tools zuzugreifen. Der K-Button ganz links öffnet ein umfangreiches, verschachtel-
tes Menü, in dem fast alle Programme zu finden sind, die unter KDE oder allgemein
unter X11 laufen. Daneben sehen Sie unter anderem Schaltflächen für ein Terminal,
für Ihr Home-Verzeichnis, für das KDE-Kontrollzentrum (die Steuerzentrale für Ihre
persönlichen Einstellungen) und so weiter.
Weiter rechts finden Sie eine Schaltfläche für jedes geöffnete Programm oder Fens-
ter; durch Anklicken dieser Schaltflächen können Sie schnell zwischen den Fenstern
wechseln.
Abbildung 7.7 KDE-Desktop mit Terminalfenster und Dateimanager
442
7.5 Grafische Benutzeroberflächen
Desktop-
verknüpfungen
Wenn Sie auf bestimmte Programme oder Daten, die Sie häufig verwenden, beson-
ders schnell zugreifen möchten, können Sie eine Verknüpfung auf dem Desktop
anlegen. Am schnellsten erstellen Sie eine solche Verknüpfung, indem Sie mit der
rechten Maustaste eine leere Stelle auf dem Desktop anklicken und aus dem Kon-
textmenü den Befehl Neu erstellen � Verknüpfung zu Programm auswählen.
Im erscheinenden Dialog können Sie die Eigenschaften der Verknüpfung bequem
einstellen. Abgespeichert werden diese Informationen schließlich in einer Textda-
tei mit der Endung .desktop im Verzeichnis Desktop in Ihrem Home-Verzeichnis.
Vom Desktop können Sie eine Verknüpfung in das Panel ziehen, um sie dort dauer-
haft für den Schnellstart abzulegen. Hier kommen Sie auch dann an eine Anwendung
heran, wenn der gesamte Desktop mit offenen Fenstern übersät ist.
Die Funktion von Dolphin ist im Grunde genommen selbsterklärend. Er verhält sich
als Datei-Manager ähnlich wie die Pendants in anderen Betriebssystemen und ist als
Browser mit einigen der modernsten Fähigkeiten ausgestattet. Standardmäßig brau-
chen Sie Dateisymbole nicht doppelt zu klicken, sondern es genügt ein einfacher
Klick wie bei Hyperlinks auf Webseiten.
Im KDE-Kontrollzentrum finden Sie eine Vielzahl von Einstellungsmöglichkeiten,
mit denen Sie den Desktop und die verschiedenen KDE-Komponenten Ihren Bedürf-
nissen und Wünschen anpassen können. Beispiele für solche Einstellungen sind der
Desktophintergrund, die automatische Anordnung von Icons, die zu benutzenden
Schriften, die Sprache oder die Browser-Konfiguration. Da KDE mit einer umfangrei-
chen HTML-basierten Hilfe ausgestattet ist, die alle Optionen genau erklärt, müssen
diese Einstellungsmöglichkeiten hier nicht näher behandelt werden.
GNOME
Das GNU Object Model Environment (GNOME) ist ebenfalls ein Open-Source-Projekt,
das auf der Grafikbibliothek GtK+ basiert. Anders als KDE wird zwischen der Desktop-
verwaltung und dem X-Server ein herkömmlicher Window-Manager für die grundle-
gende Bereitstellung der Fenster und Menüs eingesetzt. Der Standard-Window-
Manager ist Sawfish, andere GNOME-kompatible Window-Manager sind Enlighten-
ment, AfterStep oder WindowMaker.
In Abbildung 7.8 sehen Sie den GNOME-Desktop mit dem GNOME Terminal und dem
Dateimanager Nautilus.
Die Leiste am linken Rand des Desktops wird Panel genannt. Sie enthält unter ande-
rem den Desk Guide (deutsch »Arbeitsflächenumschalter«): Die GNOME-Oberfläche
lässt sich in mehrere virtuelle Desktops aufteilen, zwischen denen Sie per Klick auf
die Buttons des Desk Guides hin und her wechseln können. Falls der Arbeitsflächen-
umschalter bei Ihrer GNOME-Installation nicht angezeigt wird, klicken Sie mit der
rechten Maustaste ins Panel, wählen dann die Option Zum Panel hinzufügen und
443
7 Linux
danach den Listeneintrag Arbeitsflächenumschalter. Mit einem weiteren
Rechtsklick und der Auswahl Eigenschaften können Sie ihn anschließend konfi-
gurieren.
Abbildung 7.8 GNOME-Desktop mit Terminalfenster und Dateimanager
Auch eine Taskliste ist im Panel vorhanden; sie enthält für jedes geöffnete Programm
beziehungsweise Fenster einen Button.
Der Button Computer im Panel öffnet das Hauptmenü des GNOME-Desktops. Hier
finden Sie eine Reihe von Einträgen, beispielsweise Programme (Verknüpfungen
mit den wichtigsten GNOME- und X-Anwendungen), Favoriten (eine anfangs leere
Liste Ihrer bevorzugten Dateien, Ordner oder Internetressourcen) und System (Sper-
ren des Desktops bei Abwesenheit, Abmelden).
Desktop- und
Panel-
Verknüpfungen
Auch bei GNOME können Sie den Desktop mit Verknüpfungs-Icons versehen. Wäh-
len Sie dazu aus dem Kontextmenü des Desktops (rechte Maustaste) die Option
Starter anlegen. Es erscheint ein Dialog für die Einstellung aller Eigenschaften der
Verknüpfung.
444
7.6 Netzwerkkonfiguration unter Linux
Falls Sie eine Verknüpfung zum Panel hinzufügen möchten, klicken Sie mit der rech-
ten Maustaste auf das Panel, und wählen Sie Zum Panel hinzufügen � Starter.
Die möglichen Einstellungen sind dieselben wie bei einem Desktopstarter.
Alle zentralen Einstellungen für das Erscheinungsbild und das Verhalten des
GNOME-Desktops werden im GNOME-Kontrollzentrum getroffen. Wie bei KDE kön-
nen Sie hier beispielsweise Hintergrundbilder, Farben, Schriften oder Bildschirm-
schoner einstellen. Zusätzlich wird an dieser Stelle der zugrundeliegende Window-
Manager ausgewählt und konfiguriert.
7.6 Netzwerkkonfiguration unter Linux
In den meisten modernen Linux-Systemen gibt es praktische grafische Tools zur
Netzwerkkonfiguration. Da diese in jeder Distribution anders heißen und funktio-
nieren, wird an dieser Stelle nur kurz erläutert, wie sich das Netzwerk mithilfe von
Konsolentools einrichten lässt.
7.6.1 Grundeinstellungen
Unter Linux können Sie Gerätetreiber auf zwei Arten installieren: Entweder werden
sie fest in den Kernel einkompiliert oder als dynamisch lad- und entfernbare Module
eingerichtet. Beide Varianten wurden in diesem Kapitel bereits allgemein angespro-
chen.
ifconfigFalls Sie einer Schnittstelle eine IP-Adresse zuweisen möchten, funktioniert dies
ebenfalls über die grafischen Konfigurationsprogramme Ihrer Distribution oder
über den Befehl ifconfig (für interface configuration). Wenn Sie ifconfig ohne Para-
meter eingeben, erhalten Sie eine Übersicht über die aktuelle Konfiguration, die zum
Beispiel folgendermaßen aussieht:
$ ifconfigeth0 Link encap:Ethernet HWaddr 00:00:CB:53:17:64
inet addr:192.168.1.2 Bcast:192.168.1.255Mask:255.255.255.0
inet6 addr: fe80::200:cbff:fe53:1764/10Scope:Link
inet6 addr: fe80::cb53:1764/10 Scope:LinkEtherTalk Phase 2 addr:65280/53UP BROADCAST RUNNING MULTICAST MTU:150
Metric:1RX packets:8908250 errors:0 dropped:8242
overruns:0 frame:0
445
7 Linux
TX packets:7453081 errors:0 dropped:0overruns:0 carrier:0
collisions:2829807
lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostEtherTalk Phase 2 addr:0/0UP LOOPBACK RUNNING MTU:3924 Metric:1RX packets:994 errors:0 dropped:0 overruns:0
frame:0TX packets:994 errors:0 dropped:0 overruns:0
carrier:0collisions:0
Wie Sie sehen, besitzt der Computer eine Ethernet-Karte mit dem Gerätenamen eth0
und der IP-Adresse 192.168.1.2 sowie natürlich ein Loopback-Interface. Einige der
anderen Informationen sollten Sie wiedererkennen und verstehen, wenn Sie Kapi-
tel 4, »Netzwerkgrundlagen«, gründlich gelesen haben. Wenn der Rechner noch wei-
tere Ethernet-Karten hätte, würden ihre Gerätenamen entsprechend eth1, eth2 und
so weiter lauten.
Falls Sie der Schnittstelle eth0 eine andere IP-Adresse zuweisen möchten, müssen Sie
Folgendes eingeben:
# ifconfig eth0 192.168.0.7 netmask 255.255.255.0
Beachten Sie, dass diese Zuweisung nur für die Dauer einer Sitzung gilt. Damit sie
dauerhaft gültig bleibt, muss der Konfigurationsbefehl in einem Skript stehen, das
beim Systemstart automatisch ausgeführt wird. Die beiden grundsätzlichen Varian-
ten – System V Init und BSD-Startskripte – wurden hier bereits erläutert. In der Regel
ist es aber einfacher, das Konfigurationsprogramm Ihrer Linux-Distribution einzu-
setzen. insbesondere für erweiterte TCP/IP-Optionen wie Nameserver, den Bezug der
Konfigurationsdaten über DHCP oder den Netzzugang über Wählleitungen.
Das Default-
Gateway
einrichten
Wenn Sie über das LAN auf andere Netzwerkbereiche oder auf das Internet zugreifen,
müssen Sie als Nächstes eine Routing-Konfiguration erstellen. Angenommen, Ihre
eigene (feste) IP-Adresse sei 192.168.0.9. Um das Default-Gateway 192.168.0.1, einen
DSL-Router für Internetverbindungen, einzurichten, können Sie den folgenden
Befehl eingeben:
# route add default gw 192.168.0.1
default gw besagt, dass hier das Default-Gateway eingestellt wird. Beachten Sie, dass
auch diese Einstellung in ein Startskript gehört.
446
7.6 Netzwerkkonfiguration unter Linux
Die Verwendung anderer Netzwerkprotokolle als TCP/IP ist unter Unix nur in abso-
luten Ausnahmefällen erforderlich. Falls Sie AppleTalk, NetBEUI oder ein anderes
Protokoll auf Ihrem Linux-System verwenden möchten, müssen Sie es zunächst in
den Kernel einkompilieren. Aber selbst die im Folgenden behandelten Datei- und
Druckserver, über die Linux Windows- und Mac OS-Clients bedienen kann, arbeiten
standardmäßig über IP.
7.6.2 TCP/IP-Dienstprogramme
Linux enthält im Wesentlichen dieselben TCP/IP-Testprogramme wie Windows, nur
ihre Syntax unterscheidet sich in Details.
ping sendet in der Linux-Version ein Paket nach dem anderen, bis Sie (Strg) + (C)
drücken; danach wird die Statistik angezeigt. Das folgende Beispiel testet die Loop-
back-Schnittstelle:
$ ping localhostPING localhost (127.0.0.1) 56(84) bytes of data.64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.318 ms64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.151 ms64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.165 ms64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.154 ms^C--- localhost ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3001msrtt min/avg/max/mdev = 0.151/0.197/0.318/0.070 ms
Das Programm zur Routenverfolgung heißt auf Unix-Systemen traceroute. netstat
funktioniert wie unter Windows, nur heißt die Option zum Beschränken der Ausgabe
auf TCP-Pakete hier einfach -t.
Auch nslookup funktioniert wie die Windows-Version. Sie sollten aber überprüfen,
ob bei Ihnen das Programm dig vorhanden ist – es erfüllt im Wesentlichen dieselbe
Aufgabe wie nslookup, liefert aber erheblich aussagekräftigere Antworten.
7.6.3 Datei- und Druckserver unter Linux
Unter Unix gibt es eine Reihe von Möglichkeiten, Dateisysteme und Drucker im
Netzwerk freizugeben. In diesem Abschnitt werden die folgenden Systeme kurz vor-
gestellt: das Unix-File-Sharing-System NFS, die Druckerumgebung CUPS sowie
Samba als freier Server für Windows-Netzwerke.
Beachten Sie, dass alle hier und in den späteren Kapiteln besprochenen Konfigurati-
onsdateien einfache ASCII-Textdateien sind, die Sie mit einem beliebigen Editor
447
7 Linux
bearbeiten können. Ärgerlicherweise besitzt jede dieser Dateien über die erforderli-
chen unterschiedlichen Konfigurationsbefehle hinaus noch eine andere Syntax, die
man sich jeweils aneignen muss. Die meisten neueren Softwareprojekte entscheiden
sich glücklicherweise immer häufiger für das standardisierte XML-Format.
NFS
Die klassische, unter allen gängigen Unix-Systemen standardisierte Form der
Dateifreigabe ist das Network File System (NFS). Es gibt zwar zahlreiche modernere,
leistungsfähigere Netzwerkdateisysteme, aber noch immer bildet NFS eine Menge
der gemeinsamen Eigenschaften.
Wenn Sie auf Ihrem Rechner Dateien über NFS freigeben möchten, müssen Sie
zunächst den NFS-Server starten, dessen eigentlicher Name nfsd (Network File Sys-
tem Daemon) lautet. Was hier bereits über die TCP/IP-Konfiguration gesagt wurde,
gilt auch für den nfsd und andere Serverdienste: Damit sie beim Booten automatisch
gestartet werden, müssen sie in ein Bootskript eingetragen werden, das je nach Unix-
Version oder Linux-Distribution unterschiedlich aufgebaut ist. Das Einfachste ist es
also auch hier, den Start des NFS-Servers über das Konfigurationsprogramm Ihrer
Distribution zu konfigurieren.
NFS-
Freigaben
Welche Verzeichnisse Sie für den Netzwerkzugriff freigeben möchten, regelt die Kon-
figurationsdatei /etc/exports. Ein Eintrag zur Freigabe eines Verzeichnisses besitzt
unter Linux das folgende Format:
Pfad Host(Optionen) Host(Optionen)
Wenn Sie also beispielsweise das Verzeichnis /test ohne besondere Einstellungen an
die Rechner 192.168.0.3 und 192.168.0.4 in Ihrem lokalen Netzwerk freigeben möch-
ten, lautet die Zeile in der Konfigurationsdatei:
/test 192.168.0.3 192.168.0.4
Beachten Sie, dass die Konfigurationsdatei bei anderen Unix-Versionen eine andere
Syntax besitzt als unter Linux. In Sun Solaris heißt sie sogar anders, nämlich /etc/dfs/
dfstab.
Um die für den Export bestimmten Verzeichnisse tatsächlich freizugeben, müssen Sie
die folgende Anweisung verwenden, die ebenfalls in einem Startskript stehen sollte:
# exportfs -a
Wenn Sie auf ein freigegebenes NFS-Verzeichnis eines anderen Rechners zugreifen
möchten, müssen Sie es mithilfe des mount-Befehls in Ihren Verzeichnisbaum impor-
tieren. Das funktioniert beispielsweise folgendermaßen:
448
7.6 Netzwerkkonfiguration unter Linux
$ mount -t nfs server:/export/pub /pub
Die Option -t nfs gibt den Dateisystemtyp NFS an. Das zu mountende Verzeichnis
beginnt mit dem Namen des gewünschten Hosts, der durch einen Doppelpunkt vom
entfernten Pfad getrennt wird; die letzte Angabe ist wie gehabt das lokale Verzeich-
nis, in das der importierte Pfad eingebunden werden soll.
CUPS
Das Drucken unter Unix und erst recht die Freigabe von Druckern im Netzwerk
gehörten in früheren Zeiten zu den kompliziertesten Themen. Seit einigen Jahren
steht mit dem Common Unix Printing System (CUPS) eine sehr praktische Schnitt-
stelle zu vielen verschiedenen Druckern, Druckertreibern und Seitenbeschreibungs-
sprachen zur Verfügung. Es handelt sich um ein GNU-basiertes Open-Source-Projekt,
das von der Firma Easy Software Products entwickelt wird.
Systeme wie der BSD-lpd (Line Printer Daemon) oder ein ähnliches Paket aus System
V wurden in den 1970er Jahren entworfen und dienen lediglich der zeilenweisen Aus-
gabe von Text. Für Grafik, PostScript-Druck und so weiter wurden in der Folgezeit
zahlreiche proprietäre Lösungen eingeführt. CUPS fasst die Funktionen der klassi-
schen Unix-Druckumgebungen zusammen und fügt allgemeingültige Lösungen für
den Grafikdruck hinzu.
Der CUPS-
Scheduler
Die Schaltzentrale von CUPS ist der Scheduler, der die verschiedenen Druckjobs ent-
gegennimmt und in die Warteschlangen (Queues) der verschiedenen Drucker stellt.
Der Scheduler ist ein kleiner HTTP-Server und kann Druckjobs deshalb sowohl vom
lokalen Rechner als auch aus dem Netzwerk entgegennehmen; er lauscht am TCP-
Port 631. Die Druckjobs werden als HTTP-PUT-Anfragen in einem bestimmten Format
übermittelt, das als Internet Printing Protocol (IPP) in RFC 2911 und anderen RFCs defi-
niert ist. Außerdem kann der Scheduler natürlich als gewöhnlicher Webserver ver-
wendet werden, was zum Beispiel manchmal genutzt wird, um die CUPS-
Dokumentation im HTML-Format im Intranet bereitzustellen.
Das bekannte und weitverbreitete HTTP-Protokoll sorgt dafür, dass es sehr leicht ist,
CUPS-Clients zu schreiben. Aus diesem Grund verbreiten sie sich schnell in der Unix-
Welt. Innerhalb weniger Jahre hat sich CUPS zu einer der führenden Drucklösungen
entwickelt.
Wenn an Ihren Rechner ein Drucker angeschlossen ist, der sich über CUPS ansteuern
lässt (das System ist mit Treibern für fast alle gängigen Druckermodelle ausgestattet),
können Sie den CUPS-Server cupsd starten, um selbst darauf zu drucken oder anderen
Benutzern im Netzwerk den Zugriff auf den Drucker zu erlauben. Auch für den
Zugriff auf die CUPS-Drucker anderer Hosts müssen Sie cupsd auf Ihrem eigenen
Rechner einrichten.
449
7 Linux
Die Konfiguration des Daemons steht normalerweise in der Konfigurationsdatei
/etc/cups/cupsd.conf. Die wichtigsten Befehle sind Allow und Deny, mit denen Sie den
jeweils angegebenen Hosts den Zugriff gewähren beziehungsweise verweigern kön-
nen. BrowseAllow und BrowseDeny ermöglichen dagegen die Angabe von Hosts, deren
Druckerinformationen Sie erhalten oder nicht erhalten möchten.
Samba
Der Dateiserver Samba ermöglicht die Freigabe von Verzeichnissen und Druckern an
Windows-Clients. Der Name leitet sich von SMB ab, dem File-Sharing-Protokoll der
Windows-Betriebssysteme.
Wenn Sie Samba benutzen möchten, muss der Samba-Server smbd laufen. Die Kon-
figuration des Servers ist in der Datei /etc/smb.conf festgelegt. Sie verfügt über
Dutzende möglicher Konfigurationsbefehle, die auf der Manpage man smb.conf doku-
mentiert sind. Die Datei ähnelt eher einer Windows-ini-Datei als einer typischen
Unix-Konfigurationsdatei: Unter verschiedenen Abschnitten, deren Namen in ecki-
gen Klammern stehen, werden die Konfigurationsbefehle zeilenweise als Name=Wert-
Paare gesetzt.
smb.conf Die folgende kurze smb.conf-Datei ermöglicht beliebigen Windows-Benutzern den
anonymen Vollzugriff auf das Verzeichnis /export/pub und auf einen Drucker vom
Typ HP LaserJet:
[global]netbios name = Serverworkgroup = Workgrouphosts allow = 192.168.1.log file = /var/log/samba/log.%mprinting = cupsguest account = nobodysecurity = share
[pub]comment = Serververzeichnis für allepath = /export/pubpublic = yeswritable = yesprintable = yesbrowseable = yescreate mask = 0775
[hplj]comment = HP LaserJet
450
7.6 Netzwerkkonfiguration unter Linux
printer name = hpljwritable = yespublic = yesprintable = yesbrowseable = yes
Die Gruppe [global] enthält zunächst die allgemeine Konfiguration: Der netbios
name ist der Rechnername, der in der Windows-Netzwerkumgebung angezeigt wer-
den soll. Wenn Sie ihn weglassen, wird stattdessen der TCP/IP-Hostname exportiert.
Die workgroup gibt an, in welcher Windows-Netzwerk-Arbeitsgruppe der Samba-Ser-
ver auftauchen soll. hosts allow enthält eine Liste von IP-Adress-Schemata, die auf
den Server zugreifen dürfen – in diesem Beispiel das LAN mit der Adressgruppe
192.168.1.x. Die Angabe %m hinter dem log file gibt an, dass pro Monat eine neue Log-
Datei angelegt werden soll, die mit der Nummer des laufenden Monats endet. secu-
rity bestimmt die in diesem Kapitel bereits besprochene Windows-Freigabeebene.
share steht für Share Level Security, während user für User Level Security verwendet
wird. Wenn Gäste zugreifen, werden ihre Aktionen unter dem lokalen Benutzerkonto
nobody ausgeführt.
Unter dem selbst gewählten Namen [pub] wird das Verzeichnis /export/pub frei-
gegeben. Das Setzen sämtlicher Optionen auf den Wert yes bedeutet, dass der voll-
ständige Zugriff auf das Verzeichnis möglich ist. Die create mask gibt an, mit welchen
Benutzerrechten neu angelegte Dateien gespeichert werden sollen. Ähnliche Ein-
stellungen gelten auch für den Drucker.
Der SMB-ClientDie Samba-Distribution enthält neben dem Server übrigens einen SMB-Client, mit
dessen Hilfe Sie umgekehrt auf Windows-Freigaben im Netzwerk zugreifen können.
Er wird über den Konsolenbefehl smbclient aufgerufen und bildet eine Art eigene
Shell. Zunächst können Sie testen, welche Freigaben ein bestimmter Windows-Host
überhaupt zur Verfügung stellt:
$ smbclient -L winbox
Sie erhalten eine Liste aller freigegebenen Ordner auf dem angegebenen Host, in die-
sem Fall winbox. Angenommen, die Liste enthält eine Freigabe namens PUB vom Typ
Disk (Festplatte; eigentlich Verzeichnis). Sie können folgendermaßen auf dieses Ver-
zeichnis zugreifen:
$ smbclient \\\\winbox\\pub
Der NetBIOS-Freigabename des Verzeichnisses lautet eigentlich \\winbox\pub. Da die
Unix-Shell den Backslash aber für Escape-Sequenzen einsetzt, müssen Sie je einen
durch zwei von ihnen darstellen. Anschließend können Sie eine Reihe verschiedener
451
7 Linux
Befehle eingeben, um Dateioperationen an den Inhalten der Freigabe vorzunehmen.
Viele von ihnen entsprechen den Windows-Konsolenbefehlen, die im vorigen Kapi-
tel erläutert wurden. Der Befehl h listet alle verfügbaren Befehle auf. Mithilfe von quit
oder exit können Sie den smbclient beenden.
Noch einfacher ist es, die SMB-Freigabe mithilfe von mount als Volume zu mounten;
danach können Sie sie benutzen wie jedes andere Verzeichnis. Das folgende Beispiel
macht die vorige Freigabe unter dem Verzeichnis /media/smb verfügbar, das zuvor
angelegt worden sein muss:
# mount -t cifs //winbox/pub /media/smb
Bei älteren Samba-Versionen musste das Dateisystem als smbfs statt als cifs (Com-
mon Internet File System) angegeben werden.
7.7 Zusammenfassung
Unix ist mit seinen verschiedenen Derivaten und Implementierungen die älteste
noch existierende Betriebssystemfamilie. Doch obwohl es aus einer Zeit stammt, in
der Computersysteme ganz anders organisiert waren als heute, laufen Unix-Varian-
ten erfolgreich auf den verschiedensten modernen Rechnern. Das liegt vor allem an
dem extrem modularen Aufbau des ursprünglichen Konzepts: Jede Komponente des
Systems kann ausgetauscht oder angepasst werden.
Moderne Unix-Systeme vereinen auf diese Weise ein stabiles und verhältnismäßig
sicheres Betriebssystem mit Profi-Tools wie der Shell und ihren unzähligen Kom-
mandos sowie mit einer intuitiven und angenehmen Arbeitsoberfläche wie KDE
oder GNOME.
Der Schlüssel zum Verständnis von Unix oder Linux ist zweifellos der Umgang mit
der Kommandozeile, weshalb ihr in diesem Kapitel auch wesentlich mehr Platz ein-
geräumt wurde als der Betrachtung der GUIs. Wer einmal gelernt hat, mit einer
modernen Unix-Shell wie der bash zu arbeiten, wird viele Aufgaben gar nicht mehr
mithilfe der grafischen Benutzeroberfläche erledigen wollen, weil dies einfach
umständlicher und langsamer funktionieren würde.
Dieses Kapitel konzentrierte sich auf Linux als konkretes Beispiel für Unix-artige
Betriebssysteme. Es ist eine zeitgemäße, freie Unix-Implementierung, die auf bei-
nahe beliebiger Hardware vom PDA über gewöhnliche PCs bis zum Superrechner
läuft. Es besticht durch seine beinahe grenzenlose Flexibilität und Konfigurierbar-
keit. Zudem ist es überaus stabil und – bei vernünftiger Administration – recht sicher.
Im nächsten Kapitel wird als weiteres Beispiel Mac OS X behandelt, das aktuelle Sys-
tem für Apple-Macintosh-Rechner.
452
Index
!, Operator ............................................. 482
!, Ruby-Kennzeichen für Referenz-
methoden ......................................... 538
!=, Operator .......................................... 483
!~, Perl-Operator .................................. 581
#, Perl-Kommentar ............................ 521
#define, Präprozessor-Direktive 499
#endif, Präprozessor-Direktive ... 499
#ifdef, Präprozessor-Direktive .... 499
#include, C-Präprozessor-Direk-
tive ...................................................... 475
#include, Präprozessor-Direktive
498
$, Operator in RegExp ...................... 580
$, Perl-Variable ............................ 516, 518
$, PHP-Variable ................................... 965
$/, Perl-Variable .................................. 872
$_, Perl-Variable ................................... 519
$0, Unix-Systemvariable ................ 384
%, Operator ........................................... 481
%, Perl-Variable .................................... 518
&&, Operator
als Perl-Fallunterscheidung ...... 524
C ........................................................... 481
Perl ...................................................... 524
&, Dereferenzierungs-Operator ... 492
&, Operator, C ...................................... 482
*, Operator ............................................. 481
RegExp ............................................... 578
++, Operator ......................................... 484
+, Operator ............................................ 481
JavaScript-String-Verkettung 1041
RegExp ............................................... 578
String-Verkettung, Java .... 504, 505
-, Operator .................................... 481, 495
--, Operator ........................................... 484
., Perl-Operator .................................... 523
.bashrc, Unix-Konfigurations-
datei .................................................... 385
.NET ........................................................ 1140
.NET Framework .................................... 52
/, Operator ............................................ 481
//, Java-Kommentar ......................... 506
/etc/exports, NFS-Konfigurations-
datei .................................................... 448
/etc/passwd, Unix-Konfigurations-
datei .................................................... 381
/etc/profile, Unix-Konfigurations-
datei .................................................... 385
/etc/shadow, Unix-Konfigurations-
datei .................................................... 383
<a>, HTML-Tag ..................................... 915
<address>, HTML-Tag ...................... 910
<applet>, HTML-Tag ........................ 940
<area>, HTML-Tag ............................. 922
<article>, HTML5-Tag ...................... 909
<aside>, HTML5-Tag ........................ 909
<audio>, HTML5-Tag ........................ 939
<b>, HTML-Tag .................................... 910
<body>, HTML-Tag ............................ 902
<br />, HTML-Tag .............................. 904
<caption>, HTML-Tag ....................... 924
<code>, HTML-Tag ............................ 910
<col>, HTML-Tag ................................ 928
<colgroup>, HTML-Tag .................... 928
<dl>, HTML-Tag ................................... 913
<dt>, HTML-Tag ................................... 914
<em>, HTML-Tag ................................ 910
<embed>, HTML-Tag ........................ 938
<figcaption>, HTML5-Tag .............. 909
<figure>, HTML5-Tag ....................... 909
<footer>, HTML5-Tag ...................... 909
<form>, HTML-Tag ............................ 930
<h1> bis <h6>, HTML-Tags ............ 908
<head>, HTML-Tag ............................ 902
<header>, HTML5-Tag ..................... 909
<hgroup>, HTML5-Tag .................... 909
<html>, HTML-Tag ............................ 902
<i>, HTML-Tag ..................................... 910
<img>, HTML-Tag .............................. 920
<input>, HTML-Tag ............................ 931
neue Typen in HTML5 ................. 936
<li>, HTML-Tag ..................................... 911
<map>, HTML-Tag ............................. 922
<meta>, HTML-Tag ................... 904, 941
<nav>, HTML5-Tag ........................... 909
<object>, HTML-Tag ......................... 940
<ol>, HTML-Tag ................................... 912
<option>, HTML-Tag ........................ 933
<p>, HTML-Tag ................................... 907
<pre>, HTML-Tag ............................... 908
<script>, HTML-Tag ......................... 1038
<section>, HTML5-Tag ..................... 909
<select>, HTML-Tag ........................... 933
<strike>, HTML-Tag ........................... 910
<strong>, HTML-Tag ......................... 910
<style>, HTML-Tag ............................ 946
<sub>, HTML-Tag ............................... 910
<sup>, HTML-Tag ............................... 910
<table>, HTML-Tag ............................ 923
<tbody>, HTML-Tag ........................... 927
<td>, HTML-Tag .................................. 924
<textarea>, HTML-Tag ...................... 933
<tfoot>, HTML-Tag ............................ 927
<th>, HTML-Tag .................................. 924
<thead>, HTML-Tag ........................... 927
<title>, HTML-Tag ............................. 902
<tr>, HTML-Tag ................................... 923
<tt>, HTML-Tag ................................... 910
<u>, HTML-Tag .................................... 910
<ul>, HTML-Tag .................................... 911
<video>, HTML5-Tag ......................... 939
=, Operator ............................................ 483
==, Operator ......................................... 483
=~, Operator .......................................... 581
=~, Perl-Operator ................................. 527
? , Operator ........................................... 484
?, Operator
RegExp ............................................... 578
@, Perl-Variable ................................... 518
@_, Perl ................................................... 525
@font-face (CSS3) .............................. 960
^, Operator
C ........................................................... 482
in RegExp ................................. 578, 580
__call(), magische PHP-Methode 988
__get(), magische PHP-Methode 988
__isset(), magische PHP-Methode
988
__set(), magische PHP-Methode 988
__toString(), magische PHP-Methode
978
``, Operatoren ...................................... 586
|, Operator ............................................. 482
in RegExp ......................................... 580
1165
Index
||, Operator ............................................ 481
als Perl-Fallunterscheidung ...... 523
Perl ...................................................... 523
~, Operator ............................................ 482
0900-Dialer .......................................... 1113
1:1-Beziehung, RDBMS ..................... 704
1:n-Beziehung, RDBMS .................... 704
1000BaseFL, Ethernet-Standard 208
1000BaseTX, Ethernet-Standard 208
100BaseT, Ethernet-Standard ....... 207
10Base2, Ethernet-Standard .......... 204
10Base5, Ethernet-Standard ........... 205
10BaseT, Ethernet-Standard .......... 207
16-Bit-Anwendung
unter Win32 ..................................... 330
3D Now! (CPU-Befehlserweiterung)
123
3G (Mobilfunk) .................................... 223
4G (Mobilfunk) .................................... 223
8.3 (MS-DOS-Dateinamensschema)
320
A
Abakus ....................................................... 35
Abfrage, RDBMS
Änderungsabfrage ......................... 719
Auswahlabfrage ................... 707, 719
Einfügeabfrage ................................ 719
Löschabfrage .................................... 719
Abfrage, RDBMS, SQL ....................... 708
Abgeleitete Klasse ............................. 509
Absatz
HTML ................................................. 907
Absoluter Pfad ............................. 316, 319
Abstract Factory, Entwurfs-
muster ............................................... 687
accept(), Perl-Funktion ..................... 598
ACCEPT, iptables-Regel ................... 1125
Access Point (WLAN) ................ 212, 1133
Access, Datenbank .............................. 711
ACID (Transaktionen) ....................... 730
Action Mailer (Ruby on Rails) ..... 1016
Action Pack (Ruby on Rails) ......... 1016
Action Web Service (Ruby on Rails)
1016
ActionListener ..................................... 645
actionPerformed(), AWT-Me-
thode .................................................. 645
Active Directory ....................... 374, 1133
Active Record (Ruby on Rails) ..... 1016
Active Server Pages � ASP.NET
Active Support (Ruby on Rails) ... 1016
ActivePerl ............................................... 515
ActiveX ................................................... 1133
ActiveX-Objekt ................................... 939
Ada, Programmiersprache ................ 36
Adapter, Entwurfsmuster .............. 687
Addierer (Schaltung) ........................... 91
Addiermaschine .................................... 36
Addierwerk (Schaltung) ..................... 91
Addition, Operator ............................. 481
Administrator, Windows-Benutzer
361
Administratorendokumentation 672
Administratorrechte ......................... 1111
Adobe PostScript ...................... 169, 882
Adressbus .............................................. 119
Wortbreite .......................................... 121
Adressierung, Speicher ...................... 81
ADSL ........................................................ 220
anschließen ...................................... 222
ADSL2(+) ................................................. 221
Advanced Data Guarding (RAID) 152
AdWare .................................................. 1133
Adware ................................................... 1115
Aggregatfunktion, SQL ..................... 726
Agile Softwareentwicklung ............ 675
AGP ................................................. 140, 1133
AI � Künstliche Intelligenz
AIFF, Audio-Dateiformat ................. 891
AIX, Betriebssystem ......................... 293
Ajax ........................................................ 1081
Antwort verarbeiten .................. 1084
Aspekte ............................................. 1081
Bibliotheken für ........................... 1099
DOM-Einsatz für ......................... 1085
JSON ..................................... 1088, 1098
komplexes Beispiel ..................... 1089
mit jQuery ....................................... 1101
Objekt erzeugen .......................... 1082
onreadystatechange, Eigenschaft
1083
open(), Methode .......................... 1082
PHP-Skript (Serverantwort) .... 1086
readyState, Eigenschaft ............ 1083
responseText, Eigenschaft ....... 1085
responseXML, Eigenschaft ..... 1089,
1092
send(), Methode ........................... 1084
Serverantwort .............................. 1086
Ajax (Forts.)
XML ........................... 1088, 1090, 1092
XMLHttpRequest ......................... 1082
Akteur (UML) ....................................... 679
Aktivitätsdiagramm (UML) ............ 683
Akustikkoppler .................................... 178
Akzessoren (Ruby) .............................. 552
Al Chwarismi (arab. Mathe-
matiker) ............................................... 34
Algebra
Boolesche ..................................... 62, 95
Definition ........................................... 94
lineare .................................................. 95
relationale ....................................... 704
zur Algorithmendarstellung ....... 94
Algorithmus .................. 34, 94, 561, 1133
algebraische Darstellung ............. 94
anschaulich-sprachliche Dar-
stellung ........................................... 95
Berechenbarkeit ............................... 96
binäre Suche .................................... 570
BubbleSort ........................................ 564
Diagrammdarstellung .................. 95
entwickeln ......................................... 561
größter gemeinsamer Teiler
(GGT) ............................................. 562
Komplexität ...................................... 97
lineare Suche ............................ 97, 569
O-Notation der Komplexität ...... 98
Permutationen ................................. 98
Pseudocode-Darstellung .............. 95
QuickSort .......................................... 567
Sortier- ............................................... 564
Such- ................................................... 569
Alias (Mac-Verknüpfung) ................ 462
Alias (Unix-Shell) ................................. 421
Alias, Apache-Direktive .................... 775
alias, Unix-Befehl ................................ 421
Allen, Paul ............................................. 294
Allow, Apache-Direktive .................. 776
AllowOverride, Apache-Direktive 776
ALOHANet ............................................ 203
Alpha, Prozessor .......................... 121, 124
ALRM, Signal ....................................... 308
Altair 8800, früher Mikrocom-
puter ...................................................... 41
ALU ................................................. 118, 1133
FPU ....................................................... 118
Amazon Web Services .................... 1033
AMD ......................................................... 117
Amiga ........................................................ 44
1166
Index
Amigos, drei ......................................... 677
Amplitude, Audio ................................ 56
Analog
Unterschied zu digital .................... 53
Analyse, Software-Engineering ... 666
Lastenheft ........................................ 667
objektorientierte Analyse .......... 667
Pflichtenheft ................................... 668
strukturierte Analyse ................... 667
Analytical Engine ................................. 36
Änderungsabfrage .............................. 719
Android (Smartphone-OS) ............... 46
AND-Schaltung ..................................... 88
Aufbau mit Transistoren .............. 88
mit einfachen Mitteln nachbauen
86
AND-Verknüpfung .............................. 63
Anführungszeichen
PHP .................................................... 968
verschiedene, Bedeutung in
Perl ................................................. 522
Angewandte Informatik .................... 26
Animation
Doble Buffering .............................. 638
Java, AWT ......................................... 638
ANSI ........................................................ 1133
C-Standard ....................................... 495
ANSI-C ..................................................... 473
ANSI-Zeichensatz ............................... 875
Antivirenprogramm ....................... 1109
Antville, Blog-Tool ........................... 1032
Anweisung
C ........................................................... 477
Anweisungsblock ............................... 485
Anwenderdokumentation ............. 672
Anwendung
DDN-Modell-Schicht .................... 186
OSI-Schicht ........................................ 183
Anwendungsfall ................................. 673
Anwendungsfalldiagramm (UML)
679
Anwendungsserver ........................... 199
verteilte Anwendung ................... 199
Apache
Installation, Windows .................. 772
Xalan ................................................... 851
Xerces ................................................. 856
Apache CouchDB ................................ 750
Apache HTTP Server ......................... 765
Alias, Direktive ................................ 775
Allow, Direktive .............................. 776
Apache HTTP Server (Forts.)
AllowOverride, Direktive ............. 776
apachectl, Hilfsprogramm ......... 772
AuthBasicProvider, Direktive .... 777
AuthDigestProvider, Direktive 777
Authentifizierung ......................... 786
AuthName, Direktive .................... 777
AuthType, Direktive ...................... 777
AuthUserFile, Direktive ............... 777
Deny, Direktive ............................... 778
Directory, Direktive ....................... 778
DirectoryIndex, Direktive ........... 779
Direktive ............................................ 775
DocumentRoot, Direktive ........... 779
Grundlagen ..................................... 766
htpasswd, Hilfsprogramm ......... 777
IfModule, Direktive ....................... 779
Installation ...................................... 770
Konfiguration ................................. 774
Konfigurationsbeispiele ............. 784
Listen, Direktive .............................. 779
LoadModule, Direktive ................ 779
Location, Direktive ....................... 780
mod_alias, Modul ........ 775, 781, 782
mod_auth_basic, Modul ............ 777
mod_auth_digest, Modul ........... 777
mod_authn_file, Modul .............. 777
mod_authz_host, Modul 776, 778,
781
mod_dir, Modul ............................. 779
mod_so, Modul ............................... 779
Modul dynamisch laden ............. 779
Module .............................................. 768
NameVirtualHost, Direktive .... 780
Neuerungen in 2.4 776, 778, 781, 782
Options, Direktive ......................... 780
Order, Direktive .............................. 781
Redirect, Apache-Direktive ........ 781
Require, Direktive ................. 776, 782
RequireAll, Direktive ..................... 782
RequireAny, Direktive .................. 782
RequireNone, Direktive ............... 782
Satisfy, Direktive ............................ 782
ScriptAlias, Direktive .................... 782
ServerAdmin, Direktive ............... 782
ServerName, Direktive ................. 783
ServerRoot, Direktive .................... 783
ServerSignature, Direktive ......... 783
ServerTokens, Direktive ............... 783
SSL-Konfiguration ......................... 787
Startseite festlegen ........................ 779
Apache HTTP Server (Forts.)
VirtualHost, Direktive ................. 783
virtueller Host ............... 780, 784, 785
apachectl, Apache-Hilfspro-
gramm ................................................ 772
API ........................................................... 1133
Apple
iPad ....................................................... 46
iPhone .................................................. 46
Mac OS X ........................................... 453
Macintosh ........................................ 295
QuickTime ........................................ 456
Apple II ............................................ 42, 294
Apple Macintosh .................................. 44
Apple-Menü
Mac OS X ........................................... 458
wichtige Befehle ............................. 458
Applet, Java ........................ 500, 632, 655
AppleTalk .................................... 282, 1133
Protokollstapel ............................... 283
Vergleich zu TCP/IP ...................... 284
Application Gateway Firewall ...... 1122
Application Server ................... 199, 1133
Java ..................................................... 621
apt, Linux-Paketmanager ................ 415
Aqua, Mac OS X-Oberfläche 293, 456
Arabische Zahlen .................................. 36
Arbeitsspeicher .................................... 116
des virtuellen Prozessors ............ 104
Arbeitsverzeichnis ............................. 316
anzeigen, Unix ............................... 400
wechseln, Unix .............................. 400
wechseln, Windows ...................... 346
Archivdatei ........................................... 893
bzip2 ................................................... 895
GNU zip ............................................. 895
tar ............................................... 415, 893
ZIP ........................................................ 893
ARCNet
Netzwerk ............................................ 215
A-Record (DNS) .................................. 802
ArgoUML, Tool .................................... 678
Arithmetic-Logical Unit � ALU
Arithmetischer Operator
C ........................................................... 481
SQL ...................................................... 726
Arithmetisch-logische Einheit � ALU
ARP .......................................................... 1133
TCP/IP-Netzzugang ...................... 225
ARPA ............................................... 176, 1133
1167
Index
ARPANET ................................................ 176
Anwendungen ................................. 177
MilNet ................................................. 178
technische Grundidee ................... 176
ursprüngliche Aufgabe ................ 176
Array .............................................. 493, 1134
Anzahl der Elemente, Perl .......... 565
aus String, Perl ................................ 519
C ........................................................... 493
Deklaration, C ................................. 493
mehrdimensionales, PHP .......... 970
Perl ....................................................... 518
PHP .................................................... 966
zur C-String-Darstellung ............ 494
zusammenfassen, Perl ................. 519
Arrays
Ruby ..................................................... 535
Artificial Intelligence � Künstliche
Intelligenz
AS, SQL-Klausel ................................... 726
ASCII ....................................................... 1134
Zeichensatz ......................................... 57
ASCII-Art ............................................... 908
ASCII-Code ............................................ 873
Erweiterungen ................................ 874
IBM-Erweiterung ........................... 874
Steuerzeichen .................................. 873
Tabelle ............................................... 873
ASCII-Modus ....................................... 1134
ASP.NET ..................................... 1029, 1134
Assembler ..................................... 47, 1134
Mnemonics ........................................ 47
Nicht-x86 ........................................... 127
praktische Anwendung ................. 48
x86-Beispiele ................................... 126
Asymmetrische Verschlüsselung
1129
AT&T ................................................ 50, 292
Unix System V ................................ 293
AT&T Bell Laboratories ...................... 50
Atari .................................................. 43, 294
Atari 800XL ................................... 43, 294
Atari ST ..................................................... 44
AT-Befehlssatz .................................... 1134
Athlon, Prozessor ........................ 117, 123
ATM (Asynchronous Transfer Mode)
214, 1134
Atom, Newsfeed-Format ............... 1032
Atomar, Information in RDBMS 708
Attachment (E-Mail) ......................... 273
attrib, Windows-Befehl .................... 347
Attribut
HTML ................................................. 901
statisches (PHP) ............................. 983
XML ........................................... 823, 828
Attribut (Windows-Datei) ............... 319
Audio, zeit- und wertdiskret ............ 56
Audio-CD ................................................ 155
über Soundkarte abspielen ........ 170
Audio-Dateiformat ............................ 891
AIFF ...................................................... 891
MP3 ...................................................... 891
MP4 .................................................... 892
OGG Vorbis ...................................... 892
WAV .................................................... 891
Audiodaten ............................................. 56
Sampling ............................................. 56
Sampling-Rate .................................. 56
Sampling-Tiefe .................................. 56
Tonkanal ............................................. 56
Auflicht-Scanner ................................. 161
Auflösung
Bild ......................................................... 55
Digitalkamera ................................. 163
Grafikkarte ....................................... 164
Aufzählung
HTML .................................................. 911
Aufzählungszeichen
HTML .................................................. 911
Ausbildung .............................................. 27
Fachinformatiker ............................. 28
Informatikkaufmann ..................... 29
IT-Systemelektroniker .................... 29
IT-Systemkaufmann ....................... 29
Prüfung ............................................... 30
Studienfächer .................................... 32
Ausdruck .............................................. 1134
Bedingung ....................................... 486
C ........................................................... 480
Perl ....................................................... 521
Ausdrücke
Ruby .................................................... 532
Ausgabe
in Datei, C ......................................... 497
Konsole, C ........................................ 496
Perl ....................................................... 516
Ausgabeeinheit .................................... 113
Ausgabegerät ............................... 145, 163
Drucker .............................................. 167
Grafikkarte ....................................... 163
Monitor .............................................. 165
Ausgabesteuerung
durch das Betriebssystem .......... 289
Ausgabeumleitung
in Unix-Shells .................................. 394
Windows ........................................... 345
Auslagerungsdatei .............................. 312
Ausnahme
auslösen ............................................. 513
FileNotFoundException, Java .... 513
IOException, Java ........................... 513
Java ............................................ 504, 513
Java, IOException ......................... 504
Aussage ......................................... 60, 1134
falsche ................................................. 60
mathematische ............................... 60
wahre .................................................. 60
Aussageformen ...................................... 61
Aussagenlogik ....................................... 59
Auswahlabfrage ......................... 707, 719
AuthBasicProvider, Apache-Direktive
777
AuthDigestProvider, Apache-Direk-
tive ....................................................... 777
Authentifizierung (Apache) ........... 786
Authentifizierung (MySQL) ........... 733
AuthName, Apache-Direktive ........ 777
AuthType, Apache-Direktive .......... 777
AuthUserFile, Apache-Direktive ... 777
AUTO_INCREMENT, SQL-Feldoption
724
Autoflush-Modus ............................... 597
Autoloader, PHP ................................ 989
Automatentheorie ....................... 26, 94
Registermaschine .......................... 103
Turing-Maschine .......................... 100
Automatisch starten
Programm unter Unix .................. 413
System V Init .................................... 413
Automatische Variable .................... 479
Autonomes System .......................... 1134
Autonomes System (AS), Routing
248
Average Case (Komplexität) ............ 97
AVI, Video-Dateiformat ................... 892
awk ................................................... 514, 576
AWT ........................................................ 1134
AWT, Java ............................................... 631
Ereignisbehandlung ..................... 631
1168
Index
B
Babbage, Charles .................................. 36
Back Orifice, Backdoor ..................... 1112
Backdoor ................................................ 1112
Backend .................................................. 199
background-attachment, CSS-An-
gabe .................................................... 952
background-color, CSS-Angabe .... 952
background-image, CSS-Angabe 952
background-repeat, CSS-Angabe 952
Backlog, Scrum .................................... 676
Backtick, Operator ............................. 586
Backup ................................................... 1110
Banana Ware ........................................ 693
Band, der Turing-Maschine .......... 100
Base, OpenOffice.org-Datenbank 711
bash
.bashrc, Konfigurationsdatei .... 385
/etc/profile, Unix-Konfigurations-
datei ............................................... 385
alias-Befehl ....................................... 421
bash (Bourne Again Shell) .............. 385
Basic Input/Output System � BIOS
Basic Service Set (WLAN) .................. 212
BASIC, Programmiersprache ..... 41, 49
Basis
bei Stellenwertsystemen ................ 75
Bastion-Host ....................................... 1122
Batch Processing � Stapelverarbei-
tung
Batch-Datei, Windows ...................... 347
Baum, Datenstruktur ....................... 574
Binärbaum ....................................... 574
Baum-Topologie, Netzwerk ............ 193
BCD � Binary Coded Decimal
BEA WebLogic-Server ....................... 621
Beck, Kent .............................................. 674
Bedingter Sprung ................................ 125
Befehl
Dateiverwaltung, Unix ............... 397
des virtuellen Prozessors ............ 105
Systemverwaltung, Unix ........... 405
Textmanipulation, Unix ............. 401
Unix .................................................... 397
Windows-Konsole ......................... 346
Befehlstabelle ....................................... 119
der CPU ............................................... 119
Befehlszeiger (CPU-Register) .......... 118
Behavioral Pattern � Verhaltens-
muster
Bell Laboratories ................................ 292
belongs_to, Rails- Datenbankbezie-
hung ................................................. 1020
Bemer, Robert ...................................... 873
Benutzer
Administrator, Windows ............ 361
an- und abmelden, Windows ... 340
entfernen, Linux ........................... 409
Gruppe hinzufügen, Unix ......... 409
hinzufügen, Linux ......................... 408
Home-Verzeichnis ................. 315, 319
Passwort ändern, Unix .............. 409
root (Unix) .............................. 309, 381
Verwaltung, Mac OS X ................ 465
Verwaltung, Windows ................. 361
Zugriffsrechte .................................. 317
Benutzermodus ....................... 300, 307
Benutzeroberfläche .......................... 290
grafische ........................ 290, 295, 306
Konsole ................................... 290, 305
Benutzerrechte, ändern, Unix ..... 400
Berechenbarkeit .......................... 26, 1134
von Algorithmen ............................. 96
Berechenbarkeit, Halteproblem .... 96
Berkeley Socket API ................. 593, 1134
Berkeley, Universität ...... 293, 424, 593
Unix-Version ................................... 293
Berners-Lee, Tim ................................. 178
Beschaffungsmanagement ........... 664
Beschreibbare DVD ............................ 159
Besitzer, wechseln (Datei, Unix) 401
Best Case (Komplexität) ..................... 97
Betriebssystem
Aufbau .............................................. 299
Aufgaben .......................................... 289
Ausgabesteuerung ....................... 289
Benutzermodus ............................ 300
Benutzeroberfläche ...................... 290
Bibliothek ......................................... 304
booten .............................................. 300
BSD-Unix .......................................... 293
CP/M .................................................. 294
Darwin ...................................... 293, 455
Dateiverwaltung ........................... 290
Dialogverarbeitung ...................... 291
Eingabesteuerung ......................... 289
FreeBSD ............................................. 293
Gerätetreiber .................................. 302
Geschichte ....................................... 290
herunterfahren, Unix .................... 411
HP UX ................................................ 293
Betriebssystem (Forts.)
IBM AIX ............................................. 293
iOS ....................................................... 455
ITS (Incompatible Timesharing
System) ......................................... 291
Kernel ................................................. 299
Kernelmodus .................................. 300
Konsole .............................................. 305
Linux ......................................... 293, 296
Mac OS X .................................. 293, 453
Minix .................................................. 296
MS-DOS ............................................. 294
MULTICS ........................................... 292
Multitasking .......................... 302, 306
Neustart (Unix) ............................... 411
OS/2 .................................................... 295
Prozessmanagement ................... 289
Shell .................................................... 305
Speichermanagement ................. 289
Stapelverarbeitung ....................... 291
Sun Solaris ........................................ 293
Systemaufruf ................. 127, 301, 304
Systemprogramm ......................... 303
Task Scheduler ................................ 301
Thread ...................................... 300, 310
Timesharing .................................... 291
Unicode-Unterstützung .............. 878
Unix ............................................. 50, 292
Unix System V ................................ 293
Verwaltungsbefehle, Unix ........ 405
Virtualisierung ............................... 320
VMS ..................................................... 296
Win32 API ......................................... 305
Windows ........................................... 327
Windows 2000 ...................... 296, 328
Windows 7 ............................... 296, 328
Windows 8 ........................................ 328
Windows 95 ............................ 296, 328
Windows 98 ............................ 296, 328
Windows Me ........................... 296, 328
Windows NT ........................... 295, 328
Windows Server ............................. 328
Windows Vista ....................... 296, 328
Windows XP ........................... 296, 328
Windows, Versionsübersicht ..... 328
Zeichensatzeinstellung ............... 878
Bewegungsdaten ............................... 700
Bezeichner ........................................... 1134
C ........................................................... 478
in PHP ................................................ 965
1169
Index
BGP ......................................................... 1134
Routing-Protokoll .......................... 251
Bibliothek des Betriebssystems 304
Big-Endian-Architektur .................. 1134
Big-Endian-Plattform ....................... 885
BIGINT, SQL-Datentyp ..................... 722
Bild in HTML einbetten ................... 919
Bilddateiformat ................................. 886
BMP .................................................... 890
GIF ....................................................... 888
JPEG ................................................... 889
Photoshop ........................................ 887
PICT .................................................... 890
PNG .................................................... 890
PSD ...................................................... 887
TIFF ..................................................... 888
Bilddaten
Auflösung ............................................ 55
digitale ................................................. 55
Farbkanal ........................................... 56
Farbtiefe ............................................... 55
Bilddatenbank ..................................... 701
Bildwiederholrate (Monitor) .......... 165
bin, Unix-Verzeichnis ....................... 315
Binärbaum, Datenstruktur ............ 574
C ........................................................... 574
Binärdaten ........................................ 53, 75
Binäre Suche .............................. 570, 1134
Java ..................................................... 570
Binärmodus ........................................ 1134
Binary Coded Decimal ............. 85, 1134
BINARY, SQL-Feldoption ................. 724
bind(), Perl-Funktion ........................ 598
BIND, DNS-Serversoftware ............. 262
BIND-Nameserver .............................. 797
A-Record .......................................... 802
CNAME-Record .............................. 802
Installation ...................................... 798
Konfiguration ................................. 798
MX-Record ...................................... 803
NS-Record ........................................ 803
PTR-Record ...................................... 802
Reverse-Lookup-Zone .................. 799
SOA-Record ...................................... 801
Zonendaten-Datei ........................ 800
Zonendefinition ............................. 799
Bio-Computer ........................................ 46
Bioinformatik ......................................... 33
BIOS ....................................... 116, 129, 1134
Aufgaben ........................................... 131
Betriebssystem starten ................. 131
BIOS (Forts.)
Bootreihenfolge .............................. 133
CMOS löschen ................................. 132
CMOS-RAM ....................................... 132
eingebaute Routinen ..................... 131
POST ..................................................... 131
POST beschleunigen ..................... 133
Power Management einstellen
133
Setup ................................................... 132
Update ................................................ 134
BIOS-Setup ............................................ 132
Einstellmöglichkeiten .................. 132
Einstellungen zurücksetzen ....... 133
BIOS-Update ......................................... 134
Anleitung .......................................... 134
Motivation ....................................... 134
Bit ................................................................ 81
Bit-Komplement, Operator ........... 482
Bitmap-Grafik ........................................ 55
Bit-Operator
Vergleich mit logischen Operatoren
64
Bit-Operatoren ................................... 482
Bitübertragung, OSI-Schicht .......... 182
Bit-Verschiebung
links .................................................... 482
rechts ................................................. 482
Bitweises exklusives Oder, Operator
482
Bitweises Oder, Operator ................ 482
Bitweises Und, Operator ................. 482
BLOB, SQL-Datentyp .......................... 723
Block, Anweisungen ......................... 485
block_given?, Ruby-Methode ........ 558
Blockgerät (Block Device) ............... 302
Blocksatz
in HTML ............................................ 907
Blog � Weblogs
Blue Book (Mixed-Mode-CD) 155, 1135
Bluetooth ............................................... 144
Blu-ray-Disc .......................................... 159
BMP, Bilddateiformat ..................... 890
body, HTML .......................................... 902
Booch, Grady ........................................ 677
Boole, George ......................................... 62
boolean, Java-Datentyp ................... 504
Boolesche Algebra ............... 62, 95, 1135
Java-Datentyp ................................ 504
Booten ................................................... 300
BSD-Startskript ............................... 414
Mac OS X-Startvolume ............... 464
System V Init .................................... 413
Bootreihenfolge, einstellen ............ 133
Bootsektor ............................................ 149
Bootsektorvirus ................................ 1107
border, CSS-Angabe ............................ 951
border-image (CSS3) .......................... 961
BorderLayout ...................................... 644
border-radius (CSS3) ........................ 960
Bourne Again Shell (bash) .............. 385
Bourne-Shell ........................................ 384
box-shadow (CSS3) ............................ 961
Boyce-Codd-Normalform, RDBMS
708
Branch Prediction � Sprungvorher-
sage (Prozessor)
break
C-Anweisung ................................... 487
break, Schleife abbrechen ............... 568
Bridge ............................................ 207, 1135
Bridge, Entwurfsmuster .................. 687
Broadcast, IP-Protokoll .................... 228
Brute-Force-Attacke ................ 383, 1135
BSD .......................................................... 1135
BSD-Startskript ................................... 414
BSD-Unix ............................................... 293
FreeBSD ............................................. 293
BubbleSort, Algorithmus ................ 564
Java ..................................................... 565
Buffer im Emacs-Editor ................... 434
BufferedReader
Java-Klasse ............................... 503, 513
BufferedReader, Java-Klasse, read-
Line(), Methode ............................. 504
Builder, Entwurfsmuster ................. 687
Bundestrojaner � Onlinedurchsu-
chung
Buntes Buch (CD-Standards) .......... 154
bunzip2, Unix-Befehl ........................ 895
BURN-Proof-Technologie ................ 156
Bus ............................................................ 135
Bluetooth .......................................... 144
Definition .......................................... 117
der CPU ............................................... 119
drahtloser ......................................... 144
EIDE ..................................................... 141
FireWire .............................................. 143
Funk-Schnittstelle ......................... 144
1170
Index
Bus (Forts.)
Hot Plugging .................................... 143
Infrarot .............................................. 144
IrDA ..................................................... 144
Kartensteckplatz ........................... 140
Laufwerksanschluss ...................... 141
Light Peak .......................................... 143
paralleler .......................................... 144
PS/2 ...................................................... 143
RS-232 ................................................. 144
SCSI ...................................................... 142
serieller .............................................. 144
Thunderbolt ...................................... 143
USB ....................................................... 143
Bus Mastering ............................ 139, 1135
Bus-Topologie, Netzwerk ................. 193
Button, AWT-Klasse .......................... 642
Byron, Ada � Lovelace, Ada
Byte ............................................................. 81
byte, Java-Datentyp .......................... 504
bzip2, Komprimierung ..................... 415
bzip2, Unix-Befehl ............................. 895
C
C#, Programmiersprache ........ 52, 1135
C, Programmiersprache .... 50, 52, 292,
472, 1135
#define, Präprozessor-Direktive
499
#endif, Präprozessor-Direktive 499
#ifdef, Präprozessor-Direktive 499
#include, Präprozessor-Direktive
475, 498
&, Dereferenzierungs-Operator
492
-, Operator ........................................ 495
ANSI-C ................................................ 473
ANSI-Standard ................................ 495
Anweisung ............................... 475, 477
Anweisungsblock .......................... 485
arithmetischer Operator ............ 481
Array .................................................. 493
Ausdrücke ........................................ 480
Bezeichner ........................................ 478
Binärbaum ....................................... 574
Bit-Operatoren ............................... 482
break-Anweisung .......................... 487
char ..................................................... 479
Compiler ........................................... 473
C, Programmiersprache (Forts.)
Datentypen ..................................... 479
Datentypkonvertierung .............. 481
Datum und Uhrzeit ...................... 498
difftime()-Funktion ...................... 498
double ................................................ 479
else ...................................................... 486
Escape-Sequenz ............................. 476
exec()-Funktion .............................. 586
EXIT_SUCCESS, Konstante ........ 476
Exponentialschreibweise ........... 480
Fallunterscheidungen ................. 485
fgets()-Funktion ............................. 497
Fließkomma-Datentypen .......... 479
Fließkomma-Literal ..................... 480
float .................................................... 479
Flusskontrolle ................................. 482
fopen()-Funktion ........................... 496
for()-Schleife .................................... 489
fork()-Funktion .............................. 584
fprintf()-Funktion .......................... 497
fscanf()-Funktion .......................... 497
Funktionen ..................................... 490
Funktionsaufruf .................... 477, 491
Funktionsparameter .................. 490
Funktionsrückgabewert ............. 476
ganzzahlige Datentypen ........... 479
Geschichte ........................................ 473
getchar() ........................................... 496
gets()-Funktion ..................... 476, 496
globale Variable ............................ 480
Header-Datei .................................. 495
Hexadezimalzahl .......................... 480
int ........................................................ 479
int, Funktionsdatentyp ................ 475
Integer-Literal ................................ 480
Kommandozeilenparameter .... 491
Kommentar ..................................... 478
kompilieren ...................................... 474
Kontrollstrukturen ............... 477, 485
Liste ...................................................... 571
Literal ................................................ 480
localtime()-Funktion .................... 498
logische Operatoren ..................... 481
lokale Variable ............................... 479
long .................................................... 479
main()-Funktion ................... 475, 490
malloc()-Funktion .......................... 572
mem.h ................................................ 572
NULL .................................................. 498
Oktalzahl .......................................... 480
C, Programmiersprache (Forts.)
Operator ........................................... 481
Präprozessor .................................. 498
printf()-Funktion .................. 476, 496
puts()-Funktion .................... 476, 496
return-Anweisung ............... 476, 490
scanf()-Funktion .................. 487, 496
Schleife ............................................... 488
short ................................................... 479
Speicher reservieren ...................... 572
Standardbibliothek ............. 304, 495
static-Deklaration ........................ 480
statische Variable ........................ 480
stddef.h .............................................. 479
stdio.h ....................................... 475, 496
stdlib.h ............................................... 475
strcat(), Funktion ........................... 497
strcmp()-Funktion ......................... 497
strcpy()-Funktion ........................... 497
strftime()-Funktion ...................... 498
string.h .............................................. 497
String-Literal .................................. 480
struct .................................................. 494
Strukturen ........................................ 494
switch/case ...................................... 487
Syntax ................................................ 477
sys/types.h ....................................... 585
time()-Funktion ............................. 498
time.h ................................................ 498
time_t, Datentyp .......................... 498
Variable ............................................. 478
Variable, Gültigkeitsbereich ..... 479
Variablendeklaration 475, 477, 478
Vergleichsoperatoren .................. 482
void, Funktionsdatentyp ........... 490
Vorzeichen in Datentypen ......... 479
wchar_t ............................................. 479
Wertzuweisung .............................. 477
while()-Schleife ............................... 488
Whitespace, Umgang mit .......... 478
Zeichen-Literal ............................... 480
Zeiger .................................................. 491
C64 .................................................... 43, 294
Cache ........................................................ 119
bei Festplatten ................................. 153
Level 1 .................................................. 119
Level 2 ................................................. 119
Call by Reference ................................ 492
PHP ..................................................... 974
Call by Value ......................................... 492
Callback-Methode ..................... 591, 1135
1171
Index
Canvas, AWT-Klasse .......................... 632
Capistrano, Rails-Deployment-Tool
1029
CAPTCHA ..................................... 1114, 1135
Carbon ................................................... 1135
Carbon, Mac OS X-API ...................... 456
Carry-in, Logikschaltung .................... 91
Carry-out, Logikschaltung ................. 91
Cäsar-Code ........................................... 1128
Cascading Style Sheets � CSS
case-Befehl
in Shell-Skripten ............................. 419
CASE-Tools ............................................ 678
cat, Unix-Befehl ................................. 402
catch(), Java .......................................... 504
CAV � Konstante Winkelgeschwin-
digkeit
CCD
bei der Digitalkamera .................. 163
beim Scanner ................................... 161
C-Compiler ............................................ 473
GCC ..................................................... 473
CD
beschreibbare ................................... 155
Brennsoftware ................................. 156
BURN-Proof-Technologie ............ 156
Datenformate .................................. 156
Disc-at-once ..................................... 156
Hybrid-CD ......................................... 157
ISO-9660-Format ........................... 157
Joliet-Format .................................... 157
Lead-in-Area ..................................... 156
Lead-out-Area .................................. 156
Multisession ..................................... 156
Track-at-once ................................... 156
cd, Unix-Befehl ................................... 400
cd, Windows-Befehl ........................... 346
CD-Brenn-Software ............................ 156
CDE, Window-Manager ................... 440
CDi ............................................................. 155
CD-R .......................................................... 155
CD-ROM .................................................. 154
Geschwindigkeit ............................. 155
CD-RW ..................................................... 155
CD-Standard .......................................... 154
Blue Book ........................................... 155
Green Book ....................................... 155
Orange Book .................................... 155
Red Book ............................................ 155
White Book ........................................ 155
Yellow Book ...................................... 155
CD-Text .................................................... 155
Central Processing Unit � Prozessor
Centronics-Anschluss ....................... 144
CGI ............................................... 1029, 1135
Sicherheitsprobleme .................... 1121
Chain (iptables) ................................. 1124
Chain of Responsibility, Entwurfs-
muster ............................................... 688
char, C-Datentyp ................................ 479
CHAR, SQL-Datentyp ......................... 723
Character Devices .............................. 302
charAt(), Java-Methode .................... 505
Chatbot Eliza ......................................... 99
chgrp, Unix-Befehl ............................ 401
Child-Prozess ............................. 308, 1135
Chip ............................................................ 38
Chipsatz ................................................... 117
chmod, Unix-Befehl ........................ 400
chomp, Perl-Funktion ....................... 516
Chomsky, Noam ................................... 53
chown, Unix-Befehl .......................... 401
chroot-Umgebung ............................ 1123
CHS (Festplattenadressierung) ..... 147
CIDR, IP-Adressierung ..................... 230
CIDR-Adressierung ........................... 1135
CIFS-Protokoll, Microsoft-Netzwerk
287
Circuit Switching ................................ 174
CISC-Prozessor ..................................... 123
Beispiele ............................................. 123
class, Java-Schlüsselwort ................ 503
class, Ruby-Methode ......................... 529
CLASSPATH, Umgebungsvariable
500
clear, CSS-Angabe ............................... 953
Clear-CMOS-Jumper .......................... 132
Client
bei Entwurfsmustern ................... 687
Netzwerk ........................................... 195
Clojure, Programmiersprache ......... 53
close, Perl-Anweisung ....................... 526
closedir, Perl-Anweisung ................. 527
Cloud Computing ................... 1032, 1135
für Privatanwender .................... 1034
Cluster (Dateisystem) ....................... 313
CLV � Konstante lineare Geschwin-
digkeit
Cmd.exe
WinNT-Shell .................................... 344
Cmdet, PowerShell ............................ 348
CMOS-RAM ............................................ 132
löschen ................................................ 132
CMS � Content Management
CMYK-Farbe ............................................ 56
cn, LDAP-Attribut .............................. 806
CNAME-Record (DNS) ...................... 802
Cobol, Programmiersprache ........... 49
Cocoa ...................................................... 1135
Cocoa, Mac OS X-API ......................... 456
Code-Review ......................................... 671
Color, AWT-Klasse .............................. 635
color, CSS-Angabe .............................. 952
column-count (CSS3) ........................ 961
column-width (CSS3) ........................ 961
COM, Microsoft-Komponenten-
modell ................................................ 622
Command, Entwurfsmuster ......... 688
COMMAND.COM, MS-DOS-Shell 344
Commit (Transaktionen) ................ 710
COMMIT, SQL-Anweisung ............... 731
Commodore .................................. 43, 294
Commodore Amiga ............................ 44
Common Gateway Interface � CGI
Compact Disc ........................................ 154
compareTo(), Java-Methode .......... 505
Compiler .......................................... 48, 127
Java ..................................................... 502
Composite, Entwurfsmuster ......... 687
Computer
Definition ........................................... 34
Computer Science � Informatik
Computersystem
schematischer Aufbau ................. 112
Computervirus � Virus
connect(), Perl-Funktion ................. 597
Connection, JDBC-Klasse ................ 747
console, interaktive Rails-Konsole
1021
Constant Angular Velocity � Kon-
stante Winkelgeschwindigkeit
Constant Linear Velocity � Konstan-
te lineare Geschwindigkeit
Content Management ................... 1030
Drupal .............................................. 1031
Joomla! ............................................ 1031
papaya CMS .................................. 1031
TYPO3 .............................................. 1030
ContentHandler, SAX-Interface 860
Controller
Ruby on Rails ................................ 1023
1172
Index
Convention over Configuration
(Rails-Prinzip) ............................... 1016
Cookie .................................................... 1135
in PHP ............................................... 994
Coprozessor � Koprozessor
copy, Windows-Befehl ..................... 347
CORBA, Komponentenmodell ...... 622
CouchDB ................................................ 750
Futon, Administrationsoberfläche
750
count(), PHP-Funktion .................... 968
COUNT, SQL-Funktion ...................... 727
cp, Unix-Befehl .................................... 398
CP/M, Betriebssystem ...................... 294
C-Programmiersprache, char,
Datentyp ........................................... 475
CPU ........................................................... 116
alte Bedeutung ................................. 117
Dualcore ............................................ 116
CPU � Prozessor
CR, Mac-Zeilenumbruch ................... 871
crack (Passwort-Knack-
programm) ...................................... 382
Crackerangriff .................................... 1120
Crackertools ........................................ 1123
CREATE DATABASE, SQL-Befehl ... 720
CREATE TABLE, SQL-Befehl ............ 720
CREATE USER, MySQL-Anwei-
sung .................................................... 733
create, Rails-Methode ..................... 1021
create_table, Rails-Methode ........ 1019
CreateProcess(), Windows-System-
aufruf ................................................ 309
Creational Patterns � Erzeugungs-
muster
Creator ID, HFS ................................... 466
CRLF, Windows-Zeilenumbruch ... 871
Cronjob .................................................. 422
Crosslink-Ethernet-Kabel ............... 207
Cross-Site-Scripting ......................... 1120
CRT � Röhrenmonitor
csh (C-Shell) .......................................... 385
C-Shell ..................................................... 385
CSMA/CA .............................................. 1136
CSMA/CA, Netzzugangsver-
fahren ................................................. 212
CSMA/CD .............................................. 1136
CSMA/CD, Netzzugangsver-
fahren ................................................ 203
CSS ................................................. 944, 1136
<style>, HTML-Tag ....................... 946
Absatzformatierung .................... 950
Abstand vom linken Rand .......... 953
Abstand vom oberen Rand ........ 953
Anzeigeart ....................................... 950
Aufgabe ............................................ 944
Ausrichtung .................................... 950
Außenrand ....................................... 951
background-attachment ............ 952
background-color .......................... 952
background-image ........................ 952
background-repeat ....................... 952
Bild ....................................................... 952
border ................................................. 951
clear ..................................................... 953
color .................................................... 952
display ............................................... 950
Einzug ................................................ 950
Element (Tag) formatieren ........ 945
externe Datei .................................. 946
Farbangabe ..................................... 948
Farbe ................................................... 952
feste Werte ....................................... 947
fett ...................................................... 949
float ..................................................... 953
font-family ...................................... 949
font-size ............................................ 949
font-style .......................................... 949
font-weight ...................................... 949
Format dynamisch ändern, DOM
1076
Frameworks .................................... 959
für XML-Dokumente .................... 850
Hintergrund befestigen ............... 952
Hintergrund kacheln .................... 952
Hintergrundbild ............................. 952
Hintergrundfarbe .......................... 952
Innenabstand .................................. 951
Klasse ................................................. 945
kursiv ................................................. 949
Laufweite ......................................... 950
Layer ................................................... 952
Layer, Beispiele ............................... 953
left ........................................................ 953
letter-spacing ................................. 950
line-height ....................................... 950
Linie ..................................................... 951
margin ............................................... 951
numerische Werte ......................... 947
padding .............................................. 951
CSS (Forts.)
position ............................................. 953
Positionsart ..................................... 953
Pseudoformat ................................ 946
Rahmen .............................................. 951
Schriftart .......................................... 949
Schriftgröße .................................... 949
Selektor .............................................. 945
Stapelreihenfolge .......................... 953
Struktur ............................................. 945
style, HTML-Attribut .................... 947
text-align ......................................... 950
text-decoration ............................. 950
Textfarbe .......................................... 952
Textformatierung ........................ 949
text-indent ...................................... 950
top ....................................................... 953
unabhängiger Stil ......................... 945
unterstrichen ................................. 950
vertical-align .................................. 950
vertikale Ausrichtung ................. 950
Vorteile .............................................. 944
Webseiten-Layout mit ................. 955
Wertangaben .................................. 947
Zeilenhöhe ....................................... 950
z-index ............................................... 953
CSS3 ......................................................... 959
border-image .................................. 961
border-radius ................................. 960
box-shadow ..................................... 961
browserspezifische Eigenschaften
961
column-count ................................. 961
column-width ................................. 961
Neue Selektoren ............................. 961
opacity ............................................... 961
Web Fonts ........................................ 960
C-Standardbibliothek .... 304, 495, 1135
CUPS ....................................................... 1136
CUPS, Unix-Drucksystem ............... 449
Scheduler .......................................... 449
starten ............................................... 449
Cutler, David ........................................ 295
CygWin ................................................... 473
D
Daemon ...................................... 409, 1136
DARPA ..................................................... 176
Darstellung, OSI-Schicht .................. 183
1173
Index
Darwin, Betriebssystem ......... 293, 455
Data Fork, HFS .................................... 466
Database Management System �
DMS
database.yml, Rails-Konfigurations-
datei .................................................. 1018
Datagramm ......................................... 1136
Datagramm-Socket ........................... 594
Date, JavaScript-Klasse ................... 1053
DATE, SQL-Datentyp ......................... 722
date, Unix-Befehl .............................. 407
Formatierung ................................. 407
Datei ....................................................... 290
Attribute ändern ............................ 347
Ausgabe in, C ................................... 497
bearbeiten, Perl .............................. 526
Besitzer wechseln, Unix .............. 401
Eingabe aus, C ................................ 497
Gruppe wechseln, Unix ............... 401
kopieren unter Windows .... 341, 347
kopieren, Mac OS X ....................... 462
kopieren, Unix ................................ 398
löschen unter Unix ....................... 399
löschen unter Windows .............. 347
öffnen, C ........................................... 496
schließen, C ...................................... 497
String lesen aus, C ......................... 497
umbenennen unter Windows ... 347
umbenennen, Mac OS X ............. 462
umbenennen, Unix ....................... 399
verarbeiten, Java ............................ 512
verschieben unter Win-
dows ....................................... 341, 347
verschieben, Mac OS X ................ 462
verschieben, Unix .......................... 399
Verwaltung ....................................... 313
Zugriffsrechte ändern ................. 400
Dateiattribut ......................................... 319
Windows, ändern .......................... 347
Dateierweiterung ............................... 320
Anzeige einschalten ..................... 320
Dateiformat ......................................... 869
AIFF ..................................................... 891
Audio .................................................. 891
AVI ....................................................... 892
Bild ..................................................... 886
binäres ............................................... 883
BMP .................................................... 890
GIF ....................................................... 888
JPEG ................................................... 889
Dateiformat (Forts.)
MP3 ...................................................... 891
MP4 .................................................... 892
MPEG ................................................. 892
OGG Vorbis ...................................... 892
PICT ................................................... 890
PNG ................................................... 890
PostScript ......................................... 882
QuickTime ........................................ 892
Text ..................................................... 869
textbasiertes ................................... 880
TIFF ..................................................... 888
Video .................................................. 892
WAV .................................................... 891
Dateihandle
Perl ....................................................... 526
Dateiname
Endung .............................................. 398
Endung sichtbar machen ........... 320
Erweiterung ............................ 320, 398
Groß- und Kleinschreibung ........ 316
MS-DOS ............................................. 320
Unix-Platzhalter ............................ 398
unter Unix ................................ 316, 397
unter Windows ............................... 319
Dateiserver ............................................ 196
Dateisystem .......................................... 313
Benutzerrechte ................................ 317
CD ......................................................... 156
erzeugen, Unix ............................... 407
ext3 .................................................... 406
FAT12 ................................................... 333
FAT16 .................................................. 333
FAT32 .................................................. 334
Fehlerprüfung (Unix) .................. 406
HFS ...................................................... 465
HFS+ ................................................... 465
inode ................................................... 316
Journaling-Funktion ................... 406
Laufwerksbuchstaben .................. 318
Link ...................................................... 317
Linux ................................................... 314
Mac OS X .......................................... 465
mounten ............................................ 317
mounten, Unix ............................... 405
NTFS .................................................... 334
Unix ..................................................... 314
Unix-Pfadangabe ........................... 315
Unix-Verzeichnisbaum ................ 315
virtuelles ............................................ 314
Dateisystem (Forts.)
Windows ................................... 318, 333
Windows-Pfadangabe .................. 318
Zuordnungseinheit ........................ 313
Dateiverwaltung ........................ 290, 313
unter Unix ........................................ 397
Dateivirus ............................................ 1108
Daten
Bewegungsdaten .......................... 700
Ordnungsdaten ............................. 700
Rechendaten ................................... 700
Stammdaten .................................. 699
Datenanalyse ...................................... 666
Datenbank ........................................... 699
1:1-Beziehung .................................. 704
1:n-Beziehung ................................. 704
Abfrage, objektorientierte .......... 714
Access .................................................. 711
atomare Information ................. 708
Auswahlabfrage ............................ 707
Bild- ..................................................... 701
Boyce-Codd-Normalform .......... 708
CouchDB ........................................... 750
Datenarten ...................................... 699
Datenfeld .......................................... 702
Datensatz ......................................... 702
dokumentenbasierte .................... 750
Einzeltabellen- ............................... 700
Einzeltabellen-, Definition ......... 702
Einzeltabellen-, Grenzen ............. 703
Entity .................................................. 702
erzeugen, SQL .................................. 720
FileMaker ........................................... 711
Filterung ............................................ 702
freier Server ....................................... 711
Fremdschlüssel .............................. 704
Funktionen ....................................... 702
Grenzen der RDBMS ...................... 711
IBM DB2 ............................................. 711
Index .................................................. 704
Join-Abhängigkeit ......................... 710
kommerzieller Server .................... 711
Konsistenz ........................................ 703
löschen, SQL ...................................... 721
m:n-Beziehung ............................... 705
Microsoft SQL Server ..................... 711
Multimedia- ..................................... 701
MySQL ................................................. 714
Normalform ................................... 708
Normalisierung ............................. 708
1174
Index
Datenbank (Forts.)
NoSQL ....................................... 701, 750
objektorientierte ..................... 701, 711
ODBC .................................................. 746
ODL ...................................................... 712
OpenOffice.org Base ....................... 711
OQL ...................................................... 714
Oracle ................................................... 711
PostgreSQL ......................................... 711
Primärschlüssel ............................. 704
Programmierung .......................... 746
Relation ............................................ 704
relationale .............................. 700, 703
Schlüssel ........................................... 704
sortieren ............................................ 702
SQL ............................................. 708, 719
suchen in ........................................... 702
Tabelle erzeugen, SQL .................. 720
Tabelle löschen, SQL ...................... 721
Transaktion ............................ 710, 730
Typen ................................................. 700
Volltextdatenbank ........................ 701
XML ..................................................... 701
Datenbus ................................................ 119
Wortbreite ......................................... 121
Datenfeld ............................................... 702
Datenfernübertragung � DFÜ
Datenformat ....................................... 869
Text .................................................... 869
Datenkollision .................................... 204
Datenkomprimierung ..................... 885
Datenpaket ............................................ 174
Frame ................................................. 203
Datensatz .............................................. 702
Datensicherung ................................. 1110
Datenstruktur .............................. 561, 571
Baum .................................................. 574
Queue .................................................. 571
Stack .................................................... 571
Datenstrukturen .................................. 94
Datenträger
magnetischer .................................. 146
magneto-optischer ....................... 146
optischer ........................................... 146
Datenträgeraustausch ..................... 180
Datenträgerverwaltung, Win-
dows ................................................... 364
Datentyp
boolean, Java ................................. 504
ganzzahliger, C ............................... 479
in der PowerShell ........................... 354
Datentyp (Forts.)
in Java ................................................ 504
testen, PHP ....................................... 977
Umwandlung, C .............................. 481
Variable, C ....................................... 479
Datenübertragung
Geschwindigkeitsmessung ......... 137
Paketvermittlung .......................... 174
parallele ............................................. 135
Schaltkreisvermittlung ................ 174
serielle ................................................ 135
Datenverarbeitung
elektrische ........................................... 25
elektronische ..................................... 25
manuelle ............................................. 25
mechanische ...................................... 25
DATETIME, SQL-Datentyp ............... 722
Datum und Uhrzeit
C ........................................................... 498
date-Befehl, Unix .......................... 407
Differenz berechnen ..................... 498
EPOCH ............................................... 304
ermitteln, C ...................................... 498
formatieren (Unix) ....................... 407
formatieren, C ................................ 498
JavaScript ....................................... 1053
SQL ....................................................... 722
DB2, RDBMS ........................................... 711
DBMS (Database Management
System) ............................................. 699
dc-Knoten (LDAP) .............................. 804
DDN-Schichtenmodell ..................... 184
Anwendungsschicht ..................... 186
Host-zu-Host-Transportschicht
186
Internetschicht ................................ 185
Netzzugangsschicht ..................... 185
DDR-RAM ............................................... 128
de Icaza, Miguel ................................... 441
De Marco, Tom ................................... 667
Deadlock ..................................... 310, 1136
Debian GNU/Linux ............................ 378
DEC � Digital Equipment Corporati-
on (DEC)
DECIMAL, SQL-Datentyp ................. 722
DE-CIX .................................................... 249
Decorator, Entwurfsmuster .......... 688
Default Gateway ............................... 1136
DEFAULT, SQL-Feldoption .............. 724
default, switch/case-Vorgabewert
488
defined, Perl ......................................... 524
defined?, Ruby-Methode ................. 534
Defragmentierung ............................ 1136
Defragmentierung (Festplatten) 148
Deklaration .......................................... 1136
Deklarative Programmiersprache 53
del, Windows-Befehl ......................... 347
DELETE, SQL-Abfrage ........................ 729
Demilitarisierte Zone � DMZ
De-Morgan-Theorem ............... 66, 1136
Denial of Service ..................... 1120, 1136
Netzwerkangriff ............................. 370
Deny, Apache-Direktive .................. 778
Dependency Injection, Entwurfs-
muster ............................................ 1009
Deployment ........................................ 1136
Ruby on Rails ............................... 1029
Dereferenzierung
Perl ....................................................... 521
Design Pattern
Dependency Injection ............... 1009
Lazy Initialization ...................... 1009
Design Pattern � Entwurfsmuster
Desktop-PC ............................................ 114
dev, Unix-Verzeichnis ....................... 315
Dezimalsystem ...................................... 75
in dual umrechnen ......................... 78
in hexadezimal umrechnen ........ 79
DFÜ .......................................................... 216
Akustikkoppler ................................ 178
Mailbox .............................................. 178
Onlinedienst ..................................... 178
PPP-Protokoll .................................. 216
Praxis ................................................. 216
über ISDN ........................................ 220
DHCP ............................................. 252, 1136
DHCP-Server, Windows Server 2012
374
DHTML ...................................... 1069, 1136
DHTML-Layer manipulieren, DOM
1077
Diagrammtypen (UML) ................... 677
Dialer ....................................................... 1113
Dialogverarbeitung ........................... 291
Diascanner ............................................ 162
Dienst, Windows ................................ 364
diff, Unix-Befehl ................................ 405
Differential Engine .............................. 36
Differenzmenge ..................................... 72
difftime(), C-Funktion ..................... 498
1175
Index
Digital Equipment Corporation (DEC)
40
Digital Versatile Disc � DVD
Digital, Unterschied zu analog ........ 53
Digitale Signatur ............................... 1129
Digitalisierung ....................................... 55
Digitalkamera ...................................... 162
Auflösung .......................................... 163
Dijkstra, Edsger W. ................... 250, 659
DIMM-Modul (RAM) .......................... 128
DIN .......................................................... 1136
dir, Windows-Befehl ......................... 346
DirectoryIndex, Apache-Direk-
tive ...................................................... 779
Disc-at-once ............................... 156, 1136
Disjunktion, logische .......................... 64
Diskettenlaufwerk .............................. 153
Diskrete Menge ...................................... 55
display, CSS-Angabe ......................... 950
Division, Operator ............................. 481
DMA-Kanal ................................. 139, 1136
DMA-Kanal, Direct Memory Access
139
DMZ ........................................................ 1122
dn, LDAP-Attribut ............................. 806
DNA-Computer ..................................... 46
DNS ......................................................... 1136
BIND, Serversoftware ................... 262
Master- und Slave-Nameserver 264
Subdomain ...................................... 262
Top-Level-Domain ........................ 262
Zone .................................................... 262
DNS (Domain Name System) ....... 260
DNS-Server, Windows Server 2012
374
do/while()-Schleife ........................... 489
DocBook ................................................ 822
Dock
Dock-Menü, Mac OS X ................ 460
Mac OS X .................................. 458, 459
DOCTYPE-Angabe, XML ................... 834
Document Object Model � DOM
Document Type Definition � DTD
document.forms, JavaScript ........ 1045
document.images, JavaScript ..... 1056
document.write(), JavaScript-Me-
thode ............................................... 1040
DocumentRoot, Apache-Direk-
tive ...................................................... 779
dojo, Ajax-Bibliothek ..................... 1099
Dokumentation .................................. 672
Administratorendokumentation
672
Anwenderdokumentation .......... 672
Entwicklerdokumentation ......... 672
Dokumentstruktur
HTML ................................................. 902
DOM .............................................. 866, 1137
Ajax-Einsatz von ......................... 1085
Baumstruktur anzeigen, Java-
Script-Anwendung ................. 1073
CSS-Format ändern .................... 1076
Document-Objekt ......................... 866
Dokumenthierarchie ändern 1079
DOMParser ...................................... 866
für XML ............................................. 866
getChildNodes(), Methode ......... 867
in JavaScript .................................. 1070
jQuery-Selektor ............................ 1099
Kindknoten ...................................... 867
Klasse importieren ....................... 866
Knoteneigenschaften ................. 1071
Knotentypen ................................... 867
Parser ................................................. 866
praktische Anwendung, JavaScript
1076
Textknoten ..................................... 1071
Domain Name System (DNS)
BIND-Nameserver .......................... 797
Round-Robin-Verfahren ............. 803
Domain Name System � DNS
Domainname
Schema ............................................... 261
DOMParser, Java-Klasse .................. 866
Don’t Repeat Yourself (Rails-Prinzip)
1016
Doppelte Anführungszeichen
Perl ....................................................... 522
DOS .......................................................... 294
DoS � Denial of Service
Double Buffering, Animationstechnik
638
double, C-Datentyp ........................... 479
DOUBLE, SQL-Datentyp ................... 722
DoubleWord (DWord) ...................... 1137
DoubleWord, 32 Bit .............................. 81
Download
HTML-Hyperlink ............................ 917
Drag & Drop ......................................... 303
Drahtlose Schnittstelle ..................... 144
Drahtloses Netzwerk ....................... 209
Arten ................................................... 210
Gründe für den Einsatz .............. 209
Wireless LAN .................................... 210
Drain, Stromausgang des Transistors
87
DRAM ....................................................... 128
drawLine(), AWT-Methode ............. 634
drawOval(), AWT-Methode ............. 634
drawPolygon(), AWT-Methode ..... 634
drawRect(), AWT-Methode ............. 634
drawString, AWT-Methode ............ 637
Drectory, Apache-Direktive ........... 778
Drei Amigos ......................................... 677
Dreisatz ..................................................... 73
Drei-Wege-Handshake, TCP ........... 256
DROP DATABASE, SQL-Befehl ........ 721
DROP TABLE, SQL-Befehl ................. 721
DROP USER, MySQL-Anweisung 737
DROP, iptables-Regel ....................... 1125
Drucker ................................................... 167
GDI-Drucker .................................... 169
im Netzwerk freigeben, Windows
373
Kugelkopfdrucker ........................... 167
Laserdrucker .................................... 168
LED-Drucker .................................... 168
Matrixdrucker ................................. 167
Nadeldrucker ................................... 167
Schriftarten ...................................... 169
Thermosublimationsdrucker .... 168
Thermotransferdrucker .............. 168
Tintenstrahldrucker ...................... 167
Treiber ................................................ 169
Typenraddrucker ............................ 167
Druckserver .......................................... 196
Drupal, CMS ........................................ 1031
DSL ................................................. 220, 1137
ADSL .................................................. 220
ADSL2(+) ............................................. 221
anschließen ...................................... 222
einrichten, Mac OS X ................... 468
SDSL ................................................... 220
über Fernsehkabel .......................... 221
über Satelitt ...................................... 221
DSSS, WLAN-Technik ......................... 211
DTD ................................................ 834, 1137
Alternativen angeben .................. 837
Attributdeklaration ...................... 841
Attributnotwendigkeit ................ 844
1176
Index
DTD (Forts.)
Attributtypen .................................. 842
definieren ......................................... 835
Elementdeklaration ..................... 837
Entity deklarieren .......................... 845
Entitys aus externen Dateien ... 845
externe Entity-Deklaration ....... 845
Häufigkeitsangabe ....................... 839
Klammern ........................................ 837
du, Unix-Befehl .................................. 406
Dualcore-Prozessor ............................ 116
Dualsystem ...................................... 54, 76
in dezimal umrechnen .................. 78
in hexadezimal umrechnen ........ 80
in oktal umrechnen ........................ 79
Dualzahle
mit Vorzeichen speichern ............ 83
Durchlicht-Scanner ............................ 161
DVD .......................................................... 157
beschreibbare .................................. 159
DVD+R ..................................................... 159
DVD+RW ................................................. 159
DVD-R ...................................................... 159
DVD-RAM ............................................... 159
DVD-ROM ............................................... 158
Dateiformat ...................................... 159
Geschwindigkeit ............................. 158
DVD-RW .................................................. 159
DVI, Dateiformat ................................ 882
dvips, Dienstprogramm .................. 882
DWord � DoubleWord, 32 Bit
Dynamic HTML � DHTML
Dynamic RAM � DRAM
E
each(), PHP-Funktion ....................... 969
echo, Unix-Befehl ............................. 402
Echte Obermenge ................................ 70
Echte Teilmenge ................................... 70
ECMA ...................................................... 1137
EDGE ....................................................... 222
EDO-RAM ............................................... 128
EDV � Elektronische Datenverarbei-
tung
EEPROM ................................................. 130
Effizienz der CPU ................................. 122
EIDE ................................................ 141, 1137
anschließen ....................................... 141
im Vergleich zu SCSI ...................... 141
Ein-/Ausgabe ....................................... 290
C ........................................................... 496
Datei, Java ........................................ 512
Datei, Perl ......................................... 526
Dialogverarbeitung ...................... 291
Fehler ................................................. 504
Java ..................................................... 503
Lochkarte ......................................... 290
Perl ....................................................... 516
Stapelverarbeitung ....................... 291
Terminal ............................................ 291
Timesharing ..................................... 291
Einfache Anführungszeichen
Perl ....................................................... 522
Einfügeabfrage .................................... 719
Eingabe
aus Datei, C ..................................... 497
Konsole, C ........................................ 496
Perl ....................................................... 516
String, C ............................................ 496
Zeichen, C ......................................... 496
Eingabeaufforderung ....................... 1137
Unix .................................................... 384
Windows ........................................... 346
Eingabeaufforderung � Konsole
Eingabeeinheit ..................................... 113
Eingabegerät ................................ 145, 160
Digitalkamera ................................. 162
Maus .................................................... 161
Scanner ............................................... 161
Tastatur ............................................ 160
Eingabesteuerung
durch das Betriebssystem .......... 289
Eingabeumleitung
in Unix-Shells .................................. 394
Windows ............................................ 345
Eingabevervollständigung
Unix .................................................... 388
Windows-Eingabeaufforderung
344
Einsteckkarte ....................................... 140
einbauen .......................................... 140
Einwegverschlüsselung ................. 1129
Einzeltabellendatenbank .............. 700
Definition ......................................... 702
Filterung ........................................... 702
Funktionen ...................................... 702
Grenzen ............................................. 703
sortieren ........................................... 702
suchen in .......................................... 702
EJB � Enterprise Java Beans
Elektrische Datenverarbeitung ....... 25
Elektrisches Gerät ................................. 37
Elektrizität ............................................... 37
Elektromechanik ................................... 37
Elektronenröhre ............................. 37, 38
Elektronik ................................................. 37
Elektronische Datenverarbeitung 25
Elektronisches Gerät ............................ 37
Element
einer Menge ....................................... 69
XML ..................................................... 825
Eliza, Chatbot ......................................... 99
else, C ..................................................... 486
elsif, Perl ................................................ 524
Elternklasse ......................................... 509
Emacs, Texteditor .............................. 433
Befehlseingabe ............................... 433
Befehlsschreibweise ...................... 433
Buffer .................................................. 434
erweiterte Funktionen ................. 435
Fenster wechseln ........................... 434
Modi ................................................... 434
Navigation ....................................... 435
speichern .......................................... 435
Suchfunktionen .............................. 435
Text ersetzen ................................... 435
Text löschen .................................... 435
Text markieren ............................... 435
Attachment ...................................... 273
Entwicklung ...................................... 177
Hoax .................................................. 1118
HTML-Hyperlink auf .................... 918
IMAP-Protokoll .............................. 276
Kettenmail ...................................... 1119
MIME-Format ................................. 272
Multipart-Nachricht ..................... 273
POP3-Protokoll ................................ 275
RFC-822-Nachricht ........................ 272
SMTP-Protokoll .............................. 270
Spam .................................................. 1117
Verschlüsselung ........................... 1130
E-Mail-Protokolle ............................... 270
E-Mail-Server ........................................ 197
Embedded System .............................. 116
Endlicher Automat ........................... 100
Endlosschleife ..................................... 568
Endung (Dateiname) ........................ 320
Endung (Dateiname, Unix) ............ 398
Engelbart, Douglas ............................ 295
ENIAC, Röhrenrechner ....................... 38
1177
Index
Enterprise Java Beans .............. 621, 1137
Client-Interface .............................. 623
Deployment ..................................... 625
Deployment-Deskriptor .............. 625
Entity-Beans .................................... 622
Home-Interface .............................. 622
Implementierung ................. 622, 623
Message Driven Beans ................ 622
Session-Beans ................................. 622
Vorteile .............................................. 622
Enterprise-Anwendung ........ 620, 1137
Enterprise-Anwendung � Verteilte
Anwendung
Entity
Datenbank ....................................... 702
Entity-Referenz
HTML ................................................. 904
XML ............................................ 829, 845
Entwicklerdokumentation ............. 672
Entwicklungsprozess, Software .... 673
agiler Entwicklungsprozess ....... 675
Extreme Programming ............... 674
Scrum ................................................. 675
Unified Process ............................... 673
Entwurf, Software-Engineering ... 669
Schnittstelle .................................... 670
Standalone-System ...................... 669
verteiltes System ........................... 670
Entwurfsmuster ................................ 684
Absicht ............................................... 685
Abstract Factory ............................ 687
Adapter .............................................. 687
Alias .................................................... 685
Beispiel Singleton ......................... 690
Bestandteile ..................................... 685
Beteiligte .......................................... 686
Bridge ................................................. 687
Builder ............................................... 687
Chain of Responsibility .............. 688
Client .................................................. 687
Codebeispiele ................................. 686
Command ....................................... 688
Composite ........................................ 687
Decorator ........................................ 688
Einordnung ...................................... 685
Einsatzbeispiele ............................. 686
Erzeugungsmuster ........................ 685
Facade ............................................... 688
Factory Method ............................. 687
Flyweight ......................................... 688
Implementierung ......................... 686
Entwurfsmuster (Forts.)
Interpreter ....................................... 688
Iterator .............................................. 688
Katalog ............................................. 687
Konsequenzen ....................... 685, 686
Lösung ............................................... 685
Mediator ........................................... 689
Memento .......................................... 689
Motivation ...................................... 686
MVC ......................................... 685, 1016
Name ................................................. 685
Observer ........................................... 689
Problem ............................................ 685
Protoype ........................................... 687
Proxy .................................................. 688
Querverweis .................................... 686
Singleton .......................................... 687
Singleton (als Beispiel) ............... 690
State ................................................... 689
Strategy ............................................ 689
Struktur ............................................. 686
Strukturmuster .............................. 685
Template Method ......................... 689
Verhaltensmuster ......................... 685
Verwendungszweck ..................... 686
Visitor ................................................ 689
Zusammenspiel ............................. 686
ENUM, SQL-Datentyp ....................... 723
Environment � Umgebung
EPOCH .................................................... 304
EPROM .................................................... 130
EPS, Dateiformat ................................ 883
Unterschiede zu PostScript ....... 883
eq, Perl-Operator ................................ 522
equals(), Java-Methode .................... 505
Ereignis
AWT ..................................................... 631
Ereignisanzeige, Windows ............. 364
Ereignisbehandlung .......................... 631
Java, AWT ......................................... 644
Erlang, Programmiersprache ........... 53
eRuby (embedded Ruby) .............. 1023
Erweiterte Partition ........................... 150
Erweiterung (Dateiname) ............... 320
Erweiterung (Dateiname, Unix) 398
Erzeugungsmuster ............................ 685
Escape-Sequenz ........................ 404, 1137
C ........................................................... 476
in RegExp .......................................... 579
Escaping
PHP ..................................................... 979
etc, Unix-Verzeichnis ........................ 315
Ethernet ....................................... 202, 1137
1000BaseFL-Standard ................ 208
1000BaseTX-Standard ............... 208
100BaseT-Standard ...................... 207
10Base2-Standard ........................ 204
10Base5-Standard ......................... 205
10BaseT-Standard ......................... 207
Bridge ................................................. 207
Crosslink-Kabel .............................. 207
CSMA/CD-Verfahren .................... 203
Entwicklung ....................................... 42
Hardware ........................................ 204
Hardwareadresse ......................... 202
Hub .................................................... 206
Koaxialkabel .................................. 204
MAC-Adresse .................................. 202
Switch ................................................ 206
Thicknet Coaxial ............................ 205
Thinnet Coaxial ............................. 205
Twisted-Pair-Kabel ....................... 205
Vorläufer ALOHANet ................... 203
Ethernet-Kabeltypen ....................... 204
Ettrich, Matthias ................................. 441
Euklidische Geometrie ...................... 95
EVA-Prinzip ........................................... 112
Event Handler
jQuery ............................................... 1101
Event Handling ................................... 631
Exabyte .................................................... 82
Exception
auslösen ............................................. 513
IOException ...................................... 513
Java ...................................................... 513
Exception, Java ................................... 504
IOException .................................... 504
Exceptions
FileNotFoundException ............... 513
exec(), C-Funktion .............................. 586
executeQuery(), JDBC-Methode ... 748
exit, Unix-Befehl ............................... 390
EXIT-SUCCESS, C-Konstante .......... 476
Exklusiv-Oder ........................................ 66
explode(), PHP-Funktion ............... 969
Exploit ................................................... 1119
Explorer
Ordneransicht, Windows ............ 342
Explorer, Windows-Dateimana-
ger ......................................................... 341
Exponentialschreibweise ................. 85
C .......................................................... 480
1178
Index
Exponentielle Komplexität ............. 99
Exposé, Mac OS X ............................... 462
ext3, Linux-Dateisystem ................ 406
Extended Service Set (WLAN) ......... 213
extends, Java-Vererbung ................ 509
extends, PHP-Schlüsselwort .......... 984
Extensible Markup Language � XML
Extreme Programming ................... 674
Eigenschaften ................................. 675
Programmieren in Paaren ......... 675
Test-first-Verfahren ............ 675, 696
F
Facade, Entwurfsmuster ................ 688
Fachinformatiker ................................. 28
Anwendungsentwicklung ............ 28
Projektarbeit .................................. 660
Prüfung ............................................... 30
Systemintegration .......................... 28
facsimileTelephoneNumber, LDAP-
Attribut ............................................ 806
Factory Method, Entwurfsmuster
687
Fakultät .................................................. 566
Fallunterscheidung
Bedingung ........................................ 486
C ........................................................... 485
durch logische Operatoren, Perl
523
in Shell-Skripten ............................. 418
switch/case, C ................................. 487
unless, Perl ....................................... 524
Fallunterscheidungs-Operator ..... 484
Falsche Aussage ................................... 60
false
Java .................................................... 504
Farbaddition .......................................... 56
Farbe
in HTML ............................................ 948
Farbkanal, Bild ....................................... 56
Farblaserdrucker ................................ 168
Farbsubtraktion .................................... 56
Farbtiefe
Grafikkarte ....................................... 164
Farbtiefe, Bild .......................................... 55
Fast Ethernet ........................................ 207
FAT .......................................................... 1137
FAT12, Dateisystem ........................... 333
FAT16, Dateisystem ............................ 333
FAT32, Dateisystem ........................... 334
FAT-Dateisystem
FAT12 ................................................... 333
FAT16 .................................................. 333
FAT32 .................................................. 334
FDDI ........................................................ 1137
FDDI, Netzwerk .................................... 215
Fedora, Linux-Distribution ............ 377
Feed � Newsfeed
Fenster
programmieren ............................. 642
Fensterbedienung
Mac OS X .......................................... 458
Windows ............................................ 337
Festkommazahl ..................................... 84
Festplatte ............................................... 147
alternative SSD ............................... 153
Anschlüsse ......................................... 141
belegten Platz ermitteln (Unix)
406
Cache .................................................. 153
CHS-Adressierung .......................... 147
Defragmentierung ........................ 148
EIDE ...................................................... 141
formatieren, Unix ......................... 407
Geschwindigkeit ............................. 152
konstante Winkelgeschwindigkeit
152
LBA-Adressierung .......................... 148
mittlere Zugriffszeit ...................... 152
Partitionierung ............................... 148
Partitionstabelle ............................ 149
RAID ..................................................... 151
SCSI ...................................................... 142
Festplattengröße .................................. 82
Festwertspeicher � ROM
fg, Unix-Befehl .................................... 386
fgets(), C-Funktion ............................. 497
FHSS, WLAN-Technik ......................... 211
FIFO ............................................... 1137, 1141
FIFO � First In, First Out
File Type ID, HFS ................................ 466
FileMaker, Datenbank ........................ 711
FileNotFoundException, Java ........ 513
Fileserver ............................................... 196
fillOval(), AWT-Methode ................. 634
fillRect(), AWT-Methode ................. 634
filter, iptables-Tabelle ...................... 1125
find, Rails-Methode ......................... 1021
Finder
Mac OS X ................................. 458, 460
Ordneransichten, Mac OS X ..... 460
finger, Unix-Dienstprogramm ..... 382
Firewall ........................................ 1110, 1122
iptables ................................... 1122, 1124
netfilter (Linux) ............................. 1124
FireWire ........................................ 143, 1137
First In, First Out .................................. 571
Flachbettscanner ................................ 162
Flag
des virtuellen Prozessors ............ 106
flash, Rails-Zwischenspeicher ..... 1028
Flash-EEPROM ..................................... 130
Fließkomma-Literal ......................... 480
Fließkommazahl ........................... 84, 85
Exponentialschreibweise ............. 85
Exponentialschreibweise, C ...... 480
Flip-Flop (Schaltung) ........................... 92
float, C-Datentyp ................................ 479
float, CSS-Angabe ............................... 953
FLOAT, SQL-Datentyp ....................... 722
Floating Point Number � Fließkom-
mazahl
Floating Point Unit � FPU
FLOPS (CPU-Geschwindigkeit) ....... 123
FLUSH PRIVILEGES, MySQL-Anwei-
sung .................................................... 738
FLUSH TABLES, MySQL-Anweisung
739
Flussdiagramm ..................................... 95
Flusskontrolle ...................................... 482
Flyweight, Entwurfsmuster .......... 688
FM-Synthese (MIDI) .......................... 170
font-family, CSS-Angabe ................ 949
font-size, CSS-Angabe ...................... 949
font-style, CSS-Angabe .................... 949
font-weight, CSS-Angabe ............... 949
fopen(), C-Funktion .......................... 496
for()-Schleife ........................................ 489
for-Befehl
in Shell-Skripten ............................. 419
foreach, Perl-Schleife ......................... 519
fork(), C-Funktion ............................... 584
fork(), Unix-Systemaufruf .............. 307
form_tag, Rails-Methode .............. 1028
Formale Logik ........................................ 59
Formatieren
Datenträger, Unix ........................ 407
Formular
in Ruby on Rails ........................... 1028
1179
Index
Fortran, Programmiersprache ........ 49
FORWARD, iptables-Chain ............ 1125
Foto-Multiplier (Trommelscanner)
162
FP-RAM .................................................... 128
fprintf(), C-Funktion .......................... 497
FPU ............................................................ 118
Frame, AWT-Klasse ................... 632, 642
Frame, Datenpaket ............................ 203
Framework ........................................... 1137
FreeBSD .................................................. 293
Frege, Gottlob ........................................ 59
Freie Software ...................................... 297
Fremdschlüssel
in Ruby on Rails .......................... 1020
RDBMS .............................................. 704
Frequency Hopping ........................... 211
Frequenz, Audio ................................... 56
Front Side Bus ...................................... 122
Frontend ................................................ 199
FSB � Front Side Bus
fscanf(), C-Funktion ........................... 497
fsck, Unix-Befehl ............................... 406
FTP ................................................. 267, 1138
ASCII-/Binärmodus ...................... 269
Befehle ............................................... 269
Clients ................................................ 268
HTML-Hyperlink auf ..................... 917
FULLTEXT, SQL-Schlüsselwort ...... 724
function, JavaScript-Schlüsselwort
1047
function, PHP-Schlüsselwort ........ 972
Funk-Schnittstelle ............................. 144
Funktion ........................................ 50, 1138
Argument ........................................ 490
aufrufen ............................................ 491
C .......................................................... 490
Call by Reference ........................... 492
Call by Value ................................... 492
iterative ............................................. 567
Parameter ....................................... 490
rekursive ........................................... 566
Rückgabewert ................................ 490
Rückgabewert, C ............................ 476
SQL ...................................................... 726
Funktionale Programmiersprache 53
Funktionsaufruf
C ........................................................... 477
Fußgesteuerte Schleife ................... 489
Futon, CouchDB-Administration 750
fvwm2, Window-Manager ............. 440
G
Galaxy Tab .............................................. 46
Gamma, Erich ...................................... 684
GAN ........................................................ 1138
GAN, globales Netz ............................. 191
Gantt-Diagramm ............................... 665
Ganze Zahl .............................................. 70
Garret, Jesse James ........................... 1081
gate (Gatter) � Logikschaltung
Gate, Steuerungseingang des Transis-
tors ........................................................ 87
Gates, Bill ........................................ 41, 294
Gatter � Logikschaltung
GCC, C-Compiler ................................. 473
starten ............................................... 474
gcc-Befehl ............................................. 474
Unix-Besonderheiten ................... 474
ge, Perl-Operator ................................. 523
Geometrie
euklidische .......................................... 95
Gerät
elektrisches ......................................... 37
elektronisches ................................... 37
Gerätedatei .................................... 314, 315
Gerätetreiber ....................... 48, 289, 302
Blockgerät ........................................ 302
für Drucker ....................................... 169
installieren, Windows ................... 361
Netzwerk, Windows ...................... 367
Zeichengerät ................................... 302
GET, HTTP-Methode .......................... 279
zum HTML-Formularversand 930
Get-Alias, PowerShell-Cmdlet ...... 348
getchar(), C-Funktion ....................... 496
Get-ChildItem, PowerShell-Cmdlet
348
Get-Command, PowerShell-Cmdlet
348
getDate(), JavaScript-Methode ... 1054
getDay(), JavaScript-Methode ..... 1054
getElementById(), JavaScript-Me-
thode ................................................. 1071
getElementsByTagName(), JavaScript-
Methode .......................................... 1071
getFullYear(), JavaScript-Methode
1054
gethostbyname(), Systemaufruf 595
getHours(), JavaScript-Methode 1054
getMinutes(), JavaScript-Methode
1054
getprotobyname(), Systemaufruf 594
gets(), C-Funktion ..................... 476, 496
getSeconds(), JavaScript-Methode
1054
getservbyname(), Systemaufruf 596
getYear(), JavaScript-Methode .... 1054
GGT (größter gemeinsamer Teiler)
562
GhostScript ........................................... 882
GID (Group-ID)
von Prozessen ................................ 308
GID (Group-ID, Unix) ......................... 381
gidNumber, LDAP-Attribut ........... 806
GIF, Bilddateiformat ......................... 888
Gigabit-Ethernet ................................ 208
Gigabyte ................................................... 82
givenName, LDAP-Attribut ........... 806
Gleichheit ................................................ 67
Gleichheit, Operator ......................... 483
Gleichung ............................................... 60
lineare ............................................ 61, 73
Lösung .................................................. 61
quadratische ..................................... 74
Gleichungssytem .................................. 73
Gleitkommazahl � Fließkommazahl
Global Area Network ......................... 191
global, PHP-Variablenmodifikation
973
Globale Variable
C .......................................................... 480
GNOME
GtK+-Bibliothek ............................. 441
GNOME Terminal ............................... 383
GNOME, Desktop ........... 306, 440, 443
Desk Guide ....................................... 443
GNOME-Menü ................................ 444
Kontrollzentrum ............................ 445
Panel ................................................... 445
Verknüpfung erstellen ................. 444
GNU Emacs, Texteditor ................... 433
GNU General Public License .......... 298
GNU zip, Komprimierung ............... 415
GNU-Projekt ......................................... 297
Android (Smartphone-OS) ........... 46
Gosling, James .................................... 499
GPL ........................................................... 298
GPRS ........................................................ 222
Grafikkarte ............................................ 163
AGP ...................................................... 165
Auflösung ......................................... 164
1180
Index
Grafikkarte (Forts.)
Farbtiefe ............................................ 164
Geschwindigkeit ............................. 165
mit mehreren Monitoren ........... 164
PCI ........................................................ 165
RAMDAC ............................................ 165
Grafische Benutzeroberfläche .... 290,
295, 306, 1138
Aqua, Mac OS X ............................. 456
Drag & Drop .................................... 303
Ereignis ............................................... 631
Fensteranwendung ....................... 642
GNOME .......................... 306, 440, 443
GtK+, Programmierumgebung 443
JFC ......................................................... 631
KDE .................................. 306, 440, 441
Menü programmieren ................. 642
Nachricht ........................................... 631
Programmierung ......................... 630
Qt, Programmierumgebung ..... 442
Quartz, Grafikbibliothek ............ 455
Terminalfenster ............................. 383
Unix .......................................... 439, 440
Widget ................................................ 631
Window-Manager ........................ 306
Windows ........................................... 335
Windows 95 ..................................... 335
Windows 98 ..................................... 335
Windows XP .................................... 335
X Window ............................... 306, 439
GRANT, MySQL-Anweisung ............ 735
Graphics, AWT-Klasse ....................... 632
Graphics2D, Java2D-Klasse ............. 632
Green Book (CDi) ....................... 155, 1138
grep, Unix-Befehl .............................. 403
Muster ............................................... 404
GridLayout ............................................ 643
Groß- und Kleinschreibung
igonorieren in RegExp ................ 580
Unix-Dateiname ............................. 316
Größer als, Operator ......................... 483
größer als, Operator ............................ 67
Größer oder gleich, Operator ........ 483
Großrechner .......................................... 40
Größter gemeinsamer Teiler ......... 562
groupadd, Unix-Befehl ................... 409
Group-ID
von Prozessen ................................ 308
Group-ID (Unix) ................................... 381
Grüner Balken (Unit-Test) .............. 695
Gruppe
hinzufügen, Linux ........................ 409
wechseln (Datei, Unix) ................ 401
Gruppenrichtlinienobjekt, Windows
364
GSM-Mobilfunk ................................... 222
gsub, Ruby-Methode ......................... 583
gt, Perl-Operator ................................. 522
GtK+, Grafikbibliothek ............ 441, 443
GUI � Grafische Benutzeroberfläche
Gültigkeitsbereich
Variable, C ....................................... 479
Variable, Java ................................. 505
gunzip, Unix-Befehl .......................... 895
gzip, Dateikomprimierung ............. 415
gzip, Unix-Befehl ............................... 895
H
Halbaddierer (Schaltung) ................. 90
Halbleiter ................................................. 39
Halteproblem (Berechenbarkeit) 96
Handshake .......................................... 1138
Handshake, Modem-Kommunika-
tion ...................................................... 218
Hard Link ............................................... 317
Hardware
Ausgabegerät .......................... 145, 163
BIOS ...................................................... 116
Bus ................................................ 117, 135
Bus Mastering ................................. 139
Chipsatz .............................................. 117
Digitalkamera ................................. 162
DMA-Kanal ...................................... 139
Drucker .............................................. 167
Eingabegerät .......................... 145, 160
Grafikkarte ....................................... 163
I/O-Basisadresse ............................. 139
IRQ ....................................................... 138
konfigurieren, Windows ..... 361, 363
Massenspeicher .............................. 145
Maus .................................................... 161
Monitor .............................................. 165
Netzwerk ........................................... 201
Onboard-Peripherie ....................... 117
Peripherie .......................................... 145
Plug & Play ....................................... 139
Prozessor ............................................ 116
RAM ............................................. 116, 127
Ressourcen ........................................ 138
Hardware (Forts.)
ROM-Speicher .................................. 116
Scanner ............................................... 161
schematischer Aufbau ................. 112
Schnittstelle ...................................... 117
Soundkarte ...................................... 169
Steuerung durch Betriebssystem
289
Tastatur ............................................ 160
Zentraleinheit .................................. 116
Hardware-Interrupt .......................... 126
Harvard Mark I ...................................... 38
Harvard Mark II .................................... 38
has_and_belongs_to_many, Rails-
Datenbankbeziehung ............... 1020
has_many, Rails-Datenbankbezie-
hung ................................................ 1020
Hash
Perl-Variable .................................... 518
PHP ..................................................... 967
Schlüssel ............................................ 520
Hashes
Ruby ..................................................... 535
Hauptplatine � Mainboard
Hauptprogramm
main() als ............................................. 51
Hauptspeicher ...................................... 113
Hayes, Modem-Befehlssatz ............. 217
Hayes-Befehlssatz ............................. 1134
HD DVD ................................................... 159
head
HTML ................................................. 902
head, Unix-Befehl ............................. 402
Header (HTTP) ...................................... 761
Header-Datei
C ........................................................... 495
Heinemeier Hansson,
David ....................................... 528, 1016
Hello World .......................................... 475
Helm, Richard ..................................... 684
help, Windows-Befehl ...................... 305
Helper
Ruby on Rails ................................ 1025
Herunterfahren
Betriebssystem, Unix .................... 411
Windows .......................................... 340
Hewlett-Packard, HP UX, Betriebs-
system ............................................... 293
Hexadezimalsystem ............................ 77
in dezimal umrechnen .................. 79
in dual umrechnen ......................... 80
1181
Index
Hexadezimalzahl
C .......................................................... 480
Hex-Editor ..................................... 47, 884
HFS+, Dateisystem ............................. 465
HFS, Dateisystem ............................... 465
Data Fork ......................................... 466
Resource Fork ................................. 466
HIER-Dokument
Perl ...................................................... 523
Variablensubstitution ................. 523
HIER-Dokument, in Unix-Shell .... 395
Hintergrund (Prozess) ...................... 385
History
Unix-Shell ......................................... 389
Windows-Eingabeaufforderung
344
Hoax ....................................................... 1118
Hollerith, Hermann ............................ 39
home, Unix-Verzeichnis .................. 315
Homecomputer ........................... 43, 294
homeDirectory, LDAP-Attribut ... 807
Home-Verzeichnis ...................... 315, 319
Host (Netzwerk) .................................. 186
Host-zu-Host-Transport, DDN-Mo-
dell-Schicht ...................................... 186
Hot Plugging ......................................... 143
Hot Spot ................................................. 922
HP UX, Betriebssystem .................... 293
HPGL (Druckersprache) ................... 169
HR/DSSS, WLAN-Technik ................. 211
HSPA (HSDPA/HSUPA) .................... 222
HTML
<a>-Tag .............................................. 915
<address>-Tag ................................ 910
<applet>-Tag .................................. 940
<area>-Tag ....................................... 922
<b>-Tag ............................................. 910
<body>-Tag ..................................... 902
<br>-Tag .......................................... 904
<caption>-Tag ................................ 924
<code>-Tag ...................................... 910
<col>-Tag .......................................... 928
<colgroup>-Tag ............................. 928
<dl>-Tag ............................................. 913
<dt>-Tag ........................................... 914
<em>-Tag ......................................... 910
<embed>-Tag .................................. 938
<form>-Tag ..................................... 930
<head>-Tag ..................................... 902
<html>-Tag ..................................... 902
<i>-Tag .............................................. 910
HTML (Forts.)
<img>-Tag ....................................... 920
<input>-Tag ..................................... 931
<li>-Tag .............................................. 911
<map>-Tag ...................................... 922
<meta>, Tag ..................................... 941
<meta>-Tag .................................... 904
<object>-Tag .................................. 940
<ol>-Tag ............................................ 912
<option>-Tag .................................. 933
<p>-Tag ............................................. 907
<pre>-Tag ........................................ 908
<script>-Tag .................................. 1038
<select>-Tag .................................... 933
<strike>-Tag .................................... 910
<strong>-Tag .................................. 910
<style>-Tag ...................................... 946
<sub>-Tag ........................................ 910
<sup>-Tag ........................................ 910
<table>-Tag ..................................... 923
<tbody>-Tag .................................... 927
<td>-Tag ........................................... 924
<textarea>-Tag .............................. 933
<tfoot>-Tag ...................................... 927
<th>-Tag ........................................... 924
<thead>-Tag .................................... 927
<title>-Tag ....................................... 902
<tr>-Tag ............................................ 923
<tt>-Tag ............................................ 910
<u>-Tag ............................................. 910
<ul>-Tag ............................................ 911
Absatz ................................................ 907
Absatzausrichtung ....................... 907
Absendeknopf ................................ 932
ActiveX-Objekt ............................... 939
Adressangabe ................................. 910
Anker .................................................. 918
Attribut ............................................. 901
Aufzählung ....................................... 911
Aufzählungszeichen wählen ..... 911
Auswahlmenü ................................ 933
Beschreibung für Suchmaschinen
942
Bild als Hyperlink ........................... 921
Bild einbetten .................................. 919
Blocksatz .......................................... 907
Body ................................................... 902
Button ............................................... 932
Checkbox .......................................... 932
clientseitige Image Map ............ 922
CSS ...................................................... 944
HTML (Forts.)
Datei-Formularfeld ....................... 932
Definitionsliste ............................... 913
Dokumentkopf .............................. 902
Dokumentkörper .......................... 902
Dokumentstruktur ....................... 902
Dokumenttitel ............................... 902
Download-Hyperlink .................... 917
E-Mail-Hyperlink ........................... 918
Entity-Referenz .............................. 904
Farben ............................................... 948
Festbreitenschrift .......................... 910
fett ....................................................... 910
Formular .......................................... 930
Formular, Auswahlmenü ........... 933
Formular, Button ........................... 932
Formular, Checkbox ..................... 932
Formular, Datei-Upload-Feld ... 932
Formular, Hidden-Feld ................ 932
Formular, Löschknopf ................. 932
Formular, Passwortfeld .............. 932
Formular, Radiobutton ............... 931
Formular, Reset-Button .............. 932
Formular, Schaltfläche ................ 932
Formular, Submit-Button .......... 932
Formular, Textbereich ................. 933
Formular, Textfeld ........................ 932
Formular, Versandmethode ..... 930
Formulardaten-Codierung ........ 931
Formulare, Absendeknopf ......... 932
Formularelemente ........................ 931
Formular-URL ................................ 930
FTP-Hyperlink .................................. 917
geeignete Titel ............................... 903
geschütztes Leerzeichen ............ 906
GET, Formularversandmetho-
de ................................................... 930
Glossarliste ...................................... 913
h1 bis h6, Tags ................................ 908
Head .................................................. 902
Hidden-Formularfeld ................... 932
hochgestellter Text ....................... 910
Hyperlink .......................................... 914
Hyperlink ins Web ......................... 916
Image Map, clientseitige ............ 922
Image Map, serverseitige ........... 921
input-Tag .......................................... 931
Java-Applet einbetten ................. 940
Kommentar ..................................... 923
kursiv .................................................. 910
Layer ................................................... 952
1182
Index
HTML (Forts.)
Layout-Tags .................................... 909
Link ..................................................... 914
Liste ...................................................... 911
Löschknopf ....................................... 932
Meta-Tag .......................................... 941
MIME-Types ..................................... 938
Multimedia einbetten .................. 938
neue Strukturelemente in HTML5
909
nicht nummerierte Liste .............. 911
nummerierte Liste ......................... 912
Nummerierungsart wählen ...... 912
Passwortfeld .................................... 932
Pfadangaben in Links ................... 915
Plug-in-Formate einbetten ........ 938
POST, Formularversandmethode
930
Quellcode darstellen .................... 910
Radiobutton ..................................... 931
Refresh ............................................... 941
Reset-Button .................................... 932
robots.txt-Datei ............................. 943
Schaltfläche ..................................... 932
Schlüsselwörter für Suchmaschinen
942
Seite neu laden ............................... 941
seiteninterner Link ........................ 918
Server-Side Image Map ............... 921
Sonderzeichen ............................... 904
Struktur-Tags ................................. 909
Style Sheets ...................................... 944
style-Attribut ................................... 947
Submit-Button ................................ 932
Suchmaschinen-Informationen
942
Tabelle ............................................... 923
Tabelle ausrichten ......................... 925
Tabelle, Gitternetzlinien steuern
927
Tabelle, Rahmenlinien steuern 927
Tabellen-Attribute ........................ 925
Tabellenbereiche ............................ 927
Tabellenbeschriftung ................... 924
Tabellenbreite ................................. 925
Tabellenhöhe .................................. 925
Tabellenrahmen ............................ 926
Tabellen-Spaltenbreite ................ 928
Tabellenzeile ................................... 923
Tabellen-Zellabstand ................... 926
Tabellenzelle .................................... 924
HTML (Forts.)
Tabellenzellen verbinden ........... 926
Tabellenzellen-Attribute ............ 926
Tabellenzellen-Ausrichtung ...... 926
Tag ...................................................... 901
Tag-Verschachtelung .................. 910
Text betonen ................................... 910
Text durchstreichen ..................... 910
Text stark betonen ....................... 910
Textbereich ...................................... 933
Textfeld ............................................. 932
Textformatierung ........................ 904
Textmarke ........................................ 918
tiefgestellter Text .......................... 910
Überschrift ....................................... 907
unterstrichen .................................. 910
verschachtelte Liste ...................... 912
vorformatierter Text .................. 908
Web-Palette ..................................... 948
XHTML ............................................. 900
XHTML-Besonderheiten ............. 903
Zeichenformatierung ................. 909
Zeichensatz angeben .................. 904
Zeilenumbruch .............................. 904
HTML5 ................................................... 900
<article>-Tag ................................. 909
<aside>-Tag .................................... 909
<audio>-Tag ................................... 939
<figcaption>-Tag ......................... 909
<figure>-Tag .................................. 909
<footer>-Tag .................................. 909
<header>-Tag ................................ 909
<hgroup>-Tag ............................... 909
<nav>-Tag ....................................... 909
<section>-Tag ................................ 909
<video>-Tag .................................... 939
Audio ................................................. 939
neue Formular-Eingabetypen 936
Strukturelemente ......................... 909
Video .................................................. 939
HTML-Formular ................................. 930
per JavaScript modifizeren ..... 1045
überprüfen per JavaScript ....... 1048
URL ..................................................... 930
htmlspecialchars(), PHP-Funk-
tion ..................................................... 979
htpasswd, Apache-Hilfspro-
gramm ............................................... 777
HTTP ..................................... 278, 753, 1138
Anfrage .............................................. 755
Antwort .............................................. 756
HTTP (Forts.)
Cookie (PHP) ................................... 994
Header ...................................... 280, 761
Kommunikationsablauf ............. 754
Methoden ......................................... 754
Session-Tracking (PHP) ............... 993
Sitzung ............................................... 279
Statuscodes ............................. 280, 758
HTTP-Befehle ....................................... 279
HTTP-Server ......................................... 198
Hub ......................................................... 206
HUP, Signal .......................................... 308
Hybrid-CD .................................... 157, 1138
Hyperlink
HTML .................................................. 914
Hypertext ..................................... 179, 1138
Hypertext Transfer Protocol � HTTP
I
I/O � Ein-/Ausgabe
I/O-Basisadresse ....................... 139, 1138
I/O-Kanäle ............................................. 394
IaaS (Infrastructure as a Service) 1033
IANA .............................................. 229, 1138
IBM .................................................... 43, 294
AIX, Betriebssystem ...................... 293
DB2 ....................................................... 711
OS/2, Betriebssystem ................... 295
IBM PC .................................................... 294
IBM WebSphere-Server .................... 621
IBM-PC ...................................................... 43
IC ................................................................. 38
ICMP ....................................................... 1138
ICMP-Protokoll .................................... 255
IEEE ......................................................... 1138
IEEE 1394 ............................................... 1137
IEEE 1394 � FireWire
IEEE 802.11 � Wireless LAN
IEEE, Netzzugangsverfahren 802.x
201
if()
C ........................................................... 485
Fallunterscheidung, nachgestellte,
Perl ................................................. 524
if, Ruby-Anweisung ........................... 542
if-Befehl
in Shell-Skripten ............................. 418
ifconfig, Unix-Befehl ........................ 445
IfModule, Apache-Direktive .......... 779
1183
Index
Image Map
clientseitige, in HTML .................. 922
serverseitige, in HTML ................. 921
Image, AWT-Klasse ............................ 638
Bilddatei laden ............................... 639
Image, JavaScript-Klasse ............... 1058
Imaginäre Zahl ....................................... 71
IMAP .............................................. 276, 1138
Imperative Programmiersprache 50
Implementierung, Software-Engi-
neering ............................................. 670
implode(), PHP-Funktion ............... 970
import, Java-Anweisung .................. 502
include(), PHP-Funktion ................. 988
include_once(), PHP-Funktion .... 988
Index
im RDBMS ....................................... 704
INDEX, SQL-Schlüsselwort ............. 724
indexOf(), Java-Methode ................ 506
inet_aton, Netzwerkprogrammie-
rung .................................................... 595
inetOrgPerson, LDAP-Objektklasse
805
Informatik ............................................... 26
angewandte ....................................... 26
Bioinformatik .................................... 33
Medieninformatik ............................ 33
medizinische ...................................... 33
praktische ........................................... 26
Studium ................................................ 32
technische .......................................... 26
theoretische ....................................... 26
Wirtschaftsinformatik .................... 33
Informatikkaufmann ......................... 29
Information
analoge ................................................ 53
digitale ................................................. 53
Informationstechnischer Assis-
tent ........................................................ 30
Infrarot-Anschluss ............................. 144
Infrastructure as a Service ............ 1033
init-Prozess ........................................... 307
Inner Join, SQL ...................................... 727
durch WHERE ausdrücken ......... 728
INNER JOIN, SQL-Klausel .................. 727
InnoDB, MySQL-Tabellentyp ......... 730
InnoDB-Tabelle (MySQL) ................. 710
inode ........................................................ 316
INPUT, iptables-Chain ..................... 1125
Input/Output � Ein-/Ausgabe
InputStreamReader, Java-Klasse 503
INSERT, SQL-Abfrage ......................... 728
Instanz .................................................... 501
erzeugen, Java ................................ 505
Instruction Table � Befehlstabelle
int
C-Datentyp ...................................... 479
Funktionsdatentyp, C ................... 475
INT, Signal ............................................. 410
INT, SQL-Datentyp ............................. 722
Integer ................................................... 1138
Java-Klasse ...................................... 564
Integer-Literal ..................................... 480
Integrationsmanagement ............. 663
Integrierter Schaltkreis ...................... 38
Intel ..................................................... 41, 117
Intel-Assembler ................................... 126
Interactive Ruby ................................. 528
Interface
Java ....................................................... 511
Runnable, Java ................................ 512
Serializable, Java ............................ 512
Internet
Anwendungsprotokolle ............... 265
Dateiübertragung ......................... 267
Denial-of-Service-Angriff ........... 370
Dokumentation ............................... 177
Geschichte ......................................... 175
Offizielle Einführung .................... 178
RFC ........................................................ 177
Standards ........................................... 177
Transportprotokolle ..................... 254
Vorläufer ARPANET ...................... 176
Zugang per Modem ...................... 217
Zugang über DSL ........................... 220
Zugang über ISDN ......................... 218
Internet Explorer
ActiveX .............................................. 939
Internet, DDN-Modell-Schicht ...... 185
Internet-Schichtenmodell .............. 184
Anwendungsschicht ..................... 186
Host-zu-Host-Transportschicht
186
Internetschicht ................................ 185
Netzzugangsschicht ..................... 185
Interpreter ................................ 41, 49, 514
Interpreter, Entwurfsmuster ........ 688
Inter-Prozess-Kommunikation ... 309
System V IPC ................................... 309
über Pipes ......................................... 309
über Signale .................................... 309
Interrupt Request � IRQ
Interrupt, Hardware- ........................ 126
Intrusion Detection System ......... 1122
Intrusion Detection Systems
Network-IDS ................................... 1123
Snort .................................................. 1123
IO::Socket .......................... 597, 599, 600
IOException, Java ...................... 504, 513
iOS, Mobilbetriebssystem .............. 455
iPad ............................................................ 46
IP-Adresse
für Sockets ........................................ 595
zuweisen, Linux ............................. 446
zuweisen, Mac OS X ...................... 467
zuweisen, Windows ...................... 368
IP-Adressen
Broadcast-Adresse ........................ 228
CIDR-Adressierung ........................ 230
CIDR-Berechnungen ..................... 232
IPv6 .................................................... 240
Klassen .............................................. 227
Konzept ............................................. 226
link local ............................................ 230
Loopback .......................................... 230
Netzwerkadresse ............................ 228
private ............................................... 229
spezielle ............................................. 229
Subnet Mask ..................................... 231
Subnetting ........................................ 232
Supernetting .................................... 232
Teilnetzmaske .................................. 231
VLSM .................................................. 236
IPC � Inter-Prozess-Kommunikation
iPhone ...................................................... 46
IP-Masquerading ................................ 253
IP-Protokoll
Adressverteilung ............................ 229
Datagramme .................................. 237
Default Gateway ........................... 244
Header ............................................... 237
IPv6 .................................................... 240
Maximum Transmission Unit
(MTU) ............................................ 239
Multicasting .................................... 228
Network Address Translation (NAT)
253
Paketfragmentierung .................. 239
Router ................................................ 244
Routing .............................................. 244
Routing-Protokolle ....................... 248
spezielle Adressen ......................... 229
TTL ....................................................... 248
1184
Index
IP-Routing
Beispiele ............................................ 245
Routing-Tabelle ............................. 247
iptables ........................................ 1122, 1124
Beispiele ........................................... 1127
Chain ................................................. 1124
Kommandozeilenoptionen ...... 1126
Regeln ............................................... 1125
Tabelle .............................................. 1125
IPv4-Adressverteilung ..................... 229
IPv6 ......................................................... 240
Adressaufbau ................................... 241
Datagramm-Header .................... 242
Migration (Umstieg) .................... 243
Motivation ...................................... 240
Tunnelung ........................................ 244
IPX/SPX, Netzwerkprotokoll ......... 285
irb ............................................................. 528
console, Rails-Variante ............. 1021
IrDA ............................................... 144, 1138
IRQ .................................................. 138, 1138
reservierter ........................................ 138
IS A-Beziehung, OOP ......................... 681
is_array(), PHP-Funktion ................ 977
is_float(), PHP-Funktion .................. 977
is_int(), PHP-Funktion ..................... 977
is_null(), PHP-Funktion ................... 977
is_numeric(), PHP-Funktion .......... 977
is_string(), PHP-Funktion ............... 977
ISA .................................................. 140, 1138
ISDN ................................................ 218, 1138
anschließen ...................................... 219
Kanalbündelung ............................ 219
Kanäle ................................................ 219
ISO ........................................................... 1139
ISO 9660 (CD-ROM-Format) ........... 157
ISO-8859-Zeichensätze ..................... 875
isset(), PHP-Funktion ........................ 977
Itanium, Prozessor ............................. 121
IT-Ausbildung ......................................... 27
Fachinformatiker ............................ 28
Informatikkaufmann .................... 29
IT-Systemelektroniker ................... 29
IT-Systemkaufmann ...................... 29
Projektarbeit .................................. 660
Prüfung ............................................... 30
Studienfächer ..................................... 32
IT-Berufe
Ausbildungsgänge ........................... 27
Iteration ................................................. 567
Iterator, Entwurfsmuster ............... 688
Iteratoren
Ruby ............................................ 545, 557
ITS, Betriebssystem ............................ 291
IT-Sicherheit ....................................... 1105
IT-Systemelektroniker ........................ 29
IT-Systemkaufmann ............................ 29
J
Jacobson, Ivar ....................................... 677
Java Application-Server .................... 621
Java EE ........................................... 500, 621
Enterprise Java Beans .................. 621
Java Enterprise Edition ..................... 621
Java Foundation Classes .................. 631
Java ME ................................................. 500
Java SDK ............................................... 500
Enterprise Edition ........................ 500
Micro Edition (Java ME) ............ 500
Standard Edition .......................... 500
Java Servlet ............................................ 627
Beispiel ............................................... 627
Java Virtual Machine (JVM) ........... 499
java, Programm .................................. 502
Java, Programmiersprache ..... 52, 499,
592, 1139
ActionListener ................................ 645
Animation, AWT ............................ 638
Applet .............................. 500, 632, 655
Ausnahme ........................................ 504
Ausnahme auslösen ..................... 513
Ausnahmen ...................................... 513
AWT ..................................................... 631
Biddatei laden ................................ 639
binäre Suche ................................... 570
boolean-Datentyp ........................ 504
BorderLayout ................................. 644
BubbleSort ........................................ 565
BufferedReader ...................... 503, 513
Button ............................................... 642
byte-Datentyp ................................ 504
Callback-Methode ......................... 591
Canvas ............................................... 632
catch() ................................................ 504
charAt()-Methode ......................... 505
class-Deklaration .......................... 503
CLASSPATH .................................... 500
Color .................................................... 635
compareTo()-Methode ................ 505
Connection, JDBC-Klasse ............ 747
Java, Programmiersprache (Forts.)
Datei verarbeiten ........................... 512
Datenbankverbindung herstellen
747
Datentypen ..................................... 504
drawLine()-Methode .................... 634
drawOval()-Methode ................... 634
drawPolygon()-Methode ............ 634
drawRect()-Methode .................... 634
drawString()-Methode ................. 637
Eigenschaften ................................. 501
Ein- und Ausgabe .......................... 503
Einsatzgebiete ............................... 500
Enterprise Edition .......................... 621
equals()-Methode .......................... 505
Ereignisbehandlung ..................... 644
Exception ......................................... 504
Exceptions ......................................... 513
executeQuery()-Methode ........... 748
extends ............................................. 509
false .................................................... 504
fehlender Zeiger ............................ 506
FileNotFoundException ............... 513
fillOval()-Methode ......................... 634
fillRect()-Methode ......................... 634
Frame ........................................ 632, 642
Graphics2D, Klasse ....................... 632
Graphics-Klasse ............................. 632
GridLayout ....................................... 643
Gültigkeitsbereich für Variablen
505
Image-Klasse ................................... 638
import-Anweisung ........................ 502
indexOf()-Methode ...................... 506
init(), Applets ................................... 655
InputStreamReader ...................... 503
Installation ..................................... 500
Instanz ............................................... 501
Instanz erzeugen ........................... 505
Integer-Klasse ................................. 564
Interface ............................................. 511
IOException ............................ 504, 513
java.awt.* .......................................... 631
java.awt.event.* ............................. 631
java.lang.* ....................................... 506
java.sql.* ............................................ 747
java.util.* ........................................... 513
Java2D ................................................ 632
javax.swing.* ................................... 631
javax.swing.event.* ....................... 631
javax.swing.table.* ....................... 631
1185
Index
Java, Programmiersprache (Forts.)
JDBC-Datenbankschnittstelle ... 746
JDBC-ODBC-Bridge ........................ 746
JDBC-Treiber laden ........................ 747
JFC ......................................................... 631
JFrame ................................................ 632
Kapselung ........................................ 501
Klasse ................................................. 501
Kommentar .................................... 506
kompilieren ..................................... 502
Konstruktor ..................................... 507
Label ................................................... 642
lastIndexOf()-Methode ............... 506
LayoutManager ............................. 643
length()-Methode ......................... 506
lineare Suche ................................... 569
Liste ...................................................... 573
Listener .............................................. 644
main()-Methode .................... 503, 632
Math-Klasse .................................... 506
Menu .................................................. 642
MenuBar ........................................... 642
MenuItem ......................................... 642
Methode ............................................ 501
MouseListener ................................ 645
MouseMotionListener ................. 645
new ...................................................... 505
Object-Klasse ................................. 506
Objekt ................................................. 501
Objektorientierung .............. 501, 506
org.xml.sax.* ................................... 858
Package java.io.* ........................... 503
paint()-Methode ............................. 632
Panel .......................................... 632, 642
parseInt()-Methode ....................... 564
print() ................................................ 504
println() ............................................. 503
private (Kapselung) ...................... 507
Programm starten ........................ 502
protected ......................................... 509
public (Kapselung) .............. 503, 508
readLine()-Methode ..................... 504
repaint()-Methode ......................... 641
ResultSet, JDBC-Klasse ................. 748
RMI (Remote Method Invocation)
622
run()-Methode ................................ 589
Runnable-Interface ............... 512, 589
SAX ...................................................... 858
SDK ..................................................... 500
Java, Programmiersprache (Forts.)
SDK, Enterprise Edition ............. 500
SDK, Micro Edition (Java ME) 500
SDK, Standard Edition ............... 500
Serializable-Interface ................... 512
Servlet ................................................. 627
setColor()-Methode ....................... 635
setLayout() ....................................... 643
setVisible()-Methode .................... 632
start()-Methode ............................. 589
Statement, JDBC-Klasse .............. 748
static .................................................. 503
String ................................................. 503
String-Methoden ........................... 505
Strings vergleichen ....................... 505
String-Verkettung ................ 504, 505
substring()-Methode .................... 506
super ................................................... 510
Swing .................................................. 631
TextArea ........................................... 642
TextField ........................................... 642
this ...................................................... 507
Thread ....................................... 512, 589
Thread, Klasse ................................ 589
throws-Klausel ................................ 513
true ..................................................... 504
try ........................................................ 504
try/catch-Block .............................. 504
Überladung ..................................... 508
Umwandlung von SQL-Datentypen
749
Unterschiede zu C ......................... 504
Unterstützung durch Mac OS X
456
update()-Methode .......................... 641
Variablendeklaration .................. 505
Vererbung ........................................ 509
virtuelle Maschine ........................ 499
WindowListener ............................ 645
java.applet.*, Package ....................... 632
java.awt.*, Package .............................. 631
java.awt.event.*, Package ................. 631
java.awt.Graphics, Klasse ................ 632
java.io.*, Package ................................ 503
java.lang.*, Package ........................... 506
java.sql.*, Package ............................... 747
java.util.*, Package .............................. 513
Java2D-API ............................................ 632
Java-Applet ................................... 632, 655
in HTML einbetten ....................... 940
init()-Methode ................................. 655
JavaScript .................................. 1038, 1139
+, Operator ..................................... 1041
Ajax ................................................... 1081
angepasstes Browserfenster öffnen
1066
Ausgabe ins Dokument ............ 1039
automatisierter Hyperlink ...... 1065
Bilder austauschen ..................... 1056
Bilder vorausladen ...................... 1058
Bildschirmgröße ......................... 1068
Browserweiche ............................ 1063
charAt(), String-Methode ........ 1048
CSS-Format ändern, DOM ........ 1076
Date, Klasse ................................... 1053
document.forms, Formulare 1045
document.images ....................... 1056
document.write(), Methode .... 1040
Dokumenthierarchie ändern, DOM
1079
DOM, Objektmodell ................... 1070
DOM-Baumstruktur anzeigen 1073
DOM-Knoteneigenschaften .... 1071
DOM-Textknoten ........................ 1071
Event Handler .............................. 1044
externe Datei einbinden .......... 1039
Fenstereigenschaften ................ 1066
Fenster-Methoden ...................... 1069
Formular überprüfen ................ 1048
Formular, Fokus setzen ............ 1050
Formularzugriff ........................... 1045
function, Schlüsselwort ............. 1047
Funktion .......................................... 1047
Geschichte ...................................... 1038
getDate(), Methode ..................... 1054
getDay(), Methode ...................... 1054
getElementById(), DOM-Methode
1071
getElementsByTagName(), DOM-
Methode ..................................... 1071
getFullYear(), Methode .............. 1054
getHours(), Methode .................. 1054
getMinutes(), Methode .............. 1054
getSeconds(), Methode .............. 1054
getYear(), Methode ..................... 1054
history-Objekt ............................... 1065
Image, Klasse ................................ 1058
in der Browser-History blättern
1065
in HTML einbetten ...................... 1038
indexOf(), String-Methode ...... 1049
jQuery ............................................. 1099
1186
Index
JavaScript (Forts.)
JSON ...................................... 1088, 1098
lastIndexOf(), String-Methode
1049
length, String-Eigenschaft ...... 1048
location-Objekt ............................ 1065
navigator-Objekt ........................ 1064
onreadystatechange, Ajax-Eigen-
schaft ........................................... 1083
open(), Ajax-Methode ................ 1082
open(), window-Methode ........ 1066
parseFloat(), Methode ............... 1042
parseInt(), Methode .................... 1042
prompt()-Methode ..................... 1040
readyState, Ajax-Eigenschaft 1083
regulärer Ausdruck .................... 1050
responseText, Ajax-Eigenschaft
1085
responseXML, Ajax-Eigenschaft
1089, 1092
Rollover-Effekt .............................. 1057
Rollover-Effekt, praxistaugliche
Lösung ........................................ 1059
screen-Objekt ............................... 1068
send(), Ajax-Methode ................ 1084
setTimeout(), Methode .............. 1055
String, Klasse ................................ 1048
String-Vergleich ........................... 1043
String-Verkettung ....................... 1041
substring, String-Methode ...... 1048
Timeout ........................................... 1055
JavaServer Pages � JSP
javax.ejb.*, Java-Package .................. 622
javax.swing.*, Package ....................... 631
javax.swing.event.*, Package .......... 631
javax.swing.table.*, Package ........... 631
Jaz-Laufwerk .......................................... 153
JBoss, Java Application-Server ...... 621
JDBC ........................................................ 1139
JDBC, Java-Datenbankschnittstelle
746
JDBC-ODBC-Bridge ............................ 746
JDK .......................................................... 500
JFC ............................................................ 1139
JFC (Java Foundation Classes) ......... 631
JFrame, Swing-Klasse ........................ 632
Jobs, Steve ............................. 42, 294, 295
Johnson, Ralph .................................... 684
join, Perl-Anweisung ......................... 519
Join, SQL .................................................. 727
Join-Abhängigkeit, RDBMS ............ 710
Joliet ....................................................... 1139
Joliet (CD-Format) ............................... 157
Unterstützung auf dem Mac ...... 157
Joomla!, CMS ...................................... 1031
Journaling-Dateisystem ................. 406
Joy, Bill .......................................... 424, 499
JPEG, Bilddateiformat ...................... 889
jQuery .................................................. 1099
Ajax-Anfrage ................................. 1101
Event Handler ............................... 1101
Funktion ......................................... 1100
Selektor ........................................... 1099
JSON, Ajax-Datenaustauschformat
1088, 1098
json_encode, PHP-Funktion ....... 1098
JSP ............................................................ 628
JUnit ........................................................ 693
Beispiele ............................................ 693
grafische Oberfläche .................... 695
K
Kabelanschluss als Internetzugang
221
Kapselung ....................................... 52, 501
Kartensteckplatz
AGP ..................................................... 140
ISA ....................................................... 140
PCI ....................................................... 140
PCMCIA ............................................. 140
KDE ......................................................... 1139
Konsole (Terminalfenster) .......... 383
Qt-Bibliothek ................................... 441
KDE, Desktop .................... 306, 440, 441
Kontrollzentrum ........................... 443
Panel .................................................. 442
Verknüpfung erstellen ................ 443
Kernel ..................................................... 299
mach-Mikrokernel ............... 300, 455
Mikrokernel ..................................... 299
monolithischer .............................. 299
selbst kompilieren, Linux ............ 416
Systemaufruf ......................... 301, 304
Task Scheduler ................................ 301
Kernelmodus ............................ 300, 307
Kernighan, Brian ................. 50, 292, 473
Kettenmail ........................................... 1119
keys, Perl ............................................... 520
KI � Künstliche Intelligenz
Kildall, Gary ......................................... 294
kill(), Unix-Systemaufruf ............... 308
KILL, Signal ................................. 308, 410
kill, Unix-Befehl .................................. 410
Kilobyte .................................................... 82
Kindklasse ............................................ 509
Klammer
Operatoren-Rangfolge verändern
485
Klammern
in RegExp ......................................... 580
Klasse ................................................ 52, 501
abgeleitete ...................................... 509
Instanz erzeugen, Java ................ 505
Klassen
Elternklasse ..................................... 509
Klassendiagramm (UML) ............... 680
Klassenmethode
PHP ..................................................... 983
Klassentest � Unit-Test
Klassenvariable
PHP ..................................................... 983
Kleinbildscanner ................................ 162
Kleincomputer ...................................... 40
Kleiner als, Operator ......................... 483
kleiner als, Operator ........................... 67
Kleiner oder gleich, Operator ........ 483
Knuth, Donald E. ................................ 881
Koaxialkabel ....................................... 1139
KOffice, KDE-Office-Paket ............... 441
Kommandozeile ................................ 1139
Kommandozeile � Konsole
Kommandozeilenparameter
C ........................................................... 491
Kommentar
C ........................................................... 478
in HTML ............................................. 923
Java .................................................... 506
Perl ....................................................... 521
PHP ...................................................... 971
Kommentare
in XML ................................................. 831
Kommunikation
zwischen Prozessen ..................... 309
Kommunikationsmanagement 663
Kommunikationssteuerung, OSI-
Schicht ................................................ 183
Kompakt-Desktoprechner .............. 114
Komplexe Zahl ....................................... 71
Komplexität ........................................ 1139
exponentielle .................................... 99
logarithmische ................................. 98
1187
Index
Komplexität (Forts.)
O-Notation ......................................... 98
polynomielle ..................................... 99
quadratische ..................................... 99
von Algorithmen ............................. 97
Komplexitätsklasse ............................. 97
Komponentenmodell ...................... 622
Komprimierung ................................. 885
bzip2 .................................................... 415
gzip ...................................................... 415
verlustbehaftete ............................ 886
verlustfreie ....................................... 885
Konfigurationsdatei
.bashrc (Unix) .................................. 385
/etc/profile (Unix) ......................... 385
Konjunktion, logische ........................ 63
Konqueror, KDE-Browser ............... 441
Konsole ........................................ 290, 305
Ausgabe, C ....................................... 496
Ausgabeumleitung (Unix) ......... 394
Befehl, Windows ............................ 346
Eingabe, C ........................................ 496
Eingabeaufforderung, Unix ...... 384
Eingabeaufforderung, Windows
346
Eingabeumleitung (Unix) .......... 394
Eingabevervollständigung ........ 388
Pipe ..................................................... 395
praktische Verwendung (Unix) 379
starten unter Windows ............... 346
Windows ........................................... 344
Konsole (KDE-Terminalfenster) ... 383
Konstante
symbolische .......................... 499, 1143
Konstante lineare Geschwindigkeit
155
Konstante Winkelgeschwindigkeit
152
Konstruktor
Java ..................................................... 507
überladen, Java ............................. 508
Kontextmenü
Mac OS X ........................................... 462
Kontrollstruktur ................................. 485
Fallunterscheidung ....................... 485
foreach, Perl ...................................... 519
in C ...................................................... 477
in der PowerShell ........................... 353
Ruby .................................................... 542
Schleife .............................................. 488
unless, Perl ....................................... 524
Kooperatives Multitasking ............ 302
Kopfgesteuerte Schleife .................. 489
Kopieren
Datei, Mac OS X ............................. 462
Datei, Unix ....................................... 398
Datei, unter Windows .................. 341
Datei, Windows-Konsole ............. 347
Koprozessor ........................................... 118
Korn Shell (ksh) ................................... 385
Kosinuskurve
zeichnen, AWT ................................ 636
Kostenmanagement ........................ 663
Kritischer Pfad, Netzplan ................ 665
Kryptoanalyse .................................... 1129
Kryptografie ....................................... 1128
asymmetrische Verschlüsselung
1129
Cäsar-Code ..................................... 1128
digitale Signatur .......................... 1129
Einwegverschlüsselung ............. 1129
Grundbegriffe ................................ 1128
Message-Digest ............................ 1130
ROT13 ................................................ 1128
SSH ..................................................... 1130
SSL/TLS ............................................. 1130
symmetrische Verschlüsselung
1129
ksh (Korn Shell) ................................... 385
Kugelkopfdrucker .............................. 167
Künstliche Intelligenz ....................... 46
L
l, LDAP-Attribut ................................. 806
Label, AWT-Klasse .............................. 642
Lamarr, Hedy ......................................... 211
LAMP-System ............................ 964, 1139
LAN ................................................. 191, 1139
Technische Lösungen ................... 192
Wireless ............................................. 209
Laptop ...................................................... 114
Laserdrucker ......................................... 168
Farbe ................................................... 168
Last In, First Out ................................... 571
Lastenheft ............................................. 667
lastIndexOf(), Java-Methode ......... 506
Lasttest .................................................... 671
LaTeX ..................................................... 1139
LaTeX, Satzsprache ............................. 881
Beispieldokument .......................... 881
Laufwerk
Anschlüsse ......................................... 141
magnetisches .................................. 146
magneto-optisches ....................... 146
optisches ........................................... 146
Laufwerksbuchstabe .......................... 318
Laufzeit ..................................................... 49
Laufzeitbibliothek, C ......................... 495
Lauschender Socket .......................... 598
LayoutManager, AWT ....................... 643
BorderLayout ................................. 644
GridLayout ....................................... 643
Lazy Initialization, Entwurfsmuster
1009
LBA (Festplattenadressierung) ..... 148
LCD .......................................................... 1139
LCD-Monitor ........................................ 166
Funktionsprinzip ........................... 166
Nachteile ............................................ 167
TFT ....................................................... 166
Vorteile .............................................. 166
LDAP ............................................. 804, 1139
Active Directory ............................ 804
Benutzerkonten abbilden in .... 805
cn, Attribut ...................................... 806
dc-Knoten ........................................ 804
dn, Attribut ..................................... 806
facsimileTelephoneNumber, Attri-
but ................................................. 806
gidNumber, Attribut ................... 806
givenName, Attribut ................... 806
Grundlagen ..................................... 804
homeDirectory, Attribut ............ 807
inetOrgPerson, Objektklasse .... 805
l, Attribut ......................................... 806
loginShell, Attribut ...................... 807
mail, Attribut ................................. 806
o, Attribut ........................................ 806
objectClass ...................................... 805
objectClass, Attribut .................... 806
OpenLDAP ....................................... 804
Organisationseinheit .................. 804
ou-Knoten ....................................... 804
people, Organisationseinheit 805
person, Objektklasse ................... 805
posixAccount, Objektklasse ..... 805
Schema ............................................. 804
sn, Attribut ...................................... 806
telephoneNumber, Attribut ...... 806
uid, Attribut .................................... 806
uidNumber, Attribut ................... 806
1188
Index
LDAP (Forts.)
userPasssword, Attribut ............ 806
verschiedene Server für .............. 804
Wurzel ............................................... 804
le, Perl-Operator ................................. 523
Lead-in-Area (CD) ................................ 156
Lead-out-Area (CD) ............................. 156
LED-Drucker ............................... 168, 1139
Leere Menge ............................................ 72
left, CSS-Angabe .................................. 953
Leibniz, Gottfried Wilhelm .............. 36
Leichtgewichtiger Entwicklungspro-
zess ...................................................... 675
length(), Java-Methode ................... 506
Lerdorf, Rasmus .................................. 963
less, Unix-Befehl ................................ 403
letter-spacing, CSS-Angabe ........... 950
Level-1-Cache ........................................ 119
Level-2-Cache ........................................ 119
LF, Unix-Zeilenumbruch .................. 871
Lichtfarben, RGB ................................... 56
Lichtwellenleiter .................................. 46
LIFO ......................................................... 1139
LIFO � Last In, First Out
Light Peak ............................................... 143
Lightweight Directory Access Proto-
col � LDAP
LIKE, SQL-Klausel ................................ 725
Lineare Algebra ..................................... 95
Lineare Geschwindigkeit, konstante
155
Lineare Gleichung ................................. 61
Lineare Komplexität ........................... 97
Lineare Suche .............................. 97, 1139
Java ..................................................... 569
line-height, CSS-Angabe ................. 950
Linux .............................................. 293, 296
$0, Systemvariable ....................... 384
.bashrc, Konfigurationsdatei .... 385
/etc/passwd-Datei ......................... 381
/etc/profile, Konfigurationsdatei
385
/etc/shadow, Datei ....................... 383
alias-Befehl ....................................... 421
als Server einrichten ..................... 447
apt, Paketmanager ........................ 415
Arbeitsverzeichnis anzeigen .... 400
auf NFS-Freigaben zugreifen .... 449
auf Windows-Server zugreifen
451
bash .................................................... 385
Linux (Forts.)
Befehle regelmäßig ausführen 422
Benutzerrechte ................................ 317
Bourne-Shell .................................... 384
bunzip2-Befehl ............................... 895
bzip2-Befehl ..................................... 895
bzip2-Komprimierung ................. 415
cat-Befehl ......................................... 402
cd-Befehl .......................................... 400
chgrp-Befehl .................................... 401
Child-Prozess .................................. 308
chmod-Befehl ................................ 400
chown-Befehl .................................. 401
cp-Befehl ........................................... 398
Cronjob .............................................. 422
C-Shell ................................................. 385
CUPS, Drucksystem ...................... 449
Daemon ........................................... 409
date-Befehl ...................................... 407
Datei kopieren ............................... 398
Datei löschen .................................. 399
Datei umbenennen ...................... 399
Datei verschieben ......................... 399
Dateibefehle ..................................... 397
Dateibesitzer wechseln ............... 401
Dateiendung ................................... 398
Dateigruppe wechseln ................ 401
Dateiname ............................... 316, 397
Dateinamen-Platzhalter ............ 398
Dateisysteme ................................... 314
Datum und Uhrzeit ändern ...... 407
Datum und Uhrzeit formatieren
407
Debian-Distribution ..................... 378
diff-Befehl ......................................... 405
Distributionen ................................ 298
du-Befehl ......................................... 406
echo-Befehl ...................................... 402
Emacs, Texteditor .......................... 433
Escape-Sequenz ............................. 404
exit-Befehl ........................................ 390
fg-Befehl ........................................... 386
finger, Dienstprogramm ............. 382
fork(), Systemaufruf ..................... 307
fsck-Befehl ....................................... 406
Gerätedatei .............................. 314, 315
GNOME .......................... 306, 440, 443
GNU-Projekt ..................................... 297
grafische Benutzeroberfläche 439
grep-Befehl ...................................... 403
groupadd-Befehl .......................... 409
Linux (Forts.)
Group-ID .................................. 308, 381
gunzip-Befehl .................................. 895
gzip-Befehl ....................................... 895
gzip-Komprimierung .................... 415
Hard Link ........................................... 317
Hardwareplattformen ................. 297
head-Befehl ..................................... 402
HIER-Dokument ............................. 395
Home-Verzeichnis .......................... 315
ifconfig-Befehl ................................ 445
init-Prozess ...................................... 307
inode ................................................... 316
Installation von Software ........... 415
IP-Adresse zuweisen ..................... 446
KDE .................................. 306, 440, 441
Kernel kompilieren ....................... 416
Kernel-Modul laden ...................... 416
kill(), Systemaufruf ...................... 308
kill-Befehl .......................................... 410
Korn Shell ......................................... 385
less-Befehl ........................................ 403
Link (Dateisystem) ......................... 317
logger-Befehl .................................... 412
Login ................................................... 379
ls-Befehl ............................................. 399
mail-Befehl ....................................... 423
make-Befehl ...................................... 415
man-Befehl ....................................... 305
Mandriva-Distribution ............... 378
mkdir-Befehl ................................... 400
mkfs-Befehl ..................................... 407
modprobe-Befehl ........................... 416
more-Befehl .................................... 403
mount-Befehl ................................. 405
mv-Befehl ......................................... 399
MySQL-Installation ....................... 715
netfilter, Kernel-Firewall ............ 1124
Netzwerkkonfiguration .............. 445
Neustart ............................................. 411
NFS ...................................................... 448
openSUSE-Distribution ................ 377
Pager ................................................. 403
Paketmanager ................................. 415
Parent-Prozess ............................... 308
passwd-Befehl ................................ 409
Passwort ändern ........................... 409
patch-Befehl ................................... 405
PATH, Umgebungsvariable ....... 387
pause(), Systemaufruf ................. 308
Pfadangabe ...................................... 315
1189
Index
Linux (Forts.)
Pipe ..................................................... 395
Programm automatisch starten
413
Prozessmodell ................................. 307
Prozessverwaltung ...................... 409
ps-Befehl ................................ 309, 409
pstree-Befehl ................................... 409
pwd-Befehl ...................................... 400
Red-Hat-Distribution .................... 377
regulären Ausdruck suchen ..... 403
rm-Befehl .......................................... 399
rmdir-Befehl ................................... 400
root, Benutzer ........................ 309, 381
route-Befehl ..................................... 446
rpm, Paketmanager ...................... 415
Runlevel .............................................. 413
Samba-Server ................................. 450
SaX, openSUSE-X-Konfigurations-
programm .................................. 440
Shell ........................................... 305, 379
Shell-Ausgabeumleitung ............ 394
Shell-Eingabeumleitung ............. 394
Shell-Eingabevervollständigung
388
Shell-History .................................... 389
Shell-Skript ........................................ 417
shutdown-Befehl ............................ 411
Software installieren ..................... 415
Stand-alone Shell .......................... 385
Standardrouter einrichten ........ 446
startx-Befehl ................................... 440
su-Befehl .......................................... 390
Swap-Partition ................................ 312
Symbolic Link ................................... 317
Syslog ........................................ 409, 411
System herunterfahren ................ 411
System V Init .................................... 413
Systemprogramme .............. 297, 397
tail-Befehl ........................................ 403
tar-Befehl .................................. 415, 893
tar-Datei ............................................ 415
Textbefehle ...................................... 401
Textdatei anzeigen ...................... 402
Textdateien vergleichen ............ 405
Texteditoren .................................... 423
top-Befehl ......................................... 410
Ubuntu-Distribution .................... 378
Umgebung ....................................... 385
Umgebungsvariable setzen ....... 388
Linux (Forts.)
umount-Befehl .............................. 406
unalias-Befehl ................................. 422
unzip-Befehl .................................... 896
useradd-Befehl ............................... 408
userdel-Befehl ................................ 409
User-ID ..................................... 308, 381
Verwaltungsbefehle ..................... 405
Verzeichnis anlegen .................... 400
Verzeichnis löschen ..................... 400
Verzeichnis wechseln ................. 400
Verzeichnisbaum ........................... 315
Verzeichnisbefehle ........................ 397
Verzeichnisinhalt anzeigen ...... 399
vi, Editor ........................................... 424
virtuelles Terminal ........................ 383
wc-Befehl .......................................... 405
Window-Manager ........................ 306
Wörter zählen ................................. 405
X Window ............................... 306, 439
Xconfigurator, X-Konfigurations-
programm .................................. 440
zip-Befehl ......................................... 896
Zugriffsrechte .................................. 317
LISP, Programmiersprache ...... 53, 439
Liste
C ............................................................. 571
HTML .................................................. 911
Java ...................................................... 573
Perl ....................................................... 518
Listen
qw//, Perl ........................................... 522
listen(), Perl-Funktion ...................... 598
Listen, Apache-Direktive ................. 779
Listener, AWT-Ereignisbehandlung
644
Literal .......................................... 480, 1139
Fließkommazahlen ...................... 480
Integer ............................................... 480
Perl ....................................................... 521
String ................................................. 480
Zeichen .............................................. 480
Literale
Ruby .................................................... 532
Little-Endian-Architektur .............. 1139
Little-Endian-Plattform ................... 885
LOAD DATA INFILE, MySQL-Anwei-
sung ..................................................... 741
LoadModule, Apache-Direktive .... 779
Local Area Network ............................ 191
LocalTalk ................................................ 283
localtime(), C-Funktion ................... 498
Location, Apache-Direktive .......... 780
Lochkarte ....................................... 39, 290
Logarithmische Komplexität .......... 98
Log-Datei
MySQL ................................................ 742
logger, Unix-Befehl ............................ 412
Logical Link Control (LLC) ................ 182
Logik
AND ....................................................... 63
Aussage .............................................. 60
Aussageformen ................................. 61
Aussagenlogik .................................. 59
Definition ........................................... 59
Disjunktion ........................................ 64
formale ................................................ 59
Gleichung .......................................... 60
Konjunktion ...................................... 63
lügende Kreter .................................. 97
mathematische Aussage ............. 60
Operator, C ....................................... 481
OR .......................................................... 63
Prädikatenlogik ......................... 53, 59
Schlussfolgerung ............................. 62
Term .................................................... 60
Umkehrschluss ................................. 62
Ungleichung ..................................... 60
Verknüpfung ...................................... 61
wahre und falsche Aussagen ..... 60
Widerspruch ...................................... 96
XOR ....................................................... 66
Logikschaltkreis � Logikschaltung
Logikschaltung ...................................... 85
Addierwerk .......................................... 91
AND/OR-Aufbau durch Transisto-
ren ..................................................... 88
Carry-in ................................................ 91
Carry-out ............................................. 91
Flip-Flop .............................................. 92
Gattersymbole .................................. 89
Halbaddierer .................................... 90
mit einfachen Mitteln nachbauen
86
Multiplexer ........................................ 89
NAND-Schaltung ............................. 87
NOR-Schaltung ................................. 87
NOT-Schaltung ................................. 87
RS-Flip-Flop ........................................ 92
Speicherzelle ...................................... 92
1190
Index
Logikschaltung (Forts.)
Übertrag ............................................... 91
Volladdierer ........................................ 91
XOR-Schaltung ................................. 89
Login ...................................................... 1139
Login (Unix-Anmeldung) ............... 379
loginShell, LDAP-Attribut .............. 807
Logische Partition .............................. 150
Logische Programmiersprache ....... 52
Logische Schlussfolgerung ............... 62
Logische Verknüpfung ........................ 61
Logische Verknüpfungen
in Programmiersprachen ............. 68
Logischer Operator
C ........................................................... 481
Short-Circuit-Logik ....................... 524
Vergleich mit Bit-Operatoren ..... 64
Logisches Laufwerk � Logische Parti-
tionen
Logisches Nicht, Operator .............. 482
Logisches Oder, Operator ............... 481
Logisches Und, Operator ................. 481
Logo, Programmiersprache .............. 53
Logos ......................................................... 59
Lokale Variable
in C ...................................................... 479
Lokales Netz
Entwicklung ....................................... 42
Lokalisierung
Mac OS X .......................................... 465
long, C-Datentyp ................................ 479
LONGBLOB, SQL-Datentyp ............. 723
LONGTEXT, SQL-Datentyp ............. 723
Loopback, IP-Protokoll ..................... 230
Löschabfrage ......................................... 719
Löschen
Datei, Windows-Konsole ............ 347
Dateien, Unix .................................. 399
Verzeichnis, Windows .................. 347
Lösung
einer Gleichung oder Ungleichung
61
Lösungsmenge ....................................... 61
Lovelace, Ada ......................................... 36
ls, Unix-Befehl ..................................... 399
LS-120-Laufwerk ................................... 153
lt, Perl-Operator .................................. 522
LTE ............................................................ 223
LVALUE .................................................. 483
Liste als ............................................... 518
M
m//, Perl-Operator ..................... 577, 581
m:n-Beziehung, RDBMS ................. 705
Mac ............................................................. 44
Mac OS X ....................................... 293, 453
Alias ................................................... 462
als Server einrichten .................... 469
Anwendungsmenü ....................... 459
APIs ..................................................... 456
Apple-Menü ..................................... 458
Aqua .......................................... 293, 456
Aqua, praktische Anwendung 457
Aqua-Fenster .................................. 458
Architektur ....................................... 455
Benutzerverwaltung .................... 465
Carbon ............................................... 456
Classic-Umgebung ....................... 456
Cocoa ................................................. 456
Darwin ............................................... 455
Data Fork ......................................... 466
Datei kopieren ............................... 462
Datei umbenennen ...................... 462
Datei verschieben ......................... 462
Dateisysteme .................................. 465
Desktop ............................................. 458
Dock .......................................... 458, 459
DSL einrichten ................................ 468
Exposé ............................................... 462
File Sharing ..................................... 469
Finder ....................................... 458, 460
Geschichte ........................................ 453
HFS+-Dateisystem ........................ 465
HFS-Dateisystem ........................... 465
IP-Adresse zuweisen .................... 467
Java ..................................................... 456
Konfiguration ................................ 464
Kontextmenü ................................. 462
Landeseinstellungen .................... 465
Menüleiste ........................................ 457
Monitor, Systemeinstellungen
465
Netzwerkkonfiguration .............. 467
OpenGL, 3D-Grafikbibliothek .... 455
Ordneransichten .......................... 460
Papierkorb ...................................... 460
Quartz, Grafikbibliothek ............. 455
QuickTime ....................................... 456
Resource Fork ................................. 466
Server nutzen .................................. 469
Mac OS X (Forts.)
Spotlight ........................................... 459
Startvolume einstellen ................ 464
Systemeinstellungen .................... 464
Terminal starten ............................ 456
Unix-Komponenten ..................... 456
Windows File Sharing ................. 469
MAC-Adresse ............................ 202, 1139
Mach-Mikrokernel ............................ 300
Macintosh ...................................... 44, 295
Leonardo, ISDN-Leonardo, Mac-
ISDN-DFÜ .................................... 220
Mac OS X ........................................... 453
Serversysteme ................................ 468
Magische Methode (PHP) ..... 978, 988
Magnetband .......................................... 147
Magnetbandspeicher .......................... 41
Magnetischer Datenträger ............. 146
Magnetband ..................................... 147
Magnetscheibe ............................... 146
Magneto-optischer Datenträger 146
Magnetscheibe .................................... 146
mail, LDAP-Attribut ......................... 806
mail, Unix-Befehl ............................... 423
Mailserver .............................................. 197
mailto, HTML-Hyperlink ................. 918
main(), AWT-Methode ...................... 632
main(), C-Funktion ............. 51, 475, 490
Kommandozeilenparameter .... 491
main(), Java-Methode ....................... 503
Mainboard ............................................. 116
Chipsatz ............................................. 117
Kartensteckplatz ........................... 140
Onboard-Peripherie ....................... 117
Mainframe .............................................. 40
make, Unix-Befehl .............................. 415
Makefile ................................................. 416
Makrovirus ......................................... 1108
malloc(), C-Funktion .......................... 572
MAN ....................................................... 1139
MAN, Stadtnetz .................................... 191
man, Unix-Befehl ............................... 305
Mandriva, Linux-Distribution ...... 378
mangle, iptables-Tabelle ................ 1125
Man-in-the-Middle-Angriff ............ 1121
Manuelle Datenverarbeitung .......... 25
Marconi, Guglielmo ......................... 209
margin, CSS-Angabe ........................... 951
Mark I, Röhrenrechner ....................... 38
Mark II, Röhrenrechner ..................... 38
1191
Index
Maschinenbefehl ............................... 126
Maschinensprache .............................. 47
Massenspeicher ................................... 145
CD-ROM ............................................. 154
Diskettenlaufwerk .......................... 153
DVD ...................................................... 157
Festplatte ........................................... 147
Jaz-Laufwerk .................................... 153
LS-120 .................................................. 153
magnetischer .................................. 146
magneto-optischer ....................... 146
optischer ........................................... 146
Übersicht .......................................... 146
Wechseldatenträger ...................... 153
ZIP-Laufwerk .................................... 153
Master Boot Record ........................... 149
Master-Nameserver .......................... 264
Matching, Reguläre Ausdrücke ..... 581
Math, Java-Klasse .............................. 506
Math, Ruby-Modul ............................. 537
Mathematische Aussage .................. 60
Mathematische Funktion, Undefi-
niertheitsstelle ................................. 96
Mathematische Variable .................... 61
Mathematischer Term ...................... 60
Matrixdrucker ...................................... 167
Matsumoto, Yukihiro ....................... 528
Maus ......................................................... 161
MAX, SQL-Funktion ........................... 727
Maximum Transmission Unit (MTU)
239
MBR � Master Boot Record
md � mkdir, Windows-Befehl
MDI, Windows-Anwendungen ..... 338
Mechanische Datenverarbeitung ... 25
Media Access Control (MAC) .......... 182
Median, QuickSort ............................. 567
Mediator, Entwurfsmuster ........... 689
MediaWiki, Wikipedia-Soft-
ware .................................................. 1032
Medieninformatik ................................ 33
MEDIUMBLOB, SQL-Datentyp ...... 723
MEDIUMINT, SQL-Datentyp .......... 722
MEDIUMTEXT, SQL-Datentyp ....... 723
Medizinische Informatik ................... 33
Megabyte ................................................. 82
Megapixel (Digitalkamera) ............. 163
Mehrfachvererbung ........................... 511
Mehrspaltenlayout (CSS3) .............. 961
mem.h, C-Bibliothek .......................... 572
Memento, Entwurfsmuster .......... 689
Memory Management Unit � MMU
Mena, Federico .................................... 441
Menge
diskrete ................................................ 55
leere ....................................................... 72
Mengenoperation ............................... 69
Differenzmenge ................................ 72
echte Obermenge ............................ 70
echte Teilmenge .............................. 70
Element ............................................... 69
leere Menge ........................................ 72
Obermenge ........................................ 70
Schnittmenge .................................... 72
Teilmenge .......................................... 69
Vereinigungsmenge ........................ 72
Verknüpfung ...................................... 72
Menu, AWT-Klasse ............................ 642
MenuBar, AWT-Klasse ..................... 642
MenuItem, AWT-Klasse .................. 642
Message-Digest ................................. 1130
Message-Passing ................................. 631
METAFONT, TeX-Zeichensätze ...... 881
Methode ................................................. 501
Callback ............................................. 591
statische (PHP) ............................... 983
überladen ......................................... 508
Metro, Windows-8-Benutzerober-
fläche .................................................. 332
Metropolitan Area Network ........... 191
Microsoft ........................................ 41, 294
ASP.NET .......................................... 1029
BizTalk Server .................................. 375
Exchange Server ............................. 375
Management Console (MMC) 364
MS-DOS ............................................. 294
SQL Server .................................. 375, 711
Systems Management Server ... 375
Windows ................................... 295, 327
Windows 2000 .............................. 296
Windows 95 ..................................... 296
Windows 98 ..................................... 296
Windows Me ................................... 296
Windows NT ..................................... 295
Windows Phone ............................... 46
Windows XP .................................... 296
Windows, Versionsübersicht ..... 328
Microsoft Azure ............................... 1033
Microsoft Virtual PC .......................... 322
MIDI ............................................... 170, 1139
FM-Synthese .................................... 170
Wavetable-Synthese ..................... 170
Migration
Ruby on Rails ................................ 1019
Mikrokernel .......................................... 299
mach ......................................... 300, 455
Mikroprozessor .................................... 116
Mikroprozessor � Prozessor
MilNet ...................................................... 178
MIME ..................................................... 1140
E-Mail-Nachricht ........................... 272
MIME-Multipart-Nachricht ............ 273
MIME-Nachrichtenheader .............. 272
MIME-Type
HTML-Plug-in-Formate ............... 938
XML-Dokument ............................. 823
MIME-Types ......................................... 272
im HTTP-Header ........................... 280
MIN, SQL-Funktion ............................ 727
Minicomputer ........................................ 41
Minix, Lehrbetriebssystem ............ 296
MIPS (CPU-Geschwindigkeit) ......... 122
MIPS, Prozessor ................................... 124
Mirroring (RAID) ................................. 151
MITS ............................................................ 41
Mixed-Mode-CD .................................. 155
mkdir, Unix-Befehl ........................... 400
mkdir, Windows-Befehl ................... 347
mkfs, Unix-Befehl ............................. 407
MMC (Microsoft Management Con-
sole) ..................................................... 364
MMU ..................................... 120, 311, 1140
Seitentabelle ..................................... 312
MMX (CPU-Befehlserweiterung) 123
Mnemonic .................................. 104, 1134
Mnemonics ............................................ 47
Mobile Datenübertragung
3G und 4G ......................................... 223
EDGE ................................................... 222
GPRS ................................................... 222
HSPA (HSDPA/HSUPA) ............... 222
LTE ....................................................... 223
Tethering .......................................... 223
UMTS .................................................. 222
Mobilfunk
Internetzugang über .................... 222
Mock-Objekt (Unit-Tests) .............. 1012
mod_alias, Apache-Modul ..... 775, 781
mod_alias, Apache-Module ........... 782
mod_auth_basic, Apache-Modul 777
mod_auth_digest, Apache-Modul
777
mod_authn_file, Apache-Modul 777
1192
Index
mod_authz_host, Apache-Modul
776, 778, 781
mod_dir, Apache-Modul ................. 779
mod_so, Apache-Modul .................. 779
Model
Ruby on Rails ................................ 1019
Model, View, Controller � MVC-Ent-
wurfsmuster
Modem .................................................... 217
anschließen ....................................... 217
AT-Befehlssatz ................................. 217
Handshake ........................................ 218
Hayes-Befehlssatz .......................... 217
Pulswahl ............................................ 218
Tonwahl ............................................. 218
modprobe, Linux-Befehl ................. 416
Modularisierung
Programme ..................................... 490
Modularisierung, Programme ........ 50
Modularität, von Unix ..................... 292
Modulo, Operator .............................. 481
Molenaar, Bram .................................. 424
Mongrel, Ruby-Webserver ........... 1022
Mongrel, Webserver ....................... 1029
Monitor ................................................... 165
Bildwiederholrate ........................... 165
Konfiguration, Mac OS X ........... 465
LCD ...................................................... 166
mehrere verwenden ...................... 164
Röhrenmonitor ............................... 165
Zeilenfrequenz ................................. 165
Monolithischer Kernel ..................... 299
Moore, Gordon ................................... 120
Mooresches Gesetz ........................... 120
more, Unix-Befehl ............................ 403
MosTek ..................................................... 43
MosTek 6502, Prozessor ................... 121
Motherboard � Mainboard
Motorola 68000, Prozessorfami-
lie .......................................................... 121
mount, Unix-Befehl ......................... 405
Mounten .............................................. 1140
Dateisystem ...................................... 317
Dateisystem, Unix ........................ 405
NFS-Freigabe ................................... 449
MouseListener .................................... 645
MouseMotionListener ..................... 645
MovableType, Blog-Tool ............... 1032
MOV-Befehl
beim virtuellen Prozessor .......... 105
x86-Assembler ................................ 126
move, Windows-Befehl .................... 347
MP3, Audio-Dateiformat ...... 891, 1140
MP4, Audio-Dateiformat ................ 892
MPEG ..................................................... 1140
Video-Dateiformat ....................... 892
MS Access, Datenbank ....................... 711
MS-DOS .................................................. 294
Kommandozeile ............................ 344
MS-DOS-Anwendung
unter Win32 ..................................... 330
MTU .............................................. 239, 1140
Multi Document Interface � MDI,
Windows-Anwendungen
Multicasting, IP-Protokoll ............... 228
MULTICS ................................................ 292
Multimedia-Datenbank ................... 701
Multipart-E-Mail ................................. 273
Multiplexer (Schaltung) .................... 89
Multiplikation, Operator ................. 481
Multiplikator
bei Rambus-RAM ........................... 129
der Taktfrequenz ............................ 122
Multisession-CD ................................. 156
Multitasking .............................. 302, 306
kooperatives ................................... 302
präemptives .................................... 302
Unterstützung durch CPU ........... 118
mv, Unix-Befehl ................................. 399
MVC-Entwurfsmuster .......... 685, 1016
MX-Record, BIND-Nameserver .... 803
my, Perl-Variablendeklaration ....... 517
my.cnf, MySQL-Konfigurationsdatei
741
MyISAM, MySQL-Tabellentyp ...... 730
MyISAM-Tabelle (MySQL) ............... 710
MySQL ..................................................... 714
Authentifizierung .......................... 733
Backup ............................................... 738
Backups automatisieren ............ 740
Benutzerrechte ................................ 735
Benutzerverwaltung ..................... 732
CREATE USER, Anweisung .......... 733
Datentypen ...................................... 721
DROP USER, Anweisung .............. 737
Export ................................................. 738
Export in Textdateien .................. 741
FLUSH PRIVILEGES, Anweisung
738
FLUSH TABLES, Anweisung ........ 739
GRANT, Anweisung ....................... 735
Import ................................................ 738
MySQL (Forts.)
Import aus Textdateien ............... 741
InnoDB-Tabelle .............................. 710
Installation, Unix ........................... 715
Installation, Windows .................. 716
JDBC-Anbindung ........................... 747
Konfiguration, Windows ............. 717
Konfigurationsdateien ................. 741
LOAD DATA INFILE, Anweisung
741
Log-Datei lesen ............................... 743
Log-Dateien ..................................... 742
my.cnf ................................................. 741
MyISAM-Tabelle ............................ 710
MySQL Administrator .................. 716
MySQL Query Browser ................. 716
mysqladmin, Hilfsprogramm 732
mysqlbinlog, Hilfsprogramm ... 743
mysqldump, Hilfsprogramm .... 738
mysqli, PHP-Schnittstelle ........ 1002
mysql-Kommandozeilen-Client
718
PHP-Zugriff auf .............................. 995
Replikation ....................................... 744
REVOKE, Anweisung ..................... 737
SET PASSWORD, Anweisung ...... 735
Sicherheitshinweise, Unix ........... 716
Sicherheitshinweise, Windows .
718
Tabellentypen ................................. 730
Testdatenbank ............................... 996
Transaktion ............................ 710, 730
MySQL Connector/J, JDBC-Schnitt-
stelle ................................................... 747
MySQL Grant Table ............................ 715
mysqladmin, Hilfsprogramm ....... 732
mysqlbinlog, Hilfsprogramm ....... 743
mysql-Client
nicht-interaktiver Betrieb ......... 740
mysqldump, Hilfsprogramm ........ 738
mysqli::real_escape_string(), PHP-
Methode ......................................... 1009
mysqli-Schnittstelle ....................... 1002
N
Nachrichtenübermittlung .............. 631
Nadeldrucker ........................................ 167
Namensraum
XML .................................................... 846
1193
Index
Nameserver
BIND ................................................... 797
Master ................................................ 264
Slave ................................................... 264
Namespace, PHP ................................ 989
NameVirtualHost, Apache-Direktive
780
Nassi-Shneiderman-Struktogramm
95
NAT ........................................................ 1140
NAT, IP-Protokoll ............................... 253
IP-Masquerading ........................... 253
nat, iptables-Tabelle ......................... 1125
Natürliche Zahl ..................................... 70
navigator, JavaScript-Objekt ....... 1064
ne, Perl-Operator ................................ 522
Nebenläufigkeit .................................. 584
Nessus .................................................... 1123
NET ......................................................... 1140
NET Framework ..................................... 52
NetBEUI ................................................ 1140
NetBEUI, Netzwerkprotokoll ......... 286
NetBIOS, Windows-Netzwerk ........ 286
Netbook .................................................. 114
netfilter, Linux-Kernel-Firewall 1124
Netscape-Palette ................................ 948
netstat, TCP/IP-Dienstprogramm
Routing-Tabellen anzeigen ....... 247
netstat, TCP/IP-Dienstprogramm 371
Network Address Translation (NAT)
253
Network File System � NFS
Netzplan ............................................... 664
kritischer Pfad ................................ 665
Netzwerk ................................................ 173
Anwendungsgebiete ..................... 174
ARCNet ............................................... 215
ATM ..................................................... 214
Client-Server .................................... 194
drahtloses ........................................ 209
Drucker freigeben, Windows ..... 373
Ethernet ............................................. 202
FDDI ..................................................... 215
Funktionsebene ............................... 181
GAN (Global Area Network) ....... 191
Geschichte ......................................... 175
Hardware ................................. 174, 201
IEEE-802-Standard ........................ 201
Klassifizierung ................................. 191
Konfiguration, Linux ................... 445
Konfiguration, Mac OS X ........... 467
Netzwerk (Forts.)
Konfiguration, Windows ............ 367
LAN (Local Area Network) .......... 191
Logical Link Control ..................... 182
lokales, Entwicklung ....................... 42
MAN (Metropolitan Area Network)
191
Media Access Control ................... 182
Netzwerkprogrammierung ........ 593
OSI-Referenzmodell ....................... 181
OSI-Schicht ....................................... 183
Peer-to-Peer ...................................... 194
Protokoll ................................... 174, 224
Reichweite ......................................... 191
TCP/IP-Protokoll ............................ 224
Token Ring ....................................... 208
Topologie .......................................... 193
Verkabelung ..................................... 174
WAN (Wide Area Network) ......... 191
Zentralisierungsgrad .................... 194
Zugang per Modem ...................... 217
Zugang über DSL ........................... 220
Zugang über ISDN ......................... 218
Netzwerkclient
Definition .......................................... 195
Netzwerke
Denial-of-Service-Angriff ........... 370
Schichtenmodell .............................. 181
Netzwerkhardware ............................. 201
Ethernet ............................................ 204
ISDN-Adapter .................................. 219
Modem ............................................... 217
Netzwerkprogrammierung ............ 593
Berkeley Socket API ....................... 593
IO::Socket ......................................... 599
sockaddr_in ..................................... 595
Socket ................................................. 593
Netzwerkprotokoll ............................. 174
AppleTalk ......................................... 282
IPX/SPX .............................................. 285
NetBEUI ............................................ 286
Netzwerkserver
Definition .......................................... 195
Netzwerktopologie ............................ 193
Baum .................................................. 193
Bus ....................................................... 193
logische .............................................. 193
physikalische ................................... 193
Ring ..................................................... 193
Stern .................................................... 193
Netzzugang, DDN-Modell-Schicht
185
Netzzugangsverfahren
CSMA/CA ........................................... 212
CSMA/CD .......................................... 203
IEEE-802-Standard ........................ 201
Token Passing ................................ 208
Neumann, John von ..................... 38, 113
Neuronales Netz ................................... 46
Neustart
Betriebssystem, Unix .................... 411
Windows .......................................... 340
new, Java-Operator ............................ 505
Newsfeed ............................................. 1032
Newsgroup ............................................ 276
Hierarchie ......................................... 277
NNTP-Protokoll .............................. 276
NeXT ........................................................ 453
NFS ................................................ 448, 1140
/etc/exports, Konfigurations-
datei ............................................... 448
auf andere Server zugreifen ..... 449
starten ............................................... 448
Verzeichnis freigeben .................. 448
NNTP ............................................ 276, 1140
Header ............................................... 277
Normalform, RDBMS ....................... 708
Normalisierung ................................ 1140
Normalisierung, RDBMS ................ 708
NOR-Schaltung ...................................... 87
NoSQL-Datenbank .................... 701, 750
NoSQL-Datenbanken ...................... 1140
Notebook ................................................ 114
NOT-Schaltung ...................................... 87
Novell NetWare ................................... 180
NSFNet ..................................................... 178
nslookup, TCP/IP-Dienstprogramm
371
NS-Record (DNS) ................................ 803
NTBA (ISDN-Endgerät) ..................... 219
NTFS, Dateisystem ............................. 334
Nucleus, Blog-Tool und CMS ....... 1032
Null
im Stellenwertsystem .................... 36
NULL, leerer C-Zeiger ....................... 498
NULL, SQL-Feldoption ...................... 724
Null-terminierter String ................. 494
Nyquist-Theorem ................... 1140, 1142
1194
Index
O
o, LDAP-Attribut ................................ 806
Obermenge ............................................. 70
echte ..................................................... 70
Object Database Management Group
� ODMG
Object Definition Language � ODL
Object Management Group (OMG)
677
Object Query Language � OQL
Object, Java-Klasse ............................ 506
objectClass (LDAP) ............................ 805
objectClass, LDAP-Attribut ............ 806
Objective-C, Programmier-
sprache .............................................. 456
Objekt ............................................... 52, 501
Objektorientierte Analyse .............. 667
Objektorientierte Datenbank 701, 711
Abfrage ............................................... 714
ODL ...................................................... 712
OQL ...................................................... 714
Objektorientiertes Datenbankverwal-
tungssystem � OODBMS
Objektorientierung .......... 52, 501, 1140
Eigenschaften ................................. 501
Elternklasse ..................................... 509
Ereignis ............................................... 631
im Software-Engineering .......... 660
Instanz ............................................... 501
Instanz erzeugen, Java ................ 505
Interface, Java ................................... 511
IS A-Beziehung ............................... 681
Java .................................................... 506
Kapselung .................................. 52, 501
Kindklasse ....................................... 509
Klasse ................................................. 501
Klassen ................................................. 52
Konstruktor ..................................... 507
Methode ............................................ 501
Nachricht ........................................... 631
Objekt ................................................. 501
Perl ...................................................... 599
PHP ..................................................... 977
Ruby .................................................... 546
Überladung ..................................... 508
Vererbung ................................. 52, 509
Observer, Entwurfsmuster ............ 689
ODBC ..................................................... 1140
ODBC, Microsoft-Datenbank-
schnittstelle .................................... 746
Oder-Schaltung � OR-Schaltung
Oder-Verknüpfung � OR-Verknüp-
fung
ODL ........................................................... 712
ODMG ..................................................... 712
OFDM, WLAN-Technik ....................... 211
OGG Vorbis, Audio-Dateiformat 892
Oktalsystem ............................................ 76
in dual umrechnen .......................... 79
Oktalzahl
C ........................................................... 480
OMG � Object Management Group
Onboard-Hardware ............................. 117
Onlinedienst ......................................... 178
Onlinedurchsuchung ....................... 1113
O-Notation .......................................... 1140
O-Notation (Komplexität) ............... 98
onreadystatechange, Ajax-Eigen-
schaft ............................................... 1083
OODBMS ................................................ 712
OOP � Objektorientierung
opacity (CSS3) ....................................... 961
Open Database Connectivity �
ODBC, Microsoft-Datenbanksc
open(), Ajax-Methode .................... 1082
open, Perl-Anweisung ...................... 526
opendir, Perl-Anweisung ................. 527
OpenGL, 3D-Grafikbibliothek ........ 455
OpenOffice.org Base, Datenbank 711
OpenSSH ............................................... 266
openSUSE, Linux-Distribution ...... 377
Operator ....................................... 482, 483
-- ........................................................... 484
! ............................................................ 482
!= .......................................................... 483
!~ ........................................................... 581
$, RegExp .......................................... 580
& .......................................................... 492
&&, C ................................................... 481
&&, Perl .............................................. 524
&, C ..................................................... 482
*, RegExp ............................................ 578
++ ........................................................ 484
+, Java-String-Verkettung 504, 505
+, RegExp ........................................... 578
-, C ....................................................... 495
., Perl .................................................... 523
= ........................................................... 483
Operator (Forts.)
== ......................................................... 483
=~ .......................................................... 581
=~, Perl ................................................ 527
? ............................................................ 484
?, RegExp ........................................... 578
^, C ....................................................... 482
^, RegExp ................................. 578, 580
`` ........................................................... 586
| ............................................................. 482
|, RegExp ........................................... 580
|| ............................................................ 481
~ ............................................................ 482
arithmetischer ................................ 481
Backticks ........................................... 586
Bit-Komplement ............................ 482
Bit-Verschiebung, links ............... 482
Bit-Verschiebung, rechts ............. 482
bitweise ............................................. 482
bitweises exklusives Oder .......... 482
eq, Perl ............................................... 522
Fallunterscheidungs- ................... 484
ge, Perl ............................................... 523
Gleichheit ......................................... 483
größer oder gleich ......................... 483
gt, Perl ................................................ 522
in C ...................................................... 481
in der PowerShell ........................... 349
kleiner als ......................................... 483
kleiner oder gleich ......................... 483
le, Perl ................................................. 523
logischer ............................................ 481
logisches Oder ................................ 481
logisches Und .................................. 481
lt, Perl ................................................. 522
m// ....................................................... 581
Menge .................................................. 69
ne, Perl ............................................... 522
Perl ....................................................... 521
PHP .................................................... 966
Post-Dekrement ............................. 484
Post-Inkrement .............................. 484
Prä-Dekrement ............................... 484
Prä-Inkrement ................................ 484
Rangfolge ......................................... 484
Rangfolge durch Klammern
ändern ......................................... 485
s/// ...................................................... 582
s///, Perl ............................................. 527
String-Vergleiche, Perl ................. 522
1195
Index
String-Verkettung, Java .... 504, 505
tr/// ..................................................... 583
Ungleichheit .................................... 483
Vergleichs- ................................. 67, 482
Wertzuweisung .............................. 483
Operatoren
- ............................................................. 481
% ........................................................... 481
* ............................................................ 481
+ ............................................................ 481
/ ............................................................ 481
Addition ............................................ 481
bitweises Oder ................................ 482
bitweises Und .................................. 482
Division ............................................. 481
größer als .......................................... 483
logisches Nicht ............................... 482
Modulo .............................................. 481
Multiplikation ................................ 481
Subtraktion ...................................... 481
opt, Unix-Verzeichnis ....................... 315
Option
bei Systemprogrammen ............. 386
Options, Apache-Direktive ............ 780
Optischer Datenträger ..................... 146
OQL ........................................................... 714
Oracle, Datenbank .............................. 711
Orange Book ...................................... 1140
Orange Book (CD-R, CD-RW) ........... 155
ORDER BY, SQL-Klausel .................... 727
Order, Apache-Direktive .................. 781
Ordnungsdaten ................................. 700
org.w3c.dom.*, Java-Package ......... 866
org.xml.sax.*, Java-Package ............ 858
Organisationseinheit (LDAP) ....... 804
OR-Schaltung ......................................... 88
Aufbau mit Transistoren .............. 88
mit einfachen Mitteln
nachbauen .................................... 86
OR-Verknüpfung .................................. 63
OS/2, Betriebssystem ....................... 295
OSI-Referenzmodell ................ 181, 1140
Anwendungsschicht ...................... 183
Bitübertragungsschicht ............... 182
Darstellungsschicht ....................... 183
Kommunikationssteuerungs-
schicht ............................................ 183
Netzwerkschicht ............................. 183
Präsentationsschicht .................... 183
Sicherungsschicht .......................... 182
Sitzungsschicht ............................... 183
OSI-Referenzmodell (Forts.)
Transportschicht ............................ 183
Vergleich mit der Praxis .............. 184
Vergleich zum Internet-Schichten-
modell ............................................ 184
OSPF ....................................................... 1140
OSPF, Routing-Protokoll ................. 250
ou-Knoten (LDAP) ............................. 804
OUTPUT, iptables-Chain ................. 1125
Outsourcing (Computertech-
nik) ...................................................... 180
Overclocking � Übertakten
P
Paar, Extreme Programming ......... 675
PaaS (Platform as a Service) ......... 1033
Packet Switching ................................. 174
padding, CSS-Angabe ........................ 951
Page Fault (Speicher) ......................... 312
Page File (Auslagerungsdatei) ....... 312
Pager (seitenweise anzeigen, Unix)
403
Paging (Speicher) ........................ 120, 311
paint(), AWT-Methode ..................... 632
Paketfilter
iptables ............................................ 1124
netfilter ............................................ 1124
Paketmanager
Linux ................................................... 415
Paketvermittlung ............................... 174
Panel, AWT-Klasse .................... 632, 642
papaya CMS ........................................ 1031
Papierkorb
Mac OS X ......................................... 460
Parallele Datenübertragung ........... 135
Parallelport ........................................... 144
Parallels Desktop ................................ 322
Parameter
bei Systemprogrammen ............. 386
von Perl-Subroutinen ................... 525
PARC, XEROX-Forschungszentrum
295
parent, PHP-Schlüsselwort ............ 987
Parent-Prozess ......................... 308, 1140
Parity-Bit � Prüfbit
parseFloat(), JavaScript-Methode
1042
parseInt(), Java-Methode ................ 564
parseInt(), JavaScript-Methode 1042
Partition
erweiterte ......................................... 150
logische ............................................. 150
primäre .............................................. 149
Partitionierung ................................. 1140
praktische Durchführung ........... 151
Partitionierung (Festplatte) ........... 148
Partitionstabelle ................................. 149
Partitionstypen ................................... 150
Pascal, Blaise .......................................... 36
Pascal, Programmiersprache ........... 50
passwd, Unix-Befehl ........................ 409
Passwort ............................................... 1124
Brute-Force-Attacke ..................... 383
crack (Knackprogramm) ............ 382
Erzeugungstipps ............................ 382
Passwort, ändern, Unix .................. 409
Patch
Sicherheit ......................................... 1110
patch, Unix-Befehl ............................ 405
path, Umgebungsvariable
Windows ........................................... 346
PATH, Umgebungsvariable (Unix)
387
pause(), Unix-Systemaufruf .......... 308
PC ................................................................ 43
Aufbau ................................................ 114
Desktop .............................................. 114
Geschichte ........................................ 294
Kompaktrechner ............................. 114
Laptop ................................................. 114
Netbook .............................................. 114
Notebook ........................................... 114
Varianten .......................................... 113
Zentraleinheit .................................. 116
PC-Card � PCMCIA-Anschluss
PCDATA, Text in XML ...................... 830
PCI ................................................. 140, 1140
PCMCIA-Anschluss ............................ 140
PC-Netzwerk
Entwicklung ..................................... 180
PDA (Personal Digital Assistent) .... 46
PDF .......................................................... 1141
PDP, Kleincomputerserie von DEC
292
PDP, Kleinrechnerserie von DEC 40,
50
Pentium, Prozessorfamilie ...... 117, 123
people, LDAP-Organisationseinheit
805
1196
Index
Peripherie
Ausgabegerät ................................... 163
Digitalkamera ................................ 162
Drucker ............................................... 167
Eingabegerät ................................... 160
Einsteckkarte ................................... 140
Grafikkarte ........................................ 163
Maus .................................................... 161
Monitor .............................................. 165
Scanner ............................................... 161
Tastatur ............................................ 160
Übersicht ........................................... 145
Perl, Programmiersprache .... 514, 1141
!~-Operator ....................................... 581
$ .................................................... 516, 518
$/-Variable ....................................... 872
$_ .......................................................... 519
$-Operator, RegExp ..................... 580
% ............................................................ 518
&&-Operator ................................... 524
*-Operator, RegExp ....................... 578
+-Operator, RegExp ...................... 578
.-Operator ......................................... 523
//-Operator ....................................... 581
=~ .......................................................... 527
=~-Operator ...................................... 581
?-Operator ........................................ 578
@ ........................................................... 518
@_ ........................................................ 525
^-Operator, RegExp ............. 578, 580
|| zur Fallunterscheidung ........... 523
||-Operator ....................................... 523
|-Operator, RegExp ...................... 580
accept()-Funktion .......................... 598
ActivePerl-Distribution ................ 515
alternative Zeichen in RegExp 578
Anführungszeichen ...................... 522
Array ................................................... 518
Array-Elementanzahl .................. 565
Arrays zusammenfassen ............. 519
Ausdruck ............................................ 521
Ausgabe ............................................. 516
Autoflush-Modus .......................... 597
Backticks ........................................... 586
bind()-Funktion .............................. 598
chomp-Funktion ............................. 516
close .................................................... 526
closedir ............................................... 527
connect()-Funktion ....................... 597
Datei bearbeiten ............................ 526
Dateihandle ..................................... 526
Perl, Programmiersprache (Forts.)
defined ............................................... 524
Dereferenzierung ........................... 521
die, Programmabbruch ............... 524
Eingabe .............................................. 516
elsif ...................................................... 524
eq-Operator ...................................... 522
ersetzen durch RegExp ................ 582
foreach-Schleife .............................. 519
ge-Operator ...................................... 523
gethostbyname()-Funktion ........ 595
getprotobyname()-Funktion .... 594
getservbyname()-Funktion ....... 596
gt-Operator ...................................... 522
Hash .................................................... 518
HIER-Dokumente ........................... 523
if, nachgestelltes ............................. 524
IO ................................................ 597, 599
join ....................................................... 519
keys ..................................................... 520
Kommentar ...................................... 521
le-Operator ....................................... 523
Liste ..................................................... 518
listen()-Funktion ............................ 598
Listenfunktionen ............................ 518
Literal ................................................. 521
lt-Operator ....................................... 522
m//-Operator .................................. 577
my ......................................................... 517
ne-Operator ..................................... 522
Objektorientierung ...................... 599
open .................................................... 526
opendir ............................................... 527
Operator ............................................ 521
Operatoren ....................................... 516
Parameter von Subroutinen ...... 525
Pipe verwenden .............................. 587
pipe() .................................................. 588
pop ....................................................... 518
print-Anweisung ............................ 516
Programm starten .......................... 515
Programmabbruch ....................... 524
push ..................................................... 518
q// ........................................................ 522
qq// ...................................................... 522
Queue .................................................. 571
qw// ..................................................... 522
readdir ................................................ 527
Referenz ............................................ 520
regulärer Ausdruck .............. 527, 576
s///-Operator .................. 527, 577, 582
Perl, Programmiersprache (Forts.)
Shebang ............................................. 515
shift ...................................................... 518
Skalar ......................................... 516, 518
Socket-Modul .................................. 594
split ...................................................... 519
Stack .................................................... 571
strenge Wertüberprüfung ........... 517
strict ..................................................... 517
String zerlegen ................................. 519
String-Vergleich ............................. 522
String-Verkettung ......................... 523
sub ........................................................ 525
Subroutine ........................................ 525
tr///-Operator ................................. 583
unless ................................................. 524
unshift ................................................. 518
use-Direktive .................................... 517
Variable .............................................. 517
Variablenexistenz prüfen ........... 524
Variablensubstitution .................. 516
Verzeichnis verarbeiten ............... 527
-w, Modifikator ............................... 515
Warnungen aktivieren ................. 515
Zeichengruppe in RegExp .......... 578
Zeilenumbruch ............................... 872
Zeilenumbrüche entfernen ......... 516
Perl-Anweisung .................................. 524
Permutation
Algorithmus ...................................... 98
person, LDAP-Objektklasse ........... 805
Personal Computer � PC
Personal Digital Assistant (PDA) .... 46
Petabyte ................................................... 82
Pfad
absoluter ................................... 316, 319
in HTML-Hyperlink ........................ 915
relativer ..................................... 316, 319
unter Unix ......................................... 315
unter Windows ................................ 318
PGP ............................................... 1130, 1141
Phishing ....................................... 1116, 1141
PHP ................................................ 963, 1141
$, Variablenbeginn ........................ 965
__call(), magische Methode ..... 988
__get(), magische Methode ...... 988
__isset(), magische Methode ... 988
__set(), magische Methode ...... 988
__toString(), magische Methode
978
Ajax-Antwort durch .................. 1086
1197
Index
PHP (Forts.)
Anführungszeichen ..................... 968
Array .................................................. 966
Array als Hash ................................ 967
Array, mehrdimensionales ....... 970
Attribut, statisches ....................... 983
Autoloader ...................................... 989
Bezeichner ........................................ 965
Call by Reference ........................... 974
Cookie ............................................... 994
count()-Funktion .......................... 968
Datei-Upload .................................. 991
Datenbank-Escaping ................ 1009
Datenbankzugriff .......................... 995
Datentyp testen ............................. 977
Docblock-Kommentar ................. 972
Dokumentaufbau ........................ 964
each()-Funktion ............................. 969
Elternklasse ansprechen ............. 987
Escaping der Ausgabe ................. 979
explode()-Funktion ...................... 969
extends, Schlüsselwort ............... 984
function, Schlüsselwort ............... 972
Funktion ............................................ 972
Funktionsparameter .................... 973
Funktionswertrückgabe ............. 975
global ................................................. 973
globale Variable ............................. 973
htmlspecialchars(), Funktion 979
implode()-Funktion ..................... 970
include()-Funktion ....................... 988
include_once()-Funktion ........... 988
Include-Datei ................................. 988
Installation ...................................... 789
is_array()-Funktion ...................... 977
is_float()-Funktion ........................ 977
is_int()-Funktion ............................ 977
is_null()-Funktion ......................... 977
is_numeric()-Funktion ................ 977
is_string()-Funktion ..................... 977
isset()-Funktion .............................. 977
json_encode(), Funktion .......... 1098
Kommentar ...................................... 971
Konstruktor .................................... 980
magische Methode ............. 978, 988
mehrdimensionales Array ........ 970
Mock-Objekt für Unit-Tests ..... 1012
mysqli-Schnittstelle ................... 1002
Namespace ..................................... 989
Objektorientierung ....................... 977
Operator .......................................... 966
PHP (Forts.)
parent, Schlüsselwort .................. 987
php.ini, Konfigurationsdatei ..... 793
preg_match()-Funktion .............. 970
preg_replace()-Funktion ............. 971
Referenz ............................................ 974
regulärer Ausdruck ...................... 970
require_once()-Funktion ............ 988
return-Anweisung ......................... 975
Session ............................................... 993
sizeof()-Funktion ........................... 968
Sprachgrundlagen ........................ 965
static, Schlüsselwort .................... 983
statische Methode ........................ 983
str_replace(), Funktion .............. 990
String zerlegen ............................... 969
strip_tags(), Funktion ................. 979
Type Hint .......................................... 983
Unit-Test ........................................ 1009
unset()-Funktion ............................ 977
Variable ............................................ 965
Vererbung ........................................ 984
webspezifische Funktionen ...... 990
php.ini, Konfigurationsdatei ......... 793
PHPDocumentor ................................ 972
phpdox ................................................... 972
PHPUnit ................................................ 1141
Mock-Objekt .................................. 1012
PHPUnit, Test-Framework .......... 1009
PICT, Bilddateiformat ..................... 890
PID (Prozess-ID) .................................. 307
ping, TCP/IP-Dienstprogramm .... 369
Ergebnisse auswerten ................. 370
Pipe .......................................................... 1141
Anwendung ...................................... 587
in Programmiersprachen .......... 584
in Unix-Shell .................................... 395
Perl ....................................................... 587
Windows ............................................ 345
zur Inter-Prozess-Kommunikation
309
pipe(), Perl-Funktion ........................ 588
Pipeline (CPU-Warteschlange) ...... 123
Pixelgrafik ............................................... 55
PKZIP-Dateien � ZIP-Datei
Plankalkül, Programmiersprache 37
Planung, Software-Engineering 662
Platform as a Service ...................... 1033
Platzhalter
in Unix-Dateinamen .................... 398
Windows-Dateiname ................... 345
Plug & Play ................................... 139, 1141
Pluralisierung
Ruby on Rails ................................ 1019
PNG, Bilddateiformat ...................... 890
Point ....................................................... 1141
Polymorpher Virus .......................... 1108
Polynomielle Komplexität ............... 99
pop, Perl-Anweisung ......................... 518
POP3 ............................................... 275, 1141
Befehle ............................................... 276
Sitzung ............................................... 275
Port
TCP ...................................................... 257
Port, UDP ............................................... 259
position, CSS-Angabe ....................... 953
POSIX ..................................................... 1141
posixAccount, LDAP-Objektklas-
se ......................................................... 805
POSIX-Standard .................................. 293
POST ......................................................... 131
POST (BIOS-Selbsttest) ...................... 131
POST, HTTP-Befehl ........................... 280
POST, HTTP-Methode
zum HTML-Formular-
versand ........................................ 930
Post-Dekrement ................................. 484
PostgreSQL ............................................ 711
Post-Inkrement ................................... 484
POSTROUTING, iptables-chain .... 1125
PostScript ........................... 169, 882, 1141
EPS ....................................................... 883
PPD ...................................................... 883
Power Management ........................... 133
Power-on Self Test � POST
PowerPC, Prozessor ............................ 121
PowerShell ............................................ 347
Benutzereingabe ............................ 353
Cmdlets ............................................. 348
Datentypen ...................................... 354
Fallentscheidung ........................... 353
Get-Alias, Cmdlet ........................... 348
Get-ChildItem, Cmdlet ................. 348
Get-Command, Cmdlet ............... 348
Kontrollstruktur ............................ 353
Operator ........................................... 349
Read-Host, Cmdlet ........................ 353
Schleife ................................................ 355
Skriptdatei ........................................ 356
Variable ............................................. 352
Write-Host, Cmdlet ....................... 352
1198
Index
PPD, Druckerbeschreibungs-
datei .................................................... 883
PPP .......................................................... 1141
PPP-Protokoll, DFÜ ............................ 216
Prä-Dekrement ................................... 484
Prädikatenlogik ..................... 53, 59, 1141
Präemptives Multitasking .............. 302
Prä-Inkrement ..................................... 484
Praktische Informatik ........................ 26
Präprozessor, C ................................... 498
#define ............................................. 499
#endif ................................................ 499
#ifdef ................................................. 499
#include ................................... 475, 498
Präsentation, OSI-Schicht ................ 183
preg_match(), PHP-Funktion ....... 970
preg_replace(), PHP-Funktion ....... 971
PREROUTING, iptables-Chain ...... 1124
Primäre Partition ............................... 149
Primärschlüssel ........................ 704, 1141
einrichten, SQL ............................... 724
PRIMARY KEY, SQL-Feldoption .... 724
print(), Java-Methode ...................... 504
print, Perl-Anweisung ....................... 516
printf(), C-Funktion ................. 476, 496
Formatangabe ................................ 476
println(), Java-Methode ................... 503
Printserver ............................................ 196
private, Java-Kapselung ................... 507
Problemorientierte Programmier-
sprache ................................................ 48
Programmablaufplan ......................... 95
Programmgesteuerter Rechenauto-
mat ........................................................ 34
Programmiersprach
PHP ..................................................... 963
Programmiersprache ......................... 46
Ada ........................................................ 36
Algorithmus ..................................... 561
Anweisungsblock .......................... 485
Assembler ........................................... 47
BASIC .................................................... 49
Baum, Datenstruktur ................... 574
binäre Suche .................................... 570
C ........................................... 50, 292, 472
C# ........................................................... 52
C++ ......................................................... 52
Clojure .................................................. 53
Cobol .................................................... 49
Compiler ..................................... 48, 127
Datenstruktur .................................. 561
Programmiersprache (Forts.)
Datenstrukturen ............................. 571
deklarative ......................................... 53
Erlang ................................................... 53
Fortran ................................................ 49
Funktion ............................................. 50
funktionale ......................................... 53
GUI-Programmierung ................. 630
imperative ......................................... 50
Interpreter ................................. 49, 514
Iteration ............................................ 567
Java ............................................... 52, 499
Kontrollstrukturen, C .................. 485
lineare Suche .................................. 569
LISP ............................................... 53, 439
logische ................................................ 52
Logo ...................................................... 53
Maschinensprache .......................... 47
mit Datenbanken arbeiten ....... 746
Modularisierung ................... 50, 490
Objective-C ...................................... 456
objektorientierte .............................. 52
Objektorientierung ....................... 501
Pascal .................................................. 50
Perl ....................................................... 514
Pipe ..................................................... 584
Plankalkül ........................................... 37
problemorientierte .......................... 48
Prolog ................................................... 53
prozedurale ....................................... 50
Rekursion ......................................... 566
Scala ...................................................... 53
Skriptsprachen ......................... 49, 514
Smalltalk ............................................. 52
Sortier-Algorithmus ..................... 564
Strukturierung ....................... 50, 490
Such-Algorithmus ......................... 569
Systemaufruf .......................... 127, 584
Thread ............................................... 589
Turing-Vollständigkeit ................ 103
Unicode-Unterstützung ............. 878
Programmiersprachen
Prozedur ............................................. 50
Programmstrukturierung ................ 50
Projektmanagement ........................ 662
Netzplan ........................................... 664
Prolog, Programmiersprache .......... 53
PROM ...................................................... 130
Prompt ................................................... 1141
Unix .................................................... 384
prompt(), JavaScript-Methode 1040
protected, Java-Kapselung ............. 509
Prototype, Ajax-Bibliothek ......... 1099
Prototype, Entwurfsmuster ........... 687
Proxy, Entwurfsmuster .................. 688
Prozedur .................................................. 50
Prozedurale Programmiersprache 50
Prozess
als Baum anzeigen, Unix .......... 409
Benutzermodus .............................. 307
Child-Prozess .................................. 308
Definition ......................................... 307
duplizierter ...................................... 584
im Benutzermodus ...................... 300
in den Hintergrund stellen ........ 385
init ....................................................... 307
Kernelmodus ................................... 307
Kommunikation ........................... 309
Management durch
Betriebssystem ......................... 289
Multitasking ................................... 306
Parent-Prozess ............................... 308
Prozess-ID (PID) ............................. 307
Race Condition ............................... 310
Signalverarbeitung ...................... 308
Threads als Alternative ............... 310
unter Unix ........................................ 307
Unterstützung durch CPU 118, 125
Verwaltung durch Betriebssystem
306
Verwaltung, Unix ......................... 409
Windows .......................................... 309
Prozessanalyse .................................... 667
Prozesse ................................................ 1141
Deadlock ........................................... 310
im Kernelmodus ........................... 300
Prozess-ID ............................................. 307
Prozessmanagement ........................ 289
Prozessor ......................................... 38, 116
3D Now! .............................................. 123
Adressbus-Wortbreite ................... 121
Alpha ........................................... 121, 124
als Bauteil .......................................... 117
ALU ...................................................... 118
AMD ..................................................... 117
Arbeitsweise ..................................... 124
Architektur ........................................ 123
Athlon ......................................... 117, 123
Aufbau ................................................ 117
bedingter Sprung ............................ 125
Befehlstabelle ................................... 119
Befehlszeiger .................................... 118
1199
Index
Prozessor (Forts.)
Bestandteile ...................................... 118
Bus ........................................................ 119
Cache ................................................... 119
CISC ...................................................... 123
Datenbus-Wortbreite .................... 121
der Grafikkarte ................................ 163
Effizienz .............................................. 122
FLOPS .................................................. 123
Intel ...................................................... 117
Itanium .............................................. 121
Maschinenbefehle ......................... 126
MIPS ..................................................... 124
MIPS (Geschwindigkeitsangabe)
122
MMX .................................................... 123
Mooresches Gesetz ....................... 120
MosTek 6502 .................................... 121
Motorola-68000-Familie ............ 121
Pentium-Familie ..................... 117, 123
Pipeline ............................................... 123
PowerPC ............................................. 121
Prozesse .............................................. 125
Register ............................................... 118
Registerwortbreite ......................... 121
RISC ...................................................... 123
Sprungbefehl .................................... 125
Stack .................................................... 125
Steuerbus-Wortbreite ................... 121
Steuerwerk ........................................ 118
Sun SPARC ......................................... 124
Taktfrequenz .................................... 122
übertakten ........................................ 122
unbedingter Sprung ...................... 125
Unterprogramm-Aufruf .............. 125
virtueller ........................................... 103
Wortbreite ........................................ 120
Wortbreiten-Vergleich .................. 121
Z80 ....................................................... 121
Prozessorarchitektur ......................... 123
Prozessverwaltung ........................... 306
Prüfbit ...................................................... 136
Prüfung
IT-Berufe ............................................. 30
ps, Unix-Befehl ......................... 309, 409
PS/2-Anschluss ..................................... 143
PSD, Bilddateiformat ........................ 887
Pseudocode, zur Algorithmendarstel-
lung ....................................................... 95
pstree, Unix-Befehl ........................... 409
PTR-Record (DNS) ............................. 802
public, Java-Kapselung ........... 503, 508
Public-Key-Verschlüsselung ........ 1129
Pulswahlverfahren ............................. 218
Punkt ...................................................... 1141
push, Perl-Anweisung ....................... 518
push, Ruby-Methode ......................... 535
puts(), C-Funktion .................... 476, 496
pwd, Unix-Befehl .............................. 400
Q
q//, Perl-Quoting ................................ 522
QBit ........................................................... 46
qq//, Perl-Quoting .............................. 522
Qt, Grafikbibliothek .................. 441, 442
Quadratische Gleichung .................... 74
Quadratische Komplexität .............. 99
Qualitätsmanagement .................... 663
Quantencomputer .............................. 46
Quantifizierer (RegExp) ................... 578
Quartz, Grafikbibliothek .................. 455
Queue ..................................................... 1141
Queue, Datenstruktur ....................... 571
Perl ........................................................ 571
QUEUE, iptables-Regel ..................... 1125
QuickEdit-Modus, Windows-Eingabe-
aufforderung ................................... 345
QuickSort .............................................. 1141
QuickSort, Algorithmus ................... 567
Funktionsprinzip ............................ 567
Median ............................................... 567
QuickTime, Multimedia-Technologie
456
QuickTime, Video-Dateiformat ... 892
Quoting-Operatoren, Ruby ............ 533
qw//, Perl-Quoting ............................. 522
R
Race Condition .......................... 310, 1141
Rackspace Cloud Services ............. 1033
radio_button, Rails-Methode ..... 1028
RAID ................................................ 151, 1141
Advanced Data Guarding .......... 152
Levels ................................................... 151
Mirroring ............................................ 151
Stripe Set ............................................ 151
Stripe Set mit Parity ....................... 151
RAID 0 ...................................................... 151
RAID 01 .................................................... 152
RAID 1 ....................................................... 151
RAID 10 .................................................... 152
RAID 5 ...................................................... 151
RAID 6 ...................................................... 152
Rails ........................................................ 1141
Rails � Ruby on Rails
rails, Generator ................................. 1017
RAILS_ENV, Umgebungsvariable
1018
rake, Ruby-Automatisierung ....... 1021
RAM .................................................. 116, 127
als Bauteil .......................................... 127
Auslagerungsdatei ......................... 312
Bedeutung in der Speicher-
hierarchie ..................................... 120
CMOS ................................................... 132
DDR-RAM .......................................... 128
der Grafikkarte ............................... 163
DIMM-Module ................................. 128
dynamic ............................................. 128
EDO ...................................................... 128
einbauen ............................................ 128
empfohlene Menge ....................... 129
FP .......................................................... 128
Paging ................................................. 311
Rambus ............................................. 129
RD-RAM ............................................. 129
RIMM-Modul ................................... 129
SD-RAM ............................................. 129
Segmentierung ................................ 311
Seitenfehler ....................................... 312
SIMM-Module .................................. 128
static .................................................... 128
Verwaltung durch das Betriebs-
system ............................................ 311
virtuelle Adressierung .................. 311
Rambus-RAM ....................................... 129
RAMDAC (Grafikkarte) ...................... 165
Random Access Memory � RAM
Rangfolge
durch Klammern ändern ............ 485
Operatoren ...................................... 484
Rational Unified Process ................. 673
Rationale Zahl ......................................... 71
Raumfolgearithmetik ......................... 83
rd � rmdir, Windows-Befehl
RDBMS ................................................... 1141
RDBMS � Relationale Datenbank
RD-RAM ................................................. 129
readdir, Perl-Anweisung ................. 527
1200
Index
Read-Host, PowerShell-Cmdlet .... 353
readLine(), Java-Methode ............... 504
Read-only Memory � ROM
readyState, Ajax-Eigenschaft ....... 1083
REAL, SQL-Datentyp .......................... 722
Rechenautomat .................................... 34
Rechenbefehl
des virtuellen Prozessors ............ 105
Rechendaten ....................................... 700
Rechenmaschine
mechanische ..................................... 36
Rechentafel .............................................. 35
Rechenwerk ........................................... 113
Record � Datensatz
Red Book (Audio-CD) ......................... 155
Red, Green, Refactor (TDD) ............ 696
Redirect, Apache-Direktive ............. 781
redirect_to, Rails-Methode .......... 1024
Reelle Zahl ................................................ 71
Referenz
auflösen, Perl ................................... 521
Perl ...................................................... 520
regedit, Windows-Dienstprogramm
365
RegExp � Regulärer Ausdruck
Regionale Einstellungen
Mac OS X .......................................... 465
Register ................................................. 1141
der CPU ............................................... 118
des virtuellen Prozessors ............ 104
Wortbreite ......................................... 121
Register (Schaltung) ............................ 93
Registermaschine ..................... 103, 1141
Registrierdatenbank � Registry, Win-
dows
Registry, Windows ............................. 365
Regulärer Ausdruck ................. 576, 1141
!~, Operator ...................................... 581
=~, Perl-Operator ............................ 581
Alternative Textteile ................... 580
alternative Zeichen ....................... 578
beliebig viele Zeichen ................... 578
ein oder mehr Zeichen ................. 578
ersetzen ............................................. 582
Escape-Sequenz .............................. 579
grep .................................................... 403
Groß- und Kleinschreibung igno-
rieren ............................................ 580
in PHP ............................................... 970
JavaScript ...................................... 1050
Klammern ....................................... 580
Regulärer Ausdruck (Forts.)
Leerzeichen ....................................... 579
m//, Operator .................................. 581
m//-Operator .................................. 577
Matching ........................................... 581
mehrere Treffer finden ................ 580
Modifikator ..................................... 580
Muster ................................................ 577
optionale Zeichen .......................... 578
Perl .............................................. 527, 576
Quantifizierer .................................. 578
s///-Operator .......................... 577, 582
Sonderzeichen ................................. 579
Teilausdruck ................................... 580
Whitespace ....................................... 579
Wortgrenze ....................................... 579
Wortzeichen ..................................... 579
Zeichen ausschließen ................... 578
Zeichenanzahl ................................. 579
Zeichengruppe ................................ 578
Zeilenanfang ................................... 580
Zeilenende ........................................ 580
Ziffer .................................................... 579
Regulärer Ausdrucke
in Ruby ............................................... 583
REJECT, iptables-Regel ..................... 1125
Rekursion ................................... 566, 1142
Relais ......................................................... 37
Relation
im RDBMS ........................................ 704
Relationale Algebra ........................... 704
Relationale Datenbank 700, 703, 1142
1:1-Beziehung .................................. 704
1:n-Beziehung ................................. 704
Access .................................................. 711
Änderungsabfrage ........................ 719
Arten .................................................... 711
atomare Information .................. 708
Auswahlabfrage .................... 707, 719
Boyce-Codd-Normalform .......... 708
Desktopdatenbank ......................... 711
Einfügeabfrage ............................... 719
FileMaker ........................................... 711
freier Server ....................................... 711
Fremdschlüssel .............................. 704
Grenzen ............................................... 711
Index .................................................. 704
Java-Programmierung ............... 746
JDBC ................................................... 746
kommerzieller Server .................... 711
Konsistenz ....................................... 703
Relationale Datenbank (Forts.)
Löschabfrage .................................... 719
m:n-Beziehung ............................... 705
MySQL ................................................. 714
Normalform ................................... 708
Normalisierung ............................. 708
ODBC .................................................. 746
OpenOffice.org Base ...................... 711
PostgreSQL ........................................ 711
Primärschlüssel ............................. 704
Primärschlüssel einrichten,
SQL ................................................. 724
Programmierung .......................... 746
Relation ............................................ 704
Schlüssel ........................................... 704
SQL ............................................. 708, 719
Tabelle erzeugen, SQL .................. 720
Tabelle löschen, SQL ...................... 721
Relationale Datenbank, Join-Abhän-
gigkeit ................................................ 710
Relativer Pfad .............................. 316, 319
Remote Method Invocation � RMI,
Java
rename, Windows-Befehl ............... 347
repaint(), AWT-Methode ................. 641
Replikation ............................................ 176
MySQL ................................................ 744
Request For Comments � RFC
Require, Apache-Direktive .... 776, 782
require_once(), PHP-Funktion ..... 988
RequireAll, Apache-Direktive ........ 782
RequireAny, Apache-Direktive ..... 782
RequireNone, Apache-Direktive 782
Resource Fork, HFS ........................... 466
Creator ID ........................................ 466
File Type ID ..................................... 466
responseText, Ajax-Eigenschaft
1085
responseXML, Ajax-Eigenschaft
1089, 1092
Ressource
Hardware- ......................................... 138
Plug & Play ...................................... 139
Zuweisung ........................................ 139
Ressourcenmanagement ................ 663
REST ........................................................ 1142
ResultSet, JDBC-Klasse ..................... 748
return, C-Anweisung .............. 476, 490
RETURN, iptables-Regel .................. 1125
REVOKE, MySQL-Anweisung .......... 737
1201
Index
RFC .................................................. 177, 1142
1034 und 1035, DNS ....................... 261
1300 ..................................................... 177
1723, RIP-2 ......................................... 250
1738, URL ........................................... 279
1918, private IP-Adressen ............ 230
2045 bis 2049, MIME .................... 272
2060, IMAP ...................................... 276
2131 und 2123, DHCP ..................... 252
2178, OSPF ......................................... 250
2324, HTCPCP ................................... 177
2460, IPv6 ........................................ 240
2616, HTTP ........................................ 278
2821, SMTP (Neufassung) ............ 270
2822, Textnachricht ...................... 272
3330, Spezial-IP-Adressen .......... 230
768, UDP ............................................. 255
791, IP-Protokoll ............................. 226
793, TCP ............................................. 254
821, SMTP .......................................... 270
822, Textnachricht ........................ 272
854, Telnet ........................................ 266
959, FTP ............................................. 267
977, NNTP ......................................... 276
RGB-Farbe ............................................... 56
Rhapsody (Mac OS X) ........................ 453
RIMM-Modul (RAM) .......................... 129
Ring-Topologie, Netzwerk ............... 193
RIP ........................................................... 1142
RIP, Routing-Protokoll ..................... 249
RISC ......................................................... 1142
RISC-Prozessor ..................................... 123
Beispiele ............................................. 124
Risikomanagement .......................... 664
Ritchie, Dennis .................... 50, 292, 473
rm, Unix-Befehl .................................. 399
rmdir, Unix-Befehl ........................... 400
rmdir, Windows-Befehl ................... 347
RMI (Remote Method Invocati-
on) ...................................................... 1142
RMI, Java ................................................ 622
robots.txt, Suchmaschinen-
Info ...................................................... 943
Röhrenmonitor ................................... 165
Röhrenrechner ....................................... 37
Rollback (Transaktionen) ................ 710
ROLLBACK, SQL-Anweisung ........... 731
Rollover-Effekt
JavaScript ....................................... 1057
praktische JavaScript-
Lösung ........................................ 1059
ROM ................................................. 116, 130
Bauarten ........................................... 130
Bedeutung ........................................ 116
bei 8-Bit-Homecomputern ......... 116
BIOS ..................................................... 130
Römische Zahl ....................................... 75
root, Benutzer ..................................... 309
Home-Verzeichnis ......................... 315
temporär arbeiten als ................. 390
root, Unix-Benutzer .......................... 381
root, Unix-Verzeichnis ..................... 315
Rootkit .................................................. 1120
ROT13 ..................................................... 1128
Roter Balken (Unit-Test) ................. 695
Round-Robin-DNS ............................. 803
route, Unix-Befehl ............................. 446
Router ................................................... 1142
Router, IP-Protokoll .......................... 244
Routing
autonomes System ....................... 248
DE-CIX ............................................... 249
IP-Protokoll ..................................... 244
Routing-Protokoll ............................. 248
BGP ...................................................... 251
OSPF ................................................... 250
RIP ....................................................... 249
Routing-Tabelle ................................... 247
anzeigen ............................................ 247
rpm, Linux-Paketmanager .............. 415
RS-232 ...................................................... 144
RS-Flip-Flop ............................................. 92
RSS, Newsfeed-Format ................... 1032
Ruby ............................................... 528, 1142
abs, Methode ................................... 537
Akzessoren ........................................ 552
Array-Methoden und -Operatoren
539
Arrays ................................................. 535
attr_accessor ................................... 552
attr_reader ....................................... 552
Audrücke ........................................... 532
block_given?, Methode ................ 558
case-when, Anweisung ................ 542
ceil, Methode ................................... 537
chomp, Methode ............................ 547
class, Methode ................................ 529
class, Schlüsselwort ........................ 551
defined?, Methode ......................... 534
Dir, Klasse ........................................ 548
downcase, Methode ...................... 538
downto, Iterator ............................ 546
Ruby (Forts.)
each, Iterator ................................... 546
each_key, Iterator ......................... 546
each_pair, Iterator ........................ 546
each_value, Iterator ..................... 546
Erstes Beispielprogramm ........... 529
File, Klasse ........................................ 547
floor. Methode ................................. 537
gets, Methode ................................. 547
Globale Variablen ......................... 534
gsub, Methode ................................ 583
Hashes ................................................ 535
if, Anweisung .................................. 542
initialize, Methode ......................... 552
Interactive Ruby ............................ 528
IO, Basisklasse ................................ 546
Iteratoren ................................. 545, 557
join. Methode .................................. 542
Klassen implementieren .............. 551
Konstruktor ...................................... 552
Kontrollstrukturen ....................... 542
length, Methode ............................. 538
Literale ............................................... 532
logische Operatoren ..................... 536
Math, Modul ..................................... 537
Methoden .......................................... 537
Objektorientierung ....................... 546
pop, Methode ................................. 540
print, Methode ................................ 547
printf, Methode .............................. 547
push, Methode ....................... 535, 540
puts, Methode ................................. 547
Quoting-Operatoren .................... 533
rake, Automatisierungstool .... 1021
read, Methode ................................. 547
regulärer Ausdruck ....................... 583
reverse, Methode ........................... 538
reverse, Methode (Array) ............. 541
round. Methode ..................... 537, 541
Schleifen ............................................ 543
shift, Methode ................................ 540
Singleton, Modul ........................... 692
sort, Methode ................................. 540
split, Methode ................................. 542
step, Iterator .................................... 546
String-Methoden ........................... 538
sub, Methode ................................... 583
swapcase, Methode ...................... 538
Symbole ............................................. 532
Syntax ................................................. 531
Time, Klasse ..................................... 549
1202
Index
Ruby (Forts.)
times, Iterator ................................. 545
to_i. Methode ................................... 541
to_s, Methode .................................. 541
Typecasting ...................................... 541
uniq. Methode ................................. 541
unless, Anweisung ........................ 542
unshift, Methode .......................... 540
until, Anweisung ............................ 543
upcase, Methode ............................ 538
upto, Iterator .................................. 546
Value- vs. Referenzmethoden ... 538
Variablen .......................................... 532
Vererbung ........................................ 556
while, Anweisung .......................... 543
yield, Schlüsselwort ....................... 557
Ruby on Rails ......... 528, 1015, 1141, 1142
Action Mailer ................................ 1016
Action Pack .................................... 1016
Action Web Service ..................... 1016
Active Record ................................ 1016
Active Support .............................. 1016
Anwendung erzeugen ................. 1017
Anwendung testen ...................... 1022
belongs_to, Datenbankbeziehung
1020
Capistrano, Deployment-Tool 1029
console ............................................. 1021
Controller ....................................... 1023
Convention over Configuration
1016
create, Methode ........................... 1021
create_table, Methode .............. 1019
database.yml,
Konfigurationsdatei ............. 1018
Datenbankbeziehungen .......... 1020
Datensätze ändern ..................... 1022
Deployment .................................. 1029
Designprinzipien ......................... 1016
Don’t Repeat Yourself ................ 1016
eRuby ............................................... 1023
find, Methode ................................ 1021
flash, Zwischenspeicher ............ 1028
form_tag, Methode .................... 1028
Formular ......................................... 1028
Fremdschlüssel ............................ 1020
Generator ........................................ 1017
has_and_belongs_to_many,
Datenbankbeziehung .......... 1020
has_many, Datenbank-
beziehung ................................. 1020
Ruby on Rails (Forts.)
Helper .............................................. 1025
Installation ..................................... 1017
interaktive Konsole ..................... 1021
Komponenten ............................... 1016
Migration ........................................ 1019
Model erzeugen ............................ 1019
Mongrel, Webserver ........ 1022, 1029
Pluralisierung ................................ 1019
Praxisbeispiel ................................ 1017
radio_button, Methode ............ 1028
rails, Generator ............................. 1017
RAILS_ENV, Umgebungs-
variable ....................................... 1018
rake db:migrate ............................ 1021
redirect_to, Methode ................. 1024
Scaffolding .................................... 1022
Startseite ........................................ 1024
submit_tag, Methode ............... 1028
Verzeichnisstruktur .................... 1017
View .................................................. 1023
Rumbaugh, James .............................. 677
run(), Java-Methode .......................... 589
Runlevel (Unix) ................................... 413
Runnable, Interface .......................... 589
Runnable, Java-Interface ................. 512
S
s///, Perl-Operator ............. 527, 577, 582
SaaS (Software as a Service) ......... 1033
Samba ........................................... 450, 1142
als Client für Windows-Server ... 451
Drucker freigeben .......................... 451
globale Parameter ......................... 451
Konfiguration ................................ 450
smb.conf, Konfigurations-
datei .............................................. 450
starten ............................................... 450
Verzeichnis freigeben ................... 451
Windows-Freigabeart .................. 451
Sampling .............................................. 1142
Sampling, Audio ................................... 56
Sampling-Rate ....................................... 56
Sampling-Tiefe, Audio ........................ 56
Samsung
Galaxy Tab ........................................ 46
SAS (Serial Attached SCSI) ............... 143
sash (Stand-alone Shell) ................... 385
Satellit, DSL-Verbindung ................. 221
Satisfy, Apache-Direktive ................ 782
SAX .......................................................... 1142
Beispielprogramm ........................ 865
ContentHandler, Interface ........ 859
ContentHandler-Callback ......... 860
ContentHandler-Methode ........ 860
Dokument parsen ......................... 858
DTDHandler, Interface ................ 859
EntityResolver, Interface ............ 859
ErrorHandler, Interface ............... 859
Event Handler ................................. 859
InputSource, Klasse ...................... 859
Parser-Instanz erzeugen ............. 858
XMLReader-Interface ................... 858
SAX (Simple API for XML) ............... 858
SaX (X-Server-Konfigurationspro-
gramm) ............................................. 440
sbin, Unix-Verzeichnis ..................... 315
Scaffolding
Ruby on Rails ................................ 1022
Scala, Programmiersprache .............. 53
scanf(), C-Funktion .................. 487, 496
Scanner ................................................... 161
Auflichtscanner ............................... 161
Diascanner ....................................... 162
Durchlichtscanner ......................... 161
Flachbettscanner ........................... 162
Kleinbildscanner ............................ 162
Trommelscanner ........................... 162
Schaltalgebra .................................. 26, 86
Schaltkreisvermittlung ..................... 174
Schaltung, Register .............................. 93
Schema (LDAP) ................................... 804
Schichtenmodell ....................... 181, 1142
Alltagsbeispiel ................................. 187
Mail-Beispiel .................................... 189
OSI-Referenzmodell ....................... 181
Praxis .................................................. 187
TCP/IP ................................................ 184
Schleife
C ........................................................... 488
do/while() ........................................ 489
Endlosschleife ................................. 568
for() .................................................... 489
foreach, Perl ...................................... 519
fußgesteuerte ................................. 489
in der PowerShell ............................ 355
in Shell-Skripten ............................. 419
kopfgesteuerte ............................... 489
mit break abbrechen .................... 568
1203
Index
Schleifen
Ruby .................................................... 543
Schleifenrumpf ................................... 488
Schleifenzähler, Variable ............... 489
Schlüssel
eines Hashes .................................... 520
im RDBMS ....................................... 704
Schlussfolgerung
logische ............................................... 62
Umkehrschluss ................................. 62
Schnittmenge ......................................... 72
Schnittstelle
Hardware .......................................... 117
Softwareentwurf ........................... 670
Schreib-Lese-Kopf, der Turing-
Maschine ......................................... 100
Schriftart
im Drucker ....................................... 169
screen, JavaScript-Objekt ............. 1068
script.aculo.us, Ajax-Biblio-
thek .................................................. 1099
ScriptAlias, Apache-Direktive ....... 782
Scrum ...................................................... 675
Backlog .............................................. 676
Rollen ................................................. 676
Sprint .................................................. 676
SCSI ................................................. 142, 1142
anschließen ....................................... 142
ID .......................................................... 142
serielles ............................................... 143
Terminator ........................................ 142
SCSI-ID ..................................................... 142
SDI, Windows-Anwendungen ....... 337
SD-RAM .................................................. 129
SDSL ......................................................... 220
sed .................................................... 514, 576
Sedezimalsystem � Hexadezimal-
system
Segmentierung (Speicher) ............... 311
Seite (Speicher) ..................................... 311
Seitenfehler (Speicher) ...................... 312
Seitentabelle (Speicher) .................... 312
SELECT, SQL-Abfrage ......................... 724
Selektor
jQuery ............................................. 1099
Semikolon
Abschluss von Anweisungen .... 475
send(), Ajax-Methode .................... 1084
Sequenzdiagramm (UML) ............... 682
Serial Attached SCSI ........................... 143
Serialisierung ........................................ 512
Serializable, Java-Interface .............. 512
Serielle Datenübertragung ............. 135
Bedeutung ........................................ 137
Kontrollbit ........................................ 136
Leitungskonventionen ................. 136
Prüfbit ................................................ 136
Startbit ............................................... 136
Stoppbit ............................................. 136
Server
Netzwerk ........................................... 195
Server, Windows-Betriebssyste-
me ........................................................ 328
ServerAdmin, Apache-Direktive 782
Serverdienst
Anwendungsserver ....................... 199
Application Server ......................... 199
Dateiserver ....................................... 196
Druckserver ...................................... 196
einrichten, Linux ........................... 447
einrichten, Mac OS X ................... 469
einrichten, Unix ............................. 447
einrichten, Windows ..................... 372
Fileserver ........................................... 196
HTTP-Server ..................................... 198
Mailserver ......................................... 197
Printserver ........................................ 196
Samba ............................................... 450
Übersicht ........................................... 195
Webserver ......................................... 198
Servergefahren ................................... 1119
ServerName, Apache-Direktive .... 783
ServerRoot, Apache-Direktive ....... 783
ServerSignature, Apache-Direktive
783
Serversystem
Macintosh ........................................ 468
ServerTokens, Apache-Direk-
tive ....................................................... 783
Servlet, Java ........................................... 627
Session
PHP ..................................................... 993
Session-Hijacking .............................. 1121
SET PASSWORD, MySQL-Anweisung
735
SET, SQL-Befehl .................................... 729
SET, SQL-Datentyp ............................. 723
setColor(), AWT-Methode ................ 635
setLayout(), AWT-Methode ............ 643
setTimeout(), JavaScript-Methode
1055
setVisible(), AWT-Methode ............ 632
SGML ...................................................... 1142
HTML-DTD ..................................... 900
XML als moderne Version ........... 821
sh (Bourne-Shell) ................................ 384
Shannon-Theorem ........................... 1142
Share Level Security, Samba ........... 451
Share Level Security, Windows-Frei-
gabeart ............................................... 373
Shebang
bei Shell-Skripten ............................ 417
Perl ....................................................... 515
Shell ............................................... 305, 1142
/etc/profile, Unix-Konfigurations-
datei ............................................... 385
Ausgabeumleitung (Unix) ......... 394
bash .................................................... 385
Befehl, Windows ............................. 346
Bourne-Shell .................................... 384
Cmd.exe, WinNT ............................ 344
COMMAND.COM, MS-DOS ........ 344
C-Shell ................................................ 385
Eingabeaufforderung, Unix ...... 384
Eingabeumleitung (Unix) ........... 394
Eingabevervollständigung ........ 388
ermitteln, welche läuft ................ 384
Escape-Sequenz ............................. 404
HIER-Dokument ............................. 395
History ............................................... 389
Korn Shell ......................................... 385
Pipe ..................................................... 395
Prozess in den Hintergrund stellen
385
Shell-Skript ........................................ 417
Stand-alone Shell ........................... 385
Umgebung ....................................... 385
Umgebungsvariable ..................... 385
Unix .................................................... 305
unter Mac OS X .............................. 456
Windows ........................................... 344
shell
Befehl als root ausführen .......... 390
Shell-Skript ............................................ 417
Beispiele ........................................... 420
case-Befehl ....................................... 419
Fallunterscheidung ....................... 418
for-Befehl .......................................... 419
if-Befehl ............................................. 418
Schleife ............................................... 419
Shebang ............................................. 417
Variable ............................................. 419
while-Befehl ..................................... 419
1204
Index
shift, Perl-Anweisung ........................ 518
short, C-Datentyp ............................... 479
Short-Circuit-Logik ............................ 524
shutdown, Unix-Befehl .................... 411
Sicherheit ............................................. 1105
Administratorrechte .................... 1111
Adware .............................................. 1115
Backdoor ........................................... 1112
Backup .............................................. 1110
CGI ....................................................... 1121
chroot-Umgebung ....................... 1123
Crackerangriff .............................. 1120
Crackertools ................................... 1123
Cross-Site-Scripting (XSS) ......... 1120
Dialer .................................................. 1113
Exploit ............................................... 1119
Firewall ................................... 1110, 1122
Hoax .................................................. 1118
Intrusion Detection System ..... 1122
keine absolute ............................... 1105
Kettenmail ...................................... 1119
Kryptografie ................................... 1128
Man-in-the-Middle-Angriff ....... 1121
menschliches Versagen .............. 1124
MySQL, Unix ..................................... 716
MySQL, Windows ............................ 718
Passwort .......................................... 1124
Patch installieren ......................... 1110
PC-Gefahren .................................. 1106
Phishing ........................................... 1116
Rootkit ............................................. 1120
Servergefahren .............................. 1119
Session-Highjacking ..................... 1121
Social Engineering ....................... 1124
Spam .................................................. 1117
Spyware ............................................. 1115
SQL-Injection ................................... 1121
Virus ................................................. 1106
Webanwendungen ........................ 1121
Wurm ............................................... 1108
Sicherung, OSI-Schicht ..................... 182
SIGALRM, Signal ................................ 308
SIGHUP, Signal ................................... 308
SIGINT, Signal ...................................... 410
SIGKILL, Signal .......................... 308, 410
Signal ..................................................... 1142
an Prozesse senden, Unix ........... 410
SIGALRM .......................................... 308
SIGHUP ............................................. 308
SIGINT ................................................ 410
SIGKILL .................................... 308, 410
Signal (Forts.)
SIGTERM .................................. 308, 410
Verarbeitung durch Prozess ..... 308
zur Inter-Prozess-Kommunikation
309
Signatur
digitale ............................................. 1129
signed, C-Datentyp ........................... 479
SIGTERM, Signal ........................ 308, 410
Silicon Valley .......................................... 39
Silizium ..................................................... 39
SIMM-Modul (RAM) .......................... 128
Simple API for XML � SAX
Simulation
eines Prozessors ............................. 103
Sinclair ZX Spectrum ........................ 294
Sinclair ZX81 .................................. 43, 294
Sinclair, Clive .......................................... 43
Single Document Interface � SDI,
Windows-Anwendung
Singleton, Entwurfsmuster
Implementierung (Java) .............. 691
Implementierung (Ruby) ............ 691
Ruby-Modul .................................... 692
Singleton, Entwurfsmuster ......... 687,
690
Sinuskurve
zeichnen, AWT ................................ 636
Sitzung, OSI-Schicht .......................... 183
sizeof(), PHP-Funktion ..................... 968
Skalar, Perl-Variable .................. 516, 518
Skriptsprache ................................ 49, 514
Slash, Blog-Tool ................................ 1032
Slave-Nameserver ............................. 264
Slot
Prozessor ............................................ 117
SMALLINT, SQL-Datentyp ............... 722
Smalltalk .............................................. 660
Smalltalk, Programmiersprache .... 52
Smartphone ........................................... 46
smbclient, Samba-Dienst ................ 451
SMB-Protokoll, Windows-Netzwerk
286
SMTP ....................................................... 270
Befehle ................................................ 271
Sitzung ............................................... 271
sn, LDAP-Attribut ............................. 806
Snort ....................................................... 1123
SOAP ...................................................... 1142
Client .................................................. 629
SOAP, Webservices ............................ 628
SOA-Record (DNS) .............................. 801
Social Engineering ............................ 1124
sockaddr_in, Netzwerkprogrammie-
rung .................................................... 595
Sockel
für Prozessoren ............................... 117
Socket ............................................ 593, 1142
accept(), Funktion ......................... 598
Adresse .............................................. 595
bind(), Funktion ............................. 598
connect(), Funktion ...................... 597
Datagramme senden und empfan-
gen .................................................. 596
Domain ............................................. 594
erzeugen ........................................... 594
IO ......................................................... 599
IP-Adresse ......................................... 595
lauschender ..................................... 598
listen(), Funktion ............................ 598
Protokoll ........................................... 594
TCP ...................................................... 596
TCP-Client ......................................... 597
TCP-Port ............................................ 595
TCP-Server ........................................ 598
Typ ....................................................... 594
UDP ..................................................... 596
Verbindung aufnehmen ............. 598
Socket, Perl-Modul ............................ 594
Software
freie ..................................................... 297
installieren unter Unix ................. 415
installieren, Windows .................. 361
Software as a Service ....................... 1033
Software-Engineering ...................... 659
agiler Entwicklungsprozess ....... 675
Analyse ............................................. 666
CASE-Tools ....................................... 678
Code-Review ..................................... 671
Dokumentation ............................. 672
Entwicklungsprozess ................... 673
Entwicklungszyklus ...................... 661
Entwurfsmuster ............................ 684
Entwurfsphase ............................... 669
Extreme Programming ............... 674
Implementierungsphase ........... 670
in der IT-Ausbildung ................... 660
Lastenheft ........................................ 667
objektorientierte Analyse .......... 667
Objektorientierung ...................... 660
Pflichtenheft ................................... 668
Planungsphase ............................... 662
1205
Index
Software-Engineering (Forts.)
Projektmanagement .................... 662
Projektphasen ................................. 661
Schnittstelle .................................... 670
Scrum ................................................. 675
Spiralmodell .................................... 661
strukturierte Analyse ................... 667
Test-first-Verfahren ............ 675, 696
Testphase ........................................... 671
UML .................................................... 677
Unified Process ............................... 673
Unit-Test ............................................ 671
Unit-Tests ......................................... 693
Wasserfallmodell ........................... 661
Softwareentwicklung � Software-En-
gineering
Softwarekrise ....................................... 659
Softwaretechnik � Software-Engi-
neering
Solaris .................................................... 1142
Solaris, Betriebssystem .................... 293
Solid State Disk .................................. 1142
Solid State Disk (SSD) ......................... 153
Sortier-Algorithmus ......................... 564
BubbleSort ........................................ 564
QuickSort .......................................... 567
Soundkarte ........................................... 169
Anschlüsse ........................................ 169
Audio-CD abspielen ...................... 170
MIDI .................................................... 170
SP-DIF-Anschluss ........................... 170
Source, Stromeingang des
Transistors ........................................ 87
Spam ....................................................... 1117
SpamAssassin ..................................... 1118
SP-DIF-Anschluss ............................... 170
Special File � Gerätedatei
Spectrum, Homecomputer ............ 294
Speicher
Management durch
Betriebssystem ......................... 289
RAM ..................................................... 116
reservieren, C .................................... 572
ROM ..................................................... 116
virtueller ................................... 120, 311
Speicheradressierung .......................... 81
Speichermanagement ...................... 289
Speicherseite ......................................... 311
Speicherverwaltung ........................... 311
x86-System ....................................... 312
Speicherzelle (Schaltung) .................. 92
Spiralmodell ......................................... 661
split, Perl-Anweisung ........................ 519
Spotlight (Mac OS X) ......................... 459
Sprache (Umgangssprache), zur Algo-
rithmendarstellung ........................ 95
Sprint, Scrum ...................................... 676
Sprungbefehl
bedingter ........................................... 125
beim virtuellen Prozessor ........... 107
der CPU .............................................. 125
unbedingter ..................................... 125
Sprungvorhersage (Prozessor) ...... 120
Spyware ................................................. 1115
SQL ........................................ 708, 719, 1142
Aggregatfunktion .......................... 726
Änderungsabfrage ............... 719, 729
arithmetische Operatoren .......... 726
AS-Klausel ......................................... 726
Auswahlabfrage .................... 719, 724
AUTO_INCREMENT, Feldoption
724
BIGINT, Datentyp ........................... 722
BINARY, Feldoption ....................... 724
BLOB, Datentyp .............................. 723
CHAR, Datentyp ............................. 723
COMMIT, Anweisung ................... 731
COUNT-Funktion ........................... 727
CREATE DATABASE, Befehl ........ 720
CREATE TABLE, Befehl ................. 720
DATE, Datentyp .............................. 722
Datentypen ...................................... 721
Datentypen in Java ...................... 749
Datentypen, Aufzählung ............ 723
Datentypen, Binärobjekte .......... 723
Datentypen, Datum und Uhrzeit
722
Datentypen, Fließkomma ........... 722
Datentypen, ganzzahlige ........... 721
Datentypen, Text ........................... 723
DATETIME, Datentyp ................... 722
DECIMAL, Datentyp ...................... 722
DEFAULT, Feldoption ................... 724
DELETE-Abfrage ............................. 729
DOUBLE, Datentyp ........................ 722
DROP DATABASE, Befehl ............ 721
DROP TABLE, Befehl ...................... 721
Einfügeabfrage ...................... 719, 728
ENUM, Datentyp ............................ 723
Felder mit Nullen füllen ............... 724
Feldoptionen .................................... 724
Feldwert einmalig machen ........ 724
SQL (Forts.)
FLOAT, Datentyp ........................... 722
Funktionen ....................................... 726
Index erstellen ................................ 724
Inner Join .......................................... 727
Inner Join durch WHERE ausdrü-
cken ................................................ 728
INNER JOIN-Klausel ...................... 727
INSERT-Abfrage .............................. 728
INT, Datentyp .................................. 722
Join ...................................................... 727
LIKE-Klausel .................................... 725
LONGBLOB, Datentyp .................. 723
LONGTEXT, Datentyp .................. 723
Löschabfrage ........................... 719, 729
MAX-Funktion ................................ 727
MDEIUMBLOB, Datentyp ........... 723
MEDIUMTEXT, Datentyp ........... 723
MIN-Funktion ................................. 727
Mustervergleich ............................. 725
NULL, Feldoption ........................... 724
ORDER BY-Klausel ......................... 727
Primärschlüssel einrichten ........ 724
PRIMARY KEY, Feldoption ......... 724
REAL, Datentyp .............................. 722
ROLLBACK, Anweisung ................ 731
SELECT-Abfrage .............................. 724
SET, Datentyp .................................. 723
SET-Befehl ......................................... 729
SMALLINT, Datentyp ................... 722
sortieren ............................................ 727
Standardwert angeben ............... 724
START TRANSACTION, Anweisung
731
SUM-Funktion ................................ 726
TEXT, Datentyp .............................. 723
TIME, Datentyp .............................. 722
TIMESTAMP, Datentyp ................ 722
TINYBLOB, Datentyp .................... 723
TINYINT, Datentyp ........................ 722
TINYTEXT, Datentyp .................... 723
Transaktion beginnen .................. 731
UNSIGNED, Feldoption ............... 724
UPDATE-Abfrage ........................... 729
VARCHAR, Datentyp .................... 723
Vergleichsoperatoren .................. 726
Volltextindex .................................. 724
WHERE-Klausel .............................. 725
YEAR, Datentyp .............................. 722
ZEROFILL, Feldoption ................... 724
SQL Server, Microsoft ........................ 711
1206
Index
SQL-Injection ....................................... 1121
SRAM ........................................................ 128
SSD .......................................................... 1142
SSD (Solid State Disk) ......................... 153
SSH ............................................... 1130, 1142
SSH (Secure Shell) .............................. 266
OpenSSH ........................................... 266
SSL .................................................. 787, 1130
Staatlich geprüfter Techniker (FS) In-
formatik .............................................. 30
Stack
der CPU ....................................... 118, 125
des virtuellen Prozessors ............ 108
Java-Klasse ........................................ 513
Stack Overflow ........................... 125, 1143
Stack Pointer � Stack-Zeiger
Stack, Datenstruktur .......................... 571
Perl ....................................................... 571
Stack-Zeiger ................................... 118, 125
Stallman, Richard ............................... 297
Stammdaten ....................................... 699
Stand-alone Shell (sash) .................. 385
Standardausgabe
Java ..................................................... 503
Standardausgabe (stdout) .............. 394
Standardeingabe (stdin) .................. 394
Standardfehlerausgabe .................... 592
Standard-Fehlerausgabe
(stderr) ............................................... 394
Stapelverarbeitung ............................ 291
START TRANSACTION, SQL-Anwei-
sung ..................................................... 731
Startbit .................................................... 136
Startmenü
Windows ........................................... 338
Startvolume, Mac OS X-Einstellung
464
startx, X Window starten ............... 440
State, Entwurfsmuster .................... 689
Statement, JDBC-Klasse ................... 748
static
Java-Methoden ............................... 503
Variableneigenschaft, C ............. 480
Static RAM � SRAM
static, PHP-Schlüsselwort ............... 983
Statische Methode
PHP ..................................................... 983
Statische Variable ............................. 480
Statisches Attribut
PHP ..................................................... 983
stddef.h, C-Bibliothek ....................... 479
stderr ....................................................... 592
stderr, Standard-Fehlerausgabe ... 394
stdin, Standardeingabe ................... 394
stdio.h, C-Bibliothek ......................... 496
stdio.h, C-Header-Datei .................... 475
stdlib.h, C-Header-Datei ................... 475
stdout, Standardausgabe ................ 394
Stealth-Virus ....................................... 1108
Stellenwertsystem ......................... 36, 75
Basis ...................................................... 75
Stern-Topologie, Netzwerk ............. 193
Steueranweisung
XML ..................................................... 825
Steuerbus ................................................ 119
Wortbreite .......................................... 121
Steuerwerk ............................................. 113
der CPU ............................................... 118
Stoppbit .................................................. 136
str_replace(), PHP-Funktion ......... 990
Strategy, Entwurfsmuster .............. 689
strcat(), C-Funktion ........................... 497
strcmp(), C-Funktion ........................ 497
strcpy(), C-Funktion .......................... 497
Stream-Socket ..................................... 594
strftime(), C-Funktion ...................... 498
strict, Perl ................................................ 517
String ............................................. 475, 1143
aufteilen, Java ................................ 506
aus Array, Perl ................................. 519
aus Datei lesen, C .......................... 497
Darstellung in C ............................. 494
Darstellung, C .................................. 475
Eingabe, C ........................................ 496
einlesen, C ........................................ 476
einzelne Zeichen lesen, Java ..... 505
Funktionen in C ............................. 497
in GUI schreiben ............................. 637
in JavaScript .................................. 1048
Java ..................................................... 503
kopieren, C ....................................... 497
Länge ermitteln, Java .................. 506
null-terminierter ........................... 494
Operationen in Java ..................... 505
Position ermitteln, Java .............. 506
vergleichen, C ................................. 497
vergleichen, JavaScript ............. 1043
vergleichen, Perl ............................. 522
verketten, C ..................................... 497
verketten, Java ...................... 504, 505
verketten, JavaScript .................. 1041
verketten, Perl ................................. 523
String (Forts.)
zerlegen, Perl .................................... 519
zerlegen, PHP ................................. 969
String, Java-Datentyp ....................... 503
string.h, C-Bibliothek ........................ 497
String-Literal ....................................... 480
String-Verkettung, Perl .................... 523
strip_tags(), PHP-Funktion ............. 979
Stripe Set (RAID) .................................. 151
Stripe Set mit Parity (RAID) ............ 151
Stroustrup, Bjarne ................................. 52
struct, C .................................................. 494
Structural Pattern � Strukturmuster
Structured Query Language � SQL
Struktur
in C ...................................................... 494
Strukturierte Analyse ....................... 667
Strukturierung
Programme ..................................... 490
von Programmen ............................ 50
Strukturmuster ................................... 685
Studiengänge
Informatik ........................................... 32
Style Sheets � CSS
su, Unix-Befehl ................................... 390
sub, Perl-Subroutine .......................... 525
sub, Ruby-Methode ........................... 583
Subdomain (DNS) .............................. 262
submit_tag, Rails-Methode .......... 1028
Subnet Mask ........................................ 1143
Subnet Mask, IP-Adresse .................. 231
Subnetting ........................................... 1143
Subnetting, IP-Netze teilen ............ 232
Subroutine
Parameter ......................................... 525
Perl ....................................................... 525
Wertrückgabe ................................. 526
SubSeven, Backdoor .......................... 1112
substring(), Java-Methode ............. 506
Subtraktion, Operator ...................... 481
Such-Algorithmus ............................. 569
binäre Suche .................................... 570
lineare Suche ................................... 569
Suche
binäre ....................................... 570, 1134
lineare ........................................ 97, 1139
nach Permutationen ...................... 98
Suchmaschine
Anmeldung bei ............................... 944
HTML aufbereiten für .................. 942
robots.txt-Datei ............................. 943
1207
Index
SUM, SQL-Funktion ........................... 726
Sun Microsystems
Java .................................................... 499
Solaris, Betriebssystem ............... 293
Sun SPARC, Prozessor ....................... 124
super, Java ............................................. 510
Supernetting ....................................... 1143
Supernetting, IP-Netze zusammen-
fassen ................................................. 232
Superuser ..................................... 309, 381
SVG ......................................................... 1143
SVG (Scalable Vector Graphics) .... 822
SVG � Scalable Vector Graphics
Swap-Partition ..................................... 312
Swapping (Speicher) ......................... 120
Swing, Java ............................................. 631
Ereignisbehandlung ...................... 631
Tabellen .............................................. 631
Switch .................................................... 206
switch/case-Fallunterscheidung 487
default-Wert .................................... 488
Symbole (Ruby) ................................... 532
Symbolic Link ....................................... 317
Symbolische Konstante ....... 499, 1143
Symmetrische Verschlüsselung 1129
sys/types.h, C-Bibliothek ................ 585
Syslog ............................................. 411, 1143
Syslog, Unix ......................................... 409
System
autonomes ...................................... 1134
System V ............................................... 1143
System V Init ........................................ 413
System V IPC ....................................... 309
System V, Unix .................................... 293
System.err, Java .................................. 592
System.out, Java ................................. 503
Systemanalyse ................................... 666
Systemaufruf ........... 127, 301, 304, 1143
CreateProcess() .............................. 309
fork() ................................................... 307
kill() .................................................... 308
pause() .............................................. 308
programmieren .............................. 584
Win32 API ......................................... 305
Systemaufrufe
Unix ................................................... 304
Systembefehl
Unix .................................................... 397
Unix-Dateimanipulation ........... 397
Unix-Systemverwaltung ............ 405
Unix-Textmanipulation ............. 401
Systemkonfiguration
Mac OS X .......................................... 464
Windows ........................................... 360
Systemprogramm ............................. 303
Linux ................................................... 297
Optionen .......................................... 386
Parameter ........................................ 386
Unix ..................................................... 397
Unix-Dateimanipulation ............ 397
Unix-Systemverwaltung ............ 405
Unix-Textmanipulation ............. 401
Systemsteuerung, Windows ......... 360
Systemvariable .................................. 1143
PATH (Unix) ..................................... 387
setzen (Unix) ................................... 388
Systray
Windows ........................................... 340
T
Tabelle
erzeugen, SQL ................................. 720
HTML ................................................. 923
löschen, SQL ..................................... 721
Tabelle (iptables) ................................ 1125
Tablet-PC ................................................. 46
Tag
HTML ................................................. 901
Name, XML ....................................... 827
verschachteltes, XML ................... 826
XML ............................................ 823, 825
tail, Unix-Befehl ................................. 403
Taktfrequenz
der CPU .............................................. 122
des Mainboards .............................. 122
Multiplikator ................................... 122
praktische Bedeutung .................. 122
Tanenbaum, Andrew ...................... 300
tar, Unix-Befehl .......................... 415, 893
tar-Datei ................................................. 415
Task Scheduler ........................... 301, 1143
Taskleiste, Windows .......................... 338
Systray .............................................. 340
Tastatur ................................................. 160
Zeichensatzeinstellung ............... 878
Tastenkürzel
Windows-Eingabeaufforderung
344
TCP ................................................. 255, 1143
Drei-Wege-Handshake ................ 256
Funktionsweise ............................... 255
im Vergleich zu UDP .................... 254
Paket-Header ................................... 255
Port ..................................................... 257
Urgent Data ..................................... 258
Verbindungsaufbau ..................... 256
TCP/IP ........................................... 224, 1143
Adressierung ................................... 226
Anwendungsprotokolle .............. 265
ARP, Netzzugang ........................... 225
DHCP .................................................. 252
Dienstprogramme ........................ 369
DNS .................................................... 260
Domain Name System ............... 260
FTP, Anwendungsprotokoll ....... 267
HTTP, Anwendungsprotokoll ... 278
ICMP-Protokoll ................................ 255
IMAP, Anwendungsprotokoll ... 276
Loopback-Interface ...................... 230
Nameserver ..................................... 260
Netzzugang ..................................... 225
NNTP, Anwendungsprotokoll ... 276
POP3, Anwendungsprotokoll .... 275
Routing .............................................. 244
Routing-Protokolle ....................... 248
SMTP, Anwendungsprotokoll ... 270
Telnet, Anwendungsprotokoll
266
Transportprotokolle ..................... 254
TCP/IP-Dienstprogramm ................ 369
netstat ................................................. 371
nslookup ............................................ 371
tracert ................................................ 370
TCP/IP-Dienstprogramme
ping ..................................................... 369
TCP/IP-Schichtenmodell ................. 184
TCP-Client-Socket .............................. 597
mit IO ............................................... 600
TCP-Header ............................................ 255
TCP-Port ................................................. 257
für Sockets ........................................ 595
Well-known Port ............................ 257
TCP-Server-Socket .............................. 598
mit IO ............................................... 600
tcsh (erweiterte C-Shell) .................. 385
TDD � Test-driven Development
Technische Informatik ...................... 26
Teilerfremd ........................................... 562
1208
Index
Teilmenge ............................................... 69
echte ..................................................... 70
Teilnetzmaske, IP-Adresse .............. 231
Telefongespräch
als Schichtenmodell ...................... 187
Telefonleitung
Pulswahl ............................................ 218
Telefonverbindung ............................ 174
telephoneNumber, LDAP-Attribut
806
Telnet ............................................ 266, 1143
Template Method, Entwurfsmuster
689
Terabyte ................................................... 82
Term ......................................................... 60
TERM, Signal .............................. 308, 410
Terminal ............................... 40, 291, 1143
unter grafischer Oberfläche ...... 383
virtuelles ........................................... 383
Terminator .......................................... 1143
SCSI ...................................................... 142
Terminator (UNIX-Terminalfenster)
383
Test, Software-Engineering ............. 671
Code-Review ..................................... 671
Lasttest ............................................... 671
Unit-Test ............................................ 671
Unit-Tests ......................................... 693
Test-driven Development ... 696, 1143
Test-first-Verfahren ................ 675, 696
Testgetriebene Entwicklung � Test-
driven Development
Tethering ............................................... 223
TeX, Textsatzsystem ......................... 881
Text
ausgeben (Unix) ............................ 402
Datei anzeigen, Windows-Konsole
347
Dateien vergleichen, Unix ........ 405
Dateiinhalt anzeigen (Unix) .... 402
Editoren, Unix ................................. 423
Emacs, Editor .................................. 433
Manipulationsbefehle, Unix ..... 401
vi, Editor ............................................ 424
Wörter zählen, Unix .................... 405
TEXT, SQL-Datentyp .......................... 723
text-align, CSS-Angabe ................... 950
TextArea, AWT-Klasse ...................... 642
Textdatei
anzeigen, Windows-Konsole ..... 347
Inhalt anzeigen (Unix) ............... 402
Textdateiformat
Vorteile .............................................. 821
YAML ................................................ 1018
text-decoration, CSS-Angabe ........ 950
Texteditor
Emacs ................................................. 433
für XML verwenden ....................... 822
unter Unix ......................................... 423
vi .......................................................... 424
vim ...................................................... 424
TextField, AWT-Klasse ..................... 642
text-indent, CSS-Angabe ................. 950
TFT .......................................................... 1143
TFT-Monitor ......................................... 166
Theoretische Informatik ................... 26
Thermosublimationsdrucker ........ 168
Thermotransferdrucker ................... 168
Thicknet Coaxial, Ethernet ............ 205
Thinnet Coaxial, Ethernet .............. 205
this, Java ................................................ 507
Thompson, Ken .................................. 292
Thread ................................ 300, 310, 1143
in Programmiersprachen .......... 589
Java ............................................. 512, 589
run() .................................................... 589
Runnable-Interface ...................... 589
Thread, Java-Klasse ........................... 589
throws-Klausel, Java .......................... 513
Thunderbolt ......................................... 143
TIFF, Bilddateiformat ....................... 888
time(), C-Funktion ............................. 498
TIME, SQL-Datentyp .......................... 722
time.t, C-Bibliothek ........................... 498
time_t, C-Datentyp ........................... 498
Timesharing ............................... 291, 1143
TIMESTAMP, SQL-Datentyp ........... 722
Tintenstrahldrucker .......................... 167
Bubble-Technik ............................... 168
Piezo-Technik .................................. 168
TINYBLOB, SQL-Datentyp ................ 723
TINYINT, SQL-Datentyp ................... 722
TINYTEXT, SQL-Datentyp ................ 723
Titel
HTML-Dokument .......................... 902
TLS � SSL
Token Passing, Netzzugangsverfah-
ren ....................................................... 208
Token-Passing .................................... 1143
Token-Ring-Netzwerk ............ 208, 1143
Tomlinson, Ray .................................... 177
Tonkanal, Audio .................................... 56
Tonwahlverfahren .............................. 218
Top Level Domain ............................. 1143
Länder ................................................ 262
top, CSS-Angabe .................................. 953
top, Unix-Befehl ................................. 410
Top-Level-Domain
generic ............................................... 262
Top-Level-Domain (DNS) ................ 262
Topologie (Netzwerk) ....................... 193
Torvalds, Linus ........................... 293, 296
tr///, Perl-Operator ............................ 583
tracert, TCP/IP-Dienstprogramm
370
Track-at-once ............................. 156, 1144
Transaktion (Datenbank) ................ 730
Commit .............................................. 731
in MySQL ........................................... 730
Rollback .............................................. 731
Transaktion (RDBMS) ....................... 710
in MySQL ........................................... 710
Transistor ................................... 38, 39, 87
TFT ....................................................... 166
Transistorrechner ................................ 38
Transport, OSI-Schicht ...................... 183
Treiber � Gerätetreiber
Triode ........................................................ 39
tripwire .................................................. 1123
Trojaner � Trojanisches Pferd
Trojanisches Pferd ............................. 1112
Trolltech ................................................. 442
Trommelscanner ................................ 162
Foto-Multiplier ............................... 162
true
Java .................................................... 504
TrueType ............................................... 1144
try
Java .................................................... 504
try/catch-Block
Java .................................................... 504
TTL ........................................................... 1144
TTL, IP-Datagramm ........................... 248
Turing, Alan .................................. 99, 1144
Turing-Maschine ..................... 100, 1144
Band .................................................. 100
Beispiele ............................................. 101
einfaches Beispiel ........................... 101
komplexeres Beispiel .................... 101
Schreib-Lese-Kopf ......................... 100
Zeichenvorrat ................................ 100
Zustände .......................................... 100
Turing-Test ................................... 99, 1144
1209
Index
Turing-Vollständigkeit .......... 103, 1144
Tweening .............................................. 1144
Twisted-Pair-Kabel ............................ 205
Kategorien ....................................... 205
Twitter Bootstrap, CSS-Framework
959
Type Hint (PHP) .................................. 983
type, Windows-Befehl ...................... 347
Typecasting
C ........................................................... 481
Ruby ..................................................... 541
Typenraddrucker ................................ 167
TYPO3, CMS ....................................... 1030
U
Überladung .......................................... 508
Übertakten ............................................. 122
Übertrag (Logikschaltung) ................ 91
Ubuntu Linux ...................................... 378
UDDI ....................................................... 1144
UDDI, Webservices ............................ 628
UDF ................................................... 157, 159
UDP ................................................ 258, 1144
Anwendungsbeispiel .................... 258
im Vergleich zu TCP ...................... 254
Paketheader .................................... 259
Port ..................................................... 259
UDP-Header ......................................... 259
UDP-Port ............................................... 259
UID (User-ID)
von Prozessen ................................ 308
UID (User-ID, Unix) ............................ 381
uid, LDAP-Attribut ............................ 806
uidNumber, LDAP-Attribut ........... 806
Umbenennen
Datei, Mac OS X ............................. 462
Datei, Unix ....................................... 399
Umfangsmanagement ..................... 663
Umgebung
Unix .................................................... 385
Umgebungsvariable
CLASSPATH ..................................... 500
PATH (Unix) ..................................... 387
RAILS_ENV ..................................... 1018
setzen (Unix) ................................... 388
setzen unter Windows ................. 346
Umgebungsvariablen ....................... 385
Umkehrschluss ..................................... 62
UML ......................................... 95, 677, 1144
Akteur ................................................ 679
Aktivitätsdiagramm .................... 683
Anwendungsfalldiagramm ...... 679
ArgoUML, Tool ............................... 678
Diagrammtypen ............................ 677
Klassendiagramm ....................... 680
praktischer Einsatz ....................... 678
Sequenzdiagramm ....................... 682
Version 2.0 ........................................ 677
umount, Unix-Befehl ...................... 406
Umrechnung
dezimal nach dual ........................... 78
dezimal nach hexadezimal .......... 79
dual nach dezimal ........................... 78
dual nach hexadezimal ................ 80
dual nach oktal ................................. 79
hexadezimal nach dezimal .......... 79
hexadezimal nach dual ................ 80
oktal nach dual ................................. 79
Zahlensysteme .................................. 78
UMTS ....................................................... 222
unalias, Unix-Befehl .......................... 422
Unbedingter Sprung ......................... 125
Undefiniertheitsstelle (Funktion) 96
Und-Schaltung � AND-Schaltung
Und-Verknüpfung � AND-Verknüp-
fung
Ungleichheit ........................................... 67
Ungleichheit, Operator ................... 483
Ungleichung .......................................... 60
Lösung .................................................. 61
Unicode ....................................... 876, 1144
BMP-Teilmenge .............................. 877
Tabelle wichtiger Teilzeichensätze
877
Unterstützung durch Software 878
UTF-8-Codierung ............................ 877
Unicode, Zeichensatz .......................... 57
Unified Modeling Language � UML
Unified Process .................................... 673
Aktivitäten ........................................ 673
Anwendungsfall ............................. 673
Artefakt ............................................. 674
Phasen ............................................... 674
Rollen .................................................. 673
Vorgehen .......................................... 674
UNIQUE, SQL-Schlüsselwort .......... 724
Unit-Test ................................................ 671
Mock-Objekt .................................. 1012
PHP .................................................. 1009
Unit-Tests .............................................. 693
grüner Balken ................................. 695
JUnit-Framework ........................... 693
Motivation ....................................... 693
roter Balken ..................................... 695
Universal Disk Format � UDF
University of California,
Berkeley .......................... 293, 424, 593
Unix .................................................. 50, 292
$0, Systemvariable ....................... 384
.bashrc, Konfigurationsdatei .... 385
/etc/passwd-Datei ......................... 381
/etc/profile, Konfigurationsdatei
385
/etc/shadow, Datei ....................... 383
alias-Befehl ....................................... 421
als Server einrichten ..................... 447
Arbeitsverzeichnis anzeigen .... 400
auf NFS-Freigabe zugreifen ...... 449
auf Windows-Server zugreifen 451
bash .................................................... 385
Befehle regelmäßig ausführen 422
Benutzerrechte ................................ 317
Berkeley System Distribution (BSD)
293
Bourne-Shell .................................... 384
BSD ...................................................... 293
BSD-Startstkript ............................. 414
bunzip2-Befehl ................................ 895
bzip2-Befehl ..................................... 895
bzip2-Komprimierung .................. 415
cat-Befehl ......................................... 402
cd-Befehl .......................................... 400
chgrp-Befehl .................................... 401
Child-Prozess .................................. 308
chmod-Befehl ................................. 400
chown-Befehl .................................. 401
cp-Befehl ........................................... 398
Cronjob .............................................. 422
C-Shell ................................................ 385
CUPS, Drucksystem ..................... 449
Daemon ........................................... 409
Darwin ............................................... 293
date-Befehl ...................................... 407
Datei kopieren ................................ 398
Datei löschen .................................. 399
Datei umbenennen ....................... 399
Datei verschieben .......................... 399
Dateibefehle .................................... 397
Dateibesitzer wechseln ............... 401
Dateiendung ................................... 398
1210
Index
Unix (Forts.)
Dateigruppe wechseln ................. 401
Dateiname ............................... 316, 397
Dateinamen-Platzhalter ............ 398
Dateisysteme ................................... 314
Datum und Uhrzeit ändern ...... 407
Datum und Uhrzeit formatieren
407
diff-Befehl ........................................ 405
du-Befehl .......................................... 406
echo-Befehl ..................................... 402
Emacs, Texteditor ......................... 433
Escape-Sequenz ............................. 404
exit-Befehl ....................................... 390
fg-Befehl ............................................ 386
finger, Dienstprogramm ............ 382
fork(), Systemaufruf ..................... 307
fsck-Befehl ....................................... 406
Gerätedatei ............................... 314, 315
GNOME .......................... 306, 440, 443
grafische Benutzeroberfläche 439
grep-Befehl ...................................... 403
groupadd-Befehl ........................... 409
Group-ID .................................. 308, 381
gunzip-Befehl .................................. 895
gzip-Befehl ....................................... 895
gzip-Komprimierung .................... 415
Hard Link ........................................... 317
head-Befehl ..................................... 402
HIER-Dokument ............................. 395
Home-Verzeichnis .......................... 315
HP UX ................................................. 293
IBM AIX ............................................. 293
ifconfig-Befehl ................................ 445
init-Prozess ...................................... 307
inode .................................................... 316
Installation von Software ........... 415
IP-Adresse zuweisen ..................... 446
KDE .................................. 306, 440, 441
kill(), Systemaufruf ...................... 308
kill-Befehl .......................................... 410
Korn Shell ......................................... 385
less-Befehl ........................................ 403
Link (Dateisystem) ......................... 317
Linux ......................................... 293, 296
logger-Befehl .................................... 412
Login ................................................... 379
ls-Befehl ............................................. 399
Mac OS X ................................. 293, 456
mail-Befehl ....................................... 423
make-Befehl ...................................... 415
Unix (Forts.)
man-Befehl ...................................... 305
Minix .................................................. 296
mkdir-Befehl .................................. 400
mkfs-Befehl ...................................... 407
Modularität .................................... 292
more-Befehl ..................................... 403
mount-Befehl .................................. 405
mv-Befehl ......................................... 399
MySQL-Installation ........................ 715
Netzwerkkonfiguration ............... 445
Neustart .............................................. 411
NFS ...................................................... 448
Pager .................................................. 403
Parent-Prozess ............................... 308
passwd-Befehl ............................... 409
Passwort ändern .......................... 409
patch-Befehl .................................... 405
PATH, Umgebungsvariable ....... 387
pause(), Systemaufruf ................. 308
Pfadangabe ...................................... 315
Pipe ...................................................... 395
POSIX-Standard ............................ 293
Programm automatisch starten
413
Prozessmodell ................................ 307
Prozessverwaltung ...................... 409
ps-Befehl ................................. 309, 409
pstree-Befehl .................................. 409
pwd-Befehl ...................................... 400
regulären Ausdruck suchen ...... 403
rm-Befehl .......................................... 399
rmdir-Befehl ................................... 400
root, Benutzer ........................ 309, 381
route-Befehl .................................... 446
Runlevel ............................................. 413
Samba-Server ................................. 450
Shell ........................................... 305, 379
Shell-Ausgabeumleitung ........... 394
Shell-Eingabeumleitung ............. 394
Shell-Eingabevervollständi-
gung .............................................. 388
Shell-History ................................... 389
Shell-Skript ....................................... 417
shutdown-Befehl ............................. 411
Software installieren .................... 415
Stand-alone Shell ........................... 385
Standardrouter einrichten ........ 446
startx-Befehl ................................... 440
su-Befehl ........................................... 390
Sun Solaris ....................................... 293
Unix (Forts.)
Swap-Partition ................................ 312
Symbolic Link ................................... 317
Syslog ........................................ 409, 411
System herunterfahren ................ 411
System V ........................................... 293
Systemaufruf .................................. 304
Systemprogramme ....................... 397
tail-Befehl ........................................ 403
tar-Befehl ................................. 415, 893
tar-Datei ............................................ 415
Textbefehle ...................................... 401
Textdatei anzeigen ...................... 402
Textdateien vergleichen ............ 405
Texteditoren .................................... 423
top-Befehl ......................................... 410
Umgebung ....................................... 385
Umgebungsvariable setzen ....... 388
umount-Befehl .............................. 406
unalias-Befehl ................................. 422
unzip-Befehl ................................... 896
useradd-Befehl .............................. 408
userdel-Befehl ................................ 409
User-ID ...................................... 308, 381
Verwaltungsbefehle .................... 405
Verzeichnis anlegen .................... 400
Verzeichnis löschen ..................... 400
Verzeichnis wechseln .................. 400
Verzeichnisbaum ............................ 315
Verzeichnisbefehle ........................ 397
Verzeichnisinhalt anzeigen ....... 399
vi, Editor ............................................ 424
virtuelles Terminal ........................ 383
wc-Befehl ......................................... 405
Window-Manager ........................ 306
Wörter zählen ................................ 405
X Window ............................... 306, 439
zip-Befehl ......................................... 896
Zugriffsrechte ................................... 317
Unix System V Init ............................. 413
Unix-Benutzerkonto
in LDAP abbilden .......................... 805
unless, Perl-Fallunterscheidung 524
unset(), PHP-Funktion ..................... 977
unshift, Perl-Anweisung .................. 518
unsigned, C-Datentyp ...................... 479
UNSIGNED, SQL-Feldoption .......... 724
Unterprogramm
Aufruf durch CPU ........................... 125
unzip, Unix-Befehl ............................ 896
update(), AWT-Methode .................. 641
1211
Index
UPDATE, SQL-Abfrage ...................... 729
Urgent Data (TCP) .............................. 258
URL ................................................. 279, 1144
Schema ............................................... 281
USB ................................................. 143, 1144
USB-Stick ................................................ 153
Use Case � Anwendungsfall
use, Perl-Direktive .............................. 517
Usenet ........................................... 276, 1144
User Level Security, Samba ............. 451
User Level Security, Windows-Freiga-
beart ................................................... 373
useradd, Unix-Befehl ....................... 408
userdel, Unix-Befehl ........................ 409
User-ID
von Prozessen ................................ 308
User-ID (Unix) ...................................... 381
userPasssword, LDAP-Attribut .... 806
Users, Mac OS X-Verzeichnis .......... 315
usr, Unix-Verzeichnis ........................ 315
UTF-8 ...................................................... 1144
UTF-8, Unicode-Codierung ............. 877
V
V.24-Schnittstelle ............................... 144
var, Unix-Verzeichnis ........................ 315
VARCHAR, SQL-Datentyp ............... 723
Variable
Array, Perl .......................................... 518
automatische (lokale) ................. 479
Datentypen, C ................................. 479
Deklaration, C ................ 475, 477, 478
Deklaration, Java .......................... 505
deklarieren, Perl .............................. 517
Existenz testen, Perl ...................... 524
globale .............................................. 480
Gültigkeitsbereich, C .................... 479
Hash, Perl .......................................... 518
in C ...................................................... 478
in der PowerShell ........................... 352
in Programmiersprachen ............. 69
in Shell-Skripten ............................. 419
lokale .................................................. 479
mathematische ................................. 61
Perl ....................................................... 517
PHP ..................................................... 965
Schleifenzähler .............................. 489
Skalar, Perl ............................... 516, 518
Variable (Forts.)
statische ........................................... 480
Substitution, Perl ........................... 516
Substitution, Shell-Skript ............ 419
Typecasting ...................................... 481
Variablen
Ruby .................................................... 532
Variablensubstitution
in Perl-HIER-Dokumenten .......... 523
in Shell-Skripten ............................. 419
Perl ....................................................... 516
VAX, Minicomputer-Serie von DEC
41
Vektorgrafik ............................................ 55
Vektorrechnung .................................... 95
Vereinigungsmenge ............................ 72
Vererbung ............................. 52, 509, 1145
Interface, Java .................................. 511
PHP ..................................................... 984
Ruby .................................................... 556
Vergleichsoperation ............................ 67
beim virtuellen Prozessor .......... 106
Umkehrung ........................................ 67
Vergleichsoperator ........................... 482
Vergleichsoperatoren
SQL ....................................................... 726
Verhaltensmuster ............................. 685
Verknüpfung
logische ................................................ 61
Verschieben
Datei, Mac OS X ............................. 462
Datei, Unix ....................................... 399
Datei, unter Windows .................. 341
Verschlüsselung ................................ 1128
asymmetrische ............................. 1129
Einweg- ............................................ 1129
symmetrische ................................ 1129
Verteilte Anwendung ............. 199, 620
Aufgaben .......................................... 620
Backend ............................................. 199
Frameworks im Vergleich ........... 621
Frontend ............................................ 199
Java EE-Plattform .......................... 621
vertical-align, CSS .............................. 950
Verzeichnis
anlegen, Unix ................................ 400
anlegen, Windows ......................... 347
Arbeitsverzeichnis anzeigen, Unix
400
Inhalt anzeigen, Unix .................. 399
Verzeichnis (Forts.)
löschen, Unix .................................. 400
löschen, Windows .......................... 347
verarbeiten, Perl ............................. 527
wechseln, Unix .............................. 400
wechseln, Windows ...................... 346
Verzeichnisdienst ............................. 1145
Active Directory ............................. 374
LDAP .................................................. 804
vi, Texteditor ....................................... 424
Befehlsmodus ................................. 424
Dateibefehle .................................... 427
Editiermodus ................................... 424
Navigation ....................................... 425
Suchfunktionen .............................. 425
Text kopieren .................................. 426
Text löschen .................................... 426
Video
Dateiformate .................................. 892
Video-Dateiformat ............................ 892
AVI ....................................................... 892
MPEG .................................................. 892
QuickTime ........................................ 892
Video-DVD
auf dem PC abspielen ................... 158
Region-Code ..................................... 158
View
Ruby on Rails ................................ 1023
Vim, Texteditor ................................... 424
Virtual Box ............................................ 322
Virtual PC .............................................. 322
Virtual Private Network � VPN
VirtualHost, Apache-Direktive ..... 783
Virtualisierung .................................... 320
Microsoft Virtual PC .................... 322
Parallels Desktop ........................... 322
Virtual Box ....................................... 322
VMware .............................................. 321
VMware Workstation .................. 322
Xen ....................................................... 321
Virtuelle Maschine
Java .................................................... 499
Virtueller Host (Apache) 780, 784, 785
Virtueller Prozessor .......................... 103
Arbeitsspeicher ............................... 104
Aufbau ............................................... 104
Befehle ............................................... 105
Beispielprogramme ...................... 108
Flag ..................................................... 106
Rechenbefehl ................................... 105
1212
Index
Virtueller Prozessor (Forts.)
Register .............................................. 104
Sprungbefehl ................................... 107
Stack ................................................... 108
Vergleichsoperation ..................... 106
Virtueller Speicher ..................... 120, 311
Virus ............................................... 48, 1106
Antivirenprogramm ................... 1109
Aufbau .............................................. 1107
Bootsektor ....................................... 1107
Dateivirus ....................................... 1108
Makrovirus .................................... 1108
polymorpher ................................. 1108
Schutzmaßnahmen .................... 1109
Stealth- ............................................ 1108
Visitor, Entwurfsmuster ................. 689
Vista � Windows Vista
Vlissides, John ..................................... 684
VLSM ...................................................... 1145
VLSM, variables IP-Teilnetz ............ 236
VMS, Betriebssystem ........................ 296
VMware ................................................... 321
VMware Workstation ....................... 322
void, Datentyp
Zeiger auf ........................................... 572
void, Funktionsdatentyp, C .......... 490
Volladdierer (Schaltung) .................... 91
Volltextdatenbank ............................ 701
von Neumann, John ..................... 38, 113
Von-Neumann-Rechner 103, 113, 1145
VPN ........................................................ 1130
W
-w, Perl-Modifikator ........................... 515
W3C, DOM ............................................ 866
Wahre Aussage ..................................... 60
Wahrheitswertetabelle ...................... 64
NAND-Verknüpfung ....................... 88
XOR-Verknüpfung .......................... 66
Wall, Larry .............................................. 514
WAMP-System ................................... 964
WAN ............................................... 191, 1145
technische Lösungen ................... 192
Warnock, John ....................................... 42
Warnung
in Perl aktivieren ............................ 515
Wasserfallmodell ............................... 661
WAV, Audio-Dateiformat ............... 891
Wavetable-Synthese (MIDI) ........... 170
wc, Unix-Befehl .................................. 405
wchar_t, C-Datentyp ........................ 479
Wearable Computer ........................... 46
Web 2.0 ................................................ 1037
Web Fonts (CSS3) .............................. 960
Webanwendung
Ajax ................................................... 1081
CGI .................................................... 1029
Grundprinzip .................................. 963
Sicherheitsprobleme .................... 1121
Webbrowser
KDE Konqueror ............................... 441
Weblog .................................................. 1031
Blogging-Communitys .............. 1031
Software für .................................. 1032
WebLogic, Java Application
Server .................................................. 621
Web-safe Colors .................................. 948
Webseiten, CSS-Layout für .............. 955
Webserver .............................................. 198
Mongrel .......................................... 1029
Programmierung .......................... 963
Webserver (Apache) ........................... 765
Webservice ........................................... 1145
Webservices ......................................... 628
Beschreibungsdatei ...................... 628
Client .................................................. 629
Definition ......................................... 628
registrieren ...................................... 628
SOAP .................................................. 628
Sprachen ........................................... 629
UDDI .................................................. 628
WSDL .................................................. 628
Websichere Farben ........................... 948
Website
robots.txt-Datei ............................. 943
Wechseldatenträger .......................... 153
CD-ROM ............................................. 154
Diskettenlaufwerk ......................... 153
DVD ...................................................... 157
Jaz-Laufwerk .................................... 153
LS-120 .................................................. 153
ZIP-Laufwerk ................................... 153
Weizenbaum, Joseph .......................... 99
Well-known Port ................................. 257
Well-known Ports
Tabelle einiger wichtiger ........... 260
WEP (Wired Equivalent Privacy) ... 213
Wertdiskret ............................................. 56
Wertetabelle
NOR-Verknüpfung ........................... 88
Wertrückgabe
Perl-Subroutine .............................. 526
Wertzuweisung
C ........................................................... 477
Operator ........................................... 483
What You See Is What You Get �
WYSIWYG
WHERE-Klausel, SQL .......................... 725
while()-Schleife ................................... 488
while, Ruby-Anweisung ................... 543
while-Befehl
in Shell-Skripten ............................. 419
White Book .......................................... 1145
White Book (Video-CD) ..................... 155
Whitespace
in C-Programmen .......................... 478
in RegExp .......................................... 579
Wide Area Network ............................ 191
Widerspruch, logischer ...................... 96
Widget .................................................... 631
WiFi Protected Access ....................... 214
WiFi � Wireless LAN
Wiki ........................................................ 1032
Wikipedia ............................................ 1032
Wildcard
in Unix-Dateinamen .................... 398
Windows-Dateiname ................... 345
Win32 ..................................................... 1145
Umgang mit 16-Bit-Anwendungen
330
Win32 API .................................... 305, 1145
WindowListener, AWT-Klasse ....... 645
Window-Manager ............................. 440
CDE ..................................................... 440
fvwm2 ............................................... 440
Windows ....................................... 295, 327
16-Bit-Versionen ............................. 327
2000 .......................................... 296, 328
2000 Server ..................................... 328
7 ............................................................ 296
95 ................................................ 296, 328
98 ................................................ 296, 328
Active Directory ............................. 374
als Server einrichten ..................... 372
Anzeige-Konfiguration ............... 361
Apache-Installation ...................... 772
attrib-Befehl .................................... 347
auf Netzwerkrechner zugreifen 373
Ausgabeumleitung ....................... 345
Batch-Datei ...................................... 347
Benutzeran- und -abmeldung 340
1213
Index
Windows (Forts.)
Benutzerverwaltung ..................... 361
cd-Befehl ........................................... 346
copy-Befehl ...................................... 347
CreateProcess(), Systemaufruf 309
CygWin .............................................. 473
Datei kopieren ................................. 341
Datei löschen, Konsole ................ 347
Datei umbenennen ....................... 347
Datei verschieben .................. 341, 347
Dateiattribut .................................... 319
Dateiattribute ändern ................. 347
Dateiname ........................................ 319
Dateinamen-Platzhalter ............ 345
Dateisysteme .......................... 318, 333
Datenträgerverwaltung ............. 364
del-Befehl .......................................... 347
Desktopkonfiguration .................. 361
Dienst ................................................. 364
dir-Befehl .......................................... 346
Drucker freigeben .......................... 373
durch Unix-Server bedienen .... 450
Eingabeaufforderung .................. 346
Eingabeumleitung ........................ 345
Entwicklung ..................................... 327
Ereignisanzeige .............................. 364
Explorer .............................................. 341
Fenster ............................................... 337
Freigabeart ...................................... 373
Gruppenrichtlinienobjekt .......... 364
Hardwarekonfiguration ..... 361, 363
help-Befehl ....................................... 305
herunterfahren .............................. 340
Home-Verzeichnis .......................... 319
IP-Adresse zuweisen ..................... 368
Konsole .............................................. 344
Konsole starten .............................. 346
Konsolenbefehl .............................. 346
Laufwerksbuchstaben .................. 318
MDI-Anwendung ........................... 338
Me ............................................... 296, 328
Microsoft Management Console
(MMC) ........................................... 364
mkdir-Befehl .................................... 347
MMC (Microsoft Management
Console) ........................................ 364
move-Befehl ..................................... 347
MySQL-Installation ....................... 716
Netzwerkdrucker nutzen ............ 373
Netzwerkkonfiguration .............. 367
Netzwerktreiber ............................. 367
Windows (Forts.)
Netzwerkverbindung ein-
richten ........................................... 367
neu starten ...................................... 340
NT ................................................ 295, 328
NT Server ........................................... 328
NT-Familie ........................................ 328
Oberfläche ........................................ 335
Ordner freigeben ............................ 372
Ordneransicht ................................. 342
path, Umgebungsvariable ........ 346
Pfadangabe ...................................... 318
Pipe ...................................................... 345
Prompt .............................................. 346
Prozessmodell ................................ 309
regedit, Dienstprogramm ........... 365
Registry .............................................. 365
rename-Befehl ................................. 347
rmdir-Befehl ..................................... 347
SDI-Anwendung ............................. 337
Server 2003 ...................................... 328
Server 2008 ...................................... 328
Serverpakete .................................... 375
Serversystem .................................... 373
Serverversionen .............................. 328
Share Level Security ...................... 373
Software installieren .................... 361
Startmenü ......................................... 338
Systemkonfiguration .................. 360
Systemsteuerung .......................... 360
Systray .............................................. 340
Taskleiste .......................................... 338
Textdatei anzeigen, Konsole ..... 347
type-Befehl ........................................ 347
Umgebungsvariable setzen ...... 346
User Level Security ........................ 373
Versionsübersicht .......................... 328
Verzeichnis anlegen ...................... 347
Verzeichnis löschen ....................... 347
Verzeichnis wechseln .................. 346
Verzeichnisinhalt, Konsole ....... 346
Vista ................................................... 296
Win32 API ......................................... 305
XP ........................................................ 296
Windows 2000 .......................... 296, 328
Server .................................................. 328
Shell .................................................... 344
Windows 2000 Server ...................... 374
Windows 7 ................................... 296, 328
Windows 8 .......................... 296, 328, 332
Versionen .......................................... 332
Windows 8 (Core) ............................... 332
Windows 8 Enterprise ...................... 333
Windows 8 Pro .................................... 333
Windows 8.1 ................................. 296, 332
Windows 95 ................................. 296, 328
Oberfläche ........................................ 335
Windows 98 ................................. 296, 328
Oberfläche ........................................ 335
Windows Me ............................... 296, 328
Windows NT ................................ 295, 328
Server ................................................. 328
Shell .................................................... 344
Windows Phone .................................... 46
Windows PowerShell � PowerShell
Windows RT ......................................... 333
Windows Server 2003 ...................... 328
Windows Server 2008 ...................... 328
Windows Server 2012 ........................ 374
als DHCP-Server ............................. 374
als DNS-Server ................................ 374
als Webserver .................................. 374
Server-Rollen ................................... 374
Varianten .......................................... 375
Windows Vista ........................... 296, 328
Windows XP ................................ 296, 328
Oberfläche ........................................ 335
Shell .................................................... 344
Windows-Eingabeaufforderung 344
Eingabevervollständigung ........ 344
History ............................................... 344
QuickEdit-Modus ........................... 345
Tastenkürzel .................................... 344
WinGate, Backdoor ............................ 1112
Winkelgeschwindigkeit, kon-
stante .................................................. 152
WinTel-PC ................................................ 43
Wired Equivalent Privacy ................ 213
Wireless LAN .............................. 209, 210
Access Point ...................................... 212
Basic Service Set (BSS) ................... 212
CSMA/CA-Verfahren ..................... 212
Extended Servive Set (ESS) .......... 213
Frequency Hopping ....................... 211
Frequenzbereiche ........................... 211
Hardware .......................................... 212
Sicherheit ........................................... 213
Übertragungstechnik .................... 211
WiFi Protected Access (WPA) ..... 214
Wired Equivalent Privacy ............ 213
Wirth, Niklaus ........................................ 50
Wirtschaftsinformatik ........................ 33
1214
Index
WLAN � Wireless LAN
Wohlgeformtheit .............................. 1145
Wohlgeformtheit, XML-Doku-
ment ................................................... 832
Word, 16 Bit .............................................. 81
WordPress, Blog-Tool ..................... 1032
World Wide Web ................................. 278
Geschichte ......................................... 178
HTTP-Protokoll .............................. 278
Komponenten .................................. 179
URL ...................................................... 279
Worst Case (Komplexität) ................ 97
Wortbreite ............................... 41, 81, 1145
der CPU .............................................. 120
verschiedener CPUs ....................... 121
Wörter zählen (Textdateien,
Unix) ................................................. 405
Wozniak, Steve ............................. 42, 294
WPA .......................................................... 214
Write-Host, PowerShell-Cmdlet ... 352
WSDL ...................................................... 1145
WSDL, Webservices ........................... 628
Wurm .................................................... 1108
Schutzmaßnahmen .................... 1109
WYSIWYG ...................................... 42, 1145
X
X Window .......................... 306, 439, 1145
Konfiguration ................................. 439
SaX, openSUSE-X-Konfigurations-
programm .................................. 440
starten .............................................. 440
Xconfigurator, Fedora-Konfigurati-
onsprogramm ........................... 440
X11R7 ........................................................ 439
x86-Assembler, Beispiele ................ 126
Xalan, XSLT-Prozessor ....................... 851
XAMPP .................................................... 753
Xconfigurator (X-Server-Konfigurati-
onsprogramm) .............................. 440
Xen ............................................................ 321
Xerces, XML-Parser ............................ 856
XEROX PARC ........................................ 295
Xerox PARC ............................................ 42
XFree86 .................................................. 439
XHTML ........................................ 900, 1145
Besonderheiten ............................. 903
XML ................................................ 821, 1145
Ajax-Datenaustausch durch 1088,
1090, 1092
Attribut .................................... 823, 828
Attribut, falsche Verwendung 828
Attribut, Verwendung ................. 828
Attributdeklaration (DTD) ......... 841
Beispieldokument ................. 824, 857
CDATA-Block .................................. 830
CSS verwenden ............................... 850
Dateiendung .................................... 823
Datenbank ........................................ 701
DocBook ............................................ 822
DOCTYPE-Angabe ......................... 834
Dokument parsen, SAX .............. 858
Dokumenteingabe ......................... 822
Dokumentfragment ..................... 833
Dokumentstruktur ........................ 823
DTD .................................................... 834
DTD definieren ................................ 835
DTD, Attribut deklarieren ........... 841
DTD, Element deklarieren .......... 837
DTD, Entity deklarieren .............. 845
Editor .................................................. 822
EJB-Deployment-Deskriptor ...... 625
Element (Tag) .................................. 825
Elementdeklaration (DTD) ......... 837
Entity deklarieren (DTD) ............ 845
Entity-Referenz ..................... 829, 845
Entity-Referenz, numerische .... 829
Entity-Referenzen vermeiden 830
Hierarchie ........................................ 826
in Datenbank schreiben, Beispiel-
programm .................................. 865
Kommentar ...................................... 831
leeres Tag .......................................... 827
leeres Tag, Kurzfassung .............. 827
mehrere Namensräume ............. 846
MIME-Type ....................................... 823
Namensraum ................................. 846
Namensräume, mehrere im Doku-
ment .............................................. 846
Parser ................................................. 856
Parser, Xerces ................................. 856
PCDATA ............................................ 830
Processing Instruction (PI) ......... 825
Programmierung .......................... 856
Programmierung, SAX ................ 858
PUBLIC-ID ........................................ 834
SAX ..................................................... 858
Schema .............................................. 847
XML (Forts.)
Schema-Beispiel ............................. 847
SGML-Erbe ......................................... 821
Sonderzeichen ................................ 829
spezielle Editoren .......................... 822
Standalone-Dokument ............... 825
Standard-Namensraum ............ 846
Steueranweisung ........................... 825
SVG ...................................................... 822
SYSTEM-ID ........................................ 834
Tag ...................................................... 823
Tag-Name ......................................... 827
Tag-Verschachtelung ................... 826
Universalität ................................... 822
verschachteltes Tag ............. 826, 833
Verschachtelungsfehler .............. 833
Webservices ..................................... 628
wichtige Dokumentformate ..... 822
Wohlgeformtheit ........................... 832
Wurzelelement ............................... 832
Xerces, Parser .................................. 856
XHTML ............................................... 822
xmlns-Angabe ................................ 847
xml-Steueranweisung ................. 825
XPath ................................................ 1146
XSL ...................................................... 850
XSL-FO .............................................. 850
XSLT ................................................... 850
Zeichensatz ...................................... 825
XML Schema .............................. 847, 1146
Attribut deklarieren ..................... 848
Element deklarieren ..................... 848
verschachteltes Element ............. 848
XML-Datenbank ................................. 701
XML-Editor ........................................... 822
XMLHttpRequest ............................. 1082
XMLReader, Java-Interface ............. 858
XOR-Schaltung ...................................... 89
XOR-Verknüpfung ............................... 66
XP � Extreme Programming
XPath ...................................................... 1146
Überblick ........................................... 855
X-Server ....................................... 306, 439
Konfiguration ................................. 439
über das Netzwerk betreiben .... 267
XSL .......................................................... 850
XSL Formatting Objects � XSL-FO
XSL-FO ......................................... 850, 1146
XSLT .............................................. 850, 1146
div, Operator ................................... 856
Funktion ............................................ 856
1215
Index
XSLT (Forts.)
position(), Funktion ...................... 856
Prozessor ......................................... 850
round(), Funktion .......................... 856
text(), Funktion ............................... 856
wichtige Elemente ......................... 853
Wurzelelement ............................... 853
Xalan, Prozessor ............................. 851
XPath-Ausdruck ............................. 855
xsl:attribute, Tag ........................... 854
xsl:choose, Tag ............................... 855
xsl:copy-of, Tag .............................. 854
xsl:for-each, Tag ............................ 854
xsl:if, Tag .......................................... 854
xsl:otherwise, Tag ......................... 855
xsl:stylesheet, Tag ......................... 853
xsl:template, Tag ........................... 853
xsl:value-of, Tag ............................ 854
xsl:variable, Tag ............................ 855
xsl:when, Tag .................................. 855
XSLT-Prozessor .................................. 850
XSS � Cross-Site-Scripting
Y
YAML, CSS-Framework .................... 959
YAML, Dateiformat .......................... 1018
YEAR, SQL-Datentyp ......................... 722
Yellow Book (CD-ROM) ..................... 155
yield, Ruby-Schlüsselwort ............... 557
Z
Z3, erster funktionierender
Computer .......................................... 37
Z80, Prozessor ...................................... 121
Zahl
Festkomma- ....................................... 84
Fließkomma- ..................................... 84
ganze .................................................... 70
Zahl (Forts.)
imaginäre ............................................ 71
komplexe ............................................. 71
natürliche ........................................... 70
rationale .............................................. 71
reelle ...................................................... 71
römische .............................................. 75
Zahlenmengen
ganze Zahlen ..................................... 70
imaginäre Zahlen ............................. 71
komplexe Zahlen ............................... 71
natürliche Zahlen ........................... 70
rationale Zahlen ................................ 71
reelle Zahlen ........................................ 71
Zahlensysteme ...................................... 75
Dezimalsystem ................................. 75
Dualsystem ........................................ 76
Hexadezimalsystem ....................... 77
Oktalsystem ....................................... 76
römische Zahlen ............................... 75
Schreibweise ..................................... 80
Umrechnung ...................................... 78
Zeichen
alternatives in RegExp ................. 578
aus String lesen, Java .................. 505
ausschließen in RegExp ............... 578
beliebig viele, in RegExp .............. 578
Darstellung, C ................................. 479
eines oder mehr, in RegExp ........ 578
Eingabe, C ........................................ 496
genaue Anzahl, in RegExp .......... 579
Gruppe in RegExp .......................... 578
optionales, in RegExp ................... 578
Wortbestandteil in RegExp ........ 579
Zeichengerät (Char Device) ........... 302
Zeichenkette � String
Zeichen-Literal .................................... 480
Zeichensatz .................................... 57, 873
ANSI ..................................................... 875
ASCII ...................................................... 57
Codepage .......................................... 875
Eingabe chinesischer Zeichen 880
Zeichensatz (Forts.)
in HTML angeben ........................ 904
Unicode ....................................... 57, 876
XML ..................................................... 825
Zeichenvorrat
der Turing-Maschine ................... 100
Zeiger ............................................ 491, 1146
auf beliebigen Datentyp ............. 572
auf nichts (NULL) .......................... 498
fehlender in Java ........................... 506
für Call by Reference .................... 492
Zeilenfrequenz (Monitor) ............... 165
Zeilenumbruch
auf verschiedenen Plattfor-
men ................................................ 870
HTML ................................................ 904
konvertieren ..................................... 871
Perl-Programme ............................. 872
Zeilenumbruche
entfernen, Perl ................................. 516
Zeitdiskret ............................................... 56
Zeitmanagement ................................ 663
Netzplan ........................................... 664
Zentraleinheit ....................................... 116
alte Bedeutung ................................ 117
ZEROFILL, SQL-Feldoption .............. 724
Ziffer
in RegExp .......................................... 579
z-index, CSS-Angabe ......................... 953
zip, Unix-Befehl ................................. 896
ZIP-Datei ................................................ 893
ZIP-Laufwerk ......................................... 153
Zugriffsrechte ....................................... 317
ändern, Unix .................................. 400
Zuordnungseinheit (Datei-
system) ............................................... 313
Zuse, Konrad ........................................... 37
Zustand
der Turing-Maschine ................... 100
Zweierkomplement ............................ 83
ZX Spectrum ........................................ 294
ZX81 .................................................. 43, 294
1216