笔者是一个Unix 系统管理员,为了工作方便使用的笔记本也是安装的Unix 系统,笔记本让移动办公变成了一件非常容易的事情,使用笔记本电脑的网卡接口连入到无线局域网中,马上就可以进入到工作状态,提高了工作效率。不过美中不足的是,每个无线局域网的设置不完全相同,如IP地址、网关等,每天在公司、家里等不同的地方使用笔记本时,就需要重新设置IP地址,这样就变得非常麻烦。 怎么样让使用笔记本用户不再为切换无线网络配置而苦恼,让他们快速实现设置笔记本网络,免除每次设置的烦恼呢?下面笔者就与大家一起共享使用shell脚本快速设置无线网络接口的方法,让大家快速快速切换无线网络配置。 从命令行输入命令时,每输入一次命令,就可得到系统的一次响应。当需要经常一个接一个地连续执行命令,而得到最后的结果时,再像这种操作方法进行操作就显得没有效率了。在这种情况下,可以利用shell程序或shell脚本来实现这一目的。刚开始理解shell编程的时候,可以把它想像成DOS下的批处理程序。 DOS离不开批处理,每一个DOS甚至是Windows都会由一个批处理文件(autoexec.bat)在它在启动后不久运行一连串的程序,完成为用户服务的准备工作。同样,在Unix系统中,用户也可以为每次登录系统配置环境、删除垃圾文件等,这就要用到shell编程。shell程序器其实不像批处理程序,它远比批处理要强大。shell编程有很多的C语言和其他编程语言的特征,然而又没有编程语言那么复杂。 shell程序是通过文本编辑程序放在一个文件中的一系列Unix命令和实用程序。执行shell程序时,通过Unix一个接一个地解释和执行每个命令。 笔者在公司使用DHCP自动分配IP、使用WEP 连接无线网络,DNS服务器IP地址、网关无需手工配置,在家使用静态ip地址、使用WEP 连接无线网络,DNS服务器IP地址、网关需手工配置。 首先为了编写shell脚本请收集一下网络设备信息:工作地点SSID名称,网络认证模式(三种无、开放、共享),ip地址、DNS服务器IP地址、网关、nwkey(十六进制加密密钥),可以使用命令:dmesg | grep address 查看。下面是笔者的环境如下: 公司环境 工作地点 office Ssid名称 office 网络认证模式 shared 十六进制加密密钥 0x123456789a 在家环境 工作地点 cjhhome Ssid名称 cjhhome 网络认证模式 shared 十六进制加密密钥 0x127776789a ip 地址 192.168.1.21 子网掩码 255.255.255.0 网关 192.168.1.1 主DNS服务器IP地址: 202.204.1.4 辅助DNS服务器IP地址:202.204.1.5 完整shell脚本如下: 以下是引用片段: #!/bin/sh # /usr/local/etc/rc.d/wi0 # 配置无线网络接口 # See the ifconfig(8), dhclient(8) and route(8) man pages for further # assistance. NIC=wi0 case $1 in office) ifconfig ${NIC} ssid " office " authmode "shared" nwkey 0x123456789a dhclient ${NIC} echo ${NIC} ;; shome) ifconfig ${NIC} inet 192.168.1.21 ssid " cjhhome " authmode "shared" nwkey 0x127776789a netmask 255.255.255.0 route add default 192.168.1.1 echo nameserver 202.204.1.4> /etc/resolv.conf echo nameserver 202.204.1.5> > /etc/resolv.conf echo ${NIC} ;; stop) [ -s /var/run/dhclient.pid ] && kill `cat /var/run/dhclient.pid` \ && rm /var/run/dhclient.pid ifconfig ${NIC} remove echo " ${NIC} removed" ;; status) ifconfig ${NIC} ;; *) echo "usage: /usr/local/etc/${NIC} [office|cjhome|stop|status]" ;; esac 赋予shell脚本(/usr/local/etc/rc.d/wi0)执行权限 以下是引用片段: # chown root:wheel /usr/local/etc/rc.d/wi0 # chmod 700 /usr/local/etc/wi0 使用方法: 在家连接无线网络使用命令: 以下是引用片段: # /usr/local/etc/rc.d/wi0 cjhhome 停止工作命令: 以下是引用片段: # /usr/local/etc/rc.d/wi0 stop 在公司连接无线网络使用命令: 以下是引用片段: # /usr/local/etc/rc.d/wi0 officehome 停止工作命令: 以下是引用片段: # /usr/local/etc/rc.d/wi0 stop 说 明: 读者可以复制上面的shell脚本修改相关参数即可,本文在FreeBSD 6.2-RELEASE(Unix 的一个发行版本)测试通过。作为一个uinx工程师,在我的日常工作中我经常要花费大量的时间去完成一些很简单但是很耗时的工作。使用shell脚本可以提高工作效率。 |
Powered by Discuz!
© 2003-2024 广州威思信息科技有限公司