我发现很多玩AIX好多年的人都搞不清ps命令中的那个“-”,到底是应该用ps -elf、ps aux呢?还是应该用ps elf、ps -aux呢?
先 man一下ps 看看吧,你会发现AIX下的ps命令有两种语法格式:一种叫X/Open标准,一种叫Berkeley标准。
ps Command
Purpose
Shows current status of processes.
Syntax
X/Open Standards
ps [ -A ] [ -N ] [ -a ] [ -d ] [ -e ] [ -f ] [ -k ] [ -l ] [ -F format] [ -o
Format ] [ -c Clist ] [ -G Glist ] [ -g Glist ] [ -m ] [ -n NameList ] [ -p
Plist ] [ -t Tlist ] [ -U Ulist ] [ -u Ulist ]
Berkeley Standards
ps [ a ] [ c ] [ e ] [ ew ] [ eww ] [ g ] [ n ] [ U ] [ w ] [ x ] [ l | s | u |
v ] [ t Tty ] [ ProcessNumber ]
现在你会知道ps -elf、ps aux是正确的写法,而ps elf、ps -aux自然就是错误的了。这其实是个很容易被忽视的小问题,所以很多人玩AIX的人总是搞错。我接触AIX之前,恰好学过一端时间的SOLARIS,所以一开始就注意到了这个细节。SOLARIS也有两个版本的ps,一个是默认的System V 版本,如:/usr/bin/ps -elf;一个是非默认的BSD版本,如:/usr/ucb/ps -aux。
BSD的意思相信大家都知道,是Berkeley Software Distribution(巴克利软件发行版)的缩写。那ucb是什么意思呢?其实是
University of California, Berkeley (加州大学巴克利分校)的缩写。看,这两个都是缩写里 都有Berkeley。好了,说的这里,我看就没必要继续再罗嗦下去了。用GOOGLE搜一下“UNIX历史”、“University of California, Berkeley”、“System V”这些关键字,相信INTERNET上有很多详细说明它们之间关系的文章。知道点儿UNIX的历史,其实是件很有趣的事情。
至于AIX的man中提到的“X/Open标准”和“System V 版本”是什么关系,我也不知道,也懒得搞清楚了,想必它们之间一定是有联系的。如果你想知道细情,那还是用GOOGLE搜吧,呵呵。
最后总结一下AIX中ps命令,你只要记两个命令就好了——ps -elf和ps aux。ps -elf是System V风格,同SOLARIS的ps -elf;ps aux是BSD风格,同SOLARIS的/usr/ucb/ps -aux,估计LINUX和FREEBSD都用aux参数。另外,我的经验是:ps 的其它参数都不是很常用,只要死记住这两组参数,必要的时候会活用成ps -el、ps -e、ps ax之类的就够了。当然你还要熟悉一下这两组参数的命令输出中的每一列的含义,这个在man里都有写的,我也就不多说了。