【Linux】ps -ef 和 ps -aux的区别
ps -ef 和 ps -aux 都是 Linux 中查看进程的常用命令,但两者在起源、输出格式和字段含义上有明显区别,主要差异如下:
-
起源与兼容性
ps -ef:源自 System V 风格(传统 Unix 系统的标准),在所有类 Unix 系统(如 Linux、Solaris、AIX 等)中兼容,通用性更强。
ps -aux:源自 BSD 风格(Berkeley Software Distribution),最初是 BSD 系统的命令格式,在 Linux 中为了兼容也支持,但部分字段含义与 BSD 原生环境有差异。 -
输出字段差异
两者的核心字段(如进程 ID、用户、命令等)类似,但部分字段定义和显示形式不同 -
核心区别总结
| 对比维度 | ps -ef | ps -aux |
| 命令风格 | System V 风格,跨 Unix 系统兼容 | BSD 风格,Linux 环境下兼容 |
| 用户信息显示 | 显示用户 ID(UID),需对应用户名 | 直接显示用户名(USER),更易读 |
| 资源占用字段 | 无 CPU / 内存百分比字段 | 含%CPU(CPU 占比)、%MEM(内存占比) |
| 进程状态字段 | 无单独状态列 | 有STAT字段(如 R 运行、S 睡眠、Z 僵尸) |
| 命令详情完整性 | CMD字段可能省略部分参数 | COMMAND字段显示完整命令及参数 |
| 核心适用场景 | 跨平台查询、查看父进程(PPID) | Linux 下资源占用分析、查看完整命令 |
- 使用场景建议
若需要跨平台兼容(如在不同 Unix 系统中通用),或关注父进程关系(PPID),用 ps -ef。
若在 Linux 环境下,想直观查看进程资源占用(CPU / 内存百分比)或详细命令参数,用 ps -aux。
