1. shell이란?
- UNIX 시스템 명령 프로세서.
- 사용자로부터 명령을 받아들이고, 번역하고, 처리를 위해 운영체제에 보냄. 즉, 시스템 kernel을 사용자가 사용할 수 있게 해주는 일종의 interface
- 대부분의 shell은 user가 완전한 언어 컴파일러를 이용하지 않고도 작은 program을 작성할 수 있게 programming language interface를 포함
2. 공통적인 shell의 기능
- 다수의 내장 명령어 제공
- 메타문자 제공
- 입력/출력/오류의 redirection기능 제공
- 파이프라인 기능
- 명령어 대치
- 조건부/무조건부 명령열(seqeunces) 작성
- subshell 생성
- 후면처리(background processing)
- Sehll Script(프로그램)를 작성할 수 있도록 해줌
- 환경변수와 지역변수를 가짐
- 인용(quotin)
- 작업 제어
3. shell의 종류 및 특징
1) Bourne shell(sh)
- 유닉스 시스템의 가장 기본적인 shell.
- 최초의 대중화된 유닉스 shell
- AT&T 벨 연구소의 본(Steve Bourne)이 개발해서 Brourne shell 이라 부름
- 구조적인 문제를 해결할 수 있는 문법 언어를 내부적으로 갖추고 있는 매우 강력한 shell
- 입출력 제어하기 위한 기능과 expression 매칭 기능을 가지고 있음
- 인터랙티브 사용자에 대한 배려가 없다.
- Bourne shell path: /bin/sh /sbin/sh
- 일반적인 유저의 프롬프트는 $
- 루트 유저의 프롬프트는 #
2) C shell(csh)
- C언어 구문에서 파생된 명령셋과 스크립팅 환경을 제공하도록 고안된 초기 유닉스 shell.
- Berkeley에서 만듦
- 작업제어(Job Control)와 알리어스(Alias)를 통해 인터랙티브한 사용을 돕게 됨.
- 기본적인 문법은 C-language와 비슷.
- 사용하기 쉬우나. Bourne shell보다 사이즈가 큼.
- 견고한 쉘 스크립트를 만드는데는 너무 버그가 많았음.
- c shell path : /bin/csh
- 일반적인 유저의 프롬프트는 <hostname> %
- 루트유저의 프롬프트는 <hostname> #
3) Enhanced C shell(tcsh)
- csh 버그 제거하기 위해 만듦
- csh + 커맨드라인 편집기능 추가
- TEXEX형태의 completion기능 추가
- 유닉스 제작업체는 tcsh를 판매하지는 않음
- 일반적인 유저의 프롬프트는
- 루트유저의 프롬프트는
4) Korn shell(ksh)
- 가장 많이 사용하는 유닉스 shell
- AT&T 벨 연구소의 데이비드 콘(David Korn)이 개발
- Bourne shell의 기능에 C shell의 몇몇 유용한 기능을 추가
- Bourne shell로 작성된 스크립트와 프로그램은 Korn shell에서 바로 사용가능.
- 다른 유닉스 쉘과는 달리 이것은 공개용 프로그램이 아님
- 산업체에서 선호
- ksh path: /bin/ksh
- 일반적인 유저의 프롬프트는 $
- 루트 유저의 프롬프트는 #
5) z shell(zsh)
- ksh와 유사. 몇 가지 shell 요소를 조합
6) Bourne again shell(bash)
- 가장 기본적인 shell. sh를 기반. 커맨드 라인 편집기능. 히스토리 리스트, 파일 이름 컴파일 등 제공
'공학속의 배움 > UNIX' 카테고리의 다른 글
ksh 나 bash 에서 프롬프트에 색깔 입히기 (0) | 2011.08.11 |
---|---|
[펌] ksh 정리 (0) | 2011.08.11 |
tail 명령어 사용법 (0) | 2011.08.10 |
head 명령어 사용법 (0) | 2011.08.10 |
[펌] awk 정리 (0) | 2011.08.09 |