ps是收集进程信息的重要工具。它提供的信息包括:拥有进程的用户、进程的起始时间、进程所对应的命令行路径、进程ID(PID)、进程所属的终端(TTY)、进程使用的内存、进程占用的CPU等。例如:

$ ps
PID TTY TIME CMD
pts/ :: bash
pts/ :: ps

ps命令通常结合一系列参数使用。如果不使用任何参数,ps将显示运行在当前终端(TTY)中的进程。第一列显示进程ID(PID),第二列是TTY(终端),第三列是进程启动后过去的时间,最后一列是CMD(进程所对应的命令)。

上面的ps命令没有什么用处,因为它没有提供当前终端外的任何进程信息。要获取运行在系统中的没一个进程的信息,使用选项-e(every)。选项-ax(all)也可以生成同样的输出。运行ps -ef:

$ ps -ef | head
UID PID PPID C STIME TTY TIME CMD
root : ? :: /sbin/init
root : ? :: [kthreadd]
root : ? :: [ksoftirqd/]
root : ? :: [migration/]
root : ? :: [watchdog/]
root : ? :: [cpuset]
root : ? :: [khelper]
root : ? :: [kdevtmpfs]
root : ? :: [netns]

输出列表很长,我们使用head进行了过滤,所以只列出了前10项。

ps命令支持显示除进程名及进程ID之外的多种信息。ps默认在不同的列中显示这些信息。这些信息中的大多数对我们来说没什么用处。我们可以用-o来指定想要显示的列,与进程相关的参数可以通过与此参数对应的命令选项指定:

$ ps [OTHER OPTIONS] -o parameter1,parameter2,parameter3...

-o的参数以逗号操作符(,)作为定界符。值得注意的是逗号操作符与它分隔的参数之间是没有空格的。在大多数情况下,选项-o都是和选项-e(every)结合使用的(-oe),因为它需要列出运行在系统中的每一个进程。但是如果-o需要使用某些过滤器,例如列出特定用户拥有的进程,那么就不再使用-e。-e和过滤器结合使用将没有任何实际效果,依旧会显示所有的进程。

示例如下。其中comm表示COMMAND,pcpu表示CPU占用率:

$ ps -eo comm,pcpu | head
COMMAND %CPU
init 0.0
kthreadd 0.0
ksoftirqd/ 0.0
migration/ 0.0
watchdog/ 0.0
cpuset 0.0
khelper 0.0
kdevtmpfs 0.0
netns 0.0

可以用--sort将ps命令的输出根据特定的列进行排序。

可以在参数前加上+(升序)或-(降序)来指定排序方式:

$ ps [OPTIONS] --sort -parameter1,+parameter2,parameter3...

例如,要列出占用CPU最多的10个进程,可以使用:

$ ps -eo comm,pcpu --sort -pcpu | head
COMMAND %CPU
chromium-browse 6.4
chromium-browse 4.1
Xorg 3.8
compiz 2.1
aptd 2.1
pulseaudio 0.7
ibus-daemon 0.5
kworker/: 0.3
top 0.3

我们还可以用grep从ps的输出中提取与给定进程名或其他参数相关的条目。要找出与bash进程相关的条目,可以使用:

$ ps -eo comm,pid,pcpu,pmem | grep bash
bash 0.0 0.1
bash 0.0 0.2

假如一个命令有多个实例正在运行,我们可能需要识别这些进程的进程ID。这个信息可以使用ps或pgrep命令得到。按照下面的方式使用ps:

$ ps -C COMMAND_NAME
或者
$ ps -C COMMAND_NAME -o pid=
$ ps -C bash -o pid=

pgrep可以获得一个特定命令的进程的ID列表:

$ pgrep bash

我们还可以用选项-L在ps输出中显示线程的相关信息。这会显示出两列:NLWP和NLP。NLWP是进程的线程数量,NLP是ps输出中的每个条目的线程ID:

~$ ps -efL --sort -nlwp | head
UID PID PPID LWP C NLWP STIME TTY TIME CMD
root Jan05 ? :: /usr/sbin/console-kit-daemon --no-daemon
root Jan05 ? :: /usr/sbin/console-kit-daemon --no-daemon
root Jan05 ? :: /usr/sbin/console-kit-daemon --no-daemon
root Jan05 ? :: /usr/sbin/console-kit-daemon --no-daemon
root Jan05 ? :: /usr/sbin/console-kit-daemon --no-daemon
root Jan05 ? :: /usr/sbin/console-kit-daemon --no-daemon
root Jan05 ? :: /usr/sbin/console-kit-daemon --no-daemon
root Jan05 ? :: /usr/sbin/console-kit-daemon --no-daemon
root Jan05 ? :: /usr/sbin/console-kit-daemon --no-daemon

该命令列出了线程数最多的10个进程。

ps命令介绍的更多相关文章

  1. linux ps命令介绍

    来源<鸟哥的linux私房菜> ps:将某个时间点的程序运作情况撷取下来 [root@linux ~]# ps aux [root@linux ~]# ps -lA [root@linux ...

  2. 【Linux命令】ps命令

    ps命令介绍 用于报告当前系统的进程状态.可以搭配kill指令随时中断.删除不必要的程序. ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结 ...

  3. Linux学习历程——Centos 7 ps命令基础

    一.ps命令介绍 ps命令是Process Status的缩写,用于查看系统进程状态,ps命令输出值非常多,通常结合管道符使用. 二.实例 1.我们直接输入ps命令,不加任何参数. 可以看到默认输出4 ...

  4. Linux 查看进程之PS命令

    要对进程进行检测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程运行状态.Linux 系统中 我们可以使用 ps 命令查看进程. ps 命令介绍       ps(process stat ...

  5. 『学了就忘』Linux系统管理 — 82、Linux中进程的查看(ps命令)

    目录 1.ps命令介绍 2.ps aux命令示例 3.ps -le命令示例 4.pstree命令 1.ps命令介绍 ps命令是用来静态显示系统中进程的命令. 不过这个命令有些特殊,它部分命令的选项前不 ...

  6. 【Linux基础】ps命令详解

    PS命令介绍 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动 ...

  7. 监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

    第7周第2次课(5月8日) 课程内容: 10.6 监控io性能 10.7 free命令10.8 ps命令10.9 查看网络状态10.10 linux下抓包扩展tcp三次握手四次挥手 http://ww ...

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

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

  9. ps命令

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

随机推荐

  1. C#操作Word的辅助类(word2003) 修改完善版

    转自:http://blog.csdn.net/jiutao_tang/article/details/6567608 该类在他人编写的几个类基础上扩展完善而来,主要功能有: (1)插入文本 (2)插 ...

  2. xml与json 介绍

    一.JSON数据格式 1)概念:json是一种网络数据传输格式,有值/对象:{“A”:1,”B”:”2”…}词典:对象的序列:[,,,,,]数组两种数据类型 2)URLWithString 将字符串网 ...

  3. PhpStorm中字体大小的改变方法

    文件->设置->编辑器->编辑器->鼠标->用Ctrl+鼠标滚轮改变字体大小(缩放)(在前边的复选框里打钩,确定,就可以了)

  4. 使用Maven构建多模块项目

    [转] 使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层).dao(数据库访问层).service(业务 ...

  5. sharedPreference

    http://blog.csdn.net/yong199105140/article/details/8425247 SharedPreferences 分类: Android2012-12-24 1 ...

  6. [ActionScript 3.0] AS3.0 对象在矩形范围随机运动

    package com.views { import flash.display.Bitmap; import flash.display.MovieClip; import flash.displa ...

  7. java 进程启用远程查看

    用jconsole 1.启动脚本增加: JAVA_OPTS="-Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=192.1 ...

  8. 图像滤波:Gabor滤波

  9. ThinkPHP 3.2.3 Pager分页

    不是很喜欢TP的分页类,因为生成的分页url感觉有点不好理解,例如访问路径xxxx/home/show.html,在模板输出分页后,例如产生了页码,页码链接的路径会变成xxxx/home/show/p ...

  10. Windows窗口自动缩放机制

    通过自动缩放功能,能使在一个计算机上设计的界面在另一个具有不同分辨率或系统字体的计算机上能正常显示.这样窗体及其控件就能通过智能化调整大小以保障在本地电脑和用户电脑上保持一致. 自动缩放的必要性 如果 ...