출처: 네이버 카페

사용자는 처음에 UNIX 서버에 접속하여 로그인을 하게 되면 기본적인 환경을 가지게 된다. 여기에다 사용자는 자기에게 맞는 환경을 재 설정할 수 있다. 사용자 계정에 따라 사용하는 쉘이 다르다면 각각의 쉘에 따른 환경 설정 파일은 서로 다르다(아래 표 참조)

먼저 /etc/profile 파일이 먼저 수행이 되고 각 사용자의 로그인 쉘에 따라 해당 환경 설정 파일이 실행된다.


 shell 환경 파일 

 C shell  $HOME/.cshrc, $HOME/.login, /etc/login 

 Bourne shell $HOME/.profile 

 Korn shell $HOME/.profile, $HOME/.kshrc 




다음은 /.cshrc file의 예이다.

  # more  .cshrc
  # @(#)cshrc 1.11 89/11/29 SMI
  umask 022
  setenv         LANG   ko
  stty cs8 -istrip -parenb
  setenv         TERM   vt220
  setenv EXINIT 'set  showmode  nu'
  set filec
  set path=(/bin /sbin /usr/sbin /usr/openwin/bin /usr/bin /data1/opt/SUNWspro/bin 
            /usr/ucb /data1/netscape /etc .)
  if ( $?prompt ) then
        set history=32
  endif
  alias a alias
  a h history 
  a cd 'cd \!*;set rompt="[`hostname`:`pwd`]" '
  cd
  a rm 'rm -i'


시스템에 로그인을 하게 되면 UNIX는 사용자에게 하나의 터미널을 열어준다. 이때 오픈(Open)이 된 각각의 터미널에 대해 환경을 맞추어 주어야 한다. 예를 들면 백 스페이스키 등의 설정을 의미한다.


  # tty ; 자신의 터미널 번호 확인
  /dev/pts/5 ; 터미널 5번으로 오픈이 되었다.


터미널에 입력이 되었을 때 특수하게 해석이 되는 문자가 있는데 이를 메타문자(meta character)라고 부르며, 다음과 같이 'stty' 명령을 통해 확인 및 setting이 가능하다.

이들 문자들은 서로 다른 터미널 유형에서 UNIX의 표준이 되는 코드를 사용하고 있기 때문에 해당 결과는 서로 같다


  # stty -a
  speed 38400 baud;
  행 = 25; 열 = 86; y픽셀 = 0개; x픽셀 = 0개;
  eucw 1:0:0:0, scrw 1:0:0:0
  intr = ^c; quit = ^|; erase = ^h; kill = ^u;
  eof = ^d; eol = ; eol2 = ; swtch = ;
  start = ^q; stop = ^s; susp = ^z; dsusp = ^y;
  rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;
  -parenb -parodd cs8 -cstopb -hupcl cread -clocal -loblk -crtscts -crtsxoff -parext
  -ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc
  ixon -ixany -ixoff imaxbel
  isig icanon -xcase echo echoe echok -echonl -noflsh
  -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten
  opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3


/ ^ 기호는 Control 키를 의미한다. 즉, ^u는 Control 키와 영문자 u를 동시에 같이 누르라는 뜻이다.

위에서 나온 것처럼 UNIX서버는 표준 코드 값을 지원한다. 예를 들면, 프로그램을 중단시키는 intr(interrupt)라는 코드가 있는데, 프로그램을 즉각 중단 시키고 싶으면 intr코드를 보내면 되는데 이를 로 설정해 놓았다. 즉, 다음은 많이 사용이 되는 코드들을 나열한 것이다.



 Option 의     미

 erase 한 문자를 지움

 eof 입력의 끝

 kill 현재의 줄을 지움

 intr 작업을 종료함(코어 덤프 없이)

 werase 마지막 단어를 지움

 quit 작업을 종료함(코어 덤프 하고)

 rprnt 그 줄을 다시 출력함

 stop 터미널 출력을 정지/다시 시작함

 flush 대기중인 입력을 무시하고 그 줄을 다시 출력함

 susp 추후 수행하기 위해 프로세스를 일시 정지 시킴

 lnext 다음 문자를 특수문자로 처리하지 않음




프로세스의 종료
프로그램을 수행할 때 해당 작업이 종료하기 이전에 프로그램을 종료할 경우가 있다. 이러한 경우 intr 코드를 발생하면 되는데 UNIX 시스템에서는 Control-C 키를 제공한다. 항상 적용이 되는 것은 아니나 거의 대부분이 적용된다.

이 코드는

  # sleep 100 ; 100초 동안 일시 정지
  ^C      ; sleep 프로세스를 강제로 종료
  #


출력의 정지: Control-S/Control-Q
화면에 출력이 되는 내용이 한 화면을 지나 올라가 버리면 해당 내용을 볼 수가 없다. 이때 화면을 일시정지 하게끔 하는 것이 Control-S를 입력하면 되고, 이를 해제 하기 위해서는 Control-Q 또는 Control-S를 누르면 된다. 이러한 제어 문자들을 XON/XOFF 프로토콜이라 부른다.

어떤 텍스트 파일을 'cat' 명령을 사용하여 내용을 화면에 출력할 때 그 내용이 화면으로 넘어가 버린다. 이럴 때 사용하면 좋은 효과를 볼 수 있다.


입력의 끝 : Control-D
키보드로부터의 입력이 종결되었음을 알려주기 위해서는 Control-D키를 사용한다. 즉 "입력의 끝"을 의미한다. 또는 로그 아웃을 할 때에도 사용 가능하다. 이 값을 eof(End Of File)이라고 한다.

  # mailx root
  Subject: how are you?
  I'm superuser.
  Have a nice day!
  ^D
  #


기타
erase는 ^H로 setting이 되는데 Back space키를 setting하는 것이고, 현재 설정되어 있는 값들을 기본 값을 되돌리고 싶다면 'stty sane'라고 입력하면 된다.

  # stty  sane
 

Posted by ilus


,