[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. ubuntu mysql Access denied for user root@localhost

    解决办法: 1. vim mysqld.cnf  路径:/etc/mysql/mysql.conf.d 在[mysqld]下添加skip-grant-tables 2. 重启mysql服务 servi ...

  2. MySQL 锁信息和事务

    1 锁概念 1.1 什么是锁 锁是数据库系统区别于文件系统的一个关键特性.数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性.例如:操作缓冲池中的LRU列表,删除.添加.移动L ...

  3. 了解Java内存模型,看完这一篇就够了

    前言(此文草稿是年前写的,但由于杂事甚多一直未完善好.清明假无事,便收收尾发布了) 年关将近,个人工作学习怠惰了不少.两年前刚做开发的时候,信心满满想看看一个人通过自己的努力,最终能达到一个什么样的高 ...

  4. leetcode — merge-intervals

    import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util. ...

  5. 【原创】Github团队协作之Pull请求

    首先声明:Github上关于代码团队协作方式有很多种,这里只讲述Github上其中的一种代码团队协作方式.   Pull请求(Pull request) 1 综述     协作者通过fork一个新的代 ...

  6. 【转载】浅谈38K红外发射接受编码

    转自Doctor_A 坛友的笔记! 之前做接触过一次红外遥控器,现在有空想用简单的话来聊一聊,下面有错误的地方欢迎改正指出: 1:红外的概念不聊,那是一种物理存在.以下聊38K红外发射接收,主要讲可编 ...

  7. OJ:访问 const 成员函数问题

    Description 补足程序使得其输出结果是: 40 #include <iostream> #include <string> using namespace std; ...

  8. 《c#图解教程》

    书名 <c#图解教程> 图片 时间 2017-10-12月 学习 第20章的异步编程很好,在项目里面很有用.东西有点多时间久了不用就忘了

  9. python面向对象学习(四)继承

    目录 1. 单继承 1.1 继承的概念.语法和特点 1.2 方法的重写 1.3 父类的 私有属性 和 私有方法 2. 多继承 2.1 多继承的使用注意事项 2.2 新式类与旧式(经典)类 1. 单继承 ...

  10. 【Spring】31、Spring的EL表达式

    一.简介 Spring3中引入了Spring表达式语言—SpringEL,SpEL是一种强大,简洁的装配Bean的方式,他可以通过运行期间执行的表达式将值装配到我们的属性或构造函数当中,更可以调用JD ...