rlwrap - readline 이 적용되지 않은 program 을 위한 wrapper


bash 명령어 히스토리 관리 - readline 사용법 및 line 편집, reverse search 등 단축키 요약에 썼듯 readline library 가 적용된 프로그램은 화살표로 history 가 지원되므로 편리하게 사용할 수 있지만 

 대부분은 oracle 의 sqlplus 처럼 readline 이 적용되어 있지 않다.

  

이런 프로그램들은 rlwrap 를 이용하여 구동하면 readline 이 적용된 프로그램처럼 사용할 수 있다. 

  1. git의 rlwrap 페이지 에서 source를 다운받는다.
  2. 압축을 풀고 해당 폴더로 이동한다. 

  3. compile 작업 수행 (GCC compiler 필요하므로 없으면 yum install gcc -y 실행)

    ./configure
    make install

     

  4. rlwrap 를 통해 프로그램을 구동한다. 

    rlwrap ${ORACLE_HOME}/bin/sqlplus

     

  5. oracle 의 sqlplus등 자주 쓰는 프로그램이라면 다음과 같이 alias 에 거는 것을 추천한다. 

    alias sqlplus="rlwrap ${ORACLE_HOME}/bin/sqlplus"

     

  6. 이제 sqlplus 를 실행하면 화살표 키로 예전 명령어를 호출할 수 있고 기타 readline 기능을 사용할 수 있다.


보안 주의 사항

  • readline은 HOME 디렉토리에 .history  파일을 만들고 명령어 내역을 이 파일에 기록하여 history 기능을 구현한다.
  • sqlplus의 경우 수행했던 DML이나 DDL 이 위 파일에 남게 되므로 보안에 유의해야 한다.
    • home directory 를 chmod 0600 으로 설정
    • 민감한 Query후 .history 파일의 해당 쿼리 삭제등.