less 是 Linux/Unix 系统中功能强大的文本查看工具,专为查看大文件设计(无需加载整个文件到内存),支持翻页、搜索、跳转等丰富操作,是 more 指令的增强版,也是日常工作中查看日志、配置文件的首选工具。
一、核心语法
- 若不指定文件名,可通过管道接收输入(如
cat 大文件.log | less)。 - 进入
less 交互模式后,按 q 退出。
二、常用命令行选项(启动时使用)
| 选项 | 功能说明 |
|---|
-N / --LINE-NUMBERS | 显示行号(查看配置文件、日志时常用) |
-i / --ignore-case | 搜索时忽略大小写(默认区分大小写) |
-I / --IGNORE-CASE | 搜索时强制忽略大小写(比 -i 更严格,连大写关键词也匹配小写) |
-S / --chop-long-lines | 不自动换行(长行横向滚动查看,避免内容错乱) |
-X / --no-init | 退出 less 后不清除屏幕内容(保留查看过的内容) |
-M / --long-prompt | 显示详细提示(底部显示当前行号、总行数、百分比,比默认提示更直观) |
-w / --hilite-unread | 切换页面时,高亮显示未阅读的行 |
-o 日志文件 | 将搜索结果保存到指定日志文件(如 less -o search.log 大文件.log) |
+行号 | 启动后直接跳转到指定行(如 less +100 日志.log 跳转到第 100 行) |
+/关键词 | 启动后直接搜索并定位到第一个匹配的关键词(如 less +/error 日志.log) |
三、交互模式操作(进入less后使用)
进入 less 后,通过键盘快捷键操作,核心分为「翻页/滚动」「搜索」「跳转」「编辑/其他」四大类,常用操作如下:
1. 翻页与滚动(最基础操作)
| 快捷键 | 功能说明 |
|---|
空格 / f | 向下翻一整页(等同于 page down) |
b | 向上翻一整页(等同于 page up) |
Enter / ↓ | 向下滚动一行(等同于 arrow down) |
↑ | 向上滚动一行(等同于 arrow up) |
d / Ctrl+D | 向下翻半页 |
u / Ctrl+U | 向上翻半页 |
Ctrl+F | 向下翻一整页(同 空格) |
Ctrl+B | 向上翻一整页(同 b) |
G | 跳转到文件末尾 |
g | 跳转到文件开头 |
zz | 将当前行居中显示(避免行在屏幕顶部/底部,方便阅读上下文) |
2. 搜索功能(查看日志、找关键词必备)
| 快捷键 | 功能说明 |
|---|
/关键词 | 向下搜索「关键词」(如 /error 查找所有 error 日志) |
?关键词 | 向上搜索「关键词」(从当前位置往上找,适合漏看时回溯) |
n | 跳转到下一个匹配结果(/ 搜索后向下跳,? 搜索后向上跳) |
N | 跳转到上一个匹配结果(与 n 方向相反) |
&模式 | 只显示匹配「模式」的行(过滤无关内容,如 &warning 只看警告日志) |
&!模式 | 只显示不匹配「模式」的行(反向过滤,如 &!debug 隐藏调试日志) |
3. 跳转与定位(快速找到目标位置)
| 快捷键 | 功能说明 |
|---|
行号+G | 跳转到指定行(如 50G 跳转到第 50 行,配合 -N 行号显示更方便) |
+行号 | 从当前位置向下跳指定行数(如 +10 向下跳 10 行) |
-行号 | 从当前位置向上跳指定行数(如 -5 向上跳 5 行) |
% | 跳转到文件中间位置(50% 处) |
Ctrl+G | 显示当前文件信息(文件名、当前行号、总行数、百分比,同 -M 提示) |
m+字母 | 标记当前位置(如 ma 标记为 a,支持 26 个字母标记) |
'+字母 | 跳转到之前标记的位置(如 'a 跳回 a 标记处) |
4. 编辑与文件操作(进阶功能)
| 快捷键 | 功能说明 |
|---|
v | 用系统默认编辑器打开当前文件(如 vim),编辑后保存退出会回到 less |
:e 新文件名 | 在 less 中打开另一个文件(无需退出,直接切换,如 :e 其他日志.log) |
:n | 打开下一个文件(若启动时传入多个文件,如 less 1.log 2.log,用 :n 切换) |
:p | 打开上一个文件(与 :n 相反) |
:q / Q | 退出 less(若有多个文件,退出当前文件;所有文件退出则返回终端) |
:q! | 强制退出(忽略未保存的操作,快速退出) |
5. 其他实用操作
| 快捷键 | 功能说明 |
|---|
h | 查看 less 完整帮助文档(所有快捷键都能在这里找到) |
R | 刷新文件内容(适合实时查看日志,如 `tail -f 日志.log |
= / Ctrl+G | 显示文件统计信息(文件名、行数、字节数、当前位置百分比) |
| ` | 模式` |
~ | 隐藏空行(只显示非空内容,适合清理格式混乱的文件) |
四、经典使用场景示例
1. 查看大日志并显示行号、忽略大小写搜索
1
2
| less -N -i app.log # 显示行号,搜索时忽略大小写
# 进入后输入 /error 查找错误日志,按 n 跳转到下一个错误
|
2. 实时查看日志(替代 tail -f)
1
2
| tail -f app.log | less # 实时输出日志到 less
# 按 R 刷新最新内容,按 / 搜索关键词,按 q 退出
|
3. 只查看日志中的警告和错误(过滤无关内容)
1
2
| less app.log
# 进入后输入 &warning|error (只显示包含 warning 或 error 的行)
|
4. 打开多个文件并切换
1
2
| less log1.log log2.log log3.log # 一次性打开3个文件
# 按 :n 切换到下一个文件,:p 切换到上一个文件
|
5. 跳转到日志中指定行并编辑
1
2
| less -N config.conf # 显示行号
# 找到需要编辑的行(如 25 行),按 v 用 vim 编辑,编辑后保存退出回到 less
|
五、核心优势总结
- 高效处理大文件:无需加载整个文件到内存,打开 GB 级日志秒启动(对比
cat/vi 加载慢); - 功能全面:集成翻页、搜索、过滤、跳转、编辑等功能,一站式解决文本查看需求;
- 交互友好:快捷键设计简洁(如
/ 搜索、G 跳转),学习成本低,常用操作无需记复杂命令。
如果需要更细分的场景用法(如结合管道过滤、批量搜索多个关键词),可以进一步补充说明!
💬 评论