処理に応じた
さまざまなコマンドがある
WindowsではDOSコマンドやPowerShell、LinuxではシェルといったOS機能を操作するコマンド・インターフェースが存在するが、IBM iでもCLコマンドと呼ばれる処理に応じたさまざまなコマンドが用意されている。
CLコマンドの命名体系として、基本的に「処理内容(動詞)」と「処理対象(目的語)」をそれぞれ英字3文字に略した語句を組み合わせる形で成り立っている。たとえば、ライブラリーを作成するためのCLコマンドは「CReaTe」「LIBrary」で「CRTLIB」となる。なお、この英単語の3文字の略語の動詞形の一部を図表1に示しているが、詳細はIBM i Documentationにまとめられている。

不明のコマンドを教えてくれる
ヘルプ機能
IBM iでは、行いたい処理から簡単にコマンドを推し量ることができる。また、5250エミュレータのコマンド行からCLコマンドを実行する際には、コマンドを入力後、PF4キーを押下することで、図表2のようにコマンドの各パラメータを入力するプロンプト画面が出てくる。

また、プロンプト画面で各パラメータの入力欄にカーソルを合わせてPF1キーを押下すると、図表3のようにパラメータのヘルプ画面も表示されるので、ユーザーにとって、とても使いやすいものとなっている。

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

ライブラリーを作成したい場合、先に出た「CRTLIB」コマンドがたとえわからなくてもコマンド行でPF4キーを押し、「2. 動詞コマンド」→「18. 作成コマンド」→「93. ライブラリー作成」と番号を選択することで、「CRTLIB」コマンドのプロンプト画面が出るようになっている。
コマンドの一部分だけ覚えている場合は、たとえば、「GO CMDCRT」と入力すれば、CRTxxxというCLコマンドを、「GO CMDPF」と入力すれば、PF(物理ファイル)を操作するCRTPF、CHGPFコマンドなどを検索することもできる。
ユーザー独自のCLコマンドも作成できる
IBM iのOSコマンドとして提供されているCLコマンドのほかにも、IBM iに導入したライセンス・プログラム側で提供しているCLコマンドもある。
さらに、これら製品系のCLコマンド以外に、実はCLコマンド・オブジェクトはユーザー独自に作成することもでき、ユーザー独自のライブラリーに置いておき、利用することも可能である(ユーザー独自のCLコマンドの作成方法については、IBM i Documentationを参照してほしい)。そのようなユーザー独自のCLコマンドを実行したい場合には、コマンド行に「<配置先ライブラリー>/<作成CLコマンド名>」と入力することで実行できる。
コマンド名を知らなくても
処理を行える仕組み
WindowsやLinuxでは体系立ったコマンド命名規則はとくになく、コマンド自体がわからない場合には手を出せない状態になることもある。実際にWindows、Linuxで作業する際に自分の行いたい処理からコマンドを検索するために逆引きサイトを参照したことのある人も多いと思う。
IBM iの場合には、ユーザー側で何をしたいかが明確であれば、コマンド名を知らなくても最終的に処理を行えるように導線が引かれており、ユーザーとしてはとても使いやすいOSと言え、逆引きサイトのような情報はすでにOS標準で提供されていると言ってよい。
また、1つのCLコマンドでは処理が完結しないような処理を実装したい場合には、複数のCLコマンドをソースに書いて、CLプログラムと呼ばれるプログラムを作成することもできる。Windows、Linuxにおけるシェル・スクリプトに相当するものと捉えるとよいだろう。なおCLプログラム開発に関しては[開発編]の「IBM i開発の基礎[CL設計・開発]」を参照してほしい。
シェル・コマンドの実行とその例
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上のテキストファイルに出力している例である。


なお、QSHELLはあくまでIBM iに対するシェル実行インターフェースであることから、実行時のエンコーディングはEBCDICとなるので、当例のテキストファイルはジョブCCSIDでエンコードされる。
一方、同じコマンドをPASEで実行した場合、PASEはAIX実行環境のため、エンコードはASCII(CCSID 819)もしくはUTF-8(CCSID 1208)となり、図表5のようにIBM i Access Client Solutions(ACS)の統合ファイルシステムの機能などを用いてPCにテキストファイルをダウンロードした際に、ファイルを開いて中身を確認することができる。
IBM iに対してリモートから
コマンドを投入する方法
ここまで、IBM i上でCLコマンドやシェル・コマンドをローカルで実行する様子について見てきたが、リモートからIBM iに対して処理を投入したい場合にはどうすればよいだろうか。
IBM iに対してリモートからCLコマンドを投入する方法として、SSHでIBM iに接続し、CLコマンド実行するといったことも可能である。
図表7は、PCからSSHでIBM iに接続し、CLコマンドであるWRKSYSSTS(Work with System Status)コマンドを、systemコマンドを介して実行している例である。SSHでの接続は、他プラットフォームとシステム処理の連携を図りたい場合などに活用できる方法の1つなので、覚えておくとよいだろう。


著者
児玉 尚子氏
日本アイ・ビー・エム株式会社
テクノロジー事業本部
IBM Power テクニカルセールス
新・IBM i入門ガイド[操作・運用編]
01 IBM iの実行環境
02 IBM iのストレージ管理
03 IBM iのログ
04 IBM iのユーザー管理
05 IBM iのセキュリティ
06 IBM iの印刷機能
07 IBM iの保管/復元
08 IBM iの基本操作 [コマンド編]
09 IBM iの基本操作 [ツール編]
10 IBM iの監視 基本
11 IBM iサービス
12 IBM iのトラブルシューティング
13 操作・運用編 FAQ
[i Magazine 2024 Winter号掲載]