这一节主要学习了重定向,管道和VIM编辑器


首先看看输出重定向

1 > 或者> 都表示将正确的信息覆盖输出重定向, 1>>或者>>表示追加的重定向

2 > 表示将错误的信息覆盖输出重定向, 2>>表示追加的错误信息重定向

&> 将所有的信息,正确或者错误都定向到一个文件,也可以使用 > aa 2>&1 或者 2>aa 1>&2的格式,不过很明显后者比较复杂


如下所示 第一次可以将正确的信息定向到aa,第二次错误的信息1>无法定向过去,清空文件之后无法写入新的内容;第三次2>将错误信息定向到aa

RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第1张图片


这个例子是豆子利用rsync在苹果服务器和linux之间进行拷贝,他会把失败和成功的信息都写入同一个日志文件

wKiom1SXm7Sx-0cBAABqz0-KQxE928.jpg


除了输出重定向,输入也可以重定向,比如下面创建一个test文档,以EOF结束


RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第2张图片


接下来看看管道的作用,他可以把前一个命令的结果传给后一个命令作为输入。一个很常见的使用就是结合grep进行查询


看看下面的例子,首先创建一个新的用户BEANXYZ,注意大写 

wKiom1SXm7WiA1jSAABAxgfcx48296.jpg


拷贝 passwd 文件到本地, 然后执行 cat -n passwd | grep beanxyz,   可以看见找到了小写的用户名

RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第3张图片


如果添加了-i (ignore),则可以忽略大小写,可以获得两个用户的信息



如果指定了A3 (下面3行),B3(上面3行),还可以获得附近几行的数据


RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第4张图片


如果使用了 -v,可以进行反向过滤,除了 ‘beanxyz’之外的行数都列出来


RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第5张图片


有的时候,如果需要保存数据到某个临时文件,可以使用tee 进行写入,如果要追加信息,可以使用-a 选项

RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第6张图片


小测试:如何获取/etc/passwd 里面第11到20行的数据?


思路:先获取前20行数据,再获取后10行数据就可以了


RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第7张图片


接下来看看重头戏 VIM的使用。

首先看看VIM编辑器里面如何显示行号,在单个文件里输入 :set number 即可


RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第8张图片


但是一旦退出,这个功能就没有了。用户可以更改 家目录下面的 .vimrc 文件,添加一条信息,则该用户下所有的文本文件用VIM打开都可以显示行号了

RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第9张图片


类似的,如果想让该功能对所有用户都生效,可以直接修改 /etc/vimrc文件

RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第10张图片


打开 /etc/passwd 看看效果

RHCE 学习笔记(4)- 重定向,管道和VIM编辑器_第11张图片


接下来看看VIM有哪些常用的命令。简单的说,VIM 有3种模式,插入模式,命令行模式和末行模式。


模式的切换:


从Normal进入Insert模式下,可以通过i,o,a 或者I,O,A进入,区别无非在于插入光标的位置有所不同,个人觉得记住i 大部分时候就够用了


从Insert 退出到Normal, 按Esc即可


从Normal进入末行模式,可以输入:wq! 强制保存退出 或者/ 进行关键字的搜索



每个模式下都有很多各自的命令组合。下面是一些最最常见的,基本上会用了之后普通的文本编辑应该没问题了


Normal模式下: 


删除光标所在的字符,按X即可

复制光标所在的行 yy

复制光标所在的单词 yw

复制光标以下的3行 y3

剪切所在的行 dd

粘贴 p

替换字符  r然后输入要替换的字符

替换一堆字符串 R然后输入替换的字符串

撤销上一步 u


上面操作都是针对行或者单词,不够灵活,如果想复制粘贴一段话怎么做?可以在视觉模式里进行操作。


输入v,然后通过光标选定一大段内容,按y复制,按p即可粘贴

如果想注释掉一大堆代码怎么办?可以在insert模式下手动改,一个更简单的方法是ctrl+v, 进入视觉块模式,然后高亮所有行的第一列,输入shift+i (insert模式),然后输入#注释符号,等待1秒即可


Insert 模式下:


这个和普通的文本编辑基本没啥区别,可以更改,删除,添加数据,如果可以使用鼠标,复制粘贴更容易可以直接高亮一堆字符之后点击滚轮就行了




末行模式下:

搜索关键字,输入/ keyword,可以通过按n或者N进行下一个匹配

强制保存 :w!

强制退出 :q!

强制保存退出 :wq! 或者 x!

另存 :saveas /path

分屏 :split, 然后可以通过ctrl+w进行切换

关闭分屏 :close

跳转到某一行 :number 就可以跳到对应的行号了





最后,如果想知道更多的命令,可以通过vimtutor 进行学习