!
也想出现在这里? 联系我们
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中
当前位置:首页>教程文档>linux运维>ps命令常见实用用法

ps命令常见实用用法

前言

ps(Process Status)命令是linux中最常见的命令之一,它用来列出当前系统运行中的进程的状态信息。当然了,它只显示命令执行时的进程状态,如果想要动态列出状态信息,可以选择使用top命令。那么通过ps命令我们能够知道进程的哪些信息呢?下面进行介绍。

命令基本介绍

命令格式

ps命令基本格式为:
ps [options]

常用参数

-A    显示所有进程(同-e)
-a    显示当前终端的所有进程
-u    显示进程的用户信息
-o    以用户自定义形式显示进程信息
-f    显示程序间的关系

对于更多参数的介绍,可使用命令man ps查看,这里不再赘述。

字段含义

在介绍实例之前,需要先了解一下ps命令输出各字段的含义,这样我们才能更好地理解所展示的信息。常见字段的基本含义如下:

USER          进程所有者的用户名
PID           进程号
START         进程激活时间
%CPU          进程自最近一次刷新以来所占用的CPU时间和总时间的百分比
%MEM          进程使用内存的百分比
VSZ           进程使用的虚拟内存大小,以K为单位
RSS           驻留空间的大小。显示当前常驻内存的程序的K字节数。
TTY           进程相关的终端
STAT          进程状态,包括下面的状态: 
                     D    不可中断     Uninterruptible sleep (usually IO)
                     R    正在运行,或在队列中的进程
                     S    处于休眠状态
                     T    停止或被追踪
                     Z    僵尸进程
                     W    进入内存交换(从内核2.6开始无效)
                     X    死掉的进程
                     <    高优先级
                     N    低优先级
                     L    有些页被锁进内存
                     s    包含子进程
                     \+   位于后台的进程组;
                     l    多线程,克隆线程

TIME          进程使用的总CPU时间
COMMAND       被执行的命令行
NI            进程的优先级值,较小的数字意味着占用较少的CPU时间
PRI           进程优先级。
PPID          父进程ID
WCHAN         进程等待的内核事件名

常见用法

下面来看看一些常见用法。

显示所有进程信息

ps -A
 PID TTY          TIME CMD
    1 ?        00:00:03 systemd
    2 ?        00:00:00 kthreadd
    4 ?        00:00:00 kworker/0:0H
    6 ?        00:00:00 mm_percpu_wq
    7 ?        00:00:00 ksoftirqd/0
    8 ?        00:00:02 rcu_sched
    9 ?        00:00:00 rcu_bh
   10 ?        00:00:00 migration/0
   11 ?        00:00:00 watchdog/0
(内容较多,其他部分略过。)

虽然能显示所有进程,但是显示的信息却不多,基本只显示了进程id和进程名,有时候并不实用。

显示所有进程基本信息

相关参数-e

ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 10:52 ?        00:00:03 /sbin/init splash
root         2     0  0 10:52 ?        00:00:00 [kthreadd]
root         4     2  0 10:52 ?        00:00:00 [kworker/0:0H]
root         6     2  0 10:52 ?        00:00:00 [mm_percpu_wq]
root         7     2  0 10:52 ?        00:00:00 [ksoftirqd/0]
root         8     2  0 10:52 ?        00:00:02 [rcu_sched]
root         9     2  0 10:52 ?        00:00:00 [rcu_bh]
root        10     2  0 10:52 ?        00:00:00 [migration/0]
(内容较多,其他部分略过。)

这个时候已经显示较多信息了。

显示指定用户的进程

相关参数-u

ps -u root
  PID TTY          TIME CMD
    1 ?        00:00:03 systemd
    2 ?        00:00:00 kthreadd
    4 ?        00:00:00 kworker/0:0H
    6 ?        00:00:00 mm_percpu_wq
    7 ?        00:00:00 ksoftirqd/0
    8 ?        00:00:03 rcu_sched
    9 ?        00:00:00 rcu_bh

查看指定进程名相关信息

这个时候就需要配合grep使用了。
例如,查看”java“相关进程:

ps -ef|grep java
root       2685  2684  2 10:55 pts/0    00:01:19 java -jar ./software/finalspeed/finalspeed_client.jar
root       5423  4487  0 11:55 pts/20   00:00:00 grep --color=auto java

查看进程占用内存,cpu利用率等信息

ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0 185488  6188 ?        Ss   10:52   0:03 /sbin/init splash
root         2  0.0  0.0      0     0 ?        S    10:52   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   10:52   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S<   10:52   0:00 [mm_percpu_wq]

从上面的信息,可以看到进程的所有者、cpu占用率、内存占用率等较为详细的信息。

显示线程相关信息

相关参数-l

ps -elf

查看进程间的关系

相关参数-H,进程间关系以树形图的方式展示:

ps -ejH

查看进程的指定字段信息

有时候可能比较关注某些进程信息,ps -o可以指定要显示的列。
例如:

ps -eo %cpu,%mem,vsz,rsz,start,stat,pid,sid,ni,uid,user,rss,time,command
.0  0.0      0     0 10:52:51 S      365     0   -     0 root         0 00:00:00 [irq/47-mei_me]
 0.0  0.0      0     0 10:52:51 S<     373     0 -20     0 root         0 00:00:00 [cfg80211]
 0.0  0.0      0     0 10:52:52 S<     402     0 -20     0 root         0 00:00:00 [ktpacpid]
 0.0  0.0      0     0 10:52:56 S      669     0   0     0 root         0 00:00:00 [jbd2/sda15-8]
 0.0  0.0      0     0 10:52:56 S<     670     0 -20     0 root         0 00:00:00 [ext4-rsv-conver]
 0.0  0.0      0     0 10:52:57 S      676     0   0     0 root         0 00:00:00 [jbd2/sda11-8]
 0.0  0.0      0     0 10:52:57 S<     677     0 -20     0 root         0 00:00:00 [ext4-rsv-conver]
 0.0  0.0      0     0 10:52:58 S      683     0   0     0 root         0 00:00:00 [jbd2/sda14-8]
 0.0  0.0      0     0 10:52:58 S<     684     0 -20     0 root         0 00:00:00 [ext4-rsv-conver]

查看指定进程指定信息

只需要在最后指定--pid参数即可。
例如:

ps -o %cpu,%mem,vsz,rsz,start,stat,pid,sid,ni,uid,user,rss,time,command --pid 2685

%CPU %MEM    VSZ   RSZ  STARTED STAT   PID   SID  NI   UID USER       RSS     TIME COMMAND
 2.0  1.9 5740448 159796 10:55:24 Sl+ 2685  2583   0  1000 hyb      159796 00:01:46 java -jar ./software/finalspeed/finalspeed_client.jar

进程太多时分页显示

如果进程信息较多,可能一页无法完成显示,这时可以配合使用more命令。
例如:

ps -aux|more

总结

ps命令也是在linux下常用命令之一,通过它我们可以了解更多进程的相关信息。

重要声明

本网站的文章部分内容可能来源于网络,如有侵犯你的权益请联系邮箱:[email protected] 站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!本站资源大多存储在云盘,如发现链接失效请反馈,我们会及时更新。


       

如果遇到积分购买才可查阅的文章,建议升级会员或者成为认证用户。全站95%资源免费下载”。

给TA打赏
共{{data.count}}人
人已打赏
豪华单机

哥谭骑士/Gotham Knights

2023-2-3 0:47:13

linux运维

linux常用命令_开发调试篇

2022-2-5 19:48:00

8 条回复 A文章作者 M管理员
  1. 风雨同行

    学习了

  2. 飞仔

    每一个不曾起舞的日子,都是对生命的辜负

  3. 飞仔

    感谢大佬分享

  4. willl

    学习了

  5. 雪峰

    学习中!谢谢大佬

  6. 雪峰

    谢谢了

  7. milo

    学习了学习了学习了学习了

  8. alim0996

    感谢大佬分享

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
扫码添加本站【微信群】加入我们的圈子

获取更多游戏搭建教学 请扫码添加右侧微信群

联系我们