NEWS
Linux的なIBM i の使い方 Linux的なIBM i の使い方
2024.06.17

【Linux】第3回「シェルと基本コマンド」

【Linux】第3回「シェルと基本コマンド」

1. ssh 復習

連載記事「Linux 的な IBM i の使い方」の第3回は、シェルと基本コマンドを取り上げます。第2回で解説した ssh が前提となるので、前回の記事を再読してから今回の記事を読んでいただければと思います。

といいつつ、時間がないという方もいらっしゃると思うので、簡単に復習をしておきましょう。

まず、IBM i には AIX/Linux 環境がありますが、ここにアクセスする方法は2種類あることを説明しました。

  • QP2TERM プログラム
  • ssh 接続

QP2TERM は、5250 画面で実行可能なプログラムで、エミュレータ構成があれば気軽に使えるインターフェースです。ただし、5250 データストリームの制約はどうしても受けてしまうので、AIX/Linux 環境で提供されている機能を十二分に活用するインターフェースとしては心許ないかもしれません。

もう一つのインターフェースは、他のプラットフォームでも利用されている ssh 接続です。ssh は遠隔のサーバーにアクセスして、コマンドを送信し結果を受信するための通信経路を提供します。遠隔のサーバーにアクセスするためには、安全にアクセスできることが基本なので、以下が基本機能として備わっています。

  • 通信経路は暗号化されている
  • アクセスしているサーバーが本当のサーバーであることを確認する公開鍵認証機能がある
  • ユーザー認証はパスワード認証と公開鍵認証の2つを選択できる

公開鍵暗号の仕組みを数学的に完全に理解するのは困難ですが、概要については前回の記事で解説していますのでぜひ読み返して理解を深めてください。

本来であればユーザー認証も公開鍵認証を用いるべきですが、前回は紙面の都合上パスワード認証だけを解説しました。今後の連載で、ユーザー認証を公開鍵で行う方法も取り上げる予定です。

それでは、ssh で IBM i に接続できたというところから第3回の記事を進めていきましょう。今回は以下を解説していきます。

  1. IBM i のファイル・システム
  2. シェル
  3. シェルで実行することの多い基本コマンドの解説
  4. IBM i のコマンドをシェルから実行して結果を再利用

それでは始めていきましょう。

2. ファイル・システムについて

シェルを使用して様々な操作を行う場合には、コマンドの対象となるファイルがどのように保管されているのかを知る必要があります。そこで、シェルの解説に入る前に、IBM i のファイル・システムについて簡単に触れておきたいと思います。

コンピュータは一般的にディスクと呼ばれる記憶域内に必要な情報を記録するのは皆さんご存知の通りです。なぜ記録するかというと、将来参照したいからですよね。記録した情報は、一定の作法に基づいていつでも簡単に取り出すことができる仕組みが必要です。これをファイル・システムと言います。基本的に、すべてのオペレーティング・システムは独自のファイル・システムを持っています。

例えば、皆さんが普段使われている Windows では、物理的なディスク毎にアルファベットのドライブ識別子を割り当て、その中を ¥ マークを使って階層化してファイルを記録しています。例えば、

C:¥Users¥ogawa¥Documents¥test.xlsx

とあれば、test.xlsx という名前の Excel ファイル(拡張子で判断しています)の保管場所は、

ドライブ C 直下の Users フォルダ内の ogawa フォルダ内の Documents フォルダ内にある

ということがわかります。

また、Linux や MacOS では、階層化は ¥ ではなく / を使用して表現します。

/Users/ogawa/Documents/test.txt

この例では、test.txt という名前のテキスト・ファイルは、Linux や MacOS が管理しているディスク内の、

Users ディレクトリ内の ogawa ディレクトリ内の Documents ディレクトリ内にある

ということがわかります。

Windows と Linux および MacOS は、ドライブという概念や階層構造を区切る記号が異なることを除けば同じようなファイル・システムになっていて、階層化を自由に作成していくことが可能ということがおわかりいただけると思います。

では、IBM i はどのようにして情報を保管しているのでしょうか。

IBM i オペレーティング・システムは、情報を名前を付けて保存する際、フォルダやディレクトリではなくライブラリーというオブジェクトに登録するという点が異なります。さらに、ライブラリーは階層構造にできない(ライブラリーの中にライブラリーを登録することはできない)ため、他のオペレーティング・システムとは異なり、名前を付けて保管した情報は、以下の指定だけで一意に特定することが可能です。

 OGAWA/PGM01

上記の例では、OGAWA ライブラリーにある PGM01 という名前のオブジェクトを指しています。オブジェクトとは名前をつける単位ですが、他のオペレーティング・システムとは異なり拡張子がないので、オブジェクト内部にオブジェクト・タイプという情報を保持します。例えば、PGM01 が実行可能なプログラムだとすると、*PGMというオブジェクト・タイプが割り当てられます。

では、ssh で IBM i にアクセスした場合のファイル・システムはどうなっているのでしょうか。

前回の記事でお伝えしたように、ssh で接続するのは IBM i 内の AIX/Linux 環境です。この環境で動くプログラムが理解できるのは、IBM i ネイティブのファイル・システムではなく Linux や MacOS と同じ階層化のファイル・システムなので、IBM i のファイル・システムだけではその要求に対応することができません。

そこで、現在の IBM i は、ネイティブのライブラリー・ファイル・システムを含んだ IFS というファイル・システムを採用しています。

IFS は Integrated File System の略で、全体は AIX/Linux ファイル・システムであり、そのファイル・システムのルートの直下にネイテイブ・ファイル・システムを QSYS.LIB というディレクトリ名で管理しています。

IFS の表記に従えば、上記の OGAWA ライブラリー内の PGM01 というプログラムは、

/QSYS.LIB/OGAWA.LIB/PGM01.PGM

という記述で表現します。QSYS.LIB 内では、先程お伝えしたオブジェクト・タイプを拡張子で表します。もちろん、ネイティブのファイル・システムをディレクトリ構造として参照できるようにしているだけなので、例えば、OGAWA.LIB ディレクトリ内に OGAWA2.LIB ディレクトリを作成することはできません。

先ほど、「ライブラリーの中にライブラリーを登録することはできない」と書きましたが、OGAWA.LIB は QSYS.LIB に登録されていますね。これはなぜでしょうか。

実は、IBM i のネイティブ・ファイル・システムにはルールが2つあります。

  1. オブジェクトは必ずどこかのライブラリーに登録しなければならない(ライブラリー・オブジェクトも例外ではない)
  2. ライブラリーを登録できるのは QSYS ライブラリーのみ

そして QSYS ライブラリーのみが例外で、単独でファイル・システム上に存在できるのです。

あくまで、QSYS.LIB ディレクトリが IFS ファイル・システム上では例外であり、それ以外のディレクトリは自由にディレクトリの階層構造を作成することができます。

/home/OGAWA/test.txt

IFS は AIX/Linux と同等なので、シンボリック・リンク(厳密には異なるが、Windows のショートカットのようなもの)なども作成することが可能である点は覚えておいてください。

ssh で接続してシェルで作業する際は、現在どのディレクトリで作業しているかが重要になります。これを現行ディレクトリ、あるいはカレント・ディレクトリといいます。後ほど触れますが、現在どのディレクトリにいるのかを確認するには pwd コマンドを使用します。

$ pwd
/home/OGAWA

上記は、/home/OGAWA がカレント・ディレクトリであることを示しています。

カレントディレクトリとひとつ上のディレクトリは .(ドット)を使って表現します。

ドット 意味
.(ひとつ) カレント・ディレクトリ
..(ふたつ) 一つ上のディレクトリ

例えば、/home/OGAWA から一つ上のディレクトリに移動する場合は、cd ..を実行します。

$ pwd
/home/OGAWA
$ cd ..
$ pwd
/home

また、カレントディレクトリが /home/OGAWA の時に、/home/OGAWA/xxxxx.sh を実行するには、

$ pwd
/home/OGAWA
$ xxxxx.sh

でもよいですが、

$ pwd
/home/OGAWA
$ ./xxxxx.sh

と明示的に「カレントディレクトリにある」と記述することもできます。

「./xxxxx.sh」の意味は、「. (カレントディレクトリ)内の xxxxx.sh」ということです。「/」がないと「.xxxxx.sh」という名前のファイルになってしまうので注意してください。

3. シェルとは

それでは、ssh 接続で使用されるシェルについて見ていきましょう。

そもそもシェルとは、オペレーティング・システムの様々な機能を実行できるようにするための、ユーザーが使用するインターフェースのことを言います。コンピュータのインターフェースといえば、普段皆さんが使われているのはグラフィカル・ユーザーインターフェス(GUI)ですね。Windows や iPhone、Android など、現在使用されている OS のほぼすべてが GUI を提供しています。

これに対して、ssh で使用されるシェルは GUI ではなく、キャラクタ・ユーザー・インターフェース(CUI)です。キャラクタ・ベースのインターフェースなので、実行したい機能に対応したコマンドを都度指定する必要があります。

ちなみに、IBM i には QCMD というプログラムがあり、実行するとコマンド入力画面が表示されるのはご存知の方も多いと思います。この画面を経由して IBM i のコマンドを入力し、OS の機能を実行することができます。つまり QCMD もシェルの一種ということが言えます。

ssh でサーバーに接続すると、シェルが表示されて様々なコマンドを入力することができるようになります。第2回の記事の最後に ssh を終了するために exit を入力しましたが、これはシェルを経由してサーバーに ssh 接続を終了するように指示しているのです。

シェルの種類

では、IBM i で利用可能なシェルを解説します。

第2回で触れた IBM i 側の導入が必要なライセンス・プログラムが入ったマシンでは、シェル・プログラムは以下の3つが使用可能です。

No. シェル 説明
1 bsh Bourne シェル
2 ksh / ksh93 Korn シェル
3 csh C シェル

歴史的には、Bourne シェルから派生したのが Korn シェルで、その後 ksh93 と拡張されていきます。 C シェルは UNIX OS である BSD のセカンドバージョン用に開発されたシェルで、ksh および bsh とは区別されます。

上記のシェルはすべて /QOpenSys/usr/bin ディレクトリ内のものを参照しますが、すべてシンボリック・リンク(Windows のショートカットのようなもの)であり、実態はそれぞれ以下ディレクトリのファイルを使用します。

シェル 実態
bsh /QOpenSys/QIBM/ProdData/OS400/PASE/bin/bsh
ksh /QOpenSys/QIBM/ProdData/OS400/PASE/bin/ksh
ksh93 /QOpenSys/QIBM/ProdData/OS400/PASE/bin/ksh93
csh /QOpenSys/QIBM/ProdData/OS400/PASE/bin/csh

参考までに、sh というシェルもありますが、このリンクは ksh を参照しています。つまり sh と ksh は同じシェルを実行するということです。

シェル 実態
sh /QOpenSys/QIBM/ProdData/OS400/PASE/bin/ksh

4. シェルの変更

IBM i に ssh で接続するとデフォルトで使用されるシェルは bsh です。使用されているシェルを確認するには echo $0 を実行します。

$ echo $0
-bsh

シェルはプログラムなので、どのシェルを使用するかは自由に変更することが可能です。ssh に接続した状態でシェルを変更するには、そのシェルプログラム名を入力して Enter キーを押します。以下は ksh に変更し、変わったことを確認する例です。

$ ksh
$ echo $0
ksh

上記変更は一時的なもので、ssh で再ログインをするとデフォルトの bsh シェルで開始されます。このデフォルトのシェルを変更するには以下の2通りがあります。

  • システム全体でシェルを変更する
  • ユーザー毎にシェルを変更する

システム全体でシェルを変更する

システム全体でデフォルトのシェルを変更するには、sshd の構成ファイル(QOpenSys/QIBM/UserData/SC1/OpenSSH/etc/sshd_config)に以下を入力します。
下記例では、デフォルトのシェルを bsh から ksh に変更しています。

# default Shell
ibmpaseforishell /QOpenSys/usr/bin/ksh

構成ファイルの修正なので、変更を有効にするには ssh デーモンを再起動する必要があります。

ENDTCPSVR SERVER(*SSHD)
STRTCPSVR SERVER(*SSHD)

STRTCPSVR を実行する前に、WRKACTJOB SBS(QUSRWRK) で ssh デーモン等(QP0SPWP)が終了していることを確認してください。

ユーザー毎にシェルを変更する

システム全体ではなく、ユーザー毎(ユーザー・プロファイル単位)に、使用するシェルを設定することもできます。これを実行する方法は以下の2通りです。

  • SET_PASE_SHELL_INFO プロシージャを実行する
  • chsh(Change Shell)を実行する

chsh コマンドは、別途インストールする必要があるので、ここでは SET_PASE_SHELL_INFO プロシージャで解説します。

このプロシージャは SQL CALL ステートメントで実行するもので、自分自身もしくは(権限があれば)他のユーザーのデフォルトシェルを変更可能です。以下の例では、ユーザー OGAWA のデフォルトのシェルを ksh に設定している例です。

CALL SET_PASE_SHELL_INFO('OGAWA', '/QOpenSys/usr/bin/ksh')

設定ができたかどうかは QSYS.USER_INFO ビューを使用して確認することができます。

SELECT SHELL_PATH FROM QSYS2.USER_INFO WHERE USER_NAME = 'OGAWA'

それぞれ SQL なので、5250 画面からは STRSQL コマンドを実行して対話的に、あるいは ACS の SQLスクリプトの実行でそれぞれ実行してください。

先程紹介したように IBM i で利用可能なシェルは 3 種類ですが、実際に ssh で操作してみると、矢印キーでカーソルを移動できないなど使い勝手が悪いと感じられると思います。実は現在、Linux など他のプラットフォームで一般的に利用されているシェルは bash がほとんどです。

bash は、Bourne-Again Shell の略です。その名の通り、bsh の後継シェルですが、ksh や csh で有用な機能を取り込んで開発されており、Linux 環境においてはデファクト・スタンダードのシェルとなっています。IBM i でももちろん利用可能なのですが、別途インストール作業が必要です。

詳細は 次回の記事で紹介予定です。

5. 基本コマンド

それでは、ssh で接続したあとで、シェルを介して実行できるコマンドを見ていきましょう。

コマンドには、組み込みコマンドと外部コマンドの2種類があります。

組み込みコマンド

組み込みコマンドとは、シェル内部で実行されるものです。使用しているシェルによって、それぞれ異なるので注意が必要です。また、組み込みコマンドと同名の外部コマンドもあり、それぞれ動作が異なる可能性があるので使用しているシェルとその内部コマンドの一覧をよく見ておく必要があります。

コマンドが組み込みコマンドかどうかを確認するには、type コマンドを使用します。例えば、bsh シェルにおいて、cd は内部コマンドです。

$ echo $0
bsh
$ type cd
cd is a shell builtin

外部コマンド

$ type bsh
bsh is /QOpenSys/usr/bin/bsh

bsh は外部コマンドであることがわかります(外部コマンドという言い方は、あまり一般的ではないかもしれません。この連載では、組み込みコマンド以外の総称だと理解してください)。

シェルからコマンドを実行する場合に、組み込みコマンドとして存在しなければ外部コマンドが検索されます。検索には $PATH 環境が使用されます。

今回の IBM i のデフォルトの PATH 環境は以下の通りです。

/QOpenSys/usr/bin:/usr/ccs/bin:/QOpenSys/usr/bin/X11:.:/usr/bin

各ディレクトリが「:(コロン)」で区切ってありますが、左から指定したディレクトリ内を検索し、見つからなければ次のディレクトリというふうに検索をしていきます。上図の PATH の検索順位は、

  1. /QOpenSys/usr/bin
  2. /usr/ccs/bin
  3. /QOpenSys/usr/bin/X11
  4. .
  5. /usr/bin

です。5番目のディレクトリを探しても見つからない場合は、「not found」と表示され指定したコマンドは当然実行されません。IBM i ユーザーの方には、ジョブのライブラリー・リストと同様だと思っていただければわかりやすいと思います。

上記4番目は「.(ドット)」です。すでに説明しましたが、カレントディレクトリを表します。

必須コマンド

それでは IBM i に ssh 接続して頻繁に使用するコマンドを厳選して紹介します。どれも重要なコマンドなのでぜひ覚えてください。

ディレクトリ操作

コマンド 意味 機能
cd change directory カレントディレクトリから別のディレクトリに移動する
ls list ファイルの一覧等を表示する
pwd print working directory カレントディレクトリの絶対パスを表示

ls コマンドの例

$ pwd
/QOpenSys/usr/bin
$ ls -l
total 2040
lrwxrwxrwx  1 qsys  0    80 Apr 25 18:38 Rfile -> ../../QIBM/ProdData/OS400/PASE/bin/Rfile
drwxr-sr-x  2 qsys  0 24576 Apr 25 18:38 X11
lrwxrwxrwx  1 qsys  0    80 Apr 25 18:38 admin -> ../../QIBM/ProdData/OS400/PASE/bin/admin
lrwxrwxrwx  1 qsys  0    80 Apr 25 18:38 alias -> ../../QIBM/ProdData/OS400/PASE/bin/alias

オプション l を指定すると、詳細な情報を表示します。上記例では、admin ファイルは -> が使われているのでシンボリックリンクで、参照しているのは、2つ上のディレクトリ(../.. で、/QOpenSys をさす)からみた QIBM/ProdData/OS400/PASE/bin/admin を参照しています。絶対パス表記は、/QOpenSys/QIBM/ProdData/OS400/PASE/admin です。

ファイル操作

コマンド 意味 機能
cat concatenate ファイルを連結する、ファイルの中身を見る
cp copy ファイルをコピーする
file file ファイルの形式を確認する
find find ファイルやディレクトリを検索する
mv move ファイルやディレクトリの名前の変更および移動をする
rm remove ファイルやディレクトリを削除する
tail tail 長いテキストファイルなどの末尾だけおよび先頭だけを表示する
which which コマンドを $PATH のディレクトリを調べて見つかったらフルパスを返す

rm コマンドの例

  • ls コマンドでファイルの一覧を取得(-la は詳細情報表示かつ隠しファイルも表示の指定)
  • 削除したいファイルの名前を確認後、rm コマンドで削除
$ ls -la
total 64
drwxrwsrwx    2 ogawa    0              8192 May 15 14:13 .
drwxrwsrwx    3 qsys     0              8192 Apr 25 20:02 ..
-rw-------    1 ogawa    0              1028 May 15 14:38 .sh_history
-rw-r--r--    1 ogawa    0                 8 May 15 14:13 sample.txt
$ rm ./sample.txt
$ ls -la
total 48
drwxrwsrwx    2 ogawa    0              8192 May 15 14:38 .
drwxrwsrwx    3 qsys     0              8192 Apr 25 20:02 ..
-rw-------    1 ogawa    0              1054 May 15 14:38 .sh_history
$

その他

コマンド 意味 機能
echo echo 画面に文字列を表示
env environment 環境変数の設定など
grep global regular expression print 正規表現を使用した文字列の抽出コマンド
wc word count テキストファイルの文字数や行数を数える

パイプ

コマンドの出力結果を他のコマンドに渡すための機能としてパイプがあります。パイプラインを略してパイプといいますが、工夫次第で色々と便利に使えるので覚えておいてください。

例)特定のディレクトリ内のファイル数をカウントしたい

$ cd /QOpenSys/usr/bin
$ pwd
/QOpenSys/usr/bin
$ ls -l | wc -l
     251

上記は、ls -l で /QOpenSys/usr/bin ディレクトリ一覧を取得し、パイプ(|)を使って wc コマンドに渡し、-l オプションで行数を表示しています。

リダイレクト

コマンドの実行結果の出力先を変更することができます。リダイレクトには、主に > と >>が使用されます。

リダイレクト 意味
> 出力のリダイレクト
>> 出力をファイルの末尾に追加

例)カレントディレクトリ内の sample.txt ファイルの末尾に文字列 abcdefg を追加する

$ tail ./sample.txt
1234567890
$ echo 'abcdefghij' >> ./sample.txt
$ tail ./sample.txt
1234567890
abcdefghij

例)ls -l の結果を、ファイル sample02.txt に出力する

$ ls -l > sample02.txt
$ tail ./sample02.txt
lrwxrwxrwx  1 qsys  0   74 Apr 25 18:38 vi -> ../../QIBM/ProdData/OS400/PASE/bin/ex
lrwxrwxrwx  1 qsys  0   74 Apr 25 18:38 view -> ../../QIBM/ProdData/OS400/PASE/bin/ex
lrwxrwxrwx  1 qsys  0   80 Apr 25 18:38 wait -> ../../QIBM/ProdData/OS400/PASE/bin/alias
lrwxrwxrwx  1 qsys  0   74 Apr 25 18:38 wc -> ../../QIBM/ProdData/OS400/PASE/bin/wc
lrwxrwxrwx  1 qsys  0   78 Apr 25 18:38 what -> ../../QIBM/ProdData/OS400/PASE/bin/what
lrwxrwxrwx  1 qsys  0   80 Apr 25 18:38 which -> ../../QIBM/ProdData/OS400/PASE/bin/which
lrwxrwxrwx  1 qsys  0   80 Apr 25 18:38 xargs -> ../../QIBM/ProdData/OS400/PASE/bin/xargs
lrwxrwxrwx  1 qsys  0   78 Apr 25 18:38 yacc -> ../../QIBM/ProdData/OS400/PASE/bin/yacc
lrwxrwxrwx  1 qsys  0   76 Apr 25 18:38 yes -> ../../QIBM/ProdData/OS400/PASE/bin/yes
lrwxrwxrwx  1 qsys  0   86 Apr 25 18:38 zcat -> ../../QIBM/ProdData/OS400/PASE/bin/compress

6. IBM i コマンドの実行

ここまでシェルと基本コマンドについて説明してきましたが、これらは IBM i の AIX/Linux 特有のものではなく、一般的な UNIX 系のシェルやコマンドの話です。先程の基本コマンドも、使い方の詳細については Web や書籍による Linux 情報を参照いただければ、各コマンドのスイッチ等も含めて理解することができるはずです。IBM i ユーザーで Linux コマンドは初めてという方も、ssh を通してぜひ Linux の世界を体験してみてください。

さて、せっかく IBM i に ssh 接続しているので、もうひとつコマンドを紹介したいと思います。

system コマンド

system コマンドを使えば、ssh で接続したシェルから IBM i の CL コマンドを実行できます。実行結果のスプール出力は、標準出力(シェルの画面)に表示されます。

このコマンドも /QOpenSys/usr/bin に存在しているので、今回の環境でももちろん使用することができます。

例えば、DSPLIBL コマンドを system コマンドで実行するには、

$ system 'DSPLIBL'

と指定します。私が使用している環境では、以下のように出力されました。

$ system 'DSPLIBL'
  5770SS1 V7R4M0  190621                   ライブラリー・リスト        24/05/15 15:54:24       s゚ーニ゙    1
                            ASP
    [bボ[メー     タイプ   装置      テキスト記述
    QSYS        SYS                    システム・ライブラリー
    QSYS2       SYS                    CPI用のシステム・ライブラリー
    QHLPSYS     SYS
    QUSRSYS     SYS                    System Library for Users
    QSHELL      PRD
    QGPL        USR                    GENERAL PURPOSE LIBRARY
    QTEMP       USR
                           * * * * *  リストの終わり   * * * * *

この結果はもちろんリダイレクト可能です。DSPLIBL の結果をテキストファイルに出力するには以下を実行します。

$ system 'DSPLIBL' > dsplibl.txt

dsplibl.txt はファイル名のみでディレクトリ情報は付加していないので、現行ディレクトリに作成されます。作成されたかどうかは ls コマンド等で確認してください。

もうひとつ、QGPL ライブラリーのオブジェクト・タイプが *FILEのものはいくつあるかをカウントしてみましょう。

$ system 'DSPOBJD OBJ(QGPL/*ALL) OBJTYPE(*ALL)' | grep '*FILE' | wc -l
      43

上記は、system コマンドの結果を grep に渡し、*FILEを含む行のみを選択してそれを wc に渡し、行数をカウントして結果を画面に出力しています。

どうも、私が使っているシステムの QGPL ライブラリーには、*FILE オブジェクトが 43 存在しているようですね。

さらに、物理ファイル数は以下で出力可能です。

$ system 'DSPOBJD OBJ(QGPL/*ALL) OBJTYPE(*ALL)' | grep '*FILE' | grep 'PF' | wc -l
      35

工夫次第で IBM i の情報をネイティブ・コマンドより簡単に取得できる場合もあるので、皆さんのアイデアで system コマンドを最大限に利用してください。

7. まとめ

今回の内容も盛り沢山でしたがいかがでしたか?オープン系の方には当たり前のことばかりですが、IBM i ユーザーの方には新しい発見がたくさんあったのではと思います。特に、system コマンドで AIX/Linux 環境から IBM i のコマンドが実行できるのは、IBM i ユーザーの方にとっても、オープン系の方にとっても面白い機能だと思います。

今回 grep コマンドについては文字列の抽出コマンドとの説明で使用例だけ紹介しましたが、正規表現を使うことでより便利に使うことが可能なので、今回説明していないその他の便利なコマンドとともに今後解説していく予定です。

次回はいよいよオープンソースの世界に足を踏み入れます。新しいソフトウェアの導入は、IBM i のライセンス・プログラムとしてではなく、オープン系のツールを使ってインストールすることになるので、そのツールの解説と実際のインストール作業を解説する予定です。

今回解説したシェル・プログラムは少々使い勝手がよくない(カーソル移動キーが使えないなど)ものでしたが、次回は bash もインストールするので、それを使った環境構築も行う予定です。

それでは次回をお楽しみに!

参考文献

いいねと思ったらシェア
twitter
facebook
hatena
Linux的なIBM i の使い方 目次を見る

この連載は…

Linux的なIBM i の使い方
関連記事
【Linux】第2回「ssh の仕組みをきちんと理解する」
【Linux】第2回「ssh の仕組みをきちんと理解する」
【Linux】第7回「クライアント認証とsyslog」
【Linux】第7回「クライアント認証とsyslog」
【Linux】第6回「ファイル転送」
【Linux】第6回「ファイル転送」
あなたにオススメの連載
できるIBM i 温故知新編
9記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP