Onde posso encontrar uma lista completa das combinações de teclado que enviam sinais no Linux?
Por exemplo:
- Ctrl+ C- SIGINT
- Ctrl+ \- SIGQUIT
Onde posso encontrar uma lista completa das combinações de teclado que enviam sinais no Linux?
Por exemplo:
Respostas:
A disciplina de linha N_TTY do Linux envia apenas três sinais diferentes: SIGINT, SIGQUIT e SIGTSTP. Por padrão, os seguintes caracteres de controle produzem os sinais:
man stty | grep -C1 signal
é uma fonte para esses três, sendo os únicos sinais gerados pelo terminal.
SIGINT
, SIGQUIT
e SIGTSTP
são a única sinais "habituais" enviada pela disciplina line. No BSD você também tem coisas do tipo SIGINFO
, mas isso não é padrão.
Você pode usar stty
para verificar ou alterar os caracteres que geram sinais.
$ stty -a | grep -Ewoe '(intr|quit|susp) = [^;]+'
intr = ^C
quit = ^\
susp = ^Z
intr
(interromper) gera SIGINT
, quit
gera SIGQUIT
, susp
(suspende) gera SIGTSTP
. stty -a
também mostrará coisas como start = ^Q; stop = ^S;
e erase = ^?
(backspace), que não enviam sinais, mas afetam a camada terminal.
Plain stty
mostrará as configurações não padrão e, por exemplo stty intr ^Q
, alteraria o caractere de interrupção para em ^Q
vez de ^C
.
Eu acho que ^L
(feed de formulário, nova página) não é um recurso terminal, mas um caractere frequentemente usado pelos aplicativos para solicitar um redesenho da exibição, verificando novamente o tamanho da janela ao mesmo tempo.
^L
tem um significado diferente para diferentes aplicações. Na maioria dos curses
aplicativos baseados em (tais como vim
, less
, mutt
, mc
, etc.) que obriga um redesenho completo (portanto, re-verificar o tamanho da janela), mas em conchas ( bash
etc.) ele só limpa a tela. Não há SIGWINCH
envolvido.
man 1 stty
.