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

加薪,首先要高效,Linux shell的12個巧妙技巧讓你運維高效

系統 Linux 系統運維
對于管理員或用戶而言,命令行不僅是可以完成所有任務的工具,而且還是可以永遠開發的高度定制的工具。根據個人經驗,在Linux Shell中有12種技巧。
 

 

加薪,首先要高效,Linux shell的12個巧妙技巧讓你運維高效

 

對于管理員或用戶而言,命令行不僅是可以完成所有任務的工具,而且還是可以永遠開發的高度定制的工具。

最近,有一篇有關CLI中一些有用技巧的翻譯文章。但是我覺得翻譯人員沒有足夠的CLI經驗,也沒有遵循所描述的技巧,因此許多重要的事情可能會被遺漏或誤解。

根據個人經驗,在Linux Shell中有12種技巧。

注意:本文中的所有腳本和示例都經過了盡可能地簡化,因此也許您會發現一些看起來完全沒用的技巧–也許就是這個原因。但無論如何,請在評論中分享您的想法!

1.使用可變擴展名分割字符串

人們經常使用cut甚至awk只是通過模式或使用分隔符減去字符串的一部分。

另外,許多人使用$ {VARIABLE:start_position:length}進行子字符串bash操作,這非常快。

但是bash提供了一種使用#,##,%和%%來處理文本字符串的強大方法-它稱為bash變量擴展

使用此語法,您可以在無需執行外部命令的情況下減少模式的需要,因此它將非常快速地工作。

下面的示例顯示了如何使用cut或變量擴展從字符串中獲取第三列(shell),其中用冒號«username:homedir:shell»分隔的值(我們使用*: mask和##命令,這意味著:將所有字符向左剪切,直到找到最后一個冒號為止):

  1. $ STRING="username:homedir:shell" 
  2. $ echo "$STRING"|cut -d ":" -f 3 
  3. shell 
  4. $ echo "${STRING##*:}" 
  5. shell 

第二個選項不啟動子進程(cut),并且根本不使用管道,這樣可以更快地工作。而且,如果您在管道幾乎不移動的Windows上使用bash子系統,則速度差異會很大

讓我們看一下Ubuntu上的示例:循環執行我們的命令1000次

  1. $ cat test.sh 
  2. #!/usr/bin/env bash 
  3. STRING="Name:Date:Shell" 
  4. echo "using cut" 
  5. time for A in {1..1000} 
  6. do 
  7.  cut -d ":" -f 3 > /dev/null <<<"$STRING" 
  8. done 
  9. echo "using ##" 
  10. time for A in {1..1000} 
  11. do 
  12.  echo "${STRING##*:}" > /dev/null 
  13. done 

結果

  1. $ ./test.sh 
  2. using cut 
  3. real 0m0.950s 
  4. user 0m0.012s 
  5. sys 0m0.232s 
  6. using ## 
  7. real 0m0.011s 
  8. user 0m0.008s 
  9. sys 0m0.004s 

差別是幾十倍!

當然,上面的例子太人為了。在實際示例中,我們將不使用靜態字符串,而是要讀取真實文件。對于“ cut ”命令,我們只將/etc /passwd重定向到它。在##的情況下,我們必須創建一個循環并使用內部的' read '命令讀取文件。那么誰將贏得這場案子呢?

  1. $ cat test.sh 
  2. #!/usr/bin/env bash 
  3. echo "using cut" 
  4. time for count in {1..1000} 
  5. do 
  6.  cut -d ":" -f 7 </etc/passwd > /dev/null 
  7. done 
  8. echo "using ##" 
  9. time for count in {1..1000} 
  10. do 
  11.  while read 
  12.  do 
  13.  echo "${REPLY##*:}" > /dev/null 
  14.  done </etc/passwd 
  15. done 

結果

還有兩個示例:

在等號后提取值:

  1. $ VAR="myClassName = helloClass" 
  2. $ echo ${VAR##*= } 
  3. helloClass 

提取括號中的文本:

  1. $ VAR="Hello my friend (enemy)" 
  2. TEMP="${VAR##*\(}" 
  3. $ echo "${TEMP%\)}" 
  4. enemy 

2. Bash自動補全

bash-completion軟件包幾乎是每個Linux發行版的一部分。您可以在/etc/bash.bashrc或/etc/profile.d/bash_completion.sh中啟用它,但是通常默認情況下已啟用它。通常,自動完成是新手首先遇到的Linux Shell上的第一個便捷時刻。

但是并非所有人都使用所有bash補全功能這一事實,在我看來完全是徒勞的。例如,不是所有人都知道,自動完成功能不僅適用于文件名,而且適用于別名,變量名,函數名,甚至適用于某些帶有參數的命令。如果您深入研究自動完成腳本(實際上是shell腳本),甚至可以為自己的應用程序或腳本添加自動完成。

但是,讓我們回到別名。

您無需編輯PATH變量或在指定目錄中創建文件即可運行別名。您只需要將它們添加到配置文件或啟動腳本中,然后在任何位置執行它們即可。

通常,我們在* nix中使用小寫字母表示文件和目錄,因此創建大寫別名非常方便-在這種情況下,bash-completion 幾乎會用單個字母來猜測您的命令:

  1. $ alias TAsteriskLog="tail -f /var/log/asteriks.log" 
  2. $ alias TMailLog="tail -f /var/log/mail.log" 
  3. $ TA[tab]steriksLog 
  4. $ TM[tab]ailLog 

3.使用選項卡進行Bash自動補全-第2部分

對于更復雜的情況,可能您想將個人腳本放入$ HOME / bin。

但是我們在bash中有功能。

函數不需要路徑或單獨的文件。(注意)bash補全也可以與函數一起使用。

讓我們在.profile中創建函數LastLogin (不要忘記重新加載.profile):

  1. function LastLogin { 
  2.  STRING=$(last | head -n 1 | tr -s " " " "
  3.  USER=$(echo "$STRING"|cut -d " " -f 1) 
  4.  IP=$(echo "$STRING"|cut -d " " -f 3) 
  5.  SHELL=$( grep "$USER" /etc/passwd | cut -d ":" -f 7) 
  6.  echo "User: $USER, IP: $IP, SHELL=$SHELL" 

在控制臺中(請注意,函數名的首字母大寫以加快bash的完成速度):

  1. $ L[tab]astLogin 
  2. User: saboteur, IP: 10.0.2.2, SHELL=/bin/bash 

4.1.敏感數據

如果您在控制臺中的任何命令前放置空格,則它將不會出現在命令歷史記錄中,因此,如果您需要在命令中放置純文本密碼,這是使用此功能的一種好方法—在下面的示例中回顯«hello 2»將不會出現在歷史記錄中:

  1. $ echo "hello" 
  2. hello 
  3. $ history 2 
  4.  2011 echo "hello" 
  5.  2012 history 2 
  6. $ echo "my password secretmegakey" # there are two spaces before 'echo' 
  7. my password secretmegakey 
  8. $ history 2 
  9.  2011 echo "hello" 
  10.  2012 history 2 

它是可選的

4.2.命令行參數中的敏感數據

您想在git中存儲一些shell腳本以在服務器之間共享它們,或者它可能是應用程序啟動腳本的一部分。并且您希望此腳本將連接到數據庫或執行其他需要憑據的操作。

當然,將憑據存儲在腳本本身中是個壞主意,因為git是不安全的。

通常,您可以使用已經在目標環境上定義的變量,并且腳本本身將不包含密碼。

例如,您可以在具有700個權限的每個環境上創建小腳本,并使用主腳本中的source命令調用它:

  1. secret.sh 
  2. PASSWORD=LOVESEXGOD 
  3. myapp.sh 
  4. source ~/secret.sh 
  5. sqlplus -l user/"$PASSWORD"@database:port/sid @mysqfile.sql 

但這并不安全。

如果其他人可以登錄到您的主機,則他只需執行ps命令并查看帶有整個命令行參數(包括密碼)的sqlplus進程。因此,安全工具通常應該能夠直接從文件中讀取密碼/密鑰/敏感數據。

例如,安全ssh甚至沒有任何選項可以在命令行中提供密碼。但是他可以從文件讀取ssh密鑰(并且可以在ssh密鑰文件上設置安全權限)。

非安全wget具有選項“ --password”,該選項使您可以在命令行中提供密碼。wget一直在運行,每個人都可以執行ps命令并查看您提供的密碼。

另外,如果您有很多敏感數據,并且想通過git控制它,那么唯一的方法就是加密。因此,您只需將每個主密碼以及所有其他可以加密并放入git的數據輸入到每個目標環境。而且,您可以使用openssl CLI界面從命令行使用加密的數據。以下是從命令行進行加密和解密的示例:

文件secret.key包含主密鑰-單行:

  1. $ echo "secretpassword" > secret.key; chmod 600 secret.key 

讓我們使用aes-256-cbc加密字符串:

  1. $ echo "string_to_encrypt" | openssl enc -pass file:secret.key -e -aes-256-cbc -a 
  2. U2FsdGVkX194R0GmFKCL/krYCugS655yLhf8aQyKNcUnBs30AE5lHN5MXPjjSFML 

您可以將此加密的字符串放入git或其他任何位置存儲的任何配置文件中-沒有secret.key,幾乎不可能對其進行解密。

要解密執行同一命令,只需將-e替換為-d即可:

  1. $ echo 'U2FsdGVkX194R0GmFKCL/krYCugS655yLhf8aQyKNcUnBs30AE5lHN5MXPjjSFML' | openssl enc -pass file:secret.key -d -aes-256-cbc -a 
  2. string_to_encrypt 

5. grep命令

所有人都應該知道grep命令。并且對正則表達式要友好。通常,您可以編寫如下內容:

  1. tail -f application.log | grep -i error 

甚至像這樣:

  1. tail -f application.log | grep -i -P "(error|warning|failure)" 

但是不要忘記grep有很多很棒的選擇。例如-v,它會還原您的搜索并顯示除“ info”消息以外的所有消息:

  1. tail -f application.log | grep -v -i "info" 

其他內容:

選項-P非常有用,因為默認情況下,grep使用相當過時的«基本正則表達式:»,并且-P啟用PCRE,甚至不知道分組。

-i忽略大小寫。

--line-buffered立即解析行,而不是等待到達標準的4k緩沖區(對于tail -f | grep非常有用)。

如果您非常了解正則表達式,則使用--only-matching / -o可以真正實現剪切文本的出色功能。只需比較以下兩個命令以提取myuser的shell:

  1. $ grep myuser /etc/passwd| cut -d ":" -f 7 
  2. $ grep -Po "^myuser(:.*){5}:\K.*" /etc/passwd 

第二個命令看起來更編譯,但是它只運行grep而不是grepcut,因此執行時間會更少。

6.如何減少日志文件的大小

在* nix中,如果刪除應用程序當前正在使用的日志文件,則不能僅刪除所有日志,還可以阻止應用程序在重新啟動之前編寫新日志。

由于文件描述符不是打開文件名而是打開iNode結構,因此應用程序將繼續將文件描述符寫入沒有目錄條目的文件,并且該文件將在應用程序停止后由文件系統自動刪除(您的應用程序可以每次想寫一些東西來避免這種問題時都要打開和關閉日志文件,但這會影響性能)。

因此,如何清除日志文件而不刪除它:

  1. echo "" > application.log 

或者我們可以使用truncate命令:

  1. truncate --size=1M application.log 

提及,該truncate命令將刪除文件的其余部分,因此您將丟失最新的日志事件。另一個示例如何存儲最后1000行:

  1. echo "$(tail -n 1000 application.log)" > application.log 

PS在Linux中,我們有標準的服務rotatelog。您可以將日志添加到自動截斷/旋轉中,也可以使用現有的日志庫來完成(例如Java中的log4j)。

7. watch

在某些情況下,您正在等待事件結束。例如,當另一個用戶登錄到shell(您連續執行who命令)時,或者某人應該使用scp或ftp將文件復制到您的計算機上時,您正在等待完成(重復ls數十次)。

在這種情況下,您可以使用

  1. watch <command> 

默認情況下,將每隔2秒鐘執行一次,且屏幕會預先清除,直到按Ctrl + C。您可以配置執行頻率。

當您要觀看實時日志時,此功能非常有用。

8.bash順序

創建范圍非常有用。例如,而不是像這樣:

  1. for srv in 1 2 3 4 5; do echo "server${srv}";done 
  2. server1 
  3. server2 
  4. server3 
  5. server4 
  6. server5 

您可以編寫以下內容:

  1. for srv in server{1..5}; do echo "$srv";done 
  2. server1 
  3. server2 
  4. server3 
  5. server4 
  6. server5 

您也可以使用seq命令生成格式化范圍。例如,我們可以使用seq創建值,將根據寬度(00、01而不是0、1)自動調整抽動:

  1. for srv in $(seq -w 5 10); do echo "server${srv}";done 
  2. server05 
  3. server06 
  4. server07 
  5. server08 
  6. server09 
  7. server10 

使用命令替換的另一個示例-重命名文件。要獲取不帶擴展名的文件名,我們使用“ basename ”命令:

  1. for file in *.txt; do name=$(basename "$file" .txt);mv $name{.txt,.lst}; done 

甚至還比'%'更短:

  1. for file in *.txt; do mv ${file%.txt}{.txt,.lst}; done 

PS實際上,對于重命名文件,您可以嘗試使用具有許多選項的“ 重命名 ”工具。

另一個示例-讓我們為新的Java項目創建結構:

  1. mkdir -p project/src/{main,test}/{java,resources} 

結果

加薪,首先要高效,Linux shell的12個巧妙技巧讓你運維高效

 

9.tail, multiple files, multiple users...

我已經提到了multitail來讀取文件并觀看多個實時日志。但是默認情況下未提供該功能,并且安裝某些內容的權限并非始終可用。

但是標準尾巴也可以做到:

  1. tail -f /var/logs/*.log 

還讓您記住有關用戶的信息,這些用戶使用'tail -f'別名查看應用程序日志。

多個用戶可以使用“ tail -f”同時觀看日志文件。他們中有些人的會話不太準確。由于某種原因,他們可能會將'tail -f'留在背景中而忘記了。

如果重新啟動應用程序,則有一些正在運行的“ tail -f”進程正在監視不存在的日志文件,該進程可能會掛起幾天甚至幾個月。

通常這不是一個大問題,但不是整齊的。

如果您使用別名來查看日志,則可以使用--pid選項修改此別名:

  1. alias TFapplog='tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app.log' 

在這種情況下,重新啟動目標應用程序時,所有尾部將自動終止。

10.創建具有指定大小的文件

dd是使用塊和二進制數據的最受歡迎的工具之一。例如,創建1 MB文件并填充零將是:

  1. dd if=/dev/zero of=out.txt bs=1M count=10 

但我建議使用fallocate

  1. fallocate -l 10M file.txt 

在支持分配功能(xfs,ext4,Btrfs ...)的文件系統上,fallocate將立即執行,這與dd工具不同。另外,分配是指實際分配塊,而不是創建備用文件。

11. xargs

很多人都知道流行的xargs命令。但是并非所有人都使用以下兩個選項,因此可以極大地改善腳本。

首先-您可以獲得非常長的參數列表,并且可能超過命令行長度(默認情況下〜4 kb)。

但是您可以使用-n選項限制執行,因此xargs將多次運行命令,一次發送指定數量的參數:

  1. $ # lets print 5 arguments and send them to echo with xargs:  
  2. $ echo 1 2 3 4 5 | xargs echo 
  3. 1 2 3 4 5 
  4. $ # now let’s repeat, but limit argument processing by 3 per execution 
  5. $ echo 1 2 3 4 5 | xargs -n 3 echo 
  6. 1 2 3 
  7. 4 5 

來吧 處理長列表可能需要很多時間,因為它在單個線程中運行。但是,如果我們有幾個核心,我們可以告訴xargs并行運行:

  1. echo 1 2 3 4 5 6 7 8 9 10| xargs -n 2 -P 3 echo 

在上面的示例中,我們告訴xargs處理3個線程中的list;每個線程每次執行將接受并處理2個參數。如果您不知道自己有多少個內核,請使用“ nproc ” 進行優化:

  1. echo 1 2 3 4 5 6 7 8 9 10 | xargs -n 2 -P $(nproc) echo 

12.sleep? while? read!

有時您需要等待幾秒鐘。或等待用戶輸入以下內容:

  1. read -p "Press any key to continue " -n 1 

但是您只需添加超時選項以讀取命令,腳本就會暫停指定的秒數,但是在交互執行的情況下,用戶可以輕松地跳過等待。

  1. read -p "Press any key to continue (auto continue in 30 seconds) " -t 30 -n 1 

因此,您只需忘記睡眠命令即可。

我懷疑并不是所有的花招看起來都很有趣,但是在我看來,有十二個數字是可以填寫的好數字。 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2009-10-27 09:09:06

Eclipse技巧

2017-04-08 19:08:45

Linux服務器命令

2018-09-30 14:46:38

Linux命令技巧

2022-10-20 17:37:46

運維智能管理平臺

2011-09-05 09:22:30

云計算遷移IT資產

2011-09-05 16:07:47

云計算虛擬化數據庫

2024-06-24 13:35:48

2010-03-29 16:11:57

無線上網卡

2015-05-13 11:12:19

Linux企業運維技巧

2011-08-29 09:33:48

2018-06-20 11:00:06

云應用開發PaaS

2019-08-30 15:16:42

Linux高效指令運維

2021-06-23 21:16:31

機器人人工智能AI

2010-09-09 09:08:57

2021-07-07 09:50:23

NumpyPandasPython

2017-09-21 12:15:36

機器學習概率學習

2021-01-04 15:42:37

SQL索引Explain

2019-07-02 10:02:21

運維Linux云計算

2011-06-29 17:53:24

維易IT運維

2017-02-27 14:50:36

Linux命令數據
點贊
收藏

51CTO技術棧公眾號

免费xxxx性欧美18vr| 国产精品中文| 国产精品久久精品日日| 成人黄色av网站| 国产精品免费人成网站酒店| 国产美女视频一区二区 | 日本一区二区不卡在线| 国产精品白丝一区二区三区| 91极品美女在线| 午夜精品美女久久久久av福利| 99国产在线播放| 午夜在线播放视频欧美| 最近2019年中文视频免费在线观看 | 国产xxxxx在线观看| 无码国精品一区二区免费蜜桃 | 制服丝袜综合网| 丝袜在线观看| 91小视频免费看| 91久久久久久久久久久久久| 日日夜夜综合网| 这里只有精品在线| 亚洲免费一在线| 国产大学生av| 国产亚洲人成a在线v网站| 亚洲午夜免费电影| 亚洲午夜高清视频| 日本福利在线观看| 成人夜色视频网站在线观看| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 亚洲精品wwwww| 五月天av在线播放| 欧美天堂视频| 欧美日韩亚洲成人| 91动漫在线看| 91精品久久久| 最新成人av在线| 亚洲精品视频一二三| 四虎精品在永久在线观看| 国产成人啪午夜精品网站男同| 国产精品网址在线| 一二三区免费视频| 香蕉成人久久| 7m第一福利500精品视频| 免费一级片视频| 一区二区三区在线观看免费| 日韩视频免费观看| 日韩在线一卡二卡| 久久在线电影| www亚洲精品| 999精品视频在线观看播放| 久久精品国产www456c0m| 亚洲人成在线播放| 免费在线观看污| 国产精品一在线观看| 亚洲国产欧美一区| 国产精品嫩草av| 美女一区二区在线观看| 亚洲级视频在线观看免费1级| 亚洲一区和二区| 国产色99精品9i| 日韩情涩欧美日韩视频| xxx中文字幕| 91成人福利| 欧美精品一区二区三区久久久| 亚洲国产精品狼友在线观看| 国产在线播放精品| 亚洲精品xxx| 中文字幕被公侵犯的漂亮人妻| 精品国产91乱码一区二区三区四区 | 中国极品少妇videossexhd| 麻豆国产欧美一区二区三区r| 日韩精品免费在线播放| 精品人妻互换一区二区三区| 精品国产精品久久一区免费式| 中文字幕综合在线| 波多野结衣家庭教师| 欧美日本久久| 欧美怡红院视频一区二区三区 | 久久久久国产精品一区三寸| 国产精品久久久久久久久粉嫩av| 一级片免费网站| 丰满亚洲少妇av| 久久精品二区| 日本视频在线观看| 亚洲国产日韩精品| 精品久久久久久无码国产| 青青在线精品| 亚洲成人激情在线观看| 性欧美一区二区| 亚洲人metart人体| 5278欧美一区二区三区| 日本一区二区三区久久| 国产不卡视频一区| 免费观看国产成人| 3d玉蒲团在线观看| 日韩欧美国产成人| 亚洲视频在线不卡| 亚洲三级性片| 欧美肥婆姓交大片| 成年人视频免费| 国产99久久久国产精品免费看| 欧美精品123| 中日韩高清电影网| 色婷婷综合中文久久一本| 午夜免费一级片| 免费av一区| 欧美美女18p| 精品乱码一区内射人妻无码| 成人综合在线视频| 无遮挡亚洲一区| 交100部在线观看| 欧美精品乱码久久久久久按摩| 男男做爰猛烈叫床爽爽小说 | 国产精品tv| 日韩资源在线观看| 久久中文字幕免费| 丁香六月久久综合狠狠色| 亚洲精品在线视频观看| 国产理论在线| 日韩欧美国产高清| 午夜成人亚洲理伦片在线观看| 毛片一区二区| 国产欧美韩日| 色老头在线观看| 欧美日韩国产成人在线免费| 亚洲专区区免费| 激情久久久久久| 91免费看蜜桃| 黄色网址在线免费播放| 欧美午夜影院一区| 一本加勒比北条麻妃| 伊人成年综合电影网| 亚洲精品欧美一区二区三区| 日韩子在线观看| 91成人免费网站| 亚洲最大的黄色网| 国内综合精品午夜久久资源| 91丨九色丨国产在线| √新版天堂资源在线资源| 一本大道综合伊人精品热热| 三叶草欧洲码在线| 亚洲主播在线| 裸模一区二区三区免费| 色网在线免费观看| 日韩精品黄色网| 亚洲第一在线播放| 91片在线免费观看| 99福利在线观看| 天天操综合520| 青青草国产精品一区二区| 亚洲欧美自偷自拍| 日韩欧美在线播放| 九色porny自拍视频| 久久亚洲欧美| 品久久久久久久久久96高清| 日韩三区免费| 丝袜一区二区三区| 99热精品在线播放| 一区二区在线电影| 国产成人av无码精品| 一本色道久久综合亚洲精品不卡| 久久久久se| 国产精品久久亚洲不卡| 色偷偷噜噜噜亚洲男人| 国产三级伦理片| 亚洲国产一区二区三区| 国产精品久久无码| 日本免费新一区视频| 在线观看成人av| 亚洲电影一区| 69av成年福利视频| 国产高清在线看| 正在播放亚洲一区| 国产精品suv一区二区| 久久伊人蜜桃av一区二区| 十八禁视频网站在线观看| 国产精品久久久乱弄 | 亚洲精品久久久久avwww潮水| 亚洲成av人片在www色猫咪| 伊人网伊人影院| 精品午夜一区二区三区在线观看| 久久综合亚洲精品| 欧美精美视频| 亚洲qvod图片区电影| jizzjizz中国精品麻豆| 亚洲图片制服诱惑| 国产成人精品毛片| 色偷偷一区二区三区| 精品无码久久久久成人漫画| 99视频有精品| 污污的视频免费观看| 亚洲高清激情| 一区二区日本伦理| 国产图片一区| 成人高h视频在线| 黄在线观看免费网站ktv| 中文字幕久久精品| 凸凹人妻人人澡人人添| 欧美日本高清视频在线观看| 国产精品不卡av| 国产精品久久久久毛片软件| 午夜免费福利影院| 麻豆精品久久久| 鲁一鲁一鲁一鲁一澡| 午夜久久免费观看| 欧美日韩在线精品| aaa国产精品视频| 国产日韩欧美在线播放| 中文在线免费视频| 欧美大片在线看| 日本天堂在线观看| 亚洲无线码在线一区观看| 性欧美videos另类hd| 欧美性xxxxxx少妇| 一级片在线观看免费| 一区二区三区视频在线观看| 国产精品情侣呻吟对白视频| 99久久国产综合精品麻豆| 亚洲精品国产久| 青青青伊人色综合久久| 欧美 日韩 国产一区| 欧美精品国产一区二区| 一本一生久久a久久精品综合蜜| 美女视频免费精品| 国产厕所精品在线观看| 国产专区精品| 国产精品最新在线观看| 国产日韩电影| 91国产视频在线| 国精一区二区三区| 不卡毛片在线看| 大片免费在线看视频| 色综合影院在线| 成人午夜在线观看视频| 精品香蕉一区二区三区| 午夜18视频在线观看| 精品成人佐山爱一区二区| 国产黄色片av| 日韩一区二区在线观看视频播放| 91美女精品网站| 欧美日韩一二三| 在线免费av片| 欧美日韩国产高清一区二区| 亚洲一级在线播放| 在线播放中文一区| 91在线视频国产| 91麻豆精品91久久久久久清纯| 中文字幕乱码人妻二区三区| 欧美三级在线看| 亚洲中文字幕在线一区| 欧美日韩成人综合天天影院| 在线免费观看高清视频| 欧美精品亚洲一区二区在线播放| 一二三四区视频| 欧美一级夜夜爽| 成人福利小视频| 亚洲第一视频网站| 午夜国产在线观看| 亚洲免费精彩视频| 日本www在线观看视频| 久久久精品久久久久| 亚洲区欧洲区| 91精品国产91| 日本高清不卡一区二区三区视频| 国产精品久久久久久久久男| 欧美一区二区三区婷婷| 亚洲va电影大全| 粉嫩一区二区三区四区公司1| 九九九九精品九九九九| 国产成人一区| 中文字幕中文字幕在线中一区高清| 一区二区蜜桃| 能在线观看的av| 蓝色福利精品导航| 无码国产精品久久一区免费| 97久久超碰国产精品| 熟女少妇内射日韩亚洲| 1024国产精品| 国产午夜免费视频| 91激情五月电影| 国产强伦人妻毛片| 日韩av在线网站| 免费大片在线观看www| 欧美巨猛xxxx猛交黑人97人| 美女露胸视频在线观看| 国产精品美女主播| 白嫩白嫩国产精品| 四虎一区二区| 国产一区二区中文| 少妇性l交大片| 国产黄色精品网站| 手机免费看av| 亚洲综合一区二区| 制服丝袜在线一区| 亚洲第一精品福利| 免费黄色网页在线观看| 777午夜精品福利在线观看| 国产视频一区二区在线播放| 精品国产福利| 91精品国产成人观看| 美女福利视频在线| 国产成人av电影在线观看| 久久国产柳州莫菁门| 亚洲综合网站在线观看| 中国女人一级一次看片| 精品久久免费看| 欧美18一19xxx性| 国产97人人超碰caoprom| 91精品入口| 超碰在线免费观看97| 久久精品女人| 国产性猛交96| 亚洲色图在线看| 在线不卡免费视频| 国产视频精品久久久| 免费电影视频在线看| 国产精品一二区| 国内黄色精品| 久久久999免费视频| 成人小视频在线| 91麻豆精品成人一区二区| 色婷婷亚洲婷婷| 偷拍25位美女撒尿视频在线观看| 九九热在线精品视频| 91成人短视频在线观看| 日韩性感在线| 丝袜美腿亚洲色图| 熟女俱乐部一区二区视频在线| 亚洲一二三四久久| 亚洲成a人片77777精品| 另类天堂视频在线观看| 成人国产网站| 视频一区二区三| 老司机精品福利视频| 亚洲午夜久久久久久久久红桃 | 91免费精品国自产拍在线不卡| 久久久久成人网站| 日韩情涩欧美日韩视频| 日本大胆在线观看| 成人91视频| 国产精品jizz在线观看美国| 波多野结衣在线免费观看| 亚洲色图欧洲色图婷婷| 国产乱码精品一区二三区蜜臂 | 国产精品suv一区二区69| 精品精品欲导航| 男女在线观看视频| 超碰97在线资源| 亚洲黄色影片| 182在线视频| 欧美视频专区一二在线观看| 色吊丝在线永久观看最新版本| 欧美一区三区三区高中清蜜桃| 九九精品在线| 在线免费观看av的网站| 中文av一区二区| 国产美女自慰在线观看| 欧美大片在线看| 日韩美脚连裤袜丝袜在线| 97视频在线免费播放| 欧美极品美女视频| 国产精品熟女久久久久久 | 亚洲永久av| 日韩高清av| 狠狠色综合日日| 精品一级少妇久久久久久久| 亚洲精品wwwww| 日本精品网站| 亚洲色图都市激情| av色综合久久天堂av综合| www.欧美色| x99av成人免费| 成人资源在线播放| 国产成人精品视频免费看| 亚洲国产成人在线| 性做久久久久久久久久| 欧美亚洲成人xxx| 色乱码一区二区三区网站| 亚洲性图第一页| 91福利国产成人精品照片| 麻豆视频在线| 久久精品magnetxturnbtih| 另类小说视频一区二区| 青青草免费av| 亚洲欧美在线一区| 精品国产亚洲一区二区三区大结局 | 欧美亚洲高清一区二区三区不卡| 超碰在线最新| 欧美久久在线| 国产精品一级二级三级| 天干夜夜爽爽日日日日| 久久人人爽人人爽人人片亚洲 | 亚洲欧美综合图区| 国产精品中文| 国产一级特黄a大片免费| 一区二区三区欧美| 国产精品一区在线看| 91嫩草免费看| 奇米影视在线99精品| 久久精品久久精品久久|