z/OS 是 IBM 的旗舰操作系统,主要用于大型机环境,它的命令体系与 Linux/Unix 或 Windows 有显著不同,更加强调交互式会话和基于 JCL 的批处理。

z/OS 命令主要分为两大类:
- 交互式命令:用户在终端(如 ISPF/PDF 或 TSO/E)中直接输入并立即执行的命令。
- 批处理命令:这些命令通常不是直接输入的,而是作为 Job Control Language (JCL) 语句的一部分,提交给系统在后台执行。
交互式命令
这些是你在与 z/OS 系统进行实时交互时最常用的命令,它们通常通过 TSO/E (Time Sharing Option / Extensions) 环境执行,而最常用的 TSO/E 前端是 ISPF (Interactive System Productivity Facility)。
TSO/E 基础命令
这些是 TSO/E 的核心命令,用于管理你的会话和基本操作。
| 命令 | 全称 | 描述 | 示例 |
|---|---|---|---|
LOGON |
Log On | 登录到 z/OS 系统。 | LOGON IBMUSER |
LOGOFF |
Log Off | 安全地注销并终止你的会话。 | LOGOFF |
TIME |
Time | 显示当前系统时间。 | TIME |
STATUS |
Status | 显示你的 TSO/E 会话的当前状态信息。 | STATUS |
PROFILE |
Profile | 显示或修改你的 TSO/E 配置文件设置。 | PROFILE |
FREE |
Free | 释放被分配的数据集或资源。 | FREE 'DSN(DATASET.NAME)' |
HELP |
Help | 获取命令的帮助信息。 | HELP 或 HELP COMMAND_NAME |
数据集操作命令
这是 z/OS 用户最频繁使用的命令类别,用于管理文件(在 z/OS 中称为数据集)。

| 命令 | 全称 | 描述 | 示例 |
|---|---|---|---|
LISTDS |
List Data Set | 列出数据集的属性(如 LRECL, BLKSIZE, DSORG 等)。 | LISTDS 'IBMUSER.MY.PGM(COBOL)' |
LISTCAT |
List Catalog | 从系统目录中列出数据集的信息。 | LISTCAT ENTIRE (列出所有) 或 LISTCAT LEVEL('IBMUSER') (列出特定用户下) |
ALLOC |
Allocate | 分配一个新的数据集或为数据集分配文件。 | ALLOC DA('IBMUSER.NEW.DATA') NEW SPACE(1,1) CYL |
DELETE |
Delete | 删除一个或多个数据集。 | DELETE 'IBMUSER.OLD.DATA' |
RENAME |
Rename | 重命名一个数据集。 | RENAME 'IBMUSER.OLD.NAME' TO 'IBMUSER.NEW.NAME' |
COPY |
Copy | 复制一个数据集的内容到另一个数据集。 | COPY INDA('IBMUSER.SOURCE.FILE') OUTDA('IBMUSER.BACKUP.FILE') |
IEBGENER |
(Utility) | 一个常用的实用程序,用于复制数据集,或将顺序数据集转换为分区数据集。 | 通常在 JCL 中使用,但在交互式下也可调用。 |
交互式实用程序命令
这些命令让你在不离开 ISPF 界面的情况下执行实用程序功能。
| 命令 | 描述 | 示例 |
|---|---|---|
SDSF |
System Display and Search Facility,这是最重要的命令之一!它是一个强大的工具,用于监控和管理系统资源,查看作业输出、打印机队列、用户会话、CPU/内存使用情况等。 | SDSF |
ISPF |
启动 ISPF 主菜单。 | ISPF |
IKJEFT01 |
一个程序,用于执行主机上的外部程序或命令(如 Unix System Services 命令)。 | IKJEFT01 '/bin/ls -l /tmp' |
IKJTSO |
另一个用于执行 TSO/E 命令的程序。 | IKJTSO 'LISTDS IBMUSER.*' |
批处理命令 (JCL)
在 z/OS 中,绝大多数大规模、重复性的任务都是通过批处理作业来完成的,这些作业由 JCL (Job Control Language) 控制,JCL 本身不是传统意义上的“命令”,而是一组向操作系统描述作业如何执行的指令。
一个 JCL 作业由三个主要语句组成:
//JOB语句:标识作业的开始,提供作业名、用户信息和会计信息。//EXEC语句:执行一个程序或步骤,例如执行一个实用程序或用户程序。//DD语句:定义数据集,为程序提供输入或输出。
常用 JCL 示例
复制数据集 (使用 IEBGENER)
这个作业会将一个顺序数据集复制到另一个顺序数据集。

//MYJOB JOB (),'USER',CLASS=A,MSGCLASS=X //STEP1 EXEC PGM=IEBGENER //SYSUT1 DD DSN=IBMUSER.INPUT.FILE,DISP=SHR // 输入数据集 //SYSUT2 DD DSN=IBMUSER.OUTPUT.FILE, // 输出数据集 // DISP=(NEW,CATLG,DELETE), // 创建并编目,完成后删除 // SPACE=(TRK,(10,5)), // 空间分配 // DCB=(LRECL=80,BLKSIZE=800) // 数据集属性 //SYSIN DD DUMMY //SYSOUT DD SYSOUT=*
//MYJOB JOB ...: 作业定义。//STEP1 EXEC PGM=IEBGENER: 执行名为 IEBGENER 的复制程序。//SYSUT1 DD ...: 定义程序的输入数据集。//SYSUT2 DD ...: 定义程序的输出数据集,并指定如何处理它(新建、编目、删除)。
排序数据集 (使用 SORT)
这个作业会对一个数据集进行排序。
//SORTJOB JOB (),'USER',CLASS=A //SORTSTEP EXEC PGM=SORT //SORTIN DD DSN=IBMUSER.UNSORTED.DATA,DISP=SHR //SORTOUT DD DSN=IBMUSER.SORTED.DATA,DISP=(NEW,CATLG) //SYSOUT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(1,10,CH,A) /* 按前10个字符,升序排序 /* /*
//SYSIN DD * ... /*: 这里提供了一个内嵌的控制数据集,告诉 SORT 程序如何排序 (SORT FIELDS...)。
编译和链接 COBOL 程序
这是一个典型的多步骤作业,用于编译源代码并链接编辑生成可执行模块。
//COMPILE JOB (),'USER',CLASS=A //COBSTEP EXEC PGM=IGYCRCTL //SYSUT1 DD SPACE=(TRK,(10,5)),UNIT=SYSDA //SYSUT2 DD SPACE=(TRK,(10,5)),UNIT=SYSDA //SYSUT3 DD SPACE=(TRK,(10,5)),UNIT=SYSDA //SYSLIB DD DSN=SYS1.COBOLLIB,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD DSN=IBMUSER.MY.COBOL(SOURCE),DISP=SHR //* //LKEDSTEP EXEC PGM=HEWL,PARM='XREF,LET,LIST,MAP' //SYSLMOD DD DSN=IBMUSER.LOADLIB(MYPROG),DISP=SHR //SYSLIN DD DSN=&&OBJECT,DISP=(OLD,DELETE) //SYSPRINT DD SYSOUT=* //* //DELETE EXEC PGM=IDCAMS //SYSIN DD * DELETE '&&OBJECT' /* /*
//COBSTEP: COBOL 编译步骤。//LKEDSTEP: 链接编辑步骤,输入是编译产生的目标模块 (&&OBJECT)。//DELETE: 一个额外的步骤,用于清理中间生成的目标数据集。
Unix System Services (USS) 命令
现代 z/OS 集成了 POSIX 兼容的环境,称为 Unix System Services (USS),在 USS 中,你可以直接使用熟悉的 Unix/Linux 命令,你需要在 USS Shell (Shell) 环境中执行这些命令。
| 命令 | 描述 | 示例 |
|---|---|---|
ls |
列出目录内容。 | ls -l /u/ibmuser |
cd |
切换当前目录。 | cd /tmp |
pwd |
显示当前工作目录。 | pwd |
cat |
显示文件内容。 | cat myscript.sh |
cp |
复制文件或目录。 | cp file1.txt file2.txt |
mv |
移动/重命名文件或目录。 | mv oldname newname |
rm |
删除文件。 | rm unwanted_file |
mkdir |
创建目录。 | mkdir new_dir |
rmdir |
删除空目录。 | rmdir empty_dir |
如何进入 USS Shell?
- 在 ISPF 主菜单,选择 Utilities -> Unix System Services -> Shell。
- 或者使用交互式命令
OMVS,然后输入bash或sh。
常用实用程序
除了命令,z/OS 还有一系列强大的实用程序,它们通常通过 JCL 调用。
| 实用程序 | 描述 |
|---|---|
| IEBGENER | 通用数据集复制工具。 |
| IEBPTPCH | 将数据集内容打印到系统打印机或分配的数据集。 |
| IEBUPDTE | 编辑和更新顺序数据集或分区数据集的成员。 |
| IDCAMS | VSAM Access Method Services,用于创建、删除、重建、列出 VSAM 数据集。 |
| SORT | 功能强大的排序和合并工具。 |
| IEFBR14 | 一个“空”程序,常用于 JCL 中仅仅分配或删除数据集。 |
| 命令类型 | 执行环境 | 特点 | 常见用途 |
|---|---|---|---|
| 交互式命令 | TSO/E 会话 (如 ISPF) | 即时反馈,适合交互式操作、调试、小任务。 | 查看数据集、编辑文件、提交作业、监控系统。 |
| JCL | 批处理 | 描述作业流程,无交互,适合大规模、自动化任务。 | 编译程序、处理大量数据、备份、定期维护。 |
| USS 命令 | USS Shell | 类似于 Linux/Unix,适合处理文本文件、脚本和类 Unix 操作。 | 管理脚本、编译开源软件、Web 服务器管理。 |
对于初学者来说,建议从 ISPF/PDF 界面开始,熟悉交互式命令和菜单操作,然后逐步学习如何编写 JCL 来自动化任务。SDSF 是你最好的朋友,一定要学会用它来查看作业运行状态和输出。
