1. 程式人生 > 其它 >自帶工具類

自帶工具類

1.什麼是shell

Shell(外殼) 是一個用 C 語言編寫的程式,它是使用者使用 Linux 的橋樑。Shell 既是一種命令語言又是一種程式設計語言

Shell 是指一種應用程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心的服務。

 

2、shell入門

建立(XXXX).sh檔案

vim (XXXX).sh編寫shell程式碼

 

 

 

 

 

 

 

shell進階

變數的定義與使用(重點)

變數,先定義後使用。 

定義形如:class_name="yunwe "

使用形如:echo $class_name

使用變數改寫入門指令碼中的第1個shell指令碼。

 

 

只讀變數(瞭解)

readonly( 變數名)

 

 

定義變數a並且其值為10,隨後設定其為只讀變數,再去嘗試重新賦值

 

 

 

接收使用者輸入(重點)

語法:read  -p  提示資訊  變數名

 

編寫一個指令碼test6.sh,要求執行之後提示使用者輸入檔案的名稱(路徑),然後自動為使用者建立該檔案

 

 

 

刪除變數(瞭解)

語法:unset 變數名path

案例:定義變數b=20,再輸出b的值,隨後刪除b,最後再輸出下b

 

 

2、條件判斷語句

語法1(一個條件):

if condition

then

    command1

    command2

    ...

fi

 

單行寫法(一般在命令列中執行的時候):if [ condition ]; then command; fi

 

 

語法2(兩個條件):

if condition

then

    command1

    command2

    ...

else

    command

fi

 

語法3(多個條件):

if condition1

then

    command1

elif condition2

then

    command2

else

    commandN

fi

 

算數運算子

 

下表列出了常用的算術運算子,假定變數 a 為 10,變數 b 為 20:

運算子

說明

舉例

+

加法

`expr $a + $b` 結果為 30。

-

減法

`expr $a - $b` 結果為 -10。

*

乘法

`expr $a \* $b` 結果為  200。

/

除法

`expr $b / $a` 結果為 2。

%

取餘

`expr $b % $a` 結果為 0。

=

賦值

a=$b 將把變數 b 的值賦給 a。

==

相等。用於比較兩個數字,相同則返回 true(真)。

[ $a == $b ] 返回 false(假)。

!=

不相等。用於比較兩個數字,不相同則返回 true。

[ $a != $b ] 返回 true。

 

 

關係運算符

關係運算符只支援數字,不支援字串,除非字串的值是數字

下表列出了常用的關係運算符,假定變數 a 為 10,變數 b 為 20:

運算子

說明

舉例

-eq

檢測兩個數是否相等,相等返回 true。

[ $a -eq $b ] 返回 false。

-ne

檢測兩個數是否相等,不相等返回 true。

[ $a -ne $b ] 返回 true。

-gt

檢測左邊的數是否大於右邊的,如果是,則返回 true。

[ $a -gt $b ] 返回 false。

-lt

檢測左邊的數是否小於右邊的,如果是,則返回 true。

[ $a -lt $b ] 返回 true。

-ge

檢測左邊的數是否大於等於右邊的,如果是,則返回 true。

[ $a -ge $b ] 返回 false。

-le

檢測左邊的數是否小於等於右邊的,如果是,則返回 true。

[ $a -le $b ] 返回 true。

 

 

 

邏輯運算子

下表列出了常用的布林運算子,假定變數 a 為 10,變數 b 為 20:

運算子

說明

舉例

!

非運算,表示式為 true 則返回 false,否則返回 true。

[ ! false ] 返回 true。

-o

或(或者)運算,有一個表示式為 true 則返回 true

[ $a -lt 20 -o $b -gt 100 ] 返回 true。

-a

與(並且)運算,兩個表示式都為 true 才返回 true。

[ $a -lt 20 -a $b -gt 100 ] 返回 false。

 

或運算:一個為真即為真,全部為假才是假

與運算:一個為假即為假,全部為真才是真

 

 

 

字串運算子

下表列出了常用的字串運算子,假定變數 a 為 "abc",變數 b 為 "efg":

運算子

說明

舉例

=

檢測兩個字串是否相等,相等返回 true。

[ $a = $b ] 返回 false。

!=

檢測兩個字串是否相等,不相等返回 true。

[ $a != $b ] 返回 true。

-z

檢測字串長度是否為0,為0返回 true。

[ -z $a ] 返回 false。

-n

檢測字串長度是否為0,不為0返回 true。

[ -n $a ] 返回 true。

str

檢測字串是否為空,不為空返回 true。

[ $a ] 返回 true。

 

 

 

 

 

 

檔案測試運算子(重點)

檔案測試運算子用於檢測 Unix/Linux 檔案的各種屬性。

屬性檢測描述如下:

操作符

說明

舉例

-b file

檢測檔案是否是塊裝置檔案,如果是,則返回 true。

[ -b $file ] 返回 false。

-c file

檢測檔案是否是字元裝置檔案,如果是,則返回 true。

[ -c $file ] 返回 false。

-d file

檢測檔案是否是目錄,如果是,則返回 true

[ -d $file ] 返回 false。

-f file

檢測檔案是否是普通檔案(既不是目錄,也不是裝置檔案),如果是,則返回 true

[ -f $file ] 返回 true。

-g file

檢測檔案是否設定了 SGID 位,如果是,則返回 true。

[ -g $file ] 返回 false。

-k file

檢測檔案是否設定了粘著位(Sticky Bit),如果是,則返回 true。

[ -k $file ] 返回 false。

-p file

檢測檔案是否是有名管道,如果是,則返回 true。

[ -p $file ] 返回 false。

-u file

檢測檔案是否設定了 SUID 位,如果是,則返回 true。

[ -u $file ] 返回 false。

-r file

檢測檔案是否可讀,如果是,則返回 true

[ -r $file ] 返回 true。

-w file

檢測檔案是否可寫,如果是,則返回 true

[ -w $file ] 返回 true。

-x file

檢測檔案是否可執行,如果是,則返回 true

[ -x $file ] 返回 true。

-s file

檢測檔案是否為空(檔案大小是否大於0),不為空返回 true

[ -s $file ] 返回 true。

-e file

檢測檔案(包括目錄)是否存在,如果是,則返回 true

[ -e $file ] 返回 true。

 

shell指令碼附帶選項(重點)

問題描述:在linux shell中如何處理tail -10 access.log這樣的命令列選項?

步驟:

         呼叫tail指令

         系統把後續選項傳遞給tail

         Tail先去開啟指定的檔案

         取出最後10行