macOS가 버전 10.15 카탈리나로 업데이트된 이후, 터미널 앱의 기본 셸은 Bash 대신 Z 셸(zsh)로 바뀌었습니다. 하지만 터미널 안은 여전히 검은 배경에 흰 글씨뿐인 밋밋한 모습이죠. 꼭 그대로 둘 필요는 없습니다.
zsh 프롬프트를 미니멀하게 다듬어 공간을 알차게 활용할 수 있습니다. 이 글에서는 터미널 앱에서 zsh 프롬프트를 커스터마이징해 어떤 배경에서든 돋보이게 만드는 방법을 소개합니다.
zsh 프롬프트의 기본 구조
터미널 앱을 실행하면 마지막 로그인 정보와 명령 프롬프트가 표시됩니다. 기본 상태의 프롬프트는 대체로 다음과 같은 모습입니다.
Last login: Wed Feb 3 22:00:40 on console
samir@MacBook-Air ~ %
zsh 프롬프트는 사용자 이름과 컴퓨터 모델명(MacBook Air, MacBook Pro, Mac Mini 등)으로 이루어진 문자열을 보여줍니다. 물결표(~)는 현재 홈 디렉토리에 위치해 있다는 뜻입니다.
설정을 저장할 Z 셸 프로필 만들기
기본 모양을 바꾸려면 보통 시스템 파일을 직접 수정해야 합니다. 그런데 macOS가 업데이트되면 시스템 파일이 초기화되면서 변경 사항이 모두 사라져 버립니다.
그래서 점파일(dotfile)이라 불리는 별도의 설정 파일을 만들어 zsh 프롬프트 관련 설정을 따로 보관하는 것이 좋습니다.
macOS에는 이 점파일이 기본적으로 존재하지 않기 때문에 직접 만들어야 합니다. .zshrc 프로필을 새로 생성하면 프롬프트의 모양과 동작 등 모든 설정을 한곳에 담아둘 수 있습니다.
zsh 프로필(점파일)을 만드는 방법은 다음과 같습니다.
- 터미널 앱을 엽니다.
- 아래 명령어를 입력한 후 Return(엔터) 키를 누릅니다.
touch ~/.zshrc
이렇게 하면 사용자 계정의 홈 디렉토리에 .zshrc 파일이 생성됩니다. 파인더에서 숨긴 시스템 파일 보기를 활성화했다면 /Users/<사용자이름> 경로에서 확인할 수 있습니다.
이후부터는 터미널을 실행할 때마다 로그인 셸과 인터랙티브 셸에 이 프로필이 자동으로 적용됩니다. 다만 SSH 세션에서는 적용되지 않는다는 점에 유의하세요.
앞으로 zsh 프롬프트에 적용하고 싶은 모든 변경 사항을 이 프로필에 담으면 됩니다.
터미널에서 zsh 프롬프트 커스터마이징하기
기본 zsh 프롬프트에는 사용자 이름, 기기 이름, 현재 위치(홈 디렉토리 기준) 같은 정보가 표시됩니다. 이 정보는 /etc/zshrc 경로의 zsh 시스템 파일에 저장되어 있습니다.
PS1="%n@%m %1~ %#"
각 변수의 의미는 다음과 같습니다.
- %n : 계정의 사용자 이름
- %m : MacBook의 모델명
- %1~ : 현재 작업 디렉토리 경로(~는 $HOME 경로 부분을 제거하여 표시)
- %# : 셸이 root(관리자) 권한으로 실행 중이면 #을, 아니면 %를 표시
기본 프롬프트를 바꾸려면 .zshrc에 원하는 값을 추가해야 합니다.
방법은 간단합니다. 터미널을 열고 아래 명령어를 입력한 후 엔터를 누르세요.
nano ~/.zshrc
처음 열면 빈 파일일 것입니다. 새 줄에 PROMPT='...' 형식으로 입력하고 말줄임표 자리에 원하는 값을 넣으면 됩니다.
간단하게 바꿔보고 싶다면 .zshrc에 다음 내용을 입력해 보세요.
PROMPT='%n~$'
Ctrl + O를 눌러 변경 사항을 파일에 저장한 뒤, Ctrl + X로 nano 편집기를 종료합니다.
새 터미널 창을 열어 방금 적용한 변경 사항을 확인하세요. 새 프롬프트에는 맥 사용자 이름, 홈 디렉토리, 그리고 끝에 $ 기호가 표시됩니다.
zsh 프롬프트에 날짜와 시간 표시하기
사용자 이름 외에 현재 날짜나 시간을 함께 표시하면 터미널 창에서 눈을 떼지 않고도 그 정보를 바로 확인할 수 있습니다.
터미널을 실행하고 .zshrc 프로필을 여세요.
nano ~/.zshrc
날짜를 표시하려면 yy-mm-dd 형식의 %D 또는 mm/dd/yy 형식의 %W를 사용합니다. 새 프롬프트는 다음과 같은 모양이 됩니다.
PROMPT='%n:%W:~$'
시간을 표시하고 싶다면 24시간 형식의 %T, 오전/오후(12시간) 형식의 %t, 초까지 포함한 24시간 형식의 %* 중에서 선택할 수 있습니다.
PROMPT='%n:%T:~$'
zsh 프롬프트 텍스트에 색상 넣기
흰 글씨에 지겨우신가요? 터미널 앱 자체에 색을 입히는 것 외에도 텍스트에 색을 더해 시각적인 변화를 줄 수 있습니다.
터미널을 실행하고 .zshrc 프로필을 여세요.
nano ~/.zshrc
zsh는 배경과 어울리도록 프롬프트 텍스트에 색상과 회색조를 지원합니다. 검정, 흰색, 노란색, 초록색, 빨간색, 파란색, 청록색(cyan), 자홍색(magenta) 중에서 전경(텍스트) 색상을 고를 수 있습니다.
사용 방법은 다음과 같습니다.
PROMPT='%F{cyan}%n%f:~$'
특정 색조를 원한다면 터미널이 지원하는 0~256 범위의 8비트 색상 중에서 선택할 수도 있습니다. 숫자 값을 사용하는 예시입니다.
PROMPT='%F{51}%n%f:~$'
색을 입히고 싶은 텍스트 앞뒤를 %F와 %f 전경색 변수로 감싸주면 됩니다.
zsh 프롬프트에 시각 효과 추가하기
텍스트 색상만으로 부족하다면, 프롬프트를 강조해 텍스트 벽 속에서도 쉽게 찾을 수 있게 만들어 보세요. 우선 굵게(bold) 표시하는 방법입니다.
PROMPT='%B%F{51}%n%f%b:~$'
강조할 텍스트 앞에 %B를, 뒤에 %b를 넣으면 굵게 표시됩니다.
비슷하게 %S와 %s를 사용하면 텍스트를 반전 강조(highlight)할 수 있습니다. %S와 %s 사이에 있는 텍스트에는 앞서 선택한 색상이 그대로 적용됩니다.
PROMPT='%S%F{51}%n%f%s:~$'
밑줄 효과도 가능합니다. 밑줄을 넣으려면 해당 텍스트 앞에 %U를, 뒤에 %u를 넣으세요.
PROMPT='%U%F{51}%n%f%u:~$'
마지막 로그인 정보 숨기기
터미널 상단에 표시되는 마지막 로그인 시간을 숨기면 zsh 프롬프트가 훨씬 깔끔해 보입니다. 다음 명령어로 이 정보를 가릴 수 있습니다.
touch ~/.hushlogin
다음에 터미널을 열면 zsh 프롬프트 위에 아무것도 표시되지 않습니다.
터미널의 zsh 프롬프트에 개성 더하기
macOS 터미널을 가끔씩만 사용하더라도 zsh 프롬프트의 모양은 마음껏 바꿀 수 있습니다. 굵게, 밑줄, 축약은 물론 날짜와 시간 표시까지 자유롭게 조합할 수 있습니다.
이제 zsh 프롬프트 커스터마이징을 시작했으니, 다양하게 실험해보며 자신만의 스타일을 만들어 보세요.