Konfiguracja terminala
Sądzę, że jest to bardziej związane ze sposobem skonfigurowania terminala, niż z jakimkolwiek problemem związanym z buforowaniem. Sprawdź wyjście stty -a | grep intr
, powinieneś mieć intr = ^C;
na linii wyjściowej, jeśli Ctrl- Cjest włączone na tty
/ pty
. Jeśli nie, możesz stty intr ^C
go włączyć. Dodaj linię do swojego .tcshrc
lub, .login
aby stała się trwała (lub usuń linię, która zmienia ją w pierwszej kolejności!).
W przypadku niepowodzenia Ctrl- Cmożesz również spróbować wysłać za SIGQUIT
pomocą Ctrl- \. Jeśli to nie zadziała, ponownie sprawdź, stty -a | grep quit
czy jest poprawnie skonfigurowane.
Konfiguracja emulatora terminala
Sprawdź także ustawienia emulatora terminala (jeśli go używasz), może być tak, że na tym poziomie jest ustawiony skrót (być może do kopiowania lub coś takiego) i Ctrl- Cnie osiąga pty
poziomu. Skrót można również skonfigurować gdzie indziej w środowisku pulpitu lub w systemie Windows.
Dobrym testem w systemie Linux, jeśli używasz emulatora terminali, jest przełączenie się na konsolę Linux ( Ctrl- Alt- F1), zalogowanie się tam i sprawdzenie, czy występuje to samo zachowanie. Jeśli nie, oznacza to, że problem leży w systemie Windows lub emulatorze terminali.
Może to być problem z opóźnieniem między odczytem danych z pty
urządzenia, jak sugeruje Peter . Ale jeśli jest to przypadek i faktycznie trzeba czekać minut na dane mają być wyświetlane, to z pewnością terminal emulator jest buforowanie sposób zbyt dużo danych (lub komputer jest bardzo powolny). Odpowiedzią byłoby znalezienie sposobu na zmniejszenie tego rozmiaru bufora w ustawieniach emulatora terminala lub użycie innego.
Dodatkowa wskazówka
Coś jeszcze warte dodania; Zwykle trafiam w niekontrolowaną cat
sytuację, gdy przypadkowo mam cat
plik binarny. Innym efektem tego może być zepsucie ustawień terminala (jeśli dane binarne pasują do różnych kodów ucieczki terminala, co często robi). Jeśli tput
jest zainstalowany (zwykle jest to domyślnie), można uniknąć konieczności ponownego uruchomienia za pomocą następującego polecenia:
tput reset