大家知道,在Windows中当我们插入网线时,网络符号会变成另一种状态。
在 Linux 中如何通过命令提示符知道电缆是否已插入?
答案1
我见过的主要使用的两种方法是使用ethtool
或手动解析/sys
.
以太网工具
例如,如果您的界面是,eth0
您可以使用查询它ethtool
,然后解析行“检测到链接”。
$ sudo ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbag
Wake-on: g
Current message level: 0x00000001 (1)
Link detected: yes
具体来说这个命令:
$ ethtool eth0 | grep "Link"
Link detected: yes
如果它下降了,它就会说不。
使用/sys
再次假设我们对 感兴趣eth0
,您可以手动解析 的内容/sys/class/net/
然后eth0
为您的设备。该目录下有 2 个文件,它们会告诉您链接是否处于活动状态carrier
:operstate
连接电线后,这两个文件将显示如下:
$ cat /sys/class/net/eth0/{carrier,operstate}
1
up
当线路断开时,这两个文件将显示如下:
$ cat /sys/class/net/eth0/{carrier,operstate}
0
down