文章目录
前言
在linux中,有时需要会看进程的状态,知道哪些进程占用了多少的CPU、内存,以及当前系统的状态怎么样等等,下面来看下这个命令的一些参数。
一 命令的介绍
ps命令来自于英文词组“process status”,其功能使用与显示当前系统的进程状态。使用ps这个命令可以查看到进程的所有信息,例如说是进程的PID号、发起用户、系统资源使用占比(CPU,内存)、运行状态等。帮助我们可以及时发现哪些进程出现“僵死”或“不可中断”等异常情况。
二 语法及参数
2.1 通过help和man查看命令的语法
ps命令可以直接加参数进行查看进程;
语法:ps 【参数】
SYNOPSIS
ps [options]
2.2 命令参数
ps命令的所有参数,可以看到这个命令的参数是有很多的,基本上这个命令只有几个是常用的。
a | 显示当前终端下的所有进程,包括其他用户的进程 |
-A | 所有进程都显示出来 |
c | 显示每个进程真正的指令名称,而不包含路径 |
-C <指令名称> | 指定执行指令的名称,并列出该指令的程序的状况 |
-d | 显示所有程序,但不包括阶段作业管理员的程序 |
e | 显示进程及环境变量 |
-f | 显示UID,PPID,C与STIME栏位 |
f | 用ASCII字符显示树状结构,表达程序间的相互关系 |
g | 显示现行终端机下的所有程序,包括所属组的程序 |
-G <群组识别码> | 列出属于该群组的程序的状况 |
h | 不显示标题列 |
-H | 显示树状结构,表示程序间的相互关系 |
-j | 采用工作控制的格式显示程序状况 |
-l | 采用详细的格式来显示程序状况 |
L | 列出栏位的相关信息 |
-m | 显示所有的执行绪 |
n | 以数字来表示USER和WCHAN栏位 |
-N | 显示所有的程序,除了执行ps指令终端机下的程序之外 |
-p <程序识别码> | 指定程序识别码,并列出该程序的状况 |
r | 只列出现行终端机正在执行中的程序 |
-s <阶段作业> | 列出隶属该阶段作业的程序的状况 |
s | 采用程序信号的格式显示程序状况 |
S | 列出程序时,包括已中断的子程序资料 |
-t <终端机编号> | 列出属于该终端机的程序的状况 |
-T | 显示现行终端机下的所有程序 |
u | 以用户为主的格式来显示程序状况 |
-U <用户识别码> | 列出属于该用户的程序的状况 |
U <用户名称> | 列出属于该用户的程序的状况 |
v | 采用虚拟内存的格式显示进程状况 |
-V或V | 显示版本信息 |
-w或w | 采用宽阔的格式来显示进程状况 |
x | 显示所有进程,不以终端来区分 |
X | 采用旧式的Linux i386登陆格式显示程序状况 |
-y | 配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 |
–cols <每列字符数> | 设置每列的最大字符数 |
–headers | 重复显示标题列 |
–help | 在线帮助 |
–info | 显示排错信息 |
–lines <显示列数> | 设置显示画面的列数 |
2.3 常用参数
a | 显示当前终端下的所有进程,包括其他用户的进程 |
-A | 所有进程都显示出来 |
u | 以用户为主的格式来显示程序状况 |
f | 用ASCII字符显示树状结构,表达程序间的相互关系 |
x | 显示所有进程,不以终端来区分 |
e | 显示进程及环境变量 |
-l | 采用详细的格式来显示程序状况 |
三 参数使用与内容含义
3.1 查看系统当中所有的数据
ps显示所有进程,用wc显示行数,可以看到一共有这么多行,当然也可以加上个more,就可以慢慢看
[root@localhost ~]# ps aux | wc -l
214
[root@localhost ~]# ps aux |more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 193912 7008 ? Ss 15:16 0:02 /usr/lib/systemd/systemd --switched-r
oot --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 15:16 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 15:16 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 15:16 0:00 [ksoftirqd/0]
root 7 0.0 0.0 0 0 ? S 15:16 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 15:16 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 15:16 0:00 [rcu_sched]
......
3.1.1 ps aux中状态栏的含义
状态栏内容 | 含义 |
---|---|
USER | 进程的用户发起者 |
PID | 进程的PID值,每个进程都有属于自己PID |
%CPU | 进程占用CPU的百分比 |
%MEM | 进程占用内存的百分比 |
VSZ | 虚拟内存,进程占用虚拟内存大小(单位:KB) |
RSS | 常驻内存,也就是物理内存,进程占用了物理内存大小(单位:KB) |
TTY | 在哪个终端上面运行,?表示与终端没有关系,显示tty1则是在本地上启动的进程 |
STAT | 进程的状态,有5个状态 |
START | 该process被触发启动的时间 |
TIME | 该process实际使用CPU运行的时间 |
COMMAND | 该程序的实际指令 |
3.1.2 STAT进程状态各自代表的含义
- R:runing,表示当前正在运行的进程
- S:sleep,当前正在睡眠的进程
- T:stopped,当前停止运行的进程
- D:当前不可中断的进程
- Z:zombie,僵尸进程,即进程已终止,但却无法被移除至内存外
3.1.3 STAT状态后的内容含义
- < 表示进程运行在高优先级上
- N 表示进程运行在低优先级上
- L 表示进程有页面锁定在内存中
- s 表示进程是控制进程
- l 表示进程是多进程
- +表示当前进程运行在前台
3.2 以更详细的格式显示进程
[root@localhost ~]# ps -Al | more
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 48478 ep_pol ? 00:00:03 systemd
1 S 0 2 0 0 80 0 - 0 kthrea ? 00:00:00 kthreadd
1 S 0 4 2 0 60 -20 - 0 worker ? 00:00:00 kworker/0:0H
1 S 0 6 2 0 80 0 - 0 smpboo ? 00:00:00 ksoftirqd/0
1 S 0 7 2 0 -40 - - 0 smpboo ? 00:00:00 migration/0
1 S 0 8 2 0 80 0 - 0 rcu_gp ? 00:00:00 rcu_bh
1 S 0 9 2 0 80 0 - 0 rcu_gp ? 00:00:00 rcu_sched
3.2.1 ps lA中状态栏的含义
状态栏内容 | 含义 |
---|---|
F | 进程的旗标 4表示进程权限root 、1表示进程仅仅只能复制,不能执行、0表示进程已经执行结束。 |
S | 进程的状态,有五个状态,S 睡眠、T 停止、R 运行、D 不可停止、Z 僵尸进程 |
UID | 启用进程的用户UID |
PID | 进程的PID |
PPID | 进程的父进程 |
C | CPU的使用率,单位是百分比 |
PRI | Rriority,代表系统内核所设定的优先级,不可修改 |
NI | NIce,代表用户可修改的优先级,优先级越低,就越快被CPU执行 |
ADDR | 该进程在内存的哪个部分 |
SZ | 进程用掉了内存的多少 |
WCHAN | 进程是否再运行,若运行为 – |
TTY | 进程是否再当前登录的终端启用的,若不是显示为? |
TIME | 进程使用CPU的时间 |
COMMAND | 当前进程的实际指令 |
3.3 显示进程的变量和完整的格式
[root@localhost ~]# ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 15:16 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --system --d
eserialize 22
root 2 0 0 15:16 ? 00:00:00 [kthreadd]
root 4 2 0 15:16 ? 00:00:00 [kworker/0:0H]
......
3.3.1 ps -ef中状态栏的含义
状态栏 | 含义 |
UID | 运行进程的用户 |
PID | 进程的PID,唯一值 |
PPID | 进程的父进程 |
C | 占用CPU的百分比 % |
STIME | 进程启动的时间 |
TTY | 启动进程的终端 |
TIME | 进程占用CPU的时间 |
CMD | 运行进程的指令 |
总结
这个命令要记的参数并不多,可以说常用到的就那么几个,更主要还是要了解这个命令的内容的含义;若觉得以上内容还行的,可以点赞支持一下!
版权声明:本文为rhn_111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。