vim的三种模式
- 命令模式
- 插入模式
- 退出模式
命令模式下配置vim
- :set nu 行号添加
- :set nonu 取消行号
- :set mouse=a 添加鼠标选择
- :set cursorline 行线显示
以上操作只在当前打开的 vim 中生效 , 如果设定永久生效编辑文件 /etc/vimrc
vim 命令模式下关键字搜索
- /关键字
- n 向下匹配
- N 向上匹配
vim命令模式下设置字符
- 字符的复制
- yl : 复制一个字母
- y3l :复制 3 个字母
- yw :复制一个单词
- y3w : 复制 3 个单词
- yy :复制一行
- y3y : 复制 3 行
- p :复制完成后按“ P” 粘贴
- 字符的删除
- dl :删除一个字母
- d3l :删除 3 个字母
- dw: 删除一个单词
- d3w: 删除 3 个单词
- dd: 删除一行
- d3d :删除 3 行
- 字符的剪切
- cl :剪切一个字母
- c3l: 剪切 3 个字母
- cw :剪切一个单词
- c3w :剪切 3 个单词
- cc :剪切一行
- c3c :剪切 3 行
esc ---> p 剪切过后会进入到插入模式,在执行粘贴动作时一 定要退出插入模式
批量修改字符
- :%s/ :原有字符 / 替换后字符 只替换每一行中出现的第一个原有字符
- :%s/ :原有字符 / 替换后字符 /g 替换所有
将1-5行所有的root替换成westos;
vim 的分屏功能
- ctrl+w s :上下分屏
- ctrl+w v :左右分屏
- ctrl+w c :关闭光标所在屏幕
- ctrl+w :上下左右 光标移动到指定屏幕
- :sp file2 :同时编辑当前文件和 file2
vim 光标移动
在命令模式下
- : 数字 :移动到指定的行
- G :文件最后一行
- gg :文件第一行
在插入模式下
- i :光标所在位置插入
- I :光标所在行行首
- a :光标所在字符的下一个位置
- A :光标所在行行尾
- o :光标所在行下一行
- O :光标所在行上一行
- s :删除光标所在字符插入
- S :删除光标所在行插入
vim 的退出模式
- :q :当用 vim 打开文件但没有对字符作任何操作时可直接退出
- :q! :当用 vim 打开文件并对字符作操作,放弃所有操作退出
- :wq :保存退出
- :wq! :强行保存退出,对超级用户及文件所有人生效
vimtutor
中文翻译: vimtutor -g zh
重定向
重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
执行一个shell命令行时通常会自动打开三个标准文件:
- 标准输入文件(stdin-0),通常对应终端的键盘;
- 标准输出文件(stdout-1)和标准错误输出文件(stderr-2),这两个文件都对应终端的屏幕。
输出重定向
输出重定向 会覆盖源文件内容
- > 重定向正确输出
- 2> 重定向错误输出
- &> 重定向所有输出
- 标准输出重定向
命令 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
管道
符号 : | “ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。
表示含义 : 将前一条命令的正确输出作为管道符后面命令的标准 输入
stderr 的输出不能通过管道
2>&1 可以把 stderr 转换成 stdout
# 查看/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
实例:
部分结果如下: