前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ps命令常见实用用法

ps命令常见实用用法

作者头像
编程珠玑
发布2019-09-03 11:06:00
5350
发布2019-09-03 11:06:00
举报
文章被收录于专栏:编程珠玑编程珠玑

命令基本介绍

命令格式

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

常用参数
代码语言:javascript
复制
-A    显示所有进程(同-e)
-a    显示当前终端的所有进程
-u    显示进程的用户信息
-o    以用户自定义形式显示进程信息
-f    显示程序间的关系

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

字段含义

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

代码语言:javascript
复制
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         进程等待的内核事件名

常见用法

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

显示所有进程信息
代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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“相关进程:

代码语言:javascript
复制
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利用率等信息
代码语言:javascript
复制
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

代码语言:javascript
复制
ps -elf
查看进程间的关系

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

代码语言:javascript
复制
ps -ejH
查看进程的指定字段信息

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

代码语言:javascript
复制
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参数即可。 例如:

代码语言:javascript
复制
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命令。 例如:

代码语言:javascript
复制
ps -aux|more

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程珠玑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命令基本介绍
    • 命令格式
      • 常用参数
      • 字段含义
      • 常见用法
        • 显示所有进程信息
          • 显示所有进程基本信息
            • 显示指定用户的进程
              • 查看指定进程名相关信息
                • 查看进程占用内存,cpu利用率等信息
                  • 显示线程相关信息
                    • 查看进程间的关系
                      • 查看进程的指定字段信息
                        • 查看指定进程指定信息
                          • 进程太多时分页显示
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档