查看文件内容的几个命令

我们在使用终端查看文件时,可以通过 cat more less tail head 等命令。本文将讨论这几个命令的异同。


1. cat

用途:1、显示文件的全部内容 2、将多个文件合并到标准输出

用例:

//在显示文件内容的同时,在每一行前面显示行号  --- 和nl命令类似
cat -n filePath  
//同时显示两个文件
cat filePath1 filePath2 

2. more

用途: 当文件内容过多时,more可以分页显示文件

动作指令:(在more状态下,通过各种指令来浏览文件)

Enter          向下移动一行(默认一行,可自定义)  
Ctrl+f         向下滚动一屏  
空格键          向下滚动一屏  
Ctrl+b         返回上一屏
q              退出more 
=              输出当前行的行号  
:f             输出文件名和当前行的行号  
v              调用vi编辑器;  
! 命令          调用Shell,并执行命令    

用例:

//从profile的第4行开始显示
more +4 filePath   
//每屏显示4行     
more -4 filePath 
//从profile中的第一个word单词的前两行开始显示    
more +/word  filePath     

3. less

用途: 分页显示文件内容

与more的区别:less 更加灵活的操作,具备更多特性

动作指令:

Enter     向下移动一行  
y         向上移动一行
b         向上滚动一屏
空格键     向下滚动一屏  
d         向下滚动半屏
u         向上滚动半屏
g         跳到第一行  
G         跳到最后一行   
q         退出less  
w         指定从指定数字的下一行开始显示  
p n%      跳到整个文件内容的n%处开始显示  
/pattern  搜索pattern并高亮显示  
v         调用vi编辑器  
! 命令     调用Shell,并执行命令
h         less的帮助

参数:

-c          从上到下刷新屏幕,并显示文件内容。而不是通过底部滚动完成刷新  
-f          强制打开文件,二进制文件显示时,不提示警告  
-i          搜索时忽略大小写;除非搜索串中包含大写字母 
-I          搜索时忽略大小写,除非搜索串中包含小写字母  
-m          显示读取文件的百分比
-M          显法读取文件的百分比、行号及总行数  
-N          在每行前输出行号
-p pattern  搜索pattern
-s          把连续多个空白行作为一个空白行显示  
-Q          在终端下不响铃

4. tail

用途: 显示文件的末尾行(默认10行)

参数:

-b Number  #从 Number 变量表示的 512 字节块位置开始读取指定文件 
-c Number  #从 Number 变量表示的字节位置开始读取指定文件 
-f  #如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续从输入文件读取和复制额外的单元(当这些单元可用时)
#如果没有指定 File 参数,并且标准输入是管道,则会忽略 -f 标志。tail -f 命令可用于监视另一个进程正在写入的文件的增长
-k Number  #从 Number 变量表示的1KB 块位置开始读取指定文件 
-m Number  #从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果
-n Number  #从首行或末行位置来读取指定文件,位置由 Number 变量的符号(+ 或 - 或无)表示,并通过行号 Number 进行位移 
//如果文件大于 20,480 字节,那么-r标志只显示最后的 20,480 字节。 -r 标志只有   与 -n 标志一起时才有效。否则,就会将其忽略
-r  #从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式显示整个文件
tail 命令从指定点开始将 File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入。 Number 变量指定将多少单元写入标准输出。 Number 变量的值可以是正的或负的整数。如果值的前面有 +(加号),从文件开头指定的单元数开始将文件写到标准输出。如果值的前面有 -(减号),则从文件末尾指定的单元数开始将文件写到标准输出。如果值前面没有 +(加号)或 -(减号),那么从文件末尾指定的单元号开始读取文件

用例:

//查看文件的后10行
tail -10 filePath 或 tail -n 10 filePath
// -f使tail不停地去读最新的内容(实时监视的效果) 用Ctrl+c来终止
tail -f filePath 

5. head

用途: 显示文件的首行(默认10行)

用例:

 //查看文件的前5行
head -5 filePath

其他:

sed:
用例:

//查看文件中间一段 可以使用sed命令
sed -n '5,10p' /etc/passwd  #查看文件的第5行到第10行

** od:** 读取非纯文字文件
参数:

-t :后面可以接各种『类型 (TYPE)』的输出,例如:
    a :利用预设的字符来输出;
    c :使用 ASCII 字符来输出
    d[size] :利用十进制(decimal)来输出数据,每个整数占用 size bytes ;
    f[size] :利用浮点数值(floating)来输出数据,每个数占用 size bytes ;
    o[size] :利用八进位(octal)来输出数据,每个整数占用 size bytes ;
    x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size bytes。

nl: 输出文件内容的同时显示行号
cat -n 的区别:如果某一行没有内容,nl 不会记入行数,即 nl 只会记录有内容的行数;而 cat -n 会记录所有行的行数

推荐阅读更多精彩内容