Mac에서 zsh를 기본 셸로 사용하기
macOS Catalina부터는 Mac에서 zsh를 기본 로그인 셸 및 대화형 셸로 사용합니다. 이전 버전의 macOS에서도 zsh를 기본 셸로 설정할 수 있습니다.
기본적으로 Mac에서는 zsh 또는 bash를 로그인 셸과 대화형 셸의 명령어 라인 인터프리터로 사용합니다.
macOS Catalina부터는 zsh(Z 셸)가 새로 생성되는 모든 사용자 계정의 기본 셸입니다.
bash가 macOS Mojave 및 이전 버전의 경우 기본 셸입니다.
zsh는 Bourne 셸(sh)과의 호환성이 뛰어나며 bash와도 대개 호환되지만 약간의 차이점이 있습니다. zsh 및 이 셸의 포괄적인 명령어 라인 완성 시스템에 대한 자세한 내용을 보려면 터미널에 man zsh
를 입력하십시오.
기본 셸을 변경하는 방법
사용자 계정이 zsh(권장), bash 또는 다른 셸을 사용하도록 구성되어 있더라도 명령어 라인 또는 사용자 및 그룹 설정에서 기본 셸을 변경할 수 있습니다.
명령어 라인에서 변경하기
터미널에서 $ chsh -s path
를 입력하십시오. 여기서 path는 /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh 또는 /bin/tcsh와 같이 /etc/shells에 나열된 셸 경로 중 하나입니다.
사용자 및 그룹 설정에서 변경하기
macOS Ventura 및 이후 버전:
Apple 메뉴() > 시스템 설정을 선택한 다음 사이드바에서 '사용자 및 그룹'을 클릭합니다.
오른쪽의 사용자 목록에서 사용자 이름 또는 사용자 사진을 control-클릭한 후 '고급 옵션'을 선택합니다.
메시지가 표시되면 사용자 이름과 암호를 입력합니다.
'로그인 셸' 메뉴에서 셸을 선택한 다음 '확인'을 클릭하여 변경 사항을 저장합니다.
이전 버전의 macOS:
Apple 메뉴() > 시스템 환경설정을 선택한 후 '사용자 및 그룹'을 클릭합니다.
를 클릭하고 사용자 이름과 암호를 입력합니다.
왼쪽의 사용자 목록에서 사용자 이름을 control-클릭한 후 '고급 옵션'을 선택합니다.
'로그인 셸' 메뉴에서 셸을 선택한 다음 '확인'을 클릭하여 변경 사항을 저장합니다.
기본 셸을 변경하지 않고 다른 셸을 사용하는 방법
터미널의 새 윈도우나 탭에서 기본 로그인 셸을 사용하지 않으려면 다음 단계를 따르십시오.
터미널을 연 다음 터미널 > 설정(또는 환경설정)을 선택합니다.
일반 패널에서 '명령어(절대 경로)'를 선택합니다.
인접한 필드에 bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh, /bin/tcsh와 같은 /etc/shells에 나열된 셸 경로 중 하나를 입력합니다.
macOS가 다른 셸을 사용하도록 구성되어 있을 때 bash 셸을 호출하면 이제 zsh가 기본 대화형 셸이라는 메시지가 나타납니다. 이 경고 메시지가 표시되지 않도록 하려면 ~/.bash_profile 또는 ~/.profile에 다음 명령을 추가합니다.
export BASH_SILENCE_DEPRECATION_WARNING=1
zsh 프로파일 및 프롬프트로 전환하는 방법
환경 변수, 가상본 또는 경로 변수를 설정하는 등의 작업에 bash 프로파일을 사용 중인 경우 그에 상응하는 zsh를 사용하도록 전환해야 합니다. 예를 들면 다음과 같습니다.
.zprofile은 .bash_profile에 해당하며 SSH를 이용할 경우를 비롯하여 로그인할 때 실행됨
.zshrc는 .bashrc에 해당하며 터미널 세션이 새로 시작될 때마다 실행됨
.profile(POSIX 호환 프로파일)을 사용 중인 경우 다음 명령을 .zprofile에 추가하여 zsh가 자동으로 해당 설정을 읽도록 할 수 있습니다.
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
일부 설정을 수정 없이 bash 프로파일에서 zsh 프로파일로 이동할 수도 있습니다. 예를 들어 환경 변수를 설정하려면 export MY_SETTING=1
을 사용합니다.
zsh는 bash와는 다른 프롬프트 지정자 세트를 인식하고 출력을 색상으로 표시하는 보다 명확한 구문을 사용하므로 복잡한 ANSI 확장 비트열을 사용할 필요가 없습니다. 예를 들어 .bash_profile에서 기본 bash 프롬프트 구문은 다음과 같습니다.
export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "
.zprofile 또는 .zshrc를 사용할 때 이 bash 프롬프트를 zsh 프롬프트로 변환하려는 경우 구문은 다음과 같습니다.
export PS1="%10F%m%f:%11F%1~%f \$ "
자세한 내용은 zsh man 페이지를 참조하십시오.
셸 스크립트를 테스트하는 방법
macOS Catalina 및 이후 버전에서 Bourne 호환 셸과의 스크립트 호환성을 테스트하려면 /var/select/sh를 /bin/bash, /bin/dash 또는 /bin/zsh로 변경합니다. /var/select/sh를 bash가 아닌 다른 셸로 변경하면 bashism을 사용하는 스크립트가 제대로 작동하지 않을 수 있습니다.
zsh --emulate sh
명령을 실행하여 zsh가 sh를 에뮬레이트하도록 할 수 있습니다.
Apple이 제조하지 않은 제품에 관한 정보 또는 Apple의 관리 또는 테스트 대상이 아닌 독립적인 웹 사이트는 권장 또는 보증 없이 제공되는 것입니다. Apple은 타사 웹 사이트 또는 제품에 대한 선택, 성능 및 사용과 관련하여 발생하는 결과에 대해 책임을 지지 않습니다. Apple은 타사 웹 사이트의 정확성 또는 신뢰도에 대해 어떠한 언급도 하지 않습니다. 자세한 내용은 해당 업체에 문의하시기 바랍니다.