要求:

  显示所有网卡及其对应的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

shell基础之更改IP相关推荐

  1. shell基础二:查找技巧,find及xargs的使用

    2019独角兽企业重金招聘Python工程师标准>>> 使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的 (在有些操作系统中只允许- e ...

  2. Hadoop_Day01Linux环境搭建、shell基础增强、ZK环境搭建

    ##1.大数据课程导论 ###1.1.大数据概念 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程 ...

  3. day23:shell基础介绍 alias及重定向

    2019独角兽企业重金招聘Python工程师标准>>> 1.shell基础介绍: shell是一个命令解释器,用于用户与机器的交互: 也支持特定的语法(逻辑判断,循环): 每个用户都 ...

  4. linux shell 基础 使用日志与心得

    linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现 #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释 ...

  5. Ambari集群移动现有复制到另外地方或更改ip地址,导致各项服务组件上为黄色问号代表心跳丢失的解决方案(图文详解)(博主推荐)...

    前言 最近,是在做集群搬移工作,大家肯定会遇到如下的场景. (1) 比如,你新购买的电脑,初步者学习使用Ambari集群.从旧电脑复制到新电脑这边来. (2) 比如,你公司Ambari集群的ip,因业 ...

  6. cmder上传文件到服务器,wget 结合everything上传文件到服务器端(以及更改ip地址)...

    上传服务器的方式有很多,平时常用的是ssh,scp等一些命令操作,但是当文件足够大的时候,用这些命令就显得力不从心了. 下面推荐一种操作系统是win10环境下上传批量文件到服务端的方法. 需要用到的软 ...

  7. linux+管道+分段,Linux中shell基础、重定向、管道符、环境变量

    原标题:Linux中shell基础.重定向.管道符.环境变量 1.什么是shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器).它接收用户输入的命令并把它送入内核 ...

  8. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用...

    一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境        2> 练习命令历史.命令别名        ...

  9. Linux 基础命令:IP 路由操作 -ip命令

    转自Linux爱好者:Linux 基础命令:IP 路由操作 Table of Contents ip 1.语法 2.选项列表 3.ip link---网络设备配置 4.ip address---协议地 ...

  10. 计算机网络基础知识--TCP/IP协议、IP分组、TCP传输

    转 计算机网络基础知识--TCP/IP协议.IP分组.TCP传输 2017年12月08日 08:35:09 孔维昊 阅读数 1820 查看全文 http://www.taodudu.cc/news/s ...

最新文章

  1. C#操作WMI文章汇总
  2. React Native知识
  3. windows下网络丢包模拟软件(Network Emulator for Windows Toolkit)
  4. linux下增加磁盘改变指定文件路径分区挂载点和迁移数据
  5. 数据与智能武装营销飞轮,网易探索C2B时代营销新玩法
  6. win10查看pcie设备_壹拓网科技解密WIN10系统使用向日葵开机棒远程开机需要设置几个地方...
  7. 【记录贴】cs231n课程作业一遇到问题总结
  8. dll放在unity哪个文件夹下_unity调用C#dll文件
  9. STC学习:振动传感器
  10. c语言实验报告总结通用版,大学生实训心得体会(通用11篇)
  11. DAMS峰会丨从数仓到数据中台,从数据资源到资产,京东、携程、快手等是怎么建设和演进的?...
  12. java jsp试卷_JSP试题-带答案
  13. AD13转oRCAD原理图的操作方式
  14. Texlive安装宏包
  15. DOTA中所有被动技能
  16. thinkphp使用编辑器kindeditor
  17. Unity----VR摄像机(浅谈)
  18. 开发一个基于Dalvik字节码的相似性检测引擎,比较同一款Android应用程序的不同版本之间的代码差异(二)
  19. 关于审查元素与查看网页源码的区别
  20. 机器视觉中的光源选型

热门文章

  1. 用C#编程合并多个WORD文档
  2. typedef 定义函数指针
  3. 缺少公钥问题的解决方法[转]
  4. 在 Mac 上拷贝(复制)、粘贴的方法
  5. Ps 初学者教程,如何在图片中创建新背景?
  6. Mac比较知名的数据库开发工具Navicat Premium 15.0.30
  7. 简单好用的Mac设置
  8. Mac上使用exiftool生成XMP文件的方法
  9. vShpere可用性之五HA安装及配置
  10. 面试没过的程序员都到哪去了?