Vim文本编辑器和编写shell命令脚本


           在Linux系统中一切都是文件,而配置一个服务器就是在修改其配置文件的参数。而且在日常工作中大家也肯定免不了要编写文档,这些工作都是通过文本编辑器来完成的。

           Vim之所以能得到广大厂商与用于的认可,原因在于Vim编辑器中设置了三种模式——命令模式,末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法。

           命令模式:控制光标移动,可对文本进行复制,粘贴,删除和查找等工作。

           输入模式:正常的文本录入。

           末行模式:保存或退出文档,以及设置编辑环境。

                                                                                                                     Vim编辑器模式的切换方法

           在每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编辑工作,而每次在编写完文档后需要先返回命令模式,然后在进入末行模式,执行文档的保存或退出操作。在Vim中,无法直接从输入模式切换到末行模式。

                                                                                                                       Vim中常用的命令

            命令                                    作用

            dd                                        删除(剪切)光变所在整行

            5dd                                      删除(剪切)从光标处开始的5行

            yy                                         复制光标所在整行

            5yy                                      复制从光标处开始的5行

            n                                          显示搜索命令定位到的下一个字符串

            N                                         显示搜索命令定位到的上一个字符串

            u                                          撤销上一步的操作

            p                                          将之前删除(dd)或复制(yy)过的数据粘贴到光标后面

             末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。

                                                                                                                           末行模式中可用的命令

            命令                                      作用

            :w                                        保存

            :q                                         退出

            :q!                                        强制退出(放弃对文档的修改内容)

            :wq!                                     强制保存退出

            :set nu                                 显示行号

            :set nonu                             不显示行号

            :命令                                    执行命令

            :整数                                    跳转到该行

            :s/one/two                            将当前光标所在行的第一个one替换成two

            :s/one/two/g                           将当前光标所在行的所有one替换成two

            :%s/one/two/g                      将全文中的所有one替换成two

            ?字符串                                 在文本中从下至上搜索该字符串

             /字符串                                   在文本中从上至下搜索该字符串

编写shell脚本

             可以将shell终端解释器当作人与计算机硬件之间的 “翻译官”,它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环,分支等高级编程语言才有的控制结构特性。想要正确使用shell中的这些功能特性,准确下达命令尤为重要。shell脚本命令的工作方式有两种:交互式和批处理。

                交互式:用户每输入一条命令就立即执行

                批处理:  由用户事先编写好一个完整的shell脚本,shell会一次性执行脚本中诸多的命令。

              在shell脚本中不仅会用到前面学习过的很多Linux命令以及正则表达式,管道符,数据流重定向的语法规则,还需要把内部功能模块化后通过逻辑语句进行处理,最终形成日常所见的shell脚本。

                                                                                                                                   编写简单的脚本

             在看完上文中有关shell脚本的复杂描述后。但是,上文指的是一个高级shell脚本的编写原则,其实使用Vim编辑器把Linux命令按照顺序依次写入到一个文件中,这就是一个简单的脚本了。

             shell脚本文件的名称可以任意,但为了避免被误以为是普通文件,建议将.sh后缀加上,以表示是一个脚本文件。脚本中实际上出现三种不同的元素:第一行的脚本声明(#!)用来告诉系统使用那种shell解释器来执行该脚本;第二行的注释信息(#)是对脚本功能和某些命令的介绍信息,是自己或他人在日后看到这个脚本内容时,可以快速知道该脚本的作用或一些警告信息;第三,四行的可执行语句也就是我们平时执行的Linux命令了。

                                                                                                                                     接受用于的参数

             像上面这样的脚本程序只能执行一些预先定义好的功能,未免太过死板了。为了让shell脚本程序更好地满足用户的一些实时需求,以便灵活完成工作,必须要让脚本程序能够像之前执行命令时那样,接收用户输入的参数。

             其实,Linux系统中的shell脚本语言早就考虑到了这些,已经内设了用于接收参数的变量,变量之间可以使用空格间隔。例如$0对应的是当前shell脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1,$2,$3.......则分别对应着第N个位置的参数值。

 

2020-09-22       17:09:19


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM