Linux常用命令與Shell基本編程_第1頁(yè)
Linux常用命令與Shell基本編程_第2頁(yè)
Linux常用命令與Shell基本編程_第3頁(yè)
Linux常用命令與Shell基本編程_第4頁(yè)
Linux常用命令與Shell基本編程_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Shell 腳本基本編程腳本基本編程無(wú)線產(chǎn)品部 katanazhang 2009-11-09課程目標(biāo)課程目標(biāo)(一)(一)Linux 常用命令常用命令toppsfreevmstatiostatpstreelsoflscdpwdtimeexportdatekill/killallaliasipcsipcrmdfducrontabulimit常用命令常用命令系統(tǒng)系統(tǒng)lncatheadtailmorelessrenamewhichwhereiswhodiffgrepcutsortuniqwcjoinmkdirmvrmcplocatefindhistorysplitchmodchownsutargzip

2、gunzip正則表達(dá)式常用命令常用命令文件文件常用命令常用命令網(wǎng)絡(luò)、其它網(wǎng)絡(luò)、其它sshifconfignetstatsz/rzscppingtcpdumptelnetrsyncexpectcalclearbcman(二)(二)Shell 腳本編程腳本編程什么是什么是Shell Shell 是一個(gè)命令解釋器 Shell 也是一種編程語(yǔ)言 解析語(yǔ)法 執(zhí)行命令什么是什么是shellshell腳本?腳本? shell 是一種特殊的程序,它是用戶與Linux系統(tǒng)內(nèi)核之間的接口 它解釋運(yùn)行由命令行或文件輸入的命令,從而實(shí)現(xiàn)用戶與內(nèi)核間的交互 當(dāng)輸入是文件形式時(shí),這個(gè)含有待執(zhí)行命令的文件就叫做腳本Shel

3、l 腳本的用途?腳本的用途?數(shù)據(jù)統(tǒng)計(jì)分析進(jìn)程實(shí)時(shí)監(jiān)控小程序的替身Shell 腳本的特點(diǎn)?腳本的特點(diǎn)?簡(jiǎn)單、快速不需要編譯靈活高效當(dāng)要反復(fù)使用一個(gè)或連續(xù)一組命令時(shí),可以用shell腳本很方便的將它們?nèi)繄?zhí)行添加和修改邏輯只需要簡(jiǎn)單的保存文件不擔(dān)心性能1. 選擇一種Shell bash (bourne again shell)2. 找一個(gè)編輯器 vi/vim3. 依據(jù)語(yǔ)法編寫(xiě)命令及規(guī)則文件 *.sh4. 增加文件可執(zhí)行權(quán)限或使用 sh 執(zhí)行 ./*.sh sh x *.shShell 腳本的建立腳本的建立注釋 以# #開(kāi)頭的句子(#!除外)表示注釋?zhuān)钡竭@一行結(jié)束 變量 Shell變量都由字符串組

4、成,不需要聲明, 可以在程序的任意位置重新對(duì)變量賦值: 賦值:變量名=值 訪問(wèn):$變量名 或者 $變量名=兩端不能有空格建議注釋Shell 腳本基本語(yǔ)法腳本基本語(yǔ)法系統(tǒng)預(yù)設(shè)變量 $0 當(dāng)前程序的執(zhí)行名字 $n 當(dāng)前程序的第n個(gè)參數(shù)值,n=1.9 $* 當(dāng)前程序的所有參數(shù) $# 當(dāng)前程序的參數(shù)個(gè)數(shù) $ 當(dāng)前程序的PID $! 執(zhí)行上一個(gè)指令的PID $? 執(zhí)行上一個(gè)指令的返回值 Shell 腳本基本語(yǔ)法腳本基本語(yǔ)法數(shù)值運(yùn)算 bash 只提供了整數(shù)運(yùn)算,一般通過(guò)let和expr這兩個(gè)指令來(lái)實(shí)現(xiàn): 例如:let“x=$x+1” 或 x=expr $x+1 非整形運(yùn)算可以通過(guò)bc來(lái)實(shí)現(xiàn) x=echo

5、scale=2;(x-y)/x|bc 在表達(dá)式中支持的操作符及其含義為: + - * / % (加,減,乘,除,取模 ) = = != & | (邏輯操作) = += -= *= /= %= = &= = |= (二元賦值操作)一種簡(jiǎn)寫(xiě): i=$(i+1)Shell 腳本基本語(yǔ)法腳本基本語(yǔ)法流程控制if expression then fi-if expression then elif expression then else fifor $var in listdo done -while condition do done -until condition do done

6、 -break/continuecase $var incondition1);condition2);conditionn);*)default stat;esacShell 腳本基本語(yǔ)法腳本基本語(yǔ)法test 命令 if test expr; then fi -n str 字符串 str 是否不為空 -z str 字符串 str 是否為空str1 = str2 str1是否與 str2 相同str1 != str2 str1是否與 str2 不同int1 -eq int2等于int1 -le int2小于等于int1 -ge int2大于等于int1 -lt int2小于int1 -gt i

7、nt2大于int1 -ne int2不等于if expr ; then fi Shell 腳本基本語(yǔ)法腳本基本語(yǔ)法-b 是否塊文件-p 文件是否為一個(gè)命名管道-c 是否字符文件-f 是否普通文件 *-d 是否一個(gè)目錄 *-s 文件的長(zhǎng)度是否不為零-e 文件是否存在 *-S 是否為套接字文件-r 文件是否可讀-x 文件是否可執(zhí)行,則為真-w 文件是否可寫(xiě),則為真expr1 -a expr2 如果 expr1 和 expr2 為真,則為真 expr1 -o expr2 如果 expr1 或 expr2 為真,則為真Shell 腳本基本語(yǔ)法腳本基本語(yǔ)法定義:function func_name()

8、#do operation on $n #函數(shù)外的變量是全局的#local 可指定局部變量引用:func_name $param_listadd() RET=$($2+$1) add 101 237 ; echo $RET函數(shù) Shell 腳本基本語(yǔ)法腳本基本語(yǔ)法(三)學(xué)習(xí)使用(三)學(xué)習(xí)使用 Awk基本語(yǔ)法 awk -F Ere -v Assignment -f ProgramFile|Program file輸入:文件/命令行模式匹配1.正則表達(dá)式+rm,?rm,n*abcde.abcde|abcrmabc$開(kāi)始使用開(kāi)始使用 awk 一個(gè)或多個(gè)前一個(gè)指定的字符0個(gè)或一個(gè)前一個(gè)指定的字符0個(gè)或

9、多個(gè)前一個(gè)指定的字符任意一個(gè)字符或;前后兩個(gè)字符串中的任意一個(gè)m 個(gè) r至少 m 個(gè) rm到n個(gè)r,含m,nabcde中任意一個(gè)字符非abcde中任意一個(gè)字符以abc開(kāi)頭以abc結(jié)尾2.關(guān)系表達(dá)式 (匹配) !(不匹配 ) (大于) =(大于等于) =(等于) !=(不等于)3. 條件組合 Ere1,Ere2 指定范圍(Ere1到Ere2); () 將復(fù)雜的條件組合在一起; &,|,! 布爾組合4.BEGIN END 模式 BEGINBEGIN 在處理所有記錄前執(zhí)行,可用做初始化變量 ENDEND 在處理完所有記錄后執(zhí)行,可用做輸出處理結(jié)果開(kāi)始使用開(kāi)始使用awk 開(kāi)始使用開(kāi)始使用awk

10、 變量賦值 name = value特殊變量 $1 . $n 輸入記錄的個(gè)字段值,$0:整個(gè)記錄 FILENAME 當(dāng)前輸入文件的路徑名稱 FNR 當(dāng)前文件中的當(dāng)前輸入記錄的個(gè)數(shù) FS 輸入字段分隔符(單個(gè)字符或正則表達(dá)式) NF 當(dāng)前記錄中的字段個(gè)數(shù) NR 當(dāng)前輸入記錄的個(gè)數(shù) RS 輸入記錄分隔符(缺省值是換行字符)。 OFS 輸出字段分隔符(缺省值是空格)。 ORS 輸出記錄分隔符(缺省值是換行字符)。 算術(shù)運(yùn)算 +,-,*,/,%,+,-,+=,-=,*=,/=,=,%=流程控制 1) if ( Expression ) Statement else Action 2) while (

11、Expression ) Statement 3) for ( Expression ; Expression ; Expression ) Statement 4) break/continue 5) for ( Variable in Array ) Statement 6) if ( Variable in Array ) Statement 開(kāi)始使用開(kāi)始使用awk 7) delete Array Expression 8) delete/fdelete 9) exit使用函數(shù) function func_name(param1,param2) 調(diào)用:RET = func_name(pa

12、ram1,param2) function average ( g,n) for (i in g)sum=sum+gi avg=sum/n return avg 開(kāi)始使用開(kāi)始使用awk 內(nèi)建函數(shù) 1.數(shù)學(xué)函數(shù) atan2(y,x)返回 y/x 的反正切。 cos(x)返回 x 的余弦;x 是弧度。 sin(x)返回 x 的正弦;x 是弧度。 exp(x)返回 x 冪函數(shù)。 log(x)返回 x 的自然對(duì)數(shù)。 2.字符串函數(shù) sub(Ere, Repl, In) 替換第一個(gè)In中與Ere匹配的字符串 gsub(Ere, Repl, In)替換所有In中與Ere匹配的字符串 index(Strin

13、g1, String2)查詢子字符串 length (String) 返回字符串長(zhǎng)度 substr(String, M, N) 返回M開(kāi)始長(zhǎng)度為N的子字符串開(kāi)始使用開(kāi)始使用awk match( String, Ere) split( String, A, Ere )將 String 分割為數(shù)組元素 An tolower( String ) 轉(zhuǎn)換為小寫(xiě)字符串 toupper(String ) 轉(zhuǎn)換為大寫(xiě)字符串 sprintf(Format, Expr, Expr, . . . ) 格式轉(zhuǎn)換,用法同 c 3.時(shí)間函數(shù) mktime(datespec)輸入“YYYY MM DD HH MM SS”,

14、輸出秒 strftime(format,timestamp)輸入秒,返回格式字符串systime() 返回當(dāng)前時(shí)間eg. awk print strftime(%b-%a,mktime(2005 05 13 00 00 00)開(kāi)始使用開(kāi)始使用awk 輸出 print ExpressionList Redirection Expression ExpressionList:待輸出的字符串,由變量和常量字符串組成 Redirection:,| 輸出到文件或做為其他命令的輸入 Expression:Redirection的目的地址,文件名或其他命令 printf Format ,ExpressionList RedirectionExpression printf 語(yǔ)句將 ExpressionList 參數(shù)指定的表達(dá)式以 Format 參數(shù) 指定的格式寫(xiě)至標(biāo)準(zhǔn)輸出,F(xiàn)ormat同c語(yǔ)言(除了%c) %c:當(dāng)變量為數(shù)字,則輸出該數(shù)字的字符編碼 %c:當(dāng)變量為字符串,則輸出該字符串的第一個(gè)字符開(kāi)始使用開(kāi)始使用awk 謝謝大家!無(wú)線產(chǎn)品部 coonzhang (rtx:9240 分機(jī):7235)正則表達(dá)式(正則表達(dá)式( reg

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論