本章會記錄開發過程中用到的shell指令碼命令,會一直更新下去
$$shell本身的pid(processid)
$!shell最後執行的後台process的pid
$?最後執行的命令的結束**(返回值)
$-使用set命令設定的flag一覽
∗ 所有
引數列表
。如
"* 所有引數列表。如"
∗所有引數列
表。如"
*「用「」」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。
@ 所有
引數列表
。如
"@ 所有引數列表。如"
@所有引數列
表。如"
@「用「」」括起來的情況、以"$1" 「2"…
"2" … "
2"…"
n」 的形式輸出所有引數。
$#新增到shell的引數個數
$0shell本身的檔名
1 ~1~
1~n新增到shell的各引數值。$1是第1引數、$2是第2引數…。
-eq //equal 等於
-ne //no equal 不等於
-gt //great than 大於
-lt // low than 小於
ge // great and equal 大於等於,注意沒有"-"
le //low and equal 小於等於,注意沒有「-」
示例:
if
[ $# -gt 0
]; then
如果shell的引數大於零個 則…
[`] 學名叫「倒引號」, 如果被「倒引號」括起來, 表示裡面需要執行的是命令。
比如dirname $0
, 就表示需要執行 dirname $0 這個命令
【「」】 , 被雙引號括起來的內容, 裡面 出現 $ (美元號: 表示取變數名) `(倒引號: 表示執行命令) \**義號: 表示轉義), 其餘的才表示字串。
【』『】, 被單引號括起來的內容, 裡面所有的都表示串, 包括上面所說的 三個特殊字元。
在命令列狀態下單純執行 $ cddirname $0
是毫無意義的。因為他返回當前路徑的"."。
這個命令寫在指令碼檔案裡才有作用,他返回這個指令碼檔案放置的目錄,並可以根據這個目錄來定位所要執行程式的相對位置(絕對位置除外)。
$0:當前shell程式的檔名
dirname $0,獲取當前shell程式的路徑
cddirname $0
,進入當前shell程式的目錄
shell指令碼例子集錦(習題總結)
練習一 寫乙個指令碼 1.設定變數file的值為 etc passwd 2.依次向 etc passwd中的每個使用者問好,並且說出對方的id是什麼 f1 hello,root,your uid is0 3.統計乙個有多少個使用者 答案一 bin bash file etc passwd lines...
反彈shell集錦
就是控制端監聽在某tcp udp埠,被控端發起請求到該埠,並將其命令列的輸入輸出轉到控制端。reverse shell與telnet,ssh等標準shell對應,本質上是網路概念的客戶端與服務端的角色反轉。通常用於被控端因防火牆受限 許可權不足 埠被占用等情形 假設我們攻擊了一台機器,開啟了該機器的...
shell指令碼的使用
說明 chmod a x test.sh 使指令碼具有執行許可權 a 20 b 10 1.算術運算子列表 運算子 說明 舉例 加法 expr a b 結果為 30。減法 expr a b 結果為 10。乘法 expr a b 結果為 200。乘法使用不同 除法 expr a b 結果為 2。取餘 e...