亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux 文件和目錄管理常用命令(1)

系統 1848 0

文件和目錄管理涉及的命令比較多,在現存的各個版本的Linux系統中,各命令功能大體相同。

6.11.1  文件和目錄操作常用通配符      

在Linux文件系統中,可以使用通配符來匹配多個選擇。常用的通配符及其說明如表6.14所示。

表6.14  常用通配符及其說明

 通     配     符  

 說        明  

 *  

 用來代表文件中任意長度的任意字符  

 ?  

 用來代表文件中的任一個字符  

 […]  

 匹配任意一個在中括號中的字符,  

 中括號里可以是一個用破折號  

 格式表示的字母或數字范圍  

 前導字符串  {…}  后  

 繼字符串  

 大括號中的字符串逐一匹  

 配前導字符串和后繼字符串  


 例如當前目錄下存在cars 、cat、can、cannon、truck、bus和bike等幾個文件,要列出所有以字母"c"開頭的文件,可使用命令:

  1.  #touch  car  cats  can  cannon  truck  bus  bike  

  2.  #ls  c*  

  3.  cars can cannon 

列出所有以字母"b"開頭的文件名,命令行為:

  1.  #ls  b*  

  2.  bike bus 

列出所有第一個字母為"c",最后一個字母為"n"的文件,命令行為:

  1.  #ls  c*n  

  2.  can cannon 

列出包含字母"a"的所有文件,命令行為:

  1.  #ls  *a*  

  2.  cars cat can cannon 

列出當前目錄下的所有文件,命令行為:

  1.  #ls  *  

  2.  bike bus cars cat can cannon truck 

通配符"?"只能匹配任意一個字符。例如列出上例中所有第三個字母是"n"的文件,命令行為:

  1.  #ls  ??n*  

  2.  can cannon 

列出第一個字母是"b",第三個字母是"s"的所有文件,命令行為:

  1.  #ls  b?s*  

  2.  bus 

中括號表示一個匹配的字符集,例如[123456]與[1-6]都表示數字1、2、3、4、5和6。大寫字母A到D之間的任意一個字符可用[A-D]表示。多個集合之間可以用逗號分隔,例如[1-10,a-z,A-Z]表示數字1到10,小寫字母a到小寫字母z及大寫字母A到大寫字母Z。一個集合中若有前綴"!",則表示除了集合中包含的字符以外的所有字符組成的集合。如表示所有的輔音組成的字符集可寫成[!aeiou]。例如要顯示上例中所有以字母b 或c開頭的文件名,命令行為:

  1.  #ls  [b,c]*  

  2.  bike bus car cat can cannon 

又如列出所有以字母b或c開頭,以字母s或k 結尾的文件,命令行為:

  1.  #ls  [b,c]*[s,k]  

  2.  bus cars 

大括號是用來查找文件的一個常用方法,例如以長格式列出cars、cans和cats文件的信息,可以使用命令:

  1.  #ls  -l  c{ar,an,at}s 

 

6.11.2  ls或dir命令:列出當前目錄的內容      

ls(list的縮寫)命令可以列出當前目錄的內容。dir命令是ls命令的一個別名,也是directory的縮寫。通常列出的文件會以不同的顏色進行顯示,不同的顏色代表不同的文件類型,表6.15列出了文件類型與顏色的對應關系。

表6.15  文件類型與顏色的對應關系

 文件類型  

 顏        色  

 目錄  

 深藍色  

 一般文件  

 淺灰色  

 執行文件  

 綠色  

 圖形文件  

 紫色  

 鏈接文件  

 淺藍色  

 壓縮文件  

 紅色  

 FIFO  文件(命名管道)  

 棕色  

 設備文件  

 黃色  


 ls還會對特定類型的文件用符號進行標識,表6.16列出了常用的標識符號及其說明。

表6.16  特定文件類型標識符及其說明

 符        號  

 說        明  

 .  

 表示隱藏文件  

 /   

 表示一個目錄名  

 *   

 表示一個可執行文件  

 @  

 表示一個符號鏈接文件  

 |    

 表示管道文件  

 =  

 表示  socket  文件  


 ls命令的格式如下:

  1.  ls [選項]  目錄或文件名 

其中各選項意義如下。

-a:列出指定目錄下所有文件和子目錄的信息(包括隱含文件)。

-A:同-a,但不列出. 和..。

-b:當文件名中有不可顯示的字符時,將顯示該字符的八進制數字。

-c:按文件的最后修改時間排序。

-C:分成多列顯示。

-d:顯示目錄名而不是顯示目錄下的內容,一般與-l連用。

-f:在列出的文件名后加上符號來區別不同類型。

-R:遞歸地顯示指定目錄的各級子目錄中的文件。

-s:給出每個目錄項所用的塊數,包括間接塊。

-t:按最后修改時間排序(新的在前,舊的在后)。

-l:以長格式顯示文件的詳細信息,包括文件的類型與權限、鏈接數、文件所有者、文件所有者所屬的組、文件大小、最近修改時間及文件名,詳情見圖6.4。

下面以不同的格式顯示目錄的內容:

  1.  # ls            //以縮略格式顯示目錄內容  

  2.  cal_txt      finger_txt   id_txt    newgrp_txt             
     suple_txt   who.txt  

  3.  finger2_txt  groups_txt   last_txt  suple3_txt            
     suple_txt~  w.txt  

  4.  finger3_txt  groups_txt2  ln        suple3_txt~  w  

  5.  # ls  -l        //以長格式顯示目錄內容,包括權限、          
     用戶名、修改時間等  

  6.  總計 224  

  7.  -rw-r--r-- 1 root root  2163 07-24 13:00 cal_txt           

  8.  -rw-r--r-- 1 root root   212 07-23 06:37 finger2_txt  

  9.  -rw-r--r-- 1 root root     0 07-23 06:39 finger3_txt  

  10.  -rw-r--r-- 1 root root   248 07-23 06:31 finger_txt  

  11.  -rw-r--r-- 1 root root    35 07-23 04:22 groups_txt  

  12.  -rw-r--r-- 1 root bin    140 07-23 04:32 groups_txt2  

  13.  -rw-r--r-- 1 root root   144 07-23 04:11 id_txt  

  14.  -rw-r--r-- 1 root root  1655 07-22 19:19 last_txt  

  15.  drwxr-xr-x 5 root root  4096 07-26 09:42 ln  

  16.  -rw-r--r-- 1 root bin    143 07-23 04:24 newgrp_txt  

  17.  -rw-r--r-- 1 root root 25098 07-26 19:15 suple3_txt  

  18.  -rw-r--r-- 1 root root 24031 07-26 16:00 suple3_txt~  

  19.  -rw-r--r-- 1 root root 25198 07-24 20:16 suple_txt  

  20.  -rw-r--r-- 1 root root 24827 07-24 20:06 suple_txt~  

  21.  -rw-r--r-- 2 root root   196 07-23 06:48 w  

  22.  -rw-r--r-- 1 root root    46 07-23 06:48 who.txt  

  23.  -rw-r--r-- 2 root root   196 07-23 06:48 w.txt  

  24.  # ls -s         //顯示所用的塊數  

  25.  總計 224  

  26.   8 cal_txt       8 groups_txt    8 ln                     
     32 suple_txt    8 w.txt  

  27.   8 finger2_txt   8 groups_txt2   8 newgrp_txt            
     32 suple_txt~  

  28.   4 finger3_txt   8 id_txt       32 suple3_txt    8 w  

  29.   8 finger_txt    8 last_txt     28 suple3_txt~   8 who.txt 

選項可以組合使用。例如,如果需要列出當前目錄的所有內容(包括那些以"."開頭的隱含文件),并以"冗余格式"在屏幕上輸出文件的詳細信息,可以使用選項"-al"。以冗余格式顯示/root目錄下的所有文件,可以使用命令:

  1.  # ls  -al  /root  

  2.  drwxr-x--- 18 root root  4096 07-26 16:00 .             
     //當前目錄  

  3.  drwxr-xr-x 24 root root  4096 07-25 05:43 ..             
     //父目錄  

  4.  -rw-------  1 root root   997 07-15 20:58           
     anaconda-ks.cfg       //普通文件  

  5.  -rw-------  1 root root  2827 07-24 21:32           
     .bash_history         //隱藏文件  

  6.  -rw-r--r--  1 root root    24 2006-07-13           
     .bash_logout           //隱藏文件  

  7.  …  … 

其中文件名為"."表示當前目錄,對應行列出了當前目錄的詳細信息。文件名為".."表示當前目錄的上一級目錄,即父目錄,對應行列出了父目錄的詳細信息。文件名前有"."符號的文件是隱藏文件,只有使用了"-a"參數才會顯示出來。

6.11.3  cd命令:更改當前目錄      

cd(Chage Directory)命令用于更改當前目錄,表6.17列出了常用的cd命令與運行說明。

表6.17  cd命令與運行說明

 命      令  

 說        明  

 cd  

 切換到當前用戶的主目錄  

 cd ..  

 切換到當前目錄的上一層目錄,例  

 如當前目錄為  /home/student  ,使用該  

 命令可以將當前目錄移到  /home  

 cd ../..  

 切換到當前目錄的上二層目錄,例如  

 當前目錄為  /home/student/student1  ,使  

 用該命令可以將當前目錄移動到  /home  

 cd   ~  

 切換當前目錄為當前用戶的主目錄,  

 適用于任何用戶  

 cd /  

 切換當前目錄到根目錄,即返回到  /  


 注意:在Linux中,引用目錄名、計算機名或域名時使用正斜杠"/",而在Windows中需使用反斜杠"\"。

例如當前系統中存在目錄結構如圖6.9所示,其中用戶當前目錄為/home/student。

 張軍博客 
圖6.9  目錄結構圖

若改變當前目錄為/home/director,可以使用相對路徑,命令如下:      

  1.  #pwd  

  2.  /home/student  

  3.  #cd ../director  

  4.  #pwd  

  5.  /home/director 

也可以使用絕對路徑切換到/home/director,命令如下:

  1.  #pwd  

  2.  /home/student  

  3.  #cd /home/director  

  4.  #pwd  

  5.  /home/director 

將當前目錄由/home/student切換為/home/student/student1,由于student1目錄位于student目錄下,可以采用相對路徑:

  1.  #pwd  

  2.  /home/student  

  3.  #cd student1  

  4.  #pwd  

  5.  /home/student/student1 

也可以采用絕對路徑,命令如下:

  1.  #pwd  

  2.  /home/student  

  3.  #cd /home/student/student1  

  4.  #pwd  

  5.  /home/student/student1 

從student1目錄返回根目錄,可以使用命令:

  1.  #pwd  

  2.  /home/student/student1  

  3.  #cd /  

  4.   #pwd  

  5.  / 

也可以使用相對路徑,命令行為:

  1.  #pwd  

  2.  /home/student/student1  

  3.  #cd ../../..  

  4.  #pwd  

  5.  / 

 

6.11.4  cp 命令:復制目錄或文件      

cp命令用于實現文件或目錄的復制,與DOS下的copy命令相似。cp命令格式如下:

cp  [選項]   源文件或目錄  目標文件或目錄 

其中各可用選項意義如下。

-a:常在復制目錄時使用。該選項保留鏈接、文件屬性,并遞歸地復制目錄。

-f:如果目標文件或目錄已存在,就覆蓋它,并且不做提示。

-i:與-f選項正好相反,在覆蓋已有文件時,會讓用戶輸入"Y"來確認。

-r:若給出的源是一個目錄,那么cp 將遞歸復制該目錄下所有的子目錄和文件,不過這要求目標也是一個目錄名。

常用的cp命令行組合與運行結果見表6.18。

表6.18  cp命令格式與運行結果

 命令格式  

 運行結果  

 cp    文件  1        文件  2  

 復制源文件  1  的內容到目標  

 文件  2  上,目標文件有一個新  

 的創建日期和節點索引號  

 cp    多個文件  

 (文件名之間用  

 空格分隔)目錄  1  

 復制多個文件到目錄  1  中  

 cp  -f    文件  1    文件  2  

 如果已有一個文件  2  存在,  

 該命令不顯示任何提示就用  

 文件  1  覆蓋文件  2  

 cp  -i    文件  1    文件  2  

 如果已有一個文件  2  存在,該  

 命令在覆蓋文件  2  之前會給出提示  

 cp  -p    目錄  1    目錄  2  

 復制目錄  1  的內容到目錄  2  ,如  

 果目錄  1  下還有子目錄,則一并進行復制  

 cp  -u    文件  1    文件  2     

 如                  果文件                    2  已存在,但文件  1  比  

 文件  2  新,則不顯示任何提示就覆蓋文件  2  


 例如把a.txt 和b.txt文件復制到/home/teacher目錄中,命令行如下:

  1.  #cp  a.txt  b.txt  /home/teacher 

cp命令可以在同一目錄下,換名復制一個文件,源文件保持不變。例如將當前目錄下的a.txt文件復制一份且取名為b.txt,放在當前目錄下,命令行為:

  1.  #cp  a.txt  b.txt 

若源文件是普通文件,則直接復制到目標文件;若是目錄,需要使用"-r"選項才能將整個目錄復制到目標位置。例如將/home/teacher目錄下的所有內容復制到/home/student目錄下,命令行為:

  1.  #cp  -r  /home/teacher /home/student 

 

 

6.11.5  rm 命令:刪除目錄或文件      

rm命令用于刪除文件或目錄,可刪除一個目錄中的一個或多個文件或目錄,也可刪除某個目錄及其下面的所有文件和子目錄。對于鏈接文件則只刪除鏈接,原文件保持不變。rm命令格式如下:

  1.  rm  [選項]  文件… 

其中各可用選項意義如下。

-f:在刪除過程中不給任何指示,直接刪除。

-r:將參數中列出的全部目錄和子目錄都遞歸地刪除。

-i:與-f選項相反,交互式刪除,在刪除每個文件時都給出提示。

刪除文件可以直接使用rm命令,若刪除目錄則必須配合選項"-r",例如:

  1.  # rm  pp.c  

  2.  rm:是否刪除 一般文件 "pp.c"? y  

  3.  # rm  homework  

  4.  rm: 無法刪除目錄"homework": 是一個目錄  

  5.  # rm  -r  homework  

  6.  rm:是否刪除 目錄 "homework"? y 

例如,刪除當前目錄下的所有文件及目錄,命令行為:

  1.  # rm  -r  * 

文件一旦通過rm命令刪除,則無法恢復,所以必須格外小心地使用該命令。      

6.11.6  mkdir命令:創建目錄      

mkdir命令用于創建目錄。mkdir命令格式為:

  1.  mkdir [選項] 目錄名 

各可用選項意義如下。

-m數字:設置新建目錄的權限,權限用數字表示。

-p:如果目錄名的路徑中包含著不存在的子目錄,那么就逐一地建立,直到最后的子目錄為止。

創建目錄時,如果目錄名前沒有指定目錄的路徑,那么就表示在當前目錄下創建;如果有路徑名,則在指定的路徑下建立。新建的子目錄必須不與已經存在的文件名或目錄名重名。例如:

  1.  # pwd                               //在當前目錄下創建子目錄zhang  

  2.  /home/teacher1  

  3.  # ls  

  4.  # mkdir zhang  

  5.  # ls  

  6.  zhang  

  7.  # mkdir  /home/teacher1/yang    //使用絕對路徑創建子目錄yang  

  8.  # ls  

  9.  yang  zhang  

  10.  # mkdir zhang                   //不能重名創建  

  11.  mkdir: 無法創建目錄 "zhang": 文件已存在 

在創建子目錄的時候,如果子目錄的父目錄不存在,則無法創建。使用選項"-p",則可以逐級創建目錄。例如在當前目錄下創建li/document目錄:

  1.  # pwd              

  2.  /home/teacher1  

  3.  #mkdir  li/document             //由于不存在li子目          
     錄,li/document子目錄無法創建  

  4.  mkdir: 無法創建目錄 "li/document": 沒有那個文件或目錄  

  5.  # mkdir  -p  li/document        //參數"-p"允許逐級創建目錄  

  6.  # ls  

  7.  li  yang  zhang  

  8.  # cd li  

  9.  # ls  

  10.  document 

再如創建新目錄/usr/Bob/example,且指定權限為700,命令行為:

  1.  $ mkdir  -m  700  /usr/Bob/example 

 

6.11.7  rmdir命令:刪除空目錄      

rmdir命令用于刪除一個空目錄。被刪除的目錄必須是一個空目錄否則無法刪除。rmdir只用于刪除目錄,無法刪除文件。rmdir命令格式為:

  1.  rmdir  [選項]  目錄名 

可用選項意義如下。

-p:刪除目錄下所有空目錄,如果有非空的子目錄,則保留下來;如果所有的子目錄都刪除了,則刪除該目錄。

例如刪除document子目錄,命令行為:

  1.  # ls  

  2.  document  

  3.  # cd  document  

  4.  # ls  

  5.  # rmdir  document               //在document子          
     目錄內無法刪除document子目錄  

  6.  rmdir: document: 沒有那個文件或目錄  

  7.  # cd ..  

  8.  # rmdir  document  

  9.  # ls 

若沒有document的寫權限或目錄非空則無法刪除,例如:

  1.  # ls  

  2.  li  yang  zhang  

  3.  # rmdir  li  

  4.  rmdir: li: 目錄非空 

 

6.11.8  mv 命令:移動文件或目錄      

mv 命令用于實現文件或目錄的移動。mv命令格式如下:

  1.  mv  [選項]  源文件或目錄  目標文件或目錄 

可用選項意義如下。

-f:如果操作要覆蓋某個已有的目標文件時不給任何指示。

-i:交互式的操作,如果操作要覆蓋某個已有的目標文件時會詢問用戶是否覆蓋。

mv與cp命令的明顯不同之處在于:mv命令移動文件,文件個數沒有增加;cp命令復制文件,文件個數增加。mv命令還可以進行文件或目錄的改名,其參數設置與運行結果對應關系如表6.19所示。

表6.19  mv參數設置與運行結果

 命令格式  

 運行結果  

 mv    文件名       文件名  

 將源文件名改為目標文件名  

 mv    文件名       目錄名  

 將文件移動到目標目錄  

 mv    目錄名       目錄名  

 目標目錄已存在,將源目錄  

 移動到目標目錄;目標  

 目錄不存在則改名  

 mv    目錄名       文件名  

 出錯  


 例如將m1.c文件改名為m2.c,命令行為:

  1.  $ mv m1.c m2.c 

再如將/usr/student下的所有文件和目錄移到當前目錄下,命令行為:

  1.  $ mv /usr/student/*  . 

 

6.11.9  find 命令:查找文件      

find命令用于查找文件,其命令格式為:

  1.  find  [起始目錄]  [搜索條件]  [操作] 

其中[起始目錄]是指命令將從該目錄起,遍歷其下的所有子目錄,查找滿足條件的文件。該目錄默認是當前目錄。[搜索條件]是一個邏輯表達式,當表達式為"真"時,搜索條件成立,為"假"時不成立。搜索條件的一般表達式及其說明見表6.20。

表6.20  find命令搜索條件的一般表達式及其說明

 搜索條件  

 說        明  

 -name ‘  字符串  ’  

 查找文件名中包含所給字符串的所有文件  

 -user ‘  用戶名  ’  

 查找屬于指定用戶的文件  

 -group ‘  用戶組名  ’  

 查找屬于指定用戶組的文件  

 -type x  

 查找類型為  x  的文件,類型包括  b  

 (塊設備文件),  c  (字符設備文件),  

 d  (目錄文件),  p  (命名管道文件),  

 f  (普通文件),  l  (符號鏈接文件),  

 s  (  socket  文件)  


 續表 

 搜索條件  

 說        明  

 -atime n  

 查找  n                    天以前被訪問過的文件  

 -size n  

 指定文件大小為  n                    

 -perm  

 查找符合指定權限值的文件或目錄  

 -mount  

 要查找文件時不跨越文件系統  mount  點  

 -follow  

 如果  find  命令遇到符號鏈接文件,  

 就跟蹤到鏈接所指向的文件  

 -cpio  

 對匹配的文件使用  cpio  命令,將文  

 件備份到磁帶設備中  

 -newer file1 ! file2  

 查找更改時間比文件  file1  晚但比  

 文件  file2  早的文件  

 -prume  

 不在指定的目錄中查找,如果同時  

 指定  -depth  選項,那么  -prune  將被  

 find  命令忽略  

 -ok  

 和  exec  作用相同,但在執行每一個  

 命令之前,都會給出提示,由用戶  

 來確定是否執行  

 -depth  

 在查找文件時,首先查找當前目錄,  

 然后再在其他子目錄中查找  


 可執行的操作及其說明見表6.21。 

表6.21  find命令常用可執行操作及其說明

 可執行操作  

 說        明  

 -exec   命令名   {} \  ;  

 不需確認執行命令。注意  :   “  {}  ”代  

 表找到的文件名,“  }  ”與“  \  ”之間有空格  

 -print  

 送往標準輸出  


 例如從當前目錄查找所有以.txt結尾的文件并在屏幕上顯示出來,命令行為:

  1.  $ find  .  -name  '*.txt'   -print 

再如從根目錄查找類型為符號連接的文件,并將其刪除,命令行為:

  1.  $ find  /  -type  l  -exec  rm { } \; 

又如從當前目錄查找用戶tom的所有文件并在屏幕上顯示,命令行為:

  1.  $ find  .  -user  'tom'   -print 

又如顯示當前目錄中大于20字節的.c文件名,命令行為:

  1.  $ find  . -name  "*.c"  -size  +20c  -print 

顯示當前目錄中恰好10天前訪問過的文件名,命令行為:

  1.  $ find  .  -atime  10  -print 

顯示當前目錄中不到10天前訪問過的文件名,命令行為:

  1.  $ find  .  -atime  -10  -print 

查找/home目錄下權限為640的文件或目錄,命令行為:

  1.  #find  /home  -perm 640 

搜索根目錄下大于100KB的文件,并顯示,命令行為:

  1.  #find  /  -size  +100K  -print 

搜索根目錄下小于500KB的文件,命令行為:

  1.  #find  /  -size  -500K  -print 

在當前目錄中查找所有文件名以.doc結尾,且更改時間在5天以上的文件,找到后進行刪除,且刪除前給出提示,命令行為:

  1.  #find  .  -name  '*.doc'  -mtime +5  -ok  rm { } \; 

在當前目錄下查找所有鏈接文件,并以長格式顯示文件的基本信息,命令行為:

  1.  # find  .  -type l  -exec  ls  -l {} \;  

  2.  lrw-rw-r-- 1 root root 36 07-27 14:34 ./example2  

  3.  lrw-rw-r-- 1 root root 72 07-27 14:36 ./example3  

  4.  lrw-rw-r-- 1 root root 36 07-27 14:36 ./example1 

在當前目錄中查找文件名由一個小寫字母、一個大寫字母和兩個數字組成,且擴展名為.doc的文件,并顯示,命令行為:

  1.  #find  .  -name  ' [a-z][A-Z][0-9][0-9].doc'  -print 

 

6.11.10  grep 命令:在文件中搜索指定的字符串      

grep命令是"global regular expression print"的縮寫,用于在文件中搜索指定的字符串模式,列出含有匹配模式字符串的文件名,并輸出含有該字符串的文本行,命令格式為:

  1.  grep [選項] [查找模式][文件名……] 

其中各可用選項意義如下。

-F:將查找模式看成是單純的字符串。

-i:要查找的字符串不區分字母的大小寫。

-r:以遞歸方式查詢目錄下的所有子目錄的文件。

-n:標出包含指定字符串的行編號。

例如在文件example中查找包含"aa"字符串的行,命令如下:

  1.  # cat  example  

  2.  aa bb cc dd  

  3.  aa bb ff  

  4.  ee  

  5.  # grep  aa  example  

  6.  aa bb cc dd  

  7.  aa bb ff 

如果待查找的字符串模式的字數大于1,則必須在字符串模式兩邊使用單引號,否則系統會只把第一個字作為搜索目錄,如:

  1.  # cat  example  

  2.  aa bb cc dd  

  3.  aa bb ff  

  4.  ee  

  5.  # grep  bb  cc  example  

  6.  grep: cc: 沒有那個文件或目錄  

  7.  example:aa bb cc dd  

  8.  example:aa bb ff  

  9.  # grep  'bb cc'  example  

  10.  aa bb cc dd 

例如在/passwd文件中查找包含"teacher"字符串的行,命令為:

  1.  #grep  -F  teacher  /etc/passwd  

  2.  teacher:*:500:500: teacher:/home/ teacher:/bin/bash 

再如在file1中查找包含"print" 字符串的所有行,不管字符的大小寫,命令行如下:

  1.  # grep  -i  'print'  file1 

又如查找包含字符串"bb cc"的行,輸出該行,并輸出該行所在的行號,命令為:

  1.  # cat  example  

  2.  aa bb cc dd  

  3.  aa bb ff  

  4.  ee  

  5.  # grep  -n 'bb cc'  example  

  6.  1:aa bb cc dd 

通常grep命令配合管道符(|)還可用來作為其他命令的輸入,例如統計指定文件中包含某字符串的行數、字數和字節數:

  1.  # cat  example  

  2.  aa bb cc dd  

  3.  aa bb ff  

  4.  ee  

  5.  # grep  'bb' example | wc  

  6.        2       7      21 

grep命令除了作為其他命令的輸入,也可以作為一些命令(例如ls,ps)的輸出。例如在當前運行的進程中查找vi程序的進程信息,命令行如下:

  1.  # ps  aux  |  grep  vi  

  2.  root      5716  0.0  0.2   4956   736 pts/1            
     T    Jul25   0:00 vi  

  3.  root     20681  0.3  0.4   4960  1012 pts/1             
     T    14:21   0:00 vi  

  4.  root     20689  5.0  0.2   4132   668 pts/1             
     R+   14:22   0:00 grep vi 

注意:還有兩個命令與grep非常相似。一個是"egrep",表示Extend grep,執行效率比grep高,但需占用較大的內存空間;另一個是"fgrep",占用空間比egrep小,且速度也比grep快。由于三個命令的結構、功能類似,因此大部分參數可以共享。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产一区二区三区影院 | 日本在线三级 | 98色花堂永久地址国产精品 | 久热国产精品 | 男女啪啪猛烈免费网站 | 国产精品v一区二区三区 | a级毛片免费 | 一级做a爰片性色毛片2021 | 99精品视频不卡在线观看免费 | 久久中文字幕久久久久 | 欧美日韩中文字幕在线手机版本 | 五月婷激情 | 激情开心婷婷 | 毛片网站视频 | 国产区精品在线 | 可以直接看的毛片 | 婷婷色在线观看 | 久久er热在这里只有精品85 | 真人实干一级毛片aa免费 | 日本中文在线观看 | 美女久久久久 | 久久不卡一区二区三区 | 综合精品| 久久久久免费视频 | 老子影院午夜伦手机不卡6080 | 天天操天天添 | 韩日性视频 | 天天操天天干天天爽 | 亚洲欧美在线视频免费 | 伊人色网站 | 欧美黄一片 | 亚洲精品天堂自在久久77 | 欧美一级毛片免费大全 | 91久久精品一区二区三区 | 五月婷婷开心综合 | 欧亚在线视频 | 国产尤物福利视频一区二区 | 久草久草在线 | 亚洲人xx视频 | 奇米影视久久 | 精品久久久久久久久久久 |