ecs服务器shell常用脚本练习(二)

简介: 【4月更文挑战第1天】shell代码训练(二)

1. 编写脚本,实现人机<石头,剪刀,布>游戏

game=(石头 剪刀 布)

num=$[RANDOM%3]

computer=${game[$num]}

#通过随机数获取计算机的出拳

#出拳的可能性保存在一个数组中,game[0],game[1],game[2]分别是3 中不同的可能

echo "请根据下列提示选择您的出拳手势"

echo "1.石头"

echo "2.剪刀"

echo "3.布"

read ‐p "请选择1‐3:" person

case $person in

1)

if [ $num ‐eq 0 ];then

echo "平局"

elif [ $num ‐eq 1 ];then

echo "你赢"

else

echo "计算机赢"

fi;;

2)

if [ $num ‐eq 0 ];then

echo "计算机赢"

elif [ $num ‐eq 1 ];then

echo "平局"

else

echo "你赢"

fi;;

3)

if [ $num ‐eq 0 ];then

echo "你赢"

elif [ $num ‐eq 1 ];then

echo "计算机赢"

else

echo "平局"

fi;;

*)

echo "必须输入1‐3 的数字"

esac

2. 编写脚本测试192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(for 版本)

#!/bin/bash

for i in {1..254}

do

ping ‐c2 ‐i0.3 ‐W1 192.168.4.$i &>/dev/null

if [ $? –eq 0 ];then

echo "192.168.4.$i is up"

else

echo "192.168.4.$i is down"

fi

done

3. 编写脚本测试192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(while 版本)

#!/bin/bash

i=1

while [ $i ‐le 254 ]

do

ping ‐c2 ‐i0.3 ‐W1 192.168.4.$i &>/dev/null

if [ $? –eq 0 ];then

echo "192.168.4.$i is up"

else

echo "192.168.4.$i is down"

fi

let i++

done

4. 编写脚本测试192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(多进程版)

#定义一个函数,ping 某一台主机,并检测主机的存活状态

myping(){

ping ‐c2 ‐i0.3 ‐W1 $1 &>/dev/null

if [ $? ‐eq 0 ];then

echo "$1 is up"

else

echo "$1 is down"

fi

}

for i in {1..254}

do

myping 192.168.4.$i &

done

#使用&符号,将执行的函数放入后台执行

#这样做的好处是不需要等待ping 第一台主机的回应,就可以继续并发ping 第二台主机,依次类推。

5. 编写脚本,显示进度条

#!/bin/bash

jindu(){

while :

do

echo ‐n '#'

sleep 0.2

done

}

jindu &

cp ‐a $1 $2

killall $!

echo "拷贝完成''

6. 进度条,动态时针版本

#!/bin/bash

#定义一个显示进度的函数,屏幕快速显示| / ‐ \

rotate_line(){

INTERVAL=0.1 #设置间隔时间

COUNT="0" #设置4 个形状的编号,默认编号为0(不代表任何图像)

while :

do

COUNT=`expr $COUNT + 1` #执行循环,COUNT 每次循环加1,(分别代表4 中不同的形状)

case $COUNT in #判断COUNT 的值,值不一样显示的形状就不一样

"1") #值为1 显示‐

echo ‐e '‐'"\b\c"

sleep $INTERVAL

;;

"2") #值为2 显示\\,第一个\是转义

echo ‐e '\\'"\b\c"

sleep $INTERVAL

;;

"3") #值为3 显示|

echo ‐e "|\b\c"

sleep $INTERVAL

;;

"4") #值为4 显示/

echo ‐e "/\b\c"

sleep $INTERVAL

;;

*) #值为其他时,将COUNT 重置为0

COUNT="0";;

esac

done

}

rotate_line

17. 9*9 乘法表(编写shell 脚本,打印9*9 乘法表)

#!/bin/bash

for i in `seq 9`

do

for j in `seq $i`

do

echo ‐n "$i*$j=$[i*j] "

done

echo

done

8. 使用死循环实时显示eth0 网卡发送的数据包流量

while :

do

echo '本地网卡eth0 流量信息如下: '

ifconfig eth0 | grep "RX pack" | awk '{print $5}'

ifconfig eth0 | grep "TX pack" | awk '{print $5}'

sleep 1

done

9. 使用user.txt 文件中的人员名单,在计算机中自动创建对应的账户并配置初始密码

#!/bin/bash

#本脚本执行,需要提前准备一个user.txt 文件,该文件中包含有若干用户名信息

for i in `cat user.txt`

do

useradd $i

echo "123456" | passwd ‐‐stdin $i

done

10. 编写批量修改扩展名脚本,如批量将txt 文件修改为doc 文件

#!/bin/bash

#执行脚本时,需要给脚本添加位置参数

#脚本名 txt doc(可以将txt 的扩展名修改为doc)

#脚本名 doc jpg(可以将doc 的扩展名修改为jpg)

for i in "ls *.$1"

do

mv $i ${i%.*}.$2

done

如果想上手操作练代码的同学们可以通过阿里云ecs服务器免费试用参与!

入口一:新老同学免费试用

入口二:上云第一站

入口三:学生版超低价云服务器

入口四:云服务器专享特惠版

入口五:云服务器特惠1.5折起

入口七:阿里云最新活动中心

入口八:中小企业权益满减礼包

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
75 1
|
18天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
42 2
6种方法打造出色的Shell脚本
|
4天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
14 1
|
9天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
23 2
|
22天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
43 6
|
19天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
35 1
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
69 4
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
57 3
|
1月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
51 2