**holle world进入shell编程的世界**
用`vim test.sh`新建一份源码如下:
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#上边三行是固定格式,声明使用的shell,声明环境变量
echo -e "holle world!\n"
exit 0
~~~
~~~
sh test.sh
./test.sh
~~~
用以上两种方式都可以执行sh文件。
这就是一个基本的shell脚本实例
* * * * *
**Shell Script默认变量**
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo "The Script name is ==>$0"
echo "Total parameter is ==>$#"
["$#" < 2] && echo "The number of parameter is less than 2. stop here."\
&& exit 0
echo "your whole parameter is ==>'$@'"
echo "The 1st parameter is ==>$1"
echo "The 2st parameter is ==>$2"
~~~
代码说明:
$# 代表后接参数的"个数"
$@ 代表每个参数变量的内容
$0 代表文件名
$1 第一个参数
$2 第二个参数
* * * * *
**条件判断**
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Plase input (Y/N):" yn #获取输入
if [ "$yn" == "Y" ] || [ "$yn" == "y"] ; then
echo "OK,Continue"
elif [ "$yn" == "N" ] || [ "$yn" == "n"] ; then
echo "NO,Stop!"
else
echo "I don't know what you choice is"
fi #用fi结束判断语句
~~~
**函数功能和case分支(类似C的函数和switch语句)**
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#必须在代码头部声明函数
function printit(){
echo "Your choice is $1"
}
echo "This program will print your choice !"
case $1 in
"one")
printit 1
;;
"two")
printit 2
;;
"three")
printit 3
;;
*)
echo "Usage $0 {one|two|three}"
;;
esac
~~~
**不定循环和固定循环**
不定循环:
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
s=0 #累加数
i=0 #计数器
while [ "$i" != "100" ]
do
i=$(($i+1))
s=$(($s+$i))
done
echo "The result of '1+2+3+...100' is ==>$s"
~~~
固定循环:
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Plase input a number, I will count 1+2+..your_input:" num
s=0
for (( i=1; i<=$num; i=i+1))
do
s=$(($s+$i))
done
echo "The result of '1+2+..+$num' is ==> $s"
~~~
* * * * *
**shell script 的追踪与调试**
`sh [-nvx] script.sh`
> -n 不执行script,仅查询语法错误,无错误不回显
> -v 在执行script前,先将script内容输出到屏幕上
> -x 将使用到的script内容显示到屏幕上
和其它的任何编程语言一样,最好的学习方式是多看多写,熟能生巧也。
试着模仿别人的代码修改成自己的样式,多加练习。
- 序言
- kali-Linux基本配置
- 忘记Root密码
- 更新系统和软件包
- Bash命令
- shell编程
- Linux的文件权限配置
- Linux日志文件
- 信息收集
- 被动信息收集
- 绕过CDN找真实IP
- IDS识别
- p0f-OS识别
- nmap端口扫描
- 搜索引擎
- 内网主机发现
- 使用SET社工包钓鱼
- 漏洞发现
- Nessus策略漏扫
- AWVS集成漏扫
- w3af
- 其它漏扫
- 抓包改包
- Burpsite
- Fiddler
- Wireshark
- 漏洞利用
- Hydra爆破
- SQLmap
- Metasploit
- Beef
- antSwrod
- XSS前端工具
- Windows缓冲区溢出
- 后漏洞利用阶段
- 免杀一句话
- 上传工具
- 嗅探
- 本地提取
- 隐藏痕迹