一行命令kill所有被node占用端口

GD Star Rating
loading...
lsof -i:3000 | grep node | awk '{ print $2 }' | xargs kill
lsof -i:3000

列出所有占用3000端口的文件

grep node

过滤结果,使其只包含有node的行

awk '{ print $2 }'

awk对每一行进行处理 ,以空白符(空格、tab等)将每行数据分割,$0为所有数据,$N为第N列

  • 可以用-F命令来指定分隔符,如 awk -F ‘:’
xargs kill

xargs将管道中的读取的数据作为参数传递给kill

cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh

awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。

  • 开始时执行{print “name,shell”}
  • 循环执行 {print $1″,”$7}
  • 结束时执行 {print “blue,/bin/nosh”}

参考文章

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.