要求:

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

shell基础之更改IP的更多相关文章

  1. shell基础、变量、相关脚本

    目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...

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

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

  3. Shell基础入门

    目录 Shell基础入门 1.什么是Shell? 2.Shell脚本的结构 3.Shell的变量 3.1.自定义环境变量 3.2.普通变量 3.3.位置参数变量 3.4.状态变量 4.条件测试和比较 ...

  4. shell基础part3

    shell基础 一.环境变量配置文件简介 1.source命令的作用就是将环境变量配置文件强制生效,其格式为: source 环境变量配置文件或者 . 环境变量配置文件 2.环境变量配置文件中主要是定 ...

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

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

  6. Linux正则表达式、shell基础、文件查找及打包压缩

    Linux正则表达式.shell基础.文件查找及打包压缩 一.正则表达式 Linux正则表达式分为2类: 1.基本正则表达式(BRE) 2.扩展正则表达式(ERE) 两者的区别: 1.使用扩展正则表达 ...

  7. shell基础练习题

    shell 基础练习题 1.编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 #!/bin ...

  8. 运维 04 Shell基础命令(二)

    Shell基础命令(二)   查看Linux的发行版 cat /etc/redhat-release cat /etc/os-release 查看系统用户的id信息 id 用户名 id root id ...

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

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

随机推荐

  1. Circular Sequence UVA - 1584

    ​ Some DNA sequences exist in circular forms as in the following figure, which shows a circular sequ ...

  2. mooc人大单元测试4

    @font-face { font-family: Wingdings } @font-face { font-family: 宋体 } @font-face { font-family: " ...

  3. 利用主机域名配置Apache的虚拟主机功能

    利用主机域名配置Apache的虚拟主机功能,可以减轻服务器为每一个网站分配IP地址的压力.而且根据不同的主机域名可以输出不同的网页内容.要实现此项功能,可以通过修改/etc/host文件来强制定义IP ...

  4. PDF转HTML工具——用springboot包装pdf2htmlEX命令行工具

    Convert PDF to HTML without losing text or format. 用springboot把pdf2htmlEX命令行工具包装为web服务, 使得PDF转HTML更方 ...

  5. FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb

    apiAutoTestWeb使用说明 apiAutoTestWeb是为apiAutoTest的可视化版本,其采用前后端分离(FastAPI + Vue2)方式实现 具体使用: Python3 + Fa ...

  6. 功能:Java8新特性steam流

    Java8新特性steam流 一.包装数据类型 @Test public void main22() { List<Integer> list = new ArrayList<Int ...

  7. 常用head标签

    最小推荐 <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content= ...

  8. Thinkphp5之ajax分页实现_paginate()参数详细

    Thinkphp5 做数据搜索需要带关键词分页,如何将查询条件带入到分页中,本文详细介绍Thinkphp5 分页带参数 一.基本使用方法: $list = Db::name('user')->w ...

  9. hdu1261 JAVA

    题意: 一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA".给定若干字母和它们相应的个数,计算一共可以组成多少个不同的 ...

  10. 路由器逆向分析------sasquatch和squashfs-tools工具的安装和使用

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/68942660 一.sasquatch工具的安装和使用 sasquatch工具支持对 ...