精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Linux 外殼的演變之旅

系統
對于大多數的日常計算任務來說,鼠標的點擊操作就可以滿足要求了,但要真正利用到Linux相比于其他環境的 優勢的話,則最終還是需要弄懂系統的外殼程序來輸入命令行才行。可用的命令外殼程序有很多,從Bash和Korn到C shell外殼,以及各種各樣有著異域風情的和奇怪的外殼程序等不一而足。我們來了解一下哪一種外殼程序是適用于你的。

對于大多數的日常計算任務來說,鼠標的點擊操作就可以滿足要求了,但要真正利用到Linux相比于其他環境的 優勢的話,則最終還是需要弄懂系統的外殼程序來輸入命令行才行??捎玫拿钔鈿こ绦蛴泻芏?,從Bash和Korn到C shell外殼,以及各種各樣有著異域風情的和奇怪的外殼程序等不一而足。我們來了解一下哪一種外殼程序是適用于你的。

外殼或外殼程序(shell)就像是編輯器:每個人都有自己的喜好,并且會為自己的選擇進行強烈的辯護(并會告訴你為什么你應該換用)。誠然,一些外殼程序可以提供不同的功能,但它們都實現了幾十年前就已經形成的核心理念。

關 于現代的外殼程序,我的***使用體驗發生在1980年代,當時我正在SunOS上開發軟件。一旦了解了把一個程序的輸出用作另一個程序的輸入(甚至可在命 令鏈中多次這樣做)這種能力之后,我就擁有了一種簡單有效的創建過濾器和轉換的方式。這一核心思想提供了一種構建簡單工具的方式,這些工具足夠靈活,能夠 以一種有益的組合來和其他工具一起使用。通過這種方式,外殼程序不僅提供了一種與內核和設備交換的方式,而且整合了多種服務(比如說管道和過濾器),這類 服務現在在軟件開發中已是常見的設計模式了。

我們先從現代外殼程序的簡單歷史開始,然后探討Linux目前提供的一些有用的以及一些奇異的外殼程序。

外殼程序的歷史

外殼程序——或稱作命令行解釋器——有著一個很長的歷史,但這里的討論從***個 UNIX®外殼程序開始。(貝爾實驗室的)Ken Thompson在1971年開發了名為V6 shell的 ***UNIX外殼程序。與其在Multics上的前身相類似,這個外殼程序(/bin/sh)是一個獨立的用戶程序,在內核的外部執行。諸如通配符(參數 擴展的模式匹配,比如說*.txt)一類的概念被放在一個名為glob的單獨的實用程序中實現,就像是if命令計算條件表達式一樣。這種分割維持了外殼程 序的短小精悍,只有不到900行的C源代碼(參閱參考資料獲得到初始源代碼的鏈接)。

外殼程序為重定向(<>和>>)和管道(|或^)引入了一種緊湊的語法,這些語法仍然在現代的外殼程序中使用。你也依然能夠找到對調用順序命令(使用;分隔)和異步命令(使用&分隔)的支持。

Thompson的外殼程序所缺少的是編寫腳本的功能,它的唯一目就是作為一種交換式外殼(命令解釋器)來調用命令然后查看結果。

自1977年以來的UNIX外殼程序

在Thompson外殼之后,我們從1977年的現代外殼程序來開始這一了解過程,Bourne外殼在這一年被引入。Bourne 外殼是AT&T貝爾實驗室的Stephen Bourne為V7 UNIX創建的,至今還保留了一個可用的外殼程序(在某些情況下,作為默認的根用戶執行外殼(root shell))。該作者是在進行了ALGOL68編譯器方面的工作之后才開發Bourne外殼的,所以你會發現其語法比其他外殼程序更類似于算法語言 (Algorithmic Language ,ALGOL),而源代碼本身,盡管是用C來開發的,甚至使用了宏來賦予它一種ALGOL68的味道。

Bourne外殼有兩個主要的目的:作為一個命令解釋器,以交互方式執行操作 系統的命令;以及用來編寫腳本(編寫可通過外殼調用的可重用腳本)。除了取代Thompson外殼的功能之外,Bourne外殼還提供了一些超越其前任的 優勢。Bourne引入了控制流、循環和變量,提供了一種更函數化的語言來與操作系統交互(對 話式的或是非對話式的都可以)。該外殼程序還允許你把外殼腳本當成過濾器使用,為處理信號提供集成的支持,不過其缺乏定義函數的功能。***一點是,該外殼 程序納入了一些我們今天還在使用的功能,其中包括了命令替換(使用反引號),以及在腳本內部嵌入保留的串字面量的HERE文檔。

Bourne外殼不僅是前進道路上的很重要的一步,而且是多種派生出來的外殼 程序的基石,這些派生外殼中的許多今天仍然用在一些典型的Linux系統上。圖1說明了一些重要的外殼程序的傳承關系,Bourne外殼帶來了Korn外 殼(ksh)、Almquist外殼(ash)流行的Bourne Again Shell(或稱Bash)的發展;而當Bourne外殼發布時,C shell外殼程序(csh)已在開發之中。圖1說明了主要的傳承關系,但并未包含了所有的影響,一些跨多個外殼的顯著貢獻在這里并未標注出來。

圖1. 自1977年以來的Linux外殼


 

我們稍后會探討其中的一些外殼程序,并例舉出一些對它們的發展有貢獻作用的語言和功能。

基本的外殼程序架構

設想中的外殼程序的基礎架構很簡單(已由Bourne外殼證明),正如你在圖2中見到的那樣,基本的架構看起來類似一個管道,其中的輸入是分析和 解析,接著是符號的擴充(使用各種各樣的方法,比如說括號、波浪線、變量和參數的擴展和替換,以及文件名生成等),以及***的命令執行(使用外殼內置的命 令或是外部命令)。

圖2. 假想外殼程序的簡單架構


你可在參考資料一節找到找到有關鏈接,了解開源的Bash外殼的架構。

探討Linux的外殼程序

現在我們來探討一下幾個這樣的外殼程序,回顧它們所做出的貢獻,并在每個外殼程序中檢驗一個腳本例子。要查看的外殼程序包括了C shell、Korn 外殼和Bash。

Tenex C shell外殼

1978年,當Bill Joy還是加州大學伯克利分校的在校學生時,他為Berkeley Software Distribution (BSD) UNIX系統開發了C shell。五年之后,該外殼引入了Tenex系統(在DEC PDP系統上很流行)上的功能。除了命令行編輯功能之外,Tenex還引入了文件名稱和命令的補全功能。Tenex C shell(tcsh)保持了對csh的向后兼容,但提升了其整體的交互功能。tcsh是Ken Greer在卡內基 - 梅隆大學開發出來的。

C shell的一個主要設計目標是創建一種看上去類似于C語言的腳本語言,鑒于C當時是在用的主要語言(加之操作系統絕大部分都是使用C來開發的),所以這是一個很實用的目標。

Bill Joy帶到C shell中的一個實用功能是命令的歷史記錄,這一功能維持之前執行過的命令的一個歷史,并允許用戶查看并輕松地選擇前面的命令來執行。例如,輸入命令 history就會顯示出之前執行過的命令,使用上下箭頭按鍵來選擇命令,或是使用!!來執行前面的一個命令。引用前一個命令的所有參數也是可以的,比如 說,!*引用前一個命令的所有參數,而!$則是引用前一個命令的***一個參數。

看一下一個簡短的tcsh腳本例子(清單1),該腳本用到了一個參數(目錄名稱),給出該目錄下的所有可執行文件和找到的文件的數目。我在每個例子中都重用了這一腳本,以此來說明一些不同之處。

該tcsh腳本被分成了三個基本的部分,首先,需要注意的是,我是使用了shebang或稱作hashbang的符號(#!)來聲明這一文件是可 被外殼執行程序(在本例中是tcsh二進制執行文件)解釋的,這就可以讓我把該文件當成一個普通的可執行文件來執行,而不需要在它之前加上解釋器的二進制 文件名。腳本維持了一個找到的可執行文件的計數,所以我把這一計數初始化為零。

清單1. 用tcsh編寫的查找所有可執行文件的腳本

  1. #!/bin/tcsh  
  2. # find all executables  
  3.     
  4. set count=0 
  5.     
  6. # Test arguments  
  7. if ($#argv != 1) then  
  8. echo "Usage is $0  
  9.     
  10. "  
  11. exit 1  
  12. endif  
  13.     
  14. # Ensure argument is a directory  
  15. if (! -d $1) then  
  16. echo "$1 is not a directory."  
  17. exit 1  
  18. endif  
  19.    
  20. # Iterate the directory, emit executable files  
  21. foreach filename ($1/*)  
  22. if (-x $filename) then  
  23. echo $filename  
  24. count = $count + 1  
  25. endif  
  26. end  
  27.     
  28. echo  
  29. echo "$count executable files found."  
  30.     
  31. exit 0 

***部分內容測試用戶傳遞進來的參數,變量#argv代表了傳遞進來的參數個數(不包括命令名稱自身)。你可以通過指定它們的索引來訪問這些 參數。例如,#1指向***個參數(這是argv[1]的簡寫)。該腳本預期有一個參數,如果沒有找到該參數的話,就發出一條錯誤消息,使用$0來表示在控 制臺中輸入的命令(argv[0])。

第二部分內容確保傳遞進來的參數是一個目錄, 如果參數是一個目錄的話,運算符-d返回True。不過要注意的一點是,我先指定了一個!符號,其代表的意思是否定。通過這種方式,表達式要說的是,如果參數不是一個目錄,則發出一條錯誤消息。

***一部分內容遍歷了目錄中的文件,測試它們是否是可執行的。我使用了便捷的foreach這一遍歷器,其遍歷括號(本例中是一個目錄)中的每個 條目,然后在循環體中對每個條目進行檢查,該步驟使用了運算符-x來檢查文件是否是可執行的,如果是的話,輸出該文件名稱并且計數加一。在腳本的末尾,我 輸出可執行文件的數目。

Korn外殼

Korn外殼(Korn shell,ksh)由David Korn設計,其差不多是和Tenex C shell同一時期引入的。Korn外殼最吸引人的功能之一是被當成腳本語言使用,與此同時還向后兼容最初的Bourne外殼。

Korn外殼原來是專有軟件,直到2000年的時候,它才(遵照通用公共許可協議)作為開源軟件發布。除了提供很強的向后兼容Bourne外殼的 功能之外,Korn外殼還包含了一些來自其他外殼的功能(比如說csh的歷史記錄功能)。該外殼還提供了一些更先進的功能,這些功能可以在諸如Ruby和 Python一類的現代腳本語言中找到——比如說,關聯數組和浮點運算。Korn外殼在許多操作系統上都是可用的,這些系統中就包括了IBM® AIX® and HP-UX;并且盡力去支持 Portable Operating System Interface for UNIX(POSIX)外殼語言的標準。

Korn外殼是從Bourne外殼派生而來的,因此其看上去更類似于Bourne外殼和Bash而不是C shell。我們來看一個Korn外殼的查找可執行文件的例子(清單2)。

清單2. 用ksh編寫的查找所有可執行文件的腳本

  1. #!/usr/bin/ksh  
  2. # find all executables  
  3.  
  4. count=0 
  5.  
  6. # Test arguments  
  7. if [ $# -ne 1 ] ; then  
  8. echo "Usage is $0  
  9.    
  10. "  
  11. exit 1  
  12. fi  
  13.     
  14. # Ensure argument is a directory  
  15. if [ ! -d "$1" ] ; then  
  16. echo "$1 is not a directory."  
  17. exit 1  
  18. fi  
  19.     
  20. # Iterate the directory, emit executable files  
  21. for filename in "$1"/*  
  22. do  
  23. if [ -x "$filename" ] ; then  
  24. echo $filename  
  25. count=$((count+1))  
  26. fi  
  27. done  
  28.    
  29. echo  
  30. echo "$count executable files found."  
  31.     
  32. exit 0 

在清單2中你首先會注意到的一件事情是,其和清單1相類似。就結構上來說,腳本幾乎就是相同的,主要的不同體現在條件語句、表達式和遍歷的執行方式上。ksh并未采用類C的測試運算符,其采用了典型的Bourne式的運算符(-eq、-ne、-lt等)。

Korn外殼在遍歷方面也有些不同,在korn外殼中,所用的是for in結構,其使用了命令替換來表示文件列表,該文件列表通過命令ls '$1/*的標準輸出來創建,而該命令則代表了指定名字的子目錄中的內容。

除了前面明確了的其他功能之外,Korn還支持別名功能(使用用戶定義的串來替代一個詞)。Korn有許多其他功能在默認情況下是禁用的(比如說文件名稱的補全),不過這些功能可由用戶來啟用。

Bourne-Again Shell外殼

Bourne-Again Shell,或稱作Bash,是一個開源的GNU項目,其目標是取代Bourne外殼,Bash是由Brian Fox開發出來的,其已成為最常提供的外殼之一(在Linux、Darwin、Windows®、Cygwin、Novell、Haiku等等之上都有它 的身影)。顧名思義,Bash是Bourne外殼的一個超集,大多數的Bourne腳本都可不做修改就能執行。 

【編輯推薦】

  1. Linux人才求職寶典 技能缺口及區域分布
  2. 三英戰呂布 Windows 7與Linux三版本廝殺
  3. 2011年度gnu linux 發行版本大事記
  4. 《Linux運維趨勢》第15期:虛擬化管理軟件選型
  5. 從Unix到Linux的遷移部署:移植、升級和測試
責任編輯:張浩 來源: yeeyanyeeyan
相關推薦

2011-07-29 09:56:23

2024-10-23 10:16:58

2024-09-24 18:11:50

數據技術數據飛輪數據倉庫

2020-08-28 07:00:00

WSLLinuxWindows 10

2012-03-15 20:56:23

iPad

2015-11-16 15:20:30

微軟開源Linux

2010-08-16 09:09:40

Linux安全

2019-07-02 16:57:20

混合云技術Linux

2023-11-28 13:21:52

2025-02-05 11:43:28

2009-12-11 16:48:11

VS 2008的外殼

2021-06-22 13:52:13

綜合布線數據中心智能建筑

2010-04-01 16:17:37

Oracle復制

2011-12-13 14:19:32

iPhone信息圖

2023-05-17 15:38:55

2013-11-11 13:25:31

2022-07-11 08:20:49

DDoS攻擊網絡攻擊

2010-01-05 13:56:37

2016-02-01 13:48:53

容器容器技術

2015-11-18 19:03:27

開發者Linux容器
點贊
收藏

51CTO技術棧公眾號

成人福利视频网| 中文字幕精品在线视频| 美脚丝袜脚交一区二区| 亚洲三区在线播放| 日韩成人精品在线观看| 欧美精品日韩www.p站| 亚洲国产精品无码久久久久高潮| 成人日韩av| 亚洲午夜激情av| 亚洲精品欧美精品| 天堂在线视频免费| 精品一区二区免费看| 久久理论片午夜琪琪电影网| 无码人妻丰满熟妇啪啪欧美| 欧美区一区二区| 欧美性猛交xxxx偷拍洗澡| 一区二区在线观| 三级在线播放| 国产福利91精品| 国产精品色视频| 国产区在线观看视频| 99久久婷婷国产综合精品电影√| 亚洲精品99久久久久中文字幕| 日本在线一二三区| 在线成人av观看| 亚洲综合色在线| 在线丝袜欧美日韩制服| 日本私人网站在线观看| 国产宾馆实践打屁股91| 国产女精品视频网站免费| 中文字幕在线欧美| 午夜激情一区| 久久精品国产亚洲一区二区| 亚洲精品国产精品国自产网站| 国产主播性色av福利精品一区| 在线成人午夜影院| 污污视频网站免费观看| 看黄在线观看| 亚洲国产综合人成综合网站| a级网站在线观看| 18免费在线视频| 91在线精品一区二区| 国产精品亚洲不卡a| 国产精品视频一区二区三区,| 日韩成人午夜精品| 国产精品96久久久久久| 中文字幕在线天堂| 日韩极品在线观看| 国产成人精品亚洲精品| 在线精品免费视| 亚洲深爱激情| 91精品国产色综合| 成年人午夜视频| 99国产精品久久久久久久| 欧美激情视频网站| 中文字幕在线观看成人| 永久91嫩草亚洲精品人人| 日韩中文在线视频| 熟女av一区二区| 希岛爱理av一区二区三区| 91免费观看在线| 成人高清免费观看| 国产精品久久久久av| 一级一片免费看| 毛片一区二区| 国产精品私拍pans大尺度在线| 成人免费视频国产免费| 日本中文字幕一区二区有限公司| 国产成人精品a视频一区www| 国产精品成人久久久| 精品一区二区三区在线播放视频| 成人黄色短视频在线观看 | 亚洲国产wwwccc36天堂| 免费特级黄色片| av影片在线| 精品国产91久久久| 成人在线免费播放视频| 日韩一区二区三区免费视频| 欧美日韩一级黄| 欧美国产日韩在线视频| 91成人短视频| 日韩av网站大全| 免费视频91蜜桃| 夜间精品视频| 18一19gay欧美视频网站| 国产一级片av| 国内精品自线一区二区三区视频| 国产精品白丝jk白祙| 日本一本草久在线中文| 国产精品乱人伦中文| 黄色成人在线免费观看| 激情aⅴ欧美一区二区欲海潮| 欧美在线综合视频| 欧美污在线观看| 日韩有码一区| 日韩视频第一页| www.天天色| 青椒成人免费视频| 国产精品麻豆免费版| 啊v在线视频| 一区二区三区欧美久久| 亚洲国产精品久久久久爰色欲| 欧美午夜三级| 亚洲成人精品久久| 免费黄色在线网址| 国产精品第十页| 国产精品爱啪在线线免费观看| 国产色片在线观看| 久久综合九色综合97婷婷女人 | 国产老头老太做爰视频| 99亚洲精品| 亚洲一区二区三| 国产免费av在线| 亚洲丶国产丶欧美一区二区三区| 奇米影音第四色| 精品精品国产三级a∨在线| 夜夜嗨av一区二区三区四区| 国产成人无码精品久久久久| 蜜乳av一区二区三区| 久久99导航| 青春草在线视频| 欧美日韩精品一区二区三区| 风间由美一二三区av片| 亚洲成人国产| 国产精品久久久久久搜索| 色呦呦中文字幕| 亚洲啪啪综合av一区二区三区| 日本一极黄色片| 鲁大师精品99久久久| 欧美xxxx18国产| 艳妇乳肉豪妇荡乳av无码福利| 99视频在线精品| 国产一区二区三区乱码| 亚洲资源在线| 少妇高潮久久77777| 欧美黄色一级大片| 99re免费视频精品全部| 人妻激情另类乱人伦人妻| 国产福利亚洲| 亚洲最新中文字幕| 无码人妻精品一区二区| 91网站在线观看视频| 大西瓜av在线| 日韩欧美另类中文字幕| 久久亚洲精品视频| 国产精品一品二区三区的使用体验| 国产欧美一区二区精品仙草咪 | 精品一区二区影视| 亚洲一区三区| 日韩第二十一页| 精品国偷自产在线视频| 亚洲一区二区人妻| 国产精品日日摸夜夜摸av| 中文字幕视频在线免费观看| 久久99久久人婷婷精品综合 | 久久久影院官网| 欧美 日本 亚洲| 欧美黄色网视频| 欧美一级在线播放| 天堂中文资源在线| 岛国av一区二区| 美女脱光内衣内裤| 久久婷婷久久| 亚洲一卡二卡| 伊人久久一区| 欧美激情在线观看视频| 色呦呦中文字幕| 91久久线看在观草草青青| 人人爽人人爽人人片| 美腿丝袜在线亚洲一区| 欧美少妇在线观看| jazzjazz国产精品久久| 欧美一级视频在线观看| 国产二区视频在线观看| 欧美欧美午夜aⅴ在线观看| 男人在线观看视频| 国产伦精品一区二区三区视频青涩 | 日本久久久久久久久| 超碰免费97在线观看| 4438成人网| 日本一级淫片免费放| 久久免费午夜影院| 免费一区二区三区在线观看| 亚洲影视一区二区三区| 国产成人免费观看| www成人在线视频| 久久精品久久精品亚洲人| 精品人妻午夜一区二区三区四区| 亚洲一二三区在线观看| 久久精品成人av| 精品一区二区三区免费视频| 欧美一二三不卡| 日本中文字幕在线一区| 国产精品美女久久久久久免费 | 国产精国产精品| 免费高清完整在线观看| 亚洲精品在线观看视频| 永久免费无码av网站在线观看| 国产精品理论片| 无码国产69精品久久久久网站| 日韩av一二三| 日韩美女爱爱视频| 欧美www视频在线观看| 国产伦精品一区二区三区视频免费 | 香蕉成人伊视频在线观看| 欧美性猛交xxxx乱| 国产成人在线色| 日本免费观看网站| 在线观看亚洲| 伊人久久大香线蕉午夜av| 欧美电影在线观看完整版| 91麻豆国产精品| 另类激情视频| 久久久亚洲影院| 国产精品剧情一区二区在线观看| 日韩电影中文字幕一区| 国产成人毛毛毛片| 欧美性感一区二区三区| 久久狠狠高潮亚洲精品| 亚洲三级免费电影| 91成人在线免费视频| 97久久久精品综合88久久| 91看片破解版| 热久久免费视频| 成人免费视频91| 欧美精品福利| 樱空桃在线播放| 欧美精品一区二区三区中文字幕| 国产精品一区二区三区在线 | 欧美久久久久久一卡四| 日本加勒比一区| 国产精品片aa在线观看| 国产精品久久久久久av下载红粉| 麻豆蜜桃在线观看| 欧美激情性做爰免费视频| 精品视频在线一区二区| 日韩在线视频一区| 水中色av综合| 国产视频精品在线| 人妻妺妺窝人体色www聚色窝| 日韩午夜在线观看视频| 日韩1区2区3区| 国产精品三级久久久久久电影| 新版的欧美在线视频| 欧美激情综合亚洲一二区| 国产人成网在线播放va免费| 日韩亚洲欧美中文高清在线| av在线电影观看| 一夜七次郎国产精品亚洲| 婷婷婷国产在线视频| 亚洲国产精品高清久久久| 蜜桃av噜噜一区二区三区麻豆| 欧美一级日韩一级| 国产偷拍一区二区| 欧美一级xxx| 亚洲精品一区二区三区新线路| 日韩欧美国产高清| 国产福利免费视频| 欧美电视剧在线看免费| 亚洲精品一区二区三区四区| 亚洲成人xxx| 青春草在线观看| 国产一区二区日韩| 最新av网站在线观看| 久久久精品视频成人| 超碰在线免费播放| 欧美激情xxxx| 亚洲啊v在线| 国产精品久久视频| www.成人在线.com| 97久久天天综合色天天综合色hd | 欧美日韩国产精品一卡| 亚洲福利天堂| 一区二区视频国产| 国产精品a久久久久| 欧美日韩亚洲一| 全部av―极品视觉盛宴亚洲| 999这里有精品| 成人免费毛片app| 国产精品无码一区二区三区| 国产日产欧美精品一区二区三区| 国产又色又爽又高潮免费| 亚洲精品福利视频网站| 精品美女久久久久| 欧美午夜一区二区三区免费大片| 国产视频在线观看视频| 日韩av在线播放资源| 永久免费av在线| 国内自拍欧美激情| 777午夜精品电影免费看| 91色中文字幕| 免费成人高清在线视频theav| 一区二区精品国产| 亚洲三级毛片| 57pao国产成永久免费视频| 国产91高潮流白浆在线麻豆| 性欧美丰满熟妇xxxx性仙踪林| 国产精品传媒入口麻豆| 日本免费一二三区| 欧美日韩一级黄| 性高潮久久久久久久久久| 精品国偷自产在线| 三级在线看中文字幕完整版| 国产日本欧美一区| 亚洲人挤奶视频| 国产a级黄色大片| 青青草成人在线观看| 欧美一区二区免费在线观看| 中文字幕一区在线观看视频| 欧美激情黑白配| 欧美成人免费网站| 欧美人xxx| 日本不卡视频在线播放| 91夜夜蜜桃臀一区二区三区| 一区二区精品视频| 亚洲中午字幕| 国产精品久久久久久亚洲av| 亚洲码国产岛国毛片在线| 亚洲精品国产欧美在线观看| 激情综合网激情| 国产精品丝袜视频| 久久电影在线| japanese在线播放| 免费成人性网站| www在线观看免费视频| 亚洲一区二区三区中文字幕在线| 亚洲自拍第二页| 搡老女人一区二区三区视频tv| 伊人久久综合一区二区| 国产伦精品一区二区三| 欧美片第1页综合| 久久出品必属精品| 成人欧美一区二区三区白人 | 亚洲国产精品yw在线观看| 18av在线播放| 国产在线精品播放| 成人一区不卡| 免费一区二区三区在线观看| 中文字幕免费不卡| 91麻豆精品在线| 国产亚洲成av人片在线观看桃| 美女搞黄视频在线观看| 国产日本一区二区三区| 狠狠色丁香久久综合频道| 中文字幕乱妇无码av在线| 亚洲色图丝袜美腿| 91久久精品无码一区二区| 色婷婷av一区二区三区在线观看| 成人性片免费| 一区二区三区四区| 久久99精品久久久久久国产越南| 毛片久久久久久| 欧美日韩免费观看一区二区三区| 亚洲欧美视频一区二区| 国产日韩欧美在线播放| 亚洲电影在线一区二区三区| 免费不卡av网站| 樱桃国产成人精品视频| 国产91免费看| 欧美在线亚洲在线| 欧美色女视频| 天堂av在线8| 亚洲综合清纯丝袜自拍| 三级小视频在线观看| 97不卡在线视频| 国产伦精品一区二区三区千人斩| 乌克兰美女av| 亚洲少妇30p| 高清不卡日本v二区在线| 精品国产99| av中文字幕网址| 一个色综合av| 同心难改在线观看| 国产精品国产亚洲伊人久久| 91麻豆精品国产91久久久平台| 手机av在线网站| 调教+趴+乳夹+国产+精品| 韩国中文字幕2020精品| 国产免费一区视频观看免费| 国内精品久久久久久久97牛牛 | 北条麻妃在线一区| 中文在线一区二区| h片在线免费看| 日产精品99久久久久久| 天天综合国产| 亚洲熟女一区二区| 欧美午夜一区二区三区| 超碰在线免费播放| 欧美伦理一区二区| 国内精品免费**视频| 日韩美女黄色片| 日韩在线播放一区| 高清欧美性猛交xxxx黑人猛| 无码人妻精品一区二区三区66| 亚洲欧洲色图综合| 视频污在线观看| 成人淫片在线看| 国产精品一级| 91高清免费观看| 亚洲欧美日韩精品|