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.