如何查看Linux运行进程 ps命令输出字段解析
发布时间 - 2025-08-24 00:00:00 点击率:次ps命令是linux中查看进程状态的核心工具,使用ps aux或ps -ef可列出系统所有进程;其中ps aux输出字段包括:1. user(进程所属用户)2. pid(进程id)3. %cpu(cpu使用率)4. %mem(内存使用率)5. vsz(虚拟内存大小)6. rss(常驻内存集)7. tty(控制终端)8. stat(进程状态,如r运行、s睡眠、d不可中断、z僵尸等)9. start(启动时间)10. time(累计cpu时间)11. command(启动命令);而ps -ef字段为:1. uid(用户id)2. pid(进程id)3. ppid(父进程id)4. c(cpu使用率)5. stime(启动时间)6. tty(终端)7. time(cpu时间)8. cmd(命令);常用技巧包括通过grep过滤指定用户或进程、使用--sort按%mem或%cpu排序前10进程、通过ps auxf或ps -ef --forest显示进程树结构,掌握这些字段和用法有助于快速诊断系统性能问题,并在脚本中高效使用ps工具完成自动化监控任务。
在 Linux 系统中,
ps命令是查看当前运行进程状态最常用的工具之一。它能显示系统中正在运行的进程信息,帮助我们诊断问题、监控资源使用情况。但
ps输出的字段含义如果不了解,看起来会比较混乱。本文将介绍如何使用
ps查看进程,并详细解析其常见输出字段的含义。
一、常用 ps 命令查看运行进程
最常用的查看进程方式是使用以下命令:
ps aux
或者使用 POSIX 标准格式:
ps -ef
这两个命令都能列出系统中几乎所有进程,但输出字段略有不同。
ps aux
:BSD 风格语法,更直观,常用于日常使用。ps -ef
:System V 风格语法,字段对齐更规整,适合脚本处理。
我们以
ps aux为例进行字段解析。
二、ps aux 输出字段详解
执行
ps aux后,输出类似如下内容:
USER PID %CPU %MEM VSZ RSS TTYSTAT START TIME COMMAND root 1 0.0 0.3 169400 13088 ? Ss 10:00 0:02 /sbin/init john 523 0.2 1.1 556780 45236 ? Sl 10:02 0:15 /usr/bin/gnome-shell www-data 1234 1.5 2.3 245678 95432 ? S 10:10 1:23 /usr/sbin/apache2
下面是每一列的含义:
1. USER:进程所属用户
表示运行该进程的用户名。如果是系统进程,通常是
root或服务专用用户(如
www-data、
mysql)。
2. PID:进程 ID
进程的唯一标识号(Process ID),每个进程都有一个唯一的 PID。它是操作系统管理进程的基础,可用于
kill、
top等操作。
3. %CPU:CPU 使用率
进程自启动以来占用的 CPU 时间百分比。注意:这个值是过去一段时间的平均值,不是实时值。高 %CPU 可能表示进程正在密集计算。
4. %MEM:内存使用率
进程占用的物理内存(RSS)占系统总内存的百分比。可用于判断哪个进程占用了较多内存。
5. VSZ:虚拟内存大小(Virtual Memory Size)
进程使用的虚拟内存总量,单位是 KiB。包括代码、数据、共享库以及被换出到磁盘的部分。
6. RSS:常驻内存集(Resident Set Size)
进程当前在物理内存中占用的实际内存大小,单位也是 KiB。不包括被交换出去的部分。RSS 越大,说明该进程吃内存越多。
⚠️ 注意:RSS 不等于实际物理独占内存,因为共享库等部分是多个进程共用的。
7. TTY:控制终端
进程关联的终端设备。如果是
?表示没有控制终端(如后台服务、守护进程);如果是
pts/0、
tty1等,表示是从某个终端启动的。
8. STAT:进程状态
表示进程当前的状态,常用状态码如下:
R
:运行中(running)或可运行(等待 CPU)S
:睡眠中(interruptible sleep),可被信号唤醒D
:不可中断睡眠(通常在等待 I/O)T
:停止(stopped),如被kill -STOP
或调试器暂停Z
:僵尸进程(zombie),已终止但父进程未回收S
:该进程是会话领导者(session leader)+
:前台进程组中的进程l
:多线程进程(有多个轻量级进程)
例如:
Sl表示睡眠中且是多线程;
Ss表示睡眠中且是会话领导者。
9. START:进程启动时间
进程的启动时间。如果是今天启动的,只显示时分(如
10:02);如果是前几天,会显示月日(如
Jan05)。
10. TIME:累计 CPU 时间
进程自启动以来,已使用的 CPU 时间总和(不是运行时长),格式为
分钟:秒或
小时:分钟:秒。例如
1:23表示用了 1 分 23 秒的 CPU 时间。
11. COMMAND:启动命令
启动该进程的命令行,可能只显示命令名,也可能显示完整路径和参数。某些情况下会被截断。
三、ps -ef 输出字段对比
ps -ef的输出格式略有不同:
UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:00 ? 00:00:02 /sbin/init john 523 500 0 10:02 ? 00:00:15 /usr/bin/gnome-shell
字段解释:
- UID:用户 ID(与 USER 类似)
- PID:进程 ID
- PPID:父进程 ID(Parent PID),非常重要,用于查看进程树结构
- C:CPU 使用率(旧格式,类似 %CPU)
- STIME:启动时间(小时:分钟 或 月日)
- TTY:控制终端
- TIME:CPU 使用时间
- CMD:启动命令
相比
ps aux,
ps -ef多了 PPID,更适合分析父子进程关系。
四、实用技巧
-
查看某个用户的进程:
ps aux | grep 用户名
-
查看特定进程(如 nginx):
ps aux | grep nginx
-
按内存使用排序:
ps aux --sort=-%mem | head -10
-
按 CPU 使用排序:
ps aux --sort=-%cpu | head -10
-
显示进程树结构:
ps auxf
或
ps -ef --forest
基本上就这些。掌握
ps的输出字段,能快速定位系统负载高、内存占用大等问题的来源。虽然
top、
htop更直观,但
ps是脚本和自动化中不可或缺的工具,理解其字段含义非常实用。
# mysql
# linux
# apache
# nginx
# 操作系统
# 工具
# 内存占用
# sort
# Session
# 线程
# 多线程
# 自动化
# 多个
# 用了
# 只显示
# 最常用
# 月日
# 都有
# 可用于
# 都能
# 终端设备
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用VPS主机快速搭建个人网站?
JS中对数组元素进行增删改移的方法总结
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
SQL查询语句优化的实用方法总结
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
详解Android中Activity的四大启动模式实验简述
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel如何处理表单验证?(Requests代码示例)
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
php打包exe后无法访问网络共享_共享权限设置方法【教程】
微信公众帐号开发教程之图文消息全攻略
如何快速生成凡客建站的专业级图册?
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
Laravel如何使用Livewire构建动态组件?(入门代码)
QQ浏览器网页版登录入口 个人中心在线进入
如何构建满足综合性能需求的优质建站方案?
如何在云服务器上快速搭建个人网站?
Android okhttputils现在进度显示实例代码
如何快速上传建站程序避免常见错误?
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何在橙子建站上传落地页?操作指南详解
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Laravel模型事件有哪些_Laravel Model Event生命周期详解
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
微信小程序 canvas开发实例及注意事项
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
Thinkphp 中 distinct 的用法解析
如何在万网利用已有域名快速建站?
网易LOFTER官网链接 老福特网页版登录地址
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
香港服务器选型指南:免备案配置与高效建站方案解析
零服务器AI建站解决方案:快速部署与云端平台低成本实践
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
Python进程池调度策略_任务分发说明【指导】
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
Laravel如何使用Vite进行前端资源打包?(配置示例)
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何快速搭建二级域名独立网站?
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
如何在建站主机中优化服务器配置?
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Laravel如何发送系统通知?(Notification渠道示例)


STAT START TIME COMMAND
root 1 0.0 0.3 169400 13088 ? Ss 10:00 0:02 /sbin/init
john 523 0.2 1.1 556780 45236 ? Sl 10:02 0:15 /usr/bin/gnome-shell
www-data 1234 1.5 2.3 245678 95432 ? S 10:10 1:23 /usr/sbin/apache2