第10節(jié)運(yùn)維shell腳本1課件編程_第1頁
第10節(jié)運(yùn)維shell腳本1課件編程_第2頁
第10節(jié)運(yùn)維shell腳本1課件編程_第3頁
第10節(jié)運(yùn)維shell腳本1課件編程_第4頁
第10節(jié)運(yùn)維shell腳本1課件編程_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

目第1shell基 數(shù)組操 1.1運(yùn)維&shell[了解 linux常見符 運(yùn)維基 目第1shell基 數(shù)組操 1.1運(yùn)維&shell[了解 linux常見符 運(yùn)維基 shell簡 重定 管道shell腳本[記憶 其他符 創(chuàng)建腳 簡單流程控 1.2.2腳本使 變量[應(yīng)用 if語 case語 循環(huán)語 循環(huán)退 什么是變 本地變 全局變 查看&刪 內(nèi)置變 復(fù)雜流程控 函數(shù)基礎(chǔ)知 2.4.2函數(shù)實(shí) 常見命令詳 第2核心知識[應(yīng)用 表達(dá) grep命令詳 sed命令詳 awk命令詳 find命令詳 測試語 條件表達(dá) 計(jì)算表達(dá) 21shell基運(yùn)維&shell[了解學(xué)習(xí)1shell基運(yùn)維&shell[了解學(xué)習(xí)目標(biāo)了知1.1.1運(yùn)維基這一節(jié),我們從運(yùn)維定位、工作范圍、運(yùn)維三個方面來學(xué)習(xí)運(yùn)維定運(yùn)維是什么,其實(shí)就是公司的一種技術(shù)崗工作范以美多商城、黑馬頭條項(xiàng)目為例平臺:大幅度提高工作效1監(jiān)控:實(shí)時查看項(xiàng)目運(yùn)行狀態(tài)指監(jiān)控:實(shí)時查看項(xiàng)目運(yùn)行狀態(tài)指優(yōu)化:保證用戶訪問網(wǎng)站體驗(yàn)很考核:權(quán)責(zé)分配,保證利運(yùn)維工作中常見的腳本有哪些呢注意shell腳本就是shell編程的一種具體實(shí)1.1.2shell簡這一節(jié),我們從shell定位、shell分類、使用方式三個方面來學(xué)習(xí)shell定既然我們是來學(xué)shell,首先第一個問題:shell是什么shell的定在計(jì)算機(jī)科學(xué)中,Shell就是一個命令解釋器hllelshell位置一句話,shell就是在操作系統(tǒng)和應(yīng)用程序之間的一個命令翻譯工具shell的分shell分基本上shell分兩大類:圖形界面shell和命令行圖形界面windows系統(tǒng)命令提示字sh/csh/ksh/bash/我們常說的shell是命令行式的shell,在工作中常用的是linux系統(tǒng)下的bash2查看系統(tǒng)shell信查看當(dāng)前系統(tǒng)的shell類查看系統(tǒng)shell信查看當(dāng)前系統(tǒng)的shell類echo查看當(dāng)前系統(tǒng)環(huán)境支持的[root@linux-node1~]#cat使用方式【記住,在hel,按ner后,,hel.重點(diǎn):逐行輸入命令、逐行進(jìn)行確認(rèn)執(zhí)腳本方式就是說我們把手工執(zhí)行的命令a,寫到一個腳本文件b中,然后通過執(zhí)行腳本b,達(dá)到執(zhí)行命令a的效果nxhll。eliuxshell腳本示現(xiàn)在我們來使用腳本的方式來執(zhí)行以這是shell腳echoecho腳本執(zhí)行效1.2shell腳本[記憶學(xué)習(xí)目標(biāo)shell腳本的標(biāo)準(zhǔn)執(zhí)行方掌31.2.1創(chuàng)建腳這一節(jié),我們從創(chuàng)建方式、腳本1.2.1創(chuàng)建腳這一節(jié),我們從創(chuàng)建方式、腳本命名、腳本內(nèi)容、注四個方面來學(xué)習(xí)創(chuàng)建方創(chuàng)建腳本的常見編輯器是腳本命shell腳本的命名簡單來說就是要有意義,方便我們通過腳本名,來知道這個文件是干什么用的腳本內(nèi)各種可以執(zhí)行的注釋內(nèi)單行注釋除了首行的#不是注釋外,其他所有行內(nèi)容,只要首個字符是#,那么就表示該行是注多行注釋多行注釋有兩種方法::<<字1.2.2腳本使執(zhí)行方Shell腳本的執(zhí)行通??梢圆捎靡韵聨追N執(zhí)行說明3、使用source或者.點(diǎn)號,加載shell腳本文件內(nèi)容,使shell腳本內(nèi)容環(huán)境和當(dāng)前用戶環(huán)境一致使用4bash/path/to/script-name (當(dāng)前路徑下執(zhí)行腳本 echo'1':<<!echoechoecho!echoecho'1'echo echo腳本開發(fā)規(guī)1、腳本命名要有意義,文件后腳本開發(fā)規(guī)1、腳本命名要有意義,文件后綴是盡量用英文注釋,防止本機(jī)或切換系統(tǒng)環(huán)境后中文亂碼的困常見的注釋信息:腳本名稱、腳本功能描述、腳本版本、腳本作者、聯(lián)系方式4、腳本文件常見執(zhí)行方式5、腳本內(nèi)容執(zhí)行:從上到下,依6、代碼書寫優(yōu)秀習(xí)慣2)[]中括號兩端要有空格,書寫時即可留出空格3)流程控制語句一次性書寫完,再添加7、通過縮進(jìn)讓代碼易讀;(即該有空格的地方就要有空格],然后再退格書寫內(nèi)容1.3變量[應(yīng)用學(xué)習(xí)目標(biāo)的定義和目本地變量的查看格式和使用說掌1.3.1什么是變這一節(jié),我們從變量定位、變量分類兩個方面來學(xué)習(xí)變量定變量包括兩部分:變量名=變量變量變量不變變化我們一般所說的變量指的是變量分1.3.2本地變這一節(jié),我們從本地變量、普通變量、命令變量三個方面來學(xué)習(xí)本地變本地變量就是:在當(dāng)前系統(tǒng)的某個環(huán)境下才能生效的變量,作用范圍本地變量包含兩種:普通變量和命令變5普通變普通變量的定義方式有如下三種,接下來我們就分別普通變普通變量的定義方式有如下三種,接下來我們就分別說一下這三種方 變量值必須是一個整體,中間沒有特殊字方式二重點(diǎn)變量名='變量值重點(diǎn)如果變量值范圍內(nèi),有可以解析的變量A,那么首先解析變量A,將A的結(jié)果和其他內(nèi)容組合成一個整體賦值給變量習(xí)慣數(shù)字不加引號,其他默認(rèn)加雙引命令變命令變量有兩種定義方式,接下來我們就來介紹一下這定義方式一:變量名=`命令定義方式二:變量名=$(命令執(zhí)行流程1、執(zhí)行`或者$()范圍內(nèi)的2、將命令執(zhí)行后的結(jié)果,賦值給新的變量名1.3.3全局變這一節(jié),我們從全局變量、查看命令、定義方式三個方面來學(xué)習(xí)全局變?nèi)肿兞烤褪牵涸诋?dāng)前系統(tǒng)的所有環(huán)境下都能生效的變查看命可以通過命令查看環(huán)境變只顯示全局定義方方法一變量=export變量export變量=61.3.4查看&刪方式一場景$變量"$變量名方式二1.3.4查看&刪方式一場景$變量"$變量名方式二場景方式三場景${變量名echo"dsadsafsa使用頻率較"${變量名${變量名f方式四場景標(biāo)準(zhǔn)使用方取消變unset1.3.5內(nèi)置變這一節(jié),我們內(nèi)置變量、腳本文件、精確獲取、默認(rèn)四個方面來學(xué)習(xí)內(nèi)置變腳本文符意獲取當(dāng)前執(zhí)行的shell腳本文el1..9n0n91}獲取當(dāng)前shell命令行中參數(shù)的總個獲取執(zhí)行上一個指令的返回值(0為成功,非0為失敗重點(diǎn)內(nèi)置變量演示效果獲取腳本的名示例獲取當(dāng)前腳本傳入的第n個位置的參示例7echo"我腳本的名稱是:$0"獲取當(dāng)前腳本傳入?yún)?shù)的數(shù)示例#獲取當(dāng)前腳本傳入獲取當(dāng)前腳本傳入?yún)?shù)的數(shù)示例#獲取當(dāng)前腳本傳入的參數(shù)數(shù)獲取文件執(zhí)行或者命令執(zhí)行的返回狀態(tài)示例#bashbash:nihao:Nosuchfileordirectory#echo$?#file1.shnum.shtest.shweizhi.sh#echo$?0精確截格式:${變量名:起始位置:截取長度示例${file:0-從倒數(shù)第6個字符開始,截取之后的3默認(rèn)場景一格式${變量名:-默認(rèn)值套餐示例如果我輸入的參數(shù)為空,那么輸出內(nèi)容是"您選擇的套餐是如果我輸入的參數(shù)為n,那么輸出內(nèi)容是"您選擇的套餐是:套餐場景二無論變量a是否有內(nèi)容,都輸出默認(rèn)8#獲取指定位置的參echo第一個位置的參數(shù)是$1"echo第二個位置的參數(shù)是$2"echo第三個位置的參數(shù)是格式${變量名+默認(rèn)值場景示例不管我說國家法定結(jié)婚年格式${變量名+默認(rèn)值場景示例不管我說國家法定結(jié)婚年齡多少歲,都輸歲國家法定結(jié)婚年齡(男性)2心知識[應(yīng)用學(xué)習(xí)目標(biāo)的兩種測試11種表達(dá)式的特點(diǎn)和使用場應(yīng)應(yīng)2.1.1測試語應(yīng)用場Shell環(huán)境根據(jù)命令執(zhí)行后的返回狀態(tài)值($?)來判斷是否執(zhí)行成功,當(dāng)返回值為0,表示成功,值為其他時,表示失。使用專門的測試工具---test命令,可以對特定條件進(jìn)行測試,并根據(jù)返回值來判斷條件是否成立(返回值0為成立語句格B:[條件表達(dá)式]以上兩種方法的作用完全一樣,后者為常但后者需要注意方括號[、]與條件表達(dá)式之間至少有一個空格test跟[]的意思一樣操作注意[]兩側(cè)為什么要有空可以看到兩側(cè)沒有空格,就會報(bào)錯,為什么呢?因?yàn)槟悴缓弦?guī)2.1.2條件表達(dá)這一節(jié),我們邏輯表達(dá)式、文件表達(dá)式、數(shù)值表達(dá)式、字符串表達(dá)四個方面來學(xué)習(xí)邏輯表9[-x:commandnotecho國家法定結(jié)婚年齡(男性)${a+22歲邏輯表達(dá)式一般用于判斷多個條件之間的依賴關(guān)系常見的邏輯表&&和命令1&&邏輯表達(dá)式一般用于判斷多個條件之間的依賴關(guān)系常見的邏輯表&&和命令1&&命令如果命令1執(zhí)行失敗,那么命令2也不執(zhí)示例夫唱婦-命令1||命令示例對著-文件表-判斷輸入內(nèi)容是否是一個文示例-判斷輸入內(nèi)容是否是一個目示例-判斷輸入內(nèi)容是否可執(zhí)示例數(shù)值操xage.sh||echo文件沒有執(zhí)行權(quán)限xtest.sh&&echo文件有執(zhí)行權(quán)限dweizhi.sddh||echo不是一個目錄#mkdirdnihao&&echo是一個目錄fweizhi.sh&&echo是一個文件fweizhi.sddh||echo不是一個文件12||echo條件不成立11||echo條件不成立"11&&echo條件成立12&&echo條件成立"----小不等字符串str1 ----小不等字符串str1 str1和str2字符串內(nèi)容一str1 str1和str2字符串內(nèi)容不一致,!表示相反的意實(shí)判斷字符是否2.1.3計(jì)算表達(dá)這一節(jié),我們從使用場景、計(jì)算格式、計(jì)算實(shí)踐三個方面來學(xué)習(xí)使用場計(jì)算表達(dá)式,簡單來說就是對具體的內(nèi)容進(jìn)行算數(shù)計(jì)計(jì)算格方式一方式二$let計(jì)算表達(dá)注意$(())中只能用+-*/和()運(yùn)算符,并且只能做整數(shù)運(yùn)計(jì)算實(shí)$(())演示效格式:a=$((變量名計(jì)算示let演示效格式變量名a=變量名let示root@ubuntu:~#i=1root@ubuntu:~#echo$?root@ubuntu:~#echo$?12.1.4數(shù)組操這一節(jié),我們數(shù)組簡介、定義格式、信息查看2.1.4數(shù)組操這一節(jié),我們數(shù)組簡介、定義格式、信息查看、增刪四個方面來學(xué)習(xí)數(shù)組簡定義格在Shell中,用括號來表示數(shù)組,數(shù)組元素用“空格”符號分割開。定義數(shù)組的語array_name=(value1...注意單行定多行定單元素定注意信息查基于索引找內(nèi)讀取數(shù)組元素值可以根據(jù)元素的下標(biāo)值來獲取,語法格注意獲取所有的元素內(nèi)容,下標(biāo)位置寫"@"或者代碼示例基于內(nèi)容找索在找內(nèi)容的時候,有時候不知道數(shù)組的索引都有哪些,我們可以基于如下方式來獲取,數(shù)組的所echoecho)8獲取所有的元素內(nèi)容,下標(biāo)位置寫"@"或者代獲取所有的元素內(nèi)容,下標(biāo)位置寫"@"或者代碼示獲取長獲取數(shù)組長度的方法與獲取字符串長度的方法相同,格注意獲取所有的元素個數(shù),下標(biāo)位置寫"@"或者代碼示例刪改獲取元元素部分內(nèi)容的獲取類似于字符串截取,格式如下代碼示更改元${array_name[index]/原內(nèi)容/新內(nèi)容注意默認(rèn)是演示效果,原數(shù)組未被修改,如果真要更改需要結(jié)合單元素內(nèi)容替代碼示刪除數(shù)將elst刪除整個數(shù)代碼示unsetunsetechoechoechoechoechoechoecholinux常見符學(xué)習(xí)目標(biāo)掌握管道符的特點(diǎn)和使用掌信息符號的作用和使用場linux常見符學(xué)習(xí)目標(biāo)掌握管道符的特點(diǎn)和使用掌信息符號的作用和使用場2.2.1重定重定在shell>作用查看文件內(nèi)使用重定向符號給文件中增加內(nèi)再次查看文件內(nèi)作用查看文件內(nèi)使用重定向符號給文件中增加內(nèi)再次查看文件內(nèi)2.2.2管道這一節(jié),我們定義、使用格式、命令演三個方面來學(xué)習(xí)定義|這個就是管道符,傳遞信息使用使用格命令1|命令2管道符左側(cè)命令執(zhí)行后的結(jié)果,傳遞給管道符右側(cè)的命令2使命令1|命令2管道符左側(cè)命令執(zhí)行后的結(jié)果,傳遞給管道符右側(cè)的命令2使命令演查看當(dāng)前系統(tǒng)中的全局變量2.2.3其他符這一節(jié),我們后臺展示、信息符號、特殊設(shè)三個方面來學(xué)習(xí)后臺展定義命令演示表示正確輸出的表示錯誤輸出的標(biāo)準(zhǔn)正確輸出示標(biāo)準(zhǔn)錯誤輸出示綜合演練示腳本內(nèi)腳本執(zhí)行效12admin-1@ubuntu:~#bashceshi.sh1>>ceshi-ok2>>ceshi-erradmin-1@ubuntu:~#catceshi-okcatnihao.txt1>>[1]4198 41980.00.0 808 21:580:00sleep 42000.00.015964944pts/17 21:580:00grep--color=autoroot@centos~]#env|grep全部信息演特殊設(shè)是linux下的一個設(shè)備文這個文件類似于一個垃圾桶,特點(diǎn)是:容2.3全部信息演特殊設(shè)是linux下的一個設(shè)備文這個文件類似于一個垃圾桶,特點(diǎn)是:容2.3簡單流程控學(xué)習(xí)目3種if語句和case的格雙分支if語句和case語句的應(yīng)3種循環(huán)語句的格式和應(yīng)4種循環(huán)退出語掌2.3.1if語這一節(jié),我們 單分支、雙分支、多分支、多分支應(yīng)四個方面來學(xué)習(xí)單分語法格條件場景單一條件,只有一個輸單分支if語句示雙分語法格場景if]if語句的使用場景echoadmin-1@ubuntu:~#bashceshi.sh>>ceshi-all2>&1admin-1@ubuntu:~#catceshi-all一個條件,兩種雙分支if語句示一個條件,兩種雙分支if語句示多分語法格if]1elif2場景n個條件,n+1個結(jié)多分支if語句示if語句的使用場景echo您的性別"elif"$1""nv"echo您的性別"echo"您的性別,我不知道多分支應(yīng)需求要求腳本執(zhí)行需要有參數(shù),通過傳入?yún)?shù)來實(shí)現(xiàn)不同的功能*執(zhí)行效服務(wù)啟動中服務(wù)關(guān)閉中服務(wù)重啟中X.sh使用方X.sh]if語句的使用場景腳本內(nèi)這一節(jié),我們從語句格式、語句腳本內(nèi)這一節(jié),我們從語句格式、語句示兩個方面來學(xué)習(xí)語句格case指令注意選擇項(xiàng)后面都有)每個選擇的執(zhí)行語句結(jié)尾都有兩個分號語句示要求腳本執(zhí)行需要有參數(shù),通過傳入?yún)?shù)來實(shí)現(xiàn)不同的功能*執(zhí)行效服務(wù)啟動中服務(wù)關(guān)閉中服務(wù)重啟中X.shX.sh]腳本內(nèi)容#catecho"服務(wù)關(guān)閉中..."elif"$1"restartecho"$0$0start|stop|restart2.3.3循環(huán)語這一節(jié),我們從for語句、2.3.3循環(huán)語這一節(jié),我們從for語句、while語句、until語句三個方面來學(xué)習(xí)語法格語法格場景遍歷列注意執(zhí)行次數(shù)和list列表中常數(shù)或字符串的個數(shù)相同,當(dāng)循環(huán)的數(shù)量足夠了,就自動示例:遍歷文while語語法格#for語句的使用示例echoforincase"$1"echo服務(wù)啟動中echo服務(wù)關(guān)閉中echo服務(wù)重啟中echo"$0$0start|stop|restart命令、]]、場景只要條件滿足,就一直循環(huán)語句示腳命令、]]、場景只要條件滿足,就一直循環(huán)語句示腳本內(nèi)until語語法格命令、]]、場景只要條件不滿足,就一直循環(huán)下until語句示腳本內(nèi)2.3.4循環(huán)退這一節(jié),我們退出簡介、break示例、n示例、continue示例、exit示五個方面來學(xué)習(xí)退出簡n、跳出所有循跳出第n個循環(huán)(由內(nèi)向外echoecho跳出當(dāng)前循退出程跳出當(dāng)前循退出程腳本進(jìn)入死循環(huán)直至用戶輸入數(shù)字大于代碼示例while:echon輸入你的數(shù)字,最好1~5:readaNumcase$aNuminecho你的數(shù)字echo你選擇的數(shù)字沒1~5,退出!"效果示例~]#/bin/bash輸入你的數(shù)字,最好在1~5:你的數(shù)字是輸入你的數(shù)字,最好在1~5:你選擇的數(shù)字沒在15,退出break需求在嵌套循環(huán)中命令后面還可以跟一個整數(shù),表示跳出第代碼示例if[$var1-eq2-a$var2-eq0]echo"$var1continue命令與break命令類似,只有一點(diǎn)差別,它不會跳出所有循環(huán),僅僅跳出當(dāng)前循環(huán)代碼示例效果顯示~]#/bin/bash輸入你代碼示例效果顯示~]#/bin/bash輸入你的數(shù)字,最好在1~5:你選擇的數(shù)字沒在1~5,退出輸入你的數(shù)字,最好在1~在嵌套循環(huán)中命令表示退出var12,并且代碼實(shí)等0,就跳出循if[$var1-eq2-a$var2-eq0]echo"$var12.4復(fù)雜流程控學(xué)習(xí)目標(biāo)掌while:echon輸入你的數(shù)字,最好1~5:readaNumcase$aNuminecho你的數(shù)字echo你選擇的數(shù)字沒1~5,退出!"2.4.1函數(shù)基礎(chǔ)知這一節(jié),我們從函數(shù)定義、函數(shù)樣式兩個方面2.4.1函數(shù)基礎(chǔ)知這一節(jié),我們從函數(shù)定義、函數(shù)樣式兩個方面來學(xué)習(xí)函數(shù)定函數(shù)就是將某些命令組合起來實(shí)現(xiàn)某一特殊功能的方式,是腳本編寫中非常重要的函數(shù)樣簡單函數(shù)格式定義函數(shù)傳參函數(shù)格式定義格式函數(shù)名函數(shù)}函數(shù)名函數(shù)體}調(diào)用函數(shù)調(diào)用函數(shù)函數(shù)函數(shù)名腳本傳參腳本傳參函數(shù)調(diào)用(生產(chǎn)用腳本傳參/bin/bash腳本名函數(shù)體調(diào)用參數(shù)函數(shù)體調(diào)用參數(shù)本地變量名函數(shù)名函數(shù)體}函數(shù)名"${本地變量名函數(shù)名函數(shù)體}函數(shù)名注意類似于shell內(nèi)置變量中的2.4.2函數(shù)實(shí)這一節(jié),我們從四種函數(shù)樣式來進(jìn)行相應(yīng)的學(xué)習(xí)。#函數(shù)使用場景一:執(zhí)行頻繁的命echo"wodemingzishi}函數(shù)傳參和函數(shù)體內(nèi)調(diào)用參數(shù)示#函數(shù)的使用場景echo"wodemingzishi}dayin腳本傳數(shù)調(diào)#函數(shù)傳參演腳本傳參,函數(shù)調(diào)用(生產(chǎn)用常見命令詳本節(jié)學(xué)習(xí)目標(biāo)腳本傳參,函數(shù)調(diào)用(生產(chǎn)用常見命令詳本節(jié)學(xué)習(xí)目標(biāo)grep命令的格式和常用參數(shù)意義和使用場景掌握sedawk掌命令的格式和常用參數(shù)意義和使用場2.5.1grep命令詳命令格grep[參數(shù)][關(guān)鍵字]<文件名>注意我們在查看某個文件的內(nèi)容的時候,是需要有<文件名rp()rphlprp參數(shù)詳-c:只輸出匹配行的計(jì)數(shù)-n:顯示匹配行及行號-v:顯示不包含匹配文本的命令實(shí)模板文-輸出匹配到aaa的個-輸出匹配內(nèi)容,同時顯示行root@centos~]#grep-caaa1nihaoaaanihaonihaocanshu="$1"echo"wodemingzishi}dayinecho"wodemignzishi}dayin- 匹配到的內(nèi)容部輸出,輸出不匹配的內(nèi)小技巧精確定位錯誤代- 匹配到的內(nèi)容部輸出,輸出不匹配的內(nèi)小技巧精確定位錯誤代grepnr錯誤關(guān)鍵字2.5.2sed命令詳這一節(jié),我們格式詳解、查看實(shí)踐、替換實(shí)踐、增加實(shí)踐、刪除實(shí)五個方面來學(xué)習(xí)格式詳sed行文件編輯工具。因?yàn)樗庉嬑募且孕袨閱挝坏摹C⒁鈪?shù)為--表示對文件進(jìn)行中使用-i匹配條件'/關(guān)鍵字注意@、#根據(jù)情況使用,如果關(guān)鍵字和隔離符號有沖突,就更換成其他的符號即可注意在匹配到的內(nèi)容下一行增加內(nèi)容替換匹配到的內(nèi)查看指定內(nèi)上面的動作應(yīng)該在參數(shù)為-i的時候使用,不然的話不會有查看實(shí)模板文件內(nèi)查看第2行的內(nèi)root@centos~]#sed-n'3p'nihaosed1sed2sed3nihaosed4sed5nihaosed7sed8root@centos~]#grep-vniNiHaoroot@centos~]#grep-nCCC打印2-3行的內(nèi)替換實(shí)打印2-3行的內(nèi)替換實(shí)命令格式注意:替換命's###'--->'s#原內(nèi)容s#原內(nèi)容#替換后內(nèi)容樣式一sed-i'行號s#原內(nèi)容#替換后內(nèi)容#列號'[文件名樣式二sed-i's#原內(nèi)容#替換后內(nèi)容#g'[文件名常見替換格式替換每行首個匹配內(nèi)容sed-i's#原內(nèi)容#替換后內(nèi)容#'文件示例:替換首每行的第1個sed為root@centos~]#catsed.txtnihaoSEDsed替換全部匹配內(nèi)sed-i's#原內(nèi)容#替換后內(nèi)容#g'文件示例:替換全部sed為root@centos~]#catsed.txt指定行號替換首個匹配內(nèi)容sed-i'行號s#原內(nèi)容#替換后內(nèi)容#'文件示例:替換第2行的首個SED為root@centos~]#sed-i'2s#SED#sed#'nihaoSEDSEDSEDnihaoSEDSED首行指定列號替換匹配內(nèi)容root@centos~]#sed-n'2,3p'nihaosed7sed8nihaosed7sed8sed-i's#原內(nèi)容#替換后內(nèi)容#列號'文件示例:替換每行的第sed-i's#原內(nèi)容#替換后內(nèi)容#列號'文件示例:替換每行的第2個SED為指定行號列號匹配內(nèi)容sed-i'行號s#原內(nèi)容#替換后內(nèi)容#列號'文件示例:替換第3行的第2個SED為root@centos~]#catsed.txtnihaosedSEDnihaoSEDsed增加實(shí)作用如果增加多行,可以在行號位置寫個范圍值,彼此間使用逗號隔開,例文件sed-i'1,3a\增加內(nèi)容演示效果指定行號增加內(nèi)root@centos~]#catsed.txtnihaoSEDsednihaosedSEDzengjia-nihaoSEDsed指定1~3每行都增加內(nèi)root@centos~]#catsed.txtnihaoSEDsedtongshi-nihaosedSEDtongshi-zengjia-tongshi-nihaoSEDsed作用在指定行號的當(dāng)行增加內(nèi)root@centos~]#catsed.txtnihaoSEDsedSEDnihaosedSED格式格式如果增加多行,可以在行號位置寫個范圍值,彼此間使用逗號隔開,例sed-i'1,3i\增加內(nèi)容文件演示效果指定行號增加內(nèi)root@centos~]#catsed.txtinsert-nihaoSEDsed刪除實(shí)作用如果刪除多行,可以在行號位置多寫幾個行號,彼此間使用逗號隔開刪除演刪除第4root@centos~]#catsed.txtnihaoSEDsed刪除多行(3-5行)內(nèi)root@centos~]#catsed.txtinsert-nihaoSEDsed2.5.3awk命令詳這一節(jié),我們從格式詳解、簡單實(shí)踐、進(jìn)階實(shí)踐2.5.3awk命令詳這一節(jié),我們從格式詳解、簡單實(shí)踐、進(jìn)階實(shí)踐三個方面來學(xué)習(xí)格式詳awk參數(shù)動作文件名常見參數(shù)---定義變常見動作動作組顯示內(nèi)顯示當(dāng)前行所有顯示當(dāng)前行的第n列內(nèi)容,如果存在多個$n,它們之間使用逗號(,)隔BEGIN/pattern/{命END結(jié)束代碼塊,主要和信息輸出相}內(nèi)置變當(dāng)前輸入文件的文件名,該變量是只讀 指定顯示行的行輸出格式的列分隔符,缺省是空輸入文件的列分融符,缺省是連續(xù)的空格和簡單實(shí)模板文件內(nèi)print動過濾信過濾包含nihao的內(nèi)打印指定列內(nèi)打印第1列的內(nèi)打印行打印內(nèi)容時候,打印行root@centos~]#awk'{print$1}'awk.txtnihaoawk1awk2awk3nihaoawk4awk5nihaoawk1awk2awk3nihaoawk4awk5注意NR在動作內(nèi)部表示行指定行打印內(nèi)打印第一行第1和第3-F參指定隔離分隔注意NR在動作內(nèi)部表示行指定行打印內(nèi)打印第一行第1和第3-F參指定隔離分隔符,查看內(nèi)-f參編寫腳本,格加載腳本,按格式輸出信注意-f腳本文內(nèi)容文-v參命令行方傳入單傳入多注意-v的使用,需要結(jié)合|符號才可格式化輸設(shè)置顯示分隔符,顯示內(nèi)設(shè)置輸出樣"--}'nihaoawk1awk2nihaoawk4awk5root@centos~]#awk'BEGIN{OFS=":"}{printNR,$0}'awk.txt1:nihaoawkawkawk2:nihaoawkawk1000root@centos~]#echo|awk-vvar=100'{print/ni/{print第NR行內(nèi)容root@centos~]#catlinshi.txtrootroot@centos~]#awk'NR==1{print$1,$3}'nihao進(jìn)階實(shí)if語句示列出當(dāng)前目錄中大于500字節(jié)的信列出進(jìn)階實(shí)if語句示列出當(dāng)前目錄中大于500字節(jié)的信列出當(dāng)前目錄中大于500字節(jié)的普通文件信root@centos~]#lsl|awk'{if(($5>=500&&/^print"\n"文件$9"\n"大小"B"文件:anaconda-大小for語句示按順序輸出所root@centos~]#echo"abcde"|awk-F'''{for(i=1;i<=NF;i++)print$i}'e按輸入的倒序輸出所有內(nèi)[root@lvs-router~]#echo"abcde"|awk-F'''{for(i=NF;i>=1;i--)print$i}'a2.5.4find命令詳這一節(jié),我們從格式詳解、命令實(shí)踐兩個方面來學(xué)習(xí)參數(shù)詳-name按照文件名查找文-user按照文件屬主來查-按照文件所屬的組來查找文件d目l符號鏈接文c字符設(shè)備文root@centos~]#lsl|awkif($5>=500))print"\n"文件$9"\n"大小$5"B"'文件:anaconda-大小結(jié)束查找文件長度為n塊的文件,帶有c時表示文件長度以-perm(/|-)權(quán) 查找文件長度為n塊的文件,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論