以下命令创建端口侦听器:
nc –l 5500 &
如下所示:
[root@xyz ~]# netstat -anlp | grep 5500
tcp 0 0 0.0.0.0:5500 0.0.0.0:* LISTEN
21085/nc
我想创建 100 个端口侦听器。
但语法如下:
$ for i in {10000..10100}; do nc -l $i &; done
给出错误:
bash: syntax error near unexpected token `;'
如何创建n个端口侦听器,仅用于测试?
测试完成后如何删除这些端口侦听器?
答案1
正如中提到的聊天,&
是一个语句终止符,就像;
, 所以;
前面done
不应该出现:
for i in {10000..10100}; do nc -l "$i" & done
或者,
for i in {10000..10100}; do
nc -l "$i" &
done
nc
您可以使用终止所有进程pkill nc
。
或者,将每个进程的 PID 保存nc
在一个数组中,并使用该数组杀死它们:
pids=()
for i in {10000..10100}; do
nc -l "$i" & pids+=("$!")
done
之后:
kill "${pids[@]}"
显然,这假设没有任何nc
命令的 PID 已被其他进程回收。
正如 roaima 在评论中指出的那样,大括号扩展{10000..10100}
扩展到 101 个数字,而不是 100。