天天看點

3.2-3 tac、more

3.2 tac指令

  是cat的反向拼寫,是以指令的功能為反向顯示檔案内容。cat指令是從第一行開始讀取文本輸出的,而tac則是從最後一行開始讀取文本并進行反向輸出,需要注意的是,2個指令都是以一行文本為機關的,每行文本的順序不會改變的。

-b    在行前而非行尾添加分隔标志

-r    将分隔标志視作正規表達式來解析

-s    使用指定字元串代替換行作為分隔标志

cat指令與tac指令的對比

[root@cs6-mini scripts]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
 
touch /var/lock/subsys/local
[root@cs6-mini scripts]# tac /etc/rc.local
touch /var/lock/subsys/local    #<==可以着到是最後一行最先輸出,但是這行文本的字元順序并沒有故變。
 
# want to do the full Sys V style init stuff.
# You can put your own initialization stuff in here if you don't
# This script will be executed *after* all the other init scripts.
#
#!/bin/sh      

3.3 more:分頁顯示檔案内容

    more指令的功能類似于cat,但cat指令是将整個檔案的内容一次性顯示在螢幕上,而more則會一頁一頁地顯示檔案内容。但more的功能還是比較簡單的,有一個增強版的指令是less,将在3.4節講解。

more指令的參數選項及說明

-num    指定螢幕顯示大小為num行

+num    從行号num開始顯示

-s      把連續的多個空行顯示為一行

-p      不滾屏,而是清除整個螢幕,然後顯示文本

-c      不滾屏,而是從每一屏的頂部開始顯示文本,每顯示完一行,就清除這一行的剩餘部分

    在互動模式下,使用more指令打開文本之後,會進人一個基于vi的互動界面,在這裡可以使用部分vi編輯器的功能,如搜尋功能,還可以切換到vi編輯器。表3-5給出了more指令的互動式子指令。

more指令的互動式子指令及說明

h或?            檢視幫助
空格鍵           向下滾動一屏
z               向下滾動一屏 #<==說明:有很多參數的功能是一樣的,是以大家記住一個即可
Enter           向下顯示1行
f               向下滾動一屏
b               傳回上一屏
=               輸出目前行的行号
/查找的文本      查找指定的文本
:f             輸出檔案名和目前行的行号
!指令           調用Shell,并執行指令
q              退出more      

more 指令後面不接任何參數。

    大家可以在上面的互動界面實驗一下常用的互動指令,比如按空格鍵往下翻一屏,按“b”往上翻一屏,若想要查找“3306”,則先按一個“/”,然後輸入“3306”單擊回車即可找到。

定義顯示的行數

[root@cs6-mini ~]# more -5 /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      

從指定的行數開始顯示内容

[root@cs6-mini ~]# more +888 /etc/services
cableport-ax    282/tcp                 # Cable Port A/X
cableport-ax    282/udp                 # Cable Port A/X
rescap          283/tcp                 # rescap
rescap          283/udp                 # rescap
corerjd         284/tcp                 # corerjd
corerjd         284/udp                 # corerjd
fxp             286/tcp                 # FXP Communication
fxp             286/udp                 # FXP Communication
k-block         287/tcp                 # K-BLOCK
k-block         287/udp                 # K-BLOCK
novastorbakcup  308/tcp                 # Novastor Backup
novastorbakcup  308/udp                 # Novastor Backup
entrusttime     309/tcp                 # EntrustTime
entrusttime     309/udp                 # EntrustTime
bhmds           310/tcp                 #       bhmds
bhmds           310/udp                 #       bhmds
asip-webadmin   311/tcp                 # AppleShare IP WebAdmin
asip-webadmin   311/udp                 # AppleShare IP WebAdmin
vslmp           312/tcp                 # VSLMP
vslmp           312/udp                 # VSLMP
magenta-logic   313/tcp                 # Magenta Logic
magenta-logic   313/udp                 #       Magenta Logic
opalis-robot    314/tcp                 # Opalis Robot      

分頁顯示目錄下的内容

[root@cs6-mini ~]# ls /etc/|more -10
adjtime
aliases
aliases.db
alternatives
anacrontab
audisp
audit
bash_completion.d
bashrc
blkid      

#<==/etc/下有很多檔案目錄,直接ls檢視則會顯示太多内容,是以可以借助more指令分頁顯示。