나는 vagrant에서 CentOS 6.4를 실행하고 vagrant를 통해 상자에 SSH를 실행하고 있습니다. 나는 한동안 백스페이스 키를 작동시키려고 노력해 왔습니다(예 chronicled
:Centos 터미널은 백스페이스 및 Ctrl-h를 올바르게 구성합니다.)
이 작업의 일부로 로드 키를 사용하여 키맵의 동작을 수정해 보았지만 잘 작동하지 않는 것 같습니다. 그래서 루트로서 다음을 수행했습니다(지정된 대로).여기):
[root@localhost vagrant]# dumpkeys -f | grep -iE string
...
string F9 = "\033[20~"
string F10 = "\033[21~"
...
[root@localhost vagrant]# echo 'string F10 = "foo" ' | loadkeys # to make F10 print "foo"
[root@localhost vagrant]# dumpkeys -f | grep -iE string # verify that keymap is changed
...
string F9 = "\033[20~"
string F10 = "foo"
...
이제 F10을 입력하세요. 이것은 ~
인쇄 대신 문자를 계속 제공합니다 foo
. 이는 loadkeys가 호출되기 전의 원래 동작이었습니다. 따라서 loadkeys가 전혀 영향을 미치지 않는 것처럼 보입니까?
답변1
loadkeys
ioctl()
커널 가상 터미널 장치를 통해 요청하여 커널에 내장된 터미널 에뮬레이터를 다시 프로그래밍합니다. .을 통해 컴퓨터에 연결하면 해당 터미널 에뮬레이터를 사용하지 않는 것입니다 ssh
. 실제로 해당 머신의 터미널 에뮬레이터, 커널 또는 사용자 공간은 전혀 건드리지 않습니다.
로컬 컴퓨터의 터미널 에뮬레이터는 기능 키를 제어 시퀀스에 매핑합니다. 물론, loadkeys
연결의 로컬 측과 완전히 다른 컴퓨터에서 실행되는 터미널 에뮬레이터를 다시 프로그래밍하지 마십시오 ssh
.
수퍼유저로 실행 하지 않는 경우 터미널이 해당 로그인 세션에 관련되어 있지 않기 때문에 로그인 세션 에서 실행할 때 통신할 커널 가상 터미널을 찾을 수 없다는 loadkeys
유용한 오류 메시지를 받게 됩니다 .ssh
loadkeys