【Linux】查看日志类命令cat、less、more、tail、head

目录

一、cat

二、more

三、less

四、tail

五、head


各命令的主要区别:

linux命令中cat、more、less、tail、head均可用来查看文件内容,主要区别有:

  • cat是一次性显示整个文件的内容,适用于文件内容少的情况;
  • more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。
  • tail 和 head分别显示文件的后几行和前几行内容。常用于大文件的截取。

 

一、cat

cat 命令常用于显示整个文件的内容,或者合并多个文件。

cat [options] fileName

 

1、常用参数:

-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

 

2、实例:

(1)把 file1 的文档内容全部显示在屏幕上:

cat file1

(2)把 file1 的文档内容加上行号后输入 file2 这个文档里:

cat -n file1 > file2

(注意:如果file2中原本有内容,此命令会覆盖file2中原有内容)

(3)把file1和file2的内容合并到file3,同样会覆盖原file3.txt中的内容:

cat file1 file2 > file3

(4)把 file1 和 file2 的文档内容加上行号(空白行不加)之后将内容追加到 file3 文档里:

cat -b file1 file2 >> file3

(5)清空 /etc/test.txt 文档内容:

cat /dev/null > /etc/test.txt

总结:当使用>时,cat会覆盖右边的文件;当使用>>时,cat会追加到右边的文件中。

 

3、cat 的反命令--tac 命令

把cat 单词反过来就是 tac, 该命令同样是显示整个文件的内容,但是倒序显示。

 

二、more

more 比 cat 功能更强大,会让日志分页显示,同时显示内容的百分比,更方便阅读。

最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(只能用 / 向下搜索)。

 

1、语法:

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

2、常用参数:

  • -num 一次显示的行数
  • +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串前两行开始显示
  • /字符串:向下搜索"字符串"的功能
  • +num 从第 num 行开始显示
  • fileNames 欲显示内容的文档,可以是多个文件

 

3、实例:

(1)逐页显示file1内容:

more file1

(2)设定每屏显示的行数:

more -10 file1

以10行为单位翻页

(3)从第 20 行开始显示 file1 内容:

more +20 file1

(4)同时显示多个文件内容:

more file1 file2

依次显示出file1和file2的全部内容。

(5)从文件中查找第一个出现"liu"字符串的行,并从该处前两行开始显示输出:

more +/liu test.log

 

4、常用操作命令

  • Enter   向下n行,需要定义。默认为1行
  • 空格键   向下滚动一屏
  • b    向上滚动一屏
  • =   输出当前行的行号
  • :f    输出文件名和当前行的行号
  • V    调用vi编辑器
  • !命令  调用Shell,并执行命令

 

三、less

less 与 more 类似,less 的用法比起 more 更加的有弹性。而且拥有更多的搜索功能,不止可以向下搜,也可以向上搜,跟vi中的搜索功能更相似。

 

1、语法:

less [参数] [fileNames...]

 

2、常用参数:

-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件

-i 忽略搜索时的大小写

-m 显示类似more命令的百分比

-M 显示读取文件的百分比、行号及总行数

-N 在每行前显示行号

/字符串:向下搜索"字符串"的功能

?字符串:向上搜索"字符串"的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

&pattern - 仅显示匹配模式的行,而不是整个文件

 

空格键 滚动一页

回车键 滚动一行

[pagedown]: 向下翻动一页

[pageup]: 向上翻动一页

 

G - 移动到最后一行

g - 移动到第一行

 

v - 使用配置的编辑器编辑当前文件

h - 显示 less 的帮助文档

 

3、less 版 tail -f

在 Linux 动态查看日志文件常用的命令非 tail -f 莫属,其实 less 也能完成这项工作,使用 F 命令。

在 less 查看日志文件时,

1. 可以按大写 F,就会有类似 tail -f 的效果,读取写入文件的最新内容, 按 ctrl+C 停止。

2. 可以按 v 进入编辑模型, shift+ZZ 保存退出到 less 查看模式。

3. 可以按 :e 查看下一个文件, 用 :n 和 :p 来回切换。

 

4、实例

1、分页查看文件,与more类似:

less log2013.log

2、ps查看进程信息并通过less分页显示同时显示行号:

ps -ef | less -N

3、查看命令历史使用记录并通过less分页显示:

【Linux】查看日志类命令cat、less、more、tail、head_第1张图片

 

 

4、浏览多个文件

less log1.log log2.log

说明:

输入 :n后,切换到 log2.log

输入 :p 后,切换到log1.log

 

总结:less 和 more 对比

1、more命令从前向后读取文件,因此在启动时就加载整个文件,如果文件较大时,加载速度慢。

2、 less 并未在一开始就读入整个文件,因此在遇上查看大文件时,会比more、vi等工具的速度更快。同时,less的查找功能更强大。

3、more和less都支持:用空格显示下一页,按键b显示上一页。。

 

四、tail

tail 用来显示文件的最后几行内容,当文件内容有更新时,tail会自己主动刷新,确保一直显示最新的文件内容。

 

1、命令语法

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

 

2、常用参数:

-f 监视File文件增长,动态刷新文件

-n Number 从倒数Number行位置读取指定文件

-c Number 从倒数Number字节数位置读取指定文件

 

3、实例

(1)显示文件最后几行内容:

tail filename

默认只显示文件最后10行内容,并退出文件,不会自动刷新。

(2)显示文件最后50行内容:

tail -n 50 filename

显示文件最后50行内容,并退出文件,不会自动刷新。

(3)显示文件最后内容,并动态刷新:

tail -f filename

或 tailf filename

监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),并动态刷新显示在屏幕上。按下CTRL+C可退出。

(4)指定文件动态刷新的行数:

tail -50f filename

显示最后50行文件内容,并动态刷新,每次刷新50行。

(5)截取文件的后100行,并保存到新文件中

tail -n 1000 file1.txt > file2.txt

 

五、head

head 用来显示文件的前面几行内容,可以指定行数和字节数。

1、命令语法

tail [-v | -c Number | -n Number] [ File ]

 

2、常用参数:

-v 在输出内容前面显示文件名

-n Number 显示文件的前面Number行内容

-c Number 显示文件的前面Number字节内容

 

3、实例

(1)显示前5行,并显示文件名

head -vn 5 head.txt

(2)显示前5个字节

head -c 5 head.txt

(3)截取文件的前100行,并保存到新文件中

head -n 1000 file1.txt > file2.txt

 

总结:tail 和 head 对比

1、tail 可显示文件最后几行的内容,并动态刷新。

2、head 可显示文件前面几行的内容。

3、二者也常用于大文件的截取。

你可能感兴趣的:(linux)