IBM i 駆け出し日記：IBM i のシステムコマンドの理解＆まとめ

IBM i 初心者向けコマンドの基礎とかとかまとめました！自分向けメモの感強いです。
# IBM i のコマンドの構造
全てのコマンドは**動詞**と**目的語**からなります。
また基本的に動詞も目的語も共に**母音を取り除いた3文字**にします。


例えばライブラリーを表示したかったら、、、
``DSPLIB``(Display a liblary)と入力します。
DSPが動詞 - Display (表示する)
LIBが目的語 - Liblary(ライブラリー)


このようにコマンドを入力すると
![スクリーンショット 2023-05-24 10.14.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/d9f8c19b-bb65-b514-8c8a-aa5b8c353ae3.png)
ライブラリーが表示されます
![スクリーンショット 2023-05-24 10.14.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/fef98cf0-c441-c351-5f09-276f3d16cc07.png)

以下がよく使う動詞です、
|コマンド  |語源  |
|---|---|
|WRK  |work  |
|CRT  |create|
|ADD  |add  |
|RMV  |remove  |
|CHG  |chenge |
|DLT  |delate  |
|STR  |start  |
|END  |end  |
|DSP  |display  |
|SND  |send  |
|RCV  |receive |

特に**WRK**コマンド、work with(~への操作)は覚えておくと楽です。よく出てきます。

# パラメーターと値
パラメーターを使うと、何をするかを具体的に指定できます。補足情報みたいなものです。
```CRTLIB LIB(SAKULIB) TYPE(*TEST)```を例に挙げると、```LIB(SAKULIB)```と```TYPE(*TEST)```はパラメーターです。

パラメーターはキーワードと値から成り立っていて、```LIB(SAKULIB)```の```LIB```はキーワード、```MYLIB```は値です。
またパラメーターわからなくてもコマンド入力後、F4でパラメーターの一覧を以下のように出すこともできます。
この画面はプロンプト画面と呼ぶそう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/3e7c794e-2829-d113-a956-9f6d69ce57b9.png)
F4を押すとパラメーター入力画面になる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/03054601-4b30-8adc-35e6-1d00cc3a5582.png)

ちなみにパラメーターはユーザー定義(ファイル名とか)とシステム定義(作られるファイルの形、今回はTEST)があり**システム定義の先頭には＊を入力する**必要があります。
慣れないうちはf4でプロンプト画面を出すことをお勧めします。

:::note info
※システム定義とは
オブジェクトタイプなど、このIBM iのOSの世界で既に形式が決まっている属性(ファイル、データの形；.txtとか.mdみたいな)のこと
:::



またパラメーターも絶対必要なものとそうでないものがあります。

例えば下記コマンド操作は同じ操作です。
```
CRTLIB LIB(SAKULIB)
```
```
CRTLIB LIB(SAKULIB) TYPE(*TEST) TEXT(*BLANK)
```

デフォルト値を持つパラメーターは省略可能です。今回の例で言うと、作成するライブラリー名は必須ですが、他はなくてもデフォルト値を持っていますのでライブラリーは作成可能です。
必須パラメーターを入力し忘れるとエラーが返ってきます。

# コマンド入力の場所とヘルプ
コマンド入力する場所(緑色の線上=コマンドライン)の下に色々オプションが出てます。
![スクリーンショット 2023-06-09 14.39.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/86efecb1-3c66-d433-c17f-1df21f886b0c.png)
- F4:プロンプト画面(コマンドの詳細;パラメーター画面のお助け)が表示される
- F9:過去に入力したコマンドの検索、F9を何回も押すことで、サインオンしてから入力したコマンドの検索ができる
- F12:入力したコマンドの消去ができる(control+Cに近い)


またやりたいことはあるが、コマンドがわからない！となった場合、コマンドライン(緑色の線上)にカーソルをおいてF4を押すとコマンド一覧が出てきます。
![スクリーンショット 2023-06-09 14.45.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/ee86d769-04ad-b7ca-5365-fb0c4e54c5ce.png)

例えば、SSHDサーバーを立ち上げるコマンド```STRTCPSVR SERVER(*SSHD)```は以下のように数字を追っていけばコマンド入力ができます。

まず動詞コマンドに入り、開始コマンドを探す
(サーバー立てるし、開始のSTRかな~みたいな勘は必要です)
![スクリーンショット 2023-06-09 14.51.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/845c6560-7355-80eb-1311-a5dbb78597f9.png)
TCP/IPサーバーの開始を探す、ちなみにMacでは**ファンクション+↓キー**でスクロールできます。
![スクリーンショット 2023-06-09 14.52.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/426042f7-afe8-d82d-1e04-5a2bcbf29af5.png)
開始したいサーバーのオプションを入力
![スクリーンショット 2023-06-09 14.52.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/1858aabe-5118-4e28-1ba0-fc82ca7f5b0f.png)

慣れるまでは、基本動詞の入力とF4でパラメーター設定するのがやりやすい気がします。

また`GO CMDWRK`や`GO CMDPF`のように、**GO CMD+名詞 or 動詞**で関連のOSコマンド＝CLコマンドが表示（検索）できます。

GO CMDWRKでは処理コマンド(OSに対する処理；IPL走らせたりジョブ見たり)が表示されます。
![スクリーンショット 2023-06-13 0.08.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/94644644-ae65-e8fb-f5e0-656689fc244b.png)
![スクリーンショット 2023-06-13 0.08.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/ac2db918-7f3c-48c5-f6d3-99682d7c8312.png)

GO CMDPFでは物理ファイルコマンド(ファイルに対する操作；ファイル消したり、名前変えたり)が表示されます。
![スクリーンショット 2023-06-13 0.08.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/4752a0be-aad7-77c3-5fbd-48a1d03502e5.png)
![スクリーンショット 2023-06-13 0.08.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3212743/f1c8ef80-19fc-caa1-5bae-da8cd307ac64.png)