Linux中cat、more、less、tail、head命令的區別
阿新 • • 發佈:2019-01-05
對於內容極大的檔案來說,可以通過管道|傳送到more 工具,然後一頁一頁的檢視;
[[email protected] ~]# cat /etc/fstab /etc/profile | more
3、cat 的建立、連線檔案功能例項:
cat 有建立檔案的功能,建立檔案後,要以EOF或STOP結束;
[[email protected] ~]# cat > linuxsir.org.txt << EOF 注:建立linuxsir.org.txt檔案;
> 我來測試 cat 建立檔案,並且為檔案輸入內容; 注:這是為linuxsir.org.txt檔案輸入內容;
> 北南南北 測試; 注:這是為linuxsir.org.txt檔案輸入內容;
> EOF 注:退出編輯狀態;
[ [email protected] ~]# cat linuxsir.org.txt 注:我們檢視一下linuxsir.org.txt檔案的內容;
我來測試 cat 建立檔案,並且為檔案輸入內容;
北南南北 測試;
cat 還有向已存在的檔案追加內容的功能;
[[email protected] ~]# cat linuxsir.txt 注:檢視已存在的檔案linuxsir.txt 內容;
I am BeiNanNanBei From LinuxSir.Org . 注:內容行
我正在為cat命令寫文件
[[email protected] ~]# cat >> linuxsir.txt << EOF 注:我們向linuxsir.txt檔案追加內容;
> 我來測試cat向文件追加內容的功能; 注:這是追回的內容
> OK?
> OK~
> 北南 呈上
> EOF 注:以EOF退出;
[ [email protected] ~]# cat linuxsir.txt 注:檢視檔案內容,看是否追回成功。
I am BeiNanNanBei From LinuxSir.Org .
我正在為cat命令寫文件
我來測試cat向文件追加內容的功能;
OK?
OK~
北南 呈上
cat 連線多個檔案的內容並且輸出到一個新檔案中;
假設我們有sir01.txt、sir02.tx和sir03.txt ,並且內容如下;
[[email protected] ~]# cat sir01.txt
123456
i am testing
[[email protected] ~]# cat sir02.txt
56789
BeiNan Tested
[[email protected] ~]# cat sir03.txt
09876
linuxsir.org testing
我想通過cat 把sir01.txt、sir02.txt及sir03.txt 三個檔案連線在一起(也就是說把這三個檔案的內容都接在一起)並輸出到一個新的檔案sir04.txt 中。
注意:其原理是把三個檔案的內容連線起來,然後建立sir04.txt檔案,並且把幾個檔案的內容同時寫入sir04.txt中。特別值得一提的是,如果您輸入到一個已經存在的sir04.txt 檔案,會把sir04.txt內容清空。
[[email protected] ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt
[[email protected] ~]# more sir04.txt
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
cat 把一個或多個已存在的檔案內容,追加到一個已存在的檔案中
[[email protected] ~]# cat sir00.txt
linuxsir.org forever
[[email protected] ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt
[[email protected] ~]# cat sir00.txt
linuxsir.org forever
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
警告:我們要知道 > 意思是建立,>> 是追加。千萬不要弄混了。造成失誤可不是鬧著玩的;
二、more 檔案內容或輸出檢視工具
more 是我們最常用的工具之一,最常用的就是顯示輸出的內容,然後根據視窗的大小進行分頁顯示,然後還能提示檔案的百分比;
[[email protected] ~]# 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 的引數應用舉例:
[[email protected] ~]# more -dc /etc/profile 注:顯示提示,並從終端或控制檯頂部顯示;
[[email protected] ~]# more +4 /etc/profile 注:從profile的第4行開始顯示;
[[email protected] ~]# more -4 /etc/profile 注:每屏顯示4行;
[[email protected] ~]# 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來分頁顯示。這得和管道 | 結合起來,比如:
[[email protected] ~]# 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的內容時,讓其顯示行號;
[[email protected] ~]# 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行內容,應該是:
[[email protected] ~]# head -n 10 /etc/profile
五、tail 工具,顯示檔案內容的最後幾行
tail 是顯示一個檔案的內容的最後多少行;
用法比較簡單;
tail -n 行數值 檔名;
比如我們顯示/etc/profile的最後5行內容,應該是:
[[email protected] ~]# tail -n 5 /etc/profile
tail -f /var/log/syslog 顯示檔案 syslog 的後十行內容並在檔案內容增加後,且自動顯示新增的檔案內容。
備註:最後一條命令tail非常有用,尤其在監控日誌檔案時,可以在螢幕上一直顯示新增的日誌資訊。
[[email protected] ~]# cat /etc/fstab /etc/profile | more
3、cat 的建立、連線檔案功能例項:
cat 有建立檔案的功能,建立檔案後,要以EOF或STOP結束;
[[email protected] ~]# cat > linuxsir.org.txt << EOF 注:建立linuxsir.org.txt檔案;
> 我來測試 cat 建立檔案,並且為檔案輸入內容; 注:這是為linuxsir.org.txt檔案輸入內容;
> 北南南北 測試; 注:這是為linuxsir.org.txt檔案輸入內容;
> EOF 注:退出編輯狀態;
[
我來測試 cat 建立檔案,並且為檔案輸入內容;
北南南北 測試;
cat 還有向已存在的檔案追加內容的功能;
[[email protected] ~]# cat linuxsir.txt 注:檢視已存在的檔案linuxsir.txt 內容;
I am BeiNanNanBei From LinuxSir.Org . 注:內容行
我正在為cat命令寫文件
[[email protected] ~]# cat >> linuxsir.txt << EOF 注:我們向linuxsir.txt檔案追加內容;
> 我來測試cat向文件追加內容的功能; 注:這是追回的內容
> OK?
> OK~
> 北南 呈上
> EOF 注:以EOF退出;
[
I am BeiNanNanBei From LinuxSir.Org .
我正在為cat命令寫文件
我來測試cat向文件追加內容的功能;
OK?
OK~
北南 呈上
cat 連線多個檔案的內容並且輸出到一個新檔案中;
假設我們有sir01.txt、sir02.tx和sir03.txt ,並且內容如下;
[[email protected] ~]# cat sir01.txt
123456
i am testing
[[email protected]
56789
BeiNan Tested
[[email protected] ~]# cat sir03.txt
09876
linuxsir.org testing
我想通過cat 把sir01.txt、sir02.txt及sir03.txt 三個檔案連線在一起(也就是說把這三個檔案的內容都接在一起)並輸出到一個新的檔案sir04.txt 中。
注意:其原理是把三個檔案的內容連線起來,然後建立sir04.txt檔案,並且把幾個檔案的內容同時寫入sir04.txt中。特別值得一提的是,如果您輸入到一個已經存在的sir04.txt 檔案,會把sir04.txt內容清空。
[[email protected] ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt
[[email protected] ~]# more sir04.txt
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
cat 把一個或多個已存在的檔案內容,追加到一個已存在的檔案中
[[email protected] ~]# cat sir00.txt
linuxsir.org forever
[[email protected] ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt
[[email protected] ~]# cat sir00.txt
linuxsir.org forever
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
警告:我們要知道 > 意思是建立,>> 是追加。千萬不要弄混了。造成失誤可不是鬧著玩的;
二、more 檔案內容或輸出檢視工具
more 是我們最常用的工具之一,最常用的就是顯示輸出的內容,然後根據視窗的大小進行分頁顯示,然後還能提示檔案的百分比;
[[email protected] ~]# 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 的引數應用舉例:
[[email protected] ~]# more -dc /etc/profile 注:顯示提示,並從終端或控制檯頂部顯示;
[[email protected] ~]# more +4 /etc/profile 注:從profile的第4行開始顯示;
[[email protected] ~]# more -4 /etc/profile 注:每屏顯示4行;
[[email protected] ~]# 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來分頁顯示。這得和管道 | 結合起來,比如:
[[email protected] ~]# 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的內容時,讓其顯示行號;
[[email protected] ~]# 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行內容,應該是:
[[email protected] ~]# head -n 10 /etc/profile
五、tail 工具,顯示檔案內容的最後幾行
tail 是顯示一個檔案的內容的最後多少行;
用法比較簡單;
tail -n 行數值 檔名;
比如我們顯示/etc/profile的最後5行內容,應該是:
[[email protected] ~]# tail -n 5 /etc/profile
tail -f /var/log/syslog 顯示檔案 syslog 的後十行內容並在檔案內容增加後,且自動顯示新增的檔案內容。
備註:最後一條命令tail非常有用,尤其在監控日誌檔案時,可以在螢幕上一直顯示新增的日誌資訊。