分类: LINUX
2010-01-28 17:05:42
原先学习过shll但是只是了解一下它的语法而已,在平时中并没有使用,在暑假的时候又
想起了shell,所以又回顾了一下,学习后一定要用,这样才能掌握。最近实验室刚装好机子,什么
都要配置一下,包括网络,以前配置网络是通过图形界面,但是ubuntu8.10以后图形配置界面有
不小的变化浪费了我不少时间,所以以后配置网络就不用图形界面了,直接找系统的配置文件,
先修改网卡文件/etc/network/interfaces文件,我用的是静态IP,网卡设备为eth0,所以配置文件为
auto lo
iface lo inet loopback
iface eth0 inet static
address 198.6.10.153
netmask 255.255.255.0
gateway 198.6.10.153
auto eth0
然后修改DNS文件/etc/resolv.conf文件,我的如下:
nameserver 198.6.10.123
但这样以来就是每次要修改两次文件,而且配置完成后还要重启网络:
sudo /etc/init.d/networking restart
虽然很直接也比较快,但每次配置机子也挺麻烦的,这时候shell就能发挥作用了,写了一个
简单的配置网络的shell脚本(文件名config_net.sh):
#!/bin/sh
#根据自己的机子修改以下变量,以下变量为默认配置参数值
IP=192.168.89.15 #这个是IP
NETMASK=255.255.255.0 #这个是子网掩码
GATEWAY=192.168.89.1 #这个是网关
DNS=202.117.128.2 #这个是DNS
DNS_DIR=/etc/resolv.conf #DNS文件路径
IP_DIR=/etc/network/interfaces #网卡配置文件路径
LOOP=”iface lo inet loopback”
ETH0=”iface eth0 inet static”
if [ $# -eq 4 ]; then
IP=$1;NETMASK=$2;GATEWAY=$3;DNS=$4; #如果带4个参数运行
elif [ $# -eq 1 ]; then
IP=$1; #如果带1个参数运行
elif [ $# -eq 0 ] ;then
echo “You use default configure” #如果不带参数运行
else #错误的使用方式,打印使用方法
echo “ERR ARGUMENT,Follow is right:”
echo “./config_net.sh IP NETMASK GATEWAY DNS”
echo “(OR)./config_net.sh IP”
echo “(OR)./config_net.sh”
exit
fi
#将配置写入到网卡配置文件中
echo “auto lo
${LOOP}
${ETH0}
address ${IP}
netmask ${NETMASK}
gateway ${GATEWAY}
auto eth0″>${IP_DIR}
#将配置写入到DNS文件中
echo “nameserver ${DNS}”>${DNS_DIR}
#重启网络
/etc/init.d/networking restart
上面的脚本很简单,实现的功能就是配置网络,可以有以下使用方法:
1.$ ./config_net.sh (采用默认的配置参数)
2. $ ./config_net.sh IP (可以指定IP,其它参数默认)
3. $ ./config_net.sh IP NETMASK GATEWAY DNS (指定IP,子网掩码,网关,DNS)
第一种方法可以直接修改文件中的默认值来配置。
第二种可以用在配置局域网中,可以修改此脚本,设定默认的子网掩码,DNS,网关,然后运行时
只需指定IP即可,可以快速配置多台系统。
第三种直接指定各项配置