Linux之Shell脚本初识

Shell 脚本是什么

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

  • 交互式(Interactive):用户每输入一条命令就立即执行。(之前我们遇到的都是)
  • 批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。

构建Shell 脚本

编写Shell脚本,可以通过vim 进行文本编辑,输入批处理的命令集,然后保存并退出。vim 编辑器是所有Unix及Linux 系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。

其实使用Vim编辑器把Linux命令按照顺序依次写入到一个文件中,这就是一个简单的脚本了。

Shell 脚本举例

Shell脚本文件的名称可以任意,但为了避免被误以为是普通文件,建议将 .sh 后缀加上,以表示是一个脚本文件。

在上面的这个example.sh脚本中实际上出现了三种不同的元素:

  • 第一行的脚本声明(#!)用来告诉系统使用哪种Shell解释器来执行该脚本;
  • 第二行的注释信息(#)是对脚本功能和某些命令的介绍信息,使得自己或他人在日后看到这个脚本内容时,可以快速知道该脚本的作用或一些警告信息;
  • 第三、四行的可执行语句也就是我们平时执行的Linux命令了。

Vim 编辑器

vim 编辑器的三种模式:

  • 命令模式(默认):刚进入vim的时候,默认就是 命令模式,可以复制行,删除行等。
  • 输入模式:可以输入内容。
  • 末行模式:在最下边,除编辑模式,可以输入诸多管理员命令

三种模式间的转换:

1
2
3
4
5
6
7
8
命令模式→输入模式:
     i:在当前光标所在字符的前面,转为输入模式
     a:在当前光标所在字符的后面,转为输入模式
     o:在当前光标所在行的下方,新建一行,并转为输入模式
输入模式→命令模式
ESC键
命令模式→末行模式
输入:即可转为末行模式

使用举例:

  1. “vim + 路径/文件名” 进入到文件中, 如果文件不存在,那么会新创建一个空文件。
  2. 使用 a、i、o 进入编辑模式,然后对Shell 脚本的编写
  3. 编写完成后,键入ESC,回到命令模式
  4. 键入 “:”,并输入 wq (写入退出)

下面介绍一下三种模式一些指令。

命令行模式

组合键(命令) 含义
dd 删除光标所在的那一行
u 撤销上一步操作
Ctrl+r 恢复上一步操作
ndd n为数字,删除光标所在的向下n行
yy 复制光标所在的那一行
nyy n为数字,复制光标所在的向下n行
p 将已复制的数据在光标的下一行粘贴
实现剪切操作: dd+p
G 光标移动到这个文件的最后一行
nG 移动到文件的第n行
gg 移动到文件的第一行

编辑模式:

组合键(命令) 含义
i: 在当前光标所在字符的前面,转为输入模式
I: 在当前光标所在行的行首转换为输入模式
a: 在当前光标所在字符的后面,转为输入模式
A: 在光标所在行的行尾,转换为输入模式
o: 在当前光标所在行的下方,新建一行,并转为输入模式
O: 在当前光标所在行的上方,新建一行,并转为输入模式
s: 删除光标所在字符
r: 替换光标处字符

末行模式:


脚本编写之后,我们就可以运行它啦!


运行Shell 脚本

  • 其返回的结果,就是我们在脚本中输入的命令啦。这就实现了批处理的效果。