shell基础之更改IP

要求:

  显示所有网卡及其对应的IP地址,并可更改IP相关内容使其生效。

 1 #!/bin/bash
 2 #获取本机网卡和IP
 3 while :
 4 do
 5 network=$(ifconfig |grep BROAD |awk -F: '{print $1}')
 6 echo -e "本机网卡\tIP"
 7 for single_network in $(echo $network);do
 8     all_ip=$(ifconfig $single_network |grep -w "inet" |awk '{print $2}')
 9     echo -e "$single_network\t\t$all_ip"
10 done
11 #获取要更改的网卡名称
12 while :
13 do
14 read -p "请输入要更改的网卡名称(默认退出):" new_network
15     if [ -z $new_network ];then
16     echo "退出脚本"
17     exit
18     else
19     judge_new_network=`echo "$network" |grep -w "$new_network"`
20         if [ -z "$judge_new_network" ];then
21         echo "请输入正确的网卡名!"
22         else
23         break
24         fi
25     fi    
26 done    
27 #要更改的IP,掩码,网关
28 IPZZ="^([0-9]\.|[1-9][0-9]\.|1[0-9][0-9]\.|2[0-4][0-9]\.|25[0-5]\.){3}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])$"
29 netmask_ZZ="^([0-9]\.|[1-9][0-9]\.|1[0-9][0-9]\.|2[0-4][0-9]\.|25[0-5]\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"
30 #输入新的IP地址
31 while :
32 do
33 read -p "请输入新的IP地址:" new_ip
34     if [ -z $new_ip ];then
35     echo "IP地址不能为空,请重新输入!"
36     elif [[ $new_ip =~ $IPZZ ]];then
37     break
38     else
39     echo "请输入正确的IP地址!"
40     fi
41 done
42 #输入掩码
43 while :
44 do
45 read -p "请输入新的掩码(默认为255.255.255.0):" new_netmask
46     if [ -z $new_netmask ];then
47     new_netmask=255.255.255.0
48     break
49     elif [[ $new_netmask =~ $netmask_ZZ ]];then
50     break
51     else
52     echo "请输入正确的掩码!"
53     fi
54 done
55 #输入网关
56 while :
57 do
58 read -p "请输入新的网关:" new_gateway
59     if [ -z $new_gateway ];then
60     echo "网关不能为空,请重新输入!"
61     elif [[ $new_gateway =~ $IPZZ ]];then
62     break
63     else
64     echo "请输入正确的网关!"
65     fi
66 done
67 #写入配置文件
68 echo "NAME=$new_network
69 DEVICE=$new_network
70 ONBOOT=yes
71 BOOTPROTO=none
72 IPADDR=$new_ip
73 NETMASK=$new_netmask
74 GATEWAY=$new_gateway
75 DNS1=114.114.114.114
76 DNS2=8.8.8.8" > /etc/sysconfig/network-scripts/ifcfg-$new_network
77 #重启服务
78 systemctl restart network
79 done

转载于:https://www.cnblogs.com/renyz/p/11305329.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值