1. 쉘 (Shell) 이란?
ㅇ 영어 뜻으로는,
- 양파 껍질 처럼 껍데기를 의미
ㅇ [화학]
- 例) 원자 껍질(Atomic Shell) 등
ㅇ [컴퓨터]
- 쉘(Shell)은,
. 운영체제 커널과 사용자 간의 인터페이스 역할(다리 역할) 수행하며,
.. 텍스트 기반의 명령어를 입력할 수 있는 프롬프트를 제공하는,
.. `명령어 해석기`를 말함
. 즉, 사용자가 프로그램을 실행하고, 파일을 관리하며, 프로세스를 감독할 수 있게,
.. 도와주는 특수한 인터랙티브(상호작용) 유틸리티 임
- 주요 기능
. 명령어 해석 기능 (Command Line Interpreter) ☞ CLI 참조
.. 사용자가 키보드를 통해 입력시킨, 명령어 라인을 읽고서,
.. 필요한 시스템 기능을 실행시키거나,
.. 이를 다른 프로그램에게 넘겨서 실행시키는,
.. 작은 프로그래밍 환경 처럼 행동하는 명령어 해석기
. 프로그래밍 기능 : 쉘 스크립트 등
. 사용자 환경 설정 기능 : 쉘 변수, 환경 변수 등
2. 운용체제별 쉘
ㅇ [윈도우즈] 윈도우즈 쉘
- 특징
. 윈도우즈용 커맨드 라인 유틸리티(command-line Utilities)들을 실행하고 도움을 주는,
. 커맨드 라인 쉘(command-line Shell)
- 크게, Command Shell(cmd) 과 PowerShell 이 있음
. Command Shell(cmd) : command.exe를 통해 비교적 간단하게 윈도우 명령어들을 실행 가능
. PowerShell : 태스크 위주의 커맨드 라인 쉘 (프로그래밍 가능 스크립트 언어)
.. 강력한 유닉스 쉘에 대응하기 위해 MS社 개발
ㅇ [Unix/Linux] 유닉스 쉘
- 유닉스에서 사실상 쉘은,
. 커널의 일부분이 아니라 일종의 사용자 프로세스로써,
. 개인화된 쉘이 만들어지기도 함
- 시스템 관리자는,
. 사용자 계정을 부여(사용자의 등록)할 때, 해당 사용자에게 적정한 쉘을 선택하여 줌
. 사용자가 로그인을 하면, 정해진 쉘이 자동적으로 실행됨
- 특징 : 간결성, 강력함
3. [Unix/Linux] 쉘 종류
ㅇ Bourne shell (sh)
- 최초의 쉘, 대부분의 쉘이 이로부터 파생
. 위치 : /bin/sh
.. 한편, 리눅스에서, /bin/sh은 실제 쉘로의 포인터 역할을 함
. 프롬프트 : $
. 사용 버젼 : UNIX version 7
. 단점 : 별칭이나 히스토리 등의 기능이 없음
* 1979년 AT&T社 벨연구소의 Stephan Bourne에 의해 만들어짐
ㅇ Korn shell (ksh)
- Bourne 쉘의 상위 버젼. Bourne 쉘 및 C 쉘의 좋은 특성들을 결합.
. 위치 : /bin/ksh
. 프롬프트 : $
. 사용 버전 : System V 계열
* C 프로그래밍 언어에서 제공하는 것과 같은 고급 프로그래밍 기능을 지원
* 1983년 AT&T社 벨연구소의 데이비드 콘(David Korn)이 개발
ㅇ C shell (csh)
- 대화형 작업에 강점을 지님
. 위치 : /bin/csh
. 프롬프트 : %
. 사용 버젼 : 4.3 BSD
* 통상, 대형 검퓨터용 유닉스에서, C 쉘 또는 TC 쉘(tcsh, C 쉘의 확장본)이 보편적으로 사용됨
* 1978년 버클리 대학의 빌 조이가 개발
ㅇ Bourne Again shell (bash)
- Bourne shell 문법을 모두 만족하며, 동시에 C shell 일부분도 포함한, 보다 발전된 쉘
. 위치 : /bin/bash, /bash/sh
.. /bin/sh : 심볼릭 링크로써, 기본 쉘과 연결시켜줌 ☞ 쉘의 확인 및 변경 참조
. 프롬프트 : $
. 사용 버젼 : Linux
* 현재 리눅스에서 기본으로 주어지는 표준 셸
. root 계정 사용자가 직접 사용하는 쉘
* 1989년 Brian Fox에 의해 만들어짐
ㅇ Dash (The Debian Almquist shell)
- 가능한 작게 구현한 셸로써, 빠른 작업 수행이 특징
. 명령어 줄 편집이나 명령어 히스토리 기능을 제공하지 않지만, 실행 속도 빠름
* 현재 데비안 및 우분투 계열의 리눅스에서, 기본 셸
* 2002년에 처음 출시된 쉘
4. [Unix/Linux] 쉘 사용하기
※ ☞ 쉘 활용 참조
- 기본 쉘(로그인 쉘) 선택 및 확인 : 例) echo $SHELL $BASH_VERSION
- 쉘의 기동
- 쉘의 변경 및 확인 : chsh
- 쉘의 명령어 종류
. 단축 명령(에일리어스), 쉘 예약어, 함수, 쉘 내부 명령어, 쉘 외부 명령어
※ ☞ 쉘 스크립트 참조
- 샤방, 쉘 변수 등
※ ☞ 쉘 환경변수 참조
- GROUP, HOSTNAME, PATH, PWD, TMOUT 등