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

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

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

背景

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

[[341848]]

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

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

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

Mac 環境

  • 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
  • 執行動作 -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版本的區別

示例

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

cut

  • 常用參數
  • -b(字節)
  • -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 }', 流程如下:

  • 執行begin
  • 對輸入每一行執行 pattern{ commands }, pattern 可以是 正則/reg exp/, 關系運算等
  • 處理完畢, 執行 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是一個強大的語言,可以掌握一些基本的用法。

實際應用

日志統計分析

例如拿到一個nginx日志文件,可以做很多事情,比如看哪些請求是耗時最久的進而進行優化,比如看每小時的"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, 然后執行
  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. #然后執行sql 即可 

其他

  • play framework session

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

 

  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" 

統計文章單詞頻率: 下面案例統計了川普就職演講原文中詞頻最高的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系統工具

2024-08-13 10:55:34

Linux命令行黃金法則

2020-11-25 19:57:15

開發技能代碼

2018-01-19 09:00:37

2012-07-11 13:35:25

UnixLinux

2019-09-09 15:43:29

UnixLinux命令行

2020-12-11 06:44:16

命令行工具開發

2020-12-10 16:16:08

工具代碼開發

2014-06-17 09:49:07

Ngxtop實時監控Nginx

2020-11-02 16:20:07

GuavaJava編程語言

2020-04-22 09:04:27

Linux命令行搜索工具

2010-09-01 14:23:54

Linux命令行開發

2017-11-14 11:26:06

命令行技巧生產力

2024-08-26 11:23:41

kitexcall

2014-08-25 16:23:24

2020-09-23 16:51:15

辦公軟件電腦技術

2023-03-01 11:35:45

2025-10-17 08:00:00

2010-03-05 13:00:39

Ubuntu命令
點贊
收藏

51CTO技術棧公眾號

久久伊99综合婷婷久久伊| 久久亚洲成人| 91福利在线导航| 天堂资源在线亚洲资源| 亚洲精品国产欧美在线观看| 天天做天天爱天天爽综合网| 日韩免费性生活视频播放| 每日在线更新av| 秋霞午夜在线观看| 成人av午夜电影| 国产精品久久久久久网站| 91精品一区二区三区蜜桃| 欧洲亚洲一区二区三区| 欧美日韩国产欧美日美国产精品| 妺妺窝人体色www看人体| 免费在线性爱视频| 国产成人综合精品三级| 国产精品第8页| 欧美日韩国产精品一区二区三区| 国产精品手机在线播放| 日韩精品一区二区三区中文不卡| 91视频免费版污| 91破解版在线观看| 亚洲欧美激情在线| 日韩精品欧美专区| 欧美视频一二区| 美腿丝袜亚洲色图| 欧美一级淫片aaaaaaa视频| 麻豆天美蜜桃91| 国产成人久久| 亚洲激情自拍图| 日本一本在线视频| 青草综合视频| 色国产精品一区在线观看| av在线播放天堂| 国产在线观看av| 欧美国产精品v| 日本一区二区三区精品视频| 日本xxxx人| 国产九色精品成人porny | 三级成人黄色影院| 亚洲va天堂va国产va久| 黄色污污在线观看| 麻豆传媒视频在线| 国产精品久久久久久久午夜片| 美国av一区二区三区| 亚洲免费国产视频| 国产乱子伦视频一区二区三区 | 久久99精品久久久野外观看| 欧美性色黄大片| 欧美在线观看视频网站| 免费观看亚洲| 色婷婷av久久久久久久| 日韩中文字幕三区| 亚洲精品mv| 第一福利永久视频精品| 国产亚洲欧美在线视频| 日本不卡1234视频| 欧美色xxxx| 成年人视频网站免费观看| 老牛影视精品| 日韩欧美成人精品| 国产成人av影视| 日本一道高清亚洲日美韩| 日本高清视频一区二区| 免费看黄色一级大片| 嫩草伊人久久精品少妇av杨幂| 在线观看av一区二区| 亚洲一级免费观看| 色综合久久久| 91精品国产色综合久久| 乱码一区二区三区| 极品国产人妖chinesets亚洲人妖| 欧美精品一区二区三| www.超碰97| 国产欧美日韩| 少妇精69xxtheporn| 日本爱爱小视频| 欧美黄色大片网站| 韩国精品美女www爽爽爽视频| 午夜精品三级久久久有码| 久久久久看片| 国产日韩精品视频| 好吊色一区二区三区| av色综合久久天堂av综合| 欧美自拍资源在线| 精品美女在线观看视频在线观看| 亚洲激情一二三区| 男人的天堂99| 91丨精品丨国产| 亚洲成人av中文字幕| 一级片视频免费看| 欧美成人精品| 91精品国产免费久久久久久| 国产一级18片视频| 免费高清在线视频一区·| 99在线影院| 天堂av电影在线观看| 国产精品色婷婷| 亚洲人成无码网站久久99热国产 | 欧美性猛交xxxx黑人| 成人免费在线观看视频网站| 91成人在线精品视频| 亚洲色无码播放| 国产女人被狂躁到高潮小说| 亚洲一区激情| 95av在线视频| 黄色的视频在线免费观看| 亚洲欧美日韩人成在线播放| 看av免费毛片手机播放| 精品国产麻豆| 在线观看欧美www| 国产精品成人免费一区二区视频| 日韩国产欧美在线视频| 国产精品久久波多野结衣| 丝袜美腿美女被狂躁在线观看| 亚洲国产一区二区三区青草影视| 奇米影音第四色| 欧美精品色哟哟| 国产999精品在线观看| 亚洲精品久久久久久久久久久| 一本在线免费视频| 香蕉久久夜色精品| av一区二区三区免费| jizz在线观看| 欧美日韩亚洲成人| 成人三级做爰av| 欧美独立站高清久久| 日韩免费不卡av| 少妇高潮久久久| 亚洲永久免费视频| 国产农村妇女精品久久| 三级电影一区| 国产精品露脸自拍| 免费毛片在线| 黑人狂躁日本妞一区二区三区| 精品无码av一区二区三区不卡| 久久激情电影| 国产精品入口夜色视频大尺度 | wwwwww欧美| 高清不卡一区| 日韩中文在线不卡| 中文av免费观看| 国产精品色在线观看| 国产精品igao| 日韩电影免费在线观看| 国产精品27p| 国产精品一区在线看| 色综合一区二区| 波多野结衣福利| 老鸭窝91久久精品色噜噜导演| 精品久久sese| 天堂√8在线中文| 精品无人国产偷自产在线| 国产精品久久久免费视频| 99久久久久久| 欧美亚洲国产成人| 无码日韩精品一区二区免费| 欧美中文字幕在线播放| 欧美日本韩国一区二区| 一本到一区二区三区| 国产成人一区二区在线观看| 日韩高清在线电影| 亚洲视频小说| 99精品视频在线免费播放| 久久精品夜夜夜夜夜久久| 国产喷水吹潮视频www| 一区二区三区在线播放| 插我舔内射18免费视频| 免费在线日韩av| 日韩电影大全在线观看| 欧美一级二级视频| 久久久精品中文字幕| 亚洲a视频在线| 黄色精品在线看| 精品无码在线观看| 精品亚洲成a人| 无码熟妇人妻av在线电影| 欧美一区二区三区久久| 国产精品第三页| 99热国产在线| 日韩精品免费在线观看| 中文字幕人妻丝袜乱一区三区| 亚洲欧美视频在线观看视频| 国产51自产区| 视频一区二区不卡| 浴室偷拍美女洗澡456在线| 国产一区丝袜| 国产精品视频一| 国产在线xxx| 中文字幕av日韩| 性一交一乱一伧老太| 色综合久久久久久久久| 91麻豆精品久久毛片一级| 成熟亚洲日本毛茸茸凸凹| 丁香啪啪综合成人亚洲| 亚洲最大黄网| 日本一区二区在线视频观看| 国产在线视频欧美一区| 欧美亚洲另类制服自拍| www.中文字幕久久久| 亚洲第一精品久久忘忧草社区| 中文字幕xxxx| 偷窥国产亚洲免费视频| 国产福利在线导航| 久久综合久久综合久久综合| 永久免费看片在线观看| 日韩高清在线观看| 久操网在线观看| 性xxxx欧美老肥妇牲乱| 免费国产一区二区| 成人av综合网| 成人黄色av播放免费| 色婷婷综合久久久中字幕精品久久| 欧美精品在线免费| h视频在线观看免费| 亚洲国产精品字幕| www五月婷婷| 欧美日韩国产123区| 免费av网站在线| 亚洲一区二区三区视频在线播放| 波兰性xxxxx极品hd| 91色.com| 性囗交免费视频观看| 国产盗摄一区二区三区| 中文字幕亚洲乱码| 三级久久三级久久久| 欧美一级免费播放| 欧美精品一卡| 欧美性受黑人性爽| 国产精品久久久久久久久妇女 | 91精品久久久久久久久久不卡| 免费久久久一本精品久久区| 久久综合社区| 精品无码久久久久久久动漫| jizzjizzjizz欧美| 97超碰最新| 国产精品美女久久久久人| 成人久久一区二区三区| 电影天堂国产精品| 国产成人一区二区三区| 中文字幕色婷婷在线视频 | yy6080久久伦理一区二区| 日本精品久久久久久久| 一区二区三区四区日本视频| 91av在线免费观看| 亚洲日本天堂| 日韩美女免费线视频| 在线天堂资源| 日韩美女毛茸茸| 日本精品在线一区| 国产精品成人久久久久| 亚洲电影有码| 国产欧美久久一区二区| 日本精品久久| 91久久综合亚洲鲁鲁五月天| 亚洲欧洲一二区| 亚洲一区国产精品| 日韩精品一区国产| 国产精品久久久久久久久久直播| 福利片一区二区| 久久久久久久免费| 国产免费播放一区二区| 亚洲日本无吗高清不卡| 午夜精品毛片| av 日韩 人妻 黑人 综合 无码| 国产精品久久| 日韩激情免费视频| 欧美a一区二区| 天天影视色综合| 国产不卡高清在线观看视频| 国产极品一区二区| 久久夜色精品国产噜噜av| 人与嘼交av免费| 亚洲色图欧美偷拍| 日韩欧美一区二区一幕| 色网综合在线观看| 国产一区二区三区在线观看| 日韩欧美国产不卡| 欧洲成人av| 久久精品久久久久久国产 免费| 色帝国亚洲欧美在线| 欧美自拍视频在线| 四虎精品永久免费| 高清不卡一区二区三区| 国产不卡av一区二区| 99视频精品全部免费看| 久久不射2019中文字幕| 操人视频免费看| 久久免费视频一区| 欧产日产国产v| 日本道精品一区二区三区| 国产av无码专区亚洲av| 亚洲美女视频网站| 99在线播放| 国产精品视频xxxx| 精品国产影院| 一区二区三区四区久久| 国产精品久久久久久久免费软件| 激情五月婷婷基地| 91论坛在线播放| 久久久久亚洲天堂| 欧美色综合天天久久综合精品| 天天干天天摸天天操| 欧美成人国产va精品日本一级| 精品3atv在线视频| 国产精品高清一区二区三区| 91亚洲成人| 女人另类性混交zo| www.av精品| 免费毛片在线播放免费| 欧美色中文字幕| 国产最新视频在线| 97在线免费观看视频| 国产精品久久久久久久久久久久久久久 | 久久久久久久久久久亚洲| 日本亚洲欧洲无免费码在线| 国产福利久久精品| 天堂网av成人| 日本精品一区二区三区视频 | 欧美brazzers| 亚洲精品久久久久久久久久久| 久久综合网导航| 国产精品美女无圣光视频| 丁香5月婷婷久久| 亚洲a∨一区二区三区| 99精品99| 一级黄色免费毛片| 国产精品欧美久久久久无广告| 免费一级a毛片夜夜看| 7777精品伊人久久久大香线蕉完整版 | 99热在线精品观看| 天天摸天天舔天天操| 国产欧美日产一区| 国产成人亚洲欧洲在线| 精品久久国产字幕高潮| 在线观看黄色av| 欧美孕妇孕交黑巨大网站| 好吊妞视频这里有精品| 日本道在线视频| 国产高清在线观看免费不卡| 香蕉久久久久久久| 欧美日韩国产大片| 秋霞午夜在线观看| 国产精品久在线观看| 无码日韩精品一区二区免费| 黑森林福利视频导航| aa级大片欧美| 无码视频在线观看| 日韩电影在线观看中文字幕 | 欧美在线视频一区| 国产无遮挡裸体免费久久| 97国产精东麻豆人妻电影| 99久久综合国产精品| 精品在线视频免费观看| 亚洲国产精品久久久久久| 羞羞视频在线观看不卡| 俄罗斯精品一区二区| 国内精品美女在线观看 | 亚洲a∨精品一区二区三区导航| 欧美精品二区三区四区免费看视频| 99热免费精品在线观看| 微拍福利一区二区| 欧美亚洲国产怡红院影院| 黄色在线网站| 国产精品678| 青草国产精品| www.色就是色.com| 亚洲欧美日韩国产综合| 亚洲爱爱综合网| 性欧美视频videos6一9| av不卡一区| 久久久久久香蕉| 国产精品国产精品国产专区不蜜 | 精品污污网站免费看| 免费在线午夜视频| 亚洲自拍高清视频网站| 亚洲视频播放| 精品人妻一区二区三区蜜桃视频| 欧美日韩精品一区视频| 成人午夜在线影视| 久久国产精品精品国产色婷婷| 久久久噜噜噜久久狠狠50岁| 中文字幕有码在线播放| 91精品国产综合久久蜜臀| 不卡的av影片| 日韩欧美在线观看强乱免费| 精品一区二区三区在线观看| 久久亚洲成人av| 国产视频精品自拍| 午夜av成人| 国产欧美日韩小视频| 91久色porny| 精品免费久久久| 青青精品视频播放| 亚洲色图网站| 久久亚洲AV成人无码国产野外 | 国产无遮挡裸体免费久久| 99久久国产宗和精品1上映| 国产精品久久久久一区|