記事
Mihoko Iijima · 2022年1月6日 4m read

IRIS ターミナルで履歴からのコマンド実行、コマンドのショートカット作成ができるのをご存知ですか?

開発者のみなさん、あけましておめでとうございます🎍 今年もどうぞよろしくお願いします!

さて、この記事では、IRIS ターミナルに(こっそり)追加された便利機能をご紹介します!(つい最近知りまして、びっくりしましたsurprise

IRIS ターミナルで以前実行したコマンドを再実行する場合、上矢印キーを連打しながらコマンドを探されていると思うのですが、IRIS 2021.1 から履歴表示と、履歴番号を指定した実行ができるようになっていました!

 

では早速、履歴(history)の使い方をご紹介します。これがあれば、もう、上矢印キーを連打せずに以前実行したコマンドを再実行できます!!

 

まずは、履歴を作るため、いくつかコマンドを実行します。​​​

ユーザ名:_system
パスワード:***
USER>
 
USER>write $ZDATE($NOW(),16)
2022年1月6日
USER>
 
USER>write $ZV
IRIS for Windows (x86-64) 2021.1 (Build 215U) Wed Jun 9 2021 09:39:22 EDT
USER>
 
USER>write $system.Util.ManagerDirectory()
c:\intersystems\irishealth\mgr\
USER>

 

ここで、:? と入力してみます。

(なんと、オプションが表示されます!!)

USER>:?
 :<number>    Recall command # <number>
 :?           Display help
 :alias       Create/display aliases
 :clear       Clear history buffer
 :history     Display command history
 :unalias     Remove aliases

 

:history (または :h)を実行すると、履歴が表示されます!

USER>:history
 1: _system
 2: write $ZDATE($NOW(),16)
 3: write $ZV
 4: write $system.Util.ManagerDirectory()
 5: :?
 6: :history

 

コロン(:)と履歴番号を指定し、以前実行したコマンドを再実行してみます。(:4 と入力しています。)

USER>:4
write $system.Util.ManagerDirectory()
c:\intersystems\irishealth\mgr\
USER>

上矢印キーを連打せずに、過去のコマンドを実行できました!便利ですlaugh

 

続いて、alias オプションを使うとコマンドのショートカットが作成できるようですので、それも試してみます。

以下の実行例では、TESTネームスペースに移動した後、IRIS ターミナルをSQL実行モードに変更し、SQLを実行しています。

USER>set $namespace="test"
 
TEST>do $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
 
The command prefix is currently set to: <<nothing>>.
Enter <command>, 'q' to quit, '?' for help.
[SQL]TEST>>select * from Training.Person
1.      select * from Training.Person
 
ID      Email   Name
1       yamada@majorcorp.com    山田たろう
 
1 Rows(s) Affected
statement prepare time(s)/globals/cmds/disk: 0.0462s/3307/171368/2ms
          execute time(s)/globals/cmds/disk: 0.0002s/2/675/0ms
                          cached query class: %sqlcq.TEST.cls166
---------------------------------------------------------------------------
[SQL]TEST>>quit
 
TEST>

 

なかなか覚えにくいコマンドに対して、alias を設定しておくと便利そうですので、ターミナルを SQL の実行環境に変更する do $system.SQL.Shell() を設定してみます。

設定方法は以下の通りです。

:alias 名称 コマンド

$system.SQL.Shell() を sqlmode の名称で alias に設定する例は以下の通りです。

TEST>:alias sqlmode do $system.SQL.Shell()
 
TEST>:alias
  sqlmode           do $system.SQL.Shell()

 

早速、設定した alias を使ってみましょう!

TEST>:sqlmode
do $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
 
The command prefix is currently set to: <<nothing>>.
Enter <command>, 'q' to quit, '?' for help.
[SQL]TEST>>quit
 
TEST>

無事、実行できました!

(alias 名は省略できるので、上記登録の場合 :s でも実行できるようでした。)

メモ:2021.2プレビュー版では、do $system.SQL.Shell() が alias 名 sql で事前に登録されているため、:sql で SQL 実行モードに切り替えできました。

 

履歴(history)や alias の例については、ドキュメントにも記載がありますので、併せてご参照ください!

前のコマンドの繰り返し

@Joel Solonさんが書いた元の記事へ
5
0 85
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください