Dove posso trovare un elenco completo delle combinazioni di tastiere che inviano segnali in Linux?
Per esempio:
- Ctrl+ C- SIGINT
- Ctrl+ \- SIGQUIT
Dove posso trovare un elenco completo delle combinazioni di tastiere che inviano segnali in Linux?
Per esempio:
Risposte:
La disciplina di linea N_TTY di Linux invia solo tre diversi segnali: SIGINT, SIGQUIT e SIGTSTP. Per impostazione predefinita, i seguenti caratteri di controllo producono i segnali:
man stty | grep -C1 signal
è una fonte per questi tre essendo gli unici segnali generati dal terminale.
SIGINT
, SIGQUIT
e SIGTSTP
sono l'unica "soliti" segnali inviati dalla disciplina di linea. Su BSD hai anche cose del genere SIGINFO
, ma non è standard.
È possibile utilizzare stty
per controllare o modificare i caratteri che generano segnali.
$ stty -a | grep -Ewoe '(intr|quit|susp) = [^;]+'
intr = ^C
quit = ^\
susp = ^Z
intr
(interrompere) genera SIGINT
, quit
genera SIGQUIT
, susp
(sospendi) genera SIGTSTP
. stty -a
mostrerà anche cose come start = ^Q; stop = ^S;
e erase = ^?
(backspace), che non inviano segnali ma influenzano il layer terminale in caso contrario.
Plain stty
mostrerà le impostazioni non predefinite e ad es. stty intr ^Q
Cambierebbe il carattere di interruzione ^Q
invece di^C
.
Penso che ^L
(feed modulo, nuova pagina) non sia una funzionalità terminale, ma un personaggio spesso usato dalle applicazioni per chiedere di ridisegnare la vista, ricontrollando allo stesso tempo le dimensioni della finestra.
^L
ha un significato diverso per diverse applicazioni. Nella maggior parte delle curses
applicazioni basate (come vim
, less
, mutt
, mc
, etc.) costringe il ridisegno completo (quindi ri-controllando la dimensione della finestra), ma in gusci ( bash
etc.) semplicemente cancella la schermata. Non è SIGWINCH
coinvolto.
man 1 stty
.