声明:
本文的学习内容来源于B站up主“泷羽sec”视频“蓝队基础之网络七层杀伤链”的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立即删除相关内容。
本文旨在帮助网络安全爱好者提升自身安全技能,并严格遵守国家法律法规。任何人利用本文中的信息从事违法活动,均与本文作者和“泷羽sec”无关。请读者自觉遵纪守法,合理合法使用相关知识。
/bin/sh和/bin/dash和/bin/bash
1. /bin/sh
-
概要:通常是指系统上的默认 shell。在许多 Linux 系统上,它实际上是指向
bash
或dash
的符号链接。 -
特性
:
- 提供基本的命令行功能。
- 支持 POSIX 标准。
2. /bin/bash
-
概要:Bourne Again SHell 的缩写,是一种广泛使用的 shell。
-
特性
:
- 丰富的功能,例如数组支持、字符串替换、命令补全等。
- 提供了交互式的界面,适合日常使用和脚本编程。
- 默认的 shell 在很多 Linux 发行版中。
3. /bin/dash
-
概要:Debian Almquist Shell,设计为一款轻量级的 POSIX 兼容 shell。
-
特性
:
- 启动速度很快,比
bash
更加高效。 - 主要用于执行脚本,特别是
init
脚本。 - 不支持一些
bash
特有的扩展功能,因此在某些情况下可能会引起不兼容的问题。
- 启动速度很快,比
小结
- 使用
bash
时可以享受丰富的功能和交互体验,但在性能要求较高时可以考虑使用dash
。 /bin/sh
是一个通用的 shell 接口,适合运行符合 POSIX 标准的脚本,但其具体实现依赖于系统配置。
1.sh与./1.sh区别
1.sh
- 当你输入
1.sh
命令时,系统会在当前环境的 PATH 中查找名为1.sh
的可执行文件。 - 如果
1.sh
不在 PATH 中或者没有设置为可执行,将出现 “command not found” 或类似的错误。
./1.sh
- 使用
./1.sh
命令时,你明确地告诉系统在当前工作目录中查找脚本1.sh
。 - 这种写法通常用于运行不在系统 PATH 中的脚本。
- 为了成功执行此命令,
1.sh
文件需要具有可执行权限(即通过chmod
命令设置权限)。
设置可执行权限
如果你想使用 ./1.sh
执行脚本,则可能需要先为该文件设置可执行权限,使用以下命令:
chmod +x 1.sh
sh与source区别
sh和source是执行脚本的命令,但是source在执行命令是会进行颜色的标记,更加醒目
sh
-
用法:
sh script.sh
-
功能
- 用于启动一个新的 shell 实例,并在这个新实例中执行指定的脚本。
- 当前 shell 的环境变量和状态不会因为脚本的执行而改变,因为它是在一个新的子 shell 中运行的。
-
示例
-
sh my_script.sh
source
- 用法:
source script.sh
或. script.sh
- 功能
- 在当前 shell 环境中执行指定的脚本。与
sh
不同,它不会创建新的子 shell。 - 当前 shell 的环境变量和状态会受到脚本的影响,因此任何在脚本中设置的变量或修改过的环境都会影响到调用脚本后的当前 shell。
- 在当前 shell 环境中执行指定的脚本。与
- 示例
source my_script.sh
简单变量创建
name="xiaoyu"
echo $name
age="18"
echo $age
echo my name is $name, my age is $age
其中单引号和双引号区别
单引号:单引号中作字符串使用
双引号:双引号中作正常显示,有变量的替换变量
变量连接符
变量之间最好不要有空格,如果有空格,使用下划线替换(例如:long_yu=“xiaoyu”)
变量的隔断可以使用双引号或花括号或括号
- “”
- {}
- ()
变量查看变量命令-set
查找指定变量
set | grep name
删除指定变量
unset name
总结:
涉及知识点:linux中的脚本编写,脚本执行方式,命令提权,变量的定义和拼接
清风与诸君共勉,共创辉煌篇章