- 2011-02-06 Sun 18:20:30
- db2
UNIXだろうがLinuxだろうがWindowsだろうが、db2を使うならCLPでの作業ははずせません。
で、このCLP、Windowsなら当然DOSのコマンドプロンプトで使うわけですが、SQL*Plusとはちょっと使い勝手が違います。
Oracleでは、管理作業はほぼすべてSQL*Plusから行いますよね。例えばインスタンスの起動も、SQL*Plusからstartupコマンドですし。
でもdb2は、CLPから実行する管理コマンドと、OSコマンドとして実行する管理コマンドが混在しています。
例えばインスタンス起動は、OS上でdb2start コマンドを叩きます。
つまり、いったんCLPから抜けて実行しなければならないわけです。
また、Oracleで初期化パラメータを確認するには、show parameterコマンドがお手軽ですが、これはキーワードでの絞り込みが簡単ですよね?
show parameter db_
などとすると、「db_」が含まれるパラメータだけが表示されると。
でもdb2では、CLPを起動した状態で、
get dbm cfg
というコマンドを叩くと、全パラメータが出力されます。
絞り込みの機能はありません。
で、これでは不便なので、
db2 "get dbm cfg" | grep SVR
などとして、CLPを非対話モードで実行し、その結果をgrepするとかそんな使い方になります。
前置きが長くなりましたけど、要するにCLPは非対話モードで、OSコマンドの一部として使うことが多いということを言いたかったわけです。
そんで、そうなると気になるがコマンドラインそのものの使い勝手。
例えばファイル名のTABキーによる補完とか、DIRの代わりにlsを使いたいとか、ログファイルをtail -f で監視したいとかとかとか。
Windowsのコマンドプロンプトを便利に使うツールがないか、探してみると以下がヒットしました。
http://www.nyaos.org/
http://www.winunix.dreamhosters.com/winunix/shell.htm
そして、このnyacusというワードで検索すると、CKWというツールもヒットしてきます。
http://lucy.moe-nifty.com/blog/2009/10/windowslinux-88.html
ふむふむ。なるほど。
CKWはコマンドプロンプトで、ウィンドウの透過などの設定ができる。
nyacusはシェルの強化ができる。
そんで、ckwでは起動シェルが選択できるから、nyacusで実行すればよい。
とかそんな内容っぽい。
これはなかなかに面白い、ということで色々カスタマイズをしてみたのですが、CLPの使用で問題がありました。
WindowsのDOSプロンプトで、CLPを起動しようとすると、「DB21061E コマンド行環境は初期化されていません。」と表示されて起動できません。
これは、Windows版のCLPは環境変数だったりクライアント情報だったりを読み込まないと起動できないっぽいのですが、生のDOSプロンプトではそれらが読めてないからだということらしい。
こちらのブログで、いろいろ試しているようですので気になる方はどうぞ。
http://plaza.rakuten.co.jp/u703331/diary/200705160001/
で、私もなんとかCKWでclpが使えないか色々やってみた結果、使えるようにはなりましたが、dbへ接続しても1秒程で切断されてしまう現象は解決できませんでした。
そんなわけで方向転換です。
シェルの拡張は、Cygwinで解決しようということで、CygwinからCLPが使えないか調査。
で、調査を開始してすぐ見つかったのがやっぱりこのブログ。
いつもいつも助かります。
http://db2.jugem.cc/?eid=865
ここでは.bashrcとしていますが、まぁ読み込まれるファイルならどこでもいいでしょう。
環境に合わせて、以下を追記すればオッケーなようです。
export DB2CLP=**$$**
export DB2PATH=C:\\SQLLIB
上記設定で、CygwinからCLPが使えるようになりました。
で、ここではたと思いついたわけです。
CKWの「Ckw*exec」パラメータに、Cygwin.batを指定したら使えるんじゃね?と。
で、やってみたらこれがビンゴ。
透過ウィンドウでCygwinが動いて、db2も使えちゃいました。
そんなわけで、現在のcfgファイルは以下の通り。
!
! ckw setting
!
Ckw*foreground: #00ff00
Ckw*background: #000000
Ckw*cursorColor: green
Ckw*cursorImeColor: red
Ckw*title: ckw[Cygwin]
Ckw*exec: D:\Cygwin\Cygwin.bat ! ## ←これをいれるだけ ##
Ckw*chdir: d:\
Ckw*scrollHide: no
Ckw*scrollRight: yes
Ckw*internalBorder: 1
Ckw*lineSpace: 0
Ckw*topmost: no
Ckw*transp: 180
Ckw*transpColor: #000000
Ckw*font: MS Gothic
Ckw*fontSize: 14
Ckw*geometry: 110x35
Ckw*saveLines: 800
Ckw*color0: #333333
Ckw*color1: #4682B4
Ckw*color2: #90EE90
Ckw*color3: #00BFFF
Ckw*color4: #FF00FF
Ckw*color5: #FF8080
Ckw*color6: #FFFF00
Ckw*color7: #CCCCCC
Ckw*color8: #333333
Ckw*color9: #4682B4
Ckw*color10: #90EE90
Ckw*color11: #00BFFF
Ckw*color12: #FF00FF
Ckw*color13: #FF8080
Ckw*color14: #FFFF00
Ckw*color15: #CCCCCC
はい、というわけで、現在はCygwin + CKW + CLPという環境で快適に作業しております。
今回の件で、改めて参考URLをあさっていたら、あたらしいバージョンを作っている方を発見しました。
http://craftwave.blogspot.com/2010/05/ckw-2-copyall.html
これ、メニューのなかに「CopyALL」というメニューを追加してくれているんですが、地味に便利です。
[関連]Windowsのコマンドプロンプトを便利にしてくれるCKW
http://hitai.blog72.fc2.com/blog-entry-77.html
- Newer: Windowsのコマンドプロンプトを便利にしてくれるCKW
- Older: DB2のSELECT文でNULLを選択したい
Comments: 0
Trackback+Pingback: 0
- TrackBack URL for this entry
- http://hitai.blog72.fc2.com/tb.php/76-0e91f512
- Listed below are links to weblogs that reference
- Windows版のDB2 CLPをかっこ良く使いたい → Cygwin + CKW + CLP from ヒビコレショウジン