vi与vim命令
vi是linux中最经典的文本编辑器
vi的特点
1.只能是编辑文本内容,不能对字体段落进行排版
2.不支持鼠标操作
3.没有菜单
4.只有命令
vi编辑器在系统管理服务器管理编辑文件时,其功能永远不是图形界面的编辑器能比拟的
vim
vim是从vi发展出来的一个文本编辑器。代码补全,编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vim则可以说是程序员开发的一项很好用的工具
vi/vim模式
vi/vim模式主要分为以下三种
命令模式:在Linux终端中输入vim 文件名 就进入了命令模式,但不能输入文字
编辑模式:在命令模式下按i就会进入编辑模式,就可以写入程式,按Esc可回到命令模式
末行模式:在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行
总结
1.vim开始进入时是命令模式
2.按下i的时候会进入编辑模式
3.按下Esc然后在按下:的时候是末行模式
打开和新建文件
vim 文件名
1.如果文件已经存在,会直接打开该文件
2.如果文件不存在,保存且退出时就会新建一个文件
三种模式切换
1.进入命令模式
vim 文件名
2.进入编辑模式
按i进入插入模式
命令 | 功能 | 常用 |
---|---|---|
i | 在当前字符前插入文本 | 常用 |
I | 在行首插入文本 | 较常用 |
a | 在当前字符后添加文本 | |
A | 在行末添加文本 | 较常用 |
o | 在当前行后面插入一空行 | 常用 |
O | 在当前行前面插入一空行 | 常用 |
3.进入末行模式
编辑模式不能保存文件,必须先退到命令模式
wq :正常保存退出
命令 | 功能 |
---|---|
:q | 当vim进入文件没有对文件内容做任何操作可以按q退出 |
:q! | 当vim进入文件对文件内容有操作但不想保存退出 |
:wq | 正常保存退出 |
:wq! | 强行保存退出,只针对与root用户或文件所有人 |
文件查看
命令 | 作用 |
---|---|
cat 文件名 | 查看小文件内容 |
less -N 文件名 | 分频显示大文件内容 |
head -n 文件名 | 查看文件的前一部分 |
tail -n 文件名 | 查看文件的最后部分 |
grep 关键字 文件名 | 根据关键词,搜索文本文件内容 |
总结
cat会一次显示所有的内容,适合查看内容较少的文本文件
less适合查看内容较多的文本文件
head查看文档的前几行内容
tail -10f 文件名查看文档或日志的后几行内容
grep搜索存在关键字的行
cat命令
查看文件名的内容
cat 文件名
查看文件名的内容(加入行号)
cat -n 文件名
grep命令
1.搜索存在关键字的行的文件
grep 关键字 文件名
2.搜索存在关键字的行且显示行号
grep -n 关键字 文件名
3.忽略大小写搜索存在关键字的行
grep -i 关键字 文件名
4.搜索不存在关键字的行
grep -v 关键字 文件名
5.查找指定的进程信息(包含grep进程)
ps -ef|grep sshd
6.查找指定的进程信息(不包含grep进程)
ps aux | grep sshd | grep -v “grep”
ps -ef | grep -c sshd
tail命令
1.要显示文件的最后3行
tail -3 文件名
2.动态显示文档的最后内容,一般用来查看日志
tail -f 文件名
3.显示文件的内容,从第2行至文件末尾
tail -n+2 文件名
less命令
1.查看文件
less 文件名
2.查看命令历史使用记录并通过less分页显示
history | less
输入
j:可以前进行
k:可以后退行
G:可以移动到最后一行
g:可以移动到第一行
ctrl+F:向前移动一屏
ctrl+B:向后移动一屏
其他命令
1.全屏导航
ctrl +F:向前移动一屏
ctrl +B:向后移动一屏
ctrl +D:向前移动半屏
ctrl +U:向后移动半屏
2.单行导航
j:向前移动一行
k:向后移动一行
3.其它导航
G:移动到最后一行
g:移动到第一行
q/zz:退出less命令
vim定位行
vim 文件名 +6
操作扩展
命令 | 功能 |
---|---|
h | 向左 |
j | 向下 |
k | 向上 |
i | 向右 |
行内移动
命令 | 功能 |
---|---|
w | 向后移动一个单词 |
b | 向前移动一个单词 |
0 | 行首 |
^ | 行首,第一个不是空白字符的位置 |
$ | 行尾 |
行数移动
命令 | 功能 |
---|---|
gg | 文件顶部 |
G | 文件末尾 |
数字gg | 移动到数字对应行数 |
数字G | 移动到数字对应行数 |
:数字 | 移动到数字对应的行数 |
屏幕移动
命令 | 功能 |
---|---|
ctrl+b | 向上翻页 |
ctrl+f | 向下翻页 |
H | 屏幕顶部 |
M | 屏幕中间 |
L | 屏幕底部 |
选中文本
在 vi/vim 中要选择文本, 需要显示 visual 命令切换到 可视模式
vi/vim 中提供了 三种可视模式, 可以方便程序员的选择 选中文本的方式
按 ESC 可以放弃选中, 返回到 命令模式
命令 | 功能 | 常用 |
---|---|---|
v | 可视模式 | 从光标位置开始按照正常模式选择文本 |
V | 可视化模式 | 选中光标经过的完整行 |
ctrl+v | 可是块模式 | 垂直方向选中文本 |
撤销和恢复撤销(保命指令)
命令 | 功能 |
---|---|
u | 撤销上次命令(ctrl+z) |
ctrl+r | 恢复撤销的命令 |
删除文本
命令 | 功能 |
---|---|
x | 删除光标所在的字符,或者选中的文字 |
d | 删除移动命令对应的内容 |
dd | 删除光标所在行,可以删除多行 |
D | 删除至行尾 |
提示: 如果使用 可视模式 已经选中了一段文本, 那么无论使用 d 还是 x, 都可以删除选中文本
删除(扩展)
命令 | 功能 |
---|---|
dw | 从光标位置删除到单词末尾 |
d} | 从光标位置删除到段落末尾 |
ndd | 从光标位置向下连续删除n行 |
复制和剪切
vi/vim 中提供有一个 被复制文本的缓冲区
复制 命令会将选中的文字保存在缓冲区
删除 命令删除的文字会被保存在缓冲区
在需要的位置, 使用 粘贴 命令可以将缓冲对的文字插入到光标所在的位置
命令 | 功能 |
---|---|
yy | 复制行 |
d(剪切命令) | 剪切 |
dd(剪切) | 剪切一行,可以ndd剪切n行 |
p | 粘贴 |
注意
vi中的文本缓冲区和 系统的 剪切板不是同一个
所以在其他软件中使用Ctrl + C复制的内容, 不能再vi中通过p命令粘贴
可以在编辑模式下使用鼠标右键粘贴
替换
命令 | 功能 | 工作模式 |
---|---|---|
r | 替换当前字符 | 命令模式 |
R | 替换当前行光标后的字符 | 替换模式 |
R命令可以进入替换模式, 替换完成后, 按下ESc, 按下 ESC可以回到 命令模式
替换命令的作用就是不用进入编辑模式, 对文件进行轻量级的修改
缩排和重复执行
命令 | 功能 |
---|---|
>> | 向右增加缩进 |
<< | 向左减小缩进 |
. | 重复上次命令 |
查找
常规查找
命令 功能
/str 查找str
n: 查找下一个
N: 查找上一个