Files
Knowledge/1 使用/Linux/less 命令使用技巧.md

6.6 KiB
Raw Permalink Blame History

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 的一个隐藏神技 —— & 命令:

  1. 按 & 键
  2. 输入正则表达式(例如 error 或 ^INFO)
  3. 回车

→ 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,再按回车。

步骤分解:

  1. 按 -(减号)
  2. 输入 N(大写字母 N)
  3. 按 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 个技巧

  1. / 搜索,n/N 跳转
  2. & 只显示匹配行(比 grep 更灵活)
  3. F 实时跟踪文件增长(tail -f 的替代)
  4. m+字母 和 '+字母 做标记跳转
  5. v 用编辑器打开当前文件(配合 git diff 或日志分析)

需要更具体的场景(比如查看超大 CSV、源码阅读、日志分析),我可以进一步展开。