사이트 내 전체검색
[linux] SHELL별 환경설정
로빈아빠
https://cmd.kr/server/385 URL이 복사되었습니다.

본문

SHELL별 환경설정

글쓴날:2002년 05월 12일
글쓴이:장성윤
3jarea@dreamx.net
http://www.radrabbit.com http://www.apmtip.com

최종수정: 2002년 11월 05일

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

솔라리스를 설치하면  사용자나 루트는 기본적으로 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]% <==변경전의 프롬프트

댓글목록

등록된 댓글이 없습니다.

1,139 (11/23P)

Search

Copyright © Cmd 명령어 18.226.214.91