使用bash命令
使用与linux发行版无关的命令
# cat /sys/class/net/eth0/carrier
1
上述1表示插接
cat /sys/class/net/eth1/carrier
cat: /sys/class/net/eth1/carrier: Invalid argument
上面表示eth1是down的状态,可以用下面命令确认
cat /sys/class/net/eth1/operstate
down
此时无法判断网线是否插接,需要先up下
ip link set dev eth1 up
然后再查看
cat /sys/class/net/eth1/carrier
0
此时0表示没插接网线
上面过成也可以使用下面连续命令访问所有的网口,下面命令会列出所有的网卡
# for i in $( ls /sys/class/net ); do echo $i; done
eth0
eth1
lo
wlan0
使用ethtool
以eth1为例
# ethtool eth1 | grep Link\ d
Link detected: no
使用循环一次性检测所有网口
# for i in $( ls /sys/class/net ); do echo -n $i; ethtool $i | grep Link\ d; done
eth0 Link detected: yes
eth1 Link detected: no
lo Link detected: yes
wlan0 Link detected: no
上面代码检测不到是down的网口,可以使用下面
# ethtool eth0 | grep Link\ d
Link detected: yes
# ip link set dev eth0 down
# ethtool eth0 | grep Link\ d
Link detected: no