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

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

1. 查看所有虚拟机磁盘使用量以及CPU 使用量信息

#!/bin/bash

virt‐df

read ‐n1 "按任意键继续" key

virt‐top

2. 使用shell 脚本打印如下图形:

#!/bin/bash

#打印第一组图片

#for(())为类C 语言的语法格式,也可以使用for i in;do ;done 的格式替换

#for((i=1;i<=9;i++))循环会执行9 次,i 从1 开始到9,每循环一次i 自加1

clear

for (( i=1; i<=9; i++ ))

do

for (( j=1; j<=i; j++ ))

do

echo ‐n "$i"

done

echo ""

done

read ‐n1 "按任意键继续" key

#打印第二组图片

clear

for (( i=1; i<=5; i++ ))

do

for (( j=1; j<=i; j++ ))

do

echo ‐n " |"

done

echo "_ "

done

read ‐n1 "按任意键继续" key

#打印第三组图片

clear

for (( i=1; i<=5; i++ ))

do

for (( j=1; j<=i; j++ ))

do

echo ‐n " *"

done

echo ""

done

for (( i=5; i>=1; i‐‐ ))

do

for (( j=1; j<=i; j++ ))

do

echo ‐n " *"

done

echo ""

done

3. 根据计算机当前时间,返回问候语,可以将该脚本设置为开机启动

#!/bin/bash

#00‐12 点为早晨,12‐18 点为下午,18‐24 点为晚上

#使用date 命令获取时间后,if 判断时间的区间,确定问候语内容

tm=$(date +%H)

if [ $tm ‐le 12 ];then

msg="Good Morning $USER"

elif [ tm‐gt12‐atm ‐gt 12 ‐a tm ‐le 18 ];then

msg="Good Afternoon $USER"

else

msg="Good Night $USER"

fi

echo "当前时间是:$(date +"%Y‐%m‐%d %H:%M:%S")"

echo ‐e "\033[34m$msg\033[0m"

4. 读取用户输入的账户名称,将账户名写入到数组保存

#!/bin/bash

#定义数组名称为name,数组的下标为i,小标从0 开始,每输入一个账户名,下标加1,继续存下一个账户

#最后,输入over,脚本输出总结性信息后脚本退出

i=0

while :

do

read ‐p "请输入账户名,输入over 结束:" key

if [ $key == "over" ];then

break

else

name[i]=i]=key

let i++

fi

done

echo "总账户名数量:${#name[*]}"

echo "${name[@]}"

5. 判断文件或目录是否存在

#!/bin/bash

if [ $# ‐eq 0 ] ;then

echo "未输入任何参数,请输入参数"

echo "用法:$0 [文件名|目录名]"

fi

if [ ‐f $1 ];then

echo "该文件,存在"

ls -l $1

else

echo "没有该文件"

fi

if [ ‐d $1 ];then

echo "该目录,存在"

ls ‐ld $2

else

echo "没有该目录"

fi

6. 打印各种时间格式

#!/bin/bash

echo "显示星期简称(如:Sun)"

date +%a

echo "显示星期全称(如:Sunday)"

date +%A

echo "显示月份简称(如:Jan)"

date +%b

echo "显示月份全称(如:January)"

date +%B

echo "显示数字月份(如:12)"

date +%m

echo "显示数字日期(如:01 号)"

date +%d

echo "显示数字年(如:01 号)"

date +%Y

echo "显示年‐月‐日"

date +%F

echo "显示小时(24 小时制)"

date +%H

echo "显示分钟(00..59)"

date +%M

echo "显示秒"

date +%S

echo "显示纳秒"

date +%N

echo "组合显示"

date +"%Y%m%d %H:%M:%S"

7. 使用egrep 过滤MAC 地址

#!/bin/bash

#MAC 地址由16 进制组成,如AA:BB:CC:DD:EE:FF

#[0‐9a‐fA‐F]{2}表示一段十六进制数值,{5}表示连续出现5 组前置:的十六进制

egrep "[0‐9a‐fA‐F]{2}(:[0‐9a‐fA‐F]{2}){5}" $1

8. 统计双色球各个数字的中奖概率

#!/bin/bash

#往期双色球中奖号码如下:

#01 04 11 28 31 32 16

#04 07 08 18 23 24 02

#02 05 06 16 28 29 04

#04 19 22 27 30 33 01

#05 10 18 19 30 31 03

#02 06 11 12 19 29 06

#统计篮球和红球数据出现的概率次数(篮球不分顺序,统计所有篮球混合在一起的概率)

awk '{print 1"\n"1"\n"2"\n"3"\n"3"\n"4"\n"5"\n"5"\n"6}' 1.txt |sort |uniq ‐c | sort

awk '{print $7}' 1.txt |sort |uniq ‐c | sort

9. 生成自签名私钥和证书

#!/bin/bash

read ‐p "请输入存放证书的目录:" dir

if [ ! ‐d $dir ];then

echo "该目录不存在"

exit

fi

read ‐p "请输入密钥名称:" name

#使用openssl 生成私钥

openssl genrsa ‐out dir/{dir}/{name}.key

#使用openssl 生成证书

#subj 选项可以在生成证书时,非交互自动填写Common Name 信息

openssl req ‐new ‐x509 ‐key dir/{dir}/{name}.key ‐subj "/CN=common" ‐out dir/{dir}/{name}.crt

10. 使用awk 编写的wc 程序

#!/bin/bash

#自定义变量chars 变量存储字符个数,自定义变量words 变量存储单词个数

#awk 内置变量NR 存储行数

#length()为awk 内置函数,用来统计每行的字符数量,因为每行都会有一个隐藏的$,所以每次统计后都+1

#wc 程序会把文件结尾符$也统计在内,可以使用cat ‐A 文件名,查看该隐藏字符

awk '{chars+=length($0)+1;words+=NF} END{print NR,words,chars}' $1

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

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

入口二:上云第一站

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

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

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

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

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

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
392 9
|
2月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
259 3
|
5月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
241 60
|
2月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
4月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
471 1
|
6月前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
161 17
|
6月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
181 4
|
6月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
367 3
|
7月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
592 25
|
7月前
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
566 28

热门文章

最新文章