标签:
无参数
默认情况下只显示在当前终端下执行的进程,不显示其他终端的信息,而且显示的信息只有4列,如下:
m@meng:~$ ps
PID TTY TIME CMD
17742 pts/14 00:00:00 bash
30496 pts/14 00:00:00 ps
四列信息的含义分别是:
PID: 运行着的命令(CMD)的进程编号
TTY: 命令所运行的位置(终端)
TIME: 运行着的该命令所占用的CPU处理时间
CMD: 该进程所运行的命令
参数-l和-f
想要得到更多信息就需要加上这两个参数之一,如下:
m@meng:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 17742 14494 0 80 0 - 2433 wait pts/14 00:00:00 bash
0 R 1000 30507 17742 0 80 0 - 1665 - pts/14 00:00:00 ps
多出来的列的含义为:
F:进程的旗标,又称信号量,用于进程互斥加锁等,暂时不考虑;
S:进程的状态(S代表休眠,R代表可运行,Z代表僵尸进程,T代表停止,0代表正在运行)
UID:用户id,PPID:父进程id
C:CPU利用率
PRI:进程的优先级
NI:nice值,又叫谦让度。。。
ADDR:进程的内存地址
SZ:加入进程被换出,所需交换空间的大小
WCHAR:进程是否正在运行,若是,则为“-”,跟S的作用类似
TIME:运行进程所需的总CPU时间
好吧,这些信息很多暂时都用不上或者理解不了,别着急,慢慢来,早晚会用上的.
m@meng:~$ ps -f
UID PID PPID C STIME TTY TIME CMD
m 17742 14494 0 5月28 pts/14 00:00:00 bash
m 32105 17742 0 11:55 pts/14 00:00:00 ps -f
-f显示的信息要少一些,而且有部分不同。
主要就是STIME,它的含义是该进程被触发的时间或它启动的时间。
参数 -a,这个参数很神奇,反正我是没弄懂,man上的信息是:Select all processes except both session leaders (see getsid(2)) and processes not associated with a terminal.大概意思是说,显示除控制进程(session leader)和无终端的进程外所有进程。看个例子:
m@meng:~$ ps -a
PID TTY TIME CMD
24056 pts/18 00:00:00 ps
我们知道有些进程无须借助终端来运行,它们的TTY这一列显示为“?”,-a选项会过滤掉这类进程;同时-a还会过滤掉控制进程,到底什么是控制进程呢?莫非就是终端本身?如果不加-a参数,结果如下:
m@meng:~$ ps
PID TTY TIME CMD
23962 pts/18 00:00:00 bash
24062 pts/18 00:00:00 ps
这个理解也许是对的。
m@meng:~$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
m 24187 0.0 0.1 9732 4324 pts/14 Ss 16:40 0:00 bash
m 24245 0.0 0.0 6896 1152 pts/14 R+ 16:50 0:00 ps u
m@meng:~$ ps -1
PID TTY STAT TIME COMMAND
1 ? Ss 0:02 /sbin/init
参数x:通常与 au一起使用,可列出较完整信息。我截取了一部分:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 4584 2580 ? Ss 5月28 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S 5月28 0:00 [kthreadd]
root 3 0.2 0.0 0 0 ? S 5月28 10:10 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 5月28 0:00 [kworker/0:0]
似乎比-f和-l还要详细。
呃,写到这里已经晕了,参数实在太多,我想以后会根据实际需求再来重新整理一遍。主要的其实就是下面两个组合:
ps -ef
ps aux
然后配合grep用管道撷取相关的进程信息。
标签:
原文地址:http://blog.csdn.net/u012668018/article/details/46289897