1.vim 编辑器:html
vim 是 vi 的增强版。与 vim 类似的编辑器还有nano, emacs。安装 vim:linux
[root@localhost~]# yum install –y vim-enhanced //直接vim也能够vim
[root@localhost~]# vim +10 /etc/init.d/iptables //进入后光标在第十行编辑器
下面分别介绍一下vim 的三种模式——查看模式,底行模式,编辑模式和各模式下的经常使用操做:ide
1.1 查看模式/通常模式:学习
(1) 移动光标,h j k l 四个键分别对应左、下、上、右,在前面加上数字,如5h ,能够一次性向左移动 5 个字符;spa
(2) G 光标跳转到尾行, gg 光标跳转到首行。n(这里指数字) + G光标跳转到第 n 行;htm
(3) ^ 光标跳转到所在行首个非空格字符, B 与 ^ 做用相同, 0 光标跳转到所在行首个字符(包括空格);blog
(4) x 向后删除一个字符, X 向前删除一个字符(Delete键下效果相同), n + x / X 向后/向前删除 n 个字符;ip
(5) dd 删除光标所在行, n + dd 删除包括光标所在行及下方共 n 行, dw 删除光标所在处一个单词,一样能够结合数字键使用。D 删除光标所在处及其后面全部
注:这里所说的删除,实际上是剪切到了剪切板,能够经过 p 键进行粘贴。
(6) v 进入光标选择状态(可视模式),V 以行做为单位(可视行模式)。选择后能够对选中内容进行删除复制等操做;
(7) yy 复制光标所在行, n + yy 复制包括光标所在行及其下方共 n 行, p 从当前光标处向下粘贴, 能够粘贴 x/X , dd , dw 剪切的内容, n + p 粘贴 n 次。P 从当前光标处向上粘贴。
(8) e 光标按单词依次向后移, E 光标移动到行尾, b 光标按单词依次向前移, B 光标移动到行首;
更加详细的使用说明如图1 :
图-1 vi/vim键位图
没必要所有掌握,酌情使用适合本身的快捷键便可。
1.2 编辑模式:
(1) i 在当前光标处开始编辑, I 在当前光标所在行第一个符号(该符号不包含空格)处开始编辑;
(2) a 在当前光标下一个字符处开始编辑,A 在当前光标所在行的最后一个字符(该字符包含空格)处开始编辑;
(3) o 在当前光标所在行下方插入一个空行并开始编辑, O 在当前光标所在行上方插入一个空行并开始编辑;
(4) s 删除当前光标所在处的字符并开始编辑, S 删除当前光标所在行全部字符并开始编辑。
1.3 底行模式:
使用底行模式前,先用:(半角冒号)或 / 进入底行模式。
(1)搜索: / 向当前光标之下搜索内容, ? 向光标之上搜索内容,n 下一个, N 上一个(对于 / ,下一个就是下一个,而对于 ? , 下一个是向上一个搜索),搜索后会出现高亮,若是使用完搜索功能后想要去除匹配结果的高亮显示,使用 nohl(no highlight 的缩写);
(2)替换: 1,$s/root/ROOT/g ,使用 % 能够代替 1,$, 表示从首行到尾行进行匹配, g 表示替换每行中匹配到的所有内容,不使用 g 则只替换每行中匹配到的第一个内容,固然,使用 3,5s 则替换第三行到第五行;
(3) 跳转光标::n(这里 n 为数字), 光标跳转到第 n 行;
(4)编辑结束后的操做::q, 不保存退出,修改内容将失效。 :w 保存,保存完成后并不会退出。:wq 保存并退出。 :x 同 :wq 同样为保存退出,二者的区别在于,即使没有作修改, :wq 也会影响三个时间(atime, mtiime, ctime),而 :x 则不影响三个时间。
注:能够在 :w :wq 后面加路径和文件名称,将其直接保存到相应位置的相应文件中,若是文件不存在,则自动建立文件:
:wq/tmp/learn/newfile.log
:w/tmp/learn/newfile.log
2.扩展学习:tee命令 与 查看单词在文本中出现次数
2.1 tee 命令:
tee 命令用于从标准输入中读取内容,以后执行两个操做——写入标准输出(即显示到显示器上)并写入执行文件中,好比如今有以下需求,不使用输入重定向,将 /etc/passwd 中含有 root 的存入 ~/root.log 文件中:
[root@localhost~]# grep root /etc/passwd | tee root.log
等同于
[root@localhost~]# cat /etc/passwd | grep root | tee root.log
注:积累一下 grep 直接做用于文件的这种用法,在对文件所有内容进行匹配时,使用 grep root/etc/passwd 代替管道用法的 cat /etc/passwd | grep root ,更加方便简洁。
注:此时若是在 ~/ 目录下不存在 root.log 文件,则会生成并将匹配结果写入其中,若是在 ~/ 目录下存在 root.log 文件,则会覆盖其中的内容,若是想要在已有文件中追加内容,使用 tee 命令的 –a 参数:
[root@localhost~]# grep root /etc/passwd | tee –o root.log
2.2 查看文本中同一个单词的出现个数:
这里使用查看 /etc/passwd文件中 root 单词出现的个数做为例子,介绍两种方法:
方法一: vim 底行模式
[root@localhost~]# vim /etc/passwd
:%s/root/&/gn
4 matches on 2lines
注:若是不使用 n ,则结果为
4 substitutionson 2 lines
能够看出来使用 n 只匹配而不替换,不使用 n 则匹配完成后就替换。
方法二: grep 命令配合–o 参数
[root@localhost~]# grep –o root /etc/passwd | wc –l //等同于
[root@localhost~]# cat /etc/passwd | grep –o root | wc –l
-o 参数只输出文件中匹配到的内容,其中每个独占一行,因此可使用 wc –l 统计行数得知其出现次数。
参考资料:http://www.aminglinux.com/bbs/thread-7643-1-1.html