00:00
大家好,欢迎大家继续收看上硅谷的Linux运维课程。我是沈超老师。那这节课呢,我们开始来学习这个经典面试题当中少儿编程类的面试题,哎。我们系统管理类的面试题可能就说完了,我们来看看12、编程类。那面试题第一个题呢,文本截取类文本截取。那少儿编程的这种面试题啊,它有一个特征什么。宣称思想的问题。说白了就是。他和命令不一样。系统命令是它的答案是一样的。比如。想说1000个人去配某一个服务,比如说阿帕奇。只要你实现的功能是一样的啊,你要一个同样的功能,它配完之后结果就是一样,因为它的配置文件是固定的,你要照着它的配置文件来写。来生成这种同样的功能。哎,比如说你要什么什么设了权限啊,什么敲个命令啊,那命令是死的,背下来就好。
01:03
但是编程类就有一个特征了是吧。我实现同样的功能。只要你不是抄的。1000个人写他的代码可能都不不会完全一样啊,思路有可能会一样,但是代码写出来绝不一样。所以啊,编程类的题呢,没有一个啊。啊,标准的这样一个过程,没有这样的过程。没有一个标准的答案,当然我们肯定会把编程的答案,我们能实现的功能这个打出来,但是它不一定是唯一的方法,它肯定有其他的各种各样的方法都是可以的。OK,那这是编程类的电视机。编程类面试题的特征,大家小心啊。那这种情况下,我们就说各位啊。他在这个笔试过程中,12编程类的题可能还是比较多的。那他尤其是在选择题和填空题,他考的可能都是什么,尤其是些基本的语法。基本的编程的概念,比如说最常问的就是什么这样的系统的预定济变量。到了问。
02:04
到了,到了。报了警,这些东西市场下去背,我跟你讲,基本上来说只要考编程类这个上编程类的面试题这玩意儿必备,这玩意儿是必须要有的,一定会。所以你把这些这个它里面自带的这些概念先背明白,然后再有一个呢,那如果我真碰到写程序的面试题了,那。程序这个东西啊,有个小问题,就是手写可能难度会很高了,因为你没法调试。他写了之后总会尤其事儿,也不是太事儿,其实不是太完善的语言。有的时候这个引号不加,他可能就执行不了,在有的程序里,有的格式里加了引号反而就不执行。他有这样的问题。说一下各位。手写肯定我们可能就说。他就不一定说是写完了这个东西就一定能执行,那这种时候我们甚至说,如果你真的,比如说语法记清,你甚至可以写伪代码,哎呀伪代码。
03:06
啥意思?就是你只要能把思路写出来。我觉得这东西都是可以的,当然这是下策,就是我真的是啊。这个代码写不了,我可能才会考虑伪代码的问题啊。所以我们说这是编程类的特点,那我们说啊,编程类的特点呢。哎,它这个特点它是这样的,那我们就是这样,反正他这里出现了这样一个题啊,这个也是面试原题啊。有这样一个B文件。里面保存了一些域名,要求你把域名截取出来,首先字符串截取,然后统计重复域名出现的次数来排序统计,这样这是个典型的这个可能不光这个,还真是有点实际价值,当然实际价值,实际价值可能不光是体现在这儿,就是这个统计域名的这个,比如说我可以统计什么。你的服务器上的访问人数,我在日志里去统计这个到底有多少个网站往这个IP在访问,你哪个IP访问次数最多。
04:06
啊,这都是有实际意义的,没错吧,或者正在访问的人有有哪个IP次数最多,对吧,都是有意义的。所以啊各位,这种是字符串截取器,那好。那我们说啊。12语言呢,主要考察的是语语法基础和编程思想,那这个截取考验的是语法基础啊,我们这里考验的是排序,那我们说这个还好,答案基本上是固定的,但是如果考察编程思想这东西就是。就咋写咋有理,只要你能实现功能就好。只要实现功能就好,但。大家注意啊,那好了,那我们来看看这道题,这道题其实不难啊,就是啊cat b读,然后呢,Cut截取,我这里都写了,怕你看不懂啊。以根号以这个斜杠作为分割符截取第三列,对吧?为啥是第三列?回来看这个文本。
05:00
拿根号拿斜杠来做分隔符嘛,对吧,那是不是就是这是第一列中间这个空白是第二列,这是不是就是第三列,没错吧,截取第三列截的是不是就是这个域名,因为他要统计的就是首先是不是要截域名,并统计域名重复次数对吧。好截取这三位,截完之后排序。先排序才能去取消重复行,这里还真不是取消重复行,如果只打UD不打杠C是取消重复行,这个杠C的意思是显示重复行的次数。我们是不是要统计次数,这里就会显示重复行是三个,然后重复次数取完之后再排序。因为。它有这样一个次数之后再排序就会按数字来排,大R的意思是取反,诶默认排序是从小到大,那我们这里肯定是从大到小对吧,加格杠,诶这个就是我们的这个这个命令,哎,其实是一个很简单的命令啊。面试一下,我们这里为了怕为了节省时间,我提前把这个B文件写好了,就是这个里面的内容可以吧,那我们开P,然后呢截取。
06:08
这个使用。分割符斜杠作为分割符来斜法杠进式分割符。杠F提取这三类,那我们是不是就要把域名提出来了,对吧。然后呢,干嘛。排序,哎,他是不是就会。按照顺序排,排完序之后呢,那个什么UN。本来UNI是这个取消重复行的,取消完之后它是不是就会变成把这个重复了,这个是不是就会给变成单一行,那我们这个不行啊,我们是要统计重复次数,加个杠C,就告诉你这玩意儿重复了三次,这个重复了一次,这个重复了两次,顺序是错的,那我们怎么办?再排序。刚按数字排。那默认是从小到大,那我们是要从大到小加个。从大到小啊。
07:00
这就是我们的这个结果,来看一下跟幻灯片上是不是就一样了,没错吧。这种字符串截取题来各位举个例子啊,这种题还真的在笔试题里,什么填空啊,选择都很常见。所以他其实主要就还是就是截取和排序,这么这么几个几个几个命令结合使哎。其实如果你设计合理,其实在我们比如说分析日志啊,啊,分析访问量啊,这都能起到一个很大的作用,这这是个常见操作。那又举了一个例子。这个是我们在工作中常用的。统计正在连接的IP地址。并按照这个。顺序排序。哎,各位。那这个啊,我这里截取的是established。先说这个net state-A啊,杠an net state统计网络状态,杠an,查询所有的连接。下面这块是一些网络程序连接,我们不理它,上面是服务,那我们这里说过ne会抓的状态,我们讲TCP3次握手,TCP4次握手的时候都说过,对吧?Listen代表听,Established代表建立连接。
08:10
咱们是虚拟机呀,这里有三个连接,人家我这里估计开了三个这。远程连接对吧,这是虚拟机啊,连接的人数少。如果是真实服务器上,你们可能就会查抓到什么各种的,那种我们讲的三次握手的状态,发信包的状态,AK回复包的状态,什么四次挥手,那个timeout,等待的time,这个out,这个wait,各种状态都能抓到。那我们说我们这种时候在在工作中啊,我们除了可以统接正在连接,我们也可以统计信报状态,有人发起连接。我们可以判断有多少人正在跟我联,埃卡布的是已经建立连接了,就是说他登录了,到我这上面没退下去。而如果抓到信保的这种状态,是这哥们儿正在访问我。那我说各位。按照我们的经验,我们一个正常在的复习,各位。
09:02
当年的时候我们的这个啊。我们的这个做这个游戏的时候啊,做教育嘛,他永远不会这个有娱乐的,这个访问量大,对吧,我们当年做游戏的时候。我们的普通网站,我们的这个网站首页,我们的天的批阅量可能都能达到几百万上千万。这么大,其实已经算是一个比较大的访问量了,这种情况下我们呢,正在发起联播连接,也就是信包抓到了数量一般不会超过30~50个。为什么要统计这个东西?原因很简单,我们说。我们有一种非常恶心的攻击。叫做信包拒绝服务攻击synd DOS攻击。这种攻击是很讨厌的,防火墙防不了。各种内核机制都成不了。所以我们有时候可能就要判断这个访问,它是正常访问还是这个。这个细胞攻击都是要判断的,这是TCPTCP3次握手的攻击啊,这种东西是非常常就是很常见,那其中一个重要的判断标志就是我当前这一个节点的信包的数量。
10:07
发起连接报的数量有多少个,我们一般认为我们当时的时候报警就是我们一天的霹雳,量大概几百万的时候,我们设定设定的报警阈值可是30。同时发现这个30个这个信报在访问话。可能就会要就就会报警,管理员就要看一下这这是不是有问题了。哎,所以各位这里只是举了个例子,结的是。阿斯的状态,那你完全可以把这个状态换成其他的各种状态,比如说信鲍状态。这都是有实际价值的,对吧。好,那我们来截一下啊,我们截一下。接一下接一下。我们来截一下,我们找这个这个establish找到了三个。那现在呢,我要做的是判断谁在连接我,对吧,那我们是不是要截这个这几列,这是第几列,12345列,那我们可以发现我这里用的是aw k在截取第五列原因。
11:10
命令。它不能用空格来做这分隔符。或者说用空格分格符,它可能数明白不是完全不同。它可以用制表符,也就是推不见。什么末号、封号,斜杠做都没问题,但是空格不行,如果真要是空格aw k来记。它更智能,Aw k也更强大,也就说我结第五列。对吧。我们截一下第五列。单引号大括号,这是标准格式啊,打印。第五列好了,就把第五列截出来了,但是截出来之后它有个问题啊啥。这前面是IP,后面是端口,我现在是不是只是要统计IP啊,那怎么办?哎,末号作为分隔符对吧?然后截取第一列是不是就可以了?那我们说cut截可能更简单,其aw也能做,就是指定分隔符,但是cut更简单,所以除非是用空格做一分格符,我们被迫用AWK来解,反正我们习惯一般可能就只要有能用cut的就用解。
12:17
它的命令更简单,OK。那我们干嘛?Cut-D分割符是冒号。杠F截第一列IP是不是就截出来了?对吧,截出来之后跟刚刚那就一样了,排序对吧,然后这个统计连接数量,然后排序。诶各位,这就和刚刚那个就一模一样,对吧?哎,好了,那我们扫它。然后这个,呃,这个UNI。统计数量,然后salt。好了,现在只有这一个IP在拍,所以呢,我们看到的就是这个IP访问了三次,三个人正在访问,我通过这个IP。
13:04
这块是举个例子啊,各位,那我们说它可以衍生出很多变形,很多变形能够统计网络访问,能够统计日志,能够统计各种的这种东西都是可以的,但这个还是一个典型的题啊,这种题在工作中也有实际使用意义的。所以这是一个字符串截取类的这样一个认识题。这是一个经典面试题啊,当然不一定就是叫这个,但是这个反正就是变形,各种变形好了。那这节课的内容呢,就是这样,我们下节课再见。
我来说两句