macOS: 기본 쉘 (shell) 이 된 zsh 설정하기

2021. 1. 7. 00:55 OS/Mac OS

macOS 버전 10.15 인 ‘카탈리나’ 부터 기본 쉘 (Shell) 이 bash1 에서 zsh (Z shell)2 로 변경 되었습니다.3 일단 쉘을 변경한 이유를 애플에서 직접 밝히진 않았지만, The Verge 라는 언론에서는 bash 쉘의 라이센스와 연관된 것으로 추측하고 있습니다.4 이 기사와 애플의 설명을 보면 여러 후보군 중에서 zsh 을 선택한 것은 라이센스 문제를 해결하면서도 기존 bash 쉘과의 호환성을 최대한 지원하기 위함인 것 같습니다.5

사실 zsh 자체는 맥 사용자에게 오래전부터 알려려 있던 것으로, 한 때 iTerm26 라는 터미널 프로그램이 유행하면서 ‘Oh My Zsh’7 로 쉘을 변경하는 경우가 꽤 있었던 기억이 납니다. 다만 저는 개인적으로 어지간하면 기본 세팅을 변경하지 않는 사람이여서 zsh 이 있다는 것을 알고만 있었는데, 언젠가부터 터미널을 사용할 때마다 아래와 같은 메시지가 뜨길래 맥의 기본 쉘이 변경된 것을 알게됐습니다.8

그런데 ‘카탈리나’ 부터 기본 쉘이 zsh 이 되었다고 해도, 위 메시지가 계속 뜨는 것은 기본 쉘이 아직 bash 라는 것을 의미합니다. 아마도 원래 bash 쉘을 쓰고 있던 사람은 OS 를 업데이트하더라도 기본 설정이 유지되기 때문인 것 같습니다.

참고로 자신의 기본 쉘이 어떤 것인지는 스크린샷에서 표시한 것처럼 터미널의 제목 부분을 보면 알 수 있습니다. 터미널을 실행할 때 위에서처럼 제목에 bash 가 표시된다면 기본 쉘이 bash 인 것입니다.

현재 맥에 설치되어 있는 쉘 확인하기

일단 zsh 쉘로 변경하기 전에, 우선 컴퓨터에 설치되어 있는 쉘에는 어떤 것들이 있는지 확인해 보겠습니다. 현재 컴퓨터에 설치되어 있는 쉘을 확인하려면 다음과 같은 명령을 이용하면 됩니다.

$ cat /etc/shells

cat 명령은 지정된 파일의 내용을 보여주는 명령으로, 여기서는 etc 디렉토리9에 있는 shells 파일의 내용을 보여달라는 의미입니다. 저의 경우 결과가 아래와 같았습니다.

# List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/bash /bin/csh /bin/dash /bin/ksh /bin/sh /bin/tcsh /bin/zsh

macOS ‘카탈리나’ 에는 기본적으로 위와 같이 다양한 쉘들이 설치되어 있음을 알 수 있습니다. 물론 이중에서 자신이 원하는 쉘은 어느 것이든 사용할 수 있습니다. 하지만 어쨌든 애플에서는 기본 쉘로 zsh 를 권장하고 있으니, 이제 기본 쉘을 zsh 로 변경하고 간단하게 테마를 지정해보도록 하겠습니다.

기본 쉘을 zsh 로 변경하기

macOS 의 기본 쉘을 변경하려면 터미널을 실행할 때마다 나온 메시지에서 알려준 것처럼 터미널에서 아래와 같은 명령을 입력하면 됩니다.

$ chsh -s /bin/zsh

위에서 chsh  chpass 와 동일한 것으로, 사용자의 데이터베이스 정보를 추가하거나 변경하는 ‘유틸리티’ 입니다. 여기서 옵션 -s 를 붙여서 chsh -s 라고 하면, 사용자의 쉘을 바꾸겠다는 의미가 됩니다.

위 명령을 실행하고 암호를 입력해도 막상 달라지는 것은 없는 것 같아 보입니다. 왜냐면 터미널은 그 자체로 하나의 프로세스이기 때문에 새 설정을 적용하려면 기존 터미널을 닫고 새 터미널을 실행해야 하기 때문입니다.

기존 터미널을 닫고 새 터미널을 열면 아래와 같이 업데이트할 것인지를 묻는데, Y를 입력해서 업데이트를 진행합니다.

$ [Oh My Zsh] Would you like to check for updates? [Y/n]: Y Updating Oh My Zsh remote: Enumerating objects: 9987, done. ... Fast-forwarded master to 93a2ba6b5f562385f29188cd363329dc2d835959. __ __ ____ / /_ ____ ___ __ __ ____ _____/ /_ / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ / /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / \____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ /____/ Hooray! Oh My Zsh has been updated and/or is at the current version. To keep up on the latest news and updates, follow us on twitter: https://twitter.com/ohmyzsh Get your Oh My Zsh swag at: http://shop.planetargon.com/ /Users/kimminho/.oh-my-zsh/lib/directories.zsh:32: command not found: compdef [oh-my-zsh] Random theme '/Users/kimminho/.oh-my-zsh/themes/ys.zsh-theme' loaded... ... # kimminho @ xho95s-MacBook-Pro in ~ [16:00:12] $

업데이트가 완료되면 위와 같은 결과를 출력합니다. 이제 아래 스크린샷에서와 같이 터미널 제목에서 zsh 이 기본 쉘임을 보여주고 있습니다.

출처 : xho95.github.io/macos/cli/shell/zsh/2020/03/04/Setting-Up-the-Zsh-shell-on-Mac.html