Linux 中 ps 命令的基本示例Linux 中 ps 命令的基本示例Linux 中 ps 命令的基本示例Linux 中 ps 命令的基本示例
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

Linux 中 ps 命令的基本示例

发表 admin at 2025年2月28日
类别
未分类
标签

Linux 中的 ps 命令用于获取有关正在运行的进程的信息。以下是复杂而广泛的 ps 命令的一些有用示例。

Linux 中的 ps 命令是什么?

Linux 中的 ps 命令显示系统上正在运行的进程。您可以获得您或任何其他用户在同一 Linux 系统上运行的进程的进程 ID (PID) 等信息。

ps 命令是一个功能广泛的工具,有 80 多个命令选项。您可以了解它的强度和复杂性。这就是为什么我将向您展示 Linux 中 ps 命令的一些最常见和有用的示例。

Linux 中 ps 命令的基本用法

如果在 Linux 中使用不带任何选项的 ps 命令,它将显示当前 shell 中正在运行的进程:

ps

这是输出。我在后台发送了 Gedit 命令,这就是为什么它显示三个进程,否则您通常只会看到 ps 和 bash。

  PID TTY          TIME CMD
  503 pts/0    00:00:00 gedit
 2053 pts/0    00:00:00 ps
31585 pts/0    00:00:00 bash

在这里:

  • PID是进程的唯一进程ID

  • TTY 是用户登录的终端类型。 pts 表示伪终端

  • TIME 告诉您进程已经运行了多长时间

  • CMD 是您运行以启动进程的命令

现在,这并没有真正提供任何真实、有用的信息。让我们看看 ps 命令的一些更好的示例:

1.查看你所有的运行进程

如果您想查看您运行的所有进程,可以使用带有选项 x 的 ps 命令,如下所示:

ps -x

x 选项将显示所有进程,即使它们与当前 tty(终端类型)无关或没有控制终端(如守护进程)。

-before 选项 x 是可选的,但一般 Linux 约定是使用 -before 选项,所以我建议你继续遵循它。它不会伤害你。

这就是输出的样子。我截断了输出,因为它有数百行:

  PID TTY      STAT   TIME COMMAND
  503 pts/0    Sl     0:00 gedit
 2245 ?        S      0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
 3039 ?        Ss     0:00 /lib/systemd/systemd --user
 3040 ?        S      0:00 (sd-pam)
 3054 ?        SLl    0:01 /usr/bin/gnome-keyring-daemon --daemonize --login
 3059 tty2     Ssl+   0:00 /usr/lib/gdm3/gdm-x-session --run-script env 

上述输出中的 STAT 表示进程状态代码。您可以在 ps 命令的手册页中找到详细的表格。

但你很少会看到 ps 命令只与选项 x 一起使用。它通常与选项 u 一起出现,如下所示:

ps -ux

使用选项 u,您将获得有关每个进程的详细信息:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
abhishek   503  0.0  0.4 681580 37516 pts/0    Sl   18:09   0:00 gedit
abhishek  2245  0.0  0.0  11300  1496 ?        S    18:37   0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
abhishek  3039  0.0  0.0  77344  3508 ?        Ss   10:37   0:00 /lib/systemd/systemd --user
abhishek  3040  0.0  0.0 114632   360 ?        S    10:37   0:00 (sd-pam)
abhishek  3054  0.0  0.1 517104 11512 ?        SLl  10:37   0:01 /usr/bin/gnome-keyring-daemon --daemonize --login

正如您所看到的,现在您获得了每个进程的用户名、CPU 消耗和内存使用情况。 RSS 显示进程当前在 RAM 中拥有多少内存,而 VSZ 则显示进程总共拥有多少虚拟内存。

2.使用ps aux命令查看所有正在运行的进程

您可能会一直在 Linux 教程和文档中看到 ps -aux 或 ps aux。

通过添加-a选项,您可以看到Linux系统上所有用户正在运行的进程。

ps -aux

命令输出与 ps -ux 相同,但现在您也有来自其他用户的进程。借助 -u 选项,您可以识别哪个进程属于哪个用户。

3.在Linux中使用ps -ef命令查看所有正在运行的进程

除了 ps -aux 之外,您还可以使用 -e 选项列出所有正在运行的进程。常见的做法是将其与选项 -f 结合起来,以获得用于运行进程的命令的完整列表。

ps -ef

请注意 – e 之前很重要;否则,会显示不同的结果。我告诉过你,ps 是一个混乱而复杂的命令。

您还可以结合 H 选项来查看线程视图中的所有进程以及其父进程下的子进程:

ps -efH

4.查看某个用户所有正在运行的进程

要获取某个用户运行的所有进程的信息,可以使用 -U 选项和用户名:

ps -U user_name

例如,我可以看到 root 用户运行的所有进程,如下所示:

ps -U root
  PID TTY          TIME CMD
    1 ?        00:00:41 systemd
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 rcu_gp
    4 ?        00:00:00 rcu_par_gp
    8 ?        00:00:00 mm_percpu_wq
    9 ?        00:00:03 ksoftirqd/0
   10 ?        00:01:22 rcu_sched

5.查看某个组运行的所有进程

您还可以通过提供组名称或组 ID 按组而不是用户对正在运行的进程进行分类:

ps -G group_name_or_id

您可以与选项 f 结合使用以获得完整列表。

6. 获取程序的所有出现次数和PID

ps 命令的基本用途之一是获取正在运行的程序的进程 ID (PID)。通常,当您想要终止行为不当的程序时,您会搜索所有出现的程序,获取它们的 PID 并使用 Kill 命令来结束该进程。

ps -C program__name

例如,如果我必须找到 apt 包管理器的所有正在运行的实例:

ps -C apt
  PID TTY          TIME CMD
11425 pts/1    00:00:00 apt

您还可以使用 grep 命令来获得类似的结果。

ps aux | grep program_name

7. 获取某个PID的进程信息

好吧!你有一个 PID,但不知道它属于哪个进程。您可以使用 ps 命令从其 PID 中查找进程信息,如下所示:

ps -pN

您可以使用多个 PID,用逗号分隔它们:

ps -pN1,N2,N3

还有什么?

正如我之前所说,ps 是一个复杂而广泛的命令。这些是您大部分时间都需要的一些最常见的 ps 命令示例。如果您想要更多信息,可以随时参考其手册页。

如果您有一些经常使用的 ps 命令的其他有用示例,为什么不在评论部分与我们其他人分享呢?

©2015-2025 Norria support@norria.com