Linux命令之 ps命令

ps(Process Status)命令使用来罗列当前系统中正在运行进程的状态。

info:ps命令查看的是进程的瞬时状态,它所提供的查看结果并不动态连续的;若想动态监控进程状态应使用top命令;终止进程使用kill命令
  • linux上进程有5种状态

    • 运行(正在运行或在运行队列中等待)
    • 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
    • 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
    • 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
    • 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
  • ps工具标识进程的5种状态码

    • R 运行 runnable (on run queue)
    • S 中断 sleeping
    • D 不可中断 uninterruptible sleep (usually IO)
    • Z 僵死 a defunct ("zombie") process
    • T 停止 traced or stopped

命令语法

ps [选项]

附加参数

参数说明
a显示所有进程
-a显示同一终端下的所有程序
-A显示所有进程
c显示进程的真实名称
-N反向选择
-e等于“-A”
e显示环境变量
f显示程序间的关系
-H显示树状结构
r显示当前终端的进程
T显示当前终端的所有程序
u指定用户的所有进程
-au显示较详细的资讯
-aux显示所有包含其他使用者的行程
-C<命令>列出指定命令的状况
--lines<行数>每页显示的行数
--width<字符数>每页显示的字符数

常用范例

显示所有进程信息

ps -A

显示所有进程信息显示所有进程信息


显示指定用户信息

ps -u root

root用户的进程root用户的进程


显示所有进程信息,连同命令行

ps -ef

显示所有进程信息,连同命令行显示所有进程信息,连同命令行


ps 与grep 常用组合用法,查找特定进程

ps -ef|grep ssh

查找特定进程查找特定进程


将目前属于您自己这次登入的 PID 与相关信息列示出来

ps -l

将目前属于您自己这次登入的 PID 与相关信息列示出来将目前属于您自己这次登入的 PID 与相关信息列示出来

各字段含义
F代表这个程序的旗标 (flag), 4 代表使用者为super user
S代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
UID程序被该 UID 所拥有
PID就是这个程序的 ID
PPID则是其上级父程序的ID
CCPU使用的资源百分比
PRIPriority (优先执行序) 的缩写,详细后面介绍
NINice 值,在下一小节我们会持续介绍
ADDRkernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是-
SZ使用掉的内存大小
WCHAN目前这个程序是否正在运作当中,若为 - 表示正在运作
TTY登入者的终端机位置
TIME使用掉的 CPU 时间
CMD所下达的指令为何
默认情况下, ps命令仅会列出与当前所在的 shell 有关的 PID ,所以显示的条目较少。

列出目前所有的正在活动的进程

ps -aux

列出目前所有的正在活动的进程列出目前所有的正在活动的进程

各字段含义
USER该 process 属于那个使用者账号的
PID该 process 的号码
%CPU该 process 使用掉的 CPU 资源百分比
%MEM该 process 所占用的物理内存百分比
VSZ该 process 使用掉的虚拟内存量 (Kbytes)
RSS该 process 占用的固定的内存量 (Kbytes)
TTY该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序
STAT该程序目前的状态,主要的状态有
R该程序目前正在运作,或者是可被运作
S该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒
T该程序目前正在侦测或者是停止了
Z该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
START该 process 被触发启动的时间
TIME该 process 实际使用 CPU 运作的时间
COMMAND该程序的实际指令

以树状显示进程间的关系

ps -axjf

以树状显示进程间的关系以树状显示进程间的关系


显示与指定进程有关的PID

ps aux | egrep '(ssh|git)'

显示与指定进程有关的PID显示与指定进程有关的PID


可以用 | 管道和 more 连接起来分页查看

ps -aux |more

把所有进程显示出来,并输出到ps.log文件

ps -aux > ps.log

输出指定的字段

ps -o pid,ppid,pgrp,session,tpgid,comm

输出指定的字段输出指定的字段

添加新评论

* 已开启反垃圾保护,《隐私政策》