맥을 사고 초반에 VSCode를 실행하며  별것도 아닌 오류들이 나올 때,

문득 터미널을 보니 윈도우에선 bash 로 써있던게

zsh로 되어있어 오류의 원인인줄 의심했던 적이 있다 (물론,아니였다)

 

똑같은 명령어를 실행하는것 같은데, 그럼 둘은 무슨 차이일까?

단순한 호기심에 찾아봤고 꽤나 흥미로워 기록해둔다

 

일단 우리가 쓰는 터미널 창을 Shell 이라고 한다

Shell은 무엇이냐? 쉘이 터미널 아냐?! 어떻게 보면 맞는 것 같은데,

핵심은 운영체제(커널Kernel)에게 사용자 언어를 해석해 명령해주는 인터페이스.

즉, 쉘(Shell)이란 운영체제와 사용자를 이어주는 다리라고 보면 된다

 

편집기의 종류가 VScode, Sublime Text, Atom, Brackets 있는 것 처럼

쉘의 종류도 여러가지가 있다

 

 

왼쪽부터 sh, ksh, csh, tcsh, bash, zsh 이며 파헤치다보니 재밌어서 간단히 소개해보겠다

 

Bourne shell

AT&T 벨 연구소의 스티브 본 Steave(Stephen 자료마다 이름다름) bourne 이 개발했다

본 쉘이라고 하며 유닉스 쉘의 기본 쉘이고

초기 쉘이라 미흡한 점이 많다

 

Korn Shell

AT&T사의 데이비드 콘 David Korn 이 개발했다

C shell 씨쉘의 기능을 모두 제공하면서 처리 속도가 빠르다는 장점이 있다

 

C Shell

버클리대 빌 조이가 개발 (vi에디터 개발한 빌 조이)

본 쉘보다 강력하고 C언어를 기반으로 만들어졌다

크기가 커져 속도가 느려졌다는 단점이 크지만 아직 많은 사용자들이 사용 중이다

 

tcsh

C shell 의 버그를 수정하고 기능이 추가되었다

 

Bash (Unix shell)

브라이언 폭스가 개발했다

리눅스,우분투,페도라의 기본 쉘이다

sh 본 쉘 기반이다

콘 쉘 과 달리 무료이면서 본 쉘과 씨쉘의 기능 대부분 사용할 수 있어 둘의 장점만 가져왔다

 

특징으로 alias 앨리어스(명령어 단축) 기능 

히스토리 기능

정수 연산 기능

잡 컨트롤 기능

자동 이름 완성 기능

프롬프트 제어 기능

명령 편집 기능이 있다

 

Z shell

Bash 배시등장 직후 프리스턴대의 학생이 개발했다

본 쉘의 확장버전이다

맥 Mac OS 카탈리나 부터 기본 쉘로 채택되었다

강력한 온라인 커뮤니티 Oh My ZSH 기반으로 250개이상의 다양한 플러그인과 140개 이상의 테마를 지원한다

 

특징으로 맞춤법 검사 로그인, 로그아웃 감시 기능

바이트 코드와 같은 내장 프로그래밍 기능

구문의 과학적 표기법 지원 (자동 완성 기능 말하는 듯)

부동 소수점 산술 및 기타 기능이 있다

 

 

결론은 bash, zsh 둘다 비슷하지만 zsh가 Oh My ZSH 를 통해 좀 더 확장성, 편의성 있게 사용할 수 있다

 

 

참조

생활코딩 Linux - Shell 2 : bash vs zsh

위키피디아 wikipedia 유닉스 Unix_쉘 shell

Bash, Zsh 및 다른 Linux 쉘의 차이점은 무엇입니까?

+ Recent posts