Драйвер терминала ядра ( termios) интерпретирует специальные ключи, которые можно вводить для отправки сигнала процессу, отправки конца файла, удаления символов и т. Д. Это базовая функциональность ядра Unix и очень похожа на большинство реализаций Unix и Linux.
Команда sttyотображает или устанавливает termiosспециальные символы, а также другие параметры для драйвера терминала.
Вызвать, stty -aчтобы увидеть текущие значения специальных символов и другие «настройки линии терминала». В следующих примерах вы можете видеть, что intrэто Ctrl+ C, eofэто Ctrl+ D, suspэто Ctrl+ Z. (Я удалил другой вывод, чтобы показать только настройки специальных символов):
stty -a специальные символы в 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 специальные символы на 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;
Чтобы изменить значение специального символа, например, чтобы изменить символ прерывания с Ctrl+ Cна Ctrl+, Eвызовите sttyэто так ( ^Eбуквально два символа, roundflex ( ^), за которым следует буква E):
stty intr '^E'
Для получения дополнительной информации см. Справочные страницы для sttyи termios. В GNU / Linux вы также можете посмотреть tty_ioctlсправочную страницу.
Заметки:
intrКлюч ( Ctrl+ Cпо умолчанию), на самом деле не убить процесс, но заставляет ядро посылать сигнал прерывания ( SIGINT) ко всем процессам в группе процессов. Процессы могут организовывать перехват или игнорирование сигнала, но большинство процессов завершается, что является поведением по умолчанию.
Причина, по которой Ctrl+ dвыводит вас из системы, заключается в том, что драйвер линии терминала отправляет EOF (конец файла) на стандартный ввод оболочки. Оболочка завершается, когда получает стандартный конец файла.
bind -pперечислить, так же как иhelp bindдля других