泷羽(shell)
声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
脚本创建执行与变量使用
三种脚本解释器
sh bash dash
视频中说三种最终调用的都是dash
我所知道sh可以配置为dash或者是bash(不知到是不是)
这个权限的显示从左到右是所有者权限,组权限,其他人权限
通过dash,bash,sh可以执行没有执行权限的.sh文件
source命令也可以进行执行(此命令有颜色区分)
变量定义
name=’xiaoyv’
echo $name
$符号可以串在字符间
双引号解析字符串中的变量,单引号不解析
set查看变量定义
unset name删除变量定义


永久环境变量和字符串显位
windows中在,高级环境变量中找
linux中在$PATH中
ls命令存在别名
通过which命令查看文件位置
可以将我们写好的文件放到环境变量中去
这样的话就可以让.sh文件直接执行了
可以通过export将目录加入到环境变量中去
冒号作为拼接,此时的环境变量是临时变量,通过source进行写入
source /usr/bin/ .bashrc
新开一个窗口进行测试
解析字符串的长度
${井号str} ${str:0:3}(模板渲染问题)
这样



脚本参数传递与数学运算
$* 所有参数作为字符串输出
$1 输出第几个参数
$(一些固定的字符串)代表时间,运行用户,工作目录等
$# 参数总个数
$0 文件名
等
运算时参数之间一定要加空格(重要)
运算时乘法运算要转义,括号要转义
注意,运算符与参数之间也必须要空格



脚本与用户交互与if条件判断
通过read命令模拟用户交互
此处的-t代表限制输入时间
-n代表限制输入长度
-p代表在获取字符之前的提示字段
但是在我的kali机中报错
if判断条件eq,lt,gt,ne,else表示反转


字符串运算符和逻辑运算符
在shell中大小写敏感
=与==,=在[]使用,==在[[]]使用
!=
-z判断是否为空
-n判断是否非空
=~正则匹配表达式
&&都为真则为真
||一个为真则为真
!否定前缀
-eq |
等于(equal) |
|---|---|
-ne |
不等于(not equal) |
-lt |
小于(less than) |
-le |
小于等于(less than or equal) |
-gt |
大于(greater than) |
-ge |
大于等于(greater than or equal) |

for结构循环


while结构循环
1 | #!/bin/bash |
sh与dash,bash语法或许会不同

我们可以看到sh默认使用的是dash进行执行

使用until循环:
1 | #!/bin/sh |

也是可以正常执行的






