00:00
嗨,各位同学大家好,欢迎来到这里,今天呢,我们来学习Linux下的一些教程啊。嗯,这套教程呢,是关于shell自动化运维的一个教程,我们会为大家讲解shell脚本啊,先首先呢,我们今天这节课的内容主要给大家讲的就是。嗯,先让大家认识一下shell对吧,其实我们在前面学Linux运维的时候,基本上已经把这些命令基本上都运行过很多次了,对吧,我们在这里面就稍微再啰嗦一点啊,再给大家介绍一下关于shell的一些基本的概念。然后后面我们会说一些常用的一些下的指令,最后呢,我们会为大家讲在写LL脚本的时候需要注意哪些事项,以及我们在写下脚本的时候可能会用到的一些变量啊,对吧,循环语句啊等等一些内容啊,好,那么今天呢,我们先直奔主题啊,开始去给大家讲一下什么是上。嗯,关于项呢,其实我们之前跟大家说了一条指令,我们可以先打开一个终端。
01:03
打开终端之后呢,其实它默认就登进了这个shell里面去了,对吧?我们刚开始跟大家说的是一个文件在ETC下的shes下面啊,那么这里面呢,存储了我们所有可用的she啊,默认情况下我们用的是B下的BAOK,同学们,B的BA是我们的默认的shell啊,也可以理解为现在呢,我们已经进入到shell里面去了。OK,这是shell的一个命令提示符啊,就可以在这里面去打任何任何的一些命令了,对不对?哎,之前我们已经操作过很多次了啊,来看一下官方给我们介绍的shell是什么shell呢?是一种特殊的交互式工具啊,这里的交互式工具就相当于我输入A,你给我返回A所要执行的一些内容是吧,这样就叫做交互式的对吧?交互式的一个工具,那么它的核心呢,是命令提示服务,那么在这里面。这就是命令提示符,明白吧,你每执行一条命令,或者你要执行的时候,这就是个命令提示符,那命令呢,都在命令提示符后面去执行。
02:07
OK啊,然后命令提示符的作用啊,就是。我让我们去输入这些指令对吧,输入完之后呢,它会解析成内核的一些指令去执行。OK,这shell的一个shell的一个作用啊,基本上你可以理解为shell呢,是一门解释型语言,OK,解释型语言啊。解释型语言啊,关于语言呢,有解释型啊,有那种。可执行的内容对吧,就是对于shell来说啊,就相当于我们写完一些脚本之后,他帮我们去解释去执行,OK,去解释去执行啊,所以说shell是一门解释型的一个语言,而你可以理解为把shell可以比作成什么,就是一个shell解释器,对不对,解释命令用的啊,它就是解释命令,解释好命令之后呢,在内核里面去执行。
03:13
OK啊下呢也包含了一组内部的命令啊,关于命令呢,分为内部命令和外部命令啊,那关于内部命令就是。内部命令就是我们这个shell自带的。就类似于我们在买手机的时候,是不是厂商会给你捆绑几个应用啊,对吧,那么这些应用你可以理解为就是。自带的对不对,自带的啊,而有时候可能不会给你扩展到什么啊,比如说微信啊,什么其他的一个APP对不对,那需要我们自行去应用市场去下载啊,那么那叫做外部应用,OK,外部应用啊,所以说内部命令呢,就是下自带的命令,而外部的命令就是除了我们自带的其他扩展进来的命令。你像我们之前跟大家说VM这个指令对不对,那很多系统它没有装VM,那如那VM是一个内部指令还是个外部指令,它是个外部的对不对?那如何去安装呢?我们是需要安装它的这个软件包,对不对,通过包去扩展进来的。
04:15
对吧,所以说这个内部命令啊,就是我们系统自带的原生的一些命令,而这个关于这个外部的命令,就是我们需要自行去安装一些软件包,或者是自己去写的一些命令啊,这都是外部命令,OK好。那关于这些命令呢,内部命令其实也算是有一些基本的一些使用了,前面呢,我们已经讲了一些文件啊,进程和用户的一些管理命令是吧,基本上我们前面讲的运维这块啊,都是关于什么呀。都是命令的一些使用是吧,全部都是命令啊在Linux里面。给大家讲了大量的命令,OK,那么那些命令呢,基本上都是我们内部的一些命令啊,好,那么这是命令大家知道了是吧?命令还有命令的一个执行方式,OK,那关于命令呢,就是我们在这里面输的每一条指令啊,关于我们的这个执行方式就是我们打开一个shell对吧?去把命令写到这里,然后回车去执行啊,Shell能够帮我们去解释并。
05:18
转换为相应的一些内核操作啊。这是命令的一个执行过程啊,然后有的时候呢,你看我们现在写的是一条命令,对吧,有的时候我们需要写N多条命令,那这时候我们用到的一个内容叫做什么呀?叫做shell脚本啊,Shell脚本呢就是它的含义就是把我们要执行的多条指令写到一个文件当中,然后批量的去执行。OK,那么它这个文件有个特殊的要求啊,这个文件啊,其实文件的后缀啊,嗯,大家知道文件的后缀吧。对吧,文件后缀啊为点SH啊,这个不是强制的啊,但是这是一个规范啊,比如说有的时候同学了解过,你看有点tit类型的是吧,点T2点GZ啊,各种不同的类型对不对,每个类型呢,它代表不同的一个种类对不对?比如说点tit它就是个文本啊,我们一眼就看出来它是个文本对不对,那点点TR呢,我们可以理解为是个归档包,压缩包。
06:20
啊,我们一眼也就能认出来了是吧?那你写校脚本的时候,我们普遍写的时候都是以点SH为后缀,OK,校脚本啊,记住都是以点SH为后缀,这样的话呢,容易让我们区分啊,当然你要是不以点SH为后缀也可以啊,但是。不便于大家的这个区分,OK,所以说规范啊,是把它啊写成这个点SH为后缀的一个文件。好吧。好,那我们来接下来写一条脚本好不好?好,我们就来随便写一个吧,我们先买DR啊上。Scripts,对吧,我们进到这个里面,我们开始写脚本,你比如先写一个hello.sh是吧?好,那么这个呢,第一行我们要写什么呀?是脚本的声明啊,井号感叹号定下的bash,也就指定我要使用哪个解释器,OK,这是它开头的一个声明。
07:18
OK,然后下面就开始写我们的每一条指令啊,每一条指令,比如说我们想让他打印一个hello word啊,在校里面打印输出可以使用IO。OK,那么这个脚本它所执行的就是这条指令,它的指令呢,是从上往下依次去执行,OK,比如说我们把它给复制一行,对吧,它是从上往下依次去执行的。OK,然后我们在这里面给它加一个乱序吧,123。这个加个零,OK,它是从上到下一次执行,那脚本里边有的时候我们在写的时候可能会给它加一些注释是吧,那么井号呢,代表的是注释,OK,比如说我来写一下啊,这是我的,呃,This is。
08:07
This is my first。SSP。对,Script啊,这是我的第一个脚本对不对,OK,这就是注释啊,在下里面可以这样去写注释。好,然后我们保存并退出,然后我们通过什么方式去执行呢?同学们好,这里面啊,关于shell的执行方式有SH。去执行。SH后面加上我们的脚本名啊就可以了,你看是不是把我们想要的结果给打印出来了,对吧?还有一种方式呢,是SH-X啊,杠X指的什么?是显示它的详情,你看这里面能显示出来你要执行哪个语句,然后并把输出给你打印出来。对,一般我们用这个去排错非常容易啊,还有一种呢,是我们给它加一个可执行权限,那同学们我们给他加一个可执行权限,然后它变成绿色的,对不对,我们通过点杠的方式去执行。
09:05
OK,这样也可以去执行。啊,那么我们来给大家详细的去说一下这里面的内容啊。关于校LL脚本的一个组成啊,刚才我用了一个实例,大家看到了是吧?好,这是一个shell脚本啊,Shell脚本里面我们要说一些注意的事项啊。这个是脚本的声明,这个是必须得写的,OK脚本的声明,脚本的声明什么意思呢?就是我要使用哪个解释器,对吧,我用的就是并行的BY对不对,OK,那么这个呢,就是跟刚才我们所说的用这种点杠啊,加了可执行权限之后,这种执行方式呢,它会默认按照你这个去执行,OK,所以这个是对于这种方式是特别重要的啊,特别重要的。嗯,然后下面就是一些注释信息是吧,在校当中啊。
10:04
井号。井号表示注释信息啊,我们为什么要写注释啊?同学们,大家想想,当我们在写很多shell脚本的时候是吧?那么脚本有很多行,几百行,几千行啊。咱们就说一个规模特别大的哈,然后这时候你肯定是一个片段一个片段的去写是吧,那么你通过注释呢,可以对我们每个片段啊,他要做什么,可以加上一个。这样这样的一个提示信息,对吧,然后其他人在读你的脚本的时候,是不是也方便一些对吧。但是注释不要写太多啊,你不要一行写个注释,一行写个注释,那这个就没法看了是吧,没法看了啊。OK,然后下面就是一条一条的指令啊,所以说shell脚本的组成是什么呀?Shell脚本的组成啊,就是由。我们写一个点SH这样的一个文件啊,里面去写我们的声明,写我们的注释啊,然后去写我们的一条一条命令,那从上到下依次的去执行。
11:03
OK,当你在执行效的时候,你想判断一下这个能否执行成功啊,有的时候同学们可能直接把这个写脚本里边,然后运行报错了,对不对,你可以先预防一下嘛,对吧,你可以先预防一下啊,如果你没有十足的把握,你可以把校脚本里边的任何一条什么呀。任何一条指令啊,拿出来在咱们的这个终端上去敲一下,对吧,如果他能够正常输出就没问题。OK,正要输出有没有问题啊,哎,这是什么情况。艾啊,你看这里面它肯定是加了一些中文的字啊。I hello world。啊,他把这个当成一条指令的范围怎么办?他把这个当成一条指令啊,Hello word OK,这样的话我们去排查明白吧,去排查你像这种情况下啊,他把这个感叹号当成指令了,那这时候怎么办呢?你如果想要打印一个感叹号,就用转译的方式去打印。
12:06
啊,咱们的下胶本里边没事啊,社脚本里边没事。你看这样是不是就OK了,对吧,或者是你直接用这种感叹,用这种单引号啊,单引号呢就可以了,对吧,单引号也是可以的啊,那这里面有单引号和双引号的区分,OK,这个后面我们会讲啊,所以说一个校脚本的完整的过程是这样的啊,然后关于脚本的执行,脚本的执行方式呢,有几种方式啊,一种是我们通过SH。杠X对吧,写上详细信息啊,加上那个。啊,比如说刚才是还漏点,还有一种是给它加个权限是吧。加一个权限。然后。然后去干嘛去执行是吧,点杠。好,这是常用的两种执行方式啊,这里面大家那个不要。
13:03
要要要要搞懂啊,这个加X跟这个加X是不一样的啊不,这个是杠X啊,它两个这个X是不一样的,OK,加X呢,是给他一个可执行的权限,然后我们就可以通过绝对路径啊,通过这个相对路径啊,直接去执行了,对吧,直接调脚本执行,然后那个这个SH-X啊,就是显示它的详细信息啊,啊详细的一个执行过程,便于我们去排错啊。别于排查错误啊,而后面这个呢,就是也是一种执行方式啊,OK,这是小小脚本的一个简单的一个小DEMO啊,然后给大家写了一个简单小DEMO,然后关于执行这块呢,也给大家说了一下啊。那么这就是下脚本,大家看到了吗?这就是下脚本啊,下脚本的一些基础的一些概念。
14:00
OK,那么这是这是这块的一个内容啊好,那么我们后面呢,继续跟大家说一下常用的一些指令。
我来说两句