您的位置:

Linux运维工程师必备:理解和使用ps命令

一、什么是ps命令

ps命令是Linux下的一个查看进程的命令,它可以显示出系统中正在运行的进程。

一般格式为: ps [选项]

其中,选项包括:

  • -a:显示当前终端下的所有进程(包括其他用户的进程)
  • -u:以用户为主的格式来显示进程信息
  • -x:显示没有控制终端的进程

二、如何使用ps命令

1、查看当前用户的进程,可以使用命令 ps -u 用户名 来查看。

    ps -u root

可以查看以root用户启动的进程信息。

2、查看系统所有进程,可以使用命令 ps aux

    ps aux

其中,a选项表示显示所有用户的进程; u 表示以长格式显示进程信息; x 表示显示没有控制终端的进程。

3、查找某个进程,可以使用命令 ps -ef | grep 进程名称

    ps -ef | grep nginx

其中,grep 命令用来匹配进程名称,过滤出满足条件的记录。

三、ps命令实例

实例1:查看系统所有进程

    ps aux

输出结果如下:

USER:进程的执行用户

PID:进程的ID号

CPU%:进程使用CPU的占比

MEM%:进程使用内存的占比

VSZ:进程占用虚拟内存的大小

RSS:进程占用物理内存的大小

TID:线程ID号,与进程ID相同

STAT:进程的状态,包括S(休眠),R(运行),Z(僵尸),T(停止)等

START:进程启动时的时间

TIME:进程执行的时间

COMMAND:进程对应的命令

    USER       PID %CPU %MEM    VSZ   RSS TID  STAT START   TIME COMMAND
    root         1  0.0  0.2  19176  5520    1  Ss   5月24   1:36 /sbin/init
    root         2  0.0  0.0      0     0    2  S    5月24   0:00 [kthreadd]
    root         3  0.0  0.0      0     0    3  I<   5月24   0:00 [rcu_gp]
    root         4  0.0  0.0      0     0    4  I<   5月24   0:00 [rcu_par_gp]
    root         6  0.0  0.0      0     0    6  I<   5月24   0:00 [kworker/0:0H-kblock]
    root         7  0.0  0.0      0     0    7  I    5月24   0:01 [kworker/u8:0-evpoll]
    root         8  0.0  0.0      0     0    8  I<   5月24   0:00 [mm_percpu_wq]
    root         9  0.0  0.0      0     0    9  S    5月24   0:02 [ksoftirqd/0]

实例2:查找某个进程

    ps -ef | grep nginx

输出结果如下:

    root     12067     1  0 14:17 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
    nginx    12068 12067  0 14:17 ?        00:00:00 nginx: worker process
    nginx    12069 12067  0 14:17 ?        00:00:00 nginx: worker process
    nginx    12070 12067  0 14:17 ?        00:00:00 nginx: worker process
    nginx    12071 12067  0 14:17 ?        00:00:00 nginx: worker process

实例3:开启进程监控

使用命令 watch -n 1 ps aux 可以每一秒钟刷新一次当前运行的进程信息。

    watch -n 1 ps aux

四、总结

ps命令在Linux运维工作中扮演着非常重要的角色,它能够帮助我们实时查看进程的运行情况,以及管理进程资源。熟练掌握ps命令的使用,对于Linux运维工程师来说非常必要。