vault backup: 2026-11-07 16:33:44

This commit is contained in:
cheney
2026-11-07 16:33:55 +08:00
commit 7015312702
1208 changed files with 132432 additions and 0 deletions
+215
View File
@@ -0,0 +1,215 @@
`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`
```bash
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`
此时行号会立即显示或隐藏。可以随时再次执行相同操作来切换。
---
### 其他实用组合
- **同时显示行号且不换行(方便看表格数据)**
```bash
less -NS filename
```
- **显示行号并实时跟踪日志**
```bash
less -N +F filename
```
进入后按 `Ctrl+C` 退出跟随模式即可看到行号。
- **行号显示样式说明**
行号默认是右对齐,占据固定宽度。如果文件行数很大(如超过 10 万行),`less` 会自动调整宽度,不会截断。
---
### 注意事项
- `-N` 会稍微降低性能(极大数据集时),但通常可以忽略。
- 在管道中使用时,`less -N` 也能工作,例如:`grep error log.txt | less -N`。
如果你希望**永久开启行号**,可以在 `~/.lesskey` 或环境变量 `$LESS` 中设置:
```bash
export LESS="-N"
```
这样每次使用 `less` 都会自动显示行号。
---
## 5. 实时查看动态文件(类似 tail -f)
```bash
less +F logfile
```
或进入 `less` 后按 `F`(大写)。
此时 `less` 会进入**跟随模式**,新追加的内容会自动显示。要退出跟随模式并回到普通 `less` 视图,按 `Ctrl+C`。
---
## 6. 多文件操作
同时查看多个文件:
```bash
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、源码阅读、日志分析),我可以进一步展开。