张芷铭的个人博客

less

less 是 Linux/Unix 系统中功能强大的文本查看工具,专为查看大文件设计(无需加载整个文件到内存),支持翻页、搜索、跳转等丰富操作,是 more 指令的增强版,也是日常工作中查看日志、配置文件的首选工具。

一、核心语法

1
less [选项] 文件名
  • 若不指定文件名,可通过管道接收输入(如 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

五、核心优势总结

  1. 高效处理大文件:无需加载整个文件到内存,打开 GB 级日志秒启动(对比 cat/vi 加载慢);
  2. 功能全面:集成翻页、搜索、过滤、跳转、编辑等功能,一站式解决文本查看需求;
  3. 交互友好:快捷键设计简洁(如 / 搜索、G 跳转),学习成本低,常用操作无需记复杂命令。

如果需要更细分的场景用法(如结合管道过滤、批量搜索多个关键词),可以进一步补充说明!

💬 评论