vim的三种模式

  1. 命令模式
  2. 插入模式
  3. 退出模式

命令模式下配置vim

  1. :set nu 行号添加 
  2. :set nonu 取消行号 
  3. :set mouse=a 添加鼠标选择 
  4. :set cursorline 行线显示

 以上操作只在当前打开的 vim 中生效 , 如果设定永久生效编辑文件 /etc/vimrc

vim 命令模式下关键字搜索

  1. /关键字
  2. n 向下匹配
  3. N 向上匹配

vim命令模式下设置字符

  • 字符的复制
  1. yl  : 复制一个字母
  2. y3l   :复制 3 个字母
  3. yw   :复制一个单词
  4. y3w  : 复制 3 个单词
  5. yy   :复制一行
  6. y3y  : 复制 3 行
  7. p   :复制完成后按“ P” 粘贴
  • 字符的删除
  1. dl :删除一个字母
  2. d3l :删除 3 个字母
  3.  dw: 删除一个单词
  4. d3w: 删除 3 个单词
  5. dd: 删除一行
  6. d3d :删除 3 行
  • 字符的剪切
  1. cl :剪切一个字母
  2. c3l: 剪切 3 个字母
  3. cw :剪切一个单词
  4. c3w :剪切 3 个单词
  5. cc :剪切一行
  6. c3c :剪切 3 行

esc ---> p 剪切过后会进入到插入模式,在执行粘贴动作时一 定要退出插入模式

批量修改字符

  1.  :%s/ :原有字符 / 替换后字符    只替换每一行中出现的第一个原有字符
  2.  :%s/ :原有字符 / 替换后字符 /g 替换所有

将1-5行所有的root替换成westos;

vim 及管理输入输出_重定向

vim 的分屏功能

  1.  ctrl+w s :上下分屏
  2. ctrl+w v :左右分屏
  3. ctrl+w c :关闭光标所在屏幕
  4. ctrl+w :上下左右 光标移动到指定屏幕
  5. :sp file2 :同时编辑当前文件和 file2

vim 光标移动

在命令模式下 

  1. : 数字 :移动到指定的行
  2. G :文件最后一行
  3. gg :文件第一行

在插入模式下

  1. i   :光标所在位置插入
  2. I    :光标所在行行首
  3. a   :光标所在字符的下一个位置
  4. A   :光标所在行行尾
  5. o   :光标所在行下一行
  6. O   :光标所在行上一行
  7. s   :删除光标所在字符插入
  8. S   :删除光标所在行插入

vim 的退出模式

  1.  :q   :当用 vim 打开文件但没有对字符作任何操作时可直接退出
  2. :q!   :当用 vim 打开文件并对字符作操作,放弃所有操作退出
  3. :wq   :保存退出
  4. :wq!   :强行保存退出,对超级用户及文件所有人生效

vimtutor

中文翻译: vimtutor  -g  zh

重定向

重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。

执行一个shell命令行时通常会自动打开三个标准文件:

  1. 标准输入文件(stdin-0),通常对应终端的键盘;
  2. 标准输出文件(stdout-1)和标准错误输出文件(stderr-2),这两个文件都对应终端的屏幕。

输出重定向

输出重定向 会覆盖源文件内容

  1. > 重定向正确输出 
  2. 2> 重定向错误输出
  3. &> 重定向所有输出
     
  • 标准输出重定向
命令   1> 文件名
命令   > 文件名

eg:
	date >/tmp/data.txt
	date >/tmp/data.txt
  • 标准错误重定向
命令   2> 文件名

eg:
	date3 >/tmp/data3.txt
  • 覆盖重定向应用
# 在/etc目录下寻找名为passwd的文件
     find /etc/ -name passwd
   # 将所有的正确输出(标准输出)重定向到文件/tmp/passwdok.txt
     find /etc/ -name passwd 1> /tmp/passwdok.txt
   # 将所有的错误输出(标准错误)重定向到文件/tmp/passwderror.txt
     find /etc/ -name passwd 2> /tmp/passwderror.txt
   # 将所有输出信息存储到文件/tmp/all.txt
     find /etc/ -name passwd  &>/tmp/all.txt
     less /tmp/all.txt 
   # 将所有输出信息扔入垃圾箱
     find /etc/ -name passwd  &>/dev/null
  • 追加重定向: 在原有的>后面再加一个>

输入重定向

  • 输入重定向 tr 'a-z' 'A-Z' < westos

vim 及管理输入输出_重定向_02

管道

符号 : |    “ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。

表示含义 : 将前一条命令的正确输出作为管道符后面命令的标准 输入

stderr 的输出不能通过管道

2>&1 可以把 stderr 转换成 stdout

vim 及管理输入输出_重定向_03

#  查看/etc/下文件名为passwd的文件个数, 只有正确的输出才可以通过管道;
#  wc -l filename 统计文件的行数
#  wc -c filename 统计文件的字节数(文件大小)
find /etc/ -name passwd | wc -l
# 查看命令所有的输出数量.  2>&1: 将标准错误(2)转换成标准输出(1), 通过管道并统计
find /etc/ -name passwd 2>&1 | wc -l
# 获取文件的第3行到第5行
head -n 5 passwd | tail -n 3
# 获取文件的第5行
head -n 5 passwd | tail -n 1

TEE

复制输出到指定位置

# 查找/etc/目录中passwd文件的个数, 并将文件详细信息保存到/tmp/tee1.txt
 find /etc/ -name passwd 2>/dev/null  |tee /tmp/tee1.txt |  wc -l

实例:

vim 及管理输入输出_文件名_04

部分结果如下:

vim 及管理输入输出_重定向_05