ip コマンド は -o オプションをつけるとメッチャ見やすい
ip コマンドの ip a
の結果はごちゃって見辛くないですか?私は非常に辛い。
とくにIPv6 が混じってきて、1つのインターフェースに複数のIPが入ってくると辛い
シェルスクリプトで、grep してるけど、めっちゃめんどくさい。
オプション -o をつけると便利
1行に付き1つのIPアドレスが表示されるのでわかりやすい思う。
takuya@:~$ ip -o a 1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever 1: lo inet6 ::1/128 scope host \ valid_lft forever preferred_lft forever 2: enp3s0 inet 192.168.11.103/24 brd 192.168.11.255 scope global dynamic noprefixroute enp3s0\ valid_lft 39969sec preferred_lft 39969sec 2: enp3s0 inet6 fe80::6ae7:5e96:e212:xxxx/64 scope link noprefixroute \ valid_lft forever preferred_lft forever 3: vlan2 inet 192.168.2.102/24 brd 192.168.2.255 scope global dynamic noprefixroute vlan2\ valid_lft 18372sec preferred_lft 18372sec 3: vlan2 inet6 2001:xxxx:8383:a300:b1a2:9557:xxxx:adxxxxa4/64 scope global temporary dynamic \ valid_lft 13828sec preferred_lft 12028sec 3: vlan2 inet6 2001:xxxx:8383:a300:8012:e7db:xxxx:xxxx/64 scope global dynamic mngtmpaddr noprefixroute \ valid_lft 13828sec preferred_lft 12028sec 3: vlan2 inet6 fe80::91e1:2583:xxxx:edaf/64 scope link noprefixroute \ valid_lft forever preferred_lft forever
ip a の場合
一般的に使われる ip a
の場合、次のように、インデントを使って表示される
オプションをつける
今回紹介した ip -o a
の場合、次のように1行1レコードになる
コマンドで処理をしたり、grep したり sed したりIP取得したりするときに、1行ごとの表示のほうが見やすくないですか?私は見やすいです
wc でIPの数を数えたり、grep で目的のIPレンジを探したり。インターフェースが増えてくるとこのほうが使いやすかった。
オプションについて
-o オプションは、LF(改行)を '\' バックスラッシュに置換してプリントしてくれるものです。もとに戻すなら置換をすればいいとわかります。
-o, -oneline output each record on a single line, replacing line feeds with the '\' character. This is convenient when you want to count records with wc(1) or to grep(1) the output.
参考資料
man ip