回顾:

         正则表达式(BRE,ERE

                   基本正则表达式与扩展正则表达式之间的差别就是:

次数匹配分组的时候扩展正则表达式没有了反斜线

         BRE

                   字符匹配:点号(.),[][^]

                   次数匹配:*\?\+\{m\}\{m,n\}

                   位置锚定:^$\<\>

                   分组及引用:\(\)\1\2.............

         ERE

                   字符匹配:点号(.),[][^]

                   次数匹配:*?+{m}{m,n}

                   位置锚定:^$\<\>

                   分组及引用:()\1\2.........

                   或者:|

         上面的或者“|”他获得的是整个事件的右侧或者左侧,所以我们如果仅仅是获得一侧的一部分内容的话,我们一定要加括号,当然这个括号依然起到分组的作用。

         grep,egrep,fgrep

                   文本过滤器:PATTERN

                   -v

                   -o

                   -i

                   -q

                   -A

                   -B

                   -C

         wc,  cut,                   sort,                   uniq,         diff,            patch

 

 

vim编辑器

        

         文本编辑器:

                   文本:纯文本信息,如果站在ASSII角度来讲,是不加任何修饰的信息:ASSII  text

word文档不是纯文本的,像记事本才是纯文本的编辑器。

                   ASIItext Unicode

 

         文本编辑种类:

                   行编辑器:sed

                   全屏编辑器:nanovi

 

                   viVisual  Interface

                   vim Vi IMproved

 

注意:vivim是不同的,有的linux系统发行版上只有vi,而没有vim

vim

         模式化的编辑器

                   (什么叫模式化?即对于vi来讲,他有很多不同的模式,在每一种模式下,用户击键所带来的功能是不一样,也就是说我们打开文本的方式不同,所带来的功能就不一样。)

 

                   基本模式:

                            编辑模式,命令模式

                            输入模式

                            末行模式:

                                     内置的命令行接口;

 

         打开文件:

                   本地没有此文件,我们会自动创建此文件,对于vim打开一个文件时,如果指定的文件路径事先并不存在,则事先会创建此文件,并把我们编辑的内容保留在文件中,如果文件事先存在的话,就会打开此文件,并让光标默认处在第一行的最左侧,即第一行的第一个字符上

                  

                   格式:

                            #vim  [options] [file ..]

 

         vim打开一个文件后,我们再保存并关闭文件,则直接输入两个大写的“Z”:ZZ

                  

                   +#                   打开文件后,直接让光标处于第#行的行首;

                            例:[root@centos6~]# vim +7 /etc/fstab

 

                   +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;

                             +/”是固定的格式,后面直接跟正则表达式的模式

                            例:[root@centos6~]# vim +/tmpfs /etc/fstab

 

                   +:自动处在文件的尾行行首;(这个命令还是比较常用的,因为我们需要在文件尾                                                                                    部添加配置时经常使用)

                            例:[root@centos6~]# vim + /etc/fstab

 

 

wKiom1gyto7i4JWuAAAPomNxUNo139.png

         使用vim编辑器打开文件后,界面右下角显示光标处的位置,上面的截图为,光标处在第八行第一个字符;界面的左下角表示这个文件一共有16行,一共有899个字符

         如果一个文件内容很多,使用vim打开时一屏显示不完,那么我们在往下查看的时候,界面的右下角会出现百分比。

 

模式转换:

         编辑模式(命令行模式):默认模式

                   编辑模式------->输入模式

                            iinsert,在光标所在处输入;

                            aappend,在光标所在处的后方输入;

                            o:小写“o”表示在光标所在处的下方打开一个新行,光标处在行首;

                            I:大写“I”表示在光标所在行的行首插入;

                            A:表示在光标所在行的行尾插入;

                            O:大写“O”表示在光标所在行的上方打开一个新行;

 

输入模式--------->编辑模式(命令行模式):

         键入“ESC”键即可。

 

 

编辑模式--------->末行模式:

                       

         使用冒号:进入末行模式,冒号就是内置的命令行接口,在末行模式下可以执行很多命令

 

         删除第10行到100

                   :10,100d

 

         vim文本内容加上行号

           :set  nu      //显示行号

           :set  nonu     //表示取消行号

 

vim是非常强大的内置的命令行接口;)

 

末行模式------------->编辑模式

                   连续按两次“ESC

 

 

末行模式下:关闭文件:

         ZZ:保存并推出;

         :q:退出,文件没有执行过任何保存;

         :q!:强制退出,不保存此前的编辑操作;

         :wq:保存并推出;

         :x保存并退出;

         :w PATH/TO/SOMEFILE    //将文件保存到什么位置

 

 

命令行模式下光标的跳转:

 

                  字符间跳转

                   h,l

                            h:是向左跳转一个字符;

                            l:是向右跳转一个字符;

                   j,k

                            j:是向下跳一个字符;

                            k:向上跳转一行;

                                     (记忆J,K,就是想像成日本在韩国的下面)

 

                            #COMMAND:跳转由#指定的个数的字符,COMMAND表示h,l,j,k命令;

                                     举例:6l:表示向右跳转6个字符

                           

 

                   单词间跳转

                   w:下一个单词的词首;

                   e:当前或后一个单词的词尾;

                   b:当前或前一个单词的词首;

                   #COMMAND:跳转由#指定的个数的单词;(COMMAND,表示web

 

                  行首行尾跳转

                   ^:跳转至行首的第一个非空白字符;

                   0:数字“0”跳转至绝对行首;(tab键的空格在行首是跳不过去的,只跳行首空                                格)

                   $:跳转至行尾;

 

                   行间跳转

                   #G:跳转至由#指定的行;

                   1Ggg:第一行;

                   G:最后一行;

 

                   句间跳转

                   ):表示跳转至下一句;

                   (:表示跳转至上一句;

 

 

                  段间跳转

                   }:表示下一个段落

                   {:表示上一个段落

 

 

         命令行模式下的翻屏操作:

                   ctrl+f:向文件尾部翻一屏;

                   ctrl+b:向文件首部翻一屏;

                   ctrl+d:向文件尾部翻半屏;

                   ctrl+u:向文件首部翻半屏;

                   Enter:按行向后翻

        

 

vim的命令模式下编辑命令:

 

         编辑模式(命令行模式)下的操作:

                   字符编辑

                   替换命令

                   删除命令

                   粘贴命令

                   复制命令

 

         字符编辑:

                   x:小写的x,删除光标所在处的字符;

                   #x:删除光标所在处起始的#个字符;

                   xp:交换光标处及其后面的字符的位置;

 

         替换命令replace):

                   r:替换光标所在处的字符;

                            rCHARCHAR表示要替换的内容

 

         删除命令:

                   d:删除命令,可结合光标跳转字符,实现范围删除;

                            d$:删除光标处到行尾的内容;

                            d^:删除光标处之前到行首的内容;

                            dw:删除光标处的一个单词;

                            de

                            db

                                     上面的 dwdedb,前面还可以加上数字,表示删除多个单词

                                               #COMMAND

                            dd:删除光标所处的一整行内容;

                                               #dd:删除光标所处的行起始的共#行;

 

注意:删除的命令,不会立即清掉,而是保存在缓存中,缓冲区中可以保留多个内容,但是只有最后一个才能被粘贴。

 

         粘贴命令p  put paste):

                   p:小写“p”,缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否                              则,则粘贴至当前光标所在处的后方;

                   P:大写“P”,缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否                              则,则粘贴至当前光标所在处的前方;

 

注意:我们删除之后做了粘贴,那么就相当于移动;如果不粘贴,则就是删除;

 

 

         复制命令(yank,简写y):

                   y:复制,工作行为相似于d命令;

                            y$

                            y^

                            y0

                  

                            ye

                            yw

                            yb

                                     #COMMAND:表示支持前面加数字

                            yy:表示复制一整行;

                                   #yy:复制#

 

 

         改变命令(changec):

                   编辑模式(命令行模式)----->输入模式,实现删除操作;

 

                            dd命令是删除一整行,但是模式还是命令行模式;

                            cc命令是删除一整行,但是模式由命令行模式成为输入模式;

 

                   用法:

                            c$  c^  c0

                            cd  ce cw   并且还支持  #COMMAND

                   cc:删除光标所在的行,并转化为输出模式;

                            #cc

 

 

可视化模式:

 

         v:小写v,表示按字符选定;按小写v之后,使用方向键移动光标,就能根据字符选                        中内容;

         V:大写V,表示按行选定;按大写V之后,使用方向键移动光标,就能根据整行选中                      内容;

        

         结合编辑命令:

                   d:表示选中并删除

                   c:表示删除并修改

                   y:表示选中并复制

 

 

         撤销操作:

                   u:小写“u”撤销此前的工作;

                            可撤销的操作可以有多个,一般而言默认为50

                            #u:表示撤销此前的#个操作;

                   撤销此前的撤销操作:

                                     ctrl+r

                   点号“.”:重复执行前一个编辑操作:

 

        

         vim自带的练习教程:

                   vimtutor

                   我们直接在命令行中运行“vimtutor”即可打开教程;

 

         vim末行模式:

                   进入末行模式使用冒号就行“:”

                   末行模式时内建的命令行接口