一些Shell经典脚本
编写hello world脚本
#!/bin/bash# 编写hello world脚本echo "Hello World!"
通过位置变量创建 Linux 系统账户及密码
#!/bin/bash# 通过位置变量创建 Linux 系统账户及密码#$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数
useradd "$1"
echo "$2" | passwd ‐‐stdin "$1"
备份日志
#!/bin/bash
# 每周 5 使用 tar 命令备份/var/log 下的所有日志文件
# vim /root/logbak.sh
# 编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖
# 注意 date 命令需要使用反引号括起来,反引号在键盘<tab>键上面
tar -czf log-`date +%Y%m%d`.tar.gz /var/log # crontab ‐e #编写计划任务,执行备份脚本
00 03 * * 5 /root/logbak.sh
监控内存和磁盘容量,小于给定值时报警
#!/bin/bash# 实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员# 提取根分区剩余空间
disk_size=$(df / | awk '/\//{print $4}')# 提取内存剩余空间
mem_size=$(free | awk '/Mem/{print $4}')
while :
do
# 注意内存和磁盘提取的空间大小都是以 Kb 为单位
if [ $disk_size -le 512000 -a $mem_size -le 1024000 ]
thenmail ‐s "Warning" root <<EOFInsufficient resources,资源不足
EOF
fi
done
猜数字游戏
#!/bin/bash# 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了,
# 猜小了或猜大了,直至用户猜对脚本结束。# RANDOM 为系统自带的系统变量,值为 0‐32767的随机数
# 使用取余算法将随机数变为 1‐100 的随机数
num=$[RANDOM%100+1]
echo "$num"# 使用 read 提示用户猜数字
# 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),
# ‐lt(小于),‐le(小于等于)
while :
doread -p "计算机生成了一个 1‐100 的随机数,你猜: " caiif [ $cai -eq $num ]thenecho "恭喜,猜对了"exitelif [ $cai -gt $num ]thenecho "Oops,猜大了"elseecho "Oops,猜小了"fi
done
破解密码
# 使用二个嵌套的循环生成密码,并将生成的密码传递给A,最终将结果写入到log文件。
#!/bin/bash
while read i; dowhile read ii; dopassword="$i$ii"result=$(./A -t "$password")echo "$result-$password" >> log.txt &sleep 0.01done < st.txt
done < st.txt
输入三个数并进行升序排序
#!/bin/bash# 依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字
read -p "请输入一个整数:" num1
read -p "请输入一个整数:" num2
read -p "请输入一个整数:" num3
# 不管谁大谁小,最后都打印 echo "$num1,$num2,$num3"
# num1 中永远存最小的值,num2 中永远存中间值,num3 永远存最大值
# 如果输入的不是这样的顺序,则改变数的存储顺序,如:可以将 num1 和 num2 的值对调
tmp=0
# 如果 num1 大于 num2,就把 num1 和和 num2 的值对调,确保 num1 变量中存的是最小值
if [ $num1 -gt $num2 ];then tmp=$num1num1=$num2num2=$tmp
fi
# 如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值
if [ $num1 -gt $num3 ];then tmp=$num1num1=$num3num3=$tmp
fi
# 如果 num2 大于 num3,就把 num2 和 num3 对标,确保 num2 变量中存的是小一点的值
if [ $num2 -gt $num3 ];thentmp=$num2num2=$num3num3=$tmp
fi
echo "排序后数据(从小到大)为:$num1,$num2,$num3"
石头、剪刀、布游戏
#!/bin/bash# 编写脚本,实现人机<石头,剪刀,布>游戏
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 ]thenecho "平局"elif [ $num -eq 1 ]thenecho "你赢"elseecho "计算机赢"fi;;
2) if [ $num -eq 0 ]thenecho "计算机赢"elif [ $num -eq 1 ]thenecho "平局"elseecho "你赢"fi;;
3)if [ $num -eq 0 ]thenecho "你赢"elif [ $num -eq 1 ]thenecho "计算机赢"elseecho "平局"fi;;
*)echo "必须输入 1‐3 的数字"
esac
9*9 乘法表
#!/bin/bash# 9*9 乘法表(编写 shell 脚本,打印 9*9 乘法表)
for i in `seq 9`
dofor j in `seq $i`doecho -n "$j*$i=$[i*j] "doneecho
done
编写批量修改扩展名脚本
#!/bin/bash# 编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件
# 执行脚本时,需要给脚本添加位置参数
# 脚本名 txt doc(可以将 txt 的扩展名修改为 doc)
# 脚本名 doc jpg(可以将 doc 的扩展名修改为 jpg)for i in `ls *.$1`
domv $i ${i%.*}.$2
done
dd重装系统
wget -N --no-check-certificate https://raw.githubusercontent.com/veip007/dd/master/InstallNET.sh && chmod +x InstallNET.sh && ./InstallNET.sh -d 10 -v 64 -p "自定义root密码" -port "自定义ssh端口"
openssl生成自签名证书
通过openssl生成私钥
openssl genrsa -out server.key 2048
# 根据私钥生成证书申请文件csr
openssl req -new -key server.key -out server.csr
# 使用私钥对证书申请进行签名从而生成证书
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650
常用的脚本备份
https://archives.vip/6.html
一些Shell经典脚本相关推荐
- shell经典脚本或命令行
查看文件或目录大小 ~$du -h file_path //查看某个文件大小,并显示易读的单位 ~$du -ah //查看当前目录下及其子目录下所有文件的大小 生成自签名证书 create-ca.sh ...
- linux常用shell命令面试,shell经典笔试题目总结
shell经典笔试题目总结 守望者整理了一些高手的博客记录的shell面试题分享给大家,有些比较有意思,帮助大家面试或则学习shell编程的学习例子 一 文件内容如下: 100 a 1 ...
- shell经典面试题根据文件创建用户名及密码(亲测)
转载来源 :shell经典面试题根据文件创建用户名及密码 : https://www.jianshu.com/p/eeb455eef7ca 01 前言 shell脚本已经学习了很长一段时间了,现在时不 ...
- python编程一个正方体的代码_Linux Shell经典面试题之请用shell或Python编写一个正方形(square.sh),接受用户输入的数字...
Linux Shell经典面试题 1.请用shell或Python编写一个正方形(square.sh),接受用户输入的数字. [root@oldboy ~]# sh square1.sh Please ...
- 23个shell实用脚本
shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的有效方式.区区几行代码,就可以让计算机接近按照你的意图行事. 为大家整理了23个实例,通过23个 ...
- Linux学习系列五:Shell命令脚本的基本语法
这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...
- lnmp shell安装脚本
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.LNMP是现在大多数大型公司在用的web环境,nginx小巧高效的web服务器和反向代理服务器,相对于apach占 ...
- Linux shell 自启动脚本写法
# ********************************************************************** # Linux shell 自启动脚本写法 # 说明: ...
- linux Shell(脚本)编程入门实例讲解详解
linux Shell(脚本)编程入门实例讲解详解 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集, ...
最新文章
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个...
- 皮一皮:打完疫苗千万别睡太死...
- vs2015上使用github进行版本控制
- Python 技术篇-1行代码实现语音识别,speech库快速实现简单的语音对话
- mkyaffs2image的用法
- 使用JShell的Java 9 Streams API
- leetcode 327. 区间和的个数(treemap)
- 《TCP/IP详解》学习笔记(五):IP选路、动态选路
- IOT---(7)Android Things 入门
- 图解Golang的GC算法
- Python数据结构与算法笔记(八):数据结构——树,二叉树和AVL树
- Python 科学计算—— 数值问题
- 【渝粤教育】国家开放大学2019年春季 1013金融统计分析 参考试题
- 解决PowerDesigner 错误:Invalid repository user or password!
- NYOJ770 仿射密码
- multisim C语言编程,基于Multisim10的51单片机仿真实战教程:使用汇编和C语言
- 应用物理学属于计算机,应用物理学专业属于什么学科
- python模拟内置函数reversed()_Python 3 内置函数 reversed( )
- AWS如何安全顺利关闭所有的免费服务
- sql中不用group by分组进行计总
热门文章
- 好社群的选择标准是什么?如何创建付费社群渠道?
- 《三国演义》之人物出场统计
- 计算机毕业设计论文该怎么写?软件工程毕设选题推荐有哪些;计算机毕业设计不会做怎么办;怎么做什么简单;电子信息工程毕业设计要做到什么程度
- C语言微信控制windows电脑代码,Windows电脑版微信实现多开 无需第三方软件(bat命令实现)...
- Altium Designer18之修改画图光标大小
- 计算机扫描变文档,原来电脑上的扫描仪功能这么好用!纸质文档轻松转为电子格式...
- 个人和企业如何注册腾讯云账号?
- java poi操作word模版 导出word文档(附工具类)
- 【西祠日志】【17】初识AngularJS,下一代Web应用的前端
- MPLS 次末跳弹出配置_中东版2019款三菱帕杰罗V97配置详情介绍