German HOWTO Winfried Trümper v1.4, 27 January 1997 Dieses Dokument enthält Tips und Informationen für deutschsprachige Linux-Benutzer. Note to English readers: this document explains the German-specific aspects of Linux. 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? 1.3.1.1. Version 1.4 Korrekturen an 1.3. 1.3.1.2. Version 1.3 Komplette Neufassung des HOWTOs. Jetzt auch ausdrücklich für den gesamten deutschsprachigen Raum. 1.3.1.3. Version 1.2 ? 1.3.1.4. 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 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 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 Andreas Bagge Karl Brodowsky Gert Doering Karl Eichwalder David Frey Jochen Hein Michael Hinz Ulli Horlacher "Markus G. Kuhn" Detlef Lannert Anselm Lingnau Nat Makarevitch Sebastian Matschke Frerk Meyer Reiner Miericke Uwe Münch Nils Naumann Danilo Rene Neuber Sven Neuhaus Thomas Ploss Roland Rosenfeld Sven Rudolph Dietrich Schmidt Ingo Schroeck Juergen Steiner Guenter Stueck Martin Schulze Jan Vroonhof 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 3.2. Linux-Supporter Eine Liste mit Ansprechpartnern, die Anfängern in einem begrenzten Rahmen kostenlosen Hilfestellung geben, findet sich unter der URL: Ziel ist die Verbreitung von Linux als Betriebssystem zu fördern. 3.3. Online Chat (IRC) Im IRC-Kannal #LinuxGER halten sich einige deutsche Linux-Aktivisten auf. Nähere Informationen unter der URL: 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ässigen Fragen verschonen: de.comp.os.linux.hardware de.comp.os.linux.misc de.comp.os.linux.x 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 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 unterhält eine Liste mit deutschen Büchern rund um Linux, die unter der URL: 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: 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: 4.4.2. Crash-Kurs Linux Wer gerne knappe Bescheibungen mag, sollte einen Blick in den von mir geschriebenen `Crash-Kurs Linux' werfen. 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 - zwischen diesen hin- und herblenden. Die vorgetäuschten Konsolen nennt man virtuelle Konsolen. |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| | Escape the |<-- setfont loadkeys -->|^1234567890ß 123 | | Gates of hell. | | qwertzuiopü+ 567 | | |=======+ +=======| asdfghjklöä# 789 | | Use Linux. | | | | | \\ /// | 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. 5.1.1.1. Deutschland Im einfachsten Falle werden Benutzer einer deutschen Tastatur mit der Belegung `de-latin1-nodeadkeys.map' zufrieden sein: Beispiel: loadkeys de-latin1-nodeadkeys.map 5.1.1.2. 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). 5.1.1.3. Östereich ? 5.1.1.4. 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 und zu legen, ergänzt man an den entsprechenden Stellen: keycode 51 = comma semicolon guillemotright keycode 52 = period colon guillemotleft 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: " 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 " diaeresis © copyright ª ordfeminine < guillemotleft ¬ notsign ­ hyphen ® registered ¯ macron ° degree ± plusminus ² twosuperior ³ threesuperior ´ acute µ mu ¶ paragraph · periodcentered ¸ cedilla ¹ onesuperior º masculine > guillemotright ¼ onequarter ½ onehalf ¾ threequarters ¿ questiondown À Agrave Á Aacute  Acircumflex à Atilde Ä Adiaeresis °A Aring Æ AE Ç Ccedilla È Egrave É Eacute ^E Ecircumflex Ë Ediaeresis Ì Igrave Í Iacute Î Icircumflex Ï Idiaeresis Ð ETH Ñ Ntilde Ò Ograve Ó Oacute Ô Ocircumflex Õ Otilde Ö Odiaeresis × multiply Ø Ooblique Ù Ugrave Ú Uacute ^U Ucircumflex Ü Udiaeresis Ý Yacute |O THORN ß ssharp à agrave á aacute â acircumflex ã atilde ä adiaeresis å aring æ ae ç ccedilla è egrave é eacute ê ecircumflex ë ediaeresis ì igrave í iacute î icircumflex ï idiaeresis xo eth ñ ntild ò ograve ó oacute ô ocircumflex õ otilde ö odiaeresis ÷ division ø oslash ù ugrave ú uacute û ucircumflex ü udiaeresis ý 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 Die Tabelle nicht ganz korrekt, da einige Zeichen vom Formatierungswerkzeug nicht verarbeitet werden. Wir arbeiten daran. 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. 5.1.1.4.1. 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 <~> ein ã (a mit Tilde darüber). 5.1.1.4.2. Compose Alternativ zu den Deadkeys kann man auch mit der -Taste arbeiten: sie druckt zwei nacheinander eingetippte Zeichen übereinander. So ergibt die Tastenfolge <~> ein ã, während ein <~> weiterhin ~a anzeigt. Um 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. 5.1.1.4.3. 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 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 funktionieren (falls als solche konfiguriert). Um allerdings in den Genuß der - und -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 -Taste und `LeftAlt Meta' sorgt für eine Emulation der -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 (Muß mir zuhause erst das neue XFree installieren.) 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ür diejenigen, die ^? als Backspace auf der Konsole konfiguriert haben. keycode 22 = BackSpace 5.3.4.1. 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 verwenden 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 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ü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 Ö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 Österreich #LANG=de_CH # in der deutschsprachigen Schweiz LANG=de_DE # in Deutschland export LANG 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. In einem solchen fall hilft nur: beim Hersteller des Distribution anmahnen. Details zu den Lokalen findet man im Linux Locale mini-HOWTO. Der Rest dieses Kapitels behandelt die "Ausreißer", die die Umgebungsvariable LANG nicht auswerten. 6.1. Außer Konkurenz ... 6.1.1. Veraltete Schema Konfigurationsdateien: ~/.Xresources und /etc/X11/Xresources In der Vergangenheit werteten einige Programme des X-Window-Systems X- Resourcen aus, um die landesspezifischen Einstellungen vorzunehmen. Bis auf den windowmanager `olvwm' und Verwandte sollte kein Programm mehr auf diese Einstellungen zurückgreifen, so daß man die alten X- Resourcen auskommentieren kann: !*displayLang: C !*timeFormat: C !*inputLang: C !*basicLocale: C !*numeric: C Achtung: das Kommentarzeichen ist `!', nicht `# 6.1.2. 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.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 Keine Version von selection kann mit Umlauten umgehen. Da dieser Maustreiber mittlerweile durch gpm (general purpose mouseserver) ersetzt ist, besteht keine Aussicht auf Weiterentwicklung. 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ö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: 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 load-library pc-mode vorgenommen werden. Alternativ kann man durch die Anweisung (load "pc-mode") 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-mode 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 alt-symbol.el iso-tex.el konvers.el 6.3.2. TeX/LaTeX TeX ist ein professionelles Satzsystem. LaTeX ist eine Sammlung von Macros zum effektiven Einsatz von TeX. 6.3.2.1. Verarbeitung von Umlauten 6.3.2.1.1. 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. 6.3.2.1.2. 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. 6.3.2.2. Layout Folgendes Beispiel kann als simples Grundgerüst für deutsche Texte (hier: Artikel) verwendet werden: \documentclass[a4paper]{article} % Die Option "a4paper" stellt als Papiergröße % DinA4 ein. Alle anderen LaTeX-Pakete verlassen sich auf % diese Einstellung. \usepackage{german} % stellt Abkürzungen fü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örtern mit Umlauten \usepackage[latin1]{inputenc} % gibt den Zeichensatz des Dokuments an und macht somit die % Eingabe von latin1-Zeichen möglich. \usepakage[a4] % stellt den bedruckten Bereich einer Seite, den sogenannten % 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/ , 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 . 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.) 6.3.2.3. 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. 6.3.3.1. 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: 6.3.3.2. 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 "äöüÄÖÜß" 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 '("-Tlatin1" "-d" "/usr/lib/german" "-w" "äöüÄÖÜß")) 7. Textdateien 7.1. Das Papierformat DIN A4 Nähere Informationen zu Papierformaten findet man unter der URL 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ä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 7.3. Drucken Der Treppenstufen -Effekt (engl. staircase) rü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 MS-Word: es beginnt eine PostScript-Datei mit , 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 % % ISOfindfont => % /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: ENGLISH DEUTSCH --------------------------------------------------------------------------- abort Programm oder Verbindung abbrechen argument Parameter (Einstellung), der einem Programm übergeben wird bracket eckige Klammer character Zeichen comment Kommentar device Gerät; der Zugriff auf Geräte erfolgt unter Linux fast ausschließlich über Dateien, die sogennanten Gerätedateien im Verzeichnis `/dev'; meist bezieht sich remote im Sinne von "die Gegenseite der Verbindung" resolve Ermittlung (Auflösung) der numerischen IP-Adresse, die zu einem Maschinennamen gehört server Computer, der anderen Computern Dateien oder Dienstleistungen zur Verfügung stellt source meist Begriff für die Programmtexte (Quellcode, Sourcecode) benutzt; "may the source be with you" UTSL: Use the source, Luke. space Leerzeichen string Zeichenkette template Vorlage, Muster, Schablone trace Ablaufverfolgung type Tippen Sie ein underflow Unterlauf, z.B. "der Unterlauf des Rheins" ;-) 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üllt der Stern * diese Funktion, z.B. zur unvollständigen Angabe von Dateinamen