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 stty
commande affiche ou définit les termios
caractères spéciaux, ainsi que d'autres paramètres pour le pilote de ligne de terminal.
Appelez stty -a
pour 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 intr
c'est Ctrl+ C, eof
est Ctrl+ D, susp
est 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 stty
comme ceci ( ^E
est 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 stty
et termios
. Sur GNU / Linux, vous pouvez également consulter la tty_ioctl
page de manuel.
Remarques:
La intr
clé ( 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 -p
d'énumérer, commehelp bind
pour les autres