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

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 【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折起

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

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

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形3
【4月更文挑战第29天】
4 0
|
1天前
|
存储 弹性计算 运维
使用shell 脚本打印图形2
【4月更文挑战第29天】
5 0
|
1天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形1
【4月更文挑战第29天】
5 0
|
1天前
|
存储 弹性计算 运维
调整虚拟机内存参数的shell 脚本
【4月更文挑战第29天】
6 0
|
1天前
|
弹性计算 运维 Shell
从shell脚本发送邮件
【4月更文挑战第29天】
9 0
|
1天前
|
弹性计算 运维 Shell
使用 shell 脚本打印图形
【4月更文挑战第29天】
7 1
|
1天前
|
存储 弹性计算 运维
调整虚拟机内存参数的 shell 脚本
【4月更文挑战第29天】
10 2
|
2天前
|
关系型数据库 MySQL Shell
备份 MySQL 的 shell 脚本(mysqldump版本)
【4月更文挑战第28天】
7 0
|
2天前
|
弹性计算 运维 Shell
每天解析一个shell脚本(82)
【4月更文挑战第28天】shell脚本解析及训练(82)
6 1
|
2天前
|
弹性计算 运维 Shell
每天解析一个shell脚本(68)
【4月更文挑战第28天】shell脚本解析及训练(68)
6 0

热门文章

最新文章