【Linux命令】`ps -a` , `ps -ef` 和 `ps aux` 的区别
ps -a
, ps -ef
和 ps aux
是 ps
(process status)命令的不同选项组合,它们用于显示不同的进程信息。以下是这三个选项组合的主要区别:
ps -a
-a
选项表示显示所有拥有终端的进程,但不包括守护进程(daemon processes)。- 它通常用于显示当前用户在终端启动的所有进程。
- 这个选项不会显示所有进程的详细信息,只提供基本的进程信息,如进程ID(PID)、终端(TTY)和命令名(CMD)。
ps -ef
-e
选项表示显示所有进程,等同于-A
。-f
选项表示完整格式列表,提供详细的进程信息。- 这个命令会显示所有进程的详细信息,包括进程ID(PID)、父进程ID(PPID)、用户(USER)、启动时间(START)、CPU时间(TIME)以及命令名(CMD)等。
-ef
通常用于系统管理员,因为它提供了足够的信息来诊断系统问题和进行进程管理。
ps aux
aux
选项组合用于显示所有用户的进程信息,包括那些没有控制终端的进程。- 它提供的是一个用户为中心的格式,包含了进程的资源使用情况。
- 这个选项会显示每个进程的用户(USER)、进程ID(PID)、CPU使用率(%CPU)、内存使用率(%MEM)、虚拟内存大小(VSZ)、常驻内存大小(RSS)、启动时间(START)、运行时间(TIME)和命令(COMMAND)。
示例对比
ps -a
输出示例:
PID TTY TIME CMD
620792 pts/14 00:00:00 ps
620790 pts/14 00:00:00 ps
ps -ef
输出示例:
UID PID PPID C STIME TTY TIME CMD
root 620792 620790 0 10:30 pts/14 00:00:00 -bash
root 620790 620788 0 10:30 pts/14 00:00:00 -bash
...
ps aux
输出示例:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 620792 0.0 0.0 12108 3632 pts/14 S 10:30 0:00 -bash
root 620790 0.0 0.0 12108 3584 pts/14 S 10:30 0:00 -bash
...
总结
ps -a
提供了基本的进程信息,适用于快速查看当前用户终端下的进程。(更侧重于显示当前终端下的进程)ps aux
提供了更全面的进程信息,包括资源使用情况,适用于需要查看进程资源消耗的场景。(更侧重于显示资源使用情况)ps -ef
提供了详细的进程信息,包括进程之间的关系,适用于系统管理和进程诊断。(更侧重于显示进程详细信息)