# 参数-E表示使用扩展正则表达式egrep
# 参数-o表示只显示一行中匹配正则表达式的部分
======================================================================
$ ifconfig eth0 | grep -o -E "inet addr:[0-9.]+"
inet addr:192.168.2.216
======================================================================

# 同时输出 IP、广播地址、子网掩码
======================================================================
$ ifconfig eth0 | grep -o -E "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"
172.16.2.153
172.16.2.255
255.255.255.0
======================================================================

# 输出IP地址
# print $2:取出第二个字段
# awk '{print $2}':awk是行处理器,即一行一行的读取指定的文件,以空格作为分隔符,取出第二个字段
# awk -F: '{print $2}':-F 指定分隔符,以 : 为分隔符再取出第二个字段
======================================================================
$ ifconfig eth0 | grep "inet addr"
          inet addr:172.16.2.153  Bcast:172.16.2.255  Mask:255.255.255.0

$ ifconfig eth0 | grep "inet addr" | awk '{print $2}'
addr:172.16.2.153
$ ifconfig eth0 | grep "inet addr" | awk '{print $3}'
Bcast:172.16.2.255
$ ifconfig eth0 | grep "inet addr" | awk '{print $4}'
Mask:255.255.255.0

$ ifconfig eth0 | grep "inet addr" | awk '{print $2}' | awk -F: '{print $2}'
172.16.2.153
$ ifconfig eth0 | grep "inet addr" | awk '{print $3}' | awk -F: '{print $2}'
172.16.2.255
$ ifconfig eth0 | grep "inet addr" | awk '{print $4}' | awk -F: '{print $2}'
255.255.255.0
======================================================================

# ifconfig eth0 :查询网卡eth0的信息
# grep 'inet addr:':查询ipv4那一行的信息
# cut -d " " -f 12:使用空格进行拆分, 12是空格的数量
======================================================================
$ ifconfig eth0 | grep 'inet addr:' | cut -d " " -f 12
addr:172.16.2.153

$ ifconfig eth0 | grep 'inet addr:' | cut -d " " -f 14
Bcast:172.16.2.255

$ ifconfig eth0 | grep 'inet addr:' | cut -d " " -f 16
Mask:255.255.255.0
======================================================================

#  ip 命令与 ifconfig 命令类似,但比 ifconfig 命令更加强大,主要功能是用于显示或设置网络设备
# ip address 可用于查询、添加、删除IP地址等
======================================================================
$ ip address | grep eth0 | awk '{print$2}'
eth0:
172.16.2.153/24

$ ip address show eth0 | grep 'inet ' | awk '{print $2}'
172.16.2.153/24
======================================================================

# 显示默认网关
======================================================================
$ ip route show | grep 'default' | awk '{print $3}'
172.16.2.1
172.16.7.254

$ ip route show | grep 'eth0' | grep 'default' | awk '{print $3}'
172.16.2.1
======================================================================

【菜鸟教程】Linux ifconfig命令
【菜鸟教程】Linux ip 命令
【菜鸟教程】Linux grep 命令
【菜鸟教程】Linux awk 命令

更多推荐

Linux shell输出IP、子网掩码、广播地址、网关等网络信息的多种方法(grep awk)