Le pilote de terminal du noyau ( termios) interprète les clés spéciales qui peuvent être saisies pour envoyer un signal à un processus, envoyer la fin d'un fichier, effacer des caractères, etc. Il s'agit d'une fonctionnalité de base du noyau Unix et très similaire sur la plupart des implémentations Unix et Linux.
La sttycommande affiche ou définit les termioscaractères spéciaux, ainsi que d'autres paramètres pour le pilote de ligne de terminal.
Appelez stty -apour voir les valeurs actuelles des caractères spéciaux et autres "paramètres de ligne de terminal". Dans les exemples suivants, vous pouvez voir que intrc'est Ctrl+ C, eofest Ctrl+ D, suspest Ctrl+ Z. (J'ai supprimé d'autres sorties pour n'afficher que les paramètres des caractères spéciaux):
stty -a caractères spéciaux sur GNU / Linux:
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 caractères spéciaux sur 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;
Pour changer la valeur d'un caractère spécial, par exemple, pour changer le caractère d'interruption de Ctrl+ Cà Ctrl+ Einvoquer sttycomme ceci ( ^Eest littéralement deux caractères, le circonflexe ( ^) suivi de la lettre E):
stty intr '^E'
Pour plus d'informations, consultez les pages de manuel de sttyet termios. Sur GNU / Linux, vous pouvez également consulter la tty_ioctlpage de manuel.
Remarques:
La intrclé ( Ctrl+ Cpar défaut) ne tue pas réellement le processus, mais oblige le noyau à envoyer un signal d'interruption ( SIGINT) à tous les processus du groupe de processus. Les processus peuvent s'arranger pour intercepter ou ignorer le signal, mais la plupart des processus se termineront, ce qui est le comportement par défaut.
La raison pour laquelle Ctrl+ dvous déconnecte est que le pilote de ligne de terminal envoie EOF (fin de fichier) sur l'entrée standard du shell. Le shell se ferme lorsqu'il reçoit la fin du fichier sur son entrée standard.
bind -pd'énumérer, commehelp bindpour les autres