好好工作,好好生活!
2013年(9)
分类: 其他UNIX
2013-03-14 23:31:24
WRKACTJOB
这个使用的频率应该是最高的吧,在这里只提一个比较有用的用法:Coding的时候断线异常退出时,再登录之后,用2进入刚才编辑的程序,不是会报错“正在被使用”嘛。除了等一会,一直等到它自动退出之外,还可以用WRKACTJOB + 10,来查找刚才自己的那个进程(显示出来的命令应该是STRSEU),然后把它KILL掉就行了。
DSPFD
DSPFD + PF名,查看文件的信息,包括文件的MEMBER数,总记录数,被删除的记录数,CCSID等等。
DSPFD + LF名,查看逻辑文件的键值,结合DSPDBR,可以找出一个PF文件对应的所有LF文件的键值。
DSPFD + 库名 + *MBRLIST,可以看到该库之下所有的文件名。
这个命令可以使用*OUTFILE,将输出变成一个文件。灵活运用,将会是很多自行编写的工具的基础之一。
DSPFFD
注意,和上面的命令相差一个“F”,表示查看PF文件的字段信息。比如该PF文件共有多少个字段,每个字段的类型如何。
与DSPFD相似,DSPFFD也可以使用*OUTFILE,将输出变成一个文件。同理,灵活运用,也是众多自行编写工具的基础。
MRGSRC
比较两个程序的差异。按照A、B、A的顺序,MRGSRC时,A程序在上面,B程序在下面,白色的地方,即表示两个程序的差异。
F13表示接受当前差异,F17表示接受所有差异,F16表示继续查找下一处差异。
在接受差异时,表示按照B程序,更改A程序。(即B程序不变)
把SPLF变成MEMBER(源文件)
必须知道SPLF名,以及生成SPLF的JOB、USR、NUMBER名
CRTSRCPF FILE(库名/SRCPF) RCDLEN(212) IGCDTA(*YES)
CHGPF FILE(库名/SRCPF) CCSID(935)
CRTPF FILE(库名/PF) RCDLEN(200) IGCDTA(*YES)
CPYSPLF FILE(SPLF名) TOFILE(库名/PF) +
JOB(NUMBER名 / USER名 / JOB名) SPLNBR(*LAST)
CPYF FROMFILE(库名/PF) TOFILE(库名/SRCPF) +
TOMBR(MBR0001) MBROPT(*ADD) FMTOPT(*CVTSRC)
最后,SRCPF下的MBR001就是SPLF转成的MEMBER
当然,做为中间转换的临时文件,PF文件会保留SPLF的信息。
把MSGF变成SPLF
CHGSYSLIBL LIB(QSYS2989)
DSPMSGD RANGE(*FIRST *LAST) MSGF(MSGF所在库名/MSGF名) +
DETAIL(*BASIC) OUTPUT(*PRINT)
CHGSYSLIBL LIB(QSYS2989) OPTION(*REMOVE)
这个命令,再结合上面的“把SPLF变成MEMBER”,就可以把MSGF搞成MEMBER,然后再FTP到WINDOWS上,就可以很方便地查找已定义的MSG信息了。
不过必须要有权限执行CHGSYSLIBL这个命令。
DSPOBJD
根据程序名,查找编译时源代码所在的库名、SRCFILE名。
DETAIL参数用“*SERVICE”,OBJTYPE选项用“*PGM”
不过好象RPGLE的程序用这个命令查不出来,要用DSPPGM命令。
DSPPGM
根据目标
DSPPGM + RPGLE程序名,参数用“*MODULE”,然后再选择5,就可以看到编译时RPGLE程序时,源代码所在的库名,SRCFILE名。
DSPDBR
根据物理文件查其对应的所有逻辑文件
DSPPGMREF
查找程序与PF、LF的关系。
PGM参数用“*ALL”,OUTPUT参数用“*OUTFILE”,OBJTYPE参数用“*ALL”,然后执行,再输入输出文件名与所在库就可以了。然之后,就可以SQL在这个生成的文件中查找(生成的过程可能会有点慢,要耐心)。
在生成的文件中,字段WHRFNM,表示记录格式名。举例来说,如果物理文件更改过,那么物理文件与逻辑文件就都重新编译过了,所以它们对应的的所有的程序都要重新编译,通常物理文件与逻辑文件使用相同的记录格式名(当然,如果不同就算了)这时就需要按记录格式名来查找。比如SELECT * FROM 刚生成的文件 WHERE WHRFNM = “记录格式名”,找出所有涉及到这个记录格式名的程序。
在生成的文件中,字段WHFNAM,表示文件名,包括物理文件与逻辑文件。比如说当我们只修改了某个逻辑文件时,那么当然是只需要重新编译与该逻辑文件有关的程序,也就是说只根据文件名来查找就足够了。
RTVCLSRC
如果编译CL程序时,不是刻意带*NONE参数,那么一般来说CL程序都可以使用这个命令来反编译。具体用途试试便知
RGZPFM
重整文件,即回收已删除记录的空间。不过这个命令我没实际用过。
WRKMSGQ QSYSOPR
显示错误信息
CHGCMGDFT
更改某些命令的默认参数,如更改CRTPF的WAITRCD参数:
CHGCMDDFT CMD(QSYS/CRTPF) NEWDFT(‘WAITRCD(*IMMED)’)
DSPDBR + 物理文件名,查看该物理文件对应的逻辑文件
CLRPFM 清空文件
wrksplf 显示工作池
StrDBG 进入调试状态
EndDBG 终止调试
Go LICPGM 安装程序菜单
Go ASSIST 辅助菜单
DspWSUsr 显示用户信息
Go CMDFile 命令菜单
Go Major 主菜单