터미널은 키가 아닌 문자 만 이해합니다. 따라서 기능 키는 제어 문자를 사용하여 문자 시퀀스로 인코딩됩니다. 연관된 제어 문자 ( Tabis Ctrl+I
, Enteris Ctrl+M
, Escis Ctrl+[
) 가 있는 몇 가지 일반적인 것 외에도 기능 키는 Ctrl+[ [
또는로 시작하는 이스케이프 시퀀스를 보냅니다 Ctrl+[ O
. tput
명령을 사용 하여 터미널의 각 기능 키에 대해 이스케이프 시퀀스 응용 프로그램이 예상하는 것을 볼 수 있습니다 . 이 시퀀스는 terminfo
데이터베이스에 저장 됩니다. 예를 들어, 아래의 쉘 스 니펫은 각 기능 키에 해당하는 이스케이프 시퀀스를 보여줍니다.
$ for x in {1..12}; do echo -n "F$x "; tput kf$x | cat -A; echo; done
F1 ^[OP
F2 ^[OQ
F3 ^[OR
F4 ^[OS
F5 ^[[15~
F6 ^[[17~
F7 ^[[18~
F8 ^[[19~
F9 ^[[20~
F10 ^[[21~
F11 ^[[23~
F12 ^[[24~
기능 키에 대한 제어 시퀀스를 참조하는 또 다른 방법은 프레스이다 Ctrl+ V리바 않는 단말 프로그램에 Ctrl+에 V(예 쉘로) 키. Ctrl+ V다음 문자 (이스케이프 문자가 됨)를 문자 그대로 삽입하면 일반 문자로 구성된 나머지 시퀀스를 볼 수 있습니다.
시퀀스는 입력하기 어려울 수 있으므로 응용 프로그램에서 키 바인딩을 변경하거나 다른 터미널 에뮬레이터를 사용하여 조사하십시오. 또한 시간 제한이있을 수 있습니다. 일부 응용 프로그램은 이스케이프 시퀀스가 충분히 빠르면 인식하므로 Esc키에만 의미를 줄 수 있습니다 .