文章目录
前言
在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 版权协议,转载请附上原文出处链接和本声明。