Terminalfunktionen - Terminal capabilities

In der Computer- und Telekommunikationsbranche sind die Funktionen eines Terminals verschiedene Terminalfunktionen, die über das hinausgehen, was von einer reinen Teletypewriter zur Verfügung steht , die Hostsysteme (und die darauf ausgeführten Programme) nutzen können. Sie bestehen (hauptsächlich) aus Steuercodes und Escape-Codes , die an das Terminal gesendet oder von diesem empfangen werden können. Die an das Terminal gesendeten Escape-Codes führen verschiedene Funktionen aus, die ein CRT- Terminal (und Software- Terminal-Emulatoren ) ausführen können , eine Teletypewriter jedoch nicht. Bewegen Sie beispielsweise den Cursor des Terminals auf Positionen auf dem Bildschirm, löschen und scrollen Sie den gesamten Bildschirm oder Teile davon, schalten Sie angeschlossene Druckergeräte ein und aus, programmieren Sie programmierbare Funktionstasten, ändern Sie die Anzeigefarben und -attribute (z. B. Video in umgekehrter Reihenfolge ) und stellen Sie die Anzeige ein Titelzeichenfolgen. Der Escape - Codes von dem Terminal signify Dingen wie empfangene Funktionstaste , Pfeil und andere Sondertaste ( Home - Taste , Ende - Taste , Hilfe - Taste , PgUp Schlüssel , PgDn Schlüssel , Einfügen - Taste , Löschtaste , usw.) Tastatureingaben .

Unix und POSIX: termcap, terminfo et al.

In Unix und anderen POSIX- kompatiblen Systemen, die die POSIX-Terminalschnittstelle unterstützen , werden diese Funktionen in Datenbanken codiert, die von einem Systemadministrator konfiguriert werden und von Programmen über die Terminfo- Bibliothek (die die ältere Termcap- Bibliothek ersetzt) abgerufen werden erstellte Bibliotheken wie die Curses- und Ncurses- Bibliotheken, mit denen Anwendungsprogramme die Terminalfunktionen verwenden, um Textbenutzeroberflächen mit Fenstern, Dialogfeldern, Schaltflächen, Beschriftungen, Eingabefeldern, Menüs usw. bereitzustellen. Damit sollen Anwendungsprogramme unabhängig von den tatsächlichen Terminaleigenschaften sein. Sie müssen keine Steuercodes oder Escape-Sequenzen fest in ihren Code einbinden und haben daher keine Probleme bei der Verwendung auf einer Reihe von Terminals mit einer Reihe von Funktionen.

termcap

Die termcap (für „ Term inal Kappe Fähigkeiten“) Bibliothek wurde für BSD - Systeme entwickelt. Es wird eine Datenbank verwendet, die in der Datei / etc / termcap gespeichert ist . Diese Datenbank besteht aus einer Reihe von Datensätzen (von denen jeder aus einer oder mehreren Zeilen in der Datei besteht, die durch Backslash-Zeichen an den Enden jeder Zeile verbunden sind, die mit einem folgenden fortfahren), von denen jeder die Funktionen eines bestimmten Terminals darstellt. Die Felder des Datensatzes umfassen den Namen oder die Namen des Terminaltyps, gefolgt von einer Folge von Funktionen, die durch Doppelpunkte getrennt sind. Die Fähigkeitsfelder selbst fallen in drei Gruppen:

Eigenschaften des Terminals
Diese umfassen beispielsweise die (nominelle) Anzahl von Zeilen und Spalten, über die die Anzeige des Terminals verfügt, ob die Ausgabe automatisch in die nächste Zeile umgebrochen wird, wenn sie das Ende einer Zeile erreicht, und so weiter.
Steuersequenzen, die als Ausgabe an das Terminal gesendet werden
Diese umfassen die Steuercodes und Escape-Sequenzen, die an das Terminal gesendet werden, damit es eine Aktion ausführen kann (nicht unbedingt eine Anzeigeaktion). Ein Beispiel für eine der einfachsten ist die Ausgabesequenz zum Löschen des Bildschirms. Dies kann das ASCII- Zeichen ( Form Feed FF ) auf einigen Terminaltypen sein, kann jedoch beispielsweise die Escape-Sequenz ␛2J auf einem Terminal sein, für das ANSI-Escape-Sequenzen erforderlich sind .
Steuersequenzen, die vom Terminal als Eingabe gesendet werden
Diese umfassen die Steuercodes und Escape-Sequenzen, die das Terminal an den Host sendet, um verschiedene Aktionen und Ereignisse darzustellen, z. B. das Drücken von Funktionstasten und Pfeiltasten .

terminfo

Die terminfo- Bibliothek (" term inal info rmation") wurde für System V-Systeme entwickelt. Es wird eine Datenbank verwendet, die in mehreren Dateien in einem Verzeichnis gespeichert ist. Diese können unterschiedlich sein (auf verschiedenen Unices und POSIX-kompatiblen Systemen) / usr / lib / terminfo , / usr / share / terminfo oder sogar / usr / share / lib / terminfo . (Sein Standort ist nicht einmal über verschiedene Linux-Distributionen hinweg einheitlich .)

Im Gegensatz zur termcap-Datenbank wird die terminfo-Datenbank kompiliert, eine maschinenlesbare Datenbank, die von einem Hilfsprogramm tic aus einem für Menschen lesbaren Quelldateiformat erstellt wird . Sie können von einem anderen Hilfsprogramm, infocmp, von maschinenlesbarem Formular zurück in menschlich lesbares Formular dekompiliert werden . Der Befehl zum Ausgeben der lesbaren Form der Terminaldefinition "vt100" lautet beispielsweise:

infocmp vt100

Die Verwendung eines maschinenlesbaren Formats diente dazu, den unnötigen Aufwand zu vermeiden, in Anwendungsprogrammen, die Systeme wie die Termcap-Bibliothek verwenden, den Datenbankinhalt wiederholt zu analysieren, um die Felder eines Datensatzes zu lesen. Durch die Verwendung mehrerer Dateien sollte der ähnliche Aufwand beim Parsen des Datenbankinhalts vermieden werden, um den Datenbankdatensatz für den Zielterminaltyp zu finden. Der Index für den Namen des Terminaltyps ist effektiv die normale Verzeichnisstruktur des Unix / POSIX-Dateisystems. Ursprünglich hatte Unix schwerwiegende Leistungsprobleme mit großen Verzeichnissen, die viele Dateien enthielten. Daher verwendet terminfo eine zweistufige Struktur, bei der die Verzeichniseinträge nach Anfangsbuchstaben in eine Reihe von Unterverzeichnissen aufgeteilt werden. Neuere Dateisystemformate, die auf Unix-Systemen verwendet werden, leiden weniger unter solchen Problemen (da ihre On-Disc-Verzeichnisstrukturen keine einfachen Arrays von Einträgen mehr sind, sondern in Bäumen oder Hash-Tabellen organisiert sind) und daher die Notwendigkeit für dieses Designelement , das in modernen Terminfo-Implementierungen noch vorhanden ist, ist inzwischen verschwunden.

Hilfsprogramme zur Ausübung von Terminalfunktionen

Auf Unix-Systemen wird der Befehl tput verwendet, um eine bestimmte Funktion in der Systemdatenbank nachzuschlagen und an die Standardausgabe des Befehls auszugeben (vermutlich das Terminal, über das die durch die Funktion angegebene Funktion ausgeführt werden soll). Eine der einfachsten Vorgänge ist das Löschen des Bildschirms. Der Name des Datenbankfelds, in dem die Ausgabesequenz dafür gespeichert ist, ist klar , daher lauten die Befehlsargumente für das Programm tput zum Löschen des Bildschirms

tput clear

Eine andere Operation ist das Initialisieren oder Zurücksetzen des Terminals auf einen bekannten Standardzustand (von Zeichenattributen, Schriftarten, Farben usw.). Die Befehle hierfür sind:

tput init

und

tput reset

Normalerweise verwendet der Befehl tput den durch die TERM Umgebungsvariable angegebenen Terminaltyp , eine der steuernden Umgebungsvariablen der POSIX-Terminalschnittstelle . Dies kann jedoch überschrieben werden, um tput zu zwingen , einen anderen Terminaltyp in der Datenbank mit einer Befehlszeilenoption für den Befehl nachzuschlagen . Um beispielsweise die für den Terminaltyp "vt100" in der Datenbank geeignete Rücksetzsequenz (normalerweise ein DEC VT100- Terminal) unabhängig vom in Umgebungsvariablen angegebenen Terminaltyp auszugeben , lautet der Befehl wie folgt:

tput -T vt100 reset

Verweise

Was unterstützt was?

Verwendete Quellen

  • Afzal, Amir (2008). UNIX unbegrenzt: ein Anfangsansatz (5. Aufl.). Prentice Hall. ISBN   978-0-13-119449-6 .
  • Blum, Richard (2008). Linux Command Line und Shell Scripting Bible . Bibelreihe. John Wiley und Söhne. ISBN   978-0-470-25128-7 .
  • Coffin, Stephen (1991). UNIX System V Release 4: die vollständige Referenz . Osborne McGraw-Hill. ISBN   978-0-07-881653-6 .
  • Frisch, Mil (2002). Grundlegende Systemadministration . Ein kurzes Handbuch (3. Aufl.). O'Reilly Media, Inc. ISBN   978-0-596-00343-2 .
  • Kumar, Sudhir (2004). Enzyklopädie des Betriebssystems . Anmol Publications PVT. GMBH. ISBN   978-81-261-1792-5 .
  • Raymond, Eric S. (2004). Die Kunst der Unix-Programmierung . Addison-Wesley professionelle Computerserie. Addison-Wesley. ISBN   978-0-13-142901-7 .
  • Winsor, Janice (2001). Solaris 8 Advanced System Administratorhandbuch (3. Ausgabe). Prentice Hall PTR. ISBN   978-0-13-027703-9 .

Weiterführende Literatur

  • Strang, John; Mui, Linda; O'Reilly, Tim (1991). Termcap und terminfo . Kurzhandbuch (3. Aufl.). O'Reilly Media, Inc. ISBN   978-0-937175-22-4 .