ifconfig
MAC アドレスを含むインターフェースに関する情報を出力します:
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55
inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:289748093 errors:0 dropped:0 overruns:0 frame:0
TX packets:232688719 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3264330708 (3.0 GiB) TX bytes:4137701627 (3.8 GiB)
Interrupt:17
HWaddr
awk
を使用できます フィルタリングするには:
$ ifconfig eth0 | awk '/HWaddr/ {print $NF}'
00:11:22:33:44:55
それをファイルにリダイレクトします:
$ ifconfig eth0 | awk '/HWaddr/ {print $NF}' > filename
これが最新の Linux の方法です:
ip -o link show dev eth0 | grep -Po 'ether \K[^ ]*'
そのifconfig
でモダンです ip
を支持して長い間廃止されてきました iproute2
から パッケージ、およびその grep
-P
を持っています ゼロ幅の正の後読みアサーション用の perl 正規表現のオプション。
grep -o
テキスト抽出に適しています。 sed
は伝統的にそのために使用されますが、perl スタイルのゼロ幅アサーションは sed 置換コマンドよりも明確です。
-o
は実際には必要ありません (oneline) ip
へのオプション 、しかし、ネットワーク情報を抽出するときにそれを使用することを好みます.より複雑な一致または抽出を行う場合 (通常は awk
を使用) )、-o
きれいなスクリプトには不可欠なので、一貫性と共通のパターンのために、私は常にそれを使用しています.
#! /bin/sh
/sbin/ifconfig eth0 | perl -ne 'print "$1\n" if /HWaddr\s+(\S+)/' >file
ifconfig
から MAC アドレスを削除できるツールは他にもあります もちろん、の出力。 Perl が好きです。