리눅스마스터2급강좌 :쉘의 종류와 선택
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 3,433 조회
- 0 추천
- 목록
본문
리눅스마스터2급강좌 :쉘의 종류와 선택
쉘의 종류
쉘은 운영체제의 일부이면서 커널과 독립된 프로그램이기 때문에 각각의 특성을 가진 여러 가지 쉘들이 있으며, 사용자가 원하는 쉘을 선택하여 사용할 수 있다.
/etc/shells 파일을 열어 보면 현재 사용할 수 있는 쉘들의 경로가 설정되어 있다.
|
|
|
| # cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/ksh |
|
|
|
|
① bourne 쉘 계열의 쉘
이름 | 개발자 | 개발연도 | 특징 |
sh (bourne shell) | Steven Bourne | 1979년 | 가장 기본적인 쉘로 유닉스의 초기부터 사용되어 온 쉘이다.
스크립트를 지원한다. |
ksh (korn shell)
| Dave Korn | 1986년 | 본 쉘을 확장한 쉘이다.
본 쉘의 명령어를 모두 인식하며, 명령어 히스토리(history) 기능과 엘리어스(alias), 작업 제어 등의 기능이 추가되었다.
일반적으로 유닉스에서 가장 많이 사용되는 쉘이다.
명령행 편집기능을 제공한다. |
bash (Bourne Again Shell) | Brian Fox 외 | 1989년 | 리눅스에서 가장 많이 사용되는 쉘이다.
C 쉘과 콘 쉘의 장점을 결합하여 작성되었으며, Bourne 쉘 문법의 명령어 셋을 제공하여 Bourne Shell과 호환되는 쉘로 GNU 프로젝트에 의해 만들어지고 배포된다.
명령행 편집기능을 제공한다. |
② C 쉘 계열의 쉘
이름 | 개발자 | 개발연도 | 특징 |
csh (C Shell) | Bill Joy | 1981년 | 명령행 편집기능을 제공하지 않는다.
C 언어 위주의 쉘로 처음 작성되었을 때에는 본 쉘이 가지고 있지 못한 기능들(작업제어, 명령어 히스토리등)을 가지고 있었기 때문에 많이 사용되었다. |
tcsh (TC Shell) | Ken Greer 외 | 1982년 | csh의 기능을 강화한 쉘이다.
확장 C Shell. 명령행 편집 기능을 제공한다.
|
|
|
|
|
Zsh와 ash 쉘은 현재 CentOS, SULinux, Asianux 등의 레드햇 계열의 리눅스 배포판에서는 기본으로 사용되지 않는다.
다음에 이들에 대해서 알아본다.
∙Zsh 쉘Zsh는 로그인쉘 및 쉘스크립트 명령어 프로세서로서 이용 가능한 유닉스 쉘이다.
표준 쉘들 중에서 zsh는 ksh와 가장 유사하지만 많은 개선들을 포함한다.
zsh는 명령행 편집, 내장 스펠링 수정, history 등의 기능을 가진다(출처: zsh man 페이지 <http://linux.die.net/man/1/zsh>).
∙ash 쉘ash는 추가적인 기능들이 없이 본 쉘에 가장 부합하는 쉘이다.
본 쉘은 상업적인 유닉스 시스템들에서 사용가능하므로, ash는 쉘 스크립트가 본 쉘에 잘 부합하는지 시험할 때 유용하다.
또한 이것은 다른 sh-호환 쉘에 비해 적은 메모리와 공간을 요구한다.(출처: <http://www.linuxfromscratch.org/blfs/view/6.1/postlfs/shells.html>) |
|
|
|
|
③ 로그인 쉘과 서브쉘리눅스에서 제공하는 쉘은 크게 로그인 쉘(login shell, 또는 기본사용쉘이라고도 한다)과 서브쉘(sub shell, 현재 사용중인 쉘이라고도 한다)로 나눌 수 있다.
로그인 쉘은 여러 가지 사용 가능한 쉘 중에서 한 가지를 지정하여 로그인시에 기본으로 지정하여 사용되는 쉘을 말한다.
사용자를 생성하면 “/etc/passwd” 파일에 그 정보가 등록되는데, 이 파일에 로그인 쉘이 설정된다.
|
|
|
| # cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync ...중략... distcache:x:94:94:Distcache:/:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin mysql:x:27:27::/home/mysql:/bin/bash sulinuxer:x:500:500::/home/sulinuxer:/bin/bash |
|
|
|
|
이에 대해 서브쉘은 로그인 쉘과 다르게 사용자가 필요에 따라 그때그때 임시적으로 변경하여 사용하는, 즉 현재 일시적으로 사용하는 쉘을 말한다.
왜냐하면 쉘마다 저마다의 기능과 사용법이 다르기 때문에 필요에 따라 잠시 다른 쉘을 사용할 때 사용한다.
관련자료
-
이전
-
다음