답변:
커널의 터미널 드라이버 ( termios
)는 프로세스에 신호를 보내거나 파일의 끝을 보내거나 문자를 지우는 등 입력 할 수있는 특수 키를 해석합니다. 이것은 기본 Unix 커널 기능이며 대부분의 Unix 및 Linux 구현에서 매우 유사합니다.
이 stty
명령은 termios
특수 문자 및 터미널 라인 드라이버의 기타 매개 변수를 표시하거나 설정합니다 .
stty -a
특수 문자 및 기타 "터미널 라인 설정"의 현재 값을 보려면 호출 하십시오. 다음 예에서, 당신이 볼 수 intr
있습니다 Ctrl+ C, eof
이다 Ctrl+는 D, susp
이다 Ctrl+ Z. (특수 문자 설정 만 표시하기 위해 다른 출력을 삭제했습니다) :
stty -a
GNU / 리눅스의 특수 문자 :
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
stty -a
FreeBSD의 특수 문자 :
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ^@; eol2 = ^@;
erase = ^?; erase2 = ^H; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
예를 들어, 특수 문자의 값을 변경하려면에서 인터럽트 문자 변경 Ctrl+를 C에 Ctrl+ E호출 stty
이 같은 ( ^E
말 그대로 두 개의 문자, 곡절입니다 ( ^
문자 뒤에) E
) :
stty intr '^E'
자세한 내용은 stty
및 의 매뉴얼 페이지를 참조하십시오 termios
. GNU / Linux에서는 tty_ioctl
매뉴얼 페이지를 볼 수도 있습니다 .
노트:
intr
키 ( Ctrl+ C기본적으로는) 실제로 프로세스를 종료하지만, (인터럽트 신호를 전송하기 위해 커널을 유발하지 않는 SIGINT
프로세스 그룹 내의 모든 프로세스에). 프로세스는 신호를 포착하거나 무시하도록 정렬 할 수 있지만 대부분의 프로세스가 종료됩니다 (기본 동작).
이유 Ctrl+는 d터미널 라인 드라이버는 쉘의 표준 입력에 EOF (파일 끝) 전송하기 때문에 로그 아웃이다. 쉘은 표준 입력에서 파일 끝을 수신하면 종료됩니다.
-a
옵션이 추가되었습니다 stty
.
stty intr '^E'
그것이 작동 (세트)했지만 일시적으로 현재 터미널 / tty에 대해서만 시도 했습니다. 전 세계적으로 영구적으로 변경하려면 어떻게합니까?
stty
$ HOME / .profile 또는 $ HOME / .bashrc 또는 다른 쉘 시작 초기화 파일에서 호출하는 것 입니다.
tty
tty
합니까? 어쩌면 그것은 새로운 질문이 될 수 있습니까?
에서 http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
배쉬 는 또한! bash 명령으로 펑키 한 일을 할 수 있습니다 .
^U
있는지, stty -a
쇼 떠들썩한 파티에서, 리눅스에 SIGKILL에 대해 정의? 바람직하게는 판독 라인을 정의하지 않고 (아마도 세 번째 mod / meta 키를 통해). 나는 그것이 ctrl + u readline 바인딩에 의해 음영 처리되었다고 가정합니까?
bind -p
help bind