正しい手順のスクリプトやCOOLなスクリプトはあちこちに転がっている。
Linuxライクなスクリプトは、しばしばコマンドラインの実行結果の一部を取得することがある。
例えば、ifconfigコマンドの実行結果は以下のようになる。
スポンサードリンク
# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:FA:XX:XX inet addr:192.168.1.19 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:287468 errors:2 dropped:20 overruns:0 frame:0 TX packets:110926 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:98985227 (94.3 MiB) TX bytes:15708917 (14.9 MiB) Interrupt:51 Base address:0x2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
IPアドレスの取得
「逆引きシェルスクリプト/自機のIPアドレス一覧を取得する – Linuxと過ごす」によるIPアドレスを取得するスクリプトは、以下のようになっている。
$ LANG=C /sbin/ifconfig | grep 'inet addr' | grep -v 127.0.0.1 | awk '{print $2;}' | cut -d: -f2 172.16.0.100 192.168.0.100
MACアドレスを取得
これは便利だと少し加工してMACアドレスを表示するように変更してみた。
単一NICの場合
# LANG=C /sbin/ifconfig | grep 'HWaddr' | awk '{print $5;}' 00:0C:29:FA:XX:XX
複数NICの場合
ちなみに、複数NICの場合は以下のようになった。
(物理的には1つのNICだが、仮想関連で幾つか追加されているようだ)
$ LANG=C /sbin/ifconfig | grep 'HWaddr' | awk '{print $5;}' e8:39:35:1f:XX:Xf e8:39:35:1f:XX:Xe e8:39:35:1f:XX:Xf 96:d9:9f:c9:XX:XX
あまり出番は無いだろうが、必要になることもあるのでメモ程度に残しておく。
コメント