LINFO

ps命令

 

PS(即,处理状态命令被用来提供关于当前正在运行的信息的过程,包括它们的过程标识号(PID)来。

过程也称为任务,是程序的执行(即运行)实例。系统为每个过程分配一个唯一的PID。

ps的基本语法是

ps [options]

当没有任何选项的情况下使用ps时,默认情况下它将发送到标准输出,即显示监视器,该输出显示系统中当前至少两个进程的四项信息:shell和ps。shell是一个程序,它在类Unix操作系统中提供传统的纯文本用户界面,用于发布命令并与系统交互,并且在Linux上默认为bash。ps本身就是一个进程,只要它的输出显示就会死掉(即终止)。

这四个项目分别标记为PID,TTY,TIME和CMD。TIME是进程运行的CPU(中央处理单元)时间(以分钟和秒为单位)的时间量。CMD是启动该过程的命令的名称。

TTY(现在代表终端类型,但最初代表电传打字)是用户登录控制台终端(即,显示器和键盘的组合)的名称,也可以使用tty命令找到。这些信息通常只对多用户网络有用。

使用ps获得有关系统上当前进程的更完整信息的常用方便方法是使用以下命令:

ps -aux | less

-a选项告诉ps列出所有用户的进程在系统上,而不是仅仅与当前用户的,与外班组长和不与终端关联的进程。小组负责人是一组相关过程的第一个成员。

-u选项告诉ps提供有关每个过程的详细信息。在-x选项添加到不具有控制终端列表过程,如守护进程,这是被期间启动程序启动(即,计算机启动),并在后台运行悄悄直到它们由特定的事件或条件激活。

由于进程列表可能相当长,占用的屏幕不止一个,ps -aux的输出可以传送(即传输)到less命令,从而可以一次查看一个屏幕。按下空格键可将输出向前推进一个屏幕,按b键则向后推一个屏幕。

ps -aux提供的关于每个进程的信息包括进程的用户,PID,进程使用的CPU百分比,进程使用的内存百分比,VSZ(虚拟大小以千字节为单位),RSS(实际内存大小或以1024字节为单位的常驻集大小),STAT(进程状态代码),进程的启动时间,进程已激活的时间长度以及启动进程的命令。过程状态代码包括D,不间断睡眠; N,低优先级; R,可运行(在运行队列上); S,睡觉; T,追踪或停止; Z,不存在(僵尸)。

与大多数命令相比,ps之前的连字符是可选的,不是强制性的。因此,以下内容可能(有时候会)用来代替上述命令:

ps aux | less

用于查看系统上运行的所有进程的另一组选项是

ps -ef | less

-e选项生成的有关当前正在运行的每个进程的信息列表。在-f选项生成包含的信息较少的项目超过了每个进程的列表-l选项。

在由ps -ef显示的列中,UID包含拥有进程的帐户的用户名(通常是启动进程的同一用户),STIME显示进程启动的时间,或者开始日期超过启动日期24小时前。

ps显示的过程可以限制为属于任何给定用户的过程,方法是通过grep(用于搜索文本的过滤器)输出输出。例如,属于具有用户名adam的用户的进程可以显示如下:

ps -ef | grep adam

-l选项会生成一个列表,当与-e和-f选项一起使用时,将创建一个包含15列的表:

ps -efl

最感兴趣的附加列是NI和SZ。前者显示过程的良好价值,它决定了过程的优先级。值越高,优先级越低。Linux系统默认的nice值为0。

后者在内存中显示进程的大小。该字段的值是进程占用的页数。在Linux系统上,一页是4,096字节。

ps通常用于获取故障进程的PID,以便使用kill命令终止它。例如,如果发现冻结程序或崩溃程序的PID为1125,则通常可以终止该过程:

kill 1125

然后可以使用ps -ef或ps -efl来确认该过程确实已停止。如果没有,那么应该使用更有力的-9选项,即,

kill -9 1125

pstree命令类似PS的,因为它可以用来显示所有系统上的进程与它们的PID一起。然而,它不同之处在于它以树形图表示它的输出,显示进程如何相互关联,并且它提供的关于每个进程的详细信息不如ps。

2005 
年5月20日创建。版权所有©2005 The Linux Information Project。版权所有。

一般来说,ps aux命令执行结果的几个列的信息分别是:

USER      进程所属用户
PID          进程ID
%CPU     进程占用CPU百分比
%MEM    进程占用内存百分比
VSZ         虚拟内存占用大小      单位:kb(killobytes)
RSS        实际内存占用大小       单位:kb(killobytes)
TTY         终端类型
STAT      进程状态
START   进程启动时刻
TIME      进程运行时长
COMMAND 启动进程的命令

VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

DATA
1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的。

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下:
s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top
s – 改变画面更新周期

序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

http://blog.chinaunix.net/uid-22858177-id-381533.html

Linux中ps与top命令
这两个命令都是查看系统进程信息的命令,但是用处有点儿不同
1.ps命令–提供系统过去信息的一次性快照
也就是说ps命令能够查看刚刚系统的进程信息  命令:ps aux或者ps lax
[root@Linux ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.1   2032   644 ?        Ss   21:55   0:01 init [3]
root         2  0.0  0.0      0     0 ?        S    21:55   0:00 [migration/0]
root         3  0.0  0.0      0     0 ?        SN   21:55   0:00 [ksoftirqd/0]
……
解释如下:
VSZ–进程的虚拟大小
RSS–驻留集的大小,可以理解为内存中页的数量
TTY–控制终端的ID
STAT–也就是当前进程的状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
STRAT–这个很简单,就是该进程启动的时间
TIME–进程已经消耗的CPU时间,注意是消耗CPU的时间
COMMOND–命令的名称和参数
而]#ps lax  可以看到父进程,谦让值以及该进程正在等待的资源等待
2.top命令–这个命令就很有用了
top命令反应的是系统进程动态信息,默认10s更新一次
 
如下例所示:
  $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'  其中rsz是是实际内存

ps命令手册的更多相关文章

  1. 10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  2. [置顶] linux常用命令手册

    前言:整理了一份linux常用命令手册,与大家分享.这是一些比较常用的命令. 我已经整理成一份PDF带书签的手册,可以到CSDN免费下载. 下载地址:http://download.csdn.net/ ...

  3. 【转】10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  4. ps命令注意事项

    1.ps命令由于历史原因,版本比较多,主要分为三种版本 1)Unix风格的版本,命令参数加单横线.比如ps -ef 2)BSD风格的版本,命令参数前不加任何横线.比如ps aux 3)GNU风格的版本 ...

  5. 10个常用的ps命令总结,参数

    Linux系统中10个常用的ps命令总结 PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系统在某一事件的进程状态.如果你想不断更新查看的这个状态,可以使用 ...

  6. Solaris/Linux 命令手册

    无意翻到之前收藏的一个文档,共享一下. Solaris/Linux 命令手册 1. 系统 # passwd:修改口令 # exit:退出系统 2. 文件 # cp:复制文件或目录,参数:-a递归目录, ...

  7. Linux系统中10个常用的ps命令总结

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系统在 ...

  8. OS第1次实验报告:熟悉使用Linux命令和剖析ps命令

    零.个人信息 姓名:陈韵 学号:201821121053 班级:计算1812 一.实验目的 熟悉Linux命令行操作 二.实验内容 使用man查询命令使用手册 基本命令使用 三.实验报告 1. 实验环 ...

  9. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

随机推荐

  1. LeetCode之“链表”:Remove Nth Node From End of List

    题目链接 题目要求: Given a linked list, remove the nth node from the end of list and return its head. For ex ...

  2. android4.2添加重启菜单项

    本文主要是针对android4.2关机菜单添加重启功能 A.关机提示 android4.2/frameworks/base/policy/src/com/android/internal/policy ...

  3. 色彩转换——RGB & HSL

    RGB to HSL The R,G,B values are divided by 255 to change the range from 0..255 to 0..1: R' = R/255 G ...

  4. iOS中判断照片和相机权限

    1.照片权限判断 在iOS6之后,app中使用照片(即自带相册)需要用户权限验证,所以我们可以做一个权限判断给出友好的提示或者界面效果. 相册判断需要导入 <AssetsLibrary/Asse ...

  5. DB Query Analyzer 6.01 is released, SQL Execute Schedule function can be used

       DB Query Analyzer is presented by Master Gen feng, Ma from Chinese Mainland. It has English versi ...

  6. solr研磨之facet

    作者:战斗民族就是干 转载请注明地址:http://www.cnblogs.com/prayers/p/8822417.html Facet 开门见山,facet解决的就是筛选,我是把它理解为一种聚合 ...

  7. jsp面试题

    1, JSP中有那些内置对象,以及作用? 共有9种基本内置组件: request 用户端请求,此请求会包含来自GET/POST请求的参数: response 网页传回用户端的回应: pageConte ...

  8. Python-Web框架之 - 利用SQLALchemy创建与数据库MySQL的连接, 详解用Flask时会遇到的一些大坑 !

    经过这个小项目算是对Django与Flask这两个web框架有了新的认识 , Django本身的轮子非常齐全 , 套路也很固定 , 新手在接触Django框架时 , 不会陷入到处找轮子的大坑 ; 那么 ...

  9. Python--简单接口测试实例(一)

    适用人员:初学python的测试人员,若对抓包不太清楚的可先学习抓包的知识 接口测试流程:发送请求-->返回响应-->结果判定-->生成报告 案例:下面以[今目标]新建客户为例来进行 ...

  10. gevent程序员指南

    gevent程序员指南 由Gevent社区编写 gevent是一个基于libev的并发库.它为各种并发和网络相关的任务提供了整洁的API.   介绍 本指南假定读者有中级Python水平,但不要求有其 ...