admin 管理员组

文章数量: 887021

    目录 

                  【vim 编辑器】

                  【管道】

                  【文件内容浏览命令】

                【练习】

        

【 vim 编辑器】

       前言须知 : 

                     1.  vim 是个啥?

                                   其实, vim 类似于 windows 上的记事本 : 能够编辑,保存,复制,粘贴,

                                               搜索,替换等等。

                                   在 linux 上叫 vim ,早些时候 unix 或者 linux 系统不会内置 vim 会内置一个

                                   叫 vi 的。

                     2.  vim 能干啥 ?

                                  vim 本身就是一个 文本编辑器,自然用来编辑文本文件,是 vi 的增强版,使

                                  用 vi 也可以编辑文件。 

                     3.  vim 与 linux 

                                   我们经常说,在 linux 中,一切皆是文件,而且大多数情况下以文本文件为

                                   主,或者说,在 linux 中,我们很多程序的配置,服务的配置都是以配置文

                                   件来完成的,而配置文件又都是配置文本文件,所以在配置的时候一定避

                                   免不了需要编辑它,因此,vim 在 linux 的使用程度是非常高的。

                     4.  vim 的使用 

                                   vim 是字符界面,不是图形界面,基本用不上鼠标。

     三种模式 :

                        命令模式 控制光标 完成复制 粘贴 删除 查找的功能

                        编辑模式 : 编辑文本文件的内容

                        末行模式 : 保存,退出,设置环境

     模式切换  :

                       使用 vim  data.txt 进入 vim 中,默认进入命令行模式;也就是说,我们要进入到 

                       vim 下,首先是默认的给我们显示的是 vim 三种模式下的 命令行模式。

                       

                       那么命令行模式是怎样的呢?         

                               示例  :      

                              

                              

                      那么怎么又由 命令行模式 切换到 编辑模式呢?

                               切换 : 按下(输入)  “a" 或  " i " 或 " o " 便进入到编辑模式 。

                               特点 :  编辑模式下会有一个特点,会让你知道此刻就在 编辑模式下,那便

                                             是 在左下角会显示出  红色 --INSERT-- 字样。

                               示例  :  进入到编辑模式便可以输入东西了。 

                               

                      那么怎么由  编辑模式 切换到 命令行模式 呢?

                                 切换 : 按下 "  Esc "  键

                                 示例  :会发现左下角的 红色 --INSERT-- 字样消失

                        ​​​​​​​        

                       那么怎么由 命令行 切换到 末行模式 ?

                                  切换  : 输入 " : "  

                                  示例  : 左下角 是 "  :  "  即切换到 末行模式中。

                                

                       那么怎么由  末行模式 切换到  命令行模式 ?

                                   切换  :  按下 " Esc "  

                                   示例  : 这个切换后,前后差别不是很大,但 按下 " Esc " 就到 命令行模式

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

                  总结  :      

                

                               注意 :  输入模式 和 末行模式 是相互切换不了的

    命令行模式   : 

             常用命令  : 光标移动   

           

                             注 :  行号显示是在  末行模式 下进行的。

             

                常用命令  :  复制、粘贴、删除      

                

                       

                常用命令   :  文件内容查找

                

                                 注  : 查找可以分为两种方式去执行,一种是从上往下,一种从下往上

                                            / " 要查找的内容 "  , 即 / 后跟的是你要查找的东西。执行完后, vim 会

                                                 将你要查找的内容 用背景颜色凸显出来,一眼就找到。

                                           n 与 N 是 你将要查找的东西找出来之后,在所有被显示出的被查的内

                                                 容里去进行的操作。 按 n 光标就跑到下一个 被查的内容那里了。

                   常用命令  :   撤销编辑  保存退出  

                  

                         注  : 

                              在使用 vim 编辑一个文件的时候,如果这个文件本身不存在,然而你编辑完成

                              之后保存并退出了,那就意味着创建了一个新的文本文件。

                              和 touch 的区别  : touch 创建的是一个空的新文件,并且没有指定一定是文本

                                                              文件

             末行模式

                          常用命令 : 保存文件及退出vi编辑器

        ​​​​​​​        ​​​​​​​        

                                      :  保存文件分为 保存 和 另存为。

                                                其中,另存为是对文件重新命名, :w  /root/newfile即为另存为

                                                的新文件名。 

                         常用命令  : 打开新文件或读入其他文件内容

        ​​​​​​​        ​​​​​​​        

                                     

                                            : e  是  在已经打开的文件里面,再打开一个新的文件。

                                            : r  是   在打开的这个文件里面去打开另一个文件并且把另一个文件的

                                                        内容装载进来。  

                                              

                         常用命令  :  文件内容替换

        ​​​​​​​        ​​​​​​​        

                                注 :

                                  #  上示表格中的所有的 old 代表的是 你要进行替换的东西,new 代表的是

                                       替换后的新内容。

                                  #  " #,# " 这里面,第一个 # 代表的是起始行号,第二个 # 代表的是 结束行号

                                  #   注意在 / 前是有空格的。

【 管道 】

     管道 

        管道 :     由我们的 | 管道符隔开的若干条命令组成的序列。

        作用 :     就是来传输的,起了一个连接的作用(有点像楼层与楼层之间的下水管。) 

     管道符 

        管道符   : “ | ”   就是根竖线。  

        管道符 | 的前后两个命令之间的关系 : 前一个命令的输出,使用管道符,进而作为后一

                                                                      个命令的输入。 这就是管道的作用。

        管道符使用格式 :  命令1 | 命令2 | 命令3 .......

     

           注

                    #  上示图示,就是为了让大家方便理解 管道 的前后情况。

                    #   process  :  进程 / 程序 的意思

                         stdout     :  标准输出 (一般就是指终端,就是把结果显示在屏幕上)

                          stdin      :  标准输入   

           管道符的使用场合 :

                           当输出内容较多时,为方便浏览,可将输出内容,通过管道符,传递给 more 命

                           令来分页查看,也可传递给 grep 命令实现对指定对象的查看。

                            

                             #  对两个命令 more ,grep 的解释 :

                             #   more   :

                                   作用 : 用于文件内容的浏览,分页浏览,是按页去展示内容的(按空格跳

                                                转下一页,按 q 退出,也可以进行搜索 / ,用 / 搜索)

                                    示例 : more  data.txt

                                    

              more 与 管道符一起使用  :                     

[root@bogon ~]# ls -l | more
total 24
-rw-------. 1 root root 1402 Mar 23 20:07 anaconda-ks.cfg
-rw-r--r--. 1 root root 2381 Apr  7 21:41 baidu.html
-rw-r--r--. 1 root root  168 May 10 23:24 data.txt
drwxr-xr-x. 2 root root    6 Mar 23 22:23 Desktop
drwxr-xr-x. 2 root root    6 Mar 23 22:23 Documents
drwxr-xr-x. 2 root root    6 Mar 23 22:23 Downloads
-rw-r--r--. 1 root root    0 Apr 30 10:25 file1
-rw-r--r--. 1 root root    0 Apr 30 10:27 file2
-rw-r--r--. 1 root root    0 Apr 30 10:27 file3
-rw-r--r--. 1 root root   19 May  8 15:32 first_test.txt
-rw-r--r--. 1 root root 1557 Mar 23 22:19 initial-setup-ks.cfg
drwxr-xr-x. 4 root root  129 May  2 09:48 link_test
drwxr-xr-x. 2 root root   29 May  1 12:17 link_wenjian
drwxr-xr-x. 3 root root   17 Apr 17 17:03 loo
drwxr-xr-x. 2 root root    6 Mar 23 22:23 Music
drwxr-xr-x. 2 root root    6 Mar 23 22:23 Pictures
drwxr-xr-x. 2 root root    6 Mar 23 22:23 Public
drwxr-xr-x. 2 root root    6 Apr  3 11:11 tar_dir
drwxr-xr-x. 2 root root    6 Mar 23 22:23 Templates
drwxr-xr-x. 3 root root   17 Apr 30 11:15 text
drwxr-xr-x. 2 root root    6 Apr 30 10:29 text1
drwxr-xr-x. 2 root root   32 Apr 30 11:12 text3
--More--

  

                  #    grep   :

                                    作用   :根据我们指定的字符串去匹配内容并展示内容,要是没有匹配到则

                                                  不展示。所谓匹配就是查询,搜索,就是搜索你所指定的字符串,

                                                  看看有没有这个你想找的字符串,如果有的话则会把你要找的字符

                                                  串高亮显示,要是没有就什么都不显示。

                                    示例   : 

     grep 与 管道符一起使用   :          

                 

                       注  : grep 会把需要查找的 内容 给 高亮显示出来,如上示图中的 link_test。

注意事项

                      #  管道命令只处理前一个命令的正确输出,不处理错误输出。

                      #  管道符后边的命令,必须能够接收标准输入命令。

        tee : 

               命令功能 : 用于读取标准输入的数据,并将其内容输出成文件和标准输出(终端)上。

               命令格式 : tee  [ - a / - i ]  [ 文件.....]

                                   注 : 

                                             其中, -a 代表 : 附加到既有文件的后面,而不是覆盖既有文件

                                                        - i  代表 : 忽略中断信号。 

               管道符 中的使用  :

                                  格式  : 命令 | tee    [  文件  ]

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

                                 注

                                        #  上示图示即 表示了 tee 命令的用法, tee 命令会把从管道符传过来的

                                             命令便成文件 并且 输出在屏幕也即终端上。

              命令示例 :                               

[root@bogon ~]# echo "123" | tee tee_test.txt
123

                                    #  上示命令便是 tee 命令在管道符中的运用,命令执行后,便可以看到在终

                                        端上显示出 123 ,这便就是 tee 命令功能的一个体现,即将管道符传过

                                        来的命令显示在 终端上。           

[root@bogon ~]# more tee_test.txt
123

                                    #    上示命令便是 tee 命令功能的 第二个体现,即会将管道符传过来的命

                                          令保存至文件中,其文件名就是 tee_test.txt,我们使用 more 命令查

                                           看,确实如此,在 tee_test.txt 中确实含有 123 。   

[root@bogon ~]# echo "456" | tee tee_test.txt
456
[root@bogon ~]# more tee_test.txt
456

[root@bogon ~]# echo "123" | tee tee_test.txt
123
[root@bogon ~]# more tee_test.txt
123

[root@bogon ~]# echo "456" | tee -a tee_test.txt
456
[root@bogon ~]# more tee_test.txt
123
456

                                    #      上示命令,想表明的就是 关于 -a 选项的作用。 如命令所示,当 456 

                                             被执行后,tee_test.txt 里含有的自然是 456。 可是,当 再次执行命

                                             令,只是改了执行成 123 的命令时,在 tee_test .txt 的命令中显示的

                                              却只有 123,说明什么? 说明当再次执行 tee 命令时,会将原先保存

                                              的文件给覆盖掉,即 123 将 456 给覆盖掉了。 那么如何避免这种覆

                                              盖呢?  这时,就需要用到 tee 命令的 -a 选项, 其作用就是追加但不

                                              覆盖。因此,当我们使用 -a 选项后,在 tee_test.txt 文件中原先的

                                             123 并没有被 456 所覆盖掉,这就是 -a 选项的作用。

【文件内容浏览命令】

                

          cat  

                   命令功能  : 查看浏览文本文件内容

                   命令格式  : cat  [ 选项 ]  文件名列表( 意味着可以打开多个文件) 

                                         #  多个文件,将文件内容连接在一起输出。

                   常用选项 

                                        - n :  对输出内容中的所有行标注行号

                                        - b :  对输出内容中的非空行标注行号

                                        示例 :

                                                     #   - n  :效果显示, 对内容所有的行都进行了标注行号,所有的

                                                                    行意味着,无论这行是否有内容,都会进行标注行号。

                                                  

                                                       - b  :  效果显示, 可以看到 当内容中有空行时, - b 选项只对

                                                                   有内容的行,也即 非空行 进行了 标注行号。

                                                    

               

        less / more :           

                     命令功能  :  分页显示内容

                     命令格式  :  less / more   [  选项  ]  文件名

                     常用选项 

                                         - 数字  : 仅适用于 more 命令用来指定分页显示时每页的行数。                                               

                                                          注  :

                                                             #   所谓显示每页的行数,就是只显示几行,上示 more -5

                                                                  即代表只显示 5 行的内容。

                                        + 数字  :  从 数字行开始显示。                                    

[root@bogon ~]# cat data.txt | less  +3

                                                       

                                                           注  :

                                                               #      上示命令的结果即如图所示,仔细对比, dfsfas 就是

                                                                       第三行的内容,也即从第三行开始显示。

                                       

                                       -  N   :   仅适用于 less 命令,其作用是在每行前添加输出行号 。

                                       示例  :                      

[root@bogon ~]# less -N data.txt

                                                       

                                                   :  图示为命令显示结果。

                交互方法 

                                   #  按 enter 向下逐行滚动,按 空格 向下翻页,按 b 向上翻页。

                                   #  more 命令到文件结尾就自动退出, less 命令需要 输入 q 才可以退出。

        head  和 tail  :

                    head  : 头部, 查看文件头部指定行数 : 默认是 10 行

                    tail     :  尾部, 查看文件尾部指定行数 : 默认也是10 行

                    选项   : 

                                - num :  指定查看的行数 

                                             示例 :        

[root@bogon ~]# head -5 data.txt
dsad
sdaf
dfsfas
safsd
gfdfg

                                                #  查看 data.txt 的前五行                   

[root@bogon ~]# tail -5 data.txt
4645
654
687fgr
dfgdg
fgdg

                                                #   查看  data.txt 的后五行

                     

                 注 :强调  tail 命令有一个用法 :

                         tail  可以动态刷新的查看某些文件的内容,假设要查看一个日志文件,你再查看日

                         志文件的时候,其它一些程序还在往日志文件中写内容。

                         假设 :  14 :00 查看的文件, 14 : 10 还在往文件里写内容,普通查看,只能查

                                       看到  14 :00 ,看不到 14 :10 的内容。  因此就要使用 -f 选项

                          - f  :  是用来 动态刷新文件内容,并放在末尾。                        

               语法格式 : tail   -f  [ 文件 ]    ( 选项 f 前当然还可以 加数字来查看多少行)       

                          

                                                                            

【练习】

                  #  使用 ls  -l  查看当前目录的内容,使用管道符将 ls -l 的内容输出,作为 grep 命令的

                      输入查找test        

[root@bogon ~]# ls -l | grep test
-rw-r--r--. 1 root root   19 May  8 15:32 first_test.txt
drwxr-xr-x. 4 root root  129 May  2 09:48 link_test
-rw-r--r--. 1 root root    8 May 12 16:13 tee_test.txt

                      注  : 由于版本原因,其实,上示里,所有 test 的字样都是高亮突出现实的。

                  

                  #  tee 命令的使用 ls -l 查看当前目录的内容,然后使用管道,将 ls -l 的输出作为 tee

                       的输入,并保存到 result.txt 中。                

[root@bogon ~]# ls -l | tee result.txt
[root@bogon ~]# cat result.txt

                         : 具体命令操作即如上示表示。内容太长,不展示。

                                                

                                                

                                    

                                

                

                                

        

                        

                        

                                 

        ​​​​​​​        ​​​​​​​         

                        

                                                  

  

                                        

本文标签: 编辑器 管道 命令 文件 基础