ifconfig 是一个用来查看、配置、启用或禁用网络接口的工具,要查看eth0网卡配置的ip地址,首先得获取ifconfig命令的输出。
kris@letuknowit:~$ /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:16:3e:02:2e:3f
inet addr:10.160.55.20 Bcast:10.160.63.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20591342 errors:0 dropped:0 overruns:0 frame:0
TX packets:2629969 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1321851438 (1.3 GB) TX bytes:396217470 (396.2 MB)
Interrupt:80
上面第二行中就有我们需要的ip地址信息,可以先通过grep找出第二行,也可以直接由awk来做匹配
kris@letuknowit:~$ /sbin/ifconfig eth0 | grep "inet addr" | awk -F'[ :]+' '{print $4}'
10.160.55.20
kris@letuknowit:~$ /sbin/ifconfig eth0 | awk -F'[ :]+' '$0 ~ "inet addr"{print $4}'
10.160.55.20
上面的awk指令中我们用到了自定义多个字段分隔符,指定空格或者冒号作为分隔符。 为什么不是$3而是$4呢? 当awk的字段分隔符不是默认值的时候,每条记录的开头和结尾处的空格不会被忽略,所以$1为空,$2为inet 下面通过管道进行多次awk命令也可以获取到ip地址,比较适合新手。
kris@letuknowit:~$ /sbin/ifconfig eth0 | grep "inet addr" | awk '{print $2}'
addr:10.160.55.20
kris@letuknowit:~$ /sbin/ifconfig eth0 | grep "inet addr" | awk '{print $2}' | awk -F: '{print $2}'
10.160.55.20