局域网扫描工具是计算机网络里面的,ip地址是每台机器上都需要的一个地址,在网络上与其他机器通信使用,类似于手机号码
想知道哪些ip地址在使用,哪些没有使用?需要记录下来,使用的ip记录到up.txt,没有使用的记录到down.txt
用到的知识介绍:
网络通信的测试工具:ping
[root@www shell]# time ping 192.168.1.2 -c 1 -W 1
-c 发生ping包的数量 count
-W timeout 超时时间
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
--- 192.168.1.2 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
real 0m1.004s
user 0m0.002s
sys 0m0.002s
/dev/null 特殊的文件,任何的内容存放到这个文件里,都会不保存,直接删除
&> 不管是正确的输出还是错误的输出 都重定向到文件里
重定向: 就是将本来应该在屏幕上的输出,重新改变了输出的方向,往文件里输出
重定向可以实现在linux shell帮助保存内容到文件里
> 正确的输出重定向,会覆盖原来文件里的内容
>> 追加输出重定向,不会覆盖原来文件里的内容,只会在文件的末尾追加
[root@www shell]# time ping 192.168.1.2 -c 1 -W 1 &>/dev/null 不想看到ping命令的输出,也不保存
串行:按照顺序执行
并行: 同时执行
shell编程里的多进程思想
把ping命令可以同时由很多个进程去执行,加快速度
具体代码实现:
#!/bin/bash#清空文件的内容>up.txt>down.txt#扫描192.168.1.1~254的ipfor i in {1..254}do( if ping -c 1 -W 1 192.168.1.$i &>/dev/null ;thenecho "192.168.1.$i up"|tee -a up.txtelseecho "192.168.1.$i down" echo "192.168.1.$i" >>down.txtfi )&donewait
(命令)& 启动一个子进程到后台去执行命令
wait 是父进程等待所有的子进程执行完毕,再退出
如果不执行wait,父进程执行完毕后,操作系统会将所有的子进程杀死
总结:
1.for循环
2.if判断
3.ping
4.重定向
>
>>
&>
5.父进程和子进程 wait
6.多进程
7.黑洞文件 /dev/null