Linux查看进程命令`ps -ef`和`ps aux`的区别

Linux查看系统进程的命令ps,常用的有ps -efps aux,这两条命令没有太大区别,是Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。

ps -ef 是用标准的格式显示进程的

其格式如下

1
2
3
4
5
6
7
8
9
[root@iZm5eae8wzyq0xrh8j2i1eZ ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 2019 ? 00:00:02 /sbin/init
root 2 0 0 2019 ? 00:00:00 [kthreadd]
root 3 2 0 2019 ? 00:00:05 [migration/0]
root 4 2 0 2019 ? 00:01:41 [ksoftirqd/0]
root 5 2 0 2019 ? 00:00:00 [stopper/0]
root 6 2 0 2019 ? 00:00:26 [watchdog/0]
root 7 2 0 2019 ? 00:00:02 [migration/1]

其中各列的具体含义如下

列名 含义
UID 该进程的用户
PID 该程序的ID
PPID 该程序父级程序的ID
C 该进程占用的CPU百分比
STIME 程序的启动时间
TTY 该进程在哪个终端上运行(登陆者的终端位置),若与终端无关,则显示(?)。若为pts/0等,则表示由网络连接主机进程
TIME 该进程实际使用CPU运行的时间
CMD 命令的名称和参数

ps aux 是用BSD的格式来显示

其格式如下

1
2
3
4
5
6
[root@iZm5eae8wzyq0xrh8j2i1eZ ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 21276 760 ? Ss 2019 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S 2019 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 2019 0:05 [migration/0]
root 4 0.0 0.0 0 0 ? S 2019 1:41 [ksoftirqd/0]

其中各列的具体含义如下

列名 含义
USER 该进程的用户
PID 该程序的ID
%CPU 该进程占用的CPU百分比
%MEM 该占用内存的百分比
VSZ 该进程使用的虚拟内存量(KB)
RSS 该进程占用的固定内存量(KB)(驻留中页的数量)
TTY 该进程在哪个终端上运行(登陆者的终端位置),若与终端无关,则显示(?)。若为pts/0等,则表示由网络连接主机进程
STAT 进程的状态
START 该进程被触发启动时间
TIME 该进程实际使用CPU运行的时间
COMMAND 命令的名称和参数

其中STAT状态位常见的状态字符有

状态字符 含义
D 无法中断的休眠状态(通常 IO 的进程)
R 正在运行可中在队列中可过行的
S 处于休眠状态
T 停止或被追踪
W 进入内存交换 (从内核2.6开始无效)
X 死掉的进程 (基本很少见)
Z 僵尸进程
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存
s 进程的领导者(在它之下有子进程)
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)
+ 位于后台的进程组
坚持原创技术分享,您的支持将鼓励我继续创作!
0%