下面我将为你详细解释 head, tail, less, 和 more 的用法、区别以及实用技巧。
1. head - 查看文件开头
head 命令默认显示文件的前 10 行。
基本语法:
head [选项] [文件]
常用选项:
-n <行数>或--lines=<行数>:指定显示文件的开头多少行。- 例如:
head -n 20 file.txt显示file.txt的前 20 行。
- 例如:
-c <字节数>:指定显示文件的开头多少个字节。- 例如:
head -c 100 file.txt显示file.txt的前 100 个字节。
- 例如:
使用示例:
# 查看 file.log 的前 10 行 (默认行为)
head file.log
# 查看 file.log 的前 5 行
head -n 5 file.log
# 或者这种简写形式也可以
head -5 file.log
# 查看 file.log 的前 1KB 内容
head -c 1024 file.log
应用场景:
快速检查一个大文件的开头部分,例如确认文件的格式、列名(在 CSV 或数据库导出文件中)或日志文件的启动信息。
2. tail - 查看文件末尾
tail 命令默认显示文件的最后 10 行。它最强大的功能是可以实时追踪日志文件的更新。
基本语法:
tail [选项] [文件]
常用选项:
-n <行数>或--lines=<行数>:指定显示文件的末尾多少行。- 例如:
tail -n 20 file.log显示file.log的最后 20 行。
- 例如:
-c <字节数>:指定显示文件的末尾多少个字节。-f或--follow:实时追踪文件末尾的内容更新。这是监控日志文件最重要的选项。- 例如:
tail -f /var/log/syslog会持续显示写入该日志的新内容。
- 例如:
-F:类似于-f,但更强大。即使在追踪过程中文件被轮转(Rotated,例如被日志管理工具重命名或截断),它也能重新打开新文件并继续追踪。监控日志时强烈推荐使用-F。
使用示例:
# 查看 file.log 的最后 10 行 (默认行为)
tail file.log
# 查看 file.log 的最后 15 行
tail -n 15 file.log
# 简写形式
tail -15 file.log
# 实时追踪 application.log 的更新
tail -f application.log
# 更健壮地实时追踪日志 (应对日志轮转)
tail -F application.log
# 组合使用:从第20行开始显示到文件末尾
# 注意:这其实是 sed 的用法,但常与 tail 概念混淆,这里列出供参考
sed -n '20,$p' file.log
应用场景:
- 查看最近的日志错误信息。
- 实时监控应用程序或系统服务的日志输出(
-f或-F)。
3. more - 分页浏览文件(基础版)
more 是一个早期的分页程序,允许你一页一页地向下浏览长文件。
基本语法:
more [选项] [文件]
常用操作键(在 more 浏览界面中):
空格键或f:向下翻一页。回车键:向下翻一行。b:向上翻一页(但并非所有版本的more都支持)。q或Q:退出more。/字符串:向下搜索指定的字符串。
主要限制:
- 只能向前翻页,不能向后翻页(大部分实现中
b键无效)。 - 功能比
less简单。
应用场景:
在只有 more 没有 less 的极简环境中使用。在现代系统中,less 几乎已经完全取代了 more。
4. less - 分页浏览文件(增强版)
less 的意思是 “opposite of more”(比 more 更多),它是 more 的增强版,也是最推荐使用的文件浏览工具。
基本语法:
less [选项] [文件]
常用操作键(在 less 浏览界面中):
| 按键 | 功能 |
|---|---|
空格键 或 f | 向下翻一页 |
b | 向上翻一页 |
j 或 ↓ | 向下移动一行 |
k 或 ↑ | 向上移动一行 |
g | 跳到文件第一行 |
G | 跳到文件最后一行 |
/字符串 | 向下搜索字符串(按 n 跳转到下一个匹配项,N 上一个) |
?字符串 | 向上搜索字符串 |
q | 退出 less |
F | 进入实时追踪模式,类似 tail -f(按 Ctrl+C 退出追踪再按 q 退出) |
-N | 启动选项:显示行号(也可以在浏览时输入 -N 然后回车) |
&字符串 | 只显示包含该字符串的行(非常强大的过滤功能) |
为什么 less 比 more 更好?
- 支持上下滚动:可以自由地向前和向后浏览。
- 更强大的搜索:支持向前(
?)和向后(/)搜索。 - 界面友好:底部会显示文件名、当前位置、总字节数等信息。
- 无需等待:
less不会在启动时加载整个文件,所以打开大文件速度极快。 - 额外功能:如行号、文本过滤、仿 tail -f 模式等。
使用示例:
# 查看文件
less large_file.txt
# 查看文件并显示行号
less -N large_file.txt
# 查看命令输出
dmesg | less
# 打开文件后立即执行搜索(跳转到第一个匹配 "error" 的行)
less +/error logfile.txt
应用场景:
- 浏览任何长度超过一屏的文件或命令输出。
- 在日志文件中搜索特定的错误信息。
- 查看代码文件、配置文件等。
总结与对比
| 命令 | 主要用途 | 关键特性 | 推荐度 |
|---|---|---|---|
head | 查看文件开头 | 默认显示前 10 行 | ⭐⭐⭐⭐ |
tail | 查看文件末尾 | 默认显示后 10 行;-f/-F 可实时追踪 | ⭐⭐⭐⭐⭐ |
more | 分页浏览文件 | 只能向下翻页;功能基础 | ⭐⭐ (历史遗留) |
less | 分页浏览文件 | 可上下翻页;搜索、过滤等高级功能 | ⭐⭐⭐⭐⭐ (必学) |
黄金组合:
- 快速检查文件:
head filename/tail filename - 实时监控日志:
tail -F application.log - 浏览和分析文件:
less filename(这是你的瑞士军刀)
记住这个口诀:“从头看 head,从尾看 tail,翻阅查看 less 强,more 是老皇历”。

4151

被折叠的 条评论
为什么被折叠?



