· 톺아보기

PC/모바일

\ㅇㅁㅇ/ 넘나 좋은 Zsh 쓰세요!! - 맥 카탈리나 배포 && 스타 50 기념

BlaCk · · 수정

조회 30,367 · 공감 41 · 댓글 99

애플, Mac 카탈리나에서 기본 쉘을 Bash에서 Zsh로 변경( https://www.clien.net/service/board/news/13567000CLIEN  )

되었고


최근에

 애플, macOS 10.15 Catalina 배포 시작(  https://www.clien.net/service/board/news/14130254CLIEN )

이 되더랬죠.


Zsh의 장점이란??

전 다음 4개를 꼽고 있습니다.

- Bash 호환성

- RPROMPT

- 자동완성

- 플러그인 생태계


Bash와의 호환성은 더 설명할 필요 없을 것 같구..

RPOMPT와 자동완성에 대해 설명해보죠.


Bash와의 비교

Bash


Zsh


기본으로 설치된 Bash와 Zsh의 비교입니다.

(Bash는 운영체제에서 제공하는 .bashrc를 통해 프롬프트 설정이 되어 있음)


Zsh는 RPROMPT가 존재해서 오른편에 정보를 보여줄 수 있으며,

탭 자동완성을 사용할 때 단순히 리스트를 보여주는 것이 아니라 '선택'이 가능합니다.


Zsh의 단점은 OS에서 기본 설정을 안해줘 위 스샷처럼 황량하게 나온다는 겁니다.

대신 플러그인의 힘으로 모든 것을 커버하죠.


------

뭐..카탈리나 올려면

Use zsh as the default shell on your Mac( https://support.apple.com/en-us/HT208050 )

문서처럼 기본 설정해서 나오긴 하겠죠.

똑같이 만들 수 있어요. ㅎㅎ

그런데 쓸 수 있는 기능들을 안쓰는 것은 아깝잖아요??

------


스타터킷을 사용하자!!

뭐 플러그인들 좋죠..

근데.. 기능들을 읽어가며 하나하나 설정하는게 고통스럽습니다.

Oh-My-Zsh 같은 것을 깔아도 플러그인은 다 설정해줘야 하거든요.


Emacs는 Spacemacs나 Doom Emacs 같은게 있어서 입문자에게 좋은데 Zsh는 없더군요.

그래서 만들었습니다.


MacOS, Debin-based(Ubuntu, Debian, Mint, ..), RPM-based(Fedora, CentOS, Redhat, ..), Pacman-based(Arch, Manjaro, Antergos, ..), Free-BSD를 지원하는 인스톨러입니다.

git clone https://github.com/black7375/BlaCk-Void-Zsh.git ~/.zsh
bash ~/.zsh/BlaCk-Void-Zsh.sh

zsh-update로 업데이트 가능합니다.


테마는 총 4가지에요 (powerline, powerline-single, simple, simple-single)


https://github.com/black7375/BlaCk-Void-Zsh/wiki/Customize

테마, 컬러, 아이콘 모드전환은 상수 변경만으로도 가능하고요, 세세한 설정 또한 자유롭게 가능합니다. (별 50개 기념 업뎃 내용)


다양한 기능들이 있지만

https://github.com/black7375/BlaCk-Void-Zsh/wiki/Features


그냥 기능들을 몇개 보여주자면

문법강조와 괄호 짝맞춤


강력한 자동완성


제안과 수정


검색 및 적용


이것 저것 내용이 많은 것 같지만 실제로 써보면 학습곡선은 거의 없고, 자연스럽게 손에 익을 거에요.

bash보다 나은 생산성을 체감하세요~~


P.S 성능에도 신경을 써서 SSD달린 컴을 쓴다면 그렇게 느리다고 느껴지지 않을겁니다 ㅎㅎ


에러가 생기면 아래 문서를 참고해보세요!!

https://github.com/black7375/BlaCk-Void-Zsh/wiki/Inatallation

댓글 99

  1. BlaCk ·
    CLI UI/UX의 혁명이죠
  2. j2rry ·
    우선 스크랩 합니다 ㅎ
  3. BlaCk ·
    나중에 읽어보세여 ㅎㅎ
  4. BlaCk ·
    아 .. 맞아요 중요한 것인데 까먹었네요.
    인스톨러에서 추천하는 폰트를 깔면 hack nerd font가 깔렸을 겁니다.
    터미널에 hack nerd font를 폰트로 지정해주면 되요!!
  5. 돈많은백수 ·
    대단하네요.. 그저 대단하다는 말밖에... star 누르고 갑니다!
  6. BlaCk ·
    앗 스타 감사해요!!
  7. 밀리 ·
    좋은 자료 감사합니다. 남에게 배포할수있는정도로 정리하시다니 대단하시네요

    tcsh로 입문해서 요새는 bash쓰고있는데 tmux나 zsh쓰고있는분들보면 넘어가고 싶은 마음이 동하긴 하는데 귀찮이즘때문에 옮겨가질 못하고 있는데 한큐에 해결해주시니 감사합니다

    두가지 질문이 있는데요

    1. 터미널로 원격접속해서 tmux쓰려고해보니 x11 을 요구하던데 zsh은 상관없나요?

    2. 원격접속으로 사용할떄 접속할 서버에서 zsh을 사용하면 터미널의 반응속도가 많이 느려지지는 않을까요?


  8. BlaCk ·
    1. Shell이기 때문에 아마 폰트만 준비되면 괜찮습니다.
    2. 네트워크가 너무 느리지만 않으면 괜찮더군요. 애저 기준입니다.
  9. 두잇나우 ·
    위에 설지 방법대로 iterm에서 설치 했는데 잘 적용이 안되네요 =ㅁ= (맥 알못이라..) 추가로 더 설정해야줘야 되는게 있나요 ?
  10. BlaCk ·
    위 댓글에 쓴 것처럼 폰트를 적용해주고, 세션을 재시작하면 됩니다.
    당장 쓰고 싶다면 zsh를 쳐보시면 다운로드를 쭈르륵 받으며 적용될거에요
  11. 두잇나우 · · 공감 1
    @BlaCk님
    iterm 업데이트 하고 나니 재대로 설지 되는군요 기본 터미널에서 잘 설치되서 이상했었는데... 잘쓰겠슴당
  12. 힘찬아빠 ·
    자알~ 쓰고 있습니다!
  13. BlaCk ·
    오오 사용자분 ??
  14. gourri ·
    vdi는 안되나 보네요.. OS NOT DETECTED로 나옵니다. 집에 가서 맥에서 해보겠습니다.
  15. gourri ·
    @gourri님 $OS_TYPE 값이 그냥 linux로 설정되어 있어서 그런것 같네요. 고치면 어떻게 될 것 같은데.. 회사 환경이라 집에서 하는게 맞을 것 같습니다.^^
  16. BlaCk ·
    gourri님 // OS TYPE 알려주시면 추가로 넣어둘께요
  17. gourri ·
    @BlaCk님 집에 와서 설치하고 있습니다.(mac)
    업무용 vdi는 customize 되어 있어서 추가하실 필요 없을 것 같네요^^
  18. 크라비클 ·
    감사합니다. 스크랩 후 적용해야겠습니다. 추천 !
  19. BlaCk ·
    집에서 써보셔요 ?
  20. BlaCk ·
    tcsh는 말로만 듣던것인데 ㄷㄷㄷ
    RHEL에서는 안되나보군요
  21. BlaCk ·
    모하비에서도 잘 작동할거에요
  22. 재생불가 ·
    지금 회사 피씨에 설치해 보고 있습니다.
    일단 인터페이스가 화려해지네요
    감사합니다. 잘 사용하겠습니다.

  23. BlaCk ·
    저도 bash에서 넘어올때 신세계였다는 ㅎㅎ
  24. RaphKay ·
    brew + zsh + oh-my-zsh 를 썩어 쓰는 입장에서 어떤게 좋은건지 궁금 하군요 !
  25. BlaCk ·
    0. 신경쓰지 않아도 지속적인 기능개선이 됩니다.
    1. 내장된 테마모드 커스텀이 상당히 쉽고 품질이 높으며 빠른 편입니다.
    2. Oh-My-Zsh의 로딩속도가 상당히 느린 편인데 비동기로드(프롬프트 로드 후에 로드)를 해서 빠릅니다
    3. 내장된 플러그인과 설정, 유틸리티들 - ZSH에 그치지 않고 CLI 환경전반을 다루려 생각하고 있어요.
    4. 간단한 추가 플러그인 사용

    추가적인 플러그인을 사용하고 싶으면 ~/.zshrc에서
    zplugin light 유저/레포 를 사용하면 되는데 간단합니다.

    * Oh-My-Zsh에서 가지고 오고 싶으면
    zplugin ice svnzplugin snippet OMZ::plugins/디렉토리이름
    처럼 하면 되요.


    플러그인 커스텀 파일을 지원할까 생각은 하고 있는데 추후 프로젝트 업그레이드 시 사용자 경험 통제가 어려워져서 고민이네요. 아마 핵심 플러그인/추가 플러그인으로 나뉘어서 나올 것 같습니다.
  26. 중무장 ·
    댓글 이미지
    아! 그렇군요
  27. BlaCk ·
    \ㅇㅁㅇ/ 넘나 좋은 Zsh!! 꼭 쓰세요!
  28. gourri ·
    bash에서 zsh으로 넘어가보려고 마음만 몇번 먹었다가 안썼는데 이렇게 하니 편하게 되네요. 이번 기회에 주력으로 써봐야겠습니다.
  29. BlaCk ·
    간단하죠? ㅎㅎ
  30. 맥튜버팁 ·
    bash 를 고집하는 1인. 하지만 언제까지 고집할지 스스로도 알지 못하는 1인. 정성스럽게 작성하신 글 잘 보고 갑니다.
  31. BlaCk ·
    그럼 오늘부로 넘어오시는겁니다??
  32. 메모수확기 ·
    아하! (이해한 척)
  33. BlaCk ·
    역시 \ㅇㅁㅇ/!!!!
    만 기억하시면 되는겁니다
  34. bigwhale ·
    하이 시에라 때부터 zsh를 설치해서 쓰고 있으면서도 zsh는 주류(?) 쉘이 아니라고 생각했었는데, 애플이 채택했다니, 무척 놀랍네요. ㄷㄷㄷ
  35. BlaCk ·
    사실 라이센스 때문입니다.
    애플이 GPL을 싫어해서 MIT 라이센스로 다 바꾸고 있져.

    대표적인게 gcc -> llvm
  36. dosuser ·
    @BlaCk님 llvm 은 아마 라이선스 때문은 아닐겁니다. 런타임시에 컴파일해서 쓰겠다는 개념이 강해서 최적화하기에 좋아 근래 여기저기서 쓰는데요;;;
  37. BlaCk ·
    dosuser님 // gcc에 비해 마이너했던 llvm을 본격적으로 밀어준게 애플이고 gnutils가 안들어가서 유틸들의 옵션 같은게 다르다고 알고 있었는뎁
  38. 미생공 ·
    초보라 잘 모르겠지만 스크랩합니다. ^^
  39. BlaCk ·
    설치 자체는 간단해여!!
  40. 공다섯 ·
    뭔지 모르겠지만 대단한거 같으니 스크랩합니다
  41. BlaCk ·
    열심히 만들었어욥
  42. 푸른부엉이 ·
    감사합니다...
    일단 스크랩하고 이해는 천천히 해보겠습니다...ㄷㄷ
  43. BlaCk ·
    주말에 천천히 해보세용
  44. 행나정 ·
    원래 zsh 썻는데 아직 카탈리나 안올렸습니다. Zshrc 만 따오고 혹시 이전 것을 지워야 하나요?
  45. BlaCk ·
    설치하는과정에서 기존 .zshrc가 있으면 .zshrc.bak으로 백업해줘요!!
    링크가 걸리는데, 테마 충돌만 안일어나면 괜찮을거에요.
  46. dvpxsodium · · 공감 1
    댓글 이미지

    세상에... 강좌란에서 쉘 바꾸는 법을 볼 날이 다 오는군요.

    여기 macOS bash에서 zsh로 넘어가서 잘 쓰고 있는 사용자 한명 추가요!

    꾸미는 맛이 참 좋습니다.
  47. BlaCk ·
    노가다라 그렇지 꾸미는게 재미는 있져 ㅎㅎ
    이쁘네요
  48. BlaCk ·
    제 기준으로는 상태표시, 문법강조, 자동완성이 좋아서 잘 쓰고 있습니다 ㅎㅎ
  49. 하늘냄새 ·
    설치 중에 다음과 같이 에러가 뜨는데, 제가 pyenv 를 이용해서 그런 것 같기도 하고.. zshell 처음 써서 어떻게 고쳐야 할지 잘 모르겠네요 ㅠㅠ

    Traceback (most recent call last): File "/Users/someone/.pyenv/versions/3.7.4/bin/powerline-config", line 20, in <module> pl = config.create_powerline_logger(args) File "/Users/someone/.pyenv/versions/3.7.4/lib/python3.7/site-packages/powerline/bindings/config.py", line 226, in create_powerline_logger common_config = finish_common_config(get_preferred_output_encoding(), config['common']) File "/Users/someone/.pyenv/versions/3.7.4/lib/python3.7/site-packages/powerline/lib/encoding.py", line 49, in get_preferred_output_encoding or locale.getdefaultlocale()[1] File "/Users/someone/.pyenv/versions/3.7.4/lib/python3.7/locale.py", line 568, in getdefaultlocale return _parse_localename(localename) File "/Users/someone/.pyenv/versions/3.7.4/lib/python3.7/locale.py", line 495, in _parse_localename raise ValueError('unknown locale: %s' % localename)ValueError: unknown locale: UTF-8

  50. BlaCk ·
    헉.. powerline-binding 기능과 충돌이 있나본데요??
    저도 찾아보면서 수정해야 될 것 같습니다.
  51. rhoon · · 공감 1
    저도 같은 에러가 나서 구글링해봤습니다.
    https://blog.anvileight.com/posts/valueerror-unknown-locale-utf-8-fixed/
    여기 참조해서 ~/.zshenv 파일을 만들고

    export LC_ALL=ko_KR.UTF-8
    export LANG=ko_KR.UTF-8

    두줄을 추가했습니다. 위 링크에서는 ko_KR 대신 en_US 로 되어있습니다만, 이렇게 해도 잘 되네요.
  52. thought ·
    맥에서 iterm 말고 쓸만한 터미널 있나요?... 너무 느려서 못쓰겠네요...
  53. BlaCk · · 공감 1
    iterm이 느리다는 거죠?
    성능만 생각하면 Alacritty( https://github.com/jwilm/alacritty )가 상당히 좋다고 들었습니다.
  54. thought ·
    // BlaCk님 오 감사합니닷!
  55. 윤신영 ·
    이런 고수이신 줄 미처 몰랐네요.
    평범한 사용자라 별 생각 없이 살고 있었는데 이 글 읽으면서 바로 설치했습니다.
    간단한 script인가 했는데 설치하는데만 꽤나 시간이 걸리는군요.
    감사합니다. 열심히 써 보겠습니다.

  56. BlaCk ·
    아무래도 내장된 플러그인양이 꽤 되서 처음 설치시에는 시간이 좀 걸립니다.
  57. eric1344 ·
    WSL 환경에서도 정상적인 설치가 가능할까요?
    개발용 노트북이 드라이버 문제로 어떤 리눅스도 사용이 힘들어서.. WSL이 유일한 방법입니다 ㅠㅠ
  58. BlaCk ·
    내일 WSL+프리뷰 터미널에서 테스트해보고 결과 알려드릴께요!!
  59. BlaCk ·
    우분투 wsl에서 잘 돌아가네요
  60. Blackmirror ·
    아, 백스페이스가 여기있네.
  61. BlaCk ·
    그러지 말고 설치만 해보시는 겁니다??
  62. 진짜메뚜기 ·
    가상머신서 해보고 필요한 것만 적용해보던가 해야겠네요 감사합니다
  63. BlaCk ·
    제 환경은 이것 저것 설치하는데 필요한 플러그인만 설치하는 것도 좋은 선택이 되겠네요.
  64. 족발마크 ·
    update_terminalapp_cwd:4: command not found: omz_urlencode
    라는 에러가 명령어 칠때마다 나는데 어떻게 해결해야 할까요ㅠㅠ
  65. BlaCk ·
    일단 ~/.zsh/BlaCk-Void.zshrc파일에서
    plugins/urltools/urltools.plugin.zsh
    149번 라인을 #으로 비활성화 시켜보세요

    oh my zsh 플러그인에서 문제가 생겼나봐요

    PR로 해결되었습니다ㅏㅏㅏ
  66. 쿠로하라 ·
    @BlaCk님 저도 위의 문제가 발생하는데 PR로 해결했다는게 어떻게 해결된건가요
  67. 쿠로하라 ·
    @BlaCk님 예전에 깔았다가 버그 난 채로 있는데 어떻게 업데이트 하나요?
  68. BlaCk ·
    @쿠로하라님 다운로드 받아진 곳에서 git pull을 하면 최신버전으로 업데이트 될거에요.
    실행중이면 zsh-update를 실행하시면 됩니다.
  69. 패션왕마네킹 ·
    이게 뭔가요....??
  70. BlaCk ·
    bash 대체용 스타터킷이요
    메모장 쓰다가 VS쓰는 느낌 정도? ㅎㅎ
  71. BlaCk ·
    좋은 정보 감사합니다.
    위키에 추가했어요!!
  72. sellar1 ·
    윈도우에서 bash (WSL) 쓰는데 무슨 이야긴지 전혀 모르겠군요;;
  73. BlaCk ·
    그냥 깔아서 써보시면 압니닷??
  74. rhoon · · 공감 1
    좋은 글 감사합니다. 카탈리나 업데이트하고 zsh 적용해놓고 황량?하게 있었는데 덕분에 멋지게 바뀌었습니다. 저는 d2coding 폰트를 쓰고 있어서 icon mode 를 powerline 으로 설정하니까 폰트 안깨지고 잘 나옵니다. d2coding 은 처음부터 powerline symbol 을 지원한다고 합니다.
  75. BlaCk ·
    다행히 요즘 코딩 폰트들 대부분은 powerline symbol을 지원하더라고요.
    지원하지 않는 유명한 폰트들은 패치버전이 있고요.
  76. 세자 ·
    간단히 되는줄 알고 깔았다가 에러만나서 지웠습니다. 제겐 아직 어렵네요
  77. BlaCk ·
    별일 없으면 설치가 될텐데 말이죠
    혹시 어떤 에러가 나왔는지 알 수 있을까요?
  78. 눼드붸드 ·
    좋은 글 감사합니다.
  79. BlaCk ·
    잘 써주세욥
  80. BlaCk ·
    찾아보니
    https://packages.ubuntu.com/search?keywords=ack
    18.04 부터 ack로 설치가 되는 모양입니다.

    debian은 ack로만 검색되는 것을 봐서는 우분투 버전에 따라 예외처리를 해줘야겠네요

    ---
    수정했어요~~
  81. 정민군 ·
    bash만 써본 개발자인데.. xdotool 설치할 때 에러가 나는데, 힌트로 적혀있는 stackoverflow에 있는걸 해봐도 안되네요 ㅠ
    jeongminkim@Jeongui-iMac ~ % brew reinstall xdotool==> Reinstalling xdotool==> Downloading https://homebrew.bintray.com/bottles/xdotool-3.20160805.1.mojave.bottle.tar.gzAlready downloaded: /Users/jeongminkim/Library/Caches/Homebrew/downloads/739e214b98578f632a0450d127ca67e30d2c46c4ebb685171272a8ef13cb86f1--xdotool-3.20160805.1.mojave.bottle.tar.gz==> Pouring xdotool-3.20160805.1.mojave.bottle.tar.gz==> CaveatsYou will probably want to enable XTEST in your X11 server now by running: defaults write org.x.X11 enable_test_extensions -boolean trueFor the source of this useful hint: https://stackoverflow.com/questions/1264210/does-mac-x11-have-the-xtest-extension==> Summary? /usr/local/Cellar/xdotool/3.20160805.1: 10 files, 191.3KB
    MacOS Catalina 입니다;;
  82. 정민군 ·
    뭔가 에러가 나긴 했는데, 세션 재시작하니 잘 나오는것 같네요~
    감사합니다!!

  83. 기다림의시간들 ·
    강좌 감사합니다.제가 설정한 모양이 마음에 안들어서 다시 하려는데요,터미널 모양 세팅을 처음부터 다시 하는 것은 어떻게 할수있나요?
  84. BlaCk ·
    rm ~/.ztheme로 제거하고 다시 복사해서 꾸미시면 됟니다.

    만약 ~/.zsh 내부 파일을 수정하셨으면
    git reset --hard HEAD로 되돌릴 수 있어요.
  85. 우주아범 ·
    회사내 server를 이용하는 거라 root권한이 없네요. font는 간신히 설치했는데 Terminal은 font를 powerline으로 변경 불가능해서, konsole에서 Test해보고 있거든요. 근데 아래와 같은 Error가 나네요.
    ~/.zplugin/bin/zplugin.zsh:2017: parse error near `"$@"'
    _powerline-nerd:4: unknown file attribute
    뭐일까요?

팁과강좌 최근 글

팁과강좌 목록 더 보기