00:00
各位,我们下面呢,再给大家讲一下零零可是之大数据定制片,那先说一下为什么咱们说这个要学这个,呃,这个下编程啊各位,那么如果你是一个大数据程序员。那么你一定会去用到。什么呢?用这个shell去编写一些程序来管理你的服务器集群。当然有些呢,呃是别人给你写,给你写好的一段,这个shell编程,呃,Share这个脚本要求你去看,那不管是你自个儿去写,还是你看别人的程序,你都要去学习一下,12编程这个呢,也是我们大数据程序员啊,就是说在工作中会实际用到的一个技能,那么我们就来。系统的把它学习一下好,那么我们来看大数据编程这一块呢,我们先说的是十编程。那我把这块放一下。好,这是我们这个下编程这块的一个章节,先把它放好。
01:02
好,我给他一个,呃,给他一个一号标题啊,一号标题好的各位我们往下继续走啊,我们继续走,那首先既然咱们要学这个12编程呢,我们要明白shell它到底是属于一个什么样的位置,因此呢,我们现在做一个基本的介绍,各位同学请看。刚才我们讲过,为什么学下编程呢?我我个人认为啊,刚才我们已经提到过了,在系统的讲一讲,如果你是Linux运维工程师。啊,就是运维的,搞运维的大家都听到啊,搞搞运维的,那么你在进行服务器集群管理的时候,你是需要下的。如果你是JAVA1和Python呢?你是Java和Python,其实也会用到一些线编程。打个比方吧,你的老大可能会要求你写一个12编程来定时的备份数据库。呃,不是简单仅仅仅是备份,也有可能是,比如说当一个文件很大的时候,定时的去清理一下。比如说我们会呃清理这个十天以前备份的这种数据库,数据库这些这些文件对吧,那你总不能老让人去看吧,所以你需要写一个自动化的一个脚本。
02:11
也会用到上。那如果你是个大数据程序员来来说呢,这个shell用的更多了,因为它需要用shell程序来管理群集群,因此这一块呢,我们学习还是非常有必要的啊,还非常有必要,于是呢,我把这个先放过来说,为什么要学习开篇而明意,待会呢,我们来说孝的它的一个位置是什么,它的原理啊。OK,好朋友们,我先放到这里来。给他一个标题标题二啊,给他一个标题二。那刚才呢,我已经说了,可能是出于三种啊,三种三种这个应用场景。把它放到这里来吧。好,然后呢,我给他一个匹配一个格式,这样看起来就比较舒服一点。
03:00
我们刚才说了三种,三种方向啊,三种方向。OK,那下边呢,我们就来看一下shell到底是什么。啊,是什么。这个呢,我们要做一个介绍。啊事是什么?我来给大家画一个示意图。啊,帮助同学们理解,少说是这样子的啊,各位朋友。说咱们这个Linux呢,它最里面这个是它的硬件,这个能理解吧。是它的硬件。对吧,硬件这一层,那么我们要去操作这个硬件呢,是不能直接操作的,所以说它这有一层是什么呢?它这个外面这有一层,呃,是在它它的这个就这样子啊,比如这样子说。这样子可能更好一点。硬件在最里面,然后这一层是我们的,是我们的内核。
04:04
啊,这还写的不太对啊。内核。这个要重新。来插入一下这个图片。这是我们的一个内核。就内核呢,是在这个硬件的这个紧贴着硬件的就是内核。比如一般来说是我们Linux内核。那么内核可以去跟我们硬件发生关系,可是程序员呢?它需要怎么样去操作我们的这个内核呢?它需要有一个shell,就是shell就叫命令解释器。也就是说,我们需要用she来驱动我们内核,再用内核去。驱动我们的硬件。它是这样一个关系,明白。哎,它是这样一个关系,那么我们的应用程序又在哪里呢,各位。我们的应用程序呢,是在这上一层。
05:02
啊,这是我们的应用程序。明白,所以说应用程序。他在这一块。可能会去调用我们的shell,或者是我们直接执行shell shell呢去操作我们内核,内核驱动硬件的这么一个这么一个关系,所以说大家看我这个图也看的比较明白,看到没有。大家看大一点在这里。硬件内核shell命解,Shell命令解释器,最后是外层应用程序对不对,所以说下是什么呢。通过这个图咱们就看得比较明白了,Shell是一个命令解释器。他为用户提供了一个向Linux内核发送请求以便于运行程序的一个界面,系统级的程序。用户可以用shell来启动挂起,甚至编写一些应用程序,所以说这个shell呢,是在这个位置啊,它说白了就是一个命令显示器,再说的直接一点就说它可以去调用我们linu格式的指令。
06:02
比如说你Linux有这个,开机关机,你Linux有这个。E或者是输,呃,对对这个环境变量的控制,那么shell都可以去。都可以去调用,说白了shell就可以用,这里面可以去编写把那个逻辑,再加上我们这个Linux的使用指令。啊,放在一起,包括拷贝删除啊等等等等都可以,包括打包,所以说它是这样一回事啊好,它的功能还是很强大的啊,功能很强大,那现在呢,我们把它放在这里来。好,这个示意图我们也把它粘过来。好的。示意图,我把它放在我们的笔记中。明白啊。好,这个大家先知道这块,这是它的一个基本介绍,那下面呢,我们就紧接着来一个shell编程的快速入门。
07:00
这个叫快速入门也行,叫shell脚本的执行方式也行啊,那么总而言之呢,就是让大家先来体验一下我们这个shell到底怎么去编写和使用好,那么我们这写个shell脚本的执行方式。或者叫share的快速入门,嗯。12、编程快速入门明白。好,把它放进去。好的,那我给他一个。标题为二啊,标题为二。要走。那么这块呢,我们把它分成三个方向来看,第一个我们看一下share编成了下这个脚本它的格式,那我们来编写第一个下脚本,然后再运行它好不好?这些都是,呃,刚开始没有什么逻辑啊,逻辑性稍微不是那么强,所以说听起来还是比较轻松和愉快的,对吧,等到我们有逻辑在里面,它的这个这个难度就会增加。
08:06
好,第一个我们看脚本的要求。好,把这先放一放,它这样子的同学们,脚本呢,写Excel脚本,它都是以井号叹号开头,这个呢,这个地方这句话的意思就是要告诉我们的系统,我们这个事呢是用BY。这个。By shell去进行解释,就他他其实这句话是用来指定我们这个shell是用哪一个,呃,这个这个shell来进行解解析的,而且呢,这个脚本需要有可执行权限,就是有个X那个权限,好,那现在呢,我们来看第一个啊,各位朋友,我们现在编写第一个shell脚本的需求非常的简单,请编写一个share脚本,输出hello word。对不对,好,那么我们就来看看怎么编写呢?怎么编写?来朋友们,我们来开发这个程序。
09:00
看案例。好,那这个时候,呃,我们就用这个远程工具X这这个来远程连接,然后进行编程的开发。来,连到我们的linuxx去。好的,现在我输入我的用户名和密码。进去啦,各位朋友。好,现在呢,我我看一下我这有东西没有啊,好,我们就在这个下面编程就行了。甚至我们也可以建一个文件夹也行,那KDR我们写个叫做she啊,She能力一个学习。啊,进到这里面去也可以啊。好,现在看这个里面是空的,对吧,是空的我们先写第一个程序,什么程序呢?就是编一个share脚本,输出hello word简单吧,Vim对不对,那我就写个my share。点SH,注意shell的这个后缀呢,一般来讲是点SH,但是不是必须的,其实你后缀写什么都可以知道吧,这个你你你你写点点SH呢,就是让别人知道哦,这是个线脚本,其实你不这样用这个后缀,你用别的后缀,比如说你用TT也行,你甚至不要任何后缀也行,明白吧。
10:17
好,HH,那么我们现在开始来写出第一句话,找井号来公标。所以大家看到这个vim啊,这个指令,这这个编辑器还是要会用的。病。By she这个呢,就是告诉我们的这个执行,告诉我们这个系统啊,我们要执行这个shell的时候,他用的是by shell来进行解解析的,因为我们线线的这个版本很多啊,还有T线失效,这个我们就是BY线。下一步非常简单,说出一句话。Echo Hollywood玩活。就这么简单,不要打分号啊,不要打分号,12编程呢,它每一句结束以后,不需要有分号,不需要有分号,这跟别的编程语言不一样啊,来保存一下。
11:04
那保存一下过后我们来看一看,这个时候就有一个这样的文件,但是这个文件呢,不能执行,为什么?因为它是。没有可执行权限的,因此呢,我们这个线的执行方式有两种。第一种呢,就是你给他分配一个可执行的,至少要给运行的,运行这个程序的这个用户,比如像root,给他一个可执行的权限啊,或者你直接用这个也可以用shell来直接执行,那么我们先看第一种方式。这个就已经写完了,乖。说这个,刚才这个案例就已然写完了,我把这个再截一下。非常简单的一句话啊,待会儿我们再逐层深入,由浅入深的讲。这个就是最简单的一句话,这个就是输出了一句话,不用解释吧。那么有了这个东西怎么去执行呢?放这啊,刚才放错了。
12:02
对吧,那么怎么去执行呢?第一种方式就是给他一个X权限,让他执行,执行的时候可以是可以是绝对路径来执行,也可以用相对路径来执行,那么我分别的给同学们解释那个执行一下来给他一个这个可执行权限,这个难吗?不难吧,不难。好,我退出来走一个ch mode还记得吗?755这样子的话呢,我们至少让他有个X权限,其他用户这个我不管他啊,其其他就不改,他还74。他原先是RR,我们不去动它,MY10回撤,好,各位朋友请看,现在变成绿色的了。变成绿色的,这个时候你有两种方式执行,第一种是用相对路径,第二种是用绝对路径,相对路径就是从当前开始是一一执行好了,我的打出来了。第二种就是绝对路径,我们知道在这个文件是在root下面的shell文件夹下面的my share。
13:00
两种方式,看到没有好这个呢,我给同学们截到笔记中去。没问题吧,这个。不难啊,不难。好,这个地方就是给他一个。执行的权限。给。给所有者。所有者。所有者。一个。X的权限,那有些同学说,有些同学说了,说老师假设我想让他的这个所在组的用户也有也可以执行,怎么办呢?那你肯定要想办法把这个地方也给他一个可执行权限,因为我现在只是让root去执行,对吧,如果说哎,你说是他所在组的用户也可以执行,那你这个位置。就要改成五了,明明白吧,好,执行的时候呢,有两种方式,一种是相对路径。这个是相对路径的方式执行,这个是绝对路径的方式执行,看明白没?对吧,这个是什么相对路径。相对路径下面这个是什么呀。
14:03
这是什么呀?这是绝对路径,看到没有绝对。绝对路径。都可以。好,我把这一块咱们第一个入门级的案例呢给同学们放到这里来。好,这是第一种。那有些同学说老师,那我看到有些时候人家没有给可执行权限,他也可以执行。可不可以呢,也可以就说不给这个执X权限,他也执行,但是呢,他要执行的时候,他要用明确指定用shall来执行,那我给同学们演示一下,就不给这个X权限也可以执行,但实际上啊,在真实的这个应用场景中,我们通常都会给一个可执行权限,只是说这种方式也可以,但是呢,我们不推荐啊,这个我们不推荐,但是大家知道。不推荐,我们还是推荐上面那个方式好不好,但是这个方式呢,大家也知道,来我们看一下,假设我现在我现在把他这个权限又改回来了,Ch mode,我把它写成原先是644试意思吧,My myself,好,LS看这个已经不是绿色了,你现在再去执行它不好用了。
15:12
你看现在,现在你再去执行它。你看。他根本就不响应你了,就应。回车。他说权限不够对吧,愿意没有没有没有给他可执行权限吗?但是你不给可执权限就想执行怎么办呢?这样写也行。这样也可以执行,就说前面写个SH,这个代表she,就说我要用这个。解释器来执行这段代码。你不给我可执行权限,我也可以执行,或者用像这个绝对路径。Root什么呀,Shall也可以。好吧,那么这个呢,作为了解啊,这个我们其实是呃,很少这样去执行的,一般来讲我们都是给一个可执行的权限,听懂了啊。
16:04
写到这,就这种方式呢,不给可证权限也可以,但是不推荐。这样也可以不给,也可以不给。不给什么呢,X的权限。权限。但是我们不推荐啊,但是不推荐。就一般来说,我们这个工作的这个下程序员呢,都都不会这么去玩的。把它放在我们的笔记中。好,同学们,关于下的一个基本的一个介绍和快速入门呢,我们就先介绍到这里。
我来说两句