termcap(5) Datenbank für Terminaleigenschaften

BESCHREIBUNG

Die Termcap-Datenbank ist eine veraltete Einrichtung zur Beschreibung der Fähigkeiten zeichenorientierter Terminals und Drucker. Sie wird nur noch für die Kompatibilität mit alten Programmen beibehalten, neue Programme sollten terminfo(5) und die zugehörigen Bibliotheken verwenden.

Die ASCII-Datei /etc/termcap, der »Database Master«, enthält eine Beschreibung der Möglichkeiten vieler verschiedener Terminaltypen. Programme können hier die Steuersequenzen nachlesen, mit denen die visuelle Darstellung des verwendeten Terminals gesteuert wird. (Weitere Terminalaspekte werden von stty(1) behandelt.) Die Umgebungsvariable TERM dient als Index in der Termcap-Datenbank.

Einträge in Termcap dürfen nur aus einer einzigen logischen Zeile bestehen, mit '\' werden Zeilenumbrüche unterdrückt. Die Felder eines Eintrags werden durch ':' getrennt. Das erste Feld jedes Eintrags beginnt am linken Rand und enthält eine Liste mit Namen für das Terminal, die ihrerseits durch '|' (das Pipe-Symbol) getrennt sind.

Das erste Unterfeld kann (in BSD-Termcap-Einträgen bis Version 4.3) einen kurzen Namen aus zwei Zeichen enthalten. Die beiden Zeichen dürfen Klein- oder Großbuchstaben sein. In 4.4BSD-Termcap-Einträgen gibt es dieses Feld nicht mehr.

Das zweite Unterfeld (im neueren 4.4BSD-Format ist es das erste) enthält den Namen, den die Umgebungsvariable TERM verwendet. Er sollte aus Kleinbuchstaben bestehen. Wählbare Fähigkeiten der Hardware sollten durch hinzufügen eines Bindestrichs und eines Suffixes zum Namen gekennzeichnet werden. Weiter unten gibt es ein Beispiel dafür. Übliche Suffixe sind w (wide, Zeilenlänge größer als 80 Zeichen), am (automatic margins, automatische Randbegrenzung), nam (no automatic margins, keine automatische Randbegrenzung) und rv (reverse video, Darstellung in dunkler Schrift auf hellem Hintergrund). Das dritte Unterfeld enthält einen langen und aussagekräftigen Namen für diesen Termcap-Eintrag.

Die folgenden Felder enthalten die Möglichkeiten, die das Terminal bietet. Fortsetzungszeilen müssen mit einem Tabulator-Zeichen vom linken Rand aus eingerückt werden.

Obwohl es keine vorgeschriebene Reihenfolge gibt, sieht die Konvention Folgendes vor: Erst die booleschen, dann die numerischen und dann die Zeichenketten-Eigenschaften, jede Gruppe in sich alphabetisch ohne Rücksicht auf Klein-/Großschreibung sortiert. Fähigkeiten ähnlicher Funktionalität können in eine Zeile geschrieben werden.

Beispiel für:

Kopfzeile: vt|vt101|DEC VT 101 Terminal im 80-Zeichen-Modus:\
Kopfzeile: Vt|vt101-w|DEC VT 101 Terminal im Wide-Modus (132 Zeichen):\
Boolescher Wert: :bs:\
Numerischer Wert: :co#80:\
Zeichenkette: :sr=\E[H:\

Boolesche Fähigkeiten

5i      Drucker macht keine Bildschirmausgaben
am      Automatic margins = Automatischer Zeilenumbruch
bs      Strg-H (8 dez.) führt Rückschritt (backspace) aus
bw      Rückschritt am linken Rand führt zum rechten Rand der Vorzeile
da      Anzeige oberhalb des sichtbaren Bereichs bleibt erhalten
db      Anzeige unterhalb des sichtbaren Bereichs bleibt erhalten
eo      Ein Leerzeichen löscht jedes Zeichen ab der Cursorposition
es      Steuersequenzen und spezielle Zeichen arbeiten in der Statuszeile
gn      Generisches Gerät
hc      Hardcopy-Terminal (Konsolen-Drucker)
HC      Cursor schwer erkennbar, wenn nicht in letzter Zeile
hs      Hat eine Statuszeile
hz      Hazeltine Bug, das Terminal kann keine Tilde darstellen
in      Terminal füllt Lücken mit Null-Bytes, nict mit Leerzeichen
km      Terminal hat eine Meta-Taste
mi      Cursor-Bewegung funktioniert im Einfügemodus
ms      Cursor-Bewegung funktioniert im Hervorhebungsmodus
NP      Kein Füllzeichen
NR      ti kehrt te nicht um
nx      Kein Auffüllen, XON/XOFF muss verwendet werden
os      Terminal beherrscht »Fettschrift«
ul      Terminal unterstreicht, kann aber keine »Fettschrift«
xb      Beehive glitch, F1 sendet ESCAPE, F2 sendet ^C
xn      Newline/wraparound glitch (kleiner Fehler bei Zeilenvorschub/-umbruch)
xo      Terminal benutzt xon/xoff-Protokoll
xs      Wenn hervorgehobener Text überschrieben wird, wird der ersetzende
        Text ebenfalls hervorgehoben
xt      Teleray glitch, zerstörerische Tabulatoren und merkwürdige Hervorhebungen

Numerische Fähigkeiten

co      Anzahl Spalten
dB      Verzögerung in Millisekunden (V.i.M) bei Backspace an Hardcopy-Terminals
dC      V.i.M. bei Wagenrücklauf an Hardcopy-Terminals
dF      V.i.M. bei Seitenvorschub an Hardcopy-Terminals
dN      V.i.M. bei Zeilenvorschub an Hardcopy-Terminals
dT      V.i.M. bei Tabulatorstopp an Hardcopy-Terminals
dV      V.i.M. bei vertikalem Tabulatorstopp an Hardcopy-Terminals
it      Abstand zwischen Tabulatorpositionen
lh      Höhe von »soft labels«
lm      Speicherzeilen (Lines of memory)
lw      Breite der »soft labels«
li      Zeilenanzahl
Nl      Anzahl der »soft labels«
pb      Niedrigste Baudrate, die Auffüllen benötigt
sg      »Standout glitch«
ug      Underline glitch
vt      Nummer eines virtuellen Terminals
ws      Breite der Statuszeile, falls abweichend von der Bildschirmbreite

Zeichenketten-Fähigkeiten

!1      Umschalt-Speichern-Taste
!2      Umschalt-Suspend-Taste (stoppen, nicht beenden)
!3      Umschalt-Rückgängig-Taste
#1      Umschalt-Hilfe-Taste
#2      Umschalt-Cursor-nach-links-oben-Taste
#3      Umschalt-Eingabe-Taste
#4      Umschalt-Cursor links-Taste
%0      Wiederholen-Taste
%1      Hilfe-Taste
%2      Markieren-Taste
%3      Nachricht-Taste
%4      Verschieben-Taste
%5      Nächstes-Objekt-Taste
%6      Öffnen-Taste
%7      Optionen-Taste
%8      Voriges-Objekt-Taste
%9      Drucken-Taste
%a      Umschalt-Nachricht-Taste
%b      Umschalt-Verschieben-Taste
%c      Umschalt-Weiter-Taste
%d      Umschalt-Optionen-Taste
%e      Umschalt-Zurück-Taste
%f      Umschalt-Drucken-Taste
%g      Umschalt-Wiederholen-Taste
%h      Umschalt-Ersetzen-Taste
%i      Umschalt-Cursor rechts-Taste
%j      Umschalt-Weitermachen-Taste (siehe 'suspend', w.o.)
&0      Umschalt-Abbrechen-Taste
&1      Referenz-Taste
&2      Auffrisch-Taste
&3      Ersetzen-Taste
&4      Neustart-Taste
&5      Weitermachen-Taste
&6      Speichern-Taste
&7      suspend-Taste
&8      Rückgängig-Taste
&9      Umschalt-BeginnenTaste
*0      Umschalt-Suchen-Taste
*1      Umschalt-Kommando-Taste
*2      Umschalt-Kopieren-Taste
*3      Umschalt-Erzeugen-Taste
*4      Umschalt-Löschzeichen
*5      Umschalt-Zeile entfernen
*6      Auswahl-Taste
*7      Umschalt-Ende-Taste
*8      Umschalt-Zeileninhalt löschen-Taste
*9      Umschalt-exit-Taste
@0      Suchen-Taste
@1      Beginnen-Taste
@2      Abbrechen-Taste
@3      Schließen-Taste
@4      Kommando-Taste
@5      Kopieren-Taste
@6      Erzeugen-Taste
@7      Ende-Taste
@8      Eingabe/Absenden-Taste
@9      exit-Taste
al      eine Zeile einfügen
AL      %1 Zeilen einrücken
ac      Paare von Blockgrafik-Zeichen zur Ersetzung eines anderen Zeichensatzes
ae      Ende alternativer Zeichensatz
as      Start alternativer Zeichensatz für Blockgrafik-Zeichen
bc      Backspace, falls nicht ^H
bl      Audio bell (Piep!)
bt      Zurück zum vorigen Tabulator-Stopp
cb      Zeile von Anfang bis Cursor löschen
cc      Dummy-Befehlszeichen
cd      Löschen bis Bildschirmende
ce      Löschen bis Zeilenende
ch      Cursor waagerecht verschieben bis Spalte %1
cl      Bildschirm löschen, Cursor nach links oben
cm      Cursor verschieben nach Zeile %1 und Spalte %2 (auf dem Bildschirm)
CM      Cursor verschieben nach Zeile %1 und Spalte %2 (im Speicher)
cr      Carriage return (Wagenrücklauf, Eingabezeichen, dez. 13)
cs      Scroll-Bereich von Zeile %1 bis %2
ct      Tabulatoren löschen
cv      Cursor verschieben bis Zeile %1
dc      ein Zeichen löschen
DC      %1 Zeichen löschen
dl      eine Zeile löschen
DL      %1 Zeilen löschen
dm      Anfang Lösch-Modus
do      Cursor eine Zeile nach unten
DO      Cursor #1 Zeilen nach unten
ds      Statuszeile deaktivieren
eA      alternativen Zeichensatz aktivieren
ec      vom Cursor aus %1 Zeichen löschen
ed      Ende Lösch-Modus
ei      Ende Einfüge-Modus
ff      Seitenvorschub-Zeichen bei Hardcopy-Terminals
fs      ? Return character to its position before going to status line ?
F1      Zeichenkette für Funktionstaste f11
F2      Zeichenkette für Funktionstaste f12
F3      Zeichenkette für Funktionstaste f13
…     …
F9      Zeichenkette für Funktionstaste f19
FA      Zeichenkette für Funktionstaste f20
FB      Zeichenkette für Funktionstaste f21
…     …
FZ      Zeichenkette für Funktionstaste f45
Fa      Zeichenkette für Funktionstaste f46
Fb      Zeichenkette für Funktionstaste f47
…     …
Fr      Zeichenkette für Funktionstaste f63
hd      Cursor eine halbe Zeile nach unten
ho      Cursor nach links oben
hu      Cursor eine halbe Zeile nach oben
i1      Initialisierungs-Zeichenkette 1 beim Anmelden
i3      Initialisierungs-Zeichenkette 3 beim Anmelden
is      Initialisierungs-Zeichenkette 2 beim Anmelden
ic      ein Zeichen einfügen
IC      %1 Zeichen einfügen
if      Initialisierungs-Datei
im      Anfang Einfüge-Modus
ip      ? Insert pad time and needed special characters after insert ?
iP      Initialisierungs-Programm
K1      obere linke Taste auf dem Tastenblock
K2      mittlere Taste auf dem Tastenblock
K3      obere rechte Taste auf dem Tastenblock
K4      untere linke Taste auf dem Tastenblock
K5      untere rechte Taste auf dem Tastenblock
k0      Funktionstaste 0
k1      Funktionstaste 1
k2      Funktionstaste 2
k3      Funktionstaste 3
k4      Funktionstaste 4
k5      Funktionstaste 5
k6      Funktionstaste 6
k7      Funktionstaste 7
k8      Funktionstaste 8
k9      Funktionstaste 9
k;      Funktionstaste 10
ka      Taste, die alle Tabulatoren löscht
kA      Zeile einfügen-Taste
kb      Backspace (Rückschritt)-Taste
kB      Einen Tabulator zurück
kC      Bildschirm löschen-Taste
kd      Cursor herunter-Taste
kD      Entfernen-Taste
ke      Tastenblock abschalten
kE      Taste zum Löschen bis Zeilenende
kF      Taste für vorwärts-/herunterscrollen
kh      »Cursor oben links«-Taste
kH      »Cursor hown down«-Taste
kI      Zeichen einfügen/Einfügemodus-Taste
kl      Cursor links-Taste
kL      Zeile löschen-Taste
kM      Einfügemodus-Beenden-Taste
kN      Taste für nächste Seite
kP      Taste für vorige Seite
kr      Cursor rechts-Taste
kR      Taste für scrolling zurück/hoch
ks      Tastenblock einschalten
kS      Löschen bis Bildschirmende-Taste
kt      Diesen Tabulator löschen-Taste
kT      Hier Tabulator setzen-Taste
ku      Cursor hoch-Taste
l0      Bezeichnung für nullte Funktionstaste, falls nicht f0
l1      Bezeichnung für erste Funktionstaste, falls nicht f1
l2      Bezeichnung für zweite Funktionstaste, falls nicht f2
…     …
la      Bezeichnung für zehnte Funktionstaste, falls nicht f10
le      Cursor ein Zeichen nach links
ll      Cursor nach links unten
LE      Cursor %1 Zeichen nach links
LF      soft labels abschalten
LO      soft labels einschalten
mb      Anfang Blinkmodus
MC      soft margins löschen
md      Start Fettschrift
me      Ende aller Modi wie so, us, mb, md und mr
mh      Start half bright mode
mk      Dunkelmodus (Zeichen nicht sichtbar)
ML      Linken soft margin setzen
mm      Meta Modus einschalten
mo      Meta Modus abschalten
mp      Eigenschaft 'gesichert' einschalten (protected attribute)
mr      Anfang Invers Modus
MR      Rechten soft margin setzen
nd      Cursor ein Zeichen nach recht
nw      Carriage return Kommando
pc      Padding Zeichen
pf      Drucker ausschalten
pk      Taste %1 sendet Zeichenkette %2 als ob vom Benutzer eingegeben
pl      Taste %1 führt Zeichenkette %2 im 'local' Modus aus
pn      Program soft label %1 to to show string %2
po      Drucker einschalten
pO      Drucker einschalten für %1 (<256) Bytes
ps      Bildschirminhalt auf Drucker ausgeben
px      Taste %1 sendet Zeichenkette %2 an den Computer
r1      Reset Zeichenkette 1 um Terminal in Standardeinstellung zu bringen
r2      Reset Zeichenkette 2 um Terminal in Standardeinstellung zu bringen
r3      Reset Zeichenkette 3 um Terminal in Standardeinstellung zu bringen
RA      automatische Zeilenumbrüche abschalten
rc      gespeicherte Cursor Position wiederherstellen
rf      Reset string file name
RF      Request for input (Eingabeanforderung) vom Terminal
RI      Cursor %1 Zeichen nach rechts
rp      Zeichen %1 %2-mal wiederholen
rP      Padding after character sent in replace mode
rs      Reset Zeichenkette
RX      XON/XOFF abschalten
sa      Eigenschaften %1 %2 %3 %4 %5 %6 %7 %8 %9 setzen
SA      automatischen Zeilenumbruch einschalten
sc      Cursor Position speichern
se      Ende Hervorhebungsmodus (standout mode)
sf      Normales Scrollen eine Zeile
SF      Normales Scrollen %1 Zeilen
so      Anfang Hervorhebungsmodus (standout mode)
sr      Rückwärts Scrollen
SR      %1 Zeilen rückwärts Scrollen
st      Tabulator Stopp in allen Zeilen an derzeitiger Spaltenposition
SX      XON/XOFF einschalten
ta      zum nächsten Hardware Tabulator
tc      Terminal Beschreibung einem anderen Eintrag entnehmen
te      Beenden des Programmes, das Cursorbewegungen verwendet
ti      Anfang des Programmes, das Cursorbewegungen verwendet
ts      Cursor in Spalte %1 der Statuszeile
uc      Zeichen unter Cursor unterstreichen und Cursor 1 nach rechts
ue      Ende Unterstreichung
up      Cursor eine Zeile hoch
UP      Cursor %1 Zeilen hoch
us      Anfang Unterstreichung
vb      Bildschirmdarstellung von 'Piep!' (Visible bell)
ve      Normaler Cursor sichtbar
vi      Cursor unsichtbar
vs      Hervorgehobener Cursor
wi      Setze Fenster von Zeile %1 auf %2 und Spalte von %3 auf %4
XF      XOFF-Zeichen falls nicht ^S

Es gibt mehrere Methoden, Steuercodes für Zeichenketten-Eigenschaften zu definieren:

Normale Zeichen außer »^«, »\« und »%« werden angezeigt.

Ein »^x« bedeutet Control-x. Control-A entspricht der Zahl 1.

\x ist ein Spezialcode. x kann eines der folgenden Zeichen sein:

E Escape (27)
n Linefeed (10) Zeilenvorschub
r Carriage return (13) Eingabetaste/Wagenrücklauf
t Tabulation (9) Tabulator
b Backspace (8) Rückschritt
f Form feed (12) Seitenvorschub
0 Null-Zeichen. Ein \xxx bedeutet das Oktal-Zeichen xxx.
i
Erhöht Parameter um eins.
r
Einzelparameterfähigkeit
+
Addiert den Wert des nächsten Zeichens zu diesem Parameter und gibt ihn binär aus
2
ASCII-Ausgabe des Parameters mit einer Feldlänge von 2
d
ASCII Ausgabe des Parameters mit einer Feldlänge von 3
%
Ausgabe des Zeichens »%«

Bei binären Ausgaben sollten Sie das Null-Zeichen (»\0«) vermeiden, weil es die Zeichenkette beendet. Sie sollten die Ersetzung von Tabulatoren (tabulator expansion) abschalten, wenn ein Tabulator die binäre Ausgabe eines Parameters sein kann.

Warnung:
Die oben vorgestellten Metazeichen können falsch sein. Sie entstammen der Minix-Termcap, die nicht notwendigerweise kompatibel zu der von Linux ist.

Die Blockgraphik-Zeichen können durch drei Zeichenketten-Fähigkeiten angegeben werden:

as
Start des alternativen Zeichensatzes
ae
Ende des alternativen Zeichensatzes
ac
Zeichenpaare. Das erste Zeichen ist der Name des Blockgrafik-Symbols, das zweite seine Definition.

Folgende Namen stehen zur Verfügung:

+       right arrow (>) Pfeil rechts
,       left arrow (<) Pfeil links
.       down arrow (v) Pfeil auf
0       full square (#) ausgefülltes Rechteck
I       lantern (#)
-       upper arrow (^) Pfeil ab
'       rhombus (+)
a       chess board (:) Schachbrett
f       degree (') Grad
g       plus-minus (#)
h       square (#) Quadrat
j       right bottom corner (+) rechte untere Ecke
k       right upper corner (+) rechte obere Ecke
l       left upper corner (+) linke obere Ecke
m       left bottom corner (+) linke untere Ecke
n       cross (+) Kreuz
o       upper horizontal line (-) Oberstrich
q       middle horizontal line (-) Mittelstrich
s       bottom horizontal line (_) Unterstrich
t       left tee (+) Markierung links ?
u       right tee (+) Markierung rechts
v       bottom tee (+) Markierung unten
w       normal tee (+) normale Markierung
x       vertical line (|) vertikaler Strich, Pipe-Symbol
~       paragraph (???) Absatz

Die Angaben in Klammern sind vorgeschlagene Standardwerte, wie sie von »curses« verwendet werden, wenn keine Angaben vorliegen.

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.06 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <[email protected]> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <[email protected]>.