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 [ []뒤 에 선 문 자 하 나 가 읽 히 고 , 이 모 든 시 퀀 스 가 무 시 된 다 . (발 상 은 반 항 되 는 기 능 키 를 무 시 하 는 것 이 다 .) CSI 시 퀀 스 는 그 것 의 마 지 막 문 자 에 의 해 결 정 된 다 . |
ECMA-48 Set Graphics
Rendition |
ECMA-48 Mode Switches
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 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. 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 |
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이 고 , 마 우 스 를 눌 렀 을 때 의 x와 y는 마 우 스 의 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. 다 시 x와 y는 마 우 스 움 직 임 의 x,y 좌 표 가 된 다 . 상 위 왼 쪽 코 너 는 (1,1)이 라 . COMPARISONS WITH OTHER TERMINALS많 은 서 로 다 른 터 미 널 타 입 은 리 눅 스 콘 솔 이 VT100 호 환 인 것 처 럼 묘 사 된 다 . 리 눅 스 콘 설 과 다 른 가 장 중 요 한 두 가 지 DEC VT102와 xterm(1). 의 차 이 점 에 대 해 알 아 보 자 . Control-character
handling
VT100-DC1/DC3 과 정 과 비 슷 한 , 는 tty 드 라 이 버 에 의 해 작 동 가 능 하 다 .
Escape
sequences
|