What is the interrupt key for Linux command "less"

52,854

Solution 1

Ctrl+C works for me. When I use the F command in less, it says "(interrupt to abort)". The "interrupt" that it's referring to is whatever key is bound to the terminal interrupt. The command stty -a shows the relevant terminal settings:

speed 38400 baud; rows 50; columns 80; line = 0; intr = ^C; quit = ^; erase = ^H; kill = ^U; eof = ^D; eol = ; eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

It's the intr = ^C that shows that interrupt is generated by Ctrl+C.

If you do stty -a what does it show?

Solution 2

Ctrl + C did not work for me. However, I was able to stop the process with q.

Solution 3

As @RandyOrrison mentioned, ^C (control + c) is the appropriate interrupt character. Although, how less responds to this signal will vary based on the options provided at execution time.

Normally, an interrupt character causes less to stop whatever it is doing and return to its command prompt (i.e. not the terminal/tty prompt).

If instead, you want to signal less to quit and return to the terminal/tty prompt, you should use the -K or --quit-on-intr option. This will cause less to exit immediately (with status 2) when an interrupt character (usually ^C) is typed.

less manpage

-K , --quit-on-intr

Causes less to exit immediately (with status 2) when an interrupt character (usually ^C) is typed. Normally, an interrupt character causes less to stop whatever it is doing and return to its command prompt. Note that use of this option makes it impossible to return to the command prompt from the "F" command.

less -K [filename]...
less --quit-on-intr [filename]...

Solution 4

ctrl-C is closing the process at the head of the pipe, not signeling less, when using a pipeline like this.

head-process | less

I got it to work with:

less -f <(head-process)

There may be a better way.

Share:
52,854

Related videos on Youtube

studiohack
Author by

studiohack

Updated on September 17, 2022

Comments

  • studiohack
    studiohack almost 2 years

    When you do shift-f with less, you can see the file update in real time, and you get the "Waiting for data...(interrupt to abort)" message.

    The updating works fine, but what is the interrupt? nothing seems to work (Ctrl-C, Esc, Ctrl-I etc). I always have to kill the terminal which is a pain.

    • Admin
      Admin about 7 years
      For me, interrupt (ctrl-c) works fine, except that it kills the whole process!
    • Admin
      Admin about 2 years
      SHIFT + CNTRL + C works for me to interrupt without totally killing less
  • Admin
    Admin over 14 years
    it says intr = ^C. Aha!! it's actually Ctrl-shift-c - ie upper case. Thanks for the help
  • Randy Orrison
    Randy Orrison over 14 years
    That's weird - I've never known Ctrl+Shift to be different from just Ctrl. Mine shows upper case C, but Ctrl+c (without shift) works fine.
  • CarlF
    CarlF over 14 years
    I've never used a system that treated ctrl-c and ctrl-C differently, either. Just a data point.
  • jenming
    jenming over 10 years
    I'm having the same issue, and neither ctrl-c nor ctrl-shift-c works. Could this have something to do with the fact that i'm running less inside a screen session?
  • dirdi
    dirdi almost 5 years
    ^Z does not kill or quit less but stops and puts it into background for being resumed later. Therefore, this is not an answer to the question.
  • dirdi
    dirdi almost 5 years
    There is no need to put less into background and resuming it with fg, before quitting. You could have pressed q right away.
  • Kamil Maciorowski
    Kamil Maciorowski almost 3 years
    AFAIK the signal should get to less as well; "not signalling less" is somewhat surprising to me. About the solution: yeah. :)