pkg://howto-german-7.1-1.noarch.rpm:8961267/
usr/
share/
doc/
HOWTO/
localization/
German/
html/
German-HOWTO-html/German-HOWTO-5.html
info downloads
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE>German HOWTO: Das System</TITLE>
<LINK HREF="German-HOWTO-6.html" REL=next>
<LINK HREF="German-HOWTO-4.html" REL=previous>
<LINK HREF="German-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="German-HOWTO-6.html">Next</A>
<A HREF="German-HOWTO-4.html">Previous</A>
<A HREF="German-HOWTO.html#toc5">Contents</A>
<HR>
<H2><A NAME="s5">5. Das System</A></H2>
<P>
<H2><A NAME="ss5.1">5.1 Konsole</A>
</H2>
<P>Die Konsole ist die Tastatur und der Bildschirm eines Linux-Systems;
in der Regel also der VGA-Monitor plus Tastatur.
<P>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
<EM>virtuelle Konsolen</EM>.
<P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
| Escape the |<-- setfont loadkeys -->|^1234567890ß 123 |
| Gates of hell. | | qwertzuiopü+ 567 |
| |=======+ +=======| asdfghjklöä# 789 |
| Use Linux. | | | | <yxcvbnm,. 0, |
| | | | |__________________|
|_________________| | |
MMM | |
MMMMMMMMM | | +---<---< Internet
| | |
+-------*-------------*------+ |
| \ / | | X11 ------+
| \ / | | | |
| Betriebssystemkern Linux | telnetd xterm |
Alt+Ctrl F1F8 ----------------/ <> | \\ /// |
als Schalter | / | \\ /// |
| / | \ +-------+· · ·+-------+ |
| / | \ | ptyp1 | | ptyef | |
|······+······+ · · · +······+·······+ · · +·······| |
| tty0 | tty1 | . . . | tty8 | ttyp1 | · · | ttyef | |
+------+------+ - - - +------+-------+ - - +-------+ |
| | ^ | |
bash emacs | less |
| |
`---------------------------'
</PRE>
</CODE></BLOCKQUOTE>
<P>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.)
<P>Weiterführende Literatur: Keystroke-HOWTO (engl.).
<P>Es ist unter Linux übrigens <EM>nicht</EM> notwendig, die virtuellen
Bildschirme mit dem Befehl `stty pass8' in den 8-bit Modus zu schalten -
das sind sie nämlich von Hause aus.
<P>
<P>
<H3>Tastenbelegung der Textkonsolen</H3>
<P>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.
<P>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.
<P>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.
<P>
<P>
<H3>Deutschland</H3>
<P>Im einfachsten Falle werden Benutzer einer deutschen Tastatur mit
der Belegung `de-latin1-nodeadkeys.map' zufrieden sein:
<P>Beispiel:
<BLOCKQUOTE><CODE>
<PRE>
loadkeys de-latin1-nodeadkeys.map
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>Schweiz</H3>
<P>Geeignete Tastenbelegungen für die Schweiz sind `sf-latin1.map'
(swiss-french) und `sg-latin1.map' (swiss-german).
<P>In der Deutschschweiz gibt es 2 verschiedene Tastaturlayouts, bei denen
wenige Tasten verschieden beschriftet sind (eckige Klammern, @-Zeichen an
verschiedenen Orten).
<P>
<P>
<H3>Östereich</H3>
<P>?
<P>
<H3>Länderübergreifende Einstellungen</H3>
<P>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:
<P>
<BLOCKQUOTE><CODE>
<PRE>
keycode 51 = comma semicolon guillemotright
keycode 52 = period colon guillemotleft
control keycode 105 = Meta_b
control keycode 106 = Meta_f
</PRE>
</CODE></BLOCKQUOTE>
<P>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:
<P>
<BLOCKQUOTE><CODE>
<PRE>
" 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
</PRE>
</CODE></BLOCKQUOTE>
<P>[Die Tabelle nicht ganz korrekt, da einige Zeichen vom
Formatierungswerkzeug nicht verarbeitet werden. Wir arbeiten daran.]
<P>Die keytables(5), die dumpkeys(1) und loadkeys(1) Manpages erläutern welche
Symbole gültig sind, insbesondere
<BLOCKQUOTE><CODE>
<PRE>
dumpkeys --long-info
</PRE>
</CODE></BLOCKQUOTE>
erzeugt eine Liste aller bekannten Zeichennamen und Modifier.
<P>
<P>
<H3>Deadkeys</H3>
<P>
<P>Mit <EM>Deadkey</EM> 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.
<P>Beispiel: ist die Tilde als Deadkey konfiguriert, so ergibt <~>
<a> ein ã (a mit Tilde darüber).
<P>
<H3>Compose</H3>
<P>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.
<P>Um <Compose> auf die an vielen neuen Tastaturen vorzufindenden
zusätzlichen Tasten zu legen, kann man z.B. konfigurieren:
<P>
<BLOCKQUOTE><CODE>
<PRE>
keycode 127 = Compose
</PRE>
</CODE></BLOCKQUOTE>
<P>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 <EM>Meta</EM>) hat die Nr. 125.
<P>
<H3>Unicode</H3>
<P>Bei Verwendung eines <EM>Unicode</EM>-Zeichensatz sollte man auch die
Tastatur in den Unicode-Modus schalten:
<P>
<BLOCKQUOTE><CODE>
<PRE>
kbd_mode -u
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<P>
<H2><A NAME="ss5.2">5.2 Zeichensatz für die Textkonsolen</A>
</H2>
<P>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:
<BLOCKQUOTE><CODE>
<PRE>
setfont /usr/lib/kbd/consolefonts/lat1u-16.psf
</PRE>
</CODE></BLOCKQUOTE>
Die Details sind wiederum der Dokumentation der eigenen Distribution
zu entnehmen.
<P>
<H3>Unicode</H3>
<P>Um den <EM>Unicode</EM>-Zeichensatz für die Anwendungsprogramme freizugeben muß
man die Zeichenfolge <CODE>ESC ( K</CODE> an den virtuellen Bildschirm senden. Dies
kann z.B. durch die Befehlsfolge
<P>
<BLOCKQUOTE><CODE>
<PRE>
for i in 1 2 3 4 5 6 7 8
do
echo -n -e "\033(K" > /dev/tty$i
done
</PRE>
</CODE></BLOCKQUOTE>
<P>geschehen. Diese Lösung ist allerdings aus verschiedenen Gründen
sub-optimal.
<P>
<P>
<H2><A NAME="ss5.3">5.3 Tastenbelegung von `XFree86'</A>
</H2>
<P>`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.
<P>Oft wird empfohlen, die Tastenbelegung des XFree86 durch die Datei
<CODE>~/.Xmodmap</CODE> oder mit dem Befehl <CODE>xmodmap</CODE> 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:
<P>
<P>
<H3>Version 2.1:</H3>
<P>Konfigurationsdatei: <CODE>/usr/X11/lib/X11/Xconfig</CODE>
<P>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 <EM>Keyboard</EM> ein:
<P>
<BLOCKQUOTE><CODE>
<PRE>
LeftAlt Meta
RightAlt ModeShift
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>Version 3.1</H3>
<P>Konfigurationsdateien: <CODE>/etc/X11/XF86Config</CODE> und
<CODE>/etc/XF86Config</CODE>
<P>Die Tastatur ist genau wie auf der Konsole belegt, auch die
Deadkeys und <Compose> funktionieren (falls als solche konfiguriert).
<P>Um allerdings in den Genuß der <Alt >- und <AltGr >-Tasten zu kommen,
muß man bei der Erzeugung der
Konfigurationsdatei (Programm <CODE>xf86config</CODE>) folgende Frage mit
`y' (yes) beantworten:
<BLOCKQUOTE><CODE>
<PRE>
Do you want to enable these bindings for the Alt keys?
</PRE>
</CODE></BLOCKQUOTE>
<P>Alternativ kann man die entsprechenden Einstellungen auch per Hand
im Abschnitt <CODE>Section "Keyboard"</CODE> vornehmen:
<BLOCKQUOTE><CODE>
<PRE>
LeftAlt Meta
RightAlt ModeShift
</PRE>
</CODE></BLOCKQUOTE>
<P>`RightAlt ModeShift' aktiviert die <AltGr>-Taste und
`LeftAlt Meta' sorgt für eine Emulation der <Meta>-Taste (benötigen
z.B. die Programme <CODE>emacs</CODE> und <CODE>bash</CODE>).
<P>
<H3>Version 3.2 und höher:</H3>
<P>Konfigurationsdateien: <CODE>/etc/X11/XF86Config</CODE> und
<CODE>/etc/XF86Config</CODE>
<P>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 <CODE>Section "Keyboard"</CODE> lediglich
<P>
<BLOCKQUOTE><CODE>
<PRE>
XkbDisable
</PRE>
</CODE></BLOCKQUOTE>
<P>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
<CODE>xf86config</CODE>) folgende Frage mit `n' (no) beantworten:
<P>
<BLOCKQUOTE><CODE>
<PRE>
Do you want to use XKB?
</PRE>
</CODE></BLOCKQUOTE>
<P>Beantwortet man diese Frage mit `y' (yes), dann sind in der
Konfigurationsdatei folgende Einträge zu entkommentieren (d.h. das
`#'-Zeichen ist zu entfernen):
<P>
<BLOCKQUOTE><CODE>
<PRE>
# XkbLayout "de"
# XkbVariant "nodeadkeys"
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<H3>Alle Versionen:</H3>
<P>Sondermodelle fertigt man mit dem Befehl
<P>
<BLOCKQUOTE><CODE>
<PRE>
xmodmap -pke > ~/.Xmodmap
</PRE>
</CODE></BLOCKQUOTE>
<P>und einem Editor nach Wahl an. Die globale Konfigurationsdatei ist
<CODE>/etc/X11/Xmodmap</CODE>. Leider gibt es keine empfehlenswerte
Software zur komfortableren Konfiguration der Tastatur (<CODE>xkeycaps</CODE>
ist katastrophal in Sachen Benutzerführung).
<P>Empfehlenswert für die Xmodmap sind etwa
<P>
<BLOCKQUOTE><CODE>
<PRE>
! 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
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>Unicode</H3>
<P>?
<P>
<H2><A NAME="ss5.4">5.4 Zeitzonen</A>
</H2>
<P>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 <EM>Universal
Time</EM>, kurz UTC.
<P>Zu einer Zeitzone gehören bestimmte Regeln, wie z.B. die Umstellung von
Sommer- auf Winterzeit. Linux kann diese Regeln automatisch
berücksichtigen.
<P>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.
<P>
<P>
<H3>DOS</H3>
<P>Der Treiber <CODE>clock.sys</CODE> bringt DOS den Umgang mit Zeitzonen
bei. Der TZ-Wert für die deutsche Zeitzone in <CODE>clock.sys</CODE> ist
<BLOCKQUOTE><CODE>
<PRE>
CET-1CEST,M3.5.0/2,M10.5.0/3
</PRE>
</CODE></BLOCKQUOTE>
<P>Der Treiber <CODE>clock.sys</CODE> ist z.B. erhältlich unter der URL
<BLOCKQUOTE>
<A HREF="ftp://ftp.tu-chemnitz.de/pub/simtel/msdos/clock/clk360rs.zip">ftp://ftp.tu-chemnitz.de/pub/simtel/msdos/clock/clk360rs.zip</A></BLOCKQUOTE>
<P>
<P>
<H3>Linux</H3>
<P>Unter Linux gibt es quasi 3 Zeiten:
<P>
<UL>
<LI>Die der auf dem Motherboard installierten CMOS-Uhr,</LI>
<LI>die Systemzeit des Linux-Kernels und</LI>
<LI>die dem Benutzer von verschiedenen »Uhren« angezeigte Zeit.</LI>
</UL>
<P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
»clock -u -w« »date -u -s«
CMOS-Uhr <-------------- Linux <--------------
(Mainboard) Systemzeit Benutzer-Uhr
--------------> (UTC) -------------->
»clock -u -s« »date«, »xclock«
</PRE>
</CODE></BLOCKQUOTE>
<P>Die Programme <CODE>clock</CODE> und <CODE>date</CODE> übersetzen zwischen diesen Uhrzeiten.
<P>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 <CODE>/etc/init.d/boot</CODE> (oder vergleichbar) ein
weiteres Mal gelesen. Dort wird dann der <CODE>clock</CODE>-Befehl ausgeführt und
ist daher für die weiteren Betrachtungen ebenfalls relevant.
<P>Für die Umstellung von Sommer- auf Winterzeit gibt es zwei Möglichkeiten:
manuell oder automatisch.
<P>
<BLOCKQUOTE><CODE>
<PRE>
Umstellung manuell automatisch
----------------------------------------------------
CMOS-Uhr Ortzeit UTC
Option für clock -keine- -u
</PRE>
</CODE></BLOCKQUOTE>
<P>Die Zeitzone der CMOS-Uhr setzt man am sichersten während des Bootens im
BIOS Setup. "UTC" ist die <EM>Universal Time</EM>:
im Winter eine, im Sommer zwei Stunden weniger.
<P>Welches Skript den Befehl <CODE>clock</CODE> ausführt (und demnach die Option '-u'
enthalten kann) muß man dem Handbuch der eigenen Distribution entnehmen.
<P>
<P>Die eigentliche Zeitzone wird unabhängig von den obigen Einstellungen durch
den Link <CODE>/usr/lib/zoneinfo/localtime</CODE> festgelegt. In der Regel
zeigt dieser Link auf die Hauptstadt des eigenen Landes:
<P>
<BLOCKQUOTE><CODE>
<PRE>
Land Zeitzonen-Datei
|- Zeitzone -|
-----------------------------------------------
Deutschland /usr/lib/zoneinfo/Europe/Berlin
Östereich /usr/lib/zoneinfo/Europe/Vienna
Schweiz /usr/lib/zoneinfo/Europe/Zurich
</PRE>
</CODE></BLOCKQUOTE>
<P>Um den Link anzulegen kann man das Kommando <CODE>ln</CODE> verwenden, im Falle von
Deutschland lautet die komplette Befehlszeile dann:
<BLOCKQUOTE><CODE>
<PRE>
ln -sf /usr/lib/zoneinfo/Europe/Berlin /usr/lib/zoneinfo/localtime
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>Die eingestellte Zeitzone kann mit der Umgebungsvariable <CODE>TZ</CODE>
überschrieben werden:
<BLOCKQUOTE><CODE>
<PRE>
export TZ=Asia/Hong_Kong; xclock & export TZ=Africa/Dakar; xclock &
</PRE>
</CODE></BLOCKQUOTE>
<P>Das früher gebräuchliche "MET" sollte unter keinen Umständen
weiterverwendet werden. Markus Kuhn schrieb mir:
<P>
<BLOCKQUOTE>
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).
</BLOCKQUOTE>
<P>
<P>
<HR>
<A HREF="German-HOWTO-6.html">Next</A>
<A HREF="German-HOWTO-4.html">Previous</A>
<A HREF="German-HOWTO.html#toc5">Contents</A>
</BODY>
</HTML>