跳转到内容

less

less 是分页查看工具,边看边读文件,不需要先把整个文件载入内存,几个 GB 的日志也能瞬间打开。名字出自 “less is more”,它是早期 more 的增强版,可以往回翻。

Terminal window
less [选项] 文件
command | less

q 退出,h 打开内置帮助 管道进来的内容 less 会先缓冲,此时往回翻是从缓冲里取,不是重读源头

选项 说明
-N 显示行号
-S 长行不折行,超出屏幕的部分靠左右滚动查看
-i 搜索时忽略大小写,除非搜索词里含大写字母
-R 保留 ANSI 颜色转义,看带色的日志要加
-X 退出时不清屏,内容留在终端里
-F 内容不足一屏就直接打印并退出,不进入交互界面
+F 打开后进入跟随模式,效果同 tail -f,Ctrl-C 退出跟随
+<行号> 打开后跳到指定行
+G 打开后直接到文件末尾
-p <模式> 打开后跳到第一处匹配

进入界面之后按键操作,不用回车。

按键 作用
j / k 下移、上移一行
f / b 下翻、上翻一屏,空格等同 f
d / u 下翻、上翻半屏
g / G 跳到文件开头、结尾
<n>g 跳到第 n 行
Ctrl-G 显示当前位置和文件总行数
按键 作用
/模式 向后搜索,模式是正则,见 regex
?模式 向前搜索
n / N 跳到下一个、上一个匹配
&模式 只显示匹配的行,其余隐藏,再按 & 加空回车还原
Esc u 取消搜索结果的高亮
按键 作用
F 进入跟随模式,等同启动时的 +F
v 用 $EDITOR 打开当前文件
m<字母> / '<字母> 打标记、跳回标记
-<选项> 运行中临时切换某个选项,如 -N 开关行号
q 退出

1. 看日志

Terminal window
less -N +G /var/log/syslog # 带行号,直接停在末尾
less +F /var/log/syslog # 跟随写入,Ctrl-C 停下来往回翻

tail -f 只能往后看,+F 的好处是随时 Ctrl-C 就能回翻查上下文,看完按 F 继续跟

2. 看宽表格

Terminal window
ps aux | less -S

不加 -S 时长行会折到下一行,几列一错位就没法读了 加了之后用左右方向键横向滚动

3. 保留颜色

Terminal window
grep --color=always error app.log | less -R

管道会让 grep 关掉颜色,得用 --color=always 强制开,再用 -R 让 less 认转义序列

4. 打开就定位

Terminal window
less +/ERROR app.log # 跳到第一个 ERROR
less +1200 app.log # 跳到第 1200 行

5. 当 man 的分页器

Terminal window
export LESS='-R -i -F -X'

man、git log 这些默认都用 $PAGER,多数系统上就是 less LESS 环境变量里的选项对所有调用生效,不用每次敲