それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ip コマンドでルーティングテーブルの逆引き(?)どのルートを通るか調べる

ip route show してもすっとわからない。

このIPはどのルーティグで転送されるの??

ip route show してもわからない、僕ら素人のためのコマンド

ip route get

宛先IPアドレスを指定すると。そのIPアドレスはどのルーティングテーブルにマッチするのかを調べることができる。

使用例

takuya@Desktop$ ip route get 192.168.2.1
192.168.2.1 via 192.168.11.1 dev en7  src 192.168.11.141

ipv6 で役に立つ。

IPv6 だと一目で即時にルーティングが見えづらい。アドレスが長いので、一呼吸を置いてから脳内で整理してたけど。 このコマンドを使えばそういうの面倒な脳内処理が不要になる。

使用例

takuya@:~$ ip route  get 2001:xxxx:38a8:3700:e80:63ff:xxxx:xxse
2001:xxxx:38a8:3700:e80:63ff:xxxx:xx3b from :: via fe80::225:36ff:fe75:a542 dev vlan2 
proto ra src 2001:axxx:8383:a300:b1a2:9557:xxxx:xxa4 metric 400 pref medium

もっとはやく教えてくれよ。

curl-config 現在のcurl のコンパイル設定を知るコマンド

brew 整理してたら curl-config コマンドを見つけた

curl-config コマンドってなんだろう。

調べてみると。インストール(ビルド)されているcurl のビルド状況を把握するシェルスクリプトらしい

実行してみた

takuya@Desktop$ curl-config --libs
-L/usr/local/Cellar/curl/HEAD-9e6af11/lib -lcurl -lidn2 -lrtmp -lldap -lbrotlidec -lz
takuya@Desktop$ curl-config --version
libcurl 7.64.1-DEV
takuya@Desktop$ curl-config --feature
SSL
IPv6
UnixSockets
libz
brotli
AsynchDNS
IDN
NTLM
NTLM_WB

なるほど。僕のhomebrew の curl は HEAD でv6 とhttp2 を有効にしているからcurl-config もインストールされていたわけですね。

参考資料

https://curl.haxx.se/libcurl/using/curl-config.html

bash で mac かどうかを判定する

mac かどうかをbash のif文の条件判定する

[[ $(uname) =~ Darwin ]]; echo $?
## または
[[ $(uname -a ) =~ Mac ]]; echo $?

bash正規表現ってホント便利

正規表現を使わない場合

bash 以外と bash 3.2 未満は正規表現が使えないので、glob でマッチする

[[ $(uname -a) = Darwin* ]]; echo $?

関連資料

bashでif に正規表現を使った文字列マッチ条件分岐 - それマグで!