一、shell指令碼
作用:介於系統核心與使用者之間,負責解釋命令列;可替代大量重複性輸入,並降低錯誤率。
定義: 將各種linux命令按順序儲存到乙個文字檔案,並新增可執行許可權的檔案
應用場景:重複性操作、批量事務處理、自動化運維、服務執行狀態監控、定時任務執行等
系統支援shell指令碼配置檔案:/etc/shells
使用者的登入shell:登入後預設使用的shell程式,一般為 /bin/bash
不同shell的內部指令、執行環境等會有所區別編寫指令碼**
程式設計規範
第一行宣告指令碼由哪個程式執行
第二行寫入注釋資訊
之後依次寫入命令,每行一條命令
管道操作符號」|」:將左側的命令輸出結果,作為右側命令的處理物件
可結合awk命令進一步過濾
如:grep 「/bin/bash」 /etc/passwd | awk -f: 『』
awk 作用是以「:」為分隔符、輸出第乙個和第七個區域的字串,-f:指定分割符號,未指定為空格或製表符
互動式硬體裝置
標準輸入:從該裝置接收使用者輸入的資料 標準standard 輸入input
標準輸出:通過該裝置向使用者輸出資料 輸出output
標準錯誤:通過該裝置報告執行出錯資訊 錯誤 error
型別 裝置檔案 檔案描述編號 預設裝置
標準輸入 /dev/stdin 0 鍵盤
標準輸出 /dev/stdout 1 顯示器
標準錯誤輸出 /dev/stderr 2 顯示器
二、變數
變數的作用:為靈活管理linux系統提供特定引數,有兩層意思
變數名:使用固定的名稱,由系統預設或使用者定義
變數值:能夠根據使用者設定、系統環境的變化而變化
變數的型別
a) 自定義變數:由使用者自己定義、修改和使用
b) 環境變數:由系統維護,用於設定工作環境
c) 位置變數:通過命令列給指令碼程式傳遞引數
d) 預定義變數:bash中內建的一類變數,不能直接修改
定義乙個新的變數
a) 格式:「變數名=變數值」
變數名以字母或下劃線開頭,區分大小寫,建議全大寫,名稱中不能有特殊字元
b) 檢視變數的值:echo 變數名
,可同時
檢視多個
變數值,
以空格分
開c)引
用變數的
值:變數
名前
加變數名,可同時檢視多個變數值,以空格分開 c) 引用變數的值:變數名前加
變數名,可同
時檢視多
個變數值
,以空格
分開c)
引用變數
的值:變
量名前加
,如果易混淆,將變數名用{}括起來
賦值時使用引號
a) 雙引號:允許通過符號引
用其他變
量值b)
單引號:
禁止引用
其他變數
值,
符號引用其他變數值 b) 單引號:禁止引用其他變數值,
符號引用其他
變數值b
)單引號
:禁止引
用其他變
量值,視為普通字元
c) 反撇號:命令替換,提取命令執行後的輸出結果,$()命令可巢狀處理
read -p 「提示資訊」 變數名 可實現簡單互動
-t 設定等待時間(s)
設定變數的作用範圍,預設為區域性變數,只在當前shell生效
格式1:export 變數名 …
格式2:export 變數名=變數值 …
a) —— 兩種格式可以混合使用
[root@localhost ~]# echo "$product katex parse error: expected 'eof', got '#' at position 38: …ot@localhost ~]#̲ export product…product $version"子程式引用全域性變數
benet 6.0
[root@localhost ~]# exit
整數變數的運算:運算子與變數間至少乙個空格,/bin/bash下只能識別整數
常用運算子
加法運算:+
減法運算: -
乘法運算: *
除法運算: /
求模(取餘)運算: %
環境變數:由系統提前建立,用來設定使用者的工作環境
配置檔案: /etc/profile、~/.bash_profile
常見的環境變數pwd、path、user 、shell、home
新增path變數,使可直接執行檔案【path=」$path:/root」】
位置變數:表示為 $n,n為1~9之間的數字
預定義變數,只能使用
$#:命令列中位置變數的個數
$*:所有位置變數的內容
$?:上一條命令執行後返回的狀態,當返回狀態值為0時表示執行正常,非0值表示執行異常或出錯
$0:當前執行的程序/程式名
三、指令碼應用思路
確定命令操作(設計並執行任務)
編寫shell指令碼(組織任務過程)
設定計畫任務(控制時間,呼叫任務指令碼)
shell指令碼 輸入和輸出重定向
大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img 1jjus...
shell 指令碼命令 重定向
希望想將在終端輸出的資訊儲存到檔案,直接在命令後面加上 filename即可 希望想將在終端輸出的資訊儲存到檔案,直接在命令後面加上 filename即可 shell允許開啟至多10個檔案,檔案描述符從0,1,2,9 在當前路徑下 執行.sh 檔案 test.sh 如果沒有其許可權 ch mod x...
Linux重定向與shell變數
4種執行bash的命令方法 先執行 父 的bash小,後執行的 子 bash大 2 bas 件名 父子bash 3 bash bas 件名 父子bash,bash bash 命令在第二個bash 子 中執行 4 chmod x bas 件名 將變為可執行檔案,將檔案變成可執行檔案 bas 件名 父子...