|
参考: http://www.linux.com/archive/articles/53729
昨天在十多台服务器上生成了大篇文本,然后一一下载到自己的笔记本上,同事问为什么不直接在本机记录下来——这是securecrt的基本功能,可是我在linux没有找到替代的方式。
今天花了半天的时间查找一个可以在linux下使用的类似于SecureCRT的软件,最接近的是putty,可是它要自行打开一个xterm而不是我本来的xfce4-terminal,而且在本来有终端的情况下去寻求另外的终端也是一件怪异的事情。
忙了一个下午,最后还是决定在shell里面用script来作,感谢网络的方便,感谢前人的贡献。
script是一个执行程序,执行以后终端里面的所有显示都将会被自动记录下来,直到执行exit,比如,我的ip是172.16.20.47,登录到服务器172.16.20.14上面去读取一些系统的配置文件,先执行script然后在用ssh登录服务器,此后一切都会记录在本机的cs.log文件里面:
$ script cs.log
Script started, file is cs.log
$ ssh root@172.16.20.14
Last login: Mon Sep 28 00:56:53 2009 from 172.16.20.47
# ifconfig
eth0 Link encap:Ethernet HWaddr
inet addr:172.16.20.14 Bcast:172.16.20.255 Mask:255.255.255.0
inet6 addr: fe80::20c:76ff:fe16:447b/64 Scopeink
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:584729 errors:0 dropped:0 overruns:0 frame:0
TX packets:216460 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:464448149 (442.9 MiB) TX bytes:39043622 (37.2 MiB)
Interrupt:225
lo Link encapocal Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3831 errors:0 dropped:0 overruns:0 frame:0
TX packets:3831 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:561571 (548.4 KiB) TX bytes:561571 (548.4 KiB)
退出服务器后执行exit
$ exit
exit
Script done, file is cs.log
可以看到文件cs.log记录结束,不过现在还没有完,因为这个文件里面有很多控制符,需要作修改。
里面的^H^M^G的很多,这里有一个在vi里面去掉它们的办法:
[HTML]
:%g/^[/s///g
:%g/^G/s///g
:%g/^M/s///g
:%g/^H/s///g
[/HTML]
执行上面几个命令后,文本的正题部分看起来就很标准了,注意^H^M^H^[的输入方式不是用shift+数字而是用ctrl,比如^H就是ctrl+v+h,^M就是ctrl+v+m,^[是ctrl+v+[
最后据说不用vi修改,用一条命令就可以达到效果 col -fx ,可是我执行后总是被告知
usage: col [-bfhpx] [-l nline] |
|