[20181219]script使用小技巧.txt
[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的更多相关文章
- 你想的到想不到的 javascript 应用小技巧方法
javascript 在前端应用体验小技巧继续积累. 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElemen ...
- avascript小技巧
avascript小技巧 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture() ...
- javascript的40个网页常用小技巧
下面是javascript的40个网页常用小技巧,对网站开发人员相信会有帮助.1. oncontextmenu="window.event.returnValue=false" 将 ...
- hw小技巧(转载)
小弟也第一次参加hw,经过5天hw,确实也学到了许多的东西,但就本次分享而言,我分享一些我认为在hw里面值得注意的东西以及一些小技巧 0x01 信息收集 信息收集这个多西当然都是老生常谈了,你收集的东 ...
- 前端网络、JavaScript优化以及开发小技巧
一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...
- Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具
前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...
- JS处理事件小技巧
今天,就分享一下我自己总结的一些JS的小技巧: ①防止鼠标选中事件 <div class="mask" onselectstart="return false&qu ...
- FineUI小技巧(5)向子窗口传值,向父窗口传值
前言 FineUI中经常会用到启用IFrame的Window控件,这样有助于从物理上进行代码解耦和.IFrame的引入就会涉及传值问题,如何在父窗口和子窗口之间相互传值呢? 向子窗口传值 向子窗口传值 ...
- [转载]Js小技巧||给input type=“password”的输入框赋默认值
http://www.cnblogs.com/Raywang80s/archive/2012/12/06/2804459.html [转载]Js小技巧||给input type="passw ...
随机推荐
- 我看C#的Equals()和GetHashCode()方法
首先先谈一下Equals()这个方法: Equals()方法,来自于Object,是我们经常需要重写的方法.此方法的默认实现大概是这样的: public virtual bool Equals(obj ...
- ⑤早起的鸟儿有虫吃-JSTL核心标签库[收藏]
介绍 JSTL 全名为Java Server Pages Standard Tag Library(JSP Standard Tag Library),它的中文名称为JSP 标准标签函数库. Web ...
- bootbox.js官方文档
简介 Bootbox.js是一个小型的JavaScript库,基于Bootstrap模态框开发,用于创建可编程的对话框. 不像原生的alert等对话框,所有的Bootstrap模态框生成的都是非阻塞事 ...
- 安装postgreSQL出现configure: error: zlib library not found解决方法
./configure --prefix=/usr/local/pgsql ..... configure: error: zlib library not foundIf you have zlib ...
- #20 Python文件
前言 前面几节枯燥的模块终于结束了,想要完全掌握前几节的模块需要不断的练习才行,毕竟眼过千遍不如手过一遍嘛.在一些项目需求里,要对文件进行IO操作,毕竟重要数据不可能打印到屏幕上而不去保存,Pytho ...
- MySQL Router实现MySQL的读写分离
1.简介 MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy. 既然MySQL Router是一个数据库的中间件,那么MySQL Rout ...
- JDK源码分析(一)—— String
dir 参考文档 JDK源码分析(1)之 String 相关
- golang使用chrome headless获取网页内容
如今动态渲染的页面越来越多,爬虫们或多或少都需要用到headless browser来渲染待爬取的页面. 而最近广泛使用的headless browser解决方案PhantomJS已经宣布不再继续维护 ...
- JavaScript Date 对象的异常现象-new Date('0001-01-01 00:00:00')
Date 对象 Date 对象用于处理日期和时间. new Date() :Date 对象会自动把当前日期和时间保存为其初始值. 打开chrome的开发者工具,在Console敲下new Date() ...
- 4.1 explain 之 id
一.id 是什么 select 查询的序列化,包含一组数字,表示查询中执行select子句或操作的顺序 二.三种情况 a. id相同,执行顺序由上至下 b. 如果是子查询,id的序号会递增,id值越大 ...