版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第第頁shell高級編程經(jīng)典教程學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
非正常退出時的文件復(fù)原:
1.非正常退出后再次登錄執(zhí)行vim/test時,會涌現(xiàn)這樣的界面提示:
2.執(zhí)行vim-rtest后再次執(zhí)行vim/test時,涌現(xiàn)下面的提示界面:
3.未刪除.test.swp文件時,即使復(fù)原了文件仍舊提示,復(fù)原并刪除才算完成:
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
環(huán)境變量:
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
grep〔基本型〕參數(shù):^匹配行首$匹配行尾.匹配單字符
*在正那么表達(dá)式中表示匹配=0個前面涌現(xiàn)的字符,而在bash中*表示=0個任意字符
[]里面可以寫許多,但是值匹配一個,假如都找到呢,就都輸出來\轉(zhuǎn)義符,如’\.$’表示以.結(jié)尾
grep–v‘12’/share/date在/share/date中找不含12的行,只要有12的行就不顯示。但是grep‘【^2】’/share/date表示非2的的都可以顯示,假如這一行的內(nèi)容只有23,那么3是符合條件的,仍舊顯示這一行。區(qū)分很微妙,操作一下就明白了……^$空行
^…$只有3個字符的行^.*$匹配行中任意字符
.*用的特別多的,匹配任意個任意種類的字符〔即=0個〕,比如找到am和bm之間有任意多個任意字符時,用’am.*bm’,可以找到找到ambm,amhbm,amfsbm,……總之a(chǎn)m與bm之間有=0個字符就是了。另外am和bm之間有任意多個字符o時,用’amo*bm’,〔不是amo.*bm哦〕,可以找到ambm,amobm,amoobm,amooobm……假如是在h和g之間有至少2個o呢,就是’hooo*g’,找到
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
hoog,hooog,foooog……有點(diǎn)小啰嗦~~~
-i不區(qū)分大小寫,如-i‘the’就可以找到不區(qū)分大小寫的theo\{a,b\}既然功能相像就一起吧,這個表示匹配的次數(shù),假如在h和g之間有2個o就是’ho\{2\}g’,假如至少2就是’ho\{2,\}g’,假如是2到5個呢,就是’ho\{2,5\}g’啦……
[IiNn]大寫或小寫i或n,但是[Ii][Nn]只能找到i和n,為什么,下列圖。
[^0-9a-zA-Z]非數(shù)字且非字母
grep‘12[0-3]’/share/date找含120或121或122或123,都存在呢,就都顯示出來唄~~~
grep‘^[^12]’/share/date查找開頭不是12的行g(shù)rep‘[Ss]tep’找Step或step
grep–E‘134|159’/share/test找134或159,用管道符號時需要加–E,由于grep是基本型的,假如是延伸型的egrep就不用加-E啦,所以只用grep‘134|159’/share/test會找不到。但是為什么用egrep‘134|159’/share/test找到了,卻沒有行號和顏色呢,由于提前已經(jīng)在~/.bashrc設(shè)置好了aliasgrep=‘grep-n--color=auto’,加入這條語句后執(zhí)行source~/.bashrc重啟終端生效,或者關(guān)掉終端再打開。
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
egrep〔延伸性〕
egrep是grep的延伸,它有更多的功能,主要表現(xiàn)在上面提到的管道符號上,另外還有一些……
假如想去掉以#開頭的說明行和空白行,用基本型grep表示為grep–v‘^#’/share/test|grep–v‘^$’用延伸型的egrep表示為egrep-v‘^#|^$’/share/test這樣看區(qū)分很明顯吧?。?!
‘go?d’g和d之間有0個或1個o,即gd或god
‘go+d’g和d之間有=1個o,即god或good或goood……‘go*d’g和d之間有=0個o,即gd或god或good或goood……‘go.*d’go和d之間有=0個任意字符,即god或gohd或gostd……‘g(oo|la)d’找good或glad,留意grep中用〔〕,而grep用[]‘A(*yz)+W’找開頭是A結(jié)尾是W,中間有=1個字符串*yz,如*yz,*yz*yz……例如執(zhí)行echo‘A*yz*yz*yz*yzW’|egrep‘A(*yz)+W’
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
Sed:查找工具,查找或替換一個文件中的指定行,是面對行的操作,但是用字符串替換指令卻可以徑直對行中的字符串替換,〔假如就愛了個指定字符串替換為空就刪掉了〕所以sed可以插入,刪除行,也可以插入,刪除字符串。但是不會對原文件修改,只是將結(jié)果輸出參數(shù):
a在指定行的后面插入一行i在指定行的前面插入一行
〔假如插入幾行呢,就在各行之間用換行符\n〕d刪除指定的一行或幾行
p在屏幕列出指定的一行或幾行,常與-n協(xié)作運(yùn)用
c面對行的操作,替代一行或幾行〔將幾行替代為一行或?qū)⒁恍刑娲鸀閹仔卸伎梢浴?/p>
sed‘s/this/that/g’替換字符串指令將this替換為that,是面對指定行中的指定字符串的操作。有了它sed變得更強(qiáng)大了,它將sed的行操作擴(kuò)展到行中的字符串,可以插入、替換或刪除字符串,和vim中指令行模式下的:$s/this/that/g類似,但是更好用。
-i徑直修改文檔內(nèi)容而不輸出,慎用。如:sed-i‘s/\.$/\!/g’可將每行末尾的.替換為!〔.和!都加了轉(zhuǎn)義符\〕。留意這個-i和上面的i有所不同。例子:
下面的4個小技巧是在文檔sed.t*t中操作的:
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
Sed‘2,$d’sed.t*t刪除第二行到最末一行Sed’$d’sed.t*t刪除最末一行
假如有一行內(nèi)容為aisb那么怎么來插入和刪除呢Sed‘s/is/isfrom/g’就插入了from了變成aisfrombSed‘s/is//g’就刪除is了,變成ab①nl/etc/passwd|sed‘2ahelllo\njim’
將hello和jim兩行插入到第二行的后面,留意helllo和jim之間加了換行符\n哦
②將a替換為i就是插入到第二行的前面
③nl/etc/passwd|sed‘2,5d’刪除2,3,4,5行
④nl/etc/passwd|sed-n‘5,7p’在屏幕輸出5,6,7行,與-
-n一起用
⑤nl/etc/passwd|sed‘2,30chelllo\njim’將2到30行換為
helllo
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
和jim兩行
⑥/sbin/ifconfigeth0|grep’inetaddr’可找到含inetaddr:的行。/sbin/ifconfigeth0|grep’inetaddr’|sed’s/^.*addr://g’|sed’s/Bcast.*$//g’先將addr:及前面的內(nèi)容換為空〔即刪除〕,再將Bcast后面的內(nèi)容換為空〔刪除〕,結(jié)果呢,這一行就只剩192.168.0.10了,這就是替換的強(qiáng)大之處,如下列圖〔假如將指定字符串替換為其他呢〕
⑦cat/etc/man.config|grep‘MAN’|sed‘s/^#.*//g’|sed’s/^$//g’用grep找到含MAN的行,再在其中將以#開頭的說明行換為空行,再將空行刪除。(留意是換為空行,所以原來的說明行雖然內(nèi)容沒有了,但是行還在,也就是涌現(xiàn)了很多空行,所以后面才刪除空行)其中以#開頭的說明行除了用^#.*表示,也可以用#.*$表示。
上面的方法雖然能涉及更多的知識點(diǎn),卻很繁瑣,不如徑直將以#開頭的說明行刪除,指令為:
cat/etc/man.config|grep‘MAN’|sed‘/^#.*/d’
d表示刪除,以#開頭的說明行用/^#.*/表示,留意加兩個/哦
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
awk:
以行為單位,面對列的處理工具。NF:NowField每一行的列數(shù)〔字段數(shù)〕NR:NowRow目前awk處理的是第幾行FS:string分隔符,不設(shè)置那么默認(rèn)是空格規(guī)律符號:====!=例子:
(1)last-n5|awk‘{print$1“\t”$3}’先列出前5行,再打印輸出第一和第三列,并用tab分隔
(2)cat/etc/passwd|awk‘BEGIN{FS=”:”}$310{print$1“\t”$3}’假如第三列值小于10就將第1和第3列輸出,加BEGIN使分隔符:在第一列就生效,否那么在第二列生效且從第二列開始輸出(3)last-n5|awk‘{print$1“\tlines:”NR“\tcolumes:”NF}’執(zhí)行結(jié)果為:
rootlines:1columes:10rootlines:2columes:10nowerlines:3columes:10……
(4)Catminyingtao.t*t|awk’NR==1
{printf”%10s%10s%10s%10s%10s\n”,$1,$2,$3,$4,”Total”}
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
NR=2{total=$2+$3+$4;printf“%10s%10d%10d%10d%10.2f\n”,$1,$2,$3,$4,total}’執(zhí)行結(jié)果為:
NamefirstsecondthirdTotalJim10203060.00Tom1236.00Jim52411.00原文件為:
NamefirstsecondthirdJim102030Tom123Jim524
格式:awk‘條件1{動作1}條件2{動作2}……’文件名留意:全部條件和動作在單引號中,printf中的內(nèi)容用雙引號而不是單引號,變量值不加雙引號,多個動作用分號隔開修改登錄shell
方法一:永久修改。在/etc/paswd中將smb用戶的shell由bash該為csh,然后切到smb用戶,用echo$version查看,發(fā)覺已經(jīng)改為tcsh,如下列圖:
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
方法二:永久修改。徑直執(zhí)行chsh〔即changeshell〕,然后寫下想要的shell類型,再執(zhí)行chsh時可以看見已經(jīng)改了,下列圖:
下面的全部test文件都需要修改權(quán)限才能執(zhí)行:chmod+*文件名Test0:#!/bin/bash#test
echo-ethis3lines\n\n\nechook
echoenteryourname:\n#這一行的輸出前面沒有加參數(shù)-e,所以不能換行,換行指令\n被輸出readnameecho-eenteryourpasswd:\nreadpasswd
echoname:$name,passwd:$passwd
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
Test1:#!/bin/bash#test1myvar=80
echothevalueofvaris:$myvarecho'thevalueofvaris:$myvar'
Test2:#!/bin/bash
#test2
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
forcharinabcdedoecho$chardone
Test3:#!/bin/bash#test3
forcharin{1..5}doecho$chardone
Test4:#!/bin/bash#test4
forcharin`ls
/home`
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
〔可以寫成$(ls/home)和用反單引號寫成的`l(xiāng)s/home`都是執(zhí)行l(wèi)s/home指令〕doecho$chardone
Test5:#!/bin/bash#test5i=0
while[$i-lt5]do
echo“vlueofiis:$i”
i=$(($i+1))(可寫為i=`ecpr$idone
+1`留意反向單引號)
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
Test6:#!/bin/bash#test5echo$1echo$2echo$3
(前兩行是說明,只為增加可讀性,可以修改,數(shù)字只能是1到9)
Test7:#!/bin/bash#test7
readlist
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
forvarin$listdoecho$vardone
Test8:#!/bin/bash#test8ma*=0
echo“pleaseinputnumber:”readlistforvarin$list
do
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
if[var-gt$ma*]thenma*=$varfidone
echo“ma*numberis:$ma*”
Test9:#!/bin/bash#test9
echo”pleaseinputnumber:\n”
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
readactual
if[$actual-ge0-a$actual-lt80]then
echo“yourgradeisC!”
elif[$actual-ge80-a$actual-lt90]then
echo“yourgradeisB!”
elif[$actual-ge90-a$actual-le100]then
echo“yourgradeisA!”else
echo-e“yournumberiswrong!\npleasenumber:\n”fi
inputne*t
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
Test10:#!/bin/bash#test10
echo-epleaseinputyourchoice:\nreadchoice
case$choicein
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
非正常退出時的文件復(fù)原:
1.非正常退出后再次登錄執(zhí)行vim/test時,會涌現(xiàn)這樣的界面提示:
2.執(zhí)行vim-rtest后再次執(zhí)行vim/test時,涌現(xiàn)下面的提示界面:
3.未刪除.test.swp文件時,即使復(fù)原了文件仍舊提示,復(fù)原并刪除才算完成:
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
環(huán)境變量:
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
grep〔基本型〕參數(shù):^匹配行首$匹配行尾.匹配單字符
*在正那么表達(dá)式中表示匹配=0個前面涌現(xiàn)的字符,而在bash中*表示=0個任意字符
[]里面可以寫許多,但是值匹配一個,假如都找到呢,就都輸出來\轉(zhuǎn)義符,如’\.$’表示以.結(jié)尾
grep–v‘12’/share/date在/share/date中找不含12的行,只要有12的行就不顯示。但是grep‘【^2】’/share/date表示非2的的都可以顯示,假如這一行的內(nèi)容只有23,那么3是符合條件的,仍舊顯示這一行。區(qū)分很微妙,操作一下就明白了……^$空行
^…$只有3個字符的行^.*$匹配行中任意字符
.*用的特別多的,匹配任意個任意種類的字符〔即=0個〕,比如找到am和bm之間有任意多個任意字符時,用’am.*bm’,可以找到找到ambm,amhbm,amfsbm,……總之a(chǎn)m與bm之間有=0個字符就是了。另外am和bm之間有任意多個字符o時,用’amo*bm’,〔不是amo.*bm哦〕,可以找到ambm,amobm,amoobm,amooobm……假如是在h和g之間有至少2個o呢,就是’hooo*g’,找到
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
hoog,hooog,foooog……有點(diǎn)小啰嗦~~~
-i不區(qū)分大小寫,如-i‘the’就可以找到不區(qū)分大小寫的theo\{a,b\}既然功能相像就一起吧,這個表示匹配的次數(shù),假如在h和g之間有2個o就是’ho\{2\}g’,假如至少2就是’ho\{2,\}g’,假如是2到5個呢,就是’ho\{2,5\}g’啦……
[IiNn]大寫或小寫i或n,但是[Ii][Nn]只能找到i和n,為什么,下列圖。
[^0-9a-zA-Z]非數(shù)字且非字母
grep‘12[0-3]’/share/date找含120或121或122或123,都存在呢,就都顯示出來唄~~~
grep‘^[^12]’/share/date查找開頭不是12的行g(shù)rep‘[Ss]tep’找Step或step
grep–E‘134|159’/share/test找134或159,用管道符號時需要加–E,由于grep是基本型的,假如是延伸型的egrep就不用加-E啦,所以只用grep‘134|159’/share/test會找不到。但是為什么用egrep‘134|159’/share/test找到了,卻沒有行號和顏色呢,由于提前已經(jīng)在~/.bashrc設(shè)置好了aliasgrep=‘grep-n--color=auto’,加入這條語句后執(zhí)行source~/.bashrc重啟終端生效,或者關(guān)掉終端再打開。
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
egrep〔延伸性〕
egrep是grep的延伸,它有更多的功能,主要表現(xiàn)在上面提到的管道符號上,另外還有一些……
假如想去掉以#開頭的說明行和空白行,用基本型grep表示為grep–v‘^#’/share/test|grep–v‘^$’用延伸型的egrep表示為egrep-v‘^#|^$’/share/test這樣看區(qū)分很明顯吧?。?!
‘go?d’g和d之間有0個或1個o,即gd或god
‘go+d’g和d之間有=1個o,即god或good或goood……‘go*d’g和d之間有=0個o,即gd或god或good或goood……‘go.*d’go和d之間有=0個任意字符,即god或gohd或gostd……‘g(oo|la)d’找good或glad,留意grep中用〔〕,而grep用[]‘A(*yz)+W’找開頭是A結(jié)尾是W,中間有=1個字符串*yz,如*yz,*yz*yz……例如執(zhí)行echo‘A*yz*yz*yz*yzW’|egrep‘A(*yz)+W’
學(xué)習(xí)sehll高級編程的絕好文檔,由淺入深,內(nèi)容具體,而且有大量經(jīng)典例題
Sed:查找工具,查找或替換一個文件中的指定行,是面對行的操作,但是用字符串替
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 日照2025年山東日照市嵐山區(qū)事業(yè)單位初級綜合類崗位招聘42人筆試歷年參考題庫附帶答案詳解
- 2026中國再保險(集團(tuán))股份有限公司博士后科研工作站招聘備考題庫及完整答案詳解一套
- 廣東“百萬英才匯南粵”廣東仁化縣事業(yè)單位2025年招聘25人筆試歷年參考題庫附帶答案詳解
- 2026年蘭州科技職業(yè)學(xué)院春季招聘27人備考題庫及1套完整答案詳解
- 天津2025年天津醫(yī)科大學(xué)附屬寶坻醫(yī)院天津市寶坻區(qū)人民醫(yī)院招聘74人筆試歷年參考題庫附帶答案詳解
- 2026山東青島市市北區(qū)所屬事業(yè)單位招聘53人備考題庫及參考答案詳解
- 北京2025年北京市住房和城鄉(xiāng)建設(shè)委員會直屬事業(yè)單位招聘7人筆試歷年參考題庫附帶答案詳解
- 2026年1月江蘇南京江北新區(qū)招聘教師157人備考題庫及答案詳解一套
- 2025年甘肅省慶陽市工人文化宮招募公益活動教師備考題庫及一套完整答案詳解
- 2025-2030全球紫外線消毒燈行業(yè)深度解析與應(yīng)用需求潛力分析研究報告
- 大數(shù)據(jù)安全技術(shù)與管理
- 2026青島海發(fā)國有資本投資運(yùn)營集團(tuán)有限公司招聘計劃筆試備考試題及答案解析
- 鼻飼技術(shù)操作課件
- 2025年酒店總經(jīng)理年度工作總結(jié)暨戰(zhàn)略規(guī)劃
- 置景服務(wù)合同范本
- 隧道掛防水板及架設(shè)鋼筋臺車施工方案
- 2025年國家市場監(jiān)管總局公開遴選公務(wù)員面試題及答案
- 肌骨康復(fù)腰椎課件
- 碼頭租賃意向協(xié)議書
- 初一語文2025年上學(xué)期現(xiàn)代文閱讀真題(附答案)
- 2026屆浙江紹興市高三一模高考數(shù)學(xué)試卷試題(含答案)
評論
0/150
提交評論