操作Kali需要知道的编程语言(一):Bash编程

bash编程又称bash脚本和shell脚本,是一种有多条线终端命令构成的脚本程序,所有可以直接在终端界面里运行的命令,都可以通过脚本来执行

我们拿就拿ping命令来说,怎么使用ping命令对局域网进行扫描,识别当前网络下活跃主机,下面笔者将通过bash编程来简单的解释

1.在Linux中创建一个.sh程序         命令:touch xxxx.sh    

2.启用编辑模式vim/nano编写脚本


在第一行:#/bin/bash     会让终端界面调用Bash解释器

第二行:if判断语句

它的写法很简单

if [条件表达式]

then

..............

else

..............

相当于其他语言if判断语句,拿java来说,上面的if判断语句就等同于

if(条件表达式){

..................

}else{.

then即相当于大括号

条件表达式[" $1" == " " ]   这句话的意识是说[ "当第一个参数为空时" ]     $1表示传入的第一个参数。==是逻辑判断符

下面的echo "........",用于像终端界面输出提示,当第一个传输参数为空的时候就会显示echo “ ”中的内容,如果不为空就显示else里面的内容

但光有if语句是不行的,即使传递了一个参数,这个程序也不具备相应的处理功能,因为我们要探测某个“c类网段”的全部在线主机,所以需要以循环的方式ping那些末尾为1~254(IPv4地址的最后一个八位组)的全部IP

for循环语句

for x in `seq 1 254`;

等同于java中

for(int x=1;x<=254;x++){

}

当我们传递参数时,例如当我们在终端执行./xxxx.sh 192.168.20时脚本程序会从192.168.20.1开始直到运行到192.168.20.254时结束

(这里说一下,为什么需要以./xxxx.sh来运行程序。应为当前目录没有被环境变量PATH收录所有不能直接以xxx.sh运行)

for x in `seq 1 254`;后面跟do表示执行,do下面就是要执行的内容了

ping -c $1.$x

我们希望程序在for循环语句的每次迭代过程中都ping一个ip地址。根据相关使用说明可知,ping命令的-c选项可以限定它ping某台既定主机的探测次数。因此-c选项设定为1,让程序对每个主机只ping一次

$1.$x:$1表示传入的第一个参数,$x表示for循环使用的循环变量

但是这样ping出来的效果好像不是很理想,因为我们只需要知道在线的主机就行了

所以我们在ping -c $1.$x后面加上grep筛选命令

ping -c $1.$x | grep "64 bytes from"

如此一来就可以只看在线主机的ip地址了

值得注意的是在保存脚本过后,需要使用chmod命令进行权限处理

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,744评论 0 5
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 1,654评论 0 0
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,366评论 0 10
  • 运行操作 CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) CM...
    小明yz阅读 3,013评论 0 8
  • 昨天说了判断市场底部的七个依据,还是借鉴股市的特征,今天说说币市底部的七个特征。 1市场人气特征:在形成最后一跌前...
    徽纯正阅读 277评论 0 0

友情链接更多精彩内容