![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shell脚本集合
文章平均质量分 92
汇总了常用的shell脚本,内容丰富而充实,层次简单而明了,是您学习shell脚本最优的选择!
博博的博客
这个作者很懒,什么都没留下…
展开
-
shell脚本实现samba一键安装,并设置共享目录
【要求】实现一键安装并配置samba服务,执行该脚本时需要带一个共享的路径,它是共享的目录,目录若存在,需自动创建samba。要求,任何人都可以访问,并且不需要密码,并且是只读的。vi /opt/samba.sh#!/bin/bashif [ "$#" -ne 1 ]then echo "运行脚本格式为:$0 /dir/"exit 1else if ! echo $1 |grep -q '^/.*' then echo "请提供一个绝对路径!"原创 2020-08-27 22:17:14 · 1072 阅读 · 0 评论 -
Shell编程规范与变量----------带你如何去更好的玩shell
文章目录一、Shell脚本的概述1.1 Shell的作用1.1.1 Shell脚本的概念1.1.2 Shell脚本应用场景1.1.3 Shell的作用1.2 Shell编程规范1.3 重定向与管道二、Shell脚本变量2.1 自定义变量2.2 特殊变量一、Shell脚本的概述1.1 Shell的作用1.1.1 Shell脚本的概念 ● 将要执行的命令按顺序保存到一个文本文件 ● 给该文件可执行权限 ● 可结合各种Shell控制语句以完成更复杂的操作1.1.2 Shell脚本应用场景 ● 重原创 2020-08-10 19:28:41 · 589 阅读 · 0 评论 -
Shell脚本---------------正则表达式与文本处理器------很详细!!
文章目录一、正则表达式1.1 基础正则表达式1.1.1 正则表达式概述1.1.2 基础正则表达式元字符1.2 扩展正则表达式二、 文件处理器2.1 sed2.1.1 sed工具概述2.1.2 sed的命令格式2.1.3 sed用法示例2.2 awk2.3 sort2.4 uniq2.5 tr一、正则表达式1.1 基础正则表达式1.1.1 正则表达式概述■正则表达式定义●正则表达式,又称正规表达式、常规表达式●使用字符串来描述、匹配一系列符合某个规则的字符串●正则表达式组成◆普通字符大小写原创 2020-08-20 20:17:02 · 511 阅读 · 0 评论 -
Shell-----------Shell编程之循环语句与函数
文章目录一、循环语句1.1 for循环语句1.1.1 for语句的结构1.2 while循环语句1.3 until循环语句二、 Shell函数三、 Shell数组一、循环语句1.1 for循环语句1.1.1 for语句的结构1.2 while循环语句1.3 until循环语句二、 Shell函数三、 Shell数组...原创 2020-08-13 17:06:44 · 591 阅读 · 0 评论 -
Shell脚本-----------编程之条件语句-------基础知识汇总
文章目录一、条件测试1.1 文件测试与整数测试1.1.1 test命令1.2 字符串测试与逻辑测试二、 if语句2.1 if单分支语句2.2 if双分支语句2.3 if多分支语句三、case分支语句一、条件测试1.1 文件测试与整数测试1.1.1 test命令●测试表达式是否成立,若1.2 字符串测试与逻辑测试二、 if语句2.1 if单分支语句2.2 if双分支语句2.3 if多分支语句三、case分支语句...原创 2020-08-12 20:18:58 · 1102 阅读 · 0 评论 -
shell编程--------编辑shell脚本求和-------1~100之间数字奇数和、偶数和
一、输入一个小于100的整数,并计算从1到该数之间所有整数的和[root@localhost ~]# vi test4.sh#!/bin/bashread -p "请输入小于100的整数:" numif [ $num -eq 1 ];then echo "和等于: $num"sum=0elif [ $num -gt 1 ] && [ $num -lt 100 ];then for ((i=1; i<=$num; i++)) do let sum=$sum+$原创 2020-08-17 15:32:30 · 2642 阅读 · 0 评论 -
利用函数对数组进行冒泡排序------------两种方法
方法1:在对数组进行冒泡排序时,无需进入脚本修改调用的数组名,只需要在脚本执行时在其后加上位置变量$1(数组文件名)即可1.创建一个文件,写入一组无规律排序的数字,通过调用函数的方式对该文件内的数字进行排序。[root@localhost ~]# vi 1.txt 22551144668877332.创建脚本[root@localhost ~]# vi hanshumaopao.sh#!/bin/bashmyarray () {array=(`echo $@`)a=${#原创 2020-08-20 23:35:20 · 2715 阅读 · 0 评论 -
Shell编程----------两种方法关闭防火墙(shell脚本)---------关闭核心防护(shell脚本)
1.shell脚本关闭防火墙1[root@localhost ~]# vi firewalld.sh#!/bin/bashSTATUS=$(systemctl status firewalld | grep "Active:" | awk '{print $2}')case "$1" instart) if [ $STATUS = active ] then echo "防火墙处于开启状态,无需操作!" else echo "防火墙正在开启中..." systemctl s原创 2020-08-17 16:33:09 · 3374 阅读 · 0 评论 -
Shell编程--------------shell脚本之http服务(start、stop、status)
1. http服务(shell脚本)[root@localhost ~]# vi httpd.sh #!/bin/bashSTATUS=$(systemctl status httpd | grep "running")case "$1" instart) if [ $? = 0 ] then echo "http服务处于开启状态,无需操作!" else echo "http服务正在开启中..." systemctl start httpd &>/dev/nu原创 2020-08-18 16:25:16 · 1528 阅读 · 0 评论 -
Shell编程------------shell脚本光盘挂载(永久挂载)---------------yum环境部署
1.shell脚本光盘挂载(永久挂载)[root@localhost ~]# vi mountcdrom.sh #!/bin/bashdf -Th | grep /mnt &>/dev/nullif [ $? = 0 ];then echo "光盘已经挂载!"else echo "正在挂载光盘..." mount /dev/cdrom /mnt &>/dev/null if [ $? = 0 ];then echo "光盘挂载成功!"原创 2020-08-18 19:44:35 · 1151 阅读 · 0 评论 -
shell编程-----------for语句应用示例-----------break应用示例-----------continue应用示例------
文章目录一、break (跳出单个循环)二、continue(中止某次循环的命令,但不会完全中止整个命令)一、break (跳出单个循环)[root@localhost ~]# vi test1.sh #!/bin/bash#for a in {1..5}for a in $(seq 1 5) #注释部分等同于此项作用#for ((a=1; a<=5; a++))do echo "outer loop: $a" for ((b=1; b<=50; b++)) d原创 2020-08-17 15:24:10 · 771 阅读 · 0 评论 -
输出环境变量PATH包含的所有目录以及其中所有可执行文件---------三种方法
方法1:for循环#!/bin/bashIFS=$IFS':'IFS=':'for folder in $PATHdo echo "$folder:" for f in $folder/* do if [ -x $f ];then echo " $f" fi donedone方法2递归#!/bin/bashfile_list () {for f in $1/*do if [ -d $f ];then echo "$2$f"原创 2020-08-19 20:17:37 · 1384 阅读 · 0 评论 -
数组的冒泡排序-------------详细脚本文件
[root@localhost ~]# vi maopaopaixuxiaoda.sh#!/bin/basharr=(3 1 5 4 8)a=${#arr[*]}for ((i=1; i<$a; i++))do for ((j=0; j<$a-i; j++)) do if [ ${arr[$j]} -gt ${arr[$[$j + 1]]} ];then temp=${arr[$j]} arr[$j]=${arr[$[$j + 1]]}原创 2020-08-20 23:28:20 · 791 阅读 · 0 评论 -
shell脚本-------内存监控脚本-------当内存占用超过80%时将发送邮件通知
要求用shell写一个内存监控脚本,使用超过80%并发邮件告警[root@localhost opt]# vi jiankongneicun.sh #!/bin/basha=`free -m | awk '/Mem:/ {print int($3/($3+$4)*100)}'`if [ $a -le 10 ];then echo "内存使用状态正常"else echo "内存使用状态不正常" echo "当前内存使用占比为:$a%" /opt/sendEmail.sh 15623原创 2020-08-27 14:35:06 · 1610 阅读 · 0 评论 -
shell编程----------99乘法口诀和三角形图-------菱形------
一、99乘法口诀和三角形图[root@localhost ~]# vi chengfa.sh #!/bin/bashsum=0for ((a=1; a<=9; a++))do for ((b=1; b<=$a; b++)) do sum=$[$a*$b] echo -ne "$a*$b=$sum\t" doneecho ""done[root@localhost ~]# chmod +x chengfa.sh [root@localhost ~]# ./ch原创 2020-08-17 16:06:03 · 814 阅读 · 0 评论 -
shell脚本----------自动删除两类机器里的日志文件
实验:需求:两类机器一共300多台,写个脚本自动清理这两类机器里面的日志文件。在堡垒机批量发布,也要批量发布到crontab里面。A类机器日志存放路径很统一,B类机器日志存放路径需要用匹配(因为这个目录里除了日志外,还有其他文件,不能删除。匹配的时候可用.log)A类:/opt/cloud/log/ 删除7天内的B类: /opt/cloud/instances/ 删除15天内的要求写在一个脚本里面。不用考虑堡垒机上的操作,只需要写出shell脚本第一台机器[root@localhost ~]#原创 2020-08-25 14:48:35 · 402 阅读 · 0 评论 -
shell脚本------监控登录的网站是否正常,异常则发送邮件通知
要求:写一个shell脚本,通过curl -I 返回状态码来判定所访问的网站是否正常,比如当代码状态200,才算正常。测试的网站为:www.baidu.com[root@hostlocal ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz[root@hostlocal ~]# tar -zxvf sendEmail-v1.56.tar.gz [root@hostlocal ~]# c原创 2020-08-26 13:52:38 · 1400 阅读 · 0 评论