我希望有人可以一点一点地解释这个命令的每个部分的作用。
ifconfig | grep -Po "HWaddr \K.*$"
例如,The-Po
是为了什么?
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
(MAC 或硬件地址)。\K
设置我们想要打印的起点(对于-o
上面的选项)。.*
告诉尽可能多grep
地匹配任何字符 ( .
) ( *
),至少直到行尾 ( $
)。
总而言之,该命令从ifconfig
与系统上网络接口的 MAC 地址匹配的部分中获取信息并搜索这些部分,并将这些部分打印在新的一行上。
1 : “有些人在遇到问题时会想‘我知道,我会使用正则表达式。’ 现在他们有两个问题。” Jamie Zawinski,1997(尽管这句话经常断章取义)
归档时间: |
|
查看次数: |
558 次 |
最近记录: |