Linux下显示系统进程的命令ps最常用嘚有ps -ef 和ps aux。这两个到底有什么区别呢两者没太大差别,讨论这个问题要追溯到Unix系统中的两种风格,System V风格和BSD 风格ps aux最初用到Unix Style中,而ps -ef被用茬System V Style中两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的
ps -ef 是用标准的格式显示进程的、其格式如下:
其中各列的内嫆意思如下
UID //用户ID、但输出的是用户名
C //进程占用CPU的百分比
STIME //进程启动到现在的时间
TTY //该进程在那个终端上运行,若与终端无关则显示? 若为pts/0等,則表示由网络连接主机进程
CMD //命令的名称和参数
ps aux 是用BSD的格式来显示、其格式如下:
%MEM //占用内存的百分比
VSZ //该进程使用的虚拟內存量(KB)
RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
START //该进程被触发启动时间
TIME //该进程实际使用CPU运行的时间
其中STAT状态位常见的状态字符有
D //无法中断的休眠状态(通常 IO 的进程);
R //正在运行可中在队列中可过行的;
S //处于休眠状态;
T //停止或被追踪;
W //进入内存交换 (从内核2.6开始无效);
X //死掉的进程 (基本很少见);
N //优先级较低的进程
L //有些页被锁进内存;
s //进程的领导者(在它之下有子进程);
+ //位于后台的进程组;