Oracle® Solaris 11.2의 사용자 계정 및 사용자 환경 관리

인쇄 보기 종료

업데이트 날짜: 2014년 9월
 
 

Bash 및 Korn 셸 환경 변수

bash 및 ksh93 셸은 해당 셸에 알려진 특수한 변수 정보를 환경 변수로 저장합니다. bash 셸에 대한 현재 환경 변수의 전체 목록을 보려면 declare 명령을 사용합니다.

$ declare
BASH=/usr/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINEND=()
BASH_SOuRCE=()
BASH_VERSINFO=([0]=''3'' [1]=''2'' [2]=''25'' [3]=''1''
[4]=''release'' [5]''
.
.
.

ksh93 셸의 경우 bash 셸의 declare 명령에 해당하는 set 명령을 사용합니다.

$ set
  COLUMNS=80
  ENV='$HOME/.kshrc'
  FCEDIT=/bin/ed
  HISTCMD=3
  HZ=''
  IFS=$' \t\n'
  KSH_VERSION=.sh.version
  LANG=C
  LINENO=1
  .
  .
  .

두 셸 중 하나에 대한 환경 변수를 출력하려면 echo 또는 printf 명령을 사용합니다. 예를 들면 다음과 같습니다.

$ echo $SHELL
/usr/bin/bash
$ printf "$PATH\n"
/usr/bin:/usr/sbin

주 -  환경 변수는 세션 간에 지속되지 않습니다. 영구 환경 변수 값을 설정하려면 .bashrc 파일에 값을 설정합니다.

셸은 두 가지 유형의 변수를 가질 수 있습니다.

환경 변수

셸이 생성하는 모든 프로세스로 내보내지는 변수를 지정합니다. export 명령은 변수를 내보내는 데 사용됩니다. 예를 들면 다음과 같습니다.

export VARIABLE=value

이러한 설정은 env 명령을 사용하여 표시할 수 있습니다. PATH와 같은 일부 환경 변수는 셸 자체의 동작에 영향을 줍니다.

셸(로컬) 변수

현재 셸에만 영향을 주는 변수를 지정합니다.

사용자 초기화 파일에서 미리 정의된 변수의 값을 변경하거나 추가 변수를 지정하여 사용자의 셸 환경을 사용자 정의할 수 있습니다.

다음 표에서는 Oracle Solaris 릴리스에서 사용할 수 있는 셸 및 환경 변수에 대한 세부 정보를 제공합니다.

표 1-10  셸 및 환경 변수 설명
변수
설명
CDPATH
cd 명령에서 사용되는 변수를 설정합니다. cd 명령의 대상 디렉토리가 상대적 경로 이름으로 지정된 경우 cd 명령이 처음에 현재 디렉토리(.)에서 대상 디렉토리를 찾습니다. 대상을 찾을 수 없는 경우, 대상 디렉토리를 찾고 디렉토리 변경이 완료될 때까지 CDPATH 변수에 나열된 경로 이름을 연속해서 검색합니다. 대상 디렉토리를 찾을 수 없는 경우 현재 작업 디렉토리가 수정되지 않은 채 남습니다. 예를 들어, CDPATH 변수가 /home/jean으로 설정되고 두 디렉토리가 /home/jean, bin, doc 아래에 있습니다. /home/jean/bin 디렉토리에 위치하고 cd doc를 입력하면 전체 경로를 지정하지 않더라도 디렉토리가 /home/jean/doc로 변경됩니다.
HOME
사용자의 홈 디렉토리에 대한 경로를 설정합니다.
LANG
로케일을 설정합니다.
LOGNAME
현재 로그인한 사용자의 이름을 정의합니다. LOGNAME의 기본값은 로그인 프로그램에서 passwd 파일에 지정한 사용자 이름으로 자동으로 설정됩니다. 이 변수는 참조만 해야 하고 재설정하면 안됩니다.
MAIL
사용자의 메일함에 대한 경로를 설정합니다.
MANPATH
사용 가능한 매뉴얼 페이지의 계층을 설정합니다.

주 -  Oracle Solaris 11부터 MANPATH 환경 변수는 더 이상 필요하지 않습니다. man 명령은 PATH 환경 변수 설정에 따라 적합한 MANPATH를 결정합니다.

PATH
사용자가 명령을 입력할 때 실행할 프로그램을 찾기 위해 셸이 검색하는 디렉토리를 순서대로 지정합니다. 디렉토리가 검색 경로에 없으면 사용자가 명령의 전체 경로 이름을 입력해야 합니다.
로그인 프로세스의 일부로 기본 PATH가 자동으로 정의되고 .profile에 지정된 대로 설정됩니다.
검색 경로의 순서가 중요합니다. 동일한 명령이 다른 위치에 존재하면 해당 이름으로 찾은 첫번째 명령이 사용됩니다. 예를 들어, PATH가 셸 구문에서 PATH=/usr/bin:/usr/sbin:$HOME/bin으로 정의되고 sample이라는 파일이 /usr/bin/home/jean/bin에 상주한다고 가정해 보겠습니다. 사용자가 전체 경로 이름을 지정하지 않고 명령 sample을 입력하면 /usr/bin에서 찾은 버전이 사용됩니다.
PS1
bash 또는 ksh93 셸에 대한 셸 프롬프트를 정의합니다.
SHELL
make, vi 및 다른 도구에서 사용되는 기본 셸을 설정합니다.
TERMINFO
대체 terminfo 데이터베이스가 저장되는 디렉토리의 이름을 지정합니다. /etc/profile 또는 /etc/.login 파일에서 TERMINFO 변수를 사용합니다. 자세한 내용은 terminfo(4) 매뉴얼 페이지를 참조하십시오.
TERMINFO 환경 변수를 설정할 때 시스템은 먼저 사용자가 정의한 TERMINFO 경로를 검사합니다. 사용자가 정의한 TERMINFO 디렉토리에서 터미널의 정의를 찾지 못하면 기본 디렉토리 /usr/share/lib/terminfo에서 정의를 검색합니다. 시스템이 어느 위치에서도 정의를 찾지 못하면 터미널이 "dumb"로 식별됩니다.
TERM
터미널을 정의합니다. 이 변수는 /etc/profile 또는 /etc/.login 파일에서 재설정해야 합니다. 사용자가 편집기를 호출할 때 시스템이 이 환경 변수에 정의된 동일한 이름의 파일을 찾습니다. 그리고 터미널 특성을 확인하기 위해 TERMINFO로 참조된 디렉토리를 검색합니다.
TZ
시간대를 설정합니다. 시간대는 ls -l 명령에서 날짜를 표시하는 데 사용됩니다. TZ가 사용자 환경에 설정되지 않은 경우 시스템 설정이 사용됩니다. 그렇지 않으면 GMT(Greenwich Mean Time)가 사용됩니다.