问题集锦:vi命令中 :w 和 :w!有啥区别
3 复制第三行到第九行的内容,然后粘贴到第20行的下面和第1行的上面
粘贴到第20行下面的快捷操作是啥?
目录
正文
01 cat 作用 查看文件内容
02 more 作用 查看文件内容
语法格式:more 选项 参数
实例:more filename 系统将会显示filename的内容,先显示其中的一部分,然后按空格是翻页,不能按b回退,只能一直按空格 直到文件结束,文件结束后按空格自动跳回到命令行中,不需要退出。
命令区分:见less。
03 less 作用:查看文件的内容
语法格式:less 选项 参数
实例:less filename 系统将会显示filename的内容,先显示其中的一部分,然后按空格是翻页,按b 是回退,按q是退出。
命令区分:尤其注意more和less的区别,more不把文件完全读到内存中,而是把一部分内容读到内存中。所以文件比较大的情况下可以使用more。另外more不能回退。
04 tail 作用:查看文件的尾部内容
语法格式:tail 选项 参数
选项:-c 数字 显示文件末尾的“数字”个字符。
+数字 显示从第“数字”行开始到末尾的内容。
-f 显示文件追加的部分。这里的f是file的意思通常用于对日志文件的监视,方便查看错误信息。
参数:文件列表
实例:tail -c 20 file1 显示file1末尾的20个字符
tail +20 file1 显示file1从第20行开始到末尾的所有内容。
05 head 作用:查看文件开头的内容
语法格式:head 选项 参数
选项:-c 数字 显示文件开头的“数字”个字符
+数字 显示从开始到第“数字”行的内容
参数:文件列表
实例:head -c 20 file1 显示file1开头的20个字符
head +20 file1 显示file1从开头到第20行的内容
和echo一起使用,进行文件重定向。命令 echo “list1” >> 1.txt 然后另外开一个终端进程 输入命令 head 1.txt 就可以看到重定向输入的内容。
和管道一起使用,命令cat sxt.log | head -3 。这里对于管道的解释:出现了|,就代表使用了管道,管道的两边是简单命令,左边命令的标准输出指向,指向右边命令的标准输入。
管道和ls一起使用。输入命令echo “/” | ls -l 系统输出为当前用户家目录下的内容。原因是ls是不把标准输入直接当做参数来接收的命令,需要先使用xargs将标准输入构建为参数,传递给ls命令。具体命令为echo “/” | xargs ls -l
管道,head ,tail 一起使用来实现查看文件的某一行 比如查看file1的第六行。命令是 head -6 | tail -1
06 vi 打开文件 打开文件主要有四种主要的操作
1 打开文件 命令: vi 路径 filename
2 打开文件并让光标移动到第x行 命令:vi +x 这个命令常常可以用在修改配置文件的情况下,搭建集群的时候常需要修改配置文件,报错信息会直接给出错误在第几行,这时使用 vi +数字 十分方便。
3 打开文件并让光标移动到最后一行 命令为:vi +
4 打开文件并让光标移动到首次匹配pattern的位置,比如pattern是字母a ,那么打开文件后光标将会移动到文件的第一个a所在行的行首(行首指的是这行的第一个非空的字符) 命令为:vi +/pattern 。这里的/pattern 应该当做查找命令/。
这四种命令的语法格式可以归结为 vi 选项 参数 选项一般都是由符号 - 或者 + 和字母或数字一起组成 一般数字和+号组合,+号也常常和转移符号一起组合,字母和 - 号组合。
06 vi 关闭文件 关闭文件主要有在两种模式下,五种主要的操作。
末行模式:
1 直接关闭文件,但是没有保存功能,如果对文件进行了修改会报错,命令:
:q
2 关闭文件不保存修改 命令:
:q!
3 关闭文件并保存 命令:
:wq
4 关闭文件并保存 这个命令和:wq的效果是相同的 命令:
:x
编辑模式:编辑模式的标志是文档最下面没有冒号,并且没有INSERT 提示符。这时候就表明既不是命令模式又不是插入模式,那么就一定是编辑模式
1 保存并退出 命令为
ZZ
07 模式切换
共三种模式 编辑模式(功能大概等同于notepad++中的编辑功能,有列操作,行操作,块操作,复制,粘贴,拷贝等)命令模式 和输入模式
1从编辑模式进入输入模式
i 在当前光标的前面进行输入
a 在当前光标的后边进行输入
I 在当前光标所在行的行首进行输入
A 在当前光标所在行的行尾进行输入
o 在当前光标所在行的下一行进行输入
O 在当前光标所在行的上一行进行输入
2 从编辑模式转换到命令模式
:
3 从命令模式转换到编辑模式
Esc (有的说是两下Esc)
4 从命令模式转换到输入模式
不可行
5 从输入模式到编辑模式
Esc
6 从输入模式到命令模式
(不可行) Esc 然后再按: 即先进入编辑模式然后进入命令模式
08 编辑模式
1 移动光标
1 字符
h 左 j 上 k 下 l 右
2 单词
w:向左跳,跳到每个单词的首部
e :向左跳,跳到每个单词的尾部
b :向右跳,跳到每个单词的尾部
3 行内
0 绝对行首
$ 绝对行尾
^ 相对行首
4 行间
G 行尾
二哥 gg 行首
3G 第三行 *G 任意第*G
5 翻屏
ctrl f 向前 向后
2 删除替换单个字符
x 删除光标位置的字符
3x 删除光标上和光标后的三个字符
r 替换单个字符,可以重复按r进行替换。
3 删除命令
dw 删除光标所在位置的一个单词
dd 删除光标所在行
4 复制粘贴与剪切
yw 复制一个单词 yy 复制一行 这里的y应该是copy的意思
p 粘贴
d 有剪切的功能。
5 撤销&重做
u 撤销 这里u的意思是 undo
ctrl + r 重做(重做指的是重做撤销所做的内容) 这里的r 应该是repeat的意思
. 重复上一步所做的内容
09 末行模式
1 set :设置
set nu
set nonu
set readonly 与 文件的写权限无关 ,只是在当前环境中只有读权限,可以用set noreadonly 去掉这个权限
set noreadonly
2 查找 末行模式中最强大的就是查找功能。
/+要查找的内容,光标会定位到第一个查找到的内容的首字母上。
:/+要查找的内容,光标会定位到第一个查找到的内容的首行的首位。
用/的查找功能时,n向下翻,N向上翻。
?+要查找的内容,向上查找。
3 执行命令 !
使用方法:!+命令
实例:!+ ls -l / 在不关闭vi文件的情况下执行命令,这样方便把命令执行的结果复制粘贴到vi文件中。此时按enter是从执行命令返回到vi文件。
4 查找替换命令 s
使用方法:范围 s/查找内容/替换内容/选项 使用这个命令时一定要首先加上范围。
技巧 这里第一个/可以当做是查找命令 所以第一个/后面紧跟的是查找内容,第二个/后面跟的是替换内容。
选项:-g 一行内所有替换
无选项 只替换一行内的首个匹配项
-i 忽略大小写。
范围:
n 行号
+n 偏移n行
. 从当前行开始
% 全文
$-3 留下后三行
特殊:临近s命令的第一个符号为边界符号,可以作为边界符号的符号有 / @ #,他们的用处是在/也是查找内容的时候可以用# 或者@替换。具体实例见实例3.
实例:1 替换从当前光标所在位置到文末的所有after为before
.,$s/after/before/g
2 替换全文第一行到倒数第二行之间所有的after为before
2,$-2s/after/before/g
3 替换第一行到倒数第二行之间所有的/为weather
2,$-2s#weather#/#g
4 范围加删除复制粘贴命令的妙用
1 dG 删除全文,或者用.,$d
2 删除第二行到最后两行之间的部分 2,$-2d
3 复制第三行到第九行的内容,然后粘贴到第20行的下面和第1行的上面
3,9y 粘贴目前只能用笨办法做