每个人都知道如何使用Windows中的任务管理器或OS X中的强制退出来终止程序,但有时使用命令行终止程序会很有用。我遇到过几种情况,程序拒绝通过任务管理器结束,即使我试图杀死底层进程。 Force Quit有它自己的怪癖,并不总是像它应该的那样杀死一个程序。这就是你可以使用命令行的强大功能。
在本文中,我将介绍在Windows,OS X和Linux中杀死程序的命令。有趣的是,通常有不止一个命令来实现这一点,因此我将尝试提及我使用的不同命令。这不是一个详尽的列表,所以如果您使用此处未提及的其他命令,请在评论中告诉我们。
Windows - TSKILL和TASKKILL
在Windows中,您可以使用杀死程序的两个命令:TSKILL和TASKKILL。 TSKILL是一个更简单,功能更少的命令,但是工作做得很好。例如,如果您运行的是Microsoft Word,则进程名称为winword.exe。要从命令行终止Word,只需键入以下命令:
tskill winword
这将终止Word并且您将丢失所有未保存的数据,因此您必须小心使用它。我在未保存的Word文档上尝试了它,当我运行它时它就消失了,没有提示保存文档。对于我将在这里提到的所有命令来说,这几乎是正确的,因为这就是重点。您可以立即杀死程序而不会有任何问题。
需要注意的一点是,大多数时候使用此命令,它是与/ A参数一起使用。 / A告诉命令结束在所有会话下运行的进程。所以通常你会输入以下命令以确保进程被终止:
tskill /A winword
第二个命令有更多选项,功能更强大,是TASKKILL。如果你查看TASKKILL的帮助页面,你会看到我的意思:
如果你想拥有更多的控制权和杀戮选项Windows中的程序,使用TASKKILL。对于初学者,可以使用以下命令终止程序:
taskkill /F /IM winword.exe
请注意,在使用TASKKILL命令时必须使用.EXE。 / F表示强制终止过程。 / IM表示图像名称,即进程名称。如果要使用进程ID(PID)终止,则必须使用/ PID而不是/ IM。 / T很棒,因为它会杀死由指定进程启动的所有子进程。
您还可以使用TASKKILL远程连接到另一个系统并终止该远程系统上的进程。我还喜欢能够在TASKKILL中使用通配符。
OS X / Linux - KILL和KILLALL
在OS X和Linux中,您有两个用于终止进程的命令:KILL和KILLALL。您必须在终端窗口中运行它们。要杀死程序,您必须使用程序名称或进程ID。您可以通过某些方式找到此信息。一种方法是通过活动监视器。
然而,这需要GUI界面。如果使用命令行终止进程,则还可以使用命令行查找进程信息。我想到的两个命令是顶部和ps -ax。
top将为您提供一个进程列表,其中PID和程序名称也按CPU使用情况排序。这是一种快速查找要杀死的进程的方法。 ps -ax将为您列出按PID排序并列出程序的路径。它与top略有不同。
现在用于在OS X中终止程序。您只需键入以下命令即可终止特定进程:
kill -9 83002
83002是终端进程,9表示终止进程。你可以使用其他数字,如3,这意味着退出,或6,这意味着中止。但是,大多数情况下,你会坚持使用9.你也可以使用KILL命令杀死所有正在运行的进程,但你可能永远不会使用这个命令。
kill -TERM -1
KILL用于杀死一个进程或所有进程,KILLALL用于杀死一组进程。例如,如果您运行的是谷歌浏览器,则可能会运行10个Chrome进程。使用KILL十次关闭Chrome会非常烦人。相反,您可以像这样使用KILLALL:
killall Evernote
or
killall 'Google Chrome'
请注意,您必须使用单引号或任何超过一个字的东西。此外,如果进程未以您的名义运行,而是在root下运行,则必须使用以下命令:
sudo killall 'Google Chrome'
或
sudo killall -9 'Google Chrome'
同样,9正在将特定信号发送到KILL而不是TERM。只有在收到有关未获得许可的错误时才需要Sudo。否则,您可以执行killall计划或killall -9计划。在OS X上,当您无法强制退出程序时,KILLALL命令非常方便。您不必知道进程ID,这很好。只需键入名称,所有进程都将被终止与该名称相关联。
本文旨在为您提供更高级的方法来杀死Windows,OS X和Linux中的程序。如果您对使用命令行终止程序有任何疑问,请发表评论,我会尽力提供帮助。享受!