实验环境:Vmware 7.0.0 build-203739
操作系统:Ubuntu 10.10
ps命令用来显示某一时间点进程的信息,这些信息是静态的。如果想动态查看当前系统运行的程序信息,可以使用top命令。
ps命令的参数多如牛毛,而且分带“-”和不带“-”的参数。
在man手册中,有这么一段话,介绍了 ps -aux和 ps aux的区别
POSIX 和UNIX标准中,ps -aux 命令将打印所有属于x用户的进程。如果x用户不存在,那么ps -aux将会解释成 ps aux,并给出一个警告。
下面是ps --help的运行结果,看看这写可怕的参数。
在这众多的参数中我们经常用到的也就几个,下面分别说一下常用的一些命令。
- l 长格式输出;
- u 按用户名和启动时间的顺序来显示进程;
- j 用任务格式来显示进程;
- f 用树形格式来显示进程;
- a 显示所有用户的所有进程(包括其它用户);
- x 显示无控制终端的进程;
- r 显示运行中的进程;
如下图
我们从图中可以看到带“-”和不带“-”的输出结果还是有差别的,带不带“杠”,这是个问题。
其他参数也有此问题,可以试试。
说的有点远了,开始介绍一些常用的命令吧。
- 列出当前所有内存中运行的程序:ps aux
- 列出父进程和子进程关系
- 列出指定用户的进程
显示所有信息
显示所有进程的父子关系,从图中我们可以看到Ktheadd创建了下面的多个进程
列出指定用户为root的进程信息
================================================================================================================
可恶的title,看到这么多信息,虎躯一震,菊花一紧啊。
介绍下这些信息吧:
USER 进程的属主; PID 进程的ID; PPID 父进程ID; %CPU 进程占用的CPU百分比; %MEM 占用内存的百分比; NI 进程的NICE值,数值大,表示较少占用CPU时间; VSZ 进程虚拟大小; RSS 驻留中页的数量; WCHAN 进程所等待的资源,如果是【-】表示正在运行 TTY 终端ID STAT 进程状态
- D Uninterruptible sleep (usually IO) R 正在运行可中在队列中可过行的; S 处于休眠状态; T 停止或被追踪; W 进入内存交换(从内核2.6开始无效); X 死掉的进程(从来没见过); Z 僵尸进程; < 优先级高的进程 N 优先级较低的进程 L 有些页被锁进内存; s 进程的领导者(在它之下有子进程); l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) + 位于后台的进程组;
未完待续