eth0のIPアドレスを環境変数(たとえば$ ip)にできるだけ簡単に割り当てるにはどうすればよいですか?
アップデート:ディストリビューションはUbuntu Server 12.04 LTSです。
答え1
より短く、よりきれいな方法は、hostname -i
ipconfig、ip、sed、awkなどを使用する面倒ではありません。
答え2
使用するip address show
方法です。特に、最新のLinuxシステムでは、照会するインターフェースに不明ifconfig
なアドレスが複数ある可能性があります。
$ ip a s eth0 | awk '/inet / {print$2}'
10.13.211.83/24
192.168.17.21/16
もちろん、ネットマスクが不要な場合は、次のように必要に応じてパイプします。
cut -d/ -f1
注:同じシステムでは、ifconfigは以下を表示します。
$ ifconfig em1 | awk '/inet / {print $2}'
10.13.211.83
答え3
定義されたインターフェイスにIPを割り当てたいので、特定の質問には答えませんが、後で使用するためにここで外部IP(NAT以降)を取得する方法を一覧表示するのが役に立つと思いました。
ip=`wget -qO- ipecho.net/plain`
答え4
また確認してください:
ifconfig eth0 | awk '/inet /{print $2}' | cut -f2 -d':'
SolarisおよびHP-UXでも機能します(代わりに適切なnet devを使用eth0
)。
hostname -i
コマンドの場合、hostname -I
設定されたインターフェイス(ループバックを除く)がある場合は試してください。