Unix/Linux에서 Oracle sqlplus의 history 기능 사용... rlwrap

 오늘 회사에서 Oracle을 만질 일이 있어서 sqlplus를 실행해서 작업을 하다가, 다른분에게 mysql이나 postgreql과를 달리 sqlplus는 화살표 키를 눌렀을 때 이전 입력 명령어를 볼 수가 없어서 볼편하다고 토로 했다. 그러자 그 분께서 '어? 그건 예전부터 쭉~ 잘 되는건데~'라고 하시는 거다. 그래서 직접 그분의 자리로 가서 보니까, 너무나 잘 되는 것이다.

 물론 그 분의 시스템은 MS Windows 였고,그분이 말씀하시길 cmd를 실행했을 경우에는 특별한 작업 없이 된다고 하셨다. 아마도 doskey의 영향이 아닐까? 하고 예측을 해보았다. 대학교에서 Oracle 수업을 들을 때에도 sqlplus에서는 '원래 안돼~'라는 생각을 가지고 있었는데, MS Windows에서 되는 것을 보고 나니 'MS Windows에서 되는데 *nix에서 안될리가~'라는 생각을 하게 되어서 인터넷을 좀 뒤져 보았다. 아니다 다를까 이런 문제를 해결해 줄 프로그램이 있었기에 소개한다.

 rlwrap라는 프로그램으로 'readline wrapper'라는 의미인데, sqlplus 같이 자체적으로 명령어를 기억해 주지 않는 프로그램을 대신해서 bash 쉘처럼 명령어를 텍스트로 .프로그램명_history 파일에 저장하고, 화살표 키를 눌러서 이전 명령어를 불러 낼 수 있다.

우분투나 데비안에는 패키지로 rlwrap가 있으므로 아래의 명령으로 간단하게 설치 할 수 있다.
$ sudo apt-get install rlwrap

 내가 작업하던 환경은 Solaris 10 Sparc 이였는데, http://sunfreeware.com 에서는 패키지가 없었기에 직접 소스를 컴파일 하였다. 소스는 이 곳에서 얻을 수 있다. 컴파일을 위해 readline 라이브러리가 필요했는데 이 라이브러리는 http://sunfreeware.com 에서 얻을 수 있었다.
# ./configure --prefix=/usr/local
# make
# make install

사용 방법은 실행할 프로그램 앞에 rlwrap를 붙여주는 것인데, 좀 더 편하게 작업하기 위해서 sqlplus를 'rlwrap sqlplus'로 alias를 걸어주었다. .bashrc.profile과 같은 파일 안에 아래와 같이 적어두면 적용이 된다.
alias sqlplus='rlwrap sqlplus'

 history 파일은 암호화는 되지 않기에 위험할 수도 있겠지만, 그동안 sqlplus 불편했던 점을 해소 할 수 있어서 하나 건진 느낌이다.
rlwrap의 소스 파일 : rlwrap-0.30.tar.gz

by sakuragi | 2008/04/21 23:57 | :: C space :: 컴퓨터 | 트랙백 | 핑백(1) | 덧글(5)

트랙백 주소 : http://sakuragis.egloos.com/tb/4307761
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at 한림학사님의 이글루 : Uni.. at 2010/07/25 13:40

... rlwrap 사용 http://sakuragis.egloos.com/4307761#4307761_1 ... more

Commented by 환상경 at 2008/04/22 08:41
ㅎㅎㅎ 다양한 환경을 경험하시는군요 부럽사옵니다.>_<
Commented by sakuragi at 2008/04/23 00:21
환상경, 그러게요. 본의 아니게 이것 저것 하게 되네요. :)
Commented by 박신환 at 2008/08/20 15:41
저희 오라클 관련 카페로 퍼가겠습니다. (http://cafe.naver.com/ocmkorea.cafe) 자료 감사드립니다. 덕분에 아주 간편하게 sqlplus를 사용하게 되었습니다.
Commented by sakuragi at 2008/08/21 14:38
넵. 유용한 정보가 되었다니 기쁘네요. ^^
Commented at 2008/11/07 16:09
비공개 덧글입니다.

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶

:+: sakuragi's Steam :+: