database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Tutorials 3871 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 3871
pgbash 사용법
작성자
정재익(advance)
작성일
2002-01-11 10:06
조회수
5,821
첨부파일: pgbash2.2-bash2.05.zip (1,899,458bytes)

pgbash 사용법

 

예전에도 pgbash 에 대한 글을 접하고서 사용해 보려고 했지만 실패하고 말았다. 지금 생각해 보면 왜 그랬는지 몰라도 컴파일에서 실패했었던 것 같다.

 

이번에 새로이 컴파일을 시도해 보았지만 역시 실패였다. DSN 서버 관리자님이신 이운억님께 도움을 청했더니 너무도 어이가 없이 쉽게 해결법을 제시해 주어 이렇게 컴파일/설치/사용법에 대해서 올리고자 한다.

 

pgbash 라고 하는 것은 bash shell 에서 직접적으로 PostgreSQL 로 접근이 가능하도록 패치를 가한 프로그램으로서, bash 의 shell scripting 능력에다가 psql 과 유사한 기능을 bash 에 추가한 것으로서, 이보다 더 좋은 PostgreSQL client 프로그램을 없다고 생각할 정도로 편리하다.

즉 bash shell script 내부에서 PostgreSQL 의 디비의 내용을 불러 쓰고 필요한 경우 디비 수정 작업도 shell script 로서 손쉽게 할수 있다고 가정해 보라. 편리하지 않겠는가? 가장 간단한 예로 다음을 보자.

 

[advance@database advance$] select * from users; | egrep ^ad.ance.*

 

이런식으로 필터링 프로그램도 사용할 수 있다. 이 정도면 어느 정도의 편리성이 있을지는 알수 있을 것으로 생각하고 설치방법을 알아보도록 하자.

 

pgbash 의 설치

 

이 글은 pgbash-2.2bash-2.0.5 를 기반으로 설치하는 과정을 설명 하도록 하겠다.

 

1. pgbash 를 설치하기 전에 PostgreSQL-6.5/7.0/7.1 이 미리 설치되어 있어야 한다. 이 과정은 여기서 생략하도록 하며, PostgreSQL 은 /usr/local/pgsql 디렉토리에 설치된 것으로 가정하겠다.

 

2. 만약 PostgreSQL 이 /usr/local/pgsql 에 설치되어 있지 않다면 root 로서 /usr/local/pgsql 디렉토리를 만들고 PostgreSQL Include 와 lib 디렉토리를 그 아래로 link 를 걸어서 만들어 주도록 한다.

         su -
         cd /usr/local
         mkdir pgsql
         cd pgsql
         ln -s xxx/pgsql/lib .
         ln -s xxx/pgsql/include .

여기서 xxx/pgsql 이라는 것은 PostgreSQL 이 실제로 설치되어 있는 디렉토리를 말한다.

 

3. pgbash-2.2 와 bash-2.0.5 를 다운로드 받는다.

 

wget ftp://ftp.psn.ne.jp/pub/PostgreSQL/pgbash/pgbash-2.2.tar.gz

wget ftp://ftp.gnu.org/gnu/bash/bash-2.05.tar.gz

 

4. pgbash 와 bash 의 압축을 푼다.

   tar xvfz pgbash-2.2.tar.gz
   cd pgbash-2.2
   tar xvfz yyy/bash-2.0.5.tar.gz

물론 여기서 yyy 는 bash-2.0.5 가 다운로드 받아져 있는 디렉토리를 말한다.

 

여기까지 진행했으면 다음과 같은 디렉토리 구조를 가지게 될 것이다.

-rw-r--r--   1 pgbash  postgres     2842 Apr 18 19:04 ChangeLog
-rw-r--r--   1 pgbash  postgres     7245 Apr 18 19:04 INSTALL
-rw-r--r--   1 pgbash  postgres     4404 Apr 18 19:04 README
drwxr-xr-x  10 pgbash  postgres     3584 Apr 21 16:15 bash-2.05/
drwxr-xr-x   4 pgbash  postgres     1024 Apr 21 16:14 exec_sql/
lrwxrwxrwx   1 pgbash  postgres        9 Apr 20 11:05 patch@ -> patch-2.05
drwxr-xr-x   2 pgbash  postgres      512 Apr 21 17:18 patch-2.03/
drwxr-xr-x   2 pgbash  postgres      512 Apr 21 17:18 patch-2.04/
drwxr-xr-x   2 pgbash  postgres      512 Apr 21 17:18 patch-2.05/
-rw-r--r--   1 pgbash  postgres     3301 Apr 21 09:28 pgbashrc
lrwxrwxrwx   1 pgbash  postgres        9 Apr 20 11:05 src@ -> bash-2.05
drwxr-xr-x   4 pgbash  postgres      512 Apr 19 17:11 test/

5. 이제 bash-2.0.5 에 패치를 한다.

    cd patch-2.0.5
    make

이때 bash 버전에 따라 patch 디렉토리가 따로 있으므로 혹시 다운로드 받은 bash 소스의 버전이 다를 경우 다른 patch 버전을 선택하도록 한다. 그리고 patch 의 결과는 make.log 파일에 저장되어 있으므로 필요할 경우 참조하도록 한다.

 

6. confiugre

    cd ../bash-2.0.5
    ./configure

7. make (GNU make)

make 과정에서 컴파일 실패하는 경우가 많다. 예전에 나도 그래서 컴파일을 못했었는데, 그 이유는 어이 없게도 환경변수 탓이었다. 가끔 compile 시에 최적화를 이해서 필요한 CFLAG 환경변수를 미리 설정해 두는 경우가 있는데 이 경우 이 CFLAG 의 영향으로 제대로 컴파일이 되지 않는 경우가 있다. 이런 경우에는 미리 CFLAG 의 값을 없애고 make 과정을 거치기 바란다.

    unset CFLAG
    make

8. make install

이제 root 권한으로서 make install 을 실행하도록 하자.

    su
    make install

제대로 설치가 된 경우라면 다음과 같은 메시지가 보일 것이다.

pgbash-2.2/bash-2.0.5/pgbash   ===> /usr/local/bin/pgbash
pgbash-2.2/pgbashrc                 ===> /etc/pgbashrc

만약 여러분들이 Unix 의 super user 로서 작업하는 것이 아니라면 이들 pgbash 와 pgbashrc 파일을 자신의 디렉토리로 복사해 넣도록 한다.

    cp pgbash ~/bin/pgbash
    cp pgbashrc ~/.pgbashrc

 

이제까지의 동작으로 여러분들은 pgbash 를 사용할 준비가 다 되었다. 이제는 아래 설치 설명 항목들은 대부분의 PostgreSQL 사용자들은 설정되어 있는 상황이므로 그렇게 걱정할 필요가 없을 것 같다. 단지 참조만 하시기 바란다.

 

9. 환경설정

 

1. ~/.bashrc 설정하기

대체로 다음과 같이 설정되어 있어야 한다.

# ~/.bashrc

export POSTGRES_HOME=/usr/local/pgsql

export PGLIB=$POSTGRES_HOME/lib

export PGDATA=$POSTGRES_HOME/data

export LD_LIBRARY_PATH=$PGLIB

export PATH=/usr/local/bin:/usr/local/pgsql/bin:$PATH

export PGCLIENTENCODING= 'EUC_KR'

 

2. ~/.pgbashrc 설정하기

/etc/pgbashrc 를 ~/.pgbashrc 로 복사하여 자신의 환경에 맞게 적정하게 수정해야 한다.

 

3. 환경 설정의 확인

prompt> /usr/local/bin/pgbash

Welcome to Pgbash version 2.2 ( bash-2.05.0(1)-release )

 

Type '?' for HELP. (HELP is defined in ~/.pgbashrc)

Type 'connect to DB;' before executing SQL.

Type 'SQL;' to execute SQL.

Type 'exit' or 'Ctrl+D' to terminate Pgbash.

 

pgbash> ?

? : this help

?? : help pgbash usage

??h [SQL] : help SQL(or "SQL") syntax or all SQL reserved words

??e : help SQLCODE (sql ERROR code)

??f : help 'pgbashrc' FUNCTIONs for using a shell script

??o : help 'exec_sql' options

?m : show CONNECTION NAMEs

....

 

이제 전반적인 pgbash 의 설치는 모두 끝났다. 사용만 하면 되는 것이다.

만약 /etc/pgbashrc 를 ~/.pgbashrc 로 복사만 하였다면 ? 라는 명령어를 주면 help 화면을 볼수 있다.

[pgbash]~> ?
  ?         : this help
  ??        : help pgbash usage
  ??h [SQL] : help SQL(or "SQL") syntax or all SQL reserved words
  ??e       : help SQLCODE (sql ERROR code)
  ??f       : help 'pgbashrc' FUNCTIONs for using a shell script
  ??o       : help 'exec_sql' options
  ?m        : show CONNECTION NAMEs
  ?o        : show current values of exec_sql_OPTIONs
  ?s        : show STATUS after executing SQL
  ?v        : show PostgreSQL and pgbash VERSION
  ?u        : list database USERs
  ?l        : list DATABASEs
  ?d  [rel] : list RELATIONs for table/view/index/sequence
  ?d : list TABLEs/INDEXes/VIEWs
  ?dl       : list LARGE_OBJECTs
  ?dp       : list PERMISSIONs
  ?ds       : list SEQUENCEs
  ?dA       : list AGGREGATEs
  ?dD [obj] : list DESCRIPTIONs for table/type/function/operator
  ?dF       : list FUNCTIONs
  ?dO       : list OPERATORs
  ?dS       : list SYSTEM_TABLEs
  ?dT       : list data_TYPEs
  E    : turn on/off ECHO_QUERY sent to the backend
  Q    : turn on/off QUIET_MODE for system/sql error messages
  L    : turn on/off OUTER_FRAME_print
  T    : turn on/off TOP_header_print
  B    : turn on/off BOTTOM_count_print
  A    : turn on/off ALIGNMENT of plain text
  X    : turn on/off EXPANDED format
  H    : turn on/off HTML format
  S+  [chr] : set SEPARATOR  (e.g. ','  ) or DEFAULT('|')
  N+  [str] : set NULL_STRING(e.g. '*N*') or DEFAULT('')
  Z+  [str] : set ZERO_STRING(e.g. '*0*') or DEFAULT('')
  O+  [str] : set TABLE TAG  (e.g. 'cellpadding=4') or DEFAULT('')
 _lo_import : lo_import  <'COMMENT'>
 _lo_export : lo_export  
 _lo_unlink : lo_unlink  

 

이제 pgbash 로 또다른 세상을 맛보시기 바랍니다.

[Top]
No.
제목
작성자
작성일
조회
4079[SQL] 재미난 RULE
김상기
2002-03-14
5114
3990PostgreSQL 7.2 설치하기
정재익
2002-02-11
6705
3910DB data directory 를 여러군데 이용하기.
정재익
2002-01-21
4678
3871pgbash 사용법
정재익
2002-01-11
5821
3846PL/pgSQL - SQL procedural language (3)
정재익
2002-01-07
13417
3845PL/pgSQL - SQL procedural language (2)
정재익
2002-01-07
8441
3844PL/pgSQL - SQL procedural language (1)
정재익
2002-01-07
8110
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2020 DSN, All rights reserved.
작업시간: 0.041초, 이곳 서비스는
	PostgreSQL v13.0으로 자료를 관리합니다