SSH를 통해 기능 키 보내기 (F1-F12)


14

SSH를 사용할 수있는 Fedora 시스템이 있습니다. 사용하고 싶은 프로그램 중 하나가 때때로 기능 키를 사용합니다. 문제는 내가 실제 키보드와 안드로이드 태블릿 (ASUS 변압기 무한대)에서 SSH'ing,하지만 더있어 점이다 F1- F12키. 따라서 사용중인 터미널 응용 프로그램 (VX ConnectBot)이 기능으로 기능을 추가하기로 결정할 때까지 나머지 키보드를 사용하여 전송할 수있는 방법을 찾고 있습니다.

나는 모든 인쇄 가능한 ASCII 문자를 사용할 수 있습니다, Esc, Ctrl, Shift, Enter,와 Tab.


Android.SE에 대해 문의하는 것이 좋습니다.
— derobert

답변:


26

터미널은 키가 아닌 문자 만 이해합니다. 따라서 기능 키는 제어 문자를 사용하여 문자 시퀀스로 인코딩됩니다. 연관된 제어 문자 ( 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키에만 의미를 줄 수 있습니다 .


명령이 제공하는 목록에 Shift 키를 어떻게 추가합니까?
— drevicko 2016 년

1
@drevicko xterm에서 Shift + F1은 kf13, Shift + F2는 kf14등입니다. 그런 다음 Ctrl + F1은 kf25, Ctrl + Shift + F1은 kf37, Alt + F1은 kf49입니다. 이것이 다른 터미널에서 작동하는지 또는 실제 F13 키가 있으면 얻을 수있는 것입니다.
— 질 'SO-정지 존재 악마'

3

Jack Palevich의 Android Terminal Emulator는 볼륨 키와 키 조합을 사용하여 기능 키를 포함한 다양한 키를 보냅니다. 실제 키보드가 가질 수있는 모든 키가있는 해커 키보드도 있습니다.


고마워, 해커 키보드는 내가 지금 필요로하는 것을 다루어야한다.
— Sizik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.