作者:lovehacker
1.UNIX Shell:
命令解释程序Shell处在内核(Kernel)与外层软件之间,具有非常重要的地位及作用,Shell的作用是逐条的解释用户输入的命令,并给出回答及提示,它用于协调用户及系统的一致性,在用户及系统中进行交互。
当用户进入系统,就开始和Shell命令解释程序的主控程序进行通信,每引用一次解释程序就调用一个Shell,读入并执行用户键入的指令。Shell还包括一些后台处理、输入输出改向、管道、过滤程序和文件名生成等功能。
Shell中提供了与程序设计语言C、Java等类似的控制结构,可以方便的数据和文件执行一组命令或根据执行的条件而选择不同的命令来执行。
1#Shell变量赋值:
Shell的变量可以是数值也可以是字符串:
num=1
str="hello world"
当你要使用这些变量的时候需要在变量前加上"$"符号,下边我们来输出变量num:
echo $num
将会在屏幕上输出"1"
2#与用户交互:
Shell程序允许和用户进行交互,也就是可以接收用户键盘的输入,我用一个简单的Java程序例子和Shell的接受用户输入做一个比较:
-----------Java Input-------------
import java.io.*;
class UserName{
public static void main(String args[]){
DataInputStream DIS=null;
String str="";
System.out.println("Whats your name?");
try{
DIS=new DataInputStream(System.in);
try{
str=DIS.readLine();
System.out.println("Hello "+str);
}catch(Exception e){
System.out.println(e);
System.exit(1);
}
}catch(IOException e){
System.out.println(e);
System.exit(1);
}
}
}
//程序的运行结果:
程序输出:"Whats your name?"
等待用户输入:lovehacker[enter]
程序输出:Hello lovehacker
程序结束
--------------cut here----------------
---------Input.sh---------------------
#!/bin/sh
echo Whats your name?
read yourname
echo Hello $yourname
----------cut here--------------------
多么简单?
3#case结构:
Shell的case结构有几个重点需要注意:
1.case语句开始的表示方法是:case 变量 in
2.每一个开关需要使用";;"来结束:k) killall -HUP httpd
3.需要用esac来结束case语句。
---------AuthHacker.sh----------------
#!/bin/sh
#程序将严正用户名,如果是lovehacker输出欢迎词并输出/etc/passwd,如果不是输出who are you?并退出
echo "Please Input your name"
echo "name":
read name
case $name in
lovehacker) echo "Welcome lovehacker";
more /etc/passwd;;
*) echo "who are you?";
exit;;
esac
-------------cut here-----------------
哎,我讲的是入侵教学呀,怎么快被我搞成了编程教学了,呵呵!耐心的等待,一会儿就会进入正题的,我只是希望你多学点东西而已:)
4#for循环:
在Shell中使用for循环可以按指定的次数执行一组指令,它的基本格式如下:
for var in word1 word2 word3 wordn
do
command
command
...
done
do和done中的命令为循环体,执行它们的次数由关键字"in"后边的单词来决定的。
看一个比较简单的列子
--------------for.sh-------------------
for name in lovehacker bigshrimp jonak jack shellbash ...
do
echo $name
echo $name >>cnsl.txt
done
---------------cut here----------------
好啦,好啦!估计你们也看烦了,那就结束这章吧,编程需要自己多动手,好在Shell编程很简单,你可以多找些好的例子看看,以后可以写自己的Exploits了。下一章我们开始进入正题Hacking Unix System。
如果你对Shell编程有兴趣的话,可以到以下链接,系统的学习一下:
http://xyqdy.533.net/shell.html (shell编程)
http://www.cniti.com/%7Etwoboy/unix/unix_shell/shell1.html (介绍shell编程)