linux下命令取IP地址、系统版本的多种方法

注意:根据环境不同,网卡名字可能也会不同。特别是像阿里云上的经典网络和VPC网络。VPC网络用ip a命令查看的时候只有一张内网网卡的ip地址。外网地址可供ssh登录,但是无法在ip a查看到。

获取ip地址:

不指定网卡名获取ip:
ifconfig |sed -rn '/inet/s#^.*addr:(.*)  Bcast.*$#\1#gp'

grep+cut方法:
ifconfig eth0|grep 'inet addr:'|cut -d: -f2|cut -d " " -f1
ifconfig  eth0 | grep 'inet addr' | awk -F ":" '{print $2}' | awk '{print $1}'

192.168.20.50

sed方法:使用正则进行替换

[root@localhost ~]# ifconfig eth0|sed -nr '2s#^.*addr:(.*) Bca.*$#\1#g'p
192.168.20.50 

sed方法(不太好理解)
匹配/inet /这一行 进行2次替换,替换为空,剩下的就是ip地址;

[root@localhost ~]# ifconfig eth0|sed -n '/inet /{s/.*addr://;s/ .*//;p}'
192.168.20.50

awk方法:
[root@localhost ~]# ifconfig eth0|awk '/inet addr:/ {print $2}'|awk -F: '{print $2}'
192.168.20.50

awk 一条命令方法:(根据实际环境,查看ip所在行进行调整)
[root@localhost ~]# ip add|awk -F '[ /]+' 'NR==8 {print $3}'
192.168.20.50

获取系统版本:
system_version=`grep -Eo "[0-9]\.[0-9]" /etc/redhat-release |cut -d'.' -f1`
centosVersion=$(awk '{print $(NF-1)}' /etc/redhat-release)

版权声明:
作者:allenjol
链接:https://www.ayunw.cn/archives/236
来源:爱生活,爱运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>