Linux下查看文件内容的命令

查看文件内容的命令:

cat     由第一行开始显示内容,并将所有内容输出

tac     从最后一行倒序显示内容,并将所有内容输出

more    根据窗口大小,一页一页的现实文件内容

less    和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head    只显示头几行

tail    只显示最后几行

nl      类似于cat -n,显示时输出行号

tailf   类似于tail -f

1.cat 与 tac

cat的功能是将文件从第一行开始连续的将内容输出在屏幕上。但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只能看到一部分内容。

cat语法:cat [-n]  文件名 (-n : 显示时,连行号一起输出)

 

tac的功能是将文件从最后一行开始倒过来将内容数据输出到屏幕上。我们可以发现,tac实际上是cat反过来写。这个命令也不常用。

tac语法:tac 文件名。

 

2.more和less(常用)

more的功能是将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用“回车键”向下翻行,用“空格键”向下翻页。退出查看页面,请按“q”键。另外,more还可以配合管道符“|”(pipe)使用,例如:ls -al | more

more的语法:more 文件名

Enter 向下n行,需要定义,默认为1行;

Ctrl f 向下滚动一屏;

空格键 向下滚动一屏;

Ctrl b 返回上一屏;

= 输出当前行的行号;

:f 输出文件名和当前行的行号;

v 调用vi编辑器;

! 命令 调用Shell,并执行命令;

q 退出more

 

less的功能和more相似,但是使用more无法向前翻页,只能向后翻。

less可以使用【pageup】和【pagedown】键进行前翻页和后翻页,这样看起来更方便。

less的语法:less 文件名

less还有一个功能,可以在文件中进行搜索你想找的内容,假设你想在passwd文件中查找有没有weblogic字符串,那么你可以这样来做:

[root@redhat etc]# less passwd

然后输入:

/weblogic

回车

此时如果有weblogic字符串,linux会把该字符已高亮方式显示。

退出查看页面,请按“q”键。

 

3.head和tail

head和tail通常使用在只需要读取文件的前几行或者后几行的情况下使用。head的功能是显示文件的前几行内容

head的语法:head [n number] 文件名 (number 显示行数)

 

tail的功能恰好和head相反,只显示最后几行内容

tail的语法:tail [-n number] 文件名

 

4.nl

nl的功能和cat -n一样,同样是从第一行输出全部内容,并且把行号显示出来

nl的语法:nl 文件名

 

5.tailf

 

tailf命令几乎等同于tail -f,严格说来应该与tail –follow=name更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件(It is similar to tail -f but does not access the file when it is not growing.  This has the side effect of not updating the access  time for the file, so a filesystem flush does not occur periodically when no log activity is happening.)。tailf特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问嘛(tailf  is extremely useful for monitoring log files on a laptop when logging is infrequent and the user desires that the hard disk spin down to conserve battery life.)。tailf命令不是个脚本,而是一个用C代码编译后的二进制执行文件,某些Linux安装之后没有这个命令,本文提供了怎么编译安装tailf命令的方法。

面就谈谈二者的区别:

1. tailf 总是从文件开头一点一点的读, 而tail -f 则是从文件尾部开始读

2. tailf check文件增长时,使用的是文件名, 用stat系统调用;而tail -f 则使用的是已打开的文件描述符; 注:tail 也可以做到类似跟踪文件名的效果; 但是tail总是使用fstat系统调用,而不是stat系统调用;结果就是:默认情况下,当tail的文件被偷偷删除时,tail是不知道的,而tailf是知道的。

 

常用参数

 

格式:tailf logfile

 

动态跟踪日志文件logfile,最初的时候打印文件的最后10行内容