table of contents
term(7) | Verschiedenes | term(7) |
BEZEICHNUNG¶
term - Konventionen zur Benennung von Terminaltypen
BESCHREIBUNG¶
Die Umgebungsvariable TERM sollte normalerweise den Typnamen des Terminals, der Konsole oder des Anzeigegeräts, das Sie verwenden, enthalten. Diese Information ist wesentlich für alle Bildschirm-orientierten Programme, einschließlich des Editors und des E-Mail-Programms.
Durch entweder /etc/inittab (z.B. System-V-artige UNIXes) oder /etc/ttys (BSD UNIXes) wird pro Leitung ein Vorgabewert für TERM gesetzt. Für Workstation- und Mikrocomputer-Konsolen wird dieser fast immer ausreichend sein.
Falls Sie eine Einwählleitung verwenden, könnte die Art des angehängten Gerätes variieren. Bei älteren UNIX-Systemen war ein sehr dummes Terminal wie »dumb« oder »dialup« voreingestellt. Neuere könnten »vt100« voreinstellen und dabei die Verbreitung von DEC VT100-kompatiblen Terminal und PC-Emulatoren widerspiegeln.
Moderene Telnets übergeben Ihre Variable TERM von der lokalen Seite an die ferne Seite. Es kann zu Problemen kommen, falls der ferne Terminfo- oder Termcap-Eintrag nicht zu Ihrem Typ kompatibel ist, aber diese Situation ist selten und kann fast immer durch explizites Exportieren von »vt100« vermieden werden (unter der Annahme, dass Sie eine Konsole, ein Terminal oder einen Terminal-Emulator verwenden, der eine Obermenge von VT100 ist).
Auf jeden Fall können Sie die Systemeinstellung für TERM nach Ihren Vorstellungen außer Kraft setzen, um Ihr Shell-Profil zu testen. Das Hilfswerkzeug tset(1) könnte Sie unterstützen. Sie können ihm eine Reihe von Regeln zur Ableitung oder dem Erbitten von Terminaltypen geben, basierend auf dem TTY-Gerät und der Baud-Rate.
Setzen eines eigenen TERM-Wertes könnte auch nützlich sein, falls Sie einen angepassten Eintrag erstellt haben, der Optionen integriert (wie visuelle Glocke oder invertierte Darstellung), die den Systemvorgabetyp für Ihre Leitung außer Kraft setzen soll.
Terminaltypbeschreibungen werden als Dateien aus Fähigkeitsdaten unterhalb von /usr/share/terminfo gespeichert. Um eine Liste von allen durch Ihr System erkannten Terminaltypen anzuschauen, geben Sie
toe | more
in Ihrer Shell ein. Diese Fähigkeitsdateien sind in einem auf Abrufgeschwindigkeit optimierten binären Format (anders als das alte, textbasierte termcap(3NCURSES)-Format, das sie ersetzen). Um einen Eintrag zu untersuchen, müssen Sie den Befehl infocmp(1) verwenden. Rufen Sie ihn wie folgt auf:
infocmp Eintragsname
Hierbei ist der Eintragsname der Name des Typs, den Sie untersuchen möchten (und der Name der Fähigkeitsdatei im Unterverzeichnis von /usr/share/terminfo, der nach dem ersten Buchstaben benannt ist). Dieser Befehl gibt die Fähigkeitsdatei in dem durch terminfo(5) beschriebenen Textformat aus.
Die erste Zeile einer terminfo(5)-Beschreibung gibt die Namen an, unter denen Terminfo ein Terminal kennt, getrennt durch »|« (Pipe-Zeichen), wobei das letzte Namensfeld durch ein Komma abgetrennt wird. Das erste Namensfeld ist der Primärname des Typs; dieser wird beim Setzen von TERM verwandt. Das letzte Namensfeld (falls es sich vom ersten unterscheidet) ist tatsächlich eine Beschreibung des Terminaltyps (sie kann Leerzeichen enthalten; die anderen müssen einzelne Wörter sein). Namensfelder zwischen dem ersten und dem letzten (falls vorhanden) sind Aliase für das Terminal, normalerweise aus historischen Gründen zur Kompatibilität beibehaltene.
Es gibt ein paar Konventionen, wie die primären Terminalnamen ausgewählt werden, die dafür sorgen, dass sie informativ und eindeutig bleiben. Es folgt eine Schritt-für-Schritt-Anleitung zur Benennung von Terminals, die auch erklärt, wie die Namen ausgewertet werden:
Wählen Sie zuerst einen Wurzelnamen. Die Wurzel besteht aus einem Kleinbuchstaben, gefolgt von bis zu sieben Kleinbuchstaben oder Ziffern. Sie dürfen keine Zeichensetzungszeichen in Wurzelnamen verwenden, da sie als Dateinamen und Shell-Metazeichen (wie !, $, *, ? usw.) verwandt und interpretiert werden; werden sie eingebettet, führen sie zu komischem und nicht hilfreichem Verhalten. Der Schrägstrich (/) oder jedes anderes Zeichen, das von irgendeinem Dateisystem interpretiert werden könnte (\, $, [, ]) sind besonders gefährlich (terminfo(5) ist Plattform-unabhängig und die Verwendung von Sonderzeichen könnten irgendwann jemand bei einer zukünftigen Portierung das Leben schwermachen). Das Punktzeichen (.) ist recht sicher, solange es maximal eines pro Wurzelnamen gibt; einige historische Terminfo-Namen verwenden es.
Der Wurzelname für einen Terminal- oder Workstation-Konsolentyp sollte fast immer mit einem Kürzel des Lieferanten (wie hp für Hewlett-Packard, wy für Wyse oder att für AT&T-Terminals) oder einem allgemeinen Namen für die Terminalleitung (vt für die VT-Serie der Terminals von DEC oder sun für Sun-Microsystems-Workstation-Konsolen oder regent für die ADDS-Regent-Serie) beginnen. Sie können den terminfo(5)-Baum darstellen, um zu sehen, welche Präfixe bereits allgemein verwandt werden. Wenn passend sollte dem Wurzelpräfix eine Modellnummer folgen; daher vt100, hp2621, wy50.
Der Wurzelname für PC-UNIX-Konsolentypen solte der Betriebssystemname sein, d.h. linux, bsdos, freebsd, netbsd. Er sollte nicht console oder andere generische Namen sein, die in einer Mehrplattformumgebung zu Verwirrung führen könnten! Falls eine Modellnummer folgt, sollte sie entweder die Veröffentlichungsstufe des Betriebssystems oder des Konsolentreibers darstellen.
Der Wurzelname für einen Terminalemulator (unter der Annahme, dass er nicht in einen der Standard-ANSI- oder VT100-Typen passt) sollte der Programmname oder eine leicht erkennbare Abkürzung davon sein (z.B. versaterm, ctrm).
An den Wurzelnamen können Sie eine sinnvolle Anzahl von Funktionalitäten-Endungen, getrennt durch Bindestriche, anhängen.
- 2p
- Hat zwei Speicherseiten. Entsprechend 4p, 8p usw.
- mc
- Magischer Cookie. Einige Terminals (insbesondere ältere von Wyse) können nur ein Attribut unterstützen, ohne den magischen Cookie zu verlieren. Ihr Basiseintrag ist normalerweise mit einem zweiten gepaart, der diese Endung hat und magische Cookies verwendet, um mehrere Attribute zu unterstützen.
- -am
- Automatischen Seitenrand aktivieren (Umbruch am rechten Seitenrand).
- -m
- Einfarbiger Modus - Farbunterstützung unterdrücken.
- -na
- Keine Pfeiltasten - termcap(5) ignoriert Pfeiltasten, die tatsächlich auf dem Terminal vorhanden sind, so dass der Benutzer die Pfeiltasten lokal verwenden kann.
- -nam
- Kein automatischer Seitenrand - am-Fähigkeit unterdrücken.
- -nl
- Keine Bezeichnungen - weiche Bezeichnungen unterdrücken.
- -nsl
- Keine Statuszeile - Statuszeile unterdrücken.
- -pp
- Hat einen Drucker-Port in Benutzung.
- -rv
- Terminal im invertierten Modus (schwarz auf weiß).
- -s
- Statuszeile aktivieren.
- -vb
- Optische Glocke (Aufblitzen) statt Piepston verwenden.
- -w
- Breit; Terminal ist im 132-Spalten-Modus.
Falls Ihr Terminaltyp eine Variante ist, bei der die Zeilenhöhe festgelegt werden soll, sollte diese Endung konventionsgemäß zuerst angegeben werden. Bei dem hypothetischen FuBarCo-Terminal-Modell 2317 im 30-Zeilenmodus mit invertierter Darstellung wäre die beste Form fubar-30-rv (statt möglicherweise »fubar-rv-30«).
Terminaltypen, die nicht als freistehende Einträge sondern als Komponenten geschrieben werden, die in anderen Einträge mittels use-Fähigkeiten integriert werden sollen, werden durch die Einbettung von Pluszeichen anstelle von Bindestrichen unterschieden.
Befehle, die einen Terminaltypen zur Steuerung der Anzeige verwenden, akzeptieren oft eine Option »-T«, die ein Terminaltypnamen als Argument akzeptiert. Solche Programme sollten auf die Umgebungsvariable TERM zurückfallen, wenn keine Option »-T« angegeben ist.
DATEIEN¶
- /usr/share/terminfo
- kompilierte Terminal-Beschreibungsdatenbank
- /etc/inittab
- TTY-Leitungsinitialisierungen (AT&T-artige UNIXe)
- /etc/ttys
- TTY-Leitungsinitialisierungen (BSD-artige UNIXe)
PORTABILITÄT¶
Für maximale Kompatibilität mit älteren System-V-UNIXes sollten die Namen und Aliase innerhalb der ersten 14 Zeichen eindeutig sein.
SIEHE AUCH¶
ncurses(3NCURSES), term(5), terminfo(5)
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> 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 die Mailingliste der Übersetzer.
16. März 2024 | ncurses 6.5 |