Linux下shell指令碼的基本知識(1)

2021-08-16 20:52:16 字數 3223 閱讀 1559

一、什麼是shell

shell也是作業系統中的乙個軟體,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面,系統中的命令用shell去解釋shell接受系統回應的輸出並顯示其到螢幕中

shell的型別如下圖

二、什麼是shell指令碼

指令碼是一種解釋型語言

用shell指令碼儲存執行的動作

用指令碼判定命令的執行動作

用指令碼來實現動作的批量執行

*shell指令碼hello world如下圖

第一行為幻術,指定shell的型別

*shell指令碼的執行

1)sh 直接用指定直譯器解釋(什麼都不加預設用shell),不讀幻術,不需要加執行許可權

2)./執行,用指令碼寫入的幻術直譯器解釋,需要加執行許可權

chmod +x

三、shell指令碼的vim編寫

在/etc/vimrc配置檔案下,編寫如下圖

第66行map表示設定快捷鍵為[f9];ms呼叫什麼東西『s表示自動執行

第67行表示自動執行,條件是新檔案以.sh結尾的檔案;自動執行

author__指令碼作者

createtime__指令碼創作時間;.strftime表示捕捉時間

mail__指令碼作者****(隨意寫的)

version__指令碼的版本

description__指令碼的描述

四、指令碼的除錯

1)sh -x 指令碼名稱    適用於所有shell指令碼

2)在指令碼的幻術行末尾加上 -x

顯示出來+後面的表示命令

五、指令碼中常用的命令

1、diff命令

*)diff命令是用來比較兩個檔案或目錄的不同

a表示新增

c表示改變

d表示刪除

《表示第乙個檔案中的內容,>表示第二個檔案的內容

第乙個檔案第二行新增123

第乙個檔案刪除第二行的123

*)diff -u 以合併的方式來顯示檔案內容的不同

這裡可以生成westos.path(補丁檔案)

可以將第乙個檔案新增補丁使兩個檔案一致

2、pacth命令

用於不同檔案打補丁

3、cut命令

用於命令多用與字元擷取

cut -d 指定分隔符

cut -f 指定擷取的列

cut -c 指定擷取的字元位置

例項:執行ifconfig eth0截取出ip

多用與字元排序

sort -n 純數字排序

sort -r  倒序

sort -u 去掉重複數字

sort -o 輸出到指定檔案

sort -t  指定分隔符

sort -k 指定要排序的列

例項:按記憶體使用率排序,並顯示其pid

5、&&和||

&&用來執行條件成立後執行的命令

||用來執行條件不成立後執行的命令

例項:用來顯示ping主機,如果ping通顯示up,不通顯示down

6、顏色的設定

7、test命令

test命令和[ ]等同

還是配合上面顯示ping通否

1)[  -z "$1" ]-z 表示是否是空白

2)-ge 大於等於

例項:如果根目錄的使用率大於百分之八十則給root發郵件提示

3)-eq 等於

-ne 不等於

這兩個是數學的表示方法

-gt 大於

-ge 大於等於

-le 小於等於

-lt 小於

4)可以滿足多個條件

-a and 和

-o or 或者

5)-ef 節點號是否一致

-nt是否比這個檔案新(時間戳)

-ot 是否比這個檔案老

6)file

檢測檔案型別

-e 檢視是否存在這個檔案

-f 是否是普通檔案

-l 是否是鏈結檔案

-s 是否是套接字檔案

-b 是否是塊裝置檔案

-d 是否是目錄

-c 是否是字元裝置

例項:寫乙個指令碼可以顯示檔案時什麼型別

補充tr命令,大小寫的轉換

tr 'a-z' 'a-z' < 選擇匯入的檔案

linux下的shell指令碼

shell也是作業系統中的乙個軟體,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面,系統中的命令用shell去解釋shell接受系統回應的輸出並顯示其到螢幕中 什麼是shell指令碼 指令碼是一種解釋型語言,用shell指令碼儲存執行動作,用指令碼判定命令的執行條件,用指令碼來實...

Linux下Shell指令碼

shell 指令碼 shell script 是一種為 shell 編寫的指令碼程式。從業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 shell程式設計 都是指 shell ...

LINUX下的shell指令碼 shell簡介篇

什麼是shell?1.shell是linux的一外殼,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面 2.當使用者下達指令給作業系統的時候,實際上是把指令告訴shell,經過shell解釋,處理後讓核心做出相應的動作 3.系統的回應和輸出的資訊也由shell處理,然後顯示在使用者...