00:00
好,那我们接下来的这章呢,咱们来给大家讲一下这个文本的各种处理工具啊,在这个Linux里面,我们曾经提到过这个一个哲学思想啊,就是在Linux中,呃,配置都是基于文本文件的,那在前面的课程中我们看到了有很多。文本文件。都是一些这个,呃,一些配置文件都表现为一些文本文件啊,比如ETC,我们下面改造过什么Mo TD啊,啊,包括ETC的什么用户账户的part bc的文件等等,这些都是文本文件。那此外呢,我们学过了重定向,那么当一些命令执行完毕以后,我们也可以利用重定向。把他的信息输出到文件中。那这些生成的文件也都是基于文本的。所以我们很多场景下呢,需要去修改编辑啊,查看这些文本文件,所以我们接下来呢,来给大家说一说文本的处理工具。
01:08
那这部分呢,我们会介绍大量的文本的数据。好,那首先我们看一看这章我们学大概哪些工具啊,那第一个就是文本编辑工具。在前面的课程中,我们有的时候经常会改一些文本文件,但是这些文本文件呢,如果你要是用nano改这个。方法呢是效率很低的,它的功能没那么强大啊,甚至我的机器上都没有安装那种。啊,所以我们更多的会用VIVM来进行管理,这个工具呢,号称是文本编辑之神啊,功能之强大,这个毋庸置疑了。那另外呢,我们还会有很多文本的其他的工具,比方说查看呀啊,或者是这些统计呀等等这些工具,这些工具呢,我们也会。
02:07
有很多需要大家掌握的。面试呢,也是经常有一些相关的工具会问到。文本处理的有些强大的工具,所谓功能强大就是原因它支持正则表达式。这个正则表达式是大家必须要掌握的一个技术。当然这个技术确实也是比较难的一个技术,是在咱们基础课程中两大难点之一。那第一大难点就是我们接下来学来的正则表达式,第二个呢,就是脚本编程啊,当然这两个既是难点,也是我们要长期使用的技术。所以大家学习难不怕,因为我们在整个课程中会后期的几个月里面会反复的用这些知识。
03:01
在使用过程中,大家慢慢的也会用的越来越好,用的越来越熟。所以初学的时候大家会觉得有点懵,上午同学不就已经懵了是吧?啊,你会持续这种状态一直蒙下去的。一直蒙到最后结束。啊,这个也是正常状态啊。当然这个摸的过程中,慢慢的你每次使用就会有不同的感悟。啊,相信咱们班里头有些同学已经是不是第一次听我们上课,对吧,每次听课呢,都有一些新的感悟,就是温故而知新。所以咱们在学习过程中会反复的使用这些技术,那在用的越多,那么你对它的理解掌握就越来越深,越来越熟练。所以正策表达式这一点呢,大家如果今天的课听完以后觉得有点晕的话,也不用担心啊,因为我们后面会经常用这个技术文本处理的三大剑客都在这章里面,这三剑客他们都有个特点,就是支持的正则表达式,当然各有各的特点。
04:13
分别对应的就是grave和e wt。这三个工具呢,因为他们的特点不同。功能不同。所以我们计划呢,在上课的时候。我会把这个内容都一块给大家讲完,我会分阶段讲啊,这初步我们这章讲到这儿。加。讲完以后,我们就开始进入到下一章节。下一章节我们介绍过程中,我们会穿插着把这些技术慢慢给他讲完。这样的话呢,有助于大家慢慢消化吸收,三剑客直接交给你,你会觉得有点吸收困难,所以我们可以分阶段来学习。
05:00
好,那么我们先来看第一个工具,就是VM。那么VM呢?这个工具它实际上早期的名称是V。VI是一个强大的文本编辑工具,它的全名叫edit。对于Linux里的文本文件编辑修改,我们可以用na,甚至还有图形化的gid。但是这些工具说实在的,作为一个专业的运维工程师,我们通常是不太使用。因为这两个工具。功能太简单了。已经没有办法满足我们强大的运维工程师的需求了。我们用的是专业的文本编辑工具。VI这个工具它是系统最小安装也会安装的。但是它的功能有些地方还是有点缺失的,所以我们有一个叫增强版的VM,叫VM,这就增强版improve,那平常我们用的比较多的是VM。
06:11
恋爱呢也功能很强,但是有些特点它没有。但是VM呢,它也有一个不太好的,就是如果你是最小化安装的系统是没有VM的。所以需要单装啊,但是装的话呢,怎么装。那就是用亚子杠Y,大家可能有同学是最喜欢装,那你现在没有,那你就装一下,当然你可以用这个命令来装,就把它装了,当然我这应该装过,所以我这就不用装了啊。啊,最好安装的同学可以装一下了啊,那么在前面的课程中要求大家现在就把系统呢自己安装,那最安装的话呢,有些环境你要进行一些这个准备啊,那咱们上午说过了这个要把这个。
07:02
X,包括还有其他的一些内容,进行一些这个。准备。初始化环境,哎呀,这个文字怎么是乱码啊?幸亏这里面都是英文的。啊,这个乱码呢,确实就是你看产生问题了。这个乱码的原因呢,就是因为我现在用的这个版本是比较老的版本。这个版本它的文本工具的编辑这个字符集。你看这个版本是WIN10,但是它这个版比较老。啊,这个版本,它用的这个文本。格式不是u unicode。啊,你看我们在另存为的时候,它这默认存的什么格式。编码机制是UNCC呢,你可以类似于相当于咱们中国的国家标准,但是不支持全球文字。
08:04
而我现在用的这个工具,打开了这个工具用的是unicode,所以它就出现了乱码啊。当然你要是用。直接双击打开它就可以看到没有啊,所以我干脆我就复制粘贴或者另存分另存为另存的时候存成什么呢?存成U内扣的明白了吗?诶存成U内扣的或者U8U8U8应该就是正儿正儿八经的这个存储方式,那我把它另存一下啊,省得避免出现乱码。好把它存一下,存完以后,然后这边再来看一下。那我现在再用刚才说的notepad打开,那就不会出现乱码了啊。当然你们的笔记本上可能用的是比较新的WIN10,那新的WIN10用的默认就是基于U8的,所以这个就不存在这种问题了啊。
09:03
好,这是老版本和新版本之间的区别。那vim呢,它的这个强大之处在于它比VI还多了一些颜色的显示啊,我们可以认为呢,VI就是黑白电视,VM呢,彩色电视,那从这能看出来呢,我们可以打开一个文件来看一下,我用VI,不过呢,我这个VI呢是一个别名啊,所以我要用原始的VI加个斜线,然后去打开一个文件,大家看这时候打开以后这个文件的屏幕上。显示了文件内容,当我们移动光标的时候,在整个屏幕上好像没有做任何的变化。啊,然后我现在用VM打开,大家看首先颜色是不是就不一样了,这边多了颜色,而且呢,我在移动光标的时候,在屏幕的左下角这个位置,右下角这个位置,它是不是有那个光标位置的显示看到吗?所以从这个很简单的几个小特点来讲,VM的功能更强。
10:16
啊,既然这样,那咱们就用VM就得了,不过呢,刚才说了VM呢,最安装是没有的,需要你单装,那就把它装上就行了啊,所以现在你们把系统装好以后,有些初始化工作,哎,要要做做一下,比方说我们刚才说的这个scd这些东西,我们把一些必要的包装上啊,那VM这个要装包,这是必要的包。就常用的包吧,必要的包V是一个。啊,当然有些工具可能也没有,比方说去大家记得我们前面上一章讲这个文本,就是文件管理的时候呢,提到过这个去命令啊,这个工具应该最好有没有,所以你要把它一块装上啊,当然这个装的话呢,实际上很简单,你一块可以装了啊,怎么装啊,是不是就这个命令啊,Y install后面跟上,把这两个都给它跟上,这样是不是就都装上了。
11:15
对吧,哎。大家慢慢的就把系统装好以后啊,给它存成镜像,就是存成快照,下次每次起来以后,这些都是配好的啊,不要再因为这些工具的缺失啊,环境的配置不合理,导致你的实验失败,哎。啊,当然那些旧的镜像,对对那个快照如果没有用,可以删了它了啊,当然最好呢,将来你可以把它我们学完脚本以后写成脚本。啊,脚本一跑,什么都配好了,这个比较简单。好,当然这个脚本呢,是我们后面章节要讲的内容。我们回到这边来看一下文本编辑工具,Vim呢和V功能很强大,但是它也有个缺点,就是学习难度。
12:04
也是很大的。它的学习曲线呢,是较为陡峭的。之所以陡峭,就是因为它有大量的快捷键需要我们背下来。它是一个纯字符界面的文本编辑工具。不支持鼠标,所以呢,那你所有的键全是你要记住才行,要不没法玩,所以这也是VI它的缺点之一。当然。这个就是VM的或V的各种快捷键的,有人做的图,这字有点小,大家可以看一下。密密麻麻的一大串的破解金。看了吧,那你可以将来把这个。快捷键的图,哎,截屏一下,把它放成你的Windows的背景。天天看,天天用,这样的话,时间长了就记住了。
13:04
你就成了一个VI的高手了。是吧?当然了,这个VM的功能太多了,要求都记住也不现实,只要满足我们日常工作需要,这就可以了啊。所以我们接下来把V的VM的常见用法来给大家说一说。啊,这两个功能很像啊,就是个别特性有些区别,基本上它的用法是兼容的。V和VM。甚至我们官方还提供了一个图形化的V,包括这个东西也不怎么用啊,这是它的官方站点V的org。啊,这是官方站点。好。那我们先来看一看VI的基本使用。VI和vim,因为这两个用法是一样的,就个别有些特性有些差别,所以我在这说V实际上也指的是VM。
14:03
好,那VI的使用,它的用法一般来讲是这样,VI后面跟一个文件。当然如果你不跟文件的话呢,它就打开一个空文件。啊,那前面可以加一些选项,这些选项我们用到了再说。一般来讲呢,后面跟的这个文件名如果存在的话,它就打开这个文件了,不存在,自然它将来一退出,它就会提醒你是否保存。啊,你保存它就把这个创建出来了啊。那这是它的一个基本使用。VI之所以难度比较大,就是因为它输入的这个。方式和他的工作模式有关。在VI中,主要有三种工作模式。不同的模式。它的快捷键按法。使用方法都不同。其中三种模式中,第一个模式。
15:01
咱们叫普通模式,Normal模式,或者也可以成为命令模式。当我们第一次打开VI,进入到一个文件中,这个就是在这个模式下,这叫normal模式。这个normal模式呢,它主要的工作就是用来观察文件的内容。我们可以通过移动光标来显示不同文件部分它具体的内容。当然也能做到复制粘贴。这部分内容。是功能最为强大的地方。可以说。因为我们输入什么键,他并不认为你输入的键是一个要输入的字符,而认为你输入的是一个快捷键。那我们来体会一下所谓的命令模式或者普通模式啊,我现在把这个文件呢复制过来。
16:01
好,我把它打开,打开以后现在默认进来的就是normal模式。进来以后呢,我们观察一下当前的这个显示效果,对于我现在用vim打开的啊。大家可能发现跟上次打开不一样。刚才我用VM打开。有颜色,这回打开没颜色了。但是光标的位置还是有显示的。那这个是咋回事呢?之所以显示颜色,并不是说随便一个文件都给你加颜色的。我们刚才打开是哪个文件来着,ETC。对吧,那ETC下的文件他认为是有格式要求的,而你放在了当前的data下的它它的B,那他认为就是个普通文本,没什么格式,他就不给你加颜色了,理解了吧,所以加不加颜色是系统根据它的路径。
17:01
判断决定自动加的。嗯。好,这个颜色的问题。大家知道怎么回事了,还有一点呢,就是我们在当前的这个normal模式,这叫normal模式或叫命令模式,下面那我们输上下左右方键可以移动光标。除此之外,如果我想把某个字母输进去,比方说我输一个L字母,大家看我L字母是不是能够输进去呢?发现他根本没把L字母输进去,这一点呢,和我们平常使用的文本工具不太一样。在Windows里大家经常用记事本啊,Word你打开以后输什么,是不是就直接把这个字母就输进去了。他这不会,为什么,因为在命令模式下。Normal模式下,他认为你说的东西都是命运。为,所以为什么叫命令模式,他认为你输的东西都是快捷键,而并不是要把这个字符输进去。我输了个L,他认为是向右移动的一个命令,知道吧,哎,那输个什么K呢?哎哟,往上跑了,那输个勾的G呢,往下跑了,呃,输个H呢,向左跑,那实际上就是HGKL这四个字母恰恰可以代替上向左方向。
18:18
啊,当然我再输个abcd呢,比方说A呢。发现诶他没有把A输进去,总之我们输什么东西,他不会认为是要把字符输进去,他认为都是快捷键。所以在命令模式下。它的这个用法是最为强大的。当然也是最为。难度大的,因为你要背一些东西。可以说在这个模式下,你敲abcd哪个字母,它都是命令行,都都是命令,都是命令,都是快捷键。所以这时候我们就得背了是吧?啊,当然大家也别害怕,我们挑一些背就行,都备注。实际上也没有必要啊,当然有兴趣你可以背啊。
19:02
那么在这个模式下呢,我们刚才大概看了一下,主要的就是我们看一看。那接下来我们在这个模式下,显而易见,我们想把某些字符要输进去,看来是它这个命令了,它输进去,我就想把我们刚才说的这些字母要输进去,怎么办呢?我们需要切换模式。把刚才的命令模式要进行切换,刚在进来的时候我们叫命令模式或者叫normal模式,现在我要想输入到把字符输进去,我要切换到叫insert模式,看到没有。应用测试模式怎么切过来呢?N多种方法,比方说常用的方法,输入一个I字母。当我在这个命令模式下输一个按键的时候,它就切换到插入模式了,一旦切换到插入模式,那就意味着你就可以在这个模式下,就像我们传统的文本编辑工具啊,你可以想说什么说什么。不过呢,这个需要模式转换,那我们来看一下是不是能做到这一点。
20:04
首先我先来确定一下我的光标位置,我先故意的把它放到F这个位置。大家可以看到,我当前是在12行。13列看到底下的光标位置了吧,我在输爱键,大家看会有什么变化啊,盯着点按键。我们发现光标位置没有变化,12行,13列,但是我们发现屏幕的最左下方出现了一个insert,这个关键字出现了。这就表示我们已经进入到了插入模式,那么一旦进入到插入模式,你看我再输个L。L发现了吗?是不是就输进去了。哎,那这时候是不是就相当于我们可以编辑修改文件了,对吧,你输进去了,我们不仅可以输,那也可以删嘛,对不对,哎,你想加什么加什么,你换行什么都可可以加了,这不就是文本编辑了吗。对不对?哎,好,这就是A,那事实上除了A可以从命令模式进入到插入模式,我们可以很多见,比方说我们输个大A,那这个A字母刚才是小A啊,我这里来个大A,大A你看看有什么变化啊,我光标还在第12行第三列,你看这大A有什么区别?
21:20
发现啥了,发现虽然也切换到了射模式,但是光标位置变了,光标跑到了整个行的行首,那当然这就意味着我再输东西是不是从行首开始往下了,也就是说如果你想快速的从行首开始增加,那你不要用小A大A最快叭就给你跳光标了。所以效率很高,这就是为什么啊,咱们要学VI。啊,你学会了,当然这个难度比较大,你要背一些东西,等你背好了这些东西确实可以极大的提升你的工作效率。让别人看你敲东西的时候,会感觉怎么满键盘这个鼠标这个,感觉这个光标到处跑,都不知道你怎么怎么怎么搞的,是不是对你的景仰之情就会滔滔江水一样,对吧?所以前提你的背一些东西啊。
22:12
啊,当然这个。有的时候适当的表现一下自己的技术水平,还是有助于老板给你提工资的吧。是吧?啊,你说你用的东西都是最简单的用法,老板一看他都会给你涨工资得了,是不是换个人也行啊,涨啥工资,大不了你走吧。所以这就是Windows用运维工程师工资比较低的原因,Windows都是点鼠标是吧?老板说了这我也会点,不就左右键吗?啊,所以这就是不一样的地方啊,实际上干的活差不多。好,那当然。我们还可以用小A字母说说小A字母什么效果呢?看着啊,我的光标还在这个位置,小A。啥意思,往后移了一个字数,你看了吗?哎,那是不是再增加内容,它就是在光标之后开始追加内容。
23:06
当然,接着还有大A。啥意思,是不是跳到整个行的行尾去了,对吧,所以大A小A又不一样。还有小O大O。这两个挺有意思,小欧什么意思呢,看。是不是直接的上一行就追加了一个新行。那么大雾呢?我。刚才说的是大O啊,现在是小欧,小欧是在下一行。哎,你看大位数在上一行,哎,小欧数在下一行,自动就加了个星行,这个是不是就相当于按一个键,就相当于替了你以前的好几好几个按键的用法。效率确实提高了,那么诶,这就是从命令模式切换到插入模式,当然插入模式就没啥技术含量了,你该输说输啥呗。
24:00
哎,想删你就删,是不是这就就行了,这就是我们传统用的文本工具了啊,当然我们写完了以后,我想保存退出了,那么这时候我们需要从命令模式。刚才是从命令模式进入到插入模式,插入模式把文件改完了,要想退出的时候还要回到命令模式,怎么回的一个键。按EC键就可以了,来说我们现在按一下EC键。诶,当我一看ec底下这个英的是不是就没了,没了就回到了咱们刚才的命令模式。回到命令模式之后,要想退出,一般来讲我们都要进入到第三种模式。从命令模式进入到另一种模式,这叫什么呢?扩展的命令模式怎么进呢?就是敲个冒号就行了。
25:00
在这敲个冒号,大家看这冒号啊,在命上敲个冒号。大家发现最下面的行是不是出了个冒号?所以我们有的人把这种模式又称为末行模式,就最下面一行可以敲东西了,叫末行模式啊,不管怎么样,叫什么不重要,只要你知道它的功能就行。那接着在这个冒号的后面,我就可以输入扩展的命令模式,它的支持的指令,比方说我们用最多的保存退出,保存W退出Q保存退出就完了,这时候这个文件就被你保存了。当然,如果你改完了以后不想保存退出。那么你也可以不保存去除Q叹号。Q,叹号就是放弃对文件的修改?直接退出,那这就不改了,实际上到此VM的最基本的三种模式,你学会切换。
26:05
比方说我写到这儿,诶后来我又想接着改,那没关系,这时候怎么从末行模式,也就是最exx模式扩展的命令模式回到咱们刚才的命令模式呢?按E键也是按E键。这就回去了,大家看现在这个三种模式的切换,这个图是不是已经画的很清楚了。三种模式切换,我们从刚开始进来的命令模式挑A,当然你也可以输大A小A,大A小O大O,实际上还有别的切换到。插入模式,插入模式编辑修改,然后通过按E键回到命令模式,回到命令模式以后想保存退出,敲冒号进入到冒号模式,或者是扩展到命令模式,敲WQ,保存退出,当然你也可以按回车啊,或者是。按ec键,按ec键回到一定模式,哎,这样的话呢,我们就可以实现三种模式的切换了啊,当然这三种模式切换呢,啊在这儿,然后说注意这个地方敲回车,不是说你敲完这个回车,敲完这个回车就退出了,说的是这个冒号,冒号敲回车它就又回到咱们命令模式了,明白吧,这个模式了啊,是这个意思啊,如果你敲了东西了,那你这时候按键C键,不要按回车键啊,按回车键就执行了,明白这个意思。
27:31
好了,那这是三种模式的切换,掌握之后,实际上VM的最基本用法大家已经就掌握了,至少我们用VI编辑修改文件,存个盘会了。当然,如果你仅仅把掌握了这些内容,那VI的功能根本就没有体现出来。那你还不如用nano是吧?哎,所以这个就没什么意义了啊,不过呢,就这么简单,确实互联网上关于VI最多的问题就是什么,如何退出VI。
28:05
不会退呀,会进来退不出来呀,所以谷歌有统计啊。啊,这个问问题,Linux学Linux问题最大的问的最多的问题就是怎么退出V不会退,这初学者就是不会啊,你看咱们现在这个问题至少解决了是吧,会退出了啊。当然,那接下来我们就更多的要学习VI的其他强大用法,否则V那就没有什么实际价值了啊,那我们在这个插入模式下,这就是三种模式的切换啊,三种模式的切换,这三种模式互相切换,而且大家注意到没有,我们这三种模式事实上只有两种模式之间可以互相进行切换,我们发现插入模式和。
29:00
扩展的命令模式之间,它没有切换的途径,直接切过来,它没有这个途径,听到了吧,都是要借助于中间的命令模式做桥梁来切换的啊,那这三种模式只是其中的模式之一了,事实上还有别的模式啊,那我们这个模式后面再说。啊,至少三种模式,先掌握了,掌握这三种模式我们不能说精通,玩转可以说是吧,玩转VM这边网上经常有一些文章写的是玩转Linux是吧,那现在VM你可以说玩转了。啊,这玩转是不是觉得这个入门槛很低呀?哎,看两眼我们就会玩转了。当然,那接下来我们来说一个有意思的事儿。即使我们三个。模式,我们也能玩出花样来,比方说我们可以添点颜色。这我们让我们的文本带色,怎么带色呢?首先第一步切换到插入模式。
30:02
同时按CTRLV中括号。然后后续输入颜色的信息,然后再切换至扩展命名模式,保存退出,这时候我们就可以看到颜色了。好,那接着我们来试一试带颜色,那比方说我们这儿给它加个颜色,在这在这加个颜色怎么加呢?首先切换到插入模式。然后CTRLV按住,同时按半拉中括号左侧的。这时候我们就输入一个向上的脱字符中括号,注意这是一个字符。它显示是两个,实际上是输的是一个,这个代表着逃逸键。然后接着我们在后面可以输入颜色的信息,比方说我们红色31。高亮。
31:00
记得吧,哎,然后说马哥一溜好了,我就输完了,输完以后同样按CTRL。加V再来半拉中国号,输0M,把颜色结束好保存C盘退出,颜色出来了。看到吗?是不是就颜色就有了。那我们就有了带颜色的文件了。当然我刚才输的这些东西,输的是什么呀?实际上输的就是一个陶艺见字符。那这个文件呢,我们可以在这来输。首先进入到插入模式,然后CTRLB,然后我这边出一个比方说32绿色。然后C,然后CTRLV括号0M,好,然后我这写个简单一点的吧,比方说ABC,好,然后保存,那现在我们来看一下它有颜色,那它这个颜色是怎么来的呢?看一下二进制你就知道了,好,这就是我们输入的内容。
32:18
大家看这里面带的ABC在哪,在这。对吧,那么我们输入的这个CTRL加V再加中号,实际上输入的字符在哪呢。你在这儿?知道吧,啊,那么书的内容是在这个地方,这个EB是什么。5A5B是什么?33是什么?326D都是什么?那实际上大家可以对比一下。你看对比一下。那这个ABC这不在这儿吗?有ABC,也就是61 62 63,那往前推的话呢,这个6D是不是应该是M。
33:06
三十二三十二三一个62呃六呃31个21个中号,一个这个中国号。那这个是不是就是EB对不对,那这个EB它是怎么来的呢?实际上你可以看一下阿编码。啊,二这个编码那阿这个编码啊二这个编码里面,其中我们看到这是十进制。啊,这个是八进制,是16进制啊,这个是十进制,这16进制,那我们接着看一下刚才这个地方的1B 1B是谁往下翻一翻。是不是叫逃逸界?看到没有,1B是这么来的,那中括号对应的是谁呢?是5B,那你找找5B呗,5B在哪呢?5B在这是不是中括号啊?
34:00
明白了吧,啊,实际上我们按那个CTRL加V加半拉桌号,实际上就是把这个桃艺键给输进去了。这个陶艺键在咱们以前说eo的时候也用过啊,就是杠E嘛,斜杠E,所以我们可以输入颜色。好。当然,接下来我们继续来看文本的其他的用法。刚才我们提到了扩展的命令模式,或者叫末行模式。扩展的命令模式,冒号模式,它主要是可以在冒号后面输入一些指令,比方说大家已经知道的WQ。已经知道的Q叹号,一个是保存退出,一个是放弃保存退出。还有其他的用法,比方说W,就是存盘不退出,就比方说这个就类似于我们在Windows里大家常按的CTRLS键。
35:00
在Windows里面写了一个文件以后,是不是按CTRLS把它保存一下啊。就这意思啊,那当然我们保存的时候,后面甚至还可以写一个文件名,如果你写个文件名就变成这个样子了。这就成了什么?应该猜到的是不是就是另存为了?是不是相当于把当前的文件内容另存到一个新的文件里去了?对吧?哎,那么还有就是RR是读,我甚至可以把一个别的文件的内容读入到当前文件里,啥意思啊,我现在可以在这个地方冒号R,我可以后面跟一个已经存在的文件推车,发现了吗?啥意思?是不是把这个新的文件的内容复制到这个文件里去了。大家想一想,这个效率高,是不是比Windows你把双击文件打开复制,然后跑到这来粘贴效率高多了。
36:02
明显速度很高啊,所以这就是他的魅力所在啊。当然有些同学可能会用小X来代替RW,它两个是等价的,就是保存盘退出的意思,比方说我现在就想存盘退出,那么你也可以用这个来保存,它实际上跟WQ是等等价的存盘退出。啊,有人说,哎,这个简单诶。但是话说回来,一般来讲,基于安全考虑呢,我还是建议大家用WQ。为什么呢?WQ,敲打字母,敲俩字母,多了一个字母,繁琐了一点,但是会给你一个思考的时间,万一写错了,你可能还来得及。这个X太快了,他一回车想后悔都来不及。知道吧,所以当然这个看个人了啊,有人就喜欢用X啊啊,这就是注意小X还有一个不推荐的地方就是万一你写成大写了,那它的意思就不一样了,大写是表示加密码,加密的了,你看一回车,它提醒你输密码,结果有同学闷头敲,看都不看,然后就敲,然后说我敲个3S,然后敲敲两遍得这个文件呢,就被加了,知道吗?被加密了,加密完了以后你再打开,你打不开,咦,我是不是没保存啊,我再进去啊,哎,那就是没保存,如果没保存的话,这个地方它就不对了,那我再存一下啊。
37:32
输入。密码深透深,哎,然后呢,我再保存一下啊,看看他是不是加进去了,哎,你看。这时候这个文件就已经被加密了,你直接看看不了了,哎,那你要打开也必须要输密码,如果密码忘了,那就惨了。那这个文件就打不开了。是吧,所以呢,这个地方建议大家还是小心点,以前就有同学忘了就就没注意啊,这个瞎敲也没注意提示就把文件给加了密码问题手还是瞎敲的,密码都不知道。
38:12
就打不开了啊,当然这个东西要想解开的话,那那那也行,那你这样现在不是加密了吗?我再来一遍输两遍空密码就行啊,这密码就破解了行了,再看有空密码还不行啊。哎,我看看我输的密码,诶,怎么还是有密码啊。我试一下。这个是没转换不对吧,W输入加密的密码。那不行,你看看解密都解密不了了,是不是啊,这密码啥呀,刚才我是输的这个吧,我输的应该是豆吧,你看我自己都搞不清了。
39:06
得了。这不对了,这个乱码了,看到没,所以这个东西大S还是别用了啊,我觉得这个东西本身没啥意义啊,所以大家别用了啊,别用了,这个大S容易出事啊,容易出事啊,所以大家别用这个加密啊啊,你要真加密的话,也有别的工具加密,别在VM里加。啊,然后接着我们来看这个。当然这个加密解密实际上也有方法啊,这个也有,也有命令解,这个是专门的一个命令解,这个我们后面会讲,这这有一个加密解密的事儿,这个地方可以用set k,可以直接把这个K给它去了,这个set k,只不过这个呢是在set里面这么来做啊,这个密码我刚才也不知道敲的是什么了,诶这好像打开了,然后呢,把这个密码重设一下,它清空,清空完了以后再退开。
40:04
哎,这回好了,哎,就是把它密码清一下啊,签一下,不过呢,这个东西还是别用了啊,容易出事好,然后呢,接着我们继续来看啊。还有一些用法比较有用,是这个。这是干嘛的呢?这是可以在执行VI的时候呢,让他这个不退出VI的情况下执行Linux命令,明白吧?啊所以我们现在可以看一下,比方说我在执行这个命命令的时候,突然想改改,或者突然想执行一个Linux命令,那以前的话呢,很多人都是退出来。然后我就想,哎,这个显示一下主机名,哎,我执行完了再回来,那这个效率是比较低的,所以我们可以怎么做呢,在不退出V的情况下,就可以临时执行这个命令,方法呢,就是。叹号。
41:00
在扩展的命令模式下,出叹号后面直接你想执行什么就写什么回车,大家看是不是出来东西了,这些东西以后再回车就回来了,看到吗?这样的话你不需要退出VI直接修改,哎,所以这就是他的一个方法啊。甚至我们还有一个很有意思的用法,就是组合用。使用我们可以。我希望把主机名。写到我这个文件里啊,那么我们以前的人就是先来看看我的主机名是啥,看完了以后呢,手工敲。这样的话容易敲错,所以我们可以这么做,输个R叹号。R是读叹号,后面跟命令。啥意思?是不是就是把这个命令的执行结果读入到当前文文本中啊,是不是就直接进去了?啊,尤其一些比较复杂的内容,你要是自己复制粘贴不如这个效率高,而且这也不会出错是不是,那这个效写法很有意义的,很有意义,好了,这是我们刚才给大家说的V,然后接着我们来看。
42:19
在扩展命令模式下,除了这些基本用法,还有一些其他用法,比方说,我们可以对你要处理的某些部分进行一个标记。比方说,我要处理哪些行。那么处理的时候,它允许写行的位置,这个行的位置它的格式是这样的,起始位置加结束位置。再加你要处理的操作,那么其中这个地址格式呢,我们要定制位置,可以写单一的一个数字。那么如果写单一的数字,表示的就是第几行的意思,假如说我直接写二,那就是第二行,知道吧?哎,那也可以表示范围从第几行到第几行。
43:08
也可以表示从这一行往后增加多少行啊,比方说二逗号加三,表示第二行往后再来三行,那就是2345。啊点表示当前行,Dollar表示最后一行,而点逗号到减一表示的是当前行,倒倒数第二行。而百分号表示整个文件。也就相当于从第一行一直到最后一行。那我们标注了这些以后。还可以紧接着在后面跟上你要操作的指令,操作指令,比方说最简单的D。B就杀了。比方说我们现在就想把这个文件的这行,这行是在第三行,那现在我要想把这行删了的话,我们就可以在。
44:09
扩展到命令模式下,输一个三,就是第三行D就把它删了,那看着能不能删一撤,看到没有是不是就删了。啊。所以有了这个以后呢,我们用起来非常方便。那比方说我们还想删除从第几行到第几行啊,那当然这个文件看起来不直观,那我们就来构建一个比较简单的文件,那这个文件看起来更加直观,因为它是数字嘛。哎,所以我现在比方说想把第三行到第六行全给它删了,那么我们就可以用三逗号六。D。就删了看到吧,这是不是就直接干掉了。当然,不仅可以删除,我们还可以做一些别的事儿,比方说复制。
45:02
Y可以另存为,Y可以读入,这都可以啊,那比方说复制的话呢,就是Y。我可以把特定的行复制一下,假如说我们还是把第三行到第六行复制一下,那就是三逗号6Y,那就把三到六行复制了,复制了以后大家看它显示了四行yanked,就是表示四行已经复制了。复制了,你是不是得找地儿粘贴呀,那粘怎么粘呢?哎P键就是粘贴,不过呢,你粘的时候你得找到哪粘,比方说我们想粘到第九行。那你就写,把光标跳到第九行,输个屁,大家看啊。是不是就粘到了九行后面对吧,当然还有一个粘贴方法,就是粘到九行的前面,那就是大P。小P是粘在当前行的后面,大P是粘在当前行的。
46:03
上面前面。是吧,这就是粘贴啊,复制粘贴啊。好。当然还可以另存为之类的,比方说我们还是把这个第几行到第几行啊,这个另存一下,那我们就可以这么写。啊,我们可以,诶我们可以这么写百分号,这啥意思?哎,那这是不是就是整个文件都包括在内,我写到了F2文件里,是不是写进去了呢?我们来看一下F2。那是不是就相当于把整个文件内容复制了一下,存到了F2里?对吧,全局。啊,当然它也支持所谓的这个读之类的啊,比如说我们现在就想在第二行到第六行之间读,读什么呢?读一个新文件啊。
47:04
诶,大家看呀,它起到了一个什么效果,那实际上它最终实现的是第六行的后面把这个文件内容给追加进去了。你写的是三,但实际上呢,它这写的是三第六行。到后边讲。好,这是咱们刚才给大家说的这样的一个处理方式啊,此外呢,它还支持一些这个正能表达式,不过正能表达式的这个问题,我们后面再说这个正能表达式啊。好,它还支持搜索替代,这个搜索替代呢,就是S。你可以把具体的某些行约定好,然后呢搜索,搜索的时候,这两个斜线中间就是你要搜的东西,再跟你要替换的东西。然后修饰图。如果不跟修饰符,默认它是。
48:04
懒惰模式。懒惰模式就是找到第一,第一行里面,第一行里面找到第一个,我替换了就完了,我就后面不管了。当然还有贪婪模式,贪婪模式呢需要跟一个GG呢就是G行里面如果有多个匹配的字符串,那我就全给你踢了。哎,这是G。好,那现在就来试一试啊,试试好,那现在我们把这个文件打开。这个文件呢,我们去搜索替代,比方说我们去搜索这样的一个子路串。Root root,我这里面有好几个root这有root这有,我现在全文件搜索,全文件搜索怎么弄呢?百分号S。
49:01
搜索什么呢?搜索root,把它替换成两个me。如果你光这样写它是懒惰模式,懒惰模式是不是找到第一个root踢了就完了,后面我就不管了,不管了,这是不是也就这个就不管了,那我们来试试是不是这样回车。看到了吗?是不是只替代了这一行里的第一个?后面就不提了啊,那我们说了还有一种贪婪模式,加上这就行了,这是贪婪模式,这行里管你有几个,所有的我都给你踢了,看到没有是不踢了吧,踢了。这就是他的替换方法啊,诶这个用的非常多啊。A的话呢,是忽略大家写,就是你搜索的时候,如果大家写敏感,哎,这个有些字符你必须要准确的写清楚啊,默认。啊C呢,是替换的时候他会问啊,问你替不替,这个为了安全嘛,你要不写的话呢,直接就给你提拔了,就挺危险啊,问的时候他会问你。
50:08
然后这个分隔符我们可以不用斜线,也可以用别的符号来代替。比方说井号啊,Dollar啊,这都可以,因为有的时候啊,你去替换的时候用这种简单的斜线,有时候不合适啊,为什么说不合适呢?你看啊,如果我的文件本身就是带斜线。现在你想把dvsda替换成一个别的组合啊,比方说替换成一个叫test,这个呃,Data下的test。你要替换成这个,你要把dvsda替换成它,大家想想,如果你要真的替的话,写起来是不是就比较不方便了,百分之全文搜索8881写,写完了以后,那怎么写,你是不是得把这个复制一下。
51:03
然后替换成啥,替换成这个,但是你觉得这个写法对吗?你说你这个斜线是不是就乱套了。肯定系统搞不定,到底你这个斜线啥意思。你是表示搜索替代的分隔符啊,还是它里面自己的斜杠搞不清了,像这种呢,你直接执行它也不行报错啊,那像这种呢,我们真正要用的话,你要想告诉他这是你字符里面本身带的斜线,不是我们搜索分格符,那你得转E听了吗?你得写写转移啊,你得写转移,你得写转移。你很痛苦吧,是不是可以,这是可以,但是不觉得很痛苦吗?可以成功,看到没可以成功,但是太痛苦了啊,所以我们不用这种痛苦的方法是不是?哎,不用这种痛苦的方法,那用什么就不痛苦了,那我们就用别的符号呗,干嘛非得用那个呀?哎,我可以用别的符号啊,比方说我们可以用百分号S,哎,咱们换个符号不就行了吗?
52:06
这是不是就随便写了对吧?哎,就是DVSBSD,然后替换成西塔下的什么test,这不就没关系了吗?这不就行了吗?啊,比方说跟上一个勾跟上个G不就行了,理解了吧。这就是,当然你也可以换井号,井号ADD符号都可以明白吧,哎,这就是我们工具的使用搜索替代,哎。那在我们目前给大家讲的都是在什么?都是在扩展的命令模式,或者叫末行模式。的下面来执行操作。那它还可以通过在ES扩展命令模式下执行定制VI的工作特性,比方说我们可以加行号。
53:01
可以通过加行号,加行号我们看的非常清楚,一个文件如果内容比较大的话,我们加上行号看的比较清楚,尤其写share脚本的时候,那么怎么加行号呢?Set number,不过这个number可以缩写啊,可以缩写成U就行了,大家看行号出来了。啊,这样的话,你是不是就当是他所谓的加符号,不是说把文件改了啊,他是给你帮你显示了个行号文件的内容,并没有给你增加行号。啊,这是当然,你要想不想要好号,那你可以set no number缩写成。No nu就行了,推车看没了吧?那当然这里面有一个小问题,我加上行号以后,如果我存盘退出我再进来,诶,怎么还是没行号啊,也就是说你加的这些东西都是临时生效的,要想持久保存加行号这种行为。
54:05
那你是不是又得写文件呀,那么VI它的文件对应的应该有配置文件在哪呢?在这我们需要在epc,或者在你这个用户加入里面有一个VMRC,这个是个隐藏的,个人建议大家还是在这改,因为你这个改的话可以影响到所有人,好所以我们可以在这来改一下,好那么我们退出来在这。加布里面一定是在自己加布里,加布里面什么写波浪图啊,点VMRC这个文件如果不存在,你就创建它就行了,当然这个文件因为被我改过,这是我加的东西,所以我在这就可以加上一行叫set number行了,这时候你再打开。是不是有了对吧?啊,当然你要不想要了,你把它去掉就行。
55:02
是不是就没了?哎,这就是定制你的恋爱环境啊,这是第一个加行号,那除了加行号我们还可以怎么样呢?设置大小写的问题,因为尤其我们搜索替代大小写敏感,那我就想不关心大小写敏感不敏感的事儿,那你可以加这个set not可以缩写成。IC。啊,这省事啊,我这儿看看我这有没有那。我这个地方我已经把它写到我的那个里面,你看我这就有一个not case看了吗?当然刚才说了这是可以缩写的,你可以把它写简写成IC就行了。啊啊,我目前已经启用这个功能了,此外呢,还有一个叫自动缩记。自动缩进说的就是。在编辑文件的时候,它可以自动的把你要修改的。
56:02
下一行和上一行进行对齐,比方说这一行,我这写一行。一般来讲,我们将来会写shell脚本的话,希望是和上一行能对齐的,也就是说当你回车以后,我们希望紧接着和上一行对齐了,这么敲第二行,大家看,我这已经实现了。但是你那估计不行,因为我这儿已经提前设好了行的一个对齐,哪呢是这个。Autoent啊,为了做实验,我干脆我把这个文件先给它。移走吧,改个名就行,这样的话它就不失效了,它就失效了,失效以后呢,我们再打开,你看它默认是不是对齐的啊,我们推车你看到没有,是不是跳到了整个行的行首去了,你要想对齐你的人为补空格。这是不是就感觉特别麻烦,哎,你看你没人为不合格,要想让它和自动和上一行对齐,那就是加上auto。
57:05
但是这个名字太长了,我们可以缩写成AI。哎,这就对齐了,你看这车是不是和上一行对齐,如果上一行在这儿,你看不能对齐,明白吗?对齐,哎,这就是。当然你要取消对齐也有方法,那当然大家应该猜到这是什么了,No AI啊,这是不是就不对齐了?你看没有?对齐,这个对齐有好处,也有缺点,什么缺点呢?是这样的啊,我们现在如果对齐了,比如说我们再把它启用AI,一旦对齐,你会发现有时候在你复制文件的时候会产生问题。啊,比方说我这儿我打开一个文件啊,这个文件呢,有一些随便开一个文件,这个文件吗?这个文件我把它复制一下,这个是允许用鼠标复制的啊复制的时候在这我切换到插入模式,诶,然后右键一贴我就复制了。
58:07
但是复制完了以后,你会发现它成什么样了。是不是变形了,你看原来人家啥样啊,是不是你现在是啥样啊,是不是都是因为行对齐给凑凑成这样了,那如果你取消这个,你不用这个自动的缩进,你把它取消了,叫set no BI,你取消以后,你再是不是原来啥样就啥样知道吧,所以这个对齐也有好处,也有BB啊,也有对BB。当然我就想不取消对齐的情况下,保留我贴过来的文件内容,那怎么做的呢?也行,有一个叫保留格式叫set past,这也可以,这个呢就是我们可以这么来,我先启用AI,那刚才我们说了,如果直接贴就偏对吧,所以我们现在怎么做呢?我们可以用set past,然后再粘你发现。
59:06
是不是这回保留状态了了吧,Set配就是保留它的原格式不破坏,所以这样的话对其也不会有什么影响啊,这用的比较多。好,那再有就是显示文本中的一些不可见字符,比方说tab键。这个换行符,那我们有的时候一些文件里面带有一些不可见字符,比方说tab键,这个tab键你敲几下,你看你看不出来啊,它不可见嘛,所以这时候我们要想显示怎么办呢?List就能显示出,你敲list,它这马上就能显示出来一个脱字符I就是tab解。空格不一样啊,空格你看空格的样子呢,不是这个样子,你看空格,这是空格。而Dollar是啥意思,都是就是换行嘛,Dollar就是换行,看到没有都是换行,这样的话是不是就有一些不可见字符就能看得见了。
60:05
避免说有些文件的格格式就因为不可见字符导致格式错误啊,但是你又看不出来,这个是很有意义的啊,那此外呢,我们还可以高亮搜索,高亮搜索实际上是这样的,就是我们在这儿可以搜索内容,搜索的时候它默认会找到,以后会高亮,怎么高亮搜索呢?比方说我们要搜一个关键字,你就加斜线就行了。在命令模式下加斜线,然后输你要搜的东西,比方说我们想搜这个,这个内。当我一输内幕以后,它会自动的把找到的内幕加黄高亮显示,然后高亮以后呢,你可以往下搜,小N是往下搜,哎大N呢是往上搜,你这个是可以来进行一个变化的。但是这带来的缺点就是,一旦搜完了,我存盘退出了,然后当我们打开一个新文件,如果里面也有内幕,它也会高亮,看到没有?
61:08
啊,那这个东西它一直高亮的,那你就搜一遍就得了嘛,还是你老高亮。这个就感觉不爽是吧,你可以取消高亮,取消高亮怎么取消呢?哎,这个no HL这默认,这个是默认就启用的啊,我们可以no HL就是取消高量啊,这意这个不用敲赛啊,这个比较特殊,是这个就行了,No h l这时候它就没有高量。看到没有,这个高亮就没了,这就是高亮就没了,当然高亮没了,那这个呃,找什么东西,比方说内蒙,你看再找他又给你搞了,就临时取消啊,临时取消。还有就是语法高亮,语法高亮就是我们刚才说的这个文本文件,有些格式是有一定的要格式要求的啊,那比方说我们曾经打开的这个文件是不是带颜色的呀,那这个颜色怎么来的,就是语法高亮。
62:11
我们可以通过这个单词把它取消高氧啊,取消高氧来,我们可以输个冒号,诶,这就是取消。语法高亮看见没有,哎,这是当然一般也不取消,那再有就是文件的格式保存。我们都知道,Linux的文本文件格式和Windows的文本格式不一样。但是我们可以在VI中进行修改,我可以打开一个文件,默认现在打开的时候它是一个文本,是基于Linux的文本格式,哎,那现在我想把它变成这个,这个变成Windows格式,那很简单,大家看我就这么做就行了,怎么做呢?这调个set f f等于DOS就行了,这就变成了Windows格式了啊,我们保存一下,退出再看一下,这里面我们都知道Windows的文本格式呢,它的里面是有回车加换行,你看到没有,是不是回车加换行呢?
63:25
0D0A都出来了。这是不是就是存成了Windows的文本格式了?嗯,当然,那我想再回到。Linux格式那怎么办呢?大家看底下,实际上它有显示啊,刚进来它说有个DOS,然后呢,我们实际上可以再转化成,哎,这就是Linux格式了,那你再保存,你再看它的格式,看到了吗?所以要转换Windows和Linux的格式,咱们以前用过什么unx to吧,现在用这个也可以做到。面也可以做对吧,所以它这个转换还是。
64:03
很方便的,那此外呢,我们开保键。可以自动的用空格替代。因为table键它有的时候。并不会说让我们的这个文件对的很齐。所以有的时候,尤其我们写脚本。不同的。Table键它的缩进它不一样,你看我这缩进一下子是缩进了几个。你看一下这是八个字符对吧,八个字符,那这个八个字符我想控制一下,我想每次table键只缩四个,这个一般做开发的话呢,Table键缩进四个是比较常见啊,那现在我们要想把table键把它变成空格键,那么我们才能接下来定一步定制它缩进几个空格。
65:02
那怎么做呢?就这个叫set,叫X pound tab。啊,可以缩写成set e set ET,那就是set ET,这时候你再缩记它,实际上你type键一下,它说是八个,但实际上它已经是空格了,那我怎么知道是空格呢?刚才我们讲过的一种方法,可以查看键字符set list,你看这是不是明显不一样,上面这个是不是就是table,而底下这个确实就是一个一个空格。看见没有,这就被我替过了啊,当然T8个有点多,我可以改,那么接下来我要借助于另外一个命令,把看键替换成我指定的空格个数,用什么TS等于啊,缩写啊,所以我们接下来进一步就是set ts比说我约定是四个,这时候一旦约定好以后,你看我们这看不见,这就四个了。
66:03
你看1234是不是四个。啊,这个想约定多少个座位都可以,哎,这个是比较方便的啊,尤其在生产中,我们太键缩进一定要统一。如果你不统一会别人骂的是吧,你这个写个文件,你缩进五个,人家缩进都是四个,你这放一块就乱了啊,别让领导骂你不专业是吧?哎,所以缩进咱们这两个要配合起来啊,这两个要配合起来,第一个呢是用空格代替table,第二要约定几个替代。啊,这两个配合缺一个都不行啊,不行。然后设定文本宽度,这个文本宽度就是说达到多宽我就自动换行啊,否则它默认就是你是不是写满了,把这个行都撑满了再换行,这也可以,还有就是加这个光标的标识行啊,那就是我们当前这个行,我想给它加一个下一个一个标一个横线,那这时候我们就可以用set加上这个标记就行了啊,你可以缩写啊,叫cul,叫CUUCUU,走大家看你看我的光标是在哪行,是不是有个横线呀,这不看的比较清楚嘛,有时候眼神不好的话,这眼神找不着这个第几行了啊哎。
67:23
岁数大的同学比较有用啊。所以你们没用,应该是是吧,这个就是刚才说的那个密码,刚才我试过了已经是吧,可以清理密码,比方说你不小心用大X加了密口口令了,你可以把它清理了。给改好了,这就是set命令,它是在扩展的命令模式下,也就是末号模式下执行的操作,事实上我们挑了十来个set,它支持的用法非常多,你可以通过help option list来看到所有的用法,你看。
68:01
是不是有很多?这一大堆呢,你才学了几个呀?是吧,所以多了去了啊,所以咱们现在呢,学到的东西只是一点点而已,哎,一点点而已。啊,然后这儿还有一个set,你也可以知道目前来讲呢,咱们支持的有哪些可以set。你看黑色的有这么多。啊,当然大家也不用掌握那么多吧,你光想那么多,那这这呃几几十天好几个月课,你就学这个应用就行了。啊啊,所以这就是咱们恋爱的用法啊,所以这个强大到没有朋友是吧,你想多深他都有,哎,太难了啊,当然难的还没学呢,我们现在刚刚入这个门,我们现在目前掌握了。
69:01
两种模式的使用,一种模式,第一种模式叫插入模式,插入模式就进来,就改文件就行了,这就没咱们说的,刚才我们给大家讲的是扩展的内容是小冒号,下面就冒号模式敲,实际上对于VM来讲,最核心的模式是。这个模式,这个模式才它的核心精髓所在。当然了,精髓我们休息一会再讲是吧,精彩内容下次课再讲,休息会儿缓一缓,待会回来吧。
我来说两句