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折起
入口七:阿里云最新活动中心
入口八:中小企业权益满减礼包