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

命令行:你的至交好友

系統
命令行是很重要的工具,也往往是初學者最大的瓶頸。怎樣用好命令行呢?本文總結了一些命令行的使用命令和技巧,希望對你有所幫助。

   命令行既可以成為你的至交好友,又可能成為你最大的敵人。它關鍵取決于你怎樣用它,以及用它來做什么。如果你還是像大部分人一樣畏懼使用命令行界面,那么這篇文章定會讓你受益匪淺。

  命令行界面


  是的,它是在黑色屏幕上的白色(或者綠色)的顯示區域,是神秘的文字流和奇怪的命令執行的地方。我知道很多大師級的程序員從來不使用命令行界面;然而,我也知道一些初級用戶用命令行來做所有的事而不是用圖形界面。他們控制應用程序去瀏覽網頁和文件系統,查收郵件,查看圖片和編輯文字。他們甚至看youtyube視頻和查看PDF文件都不使用圖形界面!

  最好的工作流程是取決于個人的。有些人傾向于圖形界面,其他人則鐘愛于命令行。

  術語


  剛剛接觸Unix或者Linux的人在面對諸如終端,控制臺和Shell時是比較困惑的。

  從用戶的角度來看,它們之間似乎是沒有太大區別的,但事實上,用戶是使用控制臺來連接終端來查看運行在計算機上的腳本。

  在過去的時候,這三者是獨立的硬件。控制臺無非是一個顯示器和一個鍵盤;它沒有計算能力。它通過一個串行接口去連接終端,應用最廣泛的是RS-232接口。

  終端就像大型主機的界面。它一般具有計算、網絡通信或進行其他特殊連接,如與大型主機連接的能力。終端也提供了對系統的管理者權限,這也是它為什么總是被關在小黑屋的原因。被雇用者使用連接到這些終端的控制臺進行工作,但是卻無法獲得大型主機的管理者權限。控制臺與終端最終合并為一個單獨的設備,最好的例子的就是現代linux發行版中仿真的虛擬機終端。

  Shell就是一個可以讀取用戶輸入,然后在屏幕輸出結果的程序。一個Shell可以是基于字符的(像CLI),或者是基于圖形的(像Windows的GUI)。今天,Shell已經不僅僅是用戶與系統的接口,他還肩負著管理進程,窗口,應用程序,命令,以及系統的其他方面。

  Shell解釋執行命令行中輸入的命令,用戶也可以將命令組合起來寫成一個腳本。現代的Shell擁有自己的腳本語言,這提供了執行復雜任務的能力。

  大多數現代的Linux發行版,如同Mac OSX一樣,使用一個Shell,BASH(譯注:默認的,想用什么自己換)。Solaris和OpenIndiana默認使用Korn Shell,一個BASH的變種。請注意這篇指南主要講的是BASH。#p#

讓我們說說BASH


  BASH 代表 Bourne Again Shell。它被作為 Bourne Shell 的新版本于1989年發布,之后成為了 Unix 系統的默認 Shell。它由斯蒂芬·伯恩(Stephen Bourne)編寫,用以取代 Thompson Shell。老版的 Bourne Shell 至今仍工作在一些 Unix 系統中。通常你可以用 /bin/sh 找到它。總之,盡管 Bourne Shell 在新的 Linux 發行版中 已經為 BASH 取代,/bin/sh 和 /bin/bash 都能被 BASH 運行。

  BASH的提示符


  你永遠都會碰到BASH的提示符。它是一個貫穿BASH及其歷史的東西。如果篇幅允許,我們可以用所有篇幅講講如何按自己的希望配置BASH的提示符。但是,我們只會在這個指南中提到一些基本的東西。

  csaba@csaba-pc ~/Personal/Programming/NetTuts$

  我的BASH提示符就像上面那個樣子。 第一個詞csaba是我的用戶名,后接@和我的主機名稱,最后是當前的文件夾。~這個字符代表了用戶文件夾,對于我來說是/home/csaba。整行以$結尾,在$后面輸入的東西是我想Shell執行的命令。

  當然,這僅僅是一個簡單的例子。你可以放更多的東西進提示符中。來看看更多的例子吧。

  PS1,PS2,PS3和PS4是BASH的特殊變量,它們控制著不同類型的提示符(例如PS2是一般使用于命令行里較長命令的換行提示信息)。我們在這篇指南中只用到PS1。你可以用下面的命令查看你的PS1變量。

  csaba@csaba-pc ~/Personal/Programming/NetTuts $ echo $PS1
  \[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\]

  輸入命令echo $PS1,然后你就看見了我的PS1變量。在BASH中,我們將$到變量名稱前就可以得到這個變量的內容。這個echo命令僅僅會輸出它接到的參數。我們給echo的參數是變量的值,所以它會輸出這個變量的值。

  輸出代表著一種格式。\[\033[01;32m\]表示綠色,\u表示當前用戶的用戶名。\h表示主機名,\[\033[01;34m\]表示藍色,\w是當前目錄,\[\033[00m\]是將文字后續輸入的文字置為高亮灰色。通過下面的屏幕截圖你能夠更好地理解結果。

  以“\”開頭的特殊字符具有特別的意義。反之“\”標識后面的字符是一個轉義字符(比如顏色代碼)。下面的內容是從BASH官方手冊中引用的,你可以在BASH命令中使用的特殊字符的完整列表:

  1. \a- ASCII響鈴字符(07) 
  2. \d– 以“Weekday Month Date”格式顯示日期 
  3. \D{format}– format被傳遞給strftime(3)并把相應的結果插入到提示字符串中; 如果format為空則代表本地時間. 必須有在括號 
  4. \e– ASCII轉義字符(033) 
  5. \h– 到第一個 `.’前代表主機名稱 
  6. \H– 主機名稱 
  7. \j– 當前被Shell管理工作數 
  8. \l– Shell終端設置名稱的基本名 
  9. \n– 新行 
  10. \r– 回車 
  11. \s– Shell的名稱 
  12. \T– 12小時制當前時間,格式為 HH:MM:SS 
  13. \t– 24小時制當前時間,格式為 HH:MM:SS 
  14. \@– 12小時制當前時間,格式為am/pm 
  15. \A– 24小時制當前時間,格式為 HH:MM 
  16. \u– 當前用戶的名稱 
  17. \v– BASH版本 
  18. \V– BASH發行備注,版本號+補丁 
  19. \w– 當前工作目錄,其中$HOME被縮寫成"~"(使用PROMPT_DIRTRIM的值) 
  20. \W– 當前工作目錄的basename,$HOME被縮寫成"~" 
  21. \!– 命令的使用次數 
  22. \#– 命令號 
  23. \$– 命令提示符,如果UID是0則顯示為#,否則為$ 
  24. \nnn– 8進制數據nnn代表的字符 
  25. \\– 反斜杠 
  26. \[- 開始一個非打印字符序列,這個序列可以嵌入一個終端控制序列到提示中 
  27. \]– 非打印字符序列結束 

#p#

操作目錄和文件


  在命令行環境中,每個人都要做的一件事就是操作文件系統,創建,刪除,復制和移動文件系統對象,并且執行命令。這對你來說可能已經是家常便飯,然而,還是讓我們來看一眼:

  1. csaba@csaba-pc ~ $ mkdir ~/tmp/NetTuts 
  2. csaba@csaba-pc ~ $ cd ~/tmp/NetTuts/ 
  3. csaba@csaba-pc ~/tmp/NetTuts $ mkdir ./AnotherDir 
  4. csaba@csaba-pc ~/tmp/NetTuts $ mkdir ./SecondDir 
  5. csaba@csaba-pc ~/tmp/NetTuts $ touch ./SecondDir/aFile 
  6. csaba@csaba-pc ~/tmp/NetTuts $ touch ./SecondDir/AnotherFile 
  7. csaba@csaba-pc ~/tmp/NetTuts $ cd ./SecondDir/ 
  8. csaba@csaba-pc ~/tmp/NetTuts/SecondDir $ pushd ~/tmp/NetTuts 
  9. ~/tmp/NetTuts ~/tmp/NetTuts/SecondDir 
  10. csaba@csaba-pc ~/tmp/NetTuts $ ls -al 
  11. total 16 
  12. drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 . 
  13. drwx------ 7 csaba csaba 4096 Feb 19 21:09 .. 
  14. drwxr-xr-x 2 csaba csaba 4096 Feb 19 21:09 AnotherDir 
  15. drwxr-xr-x 2 csaba csaba 4096 Feb 19 21:09 SecondDir 
  16. csaba@csaba-pc ~/tmp/NetTuts $ popd 
  17. ~/tmp/NetTuts/SecondDir 
  18. csaba@csaba-pc ~/tmp/NetTuts/SecondDir $ ls -al 
  19. total 8 
  20. drwxr-xr-x 2 csaba csaba 4096 Feb 19 21:09 . 
  21. drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 .. 
  22. -rw-r--r-- 1 csaba csaba    0 Feb 19 21:09 aFile 
  23. -rw-r--r-- 1 csaba csaba    0 Feb 19 21:09 AnotherFile 
  24. csaba@csaba-pc ~/tmp/NetTuts/SecondDir $ 

  逐句解釋:

  1. 在/home/csaba/tmp下創建一個名為NetTuts的目錄
  2. 將剛剛創建的目錄切換為當前目錄
  3. 在當前目錄下創建一個名為“AnotherDir”的目錄
  4. 在當前目錄下創建一個名為“SecondDir”的目錄
  5. 使用touch命令在“SecondDir”目錄下創建兩個空文件
  6. 切換當前目錄到SecondDir.
  7. 使用pushd命令切換目錄到~/tmp/NetTuts來把當前目錄存儲到堆棧之中
  8. 列出目錄~/tmp/NetTuts下的所有文件
  9. 使用popd命令來返回前一個目錄,這樣會從堆棧中獲取并且移除最頂層的目錄
  10. 再一次列出內容會看到我們上幾步所創建的兩個文件

  當然,對于命令行你們可以有個萬能文件管理器,稱之為Midnight Commander。要開始用的時候只需要執行它的命令就行。它也內置了文本編輯器(高亮代碼的那段)適合大部分語言,而且有智能縮進和其他的一些特性。它不完全是一個被夸大的編輯器,事實上,它是一個相當簡單的工具,特別適合簡單和快速編輯。你可以隨意的選擇任何文件然后按F4,或者你可以在編輯模式下直接打開一個文件。

  csaba@csaba-pc ~/tmp/NetTuts/SecondDir $ mcedit ./aFile

  輸入/輸出


  每個命令必須和命令行環境交互。命令需要輸入和提供輸出。

  • 標準輸入是命令讀取信息的來源。鍵盤是默認標準輸入,標準輸入經常被稱為“stdin”。
  • 標準輸出是命令的輸出會被發送到的地方。默認是當前控制臺,標準輸出通常被稱為“stdout”。
  • 標準錯誤是命令輸出錯誤的地方。默認當前控制臺,常被稱為"stderr"。

  到目前為止,我們可以定義簡單的狀態,來表示一個命令從鍵盤上讀取并輸出它的結果(包括好的和壞的)到屏幕上。

 在Unix(或類unix系統)中, 所有的東西都會被抽象成文件,你的鍵盤是文件,你的鼠標是文件,你的屏幕是文件,程序是文件, 文本是文件,等等。

  文件描述符是一個整形數字用于操作系統引用打開的文件, 所有的unix系統至少包含三個文件描述符。

  • 描述符 no. 0 – 標準輸入
  • 描述符 no. 1 – 標準輸出
  • 描述符 no. 2 – 標準錯誤輸出

重定向


  Unix系統有一個非常強大的特性:因為所有資源都是文件,你可以將所有資源引用和將其從一個位置重定向到另一個位置。重定向的操作符<表示標準輸入(stdin),>表示標準輸出(stdout)。所以,如果你需要一個命令從鍵盤中讀取信息,你可以進行如下操作:

  $ someCommand <

  但當要你的命令從一個文件中讀取內容你要怎么做呢?你只要重定向這個文件到它的標準輸入(stdin),如下:

  $ someCommand < /your/file.txt

  如果你要你的命令執行結果輸出到一個文件,你可以使用>操作符。例如我們已經知道如何將一個目錄中的文件列出:

  1. csaba@csaba-pc ~/tmp/NetTuts/SecondDir $ ls -al 
  2. total 8 
  3. drwxr-xr-x 2 csaba csaba 4096 Feb 19 21:09 . 
  4. drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 .. 
  5. -rw-r--r-- 1 csaba csaba    0 Feb 19 21:09 aFile 
  6. -rw-r--r-- 1 csaba csaba    0 Feb 19 21:09 AnotherFile 
  7. csaba@csaba-pc ~/tmp/NetTuts/SecondDir $ 

  你可以把使用如下命令將結果發送到一個文件:

  csaba@csaba-pc ~/tmp/NetTuts/SecondDir $ ls -al > ./ThirdFile

  ThirdFile的內容如下:

  1. total 12 
  2. drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 . 
  3. drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 .. 
  4. -rw-r--r-- 1 csaba csaba   12 Feb 19 21:19 aFile 
  5. -rw-r--r-- 1 csaba csaba    0 Feb 19 21:09 AnotherFile 
  6. -rw-r--r-- 1 csaba csaba    0 Feb 24 00:06 ThirdFile 

  比方說,我們要導航到上級目錄,列出它所有的文件,并且使用一個命令將這個列表添加至一個已經存在的文件中。操作符>重定向輸出到一個文件并且覆蓋該文件;所以我們不能使用它。不過,我們可以使用>>(兩個>)來添加新數據到一個已經存在的文件。

  1. csaba@csaba-pc ~/tmp/NetTuts/SecondDir $ cd .. 
  2. csaba@csaba-pc ~/tmp/NetTuts $ ls -al 
  3. total 16 
  4. drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 . 
  5. drwx------ 7 csaba csaba 4096 Feb 19 21:09 .. 
  6. drwxr-xr-x 2 csaba csaba 4096 Feb 19 21:09 AnotherDir 
  7. drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 SecondDir 
  8. csaba@csaba-pc ~/tmp/NetTuts $ ls -al >> ./SecondDir/ThirdFile 

  于是我們的文件內容就是這樣了:

  1. total 12 
  2. drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 . 
  3. drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 .. 
  4. -rw-r--r-- 1 csaba csaba   12 Feb 19 21:19 aFile 
  5. -rw-r--r-- 1 csaba csaba    0 Feb 19 21:09 AnotherFile 
  6. -rw-r--r-- 1 csaba csaba    0 Feb 24 00:06 ThirdFile 
  7. total 16 
  8. drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 . 
  9. drwx------ 7 csaba csaba 4096 Feb 19 21:09 .. 
  10. drwxr-xr-x 2 csaba csaba 4096 Feb 19 21:09 AnotherDir 
  11. drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 SecondDir 

#p#

輸入/輸出重定向


  我們可以綜合我們的知識,以不同的方向重定向標準錯誤(stderr),標準輸入(stdin)和標準輸出(stdout)。實際上,以下的命令功能相同:

  csaba@csaba-pc ~/tmp/NetTuts $ ls -al > ./SecondDir/ThirdFile
  csaba@csaba-pc ~/tmp/NetTuts $ ls -al 1> ./SecondDir/ThirdFile

  在第二個命令中,在重定向之前我們指定標準輸出的來源。請注意1與>之間沒有空格。實際上,如果兩者之間有空格,則1會作為ls命令的一個參數,并且>會自動重定向標準輸出。以下兩個表達功能相同,但和上面的那個功能不同。

  csaba@csaba-pc ~/tmp/NetTuts $ ls -al 1 > ./SecondDir/ThirdFile
  csaba@csaba-pc ~/tmp/NetTuts $ ls -al 1 1> ./SecondDir/ThirdFile

  當然,這些結果會出錯:"ls:不能訪問1:沒有那個文件或目錄” ——除非你真的有一個名字為1的目錄。這會讓我們驚訝下一步我們得到的:重定向錯誤。

  csaba@csaba-pc ~/tmp/NetTuts $ ls -al inexistenFilder > ./SecondDir/ThirdFile
  ls: cannot access inexistenFilder: No such file or directory
  csaba@csaba-pc ~/tmp/NetTuts $ ls -al inexistenFilder 2> ./SecondDir/ThirdFile

  如你所見,第一個命令在控制臺輸出標準輸出并重定向標準輸出到一個文件。第一個命令的結果是一個空文件和屏幕上的一條信息。然而,第二條命令重定向錯誤到我們的文件。其結果是如果在標準輸出上有任何輸出,則它們會顯示在屏幕上,并且錯誤信息會輸入到這個文件。#p#

  一個實際的I/0重導例子


  當你需要在命令行尋找一些文件時,你基本上只有兩個選擇。第一個就是選擇用本地命令。這些命令常常是伴隨著安裝各種Linux版本而已經安裝好的,當然不是每一個版本都安裝了。更新文件數據庫命令索引你的文件和定位,然后使用那個數據庫去發現你的文件。實際上他不是做一個實時的搜索,它只是簡單的在數據庫做索引。這就是為什么這個應用程序常常定期的做每日更新文件數據庫。

  我們來用這個命令演示一個實時搜索,它比本地命令搜索的更精確,但是很顯然更慢一些。現在讓我們用這個命令來演示一段:

  1. csaba@csaba-pc ~/tmp/NetTuts $ ls -al 
  2. total 16 
  3. drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 . 
  4. drwx------ 7 csaba csaba 4096 Feb 19 21:09 .. 
  5. drwxr-xr-x 2 csaba csaba 4096 Feb 19 21:09 AnotherDir 
  6. drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 SecondDir 
  7. csaba@csaba-pc ~/tmp/NetTuts $ ls -al ./SecondDir/ 
  8. total 16 
  9. drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 . 
  10. drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 .. 
  11. -rw-r--r-- 1 csaba csaba   12 Feb 19 21:19 aFile 
  12. -rw-r--r-- 1 csaba csaba    0 Feb 19 21:09 AnotherFile 
  13. -rw-r--r-- 1 csaba csaba   61 Feb 24 00:23 ThirdFile 
  14. csaba@csaba-pc ~/tmp/NetTuts $ find . -name ThirdFile 
  15. ./SecondDir/ThirdFile 

  我打印這兩個ls命令是為了讓你很方便的看明白目錄結構,第三個是find命令。它有著復雜的參數系統,在此我就不一一列舉了,但是以上的例子展示了find命令最常見的使用。第一個參數.是一個我們想去搜索的目錄。

  find命令的第二個參數是-name,緊接著是文件的名字。在-name參數中我們可以用?和*來擴大我們的搜索范圍:

  1. csaba@csaba-pc ~/tmp/NetTuts $ find . -name ?File 
  2. ./SecondDir/aFile 
  3. csaba@csaba-pc ~/tmp/NetTuts $ find . -name *File 
  4. ./SecondDir/aFile 
  5. ./SecondDir/AnotherFile 
  6. ./SecondDir/ThirdFile 

  ?代表一個單個字母,而*指的是任意的字母數量。

  接下來,我們將創建一個目錄同時使它被我們的用戶所不能讀。我們還沒有講解到權限,但是不用著急,很快我們將涉及那部分。現在試試下面的例子:

  1. csaba@csaba-pc ~/tmp/NetTuts $ mkdir ThirdDir 
  2. csaba@csaba-pc ~/tmp/NetTuts $ chmod 000 ThirdDir 
  3. csaba@csaba-pc ~/tmp/NetTuts $ find . -name *File 
  4. ./SecondDir/aFile 
  5. ./SecondDir/AnotherFile 
  6. ./SecondDir/ThirdFile 
  7. find: `./ThirdDir': Permission denied 

  在這個例子中,我希望你對這目錄沒有權限以便我可以展示一下find輸出的內容。它試著進入到所有的目錄中然后搜索所有匹配的文件。當它不能進入一個目錄,它會輸出一條信息。當你看到一兩條這樣的信息提示是很正常的哈,但是作為一個普通用戶去試著搜索root目錄下面的文件時。你將會獲取數百條錯誤信息提示而且可能只有一兩條搜索結果。你不想錯過搜索結果;于是乎你想要除去錯誤的信息提示。

  csaba@csaba-pc ~/tmp/NetTuts $ find . -name *File 2> /dev/null
  ./SecondDir/aFile
  ./SecondDir/AnotherFile
  ./SecondDir/ThirdFile

  我們重定向標準錯誤輸出到/dev/null里面。這樣做再好不過了。無論你向/dev/null扔進去什么東西,它都可以很簡單的使他消失。通常的做法是當你不想看見這些錯誤提示信息,你可以把信息發到那里。假如你更喜歡把結果存入一個文件中的話,你可以把錯誤提示信息傳送到/dev/null,然后可以用多道重定向:

  csaba@csaba-pc ~/tmp/NetTuts $ find . -name *File 2> /dev/null 1>./SecondDir/ThirdFile
  csaba@csaba-pc ~/tmp/NetTuts $

  正如你看見的,這個命令在屏幕上面什么也沒有輸出,因為錯誤信息和標準輸出被傳送到了不同的文件中。但是如果我們想在同一個文件中看到兩種信息的輸出,怎么辦呢?沒問題,你可以把標準錯誤輸出傳送到標準輸出然后把標準輸出傳送到文件中:

  find . -name *File 1>./SecondDir/ThirdFile 2>&1

  重定向被解釋執行是從右到左的。首先開始執行的是 2>&1,這里的意思是重定向標準錯誤輸出到標準輸出。然后是1>./SecondDir/ThirdFile,這里的意思是重定向標準輸出(此時已經有錯誤信息在文件里面了)到指定的文件。#p#

  再來談一下用戶權限


  本文中所談及的所有權限問題都僅限于 *nix 操作系統。我對最新的 Windows 版本并不熟悉,但微軟在其文件系統中使用了一種不同的權限概念。

用戶和組

  同一臺電腦中可以又數個不同的用戶。事實上,很多應用注冊自己的特殊用戶,并在一個受限的環境里運行程序。每個用戶以名稱和/或 ID(UID) 區分。

 你可以在 /etc/passwd 文件中找到現有用戶的列表。

  組的列表存放在 /etc/group 文件中。一個組擁有一個名字和一個 ID (GID),并擁有另個或數個用戶。每個用戶通常還擁有一個與之對應的組,名稱相同。

  擁有者

  文件有其擁有者,默認情況,創建那個文件的用戶就是它的擁有者。文件夾僅僅是一些特殊的文件,它們跟普通文件遵從一樣的規則。

  1. csaba@csaba-pc ~/tmp/NetTuts $ ls -al 
  2. total 20 
  3. drwxr-xr-x 5 csaba csaba 4096 Feb 24 00:44 . 
  4. drwx------ 7 csaba csaba 4096 Feb 19 21:09 .. 
  5. drwxr-xr-x 2 csaba csaba 4096 Feb 19 21:09 AnotherDir 
  6. drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 SecondDir 
  7. d--------- 2 csaba csaba 4096 Feb 24 00:44 ThirdDir<span></span> 

  在ls -al命令中,每一個文件的擁有者會像“用戶 組”(在這個例子中是“csaba csaba”)輸出。我們可以用下面的方法改變AnotherDir這個文件夾的擁有者:

  1. csaba@csaba-pc ~/tmp/NetTuts $ chown csaba:users ./AnotherDir/ 
  2. csaba@csaba-pc ~/tmp/NetTuts $ ls -al 
  3. total 20 
  4. drwxr-xr-x 5 csaba csaba 4096 Feb 24 00:44 . 
  5. drwx------ 7 csaba csaba 4096 Feb 19 21:09 .. 
  6. drwxr-xr-x 2 csaba users 4096 Feb 19 21:09 AnotherDir 
  7. drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 SecondDir 
  8. d--------- 2 csaba csaba 4096 Feb 24 00:44 ThirdDir 

  chown命令用途是改變擁有者(CHange OWNer)。它有一個簡單的用法:chown 用戶:組 文件路徑。一個用戶只能將“組”這個位置改成一個他所在的組。一個普通用戶不能更改他無權讀取的文件的擁有者。當然,擁有管理員權限的用戶,如“root”,可以把任意文件的擁有者改成任意用戶和組。

  這里有三種關于文件的權限:

  • r – 讀取
  • w – 寫入
  • x – 執行

  請注意: 如果一個文件夾內的文件可以被列出,這個文件夾本身擁有可執行的權限(x)。

  看看前面的例子,每一個文件系統的對象的權限在輸出的開頭(那些rwx字符)。每個標志位可以是”被設置“(那些有字母的位置),或者是“未設置”(用一個”-“標識,代表沒有這個權限)。

  這三種權限被包含于三個組, 即每個組都有這三種權限:

  • 用戶 – 對擁有者的權限
  • 組 – 對這個文件所在組的成員的權限
  • 其他人 – 對其他想要讀取這個文件或文件夾的用戶的權限

  這個叫做ThirdDir的文件夾沒有任何標志位,所以它的擁有者也不能讀取它:

  chown: changing ownership of ‘./AnotherDir/’: Operation not permitted
  csaba@csaba-pc ~/tmp/NetTuts $ ls -al ./ThirdDir/*
  ls: cannot access ./ThirdDir/*: Permission denied

  但是擁有者擁有改變它的權限的權力:

  csaba@csaba-pc ~/tmp/NetTuts $ chmod +rwx ./ThirdDir/
  csaba@csaba-pc ~/tmp/NetTuts $ ls -al ./ThirdDir
  total 8
  drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:44 .
  drwxr-xr-x 5 csaba csaba 4096 Feb 24 00:44 ..
  csaba@csaba-pc ~/tmp/NetTuts $ ls -al
  total 20
  drwxr-xr-x 5 csaba csaba 4096 Feb 24 00:44 .
  drwx------ 7 csaba csaba 4096 Feb 19 21:09 ..
  drwxr-xr-x 2 csaba users 4096 Feb 19 21:09 AnotherDir
  drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 SecondDir
  drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:44 ThirdDir

  chmod命令可以更改一個文件系統對象的權限,,它的用法是:chmod +/-權限 文件路徑。使用+意味著你將給這個文件一個權限,-意味著去掉一個權限。你可以使用任意權限的組合。上個例子,我們給ThirdDir加上讀取,寫入,和可執行的權限。

  請注意: 用這個方式添加的讀寫和可執行權限,會作用于擁有者,組,和其他人。但是寫入權限只會作用于當前的用戶。

  csaba@csaba-pc ~/tmp/NetTuts $ chmod +r-w ./ThirdDir/
  csaba@csaba-pc ~/tmp/NetTuts $ ls -al
  total 20
  drwxr-xr-x 5 csaba csaba 4096 Feb 24 00:44 .
  drwx------ 7 csaba csaba 4096 Feb 19 21:09 ..
  drwxr-xr-x 2 csaba users 4096 Feb 19 21:09 AnotherDir
  drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 SecondDir
  dr-xr-xr-x 2 csaba csaba 4096 Feb 24 00:44 ThirdDir

  第二個例子中,我們選擇性的加上讀取的權限,去掉了寫入的權限,沒有改動可執行權限。

  但是有時,你需要使用二進制的表示。chmod命令允許你使用10進制表示的二進制數據來更改權限。

  rwx: 每一個bit都設置成1: 111. 十進制的7.
  rw-: 由110代表. 十進制 6.
  r-x: 由101代表. 十進制 5.
  r--: 100. 十進制 4.
  -wx: 011. 十進制 3.
  -w-: 010. 十進制 2.
  --x: 001. 十進制 1.
  ---: 000. 十進制 0.

  chmod命令可以接受一個由0-7數字組成的字符串。每個數字由:用戶,組,其他人,的順序表示了特定的權限。

  csaba@csaba-pc ~/tmp/NetTuts $ chmod 765 ./ThirdDir/
  csaba@csaba-pc ~/tmp/NetTuts $ ls -al
  total 20
  drwxr-xr-x 5 csaba csaba 4096 Feb 24 00:44 .
  drwx------ 7 csaba csaba 4096 Feb 19 21:09 ..
  drwxr-xr-x 2 csaba users 4096 Feb 19 21:09 AnotherDir
  drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 SecondDir
  drwxrw-r-x 2 csaba csaba 4096 Feb 24 00:44 ThirdDir

  這個命令設置了讀取,寫入,可執行給擁有者,讀取,寫入,不可執行給組,讀取,可執行,還有不可寫入給其他人。#p#

  Cat,Sed,Pipe


  下頁是一些非常有用的命令。

  Cat

  這個命令使用你能讀出文件的內容。只要簡單地提供一個文件名作為參數,之后它會輸出這個文件的內容到標準輸出(stdout)。

  csaba@csaba-pc ~/tmp/NetTuts $ cat ./SecondDir/ThirdFile
  ./SecondDir/aFile
  ./SecondDir/AnotherFile
  ./SecondDir/ThirdFile
  find: `./ThirdDir': Permission denied

Grep

  Grep查找一個模式并輸出相匹配的行。你可以通過第三個參數指定要查找的文件:

  csaba@csaba-pc ~/tmp/NetTuts $ grep "AnotherFile" ./SecondDir/ThirdFile
  ./SecondDir/AnotherFile

  加入--color選項,可以在結果行高亮匹配的內容。

  Pipe 管道

  管道使用 | 這個字符表示; 它接受一個命令的輸出并將其傳給|后的命令. 這聽起來好像挺簡單的.但確是復雜的, 那一個符號| 實現起來卻用了幾萬行代碼,  你可以這樣用:

  csaba@csaba-pc ~/tmp/NetTuts $ cat ./SecondDir/ThirdFile | grep "Another"
  ./SecondDir/AnotherFile

  這實際上運行cat命令, 而不是輸出結果發送到標準輸出, 管道將標準輸出作為標準輸入傳給grep命令.grep命令讀取輸入的數據, 并搜索字條串"Another", 結果和我們先前的例子一樣

  The History of UNIX(unix的歷史):  這是一個很有年代的視頻,來自AT&T, 這是一個非常不錯的視頻.如果你只對PIPES感覺趣, 可以快進到4:56

  Sed

  sed 命令可以讓你在輸出中執行一些正則表達式操作。 sed可以用在標準輸出或者管道命令中,它會輸出結果到標準輸出。

  csaba@csaba-pc ~/tmp/NetTuts $ cat ./SecondDir/ThirdFile | grep "Another" | sed -e "s/AnotherFile/MyFile/"
  ./SecondDir/MyFile

  這個例子添加了sed命令。有了sed的幫助,我們可以在標準輸出中將“AnotherFile” 替換為“MyFile”,是不是很酷?

  sed命令有很多選項,使用-e 參數指定要執行的正則表達式。如果你對正則表達式不熟悉的話,查看下面的手冊: Introducing “Regular Expressions: Up and Running” or Regular Expressions Cheat Sheets.#p#

  定義你自己的命令行


  假設你需要經常執行下面的連接ssh的命令:

  csaba@csaba-pc ~/tmp/NetTuts $ ssh my_username@complicated.server.address.com -p 8743

  你可以通過創建一個自定義的命令saysshcon來縮短這個命令。你可以使用alias來自定義命令。Alias語法類似這樣的形式:alias shorthand='original_command'。

  csaba@csaba-pc ~/tmp/NetTuts $ alias sshcon='ssh my_username@complicated.server.address.com -p 8743'

  但是alias是臨時的,當你退出登錄之后就會失效。一個可能的解決辦法是編輯你的.bashrc文件。

  .bashrc和.bash.profile文件

  .bashrc文件一般位于你的用戶目錄。這個文件可以讓你指定任何你想在新開一個控制臺或者登錄一個Shell時想要執行的命令。讓我們把上面提到的sshcon加到里面。

  csaba@csaba-pc ~/tmp/NetTuts $ mcedit ~/.bashrc

  把你的代碼加到文件末尾,按F2保存文件,然后按ESC兩次關閉文件。按CTRL+D退出Shell,然后打開另一個Shell,試試新添加的alias。

  一些操作系統, 像Solaris, 可能沒有~/.bashrc文件。遇到這種情況,你可以編輯~/.bash_profile來實現這個操作。事實上,任何系統上都有~/.bash_profile。

  隱藏文件: 以一個點 (.) 開頭的文件表明這個文件是隱藏文件。

  些許網絡命令

  讓我們來玩些許網絡命令。

  Ping

  ping命令是一種用來檢測一個服務器在線并可訪問的一種簡單方法。

  csaba@csaba-pc ~/tmp/NetTuts $ ping 8.8.8.8
  PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
  64 bytes from 8.8.8.8: icmp_seq=1 ttl=47 time=44.0 ms
  64 bytes from 8.8.8.8: icmp_seq=2 ttl=47 time=65.6 ms
  ^C
  --- 8.8.8.8 ping statistics ---
  2 packets transmitted, 2 received, 0% packet loss, time 1000ms
  rtt min/avg/max/mdev = 44.081/54.871/65.661/10.790 ms
  csaba@csaba-pc ~/tmp/NetTuts $ ping inexistent.server
  ping: unknown host inexistent.server

  它的語言簡單:ping IP_address_or_name。如果服務器可訪問,你會看到詳細回復列表。如果不可訪問,會出現一個描述出錯信息的問題。

  Traceroute

  traceroute命令可以得出從你電腦到目標設備的路由。

  csaba@csaba-pc ~/tmp/NetTuts $ traceroute 8.8.8.8
  traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
  1  192.168.111.1 (192.168.111.1)  0.239 ms  0.322 ms  0.317 ms
  2  * * *
  3  95.77.39.65 (95.77.39.65)  45.754 ms  45.887 ms  46.024 ms
  4  ro-cj01a-rd4-xe-1-2-1-v1643.upcnet.ro (84.116.216.1)  83.121 ms ro-cj01a-rd4-xe-1-2-0-v1642.upcnet.ro (84.116.225.253)  83.289 ms ro-cj01a-rd4-xe-1-3-0-v1713.upcnet.ro (84.116.217.26)  83.119 ms
  5  84.116.217.93 (84.116.217.93)  83.153 ms 84.116.217.85 (84.116.217.85)  77.407 ms  77.350 ms
  6  84-116-131-53.aorta.net (84.116.131.53)  77.327 ms  53.442 ms  53.357 ms
  7  84.116.132.174 (84.116.132.174)  53.211 ms  48.923 ms  53.186 ms
  8  72.14.219.9 (72.14.219.9)  85.040 ms 72.14.214.29 (72.14.214.29)  67.289 ms  72.216 ms
  9  209.85.241.110 (209.85.241.110)  48.129 ms  47.389 ms 209.85.240.64 (209.85.240.64)  45.096 ms
  10  72.14.239.62 (72.14.239.62)  47.254 ms 72.14.236.68 (72.14.236.68)  51.770 ms 72.14.239.62 (72.14.239.62)  43.242 ms
  11  209.85.254.118 (209.85.254.118)  46.137 ms 209.85.254.116 (209.85.254.116)  52.165 ms 209.85.254.114 (209.85.254.114)  102.070 ms
  12  * * *
  13  google-public-dns-a.google.com (8.8.8.8)  47.471 ms  47.986 ms  43.645 ms

#p#

  路由表


  *nix和Windows系統都有路由命令。盡管它們在語法上不同,但是基本的功能都是一樣的。這個命令允許我們查看系統當前路由表,并在必要時添加或刪除靜態路由。

  csaba@csaba-pc ~/tmp/NetTuts $ route
  Kernel IP routing table
  Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  default         192.168.111.1   0.0.0.0         UG    0      0        0 eno1
  loopback        localhost       255.0.0.0       UG    0      0        0 lo
  192.168.111.0   *               255.255.255.0   U     1      0        0 eno1

  第一列是網絡連接或通訊的目的地址。“default”指的是沒有找到匹配的項或發送到本地的路由。Loopback是本地虛擬設備,它的IP地址是127.0.0.1。這個IP地址在所有操作系統中都存在并總是指向本地機器(沒有其它地址像127.0.0.1一樣的功能)

  第二列是連接用以到達目的所使用的網關。第一行顯示的是我的默認網關192.168.111.1。第二行是環回到達本地;第三行到達*,不需要網關用來訪問我們自身的網絡。

  第三個有趣的是最后一列:”Iface“。它指定用以同特定目的通信的接口。在我們的例子中,環回通信通過環回接口lo。其它的所有連接通過接口eno1。

  小貼士:如果你找不到route命令,可以試一下netstat -nr。它會產生相似的輸出。

  網絡配置

  如果你想要瞅一眼網絡配置,只需在命令行中鍵入 ifconfig。

  csaba@csaba-pc ~/tmp/NetTuts $ ifconfig
  eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  inet 192.168.111.10  netmask 255.255.255.0  broadcast 192.168.111.255
  inet6 fe80::4e72:b9ff:fef6:c9ff  prefixlen 64  scopeid 0x20<link>
  ether 4c:72:b9:f6:c9:ff  txqueuelen 1000  (Ethernet)
  RX packets 2935016  bytes 696255521 (664.0 MiB)
  RX errors 0  dropped 0  overruns 0  frame 0
  TX packets 5586410  bytes 6331639146 (5.8 GiB)
  TX errors 0  dropped 0 overruns 0  carrier 1  collisions 0
  device interrupt 17
  lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436
  inet 127.0.0.1  netmask 255.0.0.0
  inet6 ::1  prefixlen 128  scopeid 0x10<host>
  loop  txqueuelen 0  (Local Loopback)
  RX packets 7396  bytes 599533 (585.4 KiB)
  RX errors 0  dropped 0  overruns 0  frame 0
  TX packets 7396  bytes 599533 (585.4 KiB)
  TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  這里又很多信息。首先,我們擁有兩部分,每個網絡適配器一個。系統中,我的有線網卡名為 eno1。你可以看到如 e1000g0,eth0,en0 或是其它的名字。無線網絡設備則通常(但并非絕對)以“w“開頭。

  在名字的同一行中,則是接口的當前狀態。這里,接口狀態為 UP、broadcast、running等。 第二行則是 IPv4 IP 地址、子網掩碼和網關地址。第三行與第二行相似,但對象是 IPv6。第四行以 “ether” 開始,是網卡的 MAC 地址,后面的數行則顯示的是數據傳輸的統計信息。#p#

  當前網絡連接


  另一個非常有用的命令是netstat。它可以列出系統所有的網絡連接,以及相應的IP,接口,和系統所監聽的端口。以上是我的系統中,netstat命令所輸出的一部分。我去除了不相關的信息以使得其簡潔些。

  csaba@csaba-pc ~/tmp/NetTuts $ netstat -an
  Active Internet connections (servers and established)
  Proto Recv-Q Send-Q Local Address           Foreign Address         State
  tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
  tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
  tcp        0      0 0.0.0.0:59017           0.0.0.0:*               LISTEN
  tcp        0     40 192.168.111.10:59017    109.99.97.81:53681      ESTABLISHED
  tcp        0      0 192.168.111.10:51137    109.99.97.81:55175      TIME_WAIT
  tcp        0      0 192.168.111.10:34715    173.194.70.109:993      ESTABLISHED
  tcp        0      0 192.168.111.10:34722    173.194.70.109:993      ESTABLISHED
  tcp        0      1 192.168.111.10:42876    86.162.58.4:7055        LAST_ACK
  tcp6       0      0 :::111                  :::*                    LISTEN
  tcp6       0      0 :::4434                 :::*                    LISTEN
  tcp6       0      0 :::59017                :::*                    LISTEN

  每一行表示一個處于特定狀態的連接,在這個例子中,你可以看到這些連接處于監聽狀態(看第一行,端口22,我的ssh服務端),已連接狀態,等待狀態等等。

  最后的交代

  于是,你擁有了一些最常用的CLI命令!當然,這些命令的能力遠超我在本教程中的介紹。希望我的文章能夠為你揭開 CLI 神秘面紗的一角。感謝閱讀!

原文鏈接:The Command Line is Your Best Friend

責任編輯:黃丹 來源: oschina
相關推薦

2009-03-01 22:09:08

LinuxTerminal命令行終端

2016-07-18 14:27:43

操作系統Linux隱藏命令

2015-07-01 09:15:46

linuxQuora命令行

2020-09-07 08:32:45

命令行版斗地主電腦

2013-12-03 09:23:06

命令行網速

2014-06-17 10:02:58

Bash Getopt命令行

2020-04-26 15:38:28

Docker容器

2020-12-11 06:44:16

命令行工具開發

2020-12-10 16:16:08

工具代碼開發

2010-07-30 13:58:01

命令行GUI

2013-06-26 09:01:22

JVMJava

2010-10-13 13:20:04

命令行標志JVM

2013-06-26 11:23:40

JVM命令行JavaJVM

2018-03-29 08:30:48

Linux命令BASH

2011-01-18 19:11:26

Postfix命令行

2010-11-16 11:50:21

oracle命令行登錄

2023-06-25 12:00:53

2021-02-06 14:21:12

Linux 開發操作系統

2019-02-25 09:50:25

Linux命令行僵尸進程

2019-07-23 13:45:38

LinuxFedora權限
點贊
收藏

51CTO技術棧公眾號

天天综合网久久综合网| 亚洲男人在线天堂| 污污视频在线| 91女人视频在线观看| 日韩av手机在线| www.99re6| 欧美a大片欧美片| 欧美亚洲国产一区二区三区va | 亚洲r级在线观看| 久久露脸国语精品国产91| 欧美日韩伦理| 精品第一国产综合精品aⅴ| 97视频在线免费播放| 成人免费看片| 久久久久久亚洲综合影院红桃 | 99国产精品久久久久久久成人 | 热久久免费视频精品| 国产精品嫩草影院俄罗斯| 欧美理论电影在线精品| 7777女厕盗摄久久久| 国产精品亚洲二区在线观看| 日韩伦理av| 国产精品色一区二区三区| 国产高清自拍一区| 国产精品一区二区av白丝下载| 国产一区成人| 欧美黄色片免费观看| 又色又爽的视频| 啪啪亚洲精品| 亚洲精品99999| 久久久久亚洲av片无码v| 美女网站视频一区| 欧美日韩亚洲成人| 女人色极品影院| 91小视频xxxx网站在线| 国产精品欧美综合在线| 日韩.欧美.亚洲| 天堂网av2014| 国产精品一区二区久久精品爱涩 | 国产免费高清av| 喷水一区二区三区| 日本精品免费一区二区三区| 国产特黄大片aaaa毛片| 1000部精品久久久久久久久| 欧美另类极品videosbest最新版本 | 综合久久久久综合| 午夜免费电影一区在线观看| 国产精品毛片一区二区三区四区| wwww国产精品欧美| 久久一区二区精品| 欧洲亚洲精品视频| 久久久久久久电影| 日韩欧美亚洲v片| 国产在线视频网站| 国产色爱av资源综合区| 日本成人三级电影网站| 国产高清av在线| 欧美国产一区二区| 亚洲精品国产精品久久| 久久精品蜜桃| 国产精品日产欧美久久久久| 亚洲欧美日韩国产成人综合一二三区| 国产无套粉嫩白浆在线2022年| 久久久久久久久久久久久夜| 欧美在线一二三区| freemovies性欧美| 亚洲图片你懂的| 日本大胆人体视频| 91美女精品| 欧美午夜美女看片| av在线无限看| 91精品福利观看| 日韩欧美美女一区二区三区| 人妻av一区二区三区| www.亚洲一二| 亚洲精品午夜精品| 永久免费成人代码| 99九九热只有国产精品| 久久亚洲国产成人| 奇米影视第四色777| 另类国产ts人妖高潮视频| 国产精品xxxxx| 国产精品乱码久久久| 久草精品在线观看| 国产精品午夜av在线| 亚洲精品视频专区| 久久精品男人天堂av| 一区二区精品在线| 手机在线免费av| 色域天天综合网| 搡的我好爽在线观看免费视频| 国产精选久久| 日韩av在线网页| 欧美做爰啪啪xxxⅹ性| 亚洲性色视频| 国产免费一区视频观看免费 | 国产成人午夜精品影院观看视频| 久久综合九九| 国产激情在线观看| 黑人巨大精品欧美一区二区三区 | 国产精品丝袜在线| 国产九色porny| 久久夜夜久久| 亚洲黄页网在线观看| 狂野欧美性猛交| 国产深夜精品| 91视频国产精品| 男操女在线观看| 亚洲国产欧美一区二区三区丁香婷| 天天爽天天爽夜夜爽| 都市激情亚洲| 久久久精品免费| 日批视频免费在线观看| 成人一区二区三区视频在线观看| 视频一区二区精品| 涩涩视频在线免费看| 日韩一区二区在线看片| 国产18无套直看片| 亚洲少妇一区| 国产精品对白刺激久久久| 欧美私人网站| 在线欧美日韩国产| 毛茸茸多毛bbb毛多视频| 狠狠爱www人成狠狠爱综合网 | 91精品啪在线观看国产爱臀| 中文字幕最新精品| 久久久久亚洲视频| 久久嫩草精品久久久久| 欧日韩免费视频| 日韩亚洲精品在线观看| 日韩中文字幕免费| 国产精品第6页| 久久在线观看免费| 大陆极品少妇内射aaaaa| 亚洲开心激情| 欧美成人一二三| 一级日韩一级欧美| 国产精品免费人成网站| 男人舔女人下面高潮视频| 在线日韩一区| 日韩av电影免费观看高清| 姝姝窝人体www聚色窝| 亚洲成人资源网| 国产大学生视频| 在线精品亚洲| 好吊色欧美一区二区三区| 1区2区3区在线| 亚洲高清色综合| 日韩欧美性视频| www.一区二区| 无码aⅴ精品一区二区三区浪潮 | 久久免费午夜影院| 免费观看成人在线视频| 岳的好大精品一区二区三区| 国产大片精品免费永久看nba| 麻豆国产在线播放| 欧美系列日韩一区| 你懂得在线观看| 国产激情偷乱视频一区二区三区| 国产精品免费看久久久无码| 91精品短视频| 欧美自拍大量在线观看| 国产经典自拍视频在线观看| 欧美日韩专区在线| 国产67194| 成人精品视频一区| 欧美牲交a欧美牲交aⅴ免费真| 国产成人精品三级高清久久91| 国产成人精品免高潮在线观看| aaa在线观看| 7777精品伊人久久久大香线蕉超级流畅| 99热在线观看精品| 国产成人免费视频网站| 男人靠女人免费视频网站| 国产日韩欧美一区二区三区| 91精品久久久久久久久| 在线中文字幕-区二区三区四区| 亚洲成人在线网| 91麻豆精品在线| 亚洲蜜桃精久久久久久久| youjizz.com日本| 久久免费黄色| 欧美一级特黄aaaaaa在线看片| 久久影院资源站| 国产精品爽爽爽爽爽爽在线观看| www红色一片_亚洲成a人片在线观看_| 精品国内二区三区| 羞羞色院91蜜桃| 亚洲一区在线播放| 阿v天堂2014| 粉嫩蜜臀av国产精品网站| 妞干网在线免费视频| 我不卡神马影院| 免费久久99精品国产自| 成人97精品毛片免费看| 国产91精品高潮白浆喷水| 在线免费观看黄色av| 亚洲成人在线视频播放| 亚洲天堂免费av| 精品国产成人在线| 天天看天天摸天天操| 久久综合九色综合欧美98| 国产探花在线观看视频| 久久精品中文| 女人被男人躁得好爽免费视频| 国产亚洲一区二区三区啪| 不卡视频一区二区| 在线观看亚洲精品福利片| 热久久免费国产视频| 肉体视频在线| 久久九九精品99国产精品| 欧美视频综合| 精品国产一区二区三区忘忧草| 中国一级特黄视频| 欧美日韩一区二区免费视频| a级片在线观看免费| 国产日产亚洲精品系列| 国产+高潮+白浆+无码| 国产呦精品一区二区三区网站| 免费在线观看毛片网站| 影音先锋久久资源网| 国产福利片一区二区| 国产伦一区二区三区| 国内精品二区| xxxx日韩| 国产精品我不卡| 91成人精品在线| 亚洲影影院av| 国产激情一区| 成人午夜激情网| av成人在线观看| 国产精品久久久久77777| 午夜不卡影院| 91成人在线视频| 操人在线观看| 97精品国产97久久久久久春色| 色在线视频网| 欧美高清视频在线| 最新国产在线拍揄自揄视频| 久久久精品网站| 免费在线观看av网站| 日韩视频免费中文字幕| 日本激情视频在线观看| www.亚洲成人| 国产日产一区二区三区| 麻豆乱码国产一区二区三区| 精品黄色免费中文电影在线播放| www.xxxx精品| av网站在线免费看推荐| 欧美另类xxx| 超免费在线视频| 2019中文字幕全在线观看| 国内精彩免费自拍视频在线观看网址| 性色av一区二区三区红粉影视| 538在线精品| 国产成人福利视频| 99久久er| 亚洲影院高清在线| 国产精品色在线网站| 免费看成人av| 日本一区二区三区视频| 做爰高潮hd色即是空| 欧美激情日韩| 波多野结衣家庭教师在线播放| 久久久蜜桃一区二区人| 亚洲少妇久久久| 国产乱人伦偷精品视频免下载| 亚洲黄色小说在线观看| 94色蜜桃网一区二区三区| 精品人妻少妇嫩草av无码| 日本一区二区三区久久久久久久久不 | 国产又粗又猛视频免费| 日韩一区二区三| 视频午夜在线| 色老头一区二区三区| 亚洲综合影视| 538国产精品视频一区二区| 高清成人在线| 亚洲tv在线观看| 欧美sss在线视频| 亚洲欧美日本国产有色| 激情久久中文字幕| 冲田杏梨av在线| 国产高清久久久| 色一情一交一乱一区二区三区 | 狠狠久久综合| 国产精品二区在线观看| 国产中文字幕一区二区三区| 日本老太婆做爰视频| 免费在线亚洲欧美| 亚洲黄色片免费| 91视视频在线观看入口直接观看www | 亚洲人和日本人hd| 欧美日韩一区二区三区电影| 新狼窝色av性久久久久久| 亚洲免费在线播放视频| 久久综合给合久久狠狠狠97色69| 久久人妻无码aⅴ毛片a片app| 婷婷开心激情综合| 国产精品无码久久久久成人app| 日韩电影大片中文字幕| 国产网站在线免费观看| 国产成人精品av在线| 亚洲一区二区三区中文字幕在线观看 | 亚洲va国产va欧美va观看| 中文字幕日本视频| 亚洲国产高清福利视频| 国产视频一区二区| 国产精品69av| 女同一区二区三区| 国产成人亚洲综合无码| 美女视频黄 久久| 中文字幕在线观看网址| 亚洲永久免费视频| 一本色道久久综合精品婷婷| 国产视频欧美视频| 97在线视频免费观看完整版| 国产综合久久久久| 加勒比久久综合| 岳毛多又紧做起爽| av一区二区不卡| 欧美日韩激情在线观看| 777a∨成人精品桃花网| 午夜视频在线观看免费视频| 日韩美女视频免费在线观看| 久久97精品| 国产毛片久久久久久国产毛片| 国内精品免费在线观看| 综合 欧美 亚洲日本| 91国在线观看| 日韩精品123| 欧美专区第一页| 亚州精品视频| 日本成年人网址| 久久午夜老司机| 日韩人妻精品中文字幕| 精品视频在线播放色网色视频| 国产丝袜精品丝袜| av色综合网| 国产综合久久| 精人妻一区二区三区| 亚洲激情图片一区| 精品国产av 无码一区二区三区| 久久精品国产亚洲精品| 粉嫩av国产一区二区三区| 法国空姐在线观看免费| 国产一区二区免费在线| 中文字幕电影av| 日韩欧美一区在线| 波多野结衣在线观看| 狠狠色噜噜狠狠色综合久 | 一区二区三区在线免费视频| 性欧美8khd高清极品| 欧美激情小视频| 国产精品美女在线观看直播| 日韩在线视频在线观看| 91麻豆蜜桃一区二区三区| 成年人av网站| 色偷偷av亚洲男人的天堂| 97久久精品一区二区三区的观看方式 | 欧美成人一品| 中文字幕乱视频| 色系网站成人免费| 日本高清视频在线观看| 91成人理论电影| 一区二区三区导航| 欧美老女人性生活视频| 911精品产国品一二三产区| 污影院在线观看| 蜜桃传媒视频麻豆第一区免费观看| 久久一本综合频道| 欧美做爰啪啪xxxⅹ性| 欧美精品一区二区高清在线观看| 亚洲精品一区| 熟女熟妇伦久久影院毛片一区二区| 懂色一区二区三区免费观看| 特级毛片www| www欧美日韩| 91国内精品| 亚洲第一中文av| 亚洲一区在线观看免费观看电影高清| 五月婷婷久久久| 国产精品亚洲第一区| 激情久久一区| 在线观看免费小视频| 精品日韩欧美在线| 三上悠亚国产精品一区二区三区| 国产精品无码乱伦| av在线综合网| 国产精品久久久久久免费免熟| 91精品国产99久久久久久| 成人一区而且| 999精品免费视频| 欧美三级中文字幕| aa视频在线观看| 亚洲图片小说在线| 99精品国产91久久久久久| 11024精品一区二区三区日韩| 97激碰免费视频| 欧美精品一线|