Linux-Basics-For-Hacker(第三课)

admin 2023年2月21日13:31:52评论16 views字数 2373阅读7分54秒阅读模式

文件的查找搜索

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(第三课)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月21日13:31:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux-Basics-For-Hacker(第三课)http://cn-sec.com/archives/1268144.html

发表评论

匿名网友 填写信息