less 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文件与目录命令族(见文件与目录命令族)。看大文件时它比 cat(见cat)和 more 都好用。
less 是"分页器":一次只在屏幕上显示一屏内容,你可以慢慢往下翻、往上翻、搜索、过滤。它的名字来自一句反讽——"less is more"(比 more 更少?其实更强)。处理几 G 的日志、cat 会刷屏的文件,都得靠它。
一、基本用法
less file.log # 打开文件,进入分页浏览
less -N file.log # 显示行号
less +F file.log # 打开即跟踪末尾(等价于 tail -f),按 Ctrl-C 退出跟踪
less打开后不会把整个文件读进内存(按需读取),所以即使文件几个 G 也能秒开。-N显示行号对定位报错极有帮助。+F模式能像tail -f一样实时追日志,但随时按Ctrl-C就能停下来搜索,比tail -f灵活。
二、浏览与翻页
| 按键 | 作用 |
|---|---|
空格 / f | 向下翻一屏 |
b | 向上翻一屏 |
| 回车 / 下箭头 | 向下一行 |
k / 上箭头 | 向上一行 |
g | 跳到文件开头 |
G | 跳到文件末尾 |
50g | 跳到第 50 行 |
这些键位在
man手册、git log里也通用(它们底层都用 less)。G跳末尾看最新日志、g回开头,是排查时最常用的两个动作。
三、搜索:/ 与 ?
/error # 向下搜索 "error",按 n 下一个、N 上一个
?error # 向上搜索
&WARN # 只显示含 WARN 的行(过滤视图),再按 & 清空
/是 less 最强的功能:在几万行日志里找 "OutOfMemory" 一行搞定。&过滤能让你只盯着某一类行(比如只看 WARN),其余行被隐藏——比 grep 更交互。n/N在搜索命中间来回跳。
四、与 cat / more 的对比
cat huge.log # 灾难:全屏刷出,终端卡死
more huge.log # 能翻页,但只能向下、不能向上回翻
less huge.log # 上下都能翻、能搜索、能过滤more 是老古董,只能单向向下翻,看到一半想往回看就没办法。
less完美替代 more,几乎所有发行版都把 more 实现成 less 的软链接。看大文件第一选择就是less。
五、管道接 less
dmesg | less # 内核日志分页看
ps aux | less -S # -S 不折行(长行横向滚动)
grep -R "timeout" . | less
less -S对超长行(如ps aux的 COMMAND 列)不自动换行,用右箭头横向滚动看全。把任何长输出接到less都是好习惯,避免刷屏。
一句话总结
less = 大文件分页查看器:按需读取、秒开几 G 文件;空格/b 上下翻屏、g/G 跳首尾、/ 向下搜、? 向上搜、& 过滤只看某类行;比 more 强(可回翻)、比 cat 安全(不刷屏);管道长输出接 less 不刷屏。