I am LAZY bones? AN ancient AND boring SITE

记录你的终端操作 ── script

不知广大linuxer有没有这样的经历:你要给别人演示一个终端下的操作过程,或者遇到什么难题需要求助别人,想把终端的操作过程(输入)及输出都记录下来。
这时候,如果过程不是很长,一屏以内的话一般可以选择直接截图;如果只是一个命令的输出,可以用重定向将标准输出(和/或 标准错误)直接定向到文件。
但是如果这个过程,既不是很短,比如输入和输出加起来有上万行;又不是一个命令能搞定的,该怎么办呢?将terminal的缓冲区定义地很大,再选择/复制/粘帖显然不是个好办法。
这时候,script就派上用场了,在终端里输入script,表面上只是打印了一行“Script started, file is typescript”的文字,但是其实,现在已经新开了一个session了,从此刻开始,任何你的输入和程序的输出都将被如实地记录到当前目录下的 typescript 文件里,直到你打exit退出这个session。退出以后,你可以用任何文本编辑器打开这个 typescript 文件,不过由于这个文件将所有的ANSI控制符都记录进去了,所以,如果你的PS1有彩色的,或者有执行ls之类的输出彩色信息的命令的时候,直接用文本编辑器看到的输出会有点乱,不过这样的好处是,如果你 cat typescript 的话,所有的颜色都也可以恢复了。另外,如果你想去掉颜色的话,可以执行

cat typescript | sed 's/\x1b[[0-9;]*.//g' > nocolor

这个命令可以基本把颜色代码去掉。

另外,还有一个办法也可以完成此项工作,就是使用 screen 的时候,加上 -L 参数,会在当然目录生成一个 screenlog.0 的文本文件,同样,这也是一个带ANSI控制符的文本文件,忠实地记录了你的所有操作。
现在,有了终端的详细“截图”,你就可以将得到文件发给对方,进行交流了,哈哈~

最后修改时间: 2009年12月10日 09:50

本文章发表于: 2009年12月09日 22:55 | 所属分类:CLI软件. | 您可以在此订阅本文章的所有评论. | 您也可以发表评论, 或从您的网站trackback.

11 个评论 关于: “记录你的终端操作 ── script”

  1. evlos 在 2009年12月10日 00:38 说:回复

    杀一个发 ~ 学习一下 哈哈 ~

  2. BackFire 在 2009年12月10日 01:10 说:回复

    嗯,不错,终端下的屏幕录像机

  3. cece 在 2009年12月10日 08:08 说:回复

    地板

  4. TualatriX 在 2009年12月10日 09:32 说:回复

    太牛叉了。shell真是什么工具都有啊。

  5. Leos 在 2009年12月10日 11:11 说:回复

    不错不错……学习了……

  6. jicknan 在 2009年12月10日 12:34 说:回复

    我一般都是先开 screen,想记录的时候,比如 compiling result,使用快捷键 Ctrl-a h 开始,再次 Ctrl-a h 结束。

  7. Tweets that mention I am LAZY bones ? : 记录你的终端操作 ── script -- Topsy.com 在 2009年12月10日 16:00 说:回复

    […] This post was mentioned on Twitter by 骨头, spy8888. spy8888 said: 记录你的终端操作 ── script http://icio.us/uksec5 […]

  8. 9hills 在 2009年12月10日 17:02 说:回复

    果然不错

  9. Fwolf 在 2009年12月11日 01:08 说:回复

    我以前写过一个小东西:
    http://www.fwolf.com/tools/2007/screenlog2html.php
    转换带ANSI颜色的log文件的,
    试了一下,略微有些乱码,凑合能看。

  10. Dig 在 2009年12月16日 09:50 说:回复

    cat 一下 typescript 不就完美了?

  11. 可可火山 在 2009年12月30日 16:33 说:回复

    我让一般用户登陆shell就自动开个multiuser的screen,相互交流需要看到她终端屏幕时就attach过去,也方便。

发表评论