떡밥위키
최근 변경
최근 토론
특수 기능
파일 올리기
작성이 필요한 문서
고립된 문서
고립된 분류
분류가 되지 않은 문서
편집된 지 오래된 문서
내용이 짧은 문서
내용이 긴 문서
차단 내역
RandomPage
라이선스
IP 사용자
216.73.216.107
설정
다크 모드로 전환
로그인
개인정보 처리방침 개정 안내
셸(컴퓨터)
(r1 편집)
닫기
RAW 편집
미리보기
[include(틀:관련 문서, 문서명1=터미널 에뮬레이터, 문서명2=REPL)] [include(틀:컴퓨터공학)] [include(틀:프로그래밍 언어)] [목차] == 개요 == {{{#!syntax powershell echo "Hello, World!" }}} {{{+3 '''shell'''}}} [[운영체제|운영체제]]에서 [[커널(운영체제)|커널]]과 이용자 사이에서 이용자의 명령을 해석하고 그 처리 결과를 반환하는 시스템 프로그램. shell의 사전적 의미인 조개/소라 껍데기에서 따온 말로 내부의 커널(핵)이 있고 사용자는 이를 감싸고 있는 껍데기를 통해 커널에 접근한다는 개념으로 컴퓨터 초창기인 60년대부터 사용된 단어이다. == 특징 == 사용자가 운영체제와 상호 작용 할 수 있도록 하는 명령 줄 인터페이스며, 셸은 사용자의 입력을 읽고 명령을 해석하고 실행한다. 또한 사용자가 환경을 사용자 지정하고 스크립트를 사용하여 작업을 자동화하는 방법을 제공한다. [[https://jkcb.tistory.com/59||다양한 유형의 셸]]이 있고 각각 고유한 명령과 기능이 있다. == [[유닉스]] 계열 운영체제의 셸 == ||<tablewidth=600px><nopad> [[파일:zsh-on-iphone.jpg|width=100%]] || || [[Z shell]]에 [[https://github.com/robbyrussell/oh-my-zsh|Oh My Zsh]]를 적용하고 [[https://github.com/agnoster/agnoster-zsh-theme|Agnoster 테마]]를 사용한 모습 || 최초의 셸은 벨 연구소에서 스티븐 본이 개발한 본 셸(Bourne shell, sh)이며, 이를 개선한 본 어게인 셸(Bash), C 셸(csh), 콘셸(ksh), [[Z shell]] 등이 만들어졌다.[* 리눅스의 모태가 되는 유닉스 최초의 셸은 켄 톰슨(Ken Thompson)이 멀틱스(Multics)셸을 따라 모형화한 sh이다.] 최초의 셸이 언제 어디서 누구에 의해 만들어진 무엇인가에 대해서는 알 수 없으나, 본격적으로 최초의 셸다운 유닉스 셸로 알려진 것은 1979년 말 V7 유닉스(AT&T의 7번째 유닉스)에 탑재된 셸이다. 제작자인 Stephan Bourne의 이름을 따 본셸이라 부르며, Algol로 짜여젔다. 이 셸은 단순하고 속도가 빨랐으나, 어디까지나 '''[[어셈블리어#s-5|귀중하신 컴퓨터님의 작업을 인간이 느리게 하지 않기 위한]]''' 목적만을 가지고 있어서, 대단히 불친절했다. 주로 시스템 관리 작업의 자동화 이외의 일을 하기는 대단한 인내심과 '''컴퓨터님에 대한 복종심''' 없이는 거의 불가능하였다. 그래서 사용자 친화적으로 나온 것이 바로 '''[[Bash]]'''이다. 자유 소프트웨어 재단의 Brian Fox가 개발하였으며, [[자유 소프트웨어 재단]]의 물건답게 주요 [[Linux|리눅스]] 시스템의 기본 셸로 쓰이고 있다. 리눅스를 메인으로 사용하거나 셸에 더 많은 기능이 필요한 사람들은 '''[[Z shell]]'''[* 보통 [[https://github.com/robbyrussell/oh-my-zsh|Oh My Zsh]]와 함께 사용한다.]를 많이 사용하는 편이다. [[Windows 7]] Service Pack 1 이후 환경에서는 [[Git]]을 설치하면 같이 설치되는 Git Bash를 통하여 Bash Shell을 사용할 수 있으며, [[Windows 10|윈도우 10]]에서는 Fall Creaters Update 이후 버전부터 [[유닉스/MS 윈도우|WSL]]을 통해 Bash Shell을 사용할 수 있다. [[https://www.msys2.org|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 버전이 탑재되고 있다. === 셸 스크립트 === [[유닉스]] 계열 운영체제의 많은 셸들이 셸 스크립트를 사용하므로, 이를 사용하여 운영체제의 명령뿐만 아니라 응용 프로그램들을 실행하여 많은 작업을 자동화할 수 있다. [[GUI]]가 각 프로그램들을 조합하여 자동화하기 매우 힘든 데 비해 [[CLI]]의 장점이 빛나는 부분. 유닉스 계열의 운영체제는 본래 확장자를 엄격하게 구분하지 않기에 확장자가 없거나 다르게 되어 있는 셸 스크립트 파일도 많지만, 보통 셸 스크립트의 파일은 .sh라는 확장자를 갖는다. === 주요 셸 목록 === * [[SH#s-6|sh]] * ksh * mksh * pdksh * [[csh]] * tcsh * [[Bash]] * [[Z shell|zsh]] * fish * rc * dash == [[Microsoft Windows|윈도우]]의 셸 == 윈도우에는 [[Windows 탐색기]](EXPLORER.EXE)라는 [[GUI]] 환경의 셸이 있다. 작업 표시줄[* Windows 11에서 분리될 예정이다.]과 시작 메뉴, 바탕화면 및 아이콘, 파일 탐색기를 제공한다. [[CLI]] 환경으로 [[명령 프롬프트]], [[PowerShell|파워셸]][* 명령 프롬프트의 차세대 버전]이 있다. 또한 [[Windows 10/버전/Redstone 2#s-3.7.5|리눅스 서브시스템]]의 모든 프로그램은 Bash를 거쳐서 돌아가기 때문에 엄밀하게 따지면 Bash만이 리눅스 서브시스템의 유일한 셸이라고 할 수 있다. 다만 이들은 일단 운영체제가 기동되고 [[GUI]]환경의 셸([[Windows 탐색기]])가 실행된 이후 일종의 [[응용 프로그램]]처럼 실행된다. 윈도우 3.0과 3.1은 프로그램 관리자[* 윈도우 3.1에서는 '프로그램관리자'라고 붙여 쓴다.]라는 셸을 사용한다. 윈도우 2.1까지는 MS-DOS 실행 파일을 사용한다. [[윈도우 터미널]]은 셸이 아닌 [[터미널#s-2]] 에뮬레이터이다. 이게 무슨 차이냐면, shell 자체는 GUI도 없는 프로그램이나, 에뮬레이터는 직접 타이핑을 하거나 할 수 있는 GUI 응용 프로그램이다. 그래서 이걸 좀 더 편한 것으로 바꿀 수 있다. [[Windows Terminal]]이 대표적. === 일괄 프로그램([[배치 파일]]) === batch file 윈도우 [[명령 프롬프트]]를 위한 [[스크립트 언어]]. [[GUI]]이므로 자동화가 곤란한 [[Windows 탐색기]]를 대신하여 [[CUI]] 환경인 [[명령 프롬프트]]에서 자동화 작업을 수행할 수 있도록 해 준다.[* 물론 CUI 응용 프로그램 한정.] [[확장자]]는 [[MS-DOS]] 시절부터 내려오는 '''.bat'''과 [[명령 프롬프트]] 고유의 '''.cmd'''가 있다. 아직도 .bat 확장자가 널리 쓰인다.[* '''.ps1'''이라는 확장자도 있다. 이는 PowerShell에서 실행된다.] === cmd 대체 프로그램 === [[https://jpsoft.com/products/tcc-cmd-prompt.html|TCC]](Take Command Consol)은 cmd에 상위 호환 되는 shell이다. 더 많은 명령, 내장 함수 등을 이용하여 풍족한 cmd 생활과 batch 생활을 즐기게 도와준다. 유료 프로그램이지만, 무료로 사용할 수 있는 [[https://jpsoft.com/products/tcc-le.html|TCC/LE]] 와 batch 파일만 실행시켜 주는 [[https://jpsoft.com/products/tcc-rt-runtime.html|TCC-RT]]를 이용할 수도 있다.[* 4DOS, NDOS라는 명령을 안다면 당장 써 봐라, 두 번 써봐라.] == 기타 [[운영체제|운영체제]] == * [[MS-DOS]] - [[COMMAND.COM]]이 셸 역할을 수행한다. [[윈도우 NT]] 계열의 [[명령 프롬프트]](cmd.exe)는 COMMAND.COM으로부터 명령어 형식을 비롯하여 많은 것을 물려받았다. 단, COMMAND.COM과 cmd.exe 사이의 직접적인 관련은 없고, 단지 정신적인 후속작이라고 할 수 있다. 참고로 현재 cmd.exe는 후속 소프트웨어인 [[PowerShell]]로 대체되고 있다. MS-DOS 6.0까지는 MS-DOS 셸이라는 그래픽 셸도 있다. [[분류:UI]][[분류:스크립트 언어]] [각주] [include(틀:문서 가져옴/나무위키, title=셸(컴퓨터), version=239, uuid=85446a85-7857-4de1-ae67-5483ce1c0be9)]
요약
문서 편집을
저장
하면 당신은 기여한 내용을
CC BY-NC-SA 2.0 KR
또는
기타 라이선스 (문서에 명시된 경우)
로 배포하고 기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다. 이
동의는 철회할 수 없습니다.
비로그인 상태로 편집합니다. 로그인하지 않은 상태로 문서 편집을 저장하면, 편집 역사에 본인이 사용하는 IP(216.73.216.107) 주소 전체가 영구히 기록됩니다.
저장
사용자
216.73.216.107
IP 사용자
로그인
회원가입
최근 변경
[불러오는 중...]
최근 토론
[불러오는 중...]