08 IBM iの基本操作 [コマンド編]

CLコマンドの命名体系

WindowsではDOSコマンドやPowerShell、 Linuxではシェルといったように、OS機能を操作するコマンド・インターフェースが存在する。同じようにIBM i でも、処理に応じたさまざまなコマンドが用意されており、「CLコマンド」と呼ばれている。

CLコマンドの命名体系は、基本的に「処理内容 (動詞)」と「処理対象 (目的語)」をそれぞれ英字3文字に略した語句を組み合わせる形で成り立っている。たとえばライブラリーを作成するためのCLコマンドは、「CReaTe」「LIBrary」で「CRTLIB」となる。

この英単語3文字略語の代表例(動詞形)を、図表1に示した(詳細については、この項の末尾にあるIBM i Knowledge Centerのサイトを参考にされたい)。

 

図表1 画像をクリックすると拡大します】

 

この略語により、実行したい処理から簡単にコマンドを推察できる。また、5250エミュレータのコマンド行からCLコマンドを実行する際には、コマンドを入力後、PF4キーを押すことで、コマンドの各パラメータを入力するプロンプト画面が表示される(図表2)

 

さらに、プロンプト画面で各パラメータの入力欄にカーソルを合わせてPF1キーを押すと、パラメータのヘルプ画面も表示されるので、とても使いやすい(図表3)

 

図表3 画像をクリックすると拡大します】

 

CLコマンド自体がまったくわからない場合は、コマンド行に何も入力しない状態でPF4キーを押すと、実行したい内容に応じたコマンドを番号で選択するメニュー形式の画面が表示される(図表4)

 

図表4 画像をクリックすると拡大します】

 

ライブラリーを作成したい場合、前述の「CRTLIB」コマンドがわからなくても、コマンド行でPF4キーを押し、「2. 動詞コマンド」→「18. 作成コマンド」→「96. ライブラリー作成」と番号を選択することで、「CRTLIB」コマンドのプロンプト画面が表示される。

IBM i のOSコマンドとして提供されているCLコマンドのほかにも、IBM i に導入したライセンス・プログラム側で提供しているCLコマンドもある。

またこれら製品系のCLコマンド以外に、実はCLコマンド・オブジェクトはユーザー独自でも作成でき、ユーザー独自のライブラリーで利用できる (ユーザー独自のCLコマンドの作成方法はKnowledge Centerを参照)。そのようなユーザー独自のCLコマンドを実行したい場合には、コマンド行に「<配置先ライブラリー>/<作成CLコマンド名>」と入力する。

WindowsやLinuxでは体系的なコマンド命名規則がとくになく、コマンド自体がわからない場合には手を出せないこともある。実際にWindowsやLinuxで作業する際に、自身が実行したい処理からコマンドを検索するために、逆引きサイトを使用したことのあるユーザーも多いだろう。

IBM i の場合には、ユーザー側で何をしたいかが明確であれば、コマンド名を知らなくても、最終的には処理を行えるように導線が引かれており、ユーザーとしてはとても使いやすい。前述した逆引きサイトのような情報は、すでにOS標準で提供されていると言ってよい。

また、1つのCLコマンドでは処理が完結しないような処理を実装したい場合には、複数のCLコマンドをソースに書いて、CLプログラムと呼ばれるプログラムを作成することもできる。Windows、Linuxにおけるシェル・スクリプトに相当するものと捉えればよい。

IBM iのシェル・コマンド

IBM i に対してCLコマンドを実行したい場合、基本的には5250エミュレータから対話的に実行するケースが多い。ただしIBM i にはCLコマンド以外にシェル・コマンドも用意されており、lsやrmなど、シェルに慣れ親しんでいるユーザーにとっては使いやすいコマンドが揃っている。

これらのシェル・コマンドは、「QSHELL」と呼ばれるIBM i のシェル実行インターフェースで使用できる。またQSHELLのほかにも、IBM i におけるAIX実行環境であるPASEのターミナル (QP2TERM) 画面でもシェル・コマンドが使用できる。

QSHELL、PASEのいずれでも、CLコマンドを実行するためのsystemコマンドが用意されており、シェル・スクリプトからCLコマンドを呼び出したい場合などに活用できる。図表5図表6はIBM i のシステム状況を処理するCLコマンドであるWRKSYSSTS (Work with System Status)コマンドを、QSHELLおよびPASEのsystemコマンドを介してターミナルから実行し、IFS上のテキストファイルに出力している例である。

 

図表5 画像をクリックすると拡大します】

 

 

図表6 画像をクリックすると拡大します】

 

なお、QSHELLはあくまでIBM i に対するシェル実行インターフェースなので、実行時のエンコーディングはEBCDICとなり、この例でのテキストファイルはジョブCCSIDでエンコードされる。一方、同じコマンドをPASEで実行した場合、PASEはAIX実行環境のため、エンコードはASCII (CCSID 819)もしくはUTF-8 (CCSID 1208) となる点に注意が必要である。

リモート投入用
コマンド

ここまで、IBM i 上でCLコマンドやシェル・コマンドをローカルで実行する方法について見てきたが、リモートからIBM i に対して処理を投入したい場合にはどうすればよいだろうか。図表7に、IBM i に対してリモートからCLコマンドを投入するインターフェースの代表例をまとめた。

 

図表7 画像をクリックすると拡大します】

 

ここにあるとおり、FTPのRCMDを用いたり、REXECを使ったり、IBM i Access for Windowsを導入したPCからRMTCMDと呼ばれるコマンド・リモート投入用のコマンドを使用できる。

またSSHでIBM i に接続し、CLコマンド実行することも可能である。他プラットフォームとシステム処理の連携を図りたい場合などに活用できるインターフェースなので、覚えておくとよいだろう。【中村 陽一】