CTRL + C 일 때 ^ C 제거 ^C눌렀을 때 제거 할 수 있는

Red Hat Enterprise Linux 6 ( “Santiago”)의 shell include에서 + 를 ^C눌렀을 때 제거 할 수 있는 방법이 있습니까? 본인의 편집 권한이 있습니다 .CTRLC.bash_profile



답변

~/.inputrc파일을 편집 (또는 작성)하십시오 . 말하는 줄 추가

set echo-control-characters Off

이것은 Bash가 사용하는 GNU Readline 라이브러리에 제어 문자를 화면에 출력하지 않도록 지시합니다. 이 설정은 이후의 모든 새로운 Bash 세션 (및 Readline 라이브러리를 사용하는 다른 유틸리티)에서 활성화됩니다.

것을 알 수 있는 경우 유닉스 시스템 (보통의 Readline 라이브러리 시스템 전체 구성 파일과 함께 제공 /etc/inputrc), 다음 개인 설정 파일은 그 파일을 포함해야합니다 :

$include /etc/inputrc
set echo-control-characters Off

또 다른 대안은 시스템 전체 구성 파일의 개인 사본을 작성한 다음 수정하는 것입니다.


답변

다음을 시도하십시오 :

stty -echoctl

설명은 참조 에서이 위대한 상세한 포스트 스테판 Chazelas가 일부 다른 설명 stty기능 .

변경 사항을 영구적으로 만들고 싶다면 (그리고 bash질문에 암시 된대로 사용 하고 있다면) 주석 .bashrcjlmg 가 언급 한대로 입력하는 것이 가장 좋습니다 (따라서 모든 대화 형 쉘에 적용됨).


답변

를 포함하여 정상적인 반향을 허용 echoctl하고 신호 생성 문자의 반향을 침묵 시키는 구성을 찾으려고 노력하고 있다면 이전에 그렇게 작동하는 것을 보았 기 때문에 가능해야합니다 …

아마 그런 식으로 보았을 것입니다. 그러나이 커밋으로 인해 더 이상 가능하지 않습니다 .

커밋 ec5b1157f8e819c72fc93aa6d2d5117c08cdc961

N_TTY 라인 분야에서 INTR / QUIT / SUSP 에코를 켭니다 (예 : stty echoctl이 설정되고 ctrl-C가 INTR로 설정된 경우 ctrl-C는 “^ C”로 나타남).

리눅스는 유닉스와 같은 유일한 OS 인 것 같습니다 (최근 에이 방법 은 작동 하지 않는 Solaris, BSD 및 Mac OS X에서 이것을 확인했습니다). 콘솔 또는 xterm에서. 나는 수년 동안 내가 사용해온 많은 유닉스들로부터 이것을 좋아한다는 것을 기억합니다. 이것을 리눅스로 가져 오는 것은 표준 유닉스와 같은 행동을 더 잘 준수하는 좋은 방법처럼 보입니다.

리눅스가 어떻게 그것을 반향 하지 않았던 지를 기억한다면 ^C, 이전의 행동을 되 찾는 유일한 방법은 커널을 패치하는 것입니다. 최신 버전에서 신호 생성 문자의 에코는 drivers / tty / n_tty.c의 1215-1218 행에 있습니다.