操作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命令進行權限處理

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,438評論 0 5
  • 第 2 章 SHELL 基礎知識2.1 shell腳本我們在上面簡單介紹了一下什么是shell腳本,現在我們來進一...
    LiWei_9e4b閱讀 1,591評論 0 0
  • 一、Python簡介和環境搭建以及pip的安裝 4課時實驗課主要內容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,808評論 0 10
  • 運行操作 CMD命令:開始->運行->鍵入cmd或command(在命令行里可以看到系統版本、文件系統版本) CM...
    小明yz閱讀 2,785評論 0 8
  • 昨天說了判斷市場底部的七個依據,還是借鑒股市的特征,今天說說幣市底部的七個特征。 1市場人氣特征:在形成最后一跌前...
    徽純正閱讀 221評論 0 0