카테고리 없음

[shell] shell의 역할

extra_ 2023. 1. 24. 21:07

커널/ 유틸리티

  • 커널 : 유닉스 시스템의 심장
  • 유틸리티 : 모든 유닉스 커맨드

 

 

로그인 셸

  • 로그인을 요청할 때 마다 getty프로그램을 시작한다.
  • ssh나 telnet, rlogin등을 사용할 때는 원격요청을 지원하며 가상터미널이 할당된다.
  • 로그인을 하면 /etc/passwd 디렉터리를 확인하게 된다.
  • 계정마다 표준(init)이 바뀌도록 설정 할 수 있다. (/bin/sh, /bin/ksh, /bin/bash 등) 
  • who 커맨드를 사용해서 시스템에 로그인 했는지 확인할 수 있다.

 

셸에 커맨드를 입력

  • 특정 프로그램을 호출하면 해당 프로그램을 찾을 때 까지 PATH의 모든 디렉터리를 단계별로 실행한다.
  • 프로그램을 발견하면 shell은 shell자체를 복사하고 (subshell)을 만들고 커널에 서브셸을 지정된 프로그램으로 바꾸도록 요청한다.
  • 프로그램이 끝날때 까지 로그인 셸은 잠자는 상태로 변경된다.

 

 

- 셸은 단지 프로그램이다.

- 누구나 자신만의 셸을 만들 수 있다.

 


 

셸의 책임

  1. 프로그램 실행
  2. 변수와 파일이름 대체
  3. I/O redirection
  4. pipeline connect
  5. env control
  6. interpreter, programming language

 

프로그램 실행

  • 셸은 공백을 보지 못한다.
  • 커맨드를 입력하면 내장커맨드인지 개별 프로그램인지 확인하고 실행한다.

 

Redirection

 

 

Pipeline