来自:掘金,作者:RunFromHere

链接:https://juejin.im/post/5bf9213ce51d452237153c5c

1、ps是什么?

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,ps命令就是最基本进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到。

ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。

基本参数:

  • -A :所有的进程均显示出来,与 -e 具有同样的效用;
  • -a :显示现行终端机下的所有进程,包括其他用户的进程;
  • -u :以用户为主的进程状态 ;
  • x :通常与 a 这个参数一起使用,可列出较完整信息。

输出格式规划:

  • l :较长、较详细的将该PID 的的信息列出;
  • j :工作的格式 (jobs format)
  • -f :做一个更为完整的输出。

下面我们就来一个命令进行实践,看看不同的参数都有些什么效果。

2、不加参数执行ps命令会输出什么?

这是一个基本的 ps 使用,我们来看看控制台中执行这个命令并查看结果。

结果默认会显示4列信息:

  • PID: 运行着的命令(CMD)的进程编号
  • TTY: 命令所运行的位置(终端)
  • TIME: 运行着的该命令所占用的CPU处理时间
  • CMD: 该进程所运行的命令

这些信息在显示时未排序。

3、如何显示所有当前进程?

使用 -a 参数,-a 代表 all。同时加上x参数会显示没有控制终端的进程。

$ ps -ax# 这个命令的结果或许会很长。为了便于查看,可以结合less命令和管道来使用。$ ps -ax | less

4. 如何根据进程的用户进行信息过滤呢?

在需要查看特定用户进程的情况下,我们可以使用 -u 参数。比如我们要查看用户'pungki'的进程,可以通过下面的命令:

$ ps -u pungki

5、如何通过cpu和内存使用来过滤进程?

也许你希望把结果按照 CPU 或者内存用量来筛选,这样你就找到哪个进程占用了你的资源。要做到这一点,我们可以使用 aux 参数,来显示全面的信息:

$ ps -aux | less

当结果很长时,我们可以使用管道和less命令来筛选。

默认的结果集是未排好序的。可以通过 --sort命令来排序。

5.1 根据CPU使用率来升序排序

$ ps -aux --sort -pcpu | less

5.2 根据内存使用率来升序排序

$ ps -aux --sort -pmem | less

5.3 我们也可以将它们合并到一个命令,并通过管道显示前10个结果:

$ ps -aux --sort -pcpu,+pmem | head -n 10

6、如何通过进程名和PID进行过滤呢?

使用 -C 参数,后面跟你要找的进程的名字。比如想显示一个名为getty的进程的信息,就可以使用下面的命令:

$ ps -C getty

如果想要看到更多的细节,我们可以使用-f参数来查看格式化的信息列表:

$ ps -f -C getty

7、如何根据线程来过滤进程呢?

如果我们想知道特定进程的线程,可以使用 -L 参数,后面加上特定的PID。

$ ps -L 1213

8、如何树形的显示进程?

有时候我们希望以树形结构显示进程,可以使用 -axjf 参数。

$ ps -axjf

或者可以使用另一个命令。

$ pstree

9. 如何显示安全信息?

如果想要查看现在有谁登入了你的服务器。可以使用ps命令加上相关参数:

$ ps -eo pid,user,args
参数 -e 显示所有进程信息,-o 参数控制输出。Pid,User 和 Args参数显示PID,运行应用的用户和该应用。

能够与 -e 参数 一起使用的关键字是args, cmd, comm, command, fname, ucmd, ucomm, lstart, bsdstart 和 start

10. 如何格式化输出root用户(真实的或有效的UID)创建的进程?

系统管理员想要查看由root用户运行的进程和这个进程的其他相关信息时,可以通过下面的命令:

$ ps -U root -u root u

-U 参数按真实用户ID(RUID)筛选进程,它会从用户列表中选择真实用户名或 ID。真实用户即实际创建该进程的用户。

-u 参数用来筛选有效用户ID(EUID)。

最后的 u 参数用来决定以针对用户的格式输出,由User, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME 和 COMMAND这几列组成。

这里有上面的命令的输出结果:

11. 如何使用PS实时监控进程状态?

ps 命令会显示你系统当前的进程状态,但是这个结果是静态的。

当有一种情况,我们需要像上面第四点中提到的通过CPU和内存的使用率来筛选进程,并且我们希望结果能够每秒刷新一次。为此,我们可以将ps命令和watch命令结合起来

$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’

如果输出太长,我们也可以限制它,比如前20条,我们可以使用 head 命令来做到。

$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’

这里的动态查看并不像top或者htop命令一样。但是使用ps的好处是你能够定义显示的字段,你能够选择你想查看的字段。

举个例子,如果你只需要看名为'pungki'用户的信息,你可以使用下面的命令:

$ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’

12、最后

你也许每天都会使用ps命令来监控你的Linux系统。但是事实上,你可以通过ps命令的参数来生成各种你需要的报表。

ps命令的另一个优势是ps是各种 Linux系统都默认安装的,因此你只要用就行了。不要忘了通过 man ps来查看更多的参数。

根据用户查进程_Linux进程之如何查看进程详情?相关推荐

  1. linux下查看进程的线程数,linux查看进程的线程数

    top -H -p $PID  #查看对应进程的那个线程占用CPU过高 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行 ...

  2. linux批量杀进程_Linux下批量杀JAVA进程

    在工作中经常需要停止JAVA进程,停止时间也比较长,那么有时候因为一些情况,需要把 linux 下JAVA所有进程 kill 掉,又不能用killall 直接杀掉某一进程名称包含的所有运行中进程(我们 ...

  3. linux mysql 僵尸进程_linux shell中清理僵尸进程

    今天登录到服务器上时,系统打印有6 zombie processes存在,于是用kill -9去清理掉这些僵尸进程,命令执行完后没有错误,可是再次查找时,发现僵尸进程仍然存在,不知道怎么清理了,上网找 ...

  4. centos7杀掉进程_Centos常用命令,查看进程、杀死进程、启动进程等常用命令

    1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序. ps -A 显示所有程序. ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径, ...

  5. lsof查看进程占用文件_lsof命令查看进程socket相关信息

    1.释义 查看进程打开的文件.目录,还可以查看进程监听的端口等socket相关的信息 2.系统帮助 lsof: illegal option character: - lsof: -e not fol ...

  6. linux进程占用的资源,Linux查看进程的资源占用情况

    相关命令:who/w/ps/top 转载自:http://www.51testing.com/html/32/n-823532.html 1.top top命令是Linux下常用的性能分析工具,能够实 ...

  7. linux查看进程是否终止,linux如何查看进程和终止进程?

    在LINUX命令平台输入1-2个字符后按Tab键会自动补全后面的部分(前提是要有这个东西,例如在装了tomcat的前提下,输入tomcat的to按tab). 2. ps 命令用于查看当前正在运行的进程 ...

  8. [ Linux ] 进程概念,pcb,查看进程,pid,ppid,fork

    文章目录 一.进程 1.1 基本概念 1.2 描述进程 - PCB 1.3 查看进程 1.3.1 第一种方式 1.3.2 第二种方式 1.4 通过系统调用获取进程标识符 1.4.1 获取进程的pid ...

  9. linux查看进程占用的内存大小,查看进程占用内存大小的几种方法,占用内存几种方法...

    查看进程占用内存大小的几种方法,占用内存几种方法 1. pmap -x pid 2. ps -aux | grep 进程名 ps -e -o 'pid,comm,args,pcpu,rsz,vsz,s ...

  10. 查看进程启动时间 linux,Linux详细查看进程启动时间

    Linux系统下查看进程启动时间和运行时间的命令 ps -o lstart -p PID         #根据PID来查询 ps -o lstart,etime -p PID   #根据PID来查询 ...

最新文章

  1. 中科院冯洋| Prefix-to-Prefix生成:进展、挑战与展望
  2. mysql的内存表和临时表
  3. python3.5将list类型转换为矩阵类型
  4. r语言ggplot2 多线图绘制图例_plotnine: Python版的ggplot2作图库
  5. 【剑指offer】面试题52:两个链表的第一个公共节点(java)
  6. 无线路由器桥接——手机连不上网
  7. 51单片机------闪烁灯(实验报告)
  8. 手机4k屏幕测试软件,索尼Z5 Premium 4K屏幕测试:1080p屏是王道!
  9. Visual Studio.NET 术语表
  10. python程序开发第四课:数据结构(2)元组(3)字符串
  11. LF will be replaced by CRLF
  12. spring2.5.6整合hibernate3.3.2_Annotation声明式事务管理-第二节
  13. 软件安全之CRC检测
  14. 基于ROS平台的STM32小车--汇总
  15. 微信排版 Markdown 编辑器
  16. 中国计量大学计算机编程,【题解】第三届中国计量大学程序设计竞赛(个人赛)...
  17. matlab序列负轴,MATLAB中雷达信号回波图为什么会有负半轴
  18. 大转盘/刮刮乐中奖概率算法
  19. 数据分析案例之39药品网
  20. 渤海银行双活数据中心建设值得中小银行借鉴

热门文章

  1. Atitit 设计模式的本质思考】
  2. 国内三大PT(Private Tracker)站分析
  3. bzoj2440:[中山市选2011]完全平方数
  4. 贪心+优先队列之更改优先级-hdu1896
  5. 读书笔记 - 《我的美国之路》
  6. python读取文件乱码
  7. Java中的锁(转)
  8. 【Java】@transient代表着什么
  9. gradle构建springboot项目瘦身,外部依赖jar的终极方法
  10. selenium windows 下面环境搭建(Eclipse)