加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell脚本——日常练手

发布时间:2020-12-15 21:34:00 所属栏目:安全 来源:网络整理
导读:1、猜数小游戏 关键点:命令写法 1、 $RANDOM 的使用格式 2、反引号 用于 执行命令 3、let 整数 自加1的用法 4、引用局部变量, ${ } 格式 5、elif 后面也要跟 ;then #!/bin/ bash# *************猜数游戏************* i = 0 #记录猜数次数num2 =` echo $RA

1、猜数小游戏

关键点:命令写法

1、$RANDOM 的使用格式

2、反引号 用于执行命令

3、let 整数自加1的用法

4、引用局部变量,${ }格式

5、elif 后面也要跟 ;then

#!/bin/bash
#*************猜数游戏*************

i=0             #记录猜数次数
num2=`echo $RANDOM | cut -c 1-2`        #目标数指定随机值

while true      #死循环
do
    read -p "请输入两位整数:" num1     #输入竞猜初始值
    if [ ${num1} -gt ${num2} ];then     #如果猜的比目标数大
        echo "比 ${num1} 小"    #提示输入值偏大
        let i++                 #猜错次数加1    
    elif [ ${num1} -lt ${num2} ];then   #如果猜的比目标数小     
        echo "比 ${num1} 大"    #提示输入值偏小
        let i++                 #猜错次数加1
    else
        echo "猜对了:就是 ${num2} "    #输出猜对的结果
        echo "一共猜错了 ${i} 次 "      #输出猜错次数
        break                   #跳出循环
    fi
done

?

2、局域网检查上线ip并保存在线ip

关键点:美观度调整方法

1、调用内部文件方法?.[空格]??

2、echo -n 不空行输出

3、"黑洞文件" /dev/null 该目录存放条件判断结果,不会呈现给用户,使输出简洁

4、使用 nohup bash ping_ip.sh &  屏蔽ping的过程 ("&"指在后台运行  "nohup"指关闭终端仍继续运行)

  可使用 ps aux | grep "ping_ip.sh"? 过滤出来后,使用kill -9 终止

#!/bin/bash
#*********************检测同网段中ip**********************

. /etc/init.d/functions         #调用内部文件
ip=192.168.9.                   #指定网段
for i in `seq 1 255`            #截取从1~255的ip
do
    if ping -c 1 -w 1 ${ip}${i} &>/dev/null ;then       #ping ip反馈信息写入黑洞文件
        echo -n "${ip}${i}"             #打印ip
        success         #使用functions函数,美观展示
        echo ""
        echo "${ip}${i}">>/root/bash/ping_ip.txt        #将在线ip输出至文档
        #echo "${ip}${i} 在线"
    else
        echo -n "${ip}${i}"             #打印ip
        failure         #使用functions函数,美观展示
        echo ""
        #echo "${ip}${i} 不在线"
    fi
done

?

?

?3、打印九九乘法表

关键点:嵌套

1、注意嵌套缩进

#!/bin/bash
#**********************九九乘法表*****************
for i in `seq 1 9`      #取数字1~9
do
    for j in `seq ${i} 9`       #取数字从i~9
    do
        echo -n " ${i} * ${j} = $((i*j))  " #相乘不换行
    done
    echo -e "n"        #第一个因数改变后换行
done

?

?

?

?4、批量创建用户并设置8位加密密码,可登陆

关键点:

1、加密方法——key=`echo $RANDOM | md5sum | cut -c 1-8`

2、账号密码匹配——echo "${key} | passwd --stdin user${i}"

#!/bin/bash
#********************批量创建用户并设置随机登录密码*******************
for i in `seq 1 100`    #取数1~100
do
    useradd user${i}    #批量建立用户user1~user100
    key=`echo $RANDOM|md5sum|cut -c 1-8`        #制作加密密码
    echo ${key}|passwd --stdin user${i}         #账号密码匹配
    echo -e "账号:user${i} n密码:${key}" >> /root/bash/passwd_100.txt        #将生成的账户密码写入文件保存
done

5、重启服务

关键点:

1、shell变量 $? 可以反馈上一步命令执行状况

#!/bin/bash
systemctl restart network       #重启网卡
if [ "$?" == 0 ];then   #判断前一步是否执行成功
    echo "成功重启"
else
    echo "失败"
fi

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读