如何使用 ps 命令查找 Linux 上正在运行的进程
ps 的完整形式是进程状态。它是一个用于查找 Linux 上当前正在运行的进程的信息的命令。 ps是Linux中一个非常重要的命令。在本文中,我将向您展示如何使用ps命令来查找Linux上正在运行的进程。那么,让我们开始吧。
不同类型的选项:
ps 命令接受不同的选项。
UNIX 选项 – 有前导破折号。
$ ps -e
BSD 选项 – 没有前导破折号。
$ ps aux
GNU 选项 – 有双前导破折号。
$ ps --pid 1001
在此示例中,我将使用 UNIX,有时也使用 GNU 选项。但 BSD 选项是相似的。大多数时候,您可以将它们混合在一起,没有任何问题。不过,您不能将某些选项混合在一起,因为它不起作用。所以,要小心。
查找所有正在运行的进程:
使用 ps 命令,您可以找到计算机上所有正在运行的进程。
要使用 ps 查找所有正在运行的进程,请按如下方式使用 ps:
如您所见,UID(用户 ID)、PID (进程 ID)、PPID (父进程 ID)、CMD (用于运行进程的命令)以及有关所有正在运行的进程的一些其他信息都会显示。
您可以使用不同的ps选项组合列出所有正在运行的进程。它们将显示有关正在运行的进程的不同信息。实际上,您可以告诉 ps 显示特定信息,我们将在后面的部分中介绍这些信息。
可以看到,ps -e显示了PID、TTY(终端号)、TIME (进程运行时间)时间)和正在运行的进程的CMD。这比之前的信息要少得多。
它显示了有关正在运行的进程的大量信息,但其中一些列例如 C (处理器利用率)、SZ (物理页面大小)、RSS (驻留集大小)、PSR(进程当前分配到的处理器)、STIME (进程启动时间)等不会显示。因此,它比 ps -eF 更紧凑一些。
ps的另一种变体,
该选项还向您显示UID(用户 ID)、PRI(进程的当前优先级)、NI(好值)。所以,它真的很方便。
让 ps 导航变得简单:
典型的Linux系统有很多进程在后台运行。因此,ps命令的输出非常长。在那里找到有用的信息比较困难。但是,我们可以使用诸如 less 之类的寻呼机来更轻松地查找进程。
您可以按如下方式使用 less 寻呼机:
ps 的输出将以 less 打开。
现在,您可以使用
您还可以在这里搜索特定的关键字。这对于找到您正在寻找的流程非常有帮助。
要搜索进程,假设acpi,请在less寻呼机中输入关键字,如下所示。
现在,按
正如您所看到的,带有关键字 acpi 的进程被突出显示。
您还可以按 n 和 p 键分别转到下一场和上一场比赛(如果有)。
正如您所看到的,我按了n,并且带有关键字acpi的下一个进程被突出显示。
要退出寻呼机,请按q。
手动选择要在 ps 中显示的列:
ps -e/ps -ef/ps -eF 等命令显示一些默认列。但是,如果您愿意,您可以告诉 ps 显示特定列,或向默认列集添加其他列。
例如,假设您只想查看 %MEM(内存使用百分比)、PID(进程 ID)和 UID(进程所有者) ID)和COMMAND(处理命令),然后运行 ps 如下:
正如你所看到的, ps 只显示了我要求的信息。不多不少。
这里使用的列关键字是%mem(代表%MEM)、pid(代表PID)、uid(代表UID)、comm(代表COMMAND)。 ps支持很多关键字。您可以在 ps 的手册页中找到整个列表。
只需使用以下命令打开 ps 的手册页,然后导航到 STANDARD FORMAT SPECIFIERS 部分,如下面的屏幕截图所示。
如果您想要显示其他列以及默认列集,则可以使用 -O 选项指定您想要查看的列。
例如,
如您所见,我添加了 %CPU 和 %MEM 列以及 ps -ef 命令的默认列。
ps 命令的排序输出:
您还可以根据任何特定的列对 ps 的输出进行排序。您可以根据需要对 ps 的输出进行升序或降序排序。
要使用任何单列对 ps 的输出进行排序,可以按如下方式使用 ps:
一些例子会更清楚。
比方说,您想要根据进程运行的时间以升序对进程进行排序。您可以按如下方式运行 ps:
或者
注意:默认按升序排序。因此,如果需要,您可以省略 + 符号。
如您所见,输出按 TIME 列升序排序。
再次假设,您希望根据进程运行的时间以降序对进程进行排序。那么 ps 命令将是:
正如您所看到的,运行时间最长的进程列在最前面。
如果要按多列排序,只需按如下方式添加列即可:
下一步去哪里?
我已经介绍了 ps 命令的基础知识。现在,您应该能够从 ps 的手册页了解有关 ps 命令的更多信息。
您可以按如下方式访问 ps 的手册页,
例如,如果您知道某个进程的 PID,则可以使用 ps 查找特定进程,如下所示:
注意:这里,2060是进程的PID。
您还可以搜索特定用户或组等拥有的进程。
例如,要查找您的登录用户的所有正在运行的进程,请运行 ps,如下所示:
注意:您可以将 $ (whoami) 替换为您想要列出以该用户身份运行的进程的任何用户名。
这就是如何使用 ps 命令来查找 Linux 上正在运行的进程。感谢您阅读本文。
