![给安全工程师讲透Linux](https://wfqqreader-1252317822.image.myqcloud.com/cover/874/48593874/b_48593874.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4.5 利用grep命令进行过滤
在使用命令行的时候,你经常需要查找一个特定的关键字;对此,可以使用grep命令作为过滤器来查找关键字。
grep命令经常在一条命令的执行结果通过管道传输给另一条命令时使用。我会在第2章介绍管道,但就目前来说,知道Linux系统(以及Windows系统在类似的情况下)允许我们将一条命令的输出作为输入发送给另一条命令就足够了。这就叫作管道传输,我们可以利用|命令来完成这种操作(在键盘上,|键通常是在回车键的上方)。
ps命令用于显示主机上正在运行的进程的相关信息。我们将在第6章对其进行详细讲解,但就本例而言,假设我想要查看Linux系统上正在运行的所有进程。在这种情况下,我可以使用ps(processes)命令后跟aux选项来指定要显示的进程信息类型,如下所示:
![](https://epubservercos.yuewen.com/FF643F/28235156504825006/epubprivate/OEBPS/Images/38_01.jpg?sign=1738852161-oWqETVm7hksKOpvHS2qE1okR3aZ1zQv4-0-7478fe54afec818dd933b2ad3259e10b)
这样就提供了一个系统中所有正在运行的进程的列表——但如果我只想查找一个进程以确定它是否正在运行,那么怎么办?
我可以通过将ps命令的输出利用管道传输给grep命令,进而搜索关键字来实现。比如,要查看apache2服务是否正在运行,我可以输入如下内容:
![](https://epubservercos.yuewen.com/FF643F/28235156504825006/epubprivate/OEBPS/Images/38_02.jpg?sign=1738852161-Ojogv3EAZN0kyLuRNuCsM0Cg0v7OdcOT-0-6b118affc413e54d227fff6b0491c7ea)
这条命令通知Linux系统显示所有服务,然后将输出发送给grep命令,该命令将遍历输出信息来查找关键字apache2,之后只显示相关输出,这就为我节省了可观的时间并保护了我的视力。