Liunx基础知识 --2 查找
本教程的重点是通过命令行在 Linux 中查找您要查找的内容。
locate
Linux 有多种从命令行查找应用程序、命令、文件等的方法。可能最容易使用的是locate。Locate,后跟一个关键字,将遍历您的文件系统并找到该词的每一次出现。

有时locate发现的信息太多了。此外,如果您刚刚创建了一个文件,它可能不会出现在此列表中,因为locate使用每天更新一次的数据库。您今天创建的文件通常要到明天才会出现在该数据库中。
whereis
如果我们知道我们正在寻找的是二进制文件(类似于 Windows 中的可执行文件),Linux 有一个特定的命令。这个命令是whereis。whereis不仅会返回二进制文件的位置,还会返回它的手册或手册页。
kali > whereis aircrack-ng

正如您在上面看到的,whereis仅返回 aircrack-ng 二进制文件,而不是像 locate 那样返回所有出现的 aircrack-ng。
which
which命令更加具体。它只会返回 Linux 中 PATH 变量中二进制文件的位置。
kali > which aircrack-ng

正如您在上面看到的,它能够在 PATH 变量中列出的目录中找到一个二进制文件。我们将在有关 PATH 变量的后续教程中做更多的事情,但现在知道 PATH 变量是操作系统查找您在命令行键入的二进制文件(命令)的地方就足够了。至少,这通常包括 /usr/bin。
find
find命令是最强大和最灵活的查找实用程序。find能够在任何指定目录中开始搜索,并查找许多不同的参数,当然包括文件名,但也可以找到满足其他条件的文件,例如 ;
1.创建或修改日期
2. 所有者
3.组
4.权限
5.尺寸
find的基本语法是;
find <要搜索的目录列表> <选项> <表达式>
因此,如果我想搜索从文件系统(根)/目录顶部开始的名称为 apache2 的文件,我会键入;
kali > find / -type f -name apache2
/是开始搜索的目录
-type在这种情况下是文件类型 -f 或普通文件
-name按名称或 apache2 搜索

如您所见,find 命令从文件系统的顶部开始,遍历每个目录以查找我们的 apache2 命令。它找到了许多它的实例并为我们列出了它们。不幸的是,这样的搜索很慢并且需要find在每个目录中查找。如果我们只希望它在 /etc 目录中查找怎么办?
kali > find /etc -type f -name apache2

正如我们在上面看到的,这种更快的搜索只在 /etc 目录及其子目录中找到了那些 apache2 的出现。同样重要的是要注意,与 locate 等其他一些搜索命令不同,find仅显示完全匹配的名称。如果文件 apache2 有扩展名,例如 apache2.conf,它将不匹配。我们可以通过使用通配符(*.、? 和 [])来弥补这个限制。在这种情况下,让我们在 /etc 目录中查找以 apache2 开头并具有任何扩展名的所有文件(我们可能正在查找 apache2.conf)。我们可以编写一个带有通配符的查找命令,例如;

kali > ps aux

如您所见,这为我提供了该系统中运行的所有服务。如果我只想在这个长列表中找到一项服务怎么办?
我可以通过将 ps 的输出传输到grep并查找关键字来完成此操作。例如,如果我想知道 apache2 服务是否正在运行,我可以输入;
kali > ps aux | grep apache2
此命令表示“显示我的所有服务,然后将该输出发送到 grep,它将在其中查找关键字 apache2,然后仅显示该输出”。
正如您在上面看到的,grep 能够过滤掉所有其他服务,并且只显示名称中包含 apache2 的服务,从而节省了我大量的时间和视力扫描列表手动查找 apache2。
参考链接:https://www.hackers-arise.com/post/2016/08/08/Linux-Basics-for-the-Aspiring-Hacker-Part-2-Finding-stuff
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~