Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

Expect,让你的任务更轻松(2)

| Comments

在我前一篇文档中提到了expect的基本原理和简单适用。
在这篇文当中我主要介绍一下expect自带的程序的简单使用。

$rpmall expect 
....... 
/usr/bin/autoexpect 
/usr/bin/dislocate
/usr/bin/expect 
/usr/bin/ftp-rfc 
/usr/bin/kibitz 
/usr/bin/lpunlock
/usr/bin/mkpasswd 
/usr/bin/passmass 
/usr/bin/rftp
 /usr/bin/rlogin-cwd
/usr/bin/timed-read 
/usr/bin/timed-run 
/usr/bin/unbuffer
/usr/bin/weather 
/usr/bin/xkibitz 
.....  

autoexpect:这个脚本将根据自身在运行时用户的操作而生成一个expect脚本。它的功能某种程度上类似于在Emacs编辑器的键盘宏工具。一个自动创建的脚本可能是创建自己定制脚本的好的开始。比如我要使用ssh登录一台机器,你可以这样做:
[mlsx@wgzhao ~]$ autoexpect -f ssh.exp ssh mlsx@localhost autoexpect started, file is ssh.exp mlsx@localhost’s password: Last login: Thu Apr 13 17:04:23 2006 from localhost.localdomain [mlsx@wgzhao ~]$
你所有的操作都记录再ssh.exp文件里面,下次如果你还想用同样的登录相同的机器,那你可以这样做:
[mlsx@wgzhao ~]$ ./ssh.exp spawn ssh mlsx@localhost mlsx@localhost’s password: Last login: Thu Apr 13 17:04:56 2006 from localhost.localdomain [mlsx@wgzhao ~]$
此时你不用输入密码。如果你希望登录后做一些操作,然后退出,那也同样可以做到。

dislocate:能从断开连接的进程中再重新连接操作。比如你在办公室正编辑一个文档,下班了,你可以从家里继续连接来作这个活。不过我怎么折腾也没有太明白应该如何使用这个命令。
ftp-rfc:自动获取rfc文档的一个ftp连接脚本,只要输入你需要的rfc文档编号,就可以获得。比如你输入ftp-rfc 1801,你就能得到rfc1801.Z文档。
kibitz,xkibitz:这是一个允许两个以上的用户同时连接到一个shell上,共同完成一件任务,比如共同编辑email,文档等。特别适合教学和指导。因为其中任何一个人的任何输入,其他人都可以看到。
lpunlock:解锁打印机,不太清楚如何使用
mkpasswd:想获得好的密码吗?试试这个命令吧,还识别一些参数来增强密码的安全性,对于批量生产密码和产生一次性密码是一个不错的选择。
passmass:如果你在很多机器上都有一个帐号,你可以使用这个命令来同步修改密码,很有用哟。
rftp:如何可以在命令行下使用ftp命令来下子一个目录和上传一个目录?rftp是这个问题的答案,使用方法和普通ftp一样。只是多了3个命令, ~p, ~g, ~l, ~p是把当前本地目录上传。 ~g则是把远程机器的目录下载。 ~l是列出远程机器的当前目前目录及子目录的文件。
rlogin-cwd:rlogin登录后同时进入到你指定的目录
timed-read:这个脚本是从标准输入读入一行,然后输出,但是如果超过给定的参数的秒数,那么就会自动退出。
timed-run:有点类似timed-read,在指定的时间内执行某一个命令,比如timed-run 20 passwd,如果20秒内没有输入,程序自动退出。
unbuffer:停止输出的缓冲,当输出重定向的时候。比如你使用od -c /etc/passwd |more命令的时候,刚开始你可能什么都看不到,直到所有的输出进入缓冲后才显示第一屏。
如果使用unbuffer od -c /etc/passwd,那么你就可以立刻看到第一屏的信息了。这个命令或许对于之想看到第一屏信息的人来说有用,我还不知道用她来做什么。
weather:自动获取天气情况,默认只能获取美国的天气,如果能知道本国的天气预报服务程序,那么就可以改造了,呵呵。

Comments