linux 命令: ps 和 top
ps命令提供进程的一次性查看,结果不是动态的;top对命令实时监控。
1. ps
ps
命令只会显示运行在当前控制台下的属于当前用户的进程。
- UNIX风格
参数 | 描述 |
---|---|
-A | 显示所有进程 |
-a | 显示除控制进程和终端进程外的所有进程 |
-d | 显示除控制进程外的所有进程 |
-e | 显示所有进程 |
-C cmdlist | 显示包含在cmdlist列表中的进程 |
-G grplist | 显示组ID在grplist列表中的进程 |
-U userlist | 显示属主的用户ID在userlist列表中的进程 |
-p pidlist | 显示PID在pidlist列表中的进程 |
-f | 显示完整格式的输出 |
-l | 显示长列表 |
常用的命令: ps -ef
:查看系统上运行的所有进程;
ps -l
: 产生一个长格式输出
参数 | 信息 |
---|---|
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
输出:
重点看这里的参数STAT,它能输出更详细的进程状态码。
第一个参数与UNIX中的S列相同,表明进程是在休眠、运行还是等待。第二个参数进一步说明进程的状态。
参数 | 信息 |
---|---|
< | 进程运行在高优先级上 |
N | 进程运行在低优先级上 |
L | 进程有页面锁定在内存中 |
s | 进程是控制进程 |
l | 进程是多线程的 |
- GNU长参数
参数 | 描述 |
---|---|
–forest | 以层级结构显示出进程和父进程之间的关系 |
ps --forset
:
ps常与grep组合,查找特定进程
eg: ps -ef | grep XXX
2. top
实时监测进程:
参数 | 信息 |
---|---|
VIRT | 进程占用的虚拟内存总量 |
RES | 进程占用的物理内存的总量 |
SHR | 进程与其他进程共享的内存总量 |
S | 进程状态(D: 可中断的休眠状态;R:运行状态;S:休眠;T:跟踪状态或停止状态;Z:僵尸) |
默认情况下,按照%CPU排序。
键入f: 选择对输出进行排序的字段;
键入d: 修改轮询时间;
键入q: 退出top
参考:Linux命令行与shell脚本编程大全