ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Oh-my-zsh 설치하기, zsh 테마 변경 및 한글 폰트 적용, 자동완성 설정하기
    Tips 2021. 8. 20. 01:31
    728x90
    반응형

     

     

      zsh는 z-shell이라고 읽으며 bash shell의 기능을 포함하여 여러가지 기능이 추가되어 있는 쉘의 한 종류이다 (bash shell base라 맥에서만 사용 가능한 줄 알았는데 윈도우에서도 WSL등을 사용해서 설치할 수 있다고 한다). 원래 Mac OS에서 기본 shell은 bash shell이어서 zsh를 기본 shell로 사용하려면 변경하는 절차가 추가로 필요했는데 카탈리나부터는 기본 쉘이 zsh로 변경됐다. 기존에 bash shell을 쓰고 있던 맥북이라면 카탈리나로 업그레이드해도 자동으로 바뀌지는 않는 듯 하다. 반대로 기본 쉘이 zsh로 설정되어 있어도 chsh 명령어로 bash shell로 변경이 가능하지만 애플은 zsh를 사용할 것을 권하고 있다.

     zsh의 기능들로는 맞춤법 수정, 명령줄 완성, 전역 alias(명령 대신 파일 이름 또는 명령줄의 다른 항목을 별칭으로 지정), 많은 테마 지원 등이 있다.

     

     현재 Mac에 설치되어 있는 shell의 목록, 기본 쉘 변경은 다음 명령어로 확인할 수 있다. 여기서 cat은 지정된 파일의 내용을 보여주는 명령어이고 chsh(=chpass)는 사용자의 데이터베이스 정보를 추가하거나 변경하는 유틸리티이다. -s라는 argument는 shell을 바꾸겠다는 의미이다.

    $ cat /etc/shells
    $ chsh -s /bin/zsh

     

    Oh-My-Zsh 설치하기

     

     zsh의 기본 테마는 random이라 터미널을 실행할 때마다 다른 테마가 나온다고하는데, 원래부터 기본 쉘로 지정되어 있다면 zsh의 환경설정을 다루는 Oh-My-Zsh를 설치해야한다. 공식문서에 있는 명령어를 curl이나 wget으로 설치할 수 있다. 여기서 curl과 wget은 웹 서버로부터 컨텐츠를 가져오는 리눅스 명령어이고, 거의 유사한 기능을 수행하지만 하기와 같은 차이점이 있다.

    <curl 명령어>

    $ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

    <wget 명령어>

    $ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
    • wget
      • 간단하고 직관적이다.
      • 별도의 라이브러리를 지원하지 않는다.
      • 재귀적으로 컨텐츠를 가져오기 때문에 페이지에 있는 모든 내용이나 FTP 디렉터리에 있는 모든 파일들을 한번에 그대로 복사한다.
      • 일반 HTTP POST request만 지원한다.
      • 신뢰성이 낮은 연결을 통한 다운로드 재시도도 처리한다.
      • 별다른 옵션없이 컨텐츠를 조금 더 빠르게 다운로드 받고 싶을 때 wget을 사용하는 것이 적합하다.
    • curl
      • libcurl 라이브러리를 통해 더 강력한 기능들을 사용할 수 있다.
      • stdin 또는 stdout의 pipe를 이용하는 전통적인 unix스타일의 방식 및 LDAP나 Samba 공유도 지원한다.
      • 양방향이며 SSLDMF WLDNJSGKSEK.
      • gzip 압축 및 해지를 지원한다.
      • 조금 더 복잡한 컨텐츠를 다운로드 하려면 curl이 적합하다.

     

    (참고: https://daniel.haxx.se/docs/curl-vs-wget.html , https://hapumee.github.io/2018/05/21/wget-vs-curl/)

     

    테마 적용하기

     

    Oh-My-Zsh에서 지원하는 다양한 테마는 여기서 확인할 수 있다. 예전 맥에 화려한 네온사인 테마를 했다가 취향 공개처형 당한 적이 있어서 이번에는 좀 평범한 테마를 골라보기로 했다 (하지만 눈에 잘 띄어야한다..아니면 에러 길게 뜨면 시작점 찾는 데만 한세월 걸린다).

     

    zsh에서 만든 것이 아니라 외부 테마를 사용하게 되면 각 테마의 source repository에서 안내되어있는 설정 방법을 따라야한다. 'guezwhoz'라는 외부 테마를 골랐기 때문에 먼저 해당 레포를 클론하고 환경변수 설정을 했다.

    % git clone https://github.com/guesswhozzz/guezwhoz-zshell ~/guezwhoz-scheme
    % ln -s ~/guezwhoz-scheme/guezwhoz.zsh-theme $ZSH/themes/guezwhoz.zsh-theme

     

     그 다음 zshrc 파일을 열어 테마를 수정해준다. 외부 테마가 아닌 zsh 기본 테마 중 하나를 골랐다면 여기서부터 설정하면 된다.

    $ vi ~/.zshrc

     rc파일이 열리면 i를 눌러서 편집모드로 변경하고, ZSH_THEME=라고 적혀있는 부분을 찾아가서 쌍따옴표 사이의 테마명을 바꾸고자 하는 이름으로 수정하면 된다.

     이름을 수정했다면 esc를 눌러 편집모드를 종료하고  :wq를 눌러 저장 후 파일 닫기를 한 후 터미널을 껐다 키거나 하기 코드를 실행하면 변경된 테마가 적용된다.

    $ source ~/.zshrc

     

    한글 폰트 설치

     

     따로 한글 폰트를 설치하지 않으면 글자가 깨지기 때문에 한글 폰트를 설치해준다. 네이버의 D2Coding을 많이 쓰는 것 같아 이걸로 적용해보자.

     먼저 naver/d2codingfont github에서 폰트를 다운받고 zip파일을 압축해제하면 다음과 같은 세 개의 폴더가 나온다.

     이 중 D2CodingAll 폴더에 있는 폰트 파일을 실행하고 설치를 눌러주면 폰트 파일이 설치 된다. 폰트 설치 후 터미널에 가서 Command+,를 눌러 폰트 설정 창을 열어 폰트를 변경해준다. 외에 크기 등도 설정 가능하다.

     변경 후 터미널을 닫았다가 다시 실행하면 폰트가 적용되어 있는 것을 확인할 수 있다.

     

    자동 완성 기능 설정하기

     

     이전에는 공부의 목적으로 - 코드는 여러번 써 봐야 익숙해지기 때문에 - 자동완성 기능을 사용하지 않았는데 이제는 시간이 생명이니까 한번 써 보기로 했다. 앞서 말했듯 zsh는 여러가지 플러그인을 제공하는데, 플러그인 별칭을 모두 기억할 수 없으니 쉽게 알려주는 alias-tips를 설치해야한다 (alias 안 쓸 예정이어도 자동완성 기능 넣으려면 설치해야한다). 명령어 세 줄로 쉽게 실행할 수 있다.

    $ cd .oh-my-zsh/plugins  
    $ git clone https://github.com/djui/alias-tips.git
    $ cd ../../
    $ source ~/.zshrc

     그 다음 자동완성 기능 설치를 위해 필요한 github repo를 clone한다.

    $ cd .oh-my-zsh/plugins
    $ git clone https://github.com/zsh-users/zsh-autosuggestions

     clone이 완료되면 홈 경로로 가서 rc파일을 열어준다.

    $ cd
    $ vi .zshrc

     역시 아까와 마찬가지로 i를 눌러 편집을 해주고 plugins=로 시작하는 부분을 찾아 git이라고 적혀있는 부분을 git alias-tips zsh-autosuggestions로 변경해준다.

     그 다음 아까와 마찬가지로 esc를 눌러 편집모드 종료 후 :wq로 수정사항을 저장하고 source 코드나 터미널을 껐다 켬으로써 rc파일을 다시 실행해주면 하기와 같이 자동완성 기능이 실행되는 것을 볼 수 있다. 자동완성으로 추천 된 코드를 활성화(? 입력?)시키려면 키보드에 오른쪽 화살표 키를 누르면 된다.

    $ source ~/.zshrc

    자동완성 기능이 활성화된 모습 (하얀 글씨:입력한 코드, 회색 글씨: 자동완성)

     

    설치 Troubleshooting

     

    1. wget으로 설치 명령어 입력하니 command not found: wget 에러 발생

    2. brew로 wget을 설치하려고 하니 'Cannot install under Rosetta 2 in ARM default prefix~~' 에러 발생 (M1...휴...)

    3. 일단 oh-my-zsh는 curl 명령어로 설치했으나 wget 에러를 해결하고 싶은 오기가 생김

    내일 해결해보자..

     

    728x90
    반응형

    댓글