如何杀死所有匹配名称的进程?
假设我想杀死包含amarok这个词的每一个进程。 我可以打印出我想要执行的命令。 但是我怎么才能让shell执行它们。 即。
ps aux | grep -ie amarok | awk '{print "kill -9 " $2}' Output: kill -9 3052 kill -9 3071 kill -9 3076 kill -9 3077 kill -9 3079 kill -9 3080 kill -9 3082 kill -9 3083 kill -9 3084 kill -9 3085 kill -9 3086 kill -9 3087 kill -9 3088 kill -9 3089 kill -9 4031  从man 1 pkill 
 -f The pattern is normally only matched against the process name. When -f is set, the full command line is used. 
 这意味着,例如,如果我们在ps aux看到这些行: 
 apache 24268 0.0 2.6 388152 27116 ? S Jun13 0:10 /usr/sbin/httpd apache 24272 0.0 2.6 387944 27104 ? S Jun13 0:09 /usr/sbin/httpd apache 24319 0.0 2.6 387884 27316 ? S Jun15 0:04 /usr/sbin/httpd 
 我们可以使用pkill -f选项杀死它们: 
 pkill -f httpd 
 ps aux | grep -ie amarok | awk '{print $2}' | xargs kill -9 
  xargs(1):xargs  – 构造参数列表并执行实用程序。 当你想把参数传给像kill或ls这样的东西时ls 。 
 使用pgrep 
 kill -9 $(pgrep amarok) 
安全的方法是:
 pkill -f amarok 
我觉得这个命令killall正是你所需要的。 该命令被描述为“按名称杀死进程”。它很容易使用
 killall chrome 
这个命令将会终止Chrome的所有进程。这里是关于killall命令的链接
http://linux.about.com/library/cmd/blcmdl1_killall.htm
希望这个命令可以帮助你。
pkill -x完全匹配进程名称。
 pkill -x amarok 
pkill -f是相似的,但允许正则expression式模式。
请注意,没有其他参数(例如-x,-f)的pkill将允许在进程名称上进行部分匹配。 所以“pkill amarok”会杀死amarok,amarokBanana,bananaamarok等。
我希望-x是默认行为!
 如果你想执行一个命令的输出,你可以把它放在$(...) ,但是对于你的特定任务来看看killall和pkill命令。 
你也可以把你的输出作为一个子过程来评估,把所有的东西用back ticks或放在$()里面:
 `ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'` $(ps aux | grep -ie amarok | awk '{print "kill -9 " $2}') 
 尝试杀死-s 9 ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}'  ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}'杀死11月11日的进程或者kill -s 9 ps -ef |grep amarok|grep -v grep | awk '{print $2}'  ps -ef |grep amarok|grep -v grep | awk '{print $2}'杀死包含amarok这个词的进程 
也许添加命令到可执行文件,设置+ x权限,然后执行?
 ps aux | grep -ie amarok | awk '{print "kill -9 " $2}' > pk;chmod +x pk;./pk;rm pk