当前位置: 首页 > article >正文

Linux下Shell编程之ps命令详解及示例

ps(process status)命令用于显示当前系统中的进程状态。它可以提供关于每个进程的详细信息,如进程ID、运行时间、CPU和内存使用情况等。ps 命令非常适合于监控和管理系统进程。

一、基本用法

ps [选项]

如果不指定任何选项,ps 命令通常会显示与当前终端会话相关的进程信息。

常用选项
  • a:显示与终端相关的所有进程。
  • u:以用户为中心的格式显示进程信息。
  • x:显示没有控制终端的进程。
  • e:显示所有进程。
  • f:以完整格式显示进程信息,包括父进程ID和进程层次结构。
  • l:以长格式显示进程信息,包括CPU和内存使用情况。
  • o:自定义输出格式,后面跟要显示的字段名(用逗号分隔)。
  • C:按命令名筛选进程。
  • p:按进程ID筛选进程。
输出字段含义
  • PID‌:进程ID。
  • PPID‌:父进程ID。
  • C‌:CPU使用率(百分比)。
  • STIME‌:进程启动时间。
  • TTY‌:终端类型。
  • TIME‌:进程使用的CPU时间。
  • CMD‌:命令名或命令行。
示例

示例 1:显示当前用户的所有进程

ps u

输出示例(部分):

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
username 12345  0.5  1.2 123456 7890 ?        Ss   12:34   0:01 /usr/bin/bash

示例 2:显示所有进程

ps e

输出将包含系统中所有进程的简要信息。

示例 3:以完整格式显示进程信息

ps f

输出示例(部分):

UID        PID  PPID  C STIME TTY          TIME CMD
username 12345 23456  0 12:34 pts/0    00:00:01 /usr/bin/bash
username 23456     1  0 12:33 ?        00:00:00 /sbin/init

示例 4:自定义输出格式

假设你想要显示进程ID、命令名和CPU使用率,可以使用以下命令:

ps -eo pid,cmd,%cpu

输出示例(部分):

  PID CMD                         %CPU
12345 /usr/bin/bash                0.5
23456 /sbin/init                   0.1

示例 5:按进程ID筛选进程

假设你想要查看进程ID为12345的进程信息,可以使用以下命令:

ps -p 12345

输出将包含进程ID为12345的进程的详细信息。

示例 6:按命令名筛选进程

假设你想要查看所有包含“bash”的进程信息,可以使用以下命令:

ps -C bash -f

输出将包含所有命令名包含“bash”的进程的完整信息。

二、用ps监控CPU使用情况

要使用 ps 命令监控CPU使用情况,你可以使用 ps 命令的特定选项和参数来显示与CPU使用率相关的信息。以下是一些常用的方法和示例:

方法一:使用 ps aux 并筛选CPU使用率
ps aux --sort=-%cpu | head

这个命令会列出当前系统中所有的进程,并按照CPU使用率从高到低排序。--sort=-%cpu 选项指定按CPU使用率降序排序,head 命令则用于只显示前几行(默认是前10行)。

方法二:使用 ps -eo 自定义输出格式

你可以使用 ps -eo 选项来自定义输出格式,只显示你感兴趣的字段,比如进程ID(PID)、命令名(CMD)和CPU使用率(%CPU)。

ps -eo pid,cmd,%cpu | grep -v grep | sort -k3 -nr | head

这个命令会列出所有进程的PID、命令名和CPU使用率,并使用 grep -v grep 排除掉包含“grep”本身的行(因为你在使用grep过滤输出时,grep命令本身也会出现在输出中)。然后,使用 sort -k3 -nr 按照CPU使用率从高到低排序,最后使用 head 显示前几行。

方法三:结合 watch 命令实时监控

如果你想要实时监控CPU使用情况,可以结合使用 watch 命令。watch 命令会定期运行指定的命令,并刷新输出。

watch -n 1 'ps -eo pid,cmd,%cpu --sort=-%cpu | head'

这个命令会每秒运行一次 ps -eo pid,cmd,%cpu --sort=-%cpu | head,并刷新显示结果,从而实时监控CPU使用率最高的进程。

示例输出

假设你运行了上述某个命令,输出可能类似于以下内容:

  PID CMD                         %CPU
12345 some_cpu_intensive_process  50.0
23456 another_process             10.5
34567 bash                        0.3

在这个例子中,进程ID为12345的进程正在使用大量的CPU资源(50.0%),而进程ID为34567的bash进程则只使用了很少的CPU资源(0.3%)。


http://www.kler.cn/a/464478.html

相关文章:

  • PADS Logic原理图中有很多页原理图,如何(怎样)删除其中一页或者多页
  • docker Error response from daemon
  • sklearn_pandas.DataFrameMapper的用法
  • 我的桌面 1.9.75 | 个性化定制手机桌面,丰富的小组件和主题
  • 07-ArcGIS For JavaScript--隐藏参数qualitySettings(memory和lod控制)
  • DepthLab: From Partial to Complete 论文解读
  • std optional 的使用
  • Redis--高可用(主从复制、哨兵模式、分片集群)
  • commit 错分支的一些补救操作
  • uni-app 多平台分享实现指南
  • 【Unity3D】ECS入门学习(十)NativeContainer、EntityCommandBuffer、CompleteDependency
  • el-table树形懒加载展开改为点击行展开
  • SAP财务凭证的更改、冲销的方式
  • python: generate model and DAL using Oracle
  • 【从零开始入门unity游戏开发之——C#篇43】C#补充知识——值类型和引用类型汇总补充、变量的生命周期与性能优化、值类型和引用类型组合使用
  • 虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)
  • Springboot使用RabbitMQ实现关闭超时订单的一个简单示例
  • 【面试】深入理解 JavaScript 中的 Object.freeze()
  • k8s部署juicefs
  • SpringBoot教程(十四) SpringBoot之集成Redis
  • Vue 全局事件总线:Vue 2 vs Vue 3 实现
  • 一条SQL语句是如何执行的
  • BOC调制信号matlab性能仿真分析,对比功率谱,自相关性以及抗干扰性
  • python学opencv|读取图像(二十三)使用cv2.putText()绘制文字
  • 嵌入式驱动开发详解8(阻塞/非阻塞/异步通信)
  • Dokcer部署双主Mysql