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

探索 Shell 腳本的威力

系統 Linux
本文章向你介紹了 Shell 腳本的基礎知識以及其在日常生活中的重要性。

當我們登錄到一個 UNIX/Linux 系統時,我們首先注意到的是閃爍的光標和 $ 符號之間的空格。這就是 Shell(交互界面)。多年來,它一直是一種無處不在(有時甚至是唯一的)與計算機交互的界面。在圖形用戶界面(GUI)出現和流行之前,終端和 Shell 是唯一的機制,可以讓計算機按照我們的意圖進行操作。乍一看,我們可能會想知道 Shell 的作用,除了將命令傳遞給底層操作系統以進行執行之外。我們中的大多數人熟悉像 ls(用于列出目錄內容),cd(用于更改當前目錄)等命令。通過 Shell,我們可以執行這些命令。Shell 理解我們輸入的文本 - 將其轉換為標記 - 然后在操作系統上執行這些標記。

不同的 Shell 變種

最初,終端使用了樸素的 Bourne Shell(即 Sh)。多年來,許多不同的 Shell 變種被開發出來和使用。其中一些流行的包括 C Shell(Csh) 和 Korn Shell(Ksh)。Sh 在一段時間內不再受歡迎,但通過其最新的化身 —— Bourne Again Shell(Bash),它再次流行起來。

Shell 實際上是做什么的?

Shell 是操作系統(OS)和用戶之間的直接接口。通過使用命令和應用程序來使用計算機上安裝的工具,我們可以使計算機按照我們的意愿工作。一些命令是安裝在操作系統上的應用程序,而某些命令則是直接內置在 Shell 中的。在 Bash 中內置的一些命令包括 clearcdeval 和 exec,還有 ls 和 mkdir 這樣的應用程序。內置在 Shell 中的命令因 Shell 而異。

在本文中,我們將涵蓋與 Bash 相關的幾個方面。

更多關于 Shell 的內容

我們中的大多數人都用過像 lscd 和 mkdir 這樣的命令。當我們在一個目錄上運行 ls -l 命令時,該目錄中的所有子目錄和文件都會在屏幕上列出。如果數量很大,屏幕會滾動。如果終端不支持滾動條(在很多年里都是如此),則無法查看已滾動過的條目。為了克服這個問題,我們使用像 more 和 less 這樣的命令。它們允許我們逐頁查看輸出。通常使用的命令是:

ls -l | less

在這里 Shell 是在做什么?看起來像是單個命令,實際上是 ls 和 less 兩個命令依次執行。管道符(|)將這兩個程序連接起來,但連接由 Shell 管理。由于有了管道符,Shell 連接了這兩個程序——它將 ls 命令的標準輸出連接到 less 的標準輸入(stdin)。管道功能使我們能夠將任何程序的輸出作為另一個程序的輸入提供,而無需對程序進行任何更改。這是許多 UNIX/Linux 應用程序的理念——保持應用程序簡單,然后將許多應用程序組合在一起以實現最終結果,而不是讓一個程序做很多事情。

如果需要,我們可以將 ls 的輸出重定向到文件中,然后使用 vi 查看它。為此,我們使用以下命令:

ls -l > /tmp/my_file.txt
vi /tmp/my_file.txt

在這種情況下,ls 的輸出被重定向到一個文件中。這由 Shell 進行管理,它理解 > 符號表示重定向。它將其后面的標記視為文件。

使用 Shell 自動化

結合命令的能力是使用 Shell 命令創建自動化腳本的關鍵要素之一。在我最近的項目中,我們使用集群模式執行 Python/Spark(PySpark)應用程序。每個應用程序執行了許多結構化查詢語言(SQL)語句 - SparkSQL。為了跟蹤應用程序的進展,我們會打印有關正在執行的 SQL 的詳細信息。這樣可以讓我們保留應用程序中正在發生的情況的日志。由于應用程序在集群模式下執行,要查看日志,我們必須使用以下 yarn 命令:

yarn log –applicationId [application_id]

在大多數情況下,應用程序生成的日志非常大。因此,我們通常將日志導入到 less 中,或將其重定向到一個文件中。我們使用的命令是:

yarn log –aplicationId [application_id] | less

我們的開發團隊有 40 人。每個人都必須記住這個命令。為了簡化操作,我將這個命令轉換成了一個 Bash 腳本。為此,我創建了一個以 .sh 為擴展名的文件。在 UNIX 和 Linux 系統上,文件擴展名并不重要。只要文件是可執行的,它就能工作。擴展名在 MS Windows 上有意義。

需要記住的重要事項

Shell 是一個解釋器。這意味著它會逐行讀取程序并執行它。這種方法的限制在于錯誤(如果有)在事先無法被識別。直到解釋器讀取和執行它們時,錯誤才會被識別出來。簡而言之,假如我們有一個在前 20 行完美執行,但在第 21 行由于語法錯誤而失敗的 Shell 程序。當腳本在第 21 行失敗時,Shell 不會回滾/撤銷之前的步驟。當發生這樣的情況時,我們必須糾正腳本并從第一行開始執行。因此,例如,如果在遇到錯誤之前刪除了幾個文件,腳本的執行將停止,而文件將永遠消失。

我創建的腳本是:

#!/bin/bash
yarn log –applicationId 123 | less

…其中 123 是應用程序的 ID。

第一行的前兩個字符是特殊字符(“釋伴”)。它們告訴腳本這是一個可執行文件,并且該行包含要用于執行的程序的名稱。腳本的其余行傳遞給所提到的程序。在這個例子中,我們將執行 Bash。即使包含了第一行,我們仍然必須使用以下命令對文件應用執行權限:

chmod +x my_file.sh

在給文件設置了執行權限之后,我們可以如下執行它:

./my_file.sh

如果我們沒有給文件設置執行權限,我們可以使用以下命令執行該腳本:

sh ./my_file.sh

傳遞參數

你很快就會意識到,這樣的腳本很方便,但立即變得無用。每次執行 Python/Spark 應用程序時,都會生成一個新的 ID。因此,對于每次運行,我們都必須編輯文件并添加新的應用程序 ID。這無疑降低了腳本的可用性。為了提高其可用性,我們應該將應用程序 ID 作為參數傳遞:

#!/bin/bash
yarn –log -applicationId ${1} | less

我們需要這樣執行腳本:

./show_log.sh 123

腳本將執行 yarn 命令,獲取應用程序的日志并允許我們查看它。

如果我們想將輸出重定向到一個文件中怎么辦?沒問題。我們可以將輸出重定向到一個文件而不是發送給 less

#!/bin/bash
ls –l ${1} > ${2}
view ${2}

要運行腳本,我們需要提供兩個參數,命令變為:

./my_file.sh /tmp /tmp/listing.txt

當執行時,$1 將綁定到 /tmp$2 將綁定到 /tmp/listing.txt。對于 Shell,參數從一到九命名。這并不意味著我們不能將超過九個參數傳遞給腳本。我們可以,但這是另一篇文章的主題。你會注意到,我將參數命名為 ${1} 和 ${2},而不是 $1 和 $2。將參數名稱封閉在花括號中是一個好習慣,因為它使我們能夠無歧義地將參數作為較長變量的一部分組合起來。例如,我們可以要求用戶將文件名作為參數,并使用它來形成一個更大的文件名。例如,我們可以將 $1 作為參數,創建一個新的文件名為 ${1}_student_names.txt

使腳本更健壯

如果用戶忘記提供參數怎么辦?Shell 允許我們檢查這種情況。我們將腳本修改如下:

#!/bin/bash
if [ -z "${2}" ]; then
  echo "file name not provided"
  exit 1
fi
if [ -z "${1}" ]; then
  echo "directory name not provided"
  exit 1
fi
DIR_NAME=${1}
FILE_NAME=${2}
ls -l ${DIR_NAME} > /tmp/${FILE_NAME}
view /tmp/${FILE_NAME}

在這個程序中,我們檢查是否傳遞了正確的參數。如果未傳遞參數,我們將退出腳本。你會注意到,我以相反的順序檢查參數。如果我們在檢查第一個參數存在之前檢查第二個參數的存在,如果只傳遞了一個參數,腳本將進行到下一步。雖然可以按遞增順序檢查參數的存在,但我最近意識到,從九到一檢查會更好,因為我們可以提供適當的錯誤消息。你還會注意到,參數已分配給變量。參數一到九是位置參數。將位置參數分配給具名參數可以在出現問題時更容易調試腳本。

自動化備份

我自動化的另一個任務是備份。在開發的初期階段,我們沒有使用版本控制系統。但我們需要有一個機制來定期備份。因此,最好的方法是編寫一個 Shell 腳本,在執行時將所有代碼文件復制到一個單獨的目錄中,將它們壓縮,并使用日期和時間作為后綴來上傳到 HDFS。我知道,這種方法不如使用版本控制系統那樣清晰,因為我們存儲了完整的文件,查找差異仍然需要使用像 diff 這樣的程序;但它總比沒有好。盡管我們最終沒有刪除代碼文件,但團隊確實刪除了存儲助手腳本的 bin 目錄!!!而且對于這個目錄,我沒有備份。我別無選擇,只能重新創建所有的腳本。

一旦建立了源代碼控制系統,我很容易將備份腳本擴展到除了之前上傳到 HDFS 的方法之外,還可以將文件上傳到版本控制系統。

總結

如今,像 Python、Spark、Scala 和 Java 這樣的編程語言很受歡迎,因為它們用于開發與人工智能和機器學習相關的應用程序。盡管與 Shell 相比,這些語言更強大,但“不起眼”的 Shell 提供了一個即用即得的平臺,讓我們能夠創建輔助腳本來簡化我們的日常任務。Shell 是相當強大的,尤其是因為我們可以結合操作系統上安裝的所有應用程序的功能。正如我在我的項目中發現的那樣,即使經過了幾十年,Shell 腳本仍然非常強大。我希望我已經說服你嘗試一下了。

最后一個例子

Shell 腳本確實非常方便。考慮以下命令:

spark3-submit --queue pyspark --conf "spark.yarn.principal=abcd@abcd.com" --conf "spark.yarn.keytab=/keytabs/abcd.keytab" --jars /opt/custom_jars/abcd_1.jar --deploy-mode cluster --master yarn $*

我們要求在執行 Python/Spark 應用程序時使用此命令。現在想象一下,這個命令必須每天被一個由 40 個人組成的團隊多次使用。大多數人會在記事本中復制這個命令,每次需要使用時,會將其從記事本中復制并粘貼到終端中。如果復制粘貼過程中出現錯誤怎么辦?如果有人錯誤使用了參數怎么辦?我們如何調試使用的是哪個命令?查看歷史記錄并沒有太多幫助。

為了讓團隊能夠簡單地執行 Python/Spark 應用程序,我們可以創建一個 Bash Shell 腳本,如下所示:

#!/bin/bash
SERVICE_PRINCIPAL=abcd@abcd.com
KEYTAB_PATH=/keytabs/abcd.keytab
MY_JARS=/opt/custom_jars/abcd_1.jar
MAX_RETRIES=128
QUEUE=pyspark
MASTER=yarn
MODE=cluster

spark3-submit --queue ${QUEUE} --conf "spark.yarn.principal=${SERVICE_PRINCIPAL}" --conf "spark.yarn.keytab=${KEYTAB_PATH}" --jars ${MY_JARS} --deploy-mode ${MODE} --master ${MASTER} $*

這展示了一個 Shell 腳本的強大之處,讓我們的生活變得簡單。根據你的需求,你可以嘗試更多的命令和腳本,并進一步探索。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2024-05-06 11:30:06

2024-02-27 09:12:24

PostgreSQL數據庫查詢WHERE 子句

2024-11-27 09:19:25

2019-08-09 13:50:08

shellLinux

2021-05-12 10:17:15

Shell工具Linux

2013-09-04 09:59:49

監控 Shell 腳本

2023-12-21 07:09:32

Go語言任務

2018-08-28 16:02:59

LinuxShellBash

2020-10-27 07:51:12

Shell腳本日期

2013-08-19 12:46:27

2013-08-30 10:25:22

Shell主機監控

2020-12-16 08:51:31

Shell腳本用途

2020-10-21 11:55:44

Shell編程語言Linux

2020-04-26 19:12:29

shell腳本Linux

2017-08-11 17:20:07

LinuxShell

2011-09-27 13:52:41

2020-06-17 10:42:54

shellshell腳本Linux

2023-11-15 11:34:03

SassBootstrap

2020-11-02 08:23:36

shell腳本Linux

2009-11-18 13:52:30

PHP shell腳本
點贊
收藏

51CTO技術棧公眾號

永久免费av在线| 国产白浆在线观看| 成视频免费观看在线看| 2019中文字幕在线电影免费 | 亚洲人成在线观看| 色综合久久综合网欧美综合网 | 国产精品久久久久影院| 成人中心免费视频| 国产污污视频在线观看 | 凹凸av导航大全精品| 在线免费观看日本欧美| 中文字幕色呦呦| 欧美女子与性| 国产经典欧美精品| 日韩av免费在线观看| 成人免费精品动漫网站| 婷婷精品视频| 日韩欧美在线观看一区二区三区| 国产真实乱子伦| 在线看一级片| 国产精品二区一区二区aⅴ污介绍| 国语精品中文字幕| 99精品视频免费看| 日本在线不卡视频| 2020欧美日韩在线视频| 免费一级全黄少妇性色生活片| re久久精品视频| 日韩av一区二区在线观看| 欧美视频国产视频| 日本欧美一区| 好吊成人免视频| 日韩 欧美 视频| jizzjizz亚洲| 18涩涩午夜精品.www| 日本精品二区| 日本天堂在线| av激情亚洲男人天堂| 97视频资源在线观看| 国产又粗又猛又黄又爽无遮挡| 爽爽淫人综合网网站| 久久精品久久99精品久久| 国产亚洲成av人片在线观看桃| 人妻体内射精一区二区三区| 日本成人精品| 欧美一区二区三区小说| 手机看片一级片| 色成人免费网站| 色偷偷成人一区二区三区91| 欧美 国产 综合| 黄色漫画在线免费看| 亚洲午夜羞羞片| 免费的一级黄色片| 色婷婷av在线| 亚洲一区二区偷拍精品| 久久艹国产精品| 久久99亚洲网美利坚合众国| 一区二区三区小说| 国产高清不卡无码视频| 欧美巨大xxxx做受沙滩| 亚洲国产裸拍裸体视频在线观看乱了 | 一个人看的www日本高清视频| 日韩二区在线观看| 国产欧美精品xxxx另类| 怡春院在线视频| 久久精品国产久精国产| 成人精品久久av网站| 国产绿帽刺激高潮对白| 国产成人av影院| 国产伦精品一区二区三区高清| 亚洲欧美黄色片| fc2成人免费人成在线观看播放| 精品国产区在线| 欧美日韩在线精品一区二区三区激情综 | 精品日本高清在线播放 | 久久久久成人片免费观看蜜芽| 韩国精品一区二区三区| 91精品国产91久久久久久最新| 久久黄色精品视频| 蜜芽一区二区三区| 99国产超薄肉色丝袜交足的后果| 黄色成人一级片| 久久欧美一区二区| 自拍偷拍亚洲色图欧美| 激情网站在线| 欧洲亚洲国产日韩| www.51色.com| 香蕉久久夜色精品国产更新时间| 一道本无吗dⅴd在线播放一区| 国产精品视频在| 精品96久久久久久中文字幕无| 欧美伊久线香蕉线新在线| 伊人免费在线观看高清版| 成人av综合一区| 视频在线99| heyzo高清在线| 欧美三级日韩在线| 人妖粗暴刺激videos呻吟| 欧美精选视频在线观看| 久久久久久久国产精品视频| av首页在线观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日韩在线精品一区| 欧美三日本三级少妇99| 精品写真视频在线观看| 久久久久久久久四区三区| 久草中文在线| 91国偷自产一区二区三区成为亚洲经典| 999这里有精品| 亚洲男人都懂第一日本| 欧美乱大交xxxxx另类电影| 午夜精品久久久久久久蜜桃| 福利91精品一区二区三区| 日韩免费三级| 美女91在线看| 日韩色视频在线观看| 免费一级黄色录像| 亚洲每日更新| 亚洲一区免费网站| 成人精品福利| 欧美日韩国产一区二区| 亚洲三级在线视频| 日韩系列欧美系列| 国产精品精品国产| 日韩一二三四| 婷婷成人激情在线网| 国模大尺度视频| 久久影视一区| 国产精品va在线播放我和闺蜜| 天天色棕合合合合合合合| 亚洲黄色免费网站| 亚洲一二三av| 久久一级电影| 国产在线视频欧美| av每日在线更新| 色婷婷久久久久swag精品| www.啪啪.com| 亚洲精品乱码| 国产精品三区在线| 狂野欧美激情性xxxx欧美| 欧美一区二区私人影院日本| 欧美h片在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产伊人精品| 99高清视频有精品视频| 色a资源在线| 欧美成人三级在线| 精品无码久久久久久久| 国产成都精品91一区二区三| 成年丰满熟妇午夜免费视频| 久久伊人久久| 欧美巨乳在线观看| www.国产视频| 亚洲成a人v欧美综合天堂下载 | 91麻豆成人精品国产| 亚洲国产成人在线| 中文字幕永久有效| 欧美jjzz| 国产精品亚洲一区| 涩涩av在线| 亚洲全黄一级网站| 亚洲手机在线观看| 亚洲精品成人悠悠色影视| 国产人妖在线观看| aa级大片欧美三级| 奇米精品在线| 日韩黄色三级| 欧美激情18p| 青青视频在线观| 欧美午夜精品一区二区蜜桃| 男人在线观看视频| 国产成人在线网站| 色综合久久久久无码专区| 九九亚洲视频| 成人午夜高潮视频| 超免费在线视频| 国产香蕉一区二区三区在线视频| 亚洲在线精品视频| 亚洲尤物视频在线| 99久久久无码国产精品性| 热久久国产精品| 91国在线高清视频| 亚洲+变态+欧美+另类+精品| 国产精品久久久久久久久影视| 免费高清完整在线观看| 亚洲第一精品夜夜躁人人躁| 国产91国语对白在线| 亚洲欧美中日韩| 国产黄色三级网站| 久久国产精品色| 日本www在线视频| 日韩成人精品一区| 国产亚洲欧美一区二区| 精品自拍视频| 91av在线播放| 国产精品扒开做爽爽爽的视频| 亚洲国产欧美一区二区三区久久| 男人天堂视频在线| 亚洲福利电影网| 91久久久久久久久久久久久久| 99久久精品国产一区二区三区| 中文字幕一区二区三区四区在线视频 | 日韩麻豆第一页| 国产欧美熟妇另类久久久| 一本色道亚洲精品aⅴ| 欧美成人精品欧美一级| 国产精品视频在线看| 免费黄色三级网站| 国产一区视频网站| 成年人在线看片| 日韩亚洲国产精品| 欧美高清中文字幕| 99久久综合| 日韩电影在线播放| 欧美绝顶高潮抽搐喷水合集| 91中文字幕在线| 国产成人亚洲一区二区三区| 欧美壮男野外gaytube| 国产精品186在线观看在线播放| www.色综合| www.国产精品.com| 亚洲深夜福利网站| 无码国产色欲xxxx视频| 日韩精品一区二区三区视频播放| 亚洲视频在线观看一区二区| 日本丰满少妇一区二区三区| 看片网址国产福利av中文字幕| 亚洲午夜久久久久久久久电影网| 无码黑人精品一区二区| 国产精品网站一区| 亚洲午夜精品久久久久久高潮| 久久综合一区二区| 极品粉嫩小仙女高潮喷水久久| 岛国av在线一区| 亚洲成a人无码| 国产69精品久久777的优势| 亚洲自拍第三页| 国产真实乱对白精彩久久| 污色网站在线观看| 男人的j进女人的j一区| 精品久久久噜噜噜噜久久图片| 久久成人免费| 国产精品天天av精麻传媒| 视频在线观看一区| 九热视频在线观看| 免费高清成人在线| 91制片厂毛片| 国内久久婷婷综合| 超碰91在线播放| 国产成人精品亚洲午夜麻豆| av在线天堂网| 成人avav在线| 欧美黑人欧美精品刺激| 久久久亚洲午夜电影| 国产中年熟女高潮大集合| 国产网红主播福利一区二区| 亚洲第一综合网| 亚洲欧洲日韩女同| 黄色一级视频在线观看| 亚洲6080在线| 中文字幕av影院| 欧美色精品在线视频| 国产精品久久久久久久免费看 | 亚洲天堂av一区二区| 国产一区欧美二区| 国产精品久久久久久亚洲av| 26uuu国产在线精品一区二区| 亚洲AV无码片久久精品| 国产精品美女久久福利网站| 精品国产视频一区二区三区| 亚洲午夜视频在线观看| 久久久久99精品成人片我成大片| 色视频成人在线观看免| 在线观看免费视频一区| 日韩三区在线观看| 四虎在线视频| 久久精品国产亚洲精品2020| 第四色日韩影片| 国产精品第一页在线| 精品一区二区三区亚洲| 精品高清视频| 91免费精品| 国产白丝袜美女久久久久| 青青青爽久久午夜综合久久午夜| 亚洲天堂av一区二区三区| av福利精品导航| 无码人妻精品中文字幕| 午夜精品一区二区三区电影天堂| 中文字幕在线天堂| 日韩色在线观看| www视频在线观看免费| 久久久在线视频| jizzyou欧美16| 国产精品区一区| 日韩免费视频| www.av中文字幕| 极品尤物av久久免费看| 搡老熟女老女人一区二区| 亚洲日韩欧美一区二区在线| 亚洲不卡在线视频| 亚洲精品一区二区三区福利| 色综合久久影院| 清纯唯美亚洲综合| 亚洲精选av| 樱空桃在线播放| 日韩有码一区二区三区| av黄色一级片| 亚洲人成人一区二区在线观看 | av男人的天堂在线观看| 91精品国产综合久久香蕉的用户体验| 女一区二区三区| 国产 欧美 日韩 一区| 男人的天堂亚洲一区| 中文字幕高清视频| 亚洲图片欧美色图| av中文字幕免费在线观看| 在线观看久久久久久| 香蕉伊大人中文在线观看| 成人免费视频视频在| 91精品国产调教在线观看| 一区二区三区入口| 久久久精品中文字幕麻豆发布| 精品在线视频免费观看| 日韩视频一区二区三区在线播放 | 欧洲s码亚洲m码精品一区| 91九色鹿精品国产综合久久香蕉| 一区二区三区不卡在线| 日本成人中文字幕| 国产交换配乱淫视频免费| 狠狠久久亚洲欧美专区| 丁香花免费高清完整在线播放| 久久久成人av| 96sao精品免费视频观看| 在线码字幕一区| 经典一区二区三区| 性生交大片免费全黄| 91精品在线麻豆| 久久久久久国产精品免费无遮挡| 国产精品99导航| 成人精品久久| 国内国产精品天干天干| 国产精品国产三级国产有无不卡| 亚洲精品91天天久久人人| 亚洲网站在线播放| jizzjizz少妇亚洲水多| 在线看无码的免费网站| 国内精品免费**视频| 永久久久久久久| 日韩欧美国产wwwww| 美女精品导航| 国内一区二区三区在线视频| 亚洲欧洲一区| 偷拍女澡堂一区二区三区| 色一情一伦一子一伦一区| 免费看男男www网站入口在线| 国产成人在线亚洲欧美| 久久国产精品成人免费观看的软件| 另类小说第一页| 亚洲精品一二三| 日本高清视频www| 51精品国产黑色丝袜高跟鞋| 亚洲资源网站| 天天综合网久久| 亚洲精品水蜜桃| 天天色综合久久| 国产精品久久久久久久久久东京| 99国产精品一区二区| 在线观看免费看片| 精品欧美激情精品一区| av网站在线免费观看| 亚洲最大福利视频网站| 亚洲国产网站| 国产中年熟女高潮大集合| 欧美精品自拍偷拍| sm在线观看| 午夜精品一区二区三区在线观看| 激情深爱一区二区| 日本三级2019| 一区二区三区黄色| 日韩有吗在线观看| 久久婷婷国产精品| 亚洲色图在线看| 手机看片国产1024| 国产美女被下药99| 伊人久久综合| 呻吟揉丰满对白91乃国产区| 日韩一区二区三区四区| 中文字幕在线看片| 国产对白在线播放| 95精品视频在线| 国产黄a三级三级三级| 久久久久久国产免费| 久久网站免费观看| 中国黄色a级片| 欧美不卡激情三级在线观看| 欧美一级大黄| www.国产亚洲| 国产精品久线在线观看| 天天综合网在线| 97在线电影| 麻豆精品在线播放|