一个简单的shell脚本-----实现虚拟机实验环境的简单配置

亲自写过shell脚本后才发现,这玩意真是太方便了,当你想把一些琐碎的、细节性的小指令一次性来完成时,脚本无疑是最好的选择,方便、快捷,关键是真是懒人必备啊。

由于安装的centos6.5是最小化安装,且是实验环境,即安装在vmware workstations上面,在首次安装完成后,配置完IP地址的相关信息后,就做了一个初始的快照,以便下次实验完后,可以通过快照快速还原系统。

但是由于实验环境的要求,例如防火墙、SELinux、光盘挂载、yum源配置等,都是最常需要修改的选项,并且由于最小化安装,系统里并没有vim编译工具和man手册的查询,所以导致每次还原快照后,还要处理这些琐碎的问题。为此,我就专门写了这么一个小脚本,内容并不复杂,但是也是一种学习过程,发出来和大家一起分享一下,顺便求指教......

#!/bin/bash
# Config some simple order when the system start
# Create by phoenix

# Specify the path
server=/etc/init.d
yum=/etc/yum.repos.d
mountdir=/media/cdrom
selinux=/etc/selinux/config

# stop the iptabes and set it can‘t start when the system start
$server/iptables stop &>/dev/null
if [ "$?" = "0" ]; then
   chkconfig iptables off
   chkconfig ip6tables off
   echo "1# The iptables stop successfully"
else
   echo "1# The iptables stop failed"
fi

# shutdown the selinxu system
setenforce 0 && sed -e ‘s/^SELINUX=enforcing/SELINUX=disabled/g‘ $selinux >$selinux.bak 
mv -f $selinux.bak $selinux 
echo "2# The selinux system is disabled"

# Mount the CD-ROM
mount |grep sr0 &>/dev/null
if [ ! "$?" = "0" ]; then
   if [ ! -e $mountdir ]; then
      mkdir -p $mountdir &>/dev/null
   else
      mount /dev/cdrom $mountdir &>/dev/null
      echo "3# The CD-ROM is mounting successfully"
   fi   
else
   echo "3# The CD-ROM is already mounted" 
fi

# Config the source of yum
if [ -e $yum/CentOS-Base.repo ];then
   mv -f $yum/CentOS-Base.repo $yum/CentOS-Base.repo.bak &>/dev/null
else
   echo "4# Starting config the source of yum"
	sleep 3 
fi

 sed  -e ‘s/^enabled=0/enabled=1/g‘ $yum/CentOS-Media.repo >$yum/CentOS-Media.repo.bak 
 mv -f $yum/CentOS-Media.repo.bak $yum/CentOS-Media.repo>>/dev/null

yum clean all &>/dev/null &&echo "5# The source of yum configed successfully"

# Modify the code of language
echo "#LANG=zh_CN.UTF-8" >/etc/sysconfig/i18n
echo "6# The language is modify successfully"

# Install the tools "VIM" and "MAN"
echo "7# Starting install vim and man,please wait......"
sleep 3
yum install vim man -y &>/dev/null

# Reboot the system when all the work is done
echo "#########  All work is done  ########"
sleep 2
echo "Please wait the syatem restart......"
sleep 2
init 6

另外,请不要吐槽我的英语。。。。虽然过了四级并且差点过了六级,然而还是没有什么用。。。

时间: 2024-11-08 20:18:24

一个简单的shell脚本-----实现虚拟机实验环境的简单配置的相关文章

一个简单的shell脚本

一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[[email protected] ~]$ who2.KANO tty1 2016-02-15 01:47 (:0)3.KANO pts/0 2016-02-15 01:48 (kelvin) 当然在个人电脑上,所列出来的列表可能只有上面这么短.但是在一些大型.多用户的系统上,所列出的列表就可能很长.这个时候我们可以使用自动计算用户总数.wc是一个字数计算程序,它可以计算出行数(

一些简单的shell脚本例子

         对于刚开始学shell脚本的人来说,建立编程思维很重要,需要能够把自己需要做的事情,用编程的方式表达出来,下面是我学习和搜集的一些例子,对于刚刚开始接触的人,或许有一定的帮助.      求任意数的和或乘积,先定义函数,任意数的和.乘积,然后通过case结构再定义变量,调用函数. hei(){ x=1 while [ $# -gt 0 ] do x=`expr $x \* $1` shift done echo $x } he(){ x=0 while [ $# -gt 0 ]

编写简单的Shell脚本

在一些复杂的Linux维护工作中,大量重复性的输入和操作不但费时费力,而且容易出错,而编写一个恰到好处的shell脚本程序,可以批量处理.自动化的完成一系列维护任务,大大减轻了管理员的负担 shell脚本基础 1. 编写第一个shell脚本 Linux中的shell脚本是一个特殊的应用程序,介于操作系统内核和用户之间,充当了一个命令解释器的角色,负责接收用户的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果 常见的shell解释器 可通过/etc/shells文件了解当前系统所

shell 脚本实战笔记(2)--环境变量PATH的恩怨情仇

在linux环境下, 相信大家对环境变量PATH, 多多少少有所接触, 这边讲讲PATH的在linux的前世因缘. 先讲讲一个列子 假如我们在为一个新的应用配置其PATH路径中时,  不小心忽略了原先的$PATH内容, 把原本的PATH=/path/to/newcmd:$PATH, 写成了PATH=/path/to/newcmd, 并不小心写入了~/.bashrc, 并且source ~/.bashrc. 这时会发生什么? 我们如何去处理这种情况? 所有的命令都不能用了, 想回去编辑~/.bas

一个不错的shell 脚本教程 入门级

建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行).  如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit.kedit.emacs.vi  等来编写我们的shell程序.  程序必须以下面的行开始(必须方在文件的第一行): #

小鸟初学Shell编程(二)编写简单的Shell脚本

Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将多个Linux命令组合保存成一个脚本文件,可直接给其他人使用. 组合命令 进入一个目录,查看目录的文件,这个过程分别需要执行两条命令,分别是cd 和ls. 分开执行两个命令的形式如下: [[email protected] usr]# cd /usr/ [[email protected] usr]

简单的shell脚本

1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下. 参考程序: C代码   #!/bin/sh FILENAME= echo "Input file name:" read FILENAME if [ -c "$FILENAME" ] then cp $FILENAME /dev fi 2.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30. 参考答

编写简单的shell脚本 - for循环 - 解决报错 Syntax error: Bad for loop variable

为了编写批量导入数据的程序,故而学习编写shell脚本!现学现用! ============================================ 1.第一个简单的for循环 #!/bin/bashfor i in 1 2 3 4;do echo $i;done 2.测试for的自增长的循环: #!/bin/bashfor ((i=1; i<=5; i++))do echo $i;done 如果会报错,没有则跳过: Syntax error: Bad for loop variable

两个简单的shell脚本(关于启动和服务)

实验要求: 1.为root用户编写登陆欢迎脚本,报告当前主机中的进程数,已登陆用户数,根文件系统的磁盘使用率 2.编写三个脚本程序:start,stop和status,用来启动,停止各种系统服务 实验步骤: [[email protected] ~]# vi welcome.sh #!/bin/bash # this is test.by shengjie p=`ps aux | wc -l` //设置变量p echo "Running Processes:$p" u=`who | w