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 | 命令模式→输入模式: |
使用举例:
- “vim + 路径/文件名” 进入到文件中, 如果文件不存在,那么会新创建一个空文件。
- 使用 a、i、o 进入编辑模式,然后对Shell 脚本的编写
- 编写完成后,键入ESC,回到命令模式
- 键入 “:”,并输入 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 脚本
- 其返回的结果,就是我们在脚本中输入的命令啦。这就实现了批处理的效果。