macOS 맥의 터미널에서 기본 Shell을 변경하는 방법

Shell은 컴퓨터 운영체제에서 사용되는 인터페이스로, 사용자와 운영체제 사이의 다리 역할을 합니다.

많이 사용되는 운영체제인 윈도우Windows에서는 명령 프롬프트CMD Command Prompt, 파워쉘Windows PowerShell이 이에 해당하고 최근에는 자체 터미널Windows Terminal이 추가되어 이를 통해 Shell을 좀 더 간편하게 사용할 수 있으며, 오늘 다루어볼 맥macOS에서 기본적으로 제공되는 Shell은 Zsh지Shell과 Bash배시 Shell입니다. 기존에는 기본 Shell 이 Bash였지만 macOS Catalina부터는 변경되어 Zsh이 기본입니다.

Shell이라는 것은 명령줄이라고 하는 입력 라인에 다양한 명령어와 옵션을 사용하여 파일과 디렉토리를 관리할 수 있도록 해주며, 프로그램을 실행하고, 프로세스 또한 손쉽게 관리할 수 있도록 해줍니다. Shell은 변수와 함수를 사용하여 스크립트를 작성하고, 반복 작업을 자동화할 수 있는 기능도 제공하여 익숙해지면 상당히 유용합니다.

전술한대로 macOS Catalina부터는 zsh이 기본 Shell로 지정되어 있지만 이전 버전 사용자는 여전히 Bash를 사용하고 있으며 버전을 업그레이드했거나 백업에서 새 으로 전송해 Catalina를 사용하고 있다고 하더라도 여전히 bash를 사용하고 있을 수 있습니다.

일반적인 사용자는 기본 Shell이 bash이거나 zsh이거나 사용성에 별다른 문제가 없어 그대로 사용하면 되지만 만약 현재 정의된 Shell이 아닌 다른 Shell을 기본으로 사용하고 싶은 경우 시스템 설정 또는 터미널 명령으로 언제든 변경해서 사용할 수 있습니다.

아래 설명은 comeinsidebox.com 에서 테스트 및 검증 후 작성 된 내용이지만 이것이 본문의 내용의 정확성이나 신뢰성에 대해 보증을 하는 것은 아니니 단순 하게 참고용으로 확인바랍니다.

튜토리얼 환경: macOS Ventura 13.3.1 (M1)

현재 기본 Shell 확인

우선 현재 기본 shell이 무엇인지 확인하고 싶다면 터미널을 실행 후 제목 표시줄 또는 확인할 수 있는 별도의 명령어를 사용합니다.

터미널-앱-열기
터미널 앱 열기
  1. 스팟 라이트 등 편한 방식으로 터미널을 실행합니다. 맥에서 터미널 여는 방법 알아보기
터미널-제목에서-확인-가능
터미널 제목에서 확인 가능
  1. 터미널 앱을 실행하면 상단 제목 표시줄에 현재 Shell이 표시되어 있습니다. 필자는 기본 Shell 인 zsh로 되어 있는 것을 볼 수있습니다.
echo-명령으로-확인-가능
echo 명령으로 확인 가능

또는 명령줄에 아래 명령을 작성 후 Return 키로 실행하면 -bash 또는 -zsh과 같이 현재 Shell을 결과로 반환합니다.

echo $0

또는 입력 줄에 아무 의미없는 텍스트를 나열하고 실행하면 명령어가 없다는 내용이 반환되면서 현재 Shell이 같이 표시됩니다.

macOS 맥북 파인더 스마트 폴더로 파일 유형과 사용일 입맛대로 정리하기

기본 Shell 변경하는 법

앞서 확인한 기본 Shell은 시스템 설정 또는 터미널을 통해 다른 Shell로 변경할 수 있습니다.

시스템 설정에서 변경하기

시스템-설정-이동
시스템 설정 이동
  1. 시스템 설정 패널을 열기 위해 메뉴막대 좌측 끝의 애플 버튼Apple메뉴 을 클릭해 애플 메뉴를 확장 후 시스템 설정 을 클릭합니다.
사용자-및-그룹의-계정-고급-옵션-클릭
사용자 및 그룹의 계정 고급 옵션 클릭
  1. 시스템 설정 패널이 실행되면 좌측 사이드바의 탭을 사용자 및 그룹 으로 이동 후 하위 항목의 계정 중 Shell을 수정할 계정을 마우스 오른쪽 버튼으로 클릭 합니다.
  2. 고급 옵션 이라는 버블이 표시되면 다시 한번 클릭합니다.
권한-허용-암호-입력
권한 허용 암호 입력
  1. 사용자 및 그룹이(가) 사용자 및 그룹 설정을 잠금 해제하려고 합니다. 허용하려면 암호를 입력하십시오.라는 내용의 창이 팝업되는데 여기서 암호를 입력해야 진행되니 암호 필드에 입력 후 잠금 해제를 클릭합니다.
로그인-셸-선택-또는-선택-버튼-클릭
로그인 셸 선택 또는 선택 버튼 클릭
  1. 대상 계정의 고급 설정 패널이 실행되면 여기 로그인 Shell 탭에서 다음을 참고해 지원하는 Shell을 선택하거나 선택 버튼을 클릭합니다.
    • /bin/bash: Bash (Bourne-Again SHell)는 대부분의 리눅스 배포판에서 기본 Shell로 사용되는 가장 널리 사용되는 Shell입니다.
    • /bin/csh: Csh (C SHell)은 유닉스 시스템에서 가장 오래된 Shell 중 하나로 많은 기능과 명령어를 제공하는 다른 Shell과 달리, C 프로그래밍 언어와 유사한 문법을 사용합니다.
    • /bin/dash: Dash (Debian Almquist Shell)은 최소한의 기능을 제공하는 Shell로, 대개 스크립트 실행에 사용됩니다.
    • /bin/ksh: Ksh (Korn SHell)는 Bourne Shell과 Csh의 기능을 결합한 Shell로, 상호 작용 및 스크립트 모드에서 모두 사용될 수 있습니다.
    • /bin/sh: Sh (SHell)은 유닉스 시스템에서 처음으로 사용된 Shell 중 하나입니다. Bourne Shell과 호환성이 높으며, 기본 Shell로 많은 리눅스 배포판에서 사용됩니다.
    • /bin/tssh: Tcsh (TENEX C Shell)는 Csh의 확장 버전으로, 대화형 Shell로 많이 사용됩니다.
원하는-Shell-경로-직접-찾아서-선택-가능
원하는 Shell 경로 직접 찾아서 선택 가능
  1. 선택 버튼을 클릭하면 파인더가 열리는데 여기서 기본 옵션에 없는 Shell을 직접 찾아서 지정할 수도 있습니다. 본문에서는 설정 옵션의 Bash로 변경해 보았습니다.
Shell-변경-완료
Shell 변경 완료
  1. Shell을 변경 후 터미널을 실행하면 상단의 제목에 대상 Shell 이름이 표시되고 콘솔창에서 기본 Shell 이 zch로 변경되었다는 내용의 안내와 다시 변경하는 방법이 설명된 것을 볼 수 있습니다.
맥북의 웹캠 카메라 를 끄고 추가적으로 웹캠의 활동을 모니터링 하는 방법

터미널에서 변경하기

시스템 설정이 아닌 터미널을 통해서도 터미널의 기본 Shell을 변경할 수 있습니다.

chsh-명령으로-Shell-변경
chsh 명령으로 Shell 변경
  1. 에서 터미널 앱을 실행하고 사용자 Shell을 변경하는 명령인 chsh를 입력 후 -s 옵션으로 변경하려는 Shell의 경로를 정의할 수 있습니다. 예를 들어 다음과 같이 명령어를 작성하고 Return으로 실행하면 현재 사용자의 기본 Shell을 Zsh로 변경할 수 있습니다. 이 작업은 슈퍼유저 권한이 필요하니 일반 사용자는 sudo명령과 함께 사용합니다.
chsh -s /bin/zsh
암호-입력
암호 입력
  1. 명령을 실행하면 위와 같이 암호 아이콘 암호아이콘이 표시되는데 이 상태에서 계정 로그인 암호를 입력합니다. 암호 입력 시 입력줄에 별도의 텍스트가 표시되지 않으니 그대로 입력 후 Return 키를 눌러줍니다.
변경-완료
변경 완료
  1. 변경이 되면 위 그림과 같이 별다른 반응없이 마무리 됩니다.
터미널-종료
터미널 종료
  1. 적용을 위해 현재 실행 중인 터미널을 종료후 다시 실행합니다. 완전하게 종료하지 않더라도 반영되지만 변경되지 않는 경우 위 방식처럼 완전하게 종료하고 다시 열어줍니다.
기본-Shell-변경-완료
기본 Shell 변경 완료
  1. 명령에 지정한 대로 기본 Shell 인 Zsh로 변경된 것을 볼 수 있습니다.

현재 세션에서만 Shell 변경

위 방식으로는 기본 Shell이 완전하게 변경되는데 단순하게 현재 세션에서만 특정 Shell을 사용하고 싶다면 다음 과정을 진행합니다.

터미널-설정-이동
터미널 설정 이동
  1. 터미널 앱을 열고 활성화된 상태에서 메뉴막대의 터미널 메뉴를 클릭 후 설정 을 선택합니다.
일반-탭-명령어-절대-경로에서-수정-가능
일반 탭 명령어 절대 경로에서 수정 가능
  1. 터미널 설정 패널이 열리는데 여기서 상단 탭을 일반 으로 두고 셀 열기:명령어(절대 경로): 라디오에 체크한 뒤 입력 필드에 사용하고자 하는 Shell 의 경로를 위와 같이 입력 합니다.
macOS에서 DNS 서버 변경하기

마치며

macOS 맥의 터미널에서 기본 Shell을 Bash, Zsh 또는 다른 Shell로 변경하는 방법들에 대해 알아보았습니다. Bash, Zsh와 같은 기본 Shell은 유닉스 계열 시스템에서 표준처럼 사용되어 다양한 유닉스 계열 운영체제에서 동일한 명령어와 문법을 사용할 수 있고, 다양한 명령어와 문법을 지원하며, 이를 이용해 간단한 스크립트부터 복잡한 프로그램까지 여러 프로그램 언어를 작성할 수 있어 일반적으로 전혀 문제가 없습니다.

이런 장점에도 Bash는 Shellshock 사례와 같이 보안 취약점이 존재하고, 기본 Shell보다 추가 기능 지원, 성능 등이 뛰어난 Shell 들이 존재하기 때문에 이런 저런 여러 이유들로 기본 Shell 을 Bash 또는 Zsh이 아닌 다른 Shell 로 변경하고 싶은 경우 위 방식으로 손쉽게 수정해서 사용 할 수 있으니 적용해 보시길 바랍니다.

관련 글

댓글로 남기기 어려운 내용은 Contact Form 에서 개별적으로 문의 할 수 있습니다. 해당 글과 연관 된 내용은 Copy를 이용해 현재 페이지의 주소를 복사 후 문의 폼에 입력시 보다 정확한 답을 얻을 수 있습니다.

Leave a Comment