vi命令使用
vi是Linux中内置的一个文本编辑器(类似Windows中的记事本)。
vi 可以对文件中内容进行编辑。
命令模式
- 使用vi 命令创建新文件
- 进入到/tmp 目录下
- 使用命令 vi biji.txt
cd /tmp
vi biji.txt
编辑模式
在命令模式中 按下键盘的 “a” 或者 “i” 键。 可以从命令模式到编辑模式。
当文件内容输入完成之后, 按下键盘的 【ESC】 键
输入命令 (输入法调整为英文输入法)
:wq 保存并退出
命令模式下主要操作
:wq
退出并保存:q!
退出不保存
练习
- 使用vi命令在 /tmp 目录下创建
fm.log
文件 在文件中输入如下内容
常用Linux命令
cd
pwd
ls
cp
mv
保存并退出
- 使用cat 命令查看 fm.log 文件,并显示行号。
主要命令
行号显示
vi 打开文件之后,按下 【ESC】 键,
:set nu | 显示行号 |
---|---|
:set nonu | 取消行号 |
移动光标
按下【ESC】键退出编辑状态
h或者左箭头(⬅) | 光标向左移动一个光标 |
---|---|
j或者下箭头(⬇) | 光标向下移动一个光标 |
k或者向上箭头(⬆) | 光标向上移动一个光标 |
l或者右箭头(➡) | 光标向右移动一个光标 |
n |
n表示数字,比如20,按下数字之后按space空格键,表示向右移动20个字符 |
0或者功能键【Home】 | 移动到这一行的最前面字符处 |
$或者功能键【End】 | 移动到这一行的最后面字符处 |
G | 移动到这个文件的最后一行 |
nG | n为数字,移动到这个文件的第n行,例如20G移动到这个文件的第20行 |
gg | 移动到第1行 |
n |
n为数字,向后移动n行。比如现在光标在 第20行处,输入20 并按下回车。 定位第40行(往后移动了20行) |
练习
- 将 /var/log/messages 文件复制到 /tmp/messages
- 使用vi命令打开 /tmp/messages
- 显示行号
- 将光标移动到最后一行。
查找与替换
按下【ESC】退出编辑模式。
/word | 向光标之下查找word的单词 /hello 表示搜索文件中的hello |
---|---|
?word | 向光标之上查找word的单词 |
:n1,n2s/word1/word2/c | n1,n2为具体的数字,表示在第n1行到n2行查找word1,并将查找到的word1替换为word2,替换之前会提示用户是否确认 |
:n1,n2s/word1/word2/g | n1,n2为具体的数字,表示在第n1行到n2行查找word1,并将查找到的word1替换为word2(与/c的区别是:不再询问,直接替换) |
:1,$s/word1/word2/g | 从第1行到最后一行,找word1,替换为word2 |
备注: 使用 /word
或者 ?word
搜索完成之后 按下 n
自动定位到下一个。
- 清空 /tmp 目录下所有的文件
- 复制 /var/log/messages 文件 到 /tmp 目录下
- vi 打开 /tmp/messages
- 将200-500 行中的 centos替换为wangdachui
:200,500s/centos/wangdachui/c
- 200 表示第200行
- 500 表示第500行
- s 表示搜索
- /centos 搜索的内容
- /wangdachui 替换的内容
- /c 询问是否确认
文件保存
| :q! | 退出不保存 | | —- | —- | | :wq | 保存并退出 | | :w filename | 文件另存为 filename为具体的文件名 |
练习
- 将 /var/log/messages 文件复制到 /tmp目录下
- vi 编辑 /tmp/messages文件
- 将文件中所有的
root
改为小明
- 文件另存为 messages_xiaoming
替换文本
:1,$s/root/小明/g
文件另存为
:w messages_xiaoming
退出编辑
:q!
常见问题
- touch 可以创建文件 ,vi 也可以,两者有什么区别
区别就是 touch只能创建一个空文件,而vi可以进行编辑。