【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的用户们的所有进程,并且显示线程信息(干嘛用的)

祝玩得愉快

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows下redis使用教程

创建临时服务 redis-server.exe redis.windows.conf启动客户端 验证 # 使用set和get命令,对Redis数据库进行数据存储和获取,如下图所示 config get *创建永久服务 关闭临时服务的cmd窗口,输入以下命令 redis-server.exe --service-insta…

【设计模式-08】Flyweight享元模式

简要说明 简要的理解:享元模式就是新建一个池(Pool),该池子(Pool)中有新建好的一堆对象,当需要使用时,从池子(Pool)中直接获取,不用重新新建一个对象。通俗的讲就是:共享元数据。 比如Java中的String就是使…

Maven详解(入门到精通)学习maven有这个就够了

目录 1. Maven简介 2. 什么是Maven? 3. Maven的下载和安装 安装maven核心程序 4.Maven 核心概念 5. 第一个maven项目 创建约定的目录结构 6. 为什么创建约定的目录结构? 7. 基本的Maven命令 8. 关于联网下载的问题 9. 仓库 10. pom 11.坐标 12. 依赖初步认…

扎克伯格宣布将购买35万个GPU

Meta公司马克.扎克伯格1月18日在Instagram上发表文章称,该公司正在加强人工智能研究团队的力量,并在充实AI基础设施“弹药库“,计划在今年年底前向芯片设计商英伟达购买35万个H100 GPU芯片,从而使该公司的GPU总量达到约60万个&…

蓝桥杯练习题dfs与bfs

📑前言 本文主要是【算法】——dfs与bfs的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&#xff…

璀璨2023,共赴2024——Tempo大数据分析产品年度回顾

随着2024年的到来,2023年已落下了帷幕,这一年里,Tempo大数据分析产品不断追求创新,进行了四次重要的版本升级。为用户带来新功能的同时确保用户在使用产品时获得卓越的体验感,从而更大程度地提升用户的工作效率。 现在…

使用Nginx和Fancyindex组合搭建文件下载站点详细教程

目录 简介 TIPS 1.下载Nginx 2. 安装Fancyindex和Nginx-Fancyindex-Theme模块 2.1 安装编译工具和依赖 2.2 下载Fancyindex和Nginx-Fancyindex-Theme 2.3 编译Nginx并包括Fancyindex 3. 配置Nginx 4.体验 4.1light主题 4.2dark主题 后记 简介 当使用Nginx和Fancyinde…

基于SpringBoot的欢乐校园管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

使用Python监听并下载微信聊天表情包

实现的功能 只要有人给你发了表情包,不管是群聊还是个人发的,都将它保存到本地。也许某天斗图的时候就能用到,不过即使有了表情包,还需要一个检索功能,不然这一张一张看也太费眼睛了。 检索表情包 检索表情包的功能…

Redis: Redis介绍

文章目录 一、redis介绍二、通用的命令三、数据结构1、字符串类型(String)(1)介绍(2)常用命令(3)数据结构 2、列表(List)(1)介绍&…

【C语言编程之旅 6】刷题篇-for循环

第1题 解析 思路&#xff1a; 两个循环进行控制 外层循环控制打印多少行 内部循环控制每行打印多少个表达式以及表达式内容&#xff0c; 比较简单&#xff0c;具体参考代码 #include <stdio.h> int main() {int i 0;//控制行数for(i1; i<9; i){//打印每一行内容&am…

FlinkAPI开发之处理函数

案例用到的测试数据请参考文章&#xff1a; Flink自定义Source模拟数据流 原文链接&#xff1a;https://blog.csdn.net/m0_52606060/article/details/135436048 概述 之前所介绍的流处理API&#xff0c;无论是基本的转换、聚合&#xff0c;还是更为复杂的窗口操作&#xff0c…

STL——list

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

三国游戏(寒假每日一题+贪心、枚举)

题目 小蓝正在玩一款游戏。 游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z&#xff08;一开始可以认为都为 0&#xff09;。 游戏有 n 个可能会发生的事件&#xff0c;每个事件之间相互独立且最多只会发生一次&#xff0c;当第 i个事件发生时会分别让 X,Y,Z 增加 Ai,Bi…

谈判(贪心算法)

题目 import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner;public class Main {public static void main(String[] args) { Scanner sc new Scanner(System.in);int n sc.nextInt();sc.nextLine();List<Integ…

【GitHub项目推荐--AI杀入斗地主领域】【转载】

AlphaGo&#xff1a;第一个战胜围棋世界冠军的人工智能机器人。 我不会玩围棋&#xff0c;没办法和 AlphaGO 对局。但是我喜欢玩斗地主&#xff0c;有斗地主人工智能机器人吗&#xff1f; 有&#xff0c;而且还开源了。DouZero&#xff1a;快手团队开发的斗地主AI。别的不说&…

CSS注释

CSS注释 哇&#xff0c;最近我发现CSS里面的注释真是个好东西呢&#xff01;虽然它们不会在网页上显示出来&#xff0c;但是对于我这样的新手来说&#xff0c;真的很有助于理解代码是怎么工作的。 CSS注释的小秘密 你知道吗&#xff0c;CSS里的注释就像是小纸条&#xff0c;…

funcy,一个超酷的 Python 库

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超酷的 Python 库 - funcy。 Github地址&#xff1a;https://github.com/Suor/funcy 函数式编程是一种强大的编程范式&#xff0c;它强调将计算视为数学函数的评估&#x…

ELK之使用Grafana读取ES集群的Nginx日志进行分析展示

一、前提: 直通车 ------------>↓↓↓↓↓↓ 需要ES集群 https://blog.csdn.net/wdy_2099/article/details/125441436需要filebeat https://blog.csdn.net/wdy_2099/article/details/125445893需要logstash https://blog.csdn.net/wdy_2099/article/details/125464226需要…

python入门知识点:分支结构

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 1.内容导图 2.流程图介绍 绘制要求&#xff1a;不能出现程序语言的语法 3.百分制转五级计分制 分支结构&#xff1a;语句块&#xff0c;冒号缩进表示归属 单分支&…