пятница, 18 марта 2011 г.

rlwrap - комфортная работа с sqlplus

Работа в консоли с такими приложениями как sqlplus мягко говоря не удобна. Нет истории команд, нет возможности редактирования и пр. Поэтому приложение rlwrap это просто находка для админа. Rlwrap исполняет команду при этом перехватывая ввод пользователя для предоставления функций редактирования. В большинстве дистрибутивов rlwrap уже есть, а если он отсутствует, то его можно скачать и собрать самому:

server$ gunzip rlwrap-0.37.tar.gz; tar -xf rlwrap-0.37.tar; cd rlwrap-0.37
server$ ./configure
server$ make
server$ sudo make install

При запуске rlwrap создается файл истории '~/.command_history', где command - название программы которую вы запускаете. Для использования автодополнения необходимо будет создать файл с перечнем команд. Rlwrap этот файл разберет по словам. Мой совет - сделайте этот файл в домашней директории, и назовите его в виде '~/.command_completions'. Тогда этот файл будет подхвачен автоматически, иначе файл дополнений нужно будет указывать через ключ '-f'
Ну что же, теперь можно наслаждаться всеми удобствами:

server$ rlwrap sqlplus user_name

Приведем для данного случая также файлы истории и автодополнения:

server$ ll -a

-rw-r--r--  1 oracle oinstall        23 Mar 18 13:14 .sqlplus_completions
-rw-------  1 oracle oinstall      2222 Mar 18 13:14 .sqlplus_history

Для большего удобства можно прописать алиасы в ~/.bashrc в виде:

server$ cat ~/.bashrc
...
# User specific aliases and functions
alias sqlplus="rlwrap sqlplus"