ps命令

  用于列出执行ps命令的那个时刻的进程快照,就像用手机给进程照了一张照片。如果想要动态地显示进程的信息,就需要使用top命令,该命令类似于把手机切换成录像模式。
因为ps命令的功能实在是太多了,26个字母已经满足不了,因此在ps命令的参数中有类似于-a与a这2种写法,这2种写法的功能是不一样的。
参数的格式具体如下。
  UNIX格式:一个“-”开头。
  BSD格式:没有“-”开头。
  GNU长格式:两个“-”开头。

ps命令的参数选项及说明

-a  显示所有终端下执行的进程
a  显示与终端相关的所有进程,包含每个进程的完整路径
x  显示与终端无关的所有进程
u  显示进程的用户信息
-u  显示指定用户相关的进程信息
-e  显示所有进程
-f   额外显示UID、PPID、C与STIME栏位
f   显示进程树
-H  显示进程树
-l   以详细的格式来显示进程的状况
-o  自定义输出指定的字段,以退号分隔
-sot key key表示为指定字段排序,默认升序,+key升序,key降序

ps命令不接任何参数

[root@doit ~]# ps
PID TTY TIME CMD
9940 pts/0 00:00:00 bash
25146 pts/0 00:00:00 ps其输出结果中的各项说明如下。
PID是进程的标识号。
TTY是进程所属的终端控制台。
TIME列是进程所使用的总的CPU时间。
CMD列是正在执行的命令行。

ps命令常用操作组合(命令1)

[root@doit ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Apr22 ? 00:03:35 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 Apr22 ? 00:00:00 [kthreadd]
root 3 2 0 Apr22 ? 00:00:00 [rcu_gp]
root 4 2 0 Apr22 ? 00:00:00 [rcu_par_gp]
root 6 2 0 Apr22 ? 00:00:00 [kworker/0:0H-kb]
root 8 2 0 Apr22 ? 00:00:00 [mm_percpu_wq]
root 9 2 0 Apr22 ? 00:00:00 [ksoftirqd/0]
root 10 2 0 Apr22 ? 00:01:28 [rcu_sched]
root 11 2 0 Apr22 ? 00:00:03 [migration/0]
root 13 2 0 Apr22 ? 00:00:00 [cpuhp/0]
root 14 2 0 Apr22 ? 00:00:00 [cpuhp/1]
root 15 2 0 Apr22 ? 00:00:02 [migration/1]
root 16 2 0 Apr22 ? 00:00:05 [ksoftirqd/1]输出信息中各列的说明如下。
UID:进程被该UID所拥有。
PID:进程的标识号。
PPID:进程的父进程的标识号。
C:CPU使用的资源百分比。
STIME:进程开始的时间。
TTY:该进程是在哪个终端机上面运作,若与终端机无关,则显示“?”,另外,ttyl-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程。
TIME:进程所使用的总的CPU时间。
CMD:正在执行的命令行。
下面是ps与grep的组合用法,用于查找特定进程,比如查找sshd进程等。
[root@doit ~]# ps -ef|grep ssh
root 3503 1 0 Apr22 ? 00:00:00 /usr/sbin/sshd -D
root 9935 3503 0 17:04 ? 00:00:00 sshd: root@pts/0
root 25345 9940 0 22:18 pts/0 00:00:00 grep --color=auto ssh

ps命令常用操作组合(命令2)

这里使用BSD语法格式显示每个进程信息。
[root@doit ~]# ps aux # BSD格式参数,使用a选项和x选项显示所有进程,使用u选项显示进程的用户信息。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 191024 5320 ? Ss Apr22 3:35 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S Apr22 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< Apr22 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< Apr22 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< Apr22 0:00 [kworker/0:0H-kb]
root 8 0.0 0.0 0 0 ? I< Apr22 0:00 [mm_percpu_wq]
root 9 0.0 0.0 0 0 ? S Apr22 0:00 [ksoftirqd/0]
root 10 0.0 0.0 0 0 ? I Apr22 1:28 [rcu_sched]
root 11 0.0 0.0 0 0 ? S Apr22 0:03 [migration/0]
root 13 0.0 0.0 0 0 ? S Apr22 0:00 [cpuhp/0]
root 14 0.0 0.0 0 0 ? S Apr22 0:00 [cpuhp/1]
root 15 0.0 0.0 0 0 ? S Apr22 0:02 [migration/1]
root 16 0.0 0.0 0 0 ? S Apr22 0:05 [ksoftirqd/1]
root 18 0.0 0.0 0 0 ? I< Apr22 0:00 [kworker/1:0H-kb]
root 19 0.0 0.0 0 0 ? S Apr22 0:00 [kdevtmpfs]
root 20 0.0 0.0 0 0 ? I< Apr22 0:00 [netns]
root 21 0.0 0.0 0 0 ? S Apr22 0:00 [kauditd]
root 22 0.0 0.0 0 0 ? S Apr22 0:00 [khungtaskd]
root 23 0.0 0.0 0 0 ? S Apr22 0:00 [oom_reaper]输出信息中各列的说明如下。
USER:该进程属于的用户。
PID:该进程的进程号。
%CPU:该进程使用掉的CPU资源百分比。
%MEM:该进程所占用的物理内存百分比。
VSZ:该进程使用掉的虚拟内存量(单位为Kbytes)。
RSS:该进程占用的固定的内存量(单位为Kbytes)。
TTY:该进程是在哪个终端机上面运作的,若与终端机无关,则显示“?”,另外,ttyl-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的
进程。
STAT:该进程目前的状态,主要的状态包括如下几种。R:正在运行,或者是可以运行。S:正在中断睡眠中,可以由某些信号(signal)唤醒。
D:不可中断睡眠。
T:正在侦测或者是停止了。Z:已经终止,但是其父进程无法正常终止它,从而变成zombie(僵尸)进程的状态。
+:前台进程。
l:多线程进程。
N:低优先级进程。
<:高优先级进程。
s:进程领导者。
L:已将页面锁定到内存中。
START:该进程被触发启动的时间。
TIME:该进程实际使用CPU运作的时间。
COMMAND:该进程的实际命令。

显示指定用户的相关进程信息。

[root@cs6 ~]# ps -u root
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 stopper/0
6 ? 00:00:00 watchdog/0
7 ? 00:00:00 migration/1
8 ? 00:00:00 stopper/1
9 ? 00:00:00 ksoftirqd/1
10 ? 00:00:00 watchdog/1[root@cs6 ~]# ps -l #<==UNIX格式参数,使用参数-l以详细的格式显示进程的状况。
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1797 1793 0 80 0 - 27099 do_wai pts/1 00:00:00 bash
4 R 0 1934 1797 2 80 0 - 27034 - pts/1 00:00:00 ps输出信息中各列的说明如下。
F:代表这个进程的标志(flag),4代表使用者为super user。
S:代表这个进程的状态(STAT),前面已经讲解过。
UID:进程被该UID所拥有。
PID:进程的标识号。
PPID:父进程的ID。
C:CPU使用的资源百分比。
PRI:Priority(优先执行序)的缩写。
NI:Nice值。
ADDR:指出该进程在内存的哪个部分。如果是个running的进程,则一般是“-”。
SZ:使用掉的内存大小。
WCHAN:目前这个进程是否正在运作当中,若为“-”则表示正在运作。
TTY:该进程是在哪个终端机上面运作的,若与终端机无关,则显示“?”,另外,ttyl-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程。
TIME:该进程实际使用CPU运作的时间。
CMD:该进程的实际命令。

显示进程树

[root@cs6 ~]# ps -eH
PID TTY TIME CMD
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 stopper/0[root@cs6 ~]# ps axf
PID TTY STAT TIME COMMAND
2 ? S 0:00 [kthreadd]
3 ? S 0:00 _ [migration/0]
4 ? S 0:00 _ [ksoftirqd/0]
519 ? S<s 0:00 /sbin/udevd -d
1481 ? S< 0:00 _ /sbin/udevd -d
1482 ? S< 0:00 _ /sbin/udevd -d
1268 ? S<sl 0:00 auditd
1291 ? Sl 0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
1357 ? Ss 0:00 /usr/sbin/sshd
1793 ? Ss 0:00 _ sshd: root@pts/1
1797 pts/1 Ss 0:00 | _ -bash
1938 pts/1 R+ 0:00 | _ ps axf
1826 ? Ss 0:00 _ sshd: root@pts/0
1830 pts/0 Ss+ 0:00 _ -bash
1436 ? Ss 0:00 /usr/libexec/postfix/master
1455 ? S 0:00 _ qmgr -l -t fifo -u
1880 ? S 0:00 _ pickup -l -t fifo -u
1448 ? Ss 0:01 crond

输出指定的字段。

(1)AIX格式:ps -eo "%p %y %x %c”
语法说明:-e是显示所有进程,-o表示可以自定义输出指定的字段,以逗号分隔,其支持的字段见下面的代码。

(2)标准格式:ps-eo pid,user,args--sort pid

其支持的字段比较多,请大家查询man ps并搜索 STANDARD FORMAT SPECIFIERS来了解。

[root@cs6 ~]# ps -o pid,ppid,pgrp,session,tpgid,comm
PID PPID PGRP SESS TPGID COMMAND
1797 1793 1797 1797 1949 bash
1949 1797 1949 1797 1949 ps

查看进程并按vsz列从大到小排列,--sort vsz或--sort +vs2表示从小到大升序排列,--Sort
-vsz表示从大到小降序排列。

[root@cs6 ~]# ps -eo "%C : %p : %z : %a" --sort -vsz
%CPU : PID : VSZ : COMMAND
0.0 : 1291 : 255424 : /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
0.0 : 1448 : 116880 : crond
0.0 : 1797 : 108396 : -bash
0.0 : 1830 : 108316 : -bash
0.0 : 1951 : 108240 : ps -eo %C : %p : %z : %a --sort -vsz
0.0 : 1793 : 102132 : sshd: root@pts/1
0.0 : 1826 : 102132 : sshd: root@pts/0
0.0 : 1455 : 81260 : qmgr -l -t fifo -u
0.0 : 1880 : 81092 : pickup -l -t fifo -u
0.0 : 1436 : 81012 : /usr/libexec/postfix/master
0.0 : 1357 : 66288 : /usr/sbin/sshd
0.0 : 1268 : 29764 : auditd
0.0 : 1 : 19232 : /sbin/init
0.0 : 1481 : 12376 : /sbin/udevd -d
0.0 : 1482 : 12376 : /sbin/udevd -d
0.0 : 519 : 11300 : /sbin/udevd -d
0.0 : 1463 : 4060 : /sbin/mingetty /dev/tty1
0.0 : 1465 : 4060 : /sbin/mingetty /dev/tty2
0.0 : 1467 : 4060 : /sbin/mingetty /dev/tty3
0.0 : 1469 : 4060 : /sbin/mingetty /dev/tty4
0.0 : 1471 : 4060 : /sbin/mingetty /dev/tty5
0.0 : 1473 : 4060 : /sbin/mingetty /dev/tty6

查看某个进程在哪个CPU上运行:

[root@cs6 ~]# ps -eo pid,args,psr
PID COMMAND PSR
1 /sbin/init 0
2 [kthreadd] 0
3 [migration/0] 0
4 [ksoftirqd/0] 0
5 [stopper/0] 0
6 [watchdog/0] 0
7 [migration/1] 1
8 [stopper/1] 1
9 [ksoftirqd/1] 1
10 [watchdog/1] 1
11 [events/0] 0
12 [events/1] 1
13 [events/0] 0
14 [events/1] 1
15 [events_long/0] 0
16 [events_long/1] 1

9.1 ps:查看进程相关推荐

  1. linux查看进程运行日志文件,【Linux】常用指令、ps查看进程、kill杀进程、启动停止tomcat命令、查看日志、查看端口、find查找文件...

    1.说出 10 个 linux 常用的指令 1) ls 查看目录中的文件 2)cd /home 进入 '/ home' 目录:cd .. 返回上一级目录:cd ../.. 返回上两级目录 3)mkdi ...

  2. Linux ps -aux 和 ps -ef 查看进程信息说明+ps查看进程中的线程

    Linux ps -aux 和 ps -ef 查看进程信息说明+ps查看进程中的线程 1. ps -aux | grep xxx 1.1 ps -aux 输出格式: 1.2. 例子 1.3 注意:有时 ...

  3. Linux常见面试题-ps查看进程命令

    目录 ps查看进程: 基础操作 PS命令语法: 1.ps 命令用于查看当前正在运行的进程. 2.ps -aux | grep java 3. kill 命令用于终止进程 ps查看进程: 要对进程进行监 ...

  4. linux下的ps 查看进程命令

    ps命令为 查看系统上运行的进程的 最基本的命令之一 一.语法 ps命令带有2种不一样的风格,分别是BSD和UNIX.这两个语法也可以结合起来应用,但是一般用的都是UNIX风格的. BSD和UNIX的 ...

  5. ubuntu下使用ps查看进程信息

    一.ps常用命令组合 ps 查看当前终端下运行的所有进程信息 ps aux 查看linux下所有的进程信息 ps -aux 查看linux下用户名为x所拥有的进程信息,如ps -auname表示查看l ...

  6. Linux常用指令---ps(查看进程)

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

  7. Android Adb命令(4) - ps 查看进程信息

    1. 查看所有进程信息: adb shell ps -A 则得到: USER PID PPID VSZ RSS WCHAN ADDR S NAME root 1 0 12510356 5276 ep_ ...

  8. linux ps查看进程,Linux新手入门:PS命令查看正在运行的进程

    Linux作为开源系统,里面有着大量命令需要了解和使用,同样的命令在不同系统中的使用方法各不相同,例如本次要介绍的PS命令,那么什么是PS命令?要如何使用PS命令?下面小编就跟大家详细讲解Linux ...

  9. linux ps 查看进程命令

    linux 中ps命令是Process Status的缩写.ps命令可以列出系统中当前运行的进程,所列出的进程是执行ps命令这个时刻正在运行的进程. 如果要动态显示进程信息,需要使用top命令. 通过 ...

  10. linux ps查看进程命令

    -u 哪个用户使用了该进程 TTY 就是终端.linux系统中有6个是文字终端,第7个是图形界面终端. x 查看没有终端的进程 ? 表示没有终端 使用管道 由于grep本身也要使用到bash 所以在最 ...

最新文章

  1. 2020最新Java面试题(java,JavaWeb,数据库,框架),常见面试题及答案汇总
  2. java导出pdf字体宋体不加粗_docx4j word转pdf 中文宋体(中文正文)类型转换乱码...
  3. tensorflow linux多卡训练_用Windows电脑训练深度学习模型?超详细配置教程来了
  4. 【阿里妈妈营销科学系列】开篇:C.M.O——“人群.渠道.机会”营销分析导论
  5. java 程序是由什么组成的 java_从零开始的JAVA -2. java程序的构成及命名规则
  6. 下拉选择框 其他_列表框 vs 下拉列表,哪个更好?
  7. java第七章jdbc课后简答题_javaEE简答题答案
  8. 浏览器与JavaScript(一)
  9. simulink入门1-sim与m文件的结合
  10. cocos2d-x中实现不规则按钮的点击效果
  11. Spring知识点一站到底(转载)
  12. jenkins教程_4 Docker+SpringCloud
  13. C#中使用MongoDb
  14. nginx 日志正则分割
  15. html5 jquery音乐播放器,play()和pause()不起作用
  16. C# winform 选择文件保存路径
  17. Delete出错分析总结(个人总结很到位) 0x0000007ff64426f87e(ucrtbased.dll)处(处于dataa.exe中)引发的异常:
  18. ZwSe2团队共识V0.1
  19. GVM-11 centos8 源码安装指南(OpenVas)
  20. 阿里云SMS短信服务的使用

热门文章

  1. inception v4 官方实现_经典神经网络 | 从Inception v1到Inception v4全解析
  2. 利用usb远程控制linux,Linux编程控制硬件(5) ---- 操作USB手柄
  3. linux网络共享文件夹,[Linux] - Windows与Linux网络共享文件夹挂载方法
  4. 您的浏览器由所属组织管理_速度收藏!全省性社会组织年检网上填报指引来了!...
  5. crashdumpandroid_Android 中Crash时如何获取异常信息详解及实例
  6. python public_【速记速学】Python类的定义,属性,方法,访问性
  7. echarts 仪表盘 文字位置_企业数据仪表盘设计,该怎样设计自己的BI产品?
  8. python文本解析_Python之文本文件解析
  9. 军转干部计算机测试题,2015福建军转干考试计算机基础知识:计算机网络
  10. java reactor框架_Java反应式框架Reactor中的Mono和Flux