在终端中显示活动接口
Show active interfaces in terminal
我正在尝试列出我当前正在使用的网络接口。我需要知道如何在终端和脚本中执行此操作。
ifconfig | grep $(networksetup -listnetworkserviceorder | grep 'Ethernet, Device' | sed -E "s/.*(en[0-9]).*//")
我得到了什么:
enter image description here
我想得到什么:
只有活动接口的名称
使用你的第二个命令,但将接口名称后的所有内容放入前瞻中,因此它不会作为匹配的一部分打印。
ifconfig | pcregrep -M -o '^[^\t:]+(?=:([^\n]|\n\t)*status: active)'
当我这样做时,输出是:
en0
awdl0
请参阅 What is AWDL (Apple Wireless Direct Link) and how does it work? 了解 awdl0
是什么。
如果只打印 networksetup
管道的结果而不使用 ifconfig
,您的第一个命令应该可以工作。这对我有用:
networksetup -listnetworkserviceorder | grep 'Wi-Fi, Device' | sed -E "s/.*(en[0-9]).*//"
我有 Wi-Fi 而不是以太网。
您还可以使用 scutil
命令显示活动接口及其 IPv4/6 地址(尽管它不显示 AWDL 接口):
scutil --nwi
我正在尝试列出我当前正在使用的网络接口。我需要知道如何在终端和脚本中执行此操作。
ifconfig | grep $(networksetup -listnetworkserviceorder | grep 'Ethernet, Device' | sed -E "s/.*(en[0-9]).*//")
我得到了什么: enter image description here
我想得到什么: 只有活动接口的名称
使用你的第二个命令,但将接口名称后的所有内容放入前瞻中,因此它不会作为匹配的一部分打印。
ifconfig | pcregrep -M -o '^[^\t:]+(?=:([^\n]|\n\t)*status: active)'
当我这样做时,输出是:
en0
awdl0
请参阅 What is AWDL (Apple Wireless Direct Link) and how does it work? 了解 awdl0
是什么。
如果只打印 networksetup
管道的结果而不使用 ifconfig
,您的第一个命令应该可以工作。这对我有用:
networksetup -listnetworkserviceorder | grep 'Wi-Fi, Device' | sed -E "s/.*(en[0-9]).*//"
我有 Wi-Fi 而不是以太网。
您还可以使用 scutil
命令显示活动接口及其 IPv4/6 地址(尽管它不显示 AWDL 接口):
scutil --nwi