这个命令起什么作用?

这个命令起什么作用?

我希望有人可以一点一点地解释这个命令的每个部分的作用。

ifconfig | grep -Po "HWaddr \K.*$"

例如 The-Po是做什么用的?

答案1

这个命令起什么作用?

ifconfig | grep -Po "HWaddr \K.*$"

如果可用,则打印出系统上活动网络接口的 MAC /硬件地址。


另外,在 Linux 中,你通常可以通过查找来了解程序以及它们的开关的作用man,例如:

$ man ifconfig

$ man grep

(ETC)除此之外,搜索“<program name>手册”或“<program name>使用方法”可以回答这些问题。

是否配置

ifconfig用于显示和配置网络接口。来自man ifconfig

Ifconfig 用于配置驻留在内核的网络接口。它在启动时根据需要设置接口。此后,通常仅在调试或需要系统调整时才需要它。

如果没有给出参数,ifconfig 将显示当前活动接口的状态。如果给出了单个接口参数,则仅显示给定接口的状态;如果给出了单个 -a 参数,则显示所有接口的状态,包括关闭的接口。否则,它将配置一个接口。

(重点是我的)

这里ifconfig报告您当前活动接口的状态。

| (管道)

管道字符 - |- 这里重定向输出而不是ifconfig显示给你,而是转到grep

grep

grep用于模式匹配,并且(通常)打印与模式匹配或不匹配的内容。

这里提供的选项是-P-o

-P

将 PATTERN 解释为 Perl 正则表达式 (PCRE,见下文)。这是高度实验性的,grep -P 可能会警告未实现的功能。

正则表达式是一个很长的话题1,但基本上,这让我们grep匹配一些额外的模式。

-o

仅打印匹配行中匹配的(非空)部分,每个部分位于单独的输出行上。

(均引自 grep 手册页)

此选项表明grep我们只对与模式匹配的部分感兴趣,而不是整行(如果匹配)。

“HWaddr \K.*$”

这部分告诉我们正在寻找HWaddr(MAC 或硬件地址)。\K设置我们想要打印内容的起点(对于-o上面的选项)。.*告诉尽可能多次()grep匹配任何字符(),至少直到行尾()。.*$

输出/结果

总而言之,该命令从ifconfig系统上网络接口的 MAC 地址获取信息并搜索匹配的部分,然后在新行上打印出来。


1:“有些人在遇到问题时会想‘我知道,我会使用正则表达式。’现在他们有两个问题。” 杰米·扎温斯基,1997 年(尽管这句话经常被引用断章取义

相关内容