[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. 我看C#的Equals()和GetHashCode()方法

    首先先谈一下Equals()这个方法: Equals()方法,来自于Object,是我们经常需要重写的方法.此方法的默认实现大概是这样的: public virtual bool Equals(obj ...

  2. ⑤早起的鸟儿有虫吃-JSTL核心标签库[收藏]

    介绍 JSTL 全名为Java Server Pages Standard Tag Library(JSP Standard Tag Library),它的中文名称为JSP 标准标签函数库. Web  ...

  3. bootbox.js官方文档

    简介 Bootbox.js是一个小型的JavaScript库,基于Bootstrap模态框开发,用于创建可编程的对话框. 不像原生的alert等对话框,所有的Bootstrap模态框生成的都是非阻塞事 ...

  4. 安装postgreSQL出现configure: error: zlib library not found解决方法

    ./configure --prefix=/usr/local/pgsql ..... configure: error: zlib library not foundIf you have zlib ...

  5. #20 Python文件

    前言 前面几节枯燥的模块终于结束了,想要完全掌握前几节的模块需要不断的练习才行,毕竟眼过千遍不如手过一遍嘛.在一些项目需求里,要对文件进行IO操作,毕竟重要数据不可能打印到屏幕上而不去保存,Pytho ...

  6. MySQL Router实现MySQL的读写分离

    1.简介 MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy. 既然MySQL Router是一个数据库的中间件,那么MySQL Rout ...

  7. JDK源码分析(一)—— String

    dir 参考文档 JDK源码分析(1)之 String 相关

  8. golang使用chrome headless获取网页内容

    如今动态渲染的页面越来越多,爬虫们或多或少都需要用到headless browser来渲染待爬取的页面. 而最近广泛使用的headless browser解决方案PhantomJS已经宣布不再继续维护 ...

  9. JavaScript Date 对象的异常现象-new Date('0001-01-01 00:00:00')

    Date 对象 Date 对象用于处理日期和时间. new Date() :Date 对象会自动把当前日期和时间保存为其初始值. 打开chrome的开发者工具,在Console敲下new Date() ...

  10. 4.1 explain 之 id

    一.id 是什么 select 查询的序列化,包含一组数字,表示查询中执行select子句或操作的顺序 二.三种情况 a. id相同,执行顺序由上至下 b. 如果是子查询,id的序号会递增,id值越大 ...