linux 命令: ps 和 top

ps命令提供进程的一次性查看,结果不是动态的;top对命令实时监控。


1. ps

ps命令只会显示运行在当前控制台下的属于当前用户的进程。

linux 命令: ps 和 top

  • UNIX风格
参数 描述
-A 显示所有进程
-a 显示除控制进程和终端进程外的所有进程
-d 显示除控制进程外的所有进程
-e 显示所有进程
-C cmdlist 显示包含在cmdlist列表中的进程
-G grplist 显示组ID在grplist列表中的进程
-U userlist 显示属主的用户ID在userlist列表中的进程
-p pidlist 显示PID在pidlist列表中的进程
-f 显示完整格式的输出
-l 显示长列表

常用的命令:
ps -ef:查看系统上运行的所有进程;
linux 命令: ps 和 top

ps -l: 产生一个长格式输出
linux 命令: ps 和 top

参数 信息
UID 启动这些用户的进程
PID 进程的进程ID
PPID 父进程的进程号
C 进程生命周期中CPU利用率
STIME 进程启动时的系统时间
TTY 进程启动时的终端设备
TIME 运行进程需要的累计CPU时间
CMD 启动的程序名称
F 内核分配给系统的标记
S 进程的状态(O:正在运行;S: 在休眠;R: 可运行,正等待运行;Z: 僵尸化;T: 停止)
PRI 进程的优先级
NI 谦让值
ADDR 进程的内存地址
SZ 如果进程被换出,所需交换空间的大致大小

  • BSD风格
    Unix和BSD重叠地方很多;
参数 描述
r 仅显示运行中的进程
l 采用长模式
f 用分层格式显示进程,表明哪些进程启动了哪些进程

ps l输出:

linux 命令: ps 和 top

重点看这里的参数STAT,它能输出更详细的进程状态码。
第一个参数与UNIX中的S列相同,表明进程是在休眠、运行还是等待。第二个参数进一步说明进程的状态。

参数 信息
< 进程运行在高优先级上
N 进程运行在低优先级上
L 进程有页面锁定在内存中
s 进程是控制进程
l 进程是多线程的

  • GNU长参数
参数 描述
–forest 以层级结构显示出进程和父进程之间的关系

ps --forset:
linux 命令: ps 和 top

ps常与grep组合,查找特定进程
eg: ps -ef | grep XXX


2. top

实时监测进程:

linux 命令: ps 和 top

参数 信息
VIRT 进程占用的虚拟内存总量
RES 进程占用的物理内存的总量
SHR 进程与其他进程共享的内存总量
S 进程状态(D: 可中断的休眠状态;R:运行状态;S:休眠;T:跟踪状态或停止状态;Z:僵尸)

默认情况下,按照%CPU排序。
键入f: 选择对输出进行排序的字段;
键入d: 修改轮询时间;
键入q: 退出top


参考:Linux命令行与shell脚本编程大全