linux基础之vim编辑器
本节内容
一、高阶命令
引号的作用
单引号(''):所见即所得
双引号(""):解释变量
反引号(``):执行命令
软硬连接
软连接:ln -s 源文件 目标文件(link)(soft)
1. 删除连接文件对源文件无影响
2. 删除源文件连接文件失效
3. 修改源文件连接文件也会跟着变
4. 修改连接文件源文件也会跟着变
5. 源文件删除后在创建同名源文件,连接文件自动连接
硬链接:ln 源文件 目标文件
1. 删除源文件连接文件不会失效
2. 修改源文件连接文件也会跟着变
3. 修改连接文件源文件也会跟着变
二、vim编辑器
1、三种模式:
命令模式(普通模式,查看模式)
输入模式(编辑模式)
末行模式
2、 模式之间的切换
命令模式--》输入模式(a,i,o)
输入模式--》命令模式(esc)
命令模式--》末行模式(:)
末行模式--》命令模式(esc)
3、命令模式下的常用操作
yy:复制
p:黏贴
dd:剪切
u:撤销上一次的操作
ctrl+r: 撤销u操作(撤销上次撤销的操作)
G:跳转到最后一行
dG:删除光标所在行到末尾的全部行
1G:跳转到的首行
Home键:跳转到行首
End键:跳转到行尾
pgup:上翻一页
pgdn:下翻一页
/:查找
n:从上往下查找
N:从下往上查找
4、末行模式下的操作
q:退出
w:保存
wq:保存并退出
q!:强制退出
wq!:保存并强制退出
set nu:显示行号
set nonu:不显示行号
nohl:取消高亮(no high light)
1,3 d:删除1-3行内容
1,3 m 5:移动1,3内容至5行下
1,3 co 5:复制1,3内容至5行下
1,3 s/源字符/替换内容/g (g是全文意思,表示全部替换)
1,$ s///g或者% s///g
% s/^/#/g: 在行首添加#
% s/$/#/g: 在行尾添加#
% s/^#//g:删除行首的#
% s/#$//g: 删除行尾的#
5. vim配置文件
全局配置:/etc/vimrc
个人配置:~/.vimrc(默认不存在,需要自己手动创建)
6. 崩溃缓存文件
文件名 .filename.swp
恢复:
1. vim 源文件 (查看文件发现已经生成崩溃缓存文件,退出)
2. vim -r 源文件(恢复文件)
3. wq(正常保存并退出)
4. 删除崩溃缓存文件
5. 查看
7. 分屏操作
vim -o:水平分屏
vim -O: 垂直分屏
ctrl+w: 切换文件
高阶命令二
软链接和硬链接
创建软连接的格式:
ln -s 源文件 目标文件
创建软连接:
renyz07@renyz07-PC:~$ ln -s test test1
查看软连接:
renyz07@renyz07-PC:~$ ls -lh
lrwxrwxrwx 1 renyz07 renyz07 4 7月 10 18:53 test1 -> test
软连接的特点:
1.修改源文件软连接文件也会随着改变
2.修改软连接文件目标文件也会随着改变
3.删除软连接文件源文件没有影响
4.删除源文件连接文件失效
5.源文件被删除之后再次创建同名文件软连接文件会自动连接到新建的同名文件
硬链接:
创建硬链接:
renyz07@renyz07-PC:~$ ln test test2
硬链接的特点:
1.修改源文件软连接文件也会随着改变
2.修改软连接文件目标文件也会随着改变
3.删除软连接文件源文件没有影响
4.删除源文件连接文件没有影响
vim编辑器
系统自带的是vi编辑器,vim是vi的升级版
如果需要使用vim需要下载:yum install vim -y
如果想下载目前需要确保虚拟机能够通外网!
一、vim的三种工作模式:
命令模式:可以进行文件的查看,复制,剪切,删除等操作
编辑模式:可以直接进行文本的编辑
末行模式:复制,剪切,删除,替换,保存,退出
命令模式切换到编辑模式:i,a,o
编辑模式切换到命令模式:esc
命令模式切换到末行模式:shift :
末行模式切换到命令模式:esc
编辑模式不可以直接切换到末行模式!
总结:
1.vim打开一个文本直接进入的就是命令模式,此时文本的左下角和右下角没有任何的标志字符!
2.在命令模式中输入i,a,o,就会在左下角显示INSERT字符串,这就是输入模式的标志!
3. 在命令模式中输入:,在左下角会出现:,这就是末行模式的标志!
vim编辑器中输入i,o,a不同点:
1. i insert 是在光标前插入内容
2. a append 是在原光标的后面进行内容追加
3. o other 在光标所在行的下面新开一行
二、命令模式下的常用操作:
1、第一类操作:复制、移动删除文件内容
yy 复制(重点)
p 粘贴 #粘贴在光标所在行的下面(重点)
nyy 2yy 复制多行
dd 剪切 #如果不粘贴就是删除的意思(重点)
ndd 剪切多行
dG 删除光标所在的行到末尾的行(重点)
D 删除光标到行尾的内容(重点)
x 删除光标所在位置的字符
2、第二类操作:撤销和重复执行的相关操作
u 撤销(重点)
nu 指定撤销次数
ctrl+r 撤销上次撤销的操作
. 执行上一次的操作
g~ 这个功能非常有意思,g~ 能将当前行的大小写转换
J 这个键的功能是将光标当前行和下一行合并(这个键不能加上数字)
3、第三类操作:跳转相关的操作
1G 跳转到首行(重点)
gg 跳转到首行(重点)
G 跳转到末行(重点)
nG 跳转到指定行(重点)
0:跳转到行首(会认为空格也是内容,此时会跳转到空格的最前面)
^:跳转到行首(不认为空格是内容,此时会跳转到第一个非空字符)
$:跳转到行尾
Home键:跳转到行首(重点)
End键:跳转到行尾(重点)
ctrl+f:向前翻一屏pgup键
ctrl+b:向后翻一屏pgdn键
4、第四类操作:替换相关操作
R 进入替换模式(可替换任意数量内容) #退出按esc
r 替换一个字符退出
5、第五类操作:查找
/string 如:/root #表示搜索文中的root字符串(重点)
这里的搜索使用的是正则表达式 , 如果要查找 .*[]^%/\?~$ 这些具有特殊含义的字符需要在这些字符前加上 \ 转义符。
精确查找
比如 the 需要用 /\<the\>来查找
n 往下查找(重点)
N 往上查找(重点)
ZZ 保存退出
三、vim编辑器末行模式下的常用操作:
1、第一类命令:行号
set nu 显示行号(重点)
set nonu 不显示行号(重点)
2、第二类命令:跳转
$ 跳转到最后一行
Number 直接输入数字即可跳转到任意行!
3、第三类命令:取消匹配内容的高亮
nohl 取消高亮(重点)
4、第四类命令:替换
起始位,终止位 s/原始字符/想要替换的字符串/g
例子1:替换全文中的root为ken
:1,$ s/root/ken/ #这样会匹配全文的root,如果不加g就会只替换每行第一个匹配到的内容
:1,$ s/root/ken/g #替换全文的root为ken
1,$ 表示全文 % 表示全文
例子2:替换全文中的ken为root
% s/ken/root/g
例子3:替换1到3行的root为ken
:1,3 s/root/ken/g
例子4:替换第5行的root为ken
:5 s/root/ken/g
例子5:替换全文的/为#
:% s$/$#$g #不一定是/,可以使用任意的三个相同字符代替即可,一般使用#,@,$
例子6:注释全文(章行首添加字符#)
% s/^/#/g (重点)
例子7:把全文注释取消
:% s/^#//
例子8:在全文行尾添加ken
:% s/$/ken/
例子9:把行尾的ken都删掉
% s/ken$//
5、第五类命令:保存和退出
q 退出 #打开文本并没有修改文本可以直接使用q进行退出
w 保存
q! 强制退出(重点) #如果修改了文本不想保存退出,必须使用q!强制退出
wq 保存并且退出(重点)
wq! 强制保存并且退出
e 不离开 VI ,开始编辑一个新的文件
w <filename-new> 存储当前编辑的文件到一个新的文件(另存为)
x (保存退出)文件仅被修改时才写入 并退出,未写入则直接退出
6、第六类命令:高级操作
r 读取某个文本内容到本文件中(重点)
! 执行命令
set tabstop=4:将tab缩进的字符设置为4
set ai 设置缩进
set noai 取消缩进
syntax on 打开色彩支持,在 linux 中编辑文件和编辑程序源代码等工作都是在 vim 中完成的 , 打开色彩支持可以在查看或编写程序的时候发现语法等错误
syntax off 关闭色彩支持
set backup 自动生成备份文件 ,vi 在打开或编辑一个文件的时候会自动备份文件,备份的件一般会在文件名后加 ~
suspend 把 vi 暂时放到后台休息。用 fg 恢复 快捷键 (Ctrl + z)
7、第七类命令:删除,移动,复制
例子1:删除1到10行的内容
1,10 d
例子2:移动1到3行的内容至末行
1,3 m $
例子3:复制1到3行的内容至末行
1,3 co $
三、vim分屏操作:
vim -o file1 file2:实现水平分屏
vim -O file1 file2:实现垂直分屏
ctrl+w:切换到另一个分屏
打开文件的小技巧:
vim +num file:打开文件的时候,自动跳转到第num行(加号不可省略)
vim + file:打开文件的时候,自动跳转到最后一行
四、vim编辑器配置文件
/etc/vimrc 全局配置文件,对所有的用户都生效
~/.vimrc 只对特定的用户生效,默认该文件不存在,需要自己创建
例子1:如果想要打开文件自动显示行号
vim /etc/vimrc
set nu
例子2:编辑vi的配置文件,实现可以自动显示行号、缩进4个字符、自动对齐
# vi ~/.vimrc
:set nu
:set ai
:set tabstop=4
五、vim崩溃缓存文件
用vim编辑一个文件的是,如果文件没有正常的关闭(wq、q、q!),那么就会生成一个崩溃缓存文件。
崩溃缓存文件:
1. 缓存文件是隐藏文件
2. 缓存文件基本格式是 .filename.swp
3. 缓存文件的作用是用于在系统意外关机的情况下,恢复文件中的内容(修改了文件内容,意外关掉终端或者系统)
4. 缓存文件的使用方式
恢复文件的步骤:
[root@ken1 ~]# vim test
第二步:使用vim -r进行文件的恢复
[root@ken1 ~]# vim -r test
第三步:删除崩溃文件
[root@ken1 ~]# rm -rf .test.swp
第四步:确认数据是否一致
[root@ken1 ~]# vim test
注意:
1. 如果文件发生了修改,那么无法直接退出
2. 如果要退出一个修改了的文件,有三种方式
方式1:先执行保存(w),然后执行退出(q)
方式2:直接保存并退出(wq)
方式3:不保存,并强制执行退出操作(q!)
练习题:
先执行如下命令
cd /tmp
cp /etc/rc.d/rc.local ./
然后用vim打开这个文件
然后在这个文件第三行写上自己的名字
然后返回到命令模式
先执行命令
cd /tmp
cp /etc/init.d/functions ./
1.然后用vim打开文件
2.然后将第一行移动到第五行
3.将第8行以后的全面行都删除
4.将第一行到底7行的内容复制一次,粘贴到第7行下面
5.然后还原第七行中的内容
6.保存退出
先执行命令
cd /tmp
cp /etc/init.d/functions ./
1.然后用vim打开文件
2.跳转到第443行
3.跳转到最后一行
4.向上翻1屏
5.将664行中settings中的i替换为大写
6.跳转到第2行
7.将第3行以后的全部内容都删除
6.保存退出
先执行命令
cd /tmp
cp /etc/init.d/functions ./
1. 然后用vim打开文件,并显示行号
2. 在文件每行的末尾添加上 -自己姓名
3. 将文件的最后10行的行首添上#
4. 将以#开头的行的行首添加 newline
5. 取消行号、取消文件内容的高亮
6. 保存文件
7. 不保存强制退出
#######################
2. 用vim在tmp创建一个文件file,写入如下内容
# my info
my name is liuqi
your name is wukong#
we are going to xi tian#
my email is 161@qq.com
password is in /etc/passwd
over.
3. 将第2行到第6行的内容复制到第7行的下面,复制5次
4. 将在文件中查找单词 my
5. 执行一次保存操作
5. 将第7行到末行的首部添加一个#
5. 将文件中的/替换为=
6. 将 # my info 移动到 .over 的下面
7. 跳转到末行,再跳转到首行
8. 保存并退出
######################################
补充:
1. 创建空白文件的方式有两种touch、vi\vim
2. linux中,文件的后缀对于文件的属性没有任何影响,文件的属性只和创建文件的时候所执行的命令有关
3. linux中无论是命令还是文件名,都严格区分大小写