Linux系统中获取IPv4地址的命令解析

IPS=`ip addr | grep 'inet[^6]' | awk '{print $2}' | cut -d/ -f1 | grep -v "127.0.0.1"`
这段代码是一个在Linux系统中使用的shell命令,用于获取系统中所有非环回地址(即非127.0.0.1)的IPv4地址。下面是对这段代码的详细解释:

1. `ip addr`:这是一个查看网络接口信息的命令,它会列出系统中所有网络接口的详细信息。

2. `grep 'inet[^6]'`:这个命令用于过滤`ip addr`的输出,只保留包含`inet`(代表IPv4地址)且不包含`6`(代表IPv6地址)的行。`[^6]`是一个正则表达式,表示匹配除了`6`以外的任何字符。

3. `awk '{print $2}'`:这个命令使用`awk`工具来处理`grep`的输出,只打印每行的第二个字段(`$2`),这个字段通常是网络接口的IP地址。

4. `cut -d/ -f1`:这个命令使用`cut`工具来进一步处理`awk`的输出,它以`/`为分隔符,只保留第一个字段(`-f1`),也就是IP地址本身,去掉后面的子网掩码部分。

5. `grep -v "127.0.0.1"`:这个命令再次使用`grep`,这次是为了排除环回地址`127.0.0.1`,`-v`参数表示反向选择,即排除匹配到的行。

将这些命令组合在一起,整个命令的作用是:列出系统中所有IPv4地址,排除掉环回地址。

**举例说明**:

假设你的Linux系统有以下网络接口信息:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
   valid_lft 86396sec preferred_lft 86396sec
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 10.0.0.100/24 brd 10.0.0.255 scope global dynamic eth1
   valid_lft 86396sec preferred_lft 86396sec
执行上述命令后,输出结果会是:
192.168.1.100
10.0.0.100
这个结果表示你的系统中有两个IPv4地址,分别是`192.168.1.100`和`10.0.0.100`,这两个地址分别对应`eth0`和`eth1`网络接口。环回地址`127.0.0.1`被排除在外。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值