linux设置代码段地址,Linux一键设置ip脚本代码 (ip段192.168.1.nnn)

本脚本需要在linux连接工具中完成

例如  xshell等工具

vi ip.sh

将下面代码复制进去即可

#!/bin/bash

# 输出工具信息

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

echo "~~~      欢迎使用自动IP配置工具,请谨慎操作 Author   杨少 ~~~"

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

# 先检查ifconfig命令是否存在

type ifconfig &> /dev/null

if [[ $? != 0 ]]; then

echo "检测到当前操作系统没有安装ifconfg命令,本程序将自动安装,若不同意,请输入q或Q退出当前程序

。若同意则输入其他任意内容"

read quitornot

if [[ $quitornot = "q" ]] || [[ $quitornot = "Q" ]]; then

echo "欢迎您的使用,再见"

exit

else

echo "##################正在开启安装过程##################"

yum -y install net-tools

echo "##################  命令安装完成  ##################"

fi

fi

# 输出网卡列表

echo "本机网卡列表如下:"

ifconfig | grep '.*: flag.*'|awk -F: '{print$1}'

# 提示输入网卡编号

echo "请输入要配置的网卡的编号(默认配置第1个网卡,使用默认值请按回车键):"

# 变量接收网卡编号

read NETWORKCARDNUMBER

if [[ $NETWORKCARDNUMBER = "" ]]; then

NETWORKCARDNUMBER=1

else

printf "%d" $NETWORKCARDNUMBER &> /dev/null

while [[ $? -ne 0 ]]; do

echo "输入的网卡编号错误,请输入正确的数字!"

read NETWORKCARDNUMBER

if [[ $NETWORKCARDNUMBER = "" ]]; then

NETWORKCARDNUMBER=1

break

else

printf "%d" $NETWORKCARDNUMBER &> /dev/null

fi

done

fi

echo "将对第$NETWORKCARDNUMBER块网卡进行配置"

if [[ $NETWORKCARDNUMBER -eq 0 ]]; then

let NETWORKCARDNUMBER++

fi

# 获取对应网卡的网卡名

NETWORKCARDNAMEShort=`ifconfig | grep '.*: flag.*'|awk -v line="$NETWORKCARDNUMBER" -v FS=: 'NR==line{pr

int $1}'`

# 拼接网卡所在路径,获取网卡全名

NETWORKCARDNAME="/etc/sysconfig/network-scripts/ifcfg-$NETWORKCARDNAMEShort"

# 输出网卡绝对路径

echo $NETWORKCARDNAME

#提示输入网段

echo "请输入指定网段(默认为1,使用默认值请按回车键)"

read NETWORKPART

if [[ $NETWORKPART = "" ]]; then

NETWORKPART=1

else

printf "%d" $NETWORKPART &> /dev/null

until [[ $? -eq 0 ]]; do

echo "输入的网段错误,请输入正确的数字!"

read NETWORKPART

if [[ $NETWORKPART = "" ]]; then

NETWORKPART=1

break

else

printf "%d" $NETWORKPART &> /dev/null

fi

done

fi

echo "请输IP地址的第四段(需>=0且<=254)"

read IPPART4

printf "%d" $IPPART4 &> /dev/null

until [[ $? -eq 0 ]] && [[ $IPPART4 -ge 0 ]] && [[ $IPPART4 -le 254 ]]; do

echo "输入的IP地址的第四段错误,请输入正确的数字(需>=0且<=254)!"

read IPPART4

printf "%d" $IPPART4 &> /dev/null

done

# 拼接IP地址

IPADDR="192.168.$NETWORKPART.$IPPART4"

# 拼接GATEWAY

GATEWAY="192.168.$NETWORKPART.1"

# 设定NETMASK

echo "请输入自定义NETMASK(默认使用255.255.255.0,使用默认值请按回车键):"

read NETMASK

if [[ $NETMASK = "" ]]; then

NETMASK="255.255.255.0"

fi

# 拼接DNS1

DNS1="192.168.$NETWORKPART.1"

echo "将修改第$NETWORKCARDNUMBER块网卡,修改的详细信息如下:"

echo "IPADDR=$IPADDR"

echo "NETMASK=$NETMASK"

echo "GATEWAY=$GATEWAY"

echo "DNS1=$DNS1"

echo "并同时将IP获取方式设置为static,网卡随系统启动"

echo -e "\n是否确认修改,请谨慎操作,此操作不可逆(y or Y)" # echo命令中要想使用\n等类似符号时需要加上-

e参数

read input

if [[ $input = "y" || $input = "Y" ]]; then

# 修改IP获取方式为静态获取

sed -i "/BOOTPROTO=.*/c BOOTPROTO=static" $NETWORKCARDNAME

# 修改网卡随系统系统

sed -i "/ONBOOT=.*/c ONBOOT=yes" $NETWORKCARDNAME

# 将IP等相关内容添加到网卡文件的尾部

#sed要想使用变量,只需要将单引号换成双引号即可,注意在双引号中使用$(即最后一行)时需要加转译符\

sed -i "\$a "IPADDR=$IPADDR"" $NETWORKCARDNAME

sed -i "\$a "NETMASK=$NETMASK"" $NETWORKCARDNAME

sed -i "\$a "GATEWAY=$GATEWAY"" $NETWORKCARDNAME

sed -i "\$a "DNS1=$DNS1"" $NETWORKCARDNAME

else

echo "输入错误,结束"

fi

echo "关闭网卡并重启,有可能会断开连接"

ifdown $NETWORKCARDNAME

ifup $NETWORKCARDNAME

#提示:上述代码已经结束  下面提示几点

#提示  :在网卡配置的时候可能出现ip段可能不同

#通过vi编辑命令进行修改  :vi /etc/sysconfig/network-scripts/ifcfg-ens33(这是你的网卡名称,根据自己的来)

712a3d7ea1e19c1eeda0f76047badd7f.png

修改成自己的ip地址段即可

361158dc0e73c2d4e7d42687ae661be3.png

网卡名称可以修改

52917a324cd07c4920cf3896d815b554.png

切记在修改过网卡后一定重启网卡  新建连接即可

命令  service  network restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值