漢王科技研發(fā)中心linux培訓(xùn)_第1頁(yè)
漢王科技研發(fā)中心linux培訓(xùn)_第2頁(yè)
漢王科技研發(fā)中心linux培訓(xùn)_第3頁(yè)
漢王科技研發(fā)中心linux培訓(xùn)_第4頁(yè)
漢王科技研發(fā)中心linux培訓(xùn)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(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)介

LINUX培訓(xùn)漢王科技研發(fā)中心部門(mén):互聯(lián)網(wǎng)應(yīng)用部2010-07-02Sed編輯器打印:p命令sed‘/north/p’datafile說(shuō)明:默認(rèn)情況下,sed把所有輸入行都打印在標(biāo)準(zhǔn)輸出上,如果在某一行匹配到模式north,sed將把該行另外打印一遍。sed–n‘/north/p’datafile說(shuō)明:如果指定了選項(xiàng)-n,則sed只打印包含模式north的那幾行。Sed編輯器刪除:d命令sed‘3d’datafile

說(shuō)明:刪除第三行,其余的行都被打印到屏幕上。sed‘3,$d’datafile

說(shuō)明:刪除從第三行到最后一行的內(nèi)容,$代表文件的最后一行,逗號(hào)被稱(chēng)為范圍操作符。Sed編輯器sed‘$d’datafile說(shuō)明:刪除最后一行。sed‘/north/d’datafile說(shuō)明:所有包含模式north的行都被刪除。替換:s命令sed‘s/west/north/g’datafile說(shuō)明:s命令用于替換,命令末端的標(biāo)志g表示在行內(nèi)進(jìn)行全局替換。

Sed編輯器sed–n‘s/^west/north/p’datafile說(shuō)明:當(dāng)在行首找到west,將其替換為north,并打印此行。sed–n‘s/Hemenway/Jones/gp’datafile說(shuō)明:文件中出現(xiàn)的所有Hemenway都被替換為Jones,只有發(fā)生變化的行才被打印。指定行的范圍:逗號(hào)sed–n‘/west/,/east/p’datafile

說(shuō)明:打印在模式west和east之間的所有行。Sed編輯器sed–n‘5,/^northeast/p’datafile

說(shuō)明:打印從第五行到第一個(gè)以northeast開(kāi)頭行之間的所有行。sed‘/west/,/east/s/$/**VACA**/’datafile

說(shuō)明:修改從模式east和west之間的所有行,將各行的行尾($)替換為字符串**VACA**。多重編輯:e命令sed–e‘1,3d’–e‘s/Hemenway/Jones/’datafileSed編輯器

說(shuō)明:選項(xiàng)-e用于進(jìn)行多重編輯。第一重編輯刪除1~3行。第二重編輯將Hemenway替換成Jones。讀文件:r命令sed‘/Suan/rnewfile’datafile

說(shuō)明:如果在文件datafile的某一行匹配到模式Suan,就在該行后讀入文件newfile的內(nèi)容。如果出現(xiàn)Suan的不止一行,則在出現(xiàn)Suan的各行后都讀入newfile文件的內(nèi)容。Sed編輯器寫(xiě)文件:w命令sed–n‘/north/wnewfile’datafile

說(shuō)明:w命令把指定行寫(xiě)入文件。文件datafile中所有包含模式north的行都被寫(xiě)到文件newfile中。追加:a命令sed‘/^north/ahello’datafile

說(shuō)明:在所有以north開(kāi)頭的行后加入”hello”Sed編輯器插入:i命令sed‘/eastern/ihello’datafile

說(shuō)明:如果在某一行匹配到模式eastern,i命令就在該行的上方插入命令中反斜杠后的文本。修改:c命令sed‘/eastern/chello’datafile

說(shuō)明:如果模式eastern被匹配,c命令將用反斜杠后的文本替換包含eastern的行Awk實(shí)用程序

簡(jiǎn)單的操作Awk‘{print$3,$2}’datafile說(shuō)明:打印結(jié)果是第三個(gè)字段,后面跟一個(gè)空格和第二個(gè)字段。Awk‘{print$0}’datafile說(shuō)明:打印所有記錄,$0保存的是當(dāng)前記錄Awk‘{print“Numberoffileds:“NF}’datafile說(shuō)明:Awk內(nèi)置的變量NF用來(lái)保存記錄的字段數(shù)。Awk實(shí)用程序模式與操作組合的正規(guī)表達(dá)式Awk‘/northeast/{print$3,$2}’datafile說(shuō)明:如果記錄包含模式northeast,則打印它的第三個(gè)字段,后跟空格和第二個(gè)字段Awk‘/E/’datafile說(shuō)明:如果記錄中含有字母E,就打印整條記錄Awk‘/^[ns]/{print$1}’datafile說(shuō)明:如果記錄以n或s開(kāi)頭,就打印第一個(gè)字段。Awk實(shí)用程序Awk‘$2!~/E/{print$1,$2}’datafile說(shuō)明:如果某條記錄的第二個(gè)字段不含模式E,則打印該條記錄的第一個(gè)字段,隔一個(gè)空格再打印第二個(gè)字段($1,$2)Awk‘$3~/^Joel/{print$3“isaniceguy.”}’datafile說(shuō)明:如果第三個(gè)字段以模式Joel開(kāi)頭,則打印該字段,并且在后面跟上字符串“isaniceguy.”Awk實(shí)用程序輸入字段分隔符Awk–F“:”‘{print“Numberoffileds:“NF}’datafile2說(shuō)明:字段分隔符設(shè)置成為冒號(hào)Awk–F“[:]”‘{print$1,$2}’datafile2說(shuō)明:可以用正規(guī)表達(dá)式來(lái)指定多個(gè)字段分隔符,空格或冒號(hào)將指定為是字段分隔符。Bashshell編程編寫(xiě)第一個(gè)腳本[root@linuxscripts]#vish01.sh#!/bin/bashEcho–e“HelloWorld!\n”Exit0[root@linuxscripts]#shsh01.shHelloWorld!簡(jiǎn)單的Shell腳本Bashshell編程[root@linuxscripts]#vish02.sh#!/bin/bashRead–p“Pleaseinputyourfirstname:“firstnameRead–p“Pleaseinputyourlastname:“LastnameEcho–e“\nYourfullnameis:$firstname$lastname”數(shù)值運(yùn)算的方法var=$((運(yùn)算內(nèi)容))Bashshell編程#!/bin/bashEcho–e“Youshouldinput2number,Iwillcrossthem!\n”Read–p“firstnumber:”firstnuRead–p“secondnumber:”secnuTotal=$(($firstnu*$secnu))Echo–e“\nThenumber$firstnux$secnuis$total”Bashshell編程使用判斷條件

使用test命令的測(cè)試功能[root@linux~]#test–e/dmtsai[root@linux~]#test–e/dmtsai&&echo“exist”||echo“Notexists”test

–efilename

該文件名是否存在test–ffilename

該文件名是否為文件

Bashshell編程test–dfilename

該文件名是否為目錄test–rfilename

檢測(cè)該文件是否具有可讀權(quán)限test–wfilename

檢測(cè)該文件是否具有可寫(xiě)屬性test–xfilename

檢測(cè)該文件是否具有可執(zhí)行屬性testfile1–ntfile2

判斷file1是否比f(wàn)ile2新Bashshell編程testfile1–otfile2

判斷file1是否比f(wàn)ile2舊testn1–eqn2

判斷兩數(shù)值是否相等testn1–nen2

判斷兩數(shù)值是否不相等Testn1–gtn2

判斷n1是否大于n2Testn1–ltn2

判斷n1是否小于n2Bashshell編程test–zstring

判斷字符串是否為空,空則返回值為trueteststr1=str2

判斷str1是否等于str2,若等于,返回trueTeststr1!=str2

判斷str1是否不等于str2,若不等返回trueTest–rfilename–a–xfilename-a:兩個(gè)條件同時(shí)成立時(shí),返回trueTest–rfilename–o–xfilename-r:兩個(gè)條件中任何一個(gè)成立,返回trueBashshell編程test!–xfilename!:條件求反,當(dāng)file不具有x時(shí),回傳true范例:

讓用戶輸入一個(gè)文件名,判斷1.這個(gè)文件是否存在,若不存在,則提示信息“filenamedoesnotexist”,并中斷程序2.若這個(gè)文件存在,則判斷它是文件還是目錄,結(jié)果輸出“filenameisregularfile”或“filenameisdirectory”

Bashshell編程3.判斷執(zhí)行者對(duì)這個(gè)文件或目錄所擁有的權(quán)限,并輸出權(quán)限數(shù)據(jù)。#!/bin/bash1.讓用戶輸入文件名,判斷用戶是否真的輸入了字符串Echo–e“Theprogramwillshowyouthatfilenameisexistwhichinputbyyou.\n\n”Read–p“Inputafilename:”filenameTest–z$filename&&echo“YouMUSTinputafilename.”&&exit0Bashshell編程2.判斷文件是否存在Test!–e$filename&&echo“Thefilename$filenamedonotexist”&&exit03.判斷文件類(lèi)型與屬性Test–f$filename&&filetype=“regularfile”Test–d$filename&&filetype=“directory”Test–r$filename&&perm=“readable”Test–w$filename&&perm=“$permwritable”Bashshell編程Test–x$filename&&perm=“$permexecutable”4.開(kāi)始輸出信息Echo“Thefilename:$filenameisa$filetype”Echo“Andthepermissionare:$perm”使用判斷符號(hào)[][root@linux~]#[-z“$HOME”]說(shuō)明:判斷$HOME變量是否為空Bashshell編程[root@linux~][“$HOME”==“$MALL”]說(shuō)明:判斷$HOME與$MALL變量的內(nèi)容是否相同范例:1.當(dāng)執(zhí)行腳本的時(shí)候,提示用戶選擇Y或N2.如果用戶輸入Y或y,就顯示“OK,continue”3.如果用戶輸入n或N,就顯示“Oh,interrupt”4.如果不是Y/y/N/n之內(nèi)的其他字符,就顯示“Idon’tknowwhatisyourchoise”。Bashshell編程#!/bin/bashRead–p“Pleaseinput(Y/N):”yn[“$yn”==“Y”–o“$yn”==“y”]&&echo“OK,continue”&&exit0[“$yn”==“N”–o“$yn”==“n”]&&echo“Oh,interrupt”&&exit0Echo“Idon’tknowwhatisyourchoice”&&exit0Shell腳本的默認(rèn)變量Bashshell編程/path/to/scriptnameopt1opt2opt3…$0$1$2$3范例:

執(zhí)行一個(gè)腳本,該腳本會(huì)自動(dòng)列出自己的文件名,還有后面的前三個(gè)參數(shù)#!/bin/bashecho“thescriptnameis$0”[-n“$1”]&&echo“Thefirstparameteris$1”||exit0[-n“$2”]&&echo“thesecondparameteris$2”||exit0

Bashshell編程[-n“$3”]&&echo“Thethirdparameteris$3”||exit0[root@linuxscripts]#shsh07.shabcThescriptnameissh07.shThefirstparameterisaThesecondparameterisbThethirdparameterisc使用if…then進(jìn)行條件判斷

Bashshell編程格式1:if[條件判斷表達(dá)式];then

當(dāng)條件判斷表達(dá)式為true時(shí),執(zhí)行的語(yǔ)句fi范例:#!/bin/bashread–p“Pleaseinput(Y/N):”ynif[“$yn”==“Y”]||[“$yn”==“y”];thenecho“OK,continue”Bashshell編程exit0fiif[“$yn”==“N”]||[“$yn”==“n”];thenecho“Ohinterrupt!”exit0fiecho“Idon’tknowwhatisyourchoise”&&exit0Bashshell編程格式2if[條件判斷表達(dá)式];then

當(dāng)條件判斷表達(dá)式為真時(shí),執(zhí)行的語(yǔ)句else

當(dāng)條件判斷表達(dá)式不成立時(shí),執(zhí)行的語(yǔ)句格式3if[條件判斷表達(dá)式一];then

當(dāng)條件判斷表達(dá)式一為真時(shí),執(zhí)行的語(yǔ)句elif[條件判斷表達(dá)式二];then

當(dāng)條件判斷表達(dá)式二成真時(shí),執(zhí)行的語(yǔ)句

Bashshell編程else

當(dāng)條件判斷表達(dá)式一與二均不成立時(shí),執(zhí)行的語(yǔ)句fi范例1:#!/bin/bashread–p“Pleaseinput(Y/N):”ynif[“$yn”==“Y”]||[“$yn”==“y”];thenecho“OK,continue”Bashshell編程elif[“$yn”==“N”]||[“$yn”==“n”];thenecho“Oh,interrupt!”elseecho“what’syourchoice?”范例2

通過(guò)netstat檢測(cè)主機(jī)是否打開(kāi)以下網(wǎng)絡(luò)端口www:80ssh:22ftp:2125:mailBashshell編程#!/bin/bashecho“Now,theservicesofyourlinuxsystemwillbedetect!”echo–e“Thewww,ftp,ssh,andmailwillbedetect!\n”testing=`netstat–tuln|grep“:80”if[“$testing”!=“”];thenecho“WWWisrunninginyoursystem.”fiTesting=`netstat–tuln|grep“:22”`if[“$testing”!=“”];thenBashshell編程echo“SSHisrunninginyoursystem.”fitesting=`netstat–tuln|grep“:21”`if[“$testing”!=“”];thenecho“FTPisrunninginyoursystem.”fitesting=`netstat–tuln|grep“:25”`if[“$testing”!=“”];thenecho“Mailisrunninginyoursystem.”fiBashshell編程使用case…esac判斷

格式:case$變量名稱(chēng)in“第一個(gè)變量?jī)?nèi)容”)

程序段;;“第二個(gè)變量?jī)?nèi)容”)

程序段;;*)

默認(rèn)程序執(zhí)行段

Bashshell編程范例:

讓用戶輸入one,two,three,并將用戶的變量顯示到屏幕上,如果不是one,two,three時(shí),就告訴用戶僅有這三種選擇

#!/bin/bashecho“Theprogramwillprintyourselection”case$1in“one”)echo“YourchoiceisONE”;;Bashshell編程“two”)echo“YourchoiceisTWO”;;“three”)echo“YourchoiceisTHREE”;;*)echo“Usage(one|two|three)”;;esacBashshell編程使用函數(shù)功能

格式:functionfname(){

程序段}范例:#!/bin/bashfunctionprintit(){echo“Yourchoiceis$1”}echo“Thisprogramwillprintyourselection”Bashshell編程case$1in“one”)printit1;;“two”)printit2;;“three”)printit3;;

Bashshell編程*)echo“Usage(one|two|three)”;;Esac循環(huán)whiledodone,untildodone循環(huán)

格式:while[condition]do

語(yǔ)句doneBashshell編程until[condition]do

語(yǔ)句done范例:

執(zhí)行腳本后提示用戶輸入字符串,當(dāng)用戶輸入yes或者YES時(shí)結(jié)束輸入,否則一直告訴用戶輸入字符串

Bashshell編程#!/bin/bashwhile[“$yn”!=“yes”]&&[“$yn”!=“YES”]doread–p“pleaseinputyes/YEStostopthisprogram:”yndoneuntil改寫(xiě)

Bashshell編程#!/bin/bashuntil[“$yn”==“yes”]||[“$yn”==“YES”]dorea

溫馨提示

  • 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)論