GNU 화면에서 키 조합 Ctrl+를 비활성화하는 방법은 무엇입니까? C사실 익숙해져야 하는데 습관적으로 ++ 대신 Ctrl+를 누르네요.CCtrlAD
답변1
이제 나는 스스로 답을 찾았습니다. 설명하다
defscrollback 30000
bindkey "^C" echo 'Blocked. Please use [Ctrl]+[A] + [Ctrl]+[Enter] + [Y]'
bindkey "^D" echo 'Blocked. Please use [Ctrl]+[A] + [Ctrl]+[Enter] + [Y]'
bind "^M" quit
파일에
~/.screenrc
Cc가 명령만 실행 echo
하고 더 이상 인터럽트를 보내지 않도록 합니다. 대신 ^M
또는 Ctrl+를 사용하여 화면을 중지 할 수 있습니다 Enter. 저는 bind
( bindkey
다름)을 사용하기 때문에 먼저 Ca를 눌러야 합니다. 확인 메시지는 를 통해 확인할 수 있습니다 Y. 이 솔루션의 장점은 실제 Java 또는 Python 프로그램을 변경할 필요가 없다는 것입니다. 새 ~/.screenrc
파일을 읽으려면 실행 중인 screen 세션을 다시 시작해야 한다는 점을 기억하세요 . (이 경로는 사용자에 따라 다릅니다(예: /root/.screenrc
또는 /home/user/.screenrc
.)
유용한 URL:
- 문서:http://web.mit.edu/gnu/doc/html/screen_13.html
- 자신만의 키 조합을 찾으세요:https://unix.stackexchange.com/a/116588/239596
시험용
- 화면 버전 4.01.00devel(GNU) 2006년 5월 2일
- 우분투 14.04.5 LTS
- MobaXterm v10.9 빌드 3656(Windows)
답변2
Ctrl+CINT
현재 포그라운드에 있는 프로세스에 (인터럽트) 신호를 보냅니다. 이는 전송할 수 있는 중요한 신호이므로 실수로 이 키 조합을 누르지 않는 방법을 배우는 것이 가장 좋습니다.
너할 수 있는INT
신호를 보내는 다른 제어 순서를 갖도록 키 조합을 다시 매핑할 수도 있습니다 . 예를 들어, Ctrl+G쉘 명령을 사용하여 동일한 작업을 수행 할 수 있습니다.
stty intr ^G
그러면 키 조합은 Ctrl+CASCII 코드 3 문자만 전송합니다.
다시 한번 말하지만, 올바르게 사용하는 방법을 익히면 그다지 큰 문제가 되지 않을 수도 있습니다 Ctrl+C.
답변3
다음과 같이 로깅을 사용하면 우선 이 문제를 피할 수 있습니다.
- 화면을 생성할 때 다음 명령을 사용하여 로그 파일을 생성합니다.
screen -L -Logfile file_name.log
- 이제 화면을 검사하려면 화면을 복원하지 말고 대화형으로 로그 파일을 읽으세요.하나이 두 명령은 다음과 같습니다.
tail -f -n 20 file_name.log
watch tail file_name.log
도움이 되었기를 바랍니다.