Linux 有哪些功能相似的命令

Linux 命令系统的一个强大之处在于,同一个任务往往有多种实现方式,这得益于其"一个工具只做好一件事"的哲学,但也因此产生了许多功能相似或重叠的命令。

下面我将从不同任务角度,列举一些功能相似的命令,并解释它们之间的细微差别。


1. 文件列表(ls 的替代品)

  • ls: 最经典、最常用的列表命令。

  • dir : 在大多数 Linux 系统中,这实际上是 ls 的一个别名,行为与 ls 几乎完全相同。它主要为了照顾从 Windows/DOS 转过来的用户习惯。

  • vdir : 相当于 ls -l,默认以长格式列出文件详细信息。

  • exa / lsd : 现代替代品。它们是 ls 的增强版,默认支持颜色、图标、更好的布局(树状图),并且对 Git 状态等有更好的集成。需要额外安装

  • tree: 以树状图形式列出目录内容,非常直观地显示文件层级关系。

区别:

  • ls 是标准工具,所有系统都有。

  • exa/lsd 更美观,功能更现代化。

  • tree 专注于展示层级结构。


2. 文件查看(cat 的兄弟姐妹)

  • cat : 连接文件并打印到标准输出。适合查看整个短文件。

  • less : 最常用的文件查看器。支持上下翻页、搜索、跳转等,适合查看长文件(推荐大多数时候使用 less

  • more : less 的前身,功能比 less 弱(例如不能向上翻页)。在需要向上翻页的场景下,基本已被 less 取代。

  • head: 只看文件开头的几行(默认10行)。

  • tail : 只看文件末尾的几行(默认10行),常用 -f 参数来实时追踪日志文件的新增内容。

  • bat : 现代替代品。一个带有语法高亮、Git 集成和自动分页的 cat 克隆。需要额外安装

区别:

  • cat 一次性输出全部内容。

  • less/more 用于交互式分页查看。

  • head/tail 用于查看文件的特定部分。

  • bat 提供更佳的阅读体验。


3. 查找文件

  • find: 最强大、最经典的递归文件查找工具。可以根据文件名、类型、大小、修改时间、权限等几乎所有元数据进行搜索,并能对搜索结果执行操作。

  • locate : 基于数据库的快速查找。它搜索一个预建的文件名数据库,速度极快,但无法查找新创建的文件(除非更新数据库 updatedb),并且只能根据文件名查找。

  • fd : 现代替代品。一个更简单、更快、对用户更友好的 find 替代品。默认忽略隐藏文件和 .gitignore 中的文件,输出带颜色。需要额外安装

  • which : 在 $PATH 环境变量中查找可执行文件的位置。

  • whereis: 查找二进制文件、源代码和手册页的位置。

区别:

  • find 功能最全,但语法稍复杂。

  • locate 速度最快,但结果可能不是实时的。

  • fd 在易用性和速度上取得了很好的平衡。


4. 文本处理(grep 的伙伴们)

  • grep: 使用正则表达式全局搜索文本,并打印匹配的行。是文本搜索的瑞士军刀。

  • ack: 专为程序员设计的代码搜索工具,默认递归搜索,忽略版本控制目录,输出高亮。

  • ag (The Silver Searcher) : 比 ack 更快的工具,用法类似。

  • rg (ripgrep) : 目前公认最快的文本搜索工具。默认递归,尊重 .gitignore,速度极快。强烈推荐安装

  • sed: 流编辑器,用于对文本进行过滤和转换(如替换、删除、打印特定行)。

  • awk: 更强大的文本分析工具,几乎是一门编程语言,擅长处理结构化文本(如 CSV)。

区别:

  • grep 主要用于查找包含特定模式的行。

  • ack/ag/rg 是专门为搜索代码优化的 grep 增强版。

  • sed 主要用于编辑文本流。

  • awk 主要用于分析和报告文本数据。


5. 进程查看

  • ps: 显示当前进程的快照。功能强大,参数繁多。

  • top: 经典的交互式进程查看器,动态显示系统资源和进程状态。

  • htop : top 的增强版,具有更美观的界面,支持鼠标操作,垂直和水平滚动,更方便地杀死进程等。强烈推荐安装

  • pstree: 以树状图形式显示进程,可以清楚地看到进程间的父子关系。

  • pgrep / pkill : 根据进程名和其他属性来查找 (pgrep) 或发送信号 (pkill) 给进程,比 ps | grep 再用 kill 更方便。

区别:

  • ps 用于获取一次性的进程列表。

  • top/htop 用于实时监控。

  • pstree 用于查看进程关系。

  • pgrep/pkill 用于快速操作进程。


6. 网络诊断

  • ping: 测试与目标主机的网络连通性和延迟。

  • traceroute / tracepath : 显示数据包到达目标主机所经过的路由路径。tracepath 不需要 root 权限。

  • mtr : pingtraceroute 的结合体,能实时持续地显示到每个路由节点的延迟和丢包率。

  • ss : 用于转储套接字统计信息。现代替代 netstat 的工具,更快更高效。

  • netstat : 传统的网络统计工具,功能强大,但正在被 ssip route 等取代。

  • dig: 强大的 DNS 查询工具,输出详细。

  • nslookup : 另一个 DNS 查询工具,交互式和非交互式均可,但功能不如 dig 丰富。

区别:

  • ping 检查连通性。

  • traceroute/mtr 检查路径。

  • ss/netstat 检查本地网络连接和端口。

  • dig/nslookup 检查 DNS 解析。


7. 磁盘空间查看

  • df: 报告文件系统磁盘空间的使用情况(查看磁盘还剩多少空间)。

  • du: 估算文件和目录的磁盘使用空间(查看某个文件/目录占了多大空间)。

  • ncdu : du 的交互式文本界面版本,可以方便地浏览和删除文件来释放空间。需要额外安装

区别:

  • df 看整体磁盘用量。

  • du 看具体目录/文件的用量。

  • ncdu 是交互式、可视化的 du

总结

任务 经典/基础命令 现代/增强命令
文件列表 ls exa, lsd
文件查看 cat, less bat
查找文件 find, locate fd
文本搜索 grep ack, ag, rg
进程查看 ps, top htop
网络诊断 ping, netstat mtr, ss
磁盘分析 df, du ncdu

掌握这些命令的经典版本是基础,了解它们的现代替代品则可以极大地提升你在 Linux 环境下的工作效率和舒适度。

相关推荐
低音钢琴3 小时前
【从零开始构建性能测试体系-08】如何诊断性能瓶颈:从服务器到数据库的全方位分析
服务器·数据库·php
馨谙4 小时前
Linux 服务管理:重新加载 vs 重新启动的本质区别
linux·运维·服务器
小白银子4 小时前
零基础从头教学Linux(Day 55)
java·linux·服务器·python
岚天start4 小时前
Linux内核coredump分析方案
linux·运维·服务器·gdb·coredump·堆栈·内存快照
屁股割了还要学5 小时前
【Linux入门】常用工具:yum、vim
linux·运维·服务器·c语言·c++·学习·考研
云计算练习生5 小时前
linux shell编程实战 03 数组:批量处理数据
linux·运维·服务器·数组·shell编程
王道长服务器 | 亚马逊云5 小时前
AWS Elemental MediaConvert:视频转码不再难
linux·服务器·网络·云计算·音视频·aws
Jm_洋洋5 小时前
【Linux系统编程】程序替换:execve(execl、execlp、execle、execv、execvp、execvpe)
linux·运维·c语言·开发语言·程序人生
qq_479875435 小时前
TCP网络编程本质
服务器·网络·tcp/ip