셸(컴퓨터)
최근 수정 시각: ()
- [ 펼치기 · 접기 ]
- 기반 학문하드웨어 구성기술기계어 · 어셈블리어 · 바이오스 · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 함수형 프로그래밍 · 에이전트 지향 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · LinuxBoot · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속연구 및 기타논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영체제(멀티태스킹 · 프로세스 스케줄링 · 데드락 · 식사하는 철학자 문제 · 뮤텍스 · 세마포어 · 인터럽트) · 데이터베이스 · 컴퓨터 언어 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론 · 어휘 분석 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 마크업 언어 · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크(네트워크 포트) · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리(기계 번역 · 음성인식) · 버전 (버전 관리 시스템) · 난수생성 · 이차 표기법 · 놀람 최소화 원칙 · 프레임워크 · 라이브러리 · 모듈 · API · ABI · 이진 탐색
1. 개요 [편집]
2. 특징 [편집]
사용자가 운영체제와 상호 작용 할 수 있도록 하는 명령 줄 인터페이스며, 셸은 사용자의 입력을 읽고 명령을 해석하고 실행한다. 또한 사용자가 환경을 사용자 지정하고 스크립트를 사용하여 작업을 자동화하는 방법을 제공한다. |다양한 유형의 셸이 있고 각각 고유한 명령과 기능이 있다.
3. 유닉스 계열 운영체제의 셸 [편집]
최초의 셸은 벨 연구소에서 스티븐 본이 개발한 본 셸(Bourne shell, sh)이며, 이를 개선한 본 어게인 셸(Bash), C 셸(csh), 콘셸(ksh), Z shell 등이 만들어졌다.[1]
최초의 셸이 언제 어디서 누구에 의해 만들어진 무엇인가에 대해서는 알 수 없으나, 본격적으로 최초의 셸다운 유닉스 셸로 알려진 것은 1979년 말 V7 유닉스(AT&T의 7번째 유닉스)에 탑재된 셸이다. 제작자인 Stephan Bourne의 이름을 따 본셸이라 부르며, Algol로 짜여젔다. 이 셸은 단순하고 속도가 빨랐으나, 어디까지나 귀중하신 컴퓨터님의 작업을 인간이 느리게 하지 않기 위한 목적만을 가지고 있어서, 대단히 불친절했다. 주로 시스템 관리 작업의 자동화 이외의 일을 하기는 대단한 인내심과 컴퓨터님에 대한 복종심 없이는 거의 불가능하였다.
그래서 사용자 친화적으로 나온 것이 바로 Bash이다. 자유 소프트웨어 재단의 Brian Fox가 개발하였으며, 자유 소프트웨어 재단의 물건답게 주요 리눅스 시스템의 기본 셸로 쓰이고 있다. 리눅스를 메인으로 사용하거나 셸에 더 많은 기능이 필요한 사람들은 Z shell[2]를 많이 사용하는 편이다.
Windows 7 Service Pack 1 이후 환경에서는 Git을 설치하면 같이 설치되는 Git Bash를 통하여 Bash Shell을 사용할 수 있으며, 윈도우 10에서는 Fall Creaters Update 이후 버전부터 WSL을 통해 Bash Shell을 사용할 수 있다. MSYS2라는 것을 사용할 수도 있다. 기존의 Bash 명령어는 물론 윈도우 영역과의 통신도 가능하다.
1970년대 말에는 다른 셸들도 등장하였는데, 캘리포니아의 버클리 대학교의 Bill Joy가 C 언어로 C 셸을 개발하였다. 그러나 기본적으로 C 셸은 대형 컴퓨터용이었으며, Bourne Shell보다도 느렸기 때문에 속도 측면에서 그다지 좋지 못한 평가를 받았다.
AT&T의 David Korn은 1988년 유닉스 SVR4 배포판에 콘셸을 탑재하여 처음으로 배포한다. Paul Falsted는 Z 셸을 만들었다.
macOS의 GUI 셸은 Finder이며, macOS Catalina부터 기본 셸이 Bash에서 Z shell로 변경되었다. 그러나 zsh로 변경되었어도 Bash 역시 남아있다. 그리고 macOS에는 공식적으로 Bash 5.1.8 버전이 최신인 현재까지도 2007년에 릴리즈된 Bash 3.2 버전이 탑재되고 있다.
3.1. 셸 스크립트 [편집]
3.2. 주요 셸 목록 [편집]
4. 윈도우의 셸 [편집]
윈도우에는 Windows 탐색기(EXPLORER.EXE)라는 GUI 환경의 셸이 있다. 작업 표시줄[3]과 시작 메뉴, 바탕화면 및 아이콘, 파일 탐색기를 제공한다.
CLI 환경으로 명령 프롬프트, 파워셸[4]이 있다. 또한 리눅스 서브시스템의 모든 프로그램은 Bash를 거쳐서 돌아가기 때문에 엄밀하게 따지면 Bash만이 리눅스 서브시스템의 유일한 셸이라고 할 수 있다. 다만 이들은 일단 운영체제가 기동되고 GUI환경의 셸(Windows 탐색기)가 실행된 이후 일종의 응용 프로그램처럼 실행된다. 윈도우 3.0과 3.1은 프로그램 관리자[5]라는 셸을 사용한다. 윈도우 2.1까지는 MS-DOS 실행 파일을 사용한다.
윈도우 터미널은 셸이 아닌 터미널 에뮬레이터이다. 이게 무슨 차이냐면, shell 자체는 GUI도 없는 프로그램이나, 에뮬레이터는 직접 타이핑을 하거나 할 수 있는 GUI 응용 프로그램이다. 그래서 이걸 좀 더 편한 것으로 바꿀 수 있다. Windows Terminal이 대표적.
CLI 환경으로 명령 프롬프트, 파워셸[4]이 있다. 또한 리눅스 서브시스템의 모든 프로그램은 Bash를 거쳐서 돌아가기 때문에 엄밀하게 따지면 Bash만이 리눅스 서브시스템의 유일한 셸이라고 할 수 있다. 다만 이들은 일단 운영체제가 기동되고 GUI환경의 셸(Windows 탐색기)가 실행된 이후 일종의 응용 프로그램처럼 실행된다. 윈도우 3.0과 3.1은 프로그램 관리자[5]라는 셸을 사용한다. 윈도우 2.1까지는 MS-DOS 실행 파일을 사용한다.
윈도우 터미널은 셸이 아닌 터미널 에뮬레이터이다. 이게 무슨 차이냐면, shell 자체는 GUI도 없는 프로그램이나, 에뮬레이터는 직접 타이핑을 하거나 할 수 있는 GUI 응용 프로그램이다. 그래서 이걸 좀 더 편한 것으로 바꿀 수 있다. Windows Terminal이 대표적.
4.1. 일괄 프로그램(배치 파일) [편집]
4.2. cmd 대체 프로그램 [편집]
5. 기타 운영체제 [편집]
- MS-DOS - COMMAND.COM이 셸 역할을 수행한다. 윈도우 NT 계열의 명령 프롬프트(cmd.exe)는 COMMAND.COM으로부터 명령어 형식을 비롯하여 많은 것을 물려받았다. 단, COMMAND.COM과 cmd.exe 사이의 직접적인 관련은 없고, 단지 정신적인 후속작이라고 할 수 있다. 참고로 현재 cmd.exe는 후속 소프트웨어인 PowerShell로 대체되고 있다. MS-DOS 6.0까지는 MS-DOS 셸이라는 그래픽 셸도 있다.
Contents are available under the CC BY-NC-SA 2.0 KR; There could be exceptions if specified or metioned.
개인정보 처리방침
임시조치 및 기타 문의: [email protected]
떡밥위키 후원하기
개인정보 처리방침
임시조치 및 기타 문의: [email protected]
떡밥위키 후원하기