Как я могу сбросить сочетание клавиш Ctrl kbd> + C kbd> в оболочке bash? Я изменил это несколько месяцев назад и, похоже, не могу его восстановить.
Ярлык Ctrl+C, используемый для отмены процессов в терминале, не является ярлыком удара, но касается tty, как это - ярлык для одного из сигналов (SIGINT в этом случае), который может быть отправлен в процессы, которые активны в терминале. Как отмечено в этом обсуждении Wildplasser,
Это - терминал (драйвер), который прерывает ^C и переводит его в сигнал, отправленный в приложенный процесс (который является оболочкой).
Для больше о том, как SIGINT и другие сигналы POSIX обрабатываются, посмотрите это подробно статья.
Как примечание, ярлыками Bash как Ctrl+A (для перемещения в начало строки) и другие управляет readline библиотека; текущей привязкой можно показать bind -P
; посмотрите man bash
и man readline
, или страницы справочника Ubuntu онлайн. Однако, даже если у Вас также был набор Ctrl+C с помощью readline или в Вашем .inputrc
, Ctrl+C набора tty все еще переопределил бы его.
Однако необходимо проверить, изменили ли Вы какие-либо сочетания клавиш в gnome terminal
. Войдите в меню и нажмите редактирование> сочетания клавиш, как будто Вы сделали один из тех Ctrl+C, которые переопределили бы tty Ctrl+C.
Проверять текущую tty выполненную привязку stty -a
, который перечисляет, например,
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
Для очистки, текущая привязка для сигнала прерывания (предают земле), первый показ:
stty intr ^-
и только затем выполненный stty intr ^C
повторно присваивать ярлык.
Удостоверьтесь, что Вы используете верхний регистр C, поскольку это очень важно. Это - способ сбросить ярлык, но если это все еще не работает, Вы, возможно, должны поместить stty intr ^C
в файле и имеют его чтение при запуске терминала, как я обсуждаю в связанном ответе здесь.
Более общая информация о Ctrl+C доступна в этих двух статьях Stackoverflow:
Чтобы переназначить сигнал прерывания (или SIGINT ), вызовите команду stty
вместе с правильными аргументами отображения:
stty intr ^c
Источник: [ 118]