🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。 🎯 适合人群: Linux 初学者、Ubuntu 新手、计算机专业学生、后端 / 运维 / 测试入门同学、想搭建 Linux 开发环境的开发者、准备学习服务器部署的同学,以及想从 Windows 过渡到 Ubuntu 工作流的用户。
从“会打开终端”到“能管理系统”,从“复制命令”到“理解 Linux 思维”,这一次,我们不零散学,而是一路滚雪球! 🎉 限时福利:当前专栏活动中,一次订阅,终身阅读,后续更新章节全部免费解锁 👉 立即查看 👈️
演示环境说明:
- 开发工具:Visual Studio Code / JetBrains 系列 IDE / Vim / Nano
- Ubuntu版本:Ubuntu 22.04 LTS / Ubuntu 24.04 LTS,推荐 Ubuntu 24.04 LTS
- Linux内核版本:Linux Kernel 6.x 或更高
- 终端环境:Bash / Zsh
- 包管理工具:APT / Snap / Flatpak
- 远程连接工具:OpenSSH / Windows Terminal / MobaXterm / Termius
- 虚拟化环境:VMware Workstation / VirtualBox / WSL2 / 云服务器
- 容器环境:Docker / Docker Compose
- 操作系统:Ubuntu Desktop / Ubuntu Server
全文目录:
-
- 一、前言:为什么\”查找\”是 Linux 里最重要的技能之一?
- 二、本文要解决什么问题
- 三、Ubuntu 版本背景与查找命令的生态
-
- Ubuntu LTS 与查找工具的关系
- 四个查找命令的来源
- Linux 文件系统与查找命令的关系
- 四、四大查找命令概览与对比
- 五、实验环境准备
-
- 5.1 确认系统版本
- 5.2 更新软件源
- 5.3 安装本文涉及的工具
- 5.4 创建实验目录
- 六、核心命令一:find——最强大的文件查找工具
-
- 6.1 find 的基本语法
- 6.2 按文件名查找
- 6.3 按文件类型查找
- 6.4 按时间查找
- 6.5 按文件大小查找
- 6.6 按权限查找
- 6.7 按用户查找
- 6.8 find 与 exec 结合使用
- 6.9 find 的逻辑组合
- 6.10 find 常见陷阱与注意事项
- 七、核心命令二:locate——基于索引的快速文件查找
-
- 7.1 locate 的工作原理
- 7.2 locate 的安装与使用
- 7.3 locate 的常用选项
- 7.4 updatedb 的重要性
- 7.5 locate 的局限性
- 八、核心命令三:which——查找可执行命令的位置
-
- 8.1 which 的基本用法
- 8.2 which 在多版本共存场景下的价值
- 8.3 which 找不到的时候怎么办
- 九、核心命令四:whereis——更全面的程序定位工具
-
- 9.1 whereis 的作用与输出
- 9.2 whereis 与 which 的区别
- 9.3 whereis 的常用选项
- 十、案例一:基础查找实战——从零开始熟悉四个命令
-
- 10.1 案例目标
- 10.2 步骤一:确认环境
- 10.3 步骤二:用 which 和 whereis 了解常用命令
- 10.4 步骤三:用 find 在实验目录查找
- 10.5 步骤四:用 locate 查找系统文件
- 10.6 命令解析
- 十一、案例二:真实场景——排查项目配置文件与日志
-
- 11.1 案例背景
- 11.2 步骤一:确认 Nginx 是否安装
- 11.3 步骤二:找到所有 Nginx 配置文件
- 11.4 步骤三:找到 Nginx 日志文件
- 11.5 步骤四:在配置文件中搜索特定内容
- 11.6 步骤五:查找近期被修改的配置文件
- 11.7 命令解析
- 十二、案例三:工程化运维——批量清理、审计与自动化查找
-
- 12.1 案例目标
- 12.2 任务一:清理旧日志文件
- 12.3 任务二:查找临时文件和孤立文件
- 12.4 任务三:编写自动化查找清理脚本
- 12.5 命令解析
- 十三、四大命令对比与选型流程图
- 十四、常见问题与踩坑总结
-
- Q1:`find` 运行速度很慢,怎么优化?
- Q2:`locate` 找不到刚创建的文件怎么办?
- Q3:`which python3` 输出的路径不是我期望的,怎么排查?
- Q4:`find` 执行时出现大量 \”Permission denied\” 错误,如何处理?
- Q5:`find -name \”*.log\”` 和 `find -name \”*.log*\”` 有什么区别?
- Q6:用 `find -exec rm` 批量删除文件,有什么更安全的替代方案?
- Q7:`whereis` 找不到某个程序,但 `which` 能找到,为什么?
- Q8:在脚本中使用 find 有什么需要注意的地方?
- Q9:`locate` 数据库是否会泄露敏感文件路径?
- Q10:find 命令能查找正在被使用的文件吗?
- Q11:如何查找两个目录之间的差异文件?
- Q12:`find` 能查找硬链接吗?
- 十五、最佳实践建议
-
- 15.1 find 使用规范
- 15.2 locate 使用规范
- 15.3 which 与 whereis 使用规范
- 15.4 安全使用建议
- 15.5 性能建议
- 十六、扩展知识点:查找命令背后的 Linux 文件系统
-
- 16.1 inode 与文件查找
- 16.2 PATH 环境变量的工作机制
- 16.3 文件系统挂载与 find 的关系
- 十七、完整操作流程回顾
- 十八、总结与下一节预告
-
- 18.1 本文核心要点回顾
- 18.2 这些命令在真实工作中的位置
- 18.3 下一节预告
- 🧧 学习福利 · 限时开放 🧧
- 🫵 Who am I?
一、前言:为什么\”查找\”是 Linux 里最重要的技能之一?
我刚开始学 Ubuntu 的时候,最让我崩溃的不是命令不会用,而是根本找不到东西。
装了一个软件,不知道装在哪。改了一个配置文件,不知道它叫什么名字、放在什么路径。服务起不来,不知道日志在哪里。Python 装了好几个版本,运行的时候不知道用的是哪一个。这种\”迷失在文件系统里\”的感觉,相信很多 Linux 初学者都经历过。
Windows 里有\”搜索\”功能,鼠标点一点就能搜文件。macOS 有 Spotlight,按 Command+空格就能全局搜索。Linux 没有这些图形化的入口(或者说,命令行才是它真正的\”搜索引擎\”)。
但当你真正掌握了 find、locate、which、whereis 这四个命令之后,你会发现 Linux 的查找能力远比 Windows 的图形搜索强大得多。你不仅能找到文件,还能按时间、大小、权限、用户、类型来筛选,甚至对找到的文件直接执行操作。这种能力,在真实的服务器运维和开发工作中,几乎每天都会用到。
这篇文章,我打算把这四个命令从\”是什么\”到\”怎么用\”到\”在真实场景怎么落地\”,完整地讲一遍。不会只堆命令,更重要的是讲清楚每个命令背后的设计逻辑,以及什么情况下该用哪一个。
如果你是 Ubuntu 新手,这篇文章会帮你建立起对 Linux 文件查找体系的完整认知。如果你已经用过一段时间 Ubuntu,这篇文章里的一些工程化用法和运维实践,也许会让你有所收获。



