[20181219]script使用小技巧.txt

--//前几天在使用strace时遇到问题,它的输出使用标准错误句柄.
--//我在想平时使用sqlplus如果输出字段很多,屏幕看起来一片混乱.
--//是否可以通过使用script记录操作,通过shell一些命令的功能实现更好的显示.通过例子说明:

1.环境:
--//首先启动scripts,加入-f参数的主要目的是马上输出,避免缓存的影响.
-f  Flush output after each write. This is nice for telecooperation: One person does 'mkfifo foo; script -f foo' and
    another can supervise real-time what is being done using 'cat foo'.

2.演示一:
--//session 1:
$ script -f /tmp/a.txt
Script started, file is /tmp/a.txt

--//登录数据库会话窗口,设置linesize大一些.
SCOTT@book> set linesize 20000
SCOTT@book> set pagesize 0

--//打开另外的终端窗口,执行:
--//session 2:
$ tail --line=500 -f /tmp/a.txt

--//这样就能看到刚才输入的命令.
--//千万注意不要执行script的会话终端查看/tmp/a.txt,这样会导致/tmp/a.txt迅速增大,相当于一个环.而且自己清楚那个窗口是输入命令,
--//那个是使用tail查看的窗口.
--//session 2:
$ tail --line=500 -f /tmp/a.txt | cut -c1-200

--//回到打开session 1:
SCOTT@book> set numw 12
SCOTT@book> select * from v$database;

--//session 2:
SCOTT@book> select * from v$database;
        DBID NAME                 CREATED             RESETLOGS_CHANGE# RESETLOGS_TIME      PRIOR_RESETLOGS_CHANGE# PRIOR_RESETLOGS_TIM LOG_MODE     CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROL CONTROLF
------------ -------------------- ------------------- ----------------- ------------------- ----------------------- ------------------- ------------ ------------------ --------------- ------- --------
  1337401710 BOOK                 2018-11-29 11:32:09            925702 2015-11-24 09:11:12                       1 2013-08-24 11:37:30 ARCHIVELOG          13816048396     13815976887 CURRENT 2018-11-

--//CONTROLFILE_CREATED字段被截断了,适当调出输出宽度就比较看到了.

3.演示二:
--//演示一仅仅显示前面一段也许不是我需要的信息.可以通过cut过滤输出特定的字段.
--//session 1:
SCOTT@book> set colsep |
--//这样就可以实现显示使用字符"|"分割.假设我现在要显示v$database视图中supp开头的字段.可以进行如下操作.

--//session 2:
$ tail --line=500 -f /tmp/a.txt | grep --binary-files=text SUPP
--//注意:grep 一定要加入--binary-files=text,因为typescript文件grep把它看成二进制文件,要把它当文本文件对待.
--//回到session 1:
SCOTT@book> @desc v$database
--//切换到session 2,看到如下输出:
   30      SUPPLEMENTAL_LOG_DATA_MIN                VARCHAR2(8)
   31      SUPPLEMENTAL_LOG_DATA_PK                 VARCHAR2(3)
   32      SUPPLEMENTAL_LOG_DATA_UI                 VARCHAR2(3)
   40      SUPPLEMENTAL_LOG_DATA_FK                 VARCHAR2(3)
   41      SUPPLEMENTAL_LOG_DATA_ALL                VARCHAR2(3)
   51      SUPPLEMENTAL_LOG_DATA_PL                 VARCHAR2(3)

--//这样可以确定显示字段的位置是30,31,32,41,50.奇怪SUPPLEMENTAL_LOG_DATA_MIN长度是8.按ctrl+c退出tail命令,打入如下:
$ tail --line=500 -f /tmp/a.txt | cut -d"|" -f1,2,30,31,32,40,41,51

--//回到session 1,执行如下:
SCOTT@book> select * from v$database;

--//session 2,看到如下:
SCOTT@book> select * from v$database;
        DBID|NAME                |SUPPLEME|SUP|SUP|SUP|SUP|SUP
------------|--------------------|--------|---|---|---|---|---
  1337401710|BOOK                |NO      |NO |NO |NO |NO |NO

--//另外有一些版本带有scriptreplay,可以参考链接:http://blog.itpub.net/267265/viewspace-1276764/
--//总之通过shell一些过滤命令显示自己需要的信息.
--//另外退出script后定期清理script的输出文件.

[20181219]script使用小技巧.txt的更多相关文章

  1. 你想的到想不到的 javascript 应用小技巧方法

    javascript 在前端应用体验小技巧继续积累. 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElemen ...

  2. avascript小技巧

    avascript小技巧 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture() ...

  3. javascript的40个网页常用小技巧

    下面是javascript的40个网页常用小技巧,对网站开发人员相信会有帮助.1. oncontextmenu="window.event.returnValue=false" 将 ...

  4. hw小技巧(转载)

    小弟也第一次参加hw,经过5天hw,确实也学到了许多的东西,但就本次分享而言,我分享一些我认为在hw里面值得注意的东西以及一些小技巧 0x01 信息收集 信息收集这个多西当然都是老生常谈了,你收集的东 ...

  5. 前端网络、JavaScript优化以及开发小技巧

    一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...

  6. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

    前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...

  7. JS处理事件小技巧

    今天,就分享一下我自己总结的一些JS的小技巧: ①防止鼠标选中事件 <div class="mask" onselectstart="return false&qu ...

  8. FineUI小技巧(5)向子窗口传值,向父窗口传值

    前言 FineUI中经常会用到启用IFrame的Window控件,这样有助于从物理上进行代码解耦和.IFrame的引入就会涉及传值问题,如何在父窗口和子窗口之间相互传值呢? 向子窗口传值 向子窗口传值 ...

  9. [转载]Js小技巧||给input type=“password”的输入框赋默认值

    http://www.cnblogs.com/Raywang80s/archive/2012/12/06/2804459.html [转载]Js小技巧||给input type="passw ...

随机推荐

  1. JVM的类加载

    一.基本类加载机制介绍 大体引用一下<深入理解Java虚拟机>一书中对类加载的定义:虚拟机将描述类的二进制字节流(即Class文件)加载到内存中,并对其进行验证.准备.解析.初始化,最终 ...

  2. MFC控件编程之复选框单选框分组框

    MFC控件编程之复选框单选框分组框 一丶分组框 分组框 英文叫做 GroubBox 添加了分组框主要就是分组.好看.不重点介绍 二丶单选框 英文: Raido Button 单选框需要注意的事项 1. ...

  3. MFC原理第三讲.RTTI运行时类型识别

    MFC原理第三讲.RTTI运行时类型识别 一丶什么是RTTI RTTI. 运行时的时候类型的识别. 运行时类型信息程序.能够使用基类(父类)指针 或者引用 来检查这些指针或者引用所指的对象. 实际派生 ...

  4. 2.ES6引进的新特性——类Class

    为什么? ES6中引入了类,类在java/c++等面向对象的编程语言常见,JS引入类是为了在日后使用js开发大型的应用程序,类本质是语法糖(语法上更加人性化) 以前写一个类 function User ...

  5. CPU上下文切换

    CPU上下文切换包括进程上下文切换.线程上下文切换及中断上下文切换,当任务进行io或发生时间片事件及发生中断(如硬件读取完成)时,就会进入内核态,发生CPU上下文切换. 进程上下文切换,进程的上下文信 ...

  6. python函数的参数细节

    按"指针"传递 python中变量赋值.参数传递都是通过"指针"拷贝的方式进行的.除了按"指针"拷贝,还有一种按值拷贝的方式,关于按值.按指 ...

  7. MVC学习之路(1) EF 增删查改合集

    首先再Model中创建一个类[WMBlogDB] public class WMBlogDB : DbContext { //连接字符串. public WMBlogDB() : base(" ...

  8. 第一册:lesson sixty three。

    原文: Thank you docter. A:How's Jim today? B:Better, thank you docter. A:Can I see him ,please? B:Cert ...

  9. Spring中的JDBC模板类入门

    1.Spring框架中提供了很多持久层的模板类来简化编程,使用模板类编写程序会变的简单 2.提供了JDBC模板,Spring框架提供的 *JdbcTemplate类 3.Spring框架可以整合Hib ...

  10. 用kafka实现消息推送

    一个人知道的Topic是单点推送,大家都知道Topic是广播. kafka消息消费机制: 1.广播消费:通过定义topic前缀来标识属于广播的消息(例如:topicname:gonggao153568 ...