[Shell에 대하여]Unix C-shell변수와 환경변수
출처 : 대전국제IT교육센터 정성재 강사
1. C-Shell변수와 환경변수의
개요
C-Shell은 자체의 변수를 가지고 있는데, 이것을 쉘변수라 하고, 환경변수는 모든 쉘에서 사용할
수 있는 변수다.
(1) 쉘변수 : set명령으로 설정하고, unset명령으로 제거할 수 있다. 인자없이 set 명령만
실행시키
면 설정된 쉘변수를 보여 준다.
1) 쉘변수의 확인 : 쉘변수의 값을 확인할 때는 앞에 $를
붙여 확인하며 echo명령을 이용한다.
예) path값을 알고 싶은 경우
echo $path
2)
쉘변수의 설정 : set명령을 사용
ㄱ. 값을 가지고 있지 않은 변수의 설정
set 변수
ㄴ.
값을 가지고 있는 변수의 설정
set 변수=값
ㄷ. 쉘변수의 지우기
unset
변수
(2) 환경변수 : 사용자의 환경을 설정하는 변수 C-shell에서는 setenv와 unsetenv명령을
사용한다.
현재 설정되어있는 환경변수의 리스트를 보려면 아무인자 없이 setenv 또는 env를
실행시키면 된다.
1) 사용예
ㄱ. C-shell
setenv
TERM vt100 => 터미널환경을 vt100으로 설정한다. 주의할 점은 "="를 쓰지 않는다.
ㄴ. 참고
setenv TERM=vt100 => "TERM=vt100"이라는 이름을 가지는 값이 없는 변수를
생성한다.
2) Bourne Shell
TERM=vt100
export TERM
(3)
C-shell변수와 환경변수
보통 같은 역할을 하는 C-shell의 쉘변수와 환경변수가 있을 경우 C-shell의 쉘변수를
설정하면
C-shell이 해당하는 환경 변수를 자동적으로 설정해준다. 참고로 C-shell변수를 set 명령으로 지정
하면
같은 역할을 하는 환경 변수의 값도 바뀌지만, setenv명령으로 환경변수의 값을 바꾸면 같은
역할의 C-shell변수는 값이 바뀌지
않는다.
C-Shell변수 | 환경변수 | 의미 |
$path | $PATH | 실행 파일을 찾을 경로지정 |
$term | $TERM | 현재 터미널 타입 |
$home | $HOME | 사용자의 홈 디렉토리 |
$cwd | $PWD | 현재 작업 디렉토리 |
$shell | $SHELL | 사용자의 login shell |
$user | $USER | 사용자의 ID |
2. $path와
$prompt
(1) $path에 대하여
1) $path : 도스와 마찬가지로 유닉스에서도 프로그램을
실행시킬 때 $path로 정의된 디렉토리
에서 명령을 검색한다. 도스와의 차이점은 도스는 현재 디렉토리가 정의되어
있지
않아도 되지만, 유닉스의 경우에는 현재 디렉토리도 $path에 정의 되어 있지 않으면
명령을 찾지 않아 실행시키지 않는다.
2) path의 지정 : $path의 경우에는 공백으로 구분하고,
$PATH인 경우에는 ":"으로 구분한다.
예) 1. $path의 지정 : 공백문자로 인해 path의 좌우를 ()로
묶는다.
set path=(/bin /usr/bin /usr/X11/bin)
2. 이미지정된
path에 추가하기
set path=($path /usr/sbin)
(2) $prompt에 대하여
1) 프롬프트란?
사용자에게 키보드입력을 받을 준비가 되었음을 나타내기 위해 컴퓨터가 화면에 나타내는 기호
나
메시지를 말한다. 예를 들면 도스에서는 ">"또는 "%"와 유닉스에서의 "$"이나 "#"등이 이에
해당한다. 리눅스를
인스톨한후 만약 posein이라는 계정으로 로그인하면 보통 다음과 같은 형식
으로 뜬다.
2) 기본
프롬프트
[posein@www posein]$
=> (설명)
여기서 첫번째 posein은
로그인한 id를 나타낸다. 두번째 www은 Server의 이름, 즉 리눅스
인스톨시 물어보는 hostname이다. 세번째는
현재 작업디렉토리를 나타낸다. 마지막으로 # 이
라고 나타나는 데 이것이 바로 프롬프트이다. 이것의 모양은 정통유닉스에서는
shell을 구분
할때 쓰였다.
3) 프롬프트의 사용
ㄱ. 예전 유닉스
$ :
bourne(bash) shell을 사용시 나타나는 프롬프트
# : C-shell을 사용시 나타나는 프롬프트
ㄴ. 현재 리눅스에서는 사용자에 따라 프롬프트를 달리한다.
$ : 일반계정사용자
# :
루트계정사용자
4) 프롬프트의 변경
ㄱ. 일시변경 : 다시로그인하면 원래의 프롬프트로 바뀜
a.
bash : export
export PS1="[\u@\h \W]\\%"
\u :
사용자
\h : 호스트명
\W : 사용자가 위치하고 있는 경로의 맨 하위
디렉토리
b. csh : set
set prompt\"[%n@%m %c]\\%"
ㄴ. login 프롬프트변경
a. bash
/etc/bashrc
b.
csh
/etc/csh.cshrc