00:00
那咱们上午呢,讲了正则表达式啊,那今天下午呢,我们又开始一个新的重点内容,就是share的编程基础,那这部分内容呢,由于它比较难度大,所以我们也是计划呢,把share编程脚本这部分分成两部分。啊,穿插的在整个课程中,我们来给大家介绍啊,我们第一部分呢,计划先把基础内容先给大家做一下介绍。那后续我们再讲一些线编程较高级的一些用法啊,当然在我自己的这个马down文件中呢,是放在一起,那这部分内容呢,我们会分成两个阶段来给大家讲啊。好了,那首先呢,我们先看一下在基础阶段我们大概要介绍哪些内容。那这个是我们整个线编程所有内容的相关的知识点啊,我们在介绍的时候,我们先来说一说基础部分,这个基础部分我们大概呢会给大家介绍这些。
01:07
啊,这些。那首先咱们先来说一说share编程它的基础。包括。编程中我们需要注意的一些事项。虽然是它的一种编程,不像传统的开发啊那么复杂。但是也有一些规范需要遵守。那么对于我们编程来讲呢,有一些基本的语法格式还是要必须要遵守的。那此外在share编程中,和其他开发语言一样,也支持变量,包括各种逻辑运算呀,算术运算呀,它都支持。也支持条件测试。甚至还可以支持所谓的循环等等。
02:02
这些逻辑处理在任何的开发语言里面都是支持的。此外,我们来介绍一下环境的配置。那事实上咱们有些配置已经在前面已经接触到了,比方说更改用户的提示符颜色格式。那这些呢,都属于用户环境的范畴。那怎么去配置这些影响用户?它的运行环境。在哪配,这个我们在这部分来做一下介绍,后续还有一些高级用法啊,比方说什么循环呀,信号的捕捉,函数数组等等,这个我们放到编程的进阶部分,咱们再来介绍,好,那下面我们就先进入到第一部分关于share的编程基础。编程说起来实际上也并没有多么复杂。
03:04
编程序,说白了就是按照一定的格式语法。来写文本文件,那这个文本文件的格式是有必要的要求条件的啊,必须要按照不同语言的格式来写,当然写好了也不容易。所以雷纳斯呢,说了一句话,就是雷纳者这个开发者是吧,创始人说了一句话,什么话呢,就是说这个。说话是没用的,少说废话的意思是吧,把你的代码拿过来跑一跑,也就是是骡是骡子是马,拉出来遛遛看看,你说你牛,那我们就看看代码不就知道了。那这就要求大家还是。
04:00
线编程这一部分需要多练。啊,时间长了,慢慢就写的越来越好了,那么不论是哪种开发语言,我们将来运行的程序,它里面的核心内容就两块,一个是算法,一个是数据结构,不过呢,这个内容相对比较难的内容,是对专业开发工程师有较高的要求。我们目前学习的是运维岗位。我们不是专业开发,所以这两个内容可以说要求还没那么高。只需要达到生产需要。至于用什么样的一个复杂的算法。至于用到什么样的一个复杂的数据结构,这个就往往没那么高要求了,只要达到目的,完成工作即可。当然,程序的本质。是为了解决数据问题。我们在运行任何一个程序,目标不是为了干,跑这个程序,都是为了处理数据。
05:09
啊来实现,所以程序的服务对象就是来处理各种数据啊,这种数据可以是输入的数据。经过处理之后再把它输出出来啊,所以数据呢,输入输出,那么背后通过程序来进行处理。那至于数据结构和算法这两个概念,大家知道就行了,尤其计算机专业的同学,有一个专门的课程就是数据结构,甚至还有算法这个课程。啊,在这呢,我们就不展开说了。啊,算法实际上好理解啊,就是计算一个数学的一个公式的话,我们发现不同的算法效率差别还是很大的。啊,所以这个算法呢,涉及到数学的逻辑,数据结构,是组织数据的一种方式。
06:03
啊,那也就是在计算机里面,我们把数据怎么进行组合,进行整理,按照什么格式来存放,怎么组织,这就是数据结构。那数据结构在我们后面会学习一个简单的数据结构,比方说数组。在其他开发员里面就更为专业,更为复杂啊,还有什么列表对吧?啊,这个还有什么其他的一些字典等等。各种各样的复杂的数据结构,那我们这边呢,因为不是专业的开发,所以这些呢,我们用的相对不多,不过呢,咱们的课程里面应该是有Python课程的。是吧,你们的课程里面有Python的话,这个学Python课程里面就会涉及到一些略微复杂的内容。当然我们这个课程的目标还是做一个合格的运维工程师啊,将来你要想开发方向要学的更好,还要单独去学这方面的内容。
07:05
那我们编程序目前来讲比较主流的编程方式,传统的就是面向过程。啊,传统的面向过程,面向过程也是符合我们平常做事的逻辑的。那每天我们做一些事情,通常都是有一定的前后次序,按照一定的步骤来完成,是吧,你像我们每天早上来上课。哎,那这个过程实际上都是有一个固定模式是吧?啊,当然每个人可能习惯不一样,前后次序或许不一样。啊,有人先吃饭是吧,吃完饭以后,然后该怎么收拾收拾,当然有人可能是先起床,收拾完了再吃饭,这个就是次序不一样,但是不管怎么样,有一个大概的逻辑次序,编程序也一样,编程序呢就是第一步做什么,第二步做什么,我们把这个整个逻辑过程想的非常清楚,然后呢,按照这个过程来执行就好了,这就面向过程的编程方式。
08:15
当然现在比较号称是比较这个流行的编程语言啊,都是面向所谓的对象。那变量对象的实际上就是它把。开发想象成一个事,事物的处理,那这个适合于比较大型的项目。那么这个大型的项目呢,它相对来讲一般不会具体关注到一个每一个细节的执行过程。他关注的是每一个功能具体实现什么啊,比方说让你将来做一个大项目啊,你像咱们生活中让你盖个大楼。然后如果你让你盖个大楼,你肯定不会说自己。
09:02
一个人去盖大楼,你也盖不了,你肯定会走一些团队是吧,不同的团队,而且分工协助。比方说你可能会找一个设计院来设计这个大楼的图纸。是吧,出一套图纸,然后呢,你还要再找一些团队来,否则我们说这个大楼里的装修。啊,那可能还有专门的大这个这个团队负责建筑啊,修改这个整个主体,那另外呢,还有一些这个团队负责运输是吧,那当然你最终把这个楼还卖出去,来销售团队之类的。那这些呢,都是不同的团队来负责的。那你会关注说什么时候搬第一块砖,第二块砖吗?你不会,你面对的是不是一个一个的项目组的负责人就行了,你把这些任务包给他们,说张张三你负责这个团队啊,你什么时间把什么任务这个给我搞定就行了。
10:03
那你面对的是一个最终的结果。啊,你让他把这个事儿搞定,他就承担了某一项任务,然后呢,他再把自己得到的任务再怎么样分解给他自己手下的这些团队成员。啊,当然你像这些大的项目一般都是层层分解的。啊,一个大项目切成若干个小的功能,然后把这些功能再交给不同的团队的人去完成,那甚至一些大的功能,它可能要再细分成小的模块,每个小的模块再交给具体的人。最终干活的人当然就得他的关心啊,你像最终的这个建筑工人,他是不是得考虑清楚,我是什么时候搬第二块砖,第一块砖是吧,这个他得考虑了,最终还是要表现为过程,但是总体来讲它是一个面向,这个咱们就要面向对象啊,就是面向对象,就是你看着他是吧,你看这个小男生面对这个小美小小美女是吧,就面向对象。
11:06
面对着他写代码,有面向对象的开发语言。当然这个这个这实际上是一个玩笑了,大家可以看一下后面的白板,那这个黑板是吧,黑板,那这个黑板上面写的这段代码。大家如果有一些编程基础的话,可能知道这是用什么语言写的。是吧,那你们的演示都定在这个一男一女身上了是吧?没注意到后面这个代码吗?那这个代码是用C写的,CC的话呢,实际上它属于面向过程的开发源,那我们今天学习的是也是面向过程的开发。他只关心一步一步做成,他不会像我们刚才说面向对象,那面向对象呢,一般都适合于大的系统工程。你看有些这个大的项目,通常来讲都是用面向对象的开发语言开发啊,比较流行的Java。
12:06
那包括微软c sharp Tyson,甚至PP也都可以支持,面向对象勾都可以。当然,这个面向对象只是一种开发思想。它内部有没有用到面向过程肯定也用到了啊,这个具体的一件事上还是要考虑过程。但是总体来讲,它是面向对象的。就是大的方向,面向对象,然后具体到一个细节上,面向过程。而面向过程的语言呢,就是没有这个面向对象的思想,整个从头到尾就把这个流程要想清楚,第一步做什么,第二步做什么,所以这样的话呢,这个面向过程的开发语言,做一些复杂的大项目就比较麻烦啊。呃,面向对象的开发语言更适合处理大项,当然处理小项目啊,用面向对象的开发语那就有点大材小用了。
13:05
啊,有的时候呢,还不如面向过程的开发语言效率高。而我们今天学习的share,它就属于面向过程。他详细的。要在做软件编写的时候,要考虑到第一步做什么,第二步做什么,一步一步的去把它按部就班,按照流程来完成,主要我们要考虑清楚它背后的处理逻辑,所以相对来讲呢,我们可能花比较大的精力。在关注在他的处理顺序,处理逻辑上。啊,这个是我们比较关心的。好,那接下来大家看。我们目前学习的开发语言有很多。在我们历史it发展的历程中啊,这个出现了很多很多种啊,成天可以说。
14:01
上百种这样的一些开发语言啊,这个图里面就列了一大堆,我上大学的时候就学过,我得拿手指头,我得数数我学过多少啊。我上高中的时候就开始学basic语言。高中啊,高中就学,因为我们学校比较好,在高一的时候就已经接触这个电脑了,那个时候那个电脑那个那个电脑它是叫苹果电脑,但是这个苹果电脑和咱们现在苹果电脑根本不是同一回事了,那是那个特别老土的那个电脑。那个时候说在计算机还没有正儿不经流行起来,那时候互联网还没有呢,就不是没有啊,就互联网还没有流行起来,国内原来上大学的互联网还没有,等我快毕业的时候,互联网才刚刚在国内有些苗头。等我工作了一段时间以后,互联网才开始正儿八经的普及起来,慢慢的才流行起来,所以这个接触计算机比较早。
15:04
啊,所以接触的开发语言,我们上大学也学过那么basic语言啊,这个什么叫true basic啊,真正的basic,反正光basic有各种版本,什么tu basic等等啊,各种啊,还有学过什么汇编语言啊,还学过什么C语言,C加加,那时候还不流行Java,他不知道Java,没学过Java啊,后来毕业以后才用Java。啊,在上大学的时候学过passport语言,For语言啊,反正也很多这些语言很多啊,当然实际上呢,语言实际上都。对于真正的开发者来讲并不重要,为什么说呢?因为对于他们来讲,核心掌握的他的开发思想,你只要掌握了一门,精通了一门开发思想,开发语言,学别的语言非常快。那当然这些所谓的编程语言,他们内部的这个运行机制是有一些表现上的区别的,在计算机内部呢,我们都知道它是基于二进制的。
16:07
那计算机内部都是二进制016来处理。对于计算机来讲,只能是知道什么叫零,什么叫幺,而并不知道你写入的一些文字到底什么意思。那所以我们以前写程序的话,早的期的时候就是用。二要零幺零幺二进制这种方式来写代码的,这个呢,就就是所谓的机蓄语言,那区域语言,那大家记得我们讲计算机基础那个第一章张老师给大家说那个,那是不是早期的时候那个程序都是打孔的是吧,那个0101那个孔有有孔的有一啊没孔的就是零,呃,这个这么凑起来形成了一段代码,所以当初那个时候写程序呢,这个也是生活是工作环境是比较恶劣的啊,手上净是胶水,因为不小心打错了,还得把它补上。
17:01
啊,而且呢,这个万一写错了,那将下来这个以前的话,还有一段时间用卡片,就卡片把那个010要用卡片给它串起来啊,所以那程序以前就是一大摞卡片,如果你把这个卡片排好次序了,不行,你把它打翻了,那你要再放在一起,那就就有点像把搭积木搭好了,啪给人推了重新来,那这个非常麻烦。啊,所以这个以前的继续语言编写,它是让计算机能容易理解,人是很难看懂的。后来为了简单方便,就用了所谓的汇编语言,汇编语言呢,就是用英文单词来代替0101。那这样的话呢,我们显而易见,用英文单词就相当于这个好容易记了,你方说我们要两,把两个数字加起来0101,我这个很难写,那么我们写个英语单词and and a和B,那这个就好记了啊,表示的就是我把A和B这两个寄存器里的数据呢相加,然后再放到A里去。
18:09
那这样显而易见,比那个写0101要好极多了,这就是汇编语言,但是它和机器语言是一一对应的。那有。十个记叙语言对应的语句,那么就需要有十个对应的汇编单词相它相对应。机器语言和你的硬件是密切相关的,不同的硬件,它的机器语言肯定是不太一样的。所以这样的话呢,你可以说不能跨平台啊,这个语言开发起来,将来一直性就非常差啊,比方说我们在英特尔的架构的CPU上写了一些程序,将来我要想迁移到手机上运行,手机用的CPU和我们电脑上的英特尔这种CPU它不是一样的,所以这种代码迁移你可能就比较麻烦了,你得重新写了,所以这个迁移性非常差。
19:05
啊,它的好处呢,就是因为它直接用,基本上就是基于语言来写,所以它的效率非常高,速度非常快,开发难度是比较大的,所以后期为了让我们写代码更加方便,那写代码怎么就方便呢,写英语单词。如果中国人写汉字能写当程序来运行该多好啊,那事实上这就是一种所谓的高级编程语言。高级编程语言就是用用人类的文字来写程序。啊,那么当然这时候必然产生的问题,计算机内部只能支持二进制。你写一个英文单词,写一个汉字,他怎么知道你要干什么?那当然我们都知道,是不是必须要有一个类似的翻译者,把这些人类写的文字给它转化成最终计算机能理解的二进制。才能运行,那么这个翻译,我们编译或者叫解释这两个过程,这两个过程它都是能够把我们人类写的高级程序语言转化成最终的二进制数据,让。
20:17
计算机等指向,不过呢,这两种转换过程它的逻辑性稍微有些区别,我们先来看一下所谓的编译,那这个编译说的什么意思呢?编译说的就是相当于批量处理。编译说的就是我们一下把高级语言就是文字都写好,哎,这个写好以后,然后用所谓的编译器这种软件,批量的把所有的程序都转化成一个计算机能理解的二进制文件。批量转换完,转换完以后呢,这个文件是一个计算机能理解的二进制了,然后呢,直接运行就可以了。
21:02
那这就是变异。哎,那么还有一种是解释,解释是什么意思呢?解释就不是了,解释相当于边翻译边执行。哎,翻译一句,解释一句,执行一句,那比方说如果我的文件有十行,那么十行对于十行代码,就我是一个十行代码的这样的一个,哎,程序写好了。那么如果是变异的话呢,就是把这十行整个给它转化成二进制。生成一个新文件,那这个新的二进制文件,然后这个新的二进文件运行就行了,接着它运行就可以了。这把这十行一下子给你转换成一个二进制文件了,而解释就不一样了,解释什么意思呢?解释是我先把第一行拿过来,这不有第一行,第二行,第三行嘛,对吧,我把第一行先拿过来,拿过来以后呢,把它翻译成这个,解释成二进制,把这一行我只是把第一行翻译成二进制了。
22:11
然后翻译完了以后,再把它执行进行执行。那这时候我执行的只是执行了第一行。第二行第三行我还没动呢。第一行做完了,已经已经把它翻译成二进制,最终给运行了,但是由于我们这只是翻了一行,所以它没有生成一个专门的文件,那这个东西在哪放着呀?那不是生成文件,那就在哪啊,内存里放着呗,内存里面把它转换成一个机器语言,然后执行就完了。然后执行完了以后呢,这个光方的第一行,那还有第二行呢,那第二行再读进来,哎,把第二行再读进来,再把它翻译成哎,继续语言再执行。听懂了意思了吧,那就是哎,翻一行,然后去执行一行,然后接着下一行,一行一行任务执行,这就是解释性语言。
23:06
那这两种方式很像咱们平常这个吃饭啊,这个有一种。这个大家去点餐啊,比方说外面去吃这个这个西餐啊,或者是吃这个啊,点点一桌子饭,点桌一的菜吃,比方说我们点一桌的菜吃的话呢,哎,有两种风格,一种呢,就是我把这个菜都做好了啊,把这个整个比方说我点了十个菜,这十个菜整个都大厨都做好了,一块上桌,然后就开吃就行了。那这种就是属于属于编译型,那么还有一种方式就是你上一道菜我就吃一道,哎,边吃我就边等着第二道菜。这第二道菜上来,我再吃第二道菜,这个比较典型的就是想吃火锅,火锅是不是就边涮边吃,是不是这个道理啊,你想想火锅是不是就边涮着边吃?
24:00
嗯,所以这是两种不同的执行逻辑啊,一种叫编译型语言,一种叫解释语言,但这两种方式,那谁的效率高啊?那各有什么特点,反正最终都能执行,都能把那个文字性的人类写的这种啊,英文也好,汉字也好,最终转换成二进制能跑起来了。这是目标了,都能成达成,但是谁的执行效率或者是他的谁的效率高啊。那么对于我们解释英语来讲,因为它是批量执行,就是整个程序一块都给你转换成一个,哎,机器代码,那么机代码一块给你执行了,所以它的执行效率怎么样,肯定是比较高的啊,但是有一个问题,就是你需要事先把这个语言写好了,批量的用编译器把它转换成机器码,那么这个转换的过程就需要等待,因为你比方说你写了1万行代码,一行代码,你把这一行代码都要翻成机器代码,这个时间可能要等一段时间,然后等专业完了以后一执行,哎呦发成错了。
25:13
哎,有行,错了,错了以后你过来再改。所以这个过程虽然执行速度很快,但是调试的过程会比较慢啊,你好不容易写了1万行,写完了,啪一执行报错了,你反过来改的时候是不是就反复的,这个过程是不是比较麻烦。而我们如果是解释语言啊,同样那我们写了1万行,写1万行,我不是说都写完了再执行,我可能写第一行,我是不是就可以执行了,我写完第一行,我就让他给跑一下,跑一下看看效果,诶行,那我就写第二行,是不是写第二行成了,就写第三行,是不是这个开发感觉效率高。但是它执行肯定会慢一些,因为它是斜行执行一下,执行完了以后看看,哎,在下一行下一行讲,那所以在这样的话呢,是比较慢的啊,那就是总体来讲呢,这个执行效率应该说编译的速度更快,但是如果说从开发角度来讲,从节约人工的时间成本来讲,这个解释语言应该说人工还是比较省事的,对于计算机来讲呢,现在计算机速度越来越高。
26:15
它的处理速度已经很快,所以解释性语言虽然相比编译性语言速度执行效率要低一些,但是也不会说难以接受,尤其现在性能那么好的CPU,对吧?我们都开始跑虚拟化了啊,一个机器是恨恨不得啊,跑好几个虚拟机,那不就是因为计算机性能已经过剩了,所以我们既然都过剩了,那你慢点慢点,别又卖,卖不了多少。对吧,啊,当然追求高性能高并发的场景下,可能还是编译性语言更能胜任,哎,所以目前来讲呢,这个节身语言呢,可以说是比较流行的一种啊开发方式啊,尤其这个现在比较火的Python Python呢就是面向这个杰士性语言,它就是杰士语言啊,它开发的效率比较高,但是它执行速度会比较慢。
27:06
好,这就是这两种编程语言,当然这两种语言呢,等你们。将来学Python的时候,可能会慢慢的理解更加深刻啊,目前来讲呢,我们很多语言都是解身语言啊,你像Python呀,包括PP呀,包括我们现在学习的share啊,这些都是进行语言。那么结成语言,它是不会专门生成一个二进制文件,那也就是说我们在执行过程中,那么这个语言自己写好的高级语言文件是不能离开的,就必须就拿着他这个文件直接执行,那这个文件在执行的过程中啊,这个文件就是你写的源代码,就是人类能看懂的,所以呢,高级语言这种语言你直接交给用户执行,那么是不是就相当于把源码给人家了?源码给人家了,你想加密,想保护这个里面的知识产权,你没法保护,因为他代码就是给人家了是吧,你交给用户执行,那这源代码都能看得见啊,他不像这个编译言,编译言呢,那我们不需要交给用户这个源代码,我是不是只需要把这个高级语言用编译器生成一个最终能执行的二进制就行,我把这个二制给他就行啊,用户他可以拿不到这个源代码,这样的话我们可以保护知识产权,理解了吧,所以从某种角度来讲,这个做开发的人很多,为了哎保护自己的这个源代码的知识产权,一般还是都喜欢用编辑啊。
28:31
啊,所以这就是他们各自的一个区别了啊,各有优缺优缺点了,那这边呢,有一个。解释语言和所谓的编译语言的它的一个执行过程,还有一个图啊,大家看这个就是所谓的编译性语言,编译语言呢,就是把源代码通过编译器最终生成二进制文件,然后这个二进制文件呢,它就可以直接把数据进行处理了,这结合数据直接处理得到一个数据结果。
29:01
那如果是解释语言就不是了,解释语言呢,就是这是我们的写好的程序,它直接和数据结合在一起,直接进行处理,然后进行解释执行,在执行的过程中,这个源代码是必须同时存在的。而且它不会生成一个中间的这样的一个二进制文件,直接把结果就输出来了,少了一个这个文件,你看没有这个文件啊。那另外还有一种呢,就是介于两者之间的一个综合的结合,比方说大名鼎鼎的Java,大家看发现没有,这里面我们没有提到Java。为什么不提Java?就是因为Java它既是编译又是解释,知道吧,它是两种啊,Java程序是这样的,先把Java的源代码用编译器先给它生成一个中间的字节码。这个过程它是相当于,相当于,可以理解是相当于这个过程,但是这个过程它最终生成的这个文件,它不是一个机器语言,它就也是个二进制的,但是不是记忆语言能直接执行的,然后它是一个自己的独有格式,然后这个格式的文件,然后然后和你的数据结合在一起,通过虚拟机软件,这个虚拟软件就是解释器,就相当于解释器,这个地方有个解释器,然后把它着行处理,然后最终生成结果,所以实际上Java程序它就是相当于结合的这两种的组合,哎,既有解释又有编译,明白了吧,是两种,所以Java呢,它这个不好说,它到底属于哪种啊,它是结合性的啊,当然这种东西呢,这太抽象,对于我们大部分同学,因为没有接触过Java,也没有接触过一些其他的开发语言,可能这些东西不是理解的很深刻啊,当然这个没关系,你先听一听就行了,这块呢不影响咱们接下来给大家介绍的这个线编程部分啊,那么对于share编程也好,将来你未来。
30:56
学习的Python呀,或者你将来还要学构之类的,那么所有的开发语言都有三种常见的逻辑处理思路,也符合我们平常生活中处理事法事件的方法,第一种方法呢,就是顺序。
31:12
啊,顺序,那每天我们正常的上课都是有一定的次序的啊,早上起床收拾收拾,是不是刷刷牙,洗洗脸,该处理个人卫生处理完,然后吃个早饭啊,就来上课了,每天都是这样的一个固定的流程是吧?有一个次序,当然你反过来好像也不太合适是吧?哎,所以这就是有一定的次序,当然有的时候并不是都那么一帆风顺的,有的时候可能会发生一些变故,比方说早上起来,按照正常我们应该会来上课。突然发现今天心情不好是吧,心情不太好,所以我决定,哎呀,不想来上课了。是吧,哎,我就某某一个条件成立,或者是触发了一个另外一个事件啊,比方说我决定去看看这个周边来了好几天了,这个大河南有好多景点没去过呢,我不想上课,我去少林寺转一圈了,是吧?哎,去看看啊,世界这么大,我们去转转对不对啊。
32:20
那就发生条件性的变化了,当然,然后就出家了。看破红尘了。啊,因为上午学习了正德本大师,感觉受到了打击,所以决定下午不来了是吧?听的不明白了是吧?哎,决定去出去溜达一圈,好,那当然这个分支,当然这个分支呢,我们也可能会出现说这个是。条件成立了,做一件事,那如果条件不成立了,条件不成立我也可以选择做另一件事,这就是分支结构了啊,这一定的条件了啊,你像咱们有些同学学习过程中确实有一些突发事件发生了,突然家里打了个电话,啊,这学了一个月了,课都上的差不多了,渐渐的入了这个渐入佳境了,是吧?哎,突然家里来个电话说咱们家拆迁了,哎,你可以回来了,不用上课了,是吧?哎,拆迁了是吧,有钱了还学什么it,多痛苦,直接回家有车有房是不是家里媳妇都给你不弄好了,直接来回家生活过日子过行了,这个条件出发了。
33:37
啊,那这就是所谓的分支条件判断了,那除此之外呢,我们还有一种逻辑呢,就是循环,那循环的话呢,这个我们天天都在用啊,你像咱们从前前周是吧,这个应该是大大大大前周了啊,那这个上课大家每天都在执行一个重复性的工作,早上来上课,晚上回去。
34:02
第二天早上来,早上走,那么是不是就是我们在执行一个不断的重复的事情,这就是循环啊循环,当然这个循环我们不是永久不停的循环,我们大概循环到年底的时候,这个课程是不是就结束了?那终有有一天我们会结束课程,大家将来会走上这个工作岗位是吧?诶去这个各大公司也可能是小公司,是不是有的,学的好的可以去大厂,学的不好的也可以去小厂啊,总之咱们将来可以结束这个课程。当然这个课程循环它在执行过程中也可能会提前结束,当然我们刚才说了,那家里来个电话有钱了,是不是提前结束循环了,是不是这也是可能的啊,那这个是我们给大家介绍的循环,所以我们在程序执行三个常见逻辑,顺序执行选择循环就是三种知道吧,这三种处理逻辑啊,三种处理逻辑。
35:09
那三种处理逻辑在咱们线编程里面都是可以支持的,有不同的这个指令能够完成这样的一些工作。那我们在整个课程中编脚本,实际上很多情况下那并没有那么特别复杂,就是把这三种逻辑处理好就好了。而且我们在编脚本用的最多的往往就是第一种顺序执行。啊,尤其咱们初学,实际上呢,线编程没那么难,就把我们前面学过的上百个命令,其中用到的一些这个你希望能用它来解决问题的命令拿出来,写到一个文件里面顺序执行就行了,就这么简单,所以share脚本如此之简单吧。Share的作用是什么?那实际上编程序目的是为了提高工作效率。
36:07
我们虽然将来做工作可以一条命令一条命令临时往上敲,但是你手工一条一条敲,这个执行速度就提高不了,我们可以事先把我要干的事写到脚本文件里,将来把这个脚本批量的一执行。啊,中间不停顿的就自动执行。从而相当于可以提高效率,不过呢,这个提高效率指行,指的是提高了执行效率,你边角本是不是也得敲啊,你边角本一条一条敲的过程是少不了的,但是写完了以后,这是个现成的文件了,下次执行是不是就快了?是不是,所以这个就跟我们生活一样,生活中就是这样,如果你前期付出了比较大的努力,前期写脚本很痛苦嘛,啊,一条一条往里写,但你把它写好了以后,以后一执行是不是就特别舒服了。
37:05
特别方便啊,如果你前期不想投入这些精力,你每次都手工敲,那以后你一直手工敲。啊,所以你前面多吃点苦,后面就幸福一些啊,如果你前面不吃苦,那苦就在后面吃,那这就无非就是人生的苦就这么多是吧,你前面多吃点,后面就少吃点啊,总之苦是躲不了的,那所以编脚本他的思想就是把苦放在前面,那所以大家在脚本这一部分可能要吃点苦,但是一旦写好了,将来就方便了,啪,一之行啊,你就幸福了啊。那曾经有一些工程师,我记得好多年前有一个工程师,他上了班以后发现工作中用到的一些日常的工作都是常见性的例行性工作。
38:00
所以他干脆呢,就写了一个程序,写了个程序以后每天早上啪把这个程序跑,今天的事就做完了。哎,从此他就过上了幸福生活,他这个程序写了写好以后,刚开始肯定是比较要琢磨怎么写比较麻烦一些,但是花了没多长时间就把这个程序写完了,写完以后呢,每天早上啪跑一下就完了,甚至连跑都不用跑,可以通过计划任务到点自动执行。哎,早上来了啥也不干,假装在这电视上工作,实际上是除非就是看看网页啊,冒充一下干活,实际上根本不干活。他幸福生活过了六年之久,六年每天上班,假装工作时间,根本啥也不干,就这个程序都是自动执行的。啊,结果六年之后被他老板发现了,既然啊,还有这么幸福的人比他都幸福,是不是每天都不用干活,天天就上网,喝着公公司给的咖啡啊,用着公司给的水呀,空调啊,天天享受着幸福生活,一分钱不花还挣着钱啊,这个公司老板很生气,就把他开除了。
39:07
开除以后,他想找下一份工作的时候,因为他六年没有再好好研究技术了,他已经忘记了怎么写代码了,所以再让他看那段代码已经看不懂。还得从头学,不过他已经幸福了六年啊,这点代价也是值得的。当然我说这个意思不是说让大家还真的这么干是吧?啊,那至少我们可以幸福一段时间也行啊,哪怕幸福一这个这个一天有很多时间省出来,我们有的时间可以看看马克视频嘛,对不对啊,所以写脚本确实是提高效率的,当然了,由于我们执行脚本是让计算机自动执行,你只要这个脚本写好了,这个程序执行的时候,它中间不会像人一样犯一错误,不像我们桥本RM命令还小,写错了都是空格,把根删了,他不会那样做的,只要程序写好了,他都会中实的按照你的命令一小时执行,是不是也大幅的减少了人工犯错误的机会。
40:04
哎,那此外呢,我们由于是通过程序执行,因此执行的过程它是非常的固定的,既然固定是不是就相对来讲就实现了标准化处理流程。永远它执行的过程都是一样,执行结果都是固定的啊,不会像人一样,今天心写不一样,那执行命令可能就写写法都不一样是吧,空格多了也少一个都不一样,这样的话,执行命令可能前后次序都不一样,就可能可能会导致结果不统一,结果不规范,所以写了脚本以后拍执行这结果都是固定的,大家都一个样子,流程化。那也可以把一些我们日常做的一些重复性工作,那么记住了以后上了班发现有一件事儿发现你发现没几天就重复好几次,这时候你就可以考虑写入脚本了。初步三次以上,你就可以考虑把写成交出。啊,当然。一般我们日常有哪些是重复性的呢?比方说经常做的备份啊,数据库备份啊,日常的这个啊,监控状态啊,比方说报警提示,邮件报警啊等等,文件的打包备份、压缩等等这些呢,很多都是日常性的,日常性的工作,你要是每次都手工执行,这个是很繁琐的。
41:20
啊,尤其我们装系统,装系统那在生产中很多环境中一步一步的去安装,那这个过程很麻烦。而且没有含金量,所以我们可以把这些工作全用脚本类似的思想来实现,批量处理,哎。大大的可以节约时间,那说到这儿,那我们知道脚本有什么好处了,那接下来咱们就来说一说线编程,它到底应该如何来写,那么说到线编程,它就是一种文本的标准。特有格式,那说到这个格式呢,大家对其他的开发语言应该也有所了解,那比方说我们先看一下咱们。
42:09
各种开发语言里面,我这儿提前准备了一些,这个很多开发语言,不过呢,他们都是hello word啊,就是你看我这有C语言写好的,用go语言写的,Java语言,Poor言写的,Tyon语言写的,Rub比语言写的,P3版本写的啊,这是各种语言啊,虽然对于大家初学者来讲呢,可以来了解一下啊,这个初学者尤其没有接触过开发语言,你说了半天啥叫开发语言呀,那我们刚才说了这么多语言,到底这些开发语言将来怎么个样子呀,那我们先有个大概的了解,先看一看,有一个感性的认识,所谓的写程序啊。不就是个写个文本文件,没啥大不了的,比方说C语言,C语言啥样啊,这就是C语言,这个C语言最终执行的效果就是把打出来,就这么简单,是不是没那么难的呀,不就是一些英文单词吗?啊。
43:13
啊,那这是C语言,那除了C语言,我这还有什么构语言,那将来有同学可能对构比较感兴趣,你看这是构语言的语法,它和C语言不太一样,但是也差不多,不都是英文单词吗?一看我都认得,每个单词我都认得。是吧,这是Java语言写的,你看Java。不见哪个单词不认得呀,啊,好像差不多都认得,不认得就不认得吧,啊,这还有破语言,所以大家发现没有什么语言写啊,不就是单词蹦吗?啊凑单词,不过呢,肯定它是有格式要求的,而你这个地方少个逗逗号,少个分号,它可能格式就不对了,看来就是格式有要求,那就是说这个英语单词英语不好啊,豫语不好,你可以写中文嘛,咱们中国也有一种叫豫元意元,听说了没有,一元就是用汉字来写。
44:05
汉字来写程序啊,汉字一元容易的易,这个中人发明,但是话说回来啊,这个正儿八经开发不会用一元啊,这个一元我觉得学习还行。所以大家明白了吧,所谓的编程语言不就是英语单词这么按照一定的格式来写不就得了吗?啊啊,那所以大家现在对编程序是不是觉得也没什么难的了?哎,那你看我们现在瞬间就已经掌握了这么多开发语。是吧,来,我们已经学会了C语言语言,Go语言,Java语言,你看想我这个学的语言语言什么都会啊,我们至少混个两首word会写了是吧?哎,好了,那这个课程我们就结束了。啊,当然我们刚开始啊,那接下来那咱们来说说线编程它的。
45:01
文本格式到底。哎,所以以后我们在简历上你就可以写了,我们精通各种语言,精精通精通各种语言的写法。啊,那当然,那现在我们现在在学share,那share肯定是有自己的格式,虽然都是英语单词,那这个分号在哪写,画括号怎么写,谁和谁成对用这个还是有语法要求,那我们来看一下share编程,首先它是一个过程语言结合语言,那么它的里面的命令都是我们各种Linux命令,你把这命令一行行写进去就行了啊,然后当然这里面还有一些复杂的逻辑需要加,比方说它加一些变量啊,加一些数组啊,加一些逻辑处理啊,比如说什么条件判断呀,循环呀,这肯定会加,里面还有一些所谓的这个加减乘除的逻辑运算之类的。
46:00
都有啊啊,当然对于事来讲呢,最基本的要求就是要在第一行要写一个开发语言的这个解释器的语言,那咱们刚才曾经看到过,刚才看到过Python,大家发现没有,Python的第一行写了一个这个东西。那这个是呃,Python,那我看看我这儿还有什么语言啊,因为Python呢属于解释性语言,解释性语言都需要在第一行要加上解释器的。这个程序的路径解释器,解释器什么意思?就是翻译它的。啊,那你要必须在第一行加上解释器的程序路径,将来它才能利用这个解释器程序来翻译后面的这些文本内容。你看,解说语言,破语言也是解说语言。
47:01
啊,Python也是,但是Java这些呢不是。啊,Java这些什么hello啊,这个go这都不是,这是编辑语言,编程语言它就不一样了,它不用写啊,解论语言都要在第一行加上解释器的路径,这个解释器呢,实际上就是个程序啊,你像Python Python有一个路径,那当然我这个地方呢,是斯诺八,诺八呢,它的Python版本已经不是啊老的版本了啊,它这个PYTHON3版本啊,这个你可以看一下路径。我们这儿没有Python,因为是三版本,这个还可能没装,需要单装啊,这个安装的话呢,我们可以用样么来装一下三看。有没有这个包,那就搜一下吧。搜一下。哎,大家看这都有三八版,三八版。
48:04
看到没有,他是三班的。有3.6版,有3.8版本啊,在3S7上面,这个用的应该是二版本啊,当然二版本它不用写,应该是不用写的话,你直接写Python,那这就是他的这个文件路径。对这个Python,这就是他的解释器的。程序这个解释器程序可以看一下。它实际上是个软连接,发现了吗?它指向了二,也就这个。啊,指向了二,同时它也是个链接,指向2.7,哎,这就是一个解释器,真正的程序路径。当然我们写的时候不用写2.7,就写P就可以了,所以大家可以看到我们这儿是不是写的us r并。
49:02
Pon,当然前面得加一个特殊的表示解释器的语法的一个写啊,一个说明,就是井号叹号。井号叹号后面再跟解示器程序的路径啊,你像pro的话呢,就得写上井号叹号USR破,那对于我们share编程来讲,那前面也需要写个井号叹号,后面加上share,那我们目前用的share大家都知道用的是fair share对不对,所以我们在写的时候呢,就要怎么写了,我们要写一个hello。那这个文件呢?将来我们要写所谓的share,那么这个文件的后缀一般推荐也用相应的后缀,那我们刚才看到了不同的开发语言,它的后缀是不是都是有自己习惯的后缀的,那我们对于share来讲也有一个习惯后缀,就是SH,当然我说的是习惯,那就意味着你可以不写这个,我非要写一个什么test行不行?
50:04
可以,但是你要这样写会被人骂的是不是,你这是什么什么意思嘛啊,马上就把你开除了,你太不专业了啊啊,那写个SH啊,这个SH就是share的意思嘛,是吧,那么写完以后大家看这需要加上释放机制。啊,这个写上BA,因为我们目前用的就是BA,这个就是我们现在的解释器,解释器。当然我们可以用别的啊,因为我们系统中都支持多种share,如果你将来用别的share,你这个地方也可以换别的share,比方说我们将来用c share,那就写chell,理解了吧,啊,当然你要按chell的话,底下就应按C的语法来写,那不过我们目前来讲主流的share是干写明白吧,所以我们这个地方要加上一个所谓的写,那当然大家可能发现最前面呢,都要加个井号叹号,那这个井号叹号不论是哪种结时语言都要加,那所以我们把这个。
51:06
第一行加上解释器前面加井号、叹号,这个称为叫棒机制,这叫棒机制啊,这叫棒机制,当然这个棒是怎么来的呢?这个机制是因为井号在英文的读音里面叫煞啊,C煞都知道吧,C法煞,然后叹号呢,读音就是棒。所以组合起来就是棒进去。啊,这是英文翻译过来的声音啊,啊,你可以人,你如果你看中文来翻译的话,就是井号叹号机制,但是这个太不专业了,听起来不伦不类,所以首行叫释放机制,明白吧,释放那这么来的,所以第一行要写上它的解释器的程序路径,这个是语法要求,当然这个举法要求我们要遵守。
52:01
所以既然遵守,那第一行既然这样写,所以我就自己随便写一个文件,只要是S后缀,我就可以自动的生成一个什么机子,省得我手写了,当然这个东西怎么做到的呢?哎,你看我写别的文件,他就不会给你讲。问了没有,它只要是加一个SH部对的,它就会自动给你生成,那这个怎么来的呢?就是我用了一个VM的用法,VM它有一个配置文件,再家上这个文件,这个文件里面我们可以写VM的相关配置,这个VM里面我就加了这一段,大家看这段,这段里面其中这说的就是有一个函数叫set title,这个set title是干嘛的呢?就是如果我们要创建一个SH文件的话,就自动的执行这样的一个啊s title的函数,这个函数里干嘛呢?就是往里加东西,加第一行加这个,第二行加这个,第三行加这个,但是这些东西你可以改,你想改成什么,你将来就进行加。
53:05
啊,这个就是十包机就是这么来的。所以这个VM呢,就是。可以自动生成一些东西,省得你再手写了。我们说了嘛,只要一件事重复三次,我们就得想办法变成自动化。这是不是就以后我们就再也用不着手写了,要不你每次手写你不觉得烦吗?对吧,浪费时间,浪费时间啊,当然我觉得第一次的话,尤其你们今天的课,咱们暂时先手写吧,至少把当前先熟了。是吧,你不熟你就用自动化,你这这有点他不会跑啊,不会不会走,你去想跑了,这不合适吧,是不是,所以初期大家还是要手工完成,慢慢的你再变成自动完成啊,这个打基础的过程,好,这是我们刚才说的释放机制。那所以呢,呃,为了和大家环境相匹配,我也是先给它改了吧,啊,这样的话我把它删了,删了以后,那你看我再建立和SH,那这就没了,那我就得跟大家一样了,哎,井号叹号方之集,加上那加上啊那加上我们要干什么呢?我们接下来要写一个最简单的线编程脚本,那就是呃,经典的hello word。
54:25
是吧,经典的hellowood hellowood呢,这个是做任何开发,学任何开发语言里面啊,通常都是运行的第一个程序啊,叫hello word hello word啊,当然这个hello word你随便写啊,就是就这个意思,哎,那么我们把它这个AO命令大家都知道,不就是打印一个字符串吗?对吧,那我们这里面写上以后,诶,保存一下好了,我们人生中的第一个线脚本就行了,多简单啊,这个脚本啊,写完了这么简单。
55:01
当然写完了以后,那你要运行它怎么运行啊,哎,那么这个地方呢,我们有多种运行方式,那么第一种运行方式也是比较。最常用的最传统的运行方式,那就是加执行权限。因为程序要运行了,你要加执行权限,加上执行权限以后,大家看有颜色的变化,绿了绿色了对吧,绿了我们就可以执行了,哎,那执行怎么执行呢?那我们就执行一下吧。诶,那请问大家告诉我这是咋回事。这个。看提示告诉我们说什么呀,他说hello sh文件说命令没发现,为什么明明没发现呀,那我这个文件不就在我眼前吗?
56:06
那这个文件不就在我的眼前吗?不就在这吗?而且我写的是相对路径吧,就是没有写,不是就相对路径。这是为什么呢?我们在最早我上课的第一天就已经讲了,我第一天就讲了。上周五就讲了。上周我讲了执行程序的执行过程,大家现在脑子里想一想,一个命令,为什么我们在这敲一个英语单词,计算机都能理解,它能跑起来,它的执行过程是什么?是不是第一步先看它是不是别名,这是别名吗?肯定不是,那不是别名,就看什么看是不是内部命令对吧,那也这也不是内部命令,那不是内部命令就当成什么外部命令,那当然那外部命令,那怎么找外部命令啊,是不是他就去pass对应的那个文件夹一个一个搜啊,而我们pass变量那个文件夹在哪呢?我们找找是不是在这些文件夹里,那这个文件夹一个一个去找,我们当前的文件在哪呢?是在root下,而这个root文件夹在他变量那些文件夹里面吗?
57:30
B不在,人家是入病,我是root不是一个目录是不是,所以就找不着嘛,那找不着当然就自然就报命令没找着了啊,所以呢,我要想执行,那让它找得到怎么找,那你要么你就把它放到一个pass变量随便一个文件夹里都行啊,比方说放在root病里边吧,这个root并有一个问题,我这有root病吗?我这有肉的病吗?没有没有见的嘛,是吧,然后呢,把它移进去不就行了,那现在它是不是就在入的并下面了。
58:14
在了吧,那在了以后我们是不是就可以在任何地方都可以运行它了,那比方说我们跑一遍可以了不,哎,我们后脚本写完了。那脚本编程基础就到学完了,是不是多简单,那第一个脚本我们就跑起来了。啊,当然了,这个脚本我们刚才是放在了一个PA的变量里,那如果我们没有在PA的变量里。那怎么办啊,比方说我再把它移走啊,我再给它移到,比方说移到data下,那这个data文件夹。一样。我移错了,我把B文件夹给移过来了啊,那那那一一这里面有个B文件夹啊,那那我们就再把它当然无所谓了,就在这儿也行,这个文件夹是不是不在pass变量,那所以你如果你现在在执行,哎,你发现你觉得它会出现什么现象?
59:15
不再执行。那么脑补一下它会出现什么提示,是不是想象了,你想想是不是大家看这个现象了吗?是不是他认为是内部外部命令,他会把那个内部外部命令的信息缓存下来,放到哈表里。是不是下次执行他就按照缓存的路径来找,结果发现哎找不着了,还记得吗?看看这个路径,他是不是还在老的那个柱子病人去找啊,因为我刚才执行过,他是不是记录了啊。那当然对,这个路径我已经不在那了,都搬家了,你还老老地儿找,找不着了,那现在我们不在帕恋里,我就想执行他,那怎么办呢?那么既然它既不是个别名,也不是内部命令,它外部命令也不在它的变量里,要想执行,有另外一种方法,就是告诉他路径。
60:11
我告诉他路径不就得了吗?比方说我现在在这,那我就告诉他路径,那我就挑一下这个路径,我告你找不着,我告诉你路径不就得了,那这是绝对路径,但是绝对路径这个显示见没有必要,因为什么我已经在这个目录里了,我写相对路径就可以了,所以是不是就可以。明白了吗?那这就是执行脚本的方法。第一种。啊,第一种方法就叫加庭权限,然后不管怎么样,你告诉他路径,或者是写的他样的都行,这是执行脚本第一种方法,当然如果这个程序没有执行权限,我把执行权限去掉,如果没有执行权限,你这么执行它是不可以执行的啊,他会说权限拒绝。
61:02
啊好,那除了这种执行权限的方式,我们还可以这么来执行,我们可以怎么执行呢?就是但是后面跟上文件也可以。但是允许,但是就是背后解释器嘛,它可以把你的flow sh文件,即使没有权件后面跟上也可以这样也行。啊,然后我们还可以这么来干。这么远执行也可以。标准输入重定向。当然,我还可以这么做。都可以,大家看是不是N多种方法都可以分析。啊,那这种方法带来的好处就是我们是不是可以把一些命令的执行结果用管道传给战士,那这个东西带来的好处就是将来我们甚至可以把我的程序不放在自己的主机上,我给它放在哪呢?我放在远程的服务器上,比方说我再跑到我的机机上。
62:26
好,再连到我的服务器上。现在我这儿有一个。文件夹。啊,是放我的数据的这个这边有一个文件夹,这个文件夹里面放了一些程序代码啊,比方说这有一个我写一个吧,啊这有一个test,那我就写一个吧。
63:13
诶这有诶有就它好了,那这个多瓣的就是我之前写好的啊,然后这个程序呢,放在了这个目录下,那这个目录呢,实际上我们是可以通过浏览器来打开它的,怎么打开呢?我们可以直接通过浏览器来访问。啊,这个网站就是我个人的那个网站啊,然后后面跟上网,然后test,所以这个test de对应的就是这个文件夹,就这个文题,对啊,这个呢是相当于整个网站的根,哎,你访问它,然后这里面不是有个hello。SH吗?那我现在就可以用这种方式来打开哈,前提你知道啊。哎,大家看它是不是把它下载下来了,你看这不又下载吗?好,那我们我可以不去下载它啊,怎么不去下载呢,这样做啊,我们可以这么做。
64:12
把这个路径复制一下,我在这我可以用这个方法。啊,直接访问一下。大家看是不是直接把这个文件的内容展示出来了。看到了吧,既然能展出来,我要想把它服务器上的文件在我本机执行,是不是我们想到了?是什么?明白了吗?是不是执行了,你看那两个ho不都打出来了吗?当然这两个呢,这个是最早的经典写法,就是最早的是这个,后来现在流行这种写法。啊。当然,不管怎么样都是东西是吧,实际上经典的是这个写法,现在咱们都改良成这个样子。
65:09
那所以大家明白了一个道理,如果我将来在这个网站上,我把这个hello word改一改,啥呢,来个三根。啊,同学们,你觉得我要现在这么搞一下啥意思?不相信能相跟吗?那要不你试一试呗。是吧?哎,那你想想这样带来的优势就是随时随地可以删掉,是不是你到公司里面想删根,这个机器不是互联网上都能访问吗?那都能访问,你是不是扫在随便一个机器能上网的机器上,啪敲一下这个命令删根了对不对?哎,你这边可以一次编写到处运行,到处漫游山根。
66:05
啊,所以这个当然我说的是什么啊,那不会有我们真善感,我们可以可以把一些你预前工作中需要用到的日常工作写成一个脚本,放到互联网上的一个服务器上,将来你是不是就不需要再搭个U盘,跑着这个U跑着这个带着这个什么脚本到处跑,你随时可以空手是吧?啪,敲敲门就完事了。就免去了你在考脚本的过程,大家不觉得很方便吗?啊对不对,当然你要不知道是不是能效果好,你也可以体谅一下啊,你们同学们是不是考虑执行一下这个命令啊啊啊,这个这个执行了是吧?啊笑话已经走了,准备拜拜三根了啊。
67:04
你不信是吧?天宇说,不信你截图看看。那你一下呗,天宇删不了,你不信那你试试。啊,这就是咱们所以编脚本是不是可以执行啊,你看哎,有效果哈,效果效果。大点的试啊,你别上了班以后再试吧,我这个脚本会一直留着的,等你上了班,哪一天不爽了,你就可以想起老王当时写过一个这样的脚本。直接我这个时时欢迎大家调用一下他。啊哈,对吧,啊,那这是咱们执行脚本的多种方式,那现在大家看啊,我们执行一个脚本,我用了多种方法,你看到没有第一种方法,但第二种方法,这个第三种方法,家庭权限在运行。
68:20
哎,第四种方法呢,就是把它放在一个服务器上远程执行,实际上还有第五种方法,这应该再补一个。啊,再补一个方法。就是方法三。啊,什么呢。就是标准输入重下是吧,这个都可以吗?啊,这个是方法四是方法五。
69:01
是吧,这些方法都是可以的,好,那这些方法希望大家先来试一试啊,当然我这个命令呢,它在执行的时候略微有一些不太好的地方,就是它前面有一些下载的过程,那这个下载的过程是怎么回事呢?下载的过程,实际上就是还有一些那个啊,标准错误有可能。那这个错误信息我不想显示,我只希望有这些最终的执行结果,就下载过程我想显示,那这个也是有方法可以实现啊,当然我赶紧把这个山根这个事还是改了吧,别忘了是不是。好,那现在我们想把这事隐藏起来啊,好像有一个选项叫S,如果我没记错的话。
70:03
诶可以是吧,是不是就把这个信息隐藏了,当然他这个之所以有这样的一个下载信息,那这个信息到底是什么,实际上你也可以去看一看,我们输出的信息,无非就是标准输出标准错误是吧,那如果是错误给它隐藏。看看是不是因为错误的原因。哎,大家看这就是标准错误,也就是说刚才这个输出下载的信息实际上算标准错误,知道吧?啊,那所以我们把标准错误重一下,这里面是不是就可以起到了隐藏的效果,明白了吧,所以我们用这个方法是可以的啊,当然用杠S也是可以的啊,杠S也是可以的。那这不是杠S吗?啊,这是刚才咱们执行的效果啊,注意这个大于号呢,如果你光写大于号是不行的,因为它不算标准输出,人家算标准错误,所以光写大于号这个是隐藏不了,就这个地方。
71:17
是大于号,因为它算是标准错误,你看这个输入信息是不是并没有隐藏,所以这个标准这些信息算标准错误,它不算标准输出,反而你把这个hello word看不见了,因为hello word算标准输出。明了吧,那事实上除了用这种方法,咱们也可以用另外一个方法,叫w get,杠,QO,然后杠这样写也可以。啊,这个命令也可以,它也能执行脚本,所以我把这个命令也可以补充一下。Car。
72:06
这些方法都可以把远程服务器的,当然大家可能手上呢,没有这个像我这样的网站啊,没有这样的网站,你想做这个实验怎么做呢?我这有,你先在你的电脑上装一个软件包,然后把它启动起来,然后把你写的脚本扔到这个目录里就可以了,然后访问你自己的所在的这个。IP地址就可以看到了,明白了吗?就可以看到了,就是如果说你不像我这有网站吗?你那没网站,没网站你自己搭一个,不过这个搭完以后,就是在自己的这个电脑上用用啊不是互联网,所以互联网用不了,但是你将来不是可以在互联网上搭吗?你们现在可以考虑呢,在互联网上买一个那个服务器了。买个服务器,这个阿里云的服务器呢,呃,有的时候会做活动啊,比较便宜,一年也没多少钱,一年有的好像是几不到100块钱嘛,就买一个配置,反正是将八够用的一个云服务器,就相当于买一台电脑一年的使用费啊,100块钱左右买一个啊,这个配置不算太高,但是可以做实验,阿里云,当然也可以去华为云,腾讯云都可以。
73:32
这边呢,有一些这个服务器卖啊,这个服务器呢,你可以看一下这里面有那个卖的那个费用啊,这边你看这个弹性计算,这里面就有各种ecs,就是这这个相当于就是我们虚拟机的。这个上面有卖的。啊,这个入门篇多少多少钱。有这个价格,你看这边有通用型的,增强型的,计算型的,你要想那个省钱。
74:06
啊,你可以买这种入门级的,入门级的你看它有什么共享,共享应该便宜,这个还有突发性能级的更便宜。这个是500多。这这这个还得还得登录的,还得登录,应该这个配置还算是高的了,有更便宜点的,有更便宜点,因为这个配置你别选太高嘛,比方说你就选那个什么。啊,这个这个盒太多了啊,这这这都还有什么100多盒,这得多少钱啊,这个哎哟这这这这这一般的企业才能承担得起啊,一年对啊,这是一年的费用啊,一年的费用用一年啊这个这个太太高了,这个双核双这是企业级啊,这个太贵了。
75:07
你可以买那种便宜点的这个这个还得登录登录一下吧,我的我用我的淘宝账号来登一下。这还得拿这个。是吧,有同学买了都没没怎么用是吧,没怎么用,你可以有人用的,你可以跟他那个帮帮忙嘛,让他来帮你用一用,哎,这个短信收不到啊。
76:17
没短信到位了,我电脑到位了,哎,这个便宜啊16啊,那你发个链接啊96。金州你这是从哪整的,才96块钱啊,这个阿里云这个金州,金州买了一个这个便宜啊,你们这这这还可以这个价格。呃,在哪,这96这个便宜,这个同学们抽空可以买一下啊,96块钱够用吗?这是阿里的阿里的96,这这不有真便宜是吧?呃,还有更便宜的时候,80多块钱,不过那个得腾活动才行。
77:21
这一台机器你做实验用一年是吧,一年做实验正好你们初学,那将来可能还要搭个人网站,个人博客,就像我一样搭个博客,所以这时候呢,你们可以提前买一个,到时候做练习,在那儿可以开脸是吧,这个考虑买一个吧,玩一玩嘛,是吧,建议大家试一试啊。哎,你你大好以后,你就可以用这个方法来直接装了,装好以后他有公网地址,你可以直接跨互联网访问,还有八的子清,你这儿哪有18的呀,还有18的呢,云服务器啊,学生专,那这个你你得学生身份才行呢,半年的。
78:15
半年半年58,那一年不就100多了,那不也不止吗,半年呀,啊六个月,那这也不便宜,这个这个忽悠人了是吧?啊这个你们下来抽空试试啊,买一个吧,我觉得咱们大部分同学都最后都要买一个的啊,不行了,两个人合作买一个还有优惠券呢哈,啊两个医用买两年的还能便宜,还能优惠20买90多块钱嘛,也就,哎好了,那这就是我们给大家说的这个线编程的一个基本用法,现在咱们写一个脚本,现在至少能跑起来了,对吧,那现在我们已经初步入门了,哎,所谓的脚本执行就这么简单,哎,这个实际上就是刚才我写的这个代码一样的一样,跟这。
79:16
这个是一样的。好了,那我们了解了share编程的基本用法之后啊,那接下来我们就开始来学习线编程的更加复杂用法了啊,你们抽空可以赶紧下单了啊94是吧,直接下单好了,那我们休息一会,待会来继续啊,继续,你们赶紧下单就下单。
我来说两句