DevOps/Shell

zsh vs bash

게임이 더 좋아 2023. 3. 1. 15:09
반응형
728x170

기본적으로 Unix 계열에선 bash

Mac 계열에서는 zsh을 사용한다.

그렇기 때문에 기존에 터미널에서 작동하는 명령어가 그대로 실행되기를 기대하는 것은 어렵다.

그래서 차이를 알아보려고 한다.

차이를 알아보자


탄생

중요하지 않지만 참고는 하자.

더군다나 zsh은 학생이 만듦

 

bash

Later in 1989, Brian Fox created the Bash shell for the GNU Project as a viable software alternative for the Bourne shell. Bash introduced significant improvements over its predecessor. Most prominent of these improvements was its capacity as a scripting language.Users of bash could write their own programs for automating tasks.

These “shell” scripts were executable by typing the file name (typically with a .sh extension). For the most part, bash can support the majority of Bourne and C shell’s features in addition to its own unique additions including command-line editing and integer calculations.

 

zsh 

Shortly after Bash emerged, a student at Princeton University created the Z shell or “zsh.” Hand in hand with this operating shell is a community-based, online platform called Oh My Zsh which features major extensions such as plug-ins and themes for zsh. As of June 2019, macOS Catalina announced that they would be adopting zsh as their default shell in replacement of bash—a major “win” for zsh enthusiasts.

 


비교 및 기능

 

1. 문법

우선 zsh와 bash는 문법부터 다르다.

zsh가 복잡한 명령들을 하기 더 쉬운 구조를 가지고 있다.

다만 bash는 더 간단하고 쉬운 형태를 띈다.

 

2. Tab

zsh에서 조금 더 많은 기능들을 가지고 있다.

다시 말하자면 tab을 눌렀을 때, 완성도가 더 높다. 그것이 특징이다.

솔직히 더 낫다고 하기에도 뭐하다. 그냥 UX 측면에서 조금 더 낫다는 기분이지 다른 것은 없다.

 

3. 부팅 시간

zsh가 더 유용하다고 생각되지만 역시 작동시간 역시 길다. 

역으로 말하자면 bash가 가볍고 빠르다고 생각할 수 있다. 

 

4. 작업 제어

역시나 zsh가 더 많은 기능을 가지고 있다.

작업(job)에 대한 ID를 이용한다는 측면에서 더 좋다. bash는 process ID를 이용해 제어한다.

 

5. 사용하는 OS

UNIX 계열은 거의다 bash를 사용

Mac은 zsh을 사용

Windows는 powerShell 또는 bash를 사용

 

6. 커스터마이징

zsh가 더 커스터마이징하기 쉬움, 사용성 측면에서 높음

 

7. z-Command

z 커맨드를 이용하여 디렉토리를 자동으로 찾아주는 기능을 제공한다.

즉, 아래와 같은 디렉토리에서 작업했다면

 ~/src/2018/projects/newProject

아래 명령어만 치면 바로 디렉토리에서 작업하는 것과 같은 의미다.

z newProject

 

8. Auto-completion(zsh, bash)

역시 자동완성 기능 중 하나다.

다시 말하면 command를 완성시켜준다.

명령어 입력 중 tab을 치면 자동완성을 시켜준다.

 

9. 자동 교정(zsh, bash)

zsh에서는 파일 위치가 잘못 지정해서 설정하는 경우 자동으로 교정한다.

bash에서는 자동으로 교정이 되진 않지만 몇가지 명령어로 자동 교정되게 바꿀 수 있다.

shopt 명령어인 cdspell 과 dirspell을 사용하면 된다.

 

10. 색 커스텀(zsh, bash)

zsh에서는 "directory"에 색을 추가하는 것은 물론, bold체로도 바꿀 수 있다.

특히 디렉토리나 파일명에 색을 씌울 수 있다는 것이 엄청 장점이다.

역시 터미널에서 세팅하면 바로 적용가능한 부분이다.

 

다만 bash에선 다르게 적용된다.

LS_color 를 이용하여 반영된다는 것이 다른 점이다.

 

 


 

추가 내용

zsh 커뮤니티 : Oh My Zsh

 

zsh 또는 bash를 기본 쉘로 지정하는 법(쉘을 지정하기 전에 설치 되어 있어야함)

chsh -s /bin/zsh
chsh -s /bin/bash

 


참고링크

https://sunlightmedia.org/bash-vs-zsh/

반응형
그리드형

'DevOps > Shell' 카테고리의 다른 글

Null Check  (0) 2023.01.01
exit  (0) 2023.01.01
let [command]  (0) 2023.01.01
environment variable  (0) 2022.12.31
Bash, 쉘 스크립트 시작하기  (0) 2022.12.25