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
目录
相关文章
|
7天前
|
运维 Linux 程序员
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
|
10天前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
|
10天前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
|
12天前
|
分布式计算 Hadoop Shell
使用shell脚本实现自动SSH互信功能
使用shell脚本实现自动SSH互信功能
23 1
|
12天前
|
Unix Shell Linux
轻松编写 AIX Shell 脚本
轻松编写 AIX Shell 脚本
15 1
|
12天前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
12天前
|
关系型数据库 MySQL Shell
在Centos7中利用Shell脚本:实现MySQL的数据备份
在Centos7中利用Shell脚本:实现MySQL的数据备份
|
12天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
31 5
|
12天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
12天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)