概述:外殼實際上是內核和用戶之間的接口。
命令過程
如果您有壹系列常用的linux命令,您可以將它們存儲在壹個文件中。Shenll可以讀取這個文件並執行其中的命令。這樣的文件成為腳本文件。
執行外殼腳本
要創建壹個shell腳本,您應該使用任何編輯器(比如vi)將它寫在壹個文本文件中。
為了使用bash shell執行腳本魔術,它的命令是:bash magic或者。/魔法。
回顯命令:
echo "這是echo命令的壹個例子!"
屏幕將回顯“這是回顯命令的壹個例子!”
#符號
在shell腳本中使用的可以包含註釋條目。
回應“妳好”
#這是壹條評論線。這不會產生任何輸出!
回聲“世界!”
第二行是壹個註釋的例子。它將被shell忽略,並且不會生成任何消息。
變量:
可以通過簡單的分配隨時創建。
語法:
& lt變量名& gt-& lt;值& gt
Linux中的所有變量都被視為字符串。
參考變量:
$符號用於引用變量的內容。
variable1 = ${variable2}
將值讀入變量
當執行壹個shell腳本時,shell還允許用戶直接從鍵盤讀取壹個值到壹個變量,並且還可以使用read命令。
$read fname
局部和全局shell變量
局部變量
當引用壹個shell時,只有創建它的shell才能知道變量的存在。
全局變量
叫做貝殼
在shell中創建的變量對於創建它的shell來說是局部的,除非export命令明確指出它是全局的。
環境變量:
通過更改這些變量的值,用戶可以定制這個環境。
壹些環境變量的例子是home、path、ps1、PS2、日誌名、shlvl和SHELL。
家庭變量
Linux系統中的每個用戶都有壹個名為HOME的相關目錄。
當用戶登錄時,他進入相應的主目錄。
$ echo $HOME
路徑變量
包含由冒號分隔的目錄路徑名列表,以便於搜索可執行程序。
PS1變量
PS1(提示字符串1)變量包含shell提示和$符號。
$ PS1 = "HELLO >
妳好& gt
PS2變量
是設置第二個提示值的環境變量。
日誌名變量
包含用戶的註冊名稱。
$ echo " $ {日誌名} "
SHLVL變量
此變量包含當前作業的shell級別。
外殼變量
環境變量存儲用戶的默認shell。
環境命令
可以用來查看所有被移出的環境變量表及其各自的值!
命令替換
在壹個命令行中使用多個命令的另壹種方法(不是管道)是用命令替換它們。
echo“數據是`日期`”
Expr命令
用於查找的算術表達式。該命令的輸出被發送到標準輸出。
$ expr 4 + 5
9將顯示在屏幕上。
算術擴展:
您可以將表達式括在$ ((…))中,並使用以下命令計算其值;
$((表情))
示例1
編寫壹個shell腳本來計算呼叫中心中未回答問題的數量。該腳本應該接受壹天中報告的查詢總數和回答的查詢數,以便計算未回答的查詢數。
所有未回答問題的總數=所有問題的總數-已回答問題的數量
& lt!-【如果!支持列表]-& gt;※& lt;!-[endif]-& gt;※※※※※※※※※※※※※※※※※※※※※※※
條件執行
測試和[]
計算表達式並返回true(0)或false()。
數值測試:
-情商等於真。
-ne不等於true。
-gt大於真。
-ge大於或等於true。
-這不是真的。
-le小於或等於true
If結構
Linux shell提供了循環和決策的構造,可以在shell腳本中使用。
算術測驗
結合if構造,可以用來檢驗變量的數值。
字符串測試
test命令也可以用於字符串。
=等於真。
!=不平等是真的。
如果長度為零,則-z字符串為真。
如果字符串長度不為零,則為-n。
銼刀試驗
test命令也可以用來檢查文件的狀態。
如果-e文件存在,則為True。
-r文件存在並且可讀,這是真的。
-w文件存在且可寫,所以為真。
如果-x文件存在並且可執行,則為True。
-s文件存在,並且至少有壹個字符為真。
如果-d文件存在並且是壹個目錄,則為True。
如果-f文件存在並且是普通文件,則為True。
如果-c文件存在並且是字符文件,則為True。
-b文件存在並且是特殊文件,這是真的。
-a和-o或!表示“不”
退出命令
用於終止shell腳本的執行並返回到$提示符。
案例5 .。。environmental systems applications center 環境系統應用程序中心
shell腳本中使用的這個結構根據變量的值執行壹組特定的指令。
當變量的值與其中壹個值匹配時,就會執行在該值下編寫的壹組命令。
示例3
重復
While結構
while & lt條件>
做
& lt命令>;
完成的
只有當條件為真時,才能執行do和done之間的命令。
直到結構
until循環構造的求值方式與while循環相反。
until循環將繼續,直到評估的條件為真。
對於結構
對於& lt值列表& gt
做
…
完成的
for循環將值列表作為輸入,並對循環中的每個值執行循環。
Break和大陸司令部
其他語言中的用法
示例4
控制流程的執行
請求後臺處理
用於請求後臺進程的符號是(&;)
$ wc臨時文件& amp
[1] 2082
$ vi新文件
檢查後臺進程
ps(進程狀態)命令為每個當前活動的進程生成壹個行條目。
終止後臺進程
Kill可用,如下所示
殺死278人
查看完成壹個命令需要多長時間。
您可以使用time命令來查看命令開始和完成所需的時間。
時間罰款/etc-name " passwd " 2 & gt。/dev/null /dev/null表示忽略錯誤消息。
管道介紹
豎線(|)是壹個管道字符。
只是shell之前命令的輸出:“|”作為“|”之後命令的輸入發送。
ls–l |更多
將命令和管道結合起來是非常強大的。