一、for循环语句
1、根据姓名列表批量添加用户和删除用户
userdel -r 用户名 删除用户
2、根据IP地址列表检查主机状态
二、while循环语句
1、批量添加用户
2、猜价格游戏
三、case分支语句
1、检查用户输入的字符类型
2、编写系统服务脚本
1、编写getarp.sh脚本文件
(1)通过arping命令发送ARP请求,根据反馈结果记录MAC地址。
(2)将网段地址(如192.168.1.)赋值给变量NADD,作为检测地址的前缀。
(3)使用while循环语句,重复检测目标并记录MAC地址,主机地址从1-254。
[root@localhost ~]# vim getarp.sh
#!/bin/bash
1. 定义网段地址、MAC列表文件
NADD=“192.168.1.”
FILE="/etc/ethers"
2. 发送ARP请求,并记录反馈结果
[ -f $FILE ] && /bin/cp -f $FILE $FILE.old
HADD=1
while [ $HADD -lt 21 ]
do
ping -c 2 -i 0.2 -W 3
N
A
D
D
{NADD}
NADD{HADD} &> /dev/null
if [ $? -eq 0 ] ; then
arp -n | grep
N
A
D
D
{NADD}
NADD{HADD} | awk ‘{print $1,$3}’ >> $FILE
fi
let HADD++
done
[root@localhost ~]# chmod +x getarp.sh
[root@localhost ~]# ./getarp.sh
[root@localhost ~]# cat /etc/ethers
192.168.1.12 00:0C:29:C3:F8:51
192.168.1.110 00:50:56:C0:00:01
2、编写scanhost.sh脚本
(1)有很多方法可以检测一个主机是否开启匿名FTP服务,这里采取以wget下载工具访问FTP根目录的方式,若能够成功列表,则视为匿名FTP已开启,否则视为关闭。
(2)通过awk命令过滤出/etc/ethers文件中的所有IP地址,赋值给变量TARGET。
(3)使用for循环语句,读取TARGET变量中的IP地址,重复探测FTP开启情况。
[root@localhost ~]# vi scanhost.sh
#!/bin/bash
TARGET=$(awk ‘{print $1}’ /etc/ethers)
echo “以下主机已开放匿名FTP服务:”
for IP in
T
A
R
G
E
T
d
o
w
g
e
t
f
t
p
:
/
/
TARGET do wget ftp://
TARGETdowgetftp://IP/ &> /dev/null
if [ $? -eq 0 ] ; then
echo $IP
rm -rf index.html
fi
done
[root@localhost ~]# chmod +x scanhost.sh
[root@localhost ~]# ./scanhost.sh
以下主机已开放匿名FTP服务:
192.168.1.110
192.168.1.129