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
shell基础之更改IP的更多相关文章
- shell基础、变量、相关脚本
目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...
- Ambari集群移动现有复制到另外地方或更改ip地址,导致各项服务组件上为黄色问号代表心跳丢失的解决方案(图文详解)(博主推荐)
前言 最近,是在做集群搬移工作,大家肯定会遇到如下的场景. (1) 比如,你新购买的电脑,初步者学习使用Ambari集群.从旧电脑复制到新电脑这边来. (2) 比如,你公司Ambari集群的ip,因业 ...
- Shell基础入门
目录 Shell基础入门 1.什么是Shell? 2.Shell脚本的结构 3.Shell的变量 3.1.自定义环境变量 3.2.普通变量 3.3.位置参数变量 3.4.状态变量 4.条件测试和比较 ...
- shell基础part3
shell基础 一.环境变量配置文件简介 1.source命令的作用就是将环境变量配置文件强制生效,其格式为: source 环境变量配置文件或者 . 环境变量配置文件 2.环境变量配置文件中主要是定 ...
- linux shell 基础 使用日志与心得
linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现#!/bin/bash是指此脚本使用/bin/bash来解释执行.其中,#!是一个特殊的表示符,其后,跟着解释此脚 ...
- Linux正则表达式、shell基础、文件查找及打包压缩
Linux正则表达式.shell基础.文件查找及打包压缩 一.正则表达式 Linux正则表达式分为2类: 1.基本正则表达式(BRE) 2.扩展正则表达式(ERE) 两者的区别: 1.使用扩展正则表达 ...
- shell基础练习题
shell 基础练习题 1.编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 #!/bin ...
- 运维 04 Shell基础命令(二)
Shell基础命令(二) 查看Linux的发行版 cat /etc/redhat-release cat /etc/os-release 查看系统用户的id信息 id 用户名 id root id ...
- Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用
一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境 2> 练习命令历史.命令别名 3 ...
随机推荐
- sql 如何删除(代替)字段内某一部分内容
方法一(此方法既可用于删除某一列字段中的某部分字符,也可用于替换某一列字段中的某部分字符) update Table_Name set Column_Name=replace(Column_Name, ...
- Android通过Web与后台数据库交互
2021.1.27 更新 已更新新版本博客,更新内容与原文章相比有点多,因此新开了一篇博客,请戳这里. 1 背景 开发一个App与后台数据库交互,基于MySQL+原生JDBC+Tomcat,没有使用D ...
- 10. linux 系统启动流程
POST-->BIOS(Boot Sequence)-->MBR(bootloader,446)-->Kernel-->initrd-->(ROOTFS)/sbin/in ...
- 脱壳——修复加密IAT
脱壳--修复加密IAT 对两个练手程序进行脱壳修复加密IAT(其实是一个程序,只是用了几种不同的加壳方式) 第一个程序 Aspack.exe 下载链接:https://download.csdn.ne ...
- 11- APP性能测试GT工具的使用
对性能测试来说有服务端的性能与客户端(APP)的性能. GT简介 1.GT(随身调)是APP的随身调测平台,它是直接运行在手机上的"集成调试环境"(IDTE) 2.利用GT,仅凭一 ...
- jQuery监控键盘事件
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 【CompletableFuture】CompletableFuture测试runAsync()方法调用
问题 CompletableFuture.runAsync() 返回 CompletableFuture<Void>对象,调用CompletableFuture.allOf(f1,f2). ...
- 如何利用C++的time头文件获取系统时间
C++提供了time.h头文件进行时间编辑操作,可以把时间格式化进tm结构体,方便使用.MFC框架中的ctime类就是基于time.h封装的. 代码样例: #include <iostream& ...
- hdu4370 比较抽象的最短路
题意: 给你一个n*n的矩阵,然后让咱们构造另一个n*n的矩阵,构造的矩阵有如下要求, 1.X12+X13+...X1n=1. 2.X1n+X2n+...Xn-1n=1. 3.for ea ...
- android Javah生成JNI头文件
项目要用到c语言库,因此来学习下jni 首先是在cmd中使用javah,出现了javah不是内部或外部命令的错误提示,javah是jdk自带的工具,提示说明在系统环境变量中没有jdk的路径,或者配置错 ...