如何退出或取消错误的bash命令?


41

我希望对此有所帮助,但是我找不到任何答案。看起来应该是如此明显。有时,当我在bash终端中键入错误的命令时,光标只会跳到下一行而没有任何错误或任何其他情况。我不能说我做错了什么。就像我被程序卡住了。重新制定:

$ tidy

我:“糟糕!这不是我要输入的内容...”

:q

我:“那没用...”

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

我知道我搞砸了,但是如何在不关闭终端的情况下返回提示?



:q实际上为我工作;这不是Vim命令吗?
红豌豆

Answers:


53

你可以尝试明显的事情一样^C^D(EOF),逃生等,但如果所有的失败,我通常最终会中止与命令^Z(Ctrl-Z键),这使我回入壳。

然后,我执行一个ps命令并记下该命令的PID(进程ID),然后发出一个kill thePIDkill -9 thePID如果前一个命令不起作用)命令来终止应用程序。

请注意,这不是终止应用程序/命令的整洁方式(无双关语),并且冒着可能不保存某些数据等风险。

一个例子(我曾经用过,tidy但我没有安装):

$ 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

8
而已!!^ Z来救援。非常感谢。
大卫·肯尼迪

3
^ \(ctrl-反斜杠,SIGQUIT)可在某些不响应^ C的顽固实用程序中使用。
mrb 2012年

2
嘘!不要告诉人们有关^ \的信息,否则他们也会开始SIG_IGN这样做,那么我们该怎么办?
艾伦·库里

1
@godlygeek您能告诉我%%在Linux中是什么意思吗?我搜了很多。
Noumenon

1
@Noumenon,看看LESS='+/^JOB CONTROL' man bash%%指“当前工作”。
通配符

12

尝试按Ctrl- DCtrl- C。如果失败,请终止该进程。

尝试使用tidy您提到的命令Ctrl- D可以。


CTRL+C对Windows CMD也很好。
T.Todua '18


2

CTRL+D == exit shell command

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

当然,kernel signal如果您想了解更多信息,请阅读:

man 7 signal

3
Ctrl + D是文件结尾,不能直接退出。
吉尔斯(Gillles)“所以-别再邪恶了”
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.