每天学一点儿shell:vi和vim命令使用

vi的常用操作

进入vi

[root@hadoop-master test]# vi vi_test.txt 

使用如上命令就可以进入vi_test.txt的内容页面

#!/usr/bin/env bash
echo "服务器开始部署服务"
projectname="demo"
#打开文件所属的目录,不然远程执行会找不到当前目录
cd /usr/local/test
#新的jar包会当成参数传过来
newJar=$1
echo "新的jar为:$newJar"
#如果新的jar包为空则退出
if [ -z "$newJar" ]; then
 echo "新的jar不能为空"
 exit 0
fi

命令模式和Insert模式切换

在打开vi命令后默认进入命令模式,按字母[i]或者[Insert]键就可以进入编辑模式
编辑模式
编辑模式下面会有个INSERT标志,在编辑模式就可以修改文件内容,再按[Esc]就会进入命令模式。

保存和退出

在命令模式下,按[:]冒号进入[Last line mode]
保存::w(输入命令后按[Enter]回车键执行命令)
退出::q
保存并退出::wq
保存并强制退出::wq!

命令模式(重点)

进入Insert模式

按[i]进入插入模式,光标是从当前位置开始的
插入模式1
按[a]进入插入模式,光标是从当前位置的下一个字符开始的

插入模式2
按[o]进入插入模式,光标是从当前位置的下面重新插入一行,并且光标从行首位置开始
插入模式3

移动光标

向左:⬅、[h]
向右:➡、[l]
向下:⬇ 、[j]
向上:⬆ 、[k]

按「ctrl」+「b」:屏幕往"后"移动一页。 
按「ctrl」+「f」:屏幕往"前"移动一页。 
按「ctrl」+「u」:屏幕往"后"移动半页。 
按「ctrl」+「d」:屏幕往"前"移动半页。 
按数字「0」:移到段落的的开头。 
按「G」:移动到文章的最后。 
按「$」:移动到光标所在行的"行尾"。 
按「^」:移动到光标所在行的"行首" 
按「w」:光标跳到下个字的开头 
按「e」:光标跳到下个字的字尾 
按「b」:光标回到上个字的开头 
按「#l」:光标移到该行的第#个位置,如:5l,56l。 

删除文字

「x」   每按一次,删除光标所在位置的"后面"一个字符。 
「#x」  例如,「6x」表示删除光标所在位置的"后面"6个字符。 
「X」   大写的X,每按一次,删除光标所在位置的"前面"一个字符。 
「#X」  例如,「20X」表示删除光标所在位置的"前面"20个字符。 
「dd」  删除光标所在行。 
「#dd」 从光标所在行开始删除#行 

复制

「yw」  将光标所在之处到字尾的字符复制到缓冲区中。 
「#yw」 复制#个字到缓冲区 
「yy」  复制光标所在行到缓冲区。 
「#yy」 例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。 
「p」   将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。 

查找

/pattern  从光标开始处向文件尾搜索pattern
?pattern  从光标开始处向文件首搜索pattern

字符替换

「r」  替换光标所在处的字符。
「R」  替换光标所到之处的字符,直到按下「ESC」键为止。

字符串替换

:1,$s/oldstr/newstr/g        在全文范围用newstr替换oldstr
:n,ms/oldstr/newstr/g        在第n行到第m行内用newstr替换oldstr

显示行号

[:set number]   或者 [:set nu]       显示行号
[:set nonumber] 或者 [:set noun]     不显示行号

如何快速清空文件内容

true  "" > fileName

参考:

vi命令详解:https://www.cnblogs.com/ovliverlin/articles/1162430.html
vi命令汇总:https://www.cnblogs.com/fwl8888/p/9416375.html

猜你喜欢

转载自blog.csdn.net/u011047968/article/details/108121363