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

Linux ps -ef 命令解析

ps 是 Linux 系统中用于查看进程状态的标准命令,-ef 是其参数组合,用于输出系统范围内所有进程的完整信息。以下是对该参数的详细解析: 

1. 核心参数含义

  • -e
    表示显示所有进程(包括系统进程和用户进程),相当于 -A 参数。该选项会列出系统中当前运行的所有进程,而不限于当前用户的会话。
  • -f
    表示以完整格式(Full Format)输出进程信息。这比默认输出提供更详细的字段,包括进程的用户、父子关系、启动时间等。

2. 输出格式说明

当执行 ps -ef 时,输出通常包含以下列(字段):

  • UID:进程所有者的用户名。
  • PID:进程的唯一标识符(Process ID)。
  • PPID:父进程的 PID(Parent Process ID),显示进程的创建来源。
  • C:CPU 利用率(百分比),表示进程的 CPU 使用情况。
  • STIME进程的启动时间或日期
  • TTY:与进程关联的终端设备(例如 tty1 表示本地终端,? 表示无关联终端)。
  • TIME进程已使用的累计 CPU 时间(格式为 HH:MM:SS)。
  • CMD:启动进程的命令行或可执行文件的名称。

3. 使用场景示例

3.1 基本用法:直接运行 ps -ef 可快速查看所有进程的详情

UID        PID  PPID  C STIME TTY          TIME CMD
root       540     1  0  2024 ?        00:02:21 /sbin/auditd
ntp       3690     1  0  2024 ?        00:00:26 /usr/sbin/ntpd -u ntp:ntp -g
root      2753  2716 17  2024 ?        42-07:05:06 /usr/local/jdk-21.0.4/bin/java -server -Xms4g -Xmx4g -XX:+UseG1GC -XX:G1HeapRegionSize

 注意:数值 42-07:05:06 表示该进程自启动以来累计消耗的CPU时间

  • 非进程存活时长:此时间仅统计进程 实际占用 CPU 资源的时间,而非进程从启动至今的总运行时长(后者由 STIME 列表示进程的启动时间)。
  • 累积计算:若进程多次运行,该值会累积历史 CPU 占用时间。
  • 格式规则:当累计时间超过 24 小时,输出会自动转换为 天数-小时:分钟:秒 的格式(即 42-07:05:06 代表 42 天 7 小时 5 分钟 6 秒)。

3.2 进阶使用:若需进一步筛选,可结合其他参数:

  • ps  -u  <username>   #显示指定用户的进程。
  • ps -eLf    #显示所有线程(-L 扩展)。
  • ps -ef  |  grep -E 'nginx|mysql'    # 同时匹配多个服务名,支持正则表达式
  • ps -ef  |  grep '[s]shd'            # 用字符集语法屏蔽 grep 进程自身
  • ps  -ef  --sort=-%cpu | head -10   # CPU使用率倒序(前10)
  • ps  -ef  --sort=+%mem | head -10   # 内存占用量正序 ,-为降序,+为升序,支持 %cpu, %mem, start_time 等字段。
  • ps -e --forest  |  grep  nginx   # 直接生成指定进程的树状图
  • ps -eo pid,user,cmd,etime # 显示进程PID、用户、命令、已运行时长 ps -e -o
  • ppid=,comm= --no-header # 仅输出父进程ID和命令名(无标题行)
  • watch "ps -ef --sort=-%cpu | grep -v 'ps -ef' | head -n 15"   #实时筛选高负载进程
  • ps -ef -u www-data | wc -l     #统计特定用户进程数

PS: 僵尸进程筛选

筛选僵尸进程状态

  • ps aux | awk '{if ($8=="Z" || $8=="Z+") print $0}'

定制化输出

  • ps -e -o pid,ppid,stat,cmd | grep 'Z'

僵尸进程的影响与处理原则

  • 影响
    僵尸进程不消耗 CPU/内存,但占用系统进程表项,过多时可能阻碍新进程创建。
  • 处理优先级
    优先检查父进程(PPID)是否异常。若父进程为 init(PID=1),系统通常会定期回收,无需手动干预。
  • 预防措施
    检查程序代码中是否缺失对子进程的 wait() 调用,确保正确回收资源。

4. 注意事项

  • 兼容性-ef 参数在大多数 Linux 发行版中通用(如 Ubuntu、CentOS),但部分 BSD 变体可能使用不同语法(如 ps aux)。
  • 性能影响ps -ef 通常无显著系统开销,但在进程数极高时,可配合 grep 过滤输出(例如 ps -ef | grep nginx)。
  • 其他常用参数可补充使用(如 -o 自定义输出字段、-p 指定 PID),但 -ef 提供了便捷的默认完整视图。
http://www.lryc.cn/news/604761.html

相关文章:

  • 基于成像空间转录组技术的肿瘤亚克隆CNV原位推断方法
  • composer 常用命令
  • 智慧城市SaaS平台|市政公用管理系统
  • 从单机到分布式:Redis如何成为架构升级的胜负手
  • 串口接收数据包(协议带帧头帧尾)的编程实现方法:1、数据包格式定义结构体2、使用队列进行数据接收、校验解包
  • 三十二、【Linux网站服务器】搭建httpd服务器演示虚拟主机配置、网页重定向功能
  • uni-app webview 的message无法触发的解决方案
  • MacTex+Vscode数学建模排版
  • 字节跳动“扣子”(Coze)开源:AI智能体生态的技术革命
  • AI Compass前沿速览:可灵创意工坊、字节Coze StudioCoze Loop、通义万相2.2 、智谱GLM-4.5、腾讯混元3D世界模型开源
  • 添加捕捉吸附标识(使用QT+OpenGL开发三维CAD)
  • 【翻译】Label Studio——开源标注工具README.md
  • 2025年DDoS攻防战:六层防护体系构建业务“数字免疫”
  • ADA4622-2ARMZ-R7 ADI双通道精密运算放大器 ±0.25μV超低失调+0.1μV/°C温漂
  • K8s 备份与恢复利器:Velero 实战指南
  • click和touch事件触发顺序 糊里糊涂解决的奇怪bug
  • VUE -- 基础知识讲解(三)
  • 前端安全防护:XSS、CSRF与SQL注入漏洞深度解析与防御
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | 3dBackgroundBoxes(3D背景盒子组件)
  • 前端兼容性问题全面解决方案
  • Vue2-封装一个看起来像左右分布表格的表单组件
  • JetBrains Annotations:从入门到落地,彻底告别 NullPointerException
  • 2025年GEO服务商有哪些?——从技术到服务的专业分析
  • 2507C++,介绍名字对象
  • Java Stream核心:ReferencePipeline解析
  • 【WPS】邮件合并教程\Excel批量写入数据进Word模板
  • 滚珠导轨在电子制造中的流畅性优势
  • 新零售“实—虚—合”逻辑下的技术赋能与模式革新:基于开源AI大模型、AI智能名片与S2B2C商城小程序源码的研究
  • 洛谷 P11230:[CSP-J 2024 T4] 接龙 ← 图论+动态规划
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十四天-准备面试项目(焦虑)-同学开始面试