在Linux下查看进程指令可以用ps(process status)
是unix/Linux下通用的进程状态查看工具
ps的常用选项
选项 功能介绍
-a 显示所有终端中的进程。注意只有与终端关联的进程才会显示,那些守护进程或没有和终端关联的将不被显示。
-x 显示那些不关联终端的进程。
-u 显示进程所有者的信息
-f 显示进程的父进程信息
-o 对ps指令显示的信息进行定制,例如:pid、comm、%cpu、%mem、state、tty、euser、ruser
用法举例:
1.直接在命令行中使用ps指令
[root@localhost ~]# ps
PID TTY TIME CMD
6026 pts/1 00:00:00 bash
6050 pts/1 00:00:00 ps
可以发现输出信息非常少,仅仅显示了跟当前终端相关的进程信息。
2.显示所有用户的进程信息
[root@localhost ~]# ps -a
PID TTY TIME CMD
3522 tty1 00:00:00 startx
3538 tty1 00:00:00 xinit
3543 tty1 00:00:00 gnome-session
3565 tty1 00:00:00 xinitrc <defunct>
3571 tty1 00:00:00 dbus-launch
3579 tty1 00:00:00 gconfd-2
3584 tty1 00:00:00 gnome-keyring-d
6051 pts/1 00:00:00 ps
可以看到输出信息要比第一步多了,但是也仅仅显示了所有与终端关联的进程信息。
3.显示所有进程(包括不予终端关联的进程)信息。
[root@localhost ~]# ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 init [3]
2 ? S< 0:00 [migration/0]
3 ? SN 0:00 [ksoftirqd/0]
4 ? S< 0:00 [watchdog/0]
5 ? S< 0:00 [events/0]
内容很多,这里省略掉。。。。。
6026 pts/1 Ss 0:00 -bash
6063 pts/1 R+ 0:00 ps ax
那些问号表示没有终端关联的进程。但是显示的信息不够全面
4.显示全部进程,及其更加详细的信息
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2072 636 ? Ss 00:33 0:01 init [3]
root 2 0.0 0.0 0 0 ? S< 00:33 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN 00:33 0:00 [ksoftirqd/0]
内容很多,这里省略掉。。。。。
root 6026 0.0 0.1 5648 1396 pts/1 Ss 14:17 0:00 -bash
root 6095 0.0 0.0 5368 944 pts/1 R+ 14:22 0:00 ps aux
这就是使用u选项后的输出。这些输出信息需要对操作系统有比较深入的了解后才能真正的理解。
ps还有很多其他选项,请查阅man ps的帮助信息。
ps指令经常有下面的用法:
1.统计当前的进程数目
[root@localhost ~]# ps aux | wc -l
121
进去header后进程数为120
2.过滤统计指定的进程数
[root@localhost ~]# ps aux | grep httpd | wc -l
37
表明httpd进程有37个
3.分屏查看进程信息
[root@localhost ~]# ps aux | more
输出信息省略