본문 바로가기
지식창고/IT 지식

터미널 특수 키의 이스케이프 시퀀스 (+ 테라텀의 Backspace/Delete 키 설정)

by eteo 2026. 7. 4.
반응형

 

먼저 키보드의 Tab, Enter, Backspace, Space 같은 키들은 ASCII 코드표에 이미 정의된 단일 바이트 값이 있다.

 

Key Hex ASCII 문자
Tab 0x09 TAB
Enter 0x0D 또는 0x0A CR 또는 LF
Backspace 0x08 또는 0x7F BS 또는 DEL
ESC 0x1B ESC
Space 0x20 SP

 

 

반면 방향키, Delete, Home, End 같은 키들은 ASCII 코드표에 자리가 없다. 이런 키들을 표현하기 위해 터미널은 멀티바이트의 이스케이프 시퀀스를 사용한다.

 

 

 

 

터미널 특수 키 이스케이프 시퀀스 표

모든 이스케이프 시퀀스는 첫 번째 바이트가 0x1B (ESC 문자의 ASCII 코드)로 시작하며, 테라텀 등 터미널에서 다음 키를 누르면 아래 바이트 시퀀스가 연달아 전송된다.

 

Key Hex 바이트 시퀀스 ASCII 문자
위쪽 화살표 0x1B 0x5B 0x41 ESC [ A
아래쪽 화살표 0x1B 0x5B 0x42 ESC [ B
오른쪽 화살표 0x1B 0x5B 0x43 ESC [ C
왼쪽 화살표 0x1B 0x5B 0x44 ESC [ D
Delete 0x1B 0x5B 0x33 0x7E ESC [ 3 ~
Home 0x1B 0x5B 0x31 0x7E ESC [ 1 ~
End 0x1B 0x5B 0x34  0x7E ESC [ 4 ~

 

 

 

 

 

 

Backspace 키와 Delete 키의 충돌

 

 

여기서 아스키 코드표엔 DEL 제어문자가 단일 바이트로 정의되어 있는데, 왜 키보드의 Delete 키가 멀티바이트 이스케이프 시퀀스로 전달되는지 의아할 수 있다.


DEL (0x7F)은 텔레타이프 시절 이미 기록된 문자를 무효화하기 위해 정의된 ASCII 제어 문자였다. 이후 VT220 같은 터미널에서는 DEL (0x7F)을 커서 왼쪽 문자를 삭제하는 용도로 사용했고, 현재는 키보드에서 Backspace 키를 누를 때 DEL (0x7F) 또는 BS (0x08)를 전송하는 방식이 혼용되어 사용되고 있다.


한편 현재 키보드에서 Delete 키를 누르면 대부분은 0x1B 0x5B 0x33 0x7E 이스케이프 시퀀스를 전송한다.

 

 

 

 

 

 

테라텀의 Backspace / Delete 키 설정

위와 같은 문제로 터미널 설정에 따라 Backspace 키와 Delete 키의 역할이 충돌될 수도 있다고 생각했는지 테라텀에서는 키 값을 직접 설정할 수 있는 옵션을 제공한다.

 

그런데 테라텀의 기본 설정이 PuTTY, xterm, SecureCRT 등 대부분 터미널에서 적용하는 표준 방식과 다르기 때문에 이걸 모르면 "왜 테라텀에서는 잘 됐는데 다른 터미널 프로그램에선 안먹히지?" 하는 불상사가 생긴다.

 

Tera Term > Setup > Keyboard

 

  • Backspace key 설정
    • 체크 해제 (기본값) : 0x08 (BS)를 전송한다.
    • 체크 선택 : 0x7F (DEL)를 전송한다.
  • Delete key 설정
    • 체크 선택 (기본값) : 0x7F (DEL)를 전송한다.
    • 체크 해제 : 0x1B 0x5B 0x33 0x7E 를 전송한다.

 

 

반응형

'지식창고 > IT 지식' 카테고리의 다른 글

ARM 아키텍처의 발전  (0) 2026.03.14
MAC 주소 (UAA, LAA)  (0) 2026.03.12
Wireshark에서 캡쳐시 UDP/TCP 데이터 뒤에 00 패딩이 붙는 이유  (0) 2024.01.24
TCP/IP stack  (0) 2024.01.10
loop unroll  (0) 2023.12.19