ps命令是什么?

ps命令能够给出当前系统中进程的快照。它能捕获系统在某一时间的进程状态。如果想要不断更新查看这个状态,可以配合watch命令或使用top命令

ps命令支持三种语法格式:

  • Unix风格的参数,前面加单破折线
  • BSD风格的参数,前面不加破折线
  • GNU风格的长参数,前面加双破折线

常用的ps命令参数

参数 描述
-a 显示除控制进程(session leader)和无终端进程外的所有进程
-A 显示所有进程
-e 此参数的效果和指定-A参数相同
-f 显示完整格式的输出
-u<用户识别码>  列出属于该用户的进程的状况,也可使用用户名称来指定
-L 显示进程中的线程
-l 显示长列表
a 显示跟任意终端关联的所有进程
采用基于用户的格式显示
显示所有的进程,甚至包括未分配任何终端的进程
o format 仅显示由format指定的列
k sort 指定用以将输出排序的列
--format format 仅显示由format指定的列
--forest 用层级结构显示出进程和父进程之间的关系
--sort order 指定将输出按哪列排序
-C cmdlist 显示包含在cmdlist列表中的进程
-g grplist 显示会话或组ID在grplist列表中的进程
-p pidlist 显示PID在pidlist列表中的进程
-s sesslist 显示会话ID在sesslist列表中的进程
-t ttylist 显示终端ID在ttylist列表中的进程
-u userlist 显示有效用户ID在userlist列表中的进程

常用命令

$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11:29 ? 00:00:01 init [5]
root 2 0 0 11:29 ? 00:00:00 [kthreadd]
root 3 2 0 11:29 ? 00:00:00 [migration/0]
root 4 2 0 11:29 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 11:29 ? 00:00:00 [watchdog/0]
root 6 2 0 11:29 ? 00:00:00 [events/0]
root 7 2 0 11:29 ? 00:00:00 [khelper]
root 47 2 0 11:29 ? 00:00:00 [kblockd/0]
root 48 2 0 11:29 ? 00:00:00 [kacpid]
68 2349 1 0 11:30 ? 00:00:00 hald
root 3078 1981 0 12:00 ? 00:00:00 sshd: rich [priv]
rich 3080 3078 0 12:00 ? 00:00:00 sshd: rich@pts/0
rich 3081 3080 0 12:00 pts/0 00:00:00 -bash
rich 4445 3081 3 13:48 pts/0 00:00:00 ps -ef

上例中,我们略去了输出中的不少行,以节约空间。但如你所见, Linux系统上运行着很多
进程。这个例子用了两个参数: -e参数指定显示所有运行在系统上的进程; -f参数则扩展了输
出,这些扩展的列包含了有用的信息。
 UID:启动这些进程的用户。
 PID:进程的进程ID。
 PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
 C:进程生命周期中的CPU利用率。
 STIME:进程启动时的系统时间。
 TTY:进程启动时的终端设备。
 TIME:运行进程需要的累计CPU时间。
 CMD:启动的程序名称。
上例中输出了合理数量的信息,这也正是大多数系统管理员希望看到的。如果想要获得更多
的信息,可采用-l参数,它会产生一个长格式输出。

$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 500 3081 3080 0 80 0 - 1173 wait pts/0 00:00:00 bash
0 R 500 4463 3081 1 80 0 - 1116 - pts/0 00:00:00 ps

注意使用了-l参数之后多出的那些列。
 F:内核分配给进程的系统标记。
 S:进程的状态(O代表正在运行; S代表在休眠; R代表可运行,正等待运行; Z代表僵
化,进程已结束但父进程已不存在; T代表停止)。
 PRI:进程的优先级(越大的数字代表越低的优先级)。
 NI:谦让度值用来参与决定优先级。
 ADDR:进程的内存地址。
 SZ:假如进程被换出,所需交换空间的大致大小。
 WCHAN:进程休眠的内核函数的地址

在使用BSD参数时, ps命令会自动改变输出以模仿BSD格式。下例是使用l参数的输出:

$ ps l
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 500 3081 3080 20 0 4692 1432 wait Ss pts/0 0:00 -bash
0 500 5104 3081 20 0 4468 844 - R+ pts/0 0:00 ps l

注意,其中大部分的输出列跟使用Unix风格参数时的输出是一样的,只有一小部分不同。
 VSZ:进程在内存中的大小,以千字节(KB)为单位。
 RSS:进程在未换出时占用的物理内存。
 STAT:代表当前进程状态的双字符状态码。
许多系统管理员都喜欢BSD风格的l参数。它能输出更详细的进程状态码(STAT列)。双字
符状态码能比Unix风格输出的单字符状态码更清楚地表示进程的当前状态。
第一个字符采用了和Unix风格S列相同的值,表明进程是在休眠、运行还是等待。第二个参
数进一步说明进程的状态。
 <:该进程运行在高优先级上。
 N:该进程运行在低优先级上。
 L:该进程有页面锁定在内存中。
 s:该进程是控制进程。
 l:该进程是多线程的。
 +:该进程运行在前台。
从前面的例子可以看出, bash命令处于休眠状态,但同时它也是一个控制进程(在我的会
话中,它是主要进程),而ps命令则运行在系统的前台。

按照指定用户bigdata显示:

[bigdata@slave ~]$ ps -fu bigdata
UID        PID  PPID  C STIME TTY          TIME CMD
bigdata   2688  2684  0 Nov19 ?        00:00:03 sshd: bigdata@pts/0
bigdata   2689  2688  0 Nov19 pts/0    00:00:00 -bash
bigdata  14548     1  0 Nov21 pts/0    00:03:34 /usr/java/jdk1.8.0_111/bin/java -server -Xms2048m -Xmx3072m -Xmn1024m -XX:SurvivorRatio=2 -XX:PermSize=96m -XX:MaxPermSize=2
bigdata  19234  2689  1 11:09 pts/0    00:00:00 ps -fu bigdata

按照指定格式显示,显示进程id,用户名,cpu,内存和命令

[bigdata@slave ~]$ ps axo pid,uname,pcpu,pmem,commPID USER     %CPU %MEM COMMAND1 root      0.0  0.1 init2 root      0.0  0.0 kthreadd3 root      0.0  0.0 migration/04 root      0.0  0.0 ksoftirqd/05 root      0.0  0.0 migration/06 root      0.0  0.0 watchdog/07 root      0.0  0.0 migration/18 root      0.0  0.0 migration/19 root      0.0  0.0 ksoftirqd/110 root      0.0  0.0 watchdog/1

查找指定进程

[bigdata@slave ~]$ ps -ef|grep httpd
bigdata  19282  2689  0 11:16 pts/0    00:00:00 grep httpd

查看某个进程的线程信息

[bigdata@slave ~]$ ps -LC mysqldPID   LWP TTY          TIME CMD2099  2099 ?        00:00:00 mysqld2099  2103 ?        00:00:00 mysqld2099  2104 ?        00:00:12 mysqld2099  2105 ?        00:00:11 mysqld2099  2106 ?        00:00:12 mysqld2099  2107 ?        00:00:11 mysqld2099  2108 ?        00:00:11 mysqld2099  2109 ?        00:00:12 mysqld2099  2110 ?        00:00:13 mysqld2099  2111 ?        00:00:11 mysqld2099  2112 ?        00:00:11 mysqld2099  2113 ?        00:00:11 mysqld2099  2119 ?        00:00:23 mysqld2099  2120 ?        00:00:19 mysqld2099  2121 ?        00:00:02 mysqld2099  2122 ?        00:00:02 mysqld2099  2123 ?        00:00:00 mysqld2099  2124 ?        00:00:00 mysqld2099  2132 ?        00:00:00 mysqld

按照CPU,内存进行排序,-表示逆序,+表示正序

[bigdata@slave ~]$  ps aux --sort=-pcpu,+pmem
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
bigdata  19338  1.0  0.1 110348  1140 pts/0    R+   11:28   0:00 ps aux --sort=-pcpu,+pmem
bigdata  14548  0.3 53.9 5700836 546204 pts/0  Sl   Nov21   3:37 /usr/java/jdk1.8.0_111/bin/java -server -Xms2048m -Xmx3072m -Xmn1024m -XX:SurvivorRatio=2 -XX:PermSize=96m
root        11  0.1  0.0      0     0 ?        S    Nov19   4:37 [events/0]
root      1301  0.1  0.2 189456  2160 ?        Sl   Nov19   4:24 /usr/sbin/vmtoolsd
root         1  0.0  0.1  19364  1104 ?        Ss   Nov19   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Nov19   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Nov19   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Nov19   0:08 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Nov19   0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        S    Nov19   0:01 [watchdog/0]
root         7  0.0  0.0      0     0 ?        S    Nov19   0:00 [migration/1]

用树的风格显示进程的层次关系

ps -f --forest -C nginx
UID        PID  PPID  C STIME TTY          TIME CMD
root     32633     1  0 Jun22 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
root     32635 32633  0 Jun22 ?        00:00:19  \_ nginx: worker process   

linux中的ps命令常用参数-个人相关推荐

  1. Linux中的ps命令详解

    PS命令:可以查看进程瞬间信息 这里展示命令所有参数的含义 命令 含义 ps a 显示所有进程(TTY不为?的) ps -a 显示同一终端下所有程序 ps -A 显示所有进程 ps -c 显示进程的实 ...

  2. linux 7 postconf,postconf 命令常用参数

    团队开发-极速蜗牛-NABC模型 特点:益智,操作简单. N(need):手机小游戏,可以让大家打发无聊的时间,比如:排队打饭,课间休息,等公交等地铁,拿出手机玩玩小游戏. A(approach):基 ...

  3. Linux下使用ps命令查看进程状态【ps常用命令】

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

  4. Linux 下的ps命令

    %CPU 进程的cpu占用率 %MEM 进程的内存占用率 VSZ 进程所使用的虚存的大小 RSS 进程使用的驻留集大小或者是实际内存的大小 TTY 与进程关联的终端(tty) STAT 检查的状态:进 ...

  5. linux命令kill_什么是Linux中的kill命令?

    linux命令kill Need to kill a running process? The kill command in Linux is built for just that. No ope ...

  6. linux xargs命令_如何在Linux中使用xargs命令?

    linux xargs命令 The xargs command allows us to pass the output of one command as the input for another ...

  7. linux中pwd和oldpwd区别,linux中的pwd命令

    Linux系统中如何查看当前工作目录路径呢?使用pwd命令就可以做到.下面由学习啦小编为大家整理了linux中的pwd命令的相关知识,希望对大家有帮助! linux中的pwd命令详解 Linux中用 ...

  8. linux中less命令详解,linux中的less命令的详细解释

    linxu下的less命令可以查看文本文件.下面由学习啦小编为大家整理了linux的less命令的详细解释的相关知识,希望对大家有帮助! 一.linux中的less命令的详细解释 less命令语法 l ...

  9. linux中vim内容定位,Linux运维行走江湖必备之:vim命令常用参数

    原标题:Linux运维行走江湖必备之:vim命令常用参数 vim是Linux运维日常工作中最常用的命令之一,vim命令的参数有很多,我们选用一些常用的命令参数,足以对付日常的文本编辑工作,如果日后有需 ...

最新文章

  1. CPU卡及其应用领域简介
  2. python访问数据库oracle_python连接oracle数据库
  3. 【C++】33.二级指针 **p
  4. 引入extThree20JSON之后,怎么在工程中使用
  5. ubuntu安装python库_Ubuntu18.04一次性升级Python所有库的方法步骤
  6. ASP.NET Core微服务(六)——【redis操作】
  7. SQL Server 2005 智能感知插件 - SQL Prompt 3.8.0.224
  8. python列表有固定大小吗,使用python自己写了一个固定长度的list
  9. js 高级 prototype
  10. 深度学习————如何在Python中求解函数的解析表达式
  11. ES6: 参数默认值及中间域
  12. 程序员,这个双十一,对自己好一点…
  13. 软件项目管理和实施方案
  14. 屏幕距离和坐便转换工具_简单好用的视频分辨率转换器推荐
  15. 淘宝/天猫/京东/拼多多/苏宁易购/小米商城/华为商城/抖音快手直播/茅台抢购助手,宝惠抢购助手/OK助手源码
  16. Python 3 《Class》入门练习
  17. 学生成绩录入系统与查询
  18. 计算机英语词汇大全pdf,计算机英语(编程词汇大全).pdf
  19. 【C语言】C语言运算符
  20. 口水了,各大互联网大厂年终奖一览表!

热门文章

  1. 汽车冬季养护小知识,Get起来!
  2. html解析json天气预报数据,国家气象局天气预报JSON数据接口详解
  3. RHCS+Conga+iSCSI+CLVM+GFS实现Web服务的共享存储HA集群
  4. EF6+Oracle 12c+DBFirst+VS2015 :your project references the lastest version of EF 问题解决
  5. Axure 教程 | 使用键盘进行移动对象
  6. win10 mmdetection3d 训练KITTI
  7. 视频处理:帧差法、光流法和背景减除法的视频目标识别
  8. 线性失真与非线性失真
  9. C语言编程用递归法求
  10. 计算机与scp通讯发生故障,在两台远程计算机之间使用scp命令时权限被拒绝错误...