使用less命令是Linux中逐页查看文件最高效的方法,支持上下翻页、搜索、实时跟踪等功能,远超more和cat。输入less filename即可打开文件,空格键下翻页,b键上翻页,/进行搜索,q退出。相比cat会刷屏输出、more无法上翻,less具备双向导航、正则搜索、实时刷新(+F)、显示行号(-N)、截断长行(-S)等优势,还能与管道结合处理命令输出,是Linux用户必备的文件浏览工具。

在Linux中逐页查看文件,最直接且高效的方法就是使用
less命令。它允许你像翻书一样浏览长文件内容,并且提供了强大的搜索和导航功能,远比
more或
cat命令来得灵活和强大。可以说,
less是每一个Linux用户都应该熟练掌握的“文件阅读器”。
使用
less命令分页浏览文件内容非常简单。你只需要在终端中输入
less加上你想要查看的文件名即可。例如,如果你想查看名为
mylog.txt的日志文件,只需执行
less mylog.txt。
进入
less界面后,你可以使用以下按键进行导航:
- 空格键 (Spacebar):向下翻一页。
- b 键:向上翻一页。
- Enter 键:向下翻一行。
- y 键:向上翻一行。
-
q 键:退出
less
。 - g 键:跳转到文件开头。
- G 键:跳转到文件末尾。
-
/:进入搜索模式,输入你要搜索的文本后按 Enter,
less
会高亮显示匹配项并跳转到第一个匹配处。 - n 键:在搜索结果中跳转到下一个匹配项。
- N 键:在搜索结果中跳转到上一个匹配项。
这些基础操作,就能让你在处理绝大多数文本文件时游刃有余。
less
与 more
或 cat
有何不同?为何它更受青睐?
说实话,这几乎是Linux新手常问的问题,但答案很简单:
less几乎在所有方面都优于
more,而
cat则完全是不同用途的工具。
cat命令的本意是“concatenate”(连接),它会将整个文件的内容一次性输出到标准输出。如果文件很短,这没问题,但如果文件有几百上千行,甚至更大,
cat会让你的终端被刷屏,你根本来不及看清内容,更别提回溯了。它更适合用于查看配置文件、脚本的简短内容,或者将多个文件连接起来。
more命令是
less的前辈,它也提供了分页功能。你可以向下翻页,但问题在于,它不能向上翻页。一旦你翻过了某个内容,就回不去了,除非你重新打开文件。这在调试日志或者需要反复核对信息时,简直是灾难性的体验。
而
less,就像它的名字暗示的("less is more"的玩笑),它能做的事情远比
more多得多。它不仅可以向前翻页,也可以向后翻页,支持强大的搜索功能(包括正则表达式),甚至可以在文件内容被其他程序更新时实时刷新(有点像
tail -f)。它加载文件时也非常高效,不会一次性把整个文件读入内存,这使得它在处理超大型文件时表现出色。对我来说,
less是一个真正的“文件浏览器”,而
more只是一个“单向阅读器”。
在 less
中如何高效地搜索特定内容或模式?
less的搜索功能是我日常工作中用得最多的特性之一,尤其是处理日志文件时。掌握它能极大地提升你的效率。
当你进入
less界面后:
-
正向搜索:按下
/
键,然后输入你想要搜索的文本或正则表达式,最后按 Enter。less
会跳转到第一个匹配项,并将其高亮显示。 例如:/error
会搜索“error”这个词。 -
反向搜索:按下
?
键,用法同正向搜索,它会从当前位置向文件开头方向搜索。 -
跳转到下一个/上一个匹配项:
- 按下
n
键,会跳转到下一个匹配项。 - 按下
n
键(Shift + n),会跳转到上一个匹配项。
- 按下
-
控制大小写敏感性:默认情况下,
less
的搜索是大小写敏感的。如果你想进行不区分大小写的搜索,可以在搜索模式前加上&
符号,例如:/&error
。或者,你可以在启动less
时使用-i
选项:less -i mylog.txt
。
举个例子,如果你在查看一个Nginx的访问日志,想找出所有状态码为500的请求,你可以这样搜索:
/ " 500 "(注意,500前后有空格,以避免匹配到其他数字)。然后,你就可以通过反复按
n来快速浏览所有匹配的行。这种能力,对于快速定位问题,简直是神器。
less
命令还有哪些不为人知的实用技巧或高级用法?
除了基础的导航和搜索,
less还有一些非常实用的高级功能,它们能让你的文件查看体验更上一层楼。
实时跟踪文件更新(类似
tail -f
): 使用less +F
命令。当你查看一个正在被写入的日志文件时,less
会自动滚动到文件末尾,并实时显示新增内容。如果你想暂停跟踪并查看旧内容,只需按Ctrl+c
。要恢复跟踪,再按F
键即可。这在排查实时问题时非常有用,比tail -f
的好处是,你可以随时暂停并回溯查看历史内容。显示行号: 使用
less -N filename
。这会在每一行的前面显示行号,对于代码审查或引用特定行内容时非常方便。处理长行不换行(截断显示): 当文件中有很长的行时,
less
默认会将其折行显示,这有时会影响阅读体验。使用less -S filename
可以让长行被截断显示,而不是换行。你可以通过左右方向键来查看被截断的部分。直接跳转到文件末尾: 当你打开一个文件时,如果想直接跳到文件末尾(例如查看最新的日志),可以这样使用:
less +G filename
。或者,如果你已经进入less
界面,直接按G
键也能达到同样效果。-
与管道(pipe)结合使用:
less
的强大之处还在于它可以作为管道的接收端。这意味着你可以将任何命令的输出通过管道传递给less
进行分页查看。例如:ls -l /etc | less
:查看/etc
目录下所有文件的详细列表,并进行分页。dmesg | less
:查看内核消息,并进行分页。grep "error" mylog.txt | less
:将grep
搜索到的错误信息通过less
分页显示,这样你就可以逐个查看匹配行了。
这些高级用法,让
less不仅仅是一个简单的文件查看器,更是一个强大的命令行文本处理工具。掌握它们,你就能更高效、更舒适地在Linux环境中工作。










