Что такое ключ прерывания для команды Linux «меньше»

29

Когда вы выполняете shift-f с меньшими затратами, вы можете увидеть обновление файла в режиме реального времени и получить сообщение «Ожидание данных ... (прерывание прервано)».

Обновление работает нормально, но что такое прерывание? кажется, ничего не работает (Ctrl-C, Esc, Ctrl-I и т. д.). Я всегда должен убивать терминал, что является болью.

StudioHack
источник
2
Для меня прерывание (ctrl-c) работает нормально, за исключением того, что оно убивает весь процесс!
Таранаки

Ответы:

33

Ctrl + C работает для меня. Когда я использую команду F меньше, она говорит «(прерывание, чтобы прервать)». «Прерывание», на которое оно ссылается, - это любой ключ, связанный с терминальным прерыванием. Команда stty -aпоказывает соответствующие настройки терминала:

скорость 38400 бод; ряды 50; столбцы 80; линия = 0; intr = ^ C ; выход = ^ \; стереть = ^ H; убить = ^ U; eof = ^ D; eol =; eol2 =; swtch =; начало = ^ Q; стоп = ^ S; susp = ^ Z; rprnt = ^ R; werase = ^ W; lnext = ^ V; флеш = ^ O; мин = 1; время = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -maxxbel -iutflórlocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

Это то, intr = ^Cчто показывает, что прерывание генерируется Ctrl + C.

Если вы делаете stty -aто, что это показывает?

Рэнди Оррисон
источник
1
это говорит intr = ^ C. Ага!! это на самом деле Ctrl-Shift-C - т.е. в верхнем регистре. Спасибо за помощь
4
Это странно - я никогда не знал, что Ctrl + Shift отличается от простого Ctrl. Мой показывает верхний регистр C, но Ctrl + C (без смещения) работает нормально.
Рэнди Оррисон
4
Я никогда не использовал систему, которая по-разному относилась к ctrl-c и ctrl-C. Просто точка данных.
КарлФ
1
У меня та же проблема, и ни ctrl-c, ни ctrl-shift-c не работают. Может ли это быть как-то связано с тем, что я меньше бегаю в сеансе экрана?
Дженмин
2
Это работает для меня: «ctrl-shift-c» переключиться в обычный режим и просто войти, qчтобы выйти
Мохаммед Али Акбари
2

Как упоминалось в @RandyOrrison, ^C( control + c ) - соответствующий символ прерывания . Хотя то, как lessреагирует на этот сигнал, зависит от параметров, предоставляемых во время выполнения.

Обычно символ прерывания заставляет lessпрекратить все, что он делает, и вернуться к своей командной строке (то есть не к терминалу / приглашению tty).

Если вместо этого вы хотите дать сигнал lessо выходе и возвращении в терминал / tty , вы должны использовать опцию -Kили --quit-on-intr. Это приведет lessк немедленному выходу (со статусом 2), когда ^Cнабирается символ прерывания (обычно ).

меньше manpage

-K , --quit-on-intr

Вызывает немедленный выход из режима «меньше» (со статусом 2), когда набирается символ прерывания (обычно ^ C). Обычно символ прерывания вызывает меньше, чтобы остановить все, что он делает, и вернуться в командную строку. Обратите внимание, что использование этой опции делает невозможным возврат в командную строку из команды «F».

less -K [filename]...
less --quit-on-intr [filename]...
Трэвис Кларк
источник
2

Ctrl + Cне работал для меня. Тем не менее, я смог остановить процесс с q.

Карстен
источник
-1

Попробуйте Shift + Ctrl + C, у меня была та же проблема, и мне нужно было сделать Ctrl + Z-> fg-> Qчтобы выйти.

hjeannin
источник
Нет необходимости вставлять lessфон и возобновлять его fgперед выходом. Вы могли бы сразу нажать q.
Дирди
-1

Я застрял в меньшем количестве без аргументов, чем файл, который я хотел быстро проверить из моего терминала, Ctrl-c, Ctrl shift-c, ничего не получалось Ctrl-z сделал работу :)

Pantoufle
источник
^ Z не убивает и не выходит, lessа останавливается и помещает его в фон для возобновления позже. Следовательно, это не ответ на вопрос.
Дирди