【linux】ps的基本使用

 ps是linux中用于显示进程的工具,确切来说是显示活动进程的工具

ps的基本格式是 ps [选项]

sh-3.2# ps --help
ps: illegal option -- -
usage: ps [-AaCcEefhjlMmrSTvwXx] [-O fmt | -o fmt] [-G gid[,gid...]][-g grp[,grp...]] [-u [uid,uid...]][-p pid[,pid...]] [-t tty[,tty...]] [-U user[,user...]]ps [-L]

flag一览

-A: 显示所有进程。-a: 显示除控制进程和无终端进程外的所有进程。-C: 通过命令名而非进程号来选择进程。-c: 显示进程的真实命令名,而不是更常见的命令行。-E: 设置或显示环境变量。-e: 显示环境变量。-f: 显示全格式,包括命令行。-h: 不显示标题。-j: 作业格式。-l: 长格式。比标准格式显示更多的信息。-M: 显示线程信息。-m: 按内存使用大小排序。-r: 只显示正在运行的进程。-S: 包括已完成的进程的子进程的CPU时间。-T: 显示线程信息。-v: 显示虚拟内存使用情况。-w: 使用宽输出格式。-X: 旧的Linux i386 注册表格式。-x: 显示无控制终端的进程。

其他选项就好理解很多 比如小写的g代表组名,u代表用户名

大写的G代表gid,U代表uid,p代表pid

基本使用

普通地使用ps命令的话会显示和当前的shell相关的进程的相关信息,包括进程id,时间和命令名称,这些是一个进程最基本的信息。

上面有一个列叫做tty就顺便提一下,tty最早是指电脑的输入方式的一种:teletype,现在多用来指终端模拟器,比如现在连接到虚拟机的终端就是pts,这是虚拟终端的一种。在pts的右边有个数字0代表的是这是0号终端

如果我们用新的ssh会话登录到这个机器,再用ps查看的话就会看到新的会话变成pts/1了

当然以上这是一个ps命令最基本的信息

ps -A 显示所有进程 等效于 ps -e

但是因为经常使用ps -ef 的组合,所以使用ps -e的时候就更多一些,毕竟都是小写

ps -C 通过命令名来查看进程

比如一个工具ssh,我们不知道他的进程号多少不知道拥有者和组是什么,我们只知道使用了这个命令,那么就很适合用-C来查看进程,在键盘上敲了什么命令,就用什么名字查找

ps -f  显示关于进程的全格式信息

通常来说 -e 是显示全部的进程,-f 是显示每个进程的全部常用信息,所以为了最大化对进程的搜索,通常会看到一种写法:

ps -ef | grep "xxx" 这种写法翻译过来就是,显示所有进程的全格式信息,然后抓取包含xxx的条目

全格式根据下图显示,依次是:

用户ID,进程ID,父进程ID,CPU使用率,进程开始时间,终端类型,进程占用CPU的时间,命令名

虽然叫做全格式,但是并不是进程的所有信息都在上面,毕竟后面还有个flag叫做显示长格式,但是对于绝大多数情景,ps -f 已经完全够用

ps -j  显示进程的作业格式

作业格式也是经常在服务器开发的时候会听到的,作业控制实际上就是对进程的执行的细致化控制,比如执行,挂起,后台执行,结束进程。一般涉及多任务处理或者长进程处理的时候就会用到作业控制(挖坑到fg和bg的时候填坑吧)

作业格式包括如下信息,依次是:

进程ID        进程组ID        会话ID        终端        CPU占用时间        命令名

ps -l  显示进程的长格式

除了常见的UID PID TTY之类的不再赘述,主要说说之前没见过的一些信息

F 标志(很遗憾书上看到过,具体还没使用过)

S 进程状态信息,一共有三种,睡眠(S),停止(T),执行(R),如下图所示ps就是R,运行中

PRI 进程的优先级(调度的时候的指标之一)

NI 优先级的一种补充值,根据官方文档叫做NICE值(啧嘴老人:啧,nice~)

ADDR 进程的内存地址,但是我的redhat上似乎不显示

SZ 进程使用的内存页数

WCHAN 显示现在正在等待的资源,对于处理阻塞有重大作用,不显示就是没有发生资源等待

总的来说,使用到长格式的开发人员很少,对于我这种云平台开发人员来说还真没实际用过内存地址这种看起来就掉头发的参数

ps -m  按照内存占用的大小排序

ps -r  只显示正在运行中的进程

也就是说只显示刚才介绍的长格式中的S为R的进程

睡眠或者停止的进程都不显示

ps -u  指定用户名

ps -U  指定用户id

和指定用户名的结果是一样的,就是看想起哪个就指定哪个

ps -g  指定组名

略  ps -g root   指定root组

ps -G 指定组ID

略  ps -G 0  指定root组(用组id)

综合使用

上面的那么多flag实际上可以组合使用

除了最常用的 ps -ef之外,只要是线性无关的flag就可以一起用

比如 ps -ef -U 0 指定了uid为0的用户(也就是root)的所有进程的所有信息

ps -G 1001 -Me  指定组id为1001的用户们的所有进程,并且显示线程信息(干嘛用的)

祝玩得愉快

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

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

相关文章

[小程序]API、数据与事件

一、API ①事件监听API 以on开头,用来监听事件的触发(如wx.inWindowResize) ②同步API 以Sync结尾,且可以通过函数返回值获取,执行错误会抛出异常(如wx.setStorageSync) ③异步API 类似网页中的…

torchtext安装及常见问题

Pytorch 、 torchtext和Python之间有严格的对应关系: 在命令窗中安装torchtext pip install torchtext 注意这种安装方式,在pytorch版本与python版本不兼容时动会自动更新并安装pytorchcpu版本,安装的新版本pytorch可能会不兼容。慎用。 …

VUE--组件通信(父子)

1、什么是组件通信 组件通信就是指组件与组件之间的数据传递。因为组件的数据是独立的,无法直接访问其他组件的数据,想获取其他组件的数据,就需要用到组件通信。 2、组件关系分类(如图) ● 父子关系(props…

虚拟机安装宝塔的坑

问题: 在虚拟机中centos7和centos8中安装宝塔之后,无法访问面板。 解决: 1.先关闭防火墙(如果本机能够ping通相关端口,则不用关闭防火墙) 2.最新的宝塔会自动开启ssl协议,需要手动关闭。…

Python连接数据库的梳理

我们通常用的数据库类型主要有关系型数据库,非关系型数据库等,其中关系型数据库主要有Microsoft SQL Server ,MySQL,Oracle,SQLite等,常用的非关系型数据库包括Redis、DynamoDB,MongoDB等 ​​​​​​​ 一 关系型…

MongoDB之索引

常用命令 查看表的索引 db.<table>.getIndexes() 查看表索引的大小 db.<table>.totalIndexSize() 重建索引 db.<table>.reIndex() 删除索引 db.COLLECTION_NAME.dropIndex("INDEX-NAME") db.COLLECTION_NAME.dropIndexes() _id 索引无法删…

MCU最小系统原理图中四个问题详解——芯片中有很多电源管脚的原因(VDD/VSS/VBAT)、LC滤波、两级滤波、NC可切换元件

前言&#xff1a;本文对MCU最小系统原理图中的四个问题进行详解&#xff1a;芯片中有很多电源管脚的原因&#xff08;VDD/VSS/VBAT&#xff09;、LC滤波、两级滤波、NC可切换元件。本文以GD32F103C8T6最小系统原理图举例 目录&#xff1a; 芯片中有很多电源管脚的原因&#x…

echarts dataZoom实现左右滑动与放大缩小 并精确控制显示几条数据

//Xdata是横轴的长度&#xff08;若x轴80条数据&#xff0c;默认显示最新的20条&#xff09; var start Xdata.length - 20; var end Xdata.length - 1; dataZoom: [ type: slider, show: true, startValue: dataZoomStart, endValue: dataZoomEnd, dataBackground: { ar…

STL——list

1、list介绍 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list 的底层是带头双向循环链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后…

CVE-2023-46226 Apache iotdb远程代码执行漏洞

项目介绍 Apache IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点&#xff0c;完美对接 Hadoop 与 Spark 生态&#xff0c;适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。 项目地址 https://io…

Leetcoder Day9|栈与队列part01

语言&#xff1a;Java/C 目录 理论基础 C 栈 队列 Java 栈 队列 ​编辑 232.用栈实现队列 225. 用队列实现栈 Queue Deque 今日心得 理论基础 又是考研时数据结构里接触到的老朋友&#xff0c;栈是先进后出&#xff0c;队列是先进先出。 C 现在刷题除了思路还…

力扣-202. 快乐数解析-弗洛伊德循环查找算法

题目链接 public static void Happy(int n) {int sum 0;int digit 0;for (int i 0; i < 20; i) {while (n ! 0) {digit n%10;sum digit*digit;n/10;}System.out.print(sum " ");n sum;sum 0;}} 使用代码测试一下每一代数字 n 2 : 4 16 37 58 89 145 42 …

自然语言处理(Natural Language Processing,NLP)解密

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…

Servlet中service()与doGet() doPost() 是什么关系

Servlet&#xff08;Server Applet&#xff09;&#xff0c;全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据&#xff0c;生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口&#xff0c;广义的Servlet是指任何实现了这个Servlet…

关于去除信号中的直流分量效果演示(零频率分量)

本文作者&#xff1a; slience_me 文章目录 关于去除信号中的直流分量效果演示&#xff08;零频率分量&#xff09;1. 效果图展示&#xff1a;2. 快速傅里叶变换FFT3. 相关验证代码 关于去除信号中的直流分量效果演示&#xff08;零频率分量&#xff09; 1. 效果图展示&#x…

JDK 动态代理(Spring AOP 的原理)(面试重点)

代理模式 也叫委托模式.定义&#xff1a;为其他对象提供⼀种代理以控制对这个对象的访问.它的作⽤就是通过提供⼀个代理类,让我们 在调⽤⽬标⽅法的时候,不再是直接对⽬标⽅法进⾏调⽤,⽽是通过代理类间接调⽤&#xff0c;在某些情况下,⼀个对象不适合或者不能直接引⽤另⼀个对…

51单片机蜂鸣器

蜂鸣器 蜂鸣器的工作原理 三极管的工作原理 三极管是一种半导体器件&#xff0c;通常由三个掺杂不同的半导体材料层构成。它常用于放大和开关电路中。三极管的工作原理可简述如下&#xff1a; 放大作用&#xff1a;三极管可以放大电流和电压信号。它的工作原理基于控制一个较大…

Web前端与低代码可以碰出什么火花?

技术快速迭代&#xff0c;Web前端开发已经逐渐成为构建现代应用程序的关键组成部分。它不仅涉及到美观的界面设计&#xff0c;还包括后端功能的实现&#xff0c;以及跨平台兼容性的考虑。然而&#xff0c;传统的Web前端开发过程往往需要进行长时间的编码和调试&#xff0c;这使…

LTC6820和isoSPI使用

1、MSTR主控/受控 MSTR (引脚 11/ 引脚 12)&#xff1a;串行接口主 / 从选择器输入。MSTR接VCC&#xff0c;则LTC6820为从机&#xff1b;MSTR接GND&#xff0c;则LTC6820为主机 2、SLOW慢速/快速 SLOW (引脚 12/ 引脚 13)&#xff1a;慢速接口选择输入。当时钟频率≤ 200kHz …

C++和Python最常用的库框架一览

一、C常用库 1. 标准模板库(STL) STL包含丰富的数据结构与算法。比如vector动态数组;list双向链表;map基于红黑树实现,支持快速查找键值对。常用算法有sort排序、find搜索等。这些容器算法类和函数模板,是C程序员必不可少的基础。 2. Boost Boost是近年兴起的高质量C库集合…