ZenOven's Archivers

From zenoven on 2018-05-17 09:40:27

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


[code lang="bash"]lsof -i:3000 | grep node | awk '{ print $2 }' | xargs kill[/code]


[code lang="bash"]lsof -i:3000[/code]

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

[code lang="bash"]grep node[/code]

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

[code lang="bash"]awk '{ print $2 }'[/code]

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


[code lang="bash"]xargs kill[/code]

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

[code lang="bash"]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[/code]

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

参考文章


查看完整版本: 一行命令kill所有被node占用端口

From 资优 on 2019-05-17 11:05:32

技术文章啊,谢谢分享。

Tags: awk, bash, grep, kill, lsof, shell, xargs


©ZenOven