linux中cat、more、less、tail、head命令的區別(轉載)

一、cat 顯示文件連接文件內容的工具 

cat 是一個文本文件(查看)和(連接)工具,通常與more搭配使用,與more不同的是cat可以合併文件。查看一個文件的內容,用cat比較簡單,就是cat後面直接接文件名。 

如:root@ubuntu :/# cat /etc/passwd 
  
1、cat 語法結構: 

cat [選項] [文件]... 
  
選項 
  -A, --show-all           等價於 -vET 
  -b, --number-nonblank    對非空輸出行編號 
  -e                       等價於 -vE 
  -E, --show-ends          在每行結束處顯示 $ 
  -n, --number             對輸出的所有行編號 
  -s, --squeeze-blank      不輸出多行空行 
  -t                       與 -vT 等價 
  -T, --show-tabs          將跳格字符顯示爲 ^I 
  -u                       (被忽略) 
  -v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 
      --help     顯示此幫助信息並離開 

2、cat 查看文件內容實例: 

[root@localhost ~]# cat /etc/profile    注:查看/etc/目錄下的profile文件內容; 
[root@localhost ~]# cat -b /etc/fstab   注:查看/etc/目錄下的profile內容,並且對非空白行進行編號,行號從1開始; 
[root@localhost ~]# cat -n /etc/profile    注:對/etc目錄中的profile的所有的行(包括空白行)進行編號輸出顯示; 
[root@localhost ~]# cat -E /etc/profile     注:查看/etc/下的profile內容,並且在每行的結尾處附加$符號; 
  
cat 加參數-n 和nl工具差不多,文件內容輸出的同時,都會在每行前面加上行號; 
[root@localhost ~]# cat -n /etc/profile 
[root@localhost ~]# nl /etc/profile 

cat 可以同時顯示多個文件的內容,比如我們可以在一個cat命令上同時顯示兩個文件的內容; 
[root@localhost ~]# cat /etc/fstab /etc/profile 
  
cat 對於內容極大的文件來說,可以通過管道|傳送到more 工具,然後一頁一頁的查看; 
[root@localhost ~]# cat /etc/fstab /etc/profile | more 
  
3、cat 的創建、連接文件功能實例: 

cat 有創建文件的功能,創建文件後,要以EOF或STOP結束; 

[root@localhost ~]# cat > linuxsir.org.txt << EOF 注:創建linuxsir.org.txt文件; 
> 我來測試 cat 創建文件,並且爲文件輸入內容;       注:這是爲linuxsir.org.txt文件輸入內容; 
> 北南南北 測試;                   注:這是爲linuxsir.org.txt文件輸入內容; 
> EOF   注:退出編輯狀態; 

[root@localhost ~]# cat linuxsir.org.txt 注:我們查看一下linuxsir.org.txt文件的內容; 

我來測試 cat 創建文件,並且爲文件輸入內容; 
北南南北 測試; 
  
cat 還有向已存在的文件追加內容的功能; 
[root@localhost ~]# cat linuxsir.txt 注:查看已存在的文件linuxsir.txt 內容; 
I am BeiNanNanBei From LinuxSir.Org .    注:內容行 
我正在爲cat命令寫文檔 

[root@localhost ~]# cat >> linuxsir.txt << EOF   注:我們向linuxsir.txt文件追加內容; 
> 我來測試cat向文檔追加內容的功能;       注:這是追回的內容 
> OK? 
> OK~ 
> 北南 呈上 
> EOF   注:以EOF退出; 

[root@localhost ~]# cat linuxsir.txt 注:查看文件內容,看是否追回成功。 
I am BeiNanNanBei From LinuxSir.Org . 
我正在爲cat命令寫文檔 

我來測試cat向文檔追加內容的功能;   
OK? 
OK~ 
北南 呈上 

cat 連接多個文件的內容並且輸出到一個新文件中; 
假設我們有sir01.txt、sir02.tx和sir03.txt ,並且內容如下; 

[root@localhost ~]# cat sir01.txt   
123456 
i am testing 

[root@localhost ~]# cat sir02.txt 
56789 
BeiNan Tested 

[root@localhost ~]# cat sir03.txt 
09876 
linuxsir.org testing 
  
我想通過cat 把sir01.txt、sir02.txt及sir03.txt 三個文件連接在一起(也就是說把這三個文件的內容都接在一起)並輸出到一個新的文件sir04.txt 中。 

注意:其原理是把三個文件的內容連接起來,然後創建sir04.txt文件,並且把幾個文件的內容同時寫入sir04.txt中。特別值得一提的是,如果您輸入到一個已經存在的sir04.txt 文件,會把sir04.txt內容清空。 

[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt 
[root@localhost ~]# more sir04.txt 
123456 
i am testing 
56789 
BeiNan Tested 
09876 
linuxsir.org testing 
  
cat 把一個或多個已存在的文件內容,追加到一個已存在的文件中 
[root@localhost ~]# cat sir00.txt 
linuxsir.org forever 

[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt 

[root@localhost ~]# cat sir00.txt 
linuxsir.org forever 
123456 
i am testing 
56789 
BeiNan Tested 
09876 
linuxsir.org testing 
  
警告:我們要知道 > 意思是創建,>> 是追加。千萬不要弄混了。造成失誤可不是鬧着玩的; 

二、more 文件內容或輸出查看工具 

more 是我們最常用的工具之一,最常用的就是顯示輸出的內容,然後根據窗口的大小進行分頁顯示,然後還能提示文件的百分比; 

[root@localhost ~]# more /etc/profile 

1、more 的語法、參數和命令: 

more [參數選項] [文件] 

參數如下: 
+num   從第num行開始顯示; 
-num   定義屏幕大小,爲num行; 
+/pattern   從pattern 前兩行開始顯示; 
-c   從頂部清屏然後顯示; 
-d   提示Press space to continue, 'q' to quit.(按空格鍵繼續,按q鍵退出),禁用響鈴功能; 
-l    忽略Ctrl+l (換頁)字符; 
-p    通過清除窗口而不是滾屏來對文件進行換頁。和-c參數有點相似; 
-s    把連續的多個空行顯示爲一行; 
-u    把文件內容中的下劃線去掉退出more的動作指令是q 

2、more 的參數應用舉例: 

[root@localhost ~]# more -dc /etc/profile    注:顯示提示,並從終端或控制檯頂部顯示; 
[root@localhost ~]# more +4 /etc/profile      注:從profile的第4行開始顯示; 
[root@localhost ~]# more -4 /etc/profile      注:每屏顯示4行; 
[root@localhost ~]# more +/MAIL /etc/profile     注:從profile中的第一個MAIL單詞的前兩行開始顯示; 

3、more 的動作指令: 

我們查看一個內容較大的文件時,要用到more的動作指令,比如ctrl+f(或空格鍵) 是向下顯示一屏,ctrl+b是返回上一屏; Enter鍵可以向下滾動顯示n行,要通過定,默認爲1行; 

我們只說幾個常用的; 自己嘗試一下就知道了; 

Enter       向下n行,需要定義,默認爲1行; 
Ctrl+f    向下滾動一屏; 
空格鍵          向下滾動一屏; 
Ctrl+b  返回上一屏; 
=         輸出當前行的行號; 
:f      輸出文件名和當前行的行號; 
v      調用vi編輯器; 
! 命令            調用Shell,並執行命令; 
q     退出more當我們查看某一文件時,想調用vi來編輯它,不要忘記了v動作指令,這是比較方便的; 

4、其它命令通過管道和more結合的運用例子: 

比如我們列一個目錄下的文件,由於內容太多,我們應該學會用more來分頁顯示。這得和管道 | 結合起來,比如: 
[root@localhost ~]# ls -l /etc |more 

三、less 查看文件內容 工具 

less 工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux正統查看文件內容的工具,功能極其強大;您是初學者,我建議您用less。由於less的內容太多,我們把最常用的介紹一下; 

1、less的語法格式: 

less [參數] 文件 
  
常用參數 

-c 從頂部(從上到下)刷新屏幕,並顯示文件內容。而不是通過底部滾動完成刷新; 
-f 強制打開文件,二進制文件顯示時,不提示警告; 
-i 搜索時忽略大小寫;除非搜索串中包含大寫字母; 
-I 搜索時忽略大小寫,除非搜索串中包含小寫字母; 
-m 顯示讀取文件的百分比; 
-M 顯法讀取文件的百分比、行號及總行數; 
-N 在每行前輸出行號; 
-p pattern 搜索pattern;比如在/etc/profile搜索單詞MAIL,就用 less -p MAIL /etc/profile 
-s 把連續多個空白行作爲一個空白行顯示; 
-Q 在終端下不響鈴; 
  
比如:我們在顯示/etc/profile的內容時,讓其顯示行號; 
[root@localhost ~]# less -N    /etc/profile 
  
2、less的動作命令: 

進入less後,我們得學幾個動作,這樣更方便 我們查閱文件內容;最應該記住的命令就是q,這個能讓less終止查看文件退出; 

動作: 

回車鍵 向下移動一行; 
y 向上移動一行; 
空格鍵 向下滾動一屏; 
b 向上滾動一屏; 
d 向下滾動半屏; 
h less的幫助; 
u 向上洋動半屏; 
w 可以指定顯示哪行開始顯示,是從指定數字的下一行顯示;比如指定的是6,那就從第7行顯示; 
g 跳到第一行; 
G 跳到最後一行; 
p n% 跳到n%,比如 10%,也就是說比整個文件內容的10%處開始顯示; 
/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL單詞; 
v 調用vi編輯器; 
q 退出less 
!command 調用SHELL,可以運行命令;比如!ls 顯示當前列當前目錄下的所有文件; 
  
就less的動作來說,內容太多了,用的時候查一查man less是最好的。在這裏就不舉例子了; 

四、head 工具,顯示文件內容的前幾行 

head 是顯示一個文件的內容的前多少行; 

用法比較簡單; 
head -n 行數值 文件名; 

比如我們顯示/etc/profile的前10行內容,應該是: 
[root@localhost ~]# head -n 10 /etc/profile 

五、tail 工具,顯示文件內容的最後幾行 

tail 是顯示一個文件的內容的最後多少行; 

用法比較簡單; 
tail   -n 行數值 文件名; 

比如我們顯示/etc/profile的最後5行內容,應該是: 
[root@localhost ~]# tail -n 5 /etc/profile 

tail -f /var/log/syslog 顯示文件 syslog 的後十行內容並在文件內容增加後,且自動顯示新增的文件內容。 


備註:最後一條命令tail非常有用,尤其在監控日誌文件時,可以在屏幕上一直顯示新增的日誌信息。



原文地址:http://my.oschina.net/junn/blog/304868

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章