You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bash脚本仅提取以太网接口的MAC地址

如何通过Bash脚本仅提取以太网接口的MAC地址

没问题!针对你用Ubuntu USB脚本提取以太网MAC地址的需求,这里有几个实用的方案,直接就能整合到你的脚本里:

  • 基于你当前使用的lshw优化:
    既然你已经在使用lshw,可以通过过滤精准定位以太网接口的MAC地址(也就是输出里的serial字段):

    lshw -c network | grep -A 10 'Ethernet' | grep 'serial' | awk '{print $2}' >> textfile.txt
    

    简单解释下:grep -A 10 'Ethernet'会找到包含“Ethernet”的行,并显示该行后面10行内容;接着grep 'serial'定位到存储MAC地址的行;最后用awk提取第二个字段,就是你要的MAC地址。如果系统里有多个以太网接口,只想取第一个的话,在awk里加个exit就行:

    lshw -c network | grep -A 10 'Ethernet' | grep 'serial' | awk '{print $2; exit}' >> textfile.txt
    
  • 更轻量的ip命令方案:
    ip命令是Linux系统默认自带的工具,比lshw更轻量,适合USB环境。以太网接口通常命名为eth0、enp*这类,我们可以直接过滤这些接口的MAC地址:

    ip addr show | grep -E 'enp|eth' | grep link/ether | awk '{print $2}' >> textfile.txt
    

    要是担心不小心匹配到无线接口(极少数情况),可以再加个排除无线的过滤:

    ip addr show | grep -v 'wlan' | grep link/ether | awk '{print $2}' >> textfile.txt
    
  • 直接读取系统文件的稳定方案:
    Linux把所有网络接口的信息存在/sys/class/net/目录下,我们可以遍历这个目录,排除无线接口后读取MAC地址文件:

    for iface in /sys/class/net/*; do
        if [[ ! $(basename "$iface") =~ wlan ]]; then
            cat "$iface/address" >> textfile.txt
        fi
    done
    

    这个方法不需要依赖任何额外命令,完全基于系统原生文件,稳定性拉满,适合资源有限的USB运行环境。

备注:内容来源于stack exchange,提问作者pa-sc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:58:13