2.2.1 显示进程

你可以通过ps命令查看系统上运行的进程。ax选项可以显示所有用户的所有进程,u选项可以指定显示某一名用户的进程;w和ww可以针对输出的格式进行设定。

可以亲手试一试ps auxww以及其他的一些组合。你会发现这里命令的可选项前面没有加“-”,这是因为这个命令是从早期UNIX的ps一直延续下来的。也有一些UNIX的其他分支对ps命令做了改进,所以你可能会看到ps -e这样的命令。

ps aux返回的列表有很多项,包括用户名、PID等,其中第一个进程init对应的PID是1。

接下来要学习的kill命令与PID有关。如果你想要杀掉一个程序,并且知道它的PID是3012,那么只需要输入“kill 3012”即可。想要快速找到一个程序的PID,比如说vi工具的PID,输入

      $ ps aux | grep -i vi

一般来说,-i选项不是必需的,但是加上它可以确保你免受大小写问题的干扰。killall命令加上程序名比如说killall firefox也可以关闭一个进程。

现在来看一个稍微复杂点的示例:

      kill $(ps aux | grep '[f]irefox' | awk '{print $2}')

先来谈一谈awk。这里不会深入介绍它,你只需要知道它只是用来打印输出的第二列,也就是PID;除此以外,[f]这个小技巧可以防止grep进程自己被包括进输出信息。