셸
셸이란 ? 사용자와 리눅스 커널 사이에서 중간자 역할을 수행한다.
사용자 <------ 셸 ------> 리눅스 커널
1. 셸의 기능
1) 명령어 해석기 기능
- 사용자와 커널 사이에서 명령을 해석하는 해석기, 번역기 기능
- 사용자가 로그인하면 셸이 자동으로 실행되어 사용자가 명령하기를 기다림 (로그인 셸)
- 로그인 셸은 /etc/passwd 파일에 사용자별로 지정
- 프롬프트: 셸이 사용자의 명령을 기다리고 있음을 나타내는 표시
2) 프로그래밍 기능
- 셸은 자체 내에 프로그래밍 기능이 있어 반복적으로 수행하는 작업을 하나의 프로그램으로 작성 가능
- 셸 프로그램을 셸 스크립트 라고 함
3) 사용자 환경 설정 기능
- 사용자 환경을 설정할 수 있도록 초기화 파일 기능을 제공
- 초기화 파일에는 명령을 찾아오는 경로를 설정하거나, 파일과 디렉터리를 새로 생성할 때 기본 권한을 설정하거나, 다양한 환경 변수 등을 설정
2. 셸의 종류
: 본 셸 , C셸, 콘 셸, 배시 셸 , 대시 셸
1) 본 셸 : 최초의 셸은 유닉스 V7에 처음 등장한 본 셸이다. 초기에 본 셸은 단순하고 처리 속도가 빨라서 많이 사용되었으며, 지금도 시스템 관리 작업을 수행하는 많은 셸 스크립트는 본 셸을 기반으로 한다. 본 셸의 명령 이름은 sh 이다. 그러나 본 셸은 히스토리, 에일리어스, 작업 제어 등 사용자 편의를 위한 기능을 다양하게 제공하지 못해서 이후에 다른 셸들이 등장한다.
2) C 셸 : 본 셸의 기능을 확장한 것으로, 본 셸에는 없던 에일리어스나 히스토리 같은 사용자 편의 기능을 포함한다.
셸 스크립트 작성을 위한 구문 형식이 C언어와 같아 C셸이라는 이름을 가지게 되었다. C셸의 명령 이름은 csh 이다.
C셸은 다양한 사용자 편의 기능을 구현하기 위해 크기가 커지고 처리 속도도 느리다는 단점이 있지만 편리한 기능 덕분에 일반 사용자들이 많이 사용했다. 하지만 지금은 배시셸에 밀리는 중이다.
3) 콘 셸 : 1980년대 주중반 AT&T 벨 연구소의 데이비드 콘이 콘 셸을 개발했다. 유닉스 SVR4에 포함되어 발표되었고, C셸과 달리 본 셸과의 호환성을 유지할 뿐만 아니라 히스토리, 에일리어스 기능 등 C셸의 특징도 모두 제공하면서 처리 속도도 빠르다. 콘 셸의 명령은 ksh 이다. 우분투에서 별도로 콘 셸을 설치하여 사용할 수 있다.
4) 배시 셸 : 본 셸을 기반으로 개발된 셸로서 1988년 브레인 폭스가 개발했다. 배시 셸은 본 셸과 호환성을 유지하면서 C셸 , 콘셸의 편리한 기능도 포함하고 있다. 배시 셸의 명령 이름은 bash 이다. 배시 셸의 모든 버전은 GPL 라이선스에 의거하여 자유롭게 사용할 수 있으며, 공개 소프트웨어로서 리눅스의 기본 셸로 제공되어 리눅스 셸로도 많이 알려졌다.
5) 대시 셸: 본 셸을 기반으로 개발된 셸로서 포직스 표준을 준수하면서 보다 작은 크기로 개발되었다. 대시 셸은 암키스트 셸의 NetBSD 버전으로, 1997년 초에 허버트 슈가 리눅스에 이식하고 2002년에 dash 로 이름이 바꼈다. 우분투 6.10 버전부터 본 셸 대신 대시 셸을 시스템 기본 셸로 사용하고 있다. 대시 셸은 기존의 셸에 비해 부팅 시 셸 스크립트를 빠르게 실행시키고 파일 크기가 작으며 신뢰성이 높기 때문이다. 우분투에서 /bin/sh 를 확인해보면 dash 는 심벌릭 링크가 되어 있다.
'리눅스프로그래밍' 카테고리의 다른 글
우분투 리눅스 - 입출력 방향 바꾸기 (0) | 2020.05.08 |
---|---|
우분투 리눅스 - 셸 기본 사용 방법 (0) | 2020.05.08 |
우분투 리눅스 - vi 환경 설정 (0) | 2020.04.26 |
vi - 사용법 (복사, 붙이기, 버퍼,검색, 바꾸기, 기타 유용키) (0) | 2020.04.24 |
vi - 문서 편집하기 (입력 , 이동 , 수정 , 삭제 , 명령 취소) (0) | 2020.04.24 |