Linux中编辑文件内容,命令行编辑工具有vim和vi
vim我们可以看做是vi的plus版
有些Linux发行版默认没有vim只有vi;因此我们可以选择安装vim
通过vim path(文件) 指定一个文件时候,进入到改文本并且查看文本内容,此时默认是不能对该文件进行内容修改的
vim的四大模式
命令模式(确定光标在哪):vim指定文件回车之后进入的第一个模式
编辑模式: 类似于win系统中记事本一样可以编辑
末⾏模式
可视化模式
命令行模式小小操作
- 除了通过←↓↑→这四个箭头我们可以实现移动光标外;换可以通过键盘的英文字母键进行上下左右移动hjkl(有些系统提供的命令行不支持小键盘或者电脑没有小键盘时我们就需要考虑这个了)
- 无论光标在哪个位置,输入gg,就能将光标切到行首位置(文本第一行最前面)
- G 切到最后一行,Shift+g = G
- nG 切到第n行; 5G,切到第五行(切记宝贝们是先按数字5,放开之后,再按G;并不是按住3不动,再按G)
- 光标所在位置按x,删除光标所在位置的字符;如果连续按x就会不断向右删除字符
- 光标所在位置按X(大写),删除光标所在位置左侧的第一个字符;如果连续按X就会不断的向左侧删除字符
- u 撤回上一次操作(相当于win系统的ctrl+z;但win的ctrl+z次数有限取决于编辑软件缓冲区设置);vim中的u撤回次数是无限次的,直到撤回到最开始的部分。按住u就会一直撤回
- i l o O a A 都能进入编辑模式,在编辑模式(或者任何模式)按ESC键就能退回到命令模式
- 退回命令模式换可以按快捷键Ctrl+【
编辑模式
命令行模式下按i; 从光标所在位置的左侧插入文本
命令行模式下按I; 光标立即到达所在行行首之后开始插入文本
命令行模式下按a; 从光标所在位置的右侧开始插入文本
命令行模式下按A; 光标会立即到达光标所在行的行尾开始插入文本
命令模式下按o ; 会在光标所在行下面另起一行开始插入文本
命令模式下按O ; 会在光标所在行上面另起一行开始插入文本
eg:
比如在配置文件666行配置下面另起一行,并且添加Listen223
方法:666G o
Listen 223
命令模式下按dd; 删除光标所在行
命令模式下按5dd;删除包含光标所在行的下五行
命令模式下按yy; 复制光标所在行
命令模式下按8yy; 复制包含光标所在行的下8行
如果在命令模式的上一次操作中包含dd或者yy这种命令,dd和yy所删除或者复制的那些行可以通过p命令粘贴出来
当在命令模式下输⼊p时,会将上次dd或者yy指定的⾏,增加到光标所在⾏的下⾯
当在命令模式下输⼊P时,会将上次dd或者yy指定的⾏,增加到光标所在⾏的上⾯
末行模式
在命令模式下输入“/”或者“:” 就能进入末行模式
- 查看指定的字符串
- 在命令模式下输⼊"/"然后输⼊要查找的字符串,然后回⻋,就会将查找到的字符串⽤⾼亮的颜⾊显示出来。如果没找到,则会报错。如果找到了内容,会以⾼亮颜⾊显示。如果找到了多个,可以按n切换到下⼀个找到的字符串,按N可以切换到上⼀个找到的字符串。
- 保存文本内容;在命令行模式下输入冒号:可以切换到末行模式,按w(write)然后回车就可以将修改的内容保存;另外即使保存了内容,回到命令行模式按u仍然可以撤回。
- :wq相当于:x表示保存退出
- 退出vim编辑器(若是修改的内容么有保存是不能正常退出编辑器的,强制退出会丢失内容)
- 保存之后再:的末行模式下输入q(quit)然后回车退出。:q!表示强制退出。之前编辑的内容不会保留。在:末行模式下支持:wq直接保存退出。
- 注意:Linux是一个多用户的操作系统,所以可能出现多个用户同时编辑同一个文件的情况,因此要学会查看vim的异常状态
:set number 回车显示行号
:set nonumber 回车去掉行号
文本内容替换
:n1,n2s/old content/new content/global # 将第n1⾏开始,n2⾏结束,这些⾏之间且包含n1和n2⾏中old content替换成new content
:5,10s/123/456/g # 第5⾏到第10⾏的123全部替换成456
:1,$s/1.1.1.1/172.16.33.90/g
# 第⼀⾏到最后⼀⾏的所有1.1.1.1替换成172.16.33.90;$就表示最后⼀⾏。如果要替换前的⽂本和替换后的⽂本⾥⾯有特殊字符,需要⽤转义字符\,转义⼀下。
:1,$s/// # 替换结尾是否加g,表示是否进⾏全局替换。如果不加g,只会在每⼀⾏的第⼀个找到的字符串做替换。
可视化模式
命令模式下按v或者V,或者Ctrl+v 能进入到可视化模式