3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[转载] Python学习笔记——运维和Shell

發(fā)布時間:2025/3/11 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载] Python学习笔记——运维和Shell 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

參考鏈接: 在C / C++,Python,PHP和Java中交換兩個變量

目錄?

什么是運維?

運維第一工具-shell編程?

shell歷史?

執(zhí)行腳本?

基本語法?

Shell腳本語法?

條件測試:test [?

if/then/elif/else/fi?

case/esac?

for/do/done?

while/do/done?

break和continue?

位置參數(shù)和特殊變量?

shell輸入輸出?

函數(shù)?

Shell腳本的調(diào)試方法?

正則表達式?

grep?

find?

se?

awk?

Linux核心命令?

shell習題訓(xùn)練?

自動化?

開機自啟動腳本?

?

什么是運維?

? ?

??

術(shù)語名詞?

IDC--(Internet Data Center)互聯(lián)網(wǎng)數(shù)據(jù)中心,主要服務(wù)包括整機租用、服務(wù)器托管、機柜租用、機房租用、專線接入和網(wǎng)絡(luò)管理服務(wù)等。廣義上的IDC業(yè)務(wù),實際上就是數(shù)據(jù)中心所提供的一切服務(wù)。客戶租用數(shù)據(jù)中心的服務(wù)器和帶寬,并利用數(shù)據(jù)中心的技術(shù)力量,來實現(xiàn)自己對軟、硬件的要求,搭建自己的互聯(lián)網(wǎng)平臺,享用數(shù)據(jù)中心所提供的一系列服務(wù)。ISP--(Internet Service Provider)互聯(lián)網(wǎng)服務(wù)提供商,即向廣大用戶綜合提供互聯(lián)網(wǎng)接入業(yè)務(wù)、信息業(yè)務(wù)、和增值業(yè)務(wù)的電信運營商。ICP--(Internet Content Provider)互聯(lián)網(wǎng)內(nèi)容提供商,向廣大用戶綜合提供互聯(lián)網(wǎng)信息業(yè)務(wù)和增值業(yè)務(wù)的電信運營商。 根據(jù)中華人民共和國國務(wù)院令第292號《互聯(lián)網(wǎng)信息服務(wù)管理辦法》規(guī)定,國家對提供互聯(lián)網(wǎng)信息服務(wù)的ICP實行許可證制度。從而,ICP證成為網(wǎng)站經(jīng)營的許可證,經(jīng)營性網(wǎng)站必須辦理ICP證,否則就屬于非法經(jīng)營。因此,辦理ICP證是企業(yè)網(wǎng)站合法經(jīng)營的需要.CDN--(Content Delivery Network)內(nèi)容分發(fā)網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過中心平臺的負載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。CDN的關(guān)鍵技術(shù)主要有內(nèi)容存儲和分發(fā)技術(shù)。 CDN的基本原理是廣泛采用各種緩存服務(wù)器,將這些緩存服務(wù)器分布到用戶訪問相對集中的地區(qū)或網(wǎng)絡(luò)中,在用戶訪問網(wǎng)站時,利用全局負載技術(shù)將用戶的訪問指向距離最近的工作正常的緩存服務(wù)器上,由緩存服務(wù)器直接響應(yīng)用戶請求。LVS--(Linux Virtual Server)的簡寫,意即Linux虛擬服務(wù)器,是一個虛擬的服務(wù)器集群系統(tǒng)。LVS集群采用IP負載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請求均衡地轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個高性能的、高可用的虛擬服務(wù)器。整個服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,而且無需修改客戶端和服務(wù)器端的程序。為此,在設(shè)計時需要考慮系統(tǒng)的透明性、可伸縮性、高可用性和易管理性。 CGI--(Common Gateway Interface)通用網(wǎng)關(guān)接口。CGI規(guī)范允許Web服務(wù)器執(zhí)行外部程序,并將它們的輸出發(fā)送給Web瀏覽器,CGI將Web的一組簡單的靜態(tài)超媒體文檔變成一個完整的新的交互式媒體? GSLB--(Global Server Load Balance,全局負載均衡)作為 CDN 系統(tǒng)架構(gòu)中最核心的部分,負責流量調(diào)度.基于DNS的GSLB 絕大部分使用負載均衡技術(shù)的應(yīng)用都通過域名來訪問目的主機,在用戶發(fā)出任何應(yīng)用連接請求時,首先必須通過DNS請求獲得服務(wù)器的IP地址,基于DNS的GSLB正是在返回DNS解析結(jié)果的過程中進行智能決策,給用戶返回一個最佳的服務(wù)IP。用戶應(yīng)用流程與沒有GSLB時未發(fā)生任何變化。這也是市場上主流的GSLB技術(shù)。? BOSS--(Business & Operation Support System,BOSS)是業(yè)務(wù)運營支撐系統(tǒng)。通常所說的BOSS分為四個部分:計費及結(jié)算系統(tǒng)、營業(yè)與賬務(wù)系統(tǒng)、客戶服務(wù)系統(tǒng)和決策支持系統(tǒng)。BOSS從業(yè)務(wù)層面來看就是一個框架,來承載業(yè)務(wù)系統(tǒng)、CRM系統(tǒng)、計費系統(tǒng)。實現(xiàn)統(tǒng)一框架中的縱向、橫向管理。該系統(tǒng)最早由電信部門的計費系統(tǒng)發(fā)展演變而來,基本功能包括客戶資料管理、產(chǎn)品管理、用戶訂購管理、計費、出帳、結(jié)算等,負責登記客戶資料、管理用戶訂購服務(wù)的提供、實時的根據(jù)不同產(chǎn)品、套餐的資費標準計算業(yè)務(wù)(手機、固定電話用戶通話時、點播收視、寬帶流量與時間等)的消費金額,準實時及定期計算用戶帳單,實時或定期結(jié)算用戶各種消費費用。?

管理?

配置管理事件管理問題管理成本管理容量管理資源管理需求管理

規(guī)劃?

架構(gòu)規(guī)劃IDC規(guī)劃服務(wù)器規(guī)劃ISP規(guī)劃預(yù)算規(guī)劃

優(yōu)化?

速度優(yōu)化成本優(yōu)化ISP優(yōu)化CDN優(yōu)化告警優(yōu)化故障預(yù)案故障演習

安全?

漏洞掃描域名劫持掃描掛馬掃描CGI掃描網(wǎng)頁篡改掃描

告警?

告警模型告警故障告警統(tǒng)計告警關(guān)聯(lián)撥測 定時curl一下某個url,有問題就告警.

日志告警:5分鐘Error大于xxx次告警。

指標告警:cpu使用率大于xxx告警。

?

告警對象可以分為兩種:?

業(yè)務(wù)規(guī)則監(jiān)控系統(tǒng)可靠性監(jiān)控

對于業(yè)務(wù)規(guī)則監(jiān)控可以舉一個游戲的例子。比如游戲角色在一定裝備的情況下,單次打擊的傷害輸出應(yīng)該是有一個上限,如果超過了就說明有作弊的情況。又比如斗地主游戲里一個人的連勝場次是有一定上限的,每天的勝率是有一定上限,如果超出平均值太多就可能是作弊。業(yè)務(wù)規(guī)則監(jiān)控的不是硬件,也不是軟件是否工作正常。而是軟件是否按照業(yè)務(wù)規(guī)則實現(xiàn)的,是否有漏洞。也可以理解為對“正確性”的監(jiān)控。?

系統(tǒng)可靠性監(jiān)控是最常見的監(jiān)控形式,比如發(fā)現(xiàn)是不是服務(wù)器掛掉了,服務(wù)是不是過載了等等。對于大部分后臺服務(wù),系統(tǒng)可以抽象建模成這個樣子:?

監(jiān)控?

URL監(jiān)控LVS監(jiān)控IDC監(jiān)控數(shù)據(jù)庫監(jiān)控模塊監(jiān)控站點監(jiān)控響應(yīng)監(jiān)控

系統(tǒng)/平臺?

CDN平臺靜態(tài)應(yīng)用平臺動態(tài)應(yīng)用平臺點擊流系統(tǒng)數(shù)據(jù)庫平臺下載平臺網(wǎng)絡(luò)健康系統(tǒng)經(jīng)營分析系統(tǒng)存儲平臺流媒體平臺質(zhì)量監(jiān)測系統(tǒng)GSLB管理系統(tǒng)BOSS系統(tǒng)立體監(jiān)控系統(tǒng)自動發(fā)布系統(tǒng)站點分析系統(tǒng)統(tǒng)一告警系統(tǒng)運維工具系統(tǒng)

規(guī)范?

項目立項規(guī)范運營故障分級和處罰規(guī)范重大運營故障處理流程環(huán)境一致性規(guī)范運營資源申請流程IDC變更流程預(yù)算管理規(guī)范

linux發(fā)行版?

RedHat: Fedora, CentOS, MandrivaSuSE: SLES, OpenSuSEDebian: UbuntuGentoo:BackTrace/kali linux (黑客)

運維第一工具-shell編程?

shell歷史?

Shell的作用是解釋執(zhí)行用戶的命令,用戶輸入一條命令,Shell就解釋執(zhí)行一條,這種方式稱為交互式(Interactive),Shell還有一種執(zhí)行命令的方式稱為批處理(Batch),用戶事先寫一個Shell腳本(Script),其中有很多條命令,讓Shell一次把這些命令執(zhí)行完,而不必一條一條地敲命令。Shell腳本和編程語言很相似,也有變量和流程控制語句,但Shell腳本是解釋執(zhí)行的,不需要編譯,Shell程序從腳本中一行一行讀取并執(zhí)行這些命令,相當于一個用戶把腳本中的命令一行一行敲到Shell提示符下執(zhí)行。?

由于歷史原因,UNIX系統(tǒng)上有很多種Shell:?

1.sh(Bourne Shell):由Steve Bourne開發(fā),各種UNIX系統(tǒng)都配有sh。?

2.csh(C Shell):由Bill Joy開發(fā),隨BSD UNIX發(fā)布,它的流程控制語句很像C語言,支持很多Bourne Shell所不支持的功能:作業(yè)控制,命令歷史,命令行編輯。?

3.ksh(Korn Shell):由David Korn開發(fā),向后兼容sh的功能,并且添加了csh引入的新功能,是目前很多UNIX系統(tǒng)標準配置的Shell,在這些系統(tǒng)上/bin/sh往往是指向/bin/ksh的符號鏈接。?

4.tcsh(TENEX C Shell):是csh的增強版本,引入了命令補全等功能,在FreeBSD、Mac OS X等系統(tǒng)上替代了csh。?

5.bash(Bourne Again Shell):由GNU開發(fā)的Shell,主要目標是與POSIX標準保持一致,同時兼顧對sh的兼容,bash從csh和ksh借鑒了很多功能,是各種Linux發(fā)行版標準配置的Shell,在Linux系統(tǒng)上/bin/sh往往是指向/bin/bash的符號鏈接。雖然如此,bash和sh還是有很多不同的,一方面,bash擴展了一些命令和參數(shù),另一方面,bash并不完全和sh兼容,有些行為并不一致,所以bash需要模擬sh的行為:當我們通過sh這個程序名啟動bash時,bash可以假裝自己是sh,不認擴展的命令,并且行為與sh保持一致。?

6.zsh 的命令補全功能非常強大,可以補齊路徑,補齊命令,補齊參數(shù)等。?

vim /etc/passwd

其中最后一列顯示了用戶對應(yīng)的shell類型

?

root:x:0:0:root:/root:/bin/bash

nobody:x:65534:65534:nobody:/nonexistent:/bin/sh

syslog:x:101:103::/home/syslog:/bin/false

itcast:x:1000:1000:itcast,,,:/home/itcast:/bin/bash

ftp:x:115:125:ftp daemon,,,:/srv/ftp:/bin/false

?

用戶在命令行輸入命令后,一般情況下Shell會fork并exec該命令,但是Shell的內(nèi)建命令例外,執(zhí)行內(nèi)建命令相當于調(diào)用Shell進程中的一個函數(shù),并不創(chuàng)建新的進程。以前學過的cd、alias、umask、exit等命令即是內(nèi)建命令,凡是用which命令查不到程序文件所在位置的命令都是內(nèi)建命令,內(nèi)建命令沒有單獨的man手冊,要在man手冊中查看內(nèi)建命令,應(yīng)該?

$ man bash-builtins

?

如export、shift、if、eval、[、for、while等等。內(nèi)建命令雖然不創(chuàng)建新的進程,但也會有Exit Status,通常也用0表示成功非零表示失敗,雖然內(nèi)建命令不創(chuàng)建新的進程,但執(zhí)行結(jié)束后也會有一個狀態(tài)碼,也可以用特殊變量$?讀出。?

執(zhí)行腳本?

編寫一個簡單的腳本test.sh:?

#! /bin/sh

cd ..

ls

?

Shell腳本中用#表示注釋,相當于C語言的//注釋。但如果#位于第一行開頭,并且是#!(稱為Shebang)則例外,它表示該腳本使用后面指定的解釋器/bin/sh解釋執(zhí)行。如果把這個腳本文件加上可執(zhí)行權(quán)限然后執(zhí)行:?

chmod a+x test.sh

./test.sh

?

Shell會fork一個子進程并調(diào)用exec執(zhí)行./test.sh這個程序,exec系統(tǒng)調(diào)用應(yīng)該把子進程的代碼段替換成./test.sh程序的代碼段,并從它的_start開始執(zhí)行。然而test.sh是個文本文件,根本沒有代碼段和_start函數(shù),怎么辦呢?其實exec還有另外一種機制,如果要執(zhí)行的是一個文本文件,并且第一行用Shebang指定了解釋器,則用解釋器程序的代碼段替換當前進程,并且從解釋器的_start開始執(zhí)行,而這個文本文件被當作命令行參數(shù)傳給解釋器。因此,執(zhí)行上述腳本相當于執(zhí)行程序?

$ /bin/sh ./test.sh

?

以這種方式執(zhí)行不需要test.sh文件具有可執(zhí)行權(quán)限。?

如果將命令行下輸入的命令用()括號括起來,那么也會fork出一個子Shell執(zhí)行小括號中的命令,一行中可以輸入由分號;隔開的多個命令,比如:?

$ (cd ..;ls -l)

?

和上面兩種方法執(zhí)行Shell腳本的效果是相同的,cd ..命令改變的是子Shell的PWD,而不會影響到交互式Shell。然而命令?

$ cd ..;ls -l

?

則有不同的效果,cd ..命令是直接在交互式Shell下執(zhí)行的,改變交互式Shell的PWD,然而這種方式相當于這樣執(zhí)行Shell腳本:?

$ source ./test.sh

?

或者?

$ . ./test.sh

?

source或者.命令是Shell的內(nèi)建命令,這種方式也不會創(chuàng)建子Shell,而是直接在交互式Shell下逐行執(zhí)行腳本中的命令。?

基本語法?

變量?

按照慣例,Shell變量由全大寫字母加下劃線組成,有兩種類型的Shell變量:?

1.環(huán)境變量?

環(huán)境變量可以從父進程傳給子進程,因此Shell進程的環(huán)境變量可以從當前Shell進程傳給fork出來的子進程。用printenv命令可以顯示當前Shell進程的環(huán)境變量。?

2.本地變量?

只存在于當前Shell進程,用set命令可以顯示當前Shell進程中定義的所有變量(包括本地變量和環(huán)境變量)和函數(shù)。?

環(huán)境變量是任何進程都有的概念,而本地變量是Shell特有的概念。在Shell中,環(huán)境變量和本地變量的定義和用法相似。在Shell中定義或賦值一個變量:?

itcast$ VARNAME=value

?

注意等號兩邊都不能有空格,否則會被Shell解釋成命令和命令行參數(shù)。?

一個變量定義后僅存在于當前Shell進程,它是本地變量,用export命令可以把本地變量導(dǎo)出為環(huán)境變量,定義和導(dǎo)出環(huán)境變量通常可以一步完成:?

itcast$ export VARNAME=value

?

也可以分兩步完成:?

itcast$ VARNAME=value

itcast$ export VARNAME

?

用unset命令可以刪除已定義的環(huán)境變量或本地變量。?

itcast$ unset VARNAME

?

如果一個變量叫做VARNAME,用${VARNAME}可以表示它的值,在不引起歧義的情況下也可以用$VARNAME表示它的值。通過以下例子比較這兩種表示法的不同:?

itcast$ echo $SHELL

?

注意,在定義變量時不用$,取變量值時要用$。和C語言不同的是,Shell變量不需要明確定義類型,事實上Shell變量的值都是字符串,比如我們定義VAR=45,其實VAR的值是字符串45而非整數(shù)。Shell變量不需要先定義后使用,如果對一個沒有定義的變量取值,則值為空字符串。?

文件名代換(Globbing):* ? []?

這些用于匹配的字符稱為通配符(Wildcard),具體如下:?

通配符

?

*? ?匹配0個或多個任意字符

?? ?匹配一個任意字符

[若干字符]? 匹配方括號中任意一個字符的一次出現(xiàn)

?

$ ls /dev/ttyS*

$ ls ch0?.doc

$ ls ch0[0-2].doc

$ ls ch[012]? ?[0-9].doc

?

注意,Globbing所匹配的文件名是由Shell展開的,也就是說在參數(shù)還沒傳給程序之前已經(jīng)展開了,比如上述ls ch0[012].doc命令,如果當前目錄下有ch00.doc和ch02.doc,則傳給ls命令的參數(shù)實際上是這兩個文件名,而不是一個匹配字符串。?

命令代換:`或 $()?

由'`'反引號括起來的也是一條命令,Shell先執(zhí)行該命令,然后將輸出結(jié)果立刻代換到當前命令行中。例如定義一個變量存放date命令的輸出:?

itcast$ DATE=`date`

itcast$ echo $DATE

?

命令代換也可以用$()表示:?

itcast$ DATE=$(date)

?

算術(shù)代換:$(())?

用于算術(shù)計算,$(())中的Shell變量取值將轉(zhuǎn)換成整數(shù),同樣含義的$[]等價例如:?

itcast$ VAR=45

itcast$ echo $(($VAR+3))

$(())中只能用+-*/和()運算符,并且只能做整數(shù)運算。

?

$[base#n],其中base表示進制,n按照base進制解釋,后面再有運算數(shù),按十進制解釋。

?

echo $[2#10+11]

echo $[8#10+11]

echo $[10#10+11]

?

轉(zhuǎn)義字符\?

和C語言類似,\在Shell中被用作轉(zhuǎn)義字符,用于去除緊跟其后的單個字符的特殊意義(回車除外),換句話說,緊跟其后的字符取字面值。例如:?

itcast$ echo $SHELL

/bin/bash

itcast$ echo \$SHELL

$SHELL

itcast$ echo \\

\

?

比如創(chuàng)建一個文件名為“$ $”的文件可以這樣:?

itcast$ touch \$\ \$

?

還有一個字符雖然不具有特殊含義,但是要用它做文件名也很麻煩,就是-號。如果要創(chuàng)建一個文件名以-號開頭的文件,這樣是不行的:?

itcast$ touch -hello

touch: invalid option -- h

Try `touch --help' for more information.

?

即使加上\轉(zhuǎn)義也還是報錯:

?

itcast$ touch \-hello

touch: invalid option -- h

Try `touch --help' for more information.

?

因為各種UNIX命令都把-號開頭的命令行參數(shù)當作命令的選項,而不會當作文件名。如果非要處理以-號開頭的文件名,可以有兩種辦法:?

itcast$ touch ./-hello

?

或者?

itcast$ touch -- -hello

?

\還有一種用法,在\后敲回車表示續(xù)行,Shell并不會立刻執(zhí)行命令,而是把光標移到下一行,給出一個續(xù)行提示符>,等待用戶繼續(xù)輸入,最后把所有的續(xù)行接到一起當作一個命令執(zhí)行。例如:?

itcast$ ls \

> -l

(ls -l命令的輸出)

?

單引號?

和C語言不一樣,Shell腳本中的單引號和雙引號一樣都是字符串的界定符(雙引號下一節(jié)介紹),而不是字符的界定符。單引號用于保持引號內(nèi)所有字符的字面值,即使引號內(nèi)的\和回車也不例外,但是字符串中不能出現(xiàn)單引號。如果引號沒有配對就輸入回車,Shell會給出續(xù)行提示符,要求用戶把引號配上對。例如:?

itcast$ echo '$SHELL'

$SHELL

itcast$ echo 'ABC\(回車)

> DE'(再按一次回車結(jié)束命令)

ABC\

DE

?

雙引號?

被雙引號用括住的內(nèi)容,將被視為單一字串。它防止通配符擴展,但允許變量擴展。這點與單引號的處理方式不同?

itcast$ DATE=$(date)

itcast$ echo "$DATE"

itcast$ echo '$DATE'

?

Shell腳本語法?

條件測試:test [?

命令test或[可以測試一個條件是否成立,如果測試結(jié)果為真,則該命令的Exit Status為0,如果測試結(jié)果為假,則命令的Exit Status為1(注意與C語言的邏輯表示正好相反)。例如測試兩個數(shù)的大小關(guān)系:?

itcast@ubuntu:~$ var=2

itcast@ubuntu:~$ test $var -gt 1

itcast@ubuntu:~$ echo $?

0

itcast@ubuntu:~$ test $var -gt 3

itcast@ubuntu:~$ echo $?

1

itcast@ubuntu:~$ [ $var -gt 3 ]

itcast@ubuntu:~$ echo $?

1

itcast@ubuntu:~$

?

雖然看起來很奇怪,但左方括號[確實是一個命令的名字,傳給命令的各參數(shù)之間應(yīng)該用空格隔開,比如,$VAR、-gt、3、]是[命令的四個參數(shù),它們之間必須用空格隔開。命令test或[的參數(shù)形式是相同的,只不過test命令不需要]參數(shù)。以[命令為例,常見的測試命令如下表所示:?

[ -d DIR ]? ? ? ? ? ? ? 如果DIR存在并且是一個目錄則為真

[ -f FILE ]? ? ? ? ? ? ?如果FILE存在且是一個普通文件則為真

[ -z STRING ]? ? ? ? ? ?如果STRING的長度為零則為真

[ -n STRING ]? ? ? ? ? ?如果STRING的長度非零則為真

[ STRING1 = STRING2 ]? ?如果兩個字符串相同則為真

[ STRING1 != STRING2 ]? 如果字符串不相同則為真

[ ARG1 OP ARG2 ]? ? ? ? ARG1和ARG2應(yīng)該是整數(shù)或者取值為整數(shù)的變量,OP是-eq(等于)-ne(不等于)-lt(小于)-le(小于等于)-gt(大于)-ge(大于等于)之中的一個

?

和C語言類似,測試條件之間還可以做與、或、非邏輯運算:?

帶與、或、非的測試命令

?

[ ! EXPR ]? ? ? ? ? EXPR可以是上表中的任意一種測試條件,!表示邏輯反

[ EXPR1 -a EXPR2 ]? EXPR1和EXPR2可以是上表中的任意一種測試條件,-a表示邏輯與

[ EXPR1 -o EXPR2 ]? EXPR1和EXPR2可以是上表中的任意一種測試條件,-o表示邏輯或

?

例如:?

$ VAR=abc

$ [ -d Desktop -a $VAR = 'abc' ]

$ echo $?

0

?

注意,如果上例中的$VAR變量事先沒有定義,則被Shell展開為空字符串,會造成測試條件的語法錯誤(展開為[ -d Desktop -a = 'abc' ]),作為一種好的Shell編程習慣,應(yīng)該總是把變量取值放在雙引號之中(展開為[ -d Desktop -a "" = 'abc' ]):?

$ unset VAR

$ [ -d Desktop -a $VAR = 'abc' ]

bash: [: too many arguments

$ [ -d Desktop -a "$VAR" = 'abc' ]

$ echo $?

1

?

if/then/elif/else/fi?

和C語言類似,在Shell中用if、then、elif、else、fi這幾條命令實現(xiàn)分支控制。這種流程控制語句本質(zhì)上也是由若干條Shell命令組成的,例如先前講過的?

if [ -f ~/.bashrc ]; then

? ? . ~/.bashrc

fi

?

其實是三條命令,if [ -f ~/.bashrc ]是第一條,then . ~/.bashrc是第二條,fi是第三條。如果兩條命令寫在同一行則需要用;號隔開,一行只寫一條命令就不需要寫;號了,另外,then后面有換行,但這條命令沒寫完,Shell會自動續(xù)行,把下一行接在then后面當作一條命令處理。和[命令一樣,要注意命令和各參數(shù)之間必須用空格隔開。if命令的參數(shù)組成一條子命令,如果該子命令的Exit Status為0(表示真),則執(zhí)行then后面的子命令,如果Exit Status非0(表示假),則執(zhí)行elif、else或者fi后面的子命令。if后面的子命令通常是測試命令,但也可以是其它命令。Shell腳本沒有{}括號,所以用fi表示if語句塊的結(jié)束。見下例:?

#! /bin/sh

?

if [ -f /bin/bash ]

then echo "/bin/bash is a file"

else echo "/bin/bash is NOT a file"

fi

if :; then echo "always true"; fi

?

:是一個特殊的命令,稱為空命令,該命令不做任何事,但Exit Status總是真。此外,也可以執(zhí)行/bin/true或/bin/false得到真或假的Exit Status。再看一個例子:?

? ? #! /bin/sh

?

? ? echo "Is it morning? Please answer yes or no."

? ? read YES_OR_NO

? ? if [ "$YES_OR_NO" = "yes" ]; then

? ? ? echo "Good morning!"

? ? elif [ "$YES_OR_NO" = "no" ]; then

? ? ? echo "Good afternoon!"

? ? else

? ? ? echo "Sorry, $YES_OR_NO not recognized. Enter yes or no."

? ? ? exit 1

? ? fi

? ? exit 0

?

上例中的read命令的作用是等待用戶輸入一行字符串,將該字符串存到一個Shell變量中。?

此外,Shell還提供了&&和||語法,和C語言類似,具有Short-circuit特性,很多Shell腳本喜歡寫成這樣:?

test "$(whoami)" != 'root' && (echo you are using a non-privileged account; exit 1)

?

&&相當于“if...then...”,而||相當于“if not...then...”。&&和||用于連接兩個命令,而上面講的-a和-o僅用于在測試表達式中連接兩個測試條件,要注意它們的區(qū)別,例如,?

test "$VAR" -gt 1 -a "$VAR" -lt 3

?

和以下寫法是等價的?

test "$VAR" -gt 1 && test "$VAR" -lt 3

?

case/esac?

case命令可類比C語言的switch/case語句,esac表示case語句塊的結(jié)束。C語言的case只能匹配整型或字符型常量表達式,而Shell腳本的case可以匹配字符串和Wildcard,每個匹配分支可以有若干條命令,末尾必須以;;結(jié)束,執(zhí)行時找到第一個匹配的分支并執(zhí)行相應(yīng)的命令,然后直接跳到esac之后,不需要像C語言一樣用break跳出。?

? ? #! /bin/sh

?

? ? echo "Is it morning? Please answer yes or no."

? ? read YES_OR_NO

? ? case "$YES_OR_NO" in

? ? yes|y|Yes|YES)

? ? ? echo "Good Morning!";;

? ? [nN]*)

? ? ? echo "Good Afternoon!";;

? ? *)

? ? ? echo "Sorry, $YES_OR_NO not recognized. Enter yes or no."

? ? ? exit 1;;

? ? esac

? ? exit 0

?

使用case語句的例子可以在系統(tǒng)服務(wù)的腳本目錄/etc/init.d中找到。這個目錄下的腳本大多具有這種形式(以/etc/init.d/nfs-kernel-server為例):?

? ? case "$1" in

? ? ? ? start)

? ? ? ? ? ? ...

? ? ? ? ;;

? ? ? ? stop)

? ? ? ? ? ? ...

? ? ? ? ;;

? ? ? ? reload | force-reload)

? ? ? ? ? ? ...

? ? ? ? ;;

? ? ? ? restart)

? ? ? ? ...

? ? ? ? *)

? ? ? ? ? ? log_success_msg "Usage: nfs-kernel-server {start|stop|status|reload|force-reload|restart}"

? ? ? ? ? ? exit 1

? ? ? ? ;;

? ? esac

?

啟動nfs-kernel-server服務(wù)的命令是?

$ sudo /etc/init.d/nfs-kernel-server start

?

$1是一個特殊變量,在執(zhí)行腳本時自動取值為第一個命令行參數(shù),也就是start,所以進入start)分支執(zhí)行相關(guān)的命令。同理,命令行參數(shù)指定為stop、reload或restart可以進入其它分支執(zhí)行停止服務(wù)、重新加載配置文件或重新啟動服務(wù)的相關(guān)命令。?

for/do/done?

Shell腳本的for循環(huán)結(jié)構(gòu)和C語言很不一樣,它類似于某些編程語言的foreach循環(huán)。例如:?

? ? #! /bin/sh

?

? ? for FRUIT in apple banana pear; do

? ? ? echo "I like $FRUIT"

? ? done

?

FRUIT是一個循環(huán)變量,第一次循環(huán)$FRUIT的取值是apple,第二次取值是banana,第三次取值是pear。再比如,要將當前目錄下的chap0、chap1、chap2等文件名改為chap0~、chap1~、chap2~等(按慣例,末尾有~字符的文件名表示臨時文件),這個命令可以這樣寫:

?

$ for FILENAME in chap?; do mv $FILENAME $FILENAME~; done

?

也可以這樣寫:?

$ for FILENAME in `ls chap?`; do mv $FILENAME $FILENAME~; done

?

while/do/done?

while的用法和C語言類似。比如一個驗證密碼的腳本:?

? ? #! /bin/sh

?

? ? echo "Enter password:"

? ? read TRY

? ? while [ "$TRY" != "secret" ]; do

? ? ? echo "Sorry, try again"

? ? ? read TRY

? ? done

?

下面的例子通過算術(shù)運算控制循環(huán)的次數(shù):?

? ? #! /bin/sh

?

? ? COUNTER=1

? ? while [ "$COUNTER" -lt 10 ]; do

? ? ? echo "Here we go again"

? ? ? COUNTER=$(($COUNTER+1))

? ? done

?

Shell還有until循環(huán),類似C語言的do...while循環(huán)。本章從略。?

break和continue?

break[n]可以指定跳出幾層循環(huán),continue跳過本次循環(huán)步,沒跳出整個循環(huán)。?

break跳出,continue跳過。?

習題?

1、把上面驗證密碼的程序修改一下,如果用戶輸錯五次密碼就報錯退出。?

位置參數(shù)和特殊變量?

有很多特殊變量是被Shell自動賦值的,我們已經(jīng)遇到了$?和$1,現(xiàn)在總結(jié)一下:?

常用的位置參數(shù)和特殊變量?

$0? 相當于C語言main函數(shù)的argv[0]

$1、$2...? ? 這些稱為位置參數(shù)(Positional Parameter),相當于C語言main函數(shù)的argv[1]、argv[2]...

$#? 相當于C語言main函數(shù)的argc - 1,注意這里的#后面不表示注釋

$@? 表示參數(shù)列表"$1" "$2" ...,例如可以用在for循環(huán)中的in后面。

$*? 表示參數(shù)列表"$1" "$2" ...,同上

$?? 上一條命令的Exit Status

$$? 當前進程號

?

位置參數(shù)可以用shift命令左移。比如shift 3表示原來的$4現(xiàn)在變成$1,原來的$5現(xiàn)在變成$2等等,原來的$1、$2、$3丟棄,$0不移動。不帶參數(shù)的shift命令相當于shift 1。例如:?

? ? #! /bin/sh

?

? ? echo "The program $0 is now running"

? ? echo "The first parameter is $1"

? ? echo "The second parameter is $2"

? ? echo "The parameter list is $@"

? ? shift

? ? echo "The first parameter is $1"

? ? echo "The second parameter is $2"

? ? echo "The parameter list is $@"

?

shell輸入輸出?

echo?

echo顯示文本行或變量,或者把字符串輸入到文件。?

echo [option] string

-e 解析轉(zhuǎn)義字符

-n 不回車換行。默認情況echo回顯的內(nèi)容后面跟一個回車換行。

echo "hello\n\n"

echo -e "hello\n\n"

echo? "hello"

echo -n "hello"

?

管道|?

可以通過管道把一個命令的輸出傳遞給另一個命令做輸入。管道用豎線表示。?

cat myfile | more

ls -l | grep "myfile"

df -k | awk '{print $1}' | grep -v "文件系統(tǒng)"

df -k 查看磁盤空間,找到第一列,去除“文件系統(tǒng)”,并輸出

?

tee?

tee命令把結(jié)果輸出到標準輸出,另一個副本輸出到相應(yīng)文件。?

df -k | awk '{print $1}' | grep -v "文件系統(tǒng)" | tee a.txt

?

tee -a a.txt表示追加操作。

df -k | awk '{print $1}' | grep -v "文件系統(tǒng)" | tee -a a.txt

?

文件重定向?

cmd > file? ? ? ? ? ? ?把標準輸出重定向到新文件中

cmd >> file? ? ? ? ? ? 追加

cmd > file 2>&1? ? ? ? 標準出錯也重定向到1所指向的file里

cmd >> file 2>&1

cmd < file1 > file2? ? 輸入輸出都定向到文件里

cmd < &fd? ? ? ? ? ? ? 把文件描述符fd作為標準輸入

cmd > &fd? ? ? ? ? ? ? 把文件描述符fd作為標準輸出

cmd < &-? ? ? ? ? ? ? ?關(guān)閉標準輸入

?

函數(shù)?

和C語言類似,Shell中也有函數(shù)的概念,但是函數(shù)定義中沒有返回值也沒有參數(shù)列表。例如:?

? ? #! /bin/sh

?

? ? foo(){ echo "Function foo is called";}

? ? echo "-=start=-"

? ? foo

? ? echo "-=end=-"

?

注意函數(shù)體的左花括號'{'和后面的命令之間必須有空格或換行,如果將最后一條命令和右花括號'}'寫在同一行,命令末尾必須有;號。?

在定義foo()函數(shù)時并不執(zhí)行函數(shù)體中的命令,就像定義變量一樣,只是給foo這個名字一個定義,到后面調(diào)用foo函數(shù)的時候(注意Shell中的函數(shù)調(diào)用不寫括號)才執(zhí)行函數(shù)體中的命令。Shell腳本中的函數(shù)必須先定義后調(diào)用,一般把函數(shù)定義都寫在腳本的前面,把函數(shù)調(diào)用和其它命令寫在腳本的最后(類似C語言中的main函數(shù),這才是整個腳本實際開始執(zhí)行命令的地方)。?

Shell函數(shù)沒有參數(shù)列表并不表示不能傳參數(shù),事實上,函數(shù)就像是迷你腳本,調(diào)用函數(shù)時可以傳任意個參數(shù),在函數(shù)內(nèi)同樣是用$0、$1、$2等變量來提取參數(shù),函數(shù)中的位置參數(shù)相當于函數(shù)的局部變量,改變這些變量并不會影響函數(shù)外面的$0、$1、$2等變量。函數(shù)中可以用return命令返回,如果return后面跟一個數(shù)字則表示函數(shù)的Exit Status。?

下面這個腳本可以一次創(chuàng)建多個目錄,各目錄名通過命令行參數(shù)傳入,腳本逐個測試各目錄是否存在,如果目錄不存在,首先打印信息然后試著創(chuàng)建該目錄。?

? ? #! /bin/sh

?

? ? is_directory()

? ? {

? ? ? DIR_NAME=$1

? ? ? if [ ! -d $DIR_NAME ]; then

? ? ? ? return 1

? ? ? else

? ? ? ? return 0

? ? ? fi

? ? }

?

? ? for DIR in "$@"; do

? ? ? if is_directory "$DIR"

? ? ? then :

? ? ? else

? ? ? ? echo "$DIR doesn't exist. Creating it now..."

? ? ? ? mkdir $DIR > /dev/null 2>&1

? ? ? ? if [ $? -ne 0 ]; then

? ? ? ? ? echo "Cannot create directory $DIR"

? ? ? ? ? exit 1

? ? ? ? fi

? ? ? fi

? ? done

?

注意is_directory()返回0表示真返回1表示假。?

Shell腳本的調(diào)試方法?

Shell提供了一些用于調(diào)試腳本的選項,如下所示:?

-n?

讀一遍腳本中的命令但不執(zhí)行,用于檢查腳本中的語法錯誤?

-v?

一邊執(zhí)行腳本,一邊將執(zhí)行過的腳本命令打印到標準錯誤輸出?

-x?

提供跟蹤執(zhí)行信息,將執(zhí)行的每一條命令和結(jié)果依次打印出來?

使用這些選項有三種方法,一是在命令行提供參數(shù)?

? ? $ sh -x ./script.sh

?

二是在腳本開頭提供參數(shù)?

? ? #! /bin/sh -x

?

第三種方法是在腳本中用set命令啟用或禁用參數(shù)?

? ? #! /bin/sh

? ? if [ -z "$1" ]; then

? ? ? set -x

? ? ? echo "ERROR: Insufficient Args."

? ? ? exit 1

? ? ? set +x

? ? fi

?

set -x和set +x分別表示啟用和禁用-x參數(shù),這樣可以只對腳本中的某一段進行跟蹤調(diào)試。?

正則表達式?

以前我們用grep在一個文件中找出包含某些字符串的行,比如在頭文件中找出一個宏定義。其實grep還可以找出符合某個模式(Pattern)的一類字符串。例如找出所有符合xxxxx@xxxx.xxx模式的字符串(也就是email地址),要求x字符可以是字母、數(shù)字、下劃線、小數(shù)點或減號,email地址的每一部分可以有一個或多個x字符,例如abc.d@ef.com、1_2@987-6.54,當然符合這個模式的不全是合法的email地址,但至少可以做一次初步篩選,篩掉a.b、c@d等肯定不是email地址的字符串。再比如,找出所有符合yyy.yyy.yyy.yyy模式的字符串(也就是IP地址),要求y是0-9的數(shù)字,IP地址的每一部分可以有1-3個y字符。?

如果要用grep查找一個模式,如何表示這個模式,這一類字符串,而不是一個特定的字符串呢?從這兩個簡單的例子可以看出,要表示一個模式至少應(yīng)該包含以下信息:?

字符類(Character Class):如上例的x和y,它們在模式中表示一個字符,但是取值范圍是一類字符中的任意一個。?

數(shù)量限定符(Quantifier): 郵件地址的每一部分可以有一個或多個x字符,IP地址的每一部分可以有1-3個y字符?

各種字符類以及普通字符之間的位置關(guān)系:例如郵件地址分三部分,用普通字符@和.隔開,IP地址分四部分,用.隔開,每一部分都可以用字符類和數(shù)量限定符描述。為了表示位置關(guān)系,還有位置限定符(Anchor)的概念,將在下面介紹。?

規(guī)定一些特殊語法表示字符類、數(shù)量限定符和位置關(guān)系,然后用這些特殊語法和普通字符一起表示一個模式,這就是正則表達式(Regular Expression)。例如email地址的正則表達式可以寫成[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+.[a-zA-Z0-9_.-]+,IP地址的正則表達式可以寫成[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}。下一節(jié)介紹正則表達式的語法,我們先看看正則表達式在grep中怎么用。例如有這樣一個文本文件testfile:?

192.168.1.1

1234.234.04.5678

123.4234.045.678

abcde

?

查找其中包含IP地址的行:?

$ egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' testfile

192.168.1.1

1234.234.04.5678

?

egrep相當于grep -E,表示采用Extended正則表達式語法。grep的正則表達式有Basic和Extended兩種規(guī)范,它們之間的區(qū)別下一節(jié)再解釋。另外還有fgrep命令,相當于grep -F,表示只搜索固定字符串而不搜索正則表達式模式,不會按正則表達式的語法解釋后面的參數(shù)。?

注意正則表達式參數(shù)用單引號括起來了,因為正則表達式中用到的很多特殊字符在Shell中也有特殊含義(例如\),只有用單引號括起來才能保證這些字符原封不動地傳給grep命令,而不會被Shell解釋掉。?

192.168.1.1符合上述模式,由三個.隔開的四段組成,每段都是1到3個數(shù)字,所以這一行被找出來了,可為什么1234.234.04.5678也被找出來了呢?因為grep找的是包含某一模式的行,這一行包含一個符合模式的字符串234.234.04.567。相反,123.4234.045.678這一行不包含符合模式的字符串,所以不會被找出來。?

grep是一種查找過濾工具,正則表達式在grep中用來查找符合模式的字符串。其實正則表達式還有一個重要的應(yīng)用是驗證用戶輸入是否合法,例如用戶通過網(wǎng)頁表單提交自己的email地址,就需要用程序驗證一下是不是合法的email地址,這個工作可以在網(wǎng)頁的Javascript中做,也可以在網(wǎng)站后臺的程序中做,例如PHP、Perl、Python、Ruby、Java或C,所有這些語言都支持正則表達式,可以說,目前不支持正則表達式的編程語言實在很少見。除了編程語言之外,很多UNIX命令和工具也都支持正則表達式,例如grep、vi、sed、awk、emacs等等。“正則表達式”就像“變量”一樣,它是一個廣泛的概念,而不是某一種工具或編程語言的特性。?

基本語法?

我們知道C的變量和Shell腳本變量的定義和使用方法很不相同,表達能力也不相同,C的變量有各種類型,而Shell腳本變量都是字符串。同樣道理,各種工具和編程語言所使用的正則表達式規(guī)范的語法并不相同,表達能力也各不相同,有的正則表達式規(guī)范引入很多擴展,能表達更復(fù)雜的模式,但各種正則表達式規(guī)范的基本概念都是相通的。本節(jié)介紹egrep(1)所使用的正則表達式,它大致上符合POSIX正則表達式規(guī)范,詳見regex(7)(看這個man page對你的英文絕對是很好的鍛煉)。希望讀者仿照上一節(jié)的例子,一邊學習語法,一邊用egrep命令做實驗。?

字符類?

字符? 含義? ? ? ? ? ? ? ?舉例

.? ?匹配任意一個字符? ? ? ? ? abc.可以匹配abcd、abc9等

[]? 匹配括號中的任意一個字符? [abc]d可以匹配ad、bd或cd

-? ?在[]括號內(nèi)表示字符范圍? ? [0-9a-fA-F]可以匹配一位十六進制數(shù)字

^? ?位于[]括號內(nèi)的開頭,匹配除括號中的字符之外的任意一個字符? [^xy]匹配除xy之外的任一字符,因此[^xy]1可以匹配a1、b1但不匹配x1、y1

?

[[:xxx:]]? ?grep工具預(yù)定義的一些命名字符類? ?[[:alpha:]]匹配一個字母,[[:digit:]]匹配一個數(shù)字

?

數(shù)量限定符?

字符? ? 含義? ? ? ? ? ? ? ? ? ? ? ? ? ? ?舉例

?? ?緊跟在它前面的單元應(yīng)匹配零次或一次? ? [0-9]?\.[0-9]匹配0.0、2.3、.5等,由于.在正則表達式中是一個特殊字符,所以需要用\轉(zhuǎn)義一下,取字面值

+? ?緊跟在它前面的單元應(yīng)匹配一次或多次? ? [a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+\.[a-zA-Z0-9_.-]+匹配email地址

*? ?緊跟在它前面的單元應(yīng)匹配零次或多次? ? [0-9][0-9]*匹配至少一位數(shù)字,等價于[0-9]+,[a-zA-Z_]+[a-zA-Z_0-9]*匹配C語言的標識符

{N} 緊跟在它前面的單元應(yīng)精確匹配N次? ? ? ?[1-9][0-9]{2}匹配從100到999的整數(shù)

{N,}? 緊跟在它前面的單元應(yīng)匹配至少N次? ? ?[1-9][0-9]{2,}匹配三位以上(含三位)的整數(shù)

{,M}? 緊跟在它前面的單元應(yīng)匹配最多M次? ? ?[0-9]{,1}相當于[0-9]?

{N,M} 緊跟在它前面的單元應(yīng)匹配至少N次,最多M次? ?[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}匹配IP地址

?

再次注意grep找的是包含某一模式的行,而不是完全匹配某一模式的行。再舉個例子,如果文本文件的內(nèi)容是?

aaabc

aad

efg

?

查找a*這個模式的結(jié)果是三行都被找出來了?

$ egrep 'a*' testfile?

aabc

aad

efg

?

a匹配0個或多個a,而第三行包含0個a,所以也包含了這一模式。單獨用a這樣的正則表達式做查找沒什么意義,一般是把a*作為正則表達式的一部分來用。?

位置限定符?

? ? 字符? 含義? ? ? ? ? ? ? ? 舉例

? ? ^? ?匹配行首的位置? ? ? ? ^Content匹配位于一行開頭的Content

? ? $? ?匹配行末的位置? ? ? ? ;$匹配位于一行結(jié)尾的;號,^$匹配空行

? ? \<? 匹配單詞開頭的位置? ? \<th匹配... this,但不匹配ethernet、tenth

? ? \>? 匹配單詞結(jié)尾的位置? ? p\>匹配leap ...,但不匹配parent、sleepy

? ? \b? 匹配單詞開頭或結(jié)尾的位置? ? ?\bat\b匹配... at ...,但不匹配cat、atexit、batch

? ? \B? 匹配非單詞開頭和結(jié)尾的位置? ?\Bat\B匹配battery,但不匹配... attend、hat ...

?

位置限定符可以幫助grep更準確地查找,例如上一節(jié)我們用[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}查找IP地址,找到這兩行?

192.168.1.1

1234.234.04.5678

?

如果用^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$查找,就可以把1234.234.04.5678這一行過濾掉了。?

其它特殊字符?

字符? 含義? ? 舉例

\? ? 轉(zhuǎn)義字符,普通字符轉(zhuǎn)義為特殊字符,特殊字符轉(zhuǎn)義為普通字符? ?普通字符<寫成\<表示單詞開頭的位置,特殊字符.寫成\.以及\寫成\\就當作普通字符來匹配

()? ?將正則表達式的一部分括起來組成一個單元,可以對整個單元使用數(shù)量限定符? ? ([0-9]{1,3}\.){3}[0-9]{1,3}匹配IP地址

|? ? 連接兩個子表達式,表示或的關(guān)系? ? ?n(o|either)匹配no或neither

?

以上介紹的是grep正則表達式的Extended規(guī)范,Basic規(guī)范也有這些語法,只是字符?+{}|()應(yīng)解釋為普通字符,要表示上述特殊含義則需要加\轉(zhuǎn)義。如果用grep而不是egrep,并且不加-E參數(shù),則應(yīng)該遵照Basic規(guī)范來寫正則表達式。?

grep?

1.作用?

Linux系統(tǒng)中g(shù)rep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權(quán)限是所有用戶。?

grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字符表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。?

2.格式?

grep [options]

?

3.主要參數(shù)?

grep --help

?

[options]主要參數(shù):

-c:只輸出匹配行的計數(shù)。

-i:不區(qū)分大小寫。

-h:查詢多文件時不顯示文件名。

-l:查詢多文件時只輸出包含匹配字符的文件名。

-n:顯示匹配行及 行號。

-s:不顯示不存在或無匹配文本的錯誤信息。

-v:顯示不包含匹配文本的所有行。

--color=auto :可以將找到的關(guān)鍵詞部分加上顏色的顯示。

?

pattern正則表達式主要參數(shù):?

\: 忽略正則表達式中特殊字符的原有含義。

^:匹配正則表達式的開始行。

$: 匹配正則表達式的結(jié)束行。

\<:從匹配正則表達 式的行開始。

\>:到匹配正則表達式的行結(jié)束。

[ ]:單個字符,如[A]即A符合要求 。

[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。

.:所有的單個字符。

*:有字符,長度可以為0。

?

4.grep命令使用簡單實例?

$ grep ‘test’ d*

顯示所有以d開頭的文件中包含 test的行。

?

$ grep ‘test’ aa bb cc

顯示在aa,bb,cc文件中匹配test的行。

?

$ grep ‘[a-z]\{5\}’ aa

顯示所有包含每個字符串至少有5個連續(xù)小寫字符的字符串的行。

?

$ grep ‘w\(es\)t.*\1′ aa

如果west被匹配,則es就被存儲到內(nèi)存中,并標記為1,然后搜索任意個字符(.*),這些字符后面緊跟著 另外一個es(\1),找到就顯示該行。如果用egrep或grep -E,就不用”\”號進行轉(zhuǎn)義,直接寫成’w(es)t.*\1′就可以了。

?

5.grep命令使用復(fù)雜實例?

明確要求搜索子目錄:?

grep -r

?

或忽略子目錄:?

grep -d skip

?

如果有很多輸出時,您可以通過管道將其轉(zhuǎn)到’less’上閱讀:?

$ grep magic /usr/src/Linux/Documentation/* | less

?

這樣,您就可以更方便地閱讀。?

有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,’grep’會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 ,然后再試。?

下面還有一些有意思的命令行參數(shù):?

grep -i pattern files :不區(qū)分大小寫地搜索。默認情況區(qū)分大小寫,

grep -l pattern files :只列出匹配的文件名,

grep -L pattern files :列出不匹配的文件名,

grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

grep -C number pattern files :匹配的上下文分別顯示[number]行,

grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,

例如:grep "abc\|xyz" testfile? ? 表示過濾包含abc或xyz的行

grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。

?

grep -n pattern files? 即可顯示行號信息

?

grep -c pattern files? 即可查找總行數(shù)

?

這里還有些用于搜索的特殊符號:?

\< 和 \> 分別標注單詞的開始與結(jié)尾。

例如:

grep man * 會匹配 ‘Batman’、’manic’、’man’等,

grep ‘\<man’ * 匹配’manic’和’man’,但不是’Batman’,

grep ‘\<man\>’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。

‘^’:指匹配的字符串在行首,

‘$’:指匹配的字符串在行 尾,

?

find?

由于find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統(tǒng)中含有網(wǎng)絡(luò)文件系統(tǒng)( NFS),find命令在該文件系統(tǒng)中同樣有效,只要你具有相應(yīng)的權(quán)限。?

在運行一個非常消耗資源的find命令時,很多人都傾向于把它放在后臺執(zhí)行,因為遍歷一個大的文件系統(tǒng)可能會花費很長的時間(這里是指30G字節(jié)以上的文件系統(tǒng))。?

一、find 命令格式?

1、find命令的一般形式為;?

find pathname -options [-print -exec -ok ...]

?

2、find命令的參數(shù);?

pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統(tǒng)根目錄,遞歸查找。

-print: find命令將匹配的文件輸出到標準輸出。

-exec: find命令對匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為'command' {? } \;,注意{? ?}和\;之間的空格。

-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個命令之前,都會給出提示,讓用戶來確定是否執(zhí)行。

?

3、find命令選項?

-name? ?按照文件名查找文件。

-perm? ?按照文件權(quán)限來查找文件。

-prune? 使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那么-prune將被find命令忽略。

-user? ?按照文件屬主來查找文件。

-group? 按照文件所屬的組來查找文件。

-mtime -n +n 按照文件的更改時間來查找文件,-n表示文件更改時間距現(xiàn)在n天以內(nèi),+n表示文件更改時間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。

-nogroup 查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。

-nouser 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。

-newer file1 ! file2 查找更改時間比文件file1新但比文件file2舊的文件。

-type? ?查找某一類型的文件,諸如:

? ? b - 塊設(shè)備文件。

? ? d - 目錄。

? ? c - 字符設(shè)備文件。

? ? p - 管道文件。

? ? l - 符號鏈接文件。

? ? f - 普通文件。

-size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以字節(jié)計。

-depth? ?在查找文件時,首先查找當前目錄中的文件,然后再在其子目錄中查找。

-fstype? 查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。

-mount? ?在查找文件時不跨越文件系統(tǒng)mount點。

-follow? 如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。

?

另外,下面三個的區(qū)別:?

-amin n? ?查找系統(tǒng)中最后N分鐘訪問的文件

-atime n? 查找系統(tǒng)中最后n*24小時訪問的文件

-cmin n? ?查找系統(tǒng)中最后N分鐘被改變文件狀態(tài)的文件

-ctime n? 查找系統(tǒng)中最后n*24小時被改變文件狀態(tài)的文件

-mmin n? ?查找系統(tǒng)中最后N分鐘被改變文件數(shù)據(jù)的文件

-mtime n? 查找系統(tǒng)中最后n*24小時被改變文件數(shù)據(jù)的文件

?

4、使用exec或ok來執(zhí)行shell命令?

使用find時,只要把想要的操作寫在一個文件里,就可以用exec來配合find查找,很方便 在有些操作系統(tǒng)中只允許-exec選項執(zhí)行諸如ls或ls -l這樣的命令。大多數(shù)用戶使用這一選項是為了查找舊文件并刪除它們。建議在真正執(zhí)行rm命令刪除文件之前,最好先用ls命令看一下,確認它們是所要刪除的文件。?

exec選項后面跟隨著所要執(zhí)行的命令或腳本,然后是一對兒{},一個空格和一個\,最后是一個分號。為了使用exec選項,必須要同時使用print選項。如果驗證一下find命令,會發(fā)現(xiàn)該命令只輸出從當前路徑起的相對路徑及文件名。?

例如:為了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec選項中?

# find . -type f -exec ls -l {} \;

?

上面的例子中,find命令匹配到了當前目錄下的所有普通文件,并在-exec選項中使用ls -l命令將它們列出。?

在/logs目錄中查找更改時間在5日以前的文件并刪除它們:?

$ find logs -type f -mtime +5 -exec rm {} \;

?

記住:在shell中用任何方式刪除文件之前,應(yīng)當先查看相應(yīng)的文件,一定要小心!當使用諸如mv或rm命令時,可以使用-exec選項的安全模式。它將在對每個匹配到的文件進行操作之前提示你。?

在下面的例子中, find命令在當前目錄中查找所有文件名以.LOG結(jié)尾、更改時間在5日以上的文件,并刪除它們,只不過在刪除之前先給出提示。?

$ find . -name "*.conf"? -mtime +5 -ok rm {? } \;

< rm ... ./conf/httpd.conf > ? n

?

按y鍵刪除文件,按n鍵不刪除。?

任何形式的命令都可以在-exec選項中使用。?

在下面的例子中我們使用grep命令。find命令首先匹配所有文件名為“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后執(zhí)行g(shù)rep命令看看在這些文件中是否存在一個itcast用戶。?

# find /etc -name "passwd*" -exec grep "itcast" {? } \;

?

itcast:x:1000:1000::/home/itcast:/bin/bash

?

選項詳解?

1.使用name選項?

文件名選項是find命令最常用的選項,要么單獨使用該選項,要么和其他選項一起使用。?

可以使用某種文件名模式來匹配文件,記住要用引號將文件名模式引起來。?

不管當前路徑是什么,如果想要在自己的根目錄$HOME中查找文件名符合*.txt的文件,使用~作為 'pathname'參數(shù),波浪號~代表了你的$HOME目錄。?

$ find ~ -name "*.txt" -print

?

想要在當前目錄及子目錄中查找所有的‘ *.txt’文件,可以用:?

$ find . -name "*.txt" -print

?

想要的當前目錄及子目錄中查找文件名以一個大寫字母開頭的文件,可以用:?

$ find . -name "[A-Z]*" -print

?

想要在/etc目錄中查找文件名以host開頭的文件,可以用:?

$ find /etc -name "host*" -print

?

想要查找$HOME目錄中的文件,可以用:?

$ find ~ -name "*" -print 或find . -print

?

要想讓系統(tǒng)高負荷運行,就從根目錄開始查找所有的文件:?

$ find / -name "*" -print

?

如果想在當前目錄查找文件名以兩個小寫字母開頭,跟著是兩個數(shù)字,最后是.txt的文件,下面的命令就能夠返回例如名為ax37.txt的文件:?

$find . -name "[a-z][a-z][0-9][0-9].txt" -print

?

2、用perm選項?

按照文件權(quán)限模式用-perm選項,按文件權(quán)限模式來查找文件的話。最好使用八進制的權(quán)限表示法。?

如在當前目錄下查找文件權(quán)限位為755的文件,即文件屬主可以讀、寫、執(zhí)行,其他用戶可以讀、執(zhí)行的文件,可以用:?

$ find . -perm 755 -print

?

還有一種表達方法:在八進制數(shù)字前面要加一個橫杠-,表示都匹配,如-007就相當于777,-006相當于666?

# ls -l

# find . -perm 006

# find . -perm -006

?

-perm mode:文件許可正好符合mode

-perm +mode:文件許可部分符合mode

-perm -mode: 文件許可完全符合mode

?

3、忽略某個目錄?

如果在查找文件時希望忽略某個目錄,因為你知道那個目錄中沒有你所要查找的文件,那么可以使用-prune選項來指出需要忽略的目錄。在使用-prune選項時要當心,因為如果你同時使用了-depth選項,那么-prune選項就會被find命令忽略。?

如果希望在/apps目錄下查找文件,但不希望在/apps/bin目錄下查找,可以用:?

$ find /apps -path "/apps/bin" -prune -o -print

?

4、使用find查找文件的時候怎么避開某個文件目錄?

比如要在/home/itcast目錄下查找不在dir1子目錄之內(nèi)的所有文件?

find /home/itcast -path "/home/itcast/dir1" -prune -o -print

?

避開多個文件夾?

find /home \( -path /home/itcast/f1 -o -path /home/itcast/f2 \) -prune -o -print

?

注意(前的\,注意(后的空格。?

5、使用user和nouser選項?

按文件屬主查找文件,如在$HOME目錄中查找文件屬主為itcast的文件,可以用:?

$ find ~ -user itcast -print

?

在/etc目錄下查找文件屬主為uucp的文件:?

$ find /etc -user uucp -print

?

為了查找屬主帳戶已經(jīng)被刪除的文件,可以使用-nouser選項。這樣就能夠找到那些屬主在/etc/passwd文件中沒有有效帳戶的文件。在使用-nouser選項時,不必給出用戶名; find命令能夠為你完成相應(yīng)的工作。?

例如,希望在/home目錄下查找所有的這類文件,可以用:?

$ find /home -nouser -print

?

6、使用group和nogroup選項?

就像user和nouser選項一樣,針對文件所屬于的用戶組, find命令也具有同樣的選項,為了在/apps目錄下查找屬于itcast用戶組的文件,可以用:?

$ find /apps -group itcast -print

?

要查找沒有有效所屬用戶組的所有文件,可以使用nogroup選項。下面的find命令從文件系統(tǒng)的根目錄處查找這樣的文件?

$ find / -nogroup -print

?

7、按照更改時間或訪問時間等查找文件?

如果希望按照更改時間來查找文件,可以使用mtime,atime或ctime選項。如果系統(tǒng)突然沒有可用空間了,很有可能某一個文件的長度在此期間增長迅速,這時就可以用mtime選項來查找這樣的文件。?

用減號-來限定更改時間在距今n日以內(nèi)的文件,而用加號+來限定更改時間在距今n日以前的文件。?

希望在系統(tǒng)根目錄下查找更改時間在5日以內(nèi)的文件,可以用:?

$ find / -mtime -5 -print

?

為了在/var/adm目錄下查找更改時間在3日以前的文件,可以用:?

$ find /var/adm -mtime +3 -print

?

8、查找比某個文件新或舊的文件?

如果希望查找更改時間比某個文件新但比另一個文件舊的所有文件,可以使用-newer選項。它的一般形式為:?

newest_file_name ! oldest_file_name

?

其中,!是邏輯非符號。

?

9、使用type選項?

在/etc目錄下查找所有的目錄,可以用:?

$ find /etc -type d -print

?

在當前目錄下查找除目錄以外的所有類型的文件,可以用:?

$ find . ! -type d -print

?

在/etc目錄下查找所有的符號鏈接文件,可以用?

$ find /etc -type l -print

?

10、使用size選項?

可以按照文件長度來查找文件,這里所指的文件長度既可以用塊(block)來計量,也可以用字節(jié)來計量。以字節(jié)計量文件長度的表達形式為N c;以塊計量文件長度只用數(shù)字表示即可。?

在按照文件長度查找文件時,一般使用這種以字節(jié)表示的文件長度,在查看文件系統(tǒng)的大小,因為這時使用塊來計量更容易轉(zhuǎn)換。 在當前目錄下查找文件長度大于1 M字節(jié)的文件:?

$ find . -size +1000000c -print

?

在/home/apache目錄下查找文件長度恰好為100字節(jié)的文件:?

$ find /home/apache -size 100c -print

?

在當前目錄下查找長度超過10塊的文件(一塊等于512字節(jié)):?

$ find . -size +10 -print

?

11、使用depth選項?

在使用find命令時,可能希望先匹配所有的文件,再在子目錄中查找。使用depth選項就可以使find命令這樣做。這樣做的一個原因就是,當在使用find命令向磁帶上備份文件系統(tǒng)時,希望首先備份所有的文件,其次再備份子目錄中的文件。?

在下面的例子中, find命令從文件系統(tǒng)的根目錄開始,查找一個名為CON.FILE的文件。?

它將首先匹配所有的文件然后再進入子目錄中查找。?

$ find / -name "CON.FILE" -depth -print

?

12、使用mount選項?

在當前的文件系統(tǒng)中查找文件(不進入其他文件系統(tǒng)),可以使用find命令的mount選項。?

從當前目錄開始查找位于本文件系統(tǒng)中文件名以XC結(jié)尾的文件:?

$ find . -name "*.XC" -mount -print

?

練習:請找出你10天內(nèi)所訪問或修改過的.c和.cpp文件。?

find命令的例子;?

1、查找當前用戶主目錄下的所有文件:?

下面兩種方法都可以使用?

$ find $HOME -print

$ find ~ -print

?

2、讓當前目錄中文件屬主具有讀、寫權(quán)限,并且文件所屬組的用戶和其他用戶具有讀權(quán)限的文件;?

$ find . -type f -perm 644 -exec ls -l {? } \;

?

3、為了查找系統(tǒng)中所有文件長度為0的普通文件,并列出它們的完整路徑;?

$ find / -type f -size 0 -exec ls -l {? } \;

?

4、查找/var/logs目錄中更改時間在7日以前的普通文件,并在刪除之前詢問它們;?

$ find /var/logs -type f -mtime +7 -ok rm {? } \;

?

5、為了查找系統(tǒng)中所有屬于root組的文件;?

$find . -group root -exec ls -l {? } \;

?

6、find命令將刪除當目錄中訪問時間在7日以來、含有數(shù)字后綴的admin.log文件。?

該命令只檢查三位數(shù)字,所以相應(yīng)文件的后綴不要超過999。先建幾個admin.log*的文件 ,才能使用下面這個命令?

$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7? -ok rm {? } \;

?

7、為了查找當前文件系統(tǒng)中的所有目錄并排序;?

$ find . -type d | sort

?

三、xargs?

xargs - build and execute command lines from standard input?

在使用find命令的-exec選項處理匹配到的文件時, find命令將所有匹配到的文件一起傳遞給exec執(zhí)行。但有些系統(tǒng)對能夠傳遞給exec的命令長度有限制,這樣在find命令運行幾分鐘之后,就會出現(xiàn) 溢出錯誤。錯誤信息通常是“參數(shù)列太長”或“參數(shù)列溢出”。這就是xargs命令的用處所在,特別是與find命令一起使用。?

find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是全部,不像-exec選項那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,并如此繼續(xù)下去。?

在有些系統(tǒng)中,使用-exec選項會為處理每一個匹配到的文件而發(fā)起一個相應(yīng)的進程,并非將匹配到的文件全部作為參數(shù)一次執(zhí)行;這樣在有些情況下就會出現(xiàn)進程過多,系統(tǒng)性能下降的問題,因而效率不高;?

而使用xargs命令則只有一個進程。另外,在使用xargs命令時,究竟是一次獲取所有的參數(shù),還是分批取得參數(shù),以及每一次獲取參數(shù)的數(shù)目都會根據(jù)該命令的選項及系統(tǒng)內(nèi)核中相應(yīng)的可調(diào)參數(shù)來確定。?

來看看xargs命令是如何同find命令一起使用的,并給出一些例子。?

下面的例子查找系統(tǒng)中的每一個普通文件,然后使用xargs命令來測試它們分別屬于哪類文 件?

#find . -type f -print | xargs file

?

在當前目錄下查找所有用戶具有讀、寫和執(zhí)行權(quán)限的文件,并收回相應(yīng)的寫權(quán)限:?

# ls -l

# find . -perm -7 -print | xargs chmod o-w

# ls -l

?

用grep命令在所有的普通文件中搜索hello這個詞:?

# find . -type f -print | xargs grep "hello"

?

用grep命令在當前目錄下的所有普通文件中搜索hello這個詞:?

# find . -name \* -type f -print | xargs grep "hello"

?

注意,在上面的例子中, \用來取消find命令中的*在shell中的特殊含義。?

find命令配合使用exec和xargs可以使用戶對所匹配到的文件執(zhí)行幾乎所有的命令。?

sed?

sed意為流編輯器(Stream Editor),在Shell腳本和Makefile中作為過濾器使用非常普遍,也就是把前一個程序的輸出引入sed的輸入,經(jīng)過一系列編輯命令轉(zhuǎn)換為另一種格式輸出。sed和vi都源于早期UNIX的ed工具,所以很多sed命令和vi的末行命令是相同的。?

sed命令行的基本格式為?

sed option 'script' file1 file2 ...

sed option -f scriptfile file1 file2 ...

?

選項含義:?

--version? ? ? ? ? ? 顯示sed版本。

--help? ? ? ? ? ? ? ?顯示幫助文檔。

-n,--quiet,--silent? 靜默輸出,默認情況下,sed程序在所有的腳本指令執(zhí)行完畢后,將自動打印模式空間中的內(nèi)容,這些選項可以屏蔽自動打印。

-e script? ? ? ? ? ? 允許多個腳本指令被執(zhí)行。

-f script-file,?

--file=script-file? ?從文件中讀取腳本指令,對編寫自動腳本程序來說很棒!

-i,--in-place? ? ? ? 直接修改源文件,經(jīng)過腳本指令處理后的內(nèi)容將被輸出至源文件(源文件被修改)慎用!

-l N, --line-length=N 該選項指定l指令可以輸出的行長度,l指令用于輸出非打印字符。

--posix? ? ? ? ? ? ?禁用GNU sed擴展功能。

-r, --regexp-extended? 在腳本指令中使用擴展正則表達式

-s, --separate? ? ? 默認情況下,sed將把命令行指定的多個文件名作為一個長的連續(xù)的輸入流。而GNU sed則允許把他們當作單獨的文件,這樣如正則表達式則不進行跨文件匹配。

-u, --unbuffered? ? 最低限度的緩存輸入與輸出。

?

以上僅是sed程序本身的選項功能說明,至于具體的腳本指令(即對文件內(nèi)容做的操作)后面我們會詳細描述,這里就簡單介紹幾個腳本指令操作作為sed程序的例子。?

a,append? ? ? ? 追加

i,insert? ? ? ? 插入

d,delete? ? ? ? 刪除

s,substitution? 替換

?

如:$ sed "2a itcast" ./testfile 在輸出testfile內(nèi)容的第二行后添加"itcast"。?

$ sed "2,5d" testfile

?

sed處理的文件既可以由標準輸入重定向得到,也可以當命令行參數(shù)傳入,命令行參數(shù)可以一次傳入多個文件,sed會依次處理。sed的編輯命令可以直接當命令行參數(shù)傳入,也可以寫成一個腳本文件然后用-f參數(shù)指定,編輯命令的格式為?

/pattern/action

?

其中pattern是正則表達式,action是編輯操作。sed程序一行一行讀出待處理文件,如果某一行與pattern匹配,則執(zhí)行相應(yīng)的action,如果一條命令沒有pattern而只有action,這個action將作用于待處理文件的每一行。?

常用的sed命令?

/pattern/p? 打印匹配pattern的行

/pattern/d? 刪除匹配pattern的行

/pattern/s/pattern1/pattern2/? ?查找符合pattern的行,將該行第一個匹配pattern1的字符串替換為pattern2

/pattern/s/pattern1/pattern2/g? 查找符合pattern的行,將該行所有匹配pattern1的字符串替換為pattern2

?

使用p命令需要注意,sed是把待處理文件的內(nèi)容連同處理結(jié)果一起輸出到標準輸出的,因此p命令表示除了把文件內(nèi)容打印出來之外還額外打印一遍匹配pattern的行。比如一個文件testfile的內(nèi)容是?

123

abc

456

?

打印其中包含abc的行?

$ sed '/abc/p' testfile

123

abc

abc

456

?

要想只輸出處理結(jié)果,應(yīng)加上-n選項,這種用法相當于grep命令?

$ sed -n '/abc/p' testfile

abc

?

使用d命令就不需要-n參數(shù)了,比如刪除含有abc的行?

$ sed '/abc/d' testfile

123

456

?

注意,sed命令不會修改原文件,刪除命令只表示某些行不打印輸出,而不是從原文件中刪去。?

使用查找替換命令時,可以把匹配pattern1的字符串復(fù)制到pattern2中,比如:?

$ sed 's/bc/-&-/' testfile

123

a-bc-

456

pattern2中的&表示原文件的當前行中與pattern1相匹配的字符串

?

再比如:?

$ sed 's/\([0-9]\)\([0-9]\)/-\1-~\2~/' testfile

-1-~2~3

abc

-4-~5~6

?

pattern2中的\1表示與pattern1的第一個()括號相匹配的內(nèi)容,\2表示與pattern1的第二個()括號相匹配的內(nèi)容。sed默認使用Basic正則表達式規(guī)范,如果指定了-r選項則使用Extended規(guī)范,那么()括號就不必轉(zhuǎn)義了。?

$ sed? 's/yes/no/;s/static/dhcp/'? ./testfile

注:使用分號隔開指令。

?

$ sed -e 's/yes/no/' -e 's/static/dhcp/' testfile

注:使用-e選項。

?

如果testfile的內(nèi)容是?

<html><head><title>Hello World</title></head>

<body>Welcome to the world of regexp!</body></html>

?

現(xiàn)在要去掉所有的HTML標簽,使輸出結(jié)果為?

Hello World

Welcome to the world of regexp!

?

怎么做呢?如果用下面的命令?

$ sed 's/<.*>//g' testfile

?

結(jié)果是兩個空行,把所有字符都過濾掉了。這是因為,正則表達式中的數(shù)量限定符會匹配盡可能長的字符串,這稱為貪心的(Greedy)。比如sed在處理第一行時,<.*>匹配的并不是或這樣的標簽,而是?

<html><head><title>Hello World</title>

?

這樣一整行,因為這一行開頭是<,中間是若干個任意字符,末尾是>。那么這條命令怎么改才對呢?留給同學們思考練習。?

awk?

sed以行為單位處理文件,awk比sed強的地方在于不僅能以行為單位還能以列為單位處理文件。awk缺省的行分隔符是換行,缺省的列分隔符是連續(xù)的空格和Tab,但是行分隔符和列分隔符都可以自定義,比如/etc/passwd文件的每一行有若干個字段,字段之間以:分隔,就可以重新定義awk的列分隔符為:并以列為單位處理這個文件。awk實際上是一門很復(fù)雜的腳本語言,還有像C語言一樣的分支和循環(huán)結(jié)構(gòu),但是基本用法和sed類似,awk命令行的基本形式為:?

awk option 'script' file1 file2 ...

awk option -f scriptfile file1 file2 ...

?

和sed一樣,awk處理的文件既可以由標準輸入重定向得到,也可以當命令行參數(shù)傳入,編輯命令可以直接當命令行參數(shù)傳入,也可以用-f參數(shù)指定一個腳本文件,編輯命令的格式為:?

/pattern/{actions}

condition{actions}

?

和sed類似,pattern是正則表達式,actions是一系列操作。awk程序一行一行讀出待處理文件,如果某一行與pattern匹配,或者滿足condition條件,則執(zhí)行相應(yīng)的actions,如果一條awk命令只有actions部分,則actions作用于待處理文件的每一行。比如文件testfile的內(nèi)容表示某商店的庫存量:?

ProductA? 30

ProductB? 76

ProductC? 55

?

打印每一行的第二列:?

$ awk '{print $2;}' testfile

30

76

55

?

自動變量$1、$2分別表示第一列、第二列等,類似于Shell腳本的位置參數(shù),而$0表示整個當前行。再比如,如果某種產(chǎn)品的庫存量低于75則在行末標注需要訂貨:?

$ awk '$2<75 {printf "%s\t%s\n", $0, "REORDER";} $2>=75 {print $0;}' testfile

ProductA? 30? ? REORDER

ProductB? 76

ProductC? 55? ? REORDER

?

可見awk也有和C語言非常相似的printf函數(shù)。awk命令的condition部分還可以是兩個特殊的condition-BEGIN和END,對于每個待處理文件,BEGIN后面的actions在處理整個文件之前執(zhí)行一次,END后面的actions在整個文件處理完之后執(zhí)行一次。?

awk命令可以像C語言一樣使用變量(但不需要定義變量),比如統(tǒng)計一個文件中的空行數(shù)?

$ awk '/^ *$/ {x=x+1;} END {print x;}' testfile

?

就像Shell的環(huán)境變量一樣,有些awk變量是預(yù)定義的有特殊含義的:?

awk常用的內(nèi)建變量?

FILENAME? 當前輸入文件的文件名,該變量是只讀的

NR? 當前行的行號,該變量是只讀的,R代表record

NF? 當前行所擁有的列數(shù),該變量是只讀的,F代表field

OFS 輸出格式的列分隔符,缺省是空格

FS? 輸入文件的列分融符,缺省是連續(xù)的空格和Tab

ORS 輸出格式的行分隔符,缺省是換行符

RS? 輸入文件的行分隔符,缺省是換行符

?

例如打印系統(tǒng)中的用戶帳號列表?

$ awk 'BEGIN {FS=":"} {print $1;}' /etc/passwd

?

Linux核心命令?

?

stracenetstatperftoppidstatmpstatdstatvmstatslabtopfreetoptcpdumpipnicstatdtracepingdtraceblktraceiptopiostatstap

文本處理類的命令:?

?wc wc [option] [file]...

? ? -l: 統(tǒng)計行數(shù)

? ? -c: 統(tǒng)計字節(jié)數(shù)

? ? -w;統(tǒng)計單詞數(shù)

? tr tr: 轉(zhuǎn)換字符或刪除字符

? ? tr '集合1' '集合2'

? ? tr -d '字符集合'

? cut This is a test line.

-d字符:指定分隔符

-f#: 指定要顯示字段

? ? 單個數(shù)字:一個字段

? ? 逗號分隔的多個數(shù)字:指定多個離散字段

? ? -:連續(xù)字段,如3-5;

? sort 按字符進行比較

sort [option] file...

? ? -f: 忽略字符大小寫;

? ? -n: 比較數(shù)值大小;

? ? -t: 指定分隔符

? ? -k: 指定分隔后進行比較字段

? ? -u: 重復(fù)的行,只顯示一次;

? uniq 移除重復(fù)的行

-c:顯示每行重復(fù)的次數(shù)

-d:僅顯示重復(fù)過的行

-u: 僅顯示不曾重復(fù)的行

? 工具速查鏈接 http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/index.html

?

shell習題訓(xùn)練?

求2個數(shù)之和計算1-100的和將一目錄下所有的文件的擴展名改為bak編譯當前目錄下的所有.c文件:打印root可以使用可執(zhí)行文件數(shù),處理結(jié)果: root's bins: 2306打印當前sshd的端口和進程id,處理結(jié)果: sshd Port&&pid: 22 5412 輸出本機創(chuàng)建20000個目錄所用的時間,處理結(jié)果: real? ? 0m3.367s

user? ? 0m0.066s

sys? ? ?0m1.925s

? 打印本機的交換分區(qū)大小,處理結(jié)果: Swap:1024M? 文本分析,取出/etc/password中shell出現(xiàn)的次數(shù) 第一種方法結(jié)果:

? ? ? 4 /bin/bash

? ? ? 1 /bin/sync

? ? ? 1 /sbin/halt

? ? ?31 /sbin/nologin

? ? ? 1 /sbin/shutdown

第二種方法結(jié)果:

? ? ? ? /bin/sync? ? ? ?1

? ? ? ? /bin/bash? ? ? ?1

? ? ? ? /sbin/nologin? ?30

? ? ? ? /sbin/halt? ? ? 1

? ? ? ? /sbin/shutdown? 1

? 文件整理,employee文件中記錄了工號和姓名,(提示join) employee.txt:

? ? 100 Jason Smith?

? ? 200 John Doe?

? ? 300 Sanjay Gupta?

? ? 400 Ashok Sharma?

? ? bonus文件中記錄工號和工資

bonus.txt:

? ? 100 $5,000?

? ? 200 $500?

? ? 300 $3,000?

? ? 400 $1,250?

要求把兩個文件合并并輸出如下,處理結(jié)果:

? ? 400 ashok sharma $1,250

? ? 100 jason smith? $5,000

? ? 200 john doe? $500

? ? 300 sanjay gupta? $3,000

? 寫一個shell腳本來得到當前的日期,時間,用戶名和當前工作目錄。 編寫shell腳本獲取本機的網(wǎng)絡(luò)地址。編寫個shell腳本將當前目錄下大于10K的文件轉(zhuǎn)移到/tmp目錄下 編寫一個名為myfirstshell.sh的腳本,它包括以下內(nèi)容。 a) 包含一段注釋,列出您的姓名、腳本的名稱和編寫這個腳本的目的。

b) 問候用戶。

c) 顯示日期和時間。

d) 顯示這個月的日歷。

e) 顯示您的機器名。

f) 顯示當前這個操作系統(tǒng)的名稱和版本。

g) 顯示父目錄中的所有文件的列表。

h) 顯示root正在運行的所有進程。

i) 顯示變量TERM、PATH和HOME的值。

j) 顯示磁盤使用情況。

k) 用id命令打印出您的組ID。

m) 跟用戶說“Good bye”

? 文件移動拷貝,有m1.txt m2.txt m3.txt m4.txt,分別創(chuàng)建出對應(yīng)的目錄,m1 m2 m3 m4 并把文件移動到對應(yīng)的目錄下 root用戶今天登陸了多長時間終端輸入一個文件名,判斷是否是設(shè)備文件 統(tǒng)計IP訪問:要求分析apache訪問日志,找出訪問頁面數(shù)量在前100位的IP數(shù)。日志大小在78M左右。以下是apache的訪問日志節(jié)選 202.101.129.218 - - [26/Mar/2006:23:59:55 +0800] "GET /online/stat_inst.php?pid=d065 HTTP/1.1" 302 20-"-" "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

? 設(shè)計一個Shell程序,在/userdata目錄下建立50個目錄,即user1~user50,并設(shè)置每個目錄的權(quán)限,其中其他用戶的權(quán)限為:讀;文件所有者的權(quán)限為:讀、寫、執(zhí)行;文件所有者所在組的權(quán)限為:讀、執(zhí)行。 設(shè)計一個shell程序,添加一個新組為class1,然后添加屬于這個組的30個用戶,用戶名的形式為stdxx,其中xx從01到30,并設(shè)置密碼為對應(yīng)的stdxx。編寫shell程序,實現(xiàn)自動刪除30個賬號的功能。賬號名為std01至std30。用戶清理,清除本機除了當前登陸用戶以外的所有用戶設(shè)計一個shell程序,在每月第一天備份并壓縮/etc目錄的所有內(nèi)容,存放在/root/bak目錄里,且文件名,為如下形式y(tǒng)ymmdd_etc,yy為年,mm為月,dd為日。Shell程序fileback存放在/usr/bin目錄下。對于一個用戶日志文件,每行記錄了一個用戶查詢串,長度為1-255字節(jié),共幾千萬行,請排出查詢最多的前100條。 日志可以自己構(gòu)造。 (提示:awk sort uniq head)編寫自己的ubuntu環(huán)境安裝腳本編寫服務(wù)器守護進程管理腳本。 查看TCP連接狀態(tài) netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn

?

netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’ 或

netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}’

netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"t",arr[k]}’

?

netstat -n |awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn

?

netstat -ant | awk ‘{print $NF}’ | grep -v ‘[a-z]‘ | sort | uniq -c

? 查找請求數(shù)請20個IP(常用于查找攻來源): netstat -anlp|grep 80|grep tcp|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20

?

netstat -ant |awk ‘/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}’ |sort -rn|head -n20

? 用tcpdump嗅探80端口的訪問看看誰最高 tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." ‘{print $1"."$2"."$3"."$4}’ | sort | uniq -c | sort -nr |head -20

? 查找較多time_wait連接 netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20

? 找查較多的SYN連接 netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

? 根據(jù)端口列進程 netstat -ntlp | grep 80 | awk ‘{print $7}’ | cut -d/ -f1

? 獲得訪問前10位的ip地址 cat access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -10

cat access.log|awk ‘{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}’

? 訪問次數(shù)最多的文件或頁面,取前20 cat access.log|awk ‘{print $11}’|sort|uniq -c|sort -nr|head -20

? 列出傳輸最大的幾個exe文件(分析下載站的時候常用) cat access.log |awk ‘($7~/.exe/){print $10 " " $1 " " $4 " " $7}’|sort -nr|head -20

? 列出輸出大于200000byte(約200kb)的exe文件以及對應(yīng)文件發(fā)生次數(shù) cat access.log |awk ‘($10 > 200000 && $7~/.exe/){print $7}’|sort -n|uniq -c|sort -nr|head -100

? 如果日志最后一列記錄的是頁面文件傳輸時間,則有列出到客戶端最耗時的頁面 cat access.log |awk ‘($7~/.php/){print $NF " " $1 " " $4 " " $7}’|sort -nr|head -100

? 列出最最耗時的頁面(超過60秒的)的以及對應(yīng)頁面發(fā)生次數(shù) cat access.log |awk ‘($NF > 60 && $7~/.php/){print $7}’|sort -n|uniq -c|sort -nr|head -100

? 列出傳輸時間超過 30 秒的文件 cat access.log |awk ‘($NF > 30){print $7}’|sort -n|uniq -c|sort -nr|head -20

? 統(tǒng)計網(wǎng)站流量(G) cat access.log |awk ‘{sum+=$10} END {print sum/1024/1024/1024}’

? 統(tǒng)計404的連接 awk ‘($9 ~/404/)’ access.log | awk ‘{print $9,$7}’ | sort

? 統(tǒng)計http status cat access.log |awk ‘{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}'

cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn

? 蜘蛛分析,查看是哪些蜘蛛在抓取內(nèi)容。 /usr/sbin/tcpdump -i eth0 -l -s 0 -w - dst port 80 | strings | grep -i user-agent | grep -i -E 'bot|crawler|slurp|spider'

? 創(chuàng)建一個用戶mandriva,其ID號為2002,基本組為distro(組ID為3003),附加組為linux; # groupadd linux

# groupadd -g 3003 distro

# useradd -u 2002 -g distro -G linux mandriva

? 創(chuàng)建一個用戶fedora,其全名為Fedora Community,默認shell為tcsh; # useradd -c "Fedora Community" -s /bin/tcsh fedora? 修改mandriva的ID號為4004,基本組為linux,附加組為distro和fedora; # usermod -u 4004 -g linux -G distro,fedora mandriva

? 給fedora加密碼,并設(shè)定其密碼最短使用期限為2天,最長為50天; # passwd fedora

# chage -m 2 -M 50 fedora

? 調(diào)試命令 strace -p pid

? 寫一個腳本 1、創(chuàng)建一個組newgroup, id號為4000;

2、創(chuàng)建一個用戶mageedu1, id號為3001,附加組為newgroup;

3、創(chuàng)建目錄/tmp/hellodirxyz

4、復(fù)制/etc/fstab至上面的目錄中

5、改變目錄及內(nèi)部文件的屬主和屬組為mageedu1;

6、讓目錄及內(nèi)部文件的其它用戶沒有任何權(quán)限;

?

? ? ? ? #!/bin/bash

? ? ? ? # Description:

? ? ? ? # Version:

? ? ? ? # Datetime:

? ? ? ? # Author:

?

? ? ? ? myGroup="newgroup1"

? ? ? ? myUser="mageedu2"

? ? ? ? myDir="/tmp/hellodirxyz1"

? ? ? ? myID=3002

?

? ? ? ? groupadd -g 4001 $myGroup

? ? ? ? useradd -u $myID -G $myGroup $myUser

? ? ? ? mkdir $myDir

? ? ? ? cp /etc/fstab $myDir

? ? ? ? chown -R $myUser:$myUser $myDir

? ? ? ? chmod -R o= $myDir

?

? ? ? ? unset myGroup myUser myID myDir

? 統(tǒng)計/bin、/usr/bin、/sbin和/usr/sbin等各目錄中的文件個數(shù); # ls /bin | wc -l

? 顯示當前系統(tǒng)上所有用戶的shell,要求,每種shell只顯示一次; # cut -d: -f7 /etc/passwd | sort -u

? 取出/etc/passwd文件的第7行; # head -7 /etc/passwd | tail -1

? 顯示第3題中取出的第7行的用戶名; # head -7 /etc/passwd | tail -1 | cut -d: -f1

?

# head -7 /etc/passwd | tail -1 | cut -d: -f1 | tr 'a-z' 'A-Z'

? 統(tǒng)計/etc目錄下以P或p開頭的文件個數(shù); # ls -d /etc/[Pp]* | wc -l

? 寫一個腳本,用for循環(huán)實現(xiàn)顯示/etc/init.d/functions、/etc/rc.d/rc.sysinit和/etc/fstab各有多少行; for fileName in /etc/init.d/functions /etc/rc.d/rc.sysinit /etc/fstab; do

? ? wc -l $fileName

done

?

#!/bin/bash

for fileName in /etc/init.d/functions /etc/rc.d/rc.sysinit /etc/fstab; do

? ? lineCount=`wc -l $fileName | cut -d' ' -f1`

? ? echo "$fileName: $lineCount lines."

done

?

#!/bin/bash

for fileName in /etc/init.d/functions /etc/rc.d/rc.sysinit /etc/fstab; do

? ? echo "$fileName: `wc -l $fileName | cut -d' ' -f1` lines."

done

? 寫一個腳本,將上一題中三個文件的復(fù)制到/tmp目錄中;用for循環(huán)實現(xiàn),分別將每個文件的最近一次的修改時間改為2016年12月15號15點43分; for fileName in /etc/init.d/functions /etc/rc.d/rc.sysinit /etc/fstab; do

? ? cp $fileName /tmp

? ? baseName=`basename $fileName`

? ? touch -m -t 201109151327 /tmp/$baseName

done

? 寫一個腳本, 顯示/etc/passwd中第3、7和11個用戶的用戶名和ID號; for lineNo in 3 7 11; do

? ? userInfo=`head -n $lineNo /etc/passwd | tail -1 | cut -d: -f1,3`

? ? echo -e "User: `echo $userInfo | cut -d: -f1`\nUid: `echo $userInfo |cut -d: -f2`"

done

? 顯示/proc/meminfo文件中以大小寫s開頭的行; # grep "^[sS]" /proc/meminfo

# grep -i "^s" /proc/meminfo

? 取出默認shell為非bash的用戶; # grep -v "bash$" /etc/passwd | cut -d: -f1

? 取出默認shell為bash的且其ID號最大的用戶; # grep "bash$" /etc/passwd | sort -n -t: -k3 | tail -1 | cut -d: -f1

? 顯示/etc/rc.d/rc.sysinit文件中,以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; # grep "^#[[:space:]]\{1,\}[^[:space:]]\{1,\}" /etc/rc.d/rc.sysinit

? 顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; # grep "^[[:space:]]\{1,\}[^[:space:]]\{1,\}" /boot/grub/grub.conf

? 找出/etc/passwd文件中一位數(shù)或兩位數(shù); # grep --color=auto "\<[0-9]\{1,2\}\>" /etc/passwd

? 找出ifconfig命令結(jié)果中的1到255之間的整數(shù); # ifconfig | grep -E --color=auto "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"

? 查看當前系統(tǒng)上root用戶的所有信息; # grep "^root\>" /etc/passwd

? 添加用戶bash和testbash、basher,而后找出當前系統(tǒng)上其用戶名和默認shell相同的用戶; # grep --color=auto "^\([[:alnum:]]\{1,\}\)\>.*\1$" /etc/passwd

? 找出netstat -tan命令執(zhí)行的結(jié)果中以“LISTEN”或“ESTABLISHED”結(jié)尾的行; 取出當前系統(tǒng)上所有用戶的shell,要求:每種shell只顯示一次,且按升序顯示; # cut -d: -f7 /etc/passwd | sort -u

?

自動化?

開機自啟動腳本?

如果要添加為開機啟動執(zhí)行的腳本文件,可先將腳本復(fù)制或者軟連接到/etc/init.d/目錄下,然后用:?

? ? update-rc.d xxx defaults NN命令(NN為啟動順序),

?

將腳本添加到初始化執(zhí)行的隊列中去。?

注意如果腳本需要用到網(wǎng)絡(luò),則NN需設(shè)置一個比較大的數(shù)字,如99。?

1) 將你的啟動腳本復(fù)制到 /etc/init.d目錄下,以下假設(shè)你的腳本文件名為 test。?

2) 設(shè)置腳本文件的權(quán)限?

? ? $ sudo chmod 755 /etc/init.d/test

?

3) 執(zhí)行如下命令將腳本放到啟動腳本中去:?

? ? $ cd /etc/init.d

? ? $ sudo update-rc.d test defaults 95

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的[转载] Python学习笔记——运维和Shell的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

永久免费观看美女裸体的网站 | 色欲人妻aaaaaaa无码 | 久久综合给合久久狠狠狠97色 | 亚洲性无码av中文字幕 | 欧美日韩视频无码一区二区三 | 国产在线精品一区二区三区直播 | 丰满人妻一区二区三区免费视频 | 国产一区二区三区四区五区加勒比 | 中文字幕人妻无码一夲道 | 亚洲精品国产品国语在线观看 | 久久久久亚洲精品男人的天堂 | 女人被男人躁得好爽免费视频 | 国产亚洲精品久久久久久国模美 | 国产精品a成v人在线播放 | 粉嫩少妇内射浓精videos | 久久精品女人的天堂av | 亚洲自偷自偷在线制服 | 国产精品无码成人午夜电影 | 狂野欧美性猛交免费视频 | 牲欲强的熟妇农村老妇女 | 人人澡人人妻人人爽人人蜜桃 | 久久久av男人的天堂 | 国产偷国产偷精品高清尤物 | 亚洲一区二区三区偷拍女厕 | 亚洲中文字幕无码一久久区 | 狂野欧美性猛交免费视频 | 天天综合网天天综合色 | 免费无码的av片在线观看 | 18精品久久久无码午夜福利 | 熟妇人妻无乱码中文字幕 | 亚洲综合另类小说色区 | 国产人妻精品一区二区三区不卡 | 国产午夜无码视频在线观看 | 无码一区二区三区在线 | aa片在线观看视频在线播放 | 色欲av亚洲一区无码少妇 | 最近的中文字幕在线看视频 | 国产精品无码成人午夜电影 | 亚洲大尺度无码无码专区 | 亚洲成av人影院在线观看 | 爆乳一区二区三区无码 | 无码帝国www无码专区色综合 | 秋霞特色aa大片 | 亚洲乱码中文字幕在线 | 成人影院yy111111在线观看 | 久在线观看福利视频 | 精品无码av一区二区三区 | 国产偷国产偷精品高清尤物 | 国产精品久久久久久亚洲影视内衣 | 欧美熟妇另类久久久久久多毛 | 又湿又紧又大又爽a视频国产 | 久久亚洲国产成人精品性色 | 欧美精品在线观看 | 日韩精品a片一区二区三区妖精 | 女高中生第一次破苞av | 成人试看120秒体验区 | 亚洲欧洲日本无在线码 | 露脸叫床粗话东北少妇 | 亚洲欧洲无卡二区视頻 | 老头边吃奶边弄进去呻吟 | 亚洲成色www久久网站 | 人妻中文无码久热丝袜 | 无码人妻少妇伦在线电影 | 亚洲成色www久久网站 | 欧美一区二区三区 | 亚洲中文字幕av在天堂 | 人妻aⅴ无码一区二区三区 | 国产成人人人97超碰超爽8 | av无码久久久久不卡免费网站 | 性色av无码免费一区二区三区 | 亚洲成a人片在线观看无码 | 老司机亚洲精品影院 | 欧美色就是色 | 乱人伦人妻中文字幕无码久久网 | 狠狠综合久久久久综合网 | 樱花草在线播放免费中文 | 人妻aⅴ无码一区二区三区 | 国产极品美女高潮无套在线观看 | www国产亚洲精品久久久日本 | а√资源新版在线天堂 | 色婷婷综合激情综在线播放 | 亚洲熟妇色xxxxx欧美老妇 | 日本免费一区二区三区最新 | 兔费看少妇性l交大片免费 | 国产99久久精品一区二区 | 纯爱无遮挡h肉动漫在线播放 | 久久久久久久久888 | 亚洲欧洲日本综合aⅴ在线 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产极品美女高潮无套在线观看 | 狠狠色噜噜狠狠狠7777奇米 | 国产成人无码av片在线观看不卡 | 欧美日韩在线亚洲综合国产人 | 天天综合网天天综合色 | 久久精品国产亚洲精品 | 亚洲小说图区综合在线 | 欧美老妇交乱视频在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 精品久久久无码人妻字幂 | 色综合久久久无码中文字幕 | 国产农村乱对白刺激视频 | 乱中年女人伦av三区 | 国产午夜福利亚洲第一 | 人人爽人人爽人人片av亚洲 | 免费人成在线视频无码 | 乱人伦人妻中文字幕无码久久网 | 无码一区二区三区在线观看 | 久久精品女人天堂av免费观看 | 日本乱人伦片中文三区 | 国产精品久久久久久亚洲毛片 | 最新版天堂资源中文官网 | 欧美成人家庭影院 | 色婷婷欧美在线播放内射 | 亚洲一区二区三区播放 | 日韩亚洲欧美精品综合 | 久久久久99精品成人片 | 亚洲国产成人a精品不卡在线 | 亚洲综合另类小说色区 | 老头边吃奶边弄进去呻吟 | 日韩精品a片一区二区三区妖精 | 日欧一片内射va在线影院 | 俄罗斯老熟妇色xxxx | 国产精品无码一区二区三区不卡 | 一本久久伊人热热精品中文字幕 | 无码国内精品人妻少妇 | 精品人妻人人做人人爽 | 国产熟女一区二区三区四区五区 | 国内揄拍国内精品少妇国语 | 国产两女互慰高潮视频在线观看 | 扒开双腿吃奶呻吟做受视频 | 亚洲中文字幕在线无码一区二区 | 中文字幕人妻无码一夲道 | 狠狠色丁香久久婷婷综合五月 | 国产美女精品一区二区三区 | 一个人看的www免费视频在线观看 | 国产精品久久福利网站 | 亚洲国产欧美国产综合一区 | 国产精品第一区揄拍无码 | 欧美国产日韩久久mv | 国产超碰人人爽人人做人人添 | 国产色精品久久人妻 | 免费男性肉肉影院 | 国产成人午夜福利在线播放 | 欧美激情一区二区三区成人 | 国模大胆一区二区三区 | 成人无码精品1区2区3区免费看 | 久久久久亚洲精品中文字幕 | 熟女少妇人妻中文字幕 | 激情内射日本一区二区三区 | 久久久婷婷五月亚洲97号色 | 久久国产自偷自偷免费一区调 | 1000部啪啪未满十八勿入下载 | 日韩亚洲欧美精品综合 | 欧美精品免费观看二区 | 偷窥日本少妇撒尿chinese | 在线观看欧美一区二区三区 | av无码不卡在线观看免费 | 中文字幕日产无线码一区 | 国产情侣作爱视频免费观看 | 西西人体www44rt大胆高清 | 全黄性性激高免费视频 | 国产成人亚洲综合无码 | 日本一区二区三区免费高清 | 无码福利日韩神码福利片 | 国产激情无码一区二区app | 领导边摸边吃奶边做爽在线观看 | 老熟女重囗味hdxx69 | 熟妇人妻激情偷爽文 | 啦啦啦www在线观看免费视频 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产精品高潮呻吟av久久 | 免费中文字幕日韩欧美 | 国产成人人人97超碰超爽8 | 欧美丰满熟妇xxxx性ppx人交 | 欧美丰满熟妇xxxx性ppx人交 | 精品成人av一区二区三区 | 久久国内精品自在自线 | 久久精品中文字幕大胸 | 老太婆性杂交欧美肥老太 | 欧美乱妇无乱码大黄a片 | 欧美肥老太牲交大战 | 樱花草在线社区www | 精品国产乱码久久久久乱码 | 中文字幕乱码人妻二区三区 | 久久久久av无码免费网 | 久青草影院在线观看国产 | 乌克兰少妇性做爰 | 欧美老妇交乱视频在线观看 | 国内少妇偷人精品视频免费 | 男人的天堂av网站 | 亚洲男女内射在线播放 | 久久久中文字幕日本无吗 | 午夜精品久久久久久久久 | 色婷婷久久一区二区三区麻豆 | 国产人妻人伦精品 | 日韩精品成人一区二区三区 | 最新国产麻豆aⅴ精品无码 | 精品无码国产一区二区三区av | 国产性生交xxxxx无码 | 亚洲国产精华液网站w | 久久国产精品_国产精品 | 俄罗斯老熟妇色xxxx | 扒开双腿疯狂进出爽爽爽视频 | 欧美熟妇另类久久久久久不卡 | 51国偷自产一区二区三区 | 国产亚洲人成a在线v网站 | 亚洲欧美精品aaaaaa片 | 亚洲 日韩 欧美 成人 在线观看 | 狂野欧美性猛xxxx乱大交 | 乌克兰少妇xxxx做受 | 97无码免费人妻超级碰碰夜夜 | 四虎4hu永久免费 | а√资源新版在线天堂 | 久久99久久99精品中文字幕 | 九月婷婷人人澡人人添人人爽 | 国产色在线 | 国产 | av无码不卡在线观看免费 | 欧美zoozzooz性欧美 | 在线成人www免费观看视频 | 亚洲无人区一区二区三区 | 国产午夜无码视频在线观看 | 亚洲国产一区二区三区在线观看 | 亚洲综合在线一区二区三区 | 久在线观看福利视频 | 久久久无码中文字幕久... | 欧美丰满熟妇xxxx性ppx人交 | 东京热无码av男人的天堂 | 三级4级全黄60分钟 | 日日麻批免费40分钟无码 | av香港经典三级级 在线 | 亚洲精品成人av在线 | 精品一区二区三区波多野结衣 | 学生妹亚洲一区二区 | 国色天香社区在线视频 | 欧美国产日产一区二区 | 美女极度色诱视频国产 | 日韩欧美成人免费观看 | 日本成熟视频免费视频 | 亚无码乱人伦一区二区 | 77777熟女视频在线观看 а天堂中文在线官网 | 青青青爽视频在线观看 | 国产色xx群视频射精 | 久久视频在线观看精品 | 精品国产福利一区二区 | 久久久久久国产精品无码下载 | 国产免费久久精品国产传媒 | 在线观看国产午夜福利片 | 樱花草在线社区www | 少妇人妻偷人精品无码视频 | 精品无码成人片一区二区98 | 国产在线aaa片一区二区99 | 国产无遮挡吃胸膜奶免费看 | 中文字幕日韩精品一区二区三区 | 亚洲欧美色中文字幕在线 | 久久亚洲日韩精品一区二区三区 | 内射老妇bbwx0c0ck | 久久综合网欧美色妞网 | 日本va欧美va欧美va精品 | 沈阳熟女露脸对白视频 | 丁香啪啪综合成人亚洲 | 亚洲精品欧美二区三区中文字幕 | 一本色道久久综合亚洲精品不卡 | 欧美人妻一区二区三区 | 性开放的女人aaa片 | 久久天天躁夜夜躁狠狠 | 国产黑色丝袜在线播放 | 日产精品高潮呻吟av久久 | 精品国产一区av天美传媒 | 欧洲熟妇精品视频 | 大地资源网第二页免费观看 | 国产又粗又硬又大爽黄老大爷视 | 国产精品久久久久9999小说 | 国产无套内射久久久国产 | 日韩视频 中文字幕 视频一区 | 大肉大捧一进一出好爽视频 | 婷婷六月久久综合丁香 | 精品人妻人人做人人爽 | 天天燥日日燥 | 国产性生交xxxxx无码 | 日本乱人伦片中文三区 | 国产无套内射久久久国产 | 97久久国产亚洲精品超碰热 | 国产乱人伦av在线无码 | 国产精品a成v人在线播放 | 久久精品国产精品国产精品污 | 99精品国产综合久久久久五月天 | 男人的天堂2018无码 | 国产无遮挡吃胸膜奶免费看 | 一区二区传媒有限公司 | 久久视频在线观看精品 | 蜜臀aⅴ国产精品久久久国产老师 | 狂野欧美性猛xxxx乱大交 | 日产精品99久久久久久 | 国产精品福利视频导航 | 国产精品毛多多水多 | 偷窥村妇洗澡毛毛多 | 特大黑人娇小亚洲女 | 麻豆成人精品国产免费 | 黑森林福利视频导航 | 国产舌乚八伦偷品w中 | 丰满人妻一区二区三区免费视频 | 国精品人妻无码一区二区三区蜜柚 | 国产一区二区三区精品视频 | 国产亚洲精品久久久久久国模美 | 日本www一道久久久免费榴莲 | 欧洲熟妇精品视频 | 国产成人无码午夜视频在线观看 | 草草网站影院白丝内射 | 亚洲日韩av片在线观看 | 亚洲熟悉妇女xxx妇女av | 久久久久久亚洲精品a片成人 | 日韩精品无码免费一区二区三区 | 精品成人av一区二区三区 | 中文字幕无码日韩专区 | 青青久在线视频免费观看 | 亚洲日韩av片在线观看 | 久久精品人人做人人综合试看 | 亚洲熟悉妇女xxx妇女av | 国产亚洲精品久久久闺蜜 | 东京一本一道一二三区 | 色 综合 欧美 亚洲 国产 | 欧美精品国产综合久久 | 麻豆成人精品国产免费 | 小sao货水好多真紧h无码视频 | 四虎国产精品一区二区 | 欧美亚洲日韩国产人成在线播放 | 国产精品成人av在线观看 | 麻豆md0077饥渴少妇 | 久久久精品国产sm最大网站 | 亚洲中文字幕久久无码 | 亚洲熟妇自偷自拍另类 | 欧美激情一区二区三区成人 | 国产一区二区三区影院 | 成 人 网 站国产免费观看 | 国产精品资源一区二区 | 中文字幕乱码中文乱码51精品 | 成人无码影片精品久久久 | 国产精品美女久久久久av爽李琼 | 又大又黄又粗又爽的免费视频 | 特大黑人娇小亚洲女 | 国产又爽又黄又刺激的视频 | 亚洲色偷偷男人的天堂 | 亚洲精品美女久久久久久久 | 久久久久亚洲精品中文字幕 | 两性色午夜免费视频 | 樱花草在线社区www | 中文字幕乱码人妻无码久久 | 四虎国产精品一区二区 | 特大黑人娇小亚洲女 | 亚洲精品中文字幕久久久久 | 在线观看国产午夜福利片 | 又紧又大又爽精品一区二区 | 老司机亚洲精品影院无码 | 精品无码国产一区二区三区av | 初尝人妻少妇中文字幕 | 人人超人人超碰超国产 | 国精产品一区二区三区 | 天天做天天爱天天爽综合网 | 综合激情五月综合激情五月激情1 | 国产亚洲精品精品国产亚洲综合 | 青青青手机频在线观看 | 中文字幕无线码 | 久久久久国色av免费观看性色 | 成人毛片一区二区 | 国产精华av午夜在线观看 | av在线亚洲欧洲日产一区二区 | 动漫av网站免费观看 | 粉嫩少妇内射浓精videos | 午夜成人1000部免费视频 | 嫩b人妻精品一区二区三区 | 日本乱人伦片中文三区 | 国产乱人偷精品人妻a片 | 国产人妻精品一区二区三区 | 少妇性俱乐部纵欲狂欢电影 | 无码人妻丰满熟妇区毛片18 | 国产舌乚八伦偷品w中 | 久久久久久久女国产乱让韩 | √天堂中文官网8在线 | 九九热爱视频精品 | 国产亚洲欧美日韩亚洲中文色 | 中文字幕av无码一区二区三区电影 | 国内老熟妇对白xxxxhd | 国产又爽又猛又粗的视频a片 | 久久亚洲国产成人精品性色 | 亚洲七七久久桃花影院 | 亚洲国产欧美日韩精品一区二区三区 | 1000部啪啪未满十八勿入下载 | 一个人免费观看的www视频 | 日本欧美一区二区三区乱码 | 在线观看国产一区二区三区 | 成人无码视频免费播放 | 中文字幕 亚洲精品 第1页 | 野狼第一精品社区 | 狠狠亚洲超碰狼人久久 | 国产午夜手机精彩视频 | 国内揄拍国内精品人妻 | 亚洲精品久久久久中文第一幕 | 中文字幕av无码一区二区三区电影 | 人人妻人人澡人人爽人人精品浪潮 | 一二三四在线观看免费视频 | 国产乡下妇女做爰 | 在线观看国产一区二区三区 | 蜜臀av在线播放 久久综合激激的五月天 | 中文无码精品a∨在线观看不卡 | 性生交大片免费看女人按摩摩 | 玩弄少妇高潮ⅹxxxyw | 亚洲大尺度无码无码专区 | 国产精品va在线观看无码 | 亚洲成av人片天堂网无码】 | 狂野欧美激情性xxxx | 一本一道久久综合久久 | 99久久精品国产一区二区蜜芽 | 亚洲爆乳大丰满无码专区 | 波多野结衣av在线观看 | 欧美放荡的少妇 | av无码久久久久不卡免费网站 | 三级4级全黄60分钟 | 午夜丰满少妇性开放视频 | 狠狠噜狠狠狠狠丁香五月 | а√天堂www在线天堂小说 | 午夜丰满少妇性开放视频 | 人人妻人人澡人人爽人人精品浪潮 | yw尤物av无码国产在线观看 | 亚洲熟悉妇女xxx妇女av | 亚洲一区二区三区偷拍女厕 | 欧美人与物videos另类 | 精品水蜜桃久久久久久久 | 一个人看的www免费视频在线观看 | 成人精品天堂一区二区三区 | 中文字幕无码免费久久99 | 一本久道久久综合狠狠爱 | 午夜福利试看120秒体验区 | 成在人线av无码免费 | 少妇无套内谢久久久久 | 人妻无码久久精品人妻 | 婷婷五月综合缴情在线视频 | 人人超人人超碰超国产 | 欧美日韩一区二区免费视频 | 人妻互换免费中文字幕 | 免费网站看v片在线18禁无码 | 欧美性猛交xxxx富婆 | 午夜时刻免费入口 | 欧美成人高清在线播放 | 波多野42部无码喷潮在线 | 久久久久久久久蜜桃 | 亚洲成av人片天堂网无码】 | 亚洲成av人片在线观看无码不卡 | 一区二区三区乱码在线 | 欧洲 | 欧美国产日产一区二区 | 一本色道久久综合狠狠躁 | 婷婷丁香五月天综合东京热 | 久久人人爽人人爽人人片ⅴ | 麻花豆传媒剧国产免费mv在线 | 国产无遮挡又黄又爽免费视频 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 四虎影视成人永久免费观看视频 | 沈阳熟女露脸对白视频 | 国产精品久久久久久无码 | 中文字幕无线码免费人妻 | 欧美性黑人极品hd | 日韩人妻系列无码专区 | 国产小呦泬泬99精品 | 国产又爽又黄又刺激的视频 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 特级做a爰片毛片免费69 | 激情内射亚州一区二区三区爱妻 | 欧美熟妇另类久久久久久多毛 | 2020最新国产自产精品 | 久久亚洲日韩精品一区二区三区 | 男女猛烈xx00免费视频试看 | 欧美人与禽zoz0性伦交 | 激情亚洲一区国产精品 | 国产人成高清在线视频99最全资源 | 色一情一乱一伦一视频免费看 | 久久精品女人天堂av免费观看 | 波多野结衣乳巨码无在线观看 | 午夜精品一区二区三区在线观看 | 99精品久久毛片a片 | 日韩在线不卡免费视频一区 | 亚洲综合另类小说色区 | 无人区乱码一区二区三区 | 亚洲国产精品一区二区第一页 | 精品久久久无码人妻字幂 | 欧美日韩精品 | 久久综合九色综合欧美狠狠 | 成人无码精品1区2区3区免费看 | 日本精品少妇一区二区三区 | 国产av无码专区亚洲a∨毛片 | 99久久久无码国产精品免费 | 岛国片人妻三上悠亚 | 精品久久久中文字幕人妻 | 国语自产偷拍精品视频偷 | 国产尤物精品视频 | 国产熟妇高潮叫床视频播放 | 97资源共享在线视频 | 内射老妇bbwx0c0ck | 九九久久精品国产免费看小说 | 男女作爱免费网站 | 国产精品无码一区二区桃花视频 | 久久精品丝袜高跟鞋 | 乱人伦中文视频在线观看 | 亚洲午夜无码久久 | 在线播放无码字幕亚洲 | 人人妻人人澡人人爽精品欧美 | 国产精品久免费的黄网站 | 欧洲熟妇色 欧美 | 亚洲精品中文字幕久久久久 | 国产色视频一区二区三区 | 四虎永久在线精品免费网址 | 国产成人精品视频ⅴa片软件竹菊 | 男女爱爱好爽视频免费看 | 狠狠cao日日穞夜夜穞av | 亚洲一区二区观看播放 | 东京热无码av男人的天堂 | 蜜桃视频韩日免费播放 | 日日麻批免费40分钟无码 | 久久精品国产亚洲精品 | 国产国产精品人在线视 | 天天拍夜夜添久久精品 | 亚洲国产高清在线观看视频 | 丰满少妇弄高潮了www | 人人妻在人人 | 5858s亚洲色大成网站www | 欧美老人巨大xxxx做受 | 国产亚洲精品久久久久久久 | 久久亚洲精品成人无码 | 亚洲精品久久久久avwww潮水 | 亚洲の无码国产の无码步美 | 成人免费视频在线观看 | v一区无码内射国产 | 无码av岛国片在线播放 | 国产精品对白交换视频 | 亚洲熟妇色xxxxx欧美老妇 | 日本又色又爽又黄的a片18禁 | 亚洲成av人影院在线观看 | 97久久精品无码一区二区 | 国产熟妇另类久久久久 | 亚洲一区二区三区在线观看网站 | 中文毛片无遮挡高清免费 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久午夜夜伦鲁鲁片无码免费 | 欧美变态另类xxxx | 亚洲国产欧美国产综合一区 | 久久久精品国产sm最大网站 | 亚洲日本va午夜在线电影 | 国产成人无码午夜视频在线观看 | 伊人色综合久久天天小片 | 亚洲日韩精品欧美一区二区 | 免费无码一区二区三区蜜桃大 | 国产肉丝袜在线观看 | 久久久久国色av免费观看性色 | 男人扒开女人内裤强吻桶进去 | 久久久久久国产精品无码下载 | 日本精品高清一区二区 | 狂野欧美性猛交免费视频 | 亚洲日韩乱码中文无码蜜桃臀网站 | 日本免费一区二区三区最新 | 黄网在线观看免费网站 | 精品一区二区三区波多野结衣 | 国产精品国产三级国产专播 | 欧美刺激性大交 | a在线观看免费网站大全 | 无码人妻av免费一区二区三区 | 国产亚洲日韩欧美另类第八页 | 日本肉体xxxx裸交 | 国产艳妇av在线观看果冻传媒 | 日日夜夜撸啊撸 | 欧美日韩人成综合在线播放 | 免费中文字幕日韩欧美 | 少妇无码av无码专区在线观看 | 亚洲高清偷拍一区二区三区 | 日本饥渴人妻欲求不满 | 图片小说视频一区二区 | 激情亚洲一区国产精品 | 少妇性l交大片 | 国产极品美女高潮无套在线观看 | 人妻无码久久精品人妻 | 无人区乱码一区二区三区 | 18无码粉嫩小泬无套在线观看 | 亚洲成在人网站无码天堂 | 亚洲无人区一区二区三区 | 少妇人妻大乳在线视频 | 久久亚洲中文字幕精品一区 | 免费国产黄网站在线观看 | 国产人妻精品一区二区三区不卡 | 国产乱子伦视频在线播放 | 亚洲另类伦春色综合小说 | 日本va欧美va欧美va精品 | 狠狠躁日日躁夜夜躁2020 | 成人女人看片免费视频放人 | 天堂在线观看www | 精品国产aⅴ无码一区二区 | 最新国产乱人伦偷精品免费网站 | 精品无码一区二区三区爱欲 | 精品国产麻豆免费人成网站 | 国产午夜精品一区二区三区嫩草 | 日本精品少妇一区二区三区 | 精品乱码久久久久久久 | av人摸人人人澡人人超碰下载 | 国内精品一区二区三区不卡 | 国产xxx69麻豆国语对白 | 波多野结衣乳巨码无在线观看 | 亚洲中文字幕va福利 | 综合激情五月综合激情五月激情1 | 国产av剧情md精品麻豆 | 国产国产精品人在线视 | 中文字幕久久久久人妻 | 国产精品第一区揄拍无码 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 激情亚洲一区国产精品 | 成人无码视频在线观看网站 | 免费国产黄网站在线观看 | 日本xxxx色视频在线观看免费 | 久久精品人人做人人综合 | 老司机亚洲精品影院 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产尤物精品视频 | 欧美日韩视频无码一区二区三 | 97久久精品无码一区二区 | 国产午夜手机精彩视频 | 小sao货水好多真紧h无码视频 | 国产凸凹视频一区二区 | 四虎永久在线精品免费网址 | 久久国产36精品色熟妇 | 亚洲va欧美va天堂v国产综合 | 野外少妇愉情中文字幕 | 国产综合色产在线精品 | 国产亚洲精品久久久闺蜜 | 久久伊人色av天堂九九小黄鸭 | 亚洲国产av精品一区二区蜜芽 | 青青青手机频在线观看 | 激情爆乳一区二区三区 | 蜜桃视频插满18在线观看 | 国产成人无码a区在线观看视频app | 精品久久久久香蕉网 | 亚洲人成人无码网www国产 | 精品偷拍一区二区三区在线看 | 4hu四虎永久在线观看 | 黑人玩弄人妻中文在线 | 少妇人妻av毛片在线看 | 亚洲阿v天堂在线 | 人妻少妇精品无码专区二区 | 国产精品高潮呻吟av久久4虎 | 精品无人区无码乱码毛片国产 | 亚洲一区二区三区含羞草 | 精品人妻人人做人人爽夜夜爽 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久精品女人天堂av免费观看 | 欧美人与禽猛交狂配 | 欧美三级不卡在线观看 | 国产午夜亚洲精品不卡 | 欧美黑人巨大xxxxx | 无码av中文字幕免费放 | 久久亚洲精品中文字幕无男同 | 激情国产av做激情国产爱 | 日韩精品久久久肉伦网站 | 亚洲精品www久久久 | 亚洲男人av香蕉爽爽爽爽 | 国产特级毛片aaaaaa高潮流水 | 久久午夜无码鲁丝片 | 捆绑白丝粉色jk震动捧喷白浆 | 玩弄中年熟妇正在播放 | 福利一区二区三区视频在线观看 | 国产在线精品一区二区三区直播 | 狠狠色丁香久久婷婷综合五月 | 久久成人a毛片免费观看网站 | 国语自产偷拍精品视频偷 | 国产人妻人伦精品1国产丝袜 | 国产激情综合五月久久 | 亚洲爆乳精品无码一区二区三区 | 精品国产一区二区三区av 性色 | 色一情一乱一伦一区二区三欧美 | 精品人妻中文字幕有码在线 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 青春草在线视频免费观看 | 中文字幕乱码人妻无码久久 | 日韩精品成人一区二区三区 | 精品久久久久久亚洲精品 | 久久久中文字幕日本无吗 | 少妇高潮一区二区三区99 | 国产亚洲精品久久久闺蜜 | 国产午夜亚洲精品不卡下载 | 国产真实伦对白全集 | 任你躁国产自任一区二区三区 | 亚洲色欲色欲欲www在线 | 人妻aⅴ无码一区二区三区 | 7777奇米四色成人眼影 | 少妇无套内谢久久久久 | 欧洲欧美人成视频在线 | 亚洲欧洲中文日韩av乱码 | 久久亚洲国产成人精品性色 | 中文字幕中文有码在线 | 婷婷丁香五月天综合东京热 | 中文字幕乱码人妻无码久久 | 国产亚洲人成a在线v网站 | 久久久无码中文字幕久... | 欧美日韩一区二区三区自拍 | 扒开双腿吃奶呻吟做受视频 | 亚欧洲精品在线视频免费观看 | 中国大陆精品视频xxxx | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲男人av香蕉爽爽爽爽 | av无码电影一区二区三区 | 成 人 网 站国产免费观看 | 色一情一乱一伦一区二区三欧美 | 国产精品va在线观看无码 | 日日鲁鲁鲁夜夜爽爽狠狠 | 四虎影视成人永久免费观看视频 | 丁香花在线影院观看在线播放 | 大肉大捧一进一出好爽视频 | 欧美日韩综合一区二区三区 | 久久精品国产日本波多野结衣 | 动漫av网站免费观看 | 久久97精品久久久久久久不卡 | 99久久精品国产一区二区蜜芽 | 亚洲欧美精品伊人久久 | 国产精品亚洲lv粉色 | 在线精品国产一区二区三区 | 中文字幕 人妻熟女 | 四虎永久在线精品免费网址 | 国产精品无码久久av | 亚洲国产午夜精品理论片 | 欧美性生交xxxxx久久久 | 人人澡人人妻人人爽人人蜜桃 | 国产超级va在线观看视频 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 熟妇人妻无乱码中文字幕 | 免费网站看v片在线18禁无码 | 国产精品久久久一区二区三区 | 国产免费无码一区二区视频 | 国产sm调教视频在线观看 | 亚洲国产高清在线观看视频 | 捆绑白丝粉色jk震动捧喷白浆 | 中文字幕+乱码+中文字幕一区 | www成人国产高清内射 | 亚洲日韩av片在线观看 | 国产精品久久久久久无码 | 少妇的肉体aa片免费 | 天天拍夜夜添久久精品大 | 女人被爽到呻吟gif动态图视看 | 人人妻人人澡人人爽精品欧美 | 亚洲午夜无码久久 | 综合激情五月综合激情五月激情1 | 精品国产一区二区三区av 性色 | 亚洲精品欧美二区三区中文字幕 | 亚洲 欧美 激情 小说 另类 | 亚洲精品一区二区三区婷婷月 | 免费人成在线观看网站 | 粉嫩少妇内射浓精videos | 九九久久精品国产免费看小说 | 99久久久无码国产精品免费 | 九九久久精品国产免费看小说 | 亚洲精品欧美二区三区中文字幕 | 亚洲国产精品无码一区二区三区 | 国产亚洲欧美日韩亚洲中文色 | 欧美性生交xxxxx久久久 | 久久久久成人片免费观看蜜芽 | 免费视频欧美无人区码 | 中文精品无码中文字幕无码专区 | 日本精品高清一区二区 | 欧美亚洲国产一区二区三区 | 日韩无套无码精品 | 国产欧美亚洲精品a | 国产97人人超碰caoprom | 野外少妇愉情中文字幕 | 波多野结衣乳巨码无在线观看 | 亚洲欧美国产精品专区久久 | 午夜无码区在线观看 | 性色欲情网站iwww九文堂 | 国产又爽又黄又刺激的视频 | 午夜精品久久久内射近拍高清 | 捆绑白丝粉色jk震动捧喷白浆 | 国产亚洲欧美日韩亚洲中文色 | 久久99精品久久久久婷婷 | 国产色xx群视频射精 | 色综合久久网 | 欧美人妻一区二区三区 | 亚洲 另类 在线 欧美 制服 | 亚洲综合色区中文字幕 | 久久午夜无码鲁丝片 | 久久精品国产99久久6动漫 | 国产午夜亚洲精品不卡 | 天堂在线观看www | 亚洲s码欧洲m码国产av | 国产精品高潮呻吟av久久 | 国产成人无码a区在线观看视频app | 久久精品丝袜高跟鞋 | 亚洲一区二区三区国产精华液 | 无套内谢的新婚少妇国语播放 | aⅴ在线视频男人的天堂 | 国语自产偷拍精品视频偷 | 日本熟妇乱子伦xxxx | 九九热爱视频精品 | 天堂亚洲免费视频 | 激情国产av做激情国产爱 | 无码国产色欲xxxxx视频 | 午夜成人1000部免费视频 | 久久久久久a亚洲欧洲av冫 | 成人无码精品一区二区三区 | 亚洲春色在线视频 | 香港三级日本三级妇三级 | 一区二区传媒有限公司 | 国内少妇偷人精品视频免费 | 超碰97人人射妻 | 亚洲日韩中文字幕在线播放 | 日本丰满熟妇videos | 欧美成人免费全部网站 | 波多野结衣乳巨码无在线观看 | 亚洲熟妇色xxxxx欧美老妇 | 亚洲 日韩 欧美 成人 在线观看 | 国产一区二区三区精品视频 | 激情内射日本一区二区三区 | 国产精品高潮呻吟av久久 | 亚洲男人av天堂午夜在 | 少女韩国电视剧在线观看完整 | 天天爽夜夜爽夜夜爽 | 精品成在人线av无码免费看 | 亚洲人成网站免费播放 | 一区二区三区乱码在线 | 欧洲 | 久久无码中文字幕免费影院蜜桃 | 久久久久成人片免费观看蜜芽 | 国产av一区二区精品久久凹凸 | 少妇无套内谢久久久久 | 性啪啪chinese东北女人 | 亚洲成av人在线观看网址 | 无码福利日韩神码福利片 | 人妻aⅴ无码一区二区三区 | 欧美亚洲日韩国产人成在线播放 | 十八禁视频网站在线观看 | 成人动漫在线观看 | 天干天干啦夜天干天2017 | 九九综合va免费看 | 少妇激情av一区二区 | 性史性农村dvd毛片 | 亚洲中文字幕无码一久久区 | 中文字幕中文有码在线 | 水蜜桃亚洲一二三四在线 | 日韩欧美中文字幕公布 | 亚洲欧美日韩国产精品一区二区 | 国产精品久久久久久亚洲影视内衣 | 国产午夜视频在线观看 | 蜜桃无码一区二区三区 | 欧洲熟妇色 欧美 | 国产黄在线观看免费观看不卡 | 国产精品久久久久久亚洲毛片 | 国产成人无码a区在线观看视频app | 精品久久久久久人妻无码中文字幕 | 免费观看激色视频网站 | 久青草影院在线观看国产 | 日本熟妇浓毛 | 久久久婷婷五月亚洲97号色 | 久久成人a毛片免费观看网站 | 在线天堂新版最新版在线8 | 中文字幕人妻无码一夲道 | 成人aaa片一区国产精品 | 女人被男人爽到呻吟的视频 | 精品无人国产偷自产在线 | 欧美国产亚洲日韩在线二区 | 无遮挡啪啪摇乳动态图 | 综合激情五月综合激情五月激情1 | 成人试看120秒体验区 | 色窝窝无码一区二区三区色欲 | 乱人伦中文视频在线观看 | 亚洲精品久久久久久久久久久 | 人人妻人人藻人人爽欧美一区 | 97无码免费人妻超级碰碰夜夜 | 老熟女重囗味hdxx69 | 欧美丰满老熟妇xxxxx性 | 国产无遮挡吃胸膜奶免费看 | 97夜夜澡人人爽人人喊中国片 | 成人无码精品一区二区三区 | 亚洲区小说区激情区图片区 | 国内少妇偷人精品视频免费 | 亚洲天堂2017无码 | 婷婷六月久久综合丁香 | 九月婷婷人人澡人人添人人爽 | 亚洲精品综合五月久久小说 | 色综合久久久久综合一本到桃花网 | 99久久精品国产一区二区蜜芽 | 日日碰狠狠丁香久燥 | 亚洲精品久久久久中文第一幕 | 亚洲男人av香蕉爽爽爽爽 | www国产精品内射老师 | 99麻豆久久久国产精品免费 | 亚洲s码欧洲m码国产av | 亚洲国产一区二区三区在线观看 | 狠狠cao日日穞夜夜穞av | 亚洲综合色区中文字幕 | √天堂中文官网8在线 | 成人三级无码视频在线观看 | 国产精品手机免费 | 桃花色综合影院 | 黑人巨大精品欧美黑寡妇 | 亚洲精品一区二区三区四区五区 | 亚洲精品久久久久久一区二区 | 亚洲色无码一区二区三区 | 人人妻人人澡人人爽欧美一区九九 | 人人妻在人人 | 两性色午夜免费视频 | 欧美野外疯狂做受xxxx高潮 | 久久久久成人精品免费播放动漫 | 奇米影视7777久久精品人人爽 | 综合网日日天干夜夜久久 | 久久久久久九九精品久 | 扒开双腿吃奶呻吟做受视频 | 亚洲区小说区激情区图片区 | 曰韩少妇内射免费播放 | 亚洲中文字幕无码中字 | 国产精品久久精品三级 | 色欲久久久天天天综合网精品 | 日本高清一区免费中文视频 | 成人无码精品一区二区三区 | 激情人妻另类人妻伦 | 一本大道久久东京热无码av | 亚洲色无码一区二区三区 | 日日麻批免费40分钟无码 | 亚洲欧美日韩综合久久久 | 麻豆蜜桃av蜜臀av色欲av | 两性色午夜免费视频 | 中文无码精品a∨在线观看不卡 | 丝袜 中出 制服 人妻 美腿 | 国产成人av免费观看 | 无套内谢老熟女 | 久久成人a毛片免费观看网站 | 午夜熟女插插xx免费视频 | 国产成人精品视频ⅴa片软件竹菊 | 性欧美疯狂xxxxbbbb | 精品国产一区二区三区av 性色 | 女高中生第一次破苞av | yw尤物av无码国产在线观看 | 玩弄人妻少妇500系列视频 | 久久久国产精品无码免费专区 | 欧美老人巨大xxxx做受 | 欧美日韩综合一区二区三区 | 日本乱人伦片中文三区 | 国产极品美女高潮无套在线观看 | 日韩人妻无码中文字幕视频 | 无码午夜成人1000部免费视频 | 少妇高潮一区二区三区99 | 乱人伦中文视频在线观看 | 亚洲欧美国产精品专区久久 | 一个人看的www免费视频在线观看 | 国产精品多人p群无码 | 亚洲精品成人福利网站 | 欧美国产日韩亚洲中文 | 国产亚av手机在线观看 | 中文字幕 人妻熟女 | 熟女俱乐部五十路六十路av | 少妇高潮一区二区三区99 | 成人三级无码视频在线观看 | 亚洲a无码综合a国产av中文 | 国产超级va在线观看视频 | 久久久久免费精品国产 | 国产精品国产三级国产专播 | 色爱情人网站 | 一本无码人妻在中文字幕免费 | 亚洲色欲久久久综合网东京热 | 亚洲精品久久久久avwww潮水 | 亚洲国产高清在线观看视频 | 亚洲自偷自偷在线制服 | 国产黑色丝袜在线播放 | 300部国产真实乱 | 国产亚av手机在线观看 | 中文字幕无码人妻少妇免费 | 亚洲国产精品一区二区美利坚 | 一个人看的www免费视频在线观看 | 国产乱子伦视频在线播放 | 国产疯狂伦交大片 | 亚洲欧美精品aaaaaa片 | 成人无码视频在线观看网站 | 欧美日本日韩 | 一本色道久久综合狠狠躁 | 中文字幕乱码亚洲无线三区 | 精品久久久久久人妻无码中文字幕 | 99er热精品视频 | 亚洲国产精品美女久久久久 | 亚洲无人区一区二区三区 | 综合人妻久久一区二区精品 | 色婷婷综合激情综在线播放 | 亚洲爆乳大丰满无码专区 | 女人被男人躁得好爽免费视频 | 国产午夜福利100集发布 | 99国产欧美久久久精品 | 欧美国产日产一区二区 | 国产午夜福利亚洲第一 | 荫蒂被男人添的好舒服爽免费视频 | 国产精品毛片一区二区 | 午夜成人1000部免费视频 | 国产av无码专区亚洲a∨毛片 | 少妇性荡欲午夜性开放视频剧场 | 熟女少妇人妻中文字幕 | 性色av无码免费一区二区三区 | 我要看www免费看插插视频 | 亚洲欧美日韩成人高清在线一区 | 亚洲乱亚洲乱妇50p | 女人被男人爽到呻吟的视频 | 国产精品久久久 | 中文精品无码中文字幕无码专区 | 国产精华av午夜在线观看 | 亚洲国精产品一二二线 | 日欧一片内射va在线影院 | 久久国产精品萌白酱免费 | 日本大香伊一区二区三区 | 国产在热线精品视频 | 成人亚洲精品久久久久 | 99久久婷婷国产综合精品青草免费 | 乱码午夜-极国产极内射 | 最近的中文字幕在线看视频 | 性生交大片免费看l | 亚洲精品成a人在线观看 | 欧美老人巨大xxxx做受 | 精品人妻中文字幕有码在线 | 狂野欧美激情性xxxx | 女人和拘做爰正片视频 | 人人爽人人爽人人片av亚洲 | 国产亚洲美女精品久久久2020 | 红桃av一区二区三区在线无码av | 亚洲爆乳精品无码一区二区三区 | 日韩少妇内射免费播放 | 蜜臀aⅴ国产精品久久久国产老师 | 中文字幕+乱码+中文字幕一区 | 久久亚洲中文字幕精品一区 | 久久国内精品自在自线 | 色综合久久久无码网中文 | 亚洲另类伦春色综合小说 | 国产97色在线 | 免 | 国产亚洲欧美日韩亚洲中文色 | 少妇高潮一区二区三区99 | 亚洲呦女专区 | 国产午夜福利亚洲第一 | 色婷婷综合激情综在线播放 | 精品久久久久久人妻无码中文字幕 | 中文字幕无码人妻少妇免费 | 少妇一晚三次一区二区三区 | 亚洲中文字幕在线观看 | 久久精品国产大片免费观看 | 亚洲欧洲无卡二区视頻 | 又粗又大又硬毛片免费看 | 久久zyz资源站无码中文动漫 | 女人被爽到呻吟gif动态图视看 | 捆绑白丝粉色jk震动捧喷白浆 | 国产精品第一区揄拍无码 | 国精品人妻无码一区二区三区蜜柚 | 亚洲熟妇色xxxxx亚洲 | 亚洲小说春色综合另类 | 午夜男女很黄的视频 | 牲欲强的熟妇农村老妇女 | 国产精品亚洲综合色区韩国 | 日韩av无码一区二区三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产超级va在线观看视频 | 久久久婷婷五月亚洲97号色 | 国产人妻精品一区二区三区 | 麻豆国产人妻欲求不满谁演的 | 狂野欧美性猛交免费视频 | 亚洲成色在线综合网站 | 日韩av无码一区二区三区不卡 | 中国女人内谢69xxxxxa片 | 欧美午夜特黄aaaaaa片 | 亚洲の无码国产の无码步美 | 国产69精品久久久久app下载 | 无码一区二区三区在线观看 | 国产美女极度色诱视频www | 国产国产精品人在线视 | 午夜性刺激在线视频免费 | 特大黑人娇小亚洲女 | 狂野欧美激情性xxxx | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产激情综合五月久久 | 中文亚洲成a人片在线观看 | 久久国产精品_国产精品 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 少妇厨房愉情理9仑片视频 | 亚洲爆乳大丰满无码专区 | 超碰97人人做人人爱少妇 | 亚洲色www成人永久网址 | 丰满妇女强制高潮18xxxx | 午夜性刺激在线视频免费 | 国产av无码专区亚洲awww | 国内精品九九久久久精品 | 亚洲精品一区二区三区在线观看 | 3d动漫精品啪啪一区二区中 | 日本爽爽爽爽爽爽在线观看免 | 久久久av男人的天堂 | 亚洲国产成人a精品不卡在线 | 在线成人www免费观看视频 | 国产特级毛片aaaaaa高潮流水 | aa片在线观看视频在线播放 | 激情亚洲一区国产精品 | 夜先锋av资源网站 | 永久免费观看美女裸体的网站 | 国产成人无码午夜视频在线观看 | 国产乱人偷精品人妻a片 | 伊人久久大香线蕉午夜 | 女高中生第一次破苞av | 无码精品国产va在线观看dvd | 久久精品中文闷骚内射 | 欧美第一黄网免费网站 | 国产综合在线观看 | 99久久久国产精品无码免费 | 少妇被黑人到高潮喷出白浆 | 99re在线播放 | 国产偷抇久久精品a片69 | 国产高清不卡无码视频 | 亚洲gv猛男gv无码男同 | 国产艳妇av在线观看果冻传媒 | 国内精品一区二区三区不卡 | 无码免费一区二区三区 | аⅴ资源天堂资源库在线 | 亚洲人交乣女bbw | 国产成人综合色在线观看网站 | 东京热男人av天堂 | 日韩欧美中文字幕公布 | 亚拍精品一区二区三区探花 | 中文字幕乱妇无码av在线 | 无码av最新清无码专区吞精 | 欧美怡红院免费全部视频 | 日本欧美一区二区三区乱码 | 鲁鲁鲁爽爽爽在线视频观看 | 国内精品久久毛片一区二区 | 精品一区二区三区波多野结衣 | 日本护士毛茸茸高潮 | 女人高潮内射99精品 | www国产亚洲精品久久网站 | 国产成人无码av一区二区 | 蜜桃av抽搐高潮一区二区 | 蜜桃视频韩日免费播放 | 成人欧美一区二区三区黑人 | 亚洲中文字幕久久无码 | 高清无码午夜福利视频 | 午夜精品一区二区三区在线观看 | 亚洲va欧美va天堂v国产综合 | 强开小婷嫩苞又嫩又紧视频 | 亚洲精品一区二区三区在线 | 300部国产真实乱 | 欧美 亚洲 国产 另类 | 狠狠综合久久久久综合网 | 久久无码中文字幕免费影院蜜桃 | 久久久久亚洲精品中文字幕 | 成人一在线视频日韩国产 | 成人aaa片一区国产精品 | 日本一区二区三区免费高清 | 精品水蜜桃久久久久久久 | 捆绑白丝粉色jk震动捧喷白浆 | 久久精品人妻少妇一区二区三区 | 精品人人妻人人澡人人爽人人 | 亚拍精品一区二区三区探花 | 亚洲色www成人永久网址 | 亚洲自偷自偷在线制服 | 国产激情无码一区二区 | 成人免费视频视频在线观看 免费 | 两性色午夜视频免费播放 | 2020最新国产自产精品 | 成人一在线视频日韩国产 | av无码不卡在线观看免费 | 欧美精品无码一区二区三区 | 人妻少妇精品无码专区动漫 | 熟妇人妻中文av无码 | 无码吃奶揉捏奶头高潮视频 | 欧美人与动性行为视频 | 国产肉丝袜在线观看 | 久久久久久国产精品无码下载 | 国内丰满熟女出轨videos | 日本在线高清不卡免费播放 | 久久久久久国产精品无码下载 | 精品国偷自产在线 | 高清不卡一区二区三区 | 1000部夫妻午夜免费 | 中文亚洲成a人片在线观看 | 欧美阿v高清资源不卡在线播放 | 天天综合网天天综合色 | 色欲av亚洲一区无码少妇 | 久精品国产欧美亚洲色aⅴ大片 | 日本大乳高潮视频在线观看 | 成人性做爰aaa片免费看不忠 | 欧美成人高清在线播放 | 日本一本二本三区免费 | 久久久久免费精品国产 | 久久精品女人天堂av免费观看 | 国产乱人伦偷精品视频 | 久久99精品久久久久婷婷 | 成在人线av无码免观看麻豆 | 高中生自慰www网站 | 欧美高清在线精品一区 | 国精产品一品二品国精品69xx | 最新版天堂资源中文官网 | 天堂一区人妻无码 | 日韩精品无码免费一区二区三区 | 天堂久久天堂av色综合 | 人妻少妇精品无码专区二区 | 亚欧洲精品在线视频免费观看 | 精品 日韩 国产 欧美 视频 | 少妇久久久久久人妻无码 | 人人爽人人爽人人片av亚洲 | 中文字幕乱码亚洲无线三区 | 丰满人妻被黑人猛烈进入 | 麻花豆传媒剧国产免费mv在线 | av无码不卡在线观看免费 | 丝袜美腿亚洲一区二区 | 极品嫩模高潮叫床 | 99国产欧美久久久精品 | 中文字幕乱码亚洲无线三区 | 精品国精品国产自在久国产87 | 亚洲日韩av一区二区三区中文 | 狠狠色噜噜狠狠狠7777奇米 | 国产精品久久国产精品99 | 青青草原综合久久大伊人精品 | 美女极度色诱视频国产 | 日韩亚洲欧美中文高清在线 | 日韩人妻少妇一区二区三区 | 麻豆av传媒蜜桃天美传媒 | 中文字幕乱码亚洲无线三区 | 亚洲成a人片在线观看日本 | 国产偷抇久久精品a片69 | 久久www免费人成人片 | 亚洲色偷偷偷综合网 | 精品aⅴ一区二区三区 | 天堂а√在线中文在线 | 久久亚洲中文字幕无码 | 呦交小u女精品视频 | 色一情一乱一伦一视频免费看 | 亚洲小说春色综合另类 | 夜先锋av资源网站 | 日韩成人一区二区三区在线观看 | 啦啦啦www在线观看免费视频 | 日韩精品一区二区av在线 | 午夜无码人妻av大片色欲 | 日日天日日夜日日摸 | 国产办公室秘书无码精品99 | 男人的天堂2018无码 | 亚洲aⅴ无码成人网站国产app | 国产香蕉97碰碰久久人人 | 小鲜肉自慰网站xnxx | av无码久久久久不卡免费网站 | 欧美性色19p | 欧美野外疯狂做受xxxx高潮 | 精品久久8x国产免费观看 | 狠狠亚洲超碰狼人久久 | 国产精品永久免费视频 | 欧美熟妇另类久久久久久多毛 | 2019午夜福利不卡片在线 | 国产人妻大战黑人第1集 | 成熟人妻av无码专区 | 成熟妇人a片免费看网站 | 国产在线aaa片一区二区99 | 欧洲vodafone精品性 | 久久无码中文字幕免费影院蜜桃 | 伊人久久大香线蕉av一区二区 | 国产成人精品必看 | 亚洲小说图区综合在线 | 亚洲人成人无码网www国产 | 一本精品99久久精品77 | 高潮喷水的毛片 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲aⅴ无码成人网站国产app | 亚洲の无码国产の无码步美 | 中国女人内谢69xxxxxa片 | 色婷婷av一区二区三区之红樱桃 | 欧美人与动性行为视频 | 日韩少妇白浆无码系列 | 亚洲の无码国产の无码影院 | 国产成人av免费观看 | 中文字幕乱码人妻无码久久 | 午夜无码区在线观看 | 国产精品福利视频导航 | 亚洲精品国产a久久久久久 | 奇米影视888欧美在线观看 | 久久久久亚洲精品男人的天堂 | 宝宝好涨水快流出来免费视频 | 国产av久久久久精东av | 伊人色综合久久天天小片 | 在线 国产 欧美 亚洲 天堂 | 性色欲网站人妻丰满中文久久不卡 | a片在线免费观看 | 99久久久无码国产aaa精品 | 在线看片无码永久免费视频 | 国产成人无码区免费内射一片色欲 | 人人妻人人澡人人爽人人精品浪潮 | 久久国产36精品色熟妇 | 久久综合狠狠综合久久综合88 | 无码国产激情在线观看 | 欧美刺激性大交 | 日本一区二区三区免费播放 | 午夜福利电影 | 欧美精品无码一区二区三区 | 久久综合香蕉国产蜜臀av | 又大又硬又黄的免费视频 | 女人和拘做爰正片视频 | 久久午夜夜伦鲁鲁片无码免费 | 色婷婷欧美在线播放内射 | 九九久久精品国产免费看小说 | 强伦人妻一区二区三区视频18 | 亚洲成a人片在线观看日本 | 亚洲人成影院在线无码按摩店 | 999久久久国产精品消防器材 | 中文亚洲成a人片在线观看 | 理论片87福利理论电影 | 亚洲 另类 在线 欧美 制服 | 欧美性生交活xxxxxdddd | 精品国偷自产在线 | 巨爆乳无码视频在线观看 | 日本一区二区三区免费高清 | 欧美 亚洲 国产 另类 | 永久免费精品精品永久-夜色 | 国产内射爽爽大片视频社区在线 | 国产超碰人人爽人人做人人添 | 国产精品亚洲lv粉色 | 亚洲乱码日产精品bd | 人人爽人人爽人人片av亚洲 | 亚洲成av人片在线观看无码不卡 | 国产性生交xxxxx无码 | 免费人成在线视频无码 | 麻豆精产国品 | 正在播放老肥熟妇露脸 | 久久久精品456亚洲影院 | 99久久精品无码一区二区毛片 | 成人av无码一区二区三区 | 久久熟妇人妻午夜寂寞影院 | 扒开双腿吃奶呻吟做受视频 | 欧美35页视频在线观看 | 国产肉丝袜在线观看 | 波多野42部无码喷潮在线 | 亚拍精品一区二区三区探花 | 亚洲 欧美 激情 小说 另类 | 亚洲欧美日韩综合久久久 | 窝窝午夜理论片影院 | 久久久久亚洲精品中文字幕 | 天堂无码人妻精品一区二区三区 | 中国大陆精品视频xxxx | 国产精品香蕉在线观看 | www成人国产高清内射 | 无码人妻丰满熟妇区毛片18 | 天天拍夜夜添久久精品 | 色诱久久久久综合网ywww | 中文字幕精品av一区二区五区 | 天天拍夜夜添久久精品 | 欧美丰满少妇xxxx性 | 熟妇女人妻丰满少妇中文字幕 | 国产精品内射视频免费 | 麻豆精产国品 | 色综合视频一区二区三区 | 牲交欧美兽交欧美 | 精品少妇爆乳无码av无码专区 | 男人和女人高潮免费网站 | 内射欧美老妇wbb | 国产精品igao视频网 | 青春草在线视频免费观看 | 久久人人97超碰a片精品 | 成人无码影片精品久久久 | 国产无套内射久久久国产 | 日日天干夜夜狠狠爱 | 老熟妇仑乱视频一区二区 | a在线观看免费网站大全 | 又大又紧又粉嫩18p少妇 | 少妇激情av一区二区 | 97精品国产97久久久久久免费 | 国产精品永久免费视频 | 国产精品无码一区二区三区不卡 | 青青草原综合久久大伊人精品 | 男女爱爱好爽视频免费看 | 欧美性猛交xxxx富婆 | 狠狠色丁香久久婷婷综合五月 | 丰满少妇女裸体bbw | 国产在线aaa片一区二区99 | 99er热精品视频 | 黑森林福利视频导航 | 精品水蜜桃久久久久久久 | 免费人成在线视频无码 | 国产成人精品三级麻豆 | 一本色道久久综合亚洲精品不卡 | 亚洲精品一区二区三区在线观看 | 久久人妻内射无码一区三区 | 天堂在线观看www | 国产成人无码av一区二区 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 撕开奶罩揉吮奶头视频 | 成人亚洲精品久久久久 | 精品夜夜澡人妻无码av蜜桃 | 国产成人综合色在线观看网站 | 在线观看国产一区二区三区 | 无码国模国产在线观看 | 中文字幕中文有码在线 | 欧美黑人巨大xxxxx | 成人aaa片一区国产精品 | 日韩av无码中文无码电影 | 免费国产成人高清在线观看网站 | 亚洲成色在线综合网站 | 少妇无码吹潮 | 2020最新国产自产精品 | 欧美xxxx黑人又粗又长 | 美女扒开屁股让男人桶 | 成人欧美一区二区三区黑人免费 | 巨爆乳无码视频在线观看 | 国产精品香蕉在线观看 | 日本成熟视频免费视频 | 欧美老熟妇乱xxxxx | 欧美国产亚洲日韩在线二区 | 久久精品中文字幕大胸 | 少妇一晚三次一区二区三区 | 美女扒开屁股让男人桶 | 国产精品美女久久久网av | 亚洲日韩av一区二区三区四区 | 日本一区二区三区免费播放 | 给我免费的视频在线观看 | 天天躁夜夜躁狠狠是什么心态 | 久久熟妇人妻午夜寂寞影院 | 无码一区二区三区在线观看 | 国产欧美精品一区二区三区 | 久久久中文字幕日本无吗 | 奇米影视888欧美在线观看 | 无码人妻精品一区二区三区不卡 | 女人高潮内射99精品 | 无码国模国产在线观看 | 日本欧美一区二区三区乱码 | 国产极品美女高潮无套在线观看 | 亚洲天堂2017无码 | 国产九九九九九九九a片 | 中文精品久久久久人妻不卡 | 国产欧美精品一区二区三区 | 色五月五月丁香亚洲综合网 | 精品成在人线av无码免费看 | 青青草原综合久久大伊人精品 | 四虎国产精品一区二区 | 国产成人久久精品流白浆 | 久久精品视频在线看15 | 亚洲精品中文字幕 | 1000部夫妻午夜免费 | 亚洲天堂2017无码 | 男人的天堂2018无码 | 四虎4hu永久免费 | 亚洲精品午夜无码电影网 | 98国产精品综合一区二区三区 | 亚洲aⅴ无码成人网站国产app | 乱码午夜-极国产极内射 | 色婷婷久久一区二区三区麻豆 | 色综合久久久无码中文字幕 | 国产亚洲精品久久久久久国模美 | 永久免费精品精品永久-夜色 | 欧美日韩亚洲国产精品 | 国产福利视频一区二区 | 久久国内精品自在自线 | 国产成人无码一二三区视频 | 粉嫩少妇内射浓精videos | 内射巨臀欧美在线视频 | 亚洲s色大片在线观看 | 国产另类ts人妖一区二区 | 精品国产麻豆免费人成网站 | 人人澡人摸人人添 | 少妇性荡欲午夜性开放视频剧场 | 呦交小u女精品视频 | 亚洲欧美色中文字幕在线 | 国产精品爱久久久久久久 | 亚洲人交乣女bbw | 亚洲国产欧美国产综合一区 | 99精品视频在线观看免费 | 亚洲日韩一区二区 | 亚洲精品午夜无码电影网 | 天堂久久天堂av色综合 | 国产无av码在线观看 | 玩弄少妇高潮ⅹxxxyw | 久久www免费人成人片 | 两性色午夜视频免费播放 | 亚洲综合无码久久精品综合 | 亚洲s码欧洲m码国产av | 无码国内精品人妻少妇 | 熟女少妇在线视频播放 | 色综合久久网 | 国产两女互慰高潮视频在线观看 | 亚洲熟女一区二区三区 | 天堂在线观看www | 欧美精品无码一区二区三区 | 亚洲自偷精品视频自拍 | 色婷婷欧美在线播放内射 | 久久精品99久久香蕉国产色戒 | 国产精品亚洲lv粉色 | 国产情侣作爱视频免费观看 | 久久国产劲爆∧v内射 | 女高中生第一次破苞av | 亚洲自偷自偷在线制服 | 亚洲欧美色中文字幕在线 | 亚洲成a人片在线观看无码 | 日本一区二区三区免费播放 | 99久久99久久免费精品蜜桃 | 日本熟妇乱子伦xxxx | 亚洲va欧美va天堂v国产综合 | 国产三级精品三级男人的天堂 | 国产精品国产三级国产专播 | 99re在线播放 | 97人妻精品一区二区三区 | 人妻aⅴ无码一区二区三区 | 性欧美牲交xxxxx视频 | 性欧美videos高清精品 | www国产亚洲精品久久网站 | 亚洲午夜福利在线观看 | 一本久久a久久精品vr综合 | 精品人妻人人做人人爽夜夜爽 | 岛国片人妻三上悠亚 | 色综合视频一区二区三区 | 欧美亚洲日韩国产人成在线播放 | 国产免费观看黄av片 | 精品国产一区二区三区四区 | 麻豆精品国产精华精华液好用吗 | 国产精品久久久久7777 | 国产无遮挡又黄又爽又色 | 少妇厨房愉情理9仑片视频 | 亚洲欧美精品aaaaaa片 | 欧美 日韩 亚洲 在线 | 亚洲无人区午夜福利码高清完整版 | 亚洲精品鲁一鲁一区二区三区 | 国产莉萝无码av在线播放 | 女人被爽到呻吟gif动态图视看 | 白嫩日本少妇做爰 | 国产猛烈高潮尖叫视频免费 | 国产精品无码mv在线观看 | 国产香蕉尹人综合在线观看 | 欧美精品国产综合久久 | 人妻少妇精品无码专区二区 | 国产精品内射视频免费 | 欧洲欧美人成视频在线 | 激情五月综合色婷婷一区二区 | 国产精品手机免费 | 欧美丰满熟妇xxxx性ppx人交 | 一个人看的视频www在线 | 精品一二三区久久aaa片 | 又大又硬又黄的免费视频 | 性欧美牲交xxxxx视频 | 暴力强奷在线播放无码 | 久久精品国产一区二区三区肥胖 | 九九热爱视频精品 | 国产一区二区三区四区五区加勒比 | 亚洲精品久久久久久一区二区 | 亚洲国精产品一二二线 | 麻豆md0077饥渴少妇 | 中文字幕无码免费久久99 | 少妇性l交大片欧洲热妇乱xxx | 国产做国产爱免费视频 | 久久综合九色综合97网 | 国产精品久免费的黄网站 | 亚洲日韩一区二区 | 日本精品少妇一区二区三区 | 狠狠色欧美亚洲狠狠色www | 亚洲 日韩 欧美 成人 在线观看 | 久久国产劲爆∧v内射 | 色综合久久久无码网中文 | 国内精品人妻无码久久久影院蜜桃 | 亚洲欧美国产精品久久 | 欧美阿v高清资源不卡在线播放 | 国产后入清纯学生妹 | 蜜桃av抽搐高潮一区二区 | 亚洲精品久久久久久一区二区 | 国产精品99爱免费视频 | 狠狠躁日日躁夜夜躁2020 | 久久国产劲爆∧v内射 | 中文字幕无码乱人伦 | 东京热无码av男人的天堂 | 性做久久久久久久久 | 精品国产福利一区二区 | 久久综合九色综合欧美狠狠 | 国产亚洲人成在线播放 | 久久久久99精品国产片 | 内射欧美老妇wbb | 兔费看少妇性l交大片免费 | a片在线免费观看 | 国产明星裸体无码xxxx视频 | 四虎4hu永久免费 | 精品国产aⅴ无码一区二区 | 国产精品第一国产精品 | 熟女少妇在线视频播放 | 欧美午夜特黄aaaaaa片 | 国产精品久久久久影院嫩草 | 人妻少妇被猛烈进入中文字幕 | 中文字幕日韩精品一区二区三区 | 国产国产精品人在线视 | 青青青爽视频在线观看 | 中文字幕无码日韩专区 | 黄网在线观看免费网站 | 动漫av一区二区在线观看 | 久久这里只有精品视频9 | 亚洲精品一区二区三区四区五区 | 伊人久久大香线焦av综合影院 | 一本色道久久综合狠狠躁 | 国产精品无码永久免费888 | 扒开双腿吃奶呻吟做受视频 | 又色又爽又黄的美女裸体网站 | 2019午夜福利不卡片在线 | 日日碰狠狠丁香久燥 | 四虎4hu永久免费 | 欧美国产日产一区二区 | 亚洲精品国偷拍自产在线观看蜜桃 | 99精品无人区乱码1区2区3区 | 天堂а√在线地址中文在线 | 亚洲国产精品无码久久久久高潮 | 日日橹狠狠爱欧美视频 | 日韩精品成人一区二区三区 | 亚洲 另类 在线 欧美 制服 | 国产 精品 自在自线 | 亚洲成a人片在线观看无码 | 十八禁视频网站在线观看 | 国内精品久久久久久中文字幕 | 牲交欧美兽交欧美 | 婷婷丁香六月激情综合啪 | 久激情内射婷内射蜜桃人妖 | 丰满人妻一区二区三区免费视频 | 亚洲无人区午夜福利码高清完整版 | 国产精品亚洲综合色区韩国 | 久久99精品久久久久久 | 无码吃奶揉捏奶头高潮视频 | 国产成人无码午夜视频在线观看 | 最新国产乱人伦偷精品免费网站 | 亚洲人成网站免费播放 | 亚洲 日韩 欧美 成人 在线观看 | 国产精品手机免费 | 高清不卡一区二区三区 | 欧美人与物videos另类 | 内射爽无广熟女亚洲 | 国产亚洲人成在线播放 | 六月丁香婷婷色狠狠久久 | 亚洲精品久久久久中文第一幕 | 伦伦影院午夜理论片 | 国产激情无码一区二区 | 蜜桃av抽搐高潮一区二区 | 88国产精品欧美一区二区三区 | 日韩人妻少妇一区二区三区 | 亚洲小说春色综合另类 | 狠狠色欧美亚洲狠狠色www | 18禁止看的免费污网站 | 又粗又大又硬又长又爽 | 国産精品久久久久久久 | 高清不卡一区二区三区 | 少妇性荡欲午夜性开放视频剧场 | 欧美成人家庭影院 | 小泽玛莉亚一区二区视频在线 | 国产凸凹视频一区二区 | 天天综合网天天综合色 | 丰满少妇人妻久久久久久 | 国产三级精品三级男人的天堂 | 清纯唯美经典一区二区 | 中文字幕日产无线码一区 | 亚洲中文字幕无码中文字在线 | 一本大道伊人av久久综合 | 欧美放荡的少妇 | 亚洲自偷精品视频自拍 | 欧美一区二区三区视频在线观看 | 成人亚洲精品久久久久 | 久久精品国产精品国产精品污 | 成人免费视频一区二区 | 国产真实夫妇视频 | 55夜色66夜色国产精品视频 | 一本久久a久久精品亚洲 | 97夜夜澡人人爽人人喊中国片 | 欧美日韩综合一区二区三区 | 久久精品视频在线看15 | 亚洲男女内射在线播放 | 午夜免费福利小电影 | 国产免费观看黄av片 | 亚洲成av人影院在线观看 | 任你躁国产自任一区二区三区 | 在线精品亚洲一区二区 | 日本精品久久久久中文字幕 | 免费无码午夜福利片69 | 成熟女人特级毛片www免费 | 日日鲁鲁鲁夜夜爽爽狠狠 | 欧美性生交活xxxxxdddd | 国产亚洲视频中文字幕97精品 | 午夜精品久久久久久久久 | 国产舌乚八伦偷品w中 | 中文字幕无码热在线视频 | 人妻与老人中文字幕 | 午夜成人1000部免费视频 | 一本久久a久久精品vr综合 | 久久精品国产亚洲精品 | 亚洲人亚洲人成电影网站色 | 特级做a爰片毛片免费69 | 国产欧美熟妇另类久久久 | av香港经典三级级 在线 | 日本精品久久久久中文字幕 |