本系列文章为尚硅谷武晟然老师的Linux入门教程学习笔记,前面的系列文章链接如下
Linux入门教程:P3->Linux文件系统
一、整体介绍和模式转换
图形化界面编辑文件
前面我们已经了解了Linux里的目录结构,而且我们知道了Linux里边一切皆文件,什么都可以看成是文件来进行管理。所以之后我们学习的过程当中要直接去操作文件,那一个文件怎么操作?这里我们先将root主目录下的一个cfg文件拷贝到桌面。
x
然后我想要修改它的内容。我可以直接双击把它打开,然后想修改内容直接在里面敲就行了,最后和Windows一样直接ctrl+s保存。
使用文本编辑器的优点
然而桌面环境要占用系统资源,所以为了把性能做到极致,往往服务器是连桌面环境都不装的。那这样的话,在服务器端操作时,我们就需要到shell控制终端里面去进行文档操作。大家可能会觉得到这个文档里边去之后,连文档的界面都没有,该怎样去操作呢?这就需要我们至少得掌握一种在shell里边进行文本编辑的方法,也就是说我们需要熟悉一种文本编辑器。
Vi/Vim编辑器
①Vi是Unix操作系统和类Unix操作系统中最通用的文本编辑
②Vim编辑器是从Vi发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。Vim与Vi编辑器完全兼容。
③Vi和Vim其实就是用控制台模拟一个文本编辑窗口,然后可以在里面编辑文本。
Emacs与Vim
①Emacs,被称为神之编辑器。是由GNU开源项目倡导者理查德斯托曼用lisp语言写出来的一个解释器。所以emacs可以用来作文本编辑,但是它的功能可以扩展的非常强大,它可以管理文件系统,它可以直接去当成一个email的收发工具,它可以用来上网浏览器等等。可以说它的设计理念是all in one,就是在这样一个工具里边,你可以做任意自己想做的事情。但是它缺点就是体积太庞大了,启动非常缓慢。
②vim,被称为编辑器之神。由Linus创造,其实就是一个简版的emacs,叫做micro emacs。vim就作文本编辑,把文本编辑功能做到极致,速度很快。
③打开计算机的bin目录,可以找到Vi和Vim,所以系统相当于给我们提供了两个工具。
Vi与Vim的区别
①使用
vi + 文件名
打开这个cfg文件。这就是纯粹的白底黑字,非常简略。
②使用vim + 文件名
打开这个cfg文件。不同的字符有不同颜色显示。
右下角是光标的位置
这里我们无法直接编辑,这是因为我们处于普通模式。当我们需要进行内容修改时,需要进入编辑模式(插入模式)。还有一个比较特殊的模式叫做命令模式,主要就是在一般模式下可以打一个冒号或者打一个斜杠,然后去进行一些命令操作。
模式切换
三种模式切换方式如下
编辑模式:
如果我们修改了一些内容,需要先退出到普通模式,然后进入命令模式去保存。我们输入:+w
进行保存,w就是write写入。从计算机底层处理的角度来看,这个操作其实相当于把我们更改的这些操作(本来是应该放在一个缓冲区),现在要把缓冲区的内容真正写入硬盘。
如果我不想要这个更改的话,可以在普通模式下按一个u,于是直接就回退到之前了。
最后,如果想要退出回到之前的那个shell终端控制台,可以在命令模式下输入:+q
。
二、普通模式
普通模式的用途
用Vim打开一个文本就直接进入一般模式了(这是默认的模式)。在这个模式中,可以使用『上下左右』按键来移动光标,可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理文件数据。
复制粘贴
①单行复制粘贴
按下yy可以复制光标所在行的内容,这里不会出现任何效果。
然后可以在某一行按下p进行粘贴
也可以直接使用数字+p
,代表粘贴多少次。我这里按下5p,代表粘贴了5行。
②多行复制粘贴
可以使用数字+yy
,比如我们这里要复制8行,使用8yy
然后按p进行粘贴。
行的删除
①按dd就可以删除当前行。
②数字+dd
,删除包含当前行在内的下面几行。
行部分内容的复制粘贴
使用
y+$
,复制光标到当前行结束的所有内容。($在linux中代表结束)
使用y+^
,复制当前行光标之前到光标的内容。(^在linux中代表开头)
使用y+w
,w代表word,复制光标所在的单词。
如果光标不在单词首部,则只会复制光标到所在单词结束的那个空格之间的内容。
行部分内容的删除
使用
d+w
,删除光标所在单词(空格也要删除)。
如果光标不在单词首部,则只会删除光标到所在单词结束的那个空格。
类似于yy+$
和yy+^
,也可以使用d+$
和d+^
删除光标到行尾、行首的内容。
单个字符操作
①按x代表剪切光标所在的字符。
②大写的X可以类似于Windows一样退格删除
③按一个r,可以替换当前字符的内容
④按一个R,进入替换模式(类似于一种特殊的编辑模式),可以依次替换多个字符。这类似于Windows中的Insert模式。
光标移动
①^:移动到行头
②$:移动到行尾
⑥w:相后移动到单词的词尾
⑦b:向前移动到签个单词的词尾
③gg或H:移动到页头
④G或L:移动到页尾
⑤数字+G:移动到目标行
注:如果想移动到某一行但是不知道行号,则可以:set nu
,显示行号。
如果想关闭行号,则:set nonu
总结:
三、编辑模式
前言
编辑模式下的操作跟Windows里面编辑文档的操作是完全一样,非常的简单。正常情况下,如果要能更加快速地编辑文档,比如说大段的复制粘贴和删除,最好就在普通模式搞定。在一般模式下,按下『i, I, o, O, a, A』中任何一个字母后就会进入编辑模式。按下这些按键时,在画面的左下方会出现『INSERT或REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』按键即可退出编辑模式。
进入编辑模式光标的位置
①
i
,在当前光标前面插入内容
②I
,在光标所在行最前面插入内容
③a
,在当前光标后插入内容
④A
,在光标所在行的行尾插入内容
⑤o
,在当前光标行的下一行插入内容,同时下面那一行是新插入的
⑥O
,在当前光标行的上一行插入内容,同时上面那一行是新插入的
四、命令模式
命令模式
在一般模式中,输入
:
或/
就可以进入命令模式。在命令模式中, 可以提供搜寻、读取、存盘、大量取代数据的动作。同时,离开vi、显示行号等动作也是在此模式中达成。
----使用:
进入命令模式时,就是完成一些功能
----使用/
进入命令模式时,就是进行数据的查找
一些指令
①
:w
保存。当我们对文档内容进行修改后想要进行保存,则需要退出到指令模式,执行:w
进行保存。
②:q
退出。退出vim编辑器。
③:!
强制执行。当我们修改了文档内容后,直接使用:q
退出编辑器会报错。这时可以在后面加上!
,即通过命令:q!
强制退出,同时修改的内容不会被保存。
④/要查找的词
。当我们想要查找一个词在文档的位置时,可以使用这条命令,找到的结果会高亮出来。此时可以通过n
移动到下一个查找到的词,可以通过N
移动到上一个查找到的词。
⑤:noh
。如果我们想取消高亮显示,则可以使用这条指令,可以看出高亮的boot被取消了。
⑥:set nu
显示行号
⑦:set nonu
关闭行号
⑧:%s/old/new/g
替换内容。/g代表替换匹配到的所有内容。
替换操作
①
:s/old/new
。将查找到的第1个old替换成new。
②:s/old/new/g
。上面的指令只能替换掉一个,如果一行中有多个boot都把它们进行替换,就需要在后面加上’/g’。可以看出这一行的boot全部被替换成功。
③:%s/old/new/g
。将文档中匹配到的所有的内容都替换掉。