精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

97色在线观看免费视频| 6080国产精品一区二区| 日本欧美精品久久久| 免费黄色小视频在线观看| 成人黄色av| 欧美一区日韩一区| 日韩av片在线看| 欧美三级黄网| 成人黄色在线视频| 国产精品主播视频| 精品午夜福利在线观看| 精品国产一级毛片| 日韩欧美另类在线| 精品久久久久av| 岛国中文字幕在线| 久久综合久久鬼色| 97在线资源站| 中文字幕免费观看视频| 亚洲精品色图| 久久的精品视频| 亚洲永久无码7777kkk| 97精品资源在线观看| 欧美日韩亚洲系列| 99精品视频网站| 久久这里精品| 粉嫩av一区二区三区| 国产精品一区二区女厕厕| 国产无人区码熟妇毛片多| 亚洲天堂免费| 中文字幕精品一区二区精品| 亚洲自拍偷拍精品| 亚洲高清在线一区| 欧美日韩国产一区二区三区地区| 欧美韩国日本在线| 阿v视频在线| 一区二区三区四区视频精品免费 | 欧美日韩一卡| 色噜噜亚洲精品中文字幕| 久久精品老司机| 国产丝袜一区| 精品欧美一区二区久久| 超碰91在线播放| 亚洲人体在线| 欧美日韩一区二区电影| 热久久精品国产| 最新欧美色图| 精品久久久久国产| 老太脱裤让老头玩ⅹxxxx| www久久日com| 综合久久久久久| 亚洲在线视频一区二区| 国产小视频在线观看| 久久久久9999亚洲精品| 美脚丝袜一区二区三区在线观看| 天天操天天插天天射| 波多野结衣一区二区三区 | 丰满人妻妇伦又伦精品国产| 国产久卡久卡久卡久卡视频精品| 成人精品视频99在线观看免费| 日韩黄色片网站| 日韩成人精品在线| 国产精品久久久久久网站| 懂色av蜜臀av粉嫩av分享吧最新章节| 性色一区二区| 国产精品av在线播放| 少妇又紧又色又爽又刺激视频| 日本91福利区| 成人免费看黄网站| av网站免费大全| 风间由美性色一区二区三区| 国产麻豆乱码精品一区二区三区 | 日韩有码视频在线| wwwav国产| 亚洲经典自拍| 奇门遁甲1982国语版免费观看高清 | 欧美成人一区二免费视频软件| 美女视频黄免费的亚洲男人天堂| 欧美黄色免费观看| 在线综合欧美| 国产精品丝袜一区二区三区| 99国产在线播放| jiyouzz国产精品久久| 九九九九九九精品| av中文天堂在线| 亚洲精品中文在线影院| 日韩av高清在线看片| 欧美特黄aaaaaaaa大片| 欧美日韩国产中文| 中文字幕乱视频| 欧美日韩在线二区| 欧美黑人一区二区三区| 亚洲欧美综合自拍| 精品在线你懂的| 国产一区二区在线观看免费播放| 国产精品免费观看| 亚洲精品v日韩精品| 欧美网站免费观看| 欧美三级电影网址| 亚洲国产日韩欧美在线动漫 | 亚洲色图欧美在线| 久艹视频在线免费观看| 福利一区二区三区视频在线观看| 欧美一级片在线| 午夜理伦三级做爰电影| 自拍偷拍欧美专区| 国产成人精品在线播放| 精品国产99久久久久久宅男i| 91亚洲精品久久久蜜桃网站| 中文字幕一区二区三区5566| 国产伦子伦对白在线播放观看| 欧美日精品一区视频| 国产伦精品一区二区三区精品| 成人免费看片39| 97视频国产在线| 国产精品乱码久久久| 91麻豆免费视频| 久久视频免费在线| 高清欧美日韩| 亚洲欧洲日韩国产| 国产精品99精品无码视| 国产综合成人久久大片91| 欧美大香线蕉线伊人久久| 色呦呦网站在线观看| 精品视频资源站| 国产福利短视频| 国产精品99免费看| 91久久久久久国产精品| 超碰国产在线| 日韩欧美国产激情| av鲁丝一区鲁丝二区鲁丝三区| 久久久国产精品| 国产精品色婷婷视频| 欧美女v视频| 狠狠色噜噜狠狠狠狠97| 麻豆精品国产传媒av| 91tv精品福利国产在线观看| 国产欧美一区二区三区久久| 国产在线超碰| 在线区一区二视频| 五月婷婷综合在线观看| 亚洲无线视频| 国产精品久久久久久久久久久久冷 | 99久久99精品久久久久久| 日韩精品久久一区二区| 欧美午夜在线播放| 久久综合久中文字幕青草| 亚洲无码精品在线观看| 国产精品美女www爽爽爽| 欧美 国产 小说 另类| 亚洲资源网你懂的| 日本午夜精品理论片a级appf发布| 天天射天天色天天干| 午夜电影一区二区| 黄色a一级视频| 久久精品盗摄| 亚洲乱码一区二区三区| 四虎地址8848精品| 不卡伊人av在线播放| 国产极品999| 亚洲成人在线网站| fc2成人免费视频| 日韩视频久久| 欧美一区二区高清在线观看| 欧美日韩精品免费观看视欧美高清免费大片| 日韩精品中文字| 日本免费在线观看视频| 日本一区二区三区四区 | 久久精品国产成人av| 91美女在线视频| 成人亚洲精品777777大片| 91久久夜色精品国产按摩| 国产欧美久久一区二区| 日韩激情av| 国产视频在线观看一区二区| 国产美女www爽爽爽| 国产精品久久影院| 丰满饥渴老女人hd| 亚洲少妇在线| 亚洲福利av| 日韩在线观看中文字幕| 91精品国产99久久久久久| 九色视频在线观看免费播放| 欧美日韩和欧美的一区二区| 国产一级片视频| 国产亚洲精品免费| www.桃色.com| 亚洲一区二区毛片| 在线成人性视频| **爰片久久毛片| 国产成人涩涩涩视频在线观看| 免费看a在线观看| 日韩av在线高清| 伊人网av在线| 亚洲va国产天堂va久久en| 久久久久久国产免费a片| 国产寡妇亲子伦一区二区| 1024精品视频| 伊人成综合网| 欧美午夜精品久久久久免费视| 国内精品视频| 欧美在线性视频| 成年人黄视频在线观看| 亚洲欧美日韩国产成人| 国产高清在线免费| 欧美亚洲国产一区二区三区va| 69av.com| 国产精品无人区| jlzzjizz在线播放观看| 激情伊人五月天久久综合| 日韩精品xxxx| 欧美激情日韩| 亚洲视频电影| 九热爱视频精品视频| 97se亚洲综合| 青青草国产一区二区三区| 日本精品在线视频| 91超碰免费在线| 久久成人av网站| av电影在线观看| 亚洲人在线视频| 免费av网站在线播放| 欧美精品乱码久久久久久按摩 | 午夜一级在线看亚洲| avove在线观看| 日韩国产欧美| 色爱区成人综合网| 日韩伦理一区二区三区| 999热视频在线观看| 91精品亚洲一区在线观看| 国产精品视频成人| 综合在线影院| 欧洲亚洲免费在线| 345成人影院| 91精品国产色综合久久不卡98| 色图在线观看| 欧美成人自拍视频| 成人在线网址| 久久中文字幕国产| 成人福利片网站| 欧美成人午夜激情视频| 欧洲不卡av| 日韩一区二区久久久| 国产69久久| 在线视频国产日韩| 国产中文字幕在线看| 亚洲视频免费一区| 成人在线观看网站| 中文字幕视频一区二区在线有码| 搞黄视频免费在线观看| 国产一区二区三区四区福利| 国产日韩精品在线看| 国产亚洲欧美日韩精品| 国产剧情在线观看| 亚洲天堂av在线播放| 国产一级在线观看| 最近2019年好看中文字幕视频| av在线播放免费| 中文字幕日韩电影| 秋霞午夜在线观看| 欧美成人激情视频| 丁香花高清在线观看完整版| 性色av一区二区三区红粉影视| 男人av在线播放| 26uuu另类亚洲欧美日本一| 日韩激情电影| 国产精品美女呻吟| 91视频亚洲| 国产伦精品一区二区三区免费视频 | 3d动漫精品啪啪| 国产成人精品av在线观| 亚洲成色999久久网站| 日本私人网站在线观看| 亚洲色图第一页| 黄在线免费观看| 久久久综合免费视频| 成人香蕉视频| 成人综合国产精品| 美腿丝袜亚洲图片| 日本一区二区精品视频| 天堂美国久久| 福利视频一二区| 日本欧美一区二区在线观看| 三级黄色片播放| 91蝌蚪porny| 成人做爰视频网站| 天天色图综合网| 中文字幕丰满人伦在线| 日韩欧美国产wwwww| 欧美欧美欧美| 欧美国产精品人人做人人爱| 成人勉费视频| 91文字幕巨乱亚洲香蕉| 奇米色欧美一区二区三区| 性做爰过程免费播放| 一区二区国产在线观看| 天天干天天爽天天射| 成人午夜大片免费观看| 免费看裸体网站| 性久久久久久久久| 91中文字幕在线播放| 日韩成人久久久| 黄色一级大片在线免费看产| 欧美一级免费视频| 久久伊人影院| 神马影院我不卡午夜| 亚洲另类黄色| 日韩av成人网| 国产精品―色哟哟| 国产成人精品一区二三区| 91精品国产乱码久久蜜臀| 男操女在线观看| 午夜精品免费视频| 99亚洲男女激情在线观看| 日产精品高清视频免费| 伊人狠狠色j香婷婷综合| 国产乱叫456| 欧美国产日产图区| 麻豆成人免费视频| 亚洲电影第1页| 羞羞视频在线观看不卡| 国产狼人综合免费视频| 一区二区美女| 极品美女扒开粉嫩小泬| 国产酒店精品激情| www.5588.com毛片| 欧美日韩中文另类| 国产精品99999| 热久久免费国产视频| 久久久免费毛片| 国产资源在线免费观看| 国产一区不卡精品| 97在线观看视频免费| 欧美三级电影网站| 素人av在线| 国产精品免费久久久| 精品一二三区| 能看的毛片网站| 国产欧美一区二区精品婷婷| 亚洲婷婷综合网| 国产婷婷成人久久av免费高清 | 成人午夜精品无码区| 一区二区三区日韩精品| 国产三级视频在线播放| 精品国产欧美一区二区五十路 | 免费在线观看一区二区| 国产亚洲毛片| 女尊高h男高潮呻吟| 一本大道av一区二区在线播放| 全色精品综合影院| 国产成人福利视频| 日韩激情图片| 午夜精品免费看| 亚洲摸摸操操av| 亚洲第一天堂在线观看| 欧美高清不卡在线| 第一区第二区在线| 日韩国产一级片| 久久久久久久久久久久久久久99| 亚洲另类在线观看| 国产一区二区日韩| 精品自拍视频| 经典三级在线视频| 国产成人精品影视| 国产一级做a爱片久久毛片a| 亚洲欧美一区二区三区久久| 天堂久久午夜av| 中文字幕免费高| 懂色中文一区二区在线播放| 日韩精品在线免费看| 国产丝袜精品视频| 99欧美精品| 国产女人18毛片| 99re视频这里只有精品| av毛片在线免费观看| 日韩有码视频在线| 久久狠狠久久| 中文字幕在线观看第三页| 亚洲乱码日产精品bd| 天天综合在线视频| 国产精品麻豆va在线播放| 亚洲国产精品久久久天堂| 天天躁日日躁狠狠躁av麻豆男男| 色综合天天做天天爱| 快射视频在线观看| 久久精品人成| 精品一区二区三区久久久| 国产在线免费视频| 亚洲无亚洲人成网站77777| 九九九九九九精品任你躁| 久久亚洲中文字幕无码| 国产精品人成在线观看免费| 黄色av一区二区三区| 国产精品草莓在线免费观看| 欧美激情综合色综合啪啪| 午夜理伦三级做爰电影| 欧美一级二级在线观看| 欧美亚洲大片| 青青草国产精品视频| 国产精品欧美久久久久无广告 | 久久国产一区二区三区|