Linux ifconfig - ifconfig 有什么作用?grep -Po "HWaddr \K.*$"

0 linux ifconfig

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

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

例如,The-Po是为了什么?

ber*_*ieb 5

这个命令有什么作用?

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

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


顺便说一句,通常在 Linux 中,您可以通过在 中查找程序和它们的开关来了解它们的作用man,例如:

$ man ifconfig

$ man grep

(等)否则,搜索“<program name>手册”或“<program name>用法”可以回答此类问题。

如果配置

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

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

如果没有给出参数,则 ifconfig 显示当前活动接口的状态。如果给出单个接口参数,则仅显示给定接口的状态;如果给出单个 -a 参数,它会显示所有接口的状态,即使是那些已关闭的接口。否则,它配置一个接口。

(强调我的)

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

| (管道)

管道字符 - |- 此处重定向输出ifconfig而不是显示给您,而是转到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 : “有些人在遇到问题时会想‘我知道,我会使用正则表达式。’ 现在他们有两个问题。” Jamie Zawinski,1997(尽管这句话经常断章取义