터미널 생성 신호 목록 (예 : Ctrl-C-> SIGINT)


30

Linux에서 신호를 보내는 키보드 조합의 전체 목록은 어디에서 찾을 수 있습니까?

예 :

  • Ctrl+ C-사인
  • Ctrl+ \-시그 퀴트

2
"키보드"는 신호를 보내지 않습니다. 라인 규칙이 무엇인지 확인한 다음를 읽으십시오 man 1 stty.
Satō Katsura

@SatoKatsura 라인 규칙은 일종의 키보드 드라이버입니다.
질 'SO-정지 존재 악마'

@Gilles 실제로는 아닙니다. 키보드 드라이버는 스캔 코드 등을 처리합니다. 라인 규율은 일종의 고급 접착제로, 모뎀 라인, USB- 직렬 어댑터, HID 장치 등과 같은 다른 많은 것들에 대해 응용 프로그램에 통일 된보기를 제공합니다.
Satō Katsura

@SatoKatsura 응용 프로그램과 키보드 사이에있는 운영 체제의 일부입니다. 다시 말해 키보드 드라이버의 일부입니다. vt100과 같은 하드웨어 터미널을 사용하면 터미널 자체가 아닌 컴퓨터에서 수행하는 키보드 입력의 유일한 변형입니다.
Gilles 'SO- 악마 그만해

답변:


27

Linux N_TTY 회선은 SIGINT, SIGQUIT 및 SIGTSTP의 세 가지 신호 만 보냅니다. 기본적으로 다음 제어 문자가 신호를 생성합니다.

  • Ctrl+ C-사인
  • Ctrl+ \-시그 퀴트
  • Ctrl+ Z-SIGTSTP

흠, Ctrl-S와 Ctrl-Q는 어떻습니까? 이에 대한 참조가 있습니까?
Tom Hale

6
Ctrl-S 또는 Ctrl-Q를 누를 때 신호가 없습니다. 캐릭터의 흐름을 조절하여 소비 과정에 도달하지 못하게합니다. 결국 버퍼가 가득 차면 Ctrl-Q가 흐름을 조절할 때까지 작성 프로세스가 쓰기 시스템 호출에서 차단됩니다. Ctrl-S 없이도 호출하는 호출이 차단 될 수 있습니다. 수신 프로세스가 전송 된 데이터를 소비하는 속도가 느린 경우 (예 : 새 데이터를 읽는 대신 이미 수신 된 데이터를 처리하는 데 대부분의 시간을 소비하기 때문에) .
Johan Myréen

1
man stty | grep -C1 signal터미널에 의해 생성 된 유일한 신호 인 이들 3 개의 소스 중 하나입니다.
Tom Hale

@TomHale ... "모뎀 제어 신호"를 제외한 전기 신호입니다. :) 정말 SIGINT, SIGQUIT와는 SIGTSTP단지 "보통"신호는 제어 규칙에 의해 전송된다. BSD에는와 같은 SIGINFO것이 있지만 표준은 아닙니다.
Satō Katsura

8

stty신호를 생성하는 문자를 확인하거나 변경하는 데 사용할 수 있습니다 .

$ stty -a | grep -Ewoe '(intr|quit|susp) = [^;]+'
intr = ^C
quit = ^\
susp = ^Z

intr(인터럽트) generate SIGINT, quitgenerate SIGQUIT, susp(suspend) generate SIGTSTP. stty -a또한 신호를 보내지 않고 터미널 레이어에 영향을주는 start = ^Q; stop = ^S;and erase = ^?(백 스페이스) 와 같은 것을 보여줍니다 .

일반 stty은 기본 설정 이외의 설정을 표시하며 예를 들어 stty intr ^Q인터럽트 문자를 ^Q대신로 변경합니다 ^C.

내 생각 ^L(폼 피드, 새 페이지) 터미널 기능이 아닙니다, 그러나 동시에 창 크기를 다시 검사보기를 다시 그리기 위해 종종 응용 프로그램에서 사용되는 문자 물어.


1
^L응용 프로그램마다 다른 의미를 갖습니다. 대부분 curses기반 애플리케이션 (예 :이 같은 vim, less, mutt, mc, 등)이 있지만 (껍질에, 완전한 다시 그리기 (따라서 다시 확인 창 크기를) 강제 bash등) 그냥 화면을 지 웁니다. SIGWINCH관여 하지 않습니다 .
Satō Katsura
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.