20yy:Linux课堂笔记(项目七) 2024-04-16 07:33:17 0 0 一、熟练使用vim编辑器 vim有三种基本模式:编辑模式、插入模式和命令模式。 1.编辑模式下 进入vim之后,首先进入的是编辑模式。进入编辑模式之后,vim等待编辑命令输入而不是文本输入。也就是说,这时输入的字母都将作为编辑命令来解释。 1.1编辑模式下光标的移动 n<Enter> n为数字。光标向下移动n行 n<space> n表示数字,例如20。按下数字后再按空格键,光标会向右移动这一行的n个字符 0或功能键Home 这是数字0:移动到这一行的首字符处 $ 或功能键End 移动到这一行的末字符处 G 移动到文件的最后一行 nG n为数字。移动到文件的第n行。例如输入20G则会移动到文件的第20行(可配合:set nu) gg 移动到文件的第一行,相当于1G 1.2编辑模式下查找与替换的命令说明 /word / ?word 向下/向上寻找名称为word的字符串。 n 这个n是英文按键。代表重复前一个查找的动作。 N 这个N是英文按键。与n刚好相反,为反向进行前一个查找动作。 :n1,n2 s/word1/word2/g 在第n1~n2行寻找word1这个字符串,并将该字符串取代为word2 :1,$ s/word1/word2/gi 从第一行到最后一行寻找word1字符串,并将该字符串取代为word2,i不区分大小写 :% s/word1/word2/gc 全部替换,且在取代前显示提示字符给用户确认是否需要取代 取消高亮:noh 1.3编辑模式下删除、复制与粘贴的命令说明 dd 删除光标所在的那一整列 ndd n为数字。删除光标所在的向下n列,例如,20dd是删除20列 yy 复制光标所在的那一行 nyy n为数字。复制光标处向下n行,例如20yy是复制20行 p, P p为将已复制的数据在光标下一行粘贴上,P则为粘贴在光标上一行! ZZ 这是大写的Z。若文件没有更改,则不储存离开;若文件已经被更动过,则储存后离开 u 复原前一个动作 . 重复前一个动作的意思。如果你想要重复删除、重复粘贴等动作,按下小数点就可以x,X在一行字中,x为向后删除一个字符(相当于“del”键),X为向前删除一个字符(相当于backspace)nxn为数字,连续向后删除n个字符。y1G/d1G复制/删除光标所在到第一行的所有数据yG/dG复制/删除光标所在到最后一行的所有数据y$/d$复制/删除光标所在处,到该行的最后一个字符y0/d0那个数字是0,复制/删除光标所在行的前一个字符到该行的首个字符之间的所有字符J将光标所在行与下一行的数据结合成同一行c重复删除多个数据,例如向下删除10行,输入10cjCtrl+r重做上一个动作 2.插入模式下 在编进模式下按下相应的键可以进入插入模式:插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入插入模式。在插入模式下,用户输入的任何字符都将被vim编辑器当作文件内容保存下来,并显示在屏幕上。在文本输入过程中(插入模式),若想回到编辑模式下,按“ Esc ”键即可。 2.1进入插入模式命令说明 i 从光标所在位置前开始插入文本 I 该命令是将光标移到当前行的行首,然后插入文本 a 用于在光标当前所在位置之后追加新文本 A 将光标移到所在行的行尾,从那里开始插入新文本 o 在光标所在行的下面新开一行,并将光标置于该行行首,等待输入 O 在光标所在行的上面插入一行,并将光标置于该行行首,等待输入 Esc 退出编辑模式或回到编辑模式中 3.命令模式下 如果是插入模式,先按“Esc”键回到编辑模式。在编辑模式下按“:”进入命令模式。 3.1命令模式下的按键说明 :w、:wq、:wq!、:q 、:q!、:x 保存、保存退出、强制保存退出、退出、强制退出 :r 文件路径 读取其他文件内容追加到当前文档中 :e! 恢复到文件打开后,没有进行修改时的状态 :w [filename] 将编辑的数据储存成另一个文件(类似另存为新文件) :n1,n2 w [filename] 将n1到n2的内容储存成filename这个文件 :! command 暂时退出vim到命令列模式下执行command的显示结果。例如,“:! ls /home”即可在vim当中查看/home下面以ls输出的文件信息 :set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号 :set nonu 与:set nu相反,为取消行号 :noh 取消搜索标注的高亮 :set fileformat=unix 将window中文件格式转换为unix文件格式,主要是换行符不一样:e! 还原 二、grep grep 是行过滤工具,用于根据关键字进行行过滤 -i:对匹配模式不区分大小写 • -w: 按单词搜索 • -n:每个匹配行只按照相对的行号显示 • -v:排除指定信息 • -A: 显示匹配行及后面多少行 • -B:显示匹配行及前面多少行 • -C: 显示匹配行及前后多上行 • -E: 表明要应用正则表达式,egrep 等价于 grep -E • -o: 只显示匹配的字符串 三、正则表达式 单地说,正则表达式就是处理字符串的方法,它以行为单位来进行字符串的处理。正则表达式通过一些特殊符号的辅助,可以让使用者轻易完成查找/删除/替换某些特定字符串的工作。 word 匹配指定字符串(word)的值 ^word 匹配以指定字符串开头的值 grep -n '^#' test.txt word$ 匹配以指定字符串结尾的值 grep -n '!$' test.txt [abc] 匹配中括号中的任意一个字符,它们之间是或者关系 grep -n 'g[ld]' test.txt [^list] 匹配不在中括号中指定的任意字符 grep -n 'oo[^t]' test.txt [n1-n2] 匹配列出的选取范围!grep -n '[A-Z]' test.txt grep -n '[A-Za-z0-9_]' test.txt . 匹配任意一个字符 grep -n 'e.e' test.txt \ 转义字符,将特殊符号的特殊意义去除 grep –n '\.' test.txt x|y 管道,表示或者关系 egrep 'ab|bc' () 表示字符串分组 egrep '^a(b|c)$' \d 匹配数字grep -P \w 匹配字母数字下划线grep -P \s 匹配空格、制表符、换页符grep -P 收藏(0)