Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I expect to get some flak for this, but I can't find the answer anywhere. It seems like it should be so obvious. Sometimes, when I type a bad command in a bash terminal, the cursor just jumps down to the next line without any error or anything. I can't tell what I did wrong. It's like I'm stuck in the program. Reenactment:

$ tidy

Me: "Oops! That's not what I meant to type..."

:q

Me: "That didn't work..."

:exit
:quit
exit
quit
/exit
/quit
-exit
-quit
-wtf???

I know I screwed up but how do I get back to the prompt without closing the terminal?

share|improve this question
    
Related: What causes various signals to be sent? –  Gilles Aug 16 '12 at 23:23
add comment

3 Answers 3

up vote 8 down vote accepted

You can always try the obvious things like ^C, ^D (eof), Escape etc., but if all fails I usually end up suspending the command with ^Z (Control-Z) which puts me back into the shell.

I then do a ps command and note the PID (process id) of the command and then issue a kill thePID (kill -9 thePID if the former didn't work) command to terminate the application.

Note that this is not a tidy (no pun intended) way to terminate the application/command and you run the risk of perhaps no saving some data etc.

An example (I'd have used tidy but I don't have it installed):

$ gnuplot

    G N U P L O T
    Version 4.2 patchlevel 6 
     ....
    Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot>

Terminal type set to 'wxt'
gnuplot> 
gnuplot>               #####  typed ^Z here
[1]+  Stopped                 gnuplot
$ ps
  PID TTY          TIME CMD
 1681 pts/1    00:00:00 tcsh
 1690 pts/1    00:00:00 bash
 1708 pts/1    00:00:00 gnuplot
 1709 pts/1    00:00:00 ps


$ kill 1708            ###### didn't kill the command as ps shows

$ ps
  PID TTY          TIME CMD
 1681 pts/1    00:00:00 tcsh
 1690 pts/1    00:00:00 bash
 1708 pts/1    00:00:00 gnuplot
 1710 pts/1    00:00:00 ps
$ kill -9 1708           ### -9 did the trick
$ 
[1]+  Killed                  gnuplot

$ ps
  PID TTY          TIME CMD
 1681 pts/1    00:00:00 tcsh
 1690 pts/1    00:00:00 bash
 1711 pts/1    00:00:00 ps
share|improve this answer
1  
That's it!! ^Z to the rescue. Thank you so much. –  Koveras Aug 16 '12 at 17:38
    
@davidkennedy85 Happy to help ... I was just cobbling together an example to post –  Levon Aug 16 '12 at 17:39
2  
^\ (ctrl-backslash, SIGQUIT) works in some stubborn utilities that don't respond to ^C. –  mrb Aug 16 '12 at 19:11
    
Shh! Don't tell people about the ^\ or they'll start SIG_IGN'ing that too, then what will we do? –  Alan Curry Aug 16 '12 at 19:55
add comment

Try pressing Ctrl-D or Ctrl-C. If it fails, kill the process .

Trying with the tidy command you mentioned, Ctrl-D works.

share|improve this answer
add comment
CTRL+D ==  exit shell command

and

CTRL+C == terminate the current process, Of course may be the given software handle it and CTRL+C doens't work

Of course , They produce a kernel signal if you want to know more, read :

man 7 signal
share|improve this answer
1  
Ctrl+D is end-of-file, not directly exit. –  Gilles Aug 16 '12 at 23:22
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.