Linux命令行:cat、more、less终极指南

以下介绍了 Linux 命令行中三个用于查看文本内容的核心工具:catmoreless。下面我将逐部分帮你深入理解它们的用途、区别和最佳实践。


🧾 1. cat --- 快速显示短文件

作用cat(全称 concatenate )主要用于一次性输出整个文件内容到终端。

bash 复制代码
cat /etc/fstab
  • 适合场景:文件较短(比如配置文件、小日志),能完整显示在屏幕上。

  • 不适合:大文件(如日志、内核消息),因为内容会"哗啦"一下滚屏过去,根本来不及看。

  • 💡 小知识:cat 也可以合并多个文件:

    bash 复制代码
    cat file1.txt file2.txt > combined.txt

📖 2. more --- 分页查看(只能往下翻)

作用more 让你一页一页地向下浏览文件内容。

bash 复制代码
more dmesg.txt
  • 操作方式:
    • 空格键(Space) → 翻到下一页
    • 回车(Enter) → 向下一行
    • q → 退出
  • ⚠️ 重大限制不能向上滚动!一旦翻过一页,就回不去了。
  • 所以它适合"从头到尾线性阅读"的场景,但交互性差。

📝 示例中用 sudo dmesg >> dmesg.txt 创建了一个长文件(内核日志),正是为了展示 cat 的不足和 more 的价值。


🔍 3. less --- 更强大的分页查看器(可上可下)

作用lessmore 的"升级版",名字其实是程序员幽默 ------ "less is more"。

bash 复制代码
less dmesg.txt
  • 操作方式更灵活:
    • ↑ / ↓ 方向键:上下滚动
    • 空格键:下一页
    • b 键:上一页(back)
    • /keyword:搜索关键词(按 n 跳转下一个)
    • q:退出
  • 优势
    • 支持双向滚动
    • 启动快(不需要读完整个文件)
    • 支持搜索、跳转行号等高级功能
  • 💡 实际上,less 是现代 Linux 系统中最推荐的文本查看工具

🚫 4. 不要写 cat file | more(常见误区!)

很多人习惯写:

bash 复制代码
cat file.txt | less

但这是多余的

✅ 正确做法:

bash 复制代码
less file.txt      # 直接让 less 读文件
more /etc/passwd   # more 也能直接读
  • moreless 本身就能打开文件,无需 cat 中转。
  • 多此一举不仅浪费资源,还显得不够专业(老手一看就知道是新手写法 😅)。

🔗 5. 与管道(|)结合使用

虽然不需要 cat,但 more/less 非常适合和其它命令配合

bash 复制代码
sudo dmesg | less        # 查看实时内核日志
ps aux | less            # 浏览进程列表
grep "error" log.txt | less  # 查看过滤后的错误日志
  • 这时 less 接收的是命令的输出流,而不是文件,非常有用!
  • 特别是在处理大量输出时,| less 几乎是标配。

🧹 6. 清理测试文件

bash 复制代码
rm dmesg.txt
  • 养成好习惯:练习完记得清理临时文件,保持系统整洁。

✅ 总结对比表

命令 适用场景 能否翻页 能否回滚 能否搜索 是否推荐
cat 短文件、脚本输出 ❌ 一次性输出 ✅(短文件)
more 长文件(只读一遍) 有限 ⚠️(老旧)
less 任何文本查看需求 ✅✅✅(首选)

💡 最佳实践建议

  1. 日常查看文件 → 优先用 less filename
  2. 快速看小配置 → 用 cat /etc/hosts
  3. 查看命令输出 → 用 command | less
  4. 永远不要写 cat file | less,除非你真的需要先拼接多个文件再查看。

通过掌握这三个命令的区别和用法,你就已经迈出了高效使用 Linux 命令行的重要一步!

相关推荐
攒钱植发2 小时前
嵌入式Linux——“大扳手”与“小螺丝”:为什么不该用信号量(Semaphore)去模拟“完成量”(Completion)
linux·服务器·c语言
三五度3 小时前
vmware的ubuntu20.04无网络图标
linux·ubuntu
菜鸟祥哥3 小时前
xfs文件系统磁盘损坏修复
linux
Y淑滢潇潇3 小时前
RHCE Day2 时间管理服务器 NFS服务器
linux·运维·服务器
铭哥的编程日记4 小时前
【Linux网络】五种IO模型与非阻塞IO
linux·服务器·网络·tcp/ip·udp
liu****4 小时前
12.线程同步和生产消费模型
linux·服务器·开发语言·c++·1024程序员节
snakecy4 小时前
常用命令记录
linux·运维·github
cccyi75 小时前
Linux Socket 编程全解析:UDP 与 TCP 实现及应用
linux·tcp socket·udp socket
小苏兮5 小时前
【把Linux“聊”明白】自动化构建-make/Makefile详解
linux·服务器·学习·自动化·1024程序员节