- Shell 의 종류
(1) Bourne Shell
이 shell은 구조적 프로그램을 만들 수 있는 프로그램 언어를 내장했고, 특히 입/출력 제어에 강력한 기능을 제공했다. 그러나 이 shell의 프로그램 환경 (비대화식 사용자 환경 : non-interactive user interface)은 매우 훌륭한 반면 대화식 사용자 환경(interactive user interface)은 매우 빈약하여 좀 더 나은 "무엇인가"가 나타날 여지를 남겨 놓았다.
(2) C shell
Bourne shell의 단점인 대화식 사용자 환경을 강화하고 몇 가지 새로운 개념(job control, history, alias등)을 도입한 C-shell을 캘리포니아 대학교 버클리 분교에서 만들었다. 그러나 초기의 C-shell은 많은 결함(bug)이 발견되어 이것을 사용하여 완전한 shell script를 만드는 데는 문제가 있었다. 그래서 많은 사람들이 C-shell의 사용에 주저했으나, 편리한 사용자 환경으로 인해 대화식 사용자 환경은 C-shell을 사용하고 비 대화식 환경(shell program)에는 주로 Bourne shell을 사용하는 기현상이 나타났다.
C Shell의 프로그램의 경우 언어 구조가 C 언어와 유사하기 때문에 이해하기가 쉽다.
(3) TC shell
C Shell의 결함을 고치고 몇 개의 새로운 기능(command line editing, spelling correction, login/logout watching 등)을 추가하여 TC shell(tcsh)이 만들어 졌다. 그러나 대다수의 UNIX시스템 제조업체에서 TC shell을 선택하지 않고 표준 C shell을 기본적으로 탑재했기 때문에 지금까지 비표준 shell로 남아 있다.
(4) Korn Shell
AT&T의 David Korn에게 이러한 혼돈을 정리할 수 있는 idea가 있었고, 그 결과로 Korn shell(ksh)을 만들었다. 즉 Bourne shell의 비 대화식 사용자 환경에 C shell의 훌륭한 대화식 사용자 환경을 덧붙인 것이다. Korn shell은 곧 system V의 일부가 되었지만 나머지 다른 shell들과는 달리 "공짜"가 아니어서 ksh을 사용하려면 AT&T에 사용료를 지불해야 하는 문제가 있었다.
(5) Bourne Again Shell
이 시기에 GNU project에서 Korn shell에 버금가는 기능을 갖는 "공짜" shell이 필요하다는 결정을 하였고, 그 결과 bash(Bourne Again Shell)가 탄생했다. Bash는 Korn shell과 마찬가지로 Bourne shell 에 기초하여 c-shell의 여러기능을 추가했고, Korn shell과는 달리 "공짜"였으므로 급속히 전파되어 현재 새로운 세대의 shell중에서 가장 인기 있는 shell이 되었다.
(6) Z-shell
더 완전한 shell을 향한 끝없는 추구는 지금도 계속되고 있고, 그 결과 Bourne shell에 기초한 또 다른 shell인 Z-shell(zsh)이 나타났다. 이 shell에는 전문가도 정확히 사용하기 힘든 여러 가지의 다양한 기능이 많이 추가되었다.
- Shell 비교
Function |
sh |
csh |
ksh |
bash |
tcsh |
zsh |
Job control |
X |
O |
O |
O |
O |
O |
Aliases |
X |
O |
O |
O |
O |
O |
Command history |
X |
O |
O |
O |
O |
O |
Command line editing |
X |
X |
O |
O |
O |
O |
login/logout watching |
X |
X |
X |
X |
O |
O |
File name completion |
X |
O |
O |
O |
O |
O |
Spelling correction |
X |
X |
X |
X |
O |
O |
Process substitution |
X |
X |
X |
O |
X |
O |
Shell scripts |
O |
O |
O |
O |
O |
O |
Freely available |
X |
X |
X |
O |
O |
O |
'system > unix' 카테고리의 다른 글
su 명령 사용 허가하기 (0) | 2008.09.17 |
---|---|
bash 환경 설정 (0) | 2008.09.17 |
시스템에서 사용하는 port 1024 개 (0) | 2007.11.09 |
^M문자 없애기 (2) | 2007.11.02 |
[HP-UX] 시스템 명령어 (0) | 2007.10.31 |