zoukankan      html  css  js  c++  java
  • 保存终端打印信息

      先要说明为什么要记录终端会话,因为常会遇到这样的情况,终端是有缓存大小限制的,当在终端打印的消息超出缓存范围,它前面的打印消息就自动丢失了,这对于我们调试程序会造成障碍,所以有记录完整终端打印消息的必要!

    1使用script记录Linux终端会话

    script是大多数Linux产品util-linux软件包的一部分。

    script记录会话的一切内容:你输入的内容和你看到的内容。它甚至记录颜色;因此如果你的命令提示符或程序输出中包含颜色,script将记录它。

    要使用script,简单执行以下命令:

    $ script

    默认情况下,它向当前目录的typescript文件中写入内容。然后,你输入的一切内容都被记录到那个文件中。要往另一个文件中记录日志,只需使用script/path/to/file命令。

    完成记录后,输入exit退出。这个命令将关闭script会话并保存文件。现在你可以使用cat或其它任何程序来检查日志文件。

    在ubuntu/或者其他linux下运行,

    script screen.log

    开始记录,

    记录屏幕信息到screen.log里,一直记录到你exit为止,记录屏幕log的好方法…

    结束记录:

    exit

    使用实例

    1.  
    2. aulyp@ubuntu:/home/workspace/android_eclair_smdk6410$ sudo script screen.log //¿ªÊ¼¼Ç¼
    3.  
    4. [sudo] password for aulyp:
    5.  
    6. Script started, file is screen.log
    7.  
    8. root@ubuntu:/home/workspace/android_eclair_smdk6410# sudo make clean
    9.  
    10. ============================================
    11.  
    12. PLATFORM_VERSION_CODENAME=REL
    13.  
    14. PLATFORM_VERSION=2.1
    15.  
    16. TARGET_PRODUCT=generic
    17.  
    18. TARGET_BUILD_VARIANT=eng
    19.  
    20. TARGET_SIMULATOR=
    21.  
    22. TARGET_BUILD_TYPE=release
    23.  
    24. TARGET_ARCH=arm
    25.  
    26. HOST_ARCH=x86
    27.  
    28. HOST_OS=linux
    29.  
    30. HOST_BUILD_TYPE=release
    31.  
    32. BUILD_ID=ERD79
    33.  
    34. ============================================
    35.  
    36. Cleaning out/target/product/generic...
    37.  
    38. Cleaning out/target/common...
    39.  
    40. Cleaning out/host/linux-x86...
    41.  
    42. Cleaning out/host/common...
    43.  
    44. Clean.
    45.  
    46. root@ubuntu:/home/workspace/android_eclair_smdk6410# exit //Í˳ö¼Ç¼
    47.  
    48. exit
    49.  
    50. Script done, file is screen.log
    51.  
    52. aulyp@ubuntu:/home/workspace/android_eclair_smdk6410$

    已经找到了解决方法,异常退出也没有问题,仍然记录log,需要加上参数,script -f ido.log,如果在一个终端上使用mkfifo ido.log;script -f ido.log 然后在另一个终端登录,找到这个ido.log文件,你tail -f 就会滚动输出你操作的内容..这个非常方便…

    2.使用script的缺点在于,它记录所有特殊的字符;因此你输入的文件中将充满控制字符和ANSI转义序列。你可以在script中使用一个非常简单的shell来解决这个问题:

    SHELL=/bin/bash PS1=”$ ” script

    使用script时,不要使用交互式程序或处理窗口的程序,如vior top。它们会破坏会话的输出结果。另外,日志文件会记录你使用的任何命令行程序和你完成一项任务所采取的步骤。如果你需要在脚本中编辑一个文件,考虑退出script会话,然后用script –a(它在旧会话后添加新会话)对文件进行编辑后再重新启动会话。

    能力决定舞台,业绩体现价值,财富回报才智! 不积跬步,无以至千里;不积小流,无以成江海! 千里之行,始于足下。改变现在,就是改变未来。改变未来,从现在开始。
  • 相关阅读:
    winform利用itextsharp.dll实现图片文件转换PDF格式文件
    winform 实现选择文件和选择文件夹对话框
    ASP利用xhEditor编辑器实现图片上传的功能。
    winform c#中子窗体关闭刷新父窗体
    ASP.NET js控制treeview中的checkbox实现单选功能
    js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等)
    ASP.NET C# 登陆窗体 限制用户名只输入字母 数字以及下划线
    GridView通过RowDataBound事件获取字段值、数据源列值
    Window.Open()方法详细的参数说明及技巧。
    获取GridView中RowCommand的当前索引行(转)
  • 原文地址:https://www.cnblogs.com/general001/p/2877605.html
Copyright © 2011-2022 走看看