CONSOLE_CODES 4

中文man手册

目录

CONSOLE_CODES

NAME åç§°
DESCRIPTION æè¿°
LINUX CONSOLE CONTROLS Linuxç»ç«¯æ§å¶
Control characters æ§å¶å符
ESC- but not CSI-sequences éæ§å¶è½¬ä¹åºå
ECMA-48 CSI sequence ECMA-48 CSI åºå
ECMA-48 Set Graphics Rendition 设置å¾å½¢å±æ§
ECMA-48 Mode Switches ECMA-48模å¼éæ©
ECMA-48 ç¶ææ¥åå½ä»¤.
DEC Private Mode(DECSET/DECRST)sequences DECç§ææ¨¡å¼åºå.
Linux Console Private CSI Sequences Linuxæ§å¶å°ç§ææ§å¶åºå
CHARACTER SETS å符é
MOUSE TRACKING é¼ æ è½¨è¿¹
åå¶å®ç»ç«¯çæ¯è¾
Control-character handling æ§å¶å符å¤ç
Escape sequences 转ä¹åºå
CSI Sequences CSI åºå
BUGS
åè§
è·

NAME åç§°

æ§å¶ç»ç«¯ä»£ç  - Linux æ§å¶ç»ç«¯è½¬ä¹åæ§å¶åºå

DESCRIPTION æè¿°

Linuxæ§å¶å°å®ç°äºVT102åECMA-48/ISO 6429/ANSI X3.64ç»ç«¯æ§å¶çåé, è¿ä¸ªå- éå¾åºå¤§,å½ç¶è¿æLinuxèªå·±ç§æçæ§å¶åºå,以æ¹åé¢è²éç½®,å符 éæ å,çç- .å¨ä¸é¢å°è¦ç»åºç表格ä¸,第äºå为æå®çåè½ç»åºäºECMA-48 æèDECå©è®°ç¬¦(妿æ¯åèä¼å¨åé¢å æDECåç¼).没æç»åºå©è®°ç¬¦çåºå æ¢ä¸æ¯ECMA-48ä¹ä¸æ¯VT102å符.

å¨æææ åè¾åºè¿ç¨æ§è¡å®æ¯,å¹¶ä¸ä¸ä¸ªå符æµè¢«éå°æ§å¶å° 驱å¨ç¨åºå夿¾ç¤ºåºæ¥çæ¶å,æåçç第ä¸ä»¶äºå°±æ¯å°è¿ç¨ 使ç¨ç代ç è½¬æ¢ææ¾ç¤ºä½¿ç¨ç代ç .

妿æ§å¶å°å·¥ä½äº UTF-8 模å¼,é£ä¹è¾å¥çåèä¼é¦åç¼ç æ16ä½ç Unicode 代ç .妿䏿¯UTF-8模å¼,é£ä¹æ¯ä¸ªåè 伿ç§å½åçå- 符æ å°è¡¨å®æè½¬æ¢(è½¬æ¢æUnicodeç¼ç çå¼). åçä¸é¢å°è¦è®¨è®ºç CHARACTER SETS ä¸ç« .

å¨ä¸è¬æåµä¸,Unicode 代ç è¢«è½¬æ¢æä¸ºåå¨å¨è§é¢åå¨å¨ä¸ç å- ä½ç´¢å¼,è¿æ ·å¯¹åºçå·ä½å符(å符åå¨å¨è§é¢ROMä¸)å°±æ¾ç¤º å¨å±å¹ä¸äº. 注æä½¿ç¨ Unicode ç¼ç å许æä»¬åæ¶ä½¿ç¨ 512 ç§ä¸åçåä½(å è®¡ç®æºç¡¬ä»¶æå³).

妿å½åç Unicode ä»£ç æ¯ä¸ä¸ªæ§å¶å符,æèç³»ç»ç®åæ£å¨å¤ çä¸ä¸ªè½¬ä¹åºå,å¤ççæ¹å¼æäºç¹å«.å®ä¸ä¼è¢«è½¬æ¢æåä½ç´¢ å¼,ä¹ä¸ä¼ç´æ¥æ¾ç¤ºå¨å±å¹ä¸.å®å¯è½æ§å¶åæ çç§»å¨,æèå®ç° å¶å®æ§å¶åè½.åçä¸é¢ç LINUX CONSOLE CONTROLS ä¸è æè¿è¡ç讨论.

ä¸è¬æ¥è¯´ç´æ¥å¨ç¨åºä¸æå¥ç»ç«¯æ§å¶åç¬¦å¹¶ä¸æ¯å¾å¥½.Linux æ¯ æç»ç«¯å¼å®¹ç terminfo(5) æ°æ®åº. é¤äºç´æ¥æå¥æ§å¶å转ä¹åºå,ä¹å¯ä»¥ä½¿ç¨è±¡ ncurses(3), tput(1), æè reset(1). è¿æ ·çæ¾ç¤ºåºæèå·¥å·.

LINUX CONSOLE CONTROLS Linuxç»ç«¯æ§å¶

è¿ä¸æ®µæè¿°äºææå¨Linuxæ§å¶å°ä¸ä½¿ç¨çè°ç¨ç¹æ®åè½çæ§å¶å符 å转ä¹åºå(ä¾å¦.ä»»ä½ä¸å¨å½å忠夿å¥å¯è§å符çåºå).

Control characters æ§å¶å符

å½ä¸ä¸ªå符å¨éè¿å符æ å°è¡¨è½¬æ¢ä¹å嫿以ä¸14个代ç ä¹ä¸çæ¶ å表æå®æ¯ä¸ä¸ªæ§å¶å符. 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). æä»¬å¯ä»¥éè¿è®¾ç½® ‘æ¾ç¤ºæ§å¶å符’ 模å¼(è§ä¸æ)以å许07,09,0b, 18,1a,7f åæ®éåç¬¦ä¸æ ·æ¾ç¤ºå¨å±å¹ä¸.å¦ä¸æ¹é¢,å¨UTF-8模å¼ä¸ ææä½äº 00-1fä¹é´ç代ç é½è¢«è®¤ä¸ºæ¯æ§å¶å符,èä¸ç®¡æ¯å¦å¤äº ‘æ¾ç¤ºæ§å¶å- 符’模å¼.

ä¸ä¸ªæ§å¶å符ä¼ç«å»çæ,ç¶å被丢å¼(å³ä½¿æ¯å¨è½¬ä¹åºåä¸é´), ä¹å转ä¹åºåæç»§ç»å¤çä¸ä¸ä¸ªå符. (å¨ä»»ä½æåµä¸,ESCé½è¡¨ç¤ºä¸ä¸ªæ°ç转ä¹åºåçå¼å§,å¯è½å¯¼è´ åä¸ä¸ªåºåçéæ- £å¸¸ç»æ¢,CANåSUB ç»æ¢ä»»ä½è½¬ä¹åºå.) å¯è¯å«çæ§å¶å- 符æ¯BEL,BS,HT,LF,VT,FF,CR,SO,SI,CAN, SUB,ESC,DEL,CSI.ä»ä»¬çåè½å¦ä¸.:

BEL(0x07,ˆG)é声;

BS(0x08,ˆH)åé䏿 ¼(å¨è¡é¦ä¸èµ·ä½ç¨);

HT(0x09,ˆI)è·³è³ä¸ä¸ä¸ªå¶è¡¨ä½.妿åé¢å·²æ²¡æå¶è¡¨ä½åè·³è³è¡å°¾;

LF(0x0A,ˆJ),VT(0x0B,ˆK),FF(0x0C,ˆL)ä¸èé½è¡¨ç¤ºæ¢è¡;

CR(0x0D,ˆM)å车并æ¢è¡;

SO(0x0E,ˆN)æ¿æ´» G1 å符é, å¦æè®¾ç½®äº LF/NL(æ°è¡æ¨¡å¼)è¿è¦å ä¸å车æ¢è¡;

SI(0x0F,ˆO)æ¿æ´» G0 å符é;

CAN(0x18,ˆX),SUB(0x1A,ˆZ)两èé½è¡¨ç¤ºä¸æè½¬ä¹åºå;

ESC(0x1B,ˆ[)å¼å§ä¸ä¸ªæ°ç转ä¹åºå;

DEL(0x7F)忽ç¥;

CSI(0x9B)çåäº ESC [;

ESC- but not CSI-sequences éæ§å¶è½¬ä¹åºå

 

   

 

 

 

 

 

Image grohtml-3014002-1.png

ECMA-48 CSI sequence ECMA-48 CSI åºå

CSI(æè ESC [)åé¢è·çåæ°åºå大é¨åæ¯NPAR(16), å°±æ¯ç±åå·éå¼çåè¿å¶æ°.ç©ºåæ°æç¼ºå°ç忰以0å¤ç. å¯ä»¥ç¨ä¸ä¸ªé®å·ä»£æ¿åæ°åºå.

å¨ä»»ä½æåµä¸,ç³»ç»è¯»å CSI [(æè ESC [ [)åçå个å符, èå¿½ç¥æ´ä¸ªåºå.(ç¨äºå¿½ç¥åæ¾åè½é®.)

CSI åºåçå¨ä½ç±å¶æåä¸ä¸ªå符å³å®.

 

   

   

   

   

 

 

 

 

   

   

   

   

 

   

   

   

   

 

   

 

 

 

 

 

Image grohtml-3014002-2.png

ECMA-48 Set Graphics Rendition 设置å¾å½¢å±æ§

ECMA-48 SGR åºå ESC [ <parameters> m 设置æ¾ç¤ºå±æ§. åæ ·çåºåå¯ä»¥è®¾ç½®ä¸ä¸ªæå¤ä¸ªå±æ§.

   

   

   

 

   

   

 

Image grohtml-3014002-3.png

ECMA-48 Mode Switches ECMA-48模å¼éæ©

ESC [ 3 h

DECCRM(é»è®¤å³é): æ¾ç¤ºæ§å¶å符.

ESC [ 4 h

DECIM(é»è®¤å³é): 设置æå¥æ¨¡å¼.

ESC [ 20 h

LF/NL(é»è®¤å³é): èªå¨å¨CRåå ä¸ LF,VT æè FF.

ECMA-48 ç¶ææ¥åå½ä»¤.

ESC [ 5 n

设å¤ç¶ææ¥å(DSR): 以 ESC [ 0 n åºç(ç»ç«¯åå¤å¥½).

ESC [ 6 n

åæ ä½ç½®æ¥å(CPR): 以ESC [ y ; x R åºç, è¿é x,y æåæ ä½ç½®.

DEC Private Mode(DECSET/DECRST)sequences DECç§ææ¨¡å¼åºå.

è¿éç»åºçåºåå¨ ECMA-48䏿²¡ææè¿°.æä»¬ååºäºè®¾ç½®æ¨¡å¼åºå; ç¨læ¿æ¢æåä¸ä¸ªhå°±æ¯é设模å¼åºå.
ESC [ ? 1 h

DECCKM(é»è®¤å³é): æå¼æ¶åæ é®éåº ESC O åç¼, è䏿¯ ESC [.

ESC [ ? 3 h

DECCOLM(é»è®¤ = 80 è¡): 交æ¿éæ© 80/132 è¡æ¨¡å¼.å½åæ¾ç¤º 模å¼ä¸è¶³ä»¥æ»¡è¶³è¦æ±çæ¶å,象 resizecons(8) è¿æ ·çç¨æ·ç¨åºä¼æ¹åç»ç«¯æ¾ç¤ºå¡ç硬件注å.

ESC [ ? 5 h

DECSCNM(é»è®¤å³é): 设置è§é¢å转模å¼.

ESC [ ? 6 h

DECOM(é»è®¤å³é): æå¼æ¶,åæ ä½ç½®ç¨ç¸å¯¹äºæ»å¨æ¡å·¦ä¸è§ çä½ç½®è¡¨ç¤º.

ESC [ ? 7 h

DECAWM(é»è®¤å³é): æå¼èªå¨æ¢è¡.å¨è¿ç§æ¨¡å¼ä¸,ä¸è¡ä¸ è¶è¿80åçå- 符å°èªå¨æ¢è¡(å¨DECCOLMæå¼æ¶æ¯132å).

ESC [ ? 8 h

DECARM(é»è®¤å³é): æå¼é®çèªå¨éå¤.

ESC [ ? 9 h

X10 é¼ æ æ¥å(é»è®¤å³é): 设置æ¥åæ¨¡å¼ 1(æèé设为 0)- è§ä¸æ.

ESC [ ? 25 h

DECCM(é»è®¤æå¼): è®¾ç½®åæ å¯è§.

ESC [ ? 1000 h

X11 é¼ æ æ¥å(é»è®¤å³é): 设置æ¥åæ¨¡å¼ 2(æèé设为 0)- è§ä¸æ.

Linux Console Private CSI Sequences Linuxæ§å¶å°ç§ææ§å¶åºå

ä¸é¢çåºåæ¢ä¸å±äº ECMA-48 å符ä¹ä¸å±äº VT102.å®ä»¬åªå¨ Linuxæ§å¶å°ä¸ä½¿ç¨.é¢è²éç¨ SGR åæ°: 0 = é»è²,1 = 红è²,2 = 绿è²,3 =è¤è² ,4 = èè²,5 = æ´çº¢,6 = åéè,7 = ç½è².

Image grohtml-3014002-4.png

CHARACTER SETS å符é

åæ ¸å¯ä»¥å®æä»¥ä¸åç§å符转æ¢,使å符è½å¨å±å¹ä¸æ¾ç¤º. a)Latin1 -> PC,b)VT100 graphics -> PC,c)PC -> PC, d)user-defined(ç¨æ·èªå®ä¹).

æä¸¤ç§å符é设置,以 G0 å G1å®ä¹,å½åå符éå¿å®æ¯å¶ä¸ä¹ä¸.(å å§å为G0.)é®å¥ ˆN 使 G1 æä¸ºå½åå符é,é®å¥ ˆO 使 G0 æä¸ºå½å设置.

åé G0 and G1 æåå符æ å°å³ç³»è¡¨,å¹¶ä¸è¿ç§æåå³ç³»å¯ä»¥ç±ç¨æ·æ¹å. ç³»ç»åå§åæ¶å®ä»¬å嫿å表 a)and b). åºå ESC( B ,ESC( 0 ,ESC( U å ESC( K åå«ä½¿ G0 æåå符æ å°è¡¨
a),b),c)å d). åºå ESC )B ,ESC )0 ,ESC )U å ESC )K åå«ä½¿ G1 æåå- 符æ å°è¡¨ a),b),c)å d).

åºå ESC c éç½®ä¸ä¸ªç»ç«¯,å½å±å¹æ¾ç¤ºåºç°æ··ä¹±æ¶å¯ä»¥ä½¿ç¨è¿ä¸ªåºå. å¦ä¸ä¸ªåºå "echo ˆVˆO" ä»ä»å°G0设为å½åå符é,ä½å¹¶ä¸ä¿è¯ G0 æ åæ å°è¡¨ a). æçLinuxåè¡ç䏿ä¾ä¸ä¸ªå«å reset(1) çç¨åºç¨æ¥éåºåºå "echo ˆ[c". 妿你çç³»ç»ç»ç«¯åéæ²¡æé误( rs1=\Ec), é£ä¹ä½¿ç¨"tput reset"ä¹å¯ä»¥è¾¾å°åæ ·ææ.

ç¨æ·èªå®ä¹æ å°è¡¨å¯ä»¥ç¨ç¨åº mapscrn(8). å®ä¹.è¿ä¸ªç¨åºå·¥ä½æ¶ä¼å°éå¥çå符céè¿å³ç³»å¼s=map[c]æ å°å° å- 符sç¶åé奿¾å.å符sæå¯¹åºçä½å¾æ¾å¨å符ROMéé¢,å¯ä»¥ä½¿ ç¨ç¨åº setfont(8).

æ¥æ¹å.

MOUSE TRACKING é¼ æ è½¨è¿¹

é¼ æ è½¨è¿¹å·¥å·å¯ä»¥è¿åä¸ xterm å¼å®¹çé¼ æ ç¶ææ¥å.å ä¸ºæ§å¶å° 驱卿²¡æåæ³ç¥éé¼ æ ç±»å,åªæå½èæç»ç«¯é©±å¨æ¥æ¶å°é¼ æ è¾å¥ è¾åºæ¶æ¯æ´æ°æ¶æä¼å°è¿äºæ¥åè¿åç»æ§å¶å°è¾å¥æµ..è¿äºé¼ æ è¾å¥è¾åºæ¶æ¯ç± gpm(8) 宿¤è¿ç¨äº§ç.

ææé¼ æ è½¨è¿¹è½¬ä¹åºååæ°ç±xterm ç¼ç æè±¡value+040 è¿æ ·çåä¸å- 符形å¼çæ°ååæ°.æ¯å¦,‘!’ ç¼ç æ 1.å±å¹åæ ç³»ç» 以’1’为åºå.

X10 å¼å®¹æ¨¡å¼å¨é¼ æ é®æä¸æ¶å°æä¸çé®åé¼ æ ä½ç½®ç¼ç åéåº. ESC [ ? 9 h å许è¿ä¸å¨ä½,ESC [ ? 9 lç¦æ¢è¿ä¸å¨ä½. æé®æä¸æ¶,xterm éåºESC [ M bxy(6 个å符).è¿é b 代表 é®-1,è x å y æ¯é¼ æ ç x å y åæ .è¿å åæ ¸äº§ççåºåç¸å.

常è§ç轨迹模å¼(Linux 2.0.24ä¸åæ¯æ)å¨å·¦å³ä¸¤é®åæ¶æä¸ç¶å éæ¾æ¶éåºè½¬ä¹åºå.ç»åé®ç¼ç ä¹è¢«éåº.ESC [ ? 1000 h åè®¸è¿ ä¸ªå¨ä½èESC [ 1000 l ç¦æ¢è¿ä¸ªå¨ä½.彿鮿䏿èéæ¾æ¶, xterm éåº ESC [ M bxy.b çä½ä¸¤ä½å¯¹æé®ä¿¡æ¯ç¼ç : 0=é¼ æ é®1æä¸,1=é¼ æ é®2 æä¸,2=é¼ æ é®3 æä¸,3=éæ¾. é«ä½ç¼ç ä»£è¡¨ç»åé®,åä¸è¿°ç¼ç ä¸èµ·éåº: 4=Shift,8=Meta(Alt),16=Control(Ctrl).x åy为åçé¼ æ äº ä»¶çxåyåæ .以左ä¸è§ä¸º(1,1).

åå¶å®ç»ç«¯çæ¯è¾

æä»¬å·²ç»è®¨è®ºäºå ç§ç»ç«¯ç±»å,æ¯å¦Linux æ§å¶å°.è¿ç±»ç»ç«¯ç§°ä¸º "VT100å¼å®¹"çç»ç«¯.è¿éæä»¬åä»ç»å¶ä»ä¸¤ç§éè¦çç»ç«¯ç±»å: DEC VT102 å xterm(1) 以åä»ä»¬åLinuxæ§å¶ç»ç«¯çåºå«.

Control-character handling æ§å¶å符å¤ç

vt102 ä¹ä½¿ç¨ä»¥ä¸æ§å¶åºå:

NUL(0x00)忽ç¥;

ENQ(0x05)触ååºçæ¶æ¯;

DC1(0x11,ˆQ,XON)ç»§ç»ä¼ é;

DC3(0x13,ˆS,XOFF)使 vt100 忽ç¥(并忢传é) é¤ XOFF and XON 以å¤çä¸åå符.

VT100-like DC1/DC3 è¿ç¨å¯ä»¥ç± tty 驱卿¿æ´».

ç¨åº xterm

(å¨ vt100 æ¨¡å¼ ä¸)ä½¿ç¨æ§å¶åºå BEL,BS,HT,LF,VT,FF,CR,SO,SI,ESC.

Escape sequences 转ä¹åºå

VT100 æ§å¶å°åºåä¸å®å¨æ¯æLinuxæ§å¶å°åºå:

Image grohtml-3014002-5.png

ç¨åº xterm (vt100 模å¼)æ¿è®¤ ESC c,ESC # 8,ESC >,ESC =, ESC D,ESC E,ESC H,ESC M,ESC N,ESC O,ESC P ...ESC ESC Z(以 [ ? 1 ; 2 c,‘I am a vt100 with advanced video option’ååº) 以å ESC ˆ ...ESC æä¹åä¸. æ¥å ESC(,ESC ),ESC *,ESC + åè· 0,A,B çå符åºå,åå« ä»£è¡¨çDEC ç¹æ®å- 符,ç»çº¿è®¾ç½®,UK å US ASCIIç . æ¥å ESC ] ä½ä¸ºç¹å®èµæºè®¾ç½®:

   

 

Image grohtml-3014002-6.png

以ä¸å符çå«ä¹ç¥æä¸å::

 

 

Image grohtml-3014002-7.png

å®è¿æ¥å以ä¸åºå:

 

 

Image grohtml-3014002-8.png

å®ä¸è¯å« ESC % ...

CSI Sequences CSI åºå

ç¨åº xterm (ç´å° XFree86 3.1.2G)ä¸è½è¯å«éªçæèä¸å¯è§æ¨¡å¼ç SGRå¼.X11R6 ä¹ä¸è½è¯å«ä»¥ SGRs ä¸ºåæ°è®¾ç½®çè²å½©. xterm å¯ä»¥è¯å«å¶ä»ç ECMA-48 CSI åºå,åªè¦Linuxå¯ä»¥è¯å«. åä¹äº¦ç¶.

xterm å¯ä»¥è¯å«ä»¥ä¸ååºçææ DEC ç§æåºå,使¯ä¸åæ¬ Linux ç§ææ¨¡å¼åºå. å¨ Xterm Control Sequences 䏿å³äº xterm çç§ææ¨¡å¼åºåç讨论.

document by Edward Moy and Stephen Gildea,available with the X distribution.

BUGS

å¨çæ¬ä¸º 2.0.23 çåæ ¸ä¸,CSI åºåçè¯å«æäºé®é¢: ä¸è½è¯å«è½¬ä¹åºåä¸çNUL.

åè§

console(4), console_ioctl(4), charsets(7)

è·

æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã
䏿 man æå页计åï¼https://github.com/man-pages-zh/manpages-zh