Термінальний драйвер ядра ( 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
це буквально два символи, circflex ( ^
), за яким слідує літера E
):
stty intr '^E'
Для отримання додаткової інформації дивіться довідкові сторінки для stty
та termios
. У GNU / Linux ви також можете переглянути tty_ioctl
сторінку man.
Примітки:
intr
Ключ ( Ctrl+ Cза замовчуванням), на самому ділі не вбити процес, але змушує ядро посилати сигнал переривання ( SIGINT
) до всіх процесів в групі процесів. Процеси можуть влаштовувати сигнал або ігнорувати сигнал, але більшість процесів припиняється, що є поведінкою за замовчуванням.
Причина, що Ctrl+ dвиходить із системи, полягає в тому, що драйвер термінальної лінії надсилає EOF (кінець файлу) на стандартний вхід оболонки. Оболонка виходить, коли вона отримує кінець файлу на стандартному вході.
bind -p
перелічити, як іhelp bind
для інших