文件的查找搜索
Linux让人头大的就是各种文件,这也是组成Linux的重要部分,以前查找文件的时候总是临时去某度上搜,现在终于可以系统学习一下查找有哪些命令
-
locate
这是最容易使用的命令,输入需要找到的关键字,该命令会遍历整个文件系统找到匹配项
┌──(rootðkali)-[~]
└─# locate wireshark
/etc/wireshark
/etc/wireshark/init.lua
/root/.config/wireshark
/root/.config/wireshark/profiles
/root/.config/wireshark/recent
/root/.config/wireshark/recent_common
/usr/bin/wireshark
/usr/lib/x86_64-linux-gnu/libwireshark.so.15
/usr/lib/x86_64-linux-gnu/libwireshark.so.15.0.5
/usr/lib/x86_64-linux-gnu/wireshark
.
.
.
缺点:定位结果会产生大量信息,并且locate的数据库每天只更新一次,几分钟前创建的文件可能第二天才会显示
-
whereis
如果你想找二进制文件(程序文件,例如ls,cd,cat),这个命令不仅会返回文件位置,还会返回出源和手册页。
┌──(rootðkali)-[~]
└─# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
缺点:只能寻找二进制文件即程序文件
-
find
更强大的搜索命令
# 基本用法
find directory options expression
如果我想在根目录中搜索一个名为 apache2(开放源码 web 服务器)的文件,我将输入以下命令:
find /➊ -type f➋ -name apache2➌
首先,➊是说明了开始搜索的目录,在这种情况下是 / 。然后➋我指定要搜索的文件类型,在本例中为 f 表示普通文件。最后,➌我给出了我正在搜索的文件的名称,在本例中为 apache2
┌──(rootðkali)-[~]
└─# find / -type f -name apache2
/etc/cron.daily/apache2
/etc/init.d/apache2
/etc/logrotate.d/apache2
/usr/sbin/apache2
/usr/share/lintian/overrides/apache2
/usr/lib/php/8.1/sapi/apache2
如果想搜索带有 apache2 的所有文件,可以使用通配符,即* ,apache2.*
┌──(rootðkali)-[~]
└─# find / -type f -name apache2.*
/etc/apache2/apache2.conf
/var/lib/dpkg/info/apache2.list
/var/lib/dpkg/info/apache2.conffiles
/var/lib/dpkg/info/apache2.md5sums
/var/lib/dpkg/info/apache2.postinst
/var/lib/dpkg/info/apache2.postrm
/var/lib/dpkg/info/apache2.preinst
/var/lib/dpkg/info/apache2.prerm
/var/lib/systemd/deb-systemd-helper-enabled/apache2.service.dsh-also
/var/lib/systemd/deb-systemd-helper-enabled/multi-user.target.wants/apache2.service
/usr/share/man/man8/apache2.8.gz
/usr/share/doc/apache2/examples/apache2.monit
/usr/lib/systemd/system/apache2.service
Tik:快速查看通配符假设我们正在搜索包含 cat,hat,what 和 bat 的文件目录。则通配符?用于表示单个字符,因此搜索?at 会找到 hat,cat 和 bat 而不是 what,因为在此文件名 ?at 中前面有两个字母。[]通配符用于匹配方括号内显示的字符。例如,搜索[c,b]at 会匹配 cat 和 bat 而不是 hat 或别的什么。最常用的通配符是星号( * ),它匹配任何长度的任何字符,从无字符到无限数量的字符。例如,搜索 * at 会找到 hat,cat,bat 及what。*
-
grep
过滤
通常我们需要在大量的内容中找到我们需要的内容,grep
命令就可以作为过滤器。
管道符|
是一个命令的终点当作下个命令的起点
例如 ps
用于显示计算机运行的进程信息,可以使用ps aux来显示进程信息。
┌──(rootðkali)-[~]
└─# ps aux | grep "pdf"
root 4613 0.3 2.7 1496048 170708 ? Sl 20:23 0:31 atril /root/桌面/linux-basics-for-hackers-cn.pdf
root 5644 0.0 0.0 6536 2360 pts/2 S+ 23:07 0:00 grep --color=auto pdf
此命令告诉 Linux 显示我的所有服务,然后将该输出发送到 grep,后者将查看关键字 pdf 的输出,然后仅显示 pdf 相关的输出,
原文始发于微信公众号(黑荆棘安全攻防实验室):Linux-Basics-For-Hacker(第三课)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论