下面我将为你详细解释 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 都支持)。
  • qQ:退出 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 然后回车)
&字符串 只显示包含该字符串的行(非常强大的过滤功能)

为什么 lessmore 更好?

  • 支持上下滚动:可以自由地向前和向后浏览。
  • 更强大的搜索:支持向前(?)和向后(/)搜索。
  • 界面友好:底部会显示文件名、当前位置、总字节数等信息。
  • 无需等待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 分页浏览文件 上下翻页;搜索、过滤等高级功能 ⭐⭐⭐⭐⭐ (必学)

黄金组合:

  1. 快速检查文件: head filename / tail filename
  2. 实时监控日志: tail -F application.log
  3. 浏览和分析文件: less filename (这是你的瑞士军刀)

记住这个口诀:“从头看 head,从尾看 tail,翻阅查看 less 强,more 是老皇历”

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐