Настройка терминала
Я считаю, что это больше связано с тем, как настроен терминал, чем с любой проблемой буферизации. Проверьте выходные данные stty -a | grep intr
, вы должны иметь intr = ^C;
в выходной строке, если Ctrl- Cвключен в tty
/ pty
. Если это не так, вы можете использовать, stty intr ^C
чтобы включить его. Добавьте строку в ваш .tcshrc
или, .login
чтобы сделать ее постоянной (или удалите строку, которая меняет ее в первую очередь!).
В противном случае Ctrl- Cвы также можете попробовать отправить SIGQUIT
с Ctrl- \. Если это не работает, еще раз проверьте, stty -a | grep quit
правильно ли он настроен.
Настройка эмулятора терминала
Также проверьте настройки для вашего эмулятора терминала (если вы его используете), возможно, на этом уровне настроен ярлык (возможно, для копирования или чего-то еще), а - Ctrl- Cне достигает pty
уровня. Ярлык также может быть установлен где-то еще в вашей среде рабочего стола или в системе Windows.
Хорошим тестом для Linux, если вы используете эмулятор терминала, является переключение на консоль Linux ( Ctrl- Alt- F1), войдите в систему и посмотрите, происходит ли то же самое. Если этого не произойдет, значит, проблема в вашей оконной системе или эмуляторе терминала.
Это может быть проблемой с задержкой между считыванием данных с pty
устройства, как это было предложено peterph . Но если это так , и вы на самом деле приходится ждать минут данные , которые будут отображаться, то , конечно, эмулятор терминала буферизация путь слишком много данных (или ваш компьютер очень медленно). Ответ заключается в том, чтобы найти способ уменьшить размер буфера в настройках эмулятора терминала или использовать другой.
Дополнительный совет
Что-то еще стоит добавить; Я обычно оказываюсь в безудержной cat
ситуации, когда я случайно cat
бинарный файл. Другим эффектом этого может быть испортить настройки терминала (если двоичные данные совпадают с различными кодами выхода терминала, что часто происходит). Если tput
установлено (обычно по умолчанию), вы можете избежать перезагрузки с помощью следующей команды:
tput reset