Manpages

NAME

console_codes − 리 눅 스 콘 솔 제 어 문 자 와 제 어 순 서 구 조

DESCRIPTION

리 눅 스 콘 솔 은 VT102와 ECMA-48/ISO6429/ANSI X3.64 터 미 널 콘 트 롤 의 많 은 부 분 이 적 용 된 다 . 여 기 에 칼 라 팔 레 트 나 문 자 설 정 맵 핑 등 의 변 화 같 은 비 공 식 적 인 모 드 의 시 퀀 스 가 더 해 진 다 . 아 래 표 에 서 , 두 번 째 컬 럼 은 주 어 진 함 수 에 대 해 ECMA-48이 나 DEC mnemonic (DEC 접 두 사 가 붙 어 있 는 글 씨 )를 주 었 다 . mnemonic이 없 는 시 퀀 스 는 ECMA-48나 VT102도 아 니 다 .

모 든 출 력 과 정 이 끝 나 고 문 자 들 이 콘 솔 드 라 이 버 에 실 제 프 린 팅 을 위 해 도 착 한 후 에 , 가 장 먼 저 일 어 나 는 일 은 진 행 을 위 해 쓰 인 코 드 들 이 프 린 팅 을 위 한 코 드 들 로 바 뀌 는 것 이 다 .

콘 솔 이 UTF-8모 드 라 면 , 들 어 오 는 바 이 트 들 은 처 음 으 로 16-bit Unicode로 결 집 된 다 . 아 니 면 각 각 의 바 이 트 가 현 제 의 멥 핑 테 이 블 에 따 라 옮 겨 진 다 ( 이 것 은 Unicode 값 으 로 바 뀐 다 ).아 래 에 서 CHARACTER SETS을 참 조 하 자 .

일 반 적 인 경 우 , Unicode 값 은 폰 트 인 덱 스 로 바 뀌 어 서 , 비 디 오 메 모 리 에 저 장 된 다 . 그 래 서 대 응 하 는 glyph (비 디 오 ROM에 있 는 것 과 같 이 )가 화 면 에 나 타 난 다 . Unicode의 사 용 (과 PC hardware의 디 자 인 )에 서 는 512가 지 다 른 glyph를 동 시 에 사 용 할 수 있 다 .

현 제 Unicode 값 이 제 어 문 자 라 면 , 혹 은 현 제 escape sequence 를 실 행 하 고 있 다 면 , 그 값 은 특 별 히 다 뤄 질 것 이 다 . 폰 트 인 덱 스 로 바 뀌 거 나 glyph로 되 는 대 신 , 커 서 를 움 직 이 게 하 거 나 다 른 제 어 기 능 을 한 다 . 아 래 에 서 LINUX CONSOLE CONTROLS 섹 션 을 보 자 .

hard-wire terminal control을 프 로 그 램 에 넣 는 것 은 일 반 적 으 로 좋 은 일 은 아 니 다 . 리 눅 스 는 터 미 널 기 능 의 terminfo(5) 데 이 터 베 이 스 를 지 원 한 다 . 콘 솔 escape 시 퀀 스 를 직 접 내 보 내 는 것 보 단 , terminfo을 사 용 하 려 할 것 이 다 . -스 크 린 라 이 브 러 리 와 . ncurses(3), tput(1), 혹 은 reset(1). 를 알 고 난 다 면 .

LINUX CONSOLE CONTROLS

이 섹 션 에 선 리 눅 스 콘 솔 상 에 서 특 별 한 기 능 들 을 (예 를 들 자 면 현 제 커 서 위 치 에 서 plyph를 쓰 는 것 같 은 ) 하 는 모 든 제 어 문 자 와 escape 시 퀀 스 를 다 루 었 다 .

Control characters
맵 핑 테 이 블 에 따 라 변 환 되 기 전 에 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)와 같 은 14가 지 코 드 들 중 하 나 를 가 지 고 있 는 문 자 가 제 어 문 자 이 다 . ’디 스 플 레 이 제 어 문 자 ’ 모 드 를 설 정 할 수 있 다 (아 래 참 조 ), 그 리 고 07, 09, 0b, 18, 1a, 7f는 glyph로 디 스 플 레 이 될 수 있 다 . 반 면 , 어 떤 ’디 스 플 레 이 제 어 문 자 ’에 관 계 없 이 UTF-8 모 드 에 선 00-1f까 지 의 모 든 문 자 를 제 어 문 자 로 할 수 있 다 .

제 어 문 자 를 가 지 고 있 다 면 , 그 것 은 즉 시 적 용 되 고 사 라 진 다 . (그 것 이 escape 시 퀀 스 중 에 있 다 하 더 라 도 .) 그 리 고 escape 시 퀀 스 는 다 음 문 자 로 계 속 된 다 . (하 지 만 , ESC는 어 떻 게 든 아 직 끝 나 지 않 은 이 전 의 것 을 중 지 시 키 고 , 새 로 운 escape 시 퀀 스 를 시 작 한 다 . 그 리 고 CAN과 SUB는 어 떤 escape 시 퀀 스 라 도 끝 낸 다 .) 인 증 된 제 어 문 자 는 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 (new line mode) 역 시 케 리 지 를 리 턴 시 킨 다 ;

SI (0x0F, ^O)는 G0문 자 군 을 활 성 화 한 다 ;

CAN (0x18, ^X)과 SUB (0x1A, ^Z)는 escape 시 퀀 스 를 중 지 시 킨 다 ;

ESC (0x1B, ^[]는 escape 시 퀀 스 를 시 작 한 다 ;

DEL (0x7F)은 무 시 된 다 ;

CSI (0x9B)는 ESC에 해 당 된 다 . [.

ESC-CSI가 아 닌 -시 퀀 스

ECMA-48 CSI sequences
CSI (or ESC []는 세 미 콜 론 으 로 구 분 되 는 십 진 수 매 개 변 수 의 (거 의 NPAR(16)) 시 퀀 스 로 실 행 된 다 . 비 어 있 는 매 개 변 수 는 0값 이 주 어 진 다 . 매 개 변 수 의 시 퀀 셜 은 앞 에 하 나 의 물 음 표 를 붙 여 놓 았 을 것 이 다 .

하 지 만 , CSI [ (or ESC [ []뒤 에 선 문 자 하 나 가 읽 히 고 , 이 모 든 시 퀀 스 가 무 시 된 다 . (발 상 은 반 항 되 는 기 능 키 를 무 시 하 는 것 이 다 .)

CSI 시 퀀 스 는 그 것 의 마 지 막 문 자 에 의 해 결 정 된 다 .

ECMA-48 Set Graphics Rendition
The ECMA-48 SGR 시 퀀 스 ESC [ <parameters> m 디 스 플 레 이 속 성 을 설 정 한 다 . 몇 가 지 속 성 은 같 은 시 퀀 스 에 서 설 정 할 수 있 다 .

ECMA-48 Mode Switches
ESC [ 3 h

DECCRM (default off): 디 스 플 레 이 설 정 chars.

ESC [ 4 h

DECIM (default off): 삽 입 모 드 설 정 .

ESC [ 20 h

LF/NL (default off): 자 동 적 으 로 LF, VT 혹 은 CR과 FF의 에 코 를 발 생 .

ECMA-48 Status Report Commands
ESC [ 5 n

Device status report (DSR): 응 답 은 ESC [ 0 n (Terminal OK).

ESC [ 6 n

Cursor position report (CPR): 응 답 은 ESC [ y ; x R, where x,y is the cursor location.

DEC Private Mode (DECSET/DECRST) sequences.
ECMA-48에 대 한 설 명 은 없 다 . Set Mode sequences를 리 스 트 에 올 렸 다 ; Reset Mode sequences는 마 지 막 ’h’를 ’l’로 바 꾸 면 된 다 ..
ESC [ ? 1 h

DECCKM (default off): 설 정 되 면 , 커 서 키 는 ESC보 다 ESC O 접 두 사 를 보 낸 다 [.

ESC [ ? 3 h

DECCOLM (default off = 80 columns): 80/132 col mode switch. 드 라 이 버 소 스 에 의 하 면 이 것 만 으 로 는 충 분 치 못 하 다 고 한 다 ; resizecons(8) 와 같 은 유 저 모 드 의 유 틸 리 티 가 콘 솔 비 디 오 카 드 상 의 하 드 웨 어 레 지 스 터 를 바 꿔 야 만 한 다 .

ESC [ ? 5 h

DECSCNM (default off): 리 버 스 비 디 오 모 드 를 설 정 한 다 .

ESC [ ? 6 h

DECOM (default off): 설 정 하 면 , 커 서 어 드 레 싱 은 스 크 롤 링 구 역 의 상 위 왼 쪽 코 너 와 관 련 된 다 .

ESC [ ? 7 h

DECAWM (default on):autowrap을 켜 진 상 태 로 설 정 한 다 . 이 모 드 에 서 는 , 80열 (DECCOLM 이 켜 졌 을 때 는 132열 )후 에 나 온 그 래 픽 문 자 가 다 음 열 의 시 작 을 밀 어 낸 다 .

ESC [ ? 8 h

DECARM (default on): 키 보 드 자 동 반 복 을 켠 다 .

ESC [ ? 9 h

X10 Mouse Reporting (default off): 리 포 팅 모 드 를 1로 설 정 한 다 .(혹 은 0을 리 셋 한 다 .) − 아 래 를 참 조 .

ESC [ ? 25 h

DECCM (default on): 커 서 를 보 이 게 한 다 .

ESC [ ? 1000 h

X11 Mouse Reporting (default off): 리 포 팅 모 드 를 2로 설 정 한 다 .(혹 은 0으 로 리 셋 한 다 .) − 아 래 참 조 .

Linux Console Private CSI Sequences
아 래 시 퀀 스 들 은 ECMA-48도 VT102도 아 니 다 . 이 것 은 리 눅 스 콘 솔 드 라 이 버 고 유 의 것 들 이 다 . 색 은 SGR 매 개 변 수 에 있 다 : 0 = 검 은 색 , 1 = 붉 은 색 , 2 = 초 록 색 , 3 = 갈 색 , 4 = 파 란 색 , 5 = 자 홍 색 , 6 = 청 록 색 , 7 = 하 얀 색 .

CHARACTER SETS

커 널 은 콘 솔 상 에 서 바 이 트 의 변 환 을 4개 정 도 구 분 한 다 . 그 4가 지 테 이 블 은 아 래 와 같 다 : a) Latin1 -> PC, b) VT100 graphics -> PC, c) PC -> PC, d) 사 용 자 정 의 .

G0과 G1이 라 불 리 는 두 가 지 문 자 군 (character sets)이 있 고 , 그 중 하 나 가 현 제 통 용 되 는 문 자 군 이 다 .(보 통 G0) ^N을 입 력 함 으 로 써 G1을 사 용 할 수 있 다 .^O을 입 력 하 면 G0으 로 바 뀐 다 .

이 가 변 적 인 G0과 G1은 변 환 테 이 블 을 말 하 고 , 사 용 자 가 바 꿀 수 있 다 . 처 음 에 그 것 들 은 각 각 테 이 블 a)와 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)를 지 정 한 다 는 보 장 은 없 다 . 어 떤 배 포 판 에 선 "echo ^[c"에 만 적 용 되 는 프 로 그 램 reset(1) 이 있 다 . 만 약 당 신 의 콘 솔 을 위 한 terminfo entry가 정 확 하 다 면 (그 리 고 entry rs1=\Ec를 가 지 고 있 다 면 ), "tput reset" 역 시 작 동 할 것 이 다 .

사 용 자 정 의 맵 핑 테 이 블 은 mapscrn(8). 을 이 용 해 설 정 할 수 있 다 . 맵 핑 의 결 과 는 기 호 c가 프 린 트 되 면 , 기 호 s = map[c] 가 비 디 오 메 모 리 로 보 내 진 다 s에 해 당 하 는 비 트 멥 을 문 자 ROM에 서 찾 고 , setfont(8). 사 용 이 바 뀔 수 있 게 된 다

MOUSE TRACKING

마 우 스 추 적 기 능 의 원 래 목 적 은 xterm(마 우 스 호 환 상 태 리 포 트 )을 반 환 하 는 것 이 다 . 콘 솔 드 라 이 버 는 마 우 스 장 치 나 , 타 입 을 알 수 없 기 때 문 에 , 가 상 터 미 널 드 라 이 버 가 마 우 스 업 데 이 트 ioctl을 받 았 을 때 만 콘 솔 입 력 스 트 림 상 에 서 이 리 포 트 가 반 환 된 다 . 이 ioctls은 반 드 시 gpm(8) 데 몬 과 같 은 mouse-aware user-mode 어 플 리 케 이 션 에 의 해 발 생 되 어 야 한 다 .

xterm에 의 해 생 성 된 모 든 마 우 스 추 적 escape 시 퀀 스 를 위 한 매 개 변 수 는 수 치 적 인 매 개 변 수 를 value+040와 같 은 하 나 의 문 자 로 인 코 딩 한 다 . 예 를 들 면 , ’!’는 1이 다 . 스 크 린 좌 표 시 스 템 은 1-based.이 다 X10 호 환 모 드 는 escape sequence를 위 치 와 눌 려 진 마 우 스 버 튼 을 인 코 딩 한 버 튼 이 눌 러 졌 을 때 보 낸 다 . It is enabled by ESC [ ? 9 h를 보 냄 으 로 써 이 것 을 가 능 하 게 하 고 , ESC [ ? 9 l를 보 냄 으 로 써 불 가 능 하 게 한 다 .. button press에 서 , xterm은 ESC [ M bxy (6 characters)를 보 낸 다 . b 는 버 튼 −1이 고 , 마 우 스 를 눌 렀 을 때 의 xy는 마 우 스 의 x, y좌 표 이 다 . 이 코 드 는 모 든 커 널 에 서 적 용 된 다 .

노 말 추 적 모 드 (Linux 2.0.24에 서 실 행 되 지 않 는 )는 escape 시 퀀 스 를 버 튼 을 누 를 때 와 띨 때 모 두 보 낸 다 . 수 정 정 보 역 시 보 낸 다 . 이 것 은 ESC [ ? 1000 h를 보 냄 으 로 써 가 능 해 지 고 ESC [ 1000 l을 보 냄 으 로 써 불 가 능 해 진 다 . 버 튼 을 누 를 때 나 띨 때 , xterm은 ESC [ M bxy를 보 낸 다 . b의 아 래 두 비 트 는 버 튼 정 보 를 인 코 드 한 다 : 0=MB1 pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release. 상 위 두 비 트 는 버 튼 을 눌 렀 을 때 어 떤 수 정 이 가 해 졌 는 지 를 인 코 딩 하 고 , 그 것 을 다 합 친 다 : 4=Shift, 8=Meta, 16=Control. 다 시 xy는 마 우 스 움 직 임 의 x,y 좌 표 가 된 다 . 상 위 왼 쪽 코 너 는 (1,1)이 라 .

COMPARISONS WITH OTHER TERMINALS

많 은 서 로 다 른 터 미 널 타 입 은 리 눅 스 콘 솔 이 VT100 호 환 인 것 처 럼 묘 사 된 다 . 리 눅 스 콘 설 과 다 른 가 장 중 요 한 두 가 지 DEC VT102와 xterm(1). 의 차 이 점 에 대 해 알 아 보 자 .

Control-character handling
vt102 역 시 아 래 제 어 문 자 들 을 인 식 한 다 :

NUL (0x00) 은 무 시 한 다 ;

ENQ (0x05) 응 답 메 시 지 를 트 리 거 한 다 ;

DC1 (0x11, ^Q, XON) 전 송 을 재 개 한 다 ;

DC3 (0x13, ^S, XOFF) vt100으 로 하 여 금 XOFF와 XON을 제 외 한 모 든 코 드 를 무 시 한 다 (그 리 고 전 송 을 멈 춘 다 )

VT100-DC1/DC3 과 정 과 비 슷 한 , 는 tty 드 라 이 버 에 의 해 작 동 가 능 하 다 .

xterm

프 로 그 램 (vt100 모 드 에 서 )은 BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC 제 어 문 자 를 인 식 한 다 .

Escape sequences
VT100 콘 솔 시 퀀 스 는 리 눅 스 콘 솔 에 서 실 행 되 지 않 는 다 .

프 로 그 램 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 를 인 식 한 다 . (ESC [ ? 1 ; 2 c, ’I am a vt100 with advanced video option’라 고 대 답 한 다 ] ESC ^ ... ESC \[uB3C4] 위 와 같 은 메 시 지 와 함 께 인 식 가 능 하 다 . 이 것 은 ESC (, ESC ), ESC *, ESC + 도 각 각 DEC 특 수 문 자 , line drawing set, UK, USASCII로 인 식 한 다 . ESC ]는 현 제 리 소 스 의 설 정 으 로 인 식 한 다 :

아 래 에 있 는 것 들 은 약 간 의 미 가 바 뀌 어 서 인 식 된 다 :

It also recognizes

ESC % ...는 인 식 하 지 못 한 다 .

CSI Sequences
xterm
프 로 그 램 은 (XFree86 3.1.2G의 경 우 ) 깜 빡 임 이 나 보 이 지 않 는 모 드 의 SGR을 인 식 하 지 못 한 다 . 주 요 X11R6 버 전 은 칼 라 셋 팅 의 SGR을 인 식 하 지 못 한 다 . 리 눅 스 에 서 인 식 하 는 다 른 모 든 ECMA-48 CSI 시 퀀 스 는 xterm, 와 vice-versa에 서 도 역 시 인 식 된 다 ..

xterm 프 로 그 램 은 모 든 DEC Private Mode 시 퀀 스 를 인 식 할 것 이 다 . 위 의 목 록 을 참 조 하 자 . 하 지 만 Linux private-mode 시 퀀 스 는 인 식 하 지 못 한 다 . xterm 자 신 의 private-mode 시 퀀 스 에 대 해 선 , Edward Moy와 Stephen Gildea가 쓴 Xterm Control Sequences 문 서 를 참 조 하 자

BUGS

2.0.23 버 전 에 서 , CSI가 작 동 하 지 않 고 , NUL은 내 부 escape 시 퀀 스 를 무 시 하 지 않 는 다 .

SEE ALSO

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