[Linux]SQL> 프롬프트에서 백스페이스 키(Backspace Key) 사용하기
sqlplus 프롬프트에서는 백스페이스 키(Backspace Key)가 작동하지 않는 경우가 있습니다. 이것은 오라클의 문제는 아니라 터미널 유형의 문제입니다. stty 명령어를 사용해서 표준 입력인 디바이스(터미널)에 대한 특정 입출력 옵션을 표시(-a 옵션)하거나 설정할 수 있습니다. 아래를 보시면 erase가 “^?”로 설정된 것을 보실 수 있을 겁니다. “^?”는 DEL키를 의미합니다.
[oracle@oel7u8 ~]$ echo $TERMvt100[oracle@oel7u8 ~]# stty -aspeed 38400 baud; rows 72; columns 177; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol =; eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
아래와 같은 조치방법으로 sqlplus 프롬프트에서 백스페이스 키(Backspace Key)를 사용할 수 있습니다.
- sqlplus 프롬프트에서 백스페이스를 클릭하면 아래와 같이 “^H”가 출력됩니다. 즉 백스페이스를 사용해서는 입력된 문자열(명령어)를 삭제할 수 없습니다.
SQL> ^H
- 쉘 프롬프트에서 “stty erase”를 입력하고 “CTRL+V”를 누른 다음 백스페이스 키(Backspace Key)를 누르면 아래와 같이 입력됩니다. Enter 키를 눌러 반영합니다.
[oracle@oel7u8 ~]$ stty erase ^H
- sqlplus 프롬프트에서 DEL 키 대신에 백스페이스 키(Backspace Key)를 사용해서 입력된 내용을 지울 수 있습니다.
- 위 방법은 로그인할 때마다 설정해야 하므로 사용자 환경 설정 파일에 반영하여 사용할 수 있습니다.
[oracle@oel7u8 ~]# vi ./.bash_profile #Add at the end stty erase ^H