购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.7 Vim编辑器与Shell脚本命令

1.7.1 Vim编辑器

文本编辑器是计算机系统中最常用的一种工具,用户在使用计算机时,往往需要创建自己的文件,无论一般的文本文件、资料文件,还是源程序,这些都离不开文本编辑器。Linux系统中最常用的文本编辑器是Vi编辑器和Vim编辑器。

Vi编辑器(Vi是Visual Interface的简称)在Linux系统中的地位就像Edit程序在Dos系统中的地位一样,该编辑器不仅可以进行输出、删除、查找、替换、块操作等众多的文本操作,还可以让用户根据自己的需要对其进行定制,这一点是其他文本编辑器所没有的。

Vim编辑器是Vi编辑器的升级版本,最初的简称是Vi Imitation,随着功能的不断增加,正式名称改成了Vi IMproved。Vim编辑器是UNIX系统和Linux系统中最常用的文本编辑器。Vim编辑器没有菜单,只有众多命令。很多人不喜欢Vim编辑器就是因为它有太多的命令集,但只需要掌握基本的命令就可以灵活地使用Vim编辑器。

安装Vim编辑器的命令如下:

安装完成后就可以使用Vim编辑器了。Vim编辑器中设置了三种模式:命令模式、输入模式和末行模式,每种模式又分别支持不同的命令快捷键,这大大提高了工作效率。

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

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

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

Vim编辑器的模式切换方法如图1.31所示。

图1.31 Vim编辑器的模式切换方法

启动Vim编辑器后默认进入的是命令模式,此时需要先切换到输入模式后才能进行文本的输入;在完成文档输入后需要先返回命令模式,才能再进入末行模式,执行文档的保存或退出操作。

下面通过Vim编辑器编写文本文件practice.txt。首先通过:

进入Vim编辑器的命令模式,此时只能执行该模式下的命令,而不能随意输入文本内容,需要切换到输入模式才可以编写文本。按“i”键进入输入模式后,可以输入文本内容,Vim编辑器不会把输入的文本内容当成命令来执行。Vim编辑器的输入模式如图1.32所示。

图1.32 Vim编辑器的输入模式

编写完文本之后,如果要保存并退出,必须先按下Esc键从输入模式返回到命令模式。然后输入“:”切换到末行模式,并输入“wq”强制保存并退出。Vim编辑器的末行模式如图1.33所示。

图1.33 Vim编辑器的末行模式

在Vim编辑器的命令模式和末行模式中有很多命令,表1.14和表1.15分别给出了这两种模式下的常用命令。

表1.14 Vim编辑器命令模式的常用命令

表1.15 Vim编辑器末行模式的常用命令

1.7.2 Shell脚本命令

1.什么是Shell

Linux系统的内核负责完成硬件资源的分配、调度等管理任务,对计算机的正常运行来说极为重要。在一般情况下,用户通常是通过基于Linux系统的系统调用接口来开发程序或服务的,从而来管理计算机,以满足日常的工作需要。用户与Linux系统的交互如图1.34所示。

图1.34 用户与Linux系统的交互

虽然Linux系统中的图形化工具能够极大地降低运维人员操作的出错概率,但图形化工具往往缺乏Linux命令的灵活性和可控性,因此许多经验丰富的运维人员甚至都不会为Linux系统安装图形界面,在运维工作中直接使用命令模式。

Shell(也称为终端或壳)充当的是用户与Linux内核之间的“翻译官”,用户把一些命令“告诉”Shell,它就会调用相应的程序服务来完成某些工作。现在主流Linux系统默认使用的Shell是Bash(Bourne-Again Shell)解释器。

作为命令行终端,Bash解释器主要有以下4项功能:

● 通过上/下方向键来调取执行过的Linux命令。

● 仅需输入命令或参数的前几位就可以通过Tab键补全命令或参数。

● 具有强大的批处理脚本。

● 具有实用的环境变量。

要想正确使用Bash解释器的这些功能,准确输入Shell脚本命令尤为重要。Shell脚本命令的工作方式有两种:交互式和批处理。

● 交互式(Interactive):用户每输入一条Shell脚本命令就立即执行。

● 批处理(Batch):由用户事先编写好Shell脚本命令,Bash解释器会一次性地执行Shell脚本命令。

在Shell脚本命令中,不仅会用到Linux命令、正则表达式、管道符、数据流重定向等语法规则,还需要将内部功能模块化后通过逻辑语句进行处理,最终形成Shell脚本文件。

通过查看变量SHELL可以得知当前系统默认的Shell是不是Bash解释器,方法如下:

2.编写简单的Shell脚本文件

通过Vim编辑器把Linux命令按照顺序依次写入一个文件,这个文件其实就是一个简单的Shell脚本文件。例如,想要查看当前工作目录并列出当前工作目录下所有的文件及其属性信息,可通过下面的Shell脚本文件来实现:

用户可以自定义Shell脚本文件的名称,但为了避免将Shell脚本文件误认为普通文件,建议在文件名中增加后缀“.sh”,以表示该文件是一个Shell脚本文件。在上面的example.sh文件中,出现了三种不同的元素:第1行是注释信息,是对脚本功能和某些命令的介绍信息,在看到注释信息时可以快速知道该脚本文件的作用或一些警告信息;第2行是脚本声明(#!),用来告诉Linux系统使用的是哪种Shell解释器来执行该脚本文件;第3、4行是可执行语句,也就是要执行的Linux命令。脚本文件example.sh的执行结果如下:

除了可以使用Bash解释器来运行Shell脚本文件,还可以通过输入完整的目录来执行Shell脚本文件,但会因为权限不足而提示报错信息,此时只需要为Shell脚本文件增加执行权限即可。例如:

3.接收用户的参数

为了让Shell脚本文件更好地满足用户的实时性需求,以便灵活地完成工作,Shell脚本文件必须像执行Linux命令那样,可以接收用户输入的参数。

其实,Linux系统中的Shell脚本命令已经内设了用于接收参数的变量,变量之间可以使用空格间隔。例如,“$0”对应的是当前Shell脚本文件的名称,“$#”对应的是有几个参数,“$*”对应的是所有位置的参数值,“$?”对应的是显示上一次命令的执行返回值,$1、$2、$3、…、$ N 分别对应着 N 个位置的参数值。Shell脚本文件中的参数位置变量如图1.35所示。

图1.35 Shell脚本文件中的参数位置变量

学习完Shell的理论知识后,接下来编写一个Shell脚本文件实例,通过应用参数位置变量来看看真实的效果。 0nTOeBZGT1Ajy6zhCmnlgvt5+kzOzK6iDZ7HM9w/T3igno+ZSSQF9ikP4zvEgPYD

点击中间区域
呼出菜单
上一章
目录
下一章
×