Linuxでsqlplusを使うときのコマンド履歴を矢印キーで出す方法

スポンサーリンク

LinuxはAlmaLinuxを使っていますが、sqlplusを使うときに、上矢印キーや下矢印キーでコマンド履歴を出す方法です。

検証した環境

$ cat /etc/os-release
NAME="AlmaLinux"
VERSION="8.7 (Stone Smilodon)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.7"
PLATFORM_ID="platform:el8"
PRETTY_NAME="AlmaLinux 8.7 (Stone Smilodon)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:8::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8"
ALMALINUX_MANTISBT_PROJECT_VERSION="8.7"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.7"
$ uname -r
4.18.0-425.13.1.el8_7.x86_64
$ sqlplus -v

SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

rlwrapパッケージのインストール

rlwrapパッケージをEPELリポジトリーから導入します。

rlwrapは、readlineをwrapperするものです。その名も、「Read Line WRAPper」。

EPELリポジトリーが使えるようになったら、rlwrapパッケージをインストールします。

$ sudo dnf install rlwrap --enablerepo=epel
    : (省略)
Installed:
  perl-File-Slurp-9999.19-19.el8.noarch
  rlwrap-0.46.1-1.el8.x86_64

Complete!

動作の確認

sqlplusを使うときに、先頭に「rlwrap」をつけると、コマンド履歴が使えるようになります。

$ rlwrap sqlplus sys as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 日 4月 9 09:38:38 2023
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

パスワードを入力してください:xxxx


Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

SQL> show con_name ・・・ 「↑」矢印キーを押すと以前に入力したコマンドが表示される

CON_NAME
------------------------------
CDB$ROOT
SQL> exit
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0との接続が切断されました。
$ sudo vi ~/.bash_profile
   : (省略)
alias sqlplus="rlwrap sqlplus" ・・・ エイリアスにしておくと、少し幸せかもしれない
$ source ~/.bash_profile