German HOWTO

Winfried Trümper <winni@xpilot.org> v1.6, 19 March 1997 Dieses Dokument enthält Tips und Informationen für deutschsprachige Linux-Benutzer. NotetoEnglishreaders : thisdocumentexplainstheGerman − specificaspectsofLinux.

Contents

1 Über das German-HOWTO 4 1.1 Benutzung auf eigene Gefahr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Zielgruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Thematischer Umfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3.1 Was ist neu in dieser Version? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Verfügbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5 Rückkopplung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.6 Urheberrechte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.7 Danksagung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Rüstzeug und generelle Bemerkungen 6 2.1 Warum sind deutsche Anpassungen notwendig? . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Empfohlene Begleitliteratur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Kurzes Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Menschen 8 3.1 Benutzergruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 Linux-Supporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3 Online Chat (IRC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 Newsgroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Dokumentation 9 4.1 Deutsches Linux HOWTO Projekt (DLHP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.2 Bücher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.3 Deutschsprachige Manual-Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.4 Diverses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4.4.1 GNU emacs reference card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.4.2 Crash-Kurs Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5 Das System 10

5.1 Konsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5.1.1 Tastenbelegung der Textkonsolen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.2 Zeichensatz für die Textkonsolen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5.2.1 Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.3 Tastenbelegung von ‘XFree86’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.3.1 Version 2.1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.3.2 Version 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.3.3 Version 3.2 und höher: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.3.4 Alle Versionen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5.4 Zeitzonen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.4.1 DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.4.2 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

6 Anwendungssoftware 18

6.1 Außer Konkurenz ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.1.1 Zeichensätze ohne Umlaute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.1.2 Eigene Süppchen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

6.2 Die Ausreißer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.2.1 readline und Verwandte (z.B. bash) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.2.2 telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.2.3 ytalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.2.4 selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.2.5 dosemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.2.6 emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.2.7 less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2.8 pine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2.9 joe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2.10 elm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.2.11 nn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.2.12 lynx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.2.13 gslp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.2.14 xfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

6.3 Weiterführende Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.3.1 emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.3.2 TeX/LaTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.3.3 Rechtschreibprüfung mit deutschem Wörterbuch . . . . . . . . . . . . . . . . . . . . . 26

7 Textdateien 26

7.1 Das Papierformat DIN A4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 7.1.1 xdvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 7.1.2 ghostview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 7.1.3 gs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 7.1.4 dvips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 7.1.5 ImageMagick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

7.2 Konvertierung von DOS- und Mac-Texten nach Linux . . . . . . . . . . . . . . . . . . . . . . 28 7.2.1 Die Zeilenenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 7.2.2 Die Zeichensätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

7.3 Drucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.4 PostScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

8 Programmierung 29 8.1 National Language Support (NLS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 8.2 Übersetzung von GNU-Programmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 8.3 ncurses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 8.4 Erzeugung von PostScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

9 Anhang 30 9.1 Erklärende Übersetzung einiger technischer Begriffe . . . . . . . . . . . . . . . . . . . . . . . . 30

1 Über das German-HOWTO

1.1 Benutzung auf eigene Gefahr

Text, Abbildungen und Programme in diesem HOWTO wurden mit großer Sorgfalt erarbeitet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden HOWTO enthaltenen Angaben mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Kurz: Benutzung auf eigene Gefahr.

1.2 Zielgruppe

Das German-HOWTO wendet sich an Linux-Benutzer, deren Linux-Installation nicht oder nur teilweise an ”deutsche” Begebenheiten angepaßt ist. Die Forderung der Benutzer sollte natürlich sein, daß alle Linux-Distributionen länderspezifische Einstellungen von sich aus berücksichtigen. Schließlich ist dies der Zweck der Distributionen: anhand einfacher Informationen das System weitmöglichst zu konfigurieren, ohne daß der Benutzer erst Guru werden muß.

Kurz: würden alle Distributionen ihre Hausaufgaben machen, wäre diese HOWTO erheblich kürzer.

1.3 Thematischer Umfang

Dieses HOWTO beschränkt sich ausschließlich auf die Beschreibung der für Deutschland spezifischen Konfiguration von Linux und seinen Programmen.

Es wird weder eine allgemeine deutsche Einführung in Linux gegeben, noch wird die vorhandene Original-Dokumentation durch dieses HOWTO überflüssig.

1.3.1 Was ist neu in dieser Version?

Version 1.4 Korrekturen an 1.3.

Version 1.3 Komplette Neufassung des HOWTOs. Jetzt auch ausdrücklich für den gesamten deutschsprachigen Raum.

Version 1.2 ?

Version 1.1 Konvertierung in das Format linuxdoc-sgml.

1.4 Verfügbarkeit

Dieses HOWTO ist offizieller Teil des ‘Linux Documentation Projects’ (LDP) und somit wie alle anderen Dokumente des LPD erhältlich. Nähere Informationen findet man unter den URLs

        <http://www.jura.uni-sb.de/LDP/> <http://www.uni-paderborn.de/Linux/mdw/>

oder im Verzeichnis /usr/doc/HOWTO/ auf der eigenen Festplatte.

1.5 Rückkopplung

Korrekturen von Tippfehlern und Verbesserungsvorschläge direkt an mich schicken: winni@xpilot.org.

Einstellungen aus MAKEFILEs nehme ich nicht mehr entgegen: sie sind direkt an den Hersteller der Linux-Distribution zu richten. Wo kämen wir hin, wenn das German HOWTO zur allgemeinen Sammelstelle für Bug-Fixes würde?

Man verschone mich mit über das HOWTO hinausgehende Fragen wie z.B. ‘Warum stürzt ispell ab?’. Ich stehe aus gutem Grund nicht auf der Liste der deutschen Linux-Unterstützer und beantworte auch keine Fragen per e-mail.

1.6 Urheberrechte

Copyright (1994,1995,1996,1997) Winfried Trümper <winni@xpilot.org>

Das German-HOWTO darf im ganzen oder teilweise vervielfältigt und vertrieben werden, sowohl in gedruckter als auch in elektronischer Form, solange dieses Copyright beibehalten wird. Kommerzieller Vertrieb ist in diesem Sinne ausdrücklich erlaubt, solange höchstens (anteilige) Kosten für die Datenträger berechnet werden.

Note to English readers:

The German-HOWTO may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as the above copyright notice is retained on all copies. Commercial redistribution under the GPL is allowed and encouraged.

1.7 Danksagung

Folgende Personen haben durch Vorschläge am German-HOWTO mitgewirkt:

     Bernhard Aceman {$<$}a2607425@athena.rrz.Uni-Koeln.DE{$>$}
     Andreas Bagge {$<$}Andreas_Bagge@h2.maus.de{$>$}
     Andries Brouwer {$<$}Andries.Brouwer@cwi.nl{$>$}
     Karl Brodowsky {$<$}bk1@aixcomp2.urz.uni-heidelberg.de{$>$}
     Bernhard Buettner {$<$}ben@dl6rai.muc.de{$>$}
     Gert Doering {$<$}gert@greenie.muc.de{$>$}
     Karl Eichwalder {$<$}ke@ke.central.de{$>$}
     David Frey {$<$}David.Frey@eos.lugs.ch{$>$}
     Jochen Hein {$<$}jochen.hein@delphi.central.de{$>$}
     Michael Hinz {$<$}michael@fagmed.uit.no{$>$}
     Ulli Horlacher {$<$}framstag@belwue.de{$>$}
     {\tt "}Markus G. Kuhn{\tt "} {$<$}kuhn@cs.purdue.edu{$>$}

2. Rüstzeug und generelle Bemerkungen 6

Detlef Lannert {$<$}lannert@uni-duesseldorf.de{$>$}
Anselm Lingnau {$<$}lingnau@tm.informatik.uni-frankfurt.de{$>$}
Nat Makarevitch {$<$}nat@nataa.frmug.fr.net{$>$}
Sebastian Matschke
Frerk Meyer {$<$}frerk@educat.hu-berlin.de{$>$}
Reiner Miericke {$<$}reiner@schildi.xnc.com{$>$}
Uwe M\"{u}nch {$<$}muench@ph-cip.uni-koeln.de{$>$}
Nils Naumann {$<$}naumann@unileoben.ac.at{$>$}
Danilo Rene Neuber {$<$}daneuber@sbox.tu-graz.ac.at{$>$}
Sven Neuhaus {$<$}sven%fuzzy@fuzzy.ping.de{$>$}
Thomas Ploss {$<$}plossts@cip01.mathematik.uni-stuttgart.de{$>$}
Roland Rosenfeld {$<$}roland@spinnaker.rhein.de{$>$}
Sven Rudolph {$<$}sr1@irz301.inf.tu-dresden.de{$>$}
Dietrich Schmidt {$<$}diet@sfb256.iam.uni-bonn.de{$>$}
Ingo Schroeck {$<$}ioschroe@track.informatik.uni-stuttgart.de{$>$}
Juergen Steiner {$<$}js@barbar.augusta.de{$>$}
Guenter Stueck {$<$}guenter@gst0hb.north.de{$>$}
Martin Schulze {$<$}joey@finlandia.infodrom.north.de{$>$}
Jan Vroonhof {$<$}vroonhof@math.ethz.ch{$>$}

2 Rüstzeug und generelle Bemerkungen

2.1 Warum sind deutsche Anpassungen notwendig?

Linux wird von einer weltweiten Gemeinde von Hackern im Internet entwickelt. Obwohl Linux ursprünglich aus Finnland kommt, ist Englisch gemeinsame Sprache und Ausgangspunkt bei der Programmierung sind meist amerikanische Standards (Papierformat "letter", Zeichensatz ohne Umlaute, usw.).

Gerade weil die Linux-Gemeinde weltweit operiert, sind landesspezifische Einstellungen an vielen Stellen vorgesehen und müssen lediglich aktiviert werden. Das ist schon alles.

2.2 Notation

Tasten werden durch ihre Aufschrift in spitzen Klammern markiert.

2.3 Empfohlene Begleitliteratur

Das Linux Configuration-HOWTO (to appear) erläutert die Handhabung der erwähnten Konfigurationsdateien.

Im Linux Keyboard- und Keystroke-HOWTO findet man alle "Tricks" für die Tastatur.

2.4 Kurzes Glossar

ASCII ist ein 7-bit Zeichensatz und enthält 2ˆ 7 = 2*2*2*2*2*2*2 = 128 Zeichen, was gerade mal für a-z, A-Z, 0-9 und einige wichtige Zeichen ausreicht. Das amerikanische Alphabet halt.

8-bit-clean ein 8-bit Zeichensatz umfaßt 128*2 = 256 Zeichen und kann einige Sonderzeichen aufnehmen. Ist ein Programm in der Lage mit einen 8-bit Zeichensatz umzugehen, so bezeichnet man es auch als ‘8-bit clean’. Ist ein Programm nicht 8-bit clean, so erscheinen oft anstelle der Umlaute ‘äöü’ die Zeichen ‘dv|’. Man beachte den subtilen Unterschied zwischen ‘8bit clean’ und ‘localized’: Ein 8bit cleanes Programm braucht nichts von seiner Locale (und dem verwendeten Zeichensatz!) zu wissen; es muss “nur” alle 256 Zeichen bearbeiten können. Handkehrum kann ein Programm localized sein, aber trotzdem nicht 8bit clean sein, da es gewisse Zeichen verschluckt (z.B. alle Control-Codes).

‘ISO-latin1’ oder ‘ISO-8859-1’ Internationaler 8-bit Zeichensatz, enthält Umlaute und viele Sonderzeichen für die ‘westeuropäischen’ Sprachen. (Die osteuropäischen und weitere haben andere Endziffern.)

Unicode Unicode ist ein Standard, der Zeichen aus den unterschiedlichsten Sprachen der Länder dieser Welt enthält. Dazu werden die Zeichenpositionen in einem 32-bit Zeichensatz definiert, was noch längst nicht abgeschlossen ist. Gängigere Zeichensätze (wie die Zeichen der europäischen Sprachfamilien) sind als 16-bit Untergruppen festgelegt, die in kompatibler Weise als einzelne 16-bit Unicode-Zeichensätze verwendet werden können. Wenn hier von einem Unicode-Zeichensatz die Rede ist, ist die 16-bit Untergruppe der europäischen Sprachfamilien gemeint.

POSIX POSIX steht für ‘Portable Operating System Interface for UniX’. Normierte Schnittstellenbeschreibung zu Kernel- und libc-Funktionen (POSIX.1) resp. zu den Grundutilities (sh, ed, vi, awk, cut, ...) (POSIX.2).

Locale Ist die formale Beschreibung eines Teils der kulturellen Eigenheiten für ein Land oder einen Spracheraum und die vom jeweiligen Programm benötigten übersetzten Texte.

Internationalization Veränderung eines Programms zur Unterstützung mehrerer Sprachen.

i18n Abkürzung für internationalization. Da viele Leute zu faul waren dieses lange Wort immer wieder auszuschreiben, wurden einfach der erste und letzte Buchstabe belassen und der Zwischenraum durch die Anzahl fehlender Buchstaben ersetzt.

Localisation Mit localisation wird der Prozeß bezeichnt, einem bereits internationalisierten Programm alle benötigten Informationen zur Verfügung zu stellen, um den nationalen Besonderheiten, bezüglich der Sprache und kulturellen Umfeld zu entsprechen. Kurz gesagt, i18n ist der eigentliche Übersetzungsprozeß. Der Nutzer kann das lokalisieren eines Programms erreichen, indem er besonderen Umgebungsvariablen geeignete Werte zuweist, welche die zu benutzende ‘locale’ angeben.

l10n Abkürzung für localization, die wie i18n entstanden ist.

3 Menschen

3.1 Benutzergruppen

In vielen Städten haben sich Linux-Benutzer zu sogenannten Linux User Groups (LUG) zusammengetan. Diese Benutzergruppen sind offen für jeden und halten regelmäßige Treffen ab. Sie sind der ideale Treffpunkt für all diejenigen, die sich nicht nur im Cyberspace mit anderen Linuxern austauschen wollen. Eine Übersicht befindet sich unter der URL

        <http://www.schwaben.de/linux/LUG in de.html>

3.2 Linux-Supporter

Eine Liste mit Ansprechpartnern, die Anfängern in einem begrenzten Rahmen kostenlosen Hilfestellung geben, findet sich unter der URL:

        <http://localhost.ruhr.de/Linux-Support.html>

Ziel ist die Verbreitung von Linux als Betriebssystem zu fördern.

3.3 Online Chat (IRC)

Im IRC-Kanal #LinuxGER halten sich einige deutsche Linux-Aktivisten auf. Nähere Informationen unter der URL:

        <http://www.infodrom.north.de/Linux/LinuxGER/>

3.4 Newsgroups

Früher von mir als kostenlose Hotlines degradiert, habe ich die Newsgroups in dieser Version anders eingeordnet. Hotline hat immer den Klang einer Stelle, bei der man auch ohne Lesen des Handbuchs Fragen stellen kann. Obwohl einige Handbücher nun wirklich nicht das gelbe vom Ei sind, sollte man die newgroups mit übermäßigen Fragen verschonen:

de.comp.os.linux.hardware <news:de.comp.os.linux.hardware>de.comp.os.linux.misc

     <news:de.comp.os.linux.misc>
        de.comp.os.linux.x <news:de.comp.os.linux.x>
        de.comp.os.linux.networking <news:de.comp.os.linux.networking>

Stattdessen sind die Newsgroup ein prima Forum, in denen man die nicht ganz alltäglichen Dinge diskutieren kann.

4 Dokumentation

4.1 Deutsches Linux HOWTO Projekt (DLHP)

Das Deutsche Linux HOWTO Projekt beschäftigt sich mit der Übersetzung der originalen Linux HOWTOs ins Deutsche. Unter der URL

        <http://www.tu-harburg.de/ semb2204/dlhp/>

kann man eine Liste aller übersetzten HOWTOs und nähere Informationen zum Projekt abrufen.

4.2 Bücher

Mittlerweile gibt es sehr viele deutschsprachige Bücher zu Linux, weshalb ich die Übersicht aus diesem HOWTO herausgenommen habe. Martin Schulze <joey@finlandia.infodrom.north.de> unterhält eine Liste mit deutschen Büchern rund um Linux, die unter der URL:

        <http://www.infodrom.north.de/Linux/Buecher/>

erhältlich ist und die in der Newsgroup de.comp.os.linux.misc regelmäßig gepostet wird.

4.3 Deutschsprachige Manual-Pages

Eine Gruppe von Freiwilligen hat sich die Übersetzung der englischen Manual-Pages vorgenommen. Obwohl bereits ein ansehnlicher Teil übersetzt ist, werden weiterhin Übersetzer gesucht. Details unter der URL:

        <http://www.Infodrom.North.DE/Linux/manpages-de/>

4.4 Diverses

4.4.1 GNU emacs reference card Eine deutsche Version der äußerst nützlichen Referenzkarte zum Texteditor ‘emacs’ findet man unter der URL:

5. Das System 10

 <http://www.inf.tu-dresden.de/ sr1/projects/emacs-refcard/index.html>

4.4.2 Crash-Kurs Linux

Wer gerne knappe Bescheibungen mag, sollte einen Blick in den von mir geschriebenen ‘Crash-Kurs Linux’ werfen.

 <http://www.uni-koeln.de/themen/linux/ckl/>

5 Das System

5.1 Konsole

Die Konsole ist die Tastatur und der Bildschirm eines Linux-Systems; in der Regel also der VGA-Monitor plus Tastatur.

Linux täuscht den Programmen mehr als eine Konsole vor und der Benutzer kann dann mittels Tastenkombination <Alt-Ctrl-F1> - <Alt-Ctrl-F8> zwischen diesen hin- und herblenden. Die vorgetäuschten Konsolen nennt man virtuelle Konsolen.

|?????????????????| |??????????????????|

|  Escape the     |<--  setfont    loadkeys  -->|^1234567890{\ss}  123 |
|  Gates of hell. |                             | qwertzuiop\"{u}+ 567 |
|                 |=======+             +=======| asdfghjkl\"{o}\"{a}# 789 |
|  Use Linux.     |       |             |       | <yxcvbnm,.? 0,  |
|                 |       |             |       |__________________|
|_________________|       |             |
        MMM               |             |
     MMMMMMMMM            |             |             +---<---< Internet
                          |             |             |
                  +-------*-------------*------+      |
                  |        \           /       |      |      X11 ------+
                  |         \         /        |      |       |        |
                  |  Betriebssystemkern Linux  |   telnetd  xterm      |
Alt+Ctrl F1?F8 ----------------/ <?>           |       \\   ///        |
als Schalter      |           /                |        \\ ///         |
                  |     /    |          \      +-------+· · ·+-------+ |
                  |    /     |           \     | ptyp1 |     | ptyef | |

|······+······+ ⋯ +······+·······+ · · +·······| |

                  | tty0 | tty1 | . . . | tty8 | ttyp1 | · · | ttyef | |
                  +------+------+ - - - +------+-------+ - - +-------+ |
                    |      |              ^|             |
                 bash      emacs          |              less          |
                                          |                            |
                                           `---------------------------'

Die nachfolgend beschriebenen Einstellungen betreffen alle virtuellen Konsolen gleichzeitig. Welches die "richtige" Datei für die Kommandos ist, darüber kann nur das Handbuch der eigenen Distribution Auskunft geben. (Tip: das Configuration HOWTO kann in vielen Fällen helfen.)

Weiterführende Literatur: Keystroke-HOWTO (engl.).

Es ist unter Linux übrigens nicht notwendig, die virtuellen Bildschirme mit dem Befehl ‘stty pass8’ in den 8-bit Modus zu schalten - das sind sie nämlich von Hause aus.

5.1.1 Tastenbelegung der Textkonsolen

Für die unterschiedlichen Tastaturen der verschiedenen Länder liegen im Verzeichnis ‘/usr/lib/kbd/keytables’ vorgefertigte Konfigurationsdateien. Mit dem Kommando ‘loadkeys’ kann man eine solche Datei in den Linux-Kernel laden und dadurch den Tasten bestimmte Zeichen zuordnen.

Um Mißverständnissen vorzubeugen: man ordnet den Tasten keine Bedeutungen zu, sondern nur bestimmte Zeichen. Dadurch ist sichergestellt, daß die Tastatur auch beim Arbeiten mit entfernten Rechnern funktioniert, denn Zeichen kann man über jede Art von Netzwerkverbindung übertragen. Dagegen wäre eine direkte Abfrage der Tastatur-Hardware (so wie unter DOS) über ein Netzwerk nicht möglich - es ist ein Widerspruch in sich.

Die Bedeutung eines Zeichens (und damit einer Taste) kann von Programm zu Programm leicht unterschiedlich sein und die Kunst liegt in der effektiven, bzw. komfortablen Konfiguration der Bedeutung. Die länderspezifischen Aspekte werden im kommenden Kapitel behandelt.

Deutschland Im einfachsten Falle werden Benutzer einer deutschen Tastatur mit der Belegung ‘de-latin1-nodeadkeys.map’ zufrieden sein:

Beispiel:

     loadkeys   de-latin1-nodeadkeys.map

Schweiz Geeignete Tastenbelegungen für die Schweiz sind ‘sf-latin1.map’ (swiss-french) und ‘sg-latin1.map’ (swiss-german).

In der Deutschschweiz gibt es 2 verschiedene Tastaturlayouts, bei denen wenige Tasten verschieden beschriftet sind (eckige Klammern, @-Zeichen an verschiedenen Orten).

Östereich ?

Länderübergreifende Einstellungen Die Tastaturtabellen sind Textdateien, die sich mit dem persönlichen Lieblingseditor bearbeiten lassen. Um z.B. die französischen Anführungszeichen auf <AltGr .> und <AltGr -> zu legen, ergänzt man an den entsprechenden Stellen:

     keycode 51 = comma semicolon guillemotright
     keycode 52 = period colon guillemotleft

5. Das System 12

control keycode 105 = Meta_b
control keycode 106 = Meta_f

Die letzten beiden Einträge ermöglichen wortweises Springen auf der Kommandozeile mit Strg-Cursortaste. Als Anregung für eigene Ergänzungen hier eine Tabelle mit allen (?) symbolischen Namen:

{\tt "}  quotedbl     '  apostrophe   `  grave        ~  asciitilde
^asciicircum  _underscore   !  exclam       ?  question
#  numbersign   $  dollar       %  percent      \&  ampersand
|  bar          @  at           +  plus         -  minus
*  asterisk     /  slash        \  backslash    .  period
,  comma        :  colon        ;  semicolon    {$<$}  less
=  equal        {$>$}  greater      (  parenleft    )  parenright
[  bracketleft  ]  bracketright {  braceleft    }  braceright
¡  exclamdown ? cent  £ sterling  ? currency
? yen  | brokenbar  § section      {\tt "}  diaeresis
\begin{matrix}c \\ ◯ \end{matrix} copyright  ? ordfeminine  \{$<$\}  guillemotleft
? notsign  ? hyphen  ? registered
? macron  ? degree  ± plusminus    ^{2} twosuperior
3 threesuperior                ´ acute  ? mu
¶ paragraph  · periodcentered               ¸ cedilla
1 onesuperior ? masculine    {$>$}  guillemotright
\frac{1}{4} onequarter   \frac{1}{2} onehalf      \frac{3}{4} threequarters
¿  questiondown \`{A}  Agrave       \'{A}  Aacute       \^{A}  Acircumflex
\~{A}  Atilde       \"{A}  Adiaeresis ?A  Aring        {\AE}  AE
\c{C}  Ccedilla     \`{E}  Egrave       \'{E}  Eacute       ^E  Ecircumflex
\"{E}  Ediaeresis   \`{I}  Igrave       \'{I}  Iacute       \^{I}  Icircumflex
\"{I}  Idiaeresis   -- D  ETH          \~{N}  Ntilde       \`{O}  Ograve
\'{O}  Oacute       \^{O}  Ocircumflex  \~{O}  Otilde       \"{O}  Odiaeresis
× multiply     {\O}  Ooblique     \`{U}  Ugrave       \'{U}  Uacute
^U  Ucircumflex  \"{U}  Udiaeresis   \'{Y}  Yacute       |O  THORN
{\ss}  ssharp       \`{a}  agrave       \'{a}  aacute       \^{a}  acircumflex
\~{a}  atilde       \"{a}  adiaeresis   {\aa}  aring        {\ae}  ae
\c{c}  ccedilla     \`{e}  egrave       \'{e}  eacute       \^{e}  ecircumflex
\"{e}  ediaeresis   \`{\i}  igrave       \'{\i}  iacute       \^{\i}  icircumflex
\"{\i}  idiaeresis   xo  eth          \~{n}  ntild        \`{o}  ograve
\'{o}  oacute       \^{o}  ocircumflex  \^{o}  otilde       \"{o}  odiaeresis
÷ division     {\o}  oslash       \`{u}  ugrave       \'{u}  uacute
\^{u}  ucircumflex  \"{u}  udiaeresis   \'{y}  yacute       |o  thorn
"y  ydiaeresis
nul     Tab     Escape  space   BackSpace
Insert  Remove  Home    End     PageUp
Down    Left    Right   Up      PageDown
Macro   Help    Do      Pause   Linefeed

DieT abellenichtganzkorrekt, daeinigeZeichenvomF ormatierungswerkzeugnichtverarbeitetwerden.W irarbeitendaran.

Die keytables(5), die dumpkeys(1) und loadkeys(1) Manpages erläutern welche Symbole gültig sind, insbesondere

     dumpkeys --long-info

erzeugt eine Liste aller bekannten Zeichennamen und Modifier.

Deadkeys Mit Deadkey wird eine Taste bezeichnet, bei deren Betätigung das Zeichen zunächst zurückgehalten wird. Das nachfolgend eingegebene Zeichen wird quasi über das zuerst eingegeben Zeichen gedruckt, falls die Kombination Sinn ergibt. Ansonsten werden beide Zeichen nacheinander ausgegeben.

Beispiel: ist die Tilde als Deadkey konfiguriert, so ergibt <˜ > <a> ein ã (a mit Tilde darüber).

Compose Alternativ zu den Deadkeys kann man auch mit der <Compose>-Taste arbeiten: sie druckt zwei nacheinander eingetippte Zeichen übereinander. So ergibt die Tastenfolge <Compose> <˜ > <a> ein ã, während ein <˜ > <a> weiterhin ˜ a anzeigt.

Um <Compose> auf die an vielen neuen Tastaturen vorzufindenden zusätzlichen Tasten zu legen, kann man z.B. konfigurieren:

     keycode 127 = Compose

Bei mir trägt diese Taste das Symbol "Quadrat mit Pfeil in der linken oberen Ecke". Die Taste mit dem Fenster-Symbol (früher: Diamant-Symbol oder Meta) hat die Nr. 125.

Unicode Bei Verwendung eines Unicode-Zeichensatz sollte man auch die Tastatur in den Unicode-Modus schalten:

     kbd_mode -u

5.2 Zeichensatz für die Textkonsolen

Damit die länderspezifischen Zeichen überhaupt auf dem Bildschirm dargestellt werden können, muß der entsprechende Zeichensatz für den Bildschirm geladen werden. Akzeptable Ergebnisse erzielt man in der Regel mit ‘lat1u-16.psf’, einem 16-Punkt hohen UNIcode-Zeichensatz. Der zugehörige Befehl zum Laden sieht z.B. so aus:

     setfont /usr/lib/kbd/consolefonts/lat1u-16.psf

Die Details sind wiederum der Dokumentation der eigenen Distribution zu entnehmen.

5.2.1 Unicode

Um den Unicode-Zeichensatz für die Anwendungsprogramme freizugeben muß man die Zeichenfolge ESC ( K an den virtuellen Bildschirm senden. Dies kann z.B. durch die Befehlsfolge

     for i in  1 2 3 4 5 6 7 8
     do
         echo -n -e "\033(K" > /dev/tty$i
     done

geschehen. Diese Lösung ist allerdings aus verschiedenen Gründen sub-optimal.

5.3 Tastenbelegung von ‘XFree86’

‘XFree86’ ermöglicht den Betrieb von Programmen, die das ‘X Window System’ benötigen. In Verbindung mit einem sogennanten ‘Windowmanager’, der das Look&Feel bestimmt, stellt es die grafische Benutzeroberfläche unter Linux zur Verfügung.

Oft wird empfohlen, die Tastenbelegung des XFree86 durch die Datei ~/.Xmodmap oder mit dem Befehl xmodmap zu konfigurieren. Dies ist nicht erforderlich, sondern unnötig kompliziert. Tatsächlich ist nur ein Eintrag in der Konfigurationsdatei des XFree86 notwendig, um die <AltGr> Taste zu aktivieren. Die Vorgehensweise unterscheidet sich für die verschiedenen Versionen:

5.3.1 Version 2.1:

Konfigurationsdatei: /usr/X11/lib/X11/Xconfig

Mit Ausnahme der in der Tastaturbelegung vereinbarten Deadkeys werden die Tasten genau wie auf der Textkonsole belegt. Die Deadkeys (s.o.) sind unter Version 2.1 tatsächlich ‘dead’ - aber leider ganz, nicht nur ‘halb’. Die Freigabe der Alt-Tasten muß manuell vorgenommen werden, dazu trägt man im Abschnitt Keyboard ein:

     LeftAlt     Meta
     RightAlt    ModeShift

5.3.2 Version 3.1

Konfigurationsdateien: /etc/X11/XF86Config und /etc/XF86Config

Die Tastatur ist genau wie auf der Konsole belegt, auch die Deadkeys und <Compose> funktionieren (falls als solche konfiguriert).

Um allerdings in den Genuß der <Alt >- und <AltGr >-Tasten zu kommen, muß man bei der Erzeugung der Konfigurationsdatei (Programm xf86config) folgende Frage mit ‘y’ (yes) beantworten:

     Do you want to enable these bindings for the Alt keys?

Alternativ kann man die entsprechenden Einstellungen auch per Hand im Abschnitt Section "Keyboard" vornehmen:

         LeftAlt     Meta
         RightAlt    ModeShift

‘RightAlt ModeShift’ aktiviert die <AltGr>-Taste und ‘LeftAlt Meta’ sorgt für eine Emulation der <Meta>-Taste (benötigen z.B. die Programme emacs und bash).

5.3.3 Version 3.2 und höher:

Konfigurationsdateien: /etc/X11/XF86Config und /etc/XF86Config

Hat man eine Konfigurationsdatei der Version 3.1 oder will man es sich besonders einfach machen, dann verfährt man wie oben beschrieben und ergänzt im Abschnitt Section "Keyboard" lediglich

         XkbDisable

Dadurch wird die unter Linux etwas kompliziert anmutende Xkbd-Technik abgeschaltet und das X liest stattdessen die Tastaturbelegung der Textkonsolen (auf diese Weise braucht man nur eine Sache zu konfigurieren). Äquivalent kann man bei der Erzeugung der Konfigurationsdatei (Programm xf86config) folgende Frage mit ‘n’ (no) beantworten:

         Do you want to use XKB?

Beantwortet man diese Frage mit ‘y’ (yes), dann sind in der Konfigurationsdatei folgende Einträge zu entkommentieren (d.h. das ‘#’-Zeichen ist zu entfernen):

     #    XkbLayout   "de"
     #    XkbVariant  "nodeadkeys"

5.3.4 Alle Versionen:

Sondermodelle fertigt man mit dem Befehl

     xmodmap -pke {$>$} ~/.Xmodmap

und einem Editor nach Wahl an. Die globale Konfigurationsdatei ist /etc/X11/Xmodmap. Leider gibt es keine empfehlenswerte Software zur komfortableren Konfiguration der Tastatur (xkeycaps ist katastrophal in Sachen Benutzerführung).

Empfehlenswert für die Xmodmap sind etwa

     ! Freigabe der Compose-Taste
     keycode 117 = Multi_key

     ! Punkt auf das Komma des Ziffern-Blocks
     keycode 91 = period
     ! Was um alles in der Welt ist die Super-Taste?
     keycode 115 = Super_L
     ! F\"{u}r diejenigen, die ^? als Backspace auf der Konsole konfiguriert haben.
     keycode 22 = BackSpace

Unicode ?

5.4 Zeitzonen

Die ganze Welt ist in Zeitzonen unterteilt, innerhalb derer eine einheitliche Zeit gilt (unabhängig von der Zeit einer Sonnenuhr an dem betreffenden Ort). Bezugspunkt für die Einteilung ist die Universal Time, kurz UTC.

Zu einer Zeitzone gehören bestimmte Regeln, wie z.B. die Umstellung von Sommer- auf Winterzeit. Linux kann diese Regeln automatisch berücksichtigen.

Allerdings ist die automatische Zeitumstellung nur angebracht, wenn Linux das einzige Betriebssystem auf dem Rechner ist oder auch das andere Betriebssystem auf diese Technik beherrscht.

5.4.1 DOS

Der Treiber clock.sys bringt DOS den Umgang mit Zeitzonen bei. Der TZ-Wert für die deutsche Zeitzone in clock.sys ist

     CET-1CEST,M3.5.0/2,M10.5.0/3

Der Treiber clock.sys ist z.B. erhältlich unter der URL

        <ftp://ftp.tu-chemnitz.de/pub/simtel/msdos/clock/clk360rs.zip>

5.4.2 Linux

Unter Linux gibt es quasi 3 Zeiten:

• Die der auf dem Motherboard installierten CMOS-Uhr,

• die Systemzeit des Linux-Kernels und

• die dem Benutzer von verschiedenen >>Uhren<< angezeigte Zeit.

                 >>clock -u -w<<  >>date -u -s<<

      CMOS-Uhr  <--------------   Linux    <--------------
     (Mainboard)                Systemzeit                 Benutzer-Uhr
                -------------->   (UTC)    -------------->
                 >>clock -u -s<<  >>date<<, >>xclock<<

Die Programme clock und date übersetzen zwischen diesen Uhrzeiten.

Zwar liest der Kernel schon beim Booten die CMOS-Uhr aus und interpretiert sie als UTC. Aber um systematische Fehler der CMOS-Uhr zu korrigieren, wird die Uhrzeit vom Skript /etc/init.d/boot (oder vergleichbar) ein weiteres Mal gelesen. Dort wird dann der clock-Befehl ausgeführt und ist daher für die weiteren Betrachtungen ebenfalls relevant.

Für die Umstellung von Sommer- auf Winterzeit gibt es zwei Möglichkeiten: manuell oder automatisch.

     Umstellung              manuell          automatisch
     ----------------------------------------------------
     CMOS-Uhr                Ortzeit          UTC
     Option f\"{u}r clock        -keine-          -u

Die Zeitzone der CMOS-Uhr setzt man am sichersten während des Bootens im BIOS Setup. "UTC" ist die Universal Time: im Winter eine, im Sommer zwei Stunden weniger.

Welches Skript den Befehl clock ausführt (und demnach die Option ’-u’ enthalten kann) muß man dem Handbuch der eigenen Distribution entnehmen.

Die eigentliche Zeitzone wird unabhängig von den obigen Einstellungen durch den Link /usr/lib/zoneinfo/localtime festgelegt. In der Regel zeigt dieser Link auf die Hauptstadt des eigenen Landes:

     Land           Zeitzonen-Datei
                                      |- Zeitzone -|
     -----------------------------------------------
     Deutschland    /usr/lib/zoneinfo/Europe/Berlin
     \"{O}stereich      /usr/lib/zoneinfo/Europe/Vienna
     Schweiz        /usr/lib/zoneinfo/Europe/Zurich

Um den Link anzulegen kann man das Kommando ln verwenden, im Falle von Deutschland lautet die komplette Befehlszeile dann:

     ln -sf /usr/lib/zoneinfo/Europe/Berlin  /usr/lib/zoneinfo/localtime

Die eingestellte Zeitzone kann mit der Umgebungsvariable TZ überschrieben werden:

     export TZ=Asia/Hong_Kong; xclock & export TZ=Africa/Dakar; xclock &

Das früher gebräuchliche "MET" sollte unter keinen Umständen weiterverwendet werden. Markus Kuhn schrieb mir:

Die Datei /usr/lib/zoneinfo/MET existiert nur zwecks Rückwärtskompatibilität. Die Autoren der Zeitzonentabellen (Olson/Eggert/et al.) wollen eigentlich, daß deutsche Benutzer statt MET die Datei Europe/Berlin verwenden. Dann stimmen sogar die historischen Sommerzeiten vor 1945, die Linux auch alle kennt. Außerdem wird dann in der neuesten Version der Zeitzonentabelle ”Mitteleuropäische Zeit (MEZ)” endlich korrekt ins Englische mit ”Central European Time (CET)” übersetzt, denn ”MET” ist ein Übersetzungsfehler (siehe z.B. Langenscheid Englisch; ich habe deswegen sogar beim Physikalisch-Technischen Bundesamt nachgefragt, die für die deutsche Zeit verantwortlich sind). ”CEST” ist dann entsprechend ”Central European Summer Time” (”MET DST”, wie es noch in vielen Linux-Installationen benutzt wird, war eine falsche Uebersetzung von MESZ).

6 Anwendungssoftware

Mittlerweile sind viele Programme hinsichtlich der Unterstützung von landesspezifischen Einstellungen so weit genormt, man einen Großteil der Konfiguration durch Setzen der Umgebungsvariable LANG auf den Wert de DE erledigen kann. Dies ist ein Standard, der in einem der vielen POSIX-Standards festgelegt wird, der aber nicht alle Bereiche abdeckt. So fehlen z.B. Papiergröße und Zeitzone; allerdings wären beide bei größeren Ländern schlecht mit einer Variable zu erfassen, so daß man sie außen vorgelassen hat.

Der richtige Ort für das Setzen von Umgebungsvariablen sind die Dateien /etc/profile oder

~/.bash profile:
     #LANG=de_AT  # in \"{O}sterreich
     #LANG=de_CH  # in der deutschsprachigen Schweiz
     LANG=de_DE   # in Deutschland
     export LANG

Soweit die Theorie. In der Tat ist es etwas nervig, wenn sich deutsche und engliche Fehlermeldungen, Datumsangaben, usw. aufgrund von unvollständiger Internationalisierung mischen:

     tar: Kann Archiv 'foo.tgz' nicht \"{o}ffnen: Permission denied

In einem solchen Fall überschreibt man lieber diesen Aspekt der LANG-Variable:

     LC_MESSAGES=C
     export LC_MESSAGES

Dabei gehe ich davon aus, daß die eigene Linux-Distribution den POSIX-Standard durch die Locale-Dateien bereitstellt. Leider sind noch nicht alle Linux-Distributionen auf diesem Stand, so daß die obige Einstellung evtl. zu nervigen Fehlermeldungen führt. Beispiel:

     Warning: locale not supported by C library, locale unchanged

In einem solchen Fall sollte man sich beim Hersteller des Distribution beschweren. Oder auf eigene Faust die locale-Dateien installieren, inkl. Kompilation der libc.

Details zu den Lokalen findet man im Linux Locale mini-HOWTO oder in der man-page zu locale. Der Rest dieses Kapitels behandelt die "Ausreißer", die die Umgebungsvariable LANG nicht auswerten.

6.1 Außer Konkurenz ...

6.1.1 Zeichensätze ohne Umlaute

Sowohl für die Textkonsole als auch für X11 existieren Zeichensätze (engl. ‘fonts’), die nicht alle Zeichen aus ISO-latin1 enthalten. D.h. die fehlenden Zeichen (z.B. Umlaute) werden als Leerzeichen oder gar nicht auf dem Bildschirm dargestellt. In diesem Fall hilft natürlich die Konfiguration der Programme nicht weiter, sondern es muß ein anderer (vollständiger) Zeichensatz gewählt werden.

6.1.2 Eigene Süppchen

Konfigurationsdateien: ~/.Xresources und /etc/X11/Xresources

Das X-Window-System wartet mit einer eigenen Konfigurationsmöglichkeit für Locale auf. Diese muß man aber nur nutzen, wenn man für einzelne X-Programme die Locale anders setzen will, d.h. wenn man die Einstellungen in den Umgebungsvariablen überschreiben will.

Anders ausgedrückt: durch Setzen der Locale über die X-Resourcen verkompliziert man in den meisten Fällen das Setup der eigenen Linux-Machine (und wer will das schon). Andererseits gibt es natürlich Fälle, in denen das evtl. notwendig ist (aber wer hat die schon).

Gerüchten zufolge bestimmen folgende Resourcen die Locale von X11:

     !*displayLang:   de_DE
     !*timeFormat:    de_DE
     !*inputLang:     de_DE
     !*basicLocale:   de_DE
     !*numeric:       de_DE

Achtung: das Kommentarzeichen ist ‘!’, nicht ‘#’.

6.2 Die Ausreißer

Solange nicht ausdrücklich erwähnt, betreffen die Einstellungen alle Versionen eines Programms. Die vorzunehmenden Einstellungen sind durch Einrückung markiert.

6.2.1 readline und Verwandte (z.B. bash)

Konfigurationsdatei: ~/.inputrc Versionen: ab bash 1.14.1

     set meta-flag on
     set convert-meta off
     set output-meta on

Kopiert man die Datei außerdem noch nach ‘/etc/skel/’, so erhält sie jeder neu angelegte Benutzer automatisch. Eine globale Konfigurationsdatei gibt es leider noch nicht.

Vorsicht: Kommentare und Leerzeilen in dieser Datei können zu Problemen füren.

6.2.2 telnet

Konfigurationsdatei: ~/.telnetrc

Erscheinen beim telnet statt ‘äöü’ die Zeichen ‘dv|’, so muß man für jede Maschine einen Eintrag der Form:

     localhost
          set binary true

anlegen. Denselben Effekt erreicht man mit der Option ”-8”. Eine globale Konfigurationsdatei für telnet existiert nicht.

6.2.3 ytalk

Konfigurationsdateien: ~/. und /etc/

6.2.4 selection

Das Programm selection muß neu compiliert werden, damit es Umlaute korrekt per Cut&Paste transportiert. Die notwendigen Modifikationen (Patch) stammen von Andries Brouwer und liegen unter der URL ftp://ftp.win.tue.nl/pub/linux/util

Gegenüber gpm verbraucht selection deutlich weniger virtuellen Speicher, daher ist es auch heute noch von Interesse.

6.2.5 dosemu

Konfigurationsdateien: ~/.dosrc und /etc/dosemu.conf

Versionen: ab 0.52pl16

     keyboard {  layout de-latin1  keybint on  rawkeyboard on  }
     X { updatefreq 8 title `DOS in a BOX' icon_name `xdos' keycode }

Hinweis: die Einstellung ‘keycode’ funktioniert nur einwandfrei mit XFree86, nicht dagegen mit Xterminals o.ä.

6.2.6 emacs

Versionen: ab 19.22 (GNU)

Hinweis: einige Versionen des emacs haben Probleme mit der Aktivierung der Umlaute. Ab Version 19.29 sollten damit keinerlei Schwierigkeiten mehr auftreten.

Die Haupt-Konfigurationsdateien für den ‘emacs’ sind:

     /usr/lib/emacs/site-lisp/site-start.el       (global),
     ~/.emacs                                 (pers\"{o}nlich),
     /usr/lib/emacs/site-lisp/default.el          (global),

und werden in dieser Reihenfolge abgearbeitet. Insbesondere überschreiben also die Einstellungen in der ‘default.el’ die Einstellungen aus ‘ /.emacs’ und ‘site-start.el’. Diese Einträge erlauben das Arbeiten mit Umlauten:

     (set-input-mode (car (current-input-mode))
                   (nth 1 (current-input-mode))
                                             0)
     (standard-display-european t)

Speziellere Informationen findet man in der FAQ zum Thema ‘emacs und Umlaute’ von Karl Brodowsky, erhältlich unter der URL:

        <ftp://ftp.uni-erlangen.de/pub/doc/ISO/deutsch/emacs-umlaute-faq.gz>

6.2.7 less

Konfigurationsdateien: ~/.bash profile und /etc/profile Versionen: nur ältere Versionen sind betroffen

     export LESSCHARSET=latin1

6.2.8 pine

Konfigurationsdateien: ~/.pinerc und /etc/pine.conf

     # character-set should reflect the capabilities of the display
     # you have. Normal default is US-ASCII.  Typical alternatives
     # include ISO-8859-x, where x is a number between 1 and 9.
     character-set=ISO-8859-1

6.2.9 joe

Konfigurationsdateien: ~/.joerc und /etc/joe/joerc

     -asis

Achtung, das Minus muß in der 1. Spalte stehen.

6.2.10 elm Konfigurationsdatei: ~/.elm/elmrc

     charset = iso-8859-1
     displaycharset = iso-8859-1
     textencoding = 8bit

6.2.11 nn Konfigurationsdatei: ~/.nn/init

     set data-bits 8

Eine globale Konfigurationsdatei existiert nicht.

6.2.12 lynx Konfigurationsdateien: ~/.lynxrc und /etc/lynx.cfg Versionen: ab 2.4

     CHARACTER_SET:ISO Latin 1

6.2.13 gslp Kann von Hause aus keine Umlaute. Es ist ein patch erforderlich, dessen Beschreibung die Zielsetzung dieses HOWTO sprengt.

6.2.14 xfig Kommandozeilenoption:

     -metric

6.3 Weiterführende Tips

6.3.1 emacs Der emacs kann in seinen Fähigkeiten durch Lisp-Module erheblich erweitert werden. Er ist dadurch das Schweizer Taschenmesser unter den Texteditoren. "Nur Kaffeekochen kann er nicht". Die Lisp-Module tragen die Dateiendung .el oder .elc; letztere ist die compilierte Form einer .el-Datei. emacs sucht z.B. im Verzeichnis /usr/lib/emacs/site-lisp nach solchen Modulen. Die Laden der Module kann im emacs per Hand mit dem Kommando

{$<$}Alt x{$>$} load-library {$<$}return{$>$} pc-mode {$<$}return{$>$}

vorgenommen werden. Alternativ kann man durch die Anweisung

(load {\tt "}pc-mode{\tt "})

in einer der Konfigurationsdateien das Modul dauerhaft laden. Nachfolgend die Beschreibung einiger nützlicher Module:

pc-mode Konfiguriert die Tastaturbelegung so, wie PC-Benutzer es gewohnt sind. Keine Landesspezifischen Abhängigkeiten, aber oft gefragt. In der Konfigurationsdatei eintragen:

     ;;; pc-mode.el --- emulate certain key bindings used on PCs.
     (load "pc-mode")
     (pc-bindings-mode)

pc-select Stellt Cut&Paste wie unter MacOS oder Win ein.

     ;;; pc-select.el ---  emulate cut\&paste like on PC or Mac
     (load "pc-select")
     (pc-selection-mode)

iso-tex und iso-cvt Zeigen die Umlaute unverändert an, speichern sie aber in dem TeX-Format ab.

konvers Wie ‘iso-tex’, kann aber nicht nur in beide Richtungen konvertieren, sondern beherrscht auch noch andere Formate wie etwa MIME.

iso-acc (iso-accent-mode) und alt-symbol Erlauben die Eingabe von Umlauten und Akzenten durch vorangestellte Zeichen, d.h. ˜ a wird schon während der Eingabe der Zeichen zu einem a mit der Schlange darüber (und auch als solches abgespeichert).

AUCTeX AUCTeX ist eine leistungsfähige Umgebung zum Verfassen von TeX- und LaTeX-Dokumenten. Die automatische Erkennung von landesspezifischen Besonderheiten wird mit dem Eintrag

     (setq TeX-parse-self t)

in einer der Konfigurationsdateien aktiviert. ‘\usepackage{german}’ wird daraufhin von AUCTeX als Indikator verwendet.

Die erwähnten Pakete sind erhältlich unter der URL:

AUC TeX

     <ftp://sunsite.auc.dk/packages/auctex/auctex.tar.gz>

alt-symbol.el

     <ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit>

iso-tex.el

     <ftp://ftp.dante.de/pub/tex/support/iso-tex>

konvers.el

     <ftp://ftp.uni-erlangen.de/pub/doc/ISO/charsets/konvers-862.tar.gz>

6.3.2 TeX/LaTeX

TeX ist ein professionelles Satzsystem. LaTeX ist eine Sammlung von Macros zum effektiven Einsatz von TeX.

Verarbeitung von Umlauten

LaTeX 2e und höher Das Paket zur Verwendung des latin1-Zeichensatzes ist mittlerweile fester Bestandteil von LaTeX. Es wird aktiviert mit der Anweisung

     \usepackage[latin1]{inputenc}

im Kopfteil des Dokuments.

plain-TeX, LaTeX2.09 Für diese Formate gibt es entweder keine Pakete oder nur veraltete Style-Dateien. Daher kann man Dokumente, die solche veralteten Pakete enthalten, i.a. nicht an andere versenden. Eine Verwendung der alten Makros wie iso.sty, xlatin1.sty und umlaute.sty (für den Atari) wird daher nicht empfohlen.

Layout Folgendes Beispiel kann als simples Grundgerüst für deutsche Texte (hier: Artikel) verwendet werden:

     \documentclass[a4paper]{article}
         %  Die Option {\tt "}a4paper{\tt "} stellt als Papiergr\"{o}{\ss}e
         %  DinA4 ein. Alle anderen LaTeX-Pakete verlassen sich auf
         %  diese Einstellung.
     \usepackage{german}
         %  stellt Abk\"{u}rzungen f\"{u}r typische deutsche Besonderheiten
         %  bereit. Die Dokumentation befindet sich auf den
         %  CTAN-Serven unter /pub/tex/language/german/germdoc.tex

     %\usepackage[T1]{fontenc}
     %    % Erlaubt die Trennung von W\"{o}rtern mit Umlauten
     \usepackage[latin1]{inputenc}
         % gibt den Zeichensatz des Dokuments an und macht somit die
         % Eingabe von latin1-Zeichen m\"{o}glich.
     \usepackage{a4}
         % stellt den bedruckten Bereich einer Seite, den sogenannten
         % <em/Satzspiegel/, ein. Er wird so berechnet, da{\ss}
         % durchschnittlich circa 60 bis 70 Buchstaben in einer Zeile
         % vorkommen, da man sonst beim Lesen die Zeilen verliert.
     %\usepackage[german]{babel}
         % Aktiviert die Unterstutzung mehrerer Sprachen gleichzeitig.
     \begin{document}
     ...
     \end{document}
Weitere Informationen findet man unter der URL <http://www.dante.de/dante/dante-faq.html>

Eine bessere Alternative zur Satzspiegeleinstellung bietet das Paket "typearea.sty". Dieses Paket findet man bei den Koma-Script-Klassen von Markus Kohm unter ftp://[CTAN]/pub/tex/macros/latex/contrib/supported/koma-script/

<ftp://ftp.dante.de/pub/tex/macros/latex/contrib/supported/koma-script/>, die das

"typearea.sty"-Paket intern verwenden. Es ist aber auch zusammen mit den Standardklassen (z.B. article) verwendbar.

Die Koma-Script-Klassen beachten auch andere deutsche Typographieregeln und sind daher sehr empfehlenswert. Dokumentation zu den Koma-Script-Klassen und dem "typearea.sty"-Paket befinden sich unter ftp://[CTAN]/pub/tex/macros/latex/contrib/supported/koma-script/scrguide. ps

<ftp://ftp.dante.de/pub/tex/macros/latex/contrib/supported/koma-script/scrg uide.ps>.

CTAN Comprehensive TeX Archive Network, bestehend aus (bald wieder) drei Rechnern in Amerika, Großbritannien und Deutschland. Der amerikanische und der deutsche Rechner sind von DANTE e.V ( Deutschsprachige Anwendervereinigung TeX) angeschafft und finanziert worden. Der deutsche Rechner hat den Namen ftp.dante.de.)

Deutsche Wortrennung Alle modernen TeX-Distributionen bieten die Möglichkeit, in der zugehörigen Konfigurationsdatei das Kommentarzeichen % vor der Zeile

     german          ghyph31.tex

zu entfernen. Es werden dann Formate mit den deutschen Trennregeln erzeugt.

Mit der Rechtschreibreform ab 1. August 1998 werden andere Trennregeln gültig. Vermutlich werden dann rechtzeitig neue Trenntabellen zur Verfügung stehen.

6.3.3 Rechtschreibprüfung mit deutschem Wörterbuch

Zur Prüfung von Rechtschreibfehlern steht unter Linux das Programm ispell zur Verfügung. Die meisten Distributionen bieten dieses zur Installation an, die zugehörige deutsche Wortliste liegt seltener bei.

Die Wortlisten Einen recht brauchbaren Grundstock für eine eigene Wortliste enthält das Paket ”hk-deutsch2” von H. Knutzen. Es umfaßt 22 Dateien, die individuell zu einer eigenen Wortliste zusammengefaßt werden können. Die dazu notwendigen Schritte werden in dem beiliegendem README genau erklärt.

Durch die individuelle Zusammenstellung werden die Wortlisten kleiner und somit die Rechtschreibprüfung beschleunigt.

Es soll aber nicht verschwiegen werden, daß man diesen Listen in der Regel noch eine "eigene" Wörter hinzufügen muß (dies ist mit ispell automatisch möglich).

Das Paket ist erhältlich unter der URL:

        <ftp://ftp.informatik.uni-kiel.de/pub/kiel/dicts/hk2-deutsch.tar.gz>

Das Rechtschreibprogramm ispell Da ispell nicht jedes Textformat automatisch erkennt, muß man die Optionen -T latin1 und -w "äöüÄÖÜß" verwenden. Kommen weitere nicht-ascii Zeichen im Text vor, so sollte man diese ebenfalls mit der ’-w’-Option zulassen.

Ein anderes als das englische Wörterbuch wird mit der Option ’-d’ ausgewählt, also z.B.

     ispell -d german -T latin1 -w {\tt "}\"{a}\"{o}\"{u}\"{A}\"{O}\"{U}{\ss}{\tt "} German-HOWTO.txt

für das Deutsche Wörterbuch in der Datei /usr/dict/german.hash (Binärformat).

Ruft man ispell aus dem Editor emacs heraus auf, so kann man obige Parameter automatisch übergeben, indem man folgenden Eintrag in einer der Konfigurationsdateien des emacs vornimmt:

     (setq ispell-extra-args '({\tt "}-Tlatin1{\tt "}
                               {\tt "}-d{\tt "} {\tt "}/usr/lib/german{\tt "}
                               {\tt "}-w{\tt "} {\tt "}\"{a}\"{o}\"{u}\"{A}\"{O}\"{U}{\ss}{\tt "}))

7 Textdateien

7.1 Das Papierformat DIN A4

Nähere Informationen zu Papierformaten findet man unter der URL

        <http://www.ft.uni-erlangen.de/ mskuhn/iso-paper.html>

Folgende Programme können auf das Papierformat DIN A4 eingestellt werden.

7.1.1 xdvi

Konfigurationsdateien: ~/.Xresources und /etc/X11/Xresources
     XDvi.paper:     a4

7.1.2 ghostview

Konfigurationsdateien: ~/.Xresources und /etc/X11/Xresources
     Ghostview.pageMedia:  A4

7.1.3 gs

Kommandozeilenoption

     -sPAPERSIZE=a4

7.1.4 dvips

Konfigurationsdateien: ~/.dvipsrc und /usr/lib/texmf/dvips/config.ps
     % Paper size information.
     %
     % If your default is a4 uncomment the following definition
     % and comment out the letterSize definition.
     %
     @ a4size 210mm 297mm
     @+ %%PaperSize: a4

7.1.5 ImageMagick

Dieses Grafikpaket enthält ein Programm zur Konvertierung beliebiger Grafikformate. Die Kommandozeilenoption

     -page A4

erzwingt das Seitenformat A4 .

7.2 Konvertierung von DOS- und Mac-Texten nach Linux

Die Textformate von DOS, MACs und UNIX unterscheiden sich in zwei Punkten:

• Codierung der Sonderzeichen (z.B. Umlaute)

• Markierung des Zeilenendes 7.2.1 Die Zeilenenden Das Ende einer Textzeile wird wie folgt markiert:

     Linux:    LF ("linefeed" = Zeilenvorschub, "^J", Ascii 10)
     DOS:   CR LF
     Mac:   CR    ("carriage return" = Wagenvorlauf, "^M", Ascii 13)

Die Programme fromdos, todos und frommac, tomac wandeln ausschließlich die Zeilenenden um, die Zeichen selbst werden nicht angepaßt. Gleiches gilt für die Optionen ‘conv=auto’, bzw. ‘conv=text’ des mount-Kommandos bzgl. des MS-DOS Dateisystems. 7.2.2 Die Zeichensätze Die Zeichensätze setzen sich wie folgt zusammen:

     Linux: ISO-LATIN1
     DOS:   IBMPC Charactersets CP 437, CP 850, ...
     Mac:   Mac-Eigengebr\"{a}u

Der erste Teil aller dieser Zeichensätze ist der ASCII-Zeichensatz, so daß man Texte ohne Umlaute usw. nicht zu konvertieren braucht. Um sowohl Zeilenenden, als auch die Sonderzeichen zu konvertieren, kann man das Programm recode benutzen:

     recode  -d ibmpc:lat1    hausarb.tex

wandelt die DOS-Datei ‘hausarb.tex’ in das Format ISO-Latin-1 um. Durch die Definition von Aliasen kann man sich das Leben etwas einfacher machen:

     alias unix2dos='recode lat1:ibmpc'
     alias dos2unix='recode ibmpc:lat1'
     alias unix2mac='recode lat1:mac'
     alias mac2unix='recode mac:lat1'

Achtung: diese aliase sind in shell-Skripten nicht verfügbar. GNU recode ist von jedem GNU-mirror erhältlich, also z.B. von

        <ftp://ftp.uni-koeln.de/packages/gnu/recode-3.4.tar.gz>

7.3 Drucken

Der
   Treppenstufen
                -Effekt
                       (engl. staircase)
                                        r\"{u}hrt
                                              von
                                                 den
                                                    oben
beschriebenen
             Unterschieden
                          im
                            Textformat
                                      her.

Die meisten Drucker besitzen ein kleines Mäuse-Klavier, an dem man den Drucker vom DOS-Textformat auf das Unix-Textformat umstellen kann. In der Regel wird damit auch automatisch auf die Betriebsart ISO-latin1 geschaltet, so daß auch Umlaute usw. gedruckt werden.

Weitere Informationen findet man im Linux Printing-HOWTO.

7.4 PostScript

Fehlen in einem gedruckten PostScript-Dokument die Umlaute ganz oder werden diese verstümmelt gedruckt, so liegt das nicht am Drucker oder am ‘ghostscript’ (konvertiert PostScript für den Drucker), sondern an der Software: das PostScript wurde nicht korrekt erzeugt.

Besonders geschickt ist Word: es beginnt eine PostScript-Datei mit <Strg d>, dem Zeichen für das Ende einer Datei (unter Linux). Das fällt ebenfalls in die Kategorie ”kaputtes PostScript” (wird aber mittlerweile von den meisten Druckerfiltern abgefangen).

8 Programmierung

8.1 National Language Support (NLS)

Für Programmierer unbedingt zu empfehlen ist das Paket ‘GNU gettext’. Es stellt eine Bibliothek zur Verfügung, die den Programmen zur Laufzeit den Zugriff auf länderspezifische Informationen erlaubt.

Welche Schritte im Einzelnen erforderlich sind, um ein Programm zu internationalisieren, erläutert das Manual zu ‘gettext’ (derzeit noch ‘draft’-Stadium).

‘GNU sharutils’ ab der Version 4.2 ist ein beispielhaft internationalisiertes Programm-Paket.

8.2 Übersetzung von GNU-Programmen

Wer bei der Übersetzung von GNU-Programmen mithelfen will, sollte den Email-Verteiler de@li.org abonnieren. Dahinter steht eine majordomo-mailingliste (sprich: majordomo@li.org nimmt die subscribe-Befehle entgegen)

8.3 ncurses

Diese C-Bibliothek zur Bildschirmsteuerung ist seit Version 1.8.2 in der Lage, mit 8-bit Zeichen umzugehen. Ältere Versionen sollten nicht verwendet werden.

8.4 Erzeugung von PostScript

Die auszugebenden Texte können Umlaute enthalten, wenn vorher folgende Funktion aufgerufen wurde:

     %
     % change encoding to ISO8859-1  -  reiner@schildi.xnc.com
     %
     % <fontname> ISOfindfont => <font>
     %
     /ISOfindfont {
         dup 100 string cvs (ISO-) exch concatstrings cvn exch
         findfont dup maxlength dict begin
             { 1 index /FID ne {def}{pop pop} ifelse } forall
             /Encoding ISOLatin1Encoding def
             currentdict
         end definefont
     } def

9 Anhang

9.1 Erklärende Übersetzung einiger technischer Begriffe

Ohne ein gewisses Maß an Englisch-Kenntnissen wird man an Linux nicht viel Freude haben, da sowohl die Dokumentation, als auch die Menüs und Hilfe-Funktionen der Programme vornehmlich in Englisch geschrieben sind.

Dieser Abschnitt soll das Verständnis englischen Orginal-Dokumentation erleichtern, indem der technische Zusammenhang der Vokabeln erläutert wird (wenn nötig).

Im Internet gibt es noch einige interaktive Wörterbücher, z.B. unter der URL:

        <http://www.chemie.fu-berlin.de/glossar/glossar.html>

ENGLISH            DEUTSCH
---------------------------------------------------------------------------
abort            Programm oder Verbindung abbrechen
argument         Parameter (Einstellung), der einem Programm \"{u}bergeben
                   wird
bracket          eckige Klammer
character        Zeichen
comment          Kommentar
device           Ger\"{a}t; der Zugriff auf Ger\"{a}te erfolgt unter Linux
                   fast ausschlie{\ss}lich \"{u}ber Dateien, die sogennanten
                   Ger\"{a}tedateien im Verzeichnis `/dev'; meist bezieht
                   sich <em/device/ auf eine dieser Dateien
directory        Verzeichnis
environment      Umgebung; bezieht sich auf die Einstellungen, die
                   einem Programm mit Umgebungsvariablen (enviroment
                   variables) \"{u}bergeben wird
file             Datei
file descriptor  Dateizugriffsnummer; programminterne Nummer f\"{u}r
                   eine offene Datei
font             Zeichensatz
host             Maschine, Computer, Rechner (w\"{o}rtlich: Gastgeber)
I/O              Ein-/Ausgabe
kernel           Betriebssystemkern; der heilige Teil von Linux
key              Taste
keyboard         Tastatur
library          Zusammenfassung von compilierten C-Routinen zu
                   einer Bibliothek, die dann aus jedem anderen
                   Programm heraus benutzt werden kann
link             Verweis; anstatt eine Datei zu kopieren, kann man
                   auch einen Verweis anlegen; dies spart Platz und
                   erlaubt einige Tricks
load             laden, Beladung, Ausnutzung; in Zusammenhang mit
                   der Auslastung einer Maschine gebraucht
lock             Sperre (meist gewollt)
mount            montieren, zusammensetzen; stets im Zusammenhang
                   mit dem Verzeichnisbaum, der durch das Kommando
                   `mount ...' zusammengesetzt wird
network          Computernetz(werk)
news
OS               Betriebssystem (Operating System)
overflow         bei einer mathematischen Operation ist ein Ergebnis
                   aufgetreten, da{\ss} wegen seiner Gr\"{o}{\ss}e nicht mehr
                   in die daf\"{u}r vorgesehene Variable pa{\ss}t
parenthesis      runde Klammer

path             Pfad, meist als Begriff f\"{u}r den kompletten
                   Verzeichnisnamen zu einer Datei gebraucht
pipe             R\"{o}hre, Veranschaulichung der Weiterleitung von Daten
                   von einem zum n\"{a}chsten Programm; das sogennante
                   `pipe-symbol' ist das Zeichen | (senkr. Strich)
press            Dr\"{u}cken Sie (die Taste)
quote            Anf\"{u}hrungszeichen oder Zitat
<!-- quoten = quotes benutzen = zitieren -->
remote           im Sinne von {\tt "}die Gegenseite der Verbindung{\tt "}
resolve          Ermittlung (Aufl\"{o}sung) der numerischen IP-Adresse,
                   die zu einem Maschinennamen geh\"{o}rt
server           Computer, der anderen Computern Dateien oder
                   Dienstleistungen zur Verf\"{u}gung stellt
source           meist Begriff f\"{u}r die Programmtexte (Quellcode,
                   Sourcecode) benutzt; {\tt "}may the source be with you{\tt "}
                   UTSL: Use the source, Luke.
space            Leerzeichen
string           Zeichenkette
template         Vorlage, Muster, Schablone
trace            Ablaufverfolgung
type             Tippen Sie ein
underflow        Unterlauf, z.B. {\tt "}der Unterlauf des Rheins{\tt "} ;-)
                   Im Ernst: Wenn bei einer Floating-Point Berechnung, die Zahl
                   kleiner als das Maschinen-Epsilon wird, wird dies mit dem
                   Underflow-Flag angezeigt.
wildcard         Joker, meist erf\"{u}llt der Stern * diese Funktion,
                   z.B. zur unvollst\"{a}ndigen Angabe von Dateinamen