macOS 터미널에서 zsh 프롬프트를 사용자 정의하는 방법

핵심 요약

  • macOS 환경에서는 터미널에서 zsh 프롬프트를 개성있게 꾸며 사용자 취향에 맞게 변경할 수 있습니다.
  • zsh 프롬프트에 적용한 모든 설정과 변경 사항을 유지하려면 .zshrc 프로필 파일을 생성해야 합니다.
  • %n(사용자 이름), %m(Mac 모델명), %W(날짜), %T(시간)과 같은 변수들에 원하는 값을 추가하여 zsh 프롬프트를 자유롭게 수정할 수 있습니다.

macOS에서는 zsh 프롬프트의 색상을 변경하거나, 추가 정보를 표시하거나, 간결한 디자인으로 공간 활용도를 높이는 등 다양한 방법으로 사용자 정의가 가능합니다. 터미널에서 zsh 프롬프트를 개성 있게 만드는 방법을 알아보세요.

zsh 프롬프트의 기본 구조

Mac에서 터미널 앱을 실행하면, 마지막 로그인 정보 및 명령 프롬프트와 같은 기본 정보들이 표시됩니다. 기본 프롬프트는 다음과 유사한 형태를 가집니다:

 Last login: Wed Feb 3 22:00:40 on console
alvin@MacBook-Air ~ %

zsh 프롬프트는 일반적으로 사용자 이름과 MacBook Air, MacBook Pro, Mac mini와 같은 컴퓨터 모델명으로 구성된 문자열을 보여줍니다. 물결표(~)는 현재 사용자의 홈 디렉토리 위치를 나타냅니다.

터미널에서 파일 시스템의 다른 디렉토리로 이동하면 물결표 대신 현재 디렉토리 이름이 표시됩니다.

설정 저장을 위한 Z 쉘 프로필 생성

기본 설정을 변경하기 위해서는 시스템 파일을 수정해야 하지만, macOS 업데이트 시 시스템 파일이 초기화되어 변경 사항이 사라질 수 있습니다. 따라서, zsh 프롬프트의 모든 변경 사항을 유지하기 위해, 별도의 설정 파일(.zshrc)을 생성하는 것이 좋습니다.

macOS에서는 이 설정 파일을 기본적으로 제공하지 않으므로 사용자가 직접 만들어야 합니다. .zshrc 프로필을 생성하여 zsh 프롬프트의 모양과 동작을 저장할 수 있습니다. 다음은 zsh 프로필(dotfile) 생성 방법입니다.

  • 터미널 앱을 실행합니다.
  • 아래 명령을 입력한 후 Return 키를 누르세요:
    touch ~/.zshrc
  • touch 명령은 .zshrc 프로필 파일이 없을 때만 파일을 생성합니다. 파일이 이미 존재할 경우, 명령은 아무런 동작도 수행하지 않습니다.

    이제 사용자 계정의 홈 디렉토리에 .zshrc 프로필 파일이 생성됩니다. Finder에서 숨겨진 시스템 파일 보기를 활성화한 경우, /User/<사용자 이름>/ 경로에서 이 파일을 확인할 수 있습니다.

    이후 터미널을 실행할 때마다, 로그인하지 않은 대화형 쉘에서 zsh 프로필이 적용됩니다. 다만, .zprofile이나 .zlogin과 같은 다른 로그인 관련 파일이 없다면 로그인 쉘에만 적용될 수 있습니다.

    터미널에서 zsh 프롬프트 사용자 정의하기

    일반적으로 zsh 프롬프트는 사용자 이름, 컴퓨터 이름, 현재 작업 디렉토리와 같은 정보를 표시합니다. 이러한 정보는 /etc/zshrc에 위치한 zsh 쉘의 시스템 파일에 저장되어 있습니다.

    PS1="%n@%m %1~ %#"

    위 변수 문자열에서:

    • %n: 현재 사용자 계정의 사용자 이름을 의미합니다.
    • %m: Mac 컴퓨터의 모델명을 나타냅니다.
    • %1~: 현재 작업 디렉토리 경로를 의미하며, ~는 $HOME 디렉토리를 나타냅니다.
    • %#: 쉘이 루트 권한으로 실행될 때는 #, 그렇지 않을 때는 %를 표시합니다.

    기본 zsh 프롬프트를 변경하려면, 원하는 값들을 추가하여 기본 프롬프트와 다르게 보이도록 설정할 수 있습니다.

    다음은 변경 방법입니다. 터미널을 열고 아래 명령을 입력한 후 Return 키를 누르세요.

    nano ~/.zshrc

    .zshrc 프로필 파일이 이전에 존재했다면 내용이 비어 있지 않을 수 있습니다. 하지만 위 touch 명령을 통해 생성했을 경우, 파일은 비어 있습니다. 새로운 줄을 추가하고 PROMPT=’…’ 또는 PS1=’…’ 형식으로 값을 설정할 수 있습니다.

    간단하게 zsh 프롬프트를 수정하려면, .zshrc 프로필에 다음과 같이 값을 입력하세요.

    PROMPT='%n:~$'

    Ctrl + O를 눌러 변경 사항을 저장한 후, Ctrl + X를 눌러 nano 편집기를 종료합니다.

    Cmd + T를 눌러 새 터미널 창을 열고 변경된 프롬프트를 확인하세요. 새로운 zsh 프롬프트에는 사용자 이름, 홈 디렉토리, 그리고 $ 기호가 표시됩니다. 만약 변수들 사이에 공백을 추가하고 싶다면, 위 PROMPT 변수에서 %n, ~, $ 기호 사이에 공백을 추가하면 됩니다.

    사용자 이름을 변경하고 싶다면 %n 대신 원하는 이름을 입력하세요. 예를 들어 다음과 같이 할 수 있습니다:

    PROMPT='customusername~$'

    이제 새 터미널 창을 열면 아래와 같이 표시됩니다.

    다른 변수를 직접 변경하고 싶다면, 위 PS1 변수의 형식을 참고하여 기본 변수를 변경할 수 있습니다. zsh 프롬프트에 원하는 정보만 포함시키거나 삭제할 수 있습니다.

    만약 설정이 복잡하게 느껴진다면, Zsh 프롬프트 생성기와 같은 도구를 활용하여 zsh 쉘을 쉽게 사용자 정의할 수 있습니다.

    zsh 프롬프트에 날짜 및 시간 추가

    사용자 이름 외에도 현재 날짜나 시간을 추가하여 터미널 창에서 필요한 정보를 쉽게 확인할 수 있습니다.

    터미널을 실행하고 .zshrc 프로필을 엽니다:

    nano ~/.zshrc

    프롬프트에 날짜를 추가하려면, %D를 사용하여 yy-mm-dd 형식으로 표시하거나, %W를 사용하여 mm/dd/yy 형식으로 표시할 수 있습니다. 예를 들어, 다음과 같이 새 프롬프트를 설정할 수 있습니다:

    PROMPT='%n:%W:~$'

    위 PROMPT 변수에서는 콜론(:)을 사용하여 시각적으로 구분했지만, 공백이나 다른 문자를 사용할 수도 있습니다. 예를 들어, 시간과 현재 디렉토리를 구분하기 위해 보다 큼 기호(>)를 사용할 수도 있습니다.

    zsh 프롬프트에 시스템 시간을 추가하려면, %T를 사용하여 24시간 형식으로 표시하거나, %t를 사용하여 12시간 형식으로 표시할 수 있습니다. 또한 %*를 사용하면 초 단위까지 포함한 24시간 형식으로 시간을 표시할 수 있습니다.

    PROMPT='%n@%T>~$'

    zsh 프롬프트 오른쪽에 날짜 및 시간 표시

    zsh 프롬프트 오른쪽에 정보를 표시하려면 zshrc 파일에 RPROMPT 변수를 추가해야 합니다. 날짜와 시간을 추가하는 예시는 다음과 같습니다:

    RPROMPT='%D @ %T'

    이제 프롬프트는 다음과 같이 표시됩니다.

    zsh 프롬프트 텍스트에 색상 추가

    터미널 앱 자체의 색상을 변경하는 것 외에도, zsh 프로필 텍스트에 색상을 추가하여 시각적인 변화를 줄 수 있습니다. 터미널을 실행하고 .zshrc 프로필을 엽니다:

    nano ~/.zshrc

    Z 쉘은 프롬프트 텍스트에 다양한 색상과 음영을 지원합니다. 전경(텍스트) 색상은 검정, 흰색, 노랑, 녹색, 빨강, 파랑, 청록색, 자홍색 중에서 선택할 수 있습니다. 사용 방법은 다음과 같습니다:

    PROMPT='%F{cyan}%n%f:~$'

    특정 zsh 색상 음영을 사용하려면, 터미널이 지원하는 256개의 8비트 색상 중에서 선택할 수 있습니다. 색상 코드를 사용하는 방법은 다음과 같습니다:

    PROMPT='%F{51}%n%f:~$'

    색상을 지정하려는 텍스트 사이에 %F 및 %f 기본 전경색 변수를 배치해야 합니다.

    zsh 프롬프트에 시각 효과 추가

    프롬프트 텍스트 색상을 변경하는 것만으로는 부족하다면, zsh 프롬프트를 강조하여 텍스트들 사이에서 눈에 띄게 만들 수 있습니다. 우선, zsh 프롬프트를 굵게 표시할 수 있습니다.

    PROMPT='%B%F{51}%n%f%b:~$'

    해당 텍스트 사이에 %B를 시작 부분에, %b를 끝부분에 추가하면 굵게 표시됩니다.

    마찬가지로, %S를 시작 부분에 넣고 %s를 끝부분에 넣어 텍스트를 강조 표시할 수 있습니다. 강조 표시는 %S 및 %s 변수 사이의 텍스트와 같은 색상을 가집니다.

    PROMPT='%S%F{51}%n%f%s:~$'

    또한 zsh 프롬프트 텍스트에 밑줄을 추가할 수도 있습니다. 밑줄을 추가하려면, 해당 텍스트 시작 부분에 %U 변수를 넣고, 끝부분에 %u 변수를 넣으면 됩니다.

    PROMPT='%U%F{51}%n%f%u:~$'

    zsh 프롬프트에서 마지막 로그인 정보 제거

    터미널 앱에서 마지막 로그인 시간을 표시하는 맨 윗줄을 숨기거나 비활성화하면, zsh 프롬프트가 더욱 깔끔하게 보일 수 있습니다. 다음 명령을 사용하여 해당 정보를 숨길 수 있습니다.

    touch ~/.hushlogin

    다음에 터미널을 열면, zsh 프롬프트 위에 아무 것도 표시되지 않습니다.

    zsh 사용자 정의 재설정

    처음부터 다시 시작하고 싶다면, PROMPT 또는 PS1 변수를 기본값으로 설정하면 됩니다.

    PROMPT="%n@%m %1~ %#"

    RPROMPT를 사용하여 zsh 프롬프트 오른쪽에 정보를 추가했다면, .zshrc 파일에서 해당 부분을 삭제하세요.

    또는, .zshrc 파일에서 PROMPT/PS1 및 RPROMPT 변수를 완전히 삭제할 수 있습니다. .zshrc 파일의 설정은 현재 사용자 프로필에만 적용되므로 걱정하지 않아도 됩니다. 해당 변수를 삭제하면 /etc/zshrc에 있는 Z 쉘의 시스템 파일에 저장된 기본 설정이 적용됩니다.

    이제 zsh 프롬프트를 사용자 정의하는 방법에 대한 모든 정보를 얻었으므로, 자신만의 스타일로 실험해 보세요. 텍스트를 굵게 하거나, 밑줄을 긋거나, 내용을 더 짧게 만들거나, 필요한 정보를 추가할 수 있습니다. 변경 사항이 마음에 들지 않으면 언제든지 기본 설정으로 되돌릴 수 있습니다.