网络安全学习--脚本编写规则变量定义P177-P181

脚本

什么是脚本?脚本的作用
脚本是在一个文件中写上所需要的命令行,按顺序执行,中间有错可能会退出。

脚本格式

vim fixip.sh
脚本格式
#!/bin/bash  第一行声明该脚本是用何命令显示器运行的
第二行写脚本的作用,脚本创建的时间,和联系方式之类的,也可不写
#!/bin/bash
cd /etc/sysconfig/network-scripts/
echo "DEVICE=ens33" > ifcfg-ens33
echo "TYPE=Ethernet" >> ifcfg-ens33
echo "ONBOOT=yes" >> ifcfg-ens33
echo "BOOTPROTO=static" >> ifcfg-ens33
echo "IPADDR=192.168.1.100" >> ifcfg-ens33
echo "NETMASK=255.255.255.0" >> ifcfg-ens33
echo "GATEWAY=192.168.1.254" >> ifcfg-ens33
ifdown ens33
ifup ens33

[root@a ~]# chmod +x fixip.sh   //给文件一个执行权限
[root@a ~]# ./fixip.sh  //执行
[root@a ~]# ifconfig  //查看结果

交互式脚本

交互式脚本涉及变量赋值

read -p "please input ipaddr:" IP  //把输入的值给IP
read -p "please input netmask:" MASK
read -p "please input gateway:" WAY
cd /etc/sysconfig/network-scripts/
echo "DEVICE=ens33" > ifcfg-ens33
echo "TYPE=Ethernet" >> ifcfg-ens33
echo "ONBOOT=yes" >> ifcfg-ens33
echo "BOOTPROTO=static" >> ifcfg-ens33
echo "IPADDR=$IP" >> ifcfg-ens33  //IP的值给ipaddr
echo "NETMASK=$MASK" >> ifcfg-ens33
echo "GATEWAY=$WAY" >> ifcfg-ens33
ifdown ens33
ifup ens33

if判断语句

语法缩进无要求

单分支语句

if 语句
then 成立 子语句
fi

#! /bin/bash
 if [ 3 -lt 5 ]  //'-lt' 表示小于 
then echo "yes"
fi

双分支语句

if 语句
then 成立 子语句
else 不成立 子语句
fi

#! /bin/bash
read -p "please input a num:" NUM
if [ $NUM -lt 5 ]
then echo "lt"
elif [ $NUM -eq 5 ]
then echo "eq"
else echo "gt"
fi       
ip add // 也可以查看id
ping -c2 -i0.2 -w2 12.34.56.79  //-c 发包数2,-i 间隔时间0.2, -w 等待时间2
ping -c2 -i0.2 -w2 12.34.56.79 &> /dev/null 把导出的信息全部导入进该文档,不显示

vim ping.sh
#! /bin/bash
read -p "please input ipaddr:" IP
if `ping -c2 -i0.2 -w2 $IP &> /dev/null`
then echo "$IP is up"
else echo "$IP is down"
fi
    

循环语句

for while
for 根据取值列表循环
while根据条件进行循环

for循环

for 变量 in 取值列表 //根据赋值变量的次数 进行子语句的执行1 2 3 4 5…10
do
子语句
done

#! /bin/bash
NET=10.0.110.
for IP in {1..254}
do
if `ping -c2 i0.2 -W2 $NET$IP &> /dev/null`
then echo -e "$NET$IP is \033[31mup\033[0m"
else echo -e "$NET$IP is \033[32mdown\033[0m"
fi
done

while循环

while 条件
do
子语句
done

NET=10.0.110.
IP=0
while [ $IP -lt 254 ]
do
let IP=IP+1
if `ping -c2 i0.2 -W2 $NET$IP &> /dev/null`
then echo -e "$NET$IP is \033[31mup\033[0m"
else echo -e "$NET$IP is \033[32mdown\033[0m"
fi
done

case 语句

要求写一个满足以下要求的脚本
./case.sh centos
redhat

./case.sh redhat
centos

./case.sh xxxx
usage case.sh{redhat|cenots}

case 语句格式
case 变量 in
模式1)
子语句
;;
*)
子语句

esac

case $1 in
redhat)
echo "centos"
;;
centos)
echo "redhat"
;;
*)
echo "Useage $0 {redhat|centos}"
esac

加上函数后的脚本

redhat(){
echo centos
return 0
}
centos(){
echo redhat
return 0
}


case $1 in
redhat)
centos
;;
centos)
redhat
;;
*)
echo "Useage $0 {redhat|centos}"
esac
  

函数

将一部分代码存储到一个变量中
设计一个函数名字叫A
运行A的时候屏幕输出ok

[root@a ~]# A(){
> echo OK
> }
[root@a ~]# A

root@a ~]# find /etc/ -name httpd  //查早名为httpd的文件
chkconfig --list httpd

nginx脚本

#!/bin/bash
#chkconfig: - 84 18
#description:nginx script
nginx=/usr/local/nginx/sbin/nginx
start(){
echo "nginx starting...[ok]"
$nginx
}
status() {
if `ss -antpl | grep nginx > /dev/null`
then echo "nginx starting ..."
else echo "nginx stoping..."
fi
}
stop(){
echo "nginx stoping ...[ ok ]"
$nginx -s stop
}
case $1 in
start)
start;;
stop)
stop;;
status)
status;;
restart)
stop
start;;
*)echo "Usage :$0 {start|stop|status|restart}"
esac
chkconfig : - 85 15  //表明是接受chkconfig控制,- 代表几个运行级别,85 代表是第几个启动的第几个关闭的,
description:

chkconfig --add nginxd  //把nginxd加入到chkconfig的控制下
chkconf --list nginxd   //此时就可以看到nginxd的状态了
chkconfig --level 5 nginxd on  //让五级别默认是开启的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值