人人都能学会的企业SHELL编程.doc

上传人:鲁** 文档编号:549300206 上传时间:2023-01-11 格式:DOC 页数:39 大小:519.54KB
返回 下载 相关 举报
人人都能学会的企业SHELL编程.doc_第1页
第1页 / 共39页
人人都能学会的企业SHELL编程.doc_第2页
第2页 / 共39页
人人都能学会的企业SHELL编程.doc_第3页
第3页 / 共39页
人人都能学会的企业SHELL编程.doc_第4页
第4页 / 共39页
人人都能学会的企业SHELL编程.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《人人都能学会的企业SHELL编程.doc》由会员分享,可在线阅读,更多相关《人人都能学会的企业SHELL编程.doc(39页珍藏版)》请在金锄头文库上搜索。

1、人人都能学会的SHELL编程目 录1.Shell入门简介12.Shell编程之变量详解43.If条件语句学习74。使用if条件语句编写MySQL备份脚本105。IF条件综合Shell实战脚本编写116。循环语句for197。循环语句while218。Until循环语句229。Case选择语句2310。select选择语句2411.Shell编程函数讲解2512。Shell数组编程2613。Shell编程之awk、sed命令案例分析2914。全备和增量备份Linux系统脚本编写3015。Shell编程之IP匹配及磁盘邮件告警331. Shell入门简介说到Shell编程,我想很多从事Linux运

2、维工作的朋友都不陌生,都对Shell有基本的了解,可能大家刚开始接触Shell的时候,有各种想法?能不能不学?高大上?到底是浮云?还是神马?很难啊?我想告诉大家的是,大家有这些想法一点都不觉得惊讶,为什么?这些都很正常,对于任何一件事情在未开始之前,肯定会有总总假设,那我今天想说的是,学完人人都会Shell编程后,我们会觉得一切的Shell都是浮云,我们每个人都能很好的使用它,驾驭它,更好的完成我们日常运维的工作。曾经有人说过,玩Linux不知道Shell,那就是不懂Linux;现在细细品味确实是这样。为了让更多的人能接触Shell、了解Shell,使用Shell,所以今天开设了这样一个网络课

3、程,让我们的Shell飞起来。好的,其他不多说了,我们正式进入主题,什么是Shell呢?Shell是操作系统的最外层,Shell可以合并编程语言以控制进程和文件,以及启动和控制其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。简单来说Shell就是一个用户跟操作系统之间的一个命令解释器。Shell是用户与Linux操作系统之间沟通的桥梁。用户可以输入命令执行,又可以利用 Shell脚本编程去运行。Linux Shell种类非常多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne

4、Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh)等。不同的Shell语言的语法有所不同,所以不能交换使用。最常用的shell是Bash,也就是Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用,也是大多数Linux系统默认的Shell。接下来我们来写一个简单的shell脚本。(shell脚本一般文件名以.sh结尾,同时文件第一行定义该脚本为shell脚本)vi first_shell。sh!/bin/bashThis is my

5、 First shellecho “Hello World !”这就是我们的第一个脚本,是不是很简单呢,注解如下:!/bin/bash /表示定义该脚本是一个shell脚本(固定格式)。This is my First shell /这里的#号属于注解,没有任何的意义,SHELL不会解析它.echo “Hello World !” /shell脚本主命令,我们执行这个脚本讲看到: Hello World ! 信息.脚本编写完毕,如何来执行呢,首先执行shell脚本需要执行权限,赋予执行权限:chmod o+x first_shell.sh 然后./first_shell.sh执行即可;也可以直

6、接使用命令执行: /bin/sh first_shell。sh,显示效果一样。2. Shell编程之变量详解Shell编程语言是非类型的解释型语言,不像C+/JAVA语言编程时需要事先声明变量,SHELL给一个变量赋值,实际上就是定义了变量,在Linux支持的所有shell中,都可以用赋值符号(=)为变量赋值。SHELL变量可分为两类:局部变量和环境变量.局部变量只在创建它们的shell脚本中使用。而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用shell变量。例如在脚本里面定义A=123 ,定义这样一个变量,前面变量名,后面是变量的值

7、.引用变量可以使用A,把变量放在脚本里面会出现什么样的效果呢?如下:!/bin/bashAuthor wugk 2014-0610A=123echo “Printf variables equal is $A”执行脚本:sh test。sh,结果将会显示:Printf variables equal is 123简单的理解变量,相当于定义一个别名名称,引用的时候加上$符号就可以了.例如定义变量 name=wuguangke 执行echo name 将会显示wuguangke SHELL常见的系统变量解析:0 当前程序的名称n 当前程序的第n个参数,n=1,2,9 当前程序的所有参数(不包括程序

8、本身) 当前程序的参数个数(不包括程序本身)$? 命令或程序执行完后的状态,一般返回0表示执行成功。UID 当前用户的IDPWD 当前所在的目录我们来测试一个常用变量的脚本:vi auto_var。sh#!/bin/bashauto print variablesby wugk 2014-09echo -e 03332m-0330mecho ”This is 0 param !echo ”This $1 is $1 param !”echo This 2 is 2 param !”echo e 03332m-0330mecho ”This $* is param !echo This is $

9、 param !”echo ”This ? is ? param !”echo紧接着我们来编写一个简单的echo打印菜单:!/bin/bash#auto install httpd by wugk 2014-09echo -e 03332m-0330mFILES=httpd-2.2.17。tar.bz2URL=http:/mirrors。cnnic。cn/apache/httpd/PREFIX=/usr/local/apache2/echo -e ”03336mPlease Select Install Menu:0330m”echoecho ”1)官方下载Httpd文件包.”echo ”2)

10、解压apache源码包.echo 3)编译安装Httpd服务器。”echo ”4)启动HTTPD服务器。”echo e 03332m-0330msleep 203. If条件语句学习在Linux Shell编程中,if、for、while、case等条件流程控制语句用的非常多,把这些学好,对提升脚本的功力有非常大的帮助。下面将逐个来讲解具体的用法: If条件判断语句if (表达式) #if ( Variable in Array )语句1else语句2fi案例一,测试数字大小!/bin/shNUM=100if (( $NUM 4 ) ;then echo “this num is NUM gr

11、eater 4 !”fi案例二,测试目录是否存在,不存在则新建(注意,中括号之间必须要空格)#!/bin/sh#judge dir existif ! d /data/20140515 ;then mkdir p /data/20140515 elseecho “This DIR is exist,Please exit 。”fi逻辑运算符解析:f 判断文件是否存在 eg: if f filename -d 判断目录是否存在 eg: if d dir -eq等于 应用于:整型比较-ne不等于 应用于:整型比较lt小于 应用于:整型比较-gt大于 应用于:整型比较-le小于或等于 应用于:整型比

12、较ge大于或等于 应用于:整型比较-a双方都成立(and) 逻辑表达式 a 逻辑表达式-o单方成立(or) 逻辑表达式 o 逻辑表达式z空字符串案例三,多个条件测试判断!/bin/shscores=80if $scores gt 85 ; then echo very good!”;elif scores -gt 75 ; then echo ”good!”;elif $scores -gt 60 ; then echo ”pass!”;else echo no pass!”fi4. 使用if条件语句编写MySQL备份脚本a) 自动备份Mysql数据库脚本!/bin/sh #auto back

13、up mysql wugk 2012-12-12 Define PATH定义变量BAKDIR=/data/backup/mysql/date +YmdMYSQLDB=webappMYSQLPW=backupMYSQLUSR=backupmust use root user run scripts 必须使用root用户运行,UID为系统变量if UID ne 0 ;then echo This script must use the root user ! ! ! sleep 2 exit 0fi#Define DIR and mkdir DIR 判断目录是否存在,不存在则新建if ! -d $

14、BAKDIR ;then mkdir p $BAKDIRelse echo This is $BAKDIR exists。. fiUse mysqldump backup mysql 使用mysqldump备份数据库/usr/bin/mysqldump u$MYSQLUSR pMYSQLPW d MYSQLDB $BAKDIR/webapp_db。sqlecho The mysql backup successfully ”5. IF条件综合Shell实战脚本编写通过if语句和之前变量的学习,今天我们将把我们所学的综合在一起来讲解一个实战运维脚本,一键安装LAMP环境的脚本:一键源码安装LAMP脚本,先分解脚本的各个功能:打印菜单:1)安装apache WEB服务器2)安装Mysql DB服务器3)安装PHP 服务器4)整合L

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号