众所周知linux中命令cat、more、less均可用来查看文件内容,当然还有我们"非主流"的vim以及使用较少的head、tail、tac。
下面我将介绍各种命令的用法及对比..
cat和tac
先说说cat和tac这两兄弟吧 -- 从单词的拼写上我们就可以发现tac是cat倒过来的,同时tac的功能也和cat相反的。
cat的功能是将文件从第一行开始连续的将内容输出在屏幕上。tac的功能是将文件从最后一行开始倒过来将内容数据输出到屏幕上。
因为tac使用的特别少,我就直接说cat的用法吧--cat [-n] 文件名 (-n : 显示时,连行号一起输出) 当文件大,行数比较多时,屏幕无法全部容下时,只能看到一部分内容。所以通常使用重定向的方式,输出满足指定格式的内容。
Cat常用参数列表
-A, --show-all 等于-vET
<strong> -b, --number-nonblank 对非空输出行编号</strong>
-e 等于-vE
-E, --show-ends 在每行结束处显示"$"
<strong> -n, --number 对输出的所有行编号</strong>
-s, --squeeze-blank 不输出多行空行
-t 与-vT 等价
-T, --show-tabs 将跳格字符显示为^I
-u (被忽略)
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外
--help 显示此帮助信息并退出<strong>
</strong> --version 显示版本信息并退出
more和less
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。less 命令也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
less还有一个功能,可以在文件中进行搜索你想找的内容,假设你想在passwd文件中查找有没有weblogic字符串,那么你可以这样来做:
less passwd 然后输入:/weblogic 回车,此时如果有weblogic字符串,linux会把该字符以高亮方式显示。
More常用参数、操作列表
-num 一次显示的行数
-d 在每屏的底部显示友好的提示信息
-l 忽略 Ctrl+l (换页符)。如果没有给出这个选项,则more命令在显示了一个包含有 Ctrl+l 字符的行后将暂停显示,并等待接收命令。
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 显示下一屏之前先清屏。
-c 从顶部清屏然后显示。
-s 文件中连续的空白行压缩成一个空白行显示。
-u 不显示下划线
+/ 先搜索字符串,然后从字符串之后显示
+num 从第num行开始显示
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
v 调用vi编辑器
! 调用Shell,并执行命令
q 退出more
less常用参数、操作列表
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
head和tail
head和tail通常使用在只需要读取文件的前几行或者后几行的情况下使用。head的功能是显示文件的前几行内容
head的语法:head [n number] 文件名 (number 显示行数)
tail的功能恰好和head相反,只显示最后几行内容
tail的语法:tail [-n number] 文件名
head和tail都
特别值得一提的是tail -f [文件名],可以实时监控文件的内容。
vim
vim命令普遍用于文档的编辑,同时可用于文档的查看,但是用vim打开大文件,会特别慢。vim具体的用法可查看我的上一篇博客 --《Vim命令合集》。
小结
综上,如果只是查看文件内容,比如通过日志进行错误排查,最好使用less命令,less用法多样,支持搜索关键字高亮显示、同时支持向上搜;如果需要对文件进行修改,那就使用vim命令;如果需要通过日志查看程序的运行情况、比如项目启动后的日志详情,那么就使用tail -f。