Der Terminaltreiber ( termios
) des Kernels interpretiert die Sonderschlüssel, die eingegeben werden können, um ein Signal an einen Prozess zu senden, das Dateiende zu senden, Zeichen zu löschen usw. Dies ist die grundlegende Unix-Kernelfunktionalität und bei den meisten Unix- und Linux-Implementierungen sehr ähnlich.
Der stty
Befehl zeigt die termios
Sonderzeichen sowie andere Parameter für den Terminalleitungstreiber an oder legt diese fest .
Rufen Sie stty -a
auf, um die aktuellen Werte der Sonderzeichen und andere "Terminalzeileneinstellungen" anzuzeigen. In den folgenden Beispielen können Sie sehen , dass intr
ist Ctrl+ C, eof
ist Ctrl+ D, susp
ist Ctrl+ Z. (Ich habe andere Ausgaben gelöscht, um nur die Sonderzeicheneinstellungen anzuzeigen.):
stty -a
Sonderzeichen unter 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
Sonderzeichen auf 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;
Um den Wert eines Sonderzeichens zu ändern, z. B. um das Interrupt-Zeichen von Ctrl+ Cauf Ctrl+ zu ändern , Erufen Sie stty
wie ^E
folgt auf ( besteht buchstäblich aus zwei Zeichen, dem Zirkumflex ( ^
) gefolgt vom Buchstaben E
):
stty intr '^E'
Weitere Informationen finden Sie in den Manpages für stty
und termios
. Unter GNU / Linux können Sie auch die tty_ioctl
Manpage aufrufen.
Anmerkungen:
Der intr
Schlüssel ( standardmäßig Ctrl+ C) beendet den Prozess nicht tatsächlich, sondern veranlasst den Kernel, ein Interrupt-Signal ( SIGINT
) an alle Prozesse innerhalb der Prozessgruppe zu senden . Die Prozesse können das Signal abfangen oder ignorieren, aber die meisten Prozesse werden beendet, was das Standardverhalten ist.
Der Grund, warum Ctrl+ dSie abmeldet, ist, dass der Terminalleitungstreiber EOF (Dateiende) an die Standardeingabe der Shell sendet. Die Shell wird beendet, wenn sie das Dateiende an ihrer Standardeingabe empfängt.
bind -p
aufzulisten, wiehelp bind
für andere