Linux命令详解之–ps命令

摘要
本文目录
[隐藏]

今天我们要为大家介绍命令是 Linux系统 中另一个非常常用的命令--ps命令。

ps命令

ps命令 是Process Status的缩写,用来列出系统中当前运行的那些进程。

不过,ps命令 为我们提供的是进程的快照,也就是说,使用ps命令 查看的进程情况只是在你执行 ps命令 的时刻进程的一个状态,并不是动态的。

如果想要动态的查看进程情况,我们推荐使用另一个命令--top命令 ,这个命令我们会在接下来的文章中讲到。

更多Linux命令详情请看:Linux命令速查手册

一、Linux ps命令 语法

Linux ps命令 的语法如下所示:

ps [options]

看起来语法非常简单,就是后面加上参数就可以了,但事实恰恰相反 ,ps命令 是Linux 系统 中一个非常非常强大、复杂的命令,我们在此只给出几个常用的用法。

Linux ps命令 参数:

ps命令 参数非常之多,我们在此只给出几个常用的参数。

-a 显示同一终端下的所有程序
-A 显示所有进程
c  显示进程的真实名称
-N 反向选择
-e 等于“-A”
e  显示环境变量
f  显示程序间的关系
-H 显示树状结构
r  显示当前终端的进程
T  显示当前终端的所有程序
u  指定用户的所有进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程 
-C<命令> 列出指定命令的状况
--lines<行数> 每页显示的行数
--width<字符数> 每页显示的字符数
--help 显示帮助信息
--version 显示版本显示
--------------------------------------------------------------------------------------------------------------
----下面介绍aux详细用法     www.linuxdaxue.com
--------------------------------------------------------------------------------------------------------------
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的内存使用率
VSZ: 占用的虚拟内存大小
RSS: 占用的内存大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

在 -aux 所列出的讯息中,其进程状态(STAT)标识的状态与Linux 进程 状态的对应情况如下

D状态代表 不可中断的静止状态, 对应Linux系统中的不可中断状态(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

R状态(runnable)代表 运行状态,对应Linux系统中 的运行状态(正在运行或在运行队列中等待) 

S状态(sleeping )代表 中断状态,对应Linux系统中 的中断状态(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 

T状态(traced )代表 停止状态,对应Linux系统中 的停止状态(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行) 

Z状态(zombie)代表 僵死状态,对应Linux系统中 的僵死状态(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 

这五个字母与Linux 进程状态一一对应,从其输出即可看出相应进程的运行情况。

二、Linux ps命令 使用示例

我们通过几个示例来具体了解下 Linux 中 ps命令 的用法。

1)显示所有进程信息

[linuxdaxue.com@/home/linuxdaxue.com]$ps -A
  PID TTY          TIME CMD
    1 ?        00:00:02 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:17 ksoftirqd/0
    5 ?        00:00:00 migration/0
    6 ?        00:00:04 watchdog/0
    7 ?        00:02:13 events/0
    8 ?        00:00:00 cgroup
    9 ?        00:00:02 khelper
   10 ?        00:00:00 netns
   11 ?        00:00:00 async/mgr
   12 ?        00:00:00 pm
   13 ?        00:00:00 xenwatch

---------------------------------以下省略---------------------------------

2)显示指定用户进程

[linuxdaxue.com@/home/linuxdaxue.com]$ps -u linuxdaxue.com
  PID TTY          TIME CMD
 6318 pts/0    00:00:00 bash
 7688 pts/0    00:00:00 ps

上面命令显示了用户 linuxdaxue.com 的所有进程 ,其执行的ps命令 也显示在结果当中。

3)显示所有进程信息,包括其执行的命令

[linuxdaxue.com@/home/linuxdaxue.com]$ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 May19 ?        00:00:02 /sbin/init
root         2     0  0 May19 ?        00:00:00 [kthreadd]
root         3     2  0 May19 ?        00:00:00 [migration/0]
root         4     2  0 May19 ?        00:00:17 [ksoftirqd/0]
root         5     2  0 May19 ?        00:00:00 [migration/0]
root         6     2  0 May19 ?        00:00:04 [watchdog/0]
root         7     2  0 May19 ?        00:02:13 [events/0]
root         8     2  0 May19 ?        00:00:00 [cgroup]
root         9     2  0 May19 ?        00:00:02 [khelper]
root        10     2  0 May19 ?        00:00:00 [netns]
root        11     2  0 May19 ?        00:00:00 [async/mgr]
root        12     2  0 May19 ?        00:00:00 [pm]
root        13     2  0 May19 ?        00:00:00 [xenwatch]
--------------------------以下省略--------------------------------------------------

4)列出进程的详细信息(aux参数)

[linuxdaxue.com@/home/linuxdaxue.com]$ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  19232   372 ?        Ss   May19   0:02 /sbin/init
root         2  0.0  0.0      0     0 ?        S    May19   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    May19   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    May19   0:17 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    May19   0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        S    May19   0:04 [watchdog/0]
root         7  0.0  0.0      0     0 ?        S    May19   2:13 [events/0]
root         8  0.0  0.0      0     0 ?        S    May19   0:00 [cgroup]
root         9  0.0  0.0      0     0 ?        S    May19   0:02 [khelper]
root        10  0.0  0.0      0     0 ?        S    May19   0:00 [netns]
root        11  0.0  0.0      0     0 ?        S    May19   0:00 [async/mgr]
root        12  0.0  0.0      0     0 ?        S    May19   0:00 [pm]
root        13  0.0  0.0      0     0 ?        S    May19   0:00 [xenwatch]
root        14  0.0  0.0      0     0 ?        S    May19   0:00 [xenbus]

------------------------------------------以下省略------------------------------------------------------------------

aux参数非常强大,可以自定义其输出格式,如果其后不加任何参数,则系统会给出警告,并按照默认格式输出。

其中各个字段的含义在上文中已经提到。

aux参数的详细介绍会在其它文章中介绍,在此不再展开讲。

5)配合 grep 命令 筛选需要的结果

在实际使用中我们喜欢将 ps命令与 grep命令 结合起来使用,来筛选出我们需要的结果。

[linuxdaxue.com@/home/linuxdaxue.com]$ps -ef|grep root
root         1     0  0 May19 ?        00:00:02 /sbin/init
root         2     0  0 May19 ?        00:00:00 [kthreadd]
root         3     2  0 May19 ?        00:00:00 [migration/0]
root         4     2  0 May19 ?        00:00:17 [ksoftirqd/0]
root         5     2  0 May19 ?        00:00:00 [migration/0]
root         6     2  0 May19 ?        00:00:04 [watchdog/0]
root         7     2  0 May19 ?        00:02:13 [events/0]
root         8     2  0 May19 ?        00:00:00 [cgroup]
root         9     2  0 May19 ?        00:00:02 [khelper]
root        10     2  0 May19 ?        00:00:00 [netns]
root        11     2  0 May19 ?        00:00:00 [async/mgr]

---------------------------------------以下省略----------------------------------------

在这个实例中,我们筛选出了所有root用户的进程,然后我们可以根据需求进行相应的操作了。

好了,有关 Linux ps命令 的相关内容我们就先给大家介绍到这里,更多Linux命令详情请看:Linux命令速查手册

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: