00:00
呢,是比一般的机构要讲的要更详细更深入的,相信大家可能也比较过,一般的机构可能不会讲这么多,这么深入啊,当然讲这么多也并不认为你马上就能接受,所以你事后呢,你可以以后在工作中用到了,至少咱们当时讲过这东西你有印象,你查一查笔记,查一查这个视频就会用了。就起到了这样的一个指导性的功能工作啊,所以你也不一定说是非得现在就做到宏观来说啊,事实上大部分人做不到的啊。那我们继续来学习文本的处理工具啊,刚才我们已经给大家讲了不少文本工具,你们还有印象学过几个了吗?Cat是吧,什么反着正着的,还有什么T啊had呀之类的,反正工具不少了。
01:00
好,那我们继续来看一下这个工具叫cut的工具,Cut呢,它是用来剪切的。这个单词是不是就是剪切的意思呀,是吧,剪切粘贴嘛,是剪切,它切的是哪一块呢。它是横着切竖着切,怎么切呀,竖着切。是吧,从上往下这么一切,一刀切下去,但是切下去那就是我们如果竖着这么切,那是不是就有点像表中的列啊,一列一列的。啊,Cut就是取列的,就是从一个文本中挑出特定的列。当然他要取列,必然产生了一个问题,你取的是第几列,那么你怎么知道就是第几列,也就是怎么区分列和列之间的分隔符。对吧,那cut命令在切的时候要指定这些属性。那比方说我们在ETC帕达这个文件中,它的格式我们是比较熟悉的,这个文件我们如果认为一行就是一个用户信息,那其中一列,那你说这个咋叫列呀,这个。
02:16
是不是用冒号分割开的就算列呀,哎,那所以我们用cut命令就可以挑列,哎,比方说我们要挑第一列和第三列,第一列是啥用户名,第三列是啥。第三列是啥呀?UID,所以我们取的时候怎么取呢?就是先用杠D指定列的分隔符是冒号,取第几列,第一列和第三列,后面再跟上文件名就取出来了,明白吗?就取出来了。啊,当然它也可以支持范围,比方说第三列到第五列,那就是我们取第一列以及三到五,你看也可以取。
03:04
这都可以去,这个很有意义啊,很有意义的。那我们将来工作中很多场景下需要取出特定列,你可以用cut来取,但是cut取的话,目前来讲呢,它这个列必须要用什么分格符,但是有的时候你说分隔符,哪个分格符合适呢?比方说嗯,Diff diff这个东西,你说它的分割符是啥?空格,那问题是空格是几个呀,所以这个就不好说了,我们现在比方说比较关注的是这一列,这一列就是那个分区的利用率。分区利用率满了,100%满了,你的空间一旦满了,好多程序就会出问题,甚至崩溃,所以我们比较关注分区利用率。当达到80,比方说我们就开始报警了。
04:02
那所以我们要提出把分区利用率取出来,那分区利用取出来,那你按照这个列的话,这个很明显,1234第五列对不对,那第五列问题是你这个分格符空格个数不确定啊,所以我们用cut取的话,这个好像也不好取啊D怎么做管道,它因为它支持标准输入重定下啊,所以我们用管道可以传,然后怎么办呢?那我们直接取不行啊,哎,那么也有个方法,就是看的命令,它有一个方法就是数字符数。虽然说你用什么分格弧不好指,但是它的这个很整齐啊,所以我们是不是从左到右数数数数数诶数到这。这后面的是不是就是分区利用率了,当然我预留了一个啊,为什么预留一个,因为万一百分之百呢,是不是所以预留这大家看这是多少个。是40。看清了吗?没看清是吧?哎,走,看着左下角,左下角盯着。
05:05
四十二四十三啊,那那我们这腾讯可能看不见是吧?啊,那么你们VC可以看见是吧?啊这个不就三吗?那就是呃,43。往后那就是四十四四十五四十六,当然我我这个确定一下,我也得看一下,我的眼神也看不清啊,这到到这个这个位置,这个是往前一点点。往前一点点。松手43应该是43啊,那就是43,那43往后四十五四十四四十五四十六是不是就三十五百分之百嘛,最多三个数,所以我们就可以这么取,取啥呢?C44到46。觉得吧。是不是取出来了,但是第一个我不要,第一个为什么不要啊,第一个这是描述嘛,第一个不要咋不要啊。
06:02
咋就把第一个就不要了。我们刚讲过一个方法,好像可以做到啥来着。是T吗?是不是,是不是加一呀,是不是加一呀,不是加一减一是减一吗?也不是减一啊。加二能用吗?是不是有一个减一。也不行啊,到底是哪个?到底是哪个呀,就是第一个不要了。从第二个开始。那有个图嘛,看这个图记不住没关系,看这个图,这个图应该是T吧,加呃应该是呃,这个是K,那应该是加一加二吧,加二的话,那就是从第二行开始,所以应该是加二对吧,再加二,那我们就是T-N加二。
07:18
哎,这可以了,刚才同学说的对的,哈,加二这就行了。啊,当然这个挑出来以后,这还不够,我们后续还要挑那个最大的。啊,这个这个你要是都是零的没意义嘛,我们要挑那些分区利用率大过80%的,怎么挑啊,这个可以,但这种敲法呢,怎么说呢,有点有点背是吧,数这个字符数,所以同学们刚才可能也提到了一个方法,就是我们用空格做风格,不过呢,我们用怎么样呢。把它压缩成单个空格不就行了吗?所以我们可以这么干,用TR命令把它压缩成多个空格,压成一个空格,然后这时候再用cut取。
08:07
空格作为分格符取第几列啊?第五列不就取出来了,不过这个地方还有一个百分号,这个百分号也没用啊。百分号不要了怎么办?你可以把它删了,这不就行了吗?对不对,当然你可以再加上T2-N啊。加二吧,这不可以取出纯数字来了吗?对不对,当然实际上我们可以再简化吗?哎,那么我们是不是可以在这个地方做一下,就是我们替换的时候直接把多个空格压缩,并且自动替换成百分号,这样的话我就省得在这儿处理百分号这个位置了,直接删了就行。哎哎,大家看这时候我们看一下效果就行了,看这是百分号来作为分隔符了,百分号作为分隔符以后呢,我们取百分号作为分隔符,取它的第几列,第五列。
09:14
这不就行了吗?看到没有,哎,然后呢,再用T2-N加二这就行了是不是。这这个都是面试的时候经常容易问到的,类似的这个地方啊,你可以这么来查cut啊cut。啊,那接着还有一个问题,现在请大家用cut命令,结合我们前面讲的命令,把这个地址取出来,把这个IP给我取出来,这个怎么取?这个IP好取吧,那用什么做什么什么,这是切裂嘛,怕他是吧,那切列你咋切。
10:02
是不是先把这行先跳出来,挑出来这行以后再去切,那怎么切?我们可以先把第二行找出来,第二行我们用个笨半半行,前两行最后一行这是不是就取出来了,取出来以后我们接着去cut取,问题是cut取这个怎么取啊?是不是可以拿空格作为空格符压缩掉,压缩掉完了以后呢,这个压缩完了以后变成了什么。啊,这个一个TR啊TR哎,T完了以后,你看这个IP地址在第几个字第几个。这第几个?第二个第二个吗?第三个他第三个,因为最前面还有个空格,这个空格前面算是第一个空格后面跟着第二个,这是第三个,这不取出来了。
11:12
是吧,这些IP地址就取出来了啊。好,这是cat命令。嗯。好,另外呢,我们在他取输出的时候,还可以定义输出的。字符之间的分隔符。输出的时候默认情况下,你看我现在字段和字段之间冒号隔开,ETC看WB,比方说我们取第一列到第一列和第三列,你看它输出的时候用冒号做的分格符。那我们也可以人为指定,不用冒号做分隔符,我可以人为指定,比如我就喜欢用加号。
12:05
看可以要吧,这个地方的分隔符是可以人为指定的,比方说我们用分号。都可以啊,可以指定分隔符。指定分包。好,这是cat命令啊。那接下来还有一个叫配置命令。类似命令呢?它可以把多个文件合在一起,它怎么个合法呢?是横向合并,它把第一个文件和第二个文件同一行。合在了同,合在了一个行里。啊,比方说十。我把这个呢生成一个文件,然后我再用A。
13:05
好,我在生成第二个文件。然后这两个文件呢,内容是不一样的,我现在用past,大家看直接这么写,你会发现它的效果是什么呢。明白了吗?是不是两个文件合在了一个文件合在一块。同一行就放在一起了啊,那当然我们还可以加一些选项,比方说可以指定第一个文件和第二个文件和的时候,它的分隔符默认是table键,那我也可以人为指定一个分界符啊,加上一个D,比方说我们用他们冒号分隔开。看到没有,这冒号后格啊,还有一个选项叫S选项,S选项呢,它是把所有的行给它整合成一行,如果我们写一个文件的话,大家看啊,就这个文件。
14:11
现在我们用K-S发现啥了?竖,它是不是竖着变成横着一行啊,你看第二个文件也是。第二文件就这样啊,他这个还不不是很那个整齐是吧?啊,我退出来我这环境看有没有关系,看来就是这样的状态,但是它这里面是空格导致的还是什么导致的,我去看一看到底是空格还是啥。这table键推出来的。那这个它中间用table键,但是呢,由于每个符号它table键推不出来,它对不齐了。看了没有用table键,好,那这是用table件分割的,但是我们如果有把两个文件放在一起,他就变成这样了。
15:13
啊,那是不是用这种命令可以把竖着的命变成横着?是吧,把竖命令变成横命令。把不同的行放到了一大行,嗯,所以那你看我们如果要是想把这个命令的内容给它放到一行里面,我们是不是就可以用past和S了。当然它的分格符呢,这个不太好,分格符用tab键导致我们对不齐,我们说了不行了,用空格,这是不是就整齐了。明白了吗?你看这个命令是不是特别方便呀,那这就是这个命令啊,还有就是。
16:05
文件的统计。例如WCWC这个命令用的非常的多。WC这个命令呢,它可以做到什么呢?就是统计文件的里面的带有的行,带有的单词数,带有的字节数,带有的字符数。还有就是文件中哪一行最长,它有多长?那如果默认直接写,它统计的是这个文件的有多少行,有多少个单词,有多少个字节。那比方说我们用WC,后面跟上一个ETCWD。啊,你看这是它的统计结果,我这个不要加RL啊,28行56个单词,1363个字节。
17:10
也可以单独统计多少行。也可以单独统计这个文件中有多少个单词,有多少个字符,多少个字节,这都可以统计。啊,这都可以分别统计啊,加上不同选项就可以做了。还有一个这个有意思啊,这个是统计文件中哪一行最长啊,这个这个很有意思,这个文件呢,它有些行是比较长的,那目视的话是不是这行最长是吧?所以我们可以统计一下这个文件中哪一行最长。99个字符,你看是不是99个啊,那我们从这去量一下,走走走,把它选中松手。看见了吧,啊九个。
18:04
99个啊,这些功能啊,大家先有个印象就行。万一工作中用到这个技术了,你别说,哎,我不知道你们工具搞定这件事情。有些工具不是经常用,但是一旦用到了,到时候你能想起来,曾经我们讲过一个工具能有这个功能。这是希望你们知道的。所以要求大家把笔记写好,当然我的笔记写的很详细了,适当的你可以看一看是吧,所以我我写的笔记,你们有没有同学不看笔记的?不说话,那看来就是不看也不说是不是意思,嗯,确实有同学就是真的笔记不看,我辛辛苦苦写了这个这个笔记啊。啊,步骤都有结果,同学不看这个就太可惜了啊,下来你们一定要看看笔记,尤其这些案例,我每次上课讲的这个案例和目前用的这个案例还不一定是完全一样的。
19:03
这是以以前。写的案例,我现在上课不一定用这个案例啊。哎,大家看一下这段命令,能看懂什么意思吗?这啥意思?这个地。这是不是就是显示了一下当前这个分区的使用情况,管道全给WC-L是统计行是不是要计多少行,然后呢A口,然后把这个数字呢,算出来以后去减一,然后传给BC,是不是就是行号减一就统计多少行了,然后杠N是不是就是显示这个文件除了第一行就是跑少了一行嘛,就是除了这一行的后续几行,那是不是就把相当于把第一行那个注释给取消了。
20:17
是吧,所以这个就是嵌套的一个命令啊,这个当然我们刚才讲过有一个更简单方法,T2-N加二是吧,哎,那个就更简单,那这个就是通过里面嵌入了一些线命令来实现了。知道吧,啊,这是刚才我们给大家讲的这个WC啊,WC命令用的非常多。面试也是经常会容易问的啊,比方说面试的时候可能会这么问,你说在工作中到底有多少人曾经访问过你的这个站点,你的网站,那咱们的网站呢?实际上每一个用户访问,他都会生成一个日志。
21:01
这个生成的日志呢,你可以通过观察日志的行来判断啊,比方说我这有一个日志文件啊,看一下以前咱们那个数据访问的时候生成的日志文件,看看有没有日志。呃,那吧。对啊。好,我排一下序啊,呃,Log这有这个呢,就是你像这个文件记录的就是用户访问的时候,他生成的日志信息。这个文件是个文本文件,看一下它的大小啊。找一个你看这个文件八兆这个文件更大,嗯,那有的文件呢,也都不小,那比方说就拿这个八兆的文件吧。八个文件,这还更大的,好,我把这八个文件给拉过来。
22:02
复制一下,复制到文件夹,然后把它下载下来放到桌面上。或者直接下载也行,我可以用W来下载。然后后面跟上这个文件的名称。这个文件名叫斯log。啊,然后用W直接下。啊,下完了,下完以后呢,看一下这个文件的内容,我们分页显示一下,然后看看它里面到底放了什么,你看它一行就是一个用户访问生成的日志信息,这一行就是。所以实际上我要知道我这个日志到底有多少人在访问,那我就统计它行数就行了。
23:00
五万多啊。玩多好。那我的我的这个个人这个网站上,我每天呢,都会记录那个当天的日志,这个日志呢,在我的这个服务器上,我看一下啊,我的地址是多少,我得。查一查。我先看一下我的地址。
24:00
呃,我的这个地址,王小吃在唱。哎,我这个能不能访问啊,我这个印象中以前是用户名密码。多少?啊,我用来登。
25:00
诶,SSH这个密码我用小PPP。连一下我那个网站啊。上面有一些日志啊。连不上去。啊,那我们就看我现在这个日志啊,看这个日志诶。那这个日志是这样的,我们刚才已经把这个日志呢下载下来了,嗯,那这个日志文件里面就有一个这样的内容,第一个第一个。第一个字段,这这个字段呢,就是远程用户访问生成的地址。现在我想知道这个地址有多少,我就把这个地址取出来,那这个文件呢,我们发现这个文件的格式很简单,它是不是用空格隔开的,所以我们要想把这个IP地址取出来的话。
26:13
是不是很简单呀?是不是取第一列就好好了,怎么取啊?冒号就是双引号空格作为分格符取第一列,那这不就学了吗?这就是所有访问我这个站点,它生成的地址信息,看到没?这么多。所以实际上呢,将来我们还可以进一步的再统计统计什么呢?比方说这个IP。好像访问了很多次,那我想知道到底哪个IP访问了多少次,各自访问了多少次,这个呢也是可以实现的,不过呢,这个需要我们配合别的命令,那接着我们来看sort命令,Sort命令呢是排序。
27:06
它可以对文件的某一列来进行排序。所谓的排序不是说改这个内容啊,他只是把这个排完序的结果给你显示出来而已,并不是把文件给改了啊,这地方需要注意,排序的时候它可以指定。对谁排序,默认情况下它是对这个文件的这个行。然后从第一个行的行首这个第一个字符来排。看他和别的行的行首的第一个字符,谁的优先级高,谁优先级高就排在前面。比方说就这个文件吧,这个文件ETCWD这个文件你看它默认,你看排序怎么排的,是不是按照abcd字母排的序。你看W是不是排在最后对吧,所以这个地方就能看得到,当然如果有两个都是M开头,那比不出来,那咋办。
28:07
是不是憋着比下一个字符就行,两个都是也比不出来,那比什么?下第三个终于比出来了,看到没有这么个比法啊,这就是如果你不指定任何选项的话,就这么比。那么事实上它还可以挑特定的列来比,比方说我们对第三列,第三列呢,用冒号作为分隔符,第三列来改比,那这个怎么比呢?就是我们要指定分隔符,因为你要又要按列了,所以我们要针上TT呢表示列的分割符,K表示对第几列来进行排序,所以我们T是冒号,K是第三列排序,这时候它就会把第三列拿出来作为排序的标准。当然第三列是什么UID,但是它是按照UID的从小到大次序排序吗?
29:01
发现啥了,好像他并不是真的是拿这个至少不是当数字排了吧,啊,你看他这个零,第一个正好说那个1000,怎么1000比下面的这个十十一还要在前面呀,就是因为它没有把它当成数字排,而是当成了字符顺序。那你像你这不都是一嘛,都是一比不出来,那我们就比第二个,第二个你是零,我这边呢是11啊,当然实际上它不叫11,它就是一一是吧,所以这时候是不是他就跑到前面去了。啊,那所以为了当成数字牌,我们需要加一个N选项,他才会认为这是数字,这时候他就真的当数字牌了。看到了吧,嗯,当然我们也可以倒序排,倒序排跟R。R,看见没有,这是不是倒序排了?哎,当然,那如果我们想取出特定的字段之后再去排序,那这个时候我们就想到了之前我们学过的。
30:07
Cut,我们用比方说我们想把第一列和第三列分别取出来,然后呢,对。用户的UID倒序排序,这时候我们是不是就可以这么干了,再配合NR倒序排序,T冒号做分格符K第二列看到没?这不就可以了,这一组合就行了。哎,用这种方法可以达到比较组合。另外呢,我们在排序的时候还可以不排序。啊,不排序,什么叫随机排。随机排呢,就是U啊,这个R大R啊,比方说这个我们用sort到R,你看。是不是随机拍?
31:00
当然这个飞机牌带来的好处就是我们是不是可以抽奖了,这次是八号。十号九号。随机的,但是随机保不齐到哪。是吧,以后咱们班比方说问问题是不是就可以随机了,咱们班学号排到几了。70吧,就算那这时候我们是不是就可以随机的问题了,逮着谁算谁是吧。是吧,36号啊,七月36号啊。以后问问题啊,就抽奖了,抽着谁算谁啊,答不对了,那你就请你站着听课吧,省得困,对不对?36号啊,是是是涛总吗?杨杨总是吧。
32:02
啊,你今年是三六号这么准啊好,那这是刚才我们给大家说的啊sort,那还有就是我们可以进一步的再去看分区的利用率了,分区利用率呢,我们可以统计出分区利用率最高的那个值了。现在咱们就可以统计最大那个值了啊。那最大的值,那不就是取第一个吗?对吧,排完序以后我不就可以取第一个了吗?所以我们现在看一下啊,我就想找到分区利用最大的那个分区利用率的数字,那这个图呢,就是一看就是13,当然我们怎么找到13呢?那应该怎么找啊,刚才我们已经实现了一些内容,先把这这个这个呃,我们可以用TR是吧,TR就是先用空格压缩成百分号,哎,压缩成百分号这个这个空格是吧,空格然后接着接着取它的第几列啊,比方说第五列,第五列呢,就是百分号第五列。
33:28
然后接着我们就取什么。去把那个第一个就不要了,加加二。然后再去排一下序,当然这个要数字排,然后再去取第一个就取出来了。是吧,当然要前几个,那不就前几个,比方说前三个是不是就前三个。这取出来了。啊,这就是一个取值啊。
34:05
啊,这个面试也是有时候会经常问类似的这样的问题啊,所以大家要注意嗯。好。还有一个命令,也是非常重要的一个命令,叫unix命令、UN命令。啊,这个这个命令啊,这个题目是一道一道面试题,大家可以先看一下啊,它有俩文件,一个是A一个是B。其中A文件随便写一些内容,B文件也是这样的一些内容,这两个文件呢,我们发现有些行是一样的,因为它本身这个文件没有重复行,然后这两个文件有些行一样,比方说都有200,哎,都有这个200这行。但是有些行不一样,现在呢,他要求你把两个文件进行一个。合并,并且要确保两每个数字。
35:02
是唯一的。并且输出时确保每个文件是唯一的,每个数字是唯一的。那这个唯一性呢,这边有一个选项叫U选项啊,U选项,U选项就是驱虫。如果有两行是完全一样的,它就给你合并了,这个U呢,是可以起到合并的这种功能啊,你像我们刚才说的这个,你看这里面是不是有好几个都是零,有俩都是三,所以我们可以去除。加U去。看了吧,可以去除。所以刚才刚才这个题目现在是不是就知道怎么做了,这个答案应该知道怎么做了吧,这面试题啊,你看它的作用就是两个文件合并,要输出的时候确保每个数字是唯一的,那怎么合并啊,首先说。咋合并啊?哎,那合并的话,实际上俩文件落一块不就得了,怎么合并呢?比方说我们现在构建一个a.test这个a.test呢,把这个内容贴过来啊,我们就贴四行就够了啊。
36:14
然后再把B点也搞过来。好,那这两个文件呢,我们看有了,现在我们要把它合在一块,那就是A和B是不是就合一块了,但合一块我们发现这两个文件是不是有重复的,我们刚才说了只留下要每一行都是唯一的,那怎么办呀?哎,我们可以排下去,以后去除就行。是不是因为排完序以后,它一样的东西是不是就在一起了,挨着了,挨着的话U呢,就是把相邻的重复行去掉。
37:05
这样的话就剩下了。这就是。面试的一个题目啊。不是很难吗?嗯。好,接着我们来看unique。UN呢,这个也是面试经常用的一个工具啊。UN呢,它是从输入中删除前后相邻的重复行,并且有时候还可以统计有多少个。这个选项非常有用。C就是显示重复的行出现的次数啊,比方说我们现在有一个这样的文件啊,这个文件呢,有些行是一样的,比方说这是二,这是四啊,这是七。七就有些行,它是一模一样的,我们可以用UN,呃,当然它这个有些行,如果不挨着的话,我们这都是,那我们再给他来一个,比方说这个地方再来一个二。
38:05
这个二和上面也有二,但是它不挨着,它中间隔着的啊,这个七,那么这个隔着的它不算重复啊,隔着的不算,只有相连的相邻的才算重复,所以UNI呢,直接后面跟上文件,你看它起到的功能是什么意思。是不是他直接就把那个相邻的重复行给去除了,留了一个,当然你要不相邻,他就该留着留着。你看底下这个二和上面的二实际上是一样的,但是它不挨着嘛,不应该着给你留着U那个呢,就是合并相邻的重复行。它不仅可以合并,而且它能告诉你相邻的重复行出现了几次,这边有个C。你看这告诉我们,二这行出现了两次,七这一行出现了三次,四这行出现了两次,看到没有,它可以统计出现的次数。
39:08
啊,另外呢,这还有一个U选项。U选项什么意思大家知道吗?出现重复,哎,大家发现没有啊,实际上U呢,就是把那个没有出现过重复的留下来,U只显示不曾出现的重复行。啊,那D呢,恰恰相反,我只要那个重复的好,有重复的我才要247是不是被重复过他留下。注意它这个地方所谓的重复是挨着的啊,挨着才算,不挨着的不算重复。所以这个UN呢,这个命令很有意义。啊,翻过头来再看刚才那个文件,A文件和B文件,面试的时候曾经有这样的一个题目。类似的,诶,这两个文件怎么都一样啊。
40:04
复制,我复制的时候没有复制好。是吧,没有,应该是一部分一样,一部分不一样。这个没复制下来。啊,这两个文件大家观察一下啊,这两个文件以前也出过类似的啊,你看这两个文件有些行,比方说200G行是一样的。其他行的不一样,对吧,现在面试的题目的要求就是请找出A和B这两个文件的,你有我有的好。就当我们。你也有,我也有的好,咋找这是第一个问题啊。
41:00
第二个问题就是请找出。咱俩。各自都不重复的哈。就是我有的你也没有,你有的我也没有的。不一样的好,这说白了就是一个是去交集。取他的除了交集以外的内容。那先说交集的事吧,AB,你有我有的。你也有,我也有的,咋找?那你也有我有的文件怎么找?实际上很简单吧,你有我有这是不就大家都有,然后再用用那个,那刚才说了。有一个是取重复的,出现重复的我才留下来,是不是不要,不是重复的就不要了,哎这里面对我们没有排序,没有排序的话,他这是不是就连一块就不连一块了,所以我们先排完序之后再来取。
42:14
是吧,哎,你看排完去以后,这个200不就连一块了吗?连一块了我们再用UND,这是不就一样的,那相反的那个是UU的话是不是就是大家不重复的。又取出来了。这是面试题啊,面试题就这么问。来吧,不难吧。面试宝典啊,赶紧赶紧准备。面试宝典。那就这个,这个就是面试宝典啊,共同的行,不同的好方法就是。
43:07
好,这个C选项非常有价值,面试成分。昨天昨天那个聊天记录大家看到了吗?有一个聊天说的就是这个事,就是统计一下我在这个日子中到底有。多少个IP访问过?每个IP分别访问了我多少次,就这个。刚才我们已经把这个地址取出来了,但是我们想统计一个IP访问了多少次,也就出现了多少次。那这个怎么做呢?是不是我直接先把它取出来,先空格作为分格符取第一列,取出来之后我们先排个序,是不是一样的,就连一块了,然后再用unique c取出。
44:06
但是取出来不够人家要求。要统计。访问次数最多的前三名,我们是不是再说一下数字排序?再去取前三名。看明白了吗?这是经典的面试题啊,经常问。而且我们现在学会了第一种方法。等我们后面的时候还会学别的方法,希望你将来面试的时候给他拿出好几种答案来。震住他是吧?我们不是只有一种方法。我这个基础还是很强的,我可以用各种姿势来实现啊,我们后面讲这个表达式,我们讲这个三剑客,还可以用剑客来实现。
45:09
啊,那初步我们这个方法呢,是比较简单的啊,这个谈不上什么特别高深的技术。还有就是这个。这个可以查看你当前这个主机它的连接。数、连接数。嗯,现在目前来讲,我这个机器啊,没什么连接啊,这个呃,我我那个网站老想访问一下,老是访问不了,密码忘了。我那个网站可能访问量稍微也许能多点。哎,终于找到了,那我我可以来看看咱们这个运维派吧,是吧,运维派可能访问量大一些,123呃,运维派的IP是12357,呃点218。
46:05
点140。这个月派有点不安全,算了,还是拿我的机器,这这我这个机器这个这个塌了就塌了吧。啊,这个问题不大啊。好,那我我我来看一下啊。嗯,我那个机器。我我先直接,然后小春点com,就是它这个名称3W,然后他的端口号是9527927知道吧,927密码。登我号不对吗?小屁看小屁,哎,这个密码我输一下,哎上去了,来看看我这个机器的访问量怎么样啊,这个命令可以显示出来,哎,目前来讲访问量不多呀,看来而且这个怎么都是39这个机器在访问呢。
47:16
39是这个是哪的地址啊,哎,你们可以访问一下,你把我的网站打开,你们都不过你打开估计也出去一个地址,对你们出去都是一个地,因为咱们中间都是用的是sat出去的,不过看一下吧,咱们至少能看看连接数也上来了,这大家都打开了,是那现在是这样的啊,现在要干什么呢?就是要统计。到底我这个机器有多少人正在连我啊,当然这个机器这也在连,这也在连,我就想统计每个远程的主机有多少人在分别连接,连接了多少次。啊,比方说我现在呢,有39在连,100在连,我就想统计一下,39这个连了多少次,100连了多少次,大家想想怎么做。
48:06
这是面试成分的,而且我要找出连接数最多的,比方说也是前三名的,不过我这这太少了,对对。那或者我自己连自己也行,这不就构建出仨来了啊,构建出仨来是吧。哎,你看这还有一个42的,哎,就你们可以通过那个翻墙,你们可以通过翻墙软件点一下,然后地址不就变了吗?你们就可以点我了。知道吧,翻一下墙,翻一下地址就变了,然后就可以看到就有多少人在连我啊,你看我这个每天都会有生成一个访问的日志,这个日志文件,你看这是每天访问量,那今天的访问量我们排一下序啊。
49:14
今天今天访问量最在最前面。这就是今天的啊,这个是昨天的八月,呃,8月3号,这个是昨天的,这是错误日志,这个是昨天的。啊,你看这个文,这个就是昨天的访问量。这个昨天访问量,前天的访问量啊,这都有,所以我们现在可以统计一下啊,就是我这个访问到底哪天访问最大,实际上你可以看一下它这个这边不是有一个那个文件大小嘛,这个文件大小越大,估计访问量比较大,那我们就找到这个吧。按照这个大小排下去,大小排下去的话呢,有一个选项叫大S,大S直接排,哪个是最大的呢?这个哎哟,看来这个文件是最大的。
50:07
然后这个文件最大,不过这个是以前的杰森格式,不太容易分,方便分析。这个文件吧,这个文件好分析。这个文件这是6月10号的时候访问量最大,我怀疑这个6月10号可能被攻击了。啊,这个还有更大的这个是7月3号,所以咱们就看7月3号这个吧,7月3号这个啊,你看7月3号这个访问日志,可以看一下还有多少行。你看一万多行,不可能,这我这个小小的网站哪有一万多行访问啊,那肯定是有黑客攻击了,所以我看一下,你看现在这个是不是就是排在最前面的IP地址,我现在就要统计了,哪个IP访问我的次数最多,访问了前三名的,前三名的。或者前十名的IP访问量最大的前十名,这个怎么查啊,刚才我们已经说过了怎么查。
51:03
是不是就是cut直接取就行了,取第一个第一,那取出来以后我们是不是排个序,再去unit-C然后再去排个序是吧,再取一个前十名,前十名不就去十名,这就是是吧,这样的话不就取出来了,那前十名第一名访问了2000次。所以2000次我觉得它是有攻击的可能性是吧,这个发光2000次有啥起图啊,我这个文章也没有2000个文章吗?那推同样道理,在这儿也可以看了,就这个在这个人数下上去了,你们可以再配合一下,然后这个统计一下哪个IP访问的次数最多,你你们再刷一下页面啊,通过浏览器刷一下就行了,刷一下我这就有刷一下,哎,你们上来了,上来了好,那现在我就统计一下访问量最多的前。
52:11
呃,比如说前五名IP地址,那这个地址怎么取出来。咋取啊?这个要这个吗?咋取啊。把空格压缩成替换成冒号。然后取是吧,然后那我因为是这样的啊,因为这个可能过一会儿地址就没了,所以我为了避免呢,我干脆把它先导进去,先存成一个文件放到这吧,做一个记录而已啊,那这样的话,我们分析这个文件就好了啊,那现在咱们来分析一下啊。
53:01
就这个。刚才说了把多个空格压成一个,那我们可以这么做,那就是T-S多个空格压成一个,当然有同学说直接换成百那个冒号是吧,直接替换成冒号。直接替换成冒号,把多空格压缩完了以后,替换成一个冒号。呃,后面。PS。直接处理这个文件不行,因为它是标准输入重新项,所以我们直接这么重重新下这么就可以了,这样就行了,这样完了以后呢,我们再去怎么样,这地址在哪啊,那你说第一列第二列,第三列,第四列,第五列,第六列是不是第六列啊,那第六列第六列那就是用看取第六列,第六列来了吧,起来以后再S再去再去S再去起前,比方说前五名。
54:21
就那么点啊。啊,就这么多,就前五名看了吧,这就给取出来了。啊,这是咱们刚才用到的这个写法。当然这个写法有没有别的写法来实现,这是第一种方法啊,有没有别的方法来实现?哎,你看这个地方,它这个后面有没有这个有没有空格啊这个。那我怎么知道他有没有空格呢?看这个就行了,再看这后面是有空格的。
55:02
看到没有,它每个地方都有空格。嗯。所以这个地方你要用空格用冒号做分隔符行不行,冒号做分隔符的话,你是不是分到这了。是吧,然后冒号分格符,冒号分符你方说从这到这是一段,是不是从这到这又是一段是吧,然后分完了以后呢,你再用空格作为分格符也行,对吧,但是这个就不方便,不如那个刚才踢完了直接用就省事,哎,这是这样的一个方式啊。好,这是刚才给大家讲的替换,用这种方式可以来查这个面试题也是经常问的啊,就是访问连接,然后还有一个呢,就是这个这个地方呢,它是网络的状态。
56:03
这个网络状态呢,它的值是不一样的。那面试也会经常出现类似的这样的问题,就是问你说不同的状态出现了多少次,然后有建立连接状态,有last a状态啊,这些状态出现了多少次,怎么统计?那这个简单,因为它恰恰就在第一列,第一列是不是我们直接取一列就好了,直接取第一列,它是空格做为分格符,直接取第一列啊。对吧,哎,直接取弟弟,这不就取出来了吗?取了以后呢,我们也是该排序排序,该去用那个用那个。这不取出来了吗?但是它默认的这个正常应该没有排序的,我们需要自己排。不过,他恰恰已经排好了。是吧,这样就可以了,哎,每个状态,当然这个状态不要,这个状态是不是属于那个第一行的那个注释啊。第一行那个注释啊,这个我们可以把它在刚开始的时候就去掉,因为刚开始的时候它在。
57:06
啊,这个可以用刚才说的那个方法叫什么来着,T2-N加二加二的话呢,就把它给去了。取了以后呢,再用刚才说的sort啊,什么unit啊,来来就行了。啊,我们现在只有两种状态啊。这个题目呢,将来也是面试常问的啊,希望大家能够把这些都好好的复习,写在你的笔记里。啊,再有就是比较两个文件的不同,比较两个文件不同,有一个地图命令,其中有一个选项叫do u选项,它可以把两个文件的不同详细的做一下比较。啊,比方说我们这有这样的一个文件一。啊,这123。
58:02
然后我这有个二文件。它有些行是一样的,比方说第一行一样,第二行不一样,第三行一样,第四行又不一样了,那么D呢,它是比较两个文件的不同,加个选项,它能显示更加具体详细的东西,你看这是不是显示两个文件的时间,然后这个是什么意思呢?这个表示的是比较的是第一个文件。第一行往后数,总共四行。这个也是第一行到第二个,第二个文件的第一行到第四行,总共到底有什么不同呢?不同就是这个表示的是大家都有的,前面没有任何符号,就是大家都一样。那这个呢,不一样了,这个不一样在这个地方我们发现它不一样,不一样不一样在哪呢?就是减二,减二表示的就是在第一个文件的基础上,把这个二这个给它删了。
59:06
删了以后,它就可以将来变成和第二行第二个文件一样,大家看你看这两个比文件比一比第二行不一样,不一样,不一样,怎么就让它一样了呢?就是在第一个微型里把二就给删了,然后加上一个A,那是不是就相当于把这个第二行把二变成A不就行了吗?那这样一组合就实现了两个文件第二行就一样了,第三行一样,第四行是要减四加四四啥意思?就第四行的时候,把这个四去了,再把它换成四四是不就一样了。那换句话说,这个显示格式呢,实际上能够告诉我们怎么让它变成另外一个文件,因此我们可以这么干,把它的生成结果存到一个文件里去,起个名随便。然后这样做完以后,接着我们把F2文件如果删掉的话,我们是可以利用F1T文件加deep log文件,再把丢掉的F文件找回来。
60:08
有一个命令可以帮我们来找找touch touch后面跟上这个文件和它两个文件的不同找回来了,但是找回来有个缺点,就是F1找回来以后,它并没有命名成F2,而是命名成了F1。也就意味着把F1又丢了,所以我们怎么解决这个问题呢?这儿可以加个BB选项,就是备份。先把F1做个备份以后,再把F2找回来,命名成F1,但是由于做过备份,也不用担心它丢了,好,大家看,这就找回来了,所以这时候的F1实际上已经不是原来的F1了啊,是F2了。那么原来的F1在哪呢?它有个备份,看到没有,这就是原来的F1是不是找回来了,明白了吗?那这个地FF呢,有了解啊,早期的时候程序员协作开发啊,我把软件改了,把文件改了,改了以后呢,我怎么知道你改了,和我原来文件对比一下,我怎么知道改哪了,就用D来改。
61:10
来对比,要不我不知道你文件给了哪啊。呃,写程序都是文本文件啊,经常要这么啊,这是改文本文件,比较文本文件的区别啊,这边还有一个比较两个二进制文件的区别,BF只能比文本啊,比不了二进制,还有一个叫mapp的,就是CP的命令,它可以比你像这两个命令,这两个命令就很奇怪,这两个命令它实际上。一模一样大小,一模一样大小,但是这两个文件。他的信息实际上并不是一个文件。大家看它并不是软件硬链接的关系啊,不是同一个文件,那它两个大小一样,那么由于它两个文件又是二进制文件,所以我们如果想知道这两个二进制文件有什么不同,那么我们用地是比不了的,用CMP比比。
62:10
CB,它可以比较出两个二进制文件的区别。这么来比。你看这就可以告诉你了,说第737个字节第二行有不一样。啊,那不一样的话呢,你可以直接用咱们以前讲的这个命令,可以直接跳到730个字节,往后找七个字节,你看他们之间是不是有什么不同。啊,你可以来比一比。比出来以后呢,这个结果就是这样,大家看00474155这边不一样了,一个是B01个是九三,实际上就差了一点点,所以可以这样讲,差了一点点,应该说戴尔命令和LS命令的执行结果是类似的,基本上一样,没什么区别。
63:05
下面。用法一样,因为它二进制差了一点点,那你就那一点,它不会影响整个其他的功能啊,理解了吧,所以用这个方法就能判断出来啊。好,那么到此呢,咱们已经把文本工具的常见工具做完介绍了,不过还有一个非常重要的技术需要大家提前最好看看预习视频,这就是正则表达式。这表达式今天说了啊,是个难点,也是个重点,今天正好没讲到,也是给了大家提前预习的一个机会,把智能表达式下次课好好的复习复习,看一看啊,预习一下啊,今天咱们学习的内容也不少,把这些命令复习一下吧,你们还记得你有哪些命令吧?咱们来补充补充,开始写过了A开头的有没有按顺序吧,A开头有没有命令?
64:10
没有的话就是BB开头有没有新命令。B开头有新命令吗?没有,就是CC有没有看看上次就写过了。还有啥看吗?是不是还有啥这开头的,还有吗?今天学的,今天就是上次和我们讲了这个,呃,今天我们讲了一些属性的更改,比方说C是owner c是阶段,TC是C是什么?APR,这不今天学的吗?
65:05
对不对。这不是今天讲的吗?讲的权限那块,所有者入组那块,还有一个是C什么的吧,是不是C开头就没了,那D呢,又有啥当这个一二这个这个这个这个没有没有还有什么地对吧。戴尔,这实际上基本上跟那个LX功能一样,还有啥。没了哈,没了,那那就是一开头有吗?有没有没有的话F。
66:11
F,有吗?没有啊,这。H。还有啥有吗?今天好像用了一下这个名字是吧,显示地址的,不过这个我们后面会用的有吗?没有也没有来有没有。
67:09
来实际上最早讲过这个没有了是吧,讲过啊,然后L还有吗?今天学的less对吧,非要显示那个,那对应的不是帽吗?是吧?还有啥M还有吗?N有没有NL啊,L不是加行号吗。
68:02
是吧?Oo是写了一个O啥呀?OD是吧?D还有个叉叉DP开头有没有应该学了什么配吧?Pch就是那个。找回原有文件,那个还有啥。啊Q,好像没有是吧?R,有没有?是吧,S有没有S啥排序。是吧?排序T有吗?T最后一行是吧?最后几行。
69:07
还有一个是T2-FF还有UU开头有没有。有应该有有马是吧,还有有什么有用,那个面试经常问有没有。VIVM,这是我们写了。啊,WW有没有WC对统计有多少行多少个字符,这个叉叉D吧,啊歪歪有没有,这应该没了吧。
70:02
啊,你看我们这个学了才几天呀,学了160个命令了啊,进步很快呀,T开头啊,T开头刚才还有一个TC是吧?T e t ec ss这个命令刚才我们也敲了SS,它这个显示网络的连接情况,好啊,咱们这个命令学的越来越多了啊,不过呢,不是所有命令要求大家都掌握的,那么啊,都需要记住的,有些命令呢,可以暂时了解就行,有些命令我们也是后面会详细给大家讲好了,今天的课呢,咱们就这么多,然后下次课呢,讲这个表达式,可能下次课还会讲脚本,所以下次课的内容是比较难的。
71:03
所以提前你们做好准备啊,我们下次正好把两个都重点的东西正好都在下次课讲,所以周四的课程是周三的课程啊,你们要提前看一看啊,好精彩内容难度大的,咱们留到下次课讲下课吧。
我来说两句