目 录
Linux系统中,想要查看主机名、IP地址、⼦⽹掩码、⽹关、DNS服务器IP地址等信息,需要多个命令实现,并且有很多冗余的信息。需求是写一个脚本实现查看本机的所有这些信息。
这些信息,可以使用不同的命令来实现,比如ip addr, hostname, route等命令;然后采用awk等命令去除多余的信息即可。
对于网关,可能有多个,我们只需要找到默认网关即可。
(1)查询地址和掩码,可以采用ip addr和grep、awk结合的方式实现
(2)主机名就是hostname,直接可以输出
(3)默认网关通过route,grep,awk来实现
(4)dns服务器名字可以通过/etc/resolv.conf,用awk来输出
直接把脚本写出来,分享给大家。
如下为编写的bash代码:
- #!/bin/bash
- IP=`ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1`
- ZW=`ifconfig eth0 | head -2 | tail -1 | awk '{print $4}' `
- #GW=`route -n | tail -2 | awk '{print $2}'`
- GW=`route -n | grep '^0.0.0.0' | awk '{print $2}'`
- HN=`hostname`
- DNS=`head -1 /etc/resolv.conf | awk '{print $2}'`
- echo ‘’
- echo '本机IP地址是:' $IP
- echo '本机掩码是:' $ZW
- echo '本机网关是:' $GW
- echo '本机主机名是:' $HN
- echo '本机DNS是:' $DNS
- echo ''
使用编辑器,比如vi,把代码输入进去;
保存这个脚本到一个文件中,比list_sys_info.sh
chmod +x w list_sys_info.sh
可以运行这个脚本来检查进程的运行情况,如下:
- [root@ecs-52a1 home]#
- [root@ecs-52a1 home]#
- [root@ecs-52a1 home]# sh list_sys_info.sh
- ‘’
- 本机IP地址是: 192.168.0.138
- 本机掩码是: 255.255.255.0
- 本机网关是: 192.168.0.1
- 本机主机名是: ecs-52a1
- 本机DNS是: Generated
-
- [root@ecs-52a1 home]#
- [root@ecs-52a1 home]#
在实际使用中,你可能查看访问更多的信息,你可稍微做些修改,就可以适合您的应用了。比如,也可以查看网卡的mac地址,你可以用如下命令即可:
ifconfig eth0 | head -4 | tail -1 | awk '{print $2}'