00:00
大家好,欢迎大家继续收看上微谷的云计算课程。我是沈超老师。这节课我们继续来学习少儿基础当中的被试的基本功能。被试的功能还是比较多的啊,那我们就按照它的这个基本功能来,这个按照顺序来讲,那我们来看一个东西叫做多命令顺序执行什么意思。在系统当中执行我们回车,是不是就只能执行我们的这个单一命令。但有一些特殊情况。比如说。我现在远程连接我的远程这个服务器在非常远的地方,那我敲命令有时候敲起来很慢,我又不想等着他给我反馈之后,我保证我的命令不会敲错,我又不想让他等着我给我回馈,那我可能想一次把四五条命令全部敲进去可以吗?可以,那只要在多个命令之间加分号就行。命令之间没有必要有任何联系,各位跟管道符还不一样,管道符是命令一的结果,要作为V02的操作对象,对吧?那这个分号就是不需要有任何联系,就比如说LS是一个命令,查看当前目录下有什么对吧?我再执行一下,Date完我查看一下日期,然后我再什么切换一下,我们比如说切换到这个跟下的,呃,这个ETC目录下。
01:19
那这三个命令之间没有任何联系,它只它的唯一作用就是这条命令执行完,哎,而且不管这条命令会报错还是执行,就是正确执行这个后面的命令也会执行,如果前面这个命令哪怕报错,后面的依然会执行,换句话说。三个命令之间没有任何联系。既不需要处理,把命令一的结果交给后面处理,也不用管前面这个命令是正确执行还是错误执行,后面的命令都会执行,它只是多条命令在同一条命令上同时执行,那回车我们可以看到。LS执行了吧。Date是不是也执行了CD呢?看我们到哪了,到ETC下了吧,是不是也执行了,那那如果这条命令,比如说我再退回去。
02:06
还是这条命令,那比如说中间某一条命令报错了,比如艾拉斯报错了,后面呢,会执行吗?看第一条命令报错了。对吧,第二条,第一条命令,第三条切换到ETC都可以执行,没有任何影响,所以分号的作用仅仅就是多命令顺序执行,命令之间没有逻辑联系啊,这种情况在一些特殊情况下还是常见的啊,这个情况不算少见,我们在一些呃文档里,甚至官方给的一些文档,包括我们日常操作当中,都有可能需要多条门列同时运行,但这个都是比较常见的。那。下来之后呢,就是双按的服务,其实我们把它叫做逻辑与,那它也是执行多个命令,但是这个时候就会有一定的要求,它的要求是。只有当命令一正确执行,这个先不理它,我们后面讲这个预定变量的时候,我们再来说啊,那我们就说只有命令机正确执行,命令才会执行。
03:09
如果命令一不正确执行,那命令二是不执行的。所以把它叫逻辑与。与嘛,就是俩条件都成立,后面是不是结果才成立对吧,那这个就是前面这个条件成立,后面这个才会执行,OK,那跟这个不一样了,分号是不论前面的命令正确执行还是错误执行,后面的都会执行,对吧?而我们这个呢,双按的符呢,就是前面的正确执行,后面的才会执行,那我们试试。啊,但是它它比这个管道浮力要求又少一点,就是说前面的命令结果跟后面第二个命令之间没有关系,所以它们之间可以没有任何的联关联,比如说echo一下,哎,如果这条命令正确执行,我就打赢了,Yes。那我们看看回撤,首先LS正确执行了啊,我们现在在root录下e gtc回去,这个目录太多了,看起来不痛快。
04:08
那我们如果第一条命令正确执行,第二条命令就会执行,我们再说啊AQ后面输出的内容如果没有空格,加不加双引号都问题不大啊,不加也行,加也行,那好回撤,那我们可以看到。第一个命令是不是正确执行了,我当前入统目录下有这样有这样一些文件,那第二个命令就会执行。那如果第一条命令报错吗?看它名字报错了。第二条命令是没有执行的,看见了吧?哎,这就是逻辑与双案的辅助作用。那还可以有逻辑或双竖杠,它就和这个双按的符是反过来了,它是这样的,当命令一报错,后面的命令二才会执行。如果命令正确执行,那么命令二就不执行,诶跟刚刚是反的,我再说先不理这个变量是什么,后面这个其实没多难,后一说就知道,暂时先可以不看它啊。
05:06
好了,这就是这个双这个逻辑语和双竖杠的作用,那我们是啥,你看啊,刚刚是。这条命令正确的,后边命令是不是就执行,那现在呢,我干嘛,我反过来我双竖杠,然后IQ no啊,那也就说这条命令如果正确执行,这个就应该不执行,那你就可以看到没有no输出。对吧,但是如果这条命令报错。来这里就会有一个no输出。OK,这就是这两个家伙的作用,那各位这两个可以联合运用来判断命令是否正确执行,我们可以这样写,看到。双and IQ yes,双竖杠IQ。No啥意思?如果这个命令正确执行了,那第二个命令是不是就会执行,那是不是就会输出一个yes?
06:06
那我们只要看到yes,是不是就证明命令执行了?而这个两个加上都正确执行了,后面这个是不是就不会执行,对不对,那如果这条命令报错了,那这条命令中间这个命令是不是就彻底不执行了,这个命令是不是就跳过去了,然后前面往这后面看,它前面这条命令报错,它就会输出的,换句话说。前面这条命令LS,就说第一条命令不一定是LS,任何命令都行,如果正确执行,则输出yes。那如果错误执行就输出no,我们其实这是一个可以认为这是一个单分之判断语句,也就是说它是可以取代if这个判断的。哎,为啥要取代它?第一这样写比写if简单,第二呢,我们现在还没选if,我们可以用这样的方式来判断第一个命令是否正确执行,我们先试试啊。那LS正确执行,看输出了yes,那如果LS报错。
07:05
报错,它就会输出no,哎,可以通过它来判断命令是不是正确的,好,各位。你们有啥想问的?我相信我们的学员在这里最想问的这个件事儿就是什么老师。我干嘛要用这么笨的办法来判断这个命令是不是正确执行?哎,他有没有正确执行?看阿拉斯一回车正确执行啊,打错了,他报错了,我人我一眼就能看出来。哎,我何必非要让他再给我输出个yes,我才知道它是正确的,输出个那我才知道它是错误的,为什么?各位。原因很简单。你,你之所以这样想,就是我不需要他输出yes,可能我一眼就能看出来,这是你站在人的角度想。哎,也就是说你人,我们是理性和感性都有,我们一眼就能看出来这个东西有没有报错。但是前面这两个东西,这是站在计算机或者站在编程角度来想的。
08:05
各位,那你想我写了一段代码。我是不是要让我的程序知道这段代码是不是正确执行了?如果是正确执行,我是不是就处理这种情况,哎,我这里只是输出个yes啊,它不光可以输出yes吗?那比如说我是不是可以判断一下我的阿帕奇。阿帕奇的巴林端口是不是开启了?我通过他就能写了。就通过这个就能写了,那如果开启则什么都不干,或者就就说一切OK,如果不开启报错了,没找到阿帕奇八零端口,我就把阿帕奇要重启一下,就把阿帕奇要开启。那这是不是就是说编程或者程序需要有这样一个明确的方法来告诉你?这个正确了怎么办?错误了怎么办?换句话说。这就是我们所谓的编程思想。你不能站在人的角度角度考虑问题,人一眼就能看出来,不需要这么复杂的判断,但是你需要让程序知道。
09:07
这个命令前面这段脚本,这可以是一个命令啊,也可以是一串脚本都可以,我这一串命令或者一串脚本有没有正确执行,如果正确执行了我怎么处理,如果不正确执行我怎么处理,这样的话,这是不是就是一个基本程序了?看明白。各位,我们说。我们判断一个程序这个语言,它是不是程序语言,我们说我们有这样几个标准。第一呢,它就是要支持流程控制。啊,其实第一应该是要支持变量啊,还要支持变量。那第二就是要支持流程控制,所谓的流程控制,这里就是流程控制,如果正确执行了我怎么处理,否则他报错了我怎么处理,这其实就是它的控制程序,执行的流程过程,当然判断只是流程控制当中的一种,还有循环,对吧?
10:00
还有其他的一些这种格式,我们后面讲那。有了这个东西,换句话说,你就可以理解他才有判断,这东西才是语言。OK,当然其次呢,这个语言的特征啊,拥有变量,拥有流程控制,可以做运算。可以做运算,拥有函数,函数有这四个东西,就认为这是语言了。那那我们前面为什么讲HTML不是语言原因,HTML不具备这样的功能,HTML只能调整什么,你的文字的大小啊,页面的背景啊,能调整这个,但是它不具备我们现在说的语言特征,所以事虽然简单,但是事是完整的,语言这些功能它都是拥有的,OK,所以各位你要理解啊,为什么要用这么复杂的办法来判断前面这个命令是不是正确。原因很简单,这是为了让程序或者让计算机知道他有没有正确执行。OK,那这个东西是完全可以取代if的,当然它写起来比if简单,但是理解起来其实没有if好理解,我们后期学了if,我们还是推荐大家用if来写啊,用if来写,但是前期没学if的时候,我们就可以用这样一些简单的办法来处理一些情况,哎,其实知道了这个就可以写很简单的一些程序了,我们先讲,讲完我们讲完变量,我们会教大家,比如说写一些简单的这种加减乘除的计算器啊,我们就可以自己写OK。
11:27
好。这是多命令顺序执行的第一个问题,我想提醒你,为什么要这么做?原因这是程序要求。第二个问题。我能不能把这俩符号给颠倒过来?先写双and符,后写啊双,先写双管道,双竖杠,后写双and符,能不能?我能不能把它顺序颠倒一下,各位你想想,答案是不能,我们试试啊,你看啊。比如说我先IQ no,再写双and符IQ yes。
12:06
看看啊,首先那我们说第一条命令是不是正确执行了,那我们试一下来看,看起来没问题,第一条命令正确执行了,所以它没有执行,这这个是不是就直接跳过去了,他没有运行吗?那他一判断前面这个正确执行,这个执行了没问题,那我们看看他报错执行了,你看看。如果让这条命令报错了,那么后果是看第一条命令报错了。第二条命令icon no也执行了,第三条命令I yes也执行了,原因这条命令报错了,看这条命令报错了,Icon no是不是就正确执行了,而第二条命令正确执行了,第三条命令一判断,我操。哎,第二条命令执行了,那第三条命令也会执行,所以yes克no都会输出。换句话说,如果我真的想要用这种方法来取代if语句,写一个简单程序,它是固定格式。先写正确执行了怎么办?当然不一定非要是输出一个yes,可以执行其他命令。
13:04
再写错误执行了怎么办?哎,这样一个情况,OK,这个还是很常见的。很常用的一些判断程序,在绝大多数很多脚本当中,很多的这个官方文档当中都会看到这种格式,你要能看懂啊。好了。这是我们的多命令顺序执行的这个方法,第二个呢,再讲一个呢,就是管道符了,那管道符各位我们讲过,所以我简单一提醒一提醒就行了,这里呢,首先gra,因为我们是讲过,它的作用是在文件名当中搜索符合条件的字符串,对吧?然后呢,可以在这里忽略大小写啊,列出行号啊,反向查找,包括列出颜色,我们都是讲过了,对吧。那好,其实这个都是讲过了,比如说看在passor里搜包含被行,然后呢,就是找到root root并列取后续的三行啊,这就是杠大A的作用,列取后这个后续三行啊,试试来来。
14:07
Grab。Root。然后呢,在pass的文件里找root的内容,那我们可以看到这里面既有一个root的,还有一个就是加目录放在root的这样一个伪用户,OK,那如果加一个杠大A呢,就是找到root的同时再把root这一行,就是你找到了这一串内容。这是我们找到的内容,这是杠A3的作用,再列出后三行就是这个意思啊。好,其他的就是讲过了,包括find和gra的区别啊,虽然我们前面讲的很痛苦,但是是讲过了,Find的作用是在系统中搜索符合条件的文件名,如果需要模糊匹配,使用通配符,OK,通配符我们也简单提示一下,我们下节课会再再强调一下通配符,那么通配符搜索是完全匹配。而格呢?它的作用是在文件中搜索符合条件的字符串,如果需要模糊查询,使用正则来进行匹配,正则是包含匹配都是讲过了。
15:09
我这里在find里注了一句话,Find可以通过杠rejects这个选项把它的识别规则从通配符。转变成正则来识别,换句话说,泛用特殊格式是可以支持正则的。但是我再说,我并不推荐这样原因犯的命令和gra分命令,其实就是通配符合政则,本来就不好理解。那现在通配符有一个和政策有一个明显的区别在于,通配符是用来匹配文件名的。而正则是用来匹配字串的,有一个明显的区别,如果你在犯罪当中,他本来犯的就是找文件名的嘛,你突然让他匹配正则,你们更容易搞死在这儿,就是容易晕死在这儿,所以各位不建议用这个选项,只是告诉你范德他拥有这样的功能,可以转成正则格式,OK。
16:01
好了,这就是讲过管道符讲过的吧,多命令顺序执行这些例子都是讲过的,对吧?这个就是分清显示对吧?在这个ne ne state里找已经建立的连接,然后统计连接数量,对吧?都是讲过了,OK,好了,那通配符是讲这个管道服是讲过了,所以我简单的一提就过去了,OK,好。那这节课呢,我们重点学习的是多命令顺序执行啊,主要是这两个东西啊,其实这三个都还是很常见的,大家要能看懂,我们后面会利用这个情况帮大家写上小程序啊。那管道符呢,我们是提过了啊,所以我们快速一说,如果你忘了回去看另类行里我们讲的管道符去,去到那翻好各位,那这节课的内容就是这样,我们下节课再见。
我来说两句