ps进程查看命令详解

1、PS 命令是什么

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

2、ps命令支持三种使用的语法格式

  1. UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符
  2. BSD 风格,选项可以组合在一起,但是选项前不能有“-”连字符
  3. NU 风格的长选项,选项前有两个“-”连字符

注:我们能够混用这几种风格,但是可能会发生冲突。

3、ps命令格式及参数

使用权限:所有使用者

使用方式:ps [options] [--help]

说明:显示瞬间行程 (process) 的动态  

  1. ps命令格式及参数

仅列出几个常用的参数并大略介绍含义:

ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务标示。

ps -e 此参数的效果和指定"A"参数相同。

ps e 列出程序时,显示每个程序所使用的环境变量。

ps f 用ASCII字符显示树状结构,表达程序间的相互关系。

ps -H 显示树状结构,表示程序间的相互关系。

ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。

ps s 采用程序信号的格式显示程序状况。

ps S 列出程序时,包括已中断的子程序资料。

ps -t<终端机编号>   指定终端机编号,并列出属于该终端机的程序的状况。

ps u以用户为主的格式来显示程序状况。

ps x显示所有程序,不以终端机来区分。

ps -A 列出所有的行程

ps -w 显示加宽可以显示较多的资讯

ps -au 显示较详细的资讯

ps -aux 显示所有包含其他使用者的行程

5、ps au(x) 输出格式 :

USER PID  %CPU  %MEM  VSZ  TTY  STAT  START  TIME  COMMAND

USER: 行程拥有者

PID: pid

%CPU: 占用的 CPU 使用率

%MEM: 占用的记忆体使用率

VSZ: 占用的虚拟记忆体大小

RSS: 占用的记忆体大小

TTY: 终端的次要装置号码 (minor device number of tty)

STAT: 该行程的状态:

D: 不可中断的静止

R: 正在执行中

S: 静止状态

T: 暂停执行

Z: 僵尸进程,不存在但暂时无法消除

W: 没有足够的记忆体分页可分配

<: 高优先序的行程

N: 低优先序的行程

L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)

START: 行程开始时间

TIME: 执行的时间

COMMAND:所执行的指令

6、ps命令实例

6.1不加参数执行ps命令

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

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

PID: 运行着的命令(CMD)的进程编号

TTY: 命令所运行的位置(终端)

TIME: 运行着的该命令所占用的CPU处理时间

CMD: 该进程所运行的命令

6.2显示所有当前进程

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

$ ps -ax 

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

$ ps -ax | less

6.3根据用户过滤进程

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

$ ps -u kseven

6.4通过cpu和内存使用来过滤进程

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

$ ps -aux | less

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

6.5通过 --sort命令来排序

根据CPU使用来升序排序

$ ps -aux --sort -pcpu | less

根据内存使用来升序排序

$ ps -aux --sort -pmem | less

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

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

6.6通过进程名和PID过滤

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

$ ps -C getty

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

$ ps -f -C getty

6.7根据线程来过滤进程

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

$ ps -L 1213

6.8树形显示进程

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

$ps -axjf

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

$ pstree

6.9显示安全信息

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

$ ps -eo pid,user,args

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

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

6.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这几列组成。

6.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’

6.12查看每个用户的线程数量

ps h -Led -o user | sort | uniq -c | sort -n

参数说明:

h 隐藏表头,用于统计时不影响统计结果

L 以线程维度展示数据

e 展示所有用户的线程

d 展示线程的ID(可以不用这个参数)

o 可选项,此处取值user为只展示进程的用户名sort命令:排序

uniq -c 统计重复数据出现的数量

6.13确定是哪个进程的线程过多

cat `ls /proc/|grep [0-9][^a-z]|awk '{print "/proc/"$1"/status"}'`|grep -w -E -i 'Pid|Threads'

参数说明:

ls /proc/|grep [0-9][^a-z] :列出所有进程号

awk '{print "/proc/"$1"/status"}':拼接成“/proc/{进程号}/status”的形式,该文件有进程的详细信息

最后cat每一个“/proc/{进程号}/status”文件,再用grep正则匹配出记录了Pid那行和Threads那行

6.14确定进程的父进线程

使用ps -o查看父程程

使用查看PID status查看父程程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙ArkUI-X平台差异化:【运行态差异化(@ohos.deviceInfo)】

平台差异化 简介 跨平台使用场景是一套ArkTS代码运行在多个终端设备上&#xff0c;如Android、iOS、OpenHarmony&#xff08;含基于OpenHarmony发行的商业版&#xff0c;如HarmonyOS Next&#xff09;。当不同平台业务逻辑不同&#xff0c;或使用了不支持跨平台的API&#xf…

c++中静态函数

在Qt中&#xff0c;可以通过在类中定义静态方法来添加静态方法。静态方法是类的一部分&#xff0c;但不需要实例化类对象就可以直接调用。 下面是一个示例&#xff0c;演示了如何在类中添加静态方法&#xff1a; cpp class MyClass { public: static void myStaticMethod…

Postman快捷功能-批量断言与快速查询替换

大家好&#xff0c;在我们日常的接口测试工作中&#xff0c;经常需要对接口返回的数据进行断言&#xff0c;以确保接口的正确性。当接口数量较多时&#xff0c;逐个编写断言语句会变得非常繁琐。此外&#xff0c;在接口测试过程中&#xff0c;我们还可能需要频繁地查找和替换某…

Python自动化工具(桌面自动化、Web自动化、游戏辅助)

工具介绍 连点工具是一款可以模拟键鼠后台操作的连点器工具。支持鼠标连点、键鼠脚本录制&#xff0c;支持辅助您实现办公自动化以及辅助游戏操作。功能简洁易用&#xff0c;非常方便操作。连点工具让您在在玩游戏、网购抢购的时候全自动点击鼠标&#xff01;主要功能有&#…

MySQL数据库的数据文件保存在哪?MySQL数据存在哪里

在安装好MySQL数据库使用一段时间后&#xff0c;会产生许多的数据库和数据。那这些数据库的数据文件存放在本地文件夹的什么位置呢 一、默认位置 一般来说MySQL数据库的数据文件都是存放在data文件夹之中&#xff0c;但是根据使用的存储引擎不同&#xff0c;产生的一些文件也…

牛客前端面试高频八股总结(2)(附文档)

1.fetch请求方式 fetch是什么&#xff1f; fetch是一种http 数据请求的方式&#xff0c;是xml的一种替代方式。 怎么请求&#xff1f; fetch方法返回一个promise解析response显示状态&#xff08;成功与否&#xff09;的方法。 优点&#xff1a; 使用Promise&#xff0c;支持链…

24李林跌落神坛,880还刷吗?还是换1000、900、660?

“李林今年跌落神坛了&#xff01;” “全是固定题型没新题&#xff0c;结果今年考的全是新题。” 880是“老真题的神”&#xff0c; 遇到24年&#xff0c;冷门考点多&#xff0c;计算量又大&#xff0c;就不灵了。 但“老真题”&#xff0c;还是得刷。就像往年真题是要刷的…

(十一)统计学基础练习题五(50道选择题)

本文整理了统计学基础知识相关的练习题&#xff0c;共50道&#xff0c;适用于想巩固统计学基础或备考的同学。来源&#xff1a;如荷学数据科学题库&#xff08;技术专项-统计学二&#xff09;。序号之前的题请看往期文章。 201&#xff09; 202&#xff09; 203&#xff09; 2…

得帆信息PMO总监李健达受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 上海得帆信息技术有限公司aPaaS业务线副总裁、PMO总监李健达先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“AI时代的PMO工作法”。大会将于6月29-30日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#x…

39. 组合总和 - 力扣(LeetCode)

基础知识要求&#xff1a; Java&#xff1a; 方法、集合、泛型、Arrays工具类、for循环、if判断 Python&#xff1a; 方法、列表、for循环、if判断 题目&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使…

Spring框架学习笔记(五):JdbcTemplate 和 声明式事务

基本介绍&#xff1a;通过 Spring 框架可以配置数据源&#xff0c;从而完成对数据表的操作。JdbcTemplate 是 Spring 提供的访问数据库的技术。将 JDBC 的常用操作封装为模板方法 1 JdbcTemplate 使用前需进行如下配置 1.1 在maven项目的pom文件加入以下依赖 <dependencies…

Java面试进阶指南:高级知识点问答精粹(二)

Java 面试问题及答案 1. 什么是Java内存模型&#xff08;JMM&#xff09;&#xff1f;它在并发编程中扮演什么角色&#xff1f; 答案&#xff1a; Java内存模型&#xff08;JMM&#xff09;是一个抽象的模型&#xff0c;它定义了Java程序中各种变量&#xff08;线程共享变量&…

labelme的使用

创建虚拟环境 听说是要用这个3.6版本的python环境 conda create --namelabelme python3.6激活虚拟环境 activate labelme下载labelme pip install labelme #安装labelme组件启动labelme 在你打开文件的时候推荐还是自己先建立一个label.txt 把自己要分的类别放进去 label.…

Python中的深拷贝与浅拷贝:深入解析与实用指南

Python中的深拷贝与浅拷贝&#xff1a;深入解析与实用指南 一、引言 在Python编程中&#xff0c;我们经常需要复制对象&#xff0c;但有时候仅仅复制对象的引用是不够的&#xff0c;我们需要的是对象的真实副本。此时&#xff0c;我们就需要考虑使用深拷贝或浅拷贝。深拷贝和…

GPT-2添加PAD token

GPT-2和GPT-3模型&#xff08;包括其他类似系列&#xff09;通常没有内置的PAD token&#xff0c;因为它们主要用于生成任务&#xff0c;而这些任务通常不需要填充。然而&#xff0c;在一些特定任务&#xff08;如批量处理或序列对齐&#xff09;中&#xff0c;添加PAD token是…

翻译《The Old New Thing》- What‘s the deal with the EM_SETHILITE message?

Whats the deal with the EM_SETHILITE message? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071025-00/?p24693 Raymond Chen 2007年10月25日 简要 文章讨论了EM_SETHILITE和EM_GETHILITE消息在文档中显示为“未实现”的原因。这些…

前端 JS 经典:Web 性能指标

什么是性能指标&#xff1a;Web Performance Metrics 翻译成 Web 性能指标&#xff0c;一般和时间有关系&#xff0c;在短时间内做更多有意义的事情。 一个站点表现得好与不好&#xff0c;标准在于用户体验&#xff0c;而用户体验好不好&#xff0c;有一套 RAIL 模型来衡量。这…

大专学历java能找到工作吗

就低学历就业的情况&#xff0c;大专学历的职业上限基本上是中小公司的开发小组长&#xff0c;中专或同等学历的职业上限一般是软件小作坊的项目经理。当下大专学历能进大公司的可能性不能说没&#xff0c;但相比前几年&#xff0c;少了太多。有稳定业务渠道的软件公司&#xf…

Vue.js功能实现博客

Vue.js功能实现博客 一、前言 Vue.js 是一款构建用户界面的渐进式框架。今天我们将通过一个简单的示例来展示如何使用 Vue.js 创建一个简单的计数器功能&#xff0c;并在此过程中解释每个步骤。 二、环境准备 在开始之前&#xff0c;请确保你的开发环境中已经安装了 Node.j…

音视频学习规划

文章目录 概述闲聊点 小结 概述 最近在学习音视频&#xff0c;觉得还是要先写个提纲&#xff0c;给自己制定下学习路线及目标。先写下我的个人流程及思路。 ffmpeg的命令ffmpeg api播放器流媒体RTMP&#xff0c;HLS 闲聊点 先说下学习命令行吧&#xff0c;学习命令行是为了…