精品欧美一区二区三区在线观看 _久久久久国色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精品久久久久久| 亚洲欧美一区二区三区| 成人av综合一区| 欧美重口另类videos人妖| 亚洲成人日韩在线| 久久99久久99精品免观看软件| 国产三级精品三级在线专区| 国产日韩欧美中文| 丁香花五月激情| 国产一级成人av| 日本乱码高清不卡字幕| 亚洲精品久久区二区三区蜜桃臀| 国产免费的av| 99国产精品| 国产一区二区免费| 毛片毛片毛片毛片毛| 98色花堂精品视频在线观看| 国产无一区二区| 成人在线激情视频| 欧美bbbbbbbbbbbb精品| 精品国产一级毛片| 日韩一区二区三| 午夜精品久久久内射近拍高清| 欧美性天天影视| 成人av电影在线| 国产精品亚洲一区二区三区| 日韩伦理在线视频| 久久国产成人午夜av影院宅| 精品国产凹凸成av人导航| 凹凸国产熟女精品视频| 在线免费黄色| 99视频精品免费视频| 国产在线视频91| 毛片在线免费视频| 一区二区影视| 一本久久综合亚洲鲁鲁| 337p日本欧洲亚洲大胆张筱雨 | 91影院在线观看| 成人久久18免费网站图片| 国产三级av片| 亚洲国产精品成人| 亚洲男人7777| 免费啪视频在线观看| 欧美男女视频| 在线免费观看成人短视频| 97在线国产视频| 欧美人xxx| 久久蜜桃一区二区| 国产伦精品一区| 亚洲av永久纯肉无码精品动漫| 久久三级视频| 午夜精品福利电影| 女同久久另类69精品国产| 日本亚洲不卡| 亚洲成av人影院在线观看| 亚洲一二三不卡| 成人黄页网站视频| 91福利国产成人精品照片| 精品少妇一区二区三区在线| 人人超在线公开视频| 亚洲人成网站精品片在线观看| 少妇免费毛片久久久久久久久| 三级视频在线播放| eeuss国产一区二区三区| 91成人伦理在线电影| 国产乱码精品一区二区| 麻豆精品新av中文字幕| 国产精品成人av在线| 免费视频网站在线观看入口| 久久精品在线| 国产精品成人播放| а中文在线天堂| 日韩电影一区二区三区四区| 日本一区二区不卡| 69xxxx国产| 三级久久三级久久久| 高清欧美电影在线| 日本一级淫片免费放| 欧美久久影院| 国模gogo一区二区大胆私拍| 国产精品99无码一区二区| 国产一区观看| 97色在线观看免费视频| 亚洲成熟少妇视频在线观看| 日韩av午夜在线观看| 国产精品专区第二| 国产精品人人妻人人爽| 国产黑丝在线一区二区三区| 国产高清精品一区二区三区| 外国精品视频在线观看 | 国产精品va在线| 91麻豆视频在线观看| 久久99精品国产麻豆婷婷洗澡| 国产有码在线一区二区视频| jizz中国少妇| av色综合久久天堂av综合| 欧美精品久久| 婷婷免费在线视频| 亚洲午夜久久久久中文字幕久| 国产精品国产亚洲精品看不卡| 国产精欧美一区二区三区蓝颜男同| 在线观看视频91| 色呦色呦色精品| 97久久精品| 精品视频在线导航| 51精品免费网站| 亚洲激情综合| 国产精品一区二区三区在线播放| 精品国产av鲁一鲁一区| av爱爱亚洲一区| 色综合影院在线观看| 91精品久久久久久粉嫩| 日韩欧美国产黄色| 国产高清999| 欧美网色网址| 波霸ol色综合久久| 久久久久久久久久免费视频| 蜜桃视频在线观看一区二区| 国产精品免费一区二区三区在线观看| 麻豆av电影在线观看| 亚洲日本丝袜连裤袜办公室| 91传媒久久久| 亚洲一区二区三区免费| 中文字幕一区二区三区电影| 日本aⅴ在线观看| 久久在线91| 91丨九色丨国产在线| 牛牛热在线视频| 一区二区三区免费| 欧美男女交配视频| 一区二区三区欧洲区| 日韩精品中文字幕久久臀| 国产尤物在线播放| 日韩中文字幕区一区有砖一区 | 视频一区亚洲| 日本不良网站在线观看| 日韩精品一区二区三区在线观看 | 国产精品超碰97尤物18| av观看免费在线| 欧美经典一区| 亚洲视频欧美视频| av激情在线观看| 日韩av一区二区在线影视| 精品国产一区二区三区麻豆免费观看完整版| av电影在线网| 在线亚洲精品福利网址导航| 91黄色免费视频| 国产在线不卡| 亚洲自拍偷拍色图| 麻豆影院在线| 欧美日韩成人在线一区| 日韩av片在线| 视频一区中文字幕| 免费一区二区三区| 色在线中文字幕| 亚洲精品美女在线| 国产在线综合网| 国产91在线观看丝袜| 国产精品一二三在线观看| 在线高清欧美| 久久视频在线免费观看| 97人妻一区二区精品视频| 成人激情小说网站| 成年人网站国产| silk一区二区三区精品视频| 欧美精品videossex性护士| 精品乱子伦一区二区| 夜夜操天天操亚洲| 国产无套精品一区二区三区| 黄色成人av网站| 国产精品美女黄网| 妞干网免费在线视频| 亚洲精品中文字| 亚洲精品久久久久久久蜜桃| 国产精品人人做人人爽人人添| 91制片厂毛片| 羞羞答答成人影院www| 91最新在线免费观看| 青草青在线视频| 欧美精品一区二区在线播放 | 在线观看免费一区| 美女av免费看| 国产美女一区二区| 久久av秘一区二区三区| 日本成人精品| 久久久999精品| 国产精品视频第一页| 一区二区三区在线播| 中文字幕乱码一区| 日韩精品成人一区二区三区| 在线综合视频网站| 8848成人影院| 欧美影院久久久| av在线之家电影网站| 日韩限制级电影在线观看| 日韩精品无码一区二区| 久久久久久亚洲综合| 激情黄色小视频| 亚洲国产午夜| 图片区小说区区亚洲五月| 激情不卡一区二区三区视频在线 | 久久精品中文字幕一区二区三区| jizzyou欧美16| 欧美黑人又粗大| 日韩欧美电影在线观看| 欧美高清一级片在线| 国产主播在线播放| 国产偷国产偷亚洲高清人白洁| 爱豆国产剧免费观看大全剧苏畅| 国产主播精品| 亚洲v国产v| 97久久综合区小说区图片区| 日韩美女免费线视频| www.久久ai| 亚洲片国产一区一级在线观看| 99久久久无码国产精品免费| 福利一区视频在线观看| 91九色丨porny丨极品女神| 久久综合色播五月| 五月天六月丁香| 久久精品国语| 青青在线视频免费观看| 国产一区二区在线| 不卡视频一区二区| ****av在线网毛片| 久久精品99久久久久久久久| 你懂得网站在线| 亚洲第一福利网站| 国产一区二区在线视频聊天| 在线日韩av片| 亚洲天堂日韩av| 一区二区三区中文字幕电影| 日韩一级av毛片| 99精品视频一区二区三区| 久久精品亚洲天堂| 美女mm1313爽爽久久久蜜臀| 干日本少妇首页| 最新日韩av| 国产911在线观看| 成人直播大秀| 欧洲在线视频一区| 视频国产精品| 91系列在线播放| 日韩护士脚交太爽了| 国产激情视频一区| 亚洲国产福利| 91高清视频免费| av免费不卡| 欧美国产亚洲视频| 羞羞的网站在线观看| 久久久久999| 黄色网页在线免费观看| 日韩中文字幕视频在线| 成人免费黄色网页| 在线精品国产成人综合| 啊v视频在线| 精品亚洲男同gayvideo网站 | 精品av久久707| aaa一区二区三区| 日韩欧美在线综合网| 国产偷拍一区二区| 欧美一区日本一区韩国一区| 91麻豆国产在线| 欧美一区二区三区喷汁尤物| 国产日韩在线观看一区| 日韩欧美国产电影| 黄色av网站免费在线观看| 欧美精品一区二区三区一线天视频| 免费看黄色一级视频| 亚洲成av人乱码色午夜| 欧美一区二不卡视频| 精品福利一区二区三区免费视频| 亚洲第一成人av| 亚洲激情自拍图| 亚洲欧美色视频| 伊人久久久久久久久久| 黄网站在线免费| 欧美国产精品日韩| 国产三级伦理在线| 45www国产精品网站| 国产高清不卡| 成人黄色激情网| 亚洲综合网站| 蜜桃麻豆www久久国产精品| 精品国产一区二区三区久久久蜜臀 | 久久综合九色综合久99| 国产精品美女久久久久久不卡| 色视频一区二区三区| 99久久久久国产精品| 男人的天堂avav| 亚洲综合日本| 亚洲乱码中文字幕久久孕妇黑人| 日韩高清不卡在线| 中文字幕亚洲影院| 国产jizzjizz一区二区| 性久久久久久久久久| 国产精品久久久久久久浪潮网站| 欧美黑人精品一区二区不卡| 欧美日韩一区二区三区| 在线观看免费高清视频| 欧美一区二区日韩| 性欧美18一19性猛交| 亚洲精品日韩欧美| 欧美高清视频| 97视频在线免费观看| 91p九色成人| 国产自产在线视频一区| 成人无号精品一区二区三区| 亚洲 欧美 综合 另类 中字| 视频一区在线播放| 亚洲综合中文网| 91日韩在线专区| 国产一二三av| 黄色一区二区在线| 亚洲天堂网视频| 亚洲精品美女久久| 黄色免费在线网站| 青青a在线精品免费观看| 久久免费精品| 日韩欧美一区二区三区四区五区 | 免费在线观看一区二区| 亚洲欧美色图| 艹b视频在线观看| av影院午夜一区| 成人做爰69片免网站| 五月综合激情日本mⅴ| 国产精品久久久久久免费免熟 | 久久精品无码av| 精品区一区二区| 国产精品久久麻豆| 国产精品扒开腿做爽爽爽男男| 精品国内亚洲2022精品成人| 亚洲成年人专区| 青青国产91久久久久久 | 在线精品国产亚洲| 亚洲乱码一区二区三区| 久久久久久穴| 图片区偷拍区小说区| 中文字幕一区二区三区乱码在线| 91青青草视频| 亚洲人成在线免费观看| 在线天堂资源| 国产一区二区无遮挡| 亚洲视频高清| wwwww在线观看| 亚洲男人的天堂在线aⅴ视频| 成人午夜电影小说| 一级黄色片毛片| 亚洲一区二区三区爽爽爽爽爽| aaa一区二区三区| 久国内精品在线| 国产成人精品福利| 日本欧美视频在线观看| eeuss国产一区二区三区| 日本最新中文字幕| 亚洲精品mp4| 激情都市亚洲| 亚洲午夜精品一区二区| 精品午夜一区二区三区在线观看| 污污的视频在线免费观看| 日韩手机在线导航| av小说在线播放| 免费亚洲精品视频| 麻豆国产精品一区二区三区| 麻豆精品国产免费| 日韩一区二区三区观看| 嗯~啊~轻一点视频日本在线观看| 裸模一区二区三区免费| 日韩福利视频导航| 国产尤物在线播放| 亚洲精品一线二线三线无人区| gay欧美网站| 中国人体摄影一区二区三区| 丁香桃色午夜亚洲一区二区三区| 亚洲永久精品在线观看| 中文综合在线观看| 亚洲91网站| 国产成人久久777777| 成人欧美一区二区三区1314| 国产77777| 国产精品麻豆va在线播放| 欧美一区高清| 中文字幕国产综合| 欧美精品三级日韩久久| 成人免费网站观看| 丝袜美腿玉足3d专区一区| 国产一区二区中文字幕| 成人午夜视频精品一区| 按摩亚洲人久久| 羞羞答答一区二区| 亚洲av无日韩毛片久久| 午夜激情久久久| 亚洲成人三级| 久久精品99久久| 国产在线国偷精品产拍免费yy| 51国产偷自视频区视频| 蜜臀久久99精品久久久久久宅男|