一、vi编辑器的使用
vi(visual editor)编辑器通常被简称为vi,它是Linux和Unix系统上最基本的文本编辑器,类似于Windows 系统下的notepad(记事本)编辑器。
1、在文本文件中插入
(1)切换插入模式
命令实例 | 作用 |
i | 进入插入模式 |
s | 删除一个字符并切换到编辑模式 |
S | 删除一行并切换到编辑模式 |
(2)插入内容的几种方式
命令实例 | 作用 |
a | 在当前光标位置之后插入内容 |
i | 在当前光标位置之前插入内容 |
o | 在光标所在行的后面插入一个新行 |
A | 在光标所在行的末尾(行尾)插入内容 |
I | 在光标所在行的开头(行首)插入内容 |
O | 在光标所在行的前面插入一个新行 |
2、复制、粘贴和删除
(1)删除
命令实例 | 作用 |
x或delete | 删除光标处的单个字符 |
s | 删除一个字符并切换到编辑模式 |
dd | 删除一行文字 |
#dd | 使用#dd的形式还可以删除从光标开始的#行内容(其中“#”号用具体数字 |
S | 删除一行并切换到编辑模式 |
D | 删除当前光标到行尾的所有字符 |
d$ | 删除当前光标处到行尾的所有字符 |
d^ | 删除当前光标之前到行首的所有字符 |
(2)复制
#使用按键命令yy复制当前行整行的内容到剪贴板
#使用#yy的形式话可以复制从光标处开始的#行内容(其中"#"号用具体数字替换)
(3)粘贴
按p键即可将复制的内容粘贴到光标位置处之后,按p键则会粘贴到光标位置处之前。
3、快速定位与查找
命令实例 | 作用 |
1G或gg | 跳转到文件内容的第一行 |
G | 跳转到文件的最后一行 |
#G(#用具体的数字替换) | 跳转到文件的第#行 |
$ | 光标快速定位到文本的行尾,相当于键盘的End键 |
^ | 光标快速定位到文本的行首,相当于键盘的Home键 |
:10 | 快速定位到第10行 |
/ | 如/network查找并定位到文件中network出现的位置,按n表示查找下一处 |
验证跳转的行数时否正确,可以显示出文本的行数
:set nu #显示行号
:set nonu #不显示行号
4、撤销及保存退出
命令 实例 | 作用 |
:u | 撤销(同标准编辑器中的Ctrl+Z) |
:redo | 重做(同标准编辑器中的Ctrl+Y) |
5、保存并退出
命令实例 | 作用 |
:w | 保存 |
:w /root/newfile | 另存为新文件 |
:q | 退出 |
:q! | 强制退出 |
:wq | 保存并退出 |
:x | 保存并退出 |
6、打开或读入新文件
从一个文件中打开新文件或读入其他文件内容
命令实例 | 作用 |
:e /opt/text1.txt | 打开目录下的新文件(/opt/text1.txt)进行编辑 |
:r /opt/test.txt | 读取文件(/opt/test.txt)内容并粘贴到光标处 |
7、替换文件内容
(1)全部替换
:%s/str1/str2/g 表示在整个文件内容中进行查找str1并将其替换为str2
:%s#str1#str2#g 表示在整个文件内容中进行查找str1并将其替换为str2
(2)局部替换
:n,ms#str1#str2 表示在指定行数范围的n到m行中进行查找str1并将其替换为str2;
:n,ms/str1/str2 表示在指定行数范围的n到m行中进行查找str1并将其替换为str2;
(3)当前行替换
:s/str1/str2
:s/str1/str2/g
:s#str1#str2
:s#str1#str2#g
(3)手动替换
1、首先使用/查找要替换的字符串如str1
2、按“cw”键,输入替换的字符串
3、按esc退出
4、n或N切换字符
5、重复替换输入“."
6、重复4和5可以依次替换文件中的所有str1字符串
二、文本的创建与显示
1、创建文本文件
命令示例 | 作用 |
vi /opt/learn/test.txt | 在目录 /opt/learn下创建test.txt并进入vi编辑界面 |
touch /opt/learn/demo | 在目录/opt/learn下创建空白文件demo |
cat> /opt/learn/catfile <<EOF | 创建文件catfile并在屏幕上输出内容,最后输入FOF结束,如果不使用<<EOF,则输入结束时直接按Ctrl+D也可以 |
2、显示文本文件内容
命令示例 | 作用 |
vi /etc/passwd | 在vi编辑器中输出文本内容 |
cat /etc/passwd | 在屏幕上输出文本内容 |
more /etc/passwd | 分屏输出文本内容 |
less /etc/passwd | 分屏输出文本内容并按需加载文件(适用于大文件的查看) |
head -n 10 /etc/passwd | 只输出文件的头10行 |
tail -n 20 /etc/passwd | 只输出文件末尾的20行 |
tail -f 文本文件 | 表示通过流的方式实时查看最新的文件内容,用于实时监控日志信息日志信息文本内容 |
strings /bin/ls | 查看二进制文件中的可打印字符 |