Linux中的nano、vim 和 sed
一、nano: linux中一款简单易用的全屏幕编辑器。
1、编辑文件的方法:nano 文件名;(也可以不跟文件名,编辑完成后,保存退出时给出文件名。如果文件名为:/etc/a/b/c.txt,并且/etc目录下面没有/a和/b目录,则可以打开文件进行编辑,但是无法保存。)
2、nano的基本操作:
1)保存:ctrl+o+enter键;(如果在未做好修改之前,按下ctrl+o键,可以在提醒保存文件名的时候,按下ctrl+c,不保存继续编辑该文件。)
2)退出:ctrl+x。
3)剪切:ctrl+k。(如果要剪切连续的多行,则连续按ctrl+k;如果需要精确剪切的话,则使用ctrl + 6+↑或者↓或者←或者→键,选择需要剪切的内容,则被选中的内容会反白,然后按下ctrl+k。如果要取消刚才的选择的话,则再次按下ctrl+6键,则反白内容消失。)
4)粘贴:ctrl+u。(也可以点击右键选择“paste”)
5)搜索:ctrl+w。(只能搜索到匹配字符的第一个。)
6)插入行:按下enter键。
7)移动光标和换行:↑↓←→键。
8)复制:用鼠标拖动需要复制的行,点击右键选择“
copy”。
9)上翻页:
ctrl+y。
10)下翻页:
ctrl+v。
11)查看帮助文档:
ctrl+g。(在帮助文档里面,^表示ctrl键,M表示alt键。)
二、vim:支持语法高亮和各种各样的操作命令。
1、vi 的提升版纯文本模式化编辑器。
2、Vim常用的模式:
编辑模式(命令模式):
输入模式(插入模式):
末行模式:
3、Vim中模式的转换:
编辑——>输入模式:按下
i o a s c I O A S C (掌握住一两个即可)
i :在当前光标前插入字符;
I :从行首插入字符;
o : 切换到光标所在行的下方插入;
O :切换到光标所在行的上方插入;
a :在当前光标所在处的后面插入;
A :在当前光标所在行的行尾插入;
s :删除光标所在处字符并进行插入;
S :删除光标所在行并进行插入;
c :双击c 删除光标所在行并进行插入;(可以跟数字结合使用)
C :删除光标所在处以及该行后面的字符并进行插入;
输入模式——>编辑模式:按ESC键。
编辑模式——>末行模式:输入“:”。
末行模式——>编辑模式:按下ESC键或者双击ESC键;
末行模式——>输入模式: 通过ESC键到达编辑模式,再通过编辑模式到达 输入模式。(输入模式——>末行模式同理)
4、vim +n 文件名:打开文件,使光标直接处于某一行内;(n表示行号)
5、vim [options] 文件1
文件2
文件3…… 一次打开多个文件;
:next ,表示切换到第二个文件;
:first ,表示切换到第一个文件;
:last ,表示切换到最后一个文件;
:prev ,表示切换到前面一个文件;
:qall ,表示所有的文件都退出了;
:wqall ,表示所有的文件都保存退出了;
6、vim +/PATTERN/ 文件名:打开文件,使光标处在该匹配字符串的行首;(/PATTERN/表示匹配的字符串);
7、保存退出:在末行模式下输入:wq;或者ZZ
8、如果同时退出多个文件的话:在末行模式下输入:wqall;
9、强行保存退出:wq!
10、不保存退出:q
11、不保存强行退出:q!
13、光标移动:#h键;向左侧移动;(#表示数值,如5h,表示向左侧移动5个字符)
#L键:向右移动;
#J键:向下移动;
#K键:向上移动;
14、词间跳转:w:跳到下一个单词的词首;
e:向后跳,跳到单词的词尾;
b:向前跳,跳到单词的词首;
15、句间跳转:( 向上跳一句; )向下跳一句;(可以跟数字结合使用)
16、段间跳转: { 向上跳一段; } 向下跳一段;(可以跟数字结合使用)
17、0或者^ :跳到当前所在行的行首;(0表示跳到绝对行首,^表示跳到第一个非空白字符处)
18、$:跳到当前所在行的行尾;
19、G:跳转到文件尾部;但当跟数字结合时,表示跳转到第几行。例如:10G,表示跳转到第十行;
20、1G: 跳到文件的首部;
21、在末行模式下实现行间跳转:例如跳到19行,则:19,然后按enter键。
22、ctrl+f:向后翻一屏;
Ctrl+b:向前翻一屏;
Ctrl+d:向后翻半屏;
Ctrl+u:向前翻半屏;
23、x:删除光标所在处的字符;3x:删除光标所在处的字符及其后两个字符;X:删除光标前面的内容;
24、d:删除行;5d,向后删除5行;dw:删除一个字符;3dw:向后删除3个单词;
25、r:在光标所在处替换。例如:r5:将光标处的字符替换为5。5rA:将光标所在处及其后四个字符都换成A;
26、R:进入到替换模式。
27、u:撤销最近一次的编辑操作;(默认可以撤销50次操作,该值是可以调整的);
28、ctrl+r:撤销刚才的撤销操作;
29、重做: . 重复执行上一条命令;
30、y:复制,y$:复制当前光标到行尾的内容;
yy : 复制该行内容;
#yy:复制n行内容;
31、当复制的内容为整行时,小p:粘贴,在当前光标所在行的下方粘贴;
当复制的内容为整行时,大P:在当前光标所在行的上方粘贴;
当复制的内容非整行时,小p表示在光标所在处的后方粘贴,大p表示在光标所在处的前方粘贴;
32、剪切:d 和 p 配合使用;
33、可视化模式:v:按字符选取;V:按行选取;可与p 、y d 等配合使用;
34、/ 或者 ? 后跟字符或者字符串:例如:/word 或者 ?word;n或者N:查看下一个查找到的匹配字符串;
35、s:搜索并替换;该命令要在末行模式下执行,格式为:
:ADDR1,ADDR2s
/from/to/flags (黄色的表示分隔符,可以使用特殊字符进行替换,例如使用@ 或者#等)
(flags:g 表示如果某行有多个都被匹配到,则多个都被替换掉;i 表示不区分大小写)
(ADDR1,ADDR2: m,n:表示第m行到第n行;1,$:表示从第一行到最后一行; . ,$:表示从光标所在行到最后一行; . ,+8:表示从当前行到后面第8行; 1,$-1:表示从第一行到倒数第二行; %s :表示全文搜索;)
(/from/的内容可以使用正则表达式匹配,/to/的内容不能使用正则表达式匹配,但可以使用\1来引用小括号的内容)。
36、ctrl+w, s键:水平分屏;
Ctrl+w, v键:垂直分屏;
Ctrl+w,↑↓←→
:在分屏间进行切换;
Ctrl+w,t:切换到第一个分屏;
Ctrl+w,b:切换到最后一个分屏;
Ctrl+w,l:切换到左边的分屏;
Ctrl+w,r:切换到右边的分屏;
:
q ,表示退出当前分屏;:qall,表示退出所有分屏;
Vim –o 文件
1 文件2 文件3:表示水平分割多个文件;
Vim –O 文件
1 文件2 文件3:表示垂直分割多个文件;
37、显示行号:
:set nu(如果想要其永远生效,则需要编辑vim的配置文件,在里面加上该行命令。)
取消行号:
:set nonu
38、
vim的配置文件:全局的:/etc/vimrc ,该配置文件中,双引号表示注释的内容。
个人的:
~/vimrc
39、自动缩进:
:set ai(autoindent) 取消自动缩进: :set noai
40、语法高亮:
syntax on|off
搜索高亮:
set hlsearch
取消搜索高亮:set nohlsearch
三、sed:(stream editor)行编辑器。
特点:1、非交互式编辑器;
2、没有破坏性,不修改原文件,除非使用shell的重定向符来保存结果;
3、sed也支持sed脚本。
其工作原理为:将一行文字读到内存空间(该内存空间称为sed的模式空间)里面去,做完处理之后,再输出到屏幕上。
sed 的模式空间:即能被sed匹配到的字符串被存放到的内存空间。
sed的使用格式:sed [options] [file]
1】sed “ADDR1,ADDR2COMMAND” FILE
表示文件中被ADDR1和ADDR2匹配到的行用什么命令来处理。
例如:sed 1,4d aa.sh
—————————>表示删除文件aa.sh中第一行到第四行的内容。1,4d可以加引号,也可以不加引号。
2】sed /PATTERN/COMMAND FILE
表示文件中被PATTERN匹配到的行采用什么命令来处理。
3】sed /PATTERN1/,/PATTER2/COMMAND FILE
表示文件中从被PATTERN1匹配到的行开始至
第一次PATTERN2匹配到的行结束采用什么命令来处理。被
4】sed /PATTERN/p FILE
表示文件中被匹配到的行
重新显示一次@等特殊字符来替换/,有时会出错。,原文件也显示一次。
最好不要使用
5】sed -n /PATTERN/p FILE:只显示被模式匹配到的行而不再显示原文件。
6】sed ‘#a\STRING’ FILE:在某一行或某几行后面添加字符串。
如果字符串中有空格,必须加上‘’或者“”,否则会报错。
例如:sed
‘2,5a\my love!\nmy big house
’ d.sh (\n
表示换行)
在第二行到第五行的每行后面添加两行。
7
】sed ‘#i\STRING’ FILE:在某一行或者某几行前面添加字符串。