bash脚本基础
概述
Bash 是我们用来与基于 Unix 的操作系统通信并向系统发出命令的脚本语言。自 2019 年 5 月以来,Windows 提供了 Windows 子系统 for Linux,允许我们在 Windows 环境中使用 Bash 。掌握这种语言对于高效地使用它至关重要。脚本语言与编程语言的主要区别在于,我们不需要编译代码来执行脚本语言,而编程语言则相反。
作为渗透测试人员,我们必须能够使用任何操作系统,无论是 Windows 还是 Unix 系统。效率主要取决于对系统的了解,尤其是在提权领域。在 Unix 系统中,学习如何使用终端、过滤数据以及自动化这些过程至关重要。特别是在大型 Unix 企业网络中,我们将不得不处理大量数据。我们必须相应地排序和过滤,以尽快确定潜在的漏洞和信息。
学习如何组合多个命令并处理单个结果也同样重要。这就是脚本的作用所在,它能提高我们的速度和效率。像编程语言一样,脚本语言几乎具有相同的结构,可以分为:
- 输入与输出
- 参数、变量和数组
- 条件执行
- 算数
- 循环
- 比较运算符
- 函数
通常情况下,我们会自动化一些流程,以避免重复执行或处理大量信息。一般来说,脚本本身不会创建进程,而是由执行脚本的解释器来执行,在这种情况下,是 Bash 。要执行一个脚本,我们需要指定解释器并告诉它应该处理哪个脚本。
条件执行
条件执行允许我们通过满足不同条件来控制脚本的流程。这个功能是基本组件之一。否则,我们只能依次执行一个命令。
在定义各种条件时,我们指定对于特定值应该执行哪些函数或代码段。如果我们满足特定条件,只有该条件的代码会被执行,而其他条件会被跳过。一旦条件代码段完成,条件执行之外的命令将接着执行。
1 | #!/bin/bash |
#!/bin/bash- Shebang.#!/bin/bash- 脚本解释器。if-else-fi- 条件执行。echo- 打印特定输出。$#/$0/$1- 特殊变量。domain- 变量。
If-Else-Fi
检查不同条件以处理这些情况是编程中最基本的任务之一。在编程和脚本语言中,条件检查通常有两种不同的形式,即 if-else condition 和 case statements 。在伪代码中,if 条件表示以下含义:
