成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

提升開發(fā)效率N倍的20+命令行神器,趕緊收藏了

開發(fā) 前端
本文主要來源于在之前公司的小組內部的一個小分享,整理成一篇文章po出來。題目叫 “Shell 助力開發(fā)效率提升”,更切題的應該是叫“命令行”提升開發(fā)效率,這里并沒有講到 Shell 編程,而是主要介紹 Linux 或者 Mac 下常用的一些基本工具命令來幫助處理一些日常事務。

背景

本文主要來源于在之前公司的小組內部的一個小分享,整理成一篇文章po出來。題目叫 “Shell 助力開發(fā)效率提升”,更切題的應該是叫“命令行”提升開發(fā)效率,這里并沒有講到 Shell 編程,而是主要介紹 Linux 或者 Mac 下常用的一些基本工具命令來幫助處理一些日常事務。

[[341848]]

通過本文的介紹,你應該對相關命令有一個初步的了解,知道比如用什么命令可以完成怎樣的操作, 至于具體的參數,不需要刻意地背誦,等到需要用到的時候,再去 cmd --help 或者 man cmd,用得多了,常用的命令也就自然記住了。

本文首先介紹了 Linux/Mac 下一些常用的命令行工具,然后用具體的示例闡述了常用的命令用法,最后通過一兩個案例來說明這些工具的強大之處:

  • 比如給定一個 nginx 日志文件,能夠找出 HTTP 404 請求最多的 top 10 是什么? 比如能找到請求耗時最多的 top 10 是什么?
  • 再比如能夠簡單的得到每小時的"PV"是多少? 再比如拿到一篇文章, 能否簡單統(tǒng)計一下這篇文章單次詞頻最高的10個詞語是什么?
  • 需要批量改某個文件夾下的文件名,批量將文件夾下的圖片壓縮成固定大小的,等等。

Mac 環(huán)境

  • zsh
  • on-my-zsh
  • plugin
  • git
  • autojump
  • osx(man-preview/quick-look/pfd(print Finder director)/cdf(cd Finder))
  • 常用快捷鍵(bindkey)
  • 演示: 高亮/git/智能補全/跳轉(j, d)...

Shell 基礎命令

which/whereis, 常用 whatis, man, --help

    1. ➜  .oh-my-zsh git:(master)$ whereis ls 
    2. /bin/ls➜  .oh-my-zsh git:(master)$ which ls 
    3. ls: aliased to ls -G 

 

基本文件目錄操作

  1. rm, mkdir, mv, cp, cd, ls, ln, file, stat, wc(-l/w/c), head, more, tail, cat... 

利器 管道: |

Shell 文本處理

這里就是通過案例講了一下12個命令的大致用法和參數,可以通過點擊右邊的目錄(我博客有目錄,公眾號上木有)直達你想要了解的命令。

  1. find, grep, xargs, cut, paste, comm 
  2. join, sort, uniq, tr, sed, awk 

find

  • 常用參數
  • 文件名 -name, 文件類型-type, 查找最大深度-maxdepth
  • 時間過濾(create/access/modify) -[cam]time
  • 執(zhí)行動作 -exec

示例

  1. find ./ -name "*.json" 
  2. find . -maxdepth 7 -name "*.json" -type f 
  3. find . -name "*.log.gz" -ctime +7 -size +1M -delete (atime/ctime/mtime) 
  4. find . -name "*.scala" -atime -7 -exec du -h {} \; 

grep

  • 常用參數
  • -v(invert-match),
  • -c(count),
  • -n(line-number),
  • -i(ignore-case),
  • -l, -L, -R(-r, --recursive), -e

示例

  1. grep 'partner' ./*.scala -l 
  2. grep -e 'World' -e 'first' -i -R ./  (-e: or

相關命令: grep -z / zgrep / zcat xx | grep

xargs

  • 常用參數
  • -n(每行列數),
  • -I(變量替換)
  • -d(分隔符), Mac 不支持,注意與GNU版本的區(qū)別

示例

  1. echo "helloworldhellp" | cut -c1-10 
  2. cut -d, -f2-8 csu.db.export.csv 

cut

  • 常用參數
  • -b(字節(jié))
  • -c(字符)
  • -f(第幾列),-d(分隔符),f 范圍: n, n-, -m, n-m

示例

  1. echo "helloworldhellp" | cut -c1-10cut -d, -f2-8 csu.db.export.csv 

paste

  • 常用參數
  • -d 分隔符
  • -s 列轉行

示例

  1.     ➜  Documents$ cat file1 
  2. 1 11 
  3. 2 22 
  4. 3 33 
  5. 4 44 
  6. ➜  Documents$ cat file2 
  7. one     1 
  8. two     2 
  9. three   3 
  10. one1    4 
  11. ➜  Documents$ paste -d, file1 file2 
  12. 1 11, one     1 
  13. 2 22, two     2 
  14. 3 33, three   3 
  15. 4 44, one1    4 
  16. ➜  Documents$ paste -s -d: file1 file2 
  17. a 11:b bb:3 33:4 44 
  18. one     1:two     2:three   3:one1    4 

join

類似sql中的 ...inner join ...on ..., -t 分隔符,默認為空格或tab

  1. ➜  Documents$ cat j1 
  2. 1 11 
  3. 2 22 
  4. 3 33 
  5. 4 44 
  6. 5 55 
  7. ➜  Documents$ cat j2 
  8. one     1   0 
  9. one     2   1 
  10. two     4   2 
  11. three   5   3 
  12. one1    5   4 
  13. ➜  Documents$ join -1 1 -2 3 j1 j2 
  14. 1 11 one 2 
  15. 2 22 two 4 
  16. 3 33 three 5 
  17. 4 44 one1 5 

comm

  • 常用參數
  • 用法 comm [-123i] file1 file2
  • 字典序列, 3列: 只在file1/file2/both
  • - 去掉某列,i 忽略大小寫

示例

  1.     ➜  Documents$ seq 1 5 >file11 
  2. ➜  Documents$ seq 2 6 >file22 
  3. ➜  Documents$ cat file11 
  4. ➜  Documents$ cat file22 
  5. ➜  Documents$ comm file11 file22 
  6.         2 
  7.         3 
  8.         4 
  9.         5 
  10.     6 
  11. ➜  Documents$ comm -1 file11 file22 
  12.     2 
  13.     3 
  14.     4 
  15.     5 
  16. ➜  Documents$ comm -2 file11 file22 
  17.     2 
  18.     3 
  19.     4 
  20.     5 
  21. ➜  Documents$ comm -23 file11 file22 

相關命令 diff(類似git diff)

sort

  • 常用參數
  • -d, --dictionary-order
  • -n, --numeric-sort
  • -r, --reverse
  • -b, --ignore-leading-blanks
  • -k, --key

示例

  1. ➜  Documents$ cat file2 
  2. one     1 
  3. two     2 
  4. three   3 
  5. one1    4 
  6. ➜  Documents$ sort file2one     1 
  7. one1    4 
  8. three   3 
  9. two     2 
  10. ➜  Documents$ sort -b -k2 -r file2one1    4 
  11. three   3 
  12. two     2 
  13. one     1 

uniq

  • 常用參數
  • -c 重復次數
  • -d 重復的
  • -u 沒重復的
  • -f 忽略前幾列

示例

  1. ➜  Documents$ cat file4 
  2. 11 
  3. 22 
  4. 33 
  5. 11 
  6. 11 
  7. ➜  Documents$ sort file4 | uniq -c 
  8.    3 11 
  9.    1 22 
  10.    1 33 
  11. ➜  Documents$ sort file4 | uniq -d 
  12. 11 
  13. ➜  Documents$ sort file4 | uniq -u 
  14. 22 
  15. 33 
  16. ➜  Documents$ cat file3 
  17. one     1 
  18. two     1 
  19. three   3 
  20. one1    4 
  21. ➜  Documents$ uniq -c -f 1 file3 
  22.    2 one     1 
  23.    1 three   3 
  24.    1 one1    4 

注意:uniq比較相鄰的是否重復,一般與sort聯用

tr

  • 常用參數
  • -c 補集
  • -d 刪除
  • -s 壓縮相鄰重復的

示例

  1. ➜  Documents$ echo '1111234444533hello' | tr  '[1-3]' '[a-c]' 
  2. aaaabc44445cchello➜  Documents$ echo '1111234444533hello' | tr -d '[1-3]' 
  3. 44445hello➜  Documents$ echo '1111234444533hello' | tr -dc '[1-3]' 
  4. 11112333➜  Documents$ echo '1111234444533hello' | tr -s '[0-9]' 
  5. 123453hello➜  Documents$ echo 'helloworld' | tr '[:lower:]' '[:upper:]' 
  6. HELLOWORLD 

sed

  • 常用參數
  • -d 刪除
  • -s 替換, g 全局
  • -e 多個命令疊加
  • -i 修改原文件(Mac下加參數 "",備份)

示例

  1.     ➜  Documents$ cat file2 
  2. one     1 
  3. two     2 
  4. three   3 
  5. one1    4 
  6. ➜  Documents$ sed "2,3d" file2 
  7. one     1 
  8. one1    4 
  9. ➜  Documents$ sed '/one/d' file2 
  10. two     2 
  11. three   3 
  12. ➜  Documents$ sed 's/one/111/g' file2 
  13. 111     1 
  14. two     2 
  15. three   3 
  16. 1111    4 
  17. #將one替換成111 并將含有two的行刪除 
  18. ➜  Documents$ sed -e 's/one/111/g' -e '/two/d' file2 
  19. 111     1 
  20. three   3 
  21. 1111    4 
  22. # ()標記(轉義), \1 引用 
  23. ➜  Documents$ sed 's/\([0-9]\)/\1.html/g' file2 
  24. one     1.html 
  25. two     2.html 
  26. three   3.html 
  27. one1.html    4.html 
  28. # 與上面一樣 & 標記匹配的字符➜  Documents$ sed 's/[0-9]/&.html/g' file2 
  29. one     1.html 
  30. two     2.html 
  31. three   3.html 
  32. one1.html    4.html 
  33. ➜  Documents$ cat mobile.csv"13090246026" 
  34. "18020278026" 
  35. "18520261021" 
  36. "13110221022" 
  37. ➜  Documents$ sed 's/\([0-9]\{3\}\)[0-9]\{4\}/\1xxxx/g' mobile.csv 
  38. "130xxxx6026" 
  39. "180xxxx8026" 
  40. "185xxxx1021" 
  41. "131xxxx1022" 

awk

  • 基本參數和語法
  • NR 行號, NF 列數量
  • $1 第1列, $2, $3...
  • -F fs fs分隔符,字符串或正則

語法: awk 'BEGIN{ commands } pattern{ commands } END{ commands }', 流程如下:

  • 執(zhí)行begin
  • 對輸入每一行執(zhí)行 pattern{ commands }, pattern 可以是 正則/reg exp/, 關系運算等
  • 處理完畢, 執(zhí)行 end

示例

  1. ➜  Documents$ cat file5 
  2. 11  11 aa cc 
  3. 22  22 bb 
  4. 33  33 d 
  5. 11  11 
  6. 11  11 
  7. #行號, 列數量, 第3列 
  8. ➜  Documents$ awk '{print NR"("NF"):", $3}' file5 
  9. 1(4): aa 
  10. 2(3): bb 
  11. 3(3): d 
  12. 4(2): 
  13. 5(2): 
  14. #字符串分割, 打印1,2列 
  15. ➜  Documents$ awk -F"xxxx" '{print $1, $2}' mobile.csv 
  16. "130 6026" 
  17. "180 8026" 
  18. "185 1021" 
  19. "131 1022" 
  20. #添加表達式➜  Documents$ awk '$1>=22 {print NR":", $3}' file5 
  21. 2: bb3: d#累加1到36,奇數,偶數 
  22. ➜  Documents$ seq 36 | awk 'BEGIN{sum=0; print "question:"} {print $1" +"; sum+=$1} END{print "="; print sum}' | xargs | sed 's/+ =/=/' 
  23. question: 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 = 666 
  24. ➜  Documents$ seq 36 | awk 'BEGIN{sum=0; print "question:"} $1 % 2 ==1 {print $1" +"; sum+=$1} END{print "="; print sum}' | xargs | sed 's/+ =/=/' 
  25. question: 1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 + 21 + 23 + 25 + 27 + 29 + 31 + 33 + 35 = 324 
  26. ➜  Documents$ seq 36 | awk 'BEGIN{sum=0; print "question:"} $1 % 2 !=1 {print $1" +"; sum+=$1} END{print "="; print sum}' | xargs | sed 's/+ =/=/' 
  27. question: 2 + 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20 + 22 + 24 + 26 + 28 + 30 + 32 + 34 + 36 = 342 

其他高級語法:for, while 等, 各種函數等,本身awk是一個強大的語言,可以掌握一些基本的用法。

實際應用

日志統(tǒng)計分析

例如拿到一個nginx日志文件,可以做很多事情,比如看哪些請求是耗時最久的進而進行優(yōu)化,比如看每小時的"PV"數 等等。

  1. ➜  Documents$ head -n5 std.nginx.log 
  2. 106.38.187.225 - - [20/Feb/2017:03:31:01 +0800] www.tanglei.name "GET /baike/208344.html HTTP/1.0" 301 486 "-" "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) 360JK yunjiankong 975382" "106.38.187.225, 106.38.187.225" - 0.000 
  3. 106.38.187.225 - - [20/Feb/2017:03:31:02 +0800] www.tanglei.name "GET /baike/208344.html HTTP/1.0" 301 486 "-" "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) 360JK yunjiankong 975382" "106.38.187.225, 106.38.187.225" - 0.000 
  4. 10.130.64.143 - - [20/Feb/2017:03:31:02 +0800] stdbaike.bdp.cc "POST /baike/wp-cron.php?doing_wp_cron=1487532662.2058920860290527343750 HTTP/1.1" 200 182 "-" "WordPress/4.5.6; http://www.tanglei.name/baike" "10.130.64.143" 0.205 0.205 
  5. 10.130.64.143 - - [20/Feb/2017:03:31:02 +0800] www.tanglei.name "GET /external/api/login-status HTTP/1.0" 200 478 "-" "-" "10.130.64.143" 0.003 0.004 
  6. 10.130.64.143 - - [20/Feb/2017:03:31:02 +0800] www.tanglei.name "GET /content_util/authorcontents?count=5&offset=0&israndom=1&author=9 HTTP/1.0" 200 11972 "-" "-" "10.130.64.143" 0.013 0.013 

上面是nginx的一個案例, 例如希望找到top 10 請求的path:

  1. head -n 10000 std.nginx.log | awk '{print $8 ", " $10}' | grep ',404' | sort | uniq -c | sort -nr -k1 | head -n 10 
  2. #orhead -n 10000 std.nginx.log | awk '$10==404 {print $8}' |sort | uniq -c | sort -nr -k1 | head -n 10 

當然,你可能一次不會直接處理成功,一般會先少拿一部分數據進行處理看邏輯是否正常, 或者你可以緩存一些中間結果.

  1. cat std.nginx.log | awk '{print $8 "," $10}' | grep ',404' >404.log 
  2. sort 404.log | uniq -c | sort -nr -k1 | head -n 10 

再比如每小時請求數量,請求耗時等等

  1. ➜  Documents$ head -n 100000 std.nginx.log | awk -F: '{print $1 $2}' | cut -f3 -d/ | uniq -c 
  2. 8237 201703 
  3. 15051 201704 
  4. 16083 201705 
  5. 18561 201706 
  6. 22723 201707 
  7. 19345 201708 

其他實際案例 ip block

案例: db數據訂正

背景: 因為某服務bug,導致插入到db的圖片路徑不對,需要將形如(安全需要已經將敏感數據替換) https://www.tanglei.name/upload/photos/129630//internal-public/shangtongdai/2017-02-19-abcdefg-eb85-4c24-883e-hijklmn.jpg 替換成 http://www.tanglei.me/internal-public/shangtongdai/2017-02-19-abcdefg-eb85-4c24-883e-hijklmn.jpg,因為mysql等db貌似不支持直接正則的替換,所以不能夠很方便的進行寫sql進行替換(就算支持,直接改也有風險的,還是先備份再修改留個“后悔藥”)。

當然將數據導出,然后寫 python 等腳本處理也是一種解決方案,但如果用上面的命令行處理,只需要幾十秒即可完成。

步驟:

  • 準備數據
  1. select id, photo_url_1, photo_url_2, photo_url_3 from somedb.sometable where  
  2. photo_url_1 like 'https://www.tanglei.name/upload/photos/%//internal-public/%' or 
  3. photo_url_2 like 'https://www.tanglei.name/upload/photos/%//internal-public/%' or 
  4. photo_url_3 like 'https://www.tanglei.name/upload/photos/%//internal-public/%'
  • 替換原文件 一般在用sed替換的時候,先測試一下是否正常替換。
  1. #測試是否OK 
  2. head -n 5 customers.csv | sed 's|https://www.tanglei.name/upload/photos/[0-9]\{1,\}/|http://www.tanglei.me|g' 
  3. # 直接替換原文件, 可以sed -i ".bak" 替換時保留原始備份文件 
  4. sed -i "" 's|https://www.tanglei.name/upload/photos/[0-9]\{1,\}/|http://www.tanglei.me|g' customers.csv 
  • 拼接sql, 然后執(zhí)行
  1. awk -F, '{print "update sometable set photo_url_1 = " $2, ", photo_url_2 = " $3, ", photo_url_3 = " $4, " where id = " $1 ";" }' customers.csv > customer.sql 
  2. #然后執(zhí)行sql 即可 

其他

  • play framework session

老方式: 需要啟play環(huán)境,慢。新方式直接命令行解決。

 

  1. sbt "project site" consoleQuick 
  2. import play.api.libs._val sec = "secret...secret" 
  3. var uid = "10086" 
  4. Crypto.sign(s"uid=$uid", sec.getBytes("UTF-8")) + s"-uid=$uid" 
  5.  
  6. ➜  Documents$  ~/stdcookie.sh 97522 
  7. 918xxxxdf64abcfcxxxxc465xx7554dxxxx21e-uid=97522 
  8. ➜  Documents$ cat ~/stdcookie.sh#!/bin/bash ##  cannot remove this line 
  9. uid=$1 
  10. hash=`echo -n "uid=$uid" | openssl dgst -sha1 -hmac "secret...secret"
  11. echo "$hash-uid=$uid" 

統(tǒng)計文章單詞頻率: 下面案例統(tǒng)計了川普就職演講原文中詞頻最高的10個詞。

  1. ➜  Documents$ head -n3 chuanpu.txt 
  2. Chief Justice Roberts, President Carter, President Clinton, President Bush, President Obama, fellow Americans and people of the world, thank you. 
  3. We, the citizens of America, are now joined in a great national effort to rebuild our country and restore its promise for all of our people. Together we will determine the course of America and the world for many, many years to come. 
  4. ➜  Documents$ cat chuanpu.txt | tr -dc 'a-zA-Z ' | xargs -n 1 | sort | uniq -c | sort -nr -k1 | head -n 20 
  5.   65 the 
  6.   63 and 
  7.   48 of 
  8.   46 our 
  9.   42 will 
  10.   37 to 
  11.   21 We 
  12.   20 is 
  13.   18 we 
  14.   17 America 
  15.   15 a 
  16.   14 all 
  17.   13 in 
  18.   13 for 
  19.   13 be 
  20.   13 are 
  21.   10 your 
  22.   10 not 
  23.   10 And 
  24.   10 American 
  • 隨機數:比如常常新注冊一個網站,隨機生成一個密碼之類的。
  1. ➜  Documents$ cat /dev/urandom | LC_CTYPE=C tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 5 
  2. cpBnvC0niwTybSSJhUUiZwIz6ykJxBvu 
  3. VDP56NlHnugAt2yDySAB9HU2Nd0LlYCW 
  4. 0WEDzpjPop32T5STvR6K6SfZMyT6KvAI 
  5. a9xBwBat7tJVaad279fOPdA9fEuDEqUd 
  6. hTLrOiTH5FNP2nU3uflsjPUXJmfleI5c 
  7. ➜  Documents$ cat /dev/urandom | head -c32 | base64 
  8. WoCqUye9mSXI/WhHODHDjzLaSb09xrOtbrJagG7Kfqc= 
  • 圖片處理壓縮,可批量改圖片大小等等 sips
  1. ➜  linux-shell-more-effiency$ sips -g all which-whereis.png 
  2. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  3.   pixelWidth: 280  pixelHeight: 81  typeIdentifier: public.png  format: png  formatOptions: default  dpiWidth: 72.000  dpiHeight: 72.000  samplesPerPixel: 4  bitsPerSample: 8  hasAlpha: yes  space: RGB  profile: DELL U2412M➜  linux-shell-more-effiency$ sips -Z 250 which-whereis.png 
  4. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  5.   /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  6. ➜  linux-shell-more-effiency$ sips -g all which-whereis.png 
  7. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  8.   pixelWidth: 250  pixelHeight: 72  typeIdentifier: public.png  format: png  formatOptions: default  dpiWidth: 72.000  dpiHeight: 72.000  samplesPerPixel: 4  bitsPerSample: 8  hasAlpha: yes  space: RGB  profile: DELL U2412M➜  linux-shell-more-effiency$ sips -z 100 30 which-whereis.png 
  9. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  10.   /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  11. ➜  linux-shell-more-effiency$ sips -g pixelWidth -g pixelHeight which-whereis.png 
  12. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  13.   pixelWidth: 30  pixelHeight: 100 
  • 命令行處理 JSON 的神器:隨著 JSON 通用性,常常需要處理 JSON 數據,這里推薦這個命令行 JSON 處理神器 jq is a lightweight and flexible command-line JSON processor[1]

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2024-03-06 15:57:56

ShellLinux

2020-08-09 18:06:57

Linux系統(tǒng)工具

2024-08-13 10:55:34

Linux命令行黃金法則

2018-01-19 09:00:37

2020-11-25 19:57:15

開發(fā)技能代碼

2019-09-09 15:43:29

UnixLinux命令行

2012-07-11 13:35:25

UnixLinux

2014-06-17 09:49:07

Ngxtop實時監(jiān)控Nginx

2020-12-10 16:16:08

工具代碼開發(fā)

2020-12-11 06:44:16

命令行工具開發(fā)

2020-11-02 16:20:07

GuavaJava編程語言

2020-04-22 09:04:27

Linux命令行搜索工具

2010-09-01 14:23:54

Linux命令行開發(fā)

2017-11-14 11:26:06

命令行技巧生產力

2024-08-26 11:23:41

kitexcall

2014-08-25 16:23:24

2023-03-01 11:35:45

2020-09-23 16:51:15

辦公軟件電腦技術

2010-03-05 13:00:39

Ubuntu命令

2015-07-01 09:15:46

linuxQuora命令行
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲免费在线观看 | 视频在线观看一区 | 九九99九九精彩46 | 久久午夜电影 | 成人欧美一区二区三区白人 | 久久草视频| 亚洲永久免费 | 欧美日本亚洲 | 国产一区二区三区四区在线观看 | 国产丝袜av | 国产一区二区视频在线 | 天天天堂 | 亚洲成人av在线播放 | 国产精品v | 国产二区av| 色偷偷888欧美精品久久久 | 黄色片网站国产 | 日韩av在线不卡 | 日韩影院在线 | 成人欧美一区二区三区黑人孕妇 | 国产一区二区三区在线视频 | 一区二区在线 | 亚洲精品久久久久久国产精华液 | 久草青青草 | 91麻豆久久久 | 麻豆视频在线免费看 | 人人做人人澡人人爽欧美 | 中文字幕乱码一区二区三区 | 激情久久网 | 欧美一区二区三区在线观看 | 伊人艹| 四虎首页| 奇米超碰 | 99色视频| 国产一级成人 | a精品视频 | 中文字幕亚洲视频 | 久久久夜色精品亚洲 | 午夜日韩 | 欧美激情欧美激情在线五月 | 狠狠ri|