6.6 KiB
6.6 KiB
less 是一个功能强大的分页查看器,远远不止“空格翻页”那么简单。以下是一些能显著提升效率的实用技巧。
1. 基础但重要的导航
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 向下翻一屏 | 空格 / f / Ctrl+F |
最常用 |
| 向上翻一屏 | b / Ctrl+B |
|
| 向下翻一行 | j / e / ↓ / Enter |
|
| 向上翻一行 | k / y / ↑ |
|
| 转到文件首行 | g |
|
| 转到文件末行 | G |
|
| 转到第 n 行 | n + g 或 nG |
例如 100g |
| 跳转百分比 | n% |
例如 50% |
| 向右滚动 | → |
长行 |
| 向左滚动 | ← |
2. 强大的搜索功能
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 向前搜索 | /关键词 + Enter |
向下查找 |
| 向后搜索 | ?关键词 + Enter |
向上查找 |
| 查找下一个 | n |
保持同一方向 |
| 查找上一个 | N |
反方向 |
| 搜索时不区分大小写 | /关键词 然后按 -i 再按 Enter |
或启动时加 -i |
| 高亮所有匹配 | /关键词 后,输入 & 并回车 |
见下文“过滤模式” |
💡 技巧:输入 / 后按 ↑ 可以调出上一次搜索的关键词。
3. 高级过滤:只显示匹配的行(类似 grep)
这是 less 的一个隐藏神技 —— & 命令:
- 按
&键 - 输入正则表达式(例如
error或^INFO) - 回车
→ less 会只显示包含该模式的行,其他行隐藏。效果类似于 grep 但仍在 less 中,可以继续上下翻动、搜索。
- 退出过滤模式:按
&然后直接回车(不输入内容)
4. 标记与跳转(适合查看长日志或代码)
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 设置标记 | m + 小写字母 |
例如 ma 在当前行设标记 a |
| 跳转到标记 | ' + 同一字母 |
例如 'a 跳回标记 a 位置 |
| 查看所有标记 | 无直接命令 | 但标记会保持到退出 |
💡 标记在查看大文件时极有用:例如看到一处错误,设标记 me,继续往下翻,然后 'e 快速回来。
在 less 中显示行号有两种常用方法:
方法一:启动时加参数 -N
less -N filename
示例效果:
1 first line
2 second line
3 third line
-N 表示 --LINE-NUMBERS,在每行前面显示行号(从 1 开始)。
方法二:在 less 运行中动态切换
进入 less 后,按 - 键,然后按 N,再按回车。
步骤分解:
- 按
-(减号) - 输入
N(大写字母 N) - 按
Enter
此时行号会立即显示或隐藏。可以随时再次执行相同操作来切换。
其他实用组合
-
同时显示行号且不换行(方便看表格数据)
less -NS filename -
显示行号并实时跟踪日志
less -N +F filename进入后按
Ctrl+C退出跟随模式即可看到行号。 -
行号显示样式说明
行号默认是右对齐,占据固定宽度。如果文件行数很大(如超过 10 万行),less会自动调整宽度,不会截断。
注意事项
-N会稍微降低性能(极大数据集时),但通常可以忽略。- 在管道中使用时,
less -N也能工作,例如:grep error log.txt | less -N。
如果你希望永久开启行号,可以在 ~/.lesskey 或环境变量 $LESS 中设置:
export LESS="-N"
这样每次使用 less 都会自动显示行号。
5. 实时查看动态文件(类似 tail -f)
less +F logfile
或进入 less 后按 F(大写)。
此时 less 会进入跟随模式,新追加的内容会自动显示。要退出跟随模式并回到普通 less 视图,按 Ctrl+C。
6. 多文件操作
同时查看多个文件:
less file1 file2 file3
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 查看下一个文件 | :n |
|
| 查看上一个文件 | :p |
|
| 列出所有文件 | :f |
显示当前文件名及位置 |
| 切换到第 N 个文件 | :x N |
7. 常用命令行选项(启动时)
| 选项 | 效果 |
|---|---|
less -N filename |
显示行号 |
less -i filename |
搜索时不区分大小写 |
less -S filename |
不换行(长行横向滚动),按 -S 可动态切换 |
less -R filename |
保留 ANSI 颜色(例如 ls --color=yes | less -R) |
less -F filename |
若文件短于一屏则直接 cat(适合脚本) |
less +F filename |
启动即进入 follow 模式 |
less +/error filename |
启动后直接搜索 error |
8. 实用内部命令(在 less 内输入)
| 命令 | 效果 |
|---|---|
= 或 Ctrl+G |
显示当前行号、总行数、百分比 |
-N 然后回车 |
动态显示/隐藏行号 |
-S 然后回车 |
动态切换长行折行/切分模式 |
-i 然后回车 |
动态切换搜索大小写敏感 |
v |
用默认编辑器($EDITOR)打开当前文件并定位到同一行 |
h |
显示完整帮助 |
q 或 Q |
退出 |
9. 使用正则表达式搜索
/ 和 ? 支持基础正则表达式:
error\|warn匹配 error 或 warn^INFO行首.*abc.*任意包含 abc\berror\b全词匹配
💡 若想使用扩展正则(如 + ?),可以在 less 中按 -E 启用(less -E 启动或在内部按 -E 回车)。不同版本支持度略有差异。
10. 实用组合技
| 需求 | 命令/步骤 |
|---|---|
| 查看大日志,高亮关键词 | less -p "error" big.log(启动后自动搜索并高亮) |
| 实时跟踪并搜索 | less +F log 然后按 Ctrl+C 进入普通模式,按 / 搜索,再按 F 恢复跟踪 |
| 过滤出错误行并实时跟踪 | less +F log 按 Ctrl+C,按 &error 过滤,再按 F |
| 查看命令输出的同时保存副本 | command | tee output.log | less |
总结:最值得记住的 5 个技巧
/搜索,n/N跳转&只显示匹配行(比grep更灵活)F实时跟踪文件增长(tail -f的替代)m+字母 和'+字母 做标记跳转v用编辑器打开当前文件(配合git diff或日志分析)
需要更具体的场景(比如查看超大 CSV、源码阅读、日志分析),我可以进一步展开。