国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

命令行的藝術

開發 后端 前端
流暢地使用命令行是一個常被忽略的技能,或被認為是神秘的奧義。但是,它會以明顯而微妙的方式改善你作為工程師的靈活度和生產力。這是我在 Linux 上工作時發現的有用的命令行使用小竅門和筆記的精粹。

流暢地使用命令行是一個常被忽略的技能,或被認為是神秘的奧義。但是,它會以明顯而微妙的方式改善你作為工程師的靈活度和生產力。這是我在 Linux 上工作時發現的有用的命令行使用小竅門和筆記的精粹。有些小竅門是很基礎的,而有些是相當地特別、復雜、或者晦澀難懂。這篇文章不長,但是如果你可以使用 并記得這里的所有內容,那么你就懂得很多了。

其中大部分最初出現在Quora上,但是考慮到興趣所在,似乎更應該放到 Github 上,這里的人比我更能提出改進建議。如果你看到一個錯誤,或者更好的某種東西,請提交問題或 PR!(當然,提交前請看看必讀小節和已有的 PR/Issue。)

命令行藝術

必讀

范圍:

  • 本文是針對初學者和專業人員的,選題目標是覆蓋面廣(全都很重要)、有針對性(大多數情況下都給出具體實例)而簡潔(避免不必要內容以及你能在其它地方輕松找到的離題的內容)。每個小竅門在某種情形下都很必需的,或者能比替代品大大節省時間。

  • 這是為 Linux 寫的。絕大部分條目都可以同樣應用到 MacOS(或者甚至 Cygwin)。

  • 主要針對交互式 Bash,盡管大多數小竅門也可以應用到其它 shell,以及常規 Bash 腳本。

  • 包括了“標準的”UNIX 命令以及那些需要安裝的軟件包(它們很重要,值得安裝)。

注意:

  • 為了能在一篇文章內展示盡量多的東西,一些具體的信息會被放到引用頁里。你可以使用 Google 來獲得進一步的內容。(如果需要的話,)你可以使用 apt-get/yum/dnf/pacman/pip/brew 來安裝這些新的程序。

  • 使用 Explainshell 來獲取命令、參數、管道等內容的解釋。

基礎

  • 學習基本 Bash 技能。實際上,鍵入man bash,然后至少瀏覽一遍所有內容;它很容易理解,沒那么長。其它 shell 也不錯,但是 Bash 很強大,而且到處都可以找到(如果在你自己的筆記本上學習 zsh、fish 之類,會在很多情形下受到限制,比如使用現存的服務器時)。

  • 至少學好一種基于文本的編輯器。理想的一個是 Vim(vi),因為在終端中編輯時隨時都能找到它(即使大多數時候你在使用 Emacs、一個大型的 IDE、或一個現代的時髦編輯器)。

  • 學習怎樣使用 man 來閱讀文檔(好奇的話,用 man man 來列出分區號,比如 1 是常規命令,5 是文件描述,8 用于管理員)。用 apropos 找到幫助頁。了解哪些命令不是可執行程序,而是 Bash 內置的,你可以用 help 和 help -d 得到幫助。

  • 學習使用 > 和 < 來進行輸出和輸入重定向,以及使用 | 來管道重定向,學習關于 stdout 和 stderr 的東西。

  • 學習 *(也許還有 ? 和 {…} )文件通配擴展和應用,以及雙引號 ” 和單引號 ‘ 之間的區別。(更多內容請參看下面關于變量擴展部分)。

  • 熟悉 Bash 作業管理:&, ctrl-zctrl-c, jobs, fg, bg, kill 等等。

  • 掌握ssh,以及通過 ssh-agent,ssh-add 等進行無密碼驗證的基礎技能。

  • 基本的文件管理:ls 和 ls -l(特別是,知道ls -l各個列的意義),less, head, tail 和 tail -f(或者更好的less +F),ln 和 ln -s(知道硬鏈接和軟鏈接的區別,以及硬鏈接相對于軟鏈接的優勢),chown,chmod,du(用于查看磁盤使用率的快速摘要:du -sk *)。文件系統管理:df, mount,fdisk,mkfs,lsblk。

  • 基本的網絡管理: ip 或 ifconfig,dig。

  • 熟知正則表達式,以及各種使用grep/egrep的選項。-i,-o,-A 和 -B 選項值得掌握。

  • 學會使用 apt-get,yum ,dnf 或 pacman(這取決于你的發行版)來查找并安裝軟件包。確保你可以用 pip 來安裝基于 Python 的命令行工具(下面的一些東西可以很容易地通過 pip 安裝)。

日常使用

  • 在Bash中,使用 tab 補完參數,使用 ctrl-r 來搜索命令歷史。

  • 在Bash中,使用 ctrl-w 來刪除最后的單詞,使用 ctrl-u 來刪除整行,返回行首。使用 alt-balt-f 來逐詞移動,使用 ctrl-k 來清除到行尾的內容,以及使用 ctrl-l 清屏。參見 man readline 來查看 Bash 中所有默認的鍵盤綁定,有很多。例如,alt-. 可以循環顯示先前的參數,而alt- 擴展通配。

  • 另外,如果你喜歡 vi 風格的鍵盤綁定,可以使用 set -o vi。

  • 要查看最近用過的命令,請使用 history 。 有許多縮寫形式,比如 !$(上次的參數)和!!(上次的命令),雖然使用 ctrl-r 和 alt-. 更容易些。

  • 返回先前的工作目錄: cd -

  • 如果你命令輸入到一半,但是改變主意了,可以敲 alt-# 來添加一個 # 到開頭,然后將該命令作為注釋輸入(或者使用快捷鍵 ctrl-a#enter 輸入)。然后,你可以在后面通過命令歷史來回到該命令。

  • 使用 xargs(或 parallel),它很強大。注意,你可以控制每行(-L)執行多少個項目,以及并行執行(-P)。如果你不確定它是否會做正確的事情,可以首先使用 xargs echo。同時,使用 -I{} 也很方便。樣例:

      find . -name '*.py' | xargs grep some_function
      cat hosts | xargs -I{} ssh root@{} hostname

  • pstree -p 對于顯示進程樹很有幫助。

  • 使用 pgrep 和 pkill 來按名稱查找進程或給指定名稱的進程發送信號(-f 很有幫助)。

  • 掌握各種可以發送給進程的信號。例如,要掛起進程,可以使用 kill -STOP [pid]。完整的列表可以查閱 man 7 signal。

  • 如果你想要一個后臺進程一直保持運行,使用 nohup 或 disown。

  • 通過 netstat -lntp 或 ss -plat 檢查哪些進程在監聽(用于 TCP,對 UDP 使用 -u 替代 -t)。

  • lsof來查看打開的套接字和文件。

  • 在 Bash 腳本中,使用 set -x 調試腳本輸出。盡可能使用嚴格模式。使用 set -e 在遇到錯誤時退出。也可以使用 set -o pipefail,對錯誤進行嚴格處理(雖然該話題有點微妙)。對于更復雜的腳本,也可以使用 trap。

  • 在 Bash 腳本中,子 shell(寫在括號中的)是組合命令的便利的方式。一個常見的例子是臨時移動到一個不同的工作目錄,如:

      # 在當前目錄做些事
      (cd /some/other/dir; other-command)
      # 繼續回到原目錄

  • 注意,在 Bash 中有大量的各種各樣的變量擴展。檢查一個變量是否存在:${name:?error message}。例如,如果一個Bash腳本要求一個單一參數,只需寫 input_file=${1:?usage: $0 input_file}。算術擴展:i=$(( (i + 1) % 5 ))。序列: {1..10}。修剪字符串:${var%suffix} 和 ${var#prefix}。例如,if var=foo.pdf ,那么 echo ${var%.pdf}.txt 會輸出 foo.txt。

  • 命令的輸出可以通過 <(some command) 作為一個文件來處理。例如,將本地的 /etc/hosts 和遠程的比較:

      diff /etc/hosts <(ssh somehost cat /etc/hosts)

  • 了解 Bash 中的“嵌入文檔”,就像在 cat <<EOF … 中。

  • 在 Bash 中,通過:some-command >logfile 2>&1 同時重定向標準輸出和標準錯誤。通常,要確保某個命令不再為標準輸入打開文件句柄,而是將它捆綁到你所在的終端,添加 </dev/null 是個不錯的做法。

  • man ascii 可以得到一個不錯的ASCII表,帶有十六進制和十進制值兩種格式。對于常規編碼信息,man unicode,man utf-8 和 man latin1 將很有幫助。

  • 使用 screen 或 tmux 來復用屏幕,這對于遠程 ssh 會話尤為有用,使用它們來分離并重連到會話。另一個只用于保持會話的最小可選方案是 dtach。

  • 在 ssh 中,知道如何使用 -L 或 -D(偶爾也用-R)來打開端口通道是很有用的,如從一臺遠程服務器訪問網站時。

  • 為你的 ssh 配置進行優化很有用;例如,這個 ~/.ssh/config 包含了可以避免在特定網絡環境中連接被斷掉的情況的設置、使用壓縮(這對于通過低帶寬連接使用 scp 很有用),以及使用一個本地控制文件來開啟到同一臺服務器的多通道:

      TCPKeepAlive=yes
      ServerAliveInterval=15
      ServerAliveCountMax=6
      Compression=yes
      ControlMaster auto
      ControlPath /tmp/%r@%h:%p
      ControlPersist yes

  • 其它一些與 ssh 相關的選項對會影響到安全,請小心開啟,如各個子網或主機,或者在信任的網絡中:StrictHostKeyChecking=no, ForwardAgent=yes

  • 要獲得八進制格式的文件的權限,這對于系統配置很有用而用 ls 又沒法查看,而且也很容易搞得一團糟,可以使用像這樣的東西:

      stat -c '%A %a %n' /etc/timezone

  • 對于從另一個命令的輸出結果中交互選擇值,可以使用percol

  • 對于基于另一個命令(如git)輸出的文件交互,可以使用fpp (路徑選擇器)。

  • 要為當前目錄(及子目錄)中的所有文件構建一個簡單的 Web 服務器,讓網絡中的任何人都可以獲取,可以使用: python -m SimpleHTTPServer 7777 (使用端口 7777 和 Python 2)。

#p#

處理文件和數據

  • 要在當前目錄中按名稱定位文件,find . -iname ‘*something*’(或者相類似的)。要按名稱查找任何地方的文件,使用 locate something(但請記住,updatedb 可能還沒有索引最近創建的文件)。

  • 對于源代碼或數據文件進行的常規搜索(要比 grep -r 更高級),使用 ag。

  • 要將 HTML 轉成文本:lynx -dump -stdin。

  • 對于 Markdown、HTML,以及各種類型的文檔轉換,可以試試 pandoc。

  • 如果你必須處理 XML,xmlstarlet 雖然有點老舊,但是很好用。

  • 對于 JSON,使用jq。

  • 對于 Excel 或 CSV 文件,csvkit 提供了 in2csv,csvcut,csvjoin,csvgrep 等工具。

  • 對于亞馬遜 S3 ,s3cmd 會很方便,而 s4cmd 則更快速。亞馬遜的 aws 則是其它 AWS 相關任務的必備。

  • 掌握 sort 和 uniq,包括 uniq 的 -u 和 -d 選項——參見下面的單行程序。

  • 掌握 cut,paste 和 join,它們用于處理文本文件。很多人會使用 cut,但常常忘了 join。

  • 了解 tee,它會將 stdin 同時復制到一個文件和 stdout,如 ls -al | tee file.txt。

  • 知道 locale 會以微妙的方式對命令行工具產生大量的影響,包括排序的順序(整理)以及性能。大多數安裝好的 Linux 會設置 LANG 或其它 locale 環境變量為本地設置,比如像 US English。但是,你要明白,如果改變了本地環境,那么排序也將改變。而且 i18n 過程會讓排序或其它命令的運行慢好多倍。在某些情形中(如像下面那樣的設置操作或唯一性操作),你可以安全地整個忽略緩慢的 i18n 過程,然后使用傳統的基于字節的排序順序 export LC_ALL=C。

  • 了解基本的改動數據的 awk 和 sed 技能。例如,計算某個文本文件第三列所有數字的和:awk ‘{ x += $3 } END { print x }’。這可能比 Python 的同等操作要快3倍,而且要短3倍。

  • 在一個或多個文件中,替換所有出現在特定地方的某個字符串:

      perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt

  • 要立即根據某個模式對大量文件重命名,使用 rename。對于復雜的重命名,repren 可以幫助你達成。

      # 恢復備份文件 foo.bak -> foo:
      rename 's//.bak$//' *.bak
      # 完整的文件名、目錄名 foo -> bar:
      repren --full --preserve-case --from foo --to bar .

  • 使用 shuf 來從某個文件中打亂或隨機選擇行。

  • 了解 sort 的選項。知道這些鍵是怎么工作的(-t和-k)。特別是,注意你需要寫-k1,1來只通過第一個字段排序;-k1意味著根據整行排序。

  • 穩定排序(sort -s)會很有用。例如,要首先按字段2排序,然后再按字段1排序,你可以使用 sort -k1,1 | sort -s -k2,2

  • 如果你曾經需要在 Bash 命令行中寫一個水平制表符(如,用于 -t 參數的排序),按ctrl-v [Tab],或者寫$’/t’(后面的更好,因為你可以復制/粘貼)。

  • 對源代碼進行補丁的標準工具是 diff 和 patch。 用 diffstat 來統計 diff 情況。注意 diff -r 可以用于整個目錄,所以可以用 diff -r tree1 tree2 | diffstat 來統計(兩個目錄的)差異。

  • 對于二進制文件,使用 hd 進行簡單十六進制轉儲,以及 bvi 用于二進制編輯。

  • 還是用于二進制文件,strings(加上 grep 等)可以讓你找出一點文本。

  • 對于二進制文件的差異(delta 壓縮),可以使用 xdelta3。

  • 要轉換文本編碼,試試 iconv 吧,或者對于更高級的用途使用 uconv;它支持一些高級的 Unicode 的東西。例如,這個命令可以轉換為小寫并移除所有重音符號(通過擴展和丟棄):

      uconv -f utf-8 -t utf-8 -x '::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] >; ::Any-NFC; ' < input.txt > output.txt

  • 要將文件分割成幾個部分,來看看 split(按大小分割)和 csplit(按格式分割)吧。

  • 使用 zless,zmore,zcat 和 zgrep 來操作壓縮文件。

系統調試

  • 對于 Web 調試,curl 和 curl -I 很方便靈活,或者也可以使用它們的同行 wget,或者更現代的 httpie。

  • 要了解磁盤、CPU、網絡的狀態,使用 iostat,netstat,top(或更好的 htop)和(特別是)dstat。它們對于快速獲知系統中發生的狀況很好用。

  • 對于更深層次的系統總覽,可以使用 glances。它會在一個終端窗口中為你呈現幾個系統層次的統計數據,對于快速檢查各個子系統很有幫助。

  • 要了解內存狀態,可以運行 free 和 vmstat,看懂它們的輸出結果吧。特別是,要知道“cached”值是Linux內核為文件緩存所占有的內存,因此,要有效地統計“free”值。

  • Java 系統調試是一件截然不同的事,但是對于 Oracle 系統以及其它一些 JVM 而言,不過是一個簡單的小把戲,你可以運行 kill -3 <pid>,然后一個完整的堆棧追蹤和內存堆的摘要(包括常規的垃圾收集細節,這很有用)將被轉儲到stderr/logs。

  • 使用 mtr 作路由追蹤更好,可以識別網絡問題。

  • 對于查看磁盤滿載的原因,ncdu 會比常規命令如 du -sh * 更節省時間。

  • 要查找占用帶寬的套接字和進程,試試 iftop 或 nethogs 吧。

  • (Apache附帶的)ab工具對于臨時應急檢查網絡服務器性能很有幫助。對于更復雜的負載測試,可以試試 siege。

  • 對于更仔細的網絡調試,可以用 wireshark,tshark 或 ngrep。

  • 掌握 strace 和 ltrace。如果某個程序失敗、掛起或崩潰,而你又不知道原因,或者如果你想要獲得性能的大概信息,這些工具會很有幫助。注意,分析選項(-c)和使用 -p 關聯運行進程。

  • 掌握 ldd 來查看共享庫等。

  • 知道如何使用 gdb 來連接到一個運行著的進程并獲取其堆棧追蹤信息。

  • 使用 /proc。當調試當前的問題時,它有時候出奇地有幫助。樣例:/proc/cpuinfo,/proc/xxx/cwd,/proc/xxx/exe,/proc/xxx/fd/,/proc/xxx/smaps。

  • 當調試過去某個東西為何出錯時,sar 會非常有幫助。它顯示了 CPU、內存、網絡等的歷史統計數據。

  • 對于更深層的系統和性能分析,看看 stap (SystemTap),perf) 和 sysdig 吧。

  • 確認是正在使用的 Linux 發行版版本(支持大多數發行版):lsb_release -a。

  • 每當某個東西的行為異常時(可能是硬件或者驅動器問題),使用dmesg。

#p#

單行程序

這是將命令連成一行的一些樣例:

  • 有時候通過 sort/uniq 對文本文件做交集、并集和差集運算時,這個例子會相當有幫助。假定 a 和 b 是已經進行了唯一性處理的文本文件。這會很快,而且可以處理任意大小的文件,總計可達數千兆字節。(Sort不受內存限制,不過如果 /tmp 放在一個很小的根分區的話,你可能需要使用 -T 選項。)也可參見上面關于LC_ALL的注解和 -u 選項(參見下面例子更清晰)。

    sh cat a b | sort | uniq > c # c 是 a 和 b 的并集
    cat a b | sort | uniq -d > c # c 是 a 和 b 的交集
    cat a b b | sort | uniq -u > c # c 是 a 減去 b 的差集

  • 使用 grep . * 來可視化查看一個目錄中的所有文件的所有內容,例如,對于放滿配置文件的目錄: /sys, /proc, /etc。

  • 對某個文本文件的第三列中所有數據進行求和(該例子可能比同等功能的Python要快3倍,而且代碼也少于其3倍):

      awk '{ x += $3 } END { print x }' myfile

  • 如果想要查看某個文件樹的大小/日期,該例子就像一個遞歸ls -l,但是比ls -lR要更容易讀懂:

      find . -type f -ls

  • 只要可以,請使用 xargs 或 parallel。注意,你可以控制每行(-L)執行多少個項目,以及并行執行(-P)。如果你不確定它是否會做正確的事情,可以首先使用 xargs echo。同時,使用 -I{} 也很方便。樣例:

      find . -name '*.py' | xargs grep some_function
      cat hosts | xargs -I{} ssh root@{} hostname

  • 比如說,你有一個文本文件,如 Web 服務器的日志,在某些行中出現了某個特定的值,如 URL 中出現的 acct_id 參數。如果你想要統計有多少個 acct_id 的請求:

    cat access.log | egrep -o 'acct_id=[0-9]+' | cut -d= -f2 | sort | uniq -c | sort -rn

  • 運行該函數來獲得來自本文的隨機提示(解析Markdown并從中提取某個項目):

    function taocl() {
        curl -s https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md |
          pandoc -f markdown -t html |
          xmlstarlet fo --html --dropdtd |
          xmlstarlet sel -t -v "(html/body/ul/li[count(p)>0])[$RANDOM mod last()+1]" |
          xmlstarlet unesc | fmt -80
      }

晦澀難懂,但卻有用

  • expr:實施算術或布林操作,或者求正則表達式的值

  • m4:簡單的宏處理器

  • yes:大量打印一個字符串

  • cal:漂亮的日歷

  • env:(以特定的環境變量設置)運行一個命令(腳本中很有用)

  • look:查找以某個字符串開頭的英文單詞(或文件中的行)

  • cut 和 paste 以及 join:數據處理

  • fmt:格式化文本段落

  • pr:格式化文本為頁/列

  • fold:文本折行

  • column:格式化文本為列或表

  • expand 和 unexpand:在制表符和空格間轉換

  • nl:添加行號

  • seq:打印數字

  • bc:計算器

  • factor:分解質因子

  • gpg:加密并為文件簽名

  • toe:terminfo 條目表

  • nc:網絡調試和數據傳輸

  • socat:套接字中繼和 tcp 端口轉發(類似 netcat)

  • slurm:網絡流量可視化

  • dd:在文件或設備間移動數據

  • file:識別文件類型

  • tree:以樹形顯示目錄及子目錄;類似 ls,但是是遞歸的。

  • stat:文件信息

  • tac:逆序打印文件

  • shuf:從文件中隨機選擇行

  • comm:逐行對比分類排序的文件

  • hd和bvi:轉儲或編輯二進制文件

  • strings:從二進制文件提取文本

  • tr:字符轉譯或處理

  • iconv或uconv:文本編碼轉換

  • split和csplit:分割文件

  • units:單位轉換和計算;將每雙周(fortnigh)一浪(浪,furlong,長度單位,約201米)轉換為每瞬(blink)一緹 (緹,twip,一種和屏幕無關的長度單位)(參見: /usr/share/units/definitions.units)(LCTT 譯注:這都是神馬單位啊!)

  • 7z:高比率文件壓縮

  • ldd:動態庫信息

  • nm:目標文件的符號

  • ab:Web 服務器基準測試

  • strace:系統調用調試

  • mtr:用于網絡調試的更好的路由追蹤軟件

  • cssh:可視化并發 shell

  • rsync:通過 SSH 同步文件和文件夾

  • wireshark 和 tshark:抓包和網絡調試

  • ngrep:從網絡層摘取信息

  • host 和 dig:DNS查詢

  • lsof:處理文件描述符和套接字信息

  • dstat:有用的系統統計數據

  • glances:高級,多個子系統概覽

  • iostat:CPU和磁盤使用率統計

  • htop:top的改進版

  • last:登錄歷史

  • w:誰登錄進來了

  • id:用戶/組身份信息

  • sar:歷史系統統計數據

  • iftop或nethogs:按套接口或進程的網絡使用率

  • ss:套接口統計數據

  • dmesg:啟動和系統錯誤信息

  • hdparm:SATA/ATA 磁盤操作/改善性能

  • lsb_release:Linux 發行版信息

  • lsblk:列出塊設備,以樹形展示你的磁盤和分區

  • lshw:硬件信息

  • fortune,ddate 和 sl:嗯,好吧,它取決于你是否認為蒸汽機車和 Zippy 引用“有用”

更多資源

  • 超棒的shell: 一個shell工具和資源一覽表。

  • 嚴格模式 用于寫出更佳的shell腳本。

免責聲明

除了非常小的任務外,其它都寫出了代碼供大家閱讀。伴隨力量而來的是責任。事實是,你在Bash中做的,并不意味著是你所應該做的!;)

 

 
責任編輯:王雪燕 來源: linux.cn
相關推薦

2017-05-25 10:32:40

命令linux系統

2020-03-13 10:18:43

GitHub 技術開源

2024-08-13 10:55:34

Linux命令行黃金法則

2020-12-11 06:44:16

命令行工具開發

2020-12-10 16:16:08

工具代碼開發

2011-01-18 19:11:26

Postfix命令行

2010-11-16 11:50:21

oracle命令行登錄

2009-07-20 09:55:30

華為命令行解析華為認證

2010-08-20 10:05:23

用戶命令

2010-09-01 14:23:54

Linux命令行開發

2010-11-24 15:33:59

mysql命令行參數

2019-07-23 13:45:38

LinuxFedora權限

2010-07-15 09:37:47

Perl命令行

2012-02-08 16:37:36

ibmdw

2010-07-15 10:47:22

Perl命令行

2010-03-10 17:23:37

Python 命令行參

2010-07-20 14:18:22

Perl命令行

2023-06-09 07:45:29

Kuberneteskubectl

2009-12-24 14:51:39

Linux命令行

2020-12-06 08:00:46

scanimage命令行Linux
點贊
收藏

51CTO技術棧公眾號

亚洲欧美日韩天堂| 中文字幕资源网在线观看| 亚洲国产精品大全| 国产欧美日韩精品在线观看| 激情五月六月婷婷| 天堂地址在线www| 色综合中文网| heyzo高清国产精品| 99精品电影| 中文字幕乱码久久午夜不卡 | 亚洲人av在线影院| 精品久久久久久乱码天堂| 日韩加勒比系列| 精品久久免费| 丁香六月久久综合狠狠色| 日本不卡免费在线视频| 亚洲精品99久久久久中文字幕| 欧美大片拔萝卜| 成人欧美一区二区三区白人 | 欧美日韩激情| 国产精品午夜在线| 欧美日韩一区二区视频在线| 伊人在线视频| 亚洲视频在线一区观看| 久久综合色一综合色88| 日本中文字幕不卡免费| 美女性感视频久久久| 欧美二区三区的天堂| 波多野结衣之无限发射| a黄色在线观看| www久久日com| 欧美一级大片在线免费观看| 色综合天天天天做夜夜夜夜做| 国产精品国产三级国产aⅴ无密码| 日本不卡视频在线播放| 日本不卡二区| 青青草手机在线| 阿v视频在线观看| 在线看片不卡| 男人的j进女人的j一区| 国产剧情在线观看一区二区| 欧美日韩国产另类不卡| 国产精品va在线播放| 啊啊啊啊啊啊啊视频在线播放| 色愁久久久久久| 欧美香蕉大胸在线视频观看| 国产精品一区二区三区不卡| 蜜桃视频网站在线观看| 免费人成黄页网站在线一区二区 | 精品在线播放| 欧美又大又粗又长| 奇米影视777在线欧美电影观看 | 91视频8mav| 暖暖日本在线观看| 色视频一区二区| 日产中文字幕在线精品一区| 成人国产二区| 国产午夜精品福利| 亚洲精品成人在线| 亚洲毛片aa| 黄色美女网站在线观看| 狠狠操综合网| 国产精品久久久久aaaa樱花| 午夜啪啪免费视频| 午夜视频成人| 亚洲电影天堂av| 日韩精品免费观看视频| 亚洲巨乳在线| 亚洲女与黑人做爰| 97婷婷大伊香蕉精品视频| 欧美精品国产一区| 欧美日本一道本在线视频| av在线资源站| 精品免费国产一区二区三区四区| 欧美精品自拍视频| 国内精品久久久久久久久电影网| 青草成人免费视频| 色欧美自拍视频| 精品视频久久久久久久| 黄页免费观看| 奇米在线7777在线精品| 中文字幕乱码免费| 欧美日韩一二| 99re在线播放| 国产精品一区二区三区av | 国产欧美一区视频| 欧美三级电影在线播放| 美女视频黄频大全不卡视频在线播放| 国产资源在线免费观看| 欧美+日本+国产+在线a∨观看| 亚洲电影天堂av| 婷婷精品久久久久久久久久不卡| fc2成人免费人成在线观看播放 | 日本在线观看高清完整版| 国产无一区二区| h短视频大全在线观看| 国产成人午夜高潮毛片| 91亚洲精品久久久久久久久久久久 | 不卡av电影院| 丝袜在线观看| 日韩色av导航| av资源中文在线天堂| 欧美精品videosex性欧美| 欧美一级鲁丝片| 色综合久久久久久久久久久| cao在线视频| 国产自摸综合网| 国产一区 二区 三区一级| 成人情视频高清免费观看电影| 极品国产人妖chinesets亚洲人妖| 日韩高清中文字幕| 头脑特工队2在线播放| 2021中文字幕一区亚洲| 交视频在线观看国产| 国产精品欧美一区二区三区| 亚洲国产精品久久久久婷婷老年| 久久精品视频在线免费观看| 国产精品香蕉视屏| 国产91丝袜在线播放| 国产精品视频99| 日韩一区二区三区在线看| 精品亚洲一区二区三区在线观看 | 亚洲国产婷婷综合在线精品| 亚洲第一精品区| 国产精品少妇自拍| 日本女优北野望在线电影| 亚洲视频在线视频| 亚洲精品国产首次亮相| 久久久久久久久综合| 欧美人与禽猛交乱配视频| 精品一区二区三区无码视频| 丝袜美腿亚洲一区| 亚洲jizzjizz日本少妇| jizz国产精品| 中文字幕视频一区二区在线有码 | 日韩三级免费观看| freemovies性欧美| 欧美老少做受xxxx高潮| 日本免费成人| 成人黄动漫网站免费| 93久久精品日日躁夜夜躁欧美| 精品欧美日韩在线| 成人精品视频.| 日本熟妇人妻xxxxx| 成人avav在线| 番号集在线观看| 欧美性xxxxx极品| 99国内精品久久久久| 九九九九精品九九九九| 久久久无码精品亚洲日韩按摩| 毛片大全在线观看| 国产精品区一区| 午夜伦理一区二区| h精品动漫在线观看| www.亚洲人.com| 国产一区二区在线影院| 免费人成黄页在线观看忧物| 97精品伊人久久久大香线蕉| 盗摄精品av一区二区三区| 成人影院在线看| 国产原创欧美精品| 亚洲免费毛片网站| 蜜桃精品一区二区三区| 国产www免费| 亚洲国产精品国自产拍av秋霞| 日韩一级免费| 日韩美女一区| 在线中文字幕一区| 一广人看www在线观看免费视频| 自拍亚洲一区欧美另类| 成人福利电影精品一区二区在线观看| 国产三区在线观看| 日韩电影第一页| 99国产精品久久久久久久| 同心难改在线观看| 99久久一区三区四区免费| 午夜视频在线观看一区二区三区| 蜜桃精品wwwmitaows| 国产免费网址| 国产美女高潮久久白浆| 欧美1区免费| 日本在线三级| 欧美成人bangbros| 亚洲一区免费| 欧美 日韩 国产一区| 在线看片第一页欧美| jizzjizzjizz欧美| 免费全黄无遮挡裸体毛片| 午夜免费久久久久| 亚洲欧美欧美一区二区三区| 九九免费精品视频在线观看| 在线久久视频| 国产精品视频久久| 欧美日韩一二三区| 996久久国产精品线观看| 国产内射老熟女aaaa| 亚洲一区二区在线观看视频| a视频在线播放| 欧美精品v日韩精品v国产精品| 欧美变态口味重另类|