정의
shell이란 쉽게 말해서 운영체제와 사용자 사이를 연결해주는 유틸리티 프로그램이라고 볼 수 있다. 사용자가 명령어를 입력하면 그것을 기계어로 번역하여 운영체제의 커널로 전달해준다.
종류
sh - Bourne Shell
프롬프트 : $
개발자 Steave Bourne의 이름을 딴 unix shell의 오리지널이다. 초기 버전인 만큼 모든 unix 계열 운영체제에서 사용할 수 있지만 미흡한 부분이 상당히 많다. 상호대화형 방식조차 지원되지 않는다.
csh - C Shell
프롬프트: %
1978년 William Nelson Joy가 개발한 csh은 C언어를 전신으로 개발되어 sh 보다 쉽고 많은 기능을 제공한다. c언어와 비슷한 형식을 갖고 있으며 sh에 비해 처리속도는 느렸지만 접근성이 쉬워 많이 사용되었다고한다.
ksh - Korn Shell
프롬프트: $
1983년 AT&T 사의 David Korn이 Bourne shell을 기반으로 개발한 ksh은 현 unix 계열 운영체제에서 가장 많이 사용된다. csh에 존재하는 많은 기능을 갖고 있으면서 처리속도도 더 빠르다.
bash - Bourne Again Shell
프롬프트: $
1989년 개발자 Brian Fox가 bourne shell을 기반으로 개발한 이 shell은 현재 linux의 표준으로 사용되고 있다. 그렇기 때문에 대부분의 linux 계열 운영체제 사용자가 터미널에서 bash를 사용한다.
bash에는 alias, history, 자동완성(tab)등 명가지 효율적인 기능들이 존재한다.
zsh - The Z Shell
프롬프트: %
필자가 현재 사용하고 있는 shell로 bash와 ksh에 존재하는 많은 기능들을 갖고있다. 기능에 대한 내용은 zsh 문서에서 확인할 수 있으며 zsh만 갖고있는 독특한 기능도 확인할 수 있다.
주의
사용자의 명령어를 운영체제에 여과없이 전달해주는 기능인 만큼 root(최상위) 권한으로 실행하는 행위는 철저하게 계산된 상황에서만 이루어져야 한다. 아무런 생각없이 최상위 권한으로 shell 명령어를 실행했다간 운영체제에 무슨 일이 일어날지 예측할 수 없기 때문이다.
참고
'프로그래밍 > doodle' 카테고리의 다른 글
Bastion Host 란? (0) | 2021.02.12 |
---|---|
Mysql character set 과 collation (0) | 2020.05.17 |
인코딩이란? (0) | 2020.05.16 |
Test Fixture (0) | 2019.07.30 |