Oracle CentOS5 rlwrapを利用したsqlplusのコマンド履歴機能
Oracle CentOS5 rlwrapを利用したsqlplusのコマンド履歴機能
centos上のOracleにローカルからsqlplusでSQLを実行してるとコマンド履歴がないのでちょっと苦労する。
そこでrlwrapを使ってこれを補ってみる。今回はrpm版のrlwrapを使用する。
rlwrap-0.37-1.el5.x86_64.rpmの取得(2012/03/29時点の最新版)
$ wget ftp://195.220.108.108/linux/epel/5/x86_64/rlwrap-0.37-1.el5.x86_64.rpm --2012-03-30 15:23:09-- ftp://195.220.108.108/linux/epel/5/x86_64/rlwrap-0.37-1.el5.x86_64.rpm => `rlwrap-0.37-1.el5.x86_64.rpm' 195.220.108.108:21 に接続しています... 接続しました。 anonymous としてログインしています... ログインしました! ==> SYST ... 完了しました。 ==> PWD ... 完了しました。 ==> TYPE I ... 完了しました。 ==> CWD /linux/epel/5/x86_64 ... 完了しました。 ==> SIZE rlwrap-0.37-1.el5.x86_64.rpm ... 94353 ==> PASV ... 完了しました。 ==> RETR rlwrap-0.37-1.el5.x86_64.rpm ... 完了しました。 長さ: 94353 (92K) 100%[======================================================================================>] 94,353 76.5K/s 時間 1.2s 2012-03-30 15:23:14 (76.5 KB/s) - `rlwrap-0.37-1.el5.x86_64.rpm' へ保存終了 [94353]
rmpパッケージをインストール
$ sudo rpm -ivh rlwrap-0.37-1.el5.x86_64.rpm 警告: rlwrap-0.37-1.el5.x86_64.rpm: ヘッダ V3 DSA signature: NOKEY, key ID 217521f6 準備中... ########################################### [100%] 1:rlwrap ########################################### [100%]
動作確認
oracleユーザで適当にSQLを実行。sqlplusを呼び出す際にrlwrap sqlplus ~の形で呼び出す。
今回は「select count(*) from v$session;」を2度目はctrl+pで履歴から選択して実行した。
[oracle]$ rlwrap sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 30 15:24:14 2012 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> conn / as sysdba Connected. SQL> select count(*) from v$session; COUNT(*) ---------- 25 SQL> select count(*) from v$session; COUNT(*) ---------- 23
ctrl+a、ctrl+eなどの行内の移動とかも普通に使えるので楽チン。