bash와 zsh, 입문자는 무엇부터 쓰면 좋을까

터미널을 처음 열면 만나는 '셸'이 무엇인지부터, bash와 zsh가 어떻게 다른지, 현재 셸을 확인하고 바꾸는 방법, 그리고 입문자라면 둘 중 무엇을 먼저 쓰는 게 좋은지 차분히 비교했습니다.

왜 필요한가 · 검색을 하다 보면 어떤 글은 bash 기준으로, 어떤 글은 zsh 기준으로 설명해 혼란스러운데, 그 차이를 처음부터 정리해 두면 헤매는 시간을 줄일 수 있기 때문입니다.

누구에게 · 터미널을 막 열어본 입문자로, '셸을 바꾸라'는 말은 들었지만 무엇을 어떻게 골라야 할지 모르는 사람

읽고 나면 · bash와 zsh의 차이를 이해하고, 현재 셸을 확인·변경하는 방법을 알며, 자신의 상황에서 무엇을 먼저 쓸지 스스로 판단할 수 있습니다.

핵심 요약

  • 셸은 터미널에서 입력한 명령을 받아 실행해 주는 프로그램으로, bash와 zsh는 그 종류입니다.
  • bash는 어디서나 기본으로 깔려 있어 안정적이고 자료가 많으며, zsh는 자동완성·테마·플러그인 면에서 편의 기능이 풍부합니다.
  • 현재 셸은 echo $SHELL 로 확인하고 chsh 로 기본 셸을 바꿀 수 있으며, 입문 단계에서는 자료가 많은 bash로 시작하기를 권합니다.

터미널을 처음 열면 검은 화면에 글자만 깜빡입니다. 그런데 자료를 찾다 보면 누군가는 bash를 말하고, 누군가는 zsh를 말합니다. 둘 다 셸이라는데, 무엇이 다르고 입문자는 어느 쪽을 써야 할까요. 이 질문에 답하려면 먼저 ‘셸’이라는 단어부터 풀어야 합니다.

셸이란 무엇인가

셸(shell)은 우리가 입력한 명령을 받아 운영체제에 전달하고, 그 결과를 다시 보여 주는 프로그램입니다. 터미널이 명령을 입력하고 출력을 보는 ‘창’이라면, 셸은 그 안에서 실제로 명령을 해석하는 ‘통역사’에 가깝습니다.

그래서 같은 터미널 창이라도 어떤 셸이 동작하느냐에 따라 자동완성 방식이나 프롬프트 모양이 조금씩 달라집니다. bash와 zsh는 바로 이 통역사의 두 가지 종류입니다. 한 가지 안심할 점은, 셸을 바꿔도 ls·cd·cp 같은 기본 명령은 시스템 명령이라 그대로 쓸 수 있다는 것입니다. 바뀌는 것은 통역사의 ‘버릇’이지, 명령 자체가 아닙니다.

bash와 zsh는 어떻게 다른가

기본 제공 여부

bash는 오랫동안 리눅스 배포판의 기본 셸이었습니다. 우분투를 비롯한 많은 환경에서 별도 설치 없이 바로 동작하기 때문에, 인터넷에서 찾는 예제 대부분이 bash를 기준으로 쓰여 있습니다. zsh는 환경에 따라 기본으로 깔려 있기도 하고, 직접 설치해야 하기도 합니다. WSL의 우분투는 보통 bash가 기본입니다.

자동완성과 테마

zsh가 매력적으로 느껴지는 큰 이유는 편의 기능입니다. 명령이나 경로를 입력하다 Tab을 누를 때의 자동완성이 더 똑똑하고, 후보를 화살표로 골라 넣을 수도 있습니다. 또 프롬프트(명령 입력 줄 앞에 보이는 부분)의 모양을 꾸미는 테마 기능도 풍부합니다. bash도 자동완성을 지원하지만, 기본 상태에서는 zsh 쪽이 더 손에 잘 붙는다는 평이 많습니다.

플러그인 생태계

zsh는 플러그인을 더해 기능을 확장하는 생태계가 잘 갖춰져 있습니다. 명령 오타를 바로잡아 주거나, 입력하는 동안 과거 명령을 흐리게 제안해 주는 식의 확장이 대표적입니다. 다만 이런 확장은 설정 파일을 손봐야 하므로, 터미널 자체가 아직 낯선 단계에서는 오히려 진입 장벽이 될 수 있습니다.

설정 파일

두 셸은 설정 파일도 다릅니다. bash는 .bashrc, zsh는 .zshrc 를 읽습니다. 셸을 바꾸면 alias나 환경 변수 같은 개인 설정을 새 파일에 옮겨 적어야 한다는 점을 기억해 두는 것이 좋습니다.

✍️ 운영자 한마디

남들이 zsh에 플러그인을 잔뜩 얹은 화면을 보고 따라 했다가, 정작 기본 동작도 모른 채 설정만 복잡해진 적이 있습니다. 입문 때는 기본 bash로 충분했고, 익숙해진 뒤 천천히 바꿔도 늦지 않더군요.

지금 내 셸을 확인하고 바꾸는 법

현재 셸 확인

지금 어떤 셸을 쓰는지는 다음 명령으로 확인할 수 있습니다. 출력 끝이 /bash 면 bash, /zsh 면 zsh입니다.

echo $SHELL

기본 셸 변경

기본 셸을 바꾸는 명령은 chsh(change shell)입니다. 예를 들어 zsh로 바꾸려면 다음처럼 합니다. 변경은 보통 터미널을 새로 열었을 때 적용됩니다.

chsh -s /bin/zsh

기본 셸을 바꾸기 전에 가볍게 맛만 보고 싶다면, 굳이 chsh 까지 가지 않고 터미널에서 zsh 라고 입력해 잠깐 그 셸로 들어가 볼 수도 있습니다. 마음에 들지 않으면 exit 로 빠져나오면 됩니다.

zsh     # 잠깐 zsh로 들어가 보기
exit    # 원래 셸로 돌아오기

입문자에게는 무엇을 권할까

결론부터 말하면, 입문 단계에서는 bash로 시작하기를 권합니다. 이유는 화려함이 아니라 ‘자료의 양’입니다. 막혔을 때 검색하면 나오는 글, 강의, 답변 대부분이 bash를 전제로 합니다. 같은 문제라도 답을 찾기가 훨씬 수월합니다.

zsh는 터미널 작업이 어느 정도 손에 익은 뒤에 시도해도 늦지 않습니다. 그때쯤이면 자동완성이나 테마 같은 편의 기능의 가치가 더 분명하게 느껴지고, 설정을 만지는 일도 덜 부담스러워집니다. 셸을 바꾸는 일은 언제든 되돌릴 수 있으니, 조급해할 필요가 없습니다.

초보자가 자주 막히는 부분

  • ‘셸을 바꾼다’는 말의 의미를 오해 — 운영체제를 바꾸는 것이 아니라, 명령을 해석하는 프로그램만 바뀝니다. 기본 명령은 그대로 동작합니다.
  • 설정 파일을 혼동 — bash는 .bashrc, zsh는 .zshrc를 씁니다. 셸을 바꾸면 손봐야 할 파일도 달라집니다.
  • 검색 결과가 안 맞아 당황 — zsh를 쓰는데 bash 기준 예제를 그대로 붙여 넣어 오류가 나는 경우가 있습니다. 어느 셸 기준인지 먼저 확인하는 습관이 도움이 됩니다.
  • 처음부터 너무 많이 꾸미기 — 입문 단계에서 테마와 플러그인부터 손대다 설정이 꼬이는 경우가 흔합니다.
  • chsh 후 바로 안 바뀐다고 당황 — 기본 셸 변경은 보통 터미널을 새로 열어야 적용됩니다.

셸 선택 점검 체크리스트

  • echo $SHELL 로 지금 내 셸이 bash인지 zsh인지 확인했다
  • 당장은 자료가 많은 bash로 시작하기로 정했다
  • 셸마다 설정 파일이 다르다(.bashrc / .zshrc)는 점을 안다
  • chsh 로 기본 셸을 바꾸고 되돌릴 수 있음을 안다
  • 나중에 편의 기능이 필요해지면 zsh를 시도해 볼 생각이다

정리

bash와 zsh는 우열을 가리는 관계가 아니라, 쓰임이 조금 다른 두 통역사입니다. 입문 단계에서는 자료가 풍부한 bash로 기초를 다지고, 작업이 손에 익은 뒤 zsh의 편의 기능을 천천히 들여다보는 흐름이 가장 부담이 적습니다. 현재 셸은 echo $SHELL 로 확인하고, 바꾸고 싶을 때는 chsh 로 언제든 조정할 수 있다는 점만 알아 두면 됩니다. 어떤 셸을 쓰든 다음 단계는 같습니다. 설정 파일을 안전하게 다루는 법과, 자주 쓰는 명령을 짧게 줄이는 법을 익히는 것입니다.

자주 묻는 질문

셸을 zsh로 바꾸면 bash로 배운 명령은 못 쓰게 되나요?
대부분 그대로 쓸 수 있습니다. ls, cd, cp 같은 기본 명령은 셸 자체가 아니라 시스템 명령이라 셸을 바꿔도 동일하게 동작합니다. 달라지는 것은 주로 자동완성, 프롬프트 모양, 설정 파일 위치 같은 부분입니다.
꼭 zsh로 갈아타야 하나요?
그렇지 않습니다. bash만으로도 입문 단계에서 필요한 작업은 충분히 할 수 있습니다. zsh는 편의 기능을 더 원할 때 선택하는 것이지, 반드시 거쳐야 하는 단계는 아닙니다.
기본 셸을 바꾸면 되돌릴 수 없나요?
되돌릴 수 있습니다. chsh 로 다시 bash 로 지정하면 원래대로 돌아옵니다. 또 기본 셸을 바꾸지 않고도, 그때그때 터미널에서 zsh 라고 입력해 잠깐만 zsh 를 써 보는 방법도 있습니다.

이 글은 입문자 기준으로 이해하기 쉽게 정리했으며, 내용은 운영 과정에서 순차적으로 보완될 수 있습니다. 환경에 따라 화면이나 명령이 다르게 보일 수 있으니, 막히는 부분이 있으면 isense2021@gmail.com 로 알려주세요.