SHELL별 환경설정  
---== 에듀 스터디 그룹에서 발췌 ==---

여기서는 쉘별로 기본적인 환경설정파일 및 설정에 대해 알아보자

솔라리스를 설치하면  사용자나 루트는 기본적으로 Bourne Shell이다.
경로는 /bin/sh로 되어 있다.
하지만 저 같은 경우는 C쉘을 사용합니다.
왜냐면 Bourne shell의 기능을 포함하고 있고, 명령어 히스토리 기능,alias
기능,변수확장기능,프로세서 관리기능이 추가되었기 때문이다.

쉘을 변경하려면 루트권한에서 /etc/passwd부분의 해당 사용자 라인에서
맨 끝 부분을 변경해주면된다.

예를 들어(Bourne Shell)
yunisj:x:100:1::/home/yunisj:/bin/sh
라면
아래는 (C Shell)
yunisj:x:100:1::/home/yunisj:/bin/csh
로 변경해 주면된다.

현재 자신의 쉘을 보려면 아래와 같이 해준다.

$ echo $SHELL  <== SHELL은 반드시 대문자이다.
----------------------------------------------------------------------
--------




1.각 쉘이 제공하는 기능
               Bourne(sh) C(csh) TC(tcsh) korn(ksh) Bourne Again shell
(bash)
----------------------------------------------------------------------
-------
명령 히스토리 :    No       Yes      Yes    Yes              Yes
명령의 별명   :    No       Yes      Yes    Yes              Yes
쉘 스크립트   :    Yes      Yes      Yes    Yes              Yes
파일이름 완성 :    No       Yes      Yes    Yes              Yes
명령행 편집   :    No       No       Yes    Yes              Yes
job 제어      :    No       Yes      Yes    Yes              Yes




2.Bourne Shell (sh)

유닉스 오리지널 쉘이다.
/bin/sh를 사용한다.
모든 유닉스 시스템 에서 사용할수 있지만, C쉘이나 korn쉘에 비해 기능이
떨어진다.
가장 단점은 인터렉티브방식이 아니라는 점이다.
이 기능을 사용할려면 쉘을 변경하는게 나을것이다.

초기 설정 파일로 /etc/profile과 $HOME/.profile을 사용한다.환경설정시

이 파일을 수정한다.
만약 해당 파일이 없다면 vi 해서 만들면 될 것이다.
자 ~~ 그럼 자신의 프롬프트를 변경해 보자
====================================================
$ vi .profile

PS1="[]$ ";export PS1
PS2=">";export PS2
====================================================
위의 프롬프트를 보면 Bourne shell의 기본프롬프트로 설정되어 있다.
우리는 이것을 다른것으로 변경하는 작업을 한것이다.
PS1은 로그인시 사용할 프롬프트 이고 PS2는 명령행의 입력이 계속 이어질
경우
나타나는 두번째 프롬프트를 설정하는것이다.
export는 하위 쉘이나 기타 프로세서에도 적용하기 위한것이다.

위와 같이 설정하고 다시 로그인 하거나 아니면 아래와 같이 해서 현재 쉘
에 바로
적용한다.
$ . .profile
[]$ . .profile

다음으로 Bourne Shell에서의 모든 환경값을 알아보자
Bourne shell에서 보는 법은 set을 사용한다.

====================================================
[]$ set
HOME=/export/home/yunisj
HZ=100
IFS=    

LANG=ko
LOGNAME=yunisj
MAIL=/usr/mail/yunisj
MAILCHECK=600
OPTIND=1
PATH=/usr/bin:/usr/ucb:/etc:.
PS1=[]$
PS2=>
SHELL=/bin/sh
TERM=vt100
TZ=ROK
...이하생략

====================================================



3.bash (Bourne Again Shell)

GNU로서 IEEE Posix Shell을 대체하기 위한 쉘로 다른 쉘의 유용한 특징을
대부분
통합하고 있으며, 쉘 프로그래밍 언어적인 측면에서는 Bourne Shell과 호환
된다.

초기 설정파일로 $HOME/.bashrc를 사용한다.

====================================================
[]$ vi .bashrc

PS1='[$HOSTNAME|$PWD]$ ';export PS1
alias ll='ls -al'
alias rm='rm -i'
alias lf='ls -aF'
====================================================

위와 같이 설정해보자. 반드시 export를 해야 다른 프로세스나 쉘에 적용된
다.
$HOSTNAME은 호스트 네임을 호출하는 변수이고, $PWD는 현재 경로를 호출하
는 변수이다.
나머지 변수는 set을 통해서 알아보고 직접해보기 바란다.

자 ~~ 그러면 이제 현재 변경된 내용을 적용해 보자

====================================================
[]$ . .bashrc                 <==변경전의 프롬프트
[zeus|/export/home/yunisj]$   <==변경후의 프롬프트
====================================================




4.C Shell (csh)

버클리 대학에서 만든 쉘이다. Bourne Shell보다 기능적인 면에서 진보된
쉘이다.
지원하는 기능이 이 문서의 맨위에 서로 비교를 해 놓았지만 한번더 말하자

aliases , command history , file name completion , job control등이다.

초기화 파일은 $HOME/.cshrc  .login  .logout 세개의 파일이 있다.
사용자가 로그인을 하게되면 먼저 .login파일을 읽고 환경변수를 셋팅한
다.
그리고 나서 .cshrc 파일을 읽음으로서 각 프로세스의 쉘 변수를 설정한
다.
.logout파일은 로그아웃할때 읽게된다.

그럼 c쉘의 환경설정을 해보자
C쉘은 Bourne쉘 계열과 달리 "="기호를 사용하지 않는다.

이 예제는 Solaris Release Level 5.8 (Intel)에 적용한것 입니다.
따라서 다른 Release Level일 경우에는 다소 상이할수있습니다.

==========================.cshrc예제
=====================================
# @(#)cshrc 1.11 89/11/29 SMI
umask 022
set path=
(/bin /usr/lib /usr/ccs/bin /usr/local/bin /usr/bin /usr/ucb /etc)
if( $?prompt ) then
set history=100
endif


set filec <--파일명 자동완성
set host=`/bin/uname -n` <--호스트 네임을 가져옴
set history=100 <--명령어 히스토리 사용갯수
set savehist=100 <--다음 로그인시 사용할 명령어 히스토리 갯수
set noclobber <--파일 덮어쓰기 금지
set prompt="$host [`dirs`]# " <--로그인시 프롬프트 지정

alias cd 'cd \!*;set prompt="$host [`dirs`]# "' <--cd 실행시마다 해당
프롬프트 다시 변경해줌
alias ls 'ls -F'
alias l 'ls -l'
alias ll 'ls -al'
alias lsf 'ls -aF'

setenv LANG ko

clear


====================================================

위와 같이 변경하고 나서 적용하려면 아래와 같이 한다.

====================================================
[]% source .cshrc          <==변경전의 프롬프트
[/export/home/yunisj]%     <==변경전의 프롬프트
====================================================
Posted by ilus


,