【Linux命令詳解】12、文本內容顯示—[ cat、tac、more、less、tail、head]

12、本節主要學習在linux系統下文本文件內容顯示的相關命令,這些命令有cat、tac等。

12.1 cat

使用cat命令可以顯示文本文件的內容,也可以把幾個文件內容附加到另一個文件中。

12.1.1 命令語法:

cat[選項][文件]

12.1.2選項參數:

                     cat命令選項含義

選項                      選項含義

-n                        對輸出的所有行編號

-b                        對非空輸出行編號

-s                         當遇到有連續兩行以上的空白行時,就替換爲一行的空白行

-E                         在每行結束處顯示$

 

12.1.3 實例:

例1:顯示/etc/grub.conf文件的內容

[root@ser01 ~]# cat /etc/grub.conf    
# grub.conf generated by anaconda    
#    
# Note that you do not have to rerun grub after making changes to this file    
# NOTICE:  You have a /boot partition.  This means that    
#          all kernel and initrd paths are relative to /boot/, eg.    
#          root (hd0,0)    
#          kernel /vmlinuz-version ro root=/dev/vda3    
#          initrd /initrd-[generic-]version.img    
#boot=/dev/vda    
default=0    
timeout=5    
splashimage=(hd0,0)/grub/splash.xpm.gz    
hiddenmenu    
title CentOS (2.6.32-431.el6.x86_64)    
        root (hd0,0)    
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=3acde1c8-9946-441b-a5e6-2e53b6530f87 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet    
        initrd /initramfs-2.6.32-431.el6.x86_64.img

例2:把文件textfile1的文件內容加上行號後輸入到textfile2文件中

[root@ser01 ~]# cat textfile1    
a    
b    
c    
[root@ser01 ~]# cat -n textfile1 > textfile2    
[root@ser01 ~]# cat textfile2    
     1  a    
     2  b    
     3  c

例3:把文件textfile1和textfile2的文件內容加上行號(空白行不加)之後將內容附加到文件textfile3中

[root@ser01 ~]# cat textfile1  
a    
b    
c    
[root@ser01 ~]# cat textfile2    
     1  a    
     2  b    
     3  c    
[root@ser01 ~]# cat -b textfile1 textfile2 >> textfile3    
[root@ser01 ~]# cat textfile3    
     1  a    
     2  b    
     3  c    
     4       1  a    
     5       2  b    
     6       3  c

例4:在每行的結尾處附加$符號顯示/etc/passwd文件

[root@ser01 ~]# cat -E /etc/passwd  
root:x:0:0:root:/root:/bin/bash$    
bin:x:1:1:bin:/bin:/sbin/nologin$    
daemon:x:2:2:daemon:/sbin:/sbin/nologin$    
adm:x:3:4:adm:/var/adm:/sbin/nologin$    
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$    
sync:x:5:0:sync:/sbin:/bin/sync$    
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown$    
halt:x:7:0:halt:/sbin:/sbin/halt$    
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin$    
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin$    
operator:x:11:0:operator:/root:/sbin/nologin$    
games:x:12:100:games:/usr/games:/sbin/nologin$    
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin$    
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin$    
nobody:x:99:99:Nobody:/:/sbin/nologin$    
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin$    
saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin$    
postfix:x:89:89::/var/spool/postfix:/sbin/nologin$    
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin$


例5:使用cat命令創建mm.txt文件

[root@ser01 ~]# cat >mm.txt<<EOF  
> Hello                       //在此輸入字符Hello    
> Linux                       //在此輸入字符Linux    
> EOF                         //在此輸入字符EOF,會自動回到Shell提示符界面    
[root@ser01 ~]# cat mm.txt    
Hello    
Linux

//查看mm.txt文件內容

 

12.2 tac

使用tac命令可以從最後一行顯示文件內容,可以看出tac是cat的反向顯示。

12.2.1 命令語法:

tac[選項][文件]

12.2.2 選項參數:

                     tac命令選項參數含義

選項               選項含義

-b                  在行前而非行尾添加分隔標誌

-r                   將分隔標誌視作正則表達式來解析

-s<字符>      使用指定字符串代替換行作爲分隔標誌

 

12.2.3 實例:

例1:從最後一行開始顯示/root/pu文件的內容。

[root@ser01 ~]# cat /root/pu    
Hello Linux    
Hello Centos    
[root@ser01 ~]# tac /root/pu    
Hello Centos    
Hello Linux

例2:使用字符s代替換行作爲分隔標誌顯示/root/pu文件內容。

[root@ser01 ~]# tac -s R /root/pu  
Hello Linux    
Hello Centos


12.3 more:分頁顯示文本文件

      more命令是一個基於vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容,支持vi中的關鍵字定位操作。more名單中內置了若干快捷鍵,常用的有H(獲得幫助信息),Enter(向下翻滾一行),空格(向下滾動一屏),Q(退出命令)。 

      該命令一次顯示一屏文本,滿屏後停下來,並且在屏幕的底部出現一個提示信息,給出至今己顯示的該文件的百分比:--More--(XX%)可以用下列不同的方法對提示做出回答:

按Space鍵:顯示文本的下一屏內容。

按Enier鍵:只顯示文本的下一行內容。 

按斜線符|:接着輸入一個模式,可以在文本中尋找下一個相匹配的模式。 

按H鍵:顯示幫助屏,該屏上有相關的幫助信息。

按B鍵:顯示上一屏內容。

按Q鍵:退出rnore命令。 


12.3.1 命令語法: 

more(語法)(參數) 


12.3.2選項參數 

-<數字>:指定每屏顯示的行數; 

-d:顯示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”; 

-c:不進行滾屏操作。每次刷新這個屏幕; 

-s:將多個空行壓縮成一行顯示; 

-u:禁止下劃線; +<數字>:從指定數字的行開始顯示。 參數 文件:指定分頁顯示內容的文件。 


12.3.3實例:

例1::分頁顯示文件/etc/services的內容

[root@ser01 ~]# more /etc/services

# /etc/services:

# $Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $

#

# Network services, Internet style

# IANA services version: last updated 2009-11-10

#

# Note that it is presently the policy of IANA to assign a single well-known

# port number for both TCP and UDP; hence, most entries here have two entries

# even if the protocol doesn't support UDP operations.

# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports

# are included, only the more common ones.

#

# The latest IANA port assignments can be gotten from

#       http://www.iana.org/assignments/port-numbers

# The Well Known Ports are those from 0 through 1023.

# The Registered Ports are those from 1024 through 49151

# The Dynamic and/or Private Ports are those from 49152 through 65535

#

# Each line describes one service, and is of the form:

#

# service-name  port/protocol  [aliases ...]   [# comment]


tcpmux          1/tcp                           # TCP port service multiplexer

tcpmux          1/udp                           # TCP port service multiplexer

rje             5/tcp                           # Remote Job Entry

rje             5/udp                           # Remote Job Entry

echo            7/tcp

echo            7/udp

discard         9/tcp           sink null

discard         9/udp           sink null

--More--(0%)


例2:逐頁顯示/roo/testfile文件的內容,如有連續兩行以上空白行則以一行空白行顯示。

[root@ser01 ~]# more -s /root/testfile


例3:從第20行開始顯示/root/testfile文本的內容。

[root@ser01 ~]# more +20 /root/testfile


例4:一次兩行顯示/etc/passwd

[root@ser01 ~]# more -2 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

--More--(7%)


12.4 less:回捲顯示文本文件

ess命令的作用與more十分相似,都可以用來瀏覽文字檔案的內容,不同的是less命令允許用戶向前或向後瀏覽文件,而more命令只能向前瀏覽。用less命令顯示文件時,用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程序,應按Q鍵。

12.4.1命令語法:

 less[選項][文件]


12.4.2選項參數:

      less命令選項含義

選項         選項含義

-e                 文件內容顯示完畢後,自動退出; 

-f                  強制顯示文件; 

-g                 不加亮顯示搜索到的所有關鍵詞,僅顯示當前顯示的關鍵字,以提高顯示速度; 

-l                  搜索時忽略大小寫的差異; 

-N                 每一行行首顯示行號; 

-s                 將連續多個空行壓縮成一行顯示; 

-S                 在單行顯示較長的內容,而不換行顯示; 

-x<數字>       將TAB字符顯示爲指定個數的空格字符。

12.4.3實例:

例1:回捲顯示/etc/services文件的內容

[root@ser01 ~]# less /etc/services

# /etc/services:

# $Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $

#

# Network services, Internet style

# IANA services version: last updated 2009-11-10

#

# Note that it is presently the policy of IANA to assign a single well-known

# port number for both TCP and UDP; hence, most entries here have two entries

# even if the protocol doesn't support UDP operations.

# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports

# are included, only the more common ones.

#

# The latest IANA port assignments can be gotten from

#       http://www.iana.org/assignments/port-numbers

# The Well Known Ports are those from 0 through 1023.

# The Registered Ports are those from 1024 through 49151

# The Dynamic and/or Private Ports are those from 49152 through 65535

#

# Each line describes one service, and is of the form:

#

# service-name  port/protocol  [aliases ...]   [# comment]


tcpmux          1/tcp                           # TCP port service multiplexer

tcpmux          1/udp                           # TCP port service multiplexer

rje             5/tcp                           # Remote Job Entry

rje             5/udp                           # Remote Job Entry

echo            7/tcp

echo            7/udp

discard         9/tcp           sink null

discard         9/udp           sink null

/etc/services 


12.5 tail:查看文件末尾數據

    tail命令用於輸入文件中的尾部內容。tail命令默認在屏幕上顯示指定文件的末尾10行。如果給定的文件不止一個,則在顯示的每個文件前面加一個文件名標題。如果沒有指定文件或者文件名爲“-”,則讀取標準輸入。 


注意:如果表示字節或行數的N值之前有一個”+”號,則從文件開頭的第N項開始顯示,而不是顯示文件的最後N項。N值後面可以有後綴:b表示512,k表示1024,m表示1 048576(1M)。

12.5.1命令語法:

tail[選項][文件]


12.5.2 選項參數:

          tail命令選項含義

選項        選項含義

-n<K>       輸出最後K行,這裏K是數字,使用-n+K則從每個文件的第K行輸出

-c<K>       輸出最後K個字節,這裏K是數字,使用-c+K則從每個文件的第K字節輸出

-f          即時輸出文件變化後追加的數據


12.5.3 實例:

例1:查看文件/etc/passwd的末尾3行數據內容。

[root@ser01 ~]# tail -n 3 /etc/passwd

saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin


[root@ser01 ~]# tail -3 /etc/passwd

saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin


//可以發現tail -n 3 /etc/passwd命令和tail -3 /etc/passwd起到一樣的作用。


例2:從第10行開始顯示文件/etc/passwd的數據內容。

[root@ser01 ~]# tail -n +10 /etc/passwd 

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin


例3:查看文件/etc/passwd末尾100字節的數據內容

[root@ser01 ~]# tail -c 100 /etc/passwd

/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin


例4:從第500個字節開始顯示文件/etc/passwd的數據內容

[root@ser01 ~]# tail -c +500 /etc/passwd 

r:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin


例5:動態跟蹤文件/var/log/messages的增長情況

[root@ser01 ~]# tail -f /var/log/messages

Oct 22 05:52:00 localhost dhclient[867]: bound to 192.168.1.56 -- renewal in 36238 seconds.

Oct 22 15:55:58 localhost dhclient[867]: DHCPREQUEST on eth0 to 192.168.1.1 port 67 (xid=0x23b34669)

Oct 22 15:55:58 localhost dhclient[867]: DHCPACK from 192.168.1.1 (xid=0x23b34669)

Oct 22 15:56:00 localhost dhclient[867]: bound to 192.168.1.56 -- renewal in 40777 seconds.

Oct 23 03:15:37 localhost dhclient[867]: DHCPREQUEST on eth0 to 192.168.1.1 port 67 (xid=0x23b34669)

Oct 23 03:15:37 localhost dhclient[867]: DHCPACK from 192.168.1.1 (xid=0x23b34669)

Oct 23 03:15:38 localhost dhclient[867]: bound to 192.168.1.56 -- renewal in 40953 seconds.

Oct 23 14:38:11 localhost dhclient[867]: DHCPREQUEST on eth0 to 192.168.1.1 port 67 (xid=0x23b34669)

Oct 23 14:38:11 localhost dhclient[867]: DHCPACK from 192.168.1.1 (xid=0x23b34669)

Oct 23 14:38:13 localhost dhclient[867]: bound to 192.168.1.56 -- renewal in 38831 seconds.


//tail命令會每隔一秒去檢查一下文件是否增加新的內容,如果增加就追加在原來的輸出後面並顯示。如果想終止輸出,按【Ctrl+C】鍵中斷tail命令即可。


12.6 head:顯示指定文件前若干行

head命令用於顯示文件的開頭的內容。在默認情況下,head命令顯示文件的頭10行內容。


12.6.1 命令語法:

head[選項][文件]


12.6.2 選項參數:

       head命令選項含義

選項         選項含義

-n<K>     顯示每個文件的前K行內容;如果附加“-”參數,則除了每個文件的最後K行外顯示剩餘全部內容,這裏的K是數字。

-c<k>      顯示每個文件的前K字節內容;如果附加“-”參數,則除了每個文件的最後K字節數據外顯示剩餘全部內容,這裏的K是數字。

-v             總是顯示包含給定文件名的文件頭


12.6.3 實例:

例1:查看文件/etc/passwd的開始10行數據內容。

[root@ser01 ~]# head /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin


例2:查看文件/etc/passwd的前3行數據內容。

[root@ser01 ~]# head -n 3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin


[root@ser01 ~]# head -3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin


//可以發現head -n 3 /etc/passwd命令和 head -3 /etc/passwd命令起到一樣的作用。


例3:查看文件/etc/passwd除了最後10行的全部數據內容。

[root@ser01 ~]# head -n -10 /etc/passwd 

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin


例4:查看文件/etc/passwd的前100個字節的數據內容

[root@ser01 ~]# head -c 100 /etc/passwd 

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin


例5:查看文件/etc/passwd除了最後100個字節以外的數據內容。

[root@ser01 ~]# head -c -100 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin


例6:查看文件/etc/passwd的文件內容,並顯示文件名:

[root@ser01 ~]# head -v /etc/passwd

==> /etc/passwd <==

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin








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