console_codes(4) Device Drivers Manual console_codes(4) BEZEICHNUNG console_codes - Steuer- und Escape-(Maskier-)Sequenzen fur die Linux-Konsole BESCHREIBUNG Die Linux-Konsole implementiert eine grosse Teilmenge der Steuersequenzen des VT102 und nach ECMA-48/ISO/IEC 6429/ANSI X3.64 sowie bestimmte interne (private-mode) Sequenzen fur die Anderung der Farbpalette, die Abbildung/Zuordnung von Zeichensatzen usw. In den folgenden tabellarischen Beschreibungen enthalt die zweite Spalte ECMA-48- oder DEC-Kurzel (letztere sind ggfs. mit dem Prafix DEC versehen) fur die angegebene Funktion. Sequenzen ohne ein Kurzel gehoren weder zu ECMA-48 noch VT102. Nachdem die gesamte normale Bearbeitung der Ausgabe abgeschlossen ist und ein Zeichenstrom den fur die Druckausgabe zustandigen Konsolentreiber erreicht, ist der erste Bearbeitungsschritt die Umcodierung der Zeichen in den fur die Druckausgabe verwendeten Zeichensatz. Wenn sich die Konsole im UTF-8-Modus befindet, werden die eingehenden Bytes zunachst in 16-Bit-Unicode-Codes umgewandelt. Ansonsten wird jedes Byte gemass der aktuellen Zuordnungstabelle (die die Bytes in Unicode-Werte ubersetzt) transformiert. Das wird im folgenden Abschnitt Zeichensatze diskutiert. Im Normalfall wird der Unicode-Wert in eine Schrift-Index umgewandelt und dieser im Video-Speicher abgelegt, so dass der entsprechende Glyph (wie er im Video-ROM enthalten ist) auf dem Bildschirm erscheint. Beachten Sie, dass die Verwendung von Unicode (und die Gestaltung der PC-Hardware) die gleichzeitige Nutzung von 512 verschiedenen Glyphen ermoglicht. Wenn der aktuelle Unicode-Wert ein Steuerzeichen ist oder gerade eine Escape-Sequenz verarbeitet wird, wird der Wert speziell behandelt. Anstatt in einen Schrift-Index umgewandelt und als Glyph angezeigt zu werden, kann er Cursor-Bewegungen oder andere Steuerfunktionen auslosen. Das wird im Abschnitt Steuersequenzen fur die Linux-Konsole diskutiert. Grundsatzlich ist es nicht ratsam, Terminal-Steuersequenzen in Programmen fest zu kodieren. Linux unterstutzt eine terminfo(5)-Datenbank von Terminal-Fahigkeiten. Anstatt manuell Escape-Sequenzen fur die Konsole einzugeben, werden Sie fast immer eine Bildschirmbibliothek oder ein Dienstprogramm einsetzen wollen, welche die terminfo(5)-Datenbank auswerten konnen. Beispiele sind ncurses(3), tput(1) oder reset(1). Steuersequenzen fur die Linux-Konsole Dieser Abschnitt beschreibt alle Steuerzeichen und Escape-Sequenzen, die spezielle Funktionen (also etwas anderes als das Schreiben eines Glyphen an der aktuellen Cursor-Position) auf der Linux-Konsole aufrufen. Steuerzeichen Ein Steuerzeichen tragt (vor der Umwandlung gemass der Zuordnungstabelle) einen der 14 Codes 00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a (LF), 0b (VT), 0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB), 1b (ESC), 7f (DEL). Sie konnen einen >>Steuerzeichen-anzeigen<<-Modus festlegen (siehe unten) und 07, 09, 0b, 18, 1a, 7f als Zeichen anzeigen lassen. Trotzdem werden im UTF-8-Modus, unabhangig vom >>Steuerzeichen-anzeigen<<-Modus, alle Codes zwischen 00 und 1f als Steuerzeichen betrachtet. Auf ein Steuerzeichen wird unverzuglich (auch in der Mitte eine Escape-Sequenz) reagiert, es anschliessend verworfen und die Escape-Sequenz am nachsten Zeichen weiter bearbeitet. (Allerdings beginnt mit ESC eine neue Escape-Sequenz, die moglicherweise eine fruhere unvollendete abbricht. CAN und SUB brechen jede Escape-Sequenz ab.) Die anerkannten Steuerzeichen sind BEL, BS, HT, LF, VT, FF, CR, SO, SI, CAN, SUB, ESC, DEL, CSI. Sie tun, was man erwarten wurde: BEL (0x07, ^G) gibt einen Signalton. BS (0x08, ^H) setzt den Cursor um ein Zeichen (eine Spalte) zuruck (bleibt aber auf der gleichen Zeile). HT (0x09, ^I) geht zum nachsten Tabulator oder zum Ende der Zeile, wenn es davor keinen Tabulator mehr gibt. LF (0x0A, ^J) VT (0x0B, ^K) FF (0x0C, ^L) bewirken allesamt einen Zeilenvorschub. Ist der LF/NL-Modus (new-line) gesetzt, wird ausserdem ein Wagenrucklauf ausgelost. CR (0x0D, ^M) erzeugt einen Wagenrucklauf. SO (0x0E, ^N) aktiviert den G1-Zeichensatz. SI (0x0F, ^O) aktiviert den G0-Zeichensatz. CAN (0x18, ^X) SUB (0x1A, ^Z) bricht Escape-Sequenzen ab. ESC (0x1B, ^[) leitet eine Escape-Sequenz ein. DEL (0x7F) wird ignoriert. CSI (0x9B) ist gleichbedeutend mit ESC [. Escape-Sequenzen, die keine Steuersequenzen einleiten ESC c RIS Reset. ESC D IND Zeilenvorschub ESC E NEL Zeilenumbruch ESC H HTS Tabulatorstop auf die aktuelle Spalte setzen ESC M RI Zeilenvorschub ruckgangig machen ESC Z DECID DEC-private Identifizierung. Der Kernel liefert die Zeichenkette ESC [ ? 6 c zuruck, die behauptet, dass es ein VT102 sei. ESC 7 DECSC Aktuellen Zustand speichern (Cursor-Koordinaten, Attribute und die Zeichensatze, auf die G0 und G1 weisen). ESC 8 DECRC Stellt den zuletzt mittels ESC 7 gespeicherten Zustand wieder her. ESC % Startsequenz zur Auswahl eines Zeichensatzes ESC % @ Wahlt den Standard (ISO/IEC 646 / ISO/IEC 8859-1) ESC % G Wahlt UTF-8 ESC % 8 Wahlt UTF-8 (obsolet) ESC # 8 DECALN DEC-Bildschirmausrichtungs-Prufung - fullt den Bildschirm mit Es. ESC ( Startsequenz, die den G0-Zeichensatz definiert (gefolgt von B, 0, U oder K, wie unten) ESC ( B Standard auswahlen (ISO-8859-1-Zuordnung). ESC ( 0 VT100-Graphik-Zuordnung auswahlen. ESC ( U Leere Zuordnung auswahlen - direkt zum Zeichen-ROM. ESC ( K Benutzerdefinierte Zuordnung auswahlen - die Zuordnung, die durch das Dienstprogramm mapscrn(8) geladen wird. ESC ) Startsequenz,die G1 definiert (gefolgt von B, 0, U oder K, wie oben). ESC > DECPNM Numerischen Tastenfeldmodus setzen ESC = DECPAM Anwendungstastenfeldmodus setzen ESC ] OSC Betriebssystembefehl-Prafix ESC ] R setzt die Palette zuruck. ESC ] P Setzt die Palette, wobei die Parameter in 7 hexadezimalen Ziffern nrrggbb nach dem abschliessenden P angegeben werden. Hier ist n die Farbe (0-15) und rrggbb zeigt die Rot-/Grun-/Blauwerte (0-255) an. ECMA-48-CSI-Sequenzen CSI (or ESC [) wird von einer Folge (hochstens NPAR (16)) von Parametern gefolgt, die durch Semikola getrennte Dezimalzahlen sind. Ein leerer oder nicht vorhandener Parameter wird als 0 angenommen. Der Folge von Parametern kann ein Fragezeichen vorangestellt werden. Allerdings wird nach CSI [ (oder ESC [ [) ein einzelnes Zeichen gelesen und die gesamte Sequenz ignoriert. (Die Idee ist, eine wiedergegebene Funktionstaste zu ignorieren.) Die Aktion einer CSI-Sequenz wird uber ihr abschliessendes Zeichen bestimmt. @ ICH Die angegebene Anzahl von Leerzeichen einfugen. A CUU Cursor die angegebene Anzahl an Zeilen nach oben bewegen. B CUD Cursor die angegebene Anzahl an Zeilen nach unten bewegen. C CUF Cursor die angegebene Anzahl an Spalten nach rechts bewegen. D CUB Cursor die angegebene Anzahl an Spalten nach links bewegen. E CNL Cursor die angegebene Anzahl an Zeilen nach unten bewegen, in Spalte 1. F CPL Cursor die angegebene Anzahl an Zeilen nach oben bewegen, in Spalte 1. G CHA Cursor an die angegebene Spalte in der aktuellen Zeile bewegen. H CUP Cursor an die angegebene Zeile und Spalte bewegen (Ursprung bei 1,1). J ED Anzeige loschen (Vorgabe: vom Cursor bis zum Ende der Anzeige). ESC [ 1 J: Vom Beginn bis zum Cursor loschen. ESC [ 2 J: Ganze Anzeige loschen. ESC [ 3 J: ganzen Bildschirm loschen, auch Ruckrollpuffer (seit Linux 3.0). K EL Zeile loschen (Vorgabe: vom Cursor bis zum Zeilenende). ESC [ 1 K: Vom Beginn der Zeile bis zum Cursor loschen. ESC [ 2 K: Ganze Zeile loschen. L IL Die angegebene Anzahl an Leerzeilen einfugen. M DL Die angegebene Anzahl an Zeilen loschen. P DCH Die angegebene Anzahl an Zeichen auf der aktuellen Zeile loschen. X ECH Die angegebene Anzahl von Zeichen auf der aktuellen Zeile loschen. a HPR Cursor die angegebene Anzahl an Spalten nach rechts bewegen. c DA ESC [ ? 6 c: >>I am a VT102<< antworten. d VPA Cursor zu der angegebene Zeile, aktuelle Spalte, bewegen e VPR Cursor die angegebene Anzahl an Zeilen nach unten bewegen. f HVP Cursor zu der angegebenen Zeile,Spalte bewegen. g TBC Ohne Parameter: Tabulator an der aktuellen Position loschen. ESC [ 3 g: alle Tabulatoren loschen. h SM Modus setzen (siehe unten). l RM Modus zurucksetzen (siehe unten). m SGR Attribute setzen (siehe unten). n DSR Statusbericht (siehe unten). q DECLL Tastatur-LEDs setzen. ESC [ 0 q: Alle LEDs loschen. ESC [ 1 q: Rollen-LED setzen ESC [ 2 q: Num-LED setzen ESC [ 3 q: Feststelltasten-LED setzen r DECSTBM Region zum Rollen setzen; Parameter sind obere und untere Zeile. s ? Cursor-Position speichern. u ? Cursor-Position wiederherstellen. ` HPA Cursor an die angegebene Spalte in der aktuellen Zeile bewegen. ECMA-48 Wahlt Graphikwiedergabe Die ECMA-48-SGR-Sequenz ESC [ Parameter m setzt die Anzeigeattribute. Es konnen mehrere durch Semikola getrennte Attribute in der gleichen Sequenz gesetzt werden. Ein leerer Parameter (zwischen Semikola oder Zeichenketteneinleitungs- und -beendigungszeichen) wird als Null interpretiert. Param Ergebnis 0 Alle Attribute auf ihre Standardwerte zurucksetzen 1 Fett setzen 2 Halb-hell setzen (auf einer Farbanzeige mit Farben simuliert) 3 setzt kursiv (seit Linux 2.6.22; auf einer Farbanzeige mit Farben simuliert). 4 unterstreichen setzen (auf einer Farbanzeige mit Farben simuliert) (die zur Simulation der Abdunklung oder des Unterstreichens verwandten Farben werden mittels ESC ] gesetzt) 5 Blinken setzen 7 inverse Anzeige setzen 10 ausgewahlte Zuordnung zurucksetzen, Bildschirmsteuerschalter anzeigen und Metaschalter umschalten (ECMA-48 sagt >>primary font<< (Hauptschrift)). 11 Null-Zuordnung auswahlen, Bildschirmsteuerschalter setzen, Metaschalter-Umschalter zurucksetzen (ECMA-48 sagt >>first alternate font<< (erste alternative Schrift)). 12 Null-Zuordnung auswahlen, Bildschirmsteuerschalter setzen, Metaschalter-Umschalter setzen (ECMA-48 sagt >>second alternate font<< (zweite alternative Schrift)). Der Metaschalter-Umschalter fuhrt dazu, dass das hohe Bit eines Bytes umgeschaltet wird, bevor die Ubersetzung der Zuordnungstabelle durchgefuhrt wird. 21 Unterstreichen setzen; vor Linux 4.17 setzte dieser Wert normale Intensitat (wie dies auf vielen anderen Terminals erfolgt) 22 Setzt normale Intensitat 23 schaltet kursiv aus (seit Linux 2.6.22). 24 Unterstreichen aus 25 Blinken aus 27 inverse Anzeige aus 30 Schwarzen Vordergrund setzen 31 Roten Vordergrund setzen 32 Grunen Vordergrund setzen 33 Braunen Vordergrund setzen 34 Blauen Vordergrund setzen 35 Violetten Vordergrund setzen 36 zyanen Vordergrund setzen 37 Weissen Vordergrund setzen 38 256/24-Bit-Vordergrundfarben folgen, gequetscht in 16 Grundlagenfarben (vor Linux 3.16: schaltet Unterstreichen ein, setzt Vorgabevordergrundfarbe) 39 Vordergrundfarbe setzen (vor Linux 3.16: schaltet Unterstreichen aus, setzt Vorgabevordergrundfarbe) 40 Schwarzen Hintergrund setzen 41 Roten Hintergrund setzen 42 Grunen Hintergrund setzen 43 Braunen Hintergrund setzen 44 Blauen Hintergrund setzen 45 Violetten Hintergrund setzen 46 zyanen Hintergrund setzen 47 Weissen Hintergrund setzen 48 256/24-Bit-Hintergrundfarben folgen, gequetscht in 8 Grundlagenfarben 49 Standardhintergrundfarbe setzen 90..97 Vordergrundfarben zu hellen Versionen von 30..37 setzen 100..107 Hintergrund setzen, identisch zu 40..47 (hell nicht unterstutzt) Befehle 38 und 48 benotigen weitere Argumente: ;5;x 256 Farben: Werte 0..15 sind IBGR (schwarz, rot, grun, weiss), 16..231 ist ein 6x6x6-Farbwurfel, 232..255 eine Graustrufenrampe ;2;r;g;b 24-Bit-Farbe, r/g/b-Komponenten sind im Bereich 0..255 ECMA-48-Modus-Schalter ESC [ 3 h DECCRM (Standardmassig aus): Steuerzeichen anzeigen. ESC [ 4 h DECIM (Standardmassig aus): Einfugemodus setzen. ESC [ 20 h LF/NL (standardmassig aus): Automatisch Ausgabe von LF, VT oder FF mit CR folgen. ECMA-48-Statusberichtsbefehle ESC [ 5 n Gerat-Statusbericht (DS): Antwort ist ESC [ 0 n (Terminal i.O.). ESC [ 6 n Cursor-Positionsbericht (CPR): Antwort ist ESC [ y ; x R, wobei x,y die Cursor-Position ist. Sequenzen des DEC-Private-Mode (DECSET/DECRST) Diese werden nicht in ECMA-48 beschrieben. Es werden die Modus-Setz-Sequenzen aufgefuhrt, die Modus-Zurucksetz-Sequenzen konnen ermittelt werden, indem das abschliessende >>h<< durch ein >>l<< ersetzt wird. ESC [ ? 1 h DECCKM (standardmassig aus): Wenn gesetzt, senden die Cursor-Tasten statt ESC [ die Vorsequenz ESC O. ESC [ ? 3 h DECCOLM (standardmassig aus = 80 Spalten): 80/132-Spalten-Modus-Umschaltung. Die Treiberquellen merken an, dass dies alleine nicht reicht, Hilfsprogramme wie resizecons(8) haben die Hardware-Register auf der Konsole der Video-Karte zu andern. ESC [ ? 5 h DECSCNM (standardmassig aus): Inversen Videomodus setzen. ESC [ ? 6 h DECOM (standardmassig aus): Wenn gesetzt, erfolgt die Adressierung des Cursors relativ zur oberen linken Ecke der Rollen-Region. ESC [ ? 7 h DECAWM (standardmassig ein): Schaltet automatischen Zeilenumbruch ein. In diesem Modus wird ein Graphikzeichen, das nach Spalte 80 ausgegeben wird (oder Spalte 132, falls DECCOLM an ist) zuerst einen Umbruch auf den Anfang der folgenden Zeile erzwingen. ESC [ ? 8 h DECARM (standardmassig ein): Schaltet Tastatur-Autowiederholung ein. ESC [ ? 9 h X10-Mausberichtserstattung (standardmassig aus): Berichtsmodus auf 1 setzen (oder auf 0 zurucksetzen) - siehe unten. ESC [ ? 25 h DECTECM (standardmassig ein): Macht Cursor sichtbar. ESC [ ? 1000 h X11-Mausberichtserstattung (standardmassig aus): Berichtsmodus auf 2 setzen (oder auf 0 zurucksetzen) - siehe unten. Private CSI-Sequenzen der Linux-Konsole Die folgenden Sequenzen sind weder ECMA-48 noch native VT102. Sie sind fur den Linux-Konsolentreiber nativ. Farben sind in SGR-Parametern: 0 = schwarz, 1 = rot, 2 = grun, 3 = braun, 4 = blau, 5 = magenta, 6 = zyan, 7 = weiss; 8-15 = helle Versionen von 0-7. ESC [ 1 ; n ] Farbe n als Unterstreichfarbe setzen. ESC [ 2 ; n ] Farbe n als Abdunklungsfarbe setzen ESC [ 8 ] Das aktuelle Farbpaar als Standardattribute setzen. ESC [ 9 ; n ] Bildabschaltzeituberschreitung auf n Minuten setzen. ESC [ 10 ; n ] Glockentonfrequenz in Hz setzen. ESC [ 11 ; n ] Glockendauer in ms setzen. ESC [ 12 ; n ] Bringt die angegebene Konsole nach vorne. ESC [ 13 ] Bildabschaltung aufheben. ESC [ 14 ; n ] Setzt das VESA-Energiesparzeitinterval in Minuten. ESC [ 15 ] Bringt die vorhergehende Konsole nach vorne. (Seit Linux 2.6.0). ESC [ 16 ; n ] Setzt das Cursor-Blinkintervall in Millisekunden (seit Linux 4.2). Zeichensatze Der Kernel kennt 4 Ubersetzungen von Bytes in Konsolen-Bildschirmsymbole. Die vier Tabellen sind: a) Latin1 -> PC, b) VT100-Graphik -> PC, c) PC -> PC, d) benutzerdefiniert. Es gibt zwei Zeichensatze, genannt G0 und G1, und einer der beiden ist der aktuelle Zeichensatz (am Anfang G0). Durch Eingabe von ^N wird G1 der aktuelle, durch ^O wird G0 der aktuelle. Diese Variablen G0 und G1 zeigen auf eine Ubersetzungstabelle und konnen durch den Benutzer geandert werden. Ursprunglich zeigen Sie auf die Tabellen a) und b). Die Sequenz ESC ( B und ESC ( 0 und ESC ( U und ESC ( K fuhren dazu, dass G0 auf die Ubersetzungstabelle a), b), c) respektive d) zeigt. Die Sequenz ESC ) B u ESC ) 0 und ESC ) U und ESC ) K fuhren dazu, dass G1 auf die Ubersetzungstabelle a), b), c) respektive d) zeigt. Die Sequenz ESC c fuhrt dazu, dass das Terminal zuruckgesetzt wird. Dies mochten Sie, falls der Bildschirm verstummelt ist. Der haufige Vorschlag >>echo ^V^O<< macht nur G0 aktuell, es gibt aber keine Garantie, dass G0 auf Tabelle a) zeigt. Manche Distributionen enthalten ein Programm reset(1), das nur >>echo ^[c<< ausfuhrt. Falls Ihr Terminfo-Eintrag fur die Konsole korrekt ist (und einen Eintrag rs1=\Ec hat), dann wird auch >>tput reset<< funktionieren. Die benutzerdefinierte Zuordnungstabelle kann mittels mapscrn(8) gesetzt werden. Das Ergebnis der Zuordnung ist, dass das Symbol s = Zuord[c] an den Videospeicher gesandt wird, wenn das Symbol c ausgegeben wird. Das Bitmap, das dem s entspricht, wird im Zeichensatz-ROM gefunden und kann mittels setfont(8) geandert werden. Maus-Nachverfolgung Die Maus-Nachverfolgungseinrichtung ist dazu gedacht, xterm(1)-kompatible Maus-Statusberichte zuruckzuliefern. Da der Konsolentreiber keine Moglichkeit hat, das Gerat oder die Art der Maus zu kennen, werden diese Berichte nur im Konsoleneingabe-Stream zuruckgeliefert, wenn der virtuelle Terminaltreiber ein Maus-Aktualisierungs-Ioctl empfangt. Diese Ioctls mussen durch eine Maus-bewusste Benutzeranwendung wie der Daemon gpm(8) erzeugt werden. Die durch xterm(1) erstellten Maus-Nachverfolgungs-Escape-Sequenzen kodieren numerische Parameter in einem einzelnen Zeichen als Wert+040. Beispielsweise ist >>!<< 1. Das Bildschirmkoordinatensystem ist 1-basiert. Der X10-Kompatibilitatsmodus sendet Escape-Sequenzen beim Knopfdruck und kodiert den Ort und den gedruckten Mausknopf. Er wird durch Senden von ESC [ ? 9 h aktiviert und durch ESC [ ? 9 l deaktiviert. Beim Knopfdruck sendet xterm(1) ESC [ M bxy (6 Zeichen). Hier ist b Knopf-1 und x und y sind die X- und Y-Koordinaten der Maus, als der Knopf gedruckt wurde. Dies ist der gleiche Code, wie ihn auch der Kernel erstellt. Normaler Nachverfolgungsmodus (nicht in Linux 2.0.24 implementiert) sendet eine Escape-Sequenz sowohl beim Druck als auch beim Loslassen des Knopfes. Informationen uber Anderungstasten werden auch gesandt. Er wird durch Senden von ESC [ ? 1000 h aktiviert und durch ESC [ ? 1000 l deaktiviert. Beim Drucken oder Loslassen eines Knopfes sendet xterm(1) ESC [ M bxy. Die niedrigen zwei Bits von b kodieren die Knopfinformationen: 0=Mk1 gedruckt, 1=Mk2 gedruckt, 2=Mk3 gedruckt, 3=losgelassen. Die oberen Bits kodieren, welche Anderungstasten unten waren, als der Knopf gedruckt wurde und werden aufaddiert: 4=Umschalt, 8=Meta, 16=Strg. Wieder sind x und y die X- und Y-Koordinate des Mausereignisses. Die obere linke Ecke ist (1,1). Vergleich mit anderen Terminals Viele verschiedene Terminaltypen wie die Linux-Konsole werden als >>VT100-kompatibel<< beschrieben. Hier werden die Unterschiede zwischen der Linux-Konsole und den zwei anderen wichtigsten, der DEC VT102 and xterm(1), beschrieben. Umgang mit Steuerzeichen Das VT102 erkennt auch die folgenden Steuerzeichen: NUL (0x00) wurde ignoriert. ENQ (0x05) loste eine Ruckantwortnachricht aus. DC1 (0x11, ^Q, XON) fahrt mit der Ubertragung fort. DC3 (0x13, ^S, XOFF) fuhrt dazu, dass VT100 alle Codes ausser XOFF und XON ignoriert (und deren Ubertragung beendet). VT100-artige DC1/DC3-Verarbeitung kann durch den Terminal-Treiber aktiviert sein. Das Programm xterm(1) erkennt (im VT100-Modus) die Steuerzeichen BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC. Escape-Sequenzen VT100-Konsolesequenzen sind in der Linux-Konsole nicht implementiert: ESC N SS2 Einfache Umschaltung 2 (wahlt den G2-Zeichensatz nur fur das nachste Zeichen). ESC O SS3 Einfache Umschaltung 3 (wahlt den G3-Zeichensatz nur fur das nachste Zeichen). ESC P DCS Geratesteuerzeichenkette (wird durch ESC \ beendet) ESC X SOS Beginn der Zeichenkette ESC ^ PM Vertraulichkeitsnachricht (mit ESC \ beendet) ESC \ ST Zeichenkettenendzeichen ESC * Bestimmt den G2-Zeichensatz ESC + Bestimmt den G3-Zeichensatz Das Programm xterm(1) erkennt (im VT100-Modus) ESC c, ESC # 8, ESC >, ESC =, ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ESC \, ESC Z (es beantwortet ESC [ ? 1 ; 2 c mit >>I am a VT100 with advanced video option<<) und ESC ^ ESC \ mit den gleichen Bedeutungen wie oben angezeigt. Es akzeptiert ESC (, ESC ), ESC *, ESC + gefolgt von 0, A, B fur die DEC-Spezialzeichen und der Linienzeichenmenge, UK- und US-ASCII, respektive. Der Benutzer kann xterm(1) konfigurieren, auf VT220-spezifische Steuersequenzen zu reagieren und es wird sich selbst als VT52, VT100 und hoher identifizieren, abhangig von der Art der Konfiguration und Initialisierung. Es akzeptiert ESC ] (OSC) fur das Setzen bestimmter Ressourcen. Zusatzlich zu dem ECMA-48-Zeichenkettenabschlusszeichen (ST) akzeptiert xterm(1) ein BEL, um eine OSC-Zeichenkette abzuschliessen. Es gibt einige weitere OSC-Steuersequenzen, die von xterm(1) erkannt werden: ESC ] 0 ; txt ST Icon-Name und Fenstertitel auf txt setzen. ESC ] 1 ; txt ST Icon-Name auf txt setzen. ESC ] 2 ; txt ST Fenstertitel auf txt setzen. ESC ] 4 ; num; txt ST ANSI-Farbe num auf txt setzen. ESC ] 10 ; txt ST Dynamische Textfarbe auf txt setzen. ESC ] 4 6 ; Name ST Andert Protokollierdatei auf Name (normalerweise durch eine Kompilieroption deaktiviert). ESC ] 5 0 ; fn ST Schrift auf fn setzen. Es erkennt die folgenden mit leicht veranderter Bedeutung (mehr Zustand wird gesichert, Verhalten naher an VT100/VT220): ESC 7 DECSC Cursor speichern. ESC 8 DECRC Cursor wiederherstellen. Sie erkennt auch ESC F Cursor auf untere linke Ecke des Bildschirms (falls durch die hpLowerleftBugCompat-Ressource von xterm(1) aktiviert). ESC l Speicher-Sperre (fur HP-Terminals). Sperrt Speicher oberhalb des Cursors. ESC m Speicher entsperren (fur HP-Terminals). ESC n LS2 Aktiviert den Zeichensatz G2. ESC o LS3 Aktiviert den Zeichensatz G3. ESC | LS3R Aktiviert den Zeichensatz G3 als GR. ESC } LS2R Aktiviert den Zeichensatz G2 als GR. ESC ~ LS1R Aktiviert den Zeichensatz G1 als GR. Es erkennt auch ESC % und stellt eine komplettere UTF-8-Implementierung auf der Linux-Konsole bereit. CSI-Sequenzen Alte Versionen von xterm(1), beispielsweise aus X11R5, interpretierten das Blinken-SGR als fettes SGR. Neuere Versionen, die ANSI-Farben implementierten, beispielsweise 1995 XFree86 3.1.2A, verbesserten dies, indem sie es erlaubten, das Blink-Attribut als Farbe darzustellen. Moderne Versionen von Xterm implementieren Blinken-SGR als blinkender Text und erlauben weiterhin die Darstellung von farbigem Text als alternative Darstellung von SGRs. Unveranderte X11R5-Versionen erkannten die Farbeinstellungs-SGR bis zur Veroffentlichung X11R6.8, das das Xterm aus XFree86 aufnahm, nicht. Alle durch Linux erkannten ECMA-48-CSI-Sequenzen werden auch von xterm erkannt, allerdings implementiert xterm(1) eine Reihe von ECMA-48- und DEC-Steuersequenzen, die von Linux nicht erkannt werden. Das Programm xterm(1) erkennt samtliche der oben aufgefuhrten Privaten-Modus-DEC-Sequenzen, aber keine der Privaten-Modus-Linux-Sequenzen. Fur eine Diskussion der xterm(1) eigenen Privaten-Modus-Sequenzen lesen Sie das Dokument Xterm Control Sequences von Edward Moy, Stephen Gildea und Thomas E. Dickey, verfugbar mit der X-Distribution. Dieses Dokument, obwohl sehr knapp, ist viel langer als diese Handbuchseite. Fur einen chronologischen Uberblick, gibt Anderungen an Xterm im Detail. Das Programm vttest zeigt viele dieser Steuersequenzen. Die Quelldistribution von xterm(1) enthalt auch Beispielskripte, die andere Funktionalitaten ausfuhren. ANMERKUNGEN ESC 8 (DECRC) ist nicht in der Lage, den mit ESC % geanderten Zeichensatz wiederherzustellen. FEHLER In Linux 2.0.23 ist CSI defekt und NUL wird innerhalb von Escape-Sequenzen nicht ignoriert. Einige altere Kernelversionen (nach Linux 2.0) interpretieren 8-Bit-Steuersequenzen. Dieses >>C1-Steuerungen<< verwenden Codes zwischen 128 und 159, um ESC [, ESC ] und ahnliche Zweibyte-Steuersequenzstarter zu ersetzen. Davon gibt es in modernen Kerneln noch Fragmente (entweder ubersehene oder durch Anpassung an UTF-8 defekte), aber die Implementierung ist unvollstandig und sollte als unzuverlassig betrachtet werden. Die >>Privaten-Modus<<-Sequenzen von Linux folgen nicht den Regel von ECMA-48 fur Privaten-Modus-Steuersequenzen. Insbesondere verwenden die in ] endenden kein Standard-Zeichenkettenendzeichen. Die OSC- (Palettensetz-)Sequenz ist ein grosseres Problem, da xterm(1) diese als Steuersequenz interpretieren konnte, die ein Zeichenkettenendzeichen (ST) benotigt. Anders als setterm(1)-Sequenzen, die ignoriert werden (da sie ungultige Steuersequenzen sind), scheinen die Paletten-Sequenzen xterm(1) zum Aufhangen zu bringen (allerdings wird dies durch Drucken der Eingabetaste korrigiert). Um Anwendungen zu berucksichtigen, die die Verwendung von Linux-Steuersequenzen hart einkodiert haben, setzen Sie die Ressource brokenLinuxOSC von xterm(1) auf >>true<<. Eine altere Version dieses Dokuments implizierte, dass Linux die ECMA-48-Steuersequenz fur unsichtbaren Text erkannte. Sie wird ignoriert. SIEHE AUCH ioctl_console(2), charsets(7) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer , Helge Kreutzmann und Mario Blattermann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 28. Januar 2024 console_codes(4)