Linux Shell快速學習小總結 TBD

2021-06-17 17:38:33 字數 1803 閱讀 6563

shell版本

sh:bourne shell,最初unix的shell。

csh:c shell。

ksh:korn shell。

bash:bourne again shell。 linux預設shell。

tcsh:c shell的擴充套件。

pdksh:ksh不免費,這個免費。

echo -n "date and time is:"            -n不換行。

echo "your name is: `whoami` "         ``會將其中的字串解釋成命令。

shell指令碼執行方式

bash< ***.sh:從***.sh中讀取命令列並執行。

bash ***.sh:可帶引數。

chmod a+x ***.sh:使***.sh對所有使用者有「執行」許可權。輸入指令碼名可以直接執行。

特殊字元

雙引號:除$美元, `倒引號, \反斜槓之外,其餘都視作普通字元。

單引號:單引號內部的字元都視作普通字元。

倒引號:左上角esc下面的鍵,內部字串被解釋為命令。shell先執行,並以其結果代替整個倒引號部分。

反斜槓:把特殊字元變成普通字元,阻止shell把其後面的字元解釋為特殊字元。

i/o重定向

輸入:《作用是把命令的stdin重定向到指定檔案,從檔案中讀取內容作為輸入。

輸出:>作用是把命令的stdout重定向到檔案,執行的結果寫入到檔案中。執行多個命令到同一檔案,前面命令會被覆蓋。

輸出附加:>>,附加到檔案後面,不會破壞原檔案內容。

即時檔案:<<, 由"<<",一對標記符及其間的若干輸入符組成。允許把shell程式的輸入行定向到乙個命令中。?????

注釋:#開始表示注釋。#!後面表示shell的絕對路徑。#! /bin/csh         #! /bin/bash

命令執行操作符

順序執行:可以執行一條命令,也可以執行多條,以「;」分開,前面執行失敗不影響後面繼續執行。

邏輯與:   命令1&&命令2,命令1成功,繼續命令2。否則不繼續。執行成功返回0,否則非0。

邏輯或:   命令1 || 命令2,執行1,不成功執行2;否則,1成功,則不執行2。

變數變數名區分大小寫。賦給變數的值如果有空格,製表符或換行,用雙引號。同一變數,可以一次存放int,另一次存放string。

通過美元符號訪問,如yourname=$myname;

內部變數

$#(傳給程式的引數個數,不包括本身)

$?(最後一條命令完成的執行結果)

$0*(自己的名字)

$*(傳給程式的所有引數的字串,不包括本身)

環境變數

home:/home/username

logname:使用者的註冊名,由linux自動設定。它是系統與使用者互動的名字。

mail:使用者系統郵箱路徑,/var/spool/mail/username

path:shell從中查詢命令的目錄列表。

ps1:定義了使用者的主提示符是如何構成的。如\u@\h:\w#對應比如wgsupport@firebox:~#。[\u@\h \w]\$對應[ryo@t430-lap documents]$。

pwd:使用者當前工作目錄的路徑。

shell:使用者當前使用的shell,也指出了使用者shell解釋程式放在什麼地方。

term:使用者終端型別。

位置引數

shell指令碼被別人呼叫時可以傳入引數,第乙個$1,第二個$2直到$9。

用set可以設定或重置引數。

當引數大於9時,用shift左移引數。shift移動乙個,shift 4移動4個。

Linux shell程式設計個人學習小總結

本文只是個人在學習shell程式設計的總結,並不是系統的總結。一 在進行變數賦值時,變數名前不需要新增 例如 a 2 a whomai 同時形如上 一般的賦值 整型 字串等 需要加雙引號 通過外部程式賦值需要需要用 命令 二 要注意一些陣列賦值及陣列在for迴圈中使用的情況。發現好像沒有什麼其他需要...

Linux Shell程式設計快速入門

修改檔案的許可權位,使指令碼檔案成為可執行程式 例如指令碼檔案為test.sh 則chmod x test.sh 增加可執行標誌位 test.sh 執行指令碼注意,執行指令碼的時候需要使用.test.sh啟動指令碼而不是test.sh,如果沒有指定目錄的話,對於可執行檔案來說,系統只會在系統path...

linux shell程式快速入門

1.shell的基本型別 表示式型別 使用關鍵字expr申明。宣告格式 var expr a b 坑點 一定要注意空格,某些地方空格省略會造成語法錯誤,還有運算字元的轉義,比如 數字型別 變數等號右邊使用數字宣告。宣告格式 a 10 相關運算子 eq 是否相等,ne 是否不相等,gt 檢測左邊的數是...