声明:学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章。笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!
一、shell脚本介绍
1、shell脚本简介
Shell 脚本是一种为 Shell(命令行解释器)编写的脚本程序。它是一系列命令的集合,这些命令可以是系统命令、实用工具命令或者是其他已经安装的程序的调用命令,通过将这些命令按顺序组合在一个文本文件中,让 Shell 能够自动地依次执行它们,从而实现自动化的任务处理。
2、基本结构
(1)第一行(Shebang 行)
Shell 脚本的第一行通常是一个特殊的注释,以#!(称为 Shebang)开头,后面跟着解释这个脚本的 Shell 程序的路径。例如,如果是 Bash 脚本,第一行通常是#!/bin/bash。这一行告诉系统使用哪个 Shell 来执行这个脚本。
(2)命令部分
这是脚本的核心部分,包含了要执行的实际命令
(3)注释部分
以#开头的行是注释。注释用于对脚本中的代码进行解释说明,方便自己和其他用户理解脚本的功能。
二、创建shell脚本
1、常见的脚本解释器
(1)#!/bin/bash
#!/bin/bash是 Shebang 行(也称为 Hash - bang 行)的一种常见形式。这一行告诉操作系统,该脚本应该使用 Bash(Bourne - Again Shell)来解释执行。Bash 是大多数 Linux 发行版默认的 Shell,它是一种功能强大的命令行解释器,具有丰富的特性和命令集。
(2)#!/bin/sh
同样是一个 shebang 行,指示操作系统使用/bin/sh路径下的解释器来执行脚本。在许多系统中,/bin/sh可能是指向Dash(Debian Almquist Shell)或者是一个兼容于原始 Bourne Shell(sh)标准的较简单的 Shell 解释器。
(3)#!/bin/dash
这是让操作系统使用Dash(Debian Almquist Shell)作为脚本解释器的 shebang 行。Dash是一个轻量级的 Shell,它的设计目的是快速执行脚本并节省系统资源。
2、创建shell脚本
(1)vim a.sh
#!/bin/bash
#本行是注释,输出语句Caigen Cybersecurity!
echo Caigen Cybersecurity!
(2)执行脚本
./a.sh
如果发现无法执行脚本,别慌,只是没有文件执行权限
查看并赋予权限
sh b.sh
#bash b.sh、dash b.sh 或 source b.sh都可以
小结:
- ./a.sh****无法执行的可能原因:当你尝试使用./a.sh执行脚本时,系统会检查该文件是否具有执行权限。文件权限分为读(r)、写(w)和执行(x)权限。如果a.sh文件没有执行权限,系统就不允许直接通过./这种方式来执行它。
- bash b.sh****可以执行的原因:当你使用bash b.sh来执行脚本时,实际上是直接告诉bash解释器去读取并执行b.sh这个文件的内容,而不依赖于文件本身的执行权限。这种方式就像是把脚本内容作为参数传递给bash解释器,只要你对文件有读权限(通常情况下,文件权限至少会有读权限,比如-rw - r–r–),bash就能处理脚本中的命令。
三、变量的使用
1、声明和打印变量
#定义一个name变量,并赋值caigen
name=“caigen”
#echo 打印变量
echo $name
2、查询已定义的变量
查询全部变量
set
查询某个变量
set | grep 变量名
set | grep name
3、删除变量
unset 变量名
unset name