Linux编程 6 (查看进程 ps 及输出风格)
一.查看进程命令ps
1.1 默认ps 命令

在默认情况下,ps命令只会显示运行在当前控制台下,属于当前用户的进程,在上图中,我们只运行了bash shell以及ps命令本身。 上图中显示了程序的进程ID(1538,1583),它们运行在TTY终端, 以及进程已有的CPU(TIME)时间。
1.2 ps 风格以及参数
在linux系统中使用的GNU ps命令支持3种不同类型的命令行参数。包括Unix风格的参数,BSD风格的参数,GNU风格的长参数。
二. Unix风格参数
在ps中每种风格的参数都很多,下面例举一些常用的Unix风格的ps命令参数。下面表格还有很多参数没有列出来。
|
参数 |
描述 |
|
-A |
显示所有进程 |
|
-N |
显示与指定参数不符的所有进程 |
|
-a |
显示除控制进程和无终端进程外的所有进程 |
|
-d |
显示除控制进程外的所有进程 |
|
-e |
显示所有进程 |
|
-C cmdlist |
显示包含在cmdlist列表中的进程 |
|
-f |
显示完整格式的输出 |
|
-l |
显示长列表 |
2.1 ps –ef 参数组合命令
多数linux系统管理员都有自己的一组参数,来提取有用的进程信息。例如可用-ef 参数组合,如下图所示:

在上面的列表中,输出的信息包括:UID列是指启动这些进程的用户。PID列是指进程ID。 PPID列是指:父进程ID(该进程是由另一个进程启动的)。 C列是指进程生命周期中的CUP利用率。 STIME列是指进程启动时的系统时间。TTY列是指进程启动时的终端设备。TIME列是指运行进程需要的累计CPU时间。CMD列是指启动的程序名称。
2.2 ps –l 长列表
如果想要获取更多的信息,可以采用-l参数,它会产生一个长格式的输出,如下图所示:

上面的列表中,输出的信息包括:F列是指内核分配给进程的系统标记。S 是指进程状态(O是正在运行。S是休眠。R是可运行,正等待运行。Z是僵化,进程已结束但父进程已不存在,T是停止) 。 PRT列是指进程的优先级(越大数字表越低的优先级)。 NT列是指谦让度值,用来参与决定优先级。 ADDR列是指进程的内存地址。 SZ列是指假如进程被换出,所需的交换空间在大致大小。 WCHAN列是指进程休眠的内核函数的地址。
2.3 ps –ef|grep xx 查找进程
命令grep是查找, 中间 | 是管道命令,代表ps与grep同时执行。grep是一种强大的文本搜索工具,它能使用正则搜索文件,并把匹配的行打印出来。下面是匹配与nginx字符有关的进程, 用grep过滤后进程信息列名也屏蔽了。

下面命令加了l 长列表显示。

上图第二列值是S,代表当前nginx进程是休眠状态,第三列uid是属于hsr用户。
三. BSD 风格参数
BSD风格参数的ps命令参数常用如下(其它很多未列出)
|
参数 |
描述 |
|
r |
仅显示运行中的进程 |
|
T |
显示与当前终端关联的所有进程 |
|
a |
显示与任意终端关联的所有进程 |
|
g |
显示所有的进程,包括控制进程 |
|
l |
采用长模式 |
使用BSD参数时,ps命令会自动改变输出以模仿Unix格式。例如:使用参数l输出:

上图中列输出与Unix风格输出大部份是一样的。只有小部份不同包括 VSZ是指进程在内存中的大小,以KB单位。 RSS是指进程在未换出时占用的物理内存。 STAT:代表当前进程状态的双字符状态码。
在STAT双字符状态码中,第一个字符与Unix的S列值一样。后一个字符代表如下:
<: 该进程运行在高优先级上。
N:该进程运行在低优先级上。
L:该进程有页面锁定在内存中。
s: 该进程是控制进程。
l: 该进程是多线程的。
+: 该进程运行在前台。
可以看出bash命令处于休眠状态。是一个控制进程。 Ps是运行在系统的前台。
四. GNU风格长参数
GNU长参数风格的ps命令参数常用如下(其它很多未列出)
|
--deselect |
显示所有进程,命令行中列出的进程 |
|
--forest |
层级结构显示出进程与父进程之间的关系 |
例如使用组合参数输出。如下图所示:

例如与其Unix风格组合参数输出。如下图所示:

Linux编程 6 (查看进程 ps 及输出风格)的更多相关文章
- Linux下查看进程的命令输出的内容解释
Linux下查看进程的命令输出的内容解释 ps (process status) ps -e 或者ps -A (-e和-A完全一样) PID TTY TIME ...
- 浅谈Linux系统中如何查看进程 ——ps,pstree,top,w,全解
进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源.一般来说,Linux系统会在进程之间共享程序代码和系统函数库,所以在任何时刻内存中都只有代码的一份拷贝. 1,ps命令 作用:p ...
- linux(6)查看进程ps命令
ps命令 Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器 查看所有进程 ps -A 显示所有进程信息,连同命令行 ps - ...
- Linux常用命令 查看进程信息时 copy的-----温故而知新
1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序. ps -A 显示所有程序. ps c 列出程序时,显示每个程序真正的 ...
- shell学习五十天----查看进程ps命令
进程列表 列出进程中最重要的命令便是进程状态命令:ps. ps命令是进程状态(Process Status)的缩写.ps命令用来列出系统中当前执行的那些进程.ps命令列出的是当前那些进程的快照,就是执 ...
- linux lsof/netstat查看进程和端口号相关命令:
本文为博主原创,未经允许不得转载: 在linux操作时,经常要查看运行的项目的进程和端口号,在这里总结了以下常用到的相关命令: 1.查看系统运行的java项目,并查看进程号 这个用到的命令为: ps ...
- Linux基础命令——查看进程命令
linux是一个 多进程 多用户的操作系统 ps(显示当前进程的状态) ps -ef 查看当前linux 进程 ps -ef | grep 'mysqld' 过滤mysql的进程 (grep ...
- Linux根据端口查看进程
若不知道具体目录,可以根据端口查找,查看端口22000的信息: sudo lsof -i:22000 RelaySvr 4322 root 13u IPv4 75680495 0t0 ...
- 【linux】如何查看进程运行在那颗cpu上
这里介绍一种方法查看进程运行在哪个cpu上, 首先top 然后按字母:f 按字母:j 回车即可 其中P列表示进程运行在哪个CPU上
随机推荐
- 利用maven将项目打包成一个可以运行的独立jar包
目标:希望把Java项目打包成一个完整的jar包,可以独立运行,不需要再依赖其他jar包. 我们在用eclipse中mvn创建mvn项目的时候,选择非webapp,会默认的以jar打包形式,如下图: ...
- 【Spark2.0源码学习】-7.Driver与DriverRunner
承接上一节内容,Client向Master发起RequestSubmitDriver请求,Master将DriverInfo添加待调度列表中(waitingDrivers),下面针对于Dri ...
- 解决 “access violation at address xxxxxxxxx”错误
在进行磁盘整理的时候,打开Foxmail的时候出现了“access violation at address32383137”错误 和“access violation at address00000 ...
- SPOJ - AMR11B
题目链接:https://www.spoj.com/problems/AMR11B/en/ 题目大意就是要你求图形覆盖的格点数,标记每个图形里的未标记格点(包括边界),总标记数就是覆盖的总格点数. # ...
- 常用screen参数
摘自:https://www.cnblogs.com/webnote/p/5749675.html screen -S yourname -> 新建一个叫yourname的sessionscre ...
- 第二次spring会议
今天所做之事: 我用C#用DelectText对行数进行了定义,刚开始写代码有点无从下手. 遇到的问题:刚开始用datagridView进行了文本的输入,但是它更适合EXCEL之类的数据计算不符合我们 ...
- js图片预加载、有序加载
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8&qu ...
- web版ssh的使用
一.web_ssh版本安装使用 web_ssh源码:https://github.com/shellinabox/shellinabox 1)安装依赖包 yum install git openssl ...
- Shell脚本学习-echo命令
跟着RUNOOB网站的教程学习的笔记 shell的echo指令与PHP的echo指令类似,都是用于字符串的输出.命令格式: echo string 1 显示普通字符串 echo "It is ...
- 前端基于easyui的mvc扩展
背景 由于MVC的前端是基于jquery.validate和jquery.validate.unobtrusive来实现的,但是当我们要使用其他的ui组件且组件本身就带有完整的验证功能的话,那么要让它 ...