個(gè)人整理shell腳本編程筆記_第1頁
個(gè)人整理shell腳本編程筆記_第2頁
個(gè)人整理shell腳本編程筆記_第3頁
個(gè)人整理shell腳本編程筆記_第4頁
個(gè)人整理shell腳本編程筆記_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 一、腳本格式vim shell.sh#!/bin/bash/聲明腳本解釋器,這個(gè)#號(hào)不是注釋,其余是注釋#Program:/程序內(nèi)容說明#History:/時(shí)間和作者二、shell變量的種類用戶自定義變量:由用戶自己定義、修改和使用與定義變量:Bash與定義的特殊變量,不能直接修改位置變量:通過命令行給程序傳遞執(zhí)行的參數(shù)1、定義變量:變量名要以英文字母或下劃線開頭,區(qū)分大小寫。格式:變量名=值輸出變量:echo $變量名2、鍵盤輸入為變量內(nèi)容:格式:read -p "信息" 變量名如:read -p "pewase input your

2、 name:" name3、不同引號(hào)對變量的作用雙引號(hào)"":可解析變量,$符號(hào)為變量前綴。單引號(hào)'':不解析變量,$為普通字符。反引號(hào):將命令執(zhí)行的結(jié)果輸出給變量。三、shell條件測試1、test命令:用途:測試特定的表達(dá)式是否成立,當(dāng)條件成立時(shí),命令執(zhí)行后的返回值為0,否則為其他數(shù)字。格式:test 條件表達(dá)式 條件表達(dá)式    (注意:與表達(dá)式之間存在空格) 2、常見的測試類型:測試文件狀態(tài)格式: 操作符 文件或目錄 如:if -d /etc thenecho "exists"elseecho

3、 "not exists"fi常見的測試操作符:-d:測試是否為目錄-e:測試目錄或文件是否存在-f:測試是否為文件-r:測試當(dāng)前用戶是否有讀權(quán)限-w:測試當(dāng)前用戶是否有寫權(quán)限-x:測試當(dāng)前用戶是否有執(zhí)行權(quán)限-L:測試是否為符號(hào)鏈接文件字符串比較格式: 字符串1 = 字符串2 字符串1 != 字符串2 -z 字符串 如:read -p 'name:' nameread -p 'pass:' passif $name = 'admin' && $pass = '123'thenecho '

4、登錄成功'elseecho '登錄失敗'if常用的測試操作符:=:字符串內(nèi)容相同。!=:字符串內(nèi)容不同。-z:字符串內(nèi)容為空。整數(shù)值比較格式: 整數(shù)1 操作符 整數(shù)2 如:age=30if $age -ge 18 thenecho "已成年"elseecho "未成年"fi常用的測試操作符:-eq:等于-ne:不等于-gt:大于-lt:小于-le:大于或等于-ge:小于或等于邏輯測試格式: 表達(dá)式1 操作符 表達(dá)式2 常用操作符:-a或&&:邏輯與-o或|:邏輯或!:邏輯非四、流程判斷:1、條件判斷a、if語句格式

5、:單分支:if 條件表達(dá)式then 命令序列fi如:age=30if $age -ge 18 thenecho "已成年"elseecho "未成年"fi多分枝:if 條件表達(dá)式then 命令序列elif命令序列fi如:score=87if $score -lt 60 ;thenecho '60以下'elif $score -gt 60 && $score -lt 70 ;thenecho '6070之間'elif $score -ge 70 && $score -lt 80 ;thenec

6、ho '70 80之間'elseecho '優(yōu)秀'fib、case格式:case $變量名稱 in"第一個(gè)變量內(nèi)容");"第二個(gè)變量內(nèi)容");*)/最后一個(gè)變量內(nèi)容都會(huì)用*來代表其它值,不包含前面的變量內(nèi)容;esac如:case $1 instart) echo 'start MYSQL service.'stop)echo 'stop MYSQL service.'*)echo "Usage: $0 start|stop"esac2、循環(huán)控制跳出本次循環(huán):continu

7、e結(jié)束循環(huán):breaka、while循環(huán)格式:while 條件表達(dá)式 do程序段落done如:num=3while $num -gt 0 doecho $numnum=$($num-1)doneb、for循環(huán)格式:for var in con1 con2 con3do程序段done如:for i in user0 user1 user2 user3echo $idone格式:for (i=0;i<10 1+)do程序段done如:for (i=0;i<10;i+)doecho $iuseradd user$iecho 123 | password -stdin_user$idone

8、3、函數(shù)使用定義一個(gè)函數(shù):在程序的最前面function 函數(shù)名()或者function 函數(shù)名如:function printit()echo "your choice is $1"調(diào)用:直接使用函數(shù)名如:printit 1傳遞參數(shù):函數(shù)名 參數(shù)1 參數(shù)1如:printit 2五、Shell文本操作1、Find查找命令的使用find . -name "*.text"/在當(dāng)前目錄下查找已txt為后綴的文件fing .-name "a-z*"/在當(dāng)前目錄下查找開頭字母的文件find /etc -name "host*"

9、;/查找/etc目錄下以host開頭的文件find . -perm 755/在當(dāng)前目錄下查找屬性為755的文件find -user root/在當(dāng)前目錄下查找屬主為root的文件find /var -mtime -5/在/var下查找更改時(shí)間在5天內(nèi)的文件find /var -mtime +3/在/var下查找更改時(shí)間在3天以前的文件find /etc -type d/查找文件類型為d的目錄文件find /etc -typt l/查找文件類型為l的鏈接文件find . -size +c/查找文件大小在1M的文件2、正則表達(dá)式linux/以linux開頭的$php/以php結(jié)尾的./匹配任意單字

10、符.+/匹配任意多個(gè)字符.*/匹配0個(gè)或多個(gè)字符0-9a-z/匹配內(nèi)任意一個(gè)字符(linux)+/出現(xiàn)多次linux單詞(web)2/web出現(xiàn)了2次以上/轉(zhuǎn)譯3、grep詳解grep "li qq"*/在所有文件中查找li qq文件grep -c "file" a/在文件中查找有多少行匹配到filegrep -n "file" a/在文件中查找有多少行匹配file,同時(shí)顯示行和行號(hào)grep -i "file" a/在文件中查找file,并不區(qū)分大小寫grep -v "file" a/在文件中過

11、濾掉file所在的行g(shù)rep -E "2017:22:50-9" a/在文件中查找在時(shí)間在2017:22:50到59的所在行g(shù)rep -E "210" a/在文件中查找不號(hào)寒210的行g(shù)rep -E "h*p" a/查找包含h和p的行g(shù)rep -E "5-86-90-3" a/查找大于560小于893的行g(shù)rep -E "d" a/在文件中查找以d開頭的行g(shù)rep -E "d" a/在文件中查找不是以d開頭的行4、awk命令:簡介:awk是一個(gè)強(qiáng)大的文本分析工具,相對于gre

12、p的查找,sed的編輯,awk在其對數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大。簡單來說awk就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片,切開的部分再進(jìn)行各種分析處理。awk語言的最基本功能是在文件或者字符串中基于指定規(guī)則瀏覽和抽取信息,awk抽取信息后,才能進(jìn)行其他文本操作。完整的awk腳本通常用來格式化文本文件中的信息。通常,awk是以文件的一行為處理單位的。awk每接收文件的一行,然后執(zhí)行相應(yīng)的命令,來處理文本。格式:awk 'pattern + action' filenamespattern:查找內(nèi)容action:匹配規(guī)則awk 'pring $0'

13、access.log/查找文件中的每一列awk 'print $1"t"$7' access.log/查找文件中第一列和第七列cat file | awk '$0 ! /5/'|grep "php"/匹配Ip 地址的統(tǒng)計(jì),!為不匹配例:for i in cat /etc/passwd | head | awk -F:'print $1'doecho $idone-F-以什么符號(hào)分割head-去前多少行,默認(rèn)是10行5、sed行定位使用簡介:sed是非交互式的編輯器。它不會(huì)修改文件,除

14、非使用shell重定向來保存結(jié)果。默認(rèn)情況下,所有的輸出行都被打印到屏幕上。 選項(xiàng) 功能 -e 進(jìn)行多項(xiàng)編輯,即對輸入行應(yīng)用多條sed命令時(shí)使用 -n 取消默認(rèn)的輸出 -f 指定sed腳本的文件名sed -n '2'p file/只打印第二行,不打印其他行sed -n '1,4'p file/從第一行到第四行的記錄sed -n '/los/'p file/打印匹配los的行sed -n '4,/los/'p file/打印從第四行到匹配los的之間所有

15、行sed '1,2'd file/吧第一行和第二行全部刪除6、Uniq行定位使用簡介:uniq命令用于報(bào)告或忽略文件中的重復(fù)行,一般與sort命令結(jié)合使用。語法 uniq(選項(xiàng))(參數(shù))選項(xiàng) :-c或count:在每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù);-d或-repeated:僅顯示重復(fù)出現(xiàn)的行列;-f<欄位>或-skip-fields=<欄位>:忽略比較指定的欄位;-s<字符位置>或-skip-chars=<字符位置>:忽略比較指定的字符;-u或unique:僅顯示出一次的行列;-w<字符位置>或-check-chars=<字符位置>:指定要比較的字符。uniq -c file/打印緊挨的重復(fù)行出現(xiàn)的次數(shù)uniq -d file/只打印重復(fù)的行awk 'print $1' /var/log/httpd/access_log | sort|uniq -c/把a(bǔ)pache網(wǎng)站的所有訪問ip全部統(tǒng)計(jì)出來,并打印出統(tǒng)計(jì)次數(shù)。7、spli行定位簡介:可以將一個(gè)大文件分割成很多個(gè)小文

溫馨提示

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

評論

0/150

提交評論