ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -d\: -f2 | cut -d\/ -f1
在Linux系统中,`ip addr show docker0`是一个命令,用于显示名为`docker0`的虚拟网络接口的详细信息。这些信息包括接口的IP地址、子网掩码等。
接下来,这个命令的管道操作符`|`将输出传递给`grep "inet "`,它用于过滤出包含字符串`inet`的行,因为IP地址通常在包含`inet`的行中。
然后,`awk '{print $2}'`用于打印每行的第二列,这通常是IP地址和子网掩码的组合,格式如`192.168.1.1/24`。
`cut -d\: -f2`命令使用`:`作为分隔符(由`-d\:`指定),并选择第二列(由`-f2`指定)。在这个上下文中,它将提取子网掩码之前的IP地址部分。
最后,`cut -d/ -f1`命令再次使用`/`作为分隔符,并选择第一列。这一步是为了从IP地址和子网掩码的组合中提取出纯粹的IP地址。
### 举例说明
假设`docker0`接口的输出如下:
2: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
inet 192.168.1.1/24 brd 192.168.1.255 scope global docker0
1. `ip addr show docker0 | grep "inet "` 将输出:
inet 192.168.1.1/24 brd 192.168.1.255 scope global docker0
2. `awk '{print $2}'` 将输出:
192.168.1.1/24
3. `cut -d: -f2` 将输出:
192.168.1.1
4. `cut -d/ -f1` 将输出:
192.168.1.1
这样,整个命令链的最终输出就是`docker0`接口的IP地址,不带子网掩码,即`192.168.1.1`。